@revturbine/sdk 0.2.44 → 0.2.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -62,7 +62,7 @@ import ih,{createContext,useMemo,useCallback,useEffect,useRef,useState,useContex
62
62
 
63
63
  `);}g.write("payload.value = newResult;"),g.write("return payload;");let $=g.compile();return (E,P)=>$(f,E,P)},i,s=_o,c=!bo.jitless,d=c&&$h.value,m=n.catchall,p;e._zod.parse=(f,g)=>{p??(p=o.value);let h=f.value;return s(h)?c&&d&&g?.async===false&&g.jitless!==true?(i||(i=t(n.shape)),f=i(f,g),m?yw([],h,f,g,p,e):f):r(f,g):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),f)};});function iw(e,n,r,o){for(let i of e)if(i.issues.length===0)return n.value=i.value,n;let t=e.filter(i=>!Ti(i));return t.length===1?(n.value=t[0].value,t[0]):(n.issues.push({code:"invalid_union",input:n.value,inst:r,errors:e.map(i=>i.issues.map(s=>wn(s,o,Ht())))}),n)}var Ac=k("$ZodUnion",(e,n)=>{we.init(e,n),Me(e._zod,"optin",()=>n.options.some(o=>o._zod.optin==="optional")?"optional":void 0),Me(e._zod,"optout",()=>n.options.some(o=>o._zod.optout==="optional")?"optional":void 0),Me(e._zod,"values",()=>{if(n.options.every(o=>o._zod.values))return new Set(n.options.flatMap(o=>Array.from(o._zod.values)))}),Me(e._zod,"pattern",()=>{if(n.options.every(o=>o._zod.pattern)){let o=n.options.map(t=>t._zod.pattern);return new RegExp(`^(${o.map(t=>kc(t.source)).join("|")})$`)}});let r=n.options.length===1?n.options[0]._zod.run:null;e._zod.parse=(o,t)=>{if(r)return r(o,t);let i=false,s=[];for(let c of n.options){let l=c._zod.run({value:o.value,issues:[]},t);if(l instanceof Promise)s.push(l),i=true;else {if(l.issues.length===0)return l;s.push(l);}}return i?Promise.all(s).then(c=>iw(c,o,e,t)):iw(s,o,e,t)};});function ow(e,n,r,o){let t=e.filter(i=>i.issues.length===0);return t.length===1?(n.value=t[0].value,n):(t.length===0?n.issues.push({code:"invalid_union",input:n.value,inst:r,errors:e.map(i=>i.issues.map(s=>wn(s,o,Ht())))}):n.issues.push({code:"invalid_union",input:n.value,inst:r,errors:[],inclusive:false}),n)}var b_=k("$ZodXor",(e,n)=>{Ac.init(e,n),n.inclusive=false;let r=n.options.length===1?n.options[0]._zod.run:null;e._zod.parse=(o,t)=>{if(r)return r(o,t);let i=false,s=[];for(let c of n.options){let l=c._zod.run({value:o.value,issues:[]},t);l instanceof Promise?(s.push(l),i=true):s.push(l);}return i?Promise.all(s).then(c=>ow(c,o,e,t)):ow(s,o,e,t)};}),__=k("$ZodDiscriminatedUnion",(e,n)=>{n.inclusive=false,Ac.init(e,n);let r=e._zod.parse;Me(e._zod,"propValues",()=>{let t={};for(let i of n.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(i)}"`);for(let[c,l]of Object.entries(s)){t[c]||(t[c]=new Set);for(let d of l)t[c].add(d);}}return t});let o=ta(()=>{let t=n.options,i=new Map;for(let s of t){let c=s._zod.propValues?.[n.discriminator];if(!c||c.size===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(s)}"`);for(let l of c){if(i.has(l))throw new Error(`Duplicate discriminator value "${String(l)}"`);i.set(l,s);}}return i});e._zod.parse=(t,i)=>{let s=t.value;if(!_o(s))return t.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),t;let c=o.value.get(s?.[n.discriminator]);return c?c._zod.run(t,i):n.unionFallback||i.direction==="backward"?r(t,i):(t.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:n.discriminator,options:Array.from(o.value.keys()),input:s,path:[n.discriminator],inst:e}),t)};}),v_=k("$ZodIntersection",(e,n)=>{we.init(e,n),e._zod.parse=(r,o)=>{let t=r.value,i=n.left._zod.run({value:t,issues:[]},o),s=n.right._zod.run({value:t,issues:[]},o);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([l,d])=>aw(r,l,d)):aw(r,i,s)};});function Ob(e,n){if(e===n)return {valid:true,data:e};if(e instanceof Date&&n instanceof Date&&+e==+n)return {valid:true,data:e};if(ki(e)&&ki(n)){let r=Object.keys(n),o=Object.keys(e).filter(i=>r.indexOf(i)!==-1),t={...e,...n};for(let i of o){let s=Ob(e[i],n[i]);if(!s.valid)return {valid:false,mergeErrorPath:[i,...s.mergeErrorPath]};t[i]=s.data;}return {valid:true,data:t}}if(Array.isArray(e)&&Array.isArray(n)){if(e.length!==n.length)return {valid:false,mergeErrorPath:[]};let r=[];for(let o=0;o<e.length;o++){let t=e[o],i=n[o],s=Ob(t,i);if(!s.valid)return {valid:false,mergeErrorPath:[o,...s.mergeErrorPath]};r.push(s.data);}return {valid:true,data:r}}return {valid:false,mergeErrorPath:[]}}function aw(e,n,r){let o=new Map,t;for(let c of n.issues)if(c.code==="unrecognized_keys"){t??(t=c);for(let l of c.keys)o.has(l)||o.set(l,{}),o.get(l).l=true;}else e.issues.push(c);for(let c of r.issues)if(c.code==="unrecognized_keys")for(let l of c.keys)o.has(l)||o.set(l,{}),o.get(l).r=true;else e.issues.push(c);let i=[...o].filter(([,c])=>c.l&&c.r).map(([c])=>c);if(i.length&&t&&e.issues.push({...t,keys:i}),Ti(e))return e;let s=Ob(n.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}var zd=k("$ZodTuple",(e,n)=>{we.init(e,n);let r=n.items;e._zod.parse=(o,t)=>{let i=o.value;if(!Array.isArray(i))return o.issues.push({input:i,inst:e,expected:"tuple",code:"invalid_type"}),o;o.value=[];let s=[],c=sw(r,"optin"),l=sw(r,"optout");if(!n.rest){if(i.length<c)return o.issues.push({code:"too_small",minimum:c,inclusive:true,input:i,inst:e,origin:"array"}),o;i.length>r.length&&o.issues.push({code:"too_big",maximum:r.length,inclusive:true,input:i,inst:e,origin:"array"});}let d=new Array(r.length);for(let m=0;m<r.length;m++){let p=r[m]._zod.run({value:i[m],issues:[]},t);p instanceof Promise?s.push(p.then(f=>{d[m]=f;})):d[m]=p;}if(n.rest){let m=r.length-1,p=i.slice(r.length);for(let f of p){m++;let g=n.rest._zod.run({value:f,issues:[]},t);g instanceof Promise?s.push(g.then(h=>cw(h,o,m))):cw(g,o,m);}}return s.length?Promise.all(s).then(()=>lw(d,o,r,i,l)):lw(d,o,r,i,l)};});function sw(e,n){for(let r=e.length-1;r>=0;r--)if(e[r]._zod[n]!=="optional")return r+1;return 0}function cw(e,n,r){e.issues.length&&n.issues.push(...Zn(r,e.issues)),n.value[r]=e.value;}function lw(e,n,r,o,t){for(let i=0;i<r.length;i++){let s=e[i],c=i<o.length;if(s.issues.length){if(!c&&i>=t){n.value.length=i;break}n.issues.push(...Zn(i,s.issues));}n.value[i]=s.value;}for(let i=n.value.length-1;i>=o.length&&(r[i]._zod.optout==="optional"&&n.value[i]===void 0);i--)n.value.length=i;return n}var y_=k("$ZodRecord",(e,n)=>{we.init(e,n),e._zod.parse=(r,o)=>{let t=r.value;if(!ki(t))return r.issues.push({expected:"record",code:"invalid_type",input:t,inst:e}),r;let i=[],s=n.keyType._zod.values;if(s){r.value={};let c=new Set;for(let d of s)if(typeof d=="string"||typeof d=="number"||typeof d=="symbol"){c.add(typeof d=="number"?d.toString():d);let m=n.keyType._zod.run({value:d,issues:[]},o);if(m instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(m.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:m.issues.map(g=>wn(g,o,Ht())),input:d,path:[d],inst:e});continue}let p=m.value,f=n.valueType._zod.run({value:t[d],issues:[]},o);f instanceof Promise?i.push(f.then(g=>{g.issues.length&&r.issues.push(...Zn(d,g.issues)),r.value[p]=g.value;})):(f.issues.length&&r.issues.push(...Zn(d,f.issues)),r.value[p]=f.value);}let l;for(let d in t)c.has(d)||(l=l??[],l.push(d));l&&l.length>0&&r.issues.push({code:"unrecognized_keys",input:t,inst:e,keys:l});}else {r.value={};for(let c of Reflect.ownKeys(t)){if(c==="__proto__"||!Object.prototype.propertyIsEnumerable.call(t,c))continue;let l=n.keyType._zod.run({value:c,issues:[]},o);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof c=="string"&&Pd.test(c)&&l.issues.length){let p=n.keyType._zod.run({value:Number(c),issues:[]},o);if(p instanceof Promise)throw new Error("Async schemas not supported in object keys currently");p.issues.length===0&&(l=p);}if(l.issues.length){n.mode==="loose"?r.value[c]=t[c]:r.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(p=>wn(p,o,Ht())),input:c,path:[c],inst:e});continue}let m=n.valueType._zod.run({value:t[c],issues:[]},o);m instanceof Promise?i.push(m.then(p=>{p.issues.length&&r.issues.push(...Zn(c,p.issues)),r.value[l.value]=p.value;})):(m.issues.length&&r.issues.push(...Zn(c,m.issues)),r.value[l.value]=m.value);}}return i.length?Promise.all(i).then(()=>r):r};}),x_=k("$ZodMap",(e,n)=>{we.init(e,n),e._zod.parse=(r,o)=>{let t=r.value;if(!(t instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:t,inst:e}),r;let i=[];r.value=new Map;for(let[s,c]of t){let l=n.keyType._zod.run({value:s,issues:[]},o),d=n.valueType._zod.run({value:c,issues:[]},o);l instanceof Promise||d instanceof Promise?i.push(Promise.all([l,d]).then(([m,p])=>{uw(m,p,r,s,t,e,o);})):uw(l,d,r,s,t,e,o);}return i.length?Promise.all(i).then(()=>r):r};});function uw(e,n,r,o,t,i,s){e.issues.length&&(Tc.has(typeof o)?r.issues.push(...Zn(o,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:t,inst:i,issues:e.issues.map(c=>wn(c,s,Ht()))})),n.issues.length&&(Tc.has(typeof o)?r.issues.push(...Zn(o,n.issues)):r.issues.push({origin:"map",code:"invalid_element",input:t,inst:i,key:o,issues:n.issues.map(c=>wn(c,s,Ht()))})),r.value.set(e.value,n.value);}var S_=k("$ZodSet",(e,n)=>{we.init(e,n),e._zod.parse=(r,o)=>{let t=r.value;if(!(t instanceof Set))return r.issues.push({input:t,inst:e,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let s of t){let c=n.valueType._zod.run({value:s,issues:[]},o);c instanceof Promise?i.push(c.then(l=>dw(l,r))):dw(c,r);}return i.length?Promise.all(i).then(()=>r):r};});function dw(e,n){e.issues.length&&n.issues.push(...e.issues),n.value.add(e.value);}var I_=k("$ZodEnum",(e,n)=>{we.init(e,n);let r=Pc(n.entries),o=new Set(r);e._zod.values=o,e._zod.pattern=new RegExp(`^(${r.filter(t=>Tc.has(typeof t)).map(t=>typeof t=="string"?mr(t):t.toString()).join("|")})$`),e._zod.parse=(t,i)=>{let s=t.value;return o.has(s)||t.issues.push({code:"invalid_value",values:r,input:s,inst:e}),t};}),P_=k("$ZodLiteral",(e,n)=>{if(we.init(e,n),n.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(n.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.values.map(o=>typeof o=="string"?mr(o):o?mr(o.toString()):String(o)).join("|")})$`),e._zod.parse=(o,t)=>{let i=o.value;return r.has(i)||o.issues.push({code:"invalid_value",values:n.values,input:i,inst:e}),o};}),k_=k("$ZodFile",(e,n)=>{we.init(e,n),e._zod.parse=(r,o)=>{let t=r.value;return t instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:t,inst:e}),r};}),T_=k("$ZodTransform",(e,n)=>{we.init(e,n),e._zod.optin="optional",e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new Si(e.constructor.name);let t=n.transform(r.value,r);if(o.async)return (t instanceof Promise?t:Promise.resolve(t)).then(s=>(r.value=s,r.fallback=true,r));if(t instanceof Promise)throw new kr;return r.value=t,r.fallback=true,r};});function mw(e,n){return n===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var jd=k("$ZodOptional",(e,n)=>{we.init(e,n),e._zod.optin="optional",e._zod.optout="optional",Me(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),Me(e._zod,"pattern",()=>{let r=n.innerType._zod.pattern;return r?new RegExp(`^(${kc(r.source)})?$`):void 0}),e._zod.parse=(r,o)=>{if(n.innerType._zod.optin==="optional"){let t=r.value,i=n.innerType._zod.run(r,o);return i instanceof Promise?i.then(s=>mw(s,t)):mw(i,t)}return r.value===void 0?r:n.innerType._zod.run(r,o)};}),$_=k("$ZodExactOptional",(e,n)=>{jd.init(e,n),Me(e._zod,"values",()=>n.innerType._zod.values),Me(e._zod,"pattern",()=>n.innerType._zod.pattern),e._zod.parse=(r,o)=>n.innerType._zod.run(r,o);}),w_=k("$ZodNullable",(e,n)=>{we.init(e,n),Me(e._zod,"optin",()=>n.innerType._zod.optin),Me(e._zod,"optout",()=>n.innerType._zod.optout),Me(e._zod,"pattern",()=>{let r=n.innerType._zod.pattern;return r?new RegExp(`^(${kc(r.source)}|null)$`):void 0}),Me(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,null]):void 0),e._zod.parse=(r,o)=>r.value===null?r:n.innerType._zod.run(r,o);}),R_=k("$ZodDefault",(e,n)=>{we.init(e,n),e._zod.optin="optional",Me(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(r,o)=>{if(o.direction==="backward")return n.innerType._zod.run(r,o);if(r.value===void 0)return r.value=n.defaultValue,r;let t=n.innerType._zod.run(r,o);return t instanceof Promise?t.then(i=>pw(i,n)):pw(t,n)};});function pw(e,n){return e.value===void 0&&(e.value=n.defaultValue),e}var C_=k("$ZodPrefault",(e,n)=>{we.init(e,n),e._zod.optin="optional",Me(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(r,o)=>(o.direction==="backward"||r.value===void 0&&(r.value=n.defaultValue),n.innerType._zod.run(r,o));}),E_=k("$ZodNonOptional",(e,n)=>{we.init(e,n),Me(e._zod,"values",()=>{let r=n.innerType._zod.values;return r?new Set([...r].filter(o=>o!==void 0)):void 0}),e._zod.parse=(r,o)=>{let t=n.innerType._zod.run(r,o);return t instanceof Promise?t.then(i=>fw(i,e)):fw(t,e)};});function fw(e,n){return !e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:n}),e}var O_=k("$ZodSuccess",(e,n)=>{we.init(e,n),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new Si("ZodSuccess");let t=n.innerType._zod.run(r,o);return t instanceof Promise?t.then(i=>(r.value=i.issues.length===0,r)):(r.value=t.issues.length===0,r)};}),z_=k("$ZodCatch",(e,n)=>{we.init(e,n),e._zod.optin="optional",Me(e._zod,"optout",()=>n.innerType._zod.optout),Me(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(r,o)=>{if(o.direction==="backward")return n.innerType._zod.run(r,o);let t=n.innerType._zod.run(r,o);return t instanceof Promise?t.then(i=>(r.value=i.value,i.issues.length&&(r.value=n.catchValue({...r,error:{issues:i.issues.map(s=>wn(s,o,Ht()))},input:r.value}),r.issues=[],r.fallback=true),r)):(r.value=t.value,t.issues.length&&(r.value=n.catchValue({...r,error:{issues:t.issues.map(i=>wn(i,o,Ht()))},input:r.value}),r.issues=[],r.fallback=true),r)};}),j_=k("$ZodNaN",(e,n)=>{we.init(e,n),e._zod.parse=(r,o)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:e,expected:"nan",code:"invalid_type"}),r);}),Ud=k("$ZodPipe",(e,n)=>{we.init(e,n),Me(e._zod,"values",()=>n.in._zod.values),Me(e._zod,"optin",()=>n.in._zod.optin),Me(e._zod,"optout",()=>n.out._zod.optout),Me(e._zod,"propValues",()=>n.in._zod.propValues),e._zod.parse=(r,o)=>{if(o.direction==="backward"){let i=n.out._zod.run(r,o);return i instanceof Promise?i.then(s=>$d(s,n.in,o)):$d(i,n.in,o)}let t=n.in._zod.run(r,o);return t instanceof Promise?t.then(i=>$d(i,n.out,o)):$d(t,n.out,o)};});function $d(e,n,r){return e.issues.length?(e.aborted=true,e):n._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},r)}var Dc=k("$ZodCodec",(e,n)=>{we.init(e,n),Me(e._zod,"values",()=>n.in._zod.values),Me(e._zod,"optin",()=>n.in._zod.optin),Me(e._zod,"optout",()=>n.out._zod.optout),Me(e._zod,"propValues",()=>n.in._zod.propValues),e._zod.parse=(r,o)=>{if((o.direction||"forward")==="forward"){let i=n.in._zod.run(r,o);return i instanceof Promise?i.then(s=>wd(s,n,o)):wd(i,n,o)}else {let i=n.out._zod.run(r,o);return i instanceof Promise?i.then(s=>wd(s,n,o)):wd(i,n,o)}};});function wd(e,n,r){if(e.issues.length)return e.aborted=true,e;if((r.direction||"forward")==="forward"){let t=n.transform(e.value,e);return t instanceof Promise?t.then(i=>Rd(e,i,n.out,r)):Rd(e,t,n.out,r)}else {let t=n.reverseTransform(e.value,e);return t instanceof Promise?t.then(i=>Rd(e,i,n.in,r)):Rd(e,t,n.in,r)}}function Rd(e,n,r,o){return e.issues.length?(e.aborted=true,e):r._zod.run({value:n,issues:e.issues},o)}var U_=k("$ZodPreprocess",(e,n)=>{Ud.init(e,n);}),A_=k("$ZodReadonly",(e,n)=>{we.init(e,n),Me(e._zod,"propValues",()=>n.innerType._zod.propValues),Me(e._zod,"values",()=>n.innerType._zod.values),Me(e._zod,"optin",()=>n.innerType?._zod?.optin),Me(e._zod,"optout",()=>n.innerType?._zod?.optout),e._zod.parse=(r,o)=>{if(o.direction==="backward")return n.innerType._zod.run(r,o);let t=n.innerType._zod.run(r,o);return t instanceof Promise?t.then(gw):gw(t)};});function gw(e){return e.value=Object.freeze(e.value),e}var D_=k("$ZodTemplateLiteral",(e,n)=>{we.init(e,n);let r=[];for(let o of n.parts)if(typeof o=="object"&&o!==null){if(!o._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...o._zod.traits].shift()}`);let t=o._zod.pattern instanceof RegExp?o._zod.pattern.source:o._zod.pattern;if(!t)throw new Error(`Invalid template literal part: ${o._zod.traits}`);let i=t.startsWith("^")?1:0,s=t.endsWith("$")?t.length-1:t.length;r.push(t.slice(i,s));}else if(o===null||Rh.has(typeof o))r.push(mr(`${o}`));else throw new Error(`Invalid template literal part: ${o}`);e._zod.pattern=new RegExp(`^${r.join("")}$`),e._zod.parse=(o,t)=>typeof o.value!="string"?(o.issues.push({input:o.value,inst:e,expected:"string",code:"invalid_type"}),o):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(o.value)||o.issues.push({input:o.value,inst:e,code:"invalid_format",format:n.format??"template_literal",pattern:e._zod.pattern.source}),o);}),F_=k("$ZodFunction",(e,n)=>(we.init(e,n),e._def=n,e._zod.def=n,e.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...o){let t=e._def.input?pd(e._def.input,o):o,i=Reflect.apply(r,this,t);return e._def.output?pd(e._def.output,i):i}},e.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...o){let t=e._def.input?await fd(e._def.input,o):o,i=await Reflect.apply(r,this,t);return e._def.output?await fd(e._def.output,i):i}},e._zod.parse=(r,o)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:e}),r):(e._def.output&&e._def.output._zod.def.type==="promise"?r.value=e.implementAsync(r.value):r.value=e.implement(r.value),r),e.input=(...r)=>{let o=e.constructor;return Array.isArray(r[0])?new o({type:"function",input:new zd({type:"tuple",items:r[0],rest:r[1]}),output:e._def.output}):new o({type:"function",input:r[0],output:e._def.output})},e.output=r=>{let o=e.constructor;return new o({type:"function",input:e._def.input,output:r})},e)),N_=k("$ZodPromise",(e,n)=>{we.init(e,n),e._zod.parse=(r,o)=>Promise.resolve(r.value).then(t=>n.innerType._zod.run({value:t,issues:[]},o));}),L_=k("$ZodLazy",(e,n)=>{we.init(e,n),Me(e._zod,"innerType",()=>{let r=n;return r._cachedInner||(r._cachedInner=n.getter()),r._cachedInner}),Me(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),Me(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),Me(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),Me(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,o)=>e._zod.innerType._zod.run(r,o);}),V_=k("$ZodCustom",(e,n)=>{Tt.init(e,n),we.init(e,n),e._zod.parse=(r,o)=>r,e._zod.check=r=>{let o=r.value,t=n.fn(o);if(t instanceof Promise)return t.then(i=>hw(i,r,o,e));hw(t,r,o,e);};});function hw(e,n,r,o){if(!e){let t={code:"custom",input:r,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(t.params=o._zod.def.params),n.issues.push(na(t));}}var Nc={};sn(Nc,{ar:()=>Sw,az:()=>Iw,be:()=>kw,bg:()=>Tw,ca:()=>$w,cs:()=>ww,da:()=>Rw,de:()=>Cw,el:()=>Ew,en:()=>Ad,eo:()=>Ow,es:()=>zw,fa:()=>jw,fi:()=>Uw,fr:()=>Aw,frCA:()=>Dw,he:()=>Fw,hr:()=>Nw,hu:()=>Lw,hy:()=>Bw,id:()=>Mw,is:()=>Zw,it:()=>qw,ja:()=>Hw,ka:()=>Kw,kh:()=>Gw,km:()=>Dd,ko:()=>Jw,lt:()=>Xw,mk:()=>Yw,ms:()=>Qw,nl:()=>eR,no:()=>tR,ota:()=>nR,pl:()=>iR,ps:()=>rR,pt:()=>oR,ro:()=>aR,ru:()=>cR,sl:()=>lR,sv:()=>uR,ta:()=>dR,th:()=>mR,tr:()=>pR,ua:()=>fR,uk:()=>Fd,ur:()=>gR,uz:()=>hR,vi:()=>bR,yo:()=>yR,zhCN:()=>_R,zhTW:()=>vR});var J2=()=>{let e={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function n(t){return e[t]??null}let r={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 instanceof ${t.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${c}`:`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${i}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${c}`}case "invalid_value":return t.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${A(t.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${t.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${t.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${t.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${t.minimum.toString()} ${s.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${t.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${t.prefix}"`:i.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${i.suffix}"`:i.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${i.includes}"`:i.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${i.pattern}`:`${r[i.format]??t.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case "not_multiple_of":return `\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${t.divisor}`;case "unrecognized_keys":return `\u0645\u0639\u0631\u0641${t.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${t.keys.length>1?"\u0629":""}: ${R(t.keys,"\u060C ")}`;case "invalid_key":return `\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${t.origin}`;case "invalid_union":return "\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case "invalid_element":return `\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${t.origin}`;default:return "\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function Sw(){return {localeError:J2()}}var W2=()=>{let e={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function n(t){return e[t]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n instanceof ${t.expected}, daxil olan ${c}`:`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${i}, daxil olan ${c}`}case "invalid_value":return t.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${A(t.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${t.origin??"d\u0259y\u0259r"} ${i}${t.maximum.toString()} ${s.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${t.origin??"d\u0259y\u0259r"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${t.origin} ${i}${t.minimum.toString()} ${s.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${i.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:i.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${i.suffix}" il\u0259 bitm\u0259lidir`:i.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${i.includes}" daxil olmal\u0131d\u0131r`:i.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${i.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${r[i.format]??t.format}`}case "not_multiple_of":return `Yanl\u0131\u015F \u0259d\u0259d: ${t.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case "unrecognized_keys":return `Tan\u0131nmayan a\xE7ar${t.keys.length>1?"lar":""}: ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case "invalid_union":return "Yanl\u0131\u015F d\u0259y\u0259r";case "invalid_element":return `${t.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return "Yanl\u0131\u015F d\u0259y\u0259r"}}};function Iw(){return {localeError:W2()}}function Pw(e,n,r,o){let t=Math.abs(e),i=t%10,s=t%100;return s>=11&&s<=19?o:i===1?n:i>=2&&i<=4?r:o}var X2=()=>{let e={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function n(t){return e[t]??null}let r={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"},o={nan:"NaN",number:"\u043B\u0456\u043A",array:"\u043C\u0430\u0441\u0456\u045E"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F instanceof ${t.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${c}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${i}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${c}`}case "invalid_value":return t.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${A(t.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);if(s){let c=Number(t.maximum),l=Pw(c,s.unit.one,s.unit.few,s.unit.many);return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${s.verb} ${i}${t.maximum.toString()} ${l}`}return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);if(s){let c=Number(t.minimum),l=Pw(c,s.unit.one,s.unit.few,s.unit.many);return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${s.verb} ${i}${t.minimum.toString()} ${l}`}return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${r[i.format]??t.format}`}case "not_multiple_of":return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${t.divisor}`;case "unrecognized_keys":return `\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${t.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${R(t.keys,", ")}`;case "invalid_key":return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${t.origin}`;case "invalid_union":return "\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case "invalid_element":return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${t.origin}`;default:return "\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function kw(){return {localeError:X2()}}var Y2=()=>{let e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},file:{unit:"\u0431\u0430\u0439\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"}};function n(t){return e[t]??null}let r={regex:"\u0432\u0445\u043E\u0434",email:"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0436\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",base64url:"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",json_string:"JSON \u043D\u0438\u0437",e164:"E.164 \u043D\u043E\u043C\u0435\u0440",jwt:"JWT",template_literal:"\u0432\u0445\u043E\u0434"},o={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0438\u0432"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D instanceof ${t.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${c}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${i}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${c}`}case "invalid_value":return t.values.length===1?`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${A(t.values[0])}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${t.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${t.minimum.toString()} ${s.unit}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;if(i.format==="starts_with")return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${i.prefix}"`;if(i.format==="ends_with")return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${i.suffix}"`;if(i.format==="includes")return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${i.includes}"`;if(i.format==="regex")return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${i.pattern}`;let s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";return i.format==="emoji"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="datetime"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="date"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),i.format==="time"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="duration"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),`${s} ${r[i.format]??t.format}`}case "not_multiple_of":return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${t.divisor}`;case "unrecognized_keys":return `\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${t.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${t.keys.length>1?"\u043E\u0432\u0435":""}: ${R(t.keys,", ")}`;case "invalid_key":return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${t.origin}`;case "invalid_union":return "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case "invalid_element":return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${t.origin}`;default:return "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};function Tw(){return {localeError:Y2()}}var Q2=()=>{let e={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function n(t){return e[t]??null}let r={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Tipus inv\xE0lid: s'esperava instanceof ${t.expected}, s'ha rebut ${c}`:`Tipus inv\xE0lid: s'esperava ${i}, s'ha rebut ${c}`}case "invalid_value":return t.values.length===1?`Valor inv\xE0lid: s'esperava ${A(t.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${R(t.values," o ")}`;case "too_big":{let i=t.inclusive?"com a m\xE0xim":"menys de",s=n(t.origin);return s?`Massa gran: s'esperava que ${t.origin??"el valor"} contingu\xE9s ${i} ${t.maximum.toString()} ${s.unit??"elements"}`:`Massa gran: s'esperava que ${t.origin??"el valor"} fos ${i} ${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?"com a m\xEDnim":"m\xE9s de",s=n(t.origin);return s?`Massa petit: s'esperava que ${t.origin} contingu\xE9s ${i} ${t.minimum.toString()} ${s.unit}`:`Massa petit: s'esperava que ${t.origin} fos ${i} ${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${i.prefix}"`:i.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${i.suffix}"`:i.format==="includes"?`Format inv\xE0lid: ha d'incloure "${i.includes}"`:i.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${i.pattern}`:`Format inv\xE0lid per a ${r[i.format]??t.format}`}case "not_multiple_of":return `N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${t.divisor}`;case "unrecognized_keys":return `Clau${t.keys.length>1?"s":""} no reconeguda${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Clau inv\xE0lida a ${t.origin}`;case "invalid_union":return "Entrada inv\xE0lida";case "invalid_element":return `Element inv\xE0lid a ${t.origin}`;default:return "Entrada inv\xE0lida"}}};function $w(){return {localeError:Q2()}}var eD=()=>{let e={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function n(t){return e[t]??null}let r={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"},o={nan:"NaN",number:"\u010D\xEDslo",string:"\u0159et\u011Bzec",function:"funkce",array:"pole"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no instanceof ${t.expected}, obdr\u017Eeno ${c}`:`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${i}, obdr\u017Eeno ${c}`}case "invalid_value":return t.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${A(t.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${t.origin??"hodnota"} mus\xED m\xEDt ${i}${t.maximum.toString()} ${s.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${t.origin??"hodnota"} mus\xED b\xFDt ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${t.origin??"hodnota"} mus\xED m\xEDt ${i}${t.minimum.toString()} ${s.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${t.origin??"hodnota"} mus\xED b\xFDt ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${i.prefix}"`:i.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${i.suffix}"`:i.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${i.includes}"`:i.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${i.pattern}`:`Neplatn\xFD form\xE1t ${r[i.format]??t.format}`}case "not_multiple_of":return `Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${t.divisor}`;case "unrecognized_keys":return `Nezn\xE1m\xE9 kl\xED\u010De: ${R(t.keys,", ")}`;case "invalid_key":return `Neplatn\xFD kl\xED\u010D v ${t.origin}`;case "invalid_union":return "Neplatn\xFD vstup";case "invalid_element":return `Neplatn\xE1 hodnota v ${t.origin}`;default:return "Neplatn\xFD vstup"}}};function ww(){return {localeError:eD()}}var tD=()=>{let e={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}};function n(t){return e[t]??null}let r={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkesl\xE6t",date:"ISO-dato",time:"ISO-klokkesl\xE6t",duration:"ISO-varighed",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},o={nan:"NaN",string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"s\xE6t",file:"fil"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Ugyldigt input: forventede instanceof ${t.expected}, fik ${c}`:`Ugyldigt input: forventede ${i}, fik ${c}`}case "invalid_value":return t.values.length===1?`Ugyldig v\xE6rdi: forventede ${A(t.values[0])}`:`Ugyldigt valg: forventede en af f\xF8lgende ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin),c=o[t.origin]??t.origin;return s?`For stor: forventede ${c??"value"} ${s.verb} ${i} ${t.maximum.toString()} ${s.unit??"elementer"}`:`For stor: forventede ${c??"value"} havde ${i} ${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin),c=o[t.origin]??t.origin;return s?`For lille: forventede ${c} ${s.verb} ${i} ${t.minimum.toString()} ${s.unit}`:`For lille: forventede ${c} havde ${i} ${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ugyldig streng: skal starte med "${i.prefix}"`:i.format==="ends_with"?`Ugyldig streng: skal ende med "${i.suffix}"`:i.format==="includes"?`Ugyldig streng: skal indeholde "${i.includes}"`:i.format==="regex"?`Ugyldig streng: skal matche m\xF8nsteret ${i.pattern}`:`Ugyldig ${r[i.format]??t.format}`}case "not_multiple_of":return `Ugyldigt tal: skal v\xE6re deleligt med ${t.divisor}`;case "unrecognized_keys":return `${t.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${R(t.keys,", ")}`;case "invalid_key":return `Ugyldig n\xF8gle i ${t.origin}`;case "invalid_union":return "Ugyldigt input: matcher ingen af de tilladte typer";case "invalid_element":return `Ugyldig v\xE6rdi i ${t.origin}`;default:return "Ugyldigt input"}}};function Rw(){return {localeError:tD()}}var nD=()=>{let e={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function n(t){return e[t]??null}let r={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"},o={nan:"NaN",number:"Zahl",array:"Array"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Ung\xFCltige Eingabe: erwartet instanceof ${t.expected}, erhalten ${c}`:`Ung\xFCltige Eingabe: erwartet ${i}, erhalten ${c}`}case "invalid_value":return t.values.length===1?`Ung\xFCltige Eingabe: erwartet ${A(t.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Zu gro\xDF: erwartet, dass ${t.origin??"Wert"} ${i}${t.maximum.toString()} ${s.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${t.origin??"Wert"} ${i}${t.maximum.toString()} ist`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Zu klein: erwartet, dass ${t.origin} ${i}${t.minimum.toString()} ${s.unit} hat`:`Zu klein: erwartet, dass ${t.origin} ${i}${t.minimum.toString()} ist`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ung\xFCltiger String: muss mit "${i.prefix}" beginnen`:i.format==="ends_with"?`Ung\xFCltiger String: muss mit "${i.suffix}" enden`:i.format==="includes"?`Ung\xFCltiger String: muss "${i.includes}" enthalten`:i.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${i.pattern} entsprechen`:`Ung\xFCltig: ${r[i.format]??t.format}`}case "not_multiple_of":return `Ung\xFCltige Zahl: muss ein Vielfaches von ${t.divisor} sein`;case "unrecognized_keys":return `${t.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${R(t.keys,", ")}`;case "invalid_key":return `Ung\xFCltiger Schl\xFCssel in ${t.origin}`;case "invalid_union":return "Ung\xFCltige Eingabe";case "invalid_element":return `Ung\xFCltiger Wert in ${t.origin}`;default:return "Ung\xFCltige Eingabe"}}};function Cw(){return {localeError:nD()}}var rD=()=>{let e={string:{unit:"\u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},file:{unit:"bytes",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},array:{unit:"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},set:{unit:"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},map:{unit:"\u03BA\u03B1\u03C4\u03B1\u03C7\u03C9\u03C1\u03AE\u03C3\u03B5\u03B9\u03C2",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"}};function n(t){return e[t]??null}let r={regex:"\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2",email:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03B9 \u03CE\u03C1\u03B1",date:"ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1",time:"ISO \u03CE\u03C1\u03B1",duration:"ISO \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1",ipv4:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv4",ipv6:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv6",mac:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 MAC",cidrv4:"\u03B5\u03CD\u03C1\u03BF\u03C2 IPv4",cidrv6:"\u03B5\u03CD\u03C1\u03BF\u03C2 IPv6",base64:"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64",base64url:"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64url",json_string:"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC JSON",e164:"\u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 E.164",jwt:"JWT",template_literal:"\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return typeof t.expected=="string"&&/^[A-Z]/.test(t.expected)?`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD instanceof ${t.expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${c}`:`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${i}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${c}`}case "invalid_value":return t.values.length===1?`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${A(t.values[0])}`:`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD \u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin??"\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${i}${t.maximum.toString()} ${s.unit??"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1"}`:`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin??"\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${i}${t.minimum.toString()} ${s.unit}`:`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AC \u03BC\u03B5 "${i.prefix}"`:i.format==="ends_with"?`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B5\u03BB\u03B5\u03B9\u03CE\u03BD\u03B5\u03B9 \u03BC\u03B5 "${i.suffix}"`:i.format==="includes"?`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 "${i.includes}"`:i.format==="regex"?`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B1\u03B9\u03C1\u03B9\u03AC\u03B6\u03B5\u03B9 \u03BC\u03B5 \u03C4\u03BF \u03BC\u03BF\u03C4\u03AF\u03B2\u03BF ${i.pattern}`:`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF: ${r[i.format]??t.format}`}case "not_multiple_of":return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BF\u03BB\u03BB\u03B1\u03C0\u03BB\u03AC\u03C3\u03B9\u03BF \u03C4\u03BF\u03C5 ${t.divisor}`;case "unrecognized_keys":return `\u0386\u03B3\u03BD\u03C9\u03C3\u03C4${t.keys.length>1?"\u03B1":"\u03BF"} \u03BA\u03BB\u03B5\u03B9\u03B4${t.keys.length>1?"\u03B9\u03AC":"\u03AF"}: ${R(t.keys,", ")}`;case "invalid_key":return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF \u03BA\u03BB\u03B5\u03B9\u03B4\u03AF \u03C3\u03C4\u03BF ${t.origin}`;case "invalid_union":return "\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2";case "invalid_element":return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C4\u03B9\u03BC\u03AE \u03C3\u03C4\u03BF ${t.origin}`;default:return "\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"}}};function Ew(){return {localeError:rD()}}var iD=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function n(t){return e[t]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return `Invalid input: expected ${i}, received ${c}`}case "invalid_value":return t.values.length===1?`Invalid input: expected ${A(t.values[0])}`:`Invalid option: expected one of ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Too big: expected ${t.origin??"value"} to have ${i}${t.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${t.origin??"value"} to be ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Too small: expected ${t.origin} to have ${i}${t.minimum.toString()} ${s.unit}`:`Too small: expected ${t.origin} to be ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.format]??t.format}`}case "not_multiple_of":return `Invalid number: must be a multiple of ${t.divisor}`;case "unrecognized_keys":return `Unrecognized key${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Invalid key in ${t.origin}`;case "invalid_union":return t.options&&Array.isArray(t.options)&&t.options.length>0?`Invalid discriminator value. Expected ${t.options.map(s=>`'${s}'`).join(" | ")}`:"Invalid input";case "invalid_element":return `Invalid value in ${t.origin}`;default:return "Invalid input"}}};function Ad(){return {localeError:iD()}}var oD=()=>{let e={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function n(t){return e[t]??null}let r={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"},o={nan:"NaN",number:"nombro",array:"tabelo",null:"senvalora"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Nevalida enigo: atendi\u011Dis instanceof ${t.expected}, ricevi\u011Dis ${c}`:`Nevalida enigo: atendi\u011Dis ${i}, ricevi\u011Dis ${c}`}case "invalid_value":return t.values.length===1?`Nevalida enigo: atendi\u011Dis ${A(t.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Tro granda: atendi\u011Dis ke ${t.origin??"valoro"} havu ${i}${t.maximum.toString()} ${s.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${t.origin??"valoro"} havu ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Tro malgranda: atendi\u011Dis ke ${t.origin} havu ${i}${t.minimum.toString()} ${s.unit}`:`Tro malgranda: atendi\u011Dis ke ${t.origin} estu ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${i.prefix}"`:i.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${i.suffix}"`:i.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${i.includes}"`:i.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${i.pattern}`:`Nevalida ${r[i.format]??t.format}`}case "not_multiple_of":return `Nevalida nombro: devas esti oblo de ${t.divisor}`;case "unrecognized_keys":return `Nekonata${t.keys.length>1?"j":""} \u015Dlosilo${t.keys.length>1?"j":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Nevalida \u015Dlosilo en ${t.origin}`;case "invalid_union":return "Nevalida enigo";case "invalid_element":return `Nevalida valoro en ${t.origin}`;default:return "Nevalida enigo"}}};function Ow(){return {localeError:oD()}}var aD=()=>{let e={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function n(t){return e[t]??null}let r={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},o={nan:"NaN",string:"texto",number:"n\xFAmero",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"n\xFAmero grande",symbol:"s\xEDmbolo",undefined:"indefinido",null:"nulo",function:"funci\xF3n",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeraci\xF3n",union:"uni\xF3n",literal:"literal",promise:"promesa",void:"vac\xEDo",never:"nunca",unknown:"desconocido",any:"cualquiera"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Entrada inv\xE1lida: se esperaba instanceof ${t.expected}, recibido ${c}`:`Entrada inv\xE1lida: se esperaba ${i}, recibido ${c}`}case "invalid_value":return t.values.length===1?`Entrada inv\xE1lida: se esperaba ${A(t.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin),c=o[t.origin]??t.origin;return s?`Demasiado grande: se esperaba que ${c??"valor"} tuviera ${i}${t.maximum.toString()} ${s.unit??"elementos"}`:`Demasiado grande: se esperaba que ${c??"valor"} fuera ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin),c=o[t.origin]??t.origin;return s?`Demasiado peque\xF1o: se esperaba que ${c} tuviera ${i}${t.minimum.toString()} ${s.unit}`:`Demasiado peque\xF1o: se esperaba que ${c} fuera ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${i.prefix}"`:i.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${i.suffix}"`:i.format==="includes"?`Cadena inv\xE1lida: debe incluir "${i.includes}"`:i.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${i.pattern}`:`Inv\xE1lido ${r[i.format]??t.format}`}case "not_multiple_of":return `N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${t.divisor}`;case "unrecognized_keys":return `Llave${t.keys.length>1?"s":""} desconocida${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Llave inv\xE1lida en ${o[t.origin]??t.origin}`;case "invalid_union":return "Entrada inv\xE1lida";case "invalid_element":return `Valor inv\xE1lido en ${o[t.origin]??t.origin}`;default:return "Entrada inv\xE1lida"}}};function zw(){return {localeError:aD()}}var sD=()=>{let e={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function n(t){return e[t]??null}let r={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"},o={nan:"NaN",number:"\u0639\u062F\u062F",array:"\u0622\u0631\u0627\u06CC\u0647"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A instanceof ${t.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${c} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`:`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${i} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${c} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`}case "invalid_value":return t.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${A(t.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${R(t.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${t.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${t.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${t.maximum.toString()} \u0628\u0627\u0634\u062F`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${t.origin} \u0628\u0627\u06CC\u062F ${i}${t.minimum.toString()} ${s.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${t.origin} \u0628\u0627\u06CC\u062F ${i}${t.minimum.toString()} \u0628\u0627\u0634\u062F`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:i.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:i.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${i.includes}" \u0628\u0627\u0634\u062F`:i.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${i.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${r[i.format]??t.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case "not_multiple_of":return `\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${t.divisor} \u0628\u0627\u0634\u062F`;case "unrecognized_keys":return `\u06A9\u0644\u06CC\u062F${t.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${R(t.keys,", ")}`;case "invalid_key":return `\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${t.origin}`;case "invalid_union":return "\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case "invalid_element":return `\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${t.origin}`;default:return "\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function jw(){return {localeError:sD()}}var cD=()=>{let e={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function n(t){return e[t]??null}let r={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Virheellinen tyyppi: odotettiin instanceof ${t.expected}, oli ${c}`:`Virheellinen tyyppi: odotettiin ${i}, oli ${c}`}case "invalid_value":return t.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${A(t.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Liian suuri: ${s.subject} t\xE4ytyy olla ${i}${t.maximum.toString()} ${s.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Liian pieni: ${s.subject} t\xE4ytyy olla ${i}${t.minimum.toString()} ${s.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${i.prefix}"`:i.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${i.suffix}"`:i.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${i.includes}"`:i.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${i.pattern}`:`Virheellinen ${r[i.format]??t.format}`}case "not_multiple_of":return `Virheellinen luku: t\xE4ytyy olla luvun ${t.divisor} monikerta`;case "unrecognized_keys":return `${t.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${R(t.keys,", ")}`;case "invalid_key":return "Virheellinen avain tietueessa";case "invalid_union":return "Virheellinen unioni";case "invalid_element":return "Virheellinen arvo joukossa";default:return "Virheellinen sy\xF6te"}}};function Uw(){return {localeError:cD()}}var lD=()=>{let e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function n(t){return e[t]??null}let r={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"},o={string:"cha\xEEne",number:"nombre",int:"entier",boolean:"bool\xE9en",bigint:"grand entier",symbol:"symbole",undefined:"ind\xE9fini",null:"null",never:"jamais",void:"vide",date:"date",array:"tableau",object:"objet",tuple:"tuple",record:"enregistrement",map:"carte",set:"ensemble",file:"fichier",nonoptional:"non-optionnel",nan:"NaN",function:"fonction"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Entr\xE9e invalide : instanceof ${t.expected} attendu, ${c} re\xE7u`:`Entr\xE9e invalide : ${i} attendu, ${c} re\xE7u`}case "invalid_value":return t.values.length===1?`Entr\xE9e invalide : ${A(t.values[0])} attendu`:`Option invalide : une valeur parmi ${R(t.values,"|")} attendue`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Trop grand : ${o[t.origin]??"valeur"} doit ${s.verb} ${i}${t.maximum.toString()} ${s.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${o[t.origin]??"valeur"} doit \xEAtre ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Trop petit : ${o[t.origin]??"valeur"} doit ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`Trop petit : ${o[t.origin]??"valeur"} doit \xEAtre ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${i.pattern}`:`${r[i.format]??t.format} invalide`}case "not_multiple_of":return `Nombre invalide : doit \xEAtre un multiple de ${t.divisor}`;case "unrecognized_keys":return `Cl\xE9${t.keys.length>1?"s":""} non reconnue${t.keys.length>1?"s":""} : ${R(t.keys,", ")}`;case "invalid_key":return `Cl\xE9 invalide dans ${t.origin}`;case "invalid_union":return "Entr\xE9e invalide";case "invalid_element":return `Valeur invalide dans ${t.origin}`;default:return "Entr\xE9e invalide"}}};function Aw(){return {localeError:lD()}}var uD=()=>{let e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function n(t){return e[t]??null}let r={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Entr\xE9e invalide : attendu instanceof ${t.expected}, re\xE7u ${c}`:`Entr\xE9e invalide : attendu ${i}, re\xE7u ${c}`}case "invalid_value":return t.values.length===1?`Entr\xE9e invalide : attendu ${A(t.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"\u2264":"<",s=n(t.origin);return s?`Trop grand : attendu que ${t.origin??"la valeur"} ait ${i}${t.maximum.toString()} ${s.unit}`:`Trop grand : attendu que ${t.origin??"la valeur"} soit ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?"\u2265":">",s=n(t.origin);return s?`Trop petit : attendu que ${t.origin} ait ${i}${t.minimum.toString()} ${s.unit}`:`Trop petit : attendu que ${t.origin} soit ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${i.pattern}`:`${r[i.format]??t.format} invalide`}case "not_multiple_of":return `Nombre invalide : doit \xEAtre un multiple de ${t.divisor}`;case "unrecognized_keys":return `Cl\xE9${t.keys.length>1?"s":""} non reconnue${t.keys.length>1?"s":""} : ${R(t.keys,", ")}`;case "invalid_key":return `Cl\xE9 invalide dans ${t.origin}`;case "invalid_union":return "Entr\xE9e invalide";case "invalid_element":return `Valeur invalide dans ${t.origin}`;default:return "Entr\xE9e invalide"}}};function Dw(){return {localeError:uD()}}var dD=()=>{let e={string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA",gender:"f"},number:{label:"\u05DE\u05E1\u05E4\u05E8",gender:"m"},boolean:{label:"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA",gender:"m"},array:{label:"\u05DE\u05E2\u05E8\u05DA",gender:"m"},object:{label:"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8",gender:"m"},null:{label:"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)",gender:"m"},undefined:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)",gender:"m"},symbol:{label:"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)",gender:"m"},function:{label:"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4",gender:"f"},map:{label:"\u05DE\u05E4\u05D4 (Map)",gender:"f"},set:{label:"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)",gender:"f"},file:{label:"\u05E7\u05D5\u05D1\u05E5",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2",gender:"m"},value:{label:"\u05E2\u05E8\u05DA",gender:"m"}},n={string:{unit:"\u05EA\u05D5\u05D5\u05D9\u05DD",shortLabel:"\u05E7\u05E6\u05E8",longLabel:"\u05D0\u05E8\u05D5\u05DA"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},number:{unit:"",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"}},r=d=>d?e[d]:void 0,o=d=>{let m=r(d);return m?m.label:d??e.unknown.label},t=d=>`\u05D4${o(d)}`,i=d=>(r(d)?.gender??"m")==="f"?"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA":"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA",s=d=>d?n[d]??null:null,c={regex:{label:"\u05E7\u05DC\u05D8",gender:"m"},email:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",gender:"f"},url:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",gender:"f"},emoji:{label:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",gender:"m"},time:{label:"\u05D6\u05DE\u05DF ISO",gender:"m"},duration:{label:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",gender:"m"},ipv4:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",gender:"f"},ipv6:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",gender:"f"},cidrv4:{label:"\u05D8\u05D5\u05D5\u05D7 IPv4",gender:"m"},cidrv6:{label:"\u05D8\u05D5\u05D5\u05D7 IPv6",gender:"m"},base64:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",gender:"f"},base64url:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",gender:"f"},json_string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",gender:"f"},e164:{label:"\u05DE\u05E1\u05E4\u05E8 E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},includes:{label:"\u05E7\u05DC\u05D8",gender:"m"},lowercase:{label:"\u05E7\u05DC\u05D8",gender:"m"},starts_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},uppercase:{label:"\u05E7\u05DC\u05D8",gender:"m"}},l={nan:"NaN"};return d=>{switch(d.code){case "invalid_type":{let m=d.expected,p=l[m??""]??o(m),f=F(d.input),g=l[f]??e[f]?.label??f;return /^[A-Z]/.test(d.expected)?`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA instanceof ${d.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${g}`:`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${p}, \u05D4\u05EA\u05E7\u05D1\u05DC ${g}`}case "invalid_value":{if(d.values.length===1)return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${A(d.values[0])}`;let m=d.values.map(g=>A(g));if(d.values.length===2)return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${m[0]} \u05D0\u05D5 ${m[1]}`;let p=m[m.length-1];return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${m.slice(0,-1).join(", ")} \u05D0\u05D5 ${p}`}case "too_big":{let m=s(d.origin),p=t(d.origin??"value");if(d.origin==="string")return `${m?.longLabel??"\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${d.maximum.toString()} ${m?.unit??""} ${d.inclusive?"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA":"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim();if(d.origin==="number"){let h=d.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${d.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${d.maximum}`;return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${h}`}if(d.origin==="array"||d.origin==="set"){let h=d.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",x=d.inclusive?`${d.maximum} ${m?.unit??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${d.maximum} ${m?.unit??""}`;return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} ${h} \u05DC\u05D4\u05DB\u05D9\u05DC ${x}`.trim()}let f=d.inclusive?"<=":"<",g=i(d.origin??"value");return m?.unit?`${m.longLabel} \u05DE\u05D3\u05D9: ${p} ${g} ${f}${d.maximum.toString()} ${m.unit}`:`${m?.longLabel??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${p} ${g} ${f}${d.maximum.toString()}`}case "too_small":{let m=s(d.origin),p=t(d.origin??"value");if(d.origin==="string")return `${m?.shortLabel??"\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${d.minimum.toString()} ${m?.unit??""} ${d.inclusive?"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8":"\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim();if(d.origin==="number"){let h=d.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${d.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${d.minimum}`;return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${h}`}if(d.origin==="array"||d.origin==="set"){let h=d.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(d.minimum===1&&d.inclusive){let S=(d.origin==="set","\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3");return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${h} \u05DC\u05D4\u05DB\u05D9\u05DC ${S}`}let x=d.inclusive?`${d.minimum} ${m?.unit??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${d.minimum} ${m?.unit??""}`;return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${h} \u05DC\u05D4\u05DB\u05D9\u05DC ${x}`.trim()}let f=d.inclusive?">=":">",g=i(d.origin??"value");return m?.unit?`${m.shortLabel} \u05DE\u05D3\u05D9: ${p} ${g} ${f}${d.minimum.toString()} ${m.unit}`:`${m?.shortLabel??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${p} ${g} ${f}${d.minimum.toString()}`}case "invalid_format":{let m=d;if(m.format==="starts_with")return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${m.prefix}"`;if(m.format==="ends_with")return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${m.suffix}"`;if(m.format==="includes")return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${m.includes}"`;if(m.format==="regex")return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${m.pattern}`;let p=c[m.format],f=p?.label??m.format,h=(p?.gender??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return `${f} \u05DC\u05D0 ${h}`}case "not_multiple_of":return `\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${d.divisor}`;case "unrecognized_keys":return `\u05DE\u05E4\u05EA\u05D7${d.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${d.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${R(d.keys,", ")}`;case "invalid_key":return "\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case "invalid_union":return "\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case "invalid_element":return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${t(d.origin??"array")}`;default:return "\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function Fw(){return {localeError:dD()}}var mD=()=>{let e={string:{unit:"znakova",verb:"imati"},file:{unit:"bajtova",verb:"imati"},array:{unit:"stavki",verb:"imati"},set:{unit:"stavki",verb:"imati"}};function n(t){return e[t]??null}let r={regex:"unos",email:"email adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum i vrijeme",date:"ISO datum",time:"ISO vrijeme",duration:"ISO trajanje",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"IPv4 raspon",cidrv6:"IPv6 raspon",base64:"base64 kodirani tekst",base64url:"base64url kodirani tekst",json_string:"JSON tekst",e164:"E.164 broj",jwt:"JWT",template_literal:"unos"},o={nan:"NaN",string:"tekst",number:"broj",boolean:"boolean",array:"niz",object:"objekt",set:"skup",file:"datoteka",date:"datum",bigint:"bigint",symbol:"simbol",undefined:"undefined",null:"null",function:"funkcija",map:"mapa"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Neispravan unos: o\u010Dekuje se instanceof ${t.expected}, a primljeno je ${c}`:`Neispravan unos: o\u010Dekuje se ${i}, a primljeno je ${c}`}case "invalid_value":return t.values.length===1?`Neispravna vrijednost: o\u010Dekivano ${A(t.values[0])}`:`Neispravna opcija: o\u010Dekivano jedno od ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin),c=o[t.origin]??t.origin;return s?`Preveliko: o\u010Dekivano da ${c??"vrijednost"} ima ${i}${t.maximum.toString()} ${s.unit??"elemenata"}`:`Preveliko: o\u010Dekivano da ${c??"vrijednost"} bude ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin),c=o[t.origin]??t.origin;return s?`Premalo: o\u010Dekivano da ${c} ima ${i}${t.minimum.toString()} ${s.unit}`:`Premalo: o\u010Dekivano da ${c} bude ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Neispravan tekst: mora zapo\u010Dinjati s "${i.prefix}"`:i.format==="ends_with"?`Neispravan tekst: mora zavr\u0161avati s "${i.suffix}"`:i.format==="includes"?`Neispravan tekst: mora sadr\u017Eavati "${i.includes}"`:i.format==="regex"?`Neispravan tekst: mora odgovarati uzorku ${i.pattern}`:`Neispravna ${r[i.format]??t.format}`}case "not_multiple_of":return `Neispravan broj: mora biti vi\u0161ekratnik od ${t.divisor}`;case "unrecognized_keys":return `Neprepoznat${t.keys.length>1?"i klju\u010Devi":" klju\u010D"}: ${R(t.keys,", ")}`;case "invalid_key":return `Neispravan klju\u010D u ${o[t.origin]??t.origin}`;case "invalid_union":return "Neispravan unos";case "invalid_element":return `Neispravna vrijednost u ${o[t.origin]??t.origin}`;default:return "Neispravan unos"}}};function Nw(){return {localeError:mD()}}var pD=()=>{let e={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function n(t){return e[t]??null}let r={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"},o={nan:"NaN",number:"sz\xE1m",array:"t\xF6mb"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k instanceof ${t.expected}, a kapott \xE9rt\xE9k ${c}`:`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${i}, a kapott \xE9rt\xE9k ${c}`}case "invalid_value":return t.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${A(t.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`T\xFAl nagy: ${t.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${i}${t.maximum.toString()} ${s.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${t.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${t.origin} m\xE9rete t\xFAl kicsi ${i}${t.minimum.toString()} ${s.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${t.origin} t\xFAl kicsi ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\xC9rv\xE9nytelen string: "${i.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:i.format==="ends_with"?`\xC9rv\xE9nytelen string: "${i.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:i.format==="includes"?`\xC9rv\xE9nytelen string: "${i.includes}" \xE9rt\xE9ket kell tartalmaznia`:i.format==="regex"?`\xC9rv\xE9nytelen string: ${i.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${r[i.format]??t.format}`}case "not_multiple_of":return `\xC9rv\xE9nytelen sz\xE1m: ${t.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case "unrecognized_keys":return `Ismeretlen kulcs${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `\xC9rv\xE9nytelen kulcs ${t.origin}`;case "invalid_union":return "\xC9rv\xE9nytelen bemenet";case "invalid_element":return `\xC9rv\xE9nytelen \xE9rt\xE9k: ${t.origin}`;default:return "\xC9rv\xE9nytelen bemenet"}}};function Lw(){return {localeError:pD()}}function Vw(e,n,r){return Math.abs(e)===1?n:r}function ca(e){if(!e)return "";let n=["\u0561","\u0565","\u0568","\u056B","\u0578","\u0578\u0582","\u0585"],r=e[e.length-1];return e+(n.includes(r)?"\u0576":"\u0568")}var fD=()=>{let e={string:{unit:{one:"\u0576\u0577\u0561\u0576",many:"\u0576\u0577\u0561\u0576\u0576\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},file:{unit:{one:"\u0562\u0561\u0575\u0569",many:"\u0562\u0561\u0575\u0569\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},array:{unit:{one:"\u057F\u0561\u0580\u0580",many:"\u057F\u0561\u0580\u0580\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},set:{unit:{one:"\u057F\u0561\u0580\u0580",many:"\u057F\u0561\u0580\u0580\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"}};function n(t){return e[t]??null}let r={regex:"\u0574\u0578\u0582\u057F\u0584",email:"\u0567\u056C. \u0570\u0561\u057D\u0581\u0565",url:"URL",emoji:"\u0567\u0574\u0578\u057B\u056B",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E \u0587 \u056A\u0561\u0574",date:"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E",time:"ISO \u056A\u0561\u0574",duration:"ISO \u057F\u0587\u0578\u0572\u0578\u0582\u0569\u0575\u0578\u0582\u0576",ipv4:"IPv4 \u0570\u0561\u057D\u0581\u0565",ipv6:"IPv6 \u0570\u0561\u057D\u0581\u0565",cidrv4:"IPv4 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584",cidrv6:"IPv6 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584",base64:"base64 \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572",base64url:"base64url \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572",json_string:"JSON \u057F\u0578\u0572",e164:"E.164 \u0570\u0561\u0574\u0561\u0580",jwt:"JWT",template_literal:"\u0574\u0578\u0582\u057F\u0584"},o={nan:"NaN",number:"\u0569\u056B\u057E",array:"\u0566\u0561\u0576\u0563\u057E\u0561\u056E"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 instanceof ${t.expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${c}`:`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${i}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${c}`}case "invalid_value":return t.values.length===1?`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${A(t.values[1])}`:`\u054D\u056D\u0561\u056C \u057F\u0561\u0580\u0562\u0565\u0580\u0561\u056F\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 \u0570\u0565\u057F\u0587\u0575\u0561\u056C\u0576\u0565\u0580\u056B\u0581 \u0574\u0565\u056F\u0568\u055D ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);if(s){let c=Number(t.maximum),l=Vw(c,s.unit.one,s.unit.many);return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${ca(t.origin??"\u0561\u0580\u056A\u0565\u0584")} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${i}${t.maximum.toString()} ${l}`}return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${ca(t.origin??"\u0561\u0580\u056A\u0565\u0584")} \u056C\u056B\u0576\u056B ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);if(s){let c=Number(t.minimum),l=Vw(c,s.unit.one,s.unit.many);return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${ca(t.origin)} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${i}${t.minimum.toString()} ${l}`}return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${ca(t.origin)} \u056C\u056B\u0576\u056B ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057D\u056F\u057D\u057E\u056B "${i.prefix}"-\u0578\u057E`:i.format==="ends_with"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0561\u057E\u0561\u0580\u057F\u057E\u056B "${i.suffix}"-\u0578\u057E`:i.format==="includes"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057A\u0561\u0580\u0578\u0582\u0576\u0561\u056F\u056B "${i.includes}"`:i.format==="regex"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0570\u0561\u0574\u0561\u057A\u0561\u057F\u0561\u057D\u056D\u0561\u0576\u056B ${i.pattern} \u0571\u0587\u0561\u0579\u0561\u0583\u056B\u0576`:`\u054D\u056D\u0561\u056C ${r[i.format]??t.format}`}case "not_multiple_of":return `\u054D\u056D\u0561\u056C \u0569\u056B\u057E\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0562\u0561\u0566\u0574\u0561\u057A\u0561\u057F\u056B\u056F \u056C\u056B\u0576\u056B ${t.divisor}-\u056B`;case "unrecognized_keys":return `\u0549\u0573\u0561\u0576\u0561\u0579\u057E\u0561\u056E \u0562\u0561\u0576\u0561\u056C\u056B${t.keys.length>1?"\u0576\u0565\u0580":""}. ${R(t.keys,", ")}`;case "invalid_key":return `\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${ca(t.origin)}-\u0578\u0582\u0574`;case "invalid_union":return "\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574";case "invalid_element":return `\u054D\u056D\u0561\u056C \u0561\u0580\u056A\u0565\u0584 ${ca(t.origin)}-\u0578\u0582\u0574`;default:return "\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574"}}};function Bw(){return {localeError:fD()}}var gD=()=>{let e={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function n(t){return e[t]??null}let r={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Input tidak valid: diharapkan instanceof ${t.expected}, diterima ${c}`:`Input tidak valid: diharapkan ${i}, diterima ${c}`}case "invalid_value":return t.values.length===1?`Input tidak valid: diharapkan ${A(t.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Terlalu besar: diharapkan ${t.origin??"value"} memiliki ${i}${t.maximum.toString()} ${s.unit??"elemen"}`:`Terlalu besar: diharapkan ${t.origin??"value"} menjadi ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Terlalu kecil: diharapkan ${t.origin} memiliki ${i}${t.minimum.toString()} ${s.unit}`:`Terlalu kecil: diharapkan ${t.origin} menjadi ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`String tidak valid: harus dimulai dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak valid: harus berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak valid: harus menyertakan "${i.includes}"`:i.format==="regex"?`String tidak valid: harus sesuai pola ${i.pattern}`:`${r[i.format]??t.format} tidak valid`}case "not_multiple_of":return `Angka tidak valid: harus kelipatan dari ${t.divisor}`;case "unrecognized_keys":return `Kunci tidak dikenali ${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Kunci tidak valid di ${t.origin}`;case "invalid_union":return "Input tidak valid";case "invalid_element":return `Nilai tidak valid di ${t.origin}`;default:return "Input tidak valid"}}};function Mw(){return {localeError:gD()}}var hD=()=>{let e={string:{unit:"stafi",verb:"a\xF0 hafa"},file:{unit:"b\xE6ti",verb:"a\xF0 hafa"},array:{unit:"hluti",verb:"a\xF0 hafa"},set:{unit:"hluti",verb:"a\xF0 hafa"}};function n(t){return e[t]??null}let r={regex:"gildi",email:"netfang",url:"vefsl\xF3\xF0",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og t\xEDmi",date:"ISO dagsetning",time:"ISO t\xEDmi",duration:"ISO t\xEDmalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 t\xF6lugildi",jwt:"JWT",template_literal:"gildi"},o={nan:"NaN",number:"n\xFAmer",array:"fylki"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Rangt gildi: \xDE\xFA sl\xF3st inn ${c} \xFEar sem \xE1 a\xF0 vera instanceof ${t.expected}`:`Rangt gildi: \xDE\xFA sl\xF3st inn ${c} \xFEar sem \xE1 a\xF0 vera ${i}`}case "invalid_value":return t.values.length===1?`Rangt gildi: gert r\xE1\xF0 fyrir ${A(t.values[0])}`:`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin??"gildi"} hafi ${i}${t.maximum.toString()} ${s.unit??"hluti"}`:`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin??"gildi"} s\xE9 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin} hafi ${i}${t.minimum.toString()} ${s.unit}`:`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin} s\xE9 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${i.prefix}"`:i.format==="ends_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${i.suffix}"`:i.format==="includes"?`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${i.includes}"`:i.format==="regex"?`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${i.pattern}`:`Rangt ${r[i.format]??t.format}`}case "not_multiple_of":return `R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${t.divisor}`;case "unrecognized_keys":return `\xD3\xFEekkt ${t.keys.length>1?"ir lyklar":"ur lykill"}: ${R(t.keys,", ")}`;case "invalid_key":return `Rangur lykill \xED ${t.origin}`;case "invalid_union":return "Rangt gildi";case "invalid_element":return `Rangt gildi \xED ${t.origin}`;default:return "Rangt gildi"}}};function Zw(){return {localeError:hD()}}var bD=()=>{let e={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function n(t){return e[t]??null}let r={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"},o={nan:"NaN",number:"numero",array:"vettore"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Input non valido: atteso instanceof ${t.expected}, ricevuto ${c}`:`Input non valido: atteso ${i}, ricevuto ${c}`}case "invalid_value":return t.values.length===1?`Input non valido: atteso ${A(t.values[0])}`:`Opzione non valida: atteso uno tra ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Troppo grande: ${t.origin??"valore"} deve avere ${i}${t.maximum.toString()} ${s.unit??"elementi"}`:`Troppo grande: ${t.origin??"valore"} deve essere ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Troppo piccolo: ${t.origin} deve avere ${i}${t.minimum.toString()} ${s.unit}`:`Troppo piccolo: ${t.origin} deve essere ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Stringa non valida: deve iniziare con "${i.prefix}"`:i.format==="ends_with"?`Stringa non valida: deve terminare con "${i.suffix}"`:i.format==="includes"?`Stringa non valida: deve includere "${i.includes}"`:i.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${i.pattern}`:`Input non valido: ${r[i.format]??t.format}`}case "not_multiple_of":return `Numero non valido: deve essere un multiplo di ${t.divisor}`;case "unrecognized_keys":return `Chiav${t.keys.length>1?"i":"e"} non riconosciut${t.keys.length>1?"e":"a"}: ${R(t.keys,", ")}`;case "invalid_key":return `Chiave non valida in ${t.origin}`;case "invalid_union":return "Input non valido";case "invalid_element":return `Valore non valido in ${t.origin}`;default:return "Input non valido"}}};function qw(){return {localeError:bD()}}var _D=()=>{let e={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function n(t){return e[t]??null}let r={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"},o={nan:"NaN",number:"\u6570\u5024",array:"\u914D\u5217"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u7121\u52B9\u306A\u5165\u529B: instanceof ${t.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${c}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u5165\u529B: ${i}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${c}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`}case "invalid_value":return t.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${A(t.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${R(t.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case "too_big":{let i=t.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",s=n(t.origin);return s?`\u5927\u304D\u3059\u304E\u308B\u5024: ${t.origin??"\u5024"}\u306F${t.maximum.toString()}${s.unit??"\u8981\u7D20"}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${t.origin??"\u5024"}\u306F${t.maximum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case "too_small":{let i=t.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",s=n(t.origin);return s?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${t.origin}\u306F${t.minimum.toString()}${s.unit}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${t.origin}\u306F${t.minimum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${i.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${r[i.format]??t.format}`}case "not_multiple_of":return `\u7121\u52B9\u306A\u6570\u5024: ${t.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case "unrecognized_keys":return `\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${t.keys.length>1?"\u7FA4":""}: ${R(t.keys,"\u3001")}`;case "invalid_key":return `${t.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case "invalid_union":return "\u7121\u52B9\u306A\u5165\u529B";case "invalid_element":return `${t.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return "\u7121\u52B9\u306A\u5165\u529B"}}};function Hw(){return {localeError:_D()}}var vD=()=>{let e={string:{unit:"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},file:{unit:"\u10D1\u10D0\u10D8\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},array:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},set:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"}};function n(t){return e[t]??null}let r={regex:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",email:"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",url:"URL",emoji:"\u10D4\u10DB\u10DD\u10EF\u10D8",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",date:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",time:"\u10D3\u10E0\u10DD",duration:"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",ipv4:"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",ipv6:"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",cidrv4:"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",cidrv6:"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",base64:"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8",base64url:"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8",json_string:"JSON \u10D5\u10D4\u10DA\u10D8",e164:"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",jwt:"JWT",template_literal:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"},o={nan:"NaN",number:"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8",string:"\u10D5\u10D4\u10DA\u10D8",boolean:"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",function:"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0",array:"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 instanceof ${t.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${c}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${i}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${c}`}case "invalid_value":return t.values.length===1?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${A(t.values[0])}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${R(t.values,"|")}-\u10D3\u10D0\u10DC`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${s.verb} ${i}${t.maximum.toString()} ${s.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin} ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin} \u10D8\u10E7\u10DD\u10E1 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.prefix}"-\u10D8\u10D7`:i.format==="ends_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.suffix}"-\u10D8\u10D7`:i.format==="includes"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${i.includes}"-\u10E1`:i.format==="regex"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${i.pattern}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${t.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case "unrecognized_keys":return `\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${t.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${R(t.keys,", ")}`;case "invalid_key":return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${t.origin}-\u10E8\u10D8`;case "invalid_union":return "\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case "invalid_element":return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${t.origin}-\u10E8\u10D8`;default:return "\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};function Kw(){return {localeError:vD()}}var yD=()=>{let e={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function n(t){return e[t]??null}let r={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"},o={nan:"NaN",number:"\u179B\u17C1\u1781",array:"\u17A2\u17B6\u179A\u17C1 (Array)",null:"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A instanceof ${t.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${c}`:`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${c}`}case "invalid_value":return t.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${A(t.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${t.maximum.toString()} ${s.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin} ${i} ${t.minimum.toString()} ${s.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin} ${i} ${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${i.prefix}"`:i.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${i.suffix}"`:i.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${i.includes}"`:i.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${i.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${t.divisor}`;case "unrecognized_keys":return `\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${R(t.keys,", ")}`;case "invalid_key":return `\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${t.origin}`;case "invalid_union":return "\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case "invalid_element":return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${t.origin}`;default:return "\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function Dd(){return {localeError:yD()}}function Gw(){return Dd()}var xD=()=>{let e={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function n(t){return e[t]??null}let r={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 instanceof ${t.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${c}\uC785\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${i}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${c}\uC785\uB2C8\uB2E4`}case "invalid_value":return t.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${A(t.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${R(t.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case "too_big":{let i=t.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",s=i==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",c=n(t.origin),l=c?.unit??"\uC694\uC18C";return c?`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${t.maximum.toString()}${l} ${i}${s}`:`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${t.maximum.toString()} ${i}${s}`}case "too_small":{let i=t.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",s=i==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",c=n(t.origin),l=c?.unit??"\uC694\uC18C";return c?`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${t.minimum.toString()}${l} ${i}${s}`:`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${t.minimum.toString()} ${i}${s}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:i.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${i.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${r[i.format]??t.format}`}case "not_multiple_of":return `\uC798\uBABB\uB41C \uC22B\uC790: ${t.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case "unrecognized_keys":return `\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${R(t.keys,", ")}`;case "invalid_key":return `\uC798\uBABB\uB41C \uD0A4: ${t.origin}`;case "invalid_union":return "\uC798\uBABB\uB41C \uC785\uB825";case "invalid_element":return `\uC798\uBABB\uB41C \uAC12: ${t.origin}`;default:return "\uC798\uBABB\uB41C \uC785\uB825"}}};function Jw(){return {localeError:xD()}}var Fc=e=>e.charAt(0).toUpperCase()+e.slice(1);function Ww(e){let n=Math.abs(e),r=n%10,o=n%100;return o>=11&&o<=19||r===0?"many":r===1?"one":"few"}var SD=()=>{let e={string:{unit:{one:"simbolis",few:"simboliai",many:"simboli\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne ilgesn\u0117 kaip",notInclusive:"turi b\u016Bti trumpesn\u0117 kaip"},bigger:{inclusive:"turi b\u016Bti ne trumpesn\u0117 kaip",notInclusive:"turi b\u016Bti ilgesn\u0117 kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"bait\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne didesnis kaip",notInclusive:"turi b\u016Bti ma\u017Eesnis kaip"},bigger:{inclusive:"turi b\u016Bti ne ma\u017Eesnis kaip",notInclusive:"turi b\u016Bti didesnis kaip"}}},array:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}},set:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}}};function n(t,i,s,c){let l=e[t]??null;return l===null?l:{unit:l.unit[i],verb:l.verb[c][s?"inclusive":"notInclusive"]}}let r={regex:"\u012Fvestis",email:"el. pa\u0161to adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukm\u0117",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 u\u017Ekoduota eilut\u0117",base64url:"base64url u\u017Ekoduota eilut\u0117",json_string:"JSON eilut\u0117",e164:"E.164 numeris",jwt:"JWT",template_literal:"\u012Fvestis"},o={nan:"NaN",number:"skai\u010Dius",bigint:"sveikasis skai\u010Dius",string:"eilut\u0117",boolean:"login\u0117 reik\u0161m\u0117",undefined:"neapibr\u0117\u017Eta reik\u0161m\u0117",function:"funkcija",symbol:"simbolis",array:"masyvas",object:"objektas",null:"nulin\u0117 reik\u0161m\u0117"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Gautas tipas ${c}, o tik\u0117tasi - instanceof ${t.expected}`:`Gautas tipas ${c}, o tik\u0117tasi - ${i}`}case "invalid_value":return t.values.length===1?`Privalo b\u016Bti ${A(t.values[0])}`:`Privalo b\u016Bti vienas i\u0161 ${R(t.values,"|")} pasirinkim\u0173`;case "too_big":{let i=o[t.origin]??t.origin,s=n(t.origin,Ww(Number(t.maximum)),t.inclusive??false,"smaller");if(s?.verb)return `${Fc(i??t.origin??"reik\u0161m\u0117")} ${s.verb} ${t.maximum.toString()} ${s.unit??"element\u0173"}`;let c=t.inclusive?"ne didesnis kaip":"ma\u017Eesnis kaip";return `${Fc(i??t.origin??"reik\u0161m\u0117")} turi b\u016Bti ${c} ${t.maximum.toString()} ${s?.unit}`}case "too_small":{let i=o[t.origin]??t.origin,s=n(t.origin,Ww(Number(t.minimum)),t.inclusive??false,"bigger");if(s?.verb)return `${Fc(i??t.origin??"reik\u0161m\u0117")} ${s.verb} ${t.minimum.toString()} ${s.unit??"element\u0173"}`;let c=t.inclusive?"ne ma\u017Eesnis kaip":"didesnis kaip";return `${Fc(i??t.origin??"reik\u0161m\u0117")} turi b\u016Bti ${c} ${t.minimum.toString()} ${s?.unit}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Eilut\u0117 privalo prasid\u0117ti "${i.prefix}"`:i.format==="ends_with"?`Eilut\u0117 privalo pasibaigti "${i.suffix}"`:i.format==="includes"?`Eilut\u0117 privalo \u012Ftraukti "${i.includes}"`:i.format==="regex"?`Eilut\u0117 privalo atitikti ${i.pattern}`:`Neteisingas ${r[i.format]??t.format}`}case "not_multiple_of":return `Skai\u010Dius privalo b\u016Bti ${t.divisor} kartotinis.`;case "unrecognized_keys":return `Neatpa\u017Eint${t.keys.length>1?"i":"as"} rakt${t.keys.length>1?"ai":"as"}: ${R(t.keys,", ")}`;case "invalid_key":return "Rastas klaidingas raktas";case "invalid_union":return "Klaidinga \u012Fvestis";case "invalid_element":{let i=o[t.origin]??t.origin;return `${Fc(i??t.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return "Klaidinga \u012Fvestis"}}};function Xw(){return {localeError:SD()}}var ID=()=>{let e={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function n(t){return e[t]??null}let r={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"},o={nan:"NaN",number:"\u0431\u0440\u043E\u0458",array:"\u043D\u0438\u0437\u0430"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 instanceof ${t.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${c}`:`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${c}`}case "invalid_value":return t.values.length===1?`Invalid input: expected ${A(t.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${i}${t.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin} \u0434\u0430 \u0438\u043C\u0430 ${i}${t.minimum.toString()} ${s.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${i.pattern}`:`Invalid ${r[i.format]??t.format}`}case "not_multiple_of":return `\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${t.divisor}`;case "unrecognized_keys":return `${t.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${R(t.keys,", ")}`;case "invalid_key":return `\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${t.origin}`;case "invalid_union":return "\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case "invalid_element":return `\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${t.origin}`;default:return "\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function Yw(){return {localeError:ID()}}var PD=()=>{let e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function n(t){return e[t]??null}let r={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"},o={nan:"NaN",number:"nombor"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Input tidak sah: dijangka instanceof ${t.expected}, diterima ${c}`:`Input tidak sah: dijangka ${i}, diterima ${c}`}case "invalid_value":return t.values.length===1?`Input tidak sah: dijangka ${A(t.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Terlalu besar: dijangka ${t.origin??"nilai"} ${s.verb} ${i}${t.maximum.toString()} ${s.unit??"elemen"}`:`Terlalu besar: dijangka ${t.origin??"nilai"} adalah ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Terlalu kecil: dijangka ${t.origin} ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`Terlalu kecil: dijangka ${t.origin} adalah ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`String tidak sah: mesti bermula dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak sah: mesti mengandungi "${i.includes}"`:i.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${i.pattern}`:`${r[i.format]??t.format} tidak sah`}case "not_multiple_of":return `Nombor tidak sah: perlu gandaan ${t.divisor}`;case "unrecognized_keys":return `Kunci tidak dikenali: ${R(t.keys,", ")}`;case "invalid_key":return `Kunci tidak sah dalam ${t.origin}`;case "invalid_union":return "Input tidak sah";case "invalid_element":return `Nilai tidak sah dalam ${t.origin}`;default:return "Input tidak sah"}}};function Qw(){return {localeError:PD()}}var kD=()=>{let e={string:{unit:"tekens",verb:"heeft"},file:{unit:"bytes",verb:"heeft"},array:{unit:"elementen",verb:"heeft"},set:{unit:"elementen",verb:"heeft"}};function n(t){return e[t]??null}let r={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"},o={nan:"NaN",number:"getal"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Ongeldige invoer: verwacht instanceof ${t.expected}, ontving ${c}`:`Ongeldige invoer: verwacht ${i}, ontving ${c}`}case "invalid_value":return t.values.length===1?`Ongeldige invoer: verwacht ${A(t.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin),c=t.origin==="date"?"laat":t.origin==="string"?"lang":"groot";return s?`Te ${c}: verwacht dat ${t.origin??"waarde"} ${i}${t.maximum.toString()} ${s.unit??"elementen"} ${s.verb}`:`Te ${c}: verwacht dat ${t.origin??"waarde"} ${i}${t.maximum.toString()} is`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin),c=t.origin==="date"?"vroeg":t.origin==="string"?"kort":"klein";return s?`Te ${c}: verwacht dat ${t.origin} ${i}${t.minimum.toString()} ${s.unit} ${s.verb}`:`Te ${c}: verwacht dat ${t.origin} ${i}${t.minimum.toString()} is`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ongeldige tekst: moet met "${i.prefix}" beginnen`:i.format==="ends_with"?`Ongeldige tekst: moet op "${i.suffix}" eindigen`:i.format==="includes"?`Ongeldige tekst: moet "${i.includes}" bevatten`:i.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${i.pattern}`:`Ongeldig: ${r[i.format]??t.format}`}case "not_multiple_of":return `Ongeldig getal: moet een veelvoud van ${t.divisor} zijn`;case "unrecognized_keys":return `Onbekende key${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Ongeldige key in ${t.origin}`;case "invalid_union":return "Ongeldige invoer";case "invalid_element":return `Ongeldige waarde in ${t.origin}`;default:return "Ongeldige invoer"}}};function eR(){return {localeError:kD()}}var TD=()=>{let e={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function n(t){return e[t]??null}let r={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},o={nan:"NaN",number:"tall",array:"liste"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Ugyldig input: forventet instanceof ${t.expected}, fikk ${c}`:`Ugyldig input: forventet ${i}, fikk ${c}`}case "invalid_value":return t.values.length===1?`Ugyldig verdi: forventet ${A(t.values[0])}`:`Ugyldig valg: forventet en av ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`For stor(t): forventet ${t.origin??"value"} til \xE5 ha ${i}${t.maximum.toString()} ${s.unit??"elementer"}`:`For stor(t): forventet ${t.origin??"value"} til \xE5 ha ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`For lite(n): forventet ${t.origin} til \xE5 ha ${i}${t.minimum.toString()} ${s.unit}`:`For lite(n): forventet ${t.origin} til \xE5 ha ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${i.prefix}"`:i.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${i.suffix}"`:i.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${i.includes}"`:i.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${i.pattern}`:`Ugyldig ${r[i.format]??t.format}`}case "not_multiple_of":return `Ugyldig tall: m\xE5 v\xE6re et multiplum av ${t.divisor}`;case "unrecognized_keys":return `${t.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${R(t.keys,", ")}`;case "invalid_key":return `Ugyldig n\xF8kkel i ${t.origin}`;case "invalid_union":return "Ugyldig input";case "invalid_element":return `Ugyldig verdi i ${t.origin}`;default:return "Ugyldig input"}}};function tR(){return {localeError:TD()}}var $D=()=>{let e={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function n(t){return e[t]??null}let r={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"},o={nan:"NaN",number:"numara",array:"saf",null:"gayb"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`F\xE2sit giren: umulan instanceof ${t.expected}, al\u0131nan ${c}`:`F\xE2sit giren: umulan ${i}, al\u0131nan ${c}`}case "invalid_value":return t.values.length===1?`F\xE2sit giren: umulan ${A(t.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Fazla b\xFCy\xFCk: ${t.origin??"value"}, ${i}${t.maximum.toString()} ${s.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${t.origin??"value"}, ${i}${t.maximum.toString()} olmal\u0131yd\u0131.`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Fazla k\xFC\xE7\xFCk: ${t.origin}, ${i}${t.minimum.toString()} ${s.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${t.origin}, ${i}${t.minimum.toString()} olmal\u0131yd\u0131.`}case "invalid_format":{let i=t;return i.format==="starts_with"?`F\xE2sit metin: "${i.prefix}" ile ba\u015Flamal\u0131.`:i.format==="ends_with"?`F\xE2sit metin: "${i.suffix}" ile bitmeli.`:i.format==="includes"?`F\xE2sit metin: "${i.includes}" ihtiv\xE2 etmeli.`:i.format==="regex"?`F\xE2sit metin: ${i.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${r[i.format]??t.format}`}case "not_multiple_of":return `F\xE2sit say\u0131: ${t.divisor} kat\u0131 olmal\u0131yd\u0131.`;case "unrecognized_keys":return `Tan\u0131nmayan anahtar ${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} i\xE7in tan\u0131nmayan anahtar var.`;case "invalid_union":return "Giren tan\u0131namad\u0131.";case "invalid_element":return `${t.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return "K\u0131ymet tan\u0131namad\u0131."}}};function nR(){return {localeError:$D()}}var wD=()=>{let e={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function n(t){return e[t]??null}let r={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"},o={nan:"NaN",number:"\u0639\u062F\u062F",array:"\u0627\u0631\u06D0"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F instanceof ${t.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${c} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`:`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${i} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${c} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`}case "invalid_value":return t.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${A(t.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${R(t.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${t.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${t.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${t.maximum.toString()} \u0648\u064A`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${t.origin} \u0628\u0627\u06CC\u062F ${i}${t.minimum.toString()} ${s.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${t.origin} \u0628\u0627\u06CC\u062F ${i}${t.minimum.toString()} \u0648\u064A`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:i.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:i.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${i.includes}" \u0648\u0644\u0631\u064A`:i.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${i.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${r[i.format]??t.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case "not_multiple_of":return `\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${t.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case "unrecognized_keys":return `\u0646\u0627\u0633\u0645 ${t.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${R(t.keys,", ")}`;case "invalid_key":return `\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${t.origin} \u06A9\u06D0`;case "invalid_union":return "\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case "invalid_element":return `\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${t.origin} \u06A9\u06D0`;default:return "\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function rR(){return {localeError:wD()}}var RD=()=>{let e={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function n(t){return e[t]??null}let r={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"},o={nan:"NaN",number:"liczba",array:"tablica"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano instanceof ${t.expected}, otrzymano ${c}`:`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${i}, otrzymano ${c}`}case "invalid_value":return t.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${A(t.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${t.maximum.toString()} ${s.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${t.minimum.toString()} ${s.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${i.prefix}"`:i.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${i.suffix}"`:i.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${i.includes}"`:i.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${i.pattern}`:`Nieprawid\u0142ow(y/a/e) ${r[i.format]??t.format}`}case "not_multiple_of":return `Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${t.divisor}`;case "unrecognized_keys":return `Nierozpoznane klucze${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Nieprawid\u0142owy klucz w ${t.origin}`;case "invalid_union":return "Nieprawid\u0142owe dane wej\u015Bciowe";case "invalid_element":return `Nieprawid\u0142owa warto\u015B\u0107 w ${t.origin}`;default:return "Nieprawid\u0142owe dane wej\u015Bciowe"}}};function iR(){return {localeError:RD()}}var CD=()=>{let e={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function n(t){return e[t]??null}let r={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},o={nan:"NaN",number:"n\xFAmero",null:"nulo"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Tipo inv\xE1lido: esperado instanceof ${t.expected}, recebido ${c}`:`Tipo inv\xE1lido: esperado ${i}, recebido ${c}`}case "invalid_value":return t.values.length===1?`Entrada inv\xE1lida: esperado ${A(t.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Muito grande: esperado que ${t.origin??"valor"} tivesse ${i}${t.maximum.toString()} ${s.unit??"elementos"}`:`Muito grande: esperado que ${t.origin??"valor"} fosse ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Muito pequeno: esperado que ${t.origin} tivesse ${i}${t.minimum.toString()} ${s.unit}`:`Muito pequeno: esperado que ${t.origin} fosse ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${i.prefix}"`:i.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${i.suffix}"`:i.format==="includes"?`Texto inv\xE1lido: deve incluir "${i.includes}"`:i.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${i.pattern}`:`${r[i.format]??t.format} inv\xE1lido`}case "not_multiple_of":return `N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${t.divisor}`;case "unrecognized_keys":return `Chave${t.keys.length>1?"s":""} desconhecida${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Chave inv\xE1lida em ${t.origin}`;case "invalid_union":return "Entrada inv\xE1lida";case "invalid_element":return `Valor inv\xE1lido em ${t.origin}`;default:return "Campo inv\xE1lido"}}};function oR(){return {localeError:CD()}}var ED=()=>{let e={string:{unit:"caractere",verb:"s\u0103 aib\u0103"},file:{unit:"octe\u021Bi",verb:"s\u0103 aib\u0103"},array:{unit:"elemente",verb:"s\u0103 aib\u0103"},set:{unit:"elemente",verb:"s\u0103 aib\u0103"},map:{unit:"intr\u0103ri",verb:"s\u0103 aib\u0103"}};function n(t){return e[t]??null}let r={regex:"intrare",email:"adres\u0103 de email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"dat\u0103 \u0219i or\u0103 ISO",date:"dat\u0103 ISO",time:"or\u0103 ISO",duration:"durat\u0103 ISO",ipv4:"adres\u0103 IPv4",ipv6:"adres\u0103 IPv6",mac:"adres\u0103 MAC",cidrv4:"interval IPv4",cidrv6:"interval IPv6",base64:"\u0219ir codat base64",base64url:"\u0219ir codat base64url",json_string:"\u0219ir JSON",e164:"num\u0103r E.164",jwt:"JWT",template_literal:"intrare"},o={nan:"NaN",string:"\u0219ir",number:"num\u0103r",boolean:"boolean",function:"func\u021Bie",array:"matrice",object:"obiect",undefined:"nedefinit",symbol:"simbol",bigint:"num\u0103r mare",void:"void",never:"never",map:"hart\u0103",set:"set"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return `Intrare invalid\u0103: a\u0219teptat ${i}, primit ${c}`}case "invalid_value":return t.values.length===1?`Intrare invalid\u0103: a\u0219teptat ${A(t.values[0])}`:`Op\u021Biune invalid\u0103: a\u0219teptat una dintre ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Prea mare: a\u0219teptat ca ${t.origin??"valoarea"} ${s.verb} ${i}${t.maximum.toString()} ${s.unit??"elemente"}`:`Prea mare: a\u0219teptat ca ${t.origin??"valoarea"} s\u0103 fie ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Prea mic: a\u0219teptat ca ${t.origin} ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`Prea mic: a\u0219teptat ca ${t.origin} s\u0103 fie ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0218ir invalid: trebuie s\u0103 \xEEnceap\u0103 cu "${i.prefix}"`:i.format==="ends_with"?`\u0218ir invalid: trebuie s\u0103 se termine cu "${i.suffix}"`:i.format==="includes"?`\u0218ir invalid: trebuie s\u0103 includ\u0103 "${i.includes}"`:i.format==="regex"?`\u0218ir invalid: trebuie s\u0103 se potriveasc\u0103 cu modelul ${i.pattern}`:`Format invalid: ${r[i.format]??t.format}`}case "not_multiple_of":return `Num\u0103r invalid: trebuie s\u0103 fie multiplu de ${t.divisor}`;case "unrecognized_keys":return `Chei nerecunoscute: ${R(t.keys,", ")}`;case "invalid_key":return `Cheie invalid\u0103 \xEEn ${t.origin}`;case "invalid_union":return "Intrare invalid\u0103";case "invalid_element":return `Valoare invalid\u0103 \xEEn ${t.origin}`;default:return "Intrare invalid\u0103"}}};function aR(){return {localeError:ED()}}function sR(e,n,r,o){let t=Math.abs(e),i=t%10,s=t%100;return s>=11&&s<=19?o:i===1?n:i>=2&&i<=4?r:o}var OD=()=>{let e={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function n(t){return e[t]??null}let r={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"},o={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0441\u0438\u0432"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C instanceof ${t.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${c}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${i}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${c}`}case "invalid_value":return t.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${A(t.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);if(s){let c=Number(t.maximum),l=sR(c,s.unit.one,s.unit.few,s.unit.many);return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${t.maximum.toString()} ${l}`}return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);if(s){let c=Number(t.minimum),l=sR(c,s.unit.one,s.unit.few,s.unit.many);return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${t.minimum.toString()} ${l}`}return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin} \u0431\u0443\u0434\u0435\u0442 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${t.divisor}`;case "unrecognized_keys":return `\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${t.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${t.keys.length>1?"\u0438":""}: ${R(t.keys,", ")}`;case "invalid_key":return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${t.origin}`;case "invalid_union":return "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case "invalid_element":return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${t.origin}`;default:return "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function cR(){return {localeError:OD()}}var zD=()=>{let e={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function n(t){return e[t]??null}let r={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"},o={nan:"NaN",number:"\u0161tevilo",array:"tabela"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Neveljaven vnos: pri\u010Dakovano instanceof ${t.expected}, prejeto ${c}`:`Neveljaven vnos: pri\u010Dakovano ${i}, prejeto ${c}`}case "invalid_value":return t.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${A(t.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Preveliko: pri\u010Dakovano, da bo ${t.origin??"vrednost"} imelo ${i}${t.maximum.toString()} ${s.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${t.origin??"vrednost"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Premajhno: pri\u010Dakovano, da bo ${t.origin} imelo ${i}${t.minimum.toString()} ${s.unit}`:`Premajhno: pri\u010Dakovano, da bo ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${i.prefix}"`:i.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${i.suffix}"`:i.format==="includes"?`Neveljaven niz: mora vsebovati "${i.includes}"`:i.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${i.pattern}`:`Neveljaven ${r[i.format]??t.format}`}case "not_multiple_of":return `Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${t.divisor}`;case "unrecognized_keys":return `Neprepoznan${t.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${R(t.keys,", ")}`;case "invalid_key":return `Neveljaven klju\u010D v ${t.origin}`;case "invalid_union":return "Neveljaven vnos";case "invalid_element":return `Neveljavna vrednost v ${t.origin}`;default:return "Neveljaven vnos"}}};function lR(){return {localeError:zD()}}var jD=()=>{let e={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function n(t){return e[t]??null}let r={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"},o={nan:"NaN",number:"antal",array:"lista"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Ogiltig inmatning: f\xF6rv\xE4ntat instanceof ${t.expected}, fick ${c}`:`Ogiltig inmatning: f\xF6rv\xE4ntat ${i}, fick ${c}`}case "invalid_value":return t.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${A(t.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`F\xF6r stor(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${i}${t.maximum.toString()} ${s.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${t.origin??"v\xE4rdet"} att ha ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`F\xF6r lite(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${i}${t.minimum.toString()} ${s.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${i.prefix}"`:i.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${i.suffix}"`:i.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${i.includes}"`:i.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${i.pattern}"`:`Ogiltig(t) ${r[i.format]??t.format}`}case "not_multiple_of":return `Ogiltigt tal: m\xE5ste vara en multipel av ${t.divisor}`;case "unrecognized_keys":return `${t.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${R(t.keys,", ")}`;case "invalid_key":return `Ogiltig nyckel i ${t.origin??"v\xE4rdet"}`;case "invalid_union":return "Ogiltig input";case "invalid_element":return `Ogiltigt v\xE4rde i ${t.origin??"v\xE4rdet"}`;default:return "Ogiltig input"}}};function uR(){return {localeError:jD()}}var UD=()=>{let e={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function n(t){return e[t]??null}let r={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"},o={nan:"NaN",number:"\u0B8E\u0BA3\u0BCD",array:"\u0B85\u0BA3\u0BBF",null:"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 instanceof ${t.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${c}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${c}`}case "invalid_value":return t.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${A(t.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${R(t.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${t.maximum.toString()} ${s.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${t.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin} ${i}${t.minimum.toString()} ${s.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin} ${i}${t.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${i.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${t.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case "unrecognized_keys":return `\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${t.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case "invalid_union":return "\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case "invalid_element":return `${t.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return "\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function dR(){return {localeError:UD()}}var AD=()=>{let e={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function n(t){return e[t]??null}let r={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"},o={nan:"NaN",number:"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02",array:"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)",null:"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 instanceof ${t.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${c}`:`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${i} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${c}`}case "invalid_value":return t.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${A(t.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",s=n(t.origin);return s?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${t.maximum.toString()} ${s.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",s=n(t.origin);return s?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${t.minimum.toString()} ${s.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${i.prefix}"`:i.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${i.suffix}"`:i.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${i.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:i.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${i.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${r[i.format]??t.format}`}case "not_multiple_of":return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${t.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case "unrecognized_keys":return `\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${R(t.keys,", ")}`;case "invalid_key":return `\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${t.origin}`;case "invalid_union":return "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case "invalid_element":return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${t.origin}`;default:return "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function mR(){return {localeError:AD()}}var DD=()=>{let e={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function n(t){return e[t]??null}let r={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Ge\xE7ersiz de\u011Fer: beklenen instanceof ${t.expected}, al\u0131nan ${c}`:`Ge\xE7ersiz de\u011Fer: beklenen ${i}, al\u0131nan ${c}`}case "invalid_value":return t.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${A(t.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\xC7ok b\xFCy\xFCk: beklenen ${t.origin??"de\u011Fer"} ${i}${t.maximum.toString()} ${s.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${t.origin??"de\u011Fer"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\xC7ok k\xFC\xE7\xFCk: beklenen ${t.origin} ${i}${t.minimum.toString()} ${s.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ge\xE7ersiz metin: "${i.prefix}" ile ba\u015Flamal\u0131`:i.format==="ends_with"?`Ge\xE7ersiz metin: "${i.suffix}" ile bitmeli`:i.format==="includes"?`Ge\xE7ersiz metin: "${i.includes}" i\xE7ermeli`:i.format==="regex"?`Ge\xE7ersiz metin: ${i.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${r[i.format]??t.format}`}case "not_multiple_of":return `Ge\xE7ersiz say\u0131: ${t.divisor} ile tam b\xF6l\xFCnebilmeli`;case "unrecognized_keys":return `Tan\u0131nmayan anahtar${t.keys.length>1?"lar":""}: ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} i\xE7inde ge\xE7ersiz anahtar`;case "invalid_union":return "Ge\xE7ersiz de\u011Fer";case "invalid_element":return `${t.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return "Ge\xE7ersiz de\u011Fer"}}};function pR(){return {localeError:DD()}}var FD=()=>{let e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function n(t){return e[t]??null}let r={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"},o={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0438\u0432"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F instanceof ${t.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${c}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${i}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${c}`}case "invalid_value":return t.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${A(t.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${s.verb} ${i}${t.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin} ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin} \u0431\u0443\u0434\u0435 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${t.divisor}`;case "unrecognized_keys":return `\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${t.keys.length>1?"\u0456":""}: ${R(t.keys,", ")}`;case "invalid_key":return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${t.origin}`;case "invalid_union":return "\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case "invalid_element":return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${t.origin}`;default:return "\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function Fd(){return {localeError:FD()}}function fR(){return Fd()}var ND=()=>{let e={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function n(t){return e[t]??null}let r={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"},o={nan:"NaN",number:"\u0646\u0645\u0628\u0631",array:"\u0622\u0631\u06D2",null:"\u0646\u0644"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: instanceof ${t.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${c} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`:`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${i} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${c} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`}case "invalid_value":return t.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${A(t.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${R(t.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${t.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${i}${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${t.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${i}${t.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${t.origin} \u06A9\u06D2 ${i}${t.minimum.toString()} ${s.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${t.origin} \u06A9\u0627 ${i}${t.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${i.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${t.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case "unrecognized_keys":return `\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${t.keys.length>1?"\u0632":""}: ${R(t.keys,"\u060C ")}`;case "invalid_key":return `${t.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case "invalid_union":return "\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case "invalid_element":return `${t.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return "\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function gR(){return {localeError:ND()}}var LD=()=>{let e={string:{unit:"belgi",verb:"bo\u2018lishi kerak"},file:{unit:"bayt",verb:"bo\u2018lishi kerak"},array:{unit:"element",verb:"bo\u2018lishi kerak"},set:{unit:"element",verb:"bo\u2018lishi kerak"},map:{unit:"yozuv",verb:"bo\u2018lishi kerak"}};function n(t){return e[t]??null}let r={regex:"kirish",email:"elektron pochta manzili",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sana va vaqti",date:"ISO sana",time:"ISO vaqt",duration:"ISO davomiylik",ipv4:"IPv4 manzil",ipv6:"IPv6 manzil",mac:"MAC manzil",cidrv4:"IPv4 diapazon",cidrv6:"IPv6 diapazon",base64:"base64 kodlangan satr",base64url:"base64url kodlangan satr",json_string:"JSON satr",e164:"E.164 raqam",jwt:"JWT",template_literal:"kirish"},o={nan:"NaN",number:"raqam",array:"massiv"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`Noto\u2018g\u2018ri kirish: kutilgan instanceof ${t.expected}, qabul qilingan ${c}`:`Noto\u2018g\u2018ri kirish: kutilgan ${i}, qabul qilingan ${c}`}case "invalid_value":return t.values.length===1?`Noto\u2018g\u2018ri kirish: kutilgan ${A(t.values[0])}`:`Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Juda katta: kutilgan ${t.origin??"qiymat"} ${i}${t.maximum.toString()} ${s.unit} ${s.verb}`:`Juda katta: kutilgan ${t.origin??"qiymat"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Juda kichik: kutilgan ${t.origin} ${i}${t.minimum.toString()} ${s.unit} ${s.verb}`:`Juda kichik: kutilgan ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Noto\u2018g\u2018ri satr: "${i.prefix}" bilan boshlanishi kerak`:i.format==="ends_with"?`Noto\u2018g\u2018ri satr: "${i.suffix}" bilan tugashi kerak`:i.format==="includes"?`Noto\u2018g\u2018ri satr: "${i.includes}" ni o\u2018z ichiga olishi kerak`:i.format==="regex"?`Noto\u2018g\u2018ri satr: ${i.pattern} shabloniga mos kelishi kerak`:`Noto\u2018g\u2018ri ${r[i.format]??t.format}`}case "not_multiple_of":return `Noto\u2018g\u2018ri raqam: ${t.divisor} ning karralisi bo\u2018lishi kerak`;case "unrecognized_keys":return `Noma\u2019lum kalit${t.keys.length>1?"lar":""}: ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} dagi kalit noto\u2018g\u2018ri`;case "invalid_union":return "Noto\u2018g\u2018ri kirish";case "invalid_element":return `${t.origin} da noto\u2018g\u2018ri qiymat`;default:return "Noto\u2018g\u2018ri kirish"}}};function hR(){return {localeError:LD()}}var VD=()=>{let e={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function n(t){return e[t]??null}let r={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"},o={nan:"NaN",number:"s\u1ED1",array:"m\u1EA3ng"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i instanceof ${t.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${c}`:`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${i}, nh\u1EADn \u0111\u01B0\u1EE3c ${c}`}case "invalid_value":return t.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${A(t.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${t.origin??"gi\xE1 tr\u1ECB"} ${s.verb} ${i}${t.maximum.toString()} ${s.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${t.origin??"gi\xE1 tr\u1ECB"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${t.origin} ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${i.prefix}"`:i.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${i.suffix}"`:i.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${i.includes}"`:i.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${i.pattern}`:`${r[i.format]??t.format} kh\xF4ng h\u1EE3p l\u1EC7`}case "not_multiple_of":return `S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${t.divisor}`;case "unrecognized_keys":return `Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${R(t.keys,", ")}`;case "invalid_key":return `Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${t.origin}`;case "invalid_union":return "\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case "invalid_element":return `Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${t.origin}`;default:return "\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function bR(){return {localeError:VD()}}var BD=()=>{let e={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function n(t){return e[t]??null}let r={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"},o={nan:"NaN",number:"\u6570\u5B57",array:"\u6570\u7EC4",null:"\u7A7A\u503C(null)"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B instanceof ${t.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${c}`:`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${i}\uFF0C\u5B9E\u9645\u63A5\u6536 ${c}`}case "invalid_value":return t.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${A(t.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${t.origin??"\u503C"} ${i}${t.maximum.toString()} ${s.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${t.origin??"\u503C"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${t.origin} ${i}${t.minimum.toString()} ${s.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.prefix}" \u5F00\u5934`:i.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.suffix}" \u7ED3\u5C3E`:i.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${i.pattern}`:`\u65E0\u6548${r[i.format]??t.format}`}case "not_multiple_of":return `\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${t.divisor} \u7684\u500D\u6570`;case "unrecognized_keys":return `\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case "invalid_union":return "\u65E0\u6548\u8F93\u5165";case "invalid_element":return `${t.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return "\u65E0\u6548\u8F93\u5165"}}};function _R(){return {localeError:BD()}}var MD=()=>{let e={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function n(t){return e[t]??null}let r={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"},o={nan:"NaN"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA instanceof ${t.expected}\uFF0C\u4F46\u6536\u5230 ${c}`:`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${i}\uFF0C\u4F46\u6536\u5230 ${c}`}case "invalid_value":return t.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${A(t.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${t.origin??"\u503C"} \u61C9\u70BA ${i}${t.maximum.toString()} ${s.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${t.origin??"\u503C"} \u61C9\u70BA ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${t.origin} \u61C9\u70BA ${i}${t.minimum.toString()} ${s.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${t.origin} \u61C9\u70BA ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.prefix}" \u958B\u982D`:i.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.suffix}" \u7D50\u5C3E`:i.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${i.pattern}`:`\u7121\u6548\u7684 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${t.divisor} \u7684\u500D\u6578`;case "unrecognized_keys":return `\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${t.keys.length>1?"\u5011":""}\uFF1A${R(t.keys,"\u3001")}`;case "invalid_key":return `${t.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case "invalid_union":return "\u7121\u6548\u7684\u8F38\u5165\u503C";case "invalid_element":return `${t.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return "\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function vR(){return {localeError:MD()}}var ZD=()=>{let e={string:{unit:"\xE0mi",verb:"n\xED"},file:{unit:"bytes",verb:"n\xED"},array:{unit:"nkan",verb:"n\xED"},set:{unit:"nkan",verb:"n\xED"}};function n(t){return e[t]??null}let r={regex:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9",email:"\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\xE0k\xF3k\xF2 ISO",date:"\u1ECDj\u1ECD\u0301 ISO",time:"\xE0k\xF3k\xF2 ISO",duration:"\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO",ipv4:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv4",ipv6:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv6",cidrv4:"\xE0gb\xE8gb\xE8 IPv4",cidrv6:"\xE0gb\xE8gb\xE8 IPv6",base64:"\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64",base64url:"\u1ECD\u0300r\u1ECD\u0300 base64url",json_string:"\u1ECD\u0300r\u1ECD\u0300 JSON",e164:"n\u1ECD\u0301mb\xE0 E.164",jwt:"JWT",template_literal:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9"},o={nan:"NaN",number:"n\u1ECD\u0301mb\xE0",array:"akop\u1ECD"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=F(t.input),c=o[s]??s;return /^[A-Z]/.test(t.expected)?`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi instanceof ${t.expected}, \xE0m\u1ECD\u0300 a r\xED ${c}`:`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${i}, \xE0m\u1ECD\u0300 a r\xED ${c}`}case "invalid_value":return t.values.length===1?`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${A(t.values[0])}`:`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${t.origin??"iye"} ${s.verb} ${i}${t.maximum} ${s.unit}`:`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${i}${t.maximum}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${t.origin} ${s.verb} ${i}${t.minimum} ${s.unit}`:`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${i}${t.minimum}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${i.prefix}"`:i.format==="ends_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${i.suffix}"`:i.format==="includes"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${i.includes}"`:i.format==="regex"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${i.pattern}`:`A\u1E63\xEC\u1E63e: ${r[i.format]??t.format}`}case "not_multiple_of":return `N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${t.divisor}`;case "unrecognized_keys":return `B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${R(t.keys,", ")}`;case "invalid_key":return `B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${t.origin}`;case "invalid_union":return "\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case "invalid_element":return `Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${t.origin}`;default:return "\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};function yR(){return {localeError:ZD()}}var xR,B_=Symbol("ZodOutput"),M_=Symbol("ZodInput"),Nd=class{constructor(){this._map=new WeakMap,this._idmap=new Map;}add(n,...r){let o=r[0];return this._map.set(n,o),o&&typeof o=="object"&&"id"in o&&this._idmap.set(o.id,n),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(n){let r=this._map.get(n);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(n),this}get(n){let r=n._zod.parent;if(r){let o={...this.get(r)??{}};delete o.id;let t={...o,...this._map.get(n)};return Object.keys(t).length?t:void 0}return this._map.get(n)}has(n){return this._map.has(n)}};function Ld(){return new Nd}(xR=globalThis).__zod_globalRegistry??(xR.__zod_globalRegistry=Ld());var dn=globalThis.__zod_globalRegistry;function Z_(e,n){return new e({type:"string",...Z(n)})}function q_(e,n){return new e({type:"string",coerce:true,...Z(n)})}function Vd(e,n){return new e({type:"string",format:"email",check:"string_format",abort:false,...Z(n)})}function Lc(e,n){return new e({type:"string",format:"guid",check:"string_format",abort:false,...Z(n)})}function Bd(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,...Z(n)})}function Md(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,version:"v4",...Z(n)})}function Zd(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,version:"v6",...Z(n)})}function qd(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,version:"v7",...Z(n)})}function Vc(e,n){return new e({type:"string",format:"url",check:"string_format",abort:false,...Z(n)})}function Hd(e,n){return new e({type:"string",format:"emoji",check:"string_format",abort:false,...Z(n)})}function Kd(e,n){return new e({type:"string",format:"nanoid",check:"string_format",abort:false,...Z(n)})}function Gd(e,n){return new e({type:"string",format:"cuid",check:"string_format",abort:false,...Z(n)})}function Jd(e,n){return new e({type:"string",format:"cuid2",check:"string_format",abort:false,...Z(n)})}function Wd(e,n){return new e({type:"string",format:"ulid",check:"string_format",abort:false,...Z(n)})}function Xd(e,n){return new e({type:"string",format:"xid",check:"string_format",abort:false,...Z(n)})}function Yd(e,n){return new e({type:"string",format:"ksuid",check:"string_format",abort:false,...Z(n)})}function Qd(e,n){return new e({type:"string",format:"ipv4",check:"string_format",abort:false,...Z(n)})}function em(e,n){return new e({type:"string",format:"ipv6",check:"string_format",abort:false,...Z(n)})}function H_(e,n){return new e({type:"string",format:"mac",check:"string_format",abort:false,...Z(n)})}function tm(e,n){return new e({type:"string",format:"cidrv4",check:"string_format",abort:false,...Z(n)})}function nm(e,n){return new e({type:"string",format:"cidrv6",check:"string_format",abort:false,...Z(n)})}function rm(e,n){return new e({type:"string",format:"base64",check:"string_format",abort:false,...Z(n)})}function im(e,n){return new e({type:"string",format:"base64url",check:"string_format",abort:false,...Z(n)})}function om(e,n){return new e({type:"string",format:"e164",check:"string_format",abort:false,...Z(n)})}function am(e,n){return new e({type:"string",format:"jwt",check:"string_format",abort:false,...Z(n)})}var K_={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function G_(e,n){return new e({type:"string",format:"datetime",check:"string_format",offset:false,local:false,precision:null,...Z(n)})}function J_(e,n){return new e({type:"string",format:"date",check:"string_format",...Z(n)})}function W_(e,n){return new e({type:"string",format:"time",check:"string_format",precision:null,...Z(n)})}function X_(e,n){return new e({type:"string",format:"duration",check:"string_format",...Z(n)})}function Y_(e,n){return new e({type:"number",checks:[],...Z(n)})}function Q_(e,n){return new e({type:"number",coerce:true,checks:[],...Z(n)})}function ev(e,n){return new e({type:"number",check:"number_format",abort:false,format:"safeint",...Z(n)})}function tv(e,n){return new e({type:"number",check:"number_format",abort:false,format:"float32",...Z(n)})}function nv(e,n){return new e({type:"number",check:"number_format",abort:false,format:"float64",...Z(n)})}function rv(e,n){return new e({type:"number",check:"number_format",abort:false,format:"int32",...Z(n)})}function iv(e,n){return new e({type:"number",check:"number_format",abort:false,format:"uint32",...Z(n)})}function ov(e,n){return new e({type:"boolean",...Z(n)})}function av(e,n){return new e({type:"boolean",coerce:true,...Z(n)})}function sv(e,n){return new e({type:"bigint",...Z(n)})}function cv(e,n){return new e({type:"bigint",coerce:true,...Z(n)})}function lv(e,n){return new e({type:"bigint",check:"bigint_format",abort:false,format:"int64",...Z(n)})}function uv(e,n){return new e({type:"bigint",check:"bigint_format",abort:false,format:"uint64",...Z(n)})}function dv(e,n){return new e({type:"symbol",...Z(n)})}function mv(e,n){return new e({type:"undefined",...Z(n)})}function pv(e,n){return new e({type:"null",...Z(n)})}function fv(e){return new e({type:"any"})}function gv(e){return new e({type:"unknown"})}function hv(e,n){return new e({type:"never",...Z(n)})}function bv(e,n){return new e({type:"void",...Z(n)})}function _v(e,n){return new e({type:"date",...Z(n)})}function vv(e,n){return new e({type:"date",coerce:true,...Z(n)})}function yv(e,n){return new e({type:"nan",...Z(n)})}function Vr(e,n){return new kd({check:"less_than",...Z(n),value:e,inclusive:false})}function or(e,n){return new kd({check:"less_than",...Z(n),value:e,inclusive:true})}function Br(e,n){return new Td({check:"greater_than",...Z(n),value:e,inclusive:false})}function Rn(e,n){return new Td({check:"greater_than",...Z(n),value:e,inclusive:true})}function sm(e){return Br(0,e)}function cm(e){return Vr(0,e)}function lm(e){return or(0,e)}function um(e){return Rn(0,e)}function $i(e,n){return new pb({check:"multiple_of",...Z(n),value:e})}function wi(e,n){return new hb({check:"max_size",...Z(n),maximum:e})}function Mr(e,n){return new bb({check:"min_size",...Z(n),minimum:e})}function xo(e,n){return new _b({check:"size_equals",...Z(n),size:e})}function So(e,n){return new vb({check:"max_length",...Z(n),maximum:e})}function ri(e,n){return new yb({check:"min_length",...Z(n),minimum:e})}function Io(e,n){return new xb({check:"length_equals",...Z(n),length:e})}function la(e,n){return new Sb({check:"string_format",format:"regex",...Z(n),pattern:e})}function ua(e){return new Ib({check:"string_format",format:"lowercase",...Z(e)})}function da(e){return new Pb({check:"string_format",format:"uppercase",...Z(e)})}function ma(e,n){return new kb({check:"string_format",format:"includes",...Z(n),includes:e})}function pa(e,n){return new Tb({check:"string_format",format:"starts_with",...Z(n),prefix:e})}function fa(e,n){return new $b({check:"string_format",format:"ends_with",...Z(n),suffix:e})}function dm(e,n,r){return new wb({check:"property",property:e,schema:n,...Z(r)})}function ga(e,n){return new Rb({check:"mime_type",mime:e,...Z(n)})}function Tr(e){return new Cb({check:"overwrite",tx:e})}function ha(e){return Tr(n=>n.normalize(e))}function ba(){return Tr(e=>e.trim())}function _a(){return Tr(e=>e.toLowerCase())}function va(){return Tr(e=>e.toUpperCase())}function ya(){return Tr(e=>Th(e))}function xv(e,n,r){return new e({type:"array",element:n,...Z(r)})}function HD(e,n,r){return new e({type:"union",options:n,...Z(r)})}function KD(e,n,r){return new e({type:"union",options:n,inclusive:false,...Z(r)})}function GD(e,n,r,o){return new e({type:"union",options:r,discriminator:n,...Z(o)})}function JD(e,n,r){return new e({type:"intersection",left:n,right:r})}function WD(e,n,r,o){let t=r instanceof we,i=t?o:r,s=t?r:null;return new e({type:"tuple",items:n,rest:s,...Z(i)})}function XD(e,n,r,o){return new e({type:"record",keyType:n,valueType:r,...Z(o)})}function YD(e,n,r,o){return new e({type:"map",keyType:n,valueType:r,...Z(o)})}function QD(e,n,r){return new e({type:"set",valueType:n,...Z(r)})}function e6(e,n,r){let o=Array.isArray(n)?Object.fromEntries(n.map(t=>[t,t])):n;return new e({type:"enum",entries:o,...Z(r)})}function t6(e,n,r){return new e({type:"enum",entries:n,...Z(r)})}function n6(e,n,r){return new e({type:"literal",values:Array.isArray(n)?n:[n],...Z(r)})}function Sv(e,n){return new e({type:"file",...Z(n)})}function r6(e,n){return new e({type:"transform",transform:n})}function i6(e,n){return new e({type:"optional",innerType:n})}function o6(e,n){return new e({type:"nullable",innerType:n})}function a6(e,n,r){return new e({type:"default",innerType:n,get defaultValue(){return typeof r=="function"?r():wh(r)}})}function s6(e,n,r){return new e({type:"nonoptional",innerType:n,...Z(r)})}function c6(e,n){return new e({type:"success",innerType:n})}function l6(e,n,r){return new e({type:"catch",innerType:n,catchValue:typeof r=="function"?r:()=>r})}function u6(e,n,r){return new e({type:"pipe",in:n,out:r})}function d6(e,n){return new e({type:"readonly",innerType:n})}function m6(e,n,r){return new e({type:"template_literal",parts:n,...Z(r)})}function p6(e,n){return new e({type:"lazy",getter:n})}function f6(e,n){return new e({type:"promise",innerType:n})}function Iv(e,n,r){let o=Z(r);return o.abort??(o.abort=true),new e({type:"custom",check:"custom",fn:n,...o})}function Pv(e,n,r){return new e({type:"custom",check:"custom",fn:n,...Z(r)})}function kv(e,n){let r=SR(o=>(o.addIssue=t=>{if(typeof t=="string")o.issues.push(na(t,o.value,r._zod.def));else {let i=t;i.fatal&&(i.continue=false),i.code??(i.code="custom"),i.input??(i.input=o.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),o.issues.push(na(i));}},e(o.value,o)),n);return r}function SR(e,n){let r=new Tt({check:"custom",...Z(n)});return r._zod.check=e,r}function Tv(e){let n=new Tt({check:"describe"});return n._zod.onattach=[r=>{let o=dn.get(r)??{};dn.add(r,{...o,description:e});}],n._zod.check=()=>{},n}function $v(e){let n=new Tt({check:"meta"});return n._zod.onattach=[r=>{let o=dn.get(r)??{};dn.add(r,{...o,...e});}],n._zod.check=()=>{},n}function wv(e,n){let r=Z(n),o=r.truthy??["true","1","yes","on","y","enabled"],t=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(o=o.map(g=>typeof g=="string"?g.toLowerCase():g),t=t.map(g=>typeof g=="string"?g.toLowerCase():g));let i=new Set(o),s=new Set(t),c=e.Codec??Dc,l=e.Boolean??Uc,d=e.String??yo,m=new d({type:"string",error:r.error}),p=new l({type:"boolean",error:r.error}),f=new c({type:"pipe",in:m,out:p,transform:((g,h)=>{let x=g;return r.case!=="sensitive"&&(x=x.toLowerCase()),i.has(x)?true:s.has(x)?false:(h.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...s],input:h.value,inst:f,continue:false}),{})}),reverseTransform:((g,h)=>g===true?o[0]||"true":t[0]||"false"),error:r.error});return f}function xa(e,n,r,o={}){let t=Z(o),i={...Z(o),check:"string_format",type:"string",format:n,fn:typeof r=="function"?r:c=>r.test(c),...t};return r instanceof RegExp&&(i.pattern=r),new e(i)}function Ri(e){let n=e?.target??"draft-2020-12";return n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??dn,target:n,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function pt(e,n,r={path:[],schemaPath:[]}){var o;let t=e._zod.def,i=n.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;let s={schema:{},count:1,cycle:void 0,path:r.path};n.seen.set(e,s);let c=e._zod.toJSONSchema?.();if(c)s.schema=c;else {let m={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(n,s.schema,m);else {let f=s.schema,g=n.processors[t.type];if(!g)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${t.type}`);g(e,n,f,m);}let p=e._zod.parent;p&&(s.ref||(s.ref=p),pt(p,n,m),n.seen.get(p).isParent=true);}let l=n.metadataRegistry.get(e);return l&&Object.assign(s.schema,l),n.io==="input"&&Cn(e)&&(delete s.schema.examples,delete s.schema.default),n.io==="input"&&"_prefault"in s.schema&&((o=s.schema).default??(o.default=s.schema._prefault)),delete s.schema._prefault,n.seen.get(e).schema}function Ci(e,n){let r=e.seen.get(n);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let o=new Map;for(let s of e.seen.entries()){let c=e.metadataRegistry.get(s[0])?.id;if(c){let l=o.get(c);if(l&&l!==s[0])throw new Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(c,s[0]);}}let t=s=>{let c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let p=e.external.registry.get(s[0])?.id,f=e.external.uri??(h=>h);if(p)return {ref:f(p)};let g=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=g,{defId:g,ref:`${f("__shared")}#/${c}/${g}`}}if(s[1]===r)return {ref:"#"};let d=`#/${c}/`,m=s[1].schema.id??`__schema${e.counter++}`;return {defId:m,ref:d+m}},i=s=>{if(s[1].schema.$ref)return;let c=s[1],{ref:l,defId:d}=t(s);c.def={...c.schema},d&&(c.defId=d);let m=c.schema;for(let p in m)delete m[p];m.$ref=l;};if(e.cycles==="throw")for(let s of e.seen.entries()){let c=s[1];if(c.cycle)throw new Error(`Cycle detected: #/${c.cycle?.join("/")}/<root>
64
64
 
65
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of e.seen.entries()){let c=s[1];if(n===s[0]){i(s);continue}if(e.external){let d=e.external.registry.get(s[0])?.id;if(n!==s[0]&&d){i(s);continue}}if(e.metadataRegistry.get(s[0])?.id){i(s);continue}if(c.cycle){i(s);continue}if(c.count>1&&e.reused==="ref"){i(s);continue}}}function Ei(e,n){let r=e.seen.get(n);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let o=c=>{let l=e.seen.get(c);if(l.ref===null)return;let d=l.def??l.schema,m={...d},p=l.ref;if(l.ref=null,p){o(p);let g=e.seen.get(p),h=g.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(h)):Object.assign(d,h),Object.assign(d,m),c._zod.parent===p)for(let S in d)S==="$ref"||S==="allOf"||S in m||delete d[S];if(h.$ref&&g.def)for(let S in d)S==="$ref"||S==="allOf"||S in g.def&&JSON.stringify(d[S])===JSON.stringify(g.def[S])&&delete d[S];}let f=c._zod.parent;if(f&&f!==p){o(f);let g=e.seen.get(f);if(g?.schema.$ref&&(d.$ref=g.schema.$ref,g.def))for(let h in d)h==="$ref"||h==="allOf"||h in g.def&&JSON.stringify(d[h])===JSON.stringify(g.def[h])&&delete d[h];}e.override({zodSchema:c,jsonSchema:d,path:l.path??[]});};for(let c of [...e.seen.entries()].reverse())o(c[0]);let t={};if(e.target==="draft-2020-12"?t.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?t.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?t.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let c=e.external.registry.get(n)?.id;if(!c)throw new Error("Schema is missing an `id` property");t.$id=e.external.uri(c);}Object.assign(t,r.def??r.schema);let i=e.metadataRegistry.get(n)?.id;i!==void 0&&t.id===i&&delete t.id;let s=e.external?.defs??{};for(let c of e.seen.entries()){let l=c[1];l.def&&l.defId&&(l.def.id===l.defId&&delete l.def.id,s[l.defId]=l.def);}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?t.$defs=s:t.definitions=s);try{let c=JSON.parse(JSON.stringify(t));return Object.defineProperty(c,"~standard",{value:{...n["~standard"],jsonSchema:{input:Sa(n,"input",e.processors),output:Sa(n,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch{throw new Error("Error converting schema to JSON.")}}function Cn(e,n){let r=n??{seen:new Set};if(r.seen.has(e))return false;r.seen.add(e);let o=e._zod.def;if(o.type==="transform")return true;if(o.type==="array")return Cn(o.element,r);if(o.type==="set")return Cn(o.valueType,r);if(o.type==="lazy")return Cn(o.getter(),r);if(o.type==="promise"||o.type==="optional"||o.type==="nonoptional"||o.type==="nullable"||o.type==="readonly"||o.type==="default"||o.type==="prefault")return Cn(o.innerType,r);if(o.type==="intersection")return Cn(o.left,r)||Cn(o.right,r);if(o.type==="record"||o.type==="map")return Cn(o.keyType,r)||Cn(o.valueType,r);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?true:Cn(o.in,r)||Cn(o.out,r);if(o.type==="object"){for(let t in o.shape)if(Cn(o.shape[t],r))return true;return false}if(o.type==="union"){for(let t of o.options)if(Cn(t,r))return true;return false}if(o.type==="tuple"){for(let t of o.items)if(Cn(t,r))return true;return !!(o.rest&&Cn(o.rest,r))}return false}var Rv=(e,n={})=>r=>{let o=Ri({...r,processors:n});return pt(e,o),Ci(o,e),Ei(o,e)},Sa=(e,n,r={})=>o=>{let{libraryOptions:t,target:i}=o??{},s=Ri({...t??{},target:i,io:n,processors:r});return pt(e,s),Ci(s,e),Ei(s,e)};var g6={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Cv=(e,n,r,o)=>{let t=r;t.type="string";let{minimum:i,maximum:s,format:c,patterns:l,contentEncoding:d}=e._zod.bag;if(typeof i=="number"&&(t.minLength=i),typeof s=="number"&&(t.maxLength=s),c&&(t.format=g6[c]??c,t.format===""&&delete t.format,c==="time"&&delete t.format),d&&(t.contentEncoding=d),l&&l.size>0){let m=[...l];m.length===1?t.pattern=m[0].source:m.length>1&&(t.allOf=[...m.map(p=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:p.source}))]);}},Ev=(e,n,r,o)=>{let t=r,{minimum:i,maximum:s,format:c,multipleOf:l,exclusiveMaximum:d,exclusiveMinimum:m}=e._zod.bag;typeof c=="string"&&c.includes("int")?t.type="integer":t.type="number";let p=typeof m=="number"&&m>=(i??Number.NEGATIVE_INFINITY),f=typeof d=="number"&&d<=(s??Number.POSITIVE_INFINITY),g=n.target==="draft-04"||n.target==="openapi-3.0";p?g?(t.minimum=m,t.exclusiveMinimum=true):t.exclusiveMinimum=m:typeof i=="number"&&(t.minimum=i),f?g?(t.maximum=d,t.exclusiveMaximum=true):t.exclusiveMaximum=d:typeof s=="number"&&(t.maximum=s),typeof l=="number"&&(t.multipleOf=l);},Ov=(e,n,r,o)=>{r.type="boolean";},zv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},jv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},Uv=(e,n,r,o)=>{n.target==="openapi-3.0"?(r.type="string",r.nullable=true,r.enum=[null]):r.type="null";},Av=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Dv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},Fv=(e,n,r,o)=>{r.not={};},Nv=(e,n,r,o)=>{},Lv=(e,n,r,o)=>{},Vv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},Bv=(e,n,r,o)=>{let t=e._zod.def,i=Pc(t.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i;},Mv=(e,n,r,o)=>{let t=e._zod.def,i=[];for(let s of t.values)if(s===void 0){if(n.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof s=="bigint"){if(n.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(s));}else i.push(s);if(i.length!==0)if(i.length===1){let s=i[0];r.type=s===null?"null":typeof s,n.target==="draft-04"||n.target==="openapi-3.0"?r.enum=[s]:r.const=s;}else i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),i.every(s=>typeof s=="boolean")&&(r.type="boolean"),i.every(s=>s===null)&&(r.type="null"),r.enum=i;},Zv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},qv=(e,n,r,o)=>{let t=r,i=e._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");t.type="string",t.pattern=i.source;},Hv=(e,n,r,o)=>{let t=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:s,maximum:c,mime:l}=e._zod.bag;s!==void 0&&(i.minLength=s),c!==void 0&&(i.maxLength=c),l?l.length===1?(i.contentMediaType=l[0],Object.assign(t,i)):(Object.assign(t,i),t.anyOf=l.map(d=>({contentMediaType:d}))):Object.assign(t,i);},Kv=(e,n,r,o)=>{r.type="boolean";},Gv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Jv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Wv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Xv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Yv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Qv=(e,n,r,o)=>{let t=r,i=e._zod.def,{minimum:s,maximum:c}=e._zod.bag;typeof s=="number"&&(t.minItems=s),typeof c=="number"&&(t.maxItems=c),t.type="array",t.items=pt(i.element,n,{...o,path:[...o.path,"items"]});},ey=(e,n,r,o)=>{let t=r,i=e._zod.def;t.type="object",t.properties={};let s=i.shape;for(let d in s)t.properties[d]=pt(s[d],n,{...o,path:[...o.path,"properties",d]});let c=new Set(Object.keys(s)),l=new Set([...c].filter(d=>{let m=i.shape[d]._zod;return n.io==="input"?m.optin===void 0:m.optout===void 0}));l.size>0&&(t.required=Array.from(l)),i.catchall?._zod.def.type==="never"?t.additionalProperties=false:i.catchall?i.catchall&&(t.additionalProperties=pt(i.catchall,n,{...o,path:[...o.path,"additionalProperties"]})):n.io==="output"&&(t.additionalProperties=false);},pm=(e,n,r,o)=>{let t=e._zod.def,i=t.inclusive===false,s=t.options.map((c,l)=>pt(c,n,{...o,path:[...o.path,i?"oneOf":"anyOf",l]}));i?r.oneOf=s:r.anyOf=s;},ty=(e,n,r,o)=>{let t=e._zod.def,i=pt(t.left,n,{...o,path:[...o.path,"allOf",0]}),s=pt(t.right,n,{...o,path:[...o.path,"allOf",1]}),c=d=>"allOf"in d&&Object.keys(d).length===1,l=[...c(i)?i.allOf:[i],...c(s)?s.allOf:[s]];r.allOf=l;},ny=(e,n,r,o)=>{let t=r,i=e._zod.def;t.type="array";let s=n.target==="draft-2020-12"?"prefixItems":"items",c=n.target==="draft-2020-12"||n.target==="openapi-3.0"?"items":"additionalItems",l=i.items.map((f,g)=>pt(f,n,{...o,path:[...o.path,s,g]})),d=i.rest?pt(i.rest,n,{...o,path:[...o.path,c,...n.target==="openapi-3.0"?[i.items.length]:[]]}):null;n.target==="draft-2020-12"?(t.prefixItems=l,d&&(t.items=d)):n.target==="openapi-3.0"?(t.items={anyOf:l},d&&t.items.anyOf.push(d),t.minItems=l.length,d||(t.maxItems=l.length)):(t.items=l,d&&(t.additionalItems=d));let{minimum:m,maximum:p}=e._zod.bag;typeof m=="number"&&(t.minItems=m),typeof p=="number"&&(t.maxItems=p);},ry=(e,n,r,o)=>{let t=r,i=e._zod.def;t.type="object";let s=i.keyType,l=s._zod.bag?.patterns;if(i.mode==="loose"&&l&&l.size>0){let m=pt(i.valueType,n,{...o,path:[...o.path,"patternProperties","*"]});t.patternProperties={};for(let p of l)t.patternProperties[p.source]=m;}else (n.target==="draft-07"||n.target==="draft-2020-12")&&(t.propertyNames=pt(i.keyType,n,{...o,path:[...o.path,"propertyNames"]})),t.additionalProperties=pt(i.valueType,n,{...o,path:[...o.path,"additionalProperties"]});let d=s._zod.values;if(d){let m=[...d].filter(p=>typeof p=="string"||typeof p=="number");m.length>0&&(t.required=m);}},iy=(e,n,r,o)=>{let t=e._zod.def,i=pt(t.innerType,n,o),s=n.seen.get(e);n.target==="openapi-3.0"?(s.ref=t.innerType,r.nullable=true):r.anyOf=[i,{type:"null"}];},oy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},ay=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.default=JSON.parse(JSON.stringify(t.defaultValue));},sy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,n.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(t.defaultValue)));},cy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;let s;try{s=t.catchValue(void 0);}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s;},ly=(e,n,r,o)=>{let t=e._zod.def,i=t.in._zod.traits.has("$ZodTransform"),s=n.io==="input"?i?t.out:t.in:t.out;pt(s,n,o);let c=n.seen.get(e);c.ref=s;},uy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.readOnly=true;},dy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},fm=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},my=(e,n,r,o)=>{let t=e._zod.innerType;pt(t,n,o);let i=n.seen.get(e);i.ref=t;},mm={string:Cv,number:Ev,boolean:Ov,bigint:zv,symbol:jv,null:Uv,undefined:Av,void:Dv,never:Fv,any:Nv,unknown:Lv,date:Vv,enum:Bv,literal:Mv,nan:Zv,template_literal:qv,file:Hv,success:Kv,custom:Gv,function:Jv,transform:Wv,map:Xv,set:Yv,array:Qv,object:ey,union:pm,intersection:ty,tuple:ny,record:ry,nullable:iy,nonoptional:oy,default:ay,prefault:sy,catch:cy,pipe:ly,readonly:uy,promise:dy,optional:fm,lazy:my};function gm(e,n){if("_idmap"in e){let o=e,t=Ri({...n,processors:mm}),i={};for(let l of o._idmap.entries()){let[d,m]=l;pt(m,t);}let s={},c={registry:o,uri:n?.uri,defs:i};t.external=c;for(let l of o._idmap.entries()){let[d,m]=l;Ci(t,m),s[d]=Ei(t,m);}if(Object.keys(i).length>0){let l=t.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[l]:i};}return {schemas:s}}let r=Ri({...n,processors:mm});return pt(e,r),Ci(r,e),Ei(r,e)}var hm=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(n){this.ctx.counter=n;}get seen(){return this.ctx.seen}constructor(n){let r=n?.target??"draft-2020-12";r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),this.ctx=Ri({processors:mm,target:r,...n?.metadata&&{metadata:n.metadata},...n?.unrepresentable&&{unrepresentable:n.unrepresentable},...n?.override&&{override:n.override},...n?.io&&{io:n.io}});}process(n,r={path:[],schemaPath:[]}){return pt(n,this.ctx,r)}emit(n,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),Ci(this.ctx,n);let o=Ei(this.ctx,n),{"~standard":t,...i}=o;return i}};var IR={};var Bc={};sn(Bc,{ZodAny:()=>Ay,ZodArray:()=>Ly,ZodBase64:()=>Dm,ZodBase64URL:()=>Fm,ZodBigInt:()=>Ca,ZodBigIntFormat:()=>Vm,ZodBoolean:()=>Ra,ZodCIDRv4:()=>Um,ZodCIDRv6:()=>Am,ZodCUID:()=>wm,ZodCUID2:()=>Rm,ZodCatch:()=>cx,ZodCodec:()=>el,ZodCustom:()=>tl,ZodCustomStringFormat:()=>$a,ZodDate:()=>Jc,ZodDefault:()=>nx,ZodDiscriminatedUnion:()=>By,ZodE164:()=>Nm,ZodEmail:()=>km,ZodEmoji:()=>Tm,ZodEnum:()=>ka,ZodExactOptional:()=>Qy,ZodFile:()=>Xy,ZodFunction:()=>_x,ZodGUID:()=>Zc,ZodIPv4:()=>zm,ZodIPv6:()=>jm,ZodIntersection:()=>My,ZodJWT:()=>Lm,ZodKSUID:()=>Om,ZodLazy:()=>gx,ZodLiteral:()=>Wy,ZodMAC:()=>Ry,ZodMap:()=>Gy,ZodNaN:()=>ux,ZodNanoID:()=>$m,ZodNever:()=>Fy,ZodNonOptional:()=>Km,ZodNull:()=>jy,ZodNullable:()=>tx,ZodNumber:()=>wa,ZodNumberFormat:()=>ko,ZodObject:()=>Xc,ZodOptional:()=>Hm,ZodPipe:()=>Qc,ZodPrefault:()=>ix,ZodPreprocess:()=>dx,ZodPromise:()=>bx,ZodReadonly:()=>mx,ZodRecord:()=>Pa,ZodSet:()=>Jy,ZodString:()=>Ta,ZodStringFormat:()=>vt,ZodSuccess:()=>sx,ZodSymbol:()=>Oy,ZodTemplateLiteral:()=>fx,ZodTransform:()=>Yy,ZodTuple:()=>qy,ZodType:()=>je,ZodULID:()=>Cm,ZodURL:()=>Gc,ZodUUID:()=>Zr,ZodUndefined:()=>zy,ZodUnion:()=>Yc,ZodUnknown:()=>Dy,ZodVoid:()=>Ny,ZodXID:()=>Em,ZodXor:()=>Vy,_ZodString:()=>Pm,_default:()=>rx,_function:()=>OC,any:()=>lC,array:()=>Wc,base64:()=>HR,base64url:()=>KR,bigint:()=>iC,boolean:()=>Ey,catch:()=>lx,check:()=>zC,cidrv4:()=>ZR,cidrv6:()=>qR,codec:()=>wC,cuid:()=>AR,cuid2:()=>DR,custom:()=>jC,date:()=>dC,describe:()=>UC,discriminatedUnion:()=>bC,e164:()=>GR,email:()=>TR,emoji:()=>jR,enum:()=>Zm,exactOptional:()=>ex,file:()=>PC,float32:()=>eC,float64:()=>tC,function:()=>OC,guid:()=>$R,hash:()=>QR,hex:()=>YR,hostname:()=>XR,httpUrl:()=>zR,instanceof:()=>DC,int:()=>Sm,int32:()=>nC,int64:()=>oC,intersection:()=>Zy,invertCodec:()=>RC,ipv4:()=>VR,ipv6:()=>MR,json:()=>NC,jwt:()=>JR,keyof:()=>mC,ksuid:()=>LR,lazy:()=>hx,literal:()=>IC,looseObject:()=>gC,looseRecord:()=>vC,mac:()=>BR,map:()=>yC,meta:()=>AC,nan:()=>$C,nanoid:()=>UR,nativeEnum:()=>SC,never:()=>Bm,nonoptional:()=>ax,null:()=>Uy,nullable:()=>Hc,nullish:()=>kC,number:()=>Cy,object:()=>pC,optional:()=>qc,partialRecord:()=>_C,pipe:()=>Im,prefault:()=>ox,preprocess:()=>LC,promise:()=>EC,readonly:()=>px,record:()=>Ky,refine:()=>vx,set:()=>xC,strictObject:()=>fC,string:()=>Mc,stringFormat:()=>WR,stringbool:()=>FC,success:()=>TC,superRefine:()=>yx,symbol:()=>sC,templateLiteral:()=>CC,transform:()=>qm,tuple:()=>Hy,uint32:()=>rC,uint64:()=>aC,ulid:()=>FR,undefined:()=>cC,union:()=>Mm,unknown:()=>Po,url:()=>OR,uuid:()=>wR,uuidv4:()=>RR,uuidv6:()=>CR,uuidv7:()=>ER,void:()=>uC,xid:()=>NR,xor:()=>hC});var bm={};sn(bm,{endsWith:()=>fa,gt:()=>Br,gte:()=>Rn,includes:()=>ma,length:()=>Io,lowercase:()=>ua,lt:()=>Vr,lte:()=>or,maxLength:()=>So,maxSize:()=>wi,mime:()=>ga,minLength:()=>ri,minSize:()=>Mr,multipleOf:()=>$i,negative:()=>cm,nonnegative:()=>um,nonpositive:()=>lm,normalize:()=>ha,overwrite:()=>Tr,positive:()=>sm,property:()=>dm,regex:()=>la,size:()=>xo,slugify:()=>ya,startsWith:()=>pa,toLowerCase:()=>_a,toUpperCase:()=>va,trim:()=>ba,uppercase:()=>da});var Ia={};sn(Ia,{ZodISODate:()=>vm,ZodISODateTime:()=>_m,ZodISODuration:()=>xm,ZodISOTime:()=>ym,date:()=>fy,datetime:()=>py,duration:()=>hy,time:()=>gy});var _m=k("ZodISODateTime",(e,n)=>{Zb.init(e,n),vt.init(e,n);});function py(e){return G_(_m,e)}var vm=k("ZodISODate",(e,n)=>{qb.init(e,n),vt.init(e,n);});function fy(e){return J_(vm,e)}var ym=k("ZodISOTime",(e,n)=>{Hb.init(e,n),vt.init(e,n);});function gy(e){return W_(ym,e)}var xm=k("ZodISODuration",(e,n)=>{Kb.init(e,n),vt.init(e,n);});function hy(e){return X_(xm,e)}var PR=(e,n)=>{Rc.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>Ec(e,r)},flatten:{value:r=>Cc(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,ea,2);}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,ea,2);}},isEmpty:{get(){return e.issues.length===0}}});},b6=k("ZodError",PR),Hn=k("ZodError",PR,{Parent:Error});var by=ra(Hn),_y=ia(Hn),vy=oa(Hn),yy=aa(Hn),xy=gd(Hn),Sy=hd(Hn),Iy=bd(Hn),Py=_d(Hn),ky=vd(Hn),Ty=yd(Hn),$y=xd(Hn),wy=Sd(Hn);var kR=new WeakMap;function Kc(e,n,r){let o=Object.getPrototypeOf(e),t=kR.get(o);if(t||(t=new Set,kR.set(o,t)),!t.has(n)){t.add(n);for(let i in r){let s=r[i];Object.defineProperty(o,i,{configurable:true,enumerable:false,get(){let c=s.bind(this);return Object.defineProperty(this,i,{configurable:true,writable:true,enumerable:true,value:c}),c},set(c){Object.defineProperty(this,i,{configurable:true,writable:true,enumerable:true,value:c});}});}}}var je=k("ZodType",(e,n)=>(we.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:Sa(e,"input"),output:Sa(e,"output")}}),e.toJSONSchema=Rv(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.parse=(r,o)=>by(e,r,o,{callee:e.parse}),e.safeParse=(r,o)=>vy(e,r,o),e.parseAsync=async(r,o)=>_y(e,r,o,{callee:e.parseAsync}),e.safeParseAsync=async(r,o)=>yy(e,r,o),e.spa=e.safeParseAsync,e.encode=(r,o)=>xy(e,r,o),e.decode=(r,o)=>Sy(e,r,o),e.encodeAsync=async(r,o)=>Iy(e,r,o),e.decodeAsync=async(r,o)=>Py(e,r,o),e.safeEncode=(r,o)=>ky(e,r,o),e.safeDecode=(r,o)=>Ty(e,r,o),e.safeEncodeAsync=async(r,o)=>$y(e,r,o),e.safeDecodeAsync=async(r,o)=>wy(e,r,o),Kc(e,"ZodType",{check(...r){let o=this.def;return this.clone(V.mergeDefs(o,{checks:[...o.checks??[],...r.map(t=>typeof t=="function"?{_zod:{check:t,def:{check:"custom"},onattach:[]}}:t)]}),{parent:true})},with(...r){return this.check(...r)},clone(r,o){return $n(this,r,o)},brand(){return this},register(r,o){return r.add(this,o),this},refine(r,o){return this.check(vx(r,o))},superRefine(r,o){return this.check(yx(r,o))},overwrite(r){return this.check(Tr(r))},optional(){return qc(this)},exactOptional(){return ex(this)},nullable(){return Hc(this)},nullish(){return qc(Hc(this))},nonoptional(r){return ax(this,r)},array(){return Wc(this)},or(r){return Mm([this,r])},and(r){return Zy(this,r)},transform(r){return Im(this,qm(r))},default(r){return rx(this,r)},prefault(r){return ox(this,r)},catch(r){return lx(this,r)},pipe(r){return Im(this,r)},readonly(){return px(this)},describe(r){let o=this.clone();return dn.add(o,{description:r}),o},meta(...r){if(r.length===0)return dn.get(this);let o=this.clone();return dn.add(o,r[0]),o},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(e,"description",{get(){return dn.get(e)?.description},configurable:true}),e)),Pm=k("_ZodString",(e,n)=>{yo.init(e,n),je.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Cv(e,o,t);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,Kc(e,"_ZodString",{regex(...o){return this.check(la(...o))},includes(...o){return this.check(ma(...o))},startsWith(...o){return this.check(pa(...o))},endsWith(...o){return this.check(fa(...o))},min(...o){return this.check(ri(...o))},max(...o){return this.check(So(...o))},length(...o){return this.check(Io(...o))},nonempty(...o){return this.check(ri(1,...o))},lowercase(o){return this.check(ua(o))},uppercase(o){return this.check(da(o))},trim(){return this.check(ba())},normalize(...o){return this.check(ha(...o))},toLowerCase(){return this.check(_a())},toUpperCase(){return this.check(va())},slugify(){return this.check(ya())}});}),Ta=k("ZodString",(e,n)=>{yo.init(e,n),Pm.init(e,n),e.email=r=>e.check(Vd(km,r)),e.url=r=>e.check(Vc(Gc,r)),e.jwt=r=>e.check(am(Lm,r)),e.emoji=r=>e.check(Hd(Tm,r)),e.guid=r=>e.check(Lc(Zc,r)),e.uuid=r=>e.check(Bd(Zr,r)),e.uuidv4=r=>e.check(Md(Zr,r)),e.uuidv6=r=>e.check(Zd(Zr,r)),e.uuidv7=r=>e.check(qd(Zr,r)),e.nanoid=r=>e.check(Kd($m,r)),e.guid=r=>e.check(Lc(Zc,r)),e.cuid=r=>e.check(Gd(wm,r)),e.cuid2=r=>e.check(Jd(Rm,r)),e.ulid=r=>e.check(Wd(Cm,r)),e.base64=r=>e.check(rm(Dm,r)),e.base64url=r=>e.check(im(Fm,r)),e.xid=r=>e.check(Xd(Em,r)),e.ksuid=r=>e.check(Yd(Om,r)),e.ipv4=r=>e.check(Qd(zm,r)),e.ipv6=r=>e.check(em(jm,r)),e.cidrv4=r=>e.check(tm(Um,r)),e.cidrv6=r=>e.check(nm(Am,r)),e.e164=r=>e.check(om(Nm,r)),e.datetime=r=>e.check(py(r)),e.date=r=>e.check(fy(r)),e.time=r=>e.check(gy(r)),e.duration=r=>e.check(hy(r));});function Mc(e){return Z_(Ta,e)}var vt=k("ZodStringFormat",(e,n)=>{_t.init(e,n),Pm.init(e,n);}),km=k("ZodEmail",(e,n)=>{Ub.init(e,n),vt.init(e,n);});function TR(e){return Vd(km,e)}var Zc=k("ZodGUID",(e,n)=>{zb.init(e,n),vt.init(e,n);});function $R(e){return Lc(Zc,e)}var Zr=k("ZodUUID",(e,n)=>{jb.init(e,n),vt.init(e,n);});function wR(e){return Bd(Zr,e)}function RR(e){return Md(Zr,e)}function CR(e){return Zd(Zr,e)}function ER(e){return qd(Zr,e)}var Gc=k("ZodURL",(e,n)=>{Ab.init(e,n),vt.init(e,n);});function OR(e){return Vc(Gc,e)}function zR(e){return Vc(Gc,{protocol:ir.httpProtocol,hostname:ir.domain,...V.normalizeParams(e)})}var Tm=k("ZodEmoji",(e,n)=>{Db.init(e,n),vt.init(e,n);});function jR(e){return Hd(Tm,e)}var $m=k("ZodNanoID",(e,n)=>{Fb.init(e,n),vt.init(e,n);});function UR(e){return Kd($m,e)}var wm=k("ZodCUID",(e,n)=>{Nb.init(e,n),vt.init(e,n);});function AR(e){return Gd(wm,e)}var Rm=k("ZodCUID2",(e,n)=>{Lb.init(e,n),vt.init(e,n);});function DR(e){return Jd(Rm,e)}var Cm=k("ZodULID",(e,n)=>{Vb.init(e,n),vt.init(e,n);});function FR(e){return Wd(Cm,e)}var Em=k("ZodXID",(e,n)=>{Bb.init(e,n),vt.init(e,n);});function NR(e){return Xd(Em,e)}var Om=k("ZodKSUID",(e,n)=>{Mb.init(e,n),vt.init(e,n);});function LR(e){return Yd(Om,e)}var zm=k("ZodIPv4",(e,n)=>{Gb.init(e,n),vt.init(e,n);});function VR(e){return Qd(zm,e)}var Ry=k("ZodMAC",(e,n)=>{Wb.init(e,n),vt.init(e,n);});function BR(e){return H_(Ry,e)}var jm=k("ZodIPv6",(e,n)=>{Jb.init(e,n),vt.init(e,n);});function MR(e){return em(jm,e)}var Um=k("ZodCIDRv4",(e,n)=>{Xb.init(e,n),vt.init(e,n);});function ZR(e){return tm(Um,e)}var Am=k("ZodCIDRv6",(e,n)=>{Yb.init(e,n),vt.init(e,n);});function qR(e){return nm(Am,e)}var Dm=k("ZodBase64",(e,n)=>{e_.init(e,n),vt.init(e,n);});function HR(e){return rm(Dm,e)}var Fm=k("ZodBase64URL",(e,n)=>{t_.init(e,n),vt.init(e,n);});function KR(e){return im(Fm,e)}var Nm=k("ZodE164",(e,n)=>{n_.init(e,n),vt.init(e,n);});function GR(e){return om(Nm,e)}var Lm=k("ZodJWT",(e,n)=>{r_.init(e,n),vt.init(e,n);});function JR(e){return am(Lm,e)}var $a=k("ZodCustomStringFormat",(e,n)=>{i_.init(e,n),vt.init(e,n);});function WR(e,n,r={}){return xa($a,e,n,r)}function XR(e){return xa($a,"hostname",ir.hostname,e)}function YR(e){return xa($a,"hex",ir.hex,e)}function QR(e,n){let r=n?.enc??"hex",o=`${e}_${r}`,t=ir[o];if(!t)throw new Error(`Unrecognized hash format: ${o}`);return xa($a,o,t,n)}var wa=k("ZodNumber",(e,n)=>{Ed.init(e,n),je.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Ev(e,o,t),Kc(e,"ZodNumber",{gt(o,t){return this.check(Br(o,t))},gte(o,t){return this.check(Rn(o,t))},min(o,t){return this.check(Rn(o,t))},lt(o,t){return this.check(Vr(o,t))},lte(o,t){return this.check(or(o,t))},max(o,t){return this.check(or(o,t))},int(o){return this.check(Sm(o))},safe(o){return this.check(Sm(o))},positive(o){return this.check(Br(0,o))},nonnegative(o){return this.check(Rn(0,o))},negative(o){return this.check(Vr(0,o))},nonpositive(o){return this.check(or(0,o))},multipleOf(o,t){return this.check($i(o,t))},step(o,t){return this.check($i(o,t))},finite(){return this}});let r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=true,e.format=r.format??null;});function Cy(e){return Y_(wa,e)}var ko=k("ZodNumberFormat",(e,n)=>{o_.init(e,n),wa.init(e,n);});function Sm(e){return ev(ko,e)}function eC(e){return tv(ko,e)}function tC(e){return nv(ko,e)}function nC(e){return rv(ko,e)}function rC(e){return iv(ko,e)}var Ra=k("ZodBoolean",(e,n)=>{Uc.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Ov(e,r,o);});function Ey(e){return ov(Ra,e)}var Ca=k("ZodBigInt",(e,n)=>{Od.init(e,n),je.init(e,n),e._zod.processJSONSchema=(o,t,i)=>zv(e,o),e.gte=(o,t)=>e.check(Rn(o,t)),e.min=(o,t)=>e.check(Rn(o,t)),e.gt=(o,t)=>e.check(Br(o,t)),e.gte=(o,t)=>e.check(Rn(o,t)),e.min=(o,t)=>e.check(Rn(o,t)),e.lt=(o,t)=>e.check(Vr(o,t)),e.lte=(o,t)=>e.check(or(o,t)),e.max=(o,t)=>e.check(or(o,t)),e.positive=o=>e.check(Br(BigInt(0),o)),e.negative=o=>e.check(Vr(BigInt(0),o)),e.nonpositive=o=>e.check(or(BigInt(0),o)),e.nonnegative=o=>e.check(Rn(BigInt(0),o)),e.multipleOf=(o,t)=>e.check($i(o,t));let r=e._zod.bag;e.minValue=r.minimum??null,e.maxValue=r.maximum??null,e.format=r.format??null;});function iC(e){return sv(Ca,e)}var Vm=k("ZodBigIntFormat",(e,n)=>{a_.init(e,n),Ca.init(e,n);});function oC(e){return lv(Vm,e)}function aC(e){return uv(Vm,e)}var Oy=k("ZodSymbol",(e,n)=>{s_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>jv(e,r);});function sC(e){return dv(Oy,e)}var zy=k("ZodUndefined",(e,n)=>{c_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Av(e,r);});function cC(e){return mv(zy,e)}var jy=k("ZodNull",(e,n)=>{l_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Uv(e,r,o);});function Uy(e){return pv(jy,e)}var Ay=k("ZodAny",(e,n)=>{u_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Nv();});function lC(){return fv(Ay)}var Dy=k("ZodUnknown",(e,n)=>{d_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Lv();});function Po(){return gv(Dy)}var Fy=k("ZodNever",(e,n)=>{m_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Fv(e,r,o);});function Bm(e){return hv(Fy,e)}var Ny=k("ZodVoid",(e,n)=>{p_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Dv(e,r);});function uC(e){return bv(Ny,e)}var Jc=k("ZodDate",(e,n)=>{f_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Vv(e,o),e.min=(o,t)=>e.check(Rn(o,t)),e.max=(o,t)=>e.check(or(o,t));let r=e._zod.bag;e.minDate=r.minimum?new Date(r.minimum):null,e.maxDate=r.maximum?new Date(r.maximum):null;});function dC(e){return _v(Jc,e)}var Ly=k("ZodArray",(e,n)=>{g_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Qv(e,r,o,t),e.element=n.element,Kc(e,"ZodArray",{min(r,o){return this.check(ri(r,o))},nonempty(r){return this.check(ri(1,r))},max(r,o){return this.check(So(r,o))},length(r,o){return this.check(Io(r,o))},unwrap(){return this.element}});});function Wc(e,n){return xv(Ly,e,n)}function mC(e){let n=e._zod.def.shape;return Zm(Object.keys(n))}var Xc=k("ZodObject",(e,n)=>{h_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ey(e,r,o,t),V.defineLazy(e,"shape",()=>n.shape),Kc(e,"ZodObject",{keyof(){return Zm(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:Po()})},loose(){return this.clone({...this._zod.def,catchall:Po()})},strict(){return this.clone({...this._zod.def,catchall:Bm()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return V.extend(this,r)},safeExtend(r){return V.safeExtend(this,r)},merge(r){return V.merge(this,r)},pick(r){return V.pick(this,r)},omit(r){return V.omit(this,r)},partial(...r){return V.partial(Hm,this,r[0])},required(...r){return V.required(Km,this,r[0])}});});function pC(e,n){let r={type:"object",shape:e??{},...V.normalizeParams(n)};return new Xc(r)}function fC(e,n){return new Xc({type:"object",shape:e,catchall:Bm(),...V.normalizeParams(n)})}function gC(e,n){return new Xc({type:"object",shape:e,catchall:Po(),...V.normalizeParams(n)})}var Yc=k("ZodUnion",(e,n)=>{Ac.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>pm(e,r,o,t),e.options=n.options;});function Mm(e,n){return new Yc({type:"union",options:e,...V.normalizeParams(n)})}var Vy=k("ZodXor",(e,n)=>{Yc.init(e,n),b_.init(e,n),e._zod.processJSONSchema=(r,o,t)=>pm(e,r,o,t),e.options=n.options;});function hC(e,n){return new Vy({type:"union",options:e,inclusive:false,...V.normalizeParams(n)})}var By=k("ZodDiscriminatedUnion",(e,n)=>{Yc.init(e,n),__.init(e,n);});function bC(e,n,r){return new By({type:"union",options:n,discriminator:e,...V.normalizeParams(r)})}var My=k("ZodIntersection",(e,n)=>{v_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ty(e,r,o,t);});function Zy(e,n){return new My({type:"intersection",left:e,right:n})}var qy=k("ZodTuple",(e,n)=>{zd.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ny(e,r,o,t),e.rest=r=>e.clone({...e._zod.def,rest:r});});function Hy(e,n,r){let o=n instanceof we,t=o?r:n,i=o?n:null;return new qy({type:"tuple",items:e,rest:i,...V.normalizeParams(t)})}var Pa=k("ZodRecord",(e,n)=>{y_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ry(e,r,o,t),e.keyType=n.keyType,e.valueType=n.valueType;});function Ky(e,n,r){return !n||!n._zod?new Pa({type:"record",keyType:Mc(),valueType:e,...V.normalizeParams(n)}):new Pa({type:"record",keyType:e,valueType:n,...V.normalizeParams(r)})}function _C(e,n,r){let o=$n(e);return o._zod.values=void 0,new Pa({type:"record",keyType:o,valueType:n,...V.normalizeParams(r)})}function vC(e,n,r){return new Pa({type:"record",keyType:e,valueType:n,mode:"loose",...V.normalizeParams(r)})}var Gy=k("ZodMap",(e,n)=>{x_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Xv(e,r),e.keyType=n.keyType,e.valueType=n.valueType,e.min=(...r)=>e.check(Mr(...r)),e.nonempty=r=>e.check(Mr(1,r)),e.max=(...r)=>e.check(wi(...r)),e.size=(...r)=>e.check(xo(...r));});function yC(e,n,r){return new Gy({type:"map",keyType:e,valueType:n,...V.normalizeParams(r)})}var Jy=k("ZodSet",(e,n)=>{S_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Yv(e,r),e.min=(...r)=>e.check(Mr(...r)),e.nonempty=r=>e.check(Mr(1,r)),e.max=(...r)=>e.check(wi(...r)),e.size=(...r)=>e.check(xo(...r));});function xC(e,n){return new Jy({type:"set",valueType:e,...V.normalizeParams(n)})}var ka=k("ZodEnum",(e,n)=>{I_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Bv(e,o,t),e.enum=n.entries,e.options=Object.values(n.entries);let r=new Set(Object.keys(n.entries));e.extract=(o,t)=>{let i={};for(let s of o)if(r.has(s))i[s]=n.entries[s];else throw new Error(`Key ${s} not found in enum`);return new ka({...n,checks:[],...V.normalizeParams(t),entries:i})},e.exclude=(o,t)=>{let i={...n.entries};for(let s of o)if(r.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new ka({...n,checks:[],...V.normalizeParams(t),entries:i})};});function Zm(e,n){let r=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new ka({type:"enum",entries:r,...V.normalizeParams(n)})}function SC(e,n){return new ka({type:"enum",entries:e,...V.normalizeParams(n)})}var Wy=k("ZodLiteral",(e,n)=>{P_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Mv(e,r,o),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}});});function IC(e,n){return new Wy({type:"literal",values:Array.isArray(e)?e:[e],...V.normalizeParams(n)})}var Xy=k("ZodFile",(e,n)=>{k_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Hv(e,r,o),e.min=(r,o)=>e.check(Mr(r,o)),e.max=(r,o)=>e.check(wi(r,o)),e.mime=(r,o)=>e.check(ga(Array.isArray(r)?r:[r],o));});function PC(e){return Sv(Xy,e)}var Yy=k("ZodTransform",(e,n)=>{T_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Wv(e,r),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new Si(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(V.issue(i,r.value,n));else {let s=i;s.fatal&&(s.continue=false),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=e),r.issues.push(V.issue(s));}};let t=n.transform(r.value,r);return t instanceof Promise?t.then(i=>(r.value=i,r.fallback=true,r)):(r.value=t,r.fallback=true,r)};});function qm(e){return new Yy({type:"transform",transform:e})}var Hm=k("ZodOptional",(e,n)=>{jd.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>fm(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function qc(e){return new Hm({type:"optional",innerType:e})}var Qy=k("ZodExactOptional",(e,n)=>{$_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>fm(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function ex(e){return new Qy({type:"optional",innerType:e})}var tx=k("ZodNullable",(e,n)=>{w_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>iy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Hc(e){return new tx({type:"nullable",innerType:e})}function kC(e){return qc(Hc(e))}var nx=k("ZodDefault",(e,n)=>{R_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ay(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap;});function rx(e,n){return new nx({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():V.shallowClone(n)}})}var ix=k("ZodPrefault",(e,n)=>{C_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>sy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function ox(e,n){return new ix({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():V.shallowClone(n)}})}var Km=k("ZodNonOptional",(e,n)=>{E_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>oy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function ax(e,n){return new Km({type:"nonoptional",innerType:e,...V.normalizeParams(n)})}var sx=k("ZodSuccess",(e,n)=>{O_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Kv(e,r,o),e.unwrap=()=>e._zod.def.innerType;});function TC(e){return new sx({type:"success",innerType:e})}var cx=k("ZodCatch",(e,n)=>{z_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>cy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap;});function lx(e,n){return new cx({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}var ux=k("ZodNaN",(e,n)=>{j_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Zv(e,r);});function $C(e){return yv(ux,e)}var Qc=k("ZodPipe",(e,n)=>{Ud.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ly(e,r,o,t),e.in=n.in,e.out=n.out;});function Im(e,n){return new Qc({type:"pipe",in:e,out:n})}var el=k("ZodCodec",(e,n)=>{Qc.init(e,n),Dc.init(e,n);});function wC(e,n,r){return new el({type:"pipe",in:e,out:n,transform:r.decode,reverseTransform:r.encode})}function RC(e){let n=e._zod.def;return new el({type:"pipe",in:n.out,out:n.in,transform:n.reverseTransform,reverseTransform:n.transform})}var dx=k("ZodPreprocess",(e,n)=>{Qc.init(e,n),U_.init(e,n);}),mx=k("ZodReadonly",(e,n)=>{A_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>uy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function px(e){return new mx({type:"readonly",innerType:e})}var fx=k("ZodTemplateLiteral",(e,n)=>{D_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>qv(e,r,o);});function CC(e,n){return new fx({type:"template_literal",parts:e,...V.normalizeParams(n)})}var gx=k("ZodLazy",(e,n)=>{L_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>my(e,r,o,t),e.unwrap=()=>e._zod.def.getter();});function hx(e){return new gx({type:"lazy",getter:e})}var bx=k("ZodPromise",(e,n)=>{N_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>dy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function EC(e){return new bx({type:"promise",innerType:e})}var _x=k("ZodFunction",(e,n)=>{F_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Jv(e,r);});function OC(e){return new _x({type:"function",input:Array.isArray(e?.input)?Hy(e?.input):e?.input??Wc(Po()),output:e?.output??Po()})}var tl=k("ZodCustom",(e,n)=>{V_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Gv(e,r);});function zC(e){let n=new Tt({check:"custom"});return n._zod.check=e,n}function jC(e,n){return Iv(tl,e??(()=>true),n)}function vx(e,n={}){return Pv(tl,e,n)}function yx(e,n){return kv(e,n)}var UC=Tv,AC=$v;function DC(e,n={}){let r=new tl({type:"custom",check:"custom",fn:o=>o instanceof e,abort:true,...V.normalizeParams(n)});return r._zod.bag.Class=e,r._zod.check=o=>{o.value instanceof e||o.issues.push({code:"invalid_type",expected:e.name,input:o.value,inst:r,path:[...r._zod.def.path??[]]});},r}var FC=(...e)=>wv({Codec:el,Boolean:Ra,String:Ta},...e);function NC(e){let n=hx(()=>Mm([Mc(e),Cy(),Ey(),Uy(),Wc(n),Ky(Mc(),n)]));return n}function LC(e,n){return new dx({type:"pipe",in:qm(e),out:n})}var v6={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function y6(e){Ht({customError:e});}function x6(){return Ht().customError}var xx;xx||(xx={});var J={...Bc,...bm,iso:Ia},S6=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function I6(e,n){let r=e.$schema;return r==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":r==="http://json-schema.org/draft-07/schema#"?"draft-7":r==="http://json-schema.org/draft-04/schema#"?"draft-4":n??"draft-2020-12"}function P6(e,n){if(!e.startsWith("#"))throw new Error("External $ref is not supported, only local refs (#/...) are allowed");let r=e.slice(1).split("/").filter(Boolean);if(r.length===0)return n.rootSchema;let o=n.version==="draft-2020-12"?"$defs":"definitions";if(r[0]===o){let t=r[1];if(!t||!n.defs[t])throw new Error(`Reference not found: ${e}`);return n.defs[t]}throw new Error(`Reference not found: ${e}`)}function VC(e,n){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return J.never();throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw new Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw new Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw new Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw new Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){let t=e.$ref;if(n.refs.has(t))return n.refs.get(t);if(n.processing.has(t))return J.lazy(()=>{if(!n.refs.has(t))throw new Error(`Circular reference not resolved: ${t}`);return n.refs.get(t)});n.processing.add(t);let i=P6(t,n),s=bn(i,n);return n.refs.set(t,s),n.processing.delete(t),s}if(e.enum!==void 0){let t=e.enum;if(n.version==="openapi-3.0"&&e.nullable===true&&t.length===1&&t[0]===null)return J.null();if(t.length===0)return J.never();if(t.length===1)return J.literal(t[0]);if(t.every(s=>typeof s=="string"))return J.enum(t);let i=t.map(s=>J.literal(s));return i.length<2?i[0]:J.union([i[0],i[1],...i.slice(2)])}if(e.const!==void 0)return J.literal(e.const);let r=e.type;if(Array.isArray(r)){let t=r.map(i=>{let s={...e,type:i};return VC(s,n)});return t.length===0?J.never():t.length===1?t[0]:J.union(t)}if(!r)return J.any();let o;switch(r){case "string":{let t=J.string();if(e.format){let i=e.format;i==="email"?t=t.check(J.email()):i==="uri"||i==="uri-reference"?t=t.check(J.url()):i==="uuid"||i==="guid"?t=t.check(J.uuid()):i==="date-time"?t=t.check(J.iso.datetime()):i==="date"?t=t.check(J.iso.date()):i==="time"?t=t.check(J.iso.time()):i==="duration"?t=t.check(J.iso.duration()):i==="ipv4"?t=t.check(J.ipv4()):i==="ipv6"?t=t.check(J.ipv6()):i==="mac"?t=t.check(J.mac()):i==="cidr"?t=t.check(J.cidrv4()):i==="cidr-v6"?t=t.check(J.cidrv6()):i==="base64"?t=t.check(J.base64()):i==="base64url"?t=t.check(J.base64url()):i==="e164"?t=t.check(J.e164()):i==="jwt"?t=t.check(J.jwt()):i==="emoji"?t=t.check(J.emoji()):i==="nanoid"?t=t.check(J.nanoid()):i==="cuid"?t=t.check(J.cuid()):i==="cuid2"?t=t.check(J.cuid2()):i==="ulid"?t=t.check(J.ulid()):i==="xid"?t=t.check(J.xid()):i==="ksuid"&&(t=t.check(J.ksuid()));}typeof e.minLength=="number"&&(t=t.min(e.minLength)),typeof e.maxLength=="number"&&(t=t.max(e.maxLength)),e.pattern&&(t=t.regex(new RegExp(e.pattern))),o=t;break}case "number":case "integer":{let t=r==="integer"?J.number().int():J.number();typeof e.minimum=="number"&&(t=t.min(e.minimum)),typeof e.maximum=="number"&&(t=t.max(e.maximum)),typeof e.exclusiveMinimum=="number"?t=t.gt(e.exclusiveMinimum):e.exclusiveMinimum===true&&typeof e.minimum=="number"&&(t=t.gt(e.minimum)),typeof e.exclusiveMaximum=="number"?t=t.lt(e.exclusiveMaximum):e.exclusiveMaximum===true&&typeof e.maximum=="number"&&(t=t.lt(e.maximum)),typeof e.multipleOf=="number"&&(t=t.multipleOf(e.multipleOf)),o=t;break}case "boolean":{o=J.boolean();break}case "null":{o=J.null();break}case "object":{let t={},i=e.properties||{},s=new Set(e.required||[]);for(let[l,d]of Object.entries(i)){let m=bn(d,n);t[l]=s.has(l)?m:m.optional();}if(e.propertyNames){let l=bn(e.propertyNames,n),d=e.additionalProperties&&typeof e.additionalProperties=="object"?bn(e.additionalProperties,n):J.any();if(Object.keys(t).length===0){o=J.record(l,d);break}let m=J.object(t).passthrough(),p=J.looseRecord(l,d);o=J.intersection(m,p);break}if(e.patternProperties){let l=e.patternProperties,d=Object.keys(l),m=[];for(let f of d){let g=bn(l[f],n),h=J.string().regex(new RegExp(f));m.push(J.looseRecord(h,g));}let p=[];if(Object.keys(t).length>0&&p.push(J.object(t).passthrough()),p.push(...m),p.length===0)o=J.object({}).passthrough();else if(p.length===1)o=p[0];else {let f=J.intersection(p[0],p[1]);for(let g=2;g<p.length;g++)f=J.intersection(f,p[g]);o=f;}break}let c=J.object(t);e.additionalProperties===false?o=c.strict():typeof e.additionalProperties=="object"?o=c.catchall(bn(e.additionalProperties,n)):o=c.passthrough();break}case "array":{let t=e.prefixItems,i=e.items;if(t&&Array.isArray(t)){let s=t.map(l=>bn(l,n)),c=i&&typeof i=="object"&&!Array.isArray(i)?bn(i,n):void 0;c?o=J.tuple(s).rest(c):o=J.tuple(s),typeof e.minItems=="number"&&(o=o.check(J.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(J.maxLength(e.maxItems)));}else if(Array.isArray(i)){let s=i.map(l=>bn(l,n)),c=e.additionalItems&&typeof e.additionalItems=="object"?bn(e.additionalItems,n):void 0;c?o=J.tuple(s).rest(c):o=J.tuple(s),typeof e.minItems=="number"&&(o=o.check(J.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(J.maxLength(e.maxItems)));}else if(i!==void 0){let s=bn(i,n),c=J.array(s);typeof e.minItems=="number"&&(c=c.min(e.minItems)),typeof e.maxItems=="number"&&(c=c.max(e.maxItems)),o=c;}else o=J.array(J.any());break}default:throw new Error(`Unsupported type: ${r}`)}return o}function bn(e,n){if(typeof e=="boolean")return e?J.any():J.never();let r=VC(e,n),o=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){let c=e.anyOf.map(d=>bn(d,n)),l=J.union(c);r=o?J.intersection(r,l):l;}if(e.oneOf&&Array.isArray(e.oneOf)){let c=e.oneOf.map(d=>bn(d,n)),l=J.xor(c);r=o?J.intersection(r,l):l;}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)r=o?r:J.any();else {let c=o?r:bn(e.allOf[0],n),l=o?0:1;for(let d=l;d<e.allOf.length;d++)c=J.intersection(c,bn(e.allOf[d],n));r=c;}e.nullable===true&&n.version==="openapi-3.0"&&(r=J.nullable(r)),e.readOnly===true&&(r=J.readonly(r)),e.default!==void 0&&(r=r.default(e.default));let t={},i=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let c of i)c in e&&(t[c]=e[c]);let s=["contentEncoding","contentMediaType","contentSchema"];for(let c of s)c in e&&(t[c]=e[c]);for(let c of Object.keys(e))S6.has(c)||(t[c]=e[c]);return Object.keys(t).length>0&&n.registry.add(r,t),e.description&&(r=r.describe(e.description)),r}function BC(e,n){if(typeof e=="boolean")return e?J.any():J.never();let r;try{r=JSON.parse(JSON.stringify(e));}catch{throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}let o=I6(r,n?.defaultTarget),t=r.$defs||r.definitions||{},i={version:o,defs:t,refs:new Map,processing:new Set,rootSchema:r,registry:n?.registry??dn};return bn(r,i)}var Sx={};sn(Sx,{bigint:()=>w6,boolean:()=>$6,date:()=>R6,number:()=>T6,string:()=>k6});function k6(e){return q_(Ta,e)}function T6(e){return Q_(wa,e)}function $6(e){return av(Ra,e)}function w6(e){return cv(Ca,e)}function R6(e){return vv(Jc,e)}Ht(Ad());var C6=/^[a-z0-9._]{1,100}$/,Oi={Persisted:"persisted",Transient:"transient"},zi={Internal:"internal",External:"external"},ji={Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}},E6="readOnly";function Kn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[E6]===true||(n[r]=o);}return a.object(n)}function _n(e){let n=Kn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(C6)}):n}var {Unrestricted:En}=ji,{Transient:Gn,Persisted:O6}=Oi,{Internal:To,External:Ui}=zi;a.object({page:a.coerce.number().int().min(1).default(1).meta(En),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(En)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui});var wt=a.object({created_at:a.string().datetime().meta({...En,readOnly:true}),updated_at:a.string().datetime().meta({...En,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui}),yt=a.object({id:a.string().min(1).meta({...En,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui}),Rt=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...En,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui});var Ix=a.enum(["banner","modal","tooltip","sidebar","inline","toast","fullscreen","email","sms","push","in_page","button","full_page","agent","cli","custom"]).meta({id:"SurfaceType","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui}),Gm=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui}),MC=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To});var oi=a.string().min(1).max(200),Xt=a.string().min(1).max(100),Jm=a.string().max(500).optional(),ar=a.record(a.string(),a.unknown()).default({}),$o=a.number().int().min(10).max(100).multipleOf(10),Wm=a.string().datetime().nullable().default(null),Kt=a.object({environment_id:a.string().min(1).default("production").meta({...En,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To}),Yt=a.object({playbook_version_id:a.string().nullable().default(null).meta(En),is_current:a.boolean().default(true).meta({...En,readOnly:true}),is_deleted:a.boolean().default(false).meta({...En,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...En,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...En,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...En,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To}),z6=yt.merge(wt).merge(Rt).merge(Kt).extend({handle:Xt.meta({...En,readOnly:true}),active:a.boolean().default(true).meta({...En,readOnly:true})});function vn(e){return z6.meta({id:e,"x-revturbine-schema-persistence":O6,"x-revturbine-schema-exposure":To})}a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To});a.enum(["button","plans_page_ctas","plans_page_full","inline_gate_message","tooltip","in_page_card","usage_counter","credit_counter","trial_counter","banner","modal_optional","modal_blocking","toast","email","sms","push","cli","agent_connector","custom_in_app"]).meta({id:"StudioSurfaceType","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To});var ZC=a.enum(["open_checkout","view_plans","book_demo","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription","switch_billing_period","extend_trial","open_rt_placement","dismiss","snooze","custom"]).meta({id:"CtaActionType","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui}),j6=new Set(Ix.options);function nl(e,n){if(!oe(e))return null;let r=typeof e.output_id=="string"?e.output_id:"";if(!r)return null;let o=oe(e.surface)?e.surface:{},t=j6.has(o.type)?o.type:"custom",i=oe(e.cta_path)?e.cta_path:oe(e.ui_path)?e.ui_path:{};return {output_id:r,category:typeof e.category=="string"?e.category:"unknown",surface:{...typeof o.template=="string"?{template:o.template}:{},type:t,...typeof o.slot_id=="string"?{slot_id:o.slot_id}:{}},content:oe(e.content)?e.content:{},...oe(e.promotion)?{promotion:e.promotion}:{},cta_path:i,ui_path:i,rule_id:typeof e.rule_id=="string"?e.rule_id:"",decision_id:typeof e.decision_id=="string"?e.decision_id:n(),config_version:typeof e.config_version=="string"?e.config_version:"unknown",present_upsell:typeof e.present_upsell=="boolean"?e.present_upsell:false}}var U6="__no_dim__";function KC(e,n,r){if(e.length===0)return true;let o=n instanceof Set?n:new Set(n),t=new Map;for(let i of e){let s=r(i)??U6,c=t.get(s)??[];c.push(i),t.set(s,c);}for(let i of t.values())if(!i.some(s=>o.has(s)))return false;return true}var A6=999999;function D6(e){return e==null||e==="unlimited"||e===A6}function rl(e){return D6(e)?Number.POSITIVE_INFINITY:typeof e=="number"&&Number.isFinite(e)?e:void 0}function F6(e,n){switch(e.kind){case "plan":return n.currentPlanId!=null&&e.id===n.currentPlanId||n.currentPlanHandle!=null&&e.id===n.currentPlanHandle;case "plan_variation":return n.currentPlanVariationId!=null&&e.id===n.currentPlanVariationId;case "addon":return n.addonIds?.includes(e.id)??false;case "addon_variation":return n.addonVariationIds?.includes(e.id)??false;default:return false}}function GC(e,n,r){return e.map(o=>{let t=o.targets!=null&&o.targets.length>0?o.targets.some(s=>F6(s,n)):n.currentPlanId!=null&&o.planIds.includes(n.currentPlanId)||n.currentPlanHandle!=null&&o.planIds.includes(n.currentPlanHandle),i=KC(o.segmentIds,n.segmentIds,s=>r?.[s]);return {rule:o,matchesPlan:t,matchesSegment:i,matched:t&&i}})}function JC(e){let n=e.fields??{};switch(e.kind){case "usage_limit":return rl(n.limit_value)??0;case "credits":return rl(n.allowance_value!==void 0?n.allowance_value:n.allowance)??0;case "seat":return rl(n.included_count)??0;case "feature":return n.enabled===true?1:0;default:return 0}}function WC(e,n){let r,o=Number.NEGATIVE_INFINITY;for(let t of e){let i=n(t);(r===void 0||i>o)&&(r=t,o=i);}return r}function N6(e){return WC(e,n=>JC(n.rule))?.rule}function Px(e,n,r){let o=e.entitlementRules[n];if(!o||o.length===0)return;let t=GC(o,r,e.segmentDimensions);return N6(t.filter(i=>i.matched))}function L6(e){let n=e.segment_ids;if(Array.isArray(n))return n.filter(o=>typeof o=="string");let r=e.segment_id??e.segmentId;return typeof r=="string"&&r!=="all"?[r]:[]}function V6(e,n,r){let o=new Map;for(let t of r)typeof t.handle=="string"&&o.set(t.handle,typeof t.dimension_id=="string"?t.dimension_id:void 0);return KC(L6(e),n,t=>o.get(t))}function qC(e,n,r){if(!e)return {status:"allowed",allowed:true};switch(n){case "hard_block":return {status:"denied",allowed:false,reason:r};case "soft_block":return {status:"denied",allowed:false,reason:`${r}_soft_block`};case "degrade":return {status:"limited",allowed:true,reason:`${r}_degraded`};case "allow_overage":return {status:"allowed",allowed:true,reason:`${r}_overage`};default:return {status:"limited",allowed:false,reason:r}}}function il(e){let{handle:n,context:r,exportedConfig:o,currentPlanHandle:t,segmentIds:i,usageBalances:s,userUsage:c,trialGrantedEntitlementHandles:l,effectivePlanHandle:d}=e,p=(o.entitlements??[]).find(me=>typeof me?.unique_handle=="string"&&me.unique_handle===n),f=typeof p?.unique_handle=="string"?p.unique_handle:n,g=typeof p?.unique_handle=="string"?p.unique_handle:void 0,h=!!(l&&l.size>0&&(l.has(n)||l.has(f)||g!==void 0&&l.has(g)));if(h&&(d===void 0||d===""))return {status:"allowed",allowed:true,reason:"granted_by_reverse_trial"};let S=String((h&&d?d:t)||"").toLowerCase(),$=(o.plans??[]).find(me=>typeof me.unique_handle=="string"&&me.unique_handle.toLowerCase()===S),E=typeof $?.unique_handle=="string"?$.unique_handle:S||void 0,I=(o.entitlement_rules??[]).filter(me=>{if((typeof me.entitlement_id=="string"?me.entitlement_id:typeof me.entitlementId=="string"?me.entitlementId:"")!==f)return false;let ie=Array.isArray(me.targets)?me.targets.filter(ze=>oe(ze)&&ze.kind==="plan"&&typeof ze.id=="string").map(ze=>ze.id):Array.isArray(me.plan_ids)?me.plan_ids.filter(ze=>typeof ze=="string"):Array.isArray(me.planIds)?me.planIds.filter(ze=>typeof ze=="string"):[];return !(E!==void 0&&!ie.includes(E)||!V6(me,i,o.segments??[]))});if(I.length===0)return {status:"denied",allowed:false,reason:"no_matching_entitlement_rule"};let z=(()=>{let me=(o.entitlements??[]).find(fe=>fe.unique_handle===f);return me&&typeof me.type=="string"?me.type:void 0})(),X=me=>{let fe=oe(me)?me:{},ze={...oe(fe.type_fields)?fe.type_fields:oe(fe.typeFields)?fe.typeFields:{},...fe};return typeof ze.kind!="string"&&z&&(ze.kind=z),ze},re=WC(I,me=>{let fe=X(me);return JC({kind:typeof fe.kind=="string"?fe.kind:"",fields:fe})})??I[0],L=X(re);typeof L.kind=="string"?L.kind:void 0;let ee=me=>{let fe=c?.[me];if(oe(fe)&&typeof fe.amount=="number")return fe.amount},Pe=r?.used??(Number.isFinite(s[n])?s[n]:void 0)??(Number.isFinite(s[f])?s[f]:void 0)??ee(n)??ee(f)??0;return Xm(L,Pe)}function HC(e,n,r){return {...e,limit:n,used:r,remaining:Math.max(0,n-r)}}function XC(e){return e==="feature"||e==="usage_limit"||e==="limit"||e==="credits"||e==="capability_tier"}function Xm(e,n){let r=typeof e.kind=="string"?e.kind:void 0;if(r==="feature"){let o=e.enabled!==false;return {status:o?"allowed":"denied",allowed:o,reason:o?void 0:"feature_not_enabled_for_plan"}}if(r==="usage_limit"||r==="limit"){let o=rl(e.limit_value);return o!==void 0&&Number.isFinite(o)&&o>=0?HC(qC(n>=o,e.enforcement,"usage_limit_reached"),o,n):{status:"allowed",allowed:true}}if(r==="credits"){let o=e.allowance_value!==void 0?e.allowance_value:e.allowance,t=o===void 0?void 0:rl(o),i=Number(e.initial_grant),s=t!==void 0&&t>=0?t:Number.isFinite(i)&&i>=0?i:void 0;return s!==void 0&&Number.isFinite(s)?HC(qC(n>=s,e.enforcement,"credit_balance_exhausted"),s,n):{status:"allowed",allowed:true}}if(r==="capability_tier"){let o=typeof e.tier_name=="string"?e.tier_name:void 0;return {status:"allowed",allowed:true,...o?{current_tier:o}:{}}}return {status:"allowed",allowed:true}}function kx(e,n){if(!oe(e))return {status:"allowed",allowed:true};let r=typeof e.status=="string"?e.status:void 0,o=r==="limited"||r==="denied"||r==="allowed"?r:typeof e.allowed=="boolean"&&e.allowed?"allowed":"denied",t=o!=="denied",i=typeof e.reason=="string"?e.reason:void 0,s=typeof e.current_tier=="string"?e.current_tier:void 0,c=oe(e.placement)?nl(e.placement,n):void 0;return {status:o,allowed:t,...i!==void 0?{reason:i}:{},...s!==void 0?{current_tier:s}:{},...c!=null?{placement:c}:{}}}function Tx(e,n,r,o,t=80){let i=n.get(e);if(i)return i;if(r.get(e)?.status==="limited"&&Number.isFinite(o[e])){let c=Number(o[e]);if(c>0)return {limit:c,warningPercent:t}}return null}var B6=0;function M6(){return `core_${Date.now()}_${++B6}`}function YC(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}var $x=class{constructor(e){this.registry=e.registry,this.interactionTracker=e.interactionTracker,this.capEnforcer=e.capEnforcer,this.options=e.options??{},this.placements=e.placements??new Map,this.placementResolver=e.placementResolver;}async evaluate(e){let n=M6(),r=this.placements.get(e.placementId);if(this.interactionTracker){let i=this.interactionTracker.checkSuppression(e.placementId,e.userId);if(i.suppressed)return {placementId:e.placementId,requestId:n,visible:false,decisionSource:"cache",reasonCodes:i.reason?[i.reason]:[],suppressionReason:i.reason,content:YC(`${r?.name??e.placementId} suppressed`,"Suppressed due to recent interaction state.","Continue")}}let t={__providers:await this.registry.resolveAll()};if(e.traits&&(t.traits=e.traits),this.placementResolver){let i=await this.placementResolver(e,r,t);if(i.visible&&i.output&&this.capEnforcer&&this.options.enableCapsEnforcement!==false){let s=this.capEnforcer.enforce(i.output);if(!s.allowed)return {...i,visible:false,reasonCodes:[...i.reasonCodes,s.reason??"suppressed_by_cap"],suppressionReason:s.reason}}return i}return {placementId:e.placementId,requestId:n,visible:false,decisionSource:"fallback",reasonCodes:["no_resolver_configured"],content:YC("No resolver","No placement resolver configured.","")}}async evaluateBatch(e){return Promise.all(e.map(n=>this.evaluate(n)))}async checkEntitlement(e,n){let r=await this.registry.resolveAll();return this.deriveEntitlementResult(e,r,n)}trackInteraction(e){this.interactionTracker?.track(e);}async resolveProviders(){return this.registry.resolveAll()}deriveEntitlementResult(e,n,r){let o=this.options.defaultEntitlementPolicy??"allow",t=n.entitlements;if(!t)return o==="allow"?{status:"allowed",allowed:true,reason:"no_entitlement_provider"}:{status:"denied",allowed:false,reason:"no_entitlement_provider_default_deny"};let i=t.entries[e];if(!i)return o==="allow"?{status:"allowed",allowed:true,reason:"entitlement_not_found_default_allow"}:{status:"denied",allowed:false,reason:"entitlement_not_found_default_deny"};let s=t.usage?.[e];if(n.rules){let c=Px(n.rules,e,{currentPlanHandle:n.plan?.currentPlanHandle,billingPeriod:n.plan?.billingPeriod,segmentIds:n.segments?.segmentIds??[]});if(c){let l={kind:c.kind,...c.fields};if(XC(l.kind))return Xm(l,r?.used??s?.used??0)}else return {status:"denied",allowed:false,reason:"no_matching_entitlement_rule"}}return s&&r?.used!==void 0&&s.limit>0&&r.used>=s.limit?{status:"denied",allowed:false,reason:"usage_limit_exceeded",limit:s.limit,used:r.used,remaining:Math.max(0,s.limit-r.used)}:{status:i.status,allowed:i.status==="allowed",reason:i.reason,limit:s?.limit,used:s?.used,remaining:s?.remaining}}};function QC(e,n){let r=n[e.field];if(r===void 0)return false;let o=String(r),t=e.value;switch(e.operator){case "eq":return o===t;case "neq":return o!==t;case "gt":return Number(o)>Number(t);case "lt":return Number(o)<Number(t);case "gte":return Number(o)>=Number(t);case "lte":return Number(o)<=Number(t);case "contains":return o.includes(t);case "in":return t.split(",").map(s=>s.trim()).includes(o);default:return false}}function ol(e,n){return e.filter(r=>!r.predicates||r.predicates.length===0?false:r.predicates.every(o=>QC(o,n))).map(r=>r.handle)}function wx(e,n){let r=String(e.field||""),o=String(e.operator||""),t=String(e.value||""),i=n[r],s=typeof i=="string"||typeof i=="number"||typeof i=="boolean"?i:null,c=QC(e,n);return {field:r,operator:o,expected:t,actual:s,matched:c}}function Ym(e){let n="";return e.forEach(r=>{n+=String.fromCharCode(r);}),btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Qm(e){let n=2166136261;for(let t=0;t<e.length;t+=1)n^=e.charCodeAt(t),n+=(n<<1)+(n<<4)+(n<<7)+(n<<8)+(n<<24);let r=new Uint8Array(8),o=new DataView(r.buffer);return o.setUint32(0,n>>>0),o.setUint32(4,n*1103515245>>>0),Ym(r)}async function Rx(e,n){let r=Yo(e.pageRoute),o=[e.tenantId,r,e.placementName.trim().toLowerCase(),String(e.placementScopeKey||"").trim().toLowerCase()].join("::");if(n)try{return (await n.sha256Base64Url(o)).slice(0,22)}catch{}return Qm(o).slice(0,22)}function Cx(e){return [e.slotId||"",e.surfaceType||"",e.entitlementHandle||"",e.planHandle||"",e.placementHandle||""].join("::")}function Ex(e){let n=yi({placementId:e.placementId,userId:e.userId,contextMode:e.contextMode??"auto",overrides:e.overrides??{},traits:e.traits??{},route:Yo(e.route),...e.runtimeContextFingerprint?{runtimeContextFingerprint:e.runtimeContextFingerprint}:{}});return `${e.tenantId}:${e.placementId}:${e.userId}:${Qm(n)}`}function tE(e){if(e.length<=1)return e;let n=new Set;for(let o of e){let t=o.surface.template;if(!t)continue;let i=vh(o);if(i.length!==0)for(let s of e){if(s.output_id===o.output_id||s.surface.template!==t)continue;let c=_h(s);c&&i.includes(c)&&n.add(s.output_id);}}let r=new Map;for(let o of e){if(!o.surface.template)continue;let t=r.get(o.surface.template)??[];t.push(o),r.set(o.surface.template,t);}for(let o of r.values()){if(o.length<=1)continue;let t=o.map(s=>{let c=oe(s.content)?s.content:{};return {output:s,order:bt(c.milestone_order)??Number.NEGATIVE_INFINITY}}).filter(s=>Number.isFinite(s.order));if(t.length<=1)continue;let i=t.reduce((s,c)=>c.order>s.order?c:s);for(let s of t)s.output.output_id!==i.output.output_id&&n.add(s.output.output_id);}return e.filter(o=>!n.has(o.output_id))}function eE(e){let r=(oe(e.content)?e.content:{}).__trigger_entitlement_handle;return typeof r=="string"&&r.length>0?r:null}function Z6(e,n,r){if(r===1){let o=e.surface.slot_id,t=n.surface.slot_id;if(typeof o=="string"&&o&&typeof t=="string"&&t)return {leftKey:o,rightKey:t}}else if(r===0){let o=eE(e),t=eE(n);if(o&&t)return {leftKey:o,rightKey:t}}return {leftKey:e.surface.type??"",rightKey:n.surface.type??""}}function ep(e){if(e.length<=1)return e;let n=new Set;for(let r=0;r<e.length;r+=1)for(let o=r+1;o<e.length;o+=1){let t=e[r],i=e[o];if(t.surface.type!==i.surface.type)continue;let s=xi(t.category),c=xi(i.category);if(s!==c){s<c?n.add(i.output_id):n.add(t.output_id);continue}if(s===0||s===1){let{leftKey:l,rightKey:d}=Z6(t,i,s);l===d&&n.add(i.output_id);}}return e.filter(r=>!n.has(r.output_id))}function Ox(e,n=false,r){let o=e;if(r?.fixedOnly&&(o=o.filter(l=>xi(l.category)===1)),o.length===0)return null;let t=tE(o);if(t.length===0)return null;let i=t.some(l=>Sc(l)!==null),s=i?t:ep(t);return s.length===0?null:[...s].sort((l,d)=>{if(i){let x=Sc(l),S=Sc(d);if(x!==null&&S!==null&&x!==S)return x-S;if(x!==null&&S===null)return -1;if(x===null&&S!==null)return 1}let m=xi(l.category),p=xi(d.category),f=m-p;if(f!==0)return f;if(m===2){let x=bh(l)-bh(d);if(x!==0)return x;let S=hh(d)-hh(l);if(S!==0)return S}let g=xc(d)-xc(l);if(g!==0)return g;let h=ud(d)-ud(l);return h!==0?h:l.output_id.localeCompare(d.output_id)})[0]??null}function q6(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function zx(e,n,r,o){let t=oe(o)?o:{},i=oe(t.decision)?t.decision:{},s=oe(t.content)?t.content:oe(i.content)?i.content:{},c=typeof i.visible=="boolean"?i.visible:typeof t.visible=="boolean"?t.visible:true;return {placementId:e,requestId:typeof t.request_id=="string"?t.request_id:n,visible:c,decisionSource:"remote",reasonCodes:Array.isArray(t.reason_codes)?t.reason_codes.filter(l=>typeof l=="string"):[],content:q6(typeof s.title=="string"?s.title:`${r} recommendation`,typeof s.body=="string"?s.body:"Treatment selected by RevTurbine decisioning.",typeof s.cta=="string"?s.cta:"Continue")}}function tp(e){let n=[],r=[e,e.content,oe(e.content)?e.content.payload:void 0,oe(e.content)?e.content.placement:void 0,oe(e.content)?e.content.surface:void 0];for(let o of r){if(!oe(o))continue;let t=oe(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=lh(t.max_per_period);s&&i.push(s);let c=Number(t.cooldown_days),l=Number.isFinite(c)&&c>0?c*24*60*60*1e3:void 0;n.push({rules:i,...l!==void 0?{cooldownMs:l}:{}});}return n}function jx(e,n,r,o,t="impression"){if(xi(e.category)<=1)return {allowed:true};let i=tp(e);if(i.length===0)return {allowed:true};let s={...r??{seenAt:[]},seenAt:(r?.seenAt??[]).filter(m=>Number.isFinite(m)&&m>0)};if(Number.isFinite(s.cooldownUntil)&&s.cooldownUntil>o)return {allowed:false,reason:"suppressed_by_payload_cooldown",updatedState:s};for(let m of i)for(let p of m.rules){let f=uh(p.period,o),g=s.seenAt.filter(h=>h>=f&&h<=o);if(g.length>=p.count)return {allowed:false,reason:`suppressed_by_payload_cap_${p.period}`,updatedState:{...s,seenAt:g}}}let c=[...s.seenAt,o],l=t==="dismiss"?i.map(m=>m.cooldownMs).filter(m=>typeof m=="number"&&Number.isFinite(m)&&m>0):[],d=l.length>0?o+Math.max(...l):void 0;return {allowed:true,updatedState:{seenAt:c,...d!==void 0?{cooldownUntil:d}:{}}}}function Ea(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim().length>0){let n=Number(e);if(Number.isFinite(n))return n}}function al(e){return e.replace(/_(minutes|minute|credits|credit|seats|seat)$/i,"").replace(/_usage$/i,"").trim()}function H6(e,n){let r=Ea(e.limit_value??e.usage_limit??e.limit??e.allowance??e.initial_grant);if(r!==void 0)return r;let o=e.usageLimits;if(o&&typeof o=="object"&&!Array.isArray(o)){let t=(n??"").toLowerCase();for(let[i,s]of Object.entries(o))if(i.toLowerCase()===t)return Ea(s)}}function K6(e){let n=Ea(e.warning_threshold_percent??e.warning_percentage??e.threshold_percent??e.threshold);if(n!==void 0)return Math.max(0,Math.min(100,n))}function Oa(e){let n={},r=e.providers;if(e.userId&&(n.user_id=e.userId),e.base)for(let[g,h]of Object.entries(e.base))(typeof h=="string"||typeof h=="number")&&(n[g]=h);let o=r?.plan?.currentPlanHandle,t=r?.plan?.currentPlanName??o;typeof t=="string"&&t.length>0&&(n.plan_name=t);let i=r?.plan?.trialDaysRemaining;i!==void 0&&Number.isFinite(i)&&(n.trial_days_remaining=i);let s=r?.plan?.trialDaysTotal;s!==void 0&&Number.isFinite(s)&&(n.trial_days_total=s);let c=r?.traits?.traits??{};for(let[g,h]of Object.entries(c))(typeof h=="string"||typeof h=="number")&&(n[g]=h);let l=r?.entitlements?.usage??{};for(let[g,h]of Object.entries(l)){let x=al(g);if(!x)continue;let S=Ea(h.used),w=Ea(h.remaining),$=Ea(h.limit);if(S!==void 0&&(n[`${x}_usage_current`]=S,n.usage_current===void 0&&(n.usage_current=S),n.current_usage===void 0&&(n.current_usage=S)),$!==void 0&&(n[`${x}_usage_limit`]=$,n.usage_limit===void 0&&(n.usage_limit=$),n.current_limit===void 0&&(n.current_limit=$)),w!==void 0)n[`${x}_usage_remaining`]=w,n.usage_remaining===void 0&&(n.usage_remaining=w);else if(S!==void 0&&$!==void 0){let P=Math.max(0,$-S);n[`${x}_usage_remaining`]=P,n.usage_remaining===void 0&&(n.usage_remaining=P);}if(S!==void 0&&$!==void 0&&$>0){let P=Math.min(100,Math.round(S/$*100));n[`${x}_usage_percent`]=P,n.usage_percent===void 0&&(n.usage_percent=P);}let E=h.reset_date;typeof E=="string"&&E.length>0&&(n[`${x}_reset_date`]=E,n.reset_date===void 0&&(n.reset_date=E));}let d=r?.rules?.entitlementRules??{};for(let[g,h]of Object.entries(d)){if(!Array.isArray(h)||h.length===0)continue;let x=h.find(P=>P.kind==="usage_limit"||P.kind==="usage_rate"||P.kind==="credits"||P.kind==="seat");if(!x)continue;let S=al(g);if(!S)continue;let w=x.fields??{},$=H6(w,o);$!==void 0&&n[`${S}_usage_limit`]===void 0&&(n[`${S}_usage_limit`]=$);let E=K6(w);E!==void 0&&(n[`${S}_usage_warning_threshold_percent`]=E);}e.userName&&e.userName.length>0&&(n.user_name=e.userName);let m=r?.plan?.currentPlanPrice;typeof m=="string"&&m.length>0&&(n.plan_price=m),e.upgradePlan?.name&&(n.upgrade_plan_name=e.upgradePlan.name),e.upgradePlan?.price&&(n.upgrade_plan_price=e.upgradePlan.price),e.trialPlanName&&e.trialPlanName.length>0&&(n.trial_plan_name=e.trialPlanName),e.promoDiscount&&e.promoDiscount.length>0&&(n.promo_discount=e.promoDiscount),e.featuresLostOnDowngrade&&e.featuresLostOnDowngrade.length>0&&(n.features_lost_on_downgrade=e.featuresLostOnDowngrade);let p=e.effectiveGrants;if(p)for(let[g,h]of Object.entries(p)){if(h.allocation==="per_user"||h.allocation==="per_user_pooled"||!h.allocation){let x=al(g);if(!x)continue;h.used!==void 0&&n[`${x}_usage_current`]===void 0&&(n[`${x}_usage_current`]=h.used),h.limit!==void 0&&n[`${x}_usage_limit`]===void 0&&(n[`${x}_usage_limit`]=h.limit);}if(h.enforcement&&(h.status==="limited"||h.status==="denied")){let x=al(g);x&&n[`${x}_enforcement`]===void 0&&(n[`${x}_enforcement`]=h.enforcement),n.enforcement_mode===void 0&&(n.enforcement_mode=h.enforcement);}}let f=r?.rules?.entitlementRules??{};for(let[g,h]of Object.entries(f)){if(!Array.isArray(h))continue;let x=al(g);if(x)for(let S of h){if(S.kind==="credits"){let w=n[`${x}_usage_remaining`];w!==void 0&&n.credits_remaining===void 0&&(n.credits_remaining=w);}if(S.kind==="seat"){let w=n[`${x}_usage_current`],$=n[`${x}_usage_limit`];w!==void 0&&n.seat_count===void 0&&(n.seat_count=w),$!==void 0&&n.seat_limit===void 0&&(n.seat_limit=$);}}}if(e.featureInteractions&&p){let{invokedFeatureHandles:g,interactionCounts:h,topFeaturesByEngagement:x}=e.featureInteractions,S=new Set(g),w=new Set;for(let[P,I]of Object.entries(p))(I.status==="denied"||I.status==="limited")&&w.add(P);let $=0,E=0;for(let P of g)w.has(P)&&($++,h&&(E+=h[P]??0));if(n.gated_features_used_count=$,h&&(n.gated_action_count=E),x){let P=x.find(I=>!S.has(I)&&w.has(I));P&&(n.top_unused_gated_feature=P);}if(r?.plan?.trialActive){let P=0;for(let I of g)I in p&&P++;n.trial_features_used=P;}}return n}function Ux(e,n){let r={};for(let[o,t]of Object.entries(n))t!==void 0&&(r[o]=t);return {...e,...r,custom:{...e.custom||{},...n.custom||{}},entitlements:{...e.entitlements||{},...n.entitlements||{}},usage:{...e.usage||{},...n.usage||{}},personalization:{...e.personalization||{},...n.personalization||{}}}}function np(e,n,r){let o={};for(let[t,i]of Object.entries(e))(typeof i=="string"||typeof i=="number"||typeof i=="boolean")&&(o[t]=i);n&&o.plan===void 0&&(o.plan=n);for(let[t,i]of Object.entries(r))o[t]===void 0&&(o[t]=i);return o}function rp(e,n,r){let o=ho(n,e.plan),t=o??(typeof e.plan=="object"&&e.plan?.id?e.plan.id:void 0),i={...e.custom??{}};for(let[c,l]of Object.entries(e.entitlements??{}))i[c]===void 0&&(i[c]=l);o&&i.plan_name===void 0&&(i.plan_name=o),t&&i.plan===void 0&&(i.plan=t);let s={...ti(e.usage),...r??{}};for(let[c,l]of Object.entries(s))i[c]===void 0&&(i[c]=l);return {effectivePlan:t,traits:i,usage:s,segmentTraits:np(i,t,s)}}function Ax(e){let{context:n,exportedConfig:r,usageBalances:o,usageTokenPrefixByEntitlement:t,usageThresholdLookup:i}=e,s={};for(let[w,$]of Object.entries(n.personalization??{}))/^(usage_(current|limit|remaining|percent)|.+_usage_(current|limit|remaining|percent)|plan_name|user_id)$/i.test(w)||(s[w]=$);let c={...s},l=ho(r,n.plan);l?c.plan_name=l:typeof n.plan=="object"&&n.plan?.name&&(c.plan_name=n.plan.name);let d={...ti(n.usage),...o},m=Object.entries(d).filter(([,w])=>Number.isFinite(w)).sort(([w],[$])=>w.localeCompare($)),p,f,g,h,x=[];for(let[w,$]of m){let E=t.get(w)??Qo(w);if(!E)continue;let I=i(w)?.limit,z=I!==void 0?Math.max(0,I-$):void 0,X=I!==void 0&&I>0?Math.min(100,Math.round($/I*100)):void 0;c[`${E}_usage_current`]=$,I!==void 0&&(c[`${E}_usage_limit`]=I),z!==void 0&&(c[`${E}_usage_remaining`]=z),X!==void 0&&(c[`${E}_usage_percent`]=X),x.push({prefix:E,current:$,...I!==void 0?{limit:I}:{},...z!==void 0?{remaining:z}:{},...X!==void 0?{percent:X}:{}}),p===void 0&&(p=$,f=I,g=z,h=X);}let S=x.find(w=>w.prefix==="core")??x.find(w=>w.limit!==void 0)??x[0];return S&&(p=S.current,f=S.limit,g=S.remaining,h=S.percent),p!==void 0&&(c.usage_current=p),f!==void 0&&(c.usage_limit=f),g!==void 0&&(c.usage_remaining=g),h!==void 0&&(c.usage_percent=h),c}function Dx(e,n,r){let o=[];for(let[t,i]of Object.entries(n)){let s=e[t]||0;if(!Number.isFinite(i)||i<=s)continue;let c=r(t);if(!c)continue;let l=s/c.limit*100,d=i/c.limit*100;d>=c.warningPercent&&l<c.warningPercent&&o.push({type:"usage_limit_approaching",entitlement_handle:t,current_usage:i,usage_limit:c.limit,usage_percent:Math.min(100,Math.round(d)),threshold:c.warningPercent}),i>=c.limit&&s<c.limit&&o.push({type:"usage_limit_reached",entitlement_handle:t,current_usage:i,usage_limit:c.limit,usage_percent:Math.min(100,Math.round(d)),threshold:100});}return o}function Fx(e,n,r=3){if(!e.in_trial)return n==="none"?"none":"expired";let o=Number(e.days_remaining);if(Number.isFinite(o)&&o<=0)return "expired";if(Number.isFinite(o)&&o<=r)return "expiring";let t=Number(e.day_number);if(Number.isFinite(t)&&t>0&&Number.isFinite(o)){let i=t+Math.max(0,o);if(i>0&&t>=Math.ceil(i/2))return "midpoint"}return "none"}a.object({target_plan_ids:a.array(a.string()).default([]),target_billing_periods:a.array(a.string()).default([]),category:a.string().optional()});function Nx(e,n){return e.target_plan_ids.length>0&&n.currentPlanId&&!e.target_plan_ids.includes(n.currentPlanId)?{eligible:false,reason:"plan_mismatch"}:e.target_billing_periods.length>0&&n.billingPeriod&&!e.target_billing_periods.includes(n.billingPeriod)?{eligible:false,reason:"billing_period_mismatch"}:(e.category==="upsell"||e.category==="trial_conversion")&&n.planHandle==="enterprise"?{eligible:false,reason:"enterprise_upsell_suppressed"}:{eligible:true}}var nE={Named:"named",Minted:"minted"},rE="x-revturbine-schema-identity";function $r(e="handle"){return {[rE]:{kind:nE.Named,handleField:e}}}function fr(e="handle"){return {[rE]:{kind:nE.Minted,handleField:e}}}var ut={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},pr={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},W6="x-revturbine-context",X6="x-revturbine-in-config",Y6="x-revturbine-sdk-input",Q6="x-revturbine-source",eF="x-revturbine-deprecation",tF={[ut.Playbook]:pr.Customer,[ut.Branding]:pr.Customer,[ut.Billing]:pr.Stripe,[ut.Metering]:pr.Customer,[ut.CustomerOperations]:pr.Runtime,[ut.EventIngestion]:pr.Runtime};function Dt(e,n){return {[W6]:e,[X6]:n.inConfig??e===ut.Playbook,[Y6]:n.sdkInput,[Q6]:n.source??tF[e]}}function sl(e){return {deprecated:true,[eF]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var it=e=>a.object({items:a.array(e)}),Vt=a.object({error:a.string(),code:a.string(),request_id:a.string()}),j=e=>e,ot=a.object({page:a.number().int().min(1).default(1).optional(),per_page:a.number().int().min(1).max(100).default(25).optional(),sort:a.string().optional(),order:a.enum(["asc","desc"]).default("asc").optional(),include_deleted:a.boolean().default(false).optional()});var ip=new Int32Array(2);new Float32Array(ip.buffer);new Float64Array(ip.buffer);new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var op;(function(e){e[e.UTF8_BYTES=1]="UTF8_BYTES",e[e.UTF16_STRING=2]="UTF16_STRING";})(op||(op={}));var rF=4294967295;var iF=rF;function Vx(e){return !e||e.trialActive!==true||e.trialState==="expired"?null:typeof e.trialProgressPercent=="number"&&e.trialProgressPercent>=0?Math.min(100,e.trialProgressPercent):typeof e.trialDaysTotal=="number"&&typeof e.trialDaysRemaining=="number"&&e.trialDaysTotal>0?Math.max(0,e.trialDaysTotal-e.trialDaysRemaining)/e.trialDaysTotal*100:typeof e.trialUsageLimit=="number"&&typeof e.trialUsageConsumed=="number"&&e.trialUsageLimit>0?Math.min(100,Math.max(0,e.trialUsageConsumed/e.trialUsageLimit*100)):null}function Lx(e,n){if(!e)return true;if(!n)return false;switch(e.kind){case "trial_started":{if(n.trialActive!==true)return false;let r=Vx(n);return r===null?false:r<=5}case "trial_progress":return n.trialActive===true&&n.trialState!=="expired"&&n.trialState!=="converted";case "trial_ending":return n.trialActive!==true||n.trialLimitType==="usage"||typeof n.trialDaysRemaining!="number"?false:n.trialDaysRemaining<=e.daysBeforeEnd;case "trial_ended":return n.trialState==="expired";case "trial_converted":return n.trialState==="converted";default:return false}}function gE(e,n){let r=e.filter(s=>s.trialTrigger?.kind==="trial_progress");if(r.length===0)return null;let o=r.filter(s=>s.trialTrigger?.kind!=="trial_progress"?false:n>=s.trialTrigger.progressPercent);if(o.length===0)return null;let t=o[0];for(let s of o.slice(1)){let c=s.trialTrigger.kind==="trial_progress"?s.trialTrigger.progressPercent:-1,l=t.trialTrigger.kind==="trial_progress"?t.trialTrigger.progressPercent:-1;(c>l||c===l&&s.entryOrder<t.entryOrder)&&(t=s);}let i=o.filter(s=>s!==t).map(s=>s.ruleId).filter(s=>typeof s=="string"&&s.length>0);return {winner:t,supersededIds:i}}function hE(e){switch(e.kind){case "trial_started":return {kind:"trial_started"};case "trial_progress":return typeof e.progressPercent=="number"?{kind:"trial_progress",progressPercent:e.progressPercent}:void 0;case "trial_ending":return typeof e.daysBeforeEnd=="number"?{kind:"trial_ending",daysBeforeEnd:e.daysBeforeEnd}:void 0;case "trial_ended":return {kind:"trial_ended"};case "trial_converted":return {kind:"trial_converted"};default:return}}function bE(e){if(!(!e||typeof e.type!="string"))switch(e.type){case "trial_started":return {kind:"trial_started"};case "trial_progress":return typeof e.progress_percent=="number"?{kind:"trial_progress",progressPercent:e.progress_percent}:void 0;case "trial_ending":return typeof e.days_before_end=="number"?{kind:"trial_ending",daysBeforeEnd:e.days_before_end}:void 0;case "trial_ended":return {kind:"trial_ended"};case "trial_converted":return {kind:"trial_converted"};default:return}}function ja(e){let n=Array.isArray(e.payloads)?e.payloads:[],r=new Map((Array.isArray(e.messageBlocks)?e.messageBlocks:[]).map(s=>[s.block_id,s])),o=Array.isArray(e.uiPaths)?e.uiPaths:[],t=Array.isArray(e.promotions)?e.promotions:[],i=Array.isArray(e.tokens)?e.tokens:[];return {listPayloads:s=>n.filter(c=>c.surface_template_id===s),getMessageBlockById:s=>r.get(s),getUiPathById:s=>o.find(c=>c.id===s||c.name===s),getPromotionById:s=>t.find(c=>c.id===s||c.name===s),listPersonalizationTokens:()=>i}}function Ua(e,n){let r={...e};for(let o of n){let t=e[o.token];if(t==null||!o.value_map)continue;let i=String(t),s=o.value_map[i];s!==void 0&&(r[o.token]=s);}return r}function Bx(e,n){let r={current_usage:"usage_current",current_limit:"usage_limit",remaining_usage:"usage_remaining"};return e.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g,(o,t)=>{let i=n[t];if(i===void 0){let s=r[t];s&&(i=n[s]);}return i===void 0?o:String(i)})}function Mx(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=Bx(t,n):r[o]=t;return r}function _E(e,n){return Mx(e,n)}function sp(e,n,r,o,t,i,s){let c=r.filter(f=>f.surface_template_id===e&&f.status==="active");if(c.length===0)return null;let l=new Map(o.map(f=>[f.block_id,f])),d=new Set(n.segmentIds),m=Ua(i,t),p=s?.segmentDimensions;for(let f of c){let g=f.default_message_block_id,h,x=f.ui_path_id,S=f.promotion_id;if(f.segment_content_map){if(p&&Object.keys(p).length>0){let P=new Map;for(let I of f.segment_content_map){let z=I.dimension;if(!z)continue;let X=P.get(z)??[];X.push(I),P.set(z,X);}if(P.size>0){let I=true,z;for(let[,X]of P){let re=X.find(L=>d.has(L.segment_id));if(!re){I=false;break}z||(z=re);}if(I&&z)g=z.message_block_id,h=z.segment_id,z.ui_path_id&&(x=z.ui_path_id),z.promotion_id&&(S=z.promotion_id);else if(!I)continue}else for(let I of f.segment_content_map)if(d.has(I.segment_id)){g=I.message_block_id,h=I.segment_id,I.ui_path_id&&(x=I.ui_path_id),I.promotion_id&&(S=I.promotion_id);break}}else for(let P of f.segment_content_map)if(d.has(P.segment_id)){g=P.message_block_id,h=P.segment_id,P.ui_path_id&&(x=P.ui_path_id),P.promotion_id&&(S=P.promotion_id);break}}let w=l.get(g);if(!w||w.status!=="active")continue;let $={...w.default_content};if(w.segment_overrides){let P=h?w.segment_overrides.find(I=>I.segment_value_id===h):w.segment_overrides.find(I=>d.has(I.segment_value_id));P&&($={...$,...P.content},h=P.segment_value_id);}let E=_E($,m);return {payload:f,messageBlock:w,resolvedContent:E,matchedSegmentId:h,uiPathId:x,promotionId:S}}return null}async function ll(e,n,r,o,t){let s=(await Promise.resolve(r.listPayloads(e))).filter(m=>m.status==="active");if(s.length===0)return null;let c=new Set(n.segmentIds),l=t??(r.listPersonalizationTokens?await Promise.resolve(r.listPersonalizationTokens()):[]),d=Ua(o,l);for(let m of s){let p=m.default_message_block_id,f,g=m.ui_path_id,h=m.promotion_id;if(m.segment_content_map){for(let P of m.segment_content_map)if(c.has(P.segment_id)){p=P.message_block_id,f=P.segment_id,P.ui_path_id&&(g=P.ui_path_id),P.promotion_id&&(h=P.promotion_id);break}}let x=await Promise.resolve(r.getMessageBlockById(p));if(!x||x.status!=="active")continue;let S={...x.default_content};if(x.segment_overrides){let P=f?x.segment_overrides.find(I=>I.segment_value_id===f):x.segment_overrides.find(I=>c.has(I.segment_value_id));P&&(S={...S,...P.content},f=P.segment_value_id);}let w=_E(S,d),$;g&&r.getUiPathById&&($=await Promise.resolve(r.getUiPathById(g)));let E;return h&&r.getPromotionById&&(E=await Promise.resolve(r.getPromotionById(h))),{payload:m,messageBlock:x,resolvedContent:w,matchedSegmentId:f,uiPathId:g,promotionId:h,uiPath:$??void 0,promotion:E??void 0}}return null}function oF(e,n){let r=n.grants;if(!r)return;let o=r.user?.[e]??r.instance?.[e]??r.account?.[e];switch(o?.allocation){case "account_pool":case "per_user_pooled":return r.account?.[e]??o;case "per_instance":return r.instance?.[e]??o;case "per_user":return r.user?.[e]??o;default:return o}}function aF(e,n){let r=oF(e,n);if(r&&typeof r.limit=="number")return {used:typeof r.used=="number"?r.used:0,limit:r.limit};let o=n.usage?.[e];return o&&typeof o.limit=="number"?{used:o.used,limit:o.limit,remaining:o.remaining}:null}function sF(e,n){if(!n)return null;let r=aF(e.entitlementHandle,n);return !r||!Number.isFinite(r.limit)||r.limit<=0?null:e.kind==="credit_threshold"&&typeof r.remaining=="number"?(r.limit-r.remaining)/r.limit*100:Number.isFinite(r.used)?r.used/r.limit*100:null}function uE(e,n){if(!e)return true;let r=sF(e,n);return r===null?false:r>=e.thresholdPercent}var{Unrestricted:le}=ji,{Persisted:ul,Transient:Ai}=Oi,{External:gr,Internal:cF}=zi,vE=Dt(ut.Playbook,{sdkInput:true}),lF=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),uF=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),dF=Dt(ut.Playbook,{inConfig:false,sdkInput:false,source:pr.Runtime}),mF=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]),pF={other_conversion:["none_always_on","overage_vs_upgrade","time_bound"],retention:["payment_failed","payment_at_risk"]};function fF(e){return pF[e]??[]}function gF(e,n){return fF(n).includes(e)}var yE=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),xE=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),hF=a.object({count:a.number().int().positive().meta(le),period:xE.meta(le)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr});a.object({surface_type:a.string().min(1).meta(le),rules:a.array(hF).meta(le),cooldown_ms:a.number().int().nonnegative().optional().meta(le)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":ul,"x-revturbine-schema-exposure":gr,"x-revturbine-data-classification":"operational",...uF});var bF=a.enum(["open_checkout","view_plans","book_demo","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription","switch_billing_period","extend_trial","open_rt_placement","dismiss","snooze","custom"]).meta({id:"CtaPathType","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),za=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true}),name:oi.meta(le),handle:Xt.meta(le),description:Jm.meta(le),category:yE.meta(le),drag_order_in_category:a.number().int().default(0).meta(le),surface_slot_id:a.string().optional().meta(le),entitlement_id:a.string().optional().meta(le),tier_threshold:a.string().optional().meta(le),threshold_percent:$o.optional().meta(le),trial_type:a.enum(["free","reverse"]).optional().meta(le),trigger_type:a.string().optional().meta(le),trial_progress_percent:a.number().min(0).max(100).optional().meta(le),days_before_end:a.number().int().min(0).optional().meta(le),qualifier:mF.optional().meta(le),activation_window_start:a.string().datetime().optional().meta(le),activation_window_end:a.string().datetime().optional().meta(le),metadata:ar.meta(le)}).meta({id:"Placement","x-revturbine-schema-persistence":ul,"x-revturbine-schema-exposure":gr,...vE,...$r()}),_F=vn("PlacementAnchor"),vF=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),yF=a.object({code:vF.meta(le),message:a.string().min(1).meta(le),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(le)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),dE=za.extend({warnings:a.array(yF).optional().meta(le)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),xF=a.object({label:a.string().min(1).max(200).meta(le),cta_path_type:bF.meta(le),config_fields:a.record(a.string(),a.unknown()).default({}).meta(le)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),cl=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true}),handle:Xt.meta({...le,readOnly:true}),placement_id:a.string().min(1).meta(le),drag_order:a.number().int().default(0).meta(le),target_plan_ids:a.array(a.string()).default([]).meta(le),target_plan_billing_cadences:a.array(a.string()).default([]).meta(le),target_segments:a.array(a.string()).default([]).meta(le),surface_slot_ids:a.array(a.string()).default([]).meta(le),surface_template_id:a.string().min(1).meta(le),content_fields:a.record(a.string(),a.unknown()).default({}).meta(le),cta_list:a.array(xF).default([]).meta(le),max_per_period:a.number().int().min(0).nullable().default(null).meta(le),max_period_unit:xE.default("session").meta(le),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(le),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(le),recommendation_plan_override:a.string().optional().meta(le)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":ul,"x-revturbine-schema-exposure":gr,...vE,...fr()}),SF=vn("PlacementPayloadAnchor");yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...le,readOnly:true}),placement_payload_id:a.string().min(1).meta(le),experiment_id:a.string().min(1).meta(le),variant_name:a.string().min(1).max(200).meta(le),is_control:a.boolean().default(false).meta(le),traffic_allocation_percent:a.number().min(0).max(100).meta(le),override_fields:a.record(a.string(),a.unknown()).default({}).meta(le),status:a.enum(["active","paused","complete"]).default("active").meta(le)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":ul,"x-revturbine-schema-exposure":cF,...lF,...fr()});var IF=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({surface_slot_handle:a.string().min(1).max(200).meta(le),surface_type:Ix.meta(le),surface_template_ids:a.array(a.string()).default([]).meta(le),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(le),first_seen:a.string().datetime().meta({...le,readOnly:true}),last_seen:a.string().datetime().meta({...le,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(le),placement_count:a.number().int().min(0).default(0).meta({...le,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":ul,"x-revturbine-schema-exposure":gr,...dF,...$r("surface_slot_handle")}),PF=Kn(za),kF=Kn(cl);({"/api/placement-anchors":{get:j({operationId:"listPlacementAnchors",requestParams:{query:ot},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:it(_F)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:j({operationId:"listPlacements",requestParams:{query:ot},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:it(za)}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"list"}}}),post:j({operationId:"createPlacement",summary:"Create placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:_n(za)}}},responses:{201:{description:"Created",content:{"application/json":{schema:dE}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"create"}}})},"/api/placements/{placementId}":{get:j({operationId:"getPlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Get placement",tags:["placements"],responses:{200:{description:"Placement detail",content:{"application/json":{schema:za}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"get"}}}),patch:j({operationId:"updatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Update placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:PF}}},responses:{200:{description:"Updated",content:{"application/json":{schema:dE}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"update"}}}),delete:j({operationId:"deletePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Delete placement",tags:["placements"],responses:{204:{description:"Deleted"},default:{description:"Error",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"delete"}}})},"/api/placements/{placementId}/duplicate":{post:j({operationId:"duplicatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Duplicate placement",tags:["placements"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:za}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"duplicate"}}})},"/api/placements/reorder":{post:j({operationId:"reorderPlacements",summary:"Reorder placements within category",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:a.object({category:yE,ids:a.array(a.string())})}}},responses:{200:{description:"Reordered"}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"reorder"}}})},"/api/placement-payload-anchors":{get:j({operationId:"listPlacementPayloadAnchors",requestParams:{query:ot},summary:"List placement payload anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement payload anchor list",content:{"application/json":{schema:it(SF)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-payload-anchors",persistence:{table:"placementPayloads",mode:"list"}}})},"/api/placements/{placementId}/payloads":{get:j({operationId:"listPlacementPayloads",requestParams:{path:a.object({placementId:a.string()}),query:ot},summary:"List placement payloads",tags:["placements"],responses:{200:{description:"Payload list",content:{"application/json":{schema:it(cl)}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"list"}}}),post:j({operationId:"createPlacementPayload",requestParams:{path:a.object({placementId:a.string()})},summary:"Create placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:_n(cl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:cl}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"create"}}})},"/api/placement-payloads/{payloadId}":{patch:j({operationId:"updatePlacementPayload",requestParams:{path:a.object({payloadId:a.string()})},summary:"Update placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:kF}}},responses:{200:{description:"Updated",content:{"application/json":{schema:cl}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"update"}}}),delete:j({operationId:"deletePlacementPayload",requestParams:{path:a.object({payloadId:a.string()})},summary:"Delete placement payload",tags:["placements"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"delete"}}})},"/api/surface-slots":{get:j({operationId:"listSurfaceSlots",requestParams:{query:ot},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:it(IF)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});function mE(e,n,r){if(!e)return true;if(!gF(e.qualifier,n))return false;switch(e.qualifier){case "none_always_on":return true;case "payment_failed":return r?.paymentFailed===true;case "payment_at_risk":return r?.paymentAtRisk===true;default:return true}}function pE(e,n,r){if(!e||!e.tierThreshold)return true;let o=n.get(e.entitlementHandle);if(!o||o.length===0)return false;let t=o.indexOf(e.tierThreshold);if(t<0)return false;let i=r?.tiers?.[e.entitlementHandle];return (i?o.indexOf(i):-1)<t}var SE={modal_overlay:"modal",banner_placement:"banner",in_page_card:"in_page",inline_gate_message:"in_page",usage_counter:"in_page",button:"button",email:"email",full_page:"full_page"};function TF(e,n){return e.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g,(r,o)=>{let t=n[o];return t==null?`{{${o}}}`:String(t)})}function $F(e){let n={};for(let[r,o]of Object.entries(e)){if(typeof o=="string"){n[r]=TF(o,e);continue}n[r]=o;}return n}function IE(e){if(!e?.path)return {type:"dismiss"};let n=e.path,r=e.config??{};return n==="open_checkout"?{type:"open_checkout_modal",plan_handle:typeof r.purchase=="string"?r.purchase:void 0}:n==="view_plans"?{type:"navigate_to_plans"}:n==="snooze_remind_later"?{type:"dismiss"}:n==="open_rt_placement"?{type:"open_rt_placement",placement_handle:typeof r.placement_handle=="string"?r.placement_handle:void 0}:{type:n,...r}}function PE(e,n){if(e==="qualifier"&&!(typeof n!="string"||n.length===0))return {kind:"qualifier",qualifier:n}}function wF(e){if(!e||typeof e!="object")return;let n="type"in e&&typeof e.type=="string"?e.type:void 0,r="qualifier"in e?e.qualifier:void 0;return PE(n,r)}function RF(e){if(e)return PE(e.kind,e.qualifier)}function kE(e,n,r){if(!(e!=="usage_threshold"&&e!=="credit_threshold"&&e!=="seat_threshold")&&!(typeof n!="string"||n.length===0)&&!(typeof r!="number"||!Number.isFinite(r)))return {kind:e,entitlementHandle:n,thresholdPercent:r}}function CF(e,n){if(!e||typeof e!="object")return;let r="type"in e&&typeof e.type=="string"?e.type:void 0,o="threshold_percent"in e?e.threshold_percent:void 0;return kE(r,n,o)}function EF(e,n){if(e)return kE(e.kind,n,e.thresholdPercent)}function TE(e,n,r){if(e!=="entitlement_gate"||typeof n!="string"||n.length===0)return;let o=typeof r=="string"&&r.length>0?r:void 0;return {kind:"entitlement_gate",entitlementHandle:n,tierThreshold:o}}function OF(e,n){if(!e||typeof e!="object")return;let r="type"in e&&typeof e.type=="string"?e.type:void 0,o="tier_threshold"in e?e.tier_threshold:void 0;return TE(r,n,o)}function zF(e,n){if(e)return TE(e.kind,n,e.tierThreshold)}function jF(e){if(!e||typeof e!="object"||!("entitlement_handle"in e))return;let n=e.entitlement_handle;return typeof n=="string"?n:void 0}function UF(e){if(!e||typeof e!="object"||!("slot_id"in e))return;let n=e.slot_id;return typeof n=="string"?n:void 0}function AF(e,n){let r={...SE};for(let c of e.surface_templates??[])r[c.id]=c.surface_type;let o=new Map;for(let c of e.plans??[])o.set(c.unique_handle,c.unique_handle);let t=new Map;for(let c of e.entitlements??[])c.tier_definitions?.length&&t.set(c.unique_handle,c.tier_definitions.map(l=>l.handle));let i=new Map,s=new Map;for(let c of n.placements){let l=c.payloads[0];if(!l)continue;let d=l.surfaces[0];if(!d)continue;let m=d.template_id,p=r[m]??"custom",f={...d.fields};d.ctas?.[0]&&(f.cta_label=d.ctas[0].label),d.ctas?.[1]&&(f.secondary_cta_label=d.ctas[1].label);let g=IE(d.ctas?.[0]),h=Array.isArray(l.target?.plan_ids)?l.target.plan_ids:[],x=jF(c.trigger),S=UF(c.trigger),w=bE(c.trigger),$=CF(c.trigger,x),E=wF(c.trigger),P=OF(c.trigger,x),I={output_id:l.id,category:c.category,surface:{template:m,type:p,slot_id:c.id},content:{...f,__target_plan_ids:h,...x?{__trigger_entitlement_handle:x}:{},...w?{__trigger_kind:w.kind}:{}},cta_path:g,rule_id:c.id,decision_id:l.id,config_version:e.version,present_upsell:true},z=i.get(m)??[];z.push({output:I,entryOrder:c.order??0,entryCategory:c.category,triggerEntitlementHandle:x,triggerSlotId:S,trialTrigger:w,thresholdTrigger:$,qualifierTrigger:E,entitlementGateTrigger:P}),i.set(m,z);let X=c.id.replace(/^pl_/,"");s.set(X,I),s.set(c.id,I);}for(let c of i.values())c.sort((l,d)=>l.entryOrder-d.entryOrder);return {outputsByTemplate:i,outputsByName:s,planHandleToId:o,tierLaddersByHandle:t}}function DF(e,n){let r=n.trigger;if(r.kind==="entitlement_gate"||r.kind==="usage_threshold"||r.kind==="credit_threshold"||r.kind==="seat_threshold")return e.getEntitlement(r.entitlementIdx)?.uniqueHandle}function FF(e,n){return n.trigger.kind!=="surface_render"?void 0:e.getSlot(n.trigger.slotIdx)?.sourceId}function NF(e){let n={...SE};for(let c=0;c<e.surfaceTemplatesLength();c++){let l=e.getSurfaceTemplate(c);l&&(n[l.sourceId]=l.surfaceType);}let r=new Map;for(let c=0;c<e.plansLength();c++){let l=e.getPlan(c);l&&r.set(l.uniqueHandle,l.sourceId);}let o=new Map;for(let c=0;c<e.entitlementsLength();c++){let l=e.getEntitlement(c);l&&l.tierHandles.length>0&&o.set(l.uniqueHandle,l.tierHandles);}let t=new Map,i=new Map,s=e.header().configVersion;for(let c=0;c<e.placementsLength();c++){let l=e.getPlacement(c);if(!l)continue;let d=l.payloads[0];if(!d)continue;let m=d.surfaces[0];if(!m)continue;let p=m.templateSourceId,f=n[p]??"custom",g={...m.fields};m.ctas[0]&&(g.cta_label=m.ctas[0].label),m.ctas[1]&&(g.secondary_cta_label=m.ctas[1].label);let h=IE(m.ctas[0]),x=[];for(let L of d.target.planIdxs){let H=e.getPlan(L);H&&x.push(H.sourceId);}let S=DF(e,l),w=FF(e,l),$=hE(l.trigger),E=EF(l.trigger,S),P=RF(l.trigger),I=zF(l.trigger,S),z={output_id:d.sourceId,category:l.category,surface:{template:p,type:f,slot_id:l.sourceId},content:{...g,__target_plan_ids:x,...S?{__trigger_entitlement_handle:S}:{},...$?{__trigger_kind:$.kind}:{}},cta_path:h,rule_id:l.sourceId,decision_id:d.sourceId,config_version:s,present_upsell:true},X=t.get(p)??[];X.push({output:z,entryOrder:l.order,entryCategory:l.category,triggerEntitlementHandle:S,triggerSlotId:w,trialTrigger:$,thresholdTrigger:E,qualifierTrigger:P,entitlementGateTrigger:I}),t.set(p,X);let re=l.sourceId.replace(/^pl_/,"");i.set(re,z),i.set(l.sourceId,z);}for(let c of t.values())c.sort((l,d)=>l.entryOrder-d.entryOrder);return {outputsByTemplate:t,outputsByName:i,planHandleToId:r,tierLaddersByHandle:o}}function LF(e,n){let r=e.message_blocks,o=e.placement_payloads;if(!r?.length||!o?.length)return;let t=new Map;for(let s of n.placements){let c=s.payloads[0]?.surfaces?.[0]?.template_id;c&&t.set(s.id,c);}let i=[];for(let s of o){let c=s.content_link?.message_block_id;if(!c)continue;let l=t.get(s.placement_id);l&&i.push({payload_id:s.payload_id,tenant_id:"",name:s.payload_id,surface_template_id:l,default_message_block_id:c,ui_path_id:s.content_link?.ui_path_id,promotion_id:s.content_link?.promotion_id,status:"active"});}if(i.length!==0)return ja({payloads:i,messageBlocks:r,uiPaths:e.content_ui_paths,promotions:e.content_promotions,tokens:e.personalization_tokens})}function VF(e){let n=e.messageBlocksLength(),r=e.placementPayloadsLength();if(n===0||r===0)return;let o=new Map;for(let c=0;c<e.placementsLength();c++){let l=e.getPlacement(c);if(!l)continue;let d=l.payloads[0]?.surfaces?.[0]?.templateSourceId;d&&o.set(l.sourceId,d);}let t=[],i=new Map;for(let c=0;c<n;c++){let l=e.getMessageBlock(c);l&&(t.push(l),i.set(c,l.block_id));}let s=[];for(let c=0;c<r;c++){let l=e.getPlacementPayload(c);if(!l||l.messageBlockIdx===iF)continue;let d=i.get(l.messageBlockIdx);if(!d)continue;let m=o.get(l.placementSourceId);m&&s.push({payload_id:l.sourceId,tenant_id:"",name:l.sourceId,surface_template_id:m,default_message_block_id:d,status:"active"});}if(s.length!==0)return ja({payloads:s,messageBlocks:t})}function $E(e){let{source:n,impressionHistory:r}=e,{outputsByTemplate:o,outputsByName:t,planHandleToId:i,tierLaddersByHandle:s}=n.format==="flatbuffer"?NF(n.handle):AF(n.exportedConfig,n.placements),c=n.format==="json"?LF(n.exportedConfig,n.placements):VF(n.handle);function l(d,m,p,f){let g=Array.isArray(d.content.__target_plan_ids)?d.content.__target_plan_ids.filter(x=>typeof x=="string"):[],h=Array.isArray(d.content.__target_billing_periods)?d.content.__target_billing_periods.filter(x=>typeof x=="string"):[];return Nx({target_plan_ids:g,target_billing_periods:h,category:d.category},{currentPlanId:m,planHandle:p,billingPeriod:f}).eligible}return async(d,m,p)=>{let f=p?.__providers,g=f?.plan?.currentPlanHandle,h=f?.plan?.billingPeriod,x=g?i.get(g):void 0,S=fe=>typeof fe=="string"?fe:"",w=Array.isArray(m?.metadata?.surface_template_ids)?m.metadata.surface_template_ids:void 0,$,E=[];if(w&&w.length>0){let fe=[];for(let ve of w){let kt=o.get(ve);kt&&fe.push(...kt);}if(fe.length===0)return fE(d,"no_candidates_for_template","No placements configured for this surface template");fe.sort((ve,kt)=>ve.entryOrder-kt.entryOrder);let ie=m?.metadata?.entitlement_handle,ze=m?.metadata?.surface_slot_category,Qe=ze?{gated:["gated"],fixed:["fixed"],triggered:["usage_credit_seat","trials","other_conversion","retention"]}[ze]:void 0,he=fe;if(ie){let ve=fe.filter(kt=>kt.triggerEntitlementHandle===ie);ve.length>0&&(he=ve);}let rt=m?.metadata?.surface_slot_id;if(rt){let ve=he.filter(kt=>kt.triggerSlotId===rt);ve.length>0&&(he=ve);}if(Qe&&ze!=="fixed"&&he.length>1){let ve=he.filter(kt=>Qe.includes(kt.entryCategory));ve.length>0&&(he=ve);}r&&(he=he.filter(ve=>!r.isHiddenSync(ve.output.rule_id??""))),he=he.filter(ve=>Lx(ve.trialTrigger,f?.plan)),he=he.filter(ve=>uE(ve.thresholdTrigger,f?.entitlements)),he=he.filter(ve=>mE(ve.qualifierTrigger,ve.entryCategory,f?.plan)),he=he.filter(ve=>pE(ve.entitlementGateTrigger,s,f?.entitlements));let rn,K=[],G=Vx(f?.plan);if(G!==null&&he.length>1){let ve=he.map(un=>({ruleId:un.output.rule_id??void 0,entryOrder:un.entryOrder,trialTrigger:un.trialTrigger,output:un.output})),kt=gE(ve,G);if(kt){rn=kt.winner,K=kt.supersededIds;let un=kt.winner.ruleId;he=he.filter(ad=>ad.trialTrigger?.kind!=="trial_progress"||(ad.output.rule_id??void 0)===un);}}let ge;for(let ve of he)if(l(ve.output,x,g,h)){$=ve.output,ge=ve;break}ge&&rn&&rn.ruleId===(ge.output.rule_id??void 0)&&K.length>0&&($={...$,content:{...$.content,__superseded_placement_ids:K}}),$||(E=["no_eligible_candidate"]);}else {let fe=m?.name,ie=(fe?t.get(fe):void 0)??t.get(d.placementId),ze;if(ie)for(let At of o.values()){let Qe=At.find(he=>he.output===ie);if(Qe){ze=Qe;break}}ie&&r?.isHiddenSync(ie.rule_id??"")?E=["placement_retired"]:ie&&!Lx(ze?.trialTrigger,f?.plan)?E=["trial_trigger_unmet"]:ie&&!uE(ze?.thresholdTrigger,f?.entitlements)?E=["threshold_trigger_unmet"]:ie&&!mE(ze?.qualifierTrigger,ze?.entryCategory??ie.category,f?.plan)?E=["qualifier_trigger_unmet"]:ie&&!pE(ze?.entitlementGateTrigger,s,f?.entitlements)?E=["entitlement_gate_unmet"]:ie&&l(ie,x,g,h)?$=ie:ie?E=["plan_target_mismatch"]:E=["placement_not_found"];}if(!$){let fe=E[0]??"placement_not_found";return fE(d,fe,"Placement not configured")}let P=$.content,I=$.surface.template;if(c&&I){let fe={userId:typeof d.userId=="string"?d.userId:"",segmentIds:f?.segments?.segmentIds??[]},ie=await ll(I,fe,c,{});ie&&(P={...$.content,...ie.resolvedContent});}let z={...P},X=typeof z.entitlement=="string"?z.entitlement:typeof z.__trigger_entitlement_handle=="string"?z.__trigger_entitlement_handle:void 0,re=X?f?.entitlements?.usage?.[X]:void 0;if(re){z.usage_remaining=Number.isFinite(re.remaining)?re.remaining:0,z.usage_limit=Number.isFinite(re.limit)?re.limit:0,z.usage_current=Number.isFinite(re.used)?re.used:0,z.usage_percent=re.limit>0?Math.min(100,Math.round(re.used/re.limit*100)):0;let fe=re.reset_date;typeof fe=="string"&&fe.length>0&&(z.reset_date=fe);}let L=$F(z),H={...$,content:L},me=!(($.category==="upsell"||$.category==="trial_conversion")&&g==="enterprise");return {placementId:d.placementId,requestId:`local_${Date.now()}`,visible:me,decisionSource:"fallback",reasonCodes:me?[]:["plan_tier_suppressed"],content:{header:S(H.content.header),body:S(H.content.body),cta_label:S(H.content.cta_label),title:S(H.content.header),cta:S(H.content.cta_label)},output:H}}}function fE(e,n,r){return {placementId:e.placementId,requestId:`local_${Date.now()}`,visible:false,decisionSource:"fallback",reasonCodes:[n],content:{header:r,body:"",cta_label:"",title:r,cta:""}}}function wo(e){return $E({source:{format:"json",exportedConfig:e.exportedConfig,placements:e.placements},impressionHistory:e.impressionHistory})}var wE=a.enum(["session","day","week","month"]),RE=a.object({kind:a.enum(["template","slot"]),id:a.string(),label:a.string().optional()});a.object({id:a.string(),group:a.array(RE),cap:a.object({count:a.number().int().min(1),period:wE})});var EE=a.enum(["trial_started","trial_ending","trial_ended","trial_converted"]);a.object({stages:a.array(EE).default([]),days_before_end:a.number().int().min(0).max(365).nullable().default(null),trial_type:a.enum(["free","reverse"]).nullable().default(null)});a.object({threshold_percent:a.number().int().min(0).max(100),trial_type:a.enum(["free","reverse"]).nullable().default(null)});var {Unrestricted:ae}=ji,{Persisted:Jx,Transient:Jn}=Oi,{Internal:jE,External:On}=zi,UE=Dt(ut.Playbook,{sdkInput:true}),qF=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),AE=a.enum(["per_month","per_year","per_billing_period","lifetime","concurrent","per_instance","per_second","per_minute","per_hour","per_6_hours","per_day","per_week"]).meta({id:"UsagePeriodScope","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),up=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),HF=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),KF=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),DE=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),Zx=a.object({entitlement_id:a.string().min(1).meta(ae),entitlement_handle:a.string().min(1).meta(ae),status:HF.meta(ae),limit:a.number().optional().meta(ae),used:a.number().optional().meta(ae),allocation:up.optional().meta(ae),enforcement:DE.optional().meta(ae),source:KF.optional().meta(ae),plan_id:a.string().optional().meta(ae),segment_id:a.string().optional().meta(ae),seat_type_id:a.string().optional().meta(ae),rule_id:a.string().optional().meta(ae)}).meta({id:"EntitlementGrant","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),Zx).optional().meta(ae),instance:a.record(a.string(),Zx).optional().meta(ae),user:a.record(a.string(),Zx).optional().meta(ae)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On,"x-revturbine-data-classification":"operational"});var GF=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),JF=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),FE=a.object({kind:JF.meta(ae),id:a.string().min(1).meta(ae)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),WF=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),La=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ae,readOnly:true}),name:oi.meta(ae),handle:Xt.meta(ae),customer_facing_description:a.string().max(500).optional().meta(ae),type:Gm.meta(ae),unit:a.string().max(100).optional().meta(ae),period_scope:AE.optional().meta(ae),allocation:up.optional().meta(ae),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(ae),sort_order:a.number().int().default(0).meta(ae),metadata:ar.meta(ae)}).meta({id:"Entitlement","x-revturbine-schema-persistence":Jx,"x-revturbine-schema-exposure":On,...UE,...$r()}),XF=vn("EntitlementAnchor"),Ka=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ae,readOnly:true}),handle:Xt.meta({...ae,readOnly:true}),entitlement_id:a.string().min(1).meta(ae),targets:a.array(FE).min(1).meta(ae),segment_ids:a.array(a.string()).default([]).meta(ae),visibility:GF.default("public").meta(ae),period_scope:AE.optional().meta(ae),instance:a.string().max(100).optional().meta(ae),reset_period:WF.optional().meta(ae),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(ae),enforcement:DE.optional().meta(ae),warning_threshold_percent:$o.optional().meta(ae),overage_price_ref:a.string().optional().meta(ae),grace_period_hours:a.number().int().min(0).optional().meta(ae),tier_value:a.string().optional().meta(ae),rate_value:a.number().optional().meta(ae),initial_grant:a.number().optional().meta(ae),allowance_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(ae),rollover_enabled:a.boolean().optional().meta(ae),max_balance:a.union([a.number(),a.literal("unlimited")]).nullable().default(null).meta(ae),seat_type_id:a.string().optional().meta(ae),included_count:a.union([a.number().int(),a.literal("unlimited")]).optional().meta(ae),at_limit_behavior:a.enum(["hard_cap","auto_upgrade_at_renewal"]).optional().meta(ae),stripe_metered_price_id:a.string().optional().meta(ae),enabled:a.boolean().optional().meta(ae),allocation:up.optional().meta(ae),max_seats:a.union([a.number(),a.literal("unlimited")]).nullable().optional().meta(ae),amount_cents:a.number().int().optional().meta(ae),currency:a.string().optional().meta(ae)}).meta({id:"EntitlementRule","x-revturbine-schema-persistence":Jx,"x-revturbine-schema-exposure":jE,...UE,...fr()}),YF=vn("EntitlementRuleAnchor");Ka.superRefine((e,n)=>{e.reset_period==="billing_period"&&e.targets.findIndex(o=>o.kind!=="plan_variation"&&o.kind!=="addon_variation")!==-1&&n.addIssue({code:"custom",path:["reset_period"],params:{code:"billing_period_target_mismatch"},message:"reset_period='billing_period' requires all targets to be plan_variation or addon_variation"});});var QF=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),eN=a.object({code:QF.meta(ae),message:a.string().min(1).meta(ae),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(ae)}).meta({id:"EntitlementRuleWarning","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),qx=Ka.extend({warnings:a.array(eN).optional().meta(ae)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),Hx=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...ae,readOnly:true}),rule_id:a.string().min(1).meta(ae),experiment_id:a.string().min(1).meta(ae),variant_name:a.string().min(1).max(200).meta(ae),is_control:a.boolean().default(false).meta(ae),override_fields:a.record(a.string(),a.unknown()).default({}).meta(ae)}).meta({id:"EntitlementRuleVariant","x-revturbine-schema-persistence":Jx,"x-revturbine-schema-exposure":jE,...qF,...fr()}),tN=Kn(La),nN=Kn(Ka);({"/api/entitlement-anchors":{get:j({operationId:"listEntitlementAnchors",requestParams:{query:ot},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:it(XF)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:j({operationId:"listEntitlementRuleAnchors",requestParams:{query:ot},summary:"List entitlement rule anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement rule anchor list",content:{"application/json":{schema:it(YF)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:j({operationId:"listEntitlements",requestParams:{query:ot},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:it(La)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"list"}}}),post:j({operationId:"createEntitlement",summary:"Create entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:_n(La)}}},responses:{201:{description:"Created",content:{"application/json":{schema:La}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"create"}}})},"/api/entitlements/{entitlementId}":{get:j({operationId:"getEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Get entitlement",tags:["entitlements"],responses:{200:{description:"Entitlement detail",content:{"application/json":{schema:La}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"get"}}}),patch:j({operationId:"updateEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Update entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:tN}}},responses:{200:{description:"Updated",content:{"application/json":{schema:La}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"update"}}}),delete:j({operationId:"deleteEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Delete entitlement",tags:["entitlements"],responses:{204:{description:"Deleted"},default:{description:"Error",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"delete"}}})},"/api/entitlements/{entitlementId}/rules":{get:j({operationId:"listEntitlementRules",requestParams:{path:a.object({entitlementId:a.string()}),query:ot},summary:"List rules for entitlement",tags:["entitlements"],responses:{200:{description:"Rule list",content:{"application/json":{schema:it(Ka)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"list"}}}),post:j({operationId:"createEntitlementRule",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Create entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:_n(Ka)}}},responses:{201:{description:"Created",content:{"application/json":{schema:qx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"create"}}})},"/api/entitlement-rules/{ruleId}":{patch:j({operationId:"updateEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:nN}}},responses:{200:{description:"Updated",content:{"application/json":{schema:qx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"update"}}}),delete:j({operationId:"deleteEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete entitlement rule",tags:["entitlements"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"delete"}}})},"/api/entitlement-rules/{ruleId}/duplicate":{post:j({operationId:"duplicateEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Duplicate entitlement rule",tags:["entitlements"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:qx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"duplicate"}}})},"/api/entitlement-rules/{ruleId}/variants":{get:j({operationId:"listEntitlementRuleVariants",requestParams:{path:a.object({ruleId:a.string()}),query:ot},summary:"List A/B variants for rule",tags:["entitlements"],responses:{200:{description:"Variant list",content:{"application/json":{schema:it(Hx)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"list"}}}),post:j({operationId:"createEntitlementRuleVariant",requestParams:{path:a.object({ruleId:a.string()})},summary:"Create rule A/B variant",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:_n(Hx)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Hx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:ye}=ji,{Persisted:bl,Transient:_l}=Oi,{Internal:qr}=zi,NE=Dt(ut.Playbook,{sdkInput:true}),LE=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),rN=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":_l,"x-revturbine-schema-exposure":qr}),Wx=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":_l,"x-revturbine-schema-exposure":qr}),VE=a.object({name:oi.meta(ye),handle:Xt.meta(ye),plan_id:a.string().nullable().optional().meta(ye),segment_id:a.string().nullable().optional().meta(ye),trial_limit_type:Wx.default("time").meta(ye),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ye),grace_period_days:a.number().int().min(0).default(0).meta(ye),usage_entitlement_handle:a.string().min(1).optional().meta(ye),usage_limit_value:a.number().int().min(1).optional().meta(ye),require_payment_method:a.boolean().default(false).meta(ye),auto_convert:a.boolean().default(true).meta(ye),convert_to_plan_id:a.string().optional().meta(ye),fallback_plan_id:a.string().optional().meta(ye),limit_per_customer:a.number().int().min(1).default(1).meta(ye),is_active:a.boolean().default(true).meta(ye),metadata:ar.meta(ye)}),Aa=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true})}).merge(VE).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":qr,...NE,...$r()}),iN=vn("FreeTrialRuleAnchor"),oN=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":_l,"x-revturbine-schema-exposure":qr}),BE=a.object({name:oi.meta(ye),handle:Xt.meta(ye),premium_plan_id:a.string().min(1).meta(ye),fallback_plan_id:a.string().min(1).meta(ye),segment_id:a.string().nullable().optional().meta(ye),trial_limit_type:Wx.default("time").meta(ye),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ye),usage_entitlement_handle:a.string().min(1).optional().meta(ye),usage_limit_value:a.number().int().min(1).optional().meta(ye),start_policy:oN.default("signup").meta(ye),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(ye),entitlements_during_trial:a.array(a.string()).default([]).meta(ye),is_active:a.boolean().default(true).meta(ye),metadata:ar.meta(ye)}),Da=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true})}).merge(BE).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":qr,...NE,...$r()}),aN=vn("ReverseTrialRuleAnchor"),ME=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":_l,"x-revturbine-schema-exposure":qr}),ZE=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":_l,"x-revturbine-schema-exposure":qr}),Fa=yt.merge(wt).merge(Rt).extend({trial_limit_policy:ME.default("1_per_lifetime").meta(ye),eligibility_scope:ZE.default("per_customer").meta(ye)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":qr,...LE}),Na=yt.merge(wt).merge(Rt).extend({trial_limit_policy:ME.default("1_per_lifetime").meta(ye),eligibility_scope:ZE.default("per_customer").meta(ye)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":qr,...LE}),cp=yt.merge(wt).merge(Rt).extend({customer_id:a.string().min(1).meta(ye),rule_id:a.string().min(1).meta(ye),rule_type:a.enum(["free_trial","reverse_trial"]).meta(ye),plan_id:a.string().min(1).meta(ye),status:rN.default("active").meta(ye),started_at:a.string().datetime().meta({...ye,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(ye),trial_limit_type:Wx.default("time").meta(ye),usage_entitlement_handle:a.string().min(1).optional().meta(ye),usage_limit_value:a.number().int().min(1).optional().meta(ye),converted_at:Wm.meta(ye),cancelled_at:Wm.meta(ye),metadata:ar.meta(ye)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":qr});({"/api/free-trial-rule-anchors":{get:j({operationId:"listFreeTrialRuleAnchors",requestParams:{query:ot},summary:"List free trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Free trial rule anchor list",content:{"application/json":{schema:it(iN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-rule-anchors",persistence:{table:"freeTrialRules",mode:"list"}}})},"/api/trials/free-rules":{get:j({operationId:"listFreeTrialRules",requestParams:{query:ot},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:it(Aa)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"list"}}})},"/api/trials/free-rules/{ruleId}":{get:j({operationId:"getFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Get free trial rule",tags:["trials"],responses:{200:{description:"Free trial rule",content:{"application/json":{schema:Aa}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"get"}}}),patch:j({operationId:"updateFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update free trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Aa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Aa}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"update"}}}),delete:j({operationId:"deleteFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete free trial rule",tags:["trials"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"delete"}}})},"/api/reverse-trial-rule-anchors":{get:j({operationId:"listReverseTrialRuleAnchors",requestParams:{query:ot},summary:"List reverse trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Reverse trial rule anchor list",content:{"application/json":{schema:it(aN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rule-anchors",persistence:{table:"reverseTrialRules",mode:"list"}}})},"/api/trials/reverse-rules":{get:j({operationId:"listReverseTrialRules",requestParams:{query:ot},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:it(Da)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"list"}}})},"/api/trials/reverse-rules/{ruleId}":{get:j({operationId:"getReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Get reverse trial rule",tags:["trials"],responses:{200:{description:"Reverse trial rule",content:{"application/json":{schema:Da}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"get"}}}),patch:j({operationId:"updateReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update reverse trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Da.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Da}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"update"}}}),delete:j({operationId:"deleteReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete reverse trial rule",tags:["trials"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"delete"}}})},"/api/trials/free-settings":{get:j({operationId:"listFreeTrialSettings",requestParams:{query:ot},summary:"List free trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Free trial settings list",content:{"application/json":{schema:it(Fa)}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"list"}}})},"/api/trials/free-settings/{settingsId}":{get:j({operationId:"getFreeTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Get free trial settings",tags:["trials"],responses:{200:{description:"Free trial settings",content:{"application/json":{schema:Fa}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"get"}}}),patch:j({operationId:"updateFreeTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update free trial settings",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Fa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Fa}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"update"}}})},"/api/trials/reverse-settings":{get:j({operationId:"listReverseTrialSettings",requestParams:{query:ot},summary:"List reverse trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Reverse trial settings list",content:{"application/json":{schema:it(Na)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"list"}}})},"/api/trials/reverse-settings/{settingsId}":{get:j({operationId:"getReverseTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Get reverse trial settings",tags:["trials"],responses:{200:{description:"Reverse trial settings",content:{"application/json":{schema:Na}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"get"}}}),patch:j({operationId:"updateReverseTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update reverse trial settings",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Na.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Na}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:j({operationId:"listTrialInstances",requestParams:{query:ot},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:it(cp)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"list"}}})},"/api/trials/instances/{instanceId}":{get:j({operationId:"getTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Get trial instance",tags:["trials"],responses:{200:{description:"Trial instance",content:{"application/json":{schema:cp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"get"}}})},"/api/trials/instances/{instanceId}/cancel":{post:j({operationId:"cancelTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Cancel an active trial",tags:["trials"],responses:{200:{description:"Cancelled",content:{"application/json":{schema:cp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})},"/api/trials/instances/{instanceId}/convert":{post:j({operationId:"convertTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Convert trial to paid subscription",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:a.object({plan_id:a.string().optional()})}}},responses:{200:{description:"Converted",content:{"application/json":{schema:cp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:Je,Financial:lp}=ji,{Persisted:vl,Transient:dp}=Oi,{External:ai}=zi,sN=Dt(ut.Playbook,{sdkInput:true}),cN=Dt(ut.Playbook,{sdkInput:false}),Xx=Dt(ut.Billing,{sdkInput:false}),Ni=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":dp,"x-revturbine-schema-exposure":ai}),yl=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":dp,"x-revturbine-schema-exposure":ai}),mp=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":dp,"x-revturbine-schema-exposure":ai}),Va=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...Je,readOnly:true}),name:oi.meta(Je),handle:Xt.meta(Je),tier_position:a.number().int().min(0).default(0).meta(Je),sort_order:a.number().int().default(0).meta(Je),visibility:Ni.default("public").meta(Je),metadata:ar.meta(Je)}).meta({id:"Plan","x-revturbine-schema-persistence":vl,"x-revturbine-schema-exposure":ai,...sN,...$r()}),lN=vn("PlanAnchor"),Ba=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...Je,readOnly:true}),handle:Xt.meta({...Je,readOnly:true}),plan_id:a.string().min(1).meta(Je),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(Je),segment_id:a.string().nullable().default(null).meta(Je),price_amount:a.number().min(0).meta(lp),pricing_model:yl.meta(Je),visibility:Ni.default("public").meta(Je),stripe_price_id:a.string().optional().meta(Je),price_source:mp.default("static").meta(Je)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":vl,"x-revturbine-schema-exposure":ai,...Xx,...fr()}),uN=vn("PlanVariationAnchor"),Ma=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...Je,readOnly:true}),name:oi.meta(Je),handle:Xt.meta(Je),sort_order:a.number().int().default(0).meta(Je),visibility:Ni.default("public").meta(Je),metadata:ar.meta(Je)}).meta({id:"AddOn","x-revturbine-schema-persistence":vl,"x-revturbine-schema-exposure":ai,...cN,...$r()}),dN=vn("AddOnAnchor"),Za=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...Je,readOnly:true}),handle:Xt.meta({...Je,readOnly:true}),addon_id:a.string().min(1).meta(Je),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(Je),segment_id:a.string().nullable().default(null).meta(Je),price_amount:a.number().min(0).meta(lp),pricing_model:yl.meta(Je),visibility:Ni.default("public").meta(Je),stripe_price_id:a.string().optional().meta(Je),price_source:mp.default("static").meta(Je)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":vl,"x-revturbine-schema-exposure":ai,...Xx,...fr()}),mN=vn("AddOnVariationAnchor"),pN=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":dp,"x-revturbine-schema-exposure":ai}),qa=yt.merge(wt).merge(Rt).extend({stripe_price_id:a.string().min(1).meta(Je),stripe_product_id:a.string().min(1).meta(Je),billing_period:pN.meta(Je),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(lp),currency:MC.meta(lp),pricing_model:yl.meta(Je),nickname:a.string().nullable().default(null).meta(Je),is_mock:a.boolean().default(false).meta(Je),last_updated_from_stripe:Wm.meta(Je)}).meta({id:"StripePrice","x-revturbine-schema-persistence":vl,"x-revturbine-schema-exposure":ai,...Xx}),fN=Kn(Va),gN=Kn(Ba),hN=Kn(Ma),bN=Kn(Za),_N=Kn(qa);({"/api/plan-anchors":{get:j({operationId:"listPlanAnchors",requestParams:{query:ot},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:it(lN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:j({operationId:"listPlans",requestParams:{query:ot},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:it(Va)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"list"}}}),post:j({operationId:"createPlan",summary:"Create plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_n(Va)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:Va}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"create"}}})},"/api/plans/{planId}":{get:j({operationId:"getPlan",requestParams:{path:a.object({planId:a.string()})},summary:"Get plan by ID",tags:["plans"],responses:{200:{description:"Plan detail",content:{"application/json":{schema:Va}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"get"}}}),patch:j({operationId:"updatePlan",requestParams:{path:a.object({planId:a.string()})},summary:"Update plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:fN}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:Va}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"update"}}}),delete:j({operationId:"deletePlan",requestParams:{path:a.object({planId:a.string()})},summary:"Delete plan",tags:["plans"],responses:{204:{description:"Plan deleted"},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"delete"}}})},"/api/plans/reorder":{post:j({operationId:"reorderPlans",summary:"Reorder plans",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:a.object({ids:a.array(a.string())})}}},responses:{200:{description:"Reordered"}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"reorder"}}})},"/api/plan-variation-anchors":{get:j({operationId:"listPlanVariationAnchors",requestParams:{query:ot},summary:"List plan variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan variation anchor list",content:{"application/json":{schema:it(uN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-variation-anchors",persistence:{table:"planVariations",mode:"list"}}})},"/api/plans/{planId}/variations":{get:j({operationId:"listPlanVariations",requestParams:{path:a.object({planId:a.string()}),query:ot},summary:"List plan variations",tags:["plans"],responses:{200:{description:"Plan variations",content:{"application/json":{schema:it(Ba)}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"list"}}}),post:j({operationId:"createPlanVariation",requestParams:{path:a.object({planId:a.string()})},summary:"Create plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_n(Ba)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:Ba}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"create"}}})},"/api/plan-variations/{variationId}":{get:j({operationId:"getPlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Get plan variation by ID",tags:["plans"],responses:{200:{description:"Plan variation detail",content:{"application/json":{schema:Ba}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"get"}}}),patch:j({operationId:"updatePlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:gN}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:Ba}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"update"}}}),delete:j({operationId:"deletePlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Delete plan variation",tags:["plans"],responses:{204:{description:"Plan variation deleted"}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"delete"}}})},"/api/addon-anchors":{get:j({operationId:"listAddOnAnchors",requestParams:{query:ot},summary:"List add-on anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on anchor list",content:{"application/json":{schema:it(dN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:j({operationId:"listAddOns",requestParams:{query:ot},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:it(Ma)}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"list"}}}),post:j({operationId:"createAddOn",summary:"Create add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_n(Ma)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:Ma}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"create"}}})},"/api/addons/{addonId}":{get:j({operationId:"getAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Get add-on by ID",tags:["plans"],responses:{200:{description:"Add-on detail",content:{"application/json":{schema:Ma}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"get"}}}),patch:j({operationId:"updateAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Update add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:hN}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:Ma}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"update"}}}),delete:j({operationId:"deleteAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Delete add-on",tags:["plans"],responses:{204:{description:"Add-on deleted"}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"delete"}}})},"/api/addon-variation-anchors":{get:j({operationId:"listAddOnVariationAnchors",requestParams:{query:ot},summary:"List add-on variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on variation anchor list",content:{"application/json":{schema:it(mN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-variation-anchors",persistence:{table:"addonVariations",mode:"list"}}})},"/api/addons/{addonId}/variations":{get:j({operationId:"listAddOnVariations",requestParams:{path:a.object({addonId:a.string()}),query:ot},summary:"List add-on variations",tags:["plans"],responses:{200:{description:"Add-on variations",content:{"application/json":{schema:it(Za)}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"list"}}}),post:j({operationId:"createAddOnVariation",requestParams:{path:a.object({addonId:a.string()})},summary:"Create add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_n(Za)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:Za}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"create"}}})},"/api/addon-variations/{variationId}":{get:j({operationId:"getAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Get add-on variation by ID",tags:["plans"],responses:{200:{description:"Add-on variation detail",content:{"application/json":{schema:Za}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"get"}}}),patch:j({operationId:"updateAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:bN}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:Za}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"update"}}}),delete:j({operationId:"deleteAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Delete add-on variation",tags:["plans"],responses:{204:{description:"Variation deleted"}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"delete"}}})},"/api/stripe-prices":{get:j({operationId:"listStripePrices",requestParams:{query:ot},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:it(qa)}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"list"}}}),post:j({operationId:"createStripePrice",summary:"Create Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_n(qa)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:qa}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"create"}}})},"/api/stripe-prices/{id}":{get:j({operationId:"getStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Get Stripe price by ID",tags:["plans"],responses:{200:{description:"Stripe price detail",content:{"application/json":{schema:qa}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"get"}}}),patch:j({operationId:"updateStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Update Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_N}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:qa}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"update"}}}),delete:j({operationId:"deleteStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Delete Stripe price",tags:["plans"],responses:{204:{description:"Stripe price deleted"}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"delete"}}})}});var {Unrestricted:b}=ji,{Persisted:Ga,Transient:ke}=Oi,{Internal:hr,External:Ne}=zi,Ue=Dt(ut.Playbook,{sdkInput:true}),Ha=Dt(ut.Playbook,{sdkInput:false}),Fi=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),qE=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),Di=Dt(ut.Playbook,{inConfig:false,sdkInput:true,source:pr.CodeConstant}),gl=Dt(ut.Playbook,{inConfig:false,sdkInput:true,source:pr.Runtime}),hl=Dt(ut.Playbook,{inConfig:false,sdkInput:false,source:pr.Runtime}),vN=Dt(ut.Billing,{sdkInput:false}),yN=Dt(ut.Metering,{sdkInput:false}),xN=Dt(ut.Branding,{inConfig:true,sdkInput:true}),SN=Dt(ut.Branding,{sdkInput:false}),IN="1.0.0",dl=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),name:oi.meta(b),handle:Xt.meta(b),description:Jm.meta(b),is_default:a.boolean().default(false).meta(b),entitlement_ids:a.array(a.string()).default([]).meta(b),metadata:ar.meta(b)}).meta({id:"SeatType","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...Fi,...$r()}),PN=vn("SeatTypeAnchor"),ml=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Xt.meta(b),label:a.string().min(1).meta(b),description:a.string().nullable().default(null).meta(b),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(b),data_source:a.string().nullable().default(null).meta(b),example_value:a.string().nullable().default(null).meta(b),value_map:a.record(a.string(),a.string()).default({}).meta(b),format:a.enum(["string","number","currency","percentage","date"]).nullable().default(null).meta(b),metadata:ar.meta(b)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...Fi,...$r()}),kN=vn("PersonalizationTokenAnchor"),TN=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),Kx=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...b,readOnly:true}),stripe_account_id:a.string().min(1).meta(b),live_mode:a.boolean().default(false).meta(b),onboarding_state:TN.default("not_started").meta({...b,readOnly:true}),onboarding_complete:a.boolean().default(false).meta({...b,readOnly:true}),charges_enabled:a.boolean().default(false).meta({...b,readOnly:true}),details_submitted:a.boolean().default(false).meta({...b,readOnly:true}),payouts_enabled:a.boolean().default(false).meta({...b,readOnly:true}),webhook_secret_set:a.boolean().default(false).meta({...b,readOnly:true}),sync_products:a.boolean().default(true).meta(b),sync_prices:a.boolean().default(true).meta(b),sync_subscriptions:a.boolean().default(true).meta(b),sync_invoices:a.boolean().default(false).meta(b),default_currency:a.string().length(3).default("USD").meta(b),tax_behavior:a.enum(["inclusive","exclusive","unspecified"]).default("unspecified").meta(b),last_sync_at:a.string().optional().meta({...b,readOnly:true}),metadata:ar.meta(b)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...vN,...fr()});a.object({theme:a.record(a.string(),a.unknown()).optional().meta(b),workspace_name:a.string().optional().meta(b),logo_url:a.string().optional().meta(b),support_email:a.string().optional().meta(b)}).meta({id:"BrandingConfig","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...SN});var pl=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...b,readOnly:true}),entitlement_id:a.string().min(1).meta(b),meter_key:a.string().min(1).max(100).meta(b),aggregation_type:a.enum(["sum","count","max","last_value"]).default("sum").meta(b),reset_period:a.enum(["none","daily","weekly","monthly","yearly"]).default("monthly").meta(b),stripe_meter_id:a.string().nullable().default(null).meta(b),is_active:a.boolean().default(true).meta(b),metadata:ar.meta(b)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...yN,...fr()}),OE=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),fl=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Xt.meta({...b,readOnly:true}),entitlement_id:a.string().min(1).meta(b),soft_limit_percent:a.number().min(0).max(100).default(80).meta(b),hard_limit_percent:a.number().min(0).max(100).default(100).meta(b),soft_limit_action:OE.default("warn").meta(b),hard_limit_action:OE.default("block").meta(b),grace_period_hours:a.number().int().min(0).default(0).meta(b),notification_channels:a.array(a.enum(["email","in_app","webhook"])).default(["in_app"]).meta(b),is_active:a.boolean().default(true).meta(b)}).meta({id:"UsageEnforcementSettings","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...qE,...fr()}),$N=vn("UsageEnforcementSettingsAnchor"),wN=a.object({kind:a.enum(["template","slot"]).meta(b),id:a.string().min(1).meta(b),label:a.string().min(1).optional().meta(b)}).meta({id:"PlacementSettingsCapRuleGroupItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),RN=a.object({id:a.string().min(1).meta(b),group:a.array(wN).min(1).meta(b),cap:a.object({count:a.number().int().min(1).meta(b),period:a.enum(["session","day","week","month"]).meta(b)}).meta(b)}).meta({id:"PlacementSettingsCapRule","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),CN=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),HE=a.object({capRules:a.array(RN).default([]).meta(b),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(b),testMode:CN.default("off").meta(b)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),Gx=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Xt.meta({...b,readOnly:true}),global_frequency_cap:HE.nullable().default(null).meta(b),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(b),suppress_for_paid:a.boolean().default(false).meta(b),suppress_for_trial:a.boolean().default(false).meta(b),default_dismiss_cooldown_hours:a.number().int().min(0).default(24).meta(b),allow_stacking:a.boolean().default(false).meta(b),priority_collision_strategy:a.enum(["highest_priority","most_recent","random"]).default("highest_priority").meta(b)}).meta({id:"PlacementSettings","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...qE,...fr()}),EN=vn("PlacementSettingsAnchor"),ON=a.object({field:a.string().min(1).meta(b),operator:a.enum(["eq","neq","gt","lt","gte","lte","contains","in"]).meta(b),value:a.string().meta(b)}).meta({id:"RevTurbineConfigSegmentsItemPredicatesItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),zN=a.object({name:a.string().min(1).meta(b),handle:a.string().min(1).meta(b),predicates:a.array(ON).optional().meta(b),dimension_id:a.string().optional().meta(b)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),jN=a.object({unique_handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),tier_position:a.number().int().min(0).default(0).meta(b),sort_order:a.number().int().min(0).default(0).meta(b),visibility:Ni.default("public").meta(b)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),UN=a.object({unique_handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),sort_order:a.number().int().min(0).default(0).meta(b),visibility:Ni.default("public").meta(b)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ha}),AN=a.object({handle:a.string().min(1).meta(b),plan_handle:a.string().min(1).meta(b),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(b),segment_handle:a.string().nullable().default(null).meta(b),price_amount:a.number().min(0).meta(b),pricing_model:yl.meta(b),visibility:Ni.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:mp.meta(b)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Fi}),DN=a.object({handle:a.string().min(1).meta(b),addon_handle:a.string().min(1).meta(b),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(b),segment_handle:a.string().nullable().default(null).meta(b),price_amount:a.number().min(0).meta(b),pricing_model:yl.meta(b),visibility:Ni.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:mp.meta(b)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Fi}),FN=a.object({handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),description:a.string().nullable().default(null).meta(b),is_default:a.boolean().default(false).meta(b),entitlement_handles:a.array(a.string()).default([]).meta(b)}).meta({id:"RevTurbineConfigSeatTypesItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),NN=a.object({handle:a.string().min(1).meta(b),entitlement_handle:a.string().nullable().default(null).meta(b),soft_limit_percent:a.number().int().min(0).nullable().default(null).meta(b),hard_limit_percent:a.number().int().min(0).nullable().default(null).meta(b),soft_limit_action:a.string().meta(b),hard_limit_action:a.string().meta(b),grace_period_hours:a.number().int().min(0).nullable().default(null).meta(b),notification_channels:a.array(a.string()).default([]).meta(b),is_active:a.boolean().default(true).meta(b)}).meta({id:"RevTurbineConfigEnforcementDefaultsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),LN=a.object({handle:a.string().min(1).meta(b),global_frequency_cap:HE.nullable().default(null).meta(b),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(b),suppress_for_paid:a.boolean().default(false).meta(b),suppress_for_trial:a.boolean().default(false).meta(b),default_dismiss_cooldown_hours:a.number().int().min(0).nullable().default(null).meta(b),allow_stacking:a.boolean().default(false).meta(b),priority_collision_strategy:a.string().nullable().default(null).meta(b)}).meta({id:"RevTurbineConfigPlacementSettingsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),VN=a.object({handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),category:a.string().nullable().default(null).meta(b),visibility_toggle:a.boolean().default(true).meta(b),source_type:a.string().nullable().default(null).meta(b)}).meta({id:"RevTurbineConfigSegmentDimensionsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),BN=a.object({handle:a.string().min(1).meta(b),entitlement_handle:a.string().min(1).meta(b),meter_handle:a.string().min(1).meta(b),limit:a.number().int().min(0).nullable().default(null).meta(b),reset_period:a.string().nullable().default(null).meta(b)}).meta({id:"RevTurbineConfigMeterBindingsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),MN=a.object({unique_handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),type:Gm.meta(b),unit:a.string().optional().meta(b),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(b)}).meta({id:"RevTurbineConfigEntitlementsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),ZN=a.object({id:a.string().min(1).meta(b),entitlement_id:a.string().min(1).meta(b),targets:a.array(FE).min(1).meta(b),segment_ids:a.array(a.string()).default([]).meta(b),kind:Gm.optional().meta({...b,readOnly:true}),unit:a.string().optional().meta({...b,readOnly:true}),tier_name:a.string().optional().meta({...b,readOnly:true}),tier_description:a.string().optional().meta({...b,readOnly:true}),...Ka.pick({enabled:true,limit_value:true,enforcement:true,tier_value:true,period_scope:true,included_count:true,seat_type_id:true,initial_grant:true,allowance_value:true,rollover_enabled:true,max_balance:true,reset_period:true,max_seats:true,rate_value:true,amount_cents:true,currency:true}).shape,current_usage:a.number().default(0).meta(b),allocation:up.optional().meta(b)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),qN=a.object({slot_id:a.string().min(1).meta(b),active:a.boolean().meta(b),triggers:a.array(a.string()).meta(b)}).meta({id:"RevTurbineConfigSlotConfigsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),HN=a.object({id:a.string().min(1).meta(b),label:a.string().min(1).meta(b),description:a.string().meta(b),surface_type:a.string().meta(b),placement_handle:a.string().min(1).meta(b),template:a.string().optional().meta(b)}).meta({id:"RevTurbineConfigPlacementSlotsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),KN=a.object({name:a.string().min(1).meta(b),type:a.string().optional().meta(b),required:a.boolean().optional().meta(b)}).meta({id:"RevTurbineConfigSurfaceTemplatesItemFieldsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),GN=a.object({id:a.string().min(1).meta(b),surface_type:a.string().meta(b),fields:a.array(KN).optional().meta(b)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),JN=a.enum(["open_checkout_modal","navigate_to_plans","open_upgrade_modal","open_placement","book_demo","open_feature_tour","extend_trial","switch_billing_period","custom_url","dismiss","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription"]).meta({id:"RevTurbineConfigUiPathActionType","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),WN=a.object({name:a.string().min(1).meta(b),action_type:JN.meta(b),plan_handle:a.string().optional().meta(b),promotion_id:a.string().optional().meta(b),placement_handle:a.string().optional().meta(b),url:a.string().optional().meta(b),tour_id:a.string().optional().meta(b),target_billing_period:a.enum(["monthly","annual"]).optional().meta(b),description:a.string().optional().meta(b)}).meta({id:"ContentUiPath","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),XN=a.object({id:a.string().meta(b),name:a.string().meta(b),discount:a.string().meta(b),type:a.string().meta(b),status:a.string().meta(b)}).meta({id:"ContentPromotion","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),YN=a.object({token:a.string().regex(/^[a-z][a-z0-9_]*$/).meta(b),label:a.string().min(1).meta(b),description:a.string().optional().meta(b),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(b),data_source:a.string().optional().meta(b),example_value:a.string().optional().meta(b),value_map:a.record(a.string(),a.string()).optional().meta(b),format:a.enum(["string","number","currency","percentage","date"]).optional().meta(b)}).meta({id:"RevTurbineConfigPersonalizationTokensItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),zE=a.object({header:a.string().optional().meta(b),body:a.string().optional().meta(b),cta_label:a.string().optional().meta(b),secondary_cta_label:a.string().optional().meta(b)}).catchall(a.unknown()).meta({id:"MessageBlockContent","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),QN=a.object({block_id:a.string().min(1).meta(b),tenant_id:a.string().min(1).meta(b),name:a.string().min(1).meta(b),surface_template_id:a.string().optional().meta(b),default_content:zE.meta(b),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:zE})).optional().meta(b),child_blocks:a.array(a.object({slot:a.string(),block_id:a.string()})).optional().meta(b),tokens_used:a.array(a.string()).optional().meta(b),status:a.enum(["draft","active","archived"]).meta(b),created_at:a.string().datetime().meta({...b,readOnly:true}),updated_at:a.string().datetime().meta({...b,readOnly:true})}).meta({id:"MessageBlock","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),eL=a.object({label:a.string().meta(b),path:ZC.meta(b),config:a.record(a.string(),a.string()).optional().meta(b)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),KE=a.object({template_id:a.string().min(1).meta(b),fields:a.record(a.string(),a.string()).meta(b),ctas:a.array(eL).meta(b)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),GE=a.object({plan_ids:a.array(a.string()).meta(b),billing_cadences:a.array(a.string()).optional().meta(b),segment_chips:a.array(a.string()).meta(b)}).meta({id:"RevTurbineConfigStudioPayloadTarget","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),tL=a.object({count:a.number().int().min(1).meta(b),period:a.enum(["session","day","week","month","lifetime"]).meta(b)}).meta({id:"RevTurbineConfigPeriodCap","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),JE=a.object({max_per_period:tL.optional().meta(b),cooldown_days:a.number().int().min(0).optional().meta(b)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),nL=a.object({id:a.string().min(1).meta(b),target:GE.meta(b),surfaces:a.array(KE).meta(b),caps:JE.optional().meta(b),surface_slot_ids:a.array(a.string()).optional().meta(b),created_at:a.string().optional().meta({...b,readOnly:true}),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(b),recommendation_plan_override:a.string().optional().meta(b)}).meta({id:"RevTurbineConfigStudioPayload","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),rL=a.discriminatedUnion("type",[a.object({type:a.literal("surface_render"),slot_id:a.string().min(1)}),a.object({type:a.literal("entitlement_gate"),entitlement_handle:a.string().min(1),tier_threshold:a.string().optional()}),a.object({type:a.literal("usage_threshold"),entitlement_handle:a.string().min(1),threshold_percent:$o}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:$o}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:$o}),a.object({type:a.literal("trial_started"),trial_type:a.enum(["free","reverse"]).optional()}),a.object({type:a.literal("trial_progress"),progress_percent:a.number().min(1).max(100)}),a.object({type:a.literal("trial_ending"),days_before_end:a.number().int().min(0)}),a.object({type:a.literal("trial_ended")}),a.object({type:a.literal("trial_converted")}),a.object({type:a.literal("qualifier"),qualifier:a.string().min(1)})]).meta({id:"RevTurbineConfigPlacementTrigger","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),iL=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),oL=a.object({id:a.string().min(1).meta(b),name:a.string().min(1).meta(b),category:iL.meta(b),trigger:rL.meta(b),payloads:a.array(nL).meta(b),order:a.number().int().min(0).meta(b)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),aL=a.object({payload_id:a.string().min(1).meta(b),placement_id:a.string().min(1).meta(b),target:GE.meta(b),caps:JE.optional().meta(b),created_at:a.string().meta({...b,readOnly:true}),updated_at:a.string().datetime().optional().meta({...b,readOnly:true}),source_mode:a.enum(["inline","content_linked"]).meta(b),surfaces:a.array(KE).optional().meta(b),surface_slot_ids:a.array(a.string()).optional().meta(b),content_link:a.object({message_block_id:a.string().optional(),ui_path_id:a.string().optional(),promotion_id:a.string().optional(),content_payload_id:a.string().optional()}).optional().meta(b)}).meta({id:"RevTurbineConfigPlacementPayloadItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),sL=a.object({kind:a.string().min(1).meta(b),schema_version:a.number().int().nonnegative().meta(b),config:a.unknown().meta(b)}).meta({id:"RevTurbineConfigExtensionRulesItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),cL=yt.merge(VE).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Fi}),lL=yt.merge(BE).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Fi}),uL=a.object({version:a.string().meta({...b,...Di}),exported_at:a.string().datetime().optional().meta({...b,...gl,readOnly:true}),schema_version:a.string().optional().meta({...b,...Di,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({...b,...Di,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({...b,...gl,readOnly:true}),tenant_id:a.string().optional().meta({...b,...hl,readOnly:true}),environment_id:a.string().optional().meta({...b,...hl,readOnly:true}),plans:a.array(jN).meta({...b,...Ue}),addons:a.array(UN).optional().meta({...b,...Ha}),entitlements:a.array(MN).meta({...b,...Ue}),entitlement_rules:a.array(ZN).meta({...b,...Ue}),segments:a.array(zN).meta({...b,...Ue}),content_ui_paths:a.array(WN).meta({...b,...Ue}),slot_configs:a.array(qN).optional().meta({...b,...Ue,...sl({since:"0.1.117",replacement:"SDK-local activation/trigger state",removeAfter:"one compatibility window",reason:"Slot activation moved to SDK-local state (plan 118 TASK-6); no longer a Playbook authoring input."})}),content_overrides:a.record(a.string(),a.record(a.string(),a.string())).optional().meta({...b,...Ue,...sl({since:"0.1.117",replacement:"Message Block / Placement Payload content",removeAfter:"one compatibility window",reason:"Content overrides moved to Message Block / Payload content (plan 118 TASK-6); no longer a Playbook authoring input."})}),theme:a.record(a.string(),a.unknown()).optional().meta({...b,...xN,...sl({since:"0.1.111",replacement:"SDK branding argument",removeAfter:"one compatibility window",reason:"Branding is independently owned and is not Playbook strategy."})}),placement_slots:a.array(HN).optional().meta({...b,...Ue}),message_blocks:a.array(QN).optional().meta({...b,...Ue}),placement_payloads:a.array(aL).optional().meta({...b,...Ue}),placements:a.array(oL).optional().meta({...b,...Ue}),content_promotions:a.array(XN).optional().meta({...b,...Ue}),personalization_tokens:a.array(YN).optional().meta({...b,...Ue}),surface_templates:a.array(GN).optional().meta({...b,...Ue}),free_trial_rules:a.array(cL).optional().meta({...b,...Ha}),reverse_trial_rules:a.array(lL).optional().meta({...b,...Ha}),plan_variations:a.array(AN).optional().meta({...b,...Ha}),addon_variations:a.array(DN).optional().meta({...b,...Ha}),extension_rules:a.array(sL).optional().meta({...b,...Ue}),seat_types:a.array(FN).optional().meta({...b,...Ue}),enforcement_defaults:a.array(NN).optional().meta({...b,...Ue}),placement_settings:a.array(LN).optional().meta({...b,...Ue}),segment_dimensions:a.array(VN).optional().meta({...b,...Ue}),meter_bindings:a.array(BN).optional().meta({...b,...Ue})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue,...sl({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),dL=a.object({artifact_type:a.literal("playbook").meta({...b,...Di,readOnly:true}),format_version:a.literal(IN).meta({...b,...Di,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({...b,...Di}),playbook_version_id:a.string().nullable().default(null).meta({...b,...gl,readOnly:true}),tenant_id:a.string().min(1).meta({...b,...hl,readOnly:true}),environment_id:a.string().min(1).meta({...b,...hl,readOnly:true}),project_id:a.string().min(1).optional().meta({...b,...hl,readOnly:true}),exported_at:a.string().datetime().optional().meta({...b,...gl,readOnly:true}),schema_version:a.string().min(1).optional().meta({...b,...Di,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({...b,...Di,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...gl}),mL={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},pL=uL.omit(mL).extend({experiments:a.array(a.unknown()).max(0).optional().meta({...b,...Fi}),signal_catalog:a.object({}).strict().optional().meta({...b,...Fi})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue});dL.extend(pL.shape).meta({id:"Playbook","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue});({"/api/seat-type-anchors":{get:j({operationId:"listSeatTypeAnchors",requestParams:{query:ot},summary:"List seat type anchors (identity registry)",tags:["config"],responses:{200:{description:"Seat type anchor list",content:{"application/json":{schema:it(PN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:j({operationId:"listSeatTypes",requestParams:{query:ot},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:it(dl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"list"}}}),post:j({operationId:"createSeatType",summary:"Create seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:_n(dl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:dl}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"create"}}})},"/api/config/seat-types/{id}":{patch:j({operationId:"updateSeatType",requestParams:{path:a.object({id:a.string()})},summary:"Update seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:dl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:dl}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"update"}}}),delete:j({operationId:"deleteSeatType",requestParams:{path:a.object({id:a.string()})},summary:"Delete seat type",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"delete"}}})},"/api/personalization-token-anchors":{get:j({operationId:"listPersonalizationTokenAnchors",requestParams:{query:ot},summary:"List personalization token anchors (identity registry)",tags:["config"],responses:{200:{description:"Personalization token anchor list",content:{"application/json":{schema:it(kN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:j({operationId:"listPersonalizationTokens",requestParams:{query:ot},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:it(ml)}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"list"}}}),post:j({operationId:"createPersonalizationToken",summary:"Create personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:_n(ml)}}},responses:{201:{description:"Created",content:{"application/json":{schema:ml}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"create"}}})},"/api/config/personalization-tokens/{id}":{patch:j({operationId:"updatePersonalizationToken",requestParams:{path:a.object({id:a.string()})},summary:"Update personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:ml.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ml}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"update"}}}),delete:j({operationId:"deletePersonalizationToken",requestParams:{path:a.object({id:a.string()})},summary:"Delete personalization token",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"delete"}}})},"/api/config/stripe":{put:j({operationId:"upsertStripeIntegrationConfig",summary:"Create or update Stripe integration config",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Kn(Kx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:Kx}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:j({operationId:"listMeteringConfigs",requestParams:{query:ot},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:it(pl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"list"}}}),post:j({operationId:"createMeteringConfig",summary:"Create metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:_n(pl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:pl}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"create"}}})},"/api/config/metering/{meteringId}":{patch:j({operationId:"updateMeteringConfig",requestParams:{path:a.object({meteringId:a.string()})},summary:"Update metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:pl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:pl}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"update"}}}),delete:j({operationId:"deleteMeteringConfig",requestParams:{path:a.object({meteringId:a.string()})},summary:"Delete metering configuration",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"delete"}}})},"/api/usage-enforcement-setting-anchors":{get:j({operationId:"listUsageEnforcementSettingsAnchors",requestParams:{query:ot},summary:"List usage enforcement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Usage enforcement setting anchor list",content:{"application/json":{schema:it($N)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement-setting-anchors",persistence:{table:"usageEnforcementSettings",mode:"list"}}})},"/api/config/usage-enforcement":{get:j({operationId:"listUsageEnforcementSettings",requestParams:{query:ot},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:it(fl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"list"}}}),post:j({operationId:"createUsageEnforcementSettings",summary:"Create usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:_n(fl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:fl}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"create"}}})},"/api/config/usage-enforcement/{settingsId}":{patch:j({operationId:"updateUsageEnforcementSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:fl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:fl}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"update"}}}),delete:j({operationId:"deleteUsageEnforcementSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Delete usage enforcement settings",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"delete"}}})},"/api/placement-setting-anchors":{get:j({operationId:"listPlacementSettingsAnchors",requestParams:{query:ot},summary:"List placement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Placement setting anchor list",content:{"application/json":{schema:it(EN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-setting-anchors",persistence:{table:"placementSettings",mode:"list"}}})},"/api/config/placement-settings":{put:j({operationId:"upsertPlacementSettings",summary:"Create or update global placement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Kn(Gx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:Gx}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});function Wa(){return typeof window>"u"||typeof document>"u"}function zn(){return !Wa()}var xl=class{constructor(){this.providers=new Map,this.cache=new Map,this.unsubscribers=new Map;}register(e){let n=this.providers.get(e.domain);if(n&&this.unregister(n.domain),this.providers.set(e.domain,e),e.subscribe){let r=e.subscribe(o=>{this.cache.set(e.domain,{value:o,resolvedAt:Date.now(),ttlMs:e.cacheTtlMs??0});});this.unsubscribers.set(e.domain,r);}}unregister(e){this.providers.delete(e),this.cache.delete(e);let n=this.unsubscribers.get(e);n&&(n(),this.unsubscribers.delete(e));}clear(){for(let e of this.unsubscribers.values())e();this.providers.clear(),this.cache.clear(),this.unsubscribers.clear();}async resolveAll(){let e=Array.from(this.providers.entries()),n=await Promise.all(e.map(async([i,s])=>{let c=this.cache.get(i),l=Date.now();if(c&&c.ttlMs>0&&l-c.resolvedAt<c.ttlMs)return [i,c.value];let d=await s.resolve();return this.cache.set(i,{value:d,resolvedAt:l,ttlMs:s.cacheTtlMs??0}),[i,d]})),r={},o={},t=false;for(let[i,s]of n)if(i==="traits"||i.startsWith("traits:")){let c=s;c?.traits&&(Object.assign(o,c.traits),t=true);}else r[i]=s;return t&&(r.traits={traits:o}),r}async get(e){let n=this.providers.get(e);if(!n)return;let r=this.cache.get(e),o=Date.now();if(r&&r.ttlMs>0&&o-r.resolvedAt<r.ttlMs)return r.value;let t=await n.resolve();return this.cache.set(e,{value:t,resolvedAt:o,ttlMs:n.cacheTtlMs??0}),t}has(e){return this.providers.has(e)}get size(){return this.providers.size}invalidate(e){this.cache.delete(e);}invalidateAll(){this.cache.clear();}},fL="revturbine:interaction-state",WE=class{constructor(e){this.state=new Map,this.storage=e.storage,this.tenantId=e.tenantId,this.userId=e.userId,this.defaultDismissCooldownMs=e.defaultDismissCooldownMs??1440*60*1e3,this.defaultRemindLaterMs=e.defaultRemindLaterMs??3600*1e3,this.hydrate();}track(e){let n=this.stateKey(e.placementId,e.userId,e.treatmentId),r=Date.now(),o=e.metadata??{},i={...this.state.get(n)??{updatedAt:new Date(r).toISOString()},lastInteractionType:e.interactionType,updatedAt:e.interactionAt??new Date(r).toISOString()};if(e.interactionType==="dismiss"){let s=Number(o.cooldown_ms);i.suppressedUntil=r+(Number.isFinite(s)&&s>0?s:this.defaultDismissCooldownMs);}if(e.interactionType==="remind_me_later"){let s=Number(o.remind_after_seconds);i.suppressedUntil=r+(Number.isFinite(s)&&s>0?s*1e3:this.defaultRemindLaterMs);}(e.interactionType==="cta_clicked"||e.interactionType==="cta_completed")&&(i.suppressedUntil=r+300*1e3),this.state.set(n,i),this.persist();}checkSuppression(e,n,r){let o=this.stateKey(e,n,r),t=this.state.get(o);return t?.suppressedUntil?t.suppressedUntil<=Date.now()?{suppressed:false}:{suppressed:true,reason:t.lastInteractionType==="remind_me_later"?"suppressed_until_remind_window":"suppressed_by_dismiss_cooldown"}:{suppressed:false}}clearSuppression(e,n,r){let o=this.stateKey(e,n,r);this.state.delete(o),this.persist();}hydrate(){let e=this.storage.getItem(this.storageKey());if(e)try{let n=JSON.parse(e);for(let[r,o]of Object.entries(n))!o||typeof o!="object"||this.state.set(r,o);}catch{this.storage.removeItem(this.storageKey());}}persist(){try{let e=Object.fromEntries(this.state.entries());this.storage.setItem(this.storageKey(),JSON.stringify(e));}catch{}}storageKey(){return `${fL}:${this.tenantId}:${this.userId}`}stateKey(e,n,r){return [this.tenantId,n,e,r||"default"].join(":")}},gL="revturbine:presentation-caps";function Ja(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function hL(e){if(!Ja(e))return null;let n=Number(e.count),r=typeof e.period=="string"?e.period:"";return !Number.isFinite(n)||n<=0||r!=="session"&&r!=="day"&&r!=="week"&&r!=="month"&&r!=="lifetime"?null:{count:n,period:r}}function bL(e,n){return e==="session"||e==="lifetime"?0:e==="day"?n-1440*60*1e3:e==="week"?n-10080*60*1e3:n-720*60*60*1e3}var XE=class{constructor(e){this.capsByKey=new Map,this.storage=e.storage,this.tenantId=e.tenantId,this.userId=e.userId,this.hydrate();}enforce(e){let n=this.extractPolicies(e);if(n.length===0)return {allowed:true};let r=this.capKey(e),o=Date.now(),t=this.capsByKey.get(r)??{seenAt:[]},i={...t,seenAt:t.seenAt.filter(c=>Number.isFinite(c)&&c>0)};if(Number.isFinite(i.cooldownUntil)&&i.cooldownUntil>o)return this.capsByKey.set(r,i),{allowed:false,reason:"suppressed_by_payload_cooldown"};for(let c of n)for(let l of c.rules){let d=bL(l.period,o),m=i.seenAt.filter(p=>p>=d&&p<=o);if(m.length>=l.count)return this.capsByKey.set(r,{...i,seenAt:m}),{allowed:false,reason:`suppressed_by_payload_cap_${l.period}`}}i.seenAt.push(o);let s=n.map(c=>c.cooldownMs).filter(c=>typeof c=="number"&&Number.isFinite(c)&&c>0);return s.length>0?i.cooldownUntil=o+Math.max(...s):delete i.cooldownUntil,this.capsByKey.set(r,i),this.persist(),{allowed:true}}hydrate(){let e=this.storage.getItem(this.storageKey());if(e)try{let n=JSON.parse(e);for(let[r,o]of Object.entries(n)){if(!o||typeof o!="object")continue;let t=Array.isArray(o.seenAt)?o.seenAt.filter(s=>Number.isFinite(s)&&s>0):[],i=Number.isFinite(o.cooldownUntil)?o.cooldownUntil:void 0;this.capsByKey.set(r,{seenAt:t,cooldownUntil:i});}}catch{this.storage.removeItem(this.storageKey());}}persist(){try{let e=Object.fromEntries(this.capsByKey.entries());this.storage.setItem(this.storageKey(),JSON.stringify(e));}catch{}}storageKey(){return `${gL}:${this.tenantId}:${this.userId}`}capKey(e){return [this.tenantId,this.userId,e.surface.type,e.output_id].join(":")}extractPolicies(e){let n=[],r=[e,e.content,Ja(e.content)?e.content.payload:void 0,Ja(e.content)?e.content.placement:void 0,Ja(e.content)?e.content.surface:void 0];for(let o of r){if(!Ja(o))continue;let t=Ja(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=hL(t.max_per_period);s&&i.push(s);let c=Number(t.cooldown_days),l=Number.isFinite(c)&&c>0?c*24*60*60*1e3:void 0;n.push({rules:i,...l!==void 0?{cooldownMs:l}:{}});}return n}},Xa=class{constructor(){this.store=new Map;}getItem(e){return this.store.get(e)??null}setItem(e,n){this.store.set(e,n);}removeItem(e){this.store.delete(e);}};function YE(e){return [e.tenantId,e.userId,e.placementId,e.treatmentId||"default"].join(":")}function QE(e,n=Date.now()){return e?.suppressedUntil?e.suppressedUntil<=n?{suppressed:false}:{suppressed:true,reason:e.lastInteractionType==="remind_me_later"?"suppressed_until_remind_window":"suppressed_by_dismiss_cooldown"}:{suppressed:false}}var _L=new Set(["dismissed","clicked_thru"]),vL=1440*60*1e3,Yx=class{constructor(e){this.retiredCache=null,this.suppressedCache=null,this.store=e.store,this.userId=e.userId,this.defaultSuppressionMs=e.defaultSuppressionMs??vL;}async recordImpression(e,n,r,o){await this.appendRecord(e,"impressed",n,r,o);}async recordDismissal(e,n,r,o){await this.appendRecord(e,"dismissed",n,r,o),this.retireInCache(e);}async recordClickThru(e,n,r,o){await this.appendRecord(e,"clicked_thru",n,r,o),this.retireInCache(e);}async recordSuppression(e,n,r,o,t){let i=t??this.defaultSuppressionMs,s=new Date(Date.now()+i).toISOString();await this.appendRecord(e,"suppressed",n,r,{...o,suppressUntil:s}),this.suppressInCache(e,s);}async isRetired(e){return (await this.getRetiredIds()).has(e)}async getRetiredIds(){if(this.retiredCache)return this.retiredCache;let e=await this.store.getRetiredPlacementIds(this.userId);return this.retiredCache=e,e}isRetiredSync(e){return this.retiredCache?.has(e)??false}isSuppressedSync(e){if(!this.suppressedCache)return false;let n=this.suppressedCache.get(e);return n?new Date(n).getTime()>Date.now()?true:(this.suppressedCache.delete(e),false):false}isHiddenSync(e){return this.isRetiredSync(e)||this.isSuppressedSync(e)}async queryHistory(e){return this.store.query(this.userId,e)}async hydrate(){this.retiredCache=await this.store.getRetiredPlacementIds(this.userId),this.suppressedCache=await this.store.getSuppressedPlacements(this.userId);}async reset(){await this.store.clear(this.userId),this.retiredCache=new Set,this.suppressedCache=new Map;}setUserId(e){this.userId=e,this.retiredCache=null,this.suppressedCache=null;}async appendRecord(e,n,r,o,t){let i={placementId:e,outcome:n,occurredAt:new Date().toISOString(),...r?{payloadId:r}:{},...o?{surfaceTemplateId:o}:{},...t?{metadata:t}:{}};await this.store.append(this.userId,i);}retireInCache(e){this.retiredCache||(this.retiredCache=new Set),this.retiredCache.add(e);}suppressInCache(e,n){this.suppressedCache||(this.suppressedCache=new Map),this.suppressedCache.set(e,n);}},yL=class{constructor(){this.records=new Map;}append(e,n){let r=this.records.get(e)??[];r.push(n),this.records.set(e,r);}query(e,n){let r=this.records.get(e)??[];return n&&(r=eO(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.records.get(e)??[];return tO(n)}getSuppressedPlacements(e){let n=this.records.get(e)??[];return nO(n)}clear(e){this.records.delete(e);}},xL="revturbine:impression-history",pp=class{constructor(e){this.storage=e.storage,this.tenantId=e.tenantId,this.maxRecords=e.maxRecords??500;}append(e,n){let r=this.load(e);r.push(n),r.length>this.maxRecords&&r.splice(0,r.length-this.maxRecords),this.save(e,r);}query(e,n){let r=this.load(e);return n&&(r=eO(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.load(e);return tO(n)}getSuppressedPlacements(e){let n=this.load(e);return nO(n)}clear(e){this.storage.removeItem(this.key(e));}key(e){return `${xL}:${this.tenantId}:${e}`}load(e){let n=this.storage.getItem(this.key(e));if(!n)return [];try{let r=JSON.parse(n);return Array.isArray(r)?r:[]}catch{return []}}save(e,n){try{this.storage.setItem(this.key(e),JSON.stringify(n));}catch{}}};function eO(e,n){let r=e;if(n.placementIds&&n.placementIds.length>0){let o=new Set(n.placementIds);r=r.filter(t=>o.has(t.placementId));}if(n.outcomes&&n.outcomes.length>0){let o=new Set(n.outcomes);r=r.filter(t=>o.has(t.outcome));}if(n.since){let o=new Date(n.since).getTime();r=r.filter(t=>new Date(t.occurredAt).getTime()>=o);}return r}function tO(e){let n=new Set;for(let r of e)_L.has(r.outcome)&&n.add(r.placementId);return n}function nO(e){let n=new Map,r=Date.now();for(let o=e.length-1;o>=0;o--){let t=e[o];if(t.outcome!=="suppressed"||n.has(t.placementId))continue;let i=t.metadata?.suppressUntil;typeof i=="string"&&new Date(i).getTime()>r&&n.set(t.placementId,i);}return n}function SL(e){let{config:n,cacheTtlMs:r}=e,o=[];if(e.planHandle){let t={domain:"plan",cacheTtlMs:r,resolve:()=>({currentPlanHandle:e.planHandle,currentPlanName:e.planName??e.planHandle,...e.paymentFailed!==void 0?{paymentFailed:e.paymentFailed}:{},...e.paymentAtRisk!==void 0?{paymentAtRisk:e.paymentAtRisk}:{}})};o.push(t);}if(n.entitlements?.length){let t=e.defaultEntitlementPolicy??"allow",i={domain:"entitlements",cacheTtlMs:r,resolve:()=>{let s={},c={};for(let l of n.entitlements??[]){s[l.unique_handle]={status:t==="allow"?"allowed":"denied",allowed:t==="allow",reason:`static_config_default_${t}`};let d=e.usage?.[l.unique_handle];d&&(c[l.unique_handle]={used:d.used,limit:d.limit,remaining:Math.max(0,d.limit-d.used),unit:l.unit});}return {entries:s,usage:c,...e.tiers!==void 0?{tiers:e.tiers}:{}}}};o.push(i);}if(n.segments?.length){let t={domain:"segments",cacheTtlMs:r,resolve:()=>({segmentIds:(n.segments??[]).map(i=>i.handle),segmentSlugs:(n.segments??[]).map(i=>i.handle)})};o.push(t);}if(n.entitlement_rules?.length){let t={domain:"rules",cacheTtlMs:r,resolve:()=>{let i={},s=new Map;for(let l of n.entitlements??[]){let d=l;typeof d.unique_handle=="string"&&typeof d.type=="string"&&s.set(d.unique_handle,d.type);}for(let l of n.entitlement_rules??[]){let d=l.entitlement_id;i[d]||(i[d]=[]);let m=l,p=Array.isArray(m.segment_ids)?m.segment_ids.filter(h=>typeof h=="string"):typeof m.segment_id=="string"&&m.segment_id!=="all"?[m.segment_id]:[],f=Array.isArray(m.plan_ids)?m.plan_ids.filter(h=>typeof h=="string"):[],g={ruleId:l.id,entitlementId:d,planIds:(l.targets??[]).length>0?(l.targets??[]).filter(h=>h.kind==="plan").map(h=>h.id):f,segmentIds:p,kind:(()=>{let h=typeof m.type_fields=="object"&&m.type_fields!==null?m.type_fields:{};return (typeof m.kind=="string"?m.kind:void 0)??(typeof h.kind=="string"?h.kind:void 0)??s.get(d)??"feature"})(),fields:{...typeof m.type_fields=="object"&&m.type_fields!==null?m.type_fields:{},...m}};i[d].push(g);}let c={};for(let l of n.segments??[])typeof l.dimension_id=="string"&&typeof l.handle=="string"&&(c[l.handle]=l.dimension_id);return {entitlementRules:i,segmentDimensions:c,configVersion:n.version}}};o.push(t);}if(n.message_blocks?.length||n.personalization_tokens?.length){let t={domain:"content",cacheTtlMs:r,resolve:()=>{let i={};for(let s of n.message_blocks??[])i[s.block_id]={blockId:s.block_id,name:s.name,defaultContent:s.default_content,segmentOverrides:s.segment_overrides?.map(c=>({segmentId:c.segment_value_id,content:c.content})),status:s.status};return {messageBlocks:i,personalization:{}}}};o.push(t);}if(n.theme&&Object.keys(n.theme).length>0){let t={domain:"theme",cacheTtlMs:r,resolve:()=>({overrides:n.theme})};o.push(t);}return o}function IL(e){let{payload:n,cacheTtlMs:r}=e,o=[];if(n.user_context){let t=n.user_context,i={domain:"plan",cacheTtlMs:r,resolve:()=>({currentPlanHandle:t.plan_handle??"unknown",currentPlanName:t.plan_name,billingPeriod:t.billing_period,trialActive:t.trial_active,trialLimitType:t.trial_limit_type,trialProgressPercent:t.trial_progress_percent,trialDaysRemaining:t.trial_days_remaining,trialDaysTotal:t.trial_days_total,trialState:t.trial_state,trialUsageEntitlementHandle:t.trial_usage_entitlement_handle,trialUsageConsumed:t.trial_usage_consumed,trialUsageLimit:t.trial_usage_limit})};o.push(i);}if(n.entitlements){let t=n.entitlements,i={domain:"entitlements",cacheTtlMs:r,resolve:()=>{let s={};for(let[c,l]of Object.entries(t))s[c]=l;return {entries:s}}};o.push(i);}if(n.user_context){let t=n.user_context;if(Array.isArray(t.segment_ids)){let i={domain:"segments",cacheTtlMs:r,resolve:()=>({segmentIds:t.segment_ids})};o.push(i);}}if(n.user_context){let t=n.user_context;if(t.traits&&typeof t.traits=="object"){let i={domain:"traits",cacheTtlMs:r,resolve:()=>({traits:t.traits})};o.push(i);}}if(n.theme){let t={domain:"theme",cacheTtlMs:r,resolve:()=>({overrides:n.theme})};o.push(t);}return o}var rO=class{constructor(e){this.registeredPlacements=new Map,this.tenantId=e.tenantId,this.userId=e.userId,this.exportedConfig=e.exportedConfig;let n=e.storage??new Xa;this.registry=new xl;for(let o of e.providers)this.registry.register(o);this.interactionTracker=new WE({storage:n,tenantId:e.tenantId,userId:e.userId,...e.interactionOptions}),this.capEnforcer=new XE({storage:n,tenantId:e.tenantId,userId:e.userId}),this.impressionHistory=new Yx({store:e.impressionStore??new yL,userId:e.userId});let r=e.customResolver??this.buildPlacementResolver(e);this.engine=new $x({registry:this.registry,interactionTracker:this.interactionTracker,capEnforcer:this.capEnforcer,options:e.engineOptions,placements:this.registeredPlacements,placementResolver:r});}registerPlacement(e){this.registeredPlacements.set(e.id,e);}async getPlacementDecision(e){return this.engine.evaluate(e)}async getPlacementDecisions(e){return this.engine.evaluateBatch(e)}async checkEntitlement(e,n){let r=await this.engine.checkEntitlement(e,n);return r.reason==="no_entitlement_provider"?this.deriveEntitlementFromConfig(e,n):r}trackInteraction(e){this.engine.trackInteraction(e);}clearSuppression(e,n){this.interactionTracker.clearSuppression(e,n??this.userId);}async resolveProviders(){return this.registry.resolveAll()}evaluateSegments(e){let n=this.exportedConfig.segments??[];return ol(n,e)}buildTargetingState(e,n){return rp(e,this.exportedConfig,n)}async derivePersonalizationTokens(e){let n=await this.registry.resolveAll();return Oa({userId:this.userId,providers:n,base:e})}setUserId(e){this.userId=e,this.impressionHistory.setUserId(e);}getUserId(){return this.userId}getExportedConfig(){return this.exportedConfig}async hydrate(){await this.impressionHistory.hydrate();}updateProviders(e){this.registry.clear();for(let n of e)this.registry.register(n);}buildPlacementResolver(e){let n=e.placements??{placements:e.exportedConfig.placements??[]};return wo({placements:n,exportedConfig:e.exportedConfig,impressionHistory:this.impressionHistory})}deriveEntitlementFromConfig(e,n){return il({handle:e,context:n,currentPlanHandle:"",segmentIds:new Set,usageBalances:{},exportedConfig:this.exportedConfig})??{status:"allowed",allowed:true,reason:"local_runtime_default_allow"}}},PL=["web-client","server"],kL=a.enum(PL),TL=["method","meta","component"],$L=a.enum(TL),wL=["ts","python","java","csharp","rust"];a.enum(wL);var RL=a.object({ts:a.string().min(1).optional(),python:a.string().min(1).optional(),java:a.string().min(1).optional(),csharp:a.string().min(1).optional(),rust:a.string().min(1).optional()}).strict(),CL=a.object({canonical:a.string().min(1),aliases:a.array(a.string().min(1)),kind:$L,appliesTo:a.array(kL).min(1),composes:a.string().min(1).optional(),perLanguage:RL.optional(),description:a.string().min(1)}).strict().refine(e=>e.kind!=="meta"||e.composes!==void 0,{message:"kind 'meta' requires a `composes` reference",path:["composes"]}),EL=a.object({version:a.number().int().positive(),functions:a.array(CL).min(1)}).strict().superRefine((e,n)=>{let r=new Map;for(let o of e.functions)for(let t of [o.canonical,...o.aliases]){let i=r.get(t);i!==void 0&&n.addIssue({code:"custom",message:`duplicate SDK name "${t}" (also on "${i}")`,path:["functions"]}),r.set(t,o.canonical);}});EL.parse({version:2,functions:[{canonical:"checkEntitlement",aliases:["can"],kind:"method",appliesTo:["web-client","server"],description:"Check whether the user is entitled to a feature/handle; returns the rich EntitlementResult (allowed, status, reason, limits, enforcement)."},{canonical:"gate",aliases:[],kind:"meta",appliesTo:["web-client"],composes:"checkEntitlement",description:"Gate an action behind an entitlement: checks the handle, runs fn when allowed, otherwise returns the entitlement so the caller can surface a paywall."},{canonical:"trackEvent",aliases:["track"],kind:"method",appliesTo:["web-client"],description:"Emit a product/analytics event powering frequency caps, attribution, and experiments."},{canonical:"updateUsage",aliases:["update"],kind:"method",appliesTo:["web-client"],description:"Patch customer-reported usage balances for client-side metering display (the advertised update({ usage }) verb)."},{canonical:"resetIdentity",aliases:["reset"],kind:"method",appliesTo:["web-client"],description:"Clear the current user and revert to the anonymous identity (e.g. on sign-out)."},{canonical:"identify",aliases:[],kind:"method",appliesTo:["web-client"],description:"Associate the session with a known user id and optional traits/context."},{canonical:"getPlacement",aliases:[],kind:"method",appliesTo:["web-client","server"],description:"Resolve a single placement decision for a surface."},{canonical:"getPlacementDecision",aliases:[],kind:"method",appliesTo:["web-client"],description:"Resolve a placement decision from an explicit decision input (headless)."},{canonical:"evaluate",aliases:[],kind:"method",appliesTo:["server"],description:"Batch-evaluate placements + entitlements for a user, returning a serializable payload the client SDK can hydrate."},{canonical:"getTrialStatus",aliases:[],kind:"method",appliesTo:["server"],description:"Fetch the user's trial status for server-side gating."},{canonical:"SurfaceSlotComponent",aliases:["Slot","RTSlot"],kind:"component",appliesTo:["web-client"],description:"React slot component that renders the resolved placement; advertised as <Slot> (<RTSlot> is the deprecated prior name)."},{canonical:"AccessGateSurfaceSlot",aliases:["Gate"],kind:"component",appliesTo:["web-client"],description:"React component that gates content behind an entitlement, rendering an upsell placement when denied; advertised as <Gate>."}]});var Qx={workspace_name:"Your workspace",theme:{}};function iO(e){return !!e&&Object.keys(e).length>0}var oO=false;function eS(e={}){let n=(r,o)=>({branding:{...Qx,...r,theme:{...Qx.theme,...r?.theme}},source:o});return iO(e.explicit)?n(e.explicit,"explicit"):e.legacyConfigTheme&&Object.keys(e.legacyConfigTheme).length>0?(e.warnOnLegacy!==false&&!oO&&OL()&&(oO=true,console.warn("[RevTurbine] Branding embedded in the config `theme` field is deprecated. Pass a `branding` option to the SDK, or resolve it via the Branding API. See the Branding resolution ladder in the SDK docs.")),n({theme:e.legacyConfigTheme},"legacy-config")):iO(e.apiBranding)?n(e.apiBranding,"branding-api"):n(void 0,"default")}function OL(){let e=globalThis.process;if(e)return e.env?.NODE_ENV!=="production";let n=globalThis.location;return n?.hostname==="localhost"||n?.hostname==="127.0.0.1"||n?.hostname==="[::1]"}var aO="[REDACTED]",zL=/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g,jL=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,UL=/\d(?:[ -]?\d){12,18}/g;function AL(e){let n=0,r=false;for(let o=e.length-1;o>=0;o-=1){let t=e.charCodeAt(o)-48;if(t<0||t>9)return false;if(r){let i=t*2;i>9&&(i-=9),n+=i;}else n+=t;r=!r;}return n%10===0}function DL(e){let n=0,r=e.replace(zL,()=>(n+=1,aO));return r=r.replace(UL,o=>{let t=o.replace(/[ -]/g,"");return t.length>=13&&t.length<=19&&AL(t)?(n+=1,aO):o}),{value:r,count:n}}function tS(e){let n=0,r=o=>{if(typeof o=="string"){let t=DL(o);return n+=t.count,t.value}if(Array.isArray(o))return o.map(r);if(o&&typeof o=="object"){let t={};for(let[i,s]of Object.entries(o))t[i]=r(s);return t}return o};return {value:r(e),redactions:n}}function FL(e){return jL.test(e.trim())}function NL(e){let n=e.trim().toLowerCase();return `eml_${BL(n).slice(0,16)}`}function nS(e){return FL(e)?{value:NL(e),redacted:true}:{value:e,redacted:false}}function sO(e){let n=nS(e.user_id??""),r=tS({url:e.url,path:e.path,page_title:e.page_title,tags:e.tags,traits:e.identity?.traits??null,properties:e.properties});return {value:{...e,url:r.value.url,path:r.value.path,page_title:r.value.page_title,tags:r.value.tags,user_id:e.user_id===null||e.user_id===void 0?e.user_id:n.value,identity:e.identity?{...e.identity,traits:r.value.traits??void 0}:e.identity,properties:r.value.properties},redactions:r.redactions+(n.redacted?1:0)}}var LL=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function VL(e){let n=[];for(let r=0;r<e.length;r+=1){let o=e.charCodeAt(r);if(o<128)n.push(o);else if(o<2048)n.push(192|o>>6,128|o&63);else if(o>=55296&&o<=56319){let t=o,i=e.charCodeAt(r+1);r+=1,o=65536+((t&1023)<<10)+(i&1023),n.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|o&63);}else n.push(224|o>>12,128|o>>6&63,128|o&63);}return n}function Hr(e,n){return e>>>n|e<<32-n}function BL(e){let n=VL(e),r=n.length*8;for(n.push(128);n.length%64!==56;)n.push(0);for(let f=0;f<4;f+=1)n.push(0);n.push(r>>>24&255,r>>>16&255,r>>>8&255,r&255);let o=1779033703,t=3144134277,i=1013904242,s=2773480762,c=1359893119,l=2600822924,d=528734635,m=1541459225,p=new Array(64);for(let f=0;f<n.length;f+=64){for(let I=0;I<16;I+=1){let z=f+I*4;p[I]=(n[z]<<24|n[z+1]<<16|n[z+2]<<8|n[z+3])>>>0;}for(let I=16;I<64;I+=1){let z=Hr(p[I-15],7)^Hr(p[I-15],18)^p[I-15]>>>3,X=Hr(p[I-2],17)^Hr(p[I-2],19)^p[I-2]>>>10;p[I]=p[I-16]+z+p[I-7]+X>>>0;}let g=o,h=t,x=i,S=s,w=c,$=l,E=d,P=m;for(let I=0;I<64;I+=1){let z=Hr(w,6)^Hr(w,11)^Hr(w,25),X=w&$^~w&E,re=P+z+X+LL[I]+p[I]>>>0,L=Hr(g,2)^Hr(g,13)^Hr(g,22),H=g&h^g&x^h&x,ee=L+H>>>0;P=E,E=$,$=w,w=S+re>>>0,S=x,x=h,h=g,g=re+ee>>>0;}o=o+g>>>0,t=t+h>>>0,i=i+x>>>0,s=s+S>>>0,c=c+w>>>0,l=l+$>>>0,d=d+E>>>0,m=m+P>>>0;}return [o,t,i,s,c,l,d,m].map(f=>f.toString(16).padStart(8,"0")).join("")}var cO={web_signed_up:"system",web_signed_in:"system",cli_signed_up:"system",cli_signed_in:"system",cli_command_executed:"system",changeset_submitted:"workflow",changeset_approved:"workflow",changeset_rejected:"workflow",changeset_deployed:"workflow",changeset_launched:"workflow",changeset_parked:"workflow",changeset_resumed:"workflow",changeset_discarded:"workflow",changeset_archived:"workflow",config_imported:"workflow",config_exported:"workflow",entity_created:"workflow",entity_updated:"workflow",entity_deleted:"workflow"},lO="control_plane_source";function rS(e,n={}){return {eventName:e,properties:{[lO]:cO[e],...n}}}var Sl=class{constructor(n){O(this,"backend");this.backend=n;}getItem(n){try{return this.backend.getItem(n)}catch{return null}}setItem(n,r){try{this.backend.setItem(n,r);}catch{}}removeItem(n){try{this.backend.removeItem(n);}catch{}}};function Li(e){if(e)return e;if(zn())try{return new Sl(window.localStorage)}catch{}return new Xa}function iS(e){if(e)return e;if(zn())try{return new Sl(window.sessionStorage)}catch{}return new Xa}var ML=/^[a-z0-9._]{1,100}$/,Bt={Persisted:"persisted",Transient:"transient"},Mt={Internal:"internal",External:"external"},Zt={Pii:{"x-revturbine-data-classification":"pii"},Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}};var ZL="readOnly";function pn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[ZL]===true||(n[r]=o);}return a.object(n)}function mn(e){let n=pn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(ML)}):n}var {Unrestricted:on}=Zt,{Transient:jn,Persisted:qL}=Bt,{Internal:Co,External:li}=Mt;a.object({page:a.coerce.number().int().min(1).default(1).meta(on),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(on)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li});var HL=e=>a.object({items:a.array(e).meta(on),total:a.number().int().min(0).meta(on),page:a.number().int().min(1).meta(on),per_page:a.number().int().min(1).meta(on),has_more:a.boolean().meta(on)}).meta({id:"PaginatedResponse","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),pe=a.object({created_at:a.string().datetime().meta({...on,readOnly:true}),updated_at:a.string().datetime().meta({...on,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),ne=a.object({id:a.string().min(1).meta({...on,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),_e=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...on,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li});var xp=a.enum(["banner","modal","tooltip","sidebar","inline","toast","fullscreen","email","sms","push","in_page","button","full_page","agent","cli","custom"]).meta({id:"SurfaceType","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),_S=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),KL=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co});var Ft=a.string().min(1).max(200),ct=a.string().min(1).max(100),Eo=a.string().max(500).optional(),jt=a.record(a.string(),a.unknown()).default({}),Cl=a.number().int().min(10).max(100).multipleOf(10),Et=a.string().datetime().nullable().default(null),dt=a.object({environment_id:a.string().min(1).default("production").meta({...on,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co}),ft=a.object({playbook_version_id:a.string().nullable().default(null).meta(on),is_current:a.boolean().default(true).meta({...on,readOnly:true}),is_deleted:a.boolean().default(false).meta({...on,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...on,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...on,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...on,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co}),GL=ne.merge(pe).merge(_e).merge(dt).extend({handle:ct.meta({...on,readOnly:true}),active:a.boolean().default(true).meta({...on,readOnly:true})});function Qt(e){return GL.meta({id:e,"x-revturbine-schema-persistence":qL,"x-revturbine-schema-exposure":Co})}var vS=a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co}),JL=a.enum(["button","plans_page_ctas","plans_page_full","inline_gate_message","tooltip","in_page_card","usage_counter","credit_counter","trial_counter","banner","modal_optional","modal_blocking","toast","email","sms","push","cli","agent_connector","custom_in_app"]).meta({id:"StudioSurfaceType","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co}),yO=a.enum(["open_checkout","view_plans","book_demo","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription","switch_billing_period","extend_trial","open_rt_placement","dismiss","snooze","custom"]).meta({id:"CtaActionType","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),He={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},wr={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},WL="x-revturbine-context",XL="x-revturbine-in-config",YL="x-revturbine-sdk-input",QL="x-revturbine-source",eV="x-revturbine-deprecation",tV={[He.Playbook]:wr.Customer,[He.Branding]:wr.Customer,[He.Billing]:wr.Stripe,[He.Metering]:wr.Customer,[He.CustomerOperations]:wr.Runtime,[He.EventIngestion]:wr.Runtime};function lt(e,n){return {[WL]:e,[XL]:n.inConfig??e===He.Playbook,[YL]:n.sdkInput,[QL]:n.source??tV[e]}}function fp(e){return {deprecated:true,[eV]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var xO={Named:"named",Minted:"minted"},SO="x-revturbine-schema-identity";function fn(e="handle"){return {[SO]:{kind:xO.Named,handleField:e}}}function sr(e="handle"){return {[SO]:{kind:xO.Minted,handleField:e}}}var Y=e=>a.object({items:a.array(e)}),Ee=a.object({error:a.string(),code:a.string(),request_id:a.string()}),y=e=>e,Q=a.object({page:a.number().int().min(1).default(1).optional(),per_page:a.number().int().min(1).max(100).default(25).optional(),sort:a.string().optional(),order:a.enum(["asc","desc"]).default("asc").optional(),include_deleted:a.boolean().default(false).optional()}),{Unrestricted:We,Financial:yp}=Zt,{Persisted:Ul,Transient:Sp}=Bt,{External:ui}=Mt,nV=lt(He.Playbook,{sdkInput:true}),rV=lt(He.Playbook,{sdkInput:false}),yS=lt(He.Billing,{sdkInput:false}),Hi=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":ui}),Al=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":ui}),Ip=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":ui}),is=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...We,readOnly:true}),name:Ft.meta(We),handle:ct.meta(We),tier_position:a.number().int().min(0).default(0).meta(We),sort_order:a.number().int().default(0).meta(We),visibility:Hi.default("public").meta(We),metadata:jt.meta(We)}).meta({id:"Plan","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":ui,...nV,...fn()}),iV=Qt("PlanAnchor"),os=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...We,readOnly:true}),handle:ct.meta({...We,readOnly:true}),plan_id:a.string().min(1).meta(We),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(We),segment_id:a.string().nullable().default(null).meta(We),price_amount:a.number().min(0).meta(yp),pricing_model:Al.meta(We),visibility:Hi.default("public").meta(We),stripe_price_id:a.string().optional().meta(We),price_source:Ip.default("static").meta(We)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":ui,...yS,...sr()}),oV=Qt("PlanVariationAnchor"),as=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...We,readOnly:true}),name:Ft.meta(We),handle:ct.meta(We),sort_order:a.number().int().default(0).meta(We),visibility:Hi.default("public").meta(We),metadata:jt.meta(We)}).meta({id:"AddOn","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":ui,...rV,...fn()}),aV=Qt("AddOnAnchor"),ss=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...We,readOnly:true}),handle:ct.meta({...We,readOnly:true}),addon_id:a.string().min(1).meta(We),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(We),segment_id:a.string().nullable().default(null).meta(We),price_amount:a.number().min(0).meta(yp),pricing_model:Al.meta(We),visibility:Hi.default("public").meta(We),stripe_price_id:a.string().optional().meta(We),price_source:Ip.default("static").meta(We)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":ui,...yS,...sr()}),sV=Qt("AddOnVariationAnchor"),cV=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":ui}),cs=ne.merge(pe).merge(_e).extend({stripe_price_id:a.string().min(1).meta(We),stripe_product_id:a.string().min(1).meta(We),billing_period:cV.meta(We),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(yp),currency:KL.meta(yp),pricing_model:Al.meta(We),nickname:a.string().nullable().default(null).meta(We),is_mock:a.boolean().default(false).meta(We),last_updated_from_stripe:Et.meta(We)}).meta({id:"StripePrice","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":ui,...yS});var lV=pn(is),uV=pn(os),dV=pn(as),mV=pn(ss),pV=pn(cs);({"/api/plan-anchors":{get:y({operationId:"listPlanAnchors",requestParams:{query:Q},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:Y(iV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:y({operationId:"listPlans",requestParams:{query:Q},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:Y(is)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"list"}}}),post:y({operationId:"createPlan",summary:"Create plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mn(is)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:is}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"create"}}})},"/api/plans/{planId}":{get:y({operationId:"getPlan",requestParams:{path:a.object({planId:a.string()})},summary:"Get plan by ID",tags:["plans"],responses:{200:{description:"Plan detail",content:{"application/json":{schema:is}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"get"}}}),patch:y({operationId:"updatePlan",requestParams:{path:a.object({planId:a.string()})},summary:"Update plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:lV}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:is}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"update"}}}),delete:y({operationId:"deletePlan",requestParams:{path:a.object({planId:a.string()})},summary:"Delete plan",tags:["plans"],responses:{204:{description:"Plan deleted"},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"delete"}}})},"/api/plans/reorder":{post:y({operationId:"reorderPlans",summary:"Reorder plans",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:a.object({ids:a.array(a.string())})}}},responses:{200:{description:"Reordered"}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"reorder"}}})},"/api/plan-variation-anchors":{get:y({operationId:"listPlanVariationAnchors",requestParams:{query:Q},summary:"List plan variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan variation anchor list",content:{"application/json":{schema:Y(oV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-variation-anchors",persistence:{table:"planVariations",mode:"list"}}})},"/api/plans/{planId}/variations":{get:y({operationId:"listPlanVariations",requestParams:{path:a.object({planId:a.string()}),query:Q},summary:"List plan variations",tags:["plans"],responses:{200:{description:"Plan variations",content:{"application/json":{schema:Y(os)}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"list"}}}),post:y({operationId:"createPlanVariation",requestParams:{path:a.object({planId:a.string()})},summary:"Create plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mn(os)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:os}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"create"}}})},"/api/plan-variations/{variationId}":{get:y({operationId:"getPlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Get plan variation by ID",tags:["plans"],responses:{200:{description:"Plan variation detail",content:{"application/json":{schema:os}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"get"}}}),patch:y({operationId:"updatePlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:uV}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:os}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"update"}}}),delete:y({operationId:"deletePlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Delete plan variation",tags:["plans"],responses:{204:{description:"Plan variation deleted"}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"delete"}}})},"/api/addon-anchors":{get:y({operationId:"listAddOnAnchors",requestParams:{query:Q},summary:"List add-on anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on anchor list",content:{"application/json":{schema:Y(aV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:y({operationId:"listAddOns",requestParams:{query:Q},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:Y(as)}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"list"}}}),post:y({operationId:"createAddOn",summary:"Create add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mn(as)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:as}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"create"}}})},"/api/addons/{addonId}":{get:y({operationId:"getAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Get add-on by ID",tags:["plans"],responses:{200:{description:"Add-on detail",content:{"application/json":{schema:as}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"get"}}}),patch:y({operationId:"updateAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Update add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:dV}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:as}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"update"}}}),delete:y({operationId:"deleteAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Delete add-on",tags:["plans"],responses:{204:{description:"Add-on deleted"}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"delete"}}})},"/api/addon-variation-anchors":{get:y({operationId:"listAddOnVariationAnchors",requestParams:{query:Q},summary:"List add-on variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on variation anchor list",content:{"application/json":{schema:Y(sV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-variation-anchors",persistence:{table:"addonVariations",mode:"list"}}})},"/api/addons/{addonId}/variations":{get:y({operationId:"listAddOnVariations",requestParams:{path:a.object({addonId:a.string()}),query:Q},summary:"List add-on variations",tags:["plans"],responses:{200:{description:"Add-on variations",content:{"application/json":{schema:Y(ss)}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"list"}}}),post:y({operationId:"createAddOnVariation",requestParams:{path:a.object({addonId:a.string()})},summary:"Create add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mn(ss)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:ss}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"create"}}})},"/api/addon-variations/{variationId}":{get:y({operationId:"getAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Get add-on variation by ID",tags:["plans"],responses:{200:{description:"Add-on variation detail",content:{"application/json":{schema:ss}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"get"}}}),patch:y({operationId:"updateAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mV}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:ss}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"update"}}}),delete:y({operationId:"deleteAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Delete add-on variation",tags:["plans"],responses:{204:{description:"Variation deleted"}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"delete"}}})},"/api/stripe-prices":{get:y({operationId:"listStripePrices",requestParams:{query:Q},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:Y(cs)}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"list"}}}),post:y({operationId:"createStripePrice",summary:"Create Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mn(cs)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:cs}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"create"}}})},"/api/stripe-prices/{id}":{get:y({operationId:"getStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Get Stripe price by ID",tags:["plans"],responses:{200:{description:"Stripe price detail",content:{"application/json":{schema:cs}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"get"}}}),patch:y({operationId:"updateStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Update Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:pV}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:cs}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"update"}}}),delete:y({operationId:"deleteStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Delete Stripe price",tags:["plans"],responses:{204:{description:"Stripe price deleted"}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"delete"}}})}});var {Unrestricted:se}=Zt,{Persisted:xS,Transient:Wn}=Bt,{Internal:IO,External:Un}=Mt,PO=lt(He.Playbook,{sdkInput:true}),fV=lt(He.Playbook,{inConfig:false,sdkInput:false}),kO=a.enum(["per_month","per_year","per_billing_period","lifetime","concurrent","per_instance","per_second","per_minute","per_hour","per_6_hours","per_day","per_week"]).meta({id:"UsagePeriodScope","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),Pp=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),gV=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),hV=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),TO=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),El=a.object({entitlement_id:a.string().min(1).meta(se),entitlement_handle:a.string().min(1).meta(se),status:gV.meta(se),limit:a.number().optional().meta(se),used:a.number().optional().meta(se),allocation:Pp.optional().meta(se),enforcement:TO.optional().meta(se),source:hV.optional().meta(se),plan_id:a.string().optional().meta(se),segment_id:a.string().optional().meta(se),seat_type_id:a.string().optional().meta(se),rule_id:a.string().optional().meta(se)}).meta({id:"EntitlementGrant","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),El).optional().meta(se),instance:a.record(a.string(),El).optional().meta(se),user:a.record(a.string(),El).optional().meta(se)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un,"x-revturbine-data-classification":"operational"});var bV=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),_V=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),$O=a.object({kind:_V.meta(se),id:a.string().min(1).meta(se)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),vV=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),ls=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...se,readOnly:true}),name:Ft.meta(se),handle:ct.meta(se),customer_facing_description:a.string().max(500).optional().meta(se),type:_S.meta(se),unit:a.string().max(100).optional().meta(se),period_scope:kO.optional().meta(se),allocation:Pp.optional().meta(se),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(se),sort_order:a.number().int().default(0).meta(se),metadata:jt.meta(se)}).meta({id:"Entitlement","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":Un,...PO,...fn()}),yV=Qt("EntitlementAnchor"),ps=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...se,readOnly:true}),handle:ct.meta({...se,readOnly:true}),entitlement_id:a.string().min(1).meta(se),targets:a.array($O).min(1).meta(se),segment_ids:a.array(a.string()).default([]).meta(se),visibility:bV.default("public").meta(se),period_scope:kO.optional().meta(se),instance:a.string().max(100).optional().meta(se),reset_period:vV.optional().meta(se),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(se),enforcement:TO.optional().meta(se),warning_threshold_percent:Cl.optional().meta(se),overage_price_ref:a.string().optional().meta(se),grace_period_hours:a.number().int().min(0).optional().meta(se),tier_value:a.string().optional().meta(se),rate_value:a.number().optional().meta(se),initial_grant:a.number().optional().meta(se),allowance_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(se),rollover_enabled:a.boolean().optional().meta(se),max_balance:a.union([a.number(),a.literal("unlimited")]).nullable().default(null).meta(se),seat_type_id:a.string().optional().meta(se),included_count:a.union([a.number().int(),a.literal("unlimited")]).optional().meta(se),at_limit_behavior:a.enum(["hard_cap","auto_upgrade_at_renewal"]).optional().meta(se),stripe_metered_price_id:a.string().optional().meta(se),enabled:a.boolean().optional().meta(se),allocation:Pp.optional().meta(se),max_seats:a.union([a.number(),a.literal("unlimited")]).nullable().optional().meta(se),amount_cents:a.number().int().optional().meta(se),currency:a.string().optional().meta(se)}).meta({id:"EntitlementRule","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":IO,...PO,...sr()}),xV=Qt("EntitlementRuleAnchor");ps.superRefine((e,n)=>{e.reset_period==="billing_period"&&e.targets.findIndex(o=>o.kind!=="plan_variation"&&o.kind!=="addon_variation")!==-1&&n.addIssue({code:"custom",path:["reset_period"],params:{code:"billing_period_target_mismatch"},message:"reset_period='billing_period' requires all targets to be plan_variation or addon_variation"});});var SV=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),IV=a.object({code:SV.meta(se),message:a.string().min(1).meta(se),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(se)}).meta({id:"EntitlementRuleWarning","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),oS=ps.extend({warnings:a.array(IV).optional().meta(se)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un});var aS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({...se,readOnly:true}),rule_id:a.string().min(1).meta(se),experiment_id:a.string().min(1).meta(se),variant_name:a.string().min(1).max(200).meta(se),is_control:a.boolean().default(false).meta(se),override_fields:a.record(a.string(),a.unknown()).default({}).meta(se)}).meta({id:"EntitlementRuleVariant","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":IO,...fV,...sr()}),PV=pn(ls),kV=pn(ps);({"/api/entitlement-anchors":{get:y({operationId:"listEntitlementAnchors",requestParams:{query:Q},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:Y(yV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:y({operationId:"listEntitlementRuleAnchors",requestParams:{query:Q},summary:"List entitlement rule anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement rule anchor list",content:{"application/json":{schema:Y(xV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:y({operationId:"listEntitlements",requestParams:{query:Q},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:Y(ls)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"list"}}}),post:y({operationId:"createEntitlement",summary:"Create entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:mn(ls)}}},responses:{201:{description:"Created",content:{"application/json":{schema:ls}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"create"}}})},"/api/entitlements/{entitlementId}":{get:y({operationId:"getEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Get entitlement",tags:["entitlements"],responses:{200:{description:"Entitlement detail",content:{"application/json":{schema:ls}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"get"}}}),patch:y({operationId:"updateEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Update entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:PV}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ls}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"update"}}}),delete:y({operationId:"deleteEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Delete entitlement",tags:["entitlements"],responses:{204:{description:"Deleted"},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"delete"}}})},"/api/entitlements/{entitlementId}/rules":{get:y({operationId:"listEntitlementRules",requestParams:{path:a.object({entitlementId:a.string()}),query:Q},summary:"List rules for entitlement",tags:["entitlements"],responses:{200:{description:"Rule list",content:{"application/json":{schema:Y(ps)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"list"}}}),post:y({operationId:"createEntitlementRule",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Create entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:mn(ps)}}},responses:{201:{description:"Created",content:{"application/json":{schema:oS}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"create"}}})},"/api/entitlement-rules/{ruleId}":{patch:y({operationId:"updateEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:kV}}},responses:{200:{description:"Updated",content:{"application/json":{schema:oS}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"update"}}}),delete:y({operationId:"deleteEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete entitlement rule",tags:["entitlements"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"delete"}}})},"/api/entitlement-rules/{ruleId}/duplicate":{post:y({operationId:"duplicateEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Duplicate entitlement rule",tags:["entitlements"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:oS}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"duplicate"}}})},"/api/entitlement-rules/{ruleId}/variants":{get:y({operationId:"listEntitlementRuleVariants",requestParams:{path:a.object({ruleId:a.string()}),query:Q},summary:"List A/B variants for rule",tags:["entitlements"],responses:{200:{description:"Variant list",content:{"application/json":{schema:Y(aS)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"list"}}}),post:y({operationId:"createEntitlementRuleVariant",requestParams:{path:a.object({ruleId:a.string()})},summary:"Create rule A/B variant",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:mn(aS)}}},responses:{201:{description:"Created",content:{"application/json":{schema:aS}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:ue}=Zt,{Persisted:Dl,Transient:Ki}=Bt,{External:_r,Internal:TV}=Mt,wO=lt(He.Playbook,{sdkInput:true}),$V=lt(He.Playbook,{inConfig:false,sdkInput:false}),wV=lt(He.Playbook,{inConfig:false,sdkInput:true}),RV=lt(He.Playbook,{inConfig:false,sdkInput:false,source:wr.Runtime}),CV=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]);var RO=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),CO=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),EV=a.object({count:a.number().int().positive().meta(ue),period:CO.meta(ue)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r});a.object({surface_type:a.string().min(1).meta(ue),rules:a.array(EV).meta(ue),cooldown_ms:a.number().int().nonnegative().optional().meta(ue)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":Dl,"x-revturbine-schema-exposure":_r,"x-revturbine-data-classification":"operational",...wV});var OV=a.enum(["open_checkout","view_plans","book_demo","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription","switch_billing_period","extend_trial","open_rt_placement","dismiss","snooze","custom"]).meta({id:"CtaPathType","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),ds=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true}),name:Ft.meta(ue),handle:ct.meta(ue),description:Eo.meta(ue),category:RO.meta(ue),drag_order_in_category:a.number().int().default(0).meta(ue),surface_slot_id:a.string().optional().meta(ue),entitlement_id:a.string().optional().meta(ue),tier_threshold:a.string().optional().meta(ue),threshold_percent:Cl.optional().meta(ue),trial_type:a.enum(["free","reverse"]).optional().meta(ue),trigger_type:a.string().optional().meta(ue),trial_progress_percent:a.number().min(0).max(100).optional().meta(ue),days_before_end:a.number().int().min(0).optional().meta(ue),qualifier:CV.optional().meta(ue),activation_window_start:a.string().datetime().optional().meta(ue),activation_window_end:a.string().datetime().optional().meta(ue),metadata:jt.meta(ue)}).meta({id:"Placement","x-revturbine-schema-persistence":Dl,"x-revturbine-schema-exposure":_r,...wO,...fn()}),zV=Qt("PlacementAnchor"),jV=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),UV=a.object({code:jV.meta(ue),message:a.string().min(1).meta(ue),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(ue)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),uO=ds.extend({warnings:a.array(UV).optional().meta(ue)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r});var AV=a.object({label:a.string().min(1).max(200).meta(ue),cta_path_type:OV.meta(ue),config_fields:a.record(a.string(),a.unknown()).default({}).meta(ue)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),wl=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true}),handle:ct.meta({...ue,readOnly:true}),placement_id:a.string().min(1).meta(ue),drag_order:a.number().int().default(0).meta(ue),target_plan_ids:a.array(a.string()).default([]).meta(ue),target_plan_billing_cadences:a.array(a.string()).default([]).meta(ue),target_segments:a.array(a.string()).default([]).meta(ue),surface_slot_ids:a.array(a.string()).default([]).meta(ue),surface_template_id:a.string().min(1).meta(ue),content_fields:a.record(a.string(),a.unknown()).default({}).meta(ue),cta_list:a.array(AV).default([]).meta(ue),max_per_period:a.number().int().min(0).nullable().default(null).meta(ue),max_period_unit:CO.default("session").meta(ue),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(ue),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(ue),recommendation_plan_override:a.string().optional().meta(ue)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":Dl,"x-revturbine-schema-exposure":_r,...wO,...sr()}),DV=Qt("PlacementPayloadAnchor");ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({...ue,readOnly:true}),placement_payload_id:a.string().min(1).meta(ue),experiment_id:a.string().min(1).meta(ue),variant_name:a.string().min(1).max(200).meta(ue),is_control:a.boolean().default(false).meta(ue),traffic_allocation_percent:a.number().min(0).max(100).meta(ue),override_fields:a.record(a.string(),a.unknown()).default({}).meta(ue),status:a.enum(["active","paused","complete"]).default("active").meta(ue)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":Dl,"x-revturbine-schema-exposure":TV,...$V,...sr()});var FV=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({surface_slot_handle:a.string().min(1).max(200).meta(ue),surface_type:xp.meta(ue),surface_template_ids:a.array(a.string()).default([]).meta(ue),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(ue),first_seen:a.string().datetime().meta({...ue,readOnly:true}),last_seen:a.string().datetime().meta({...ue,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(ue),placement_count:a.number().int().min(0).default(0).meta({...ue,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":Dl,"x-revturbine-schema-exposure":_r,...RV,...fn("surface_slot_handle")}),NV=pn(ds),LV=pn(wl);({"/api/placement-anchors":{get:y({operationId:"listPlacementAnchors",requestParams:{query:Q},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:Y(zV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:y({operationId:"listPlacements",requestParams:{query:Q},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:Y(ds)}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"list"}}}),post:y({operationId:"createPlacement",summary:"Create placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:mn(ds)}}},responses:{201:{description:"Created",content:{"application/json":{schema:uO}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"create"}}})},"/api/placements/{placementId}":{get:y({operationId:"getPlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Get placement",tags:["placements"],responses:{200:{description:"Placement detail",content:{"application/json":{schema:ds}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"get"}}}),patch:y({operationId:"updatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Update placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:NV}}},responses:{200:{description:"Updated",content:{"application/json":{schema:uO}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"update"}}}),delete:y({operationId:"deletePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Delete placement",tags:["placements"],responses:{204:{description:"Deleted"},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"delete"}}})},"/api/placements/{placementId}/duplicate":{post:y({operationId:"duplicatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Duplicate placement",tags:["placements"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:ds}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"duplicate"}}})},"/api/placements/reorder":{post:y({operationId:"reorderPlacements",summary:"Reorder placements within category",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:a.object({category:RO,ids:a.array(a.string())})}}},responses:{200:{description:"Reordered"}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"reorder"}}})},"/api/placement-payload-anchors":{get:y({operationId:"listPlacementPayloadAnchors",requestParams:{query:Q},summary:"List placement payload anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement payload anchor list",content:{"application/json":{schema:Y(DV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-payload-anchors",persistence:{table:"placementPayloads",mode:"list"}}})},"/api/placements/{placementId}/payloads":{get:y({operationId:"listPlacementPayloads",requestParams:{path:a.object({placementId:a.string()}),query:Q},summary:"List placement payloads",tags:["placements"],responses:{200:{description:"Payload list",content:{"application/json":{schema:Y(wl)}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"list"}}}),post:y({operationId:"createPlacementPayload",requestParams:{path:a.object({placementId:a.string()})},summary:"Create placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:mn(wl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:wl}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"create"}}})},"/api/placement-payloads/{payloadId}":{patch:y({operationId:"updatePlacementPayload",requestParams:{path:a.object({payloadId:a.string()})},summary:"Update placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:LV}}},responses:{200:{description:"Updated",content:{"application/json":{schema:wl}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"update"}}}),delete:y({operationId:"deletePlacementPayload",requestParams:{path:a.object({payloadId:a.string()})},summary:"Delete placement payload",tags:["placements"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"delete"}}})},"/api/surface-slots":{get:y({operationId:"listSurfaceSlots",requestParams:{query:Q},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:Y(FV)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});var {Unrestricted:qe,Pii:Rl}=Zt,{Persisted:EO,Transient:kp}=Bt,{External:Fl}=Mt,SS=a.object({in_trial:a.boolean().meta(qe),trial_type:a.string().optional().meta(qe),plan_handle:a.string().optional().meta(qe),state:a.enum(["active","running_out","expired","converted","none"]).optional().meta(qe),trial_limit_type:a.enum(["time","usage"]).optional().meta(qe),progress_percent:a.number().min(0).max(100).optional().meta(qe),day_number:a.number().int().min(0).optional().meta(qe),days_remaining:a.number().int().min(0).optional().meta(qe),usage_entitlement_handle:a.string().optional().meta(qe),usage_consumed:a.number().int().min(0).optional().meta(qe),usage_remaining:a.number().int().min(0).optional().meta(qe),usage_limit:a.number().int().min(0).optional().meta(qe)}).meta({id:"UserTrialStatus","x-revturbine-schema-persistence":kp,"x-revturbine-schema-exposure":Fl}),OO=a.object({entitlement_handle:a.string().min(1).meta(qe),unit:a.string().min(1).meta(qe),amount:a.number().min(0).meta(qe),limit:a.number().min(0).optional().meta(qe),reset_date:a.string().optional().meta(qe)}).meta({id:"UserUsageEntry","x-revturbine-schema-persistence":kp,"x-revturbine-schema-exposure":Fl}),zO=a.object({id:a.string().min(1).meta(qe),name:a.string().min(1).meta(qe),price:a.string().optional().meta(qe),billing_period:a.enum(["monthly","annual","none"]).optional().meta(qe)}).meta({id:"UserPlanContext","x-revturbine-schema-persistence":kp,"x-revturbine-schema-exposure":Fl}),VV=a.object({product_instance_id:a.string().min(1).meta(qe),user_id:a.string().min(1).meta(Rl),plan:zO.optional().meta(qe),usage:a.record(a.string(),OO).default({}).meta(qe),trial:SS.optional().meta(qe),entitlements:a.record(a.string(),a.union([a.boolean(),El])).default({}).meta(qe)}).meta({id:"UserInstanceContext","x-revturbine-schema-persistence":EO,"x-revturbine-schema-exposure":Fl}),Ya=ne.merge(_e).merge(pe).extend({user_id:a.string().min(1).meta(Rl),account_id:a.string().min(1).nullable().optional().meta(Rl),email:a.string().email().nullable().optional().meta(Rl),email_type:a.string().optional().meta(qe),plan:zO.optional().meta(qe),usage:a.record(a.string(),OO).default({}).meta(qe),trial:SS.optional().meta(qe),payment_failed:a.boolean().optional().meta(qe),payment_at_risk:a.boolean().optional().meta(qe),tiers:a.record(a.string(),a.string()).optional().meta(qe),entitlements:a.record(a.string(),a.union([a.boolean(),El])).default({}).meta(qe),instances:a.array(VV).optional().meta(qe),custom:a.record(a.string(),a.union([a.string(),a.number(),a.boolean(),a.null()])).default({}).meta(Rl),personalization:a.record(a.string(),a.union([a.string(),a.number()])).default({}).meta({...qe,"x-revturbine-schema-persistence":kp}),derived_config_version:a.string().nullable().optional().meta(qe),context_hash:a.string().nullable().optional().meta(qe),derived_computed_at:Et.meta(qe)}).meta({id:"UserContext","x-revturbine-schema-persistence":EO,"x-revturbine-schema-exposure":Fl});({"/api/user-contexts":{get:y({operationId:"listUserContexts",requestParams:{query:Q},summary:"List user contexts",tags:["users"],responses:{200:{description:"User context list",content:{"application/json":{schema:Y(Ya)}}}},"x-revturbine-operation":{exposure:"internal",resource:"user-contexts",persistence:{table:"userContexts",mode:"list"}}})},"/api/user-contexts/{userContextId}":{get:y({operationId:"getUserContext",requestParams:{path:a.object({userContextId:a.string()})},summary:"Get user context",tags:["users"],responses:{200:{description:"User context",content:{"application/json":{schema:Ya}}}},"x-revturbine-operation":{exposure:"internal",resource:"user-contexts",persistence:{table:"userContexts",mode:"get"}}}),patch:y({operationId:"updateUserContext",requestParams:{path:a.object({userContextId:a.string()})},summary:"Update a user context",tags:["users"],requestBody:{required:true,content:{"application/json":{schema:Ya.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ya}}}},"x-revturbine-operation":{exposure:"internal",resource:"user-contexts",persistence:{table:"userContexts",mode:"update"}}}),delete:y({operationId:"deleteUserContext",requestParams:{path:a.object({userContextId:a.string()})},summary:"Delete a user context",tags:["users"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"user-contexts",persistence:{table:"userContexts",mode:"delete"}}})}});var {Unrestricted:yn,Pii:fs}=Zt,{Persisted:IS,Transient:PS}=Bt,{Internal:hs}=Mt,BV=lt(He.CustomerOperations,{sdkInput:false}),MV=a.object({external_id:a.string().min(1).meta(fs),traits:a.record(a.string(),a.unknown()).default({}).meta(fs),plan_id:a.string().optional().meta(yn)}).meta({id:"Identity","x-revturbine-schema-persistence":IS,"x-revturbine-schema-exposure":hs}),dO=ne.merge(pe).merge(_e).extend({external_id:a.string().min(1).meta(fs),identity:MV.meta(fs),stripe_customer_id:a.string().optional().meta(yn),current_plan_id:a.string().optional().meta(yn),subscription_status:a.enum(["active","past_due","canceled","trialing","unpaid","none"]).default("none").meta(yn),status:a.enum(["active","churned","trial","suspended"]).default("active").meta(yn),metadata:jt.meta(yn)}).meta({id:"Customer","x-revturbine-schema-persistence":IS,"x-revturbine-schema-exposure":hs}),ZV=a.enum(["permanent","for_duration"]).meta({id:"CustomerOverrideDuration","x-revturbine-schema-persistence":PS,"x-revturbine-schema-exposure":hs}),qV=a.enum(["grant_plan","grant_addon","grant_entitlement"]).meta({id:"CustomerOverrideType","x-revturbine-schema-persistence":PS,"x-revturbine-schema-exposure":hs}),HV=a.enum(["active","expired","revoked"]).meta({id:"CustomerOverrideStatus","x-revturbine-schema-persistence":PS,"x-revturbine-schema-exposure":hs}),Vi=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({...yn,readOnly:true}),customer_id:a.string().min(1).meta(fs),customer_id_list:a.array(a.string()).optional().meta(fs),override_type:qV.meta(yn),target_id:a.string().min(1).meta(yn),value:a.record(a.string(),a.unknown()).default({}).meta(yn),duration_type:ZV.default("permanent").meta(yn),duration_value:a.string().optional().meta(yn),expiry_date:Et.meta(yn),status:HV.default("active").meta(yn),reason:a.string().max(500).optional().meta(yn),created_by:a.string().optional().meta(yn)}).meta({id:"CustomerOverride","x-revturbine-schema-persistence":IS,"x-revturbine-schema-exposure":hs,...BV,...sr()});({"/api/customers":{get:y({operationId:"listCustomers",requestParams:{query:Q},summary:"List customers",tags:["customers"],responses:{200:{description:"Customer list",content:{"application/json":{schema:Y(dO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"customers",persistence:{table:"customers",mode:"list"}}})},"/api/customers/{customerId}":{get:y({operationId:"getCustomer",requestParams:{path:a.object({customerId:a.string()})},summary:"Get customer by ID",tags:["customers"],responses:{200:{description:"Customer",content:{"application/json":{schema:dO}}}},"x-revturbine-operation":{exposure:"internal",resource:"customers",persistence:{table:"customers",mode:"get"}}})},"/api/customer-overrides":{get:y({operationId:"listCustomerOverrides",requestParams:{query:Q},summary:"List customer overrides",tags:["customers"],responses:{200:{description:"Override list",content:{"application/json":{schema:Y(Vi)}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"list"}}})},"/api/customer-overrides/{overrideId}":{get:y({operationId:"getCustomerOverride",requestParams:{path:a.object({overrideId:a.string()})},summary:"Get customer override",tags:["customers"],responses:{200:{description:"Override",content:{"application/json":{schema:Vi}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"get"}}}),patch:y({operationId:"updateCustomerOverride",requestParams:{path:a.object({overrideId:a.string()})},summary:"Update customer override",tags:["customers"],requestBody:{required:true,content:{"application/json":{schema:Vi.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Vi}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"update"}}}),delete:y({operationId:"deleteCustomerOverride",requestParams:{path:a.object({overrideId:a.string()})},summary:"Delete customer override",tags:["customers"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"delete"}}})},"/api/customer-overrides/{overrideId}/revoke":{post:y({operationId:"revokeCustomerOverride",requestParams:{path:a.object({overrideId:a.string()})},summary:"Revoke an active customer override",tags:["customers"],responses:{200:{description:"Revoked",content:{"application/json":{schema:Vi}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"update"}}})},"/api/customer-overrides/{overrideId}/duplicate":{post:y({operationId:"duplicateCustomerOverride",requestParams:{path:a.object({overrideId:a.string()})},summary:"Duplicate customer override for another customer",tags:["customers"],requestBody:{required:true,content:{"application/json":{schema:a.object({customer_id:a.string()})}}},responses:{201:{description:"Duplicated",content:{"application/json":{schema:Vi}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"create"}}})}});var {Unrestricted:Gt}=Zt,{Persisted:kS,Transient:jO}=Bt,{Internal:Nl}=Mt,KV=lt(He.Playbook,{sdkInput:true}),UO=lt(He.Playbook,{inConfig:false,sdkInput:true}),GV=a.enum(["default","custom"]).meta({id:"DimensionCategory","x-revturbine-schema-persistence":jO,"x-revturbine-schema-exposure":Nl}),JV=a.enum(["system","sdk_trait","sdk_trait_enum","cdp_property","manual_list"]).meta({id:"DimensionSourceType","x-revturbine-schema-persistence":jO,"x-revturbine-schema-exposure":Nl}),sS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),name:Ft.meta(Gt),handle:ct.optional().meta(Gt),category:GV.default("custom").meta(Gt),visibility_toggle:a.boolean().default(true).meta(Gt),source_type:JV.default("system").meta(Gt),estimated_size:a.number().int().min(0).optional().meta(Gt)}).meta({id:"SegmentDimension","x-revturbine-schema-persistence":kS,"x-revturbine-schema-exposure":Nl,...UO,...fn()}),WV=Qt("SegmentDimensionAnchor"),cS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),dimension_id:a.string().min(1).meta(Gt),name:Ft.meta(Gt),handle:ct.meta(Gt),description:Eo.meta(Gt),definition_rule:a.record(a.string(),a.unknown()).optional().meta(Gt),used_in_count:a.number().int().min(0).default(0).meta({...Gt,readOnly:true})}).meta({id:"SegmentValue","x-revturbine-schema-persistence":kS,"x-revturbine-schema-exposure":Nl,...UO,...fn()}),XV=Qt("SegmentValueAnchor");ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),name:Ft.meta(Gt),handle:ct.meta(Gt),description:Eo.meta(Gt),rules:a.record(a.string(),a.unknown()).default({}).meta(Gt),is_active:a.boolean().default(true).meta(Gt),estimated_size:a.number().int().min(0).nullable().default(null).meta(Gt),metadata:jt.meta(Gt)}).meta({id:"Segment","x-revturbine-schema-persistence":kS,"x-revturbine-schema-exposure":Nl,...KV,...fn()});({"/api/segment-dimension-anchors":{get:y({operationId:"listSegmentDimensionAnchors",requestParams:{query:Q},summary:"List segment dimension anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment dimension anchor list",content:{"application/json":{schema:Y(WV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-dimension-anchors",persistence:{table:"segmentDimensions",mode:"list"}}})},"/api/segment-value-anchors":{get:y({operationId:"listSegmentValueAnchors",requestParams:{query:Q},summary:"List segment value anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment value anchor list",content:{"application/json":{schema:Y(XV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-value-anchors",persistence:{table:"segmentValues",mode:"list"}}})},"/api/segments":{get:y({operationId:"listSegmentDimensions",requestParams:{query:Q},summary:"List segment dimensions",tags:["segments"],responses:{200:{description:"Dimension list",content:{"application/json":{schema:Y(sS)}}}},"x-revturbine-operation":{exposure:"internal",resource:"segments",persistence:{table:"segmentDimensionVersions",mode:"list"}}})},"/api/segments/custom":{post:y({operationId:"createCustomDimension",summary:"Create custom segment dimension",tags:["segments"],requestBody:{required:true,content:{"application/json":{schema:a.object({name:a.string(),description:a.string().optional()})}}},responses:{201:{description:"Created",content:{"application/json":{schema:sS}}}},"x-revturbine-operation":{exposure:"internal",resource:"segments",persistence:{table:"segmentDimensionVersions",mode:"create"}}})},"/api/segments/{dimensionId}":{delete:y({operationId:"deleteCustomDimension",requestParams:{path:a.object({dimensionId:a.string()})},summary:"Delete custom dimension",tags:["segments"],responses:{204:{description:"Deleted"},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"segments",persistence:{table:"segmentDimensionVersions",mode:"delete"}}})},"/api/segments/{dimensionId}/visibility":{patch:y({operationId:"toggleDimensionVisibility",requestParams:{path:a.object({dimensionId:a.string()})},summary:"Toggle dimension visibility",tags:["segments"],requestBody:{required:true,content:{"application/json":{schema:a.object({visible:a.boolean()})}}},responses:{200:{description:"Updated",content:{"application/json":{schema:sS}}}},"x-revturbine-operation":{exposure:"internal",resource:"segments",persistence:{table:"segmentDimensionVersions",mode:"update"}}})},"/api/segments/{dimensionId}/values":{get:y({operationId:"listSegmentValues",requestParams:{path:a.object({dimensionId:a.string()}),query:Q},summary:"List segment values for dimension",tags:["segments"],responses:{200:{description:"Value list",content:{"application/json":{schema:Y(cS)}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-values",persistence:{table:"segmentValueVersions",mode:"list"}}}),post:y({operationId:"createSegmentValue",requestParams:{path:a.object({dimensionId:a.string()})},summary:"Create segment value",tags:["segments"],requestBody:{required:true,content:{"application/json":{schema:a.object({name:a.string(),handle:a.string(),definition_rule:a.record(a.string(),a.unknown()).optional()})}}},responses:{201:{description:"Created",content:{"application/json":{schema:cS}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-values",persistence:{table:"segmentValueVersions",mode:"create"}}})},"/api/segment-values/{valueId}":{patch:y({operationId:"updateSegmentValue",requestParams:{path:a.object({valueId:a.string()})},summary:"Update segment value",tags:["segments"],requestBody:{required:true,content:{"application/json":{schema:a.object({name:a.string().optional(),definition_rule:a.record(a.string(),a.unknown()).optional()})}}},responses:{200:{description:"Updated",content:{"application/json":{schema:cS}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-values",persistence:{table:"segmentValueVersions",mode:"update"}}}),delete:y({operationId:"deleteSegmentValue",requestParams:{path:a.object({valueId:a.string()})},summary:"Delete segment value",tags:["segments"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"segment-values",persistence:{table:"segmentValueVersions",mode:"delete"}}})}});var {Unrestricted:Ce}=Zt,{Persisted:bs,Transient:AO}=Bt,{External:Gi}=Mt,TS=lt(He.Playbook,{sdkInput:true}),YV=lt(He.Playbook,{inConfig:false,sdkInput:false}),QV=lt(He.Playbook,{inConfig:false,sdkInput:true}),eB=lt(He.Playbook,{inConfig:false,sdkInput:true,source:wr.CodeConstant});ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Ce,readOnly:true}),handle:ct.meta({...Ce,readOnly:true}),name:Ft.meta(Ce),channel:a.enum(["in_app","email","push","sms","webhook"]).meta(Ce),subject:a.string().max(500).optional().meta(Ce),body:a.string().meta(Ce),template_variables:a.array(a.string()).default([]).meta(Ce),metadata:jt.meta(Ce)}).meta({id:"Message","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...YV,...sr()});var lS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Ce,readOnly:true}),name:Ft.meta(Ce),handle:ct.meta(Ce),action_type:yO.meta(Ce),target_url:a.string().optional().meta(Ce),target_plan_id:a.string().optional().meta(Ce),config_fields:a.record(a.string(),a.unknown()).default({}).meta(Ce),metadata:jt.meta(Ce)}).meta({id:"CtaPath","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...TS,...fn()}),tB=Qt("CtaPathAnchor"),nB=a.enum(["header","body","secondary_body","message","cta_label","secondary_label","image","toggle","duration","send_delay","entitlement","plan","dropdown","json"]).meta({id:"TemplateFieldType","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...eB}),rB=a.object({name:a.string().min(1),field_type:nB,required:a.boolean().default(false),default_value:a.unknown().optional(),order:a.number().int().min(0).optional(),help_text:a.string().max(500).optional()}).meta({id:"FieldDefinition","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...QV}),uS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Ce,readOnly:true}),name:Ft.meta(Ce),handle:ct.meta(Ce),surface_type:JL.meta(Ce),field_definitions:a.array(rB).default([]).meta(Ce),description:Eo.meta(Ce)}).meta({id:"SurfaceTemplate","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...TS,...fn()}),iB=Qt("SurfaceTemplateAnchor"),dS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Ce,readOnly:true}),name:Ft.meta(Ce),handle:ct.meta(Ce),content_fields:a.record(a.string(),a.unknown()).default({}).meta(Ce),variation_dimension_id:a.string().optional().meta(Ce),variation_values:a.array(a.object({segment_value_id:a.string(),content_fields_override:a.record(a.string(),a.unknown())})).optional().meta(Ce),notes:a.string().max(1e3).optional().meta(Ce),used_in_count:a.number().int().min(0).default(0).meta({...Ce,readOnly:true})}).meta({id:"MessageBlockRecord","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...TS,...fn()}),oB=Qt("MessageBlockRecordAnchor"),aB=a.object({segment_id:a.string().min(1).meta(Ce),message_block_id:a.string().min(1).meta(Ce),ui_path_id:a.string().optional().meta(Ce),promotion_id:a.string().optional().meta(Ce)}).meta({id:"ContentPayloadSegmentEntry","x-revturbine-schema-persistence":AO,"x-revturbine-schema-exposure":Gi});a.object({payload_id:a.string().min(1).meta(Ce),tenant_id:a.string().min(1).meta(Ce),name:Ft.meta(Ce),surface_template_id:a.string().min(1).meta(Ce),default_message_block_id:a.string().min(1).meta(Ce),segment_content_map:a.array(aB).optional().meta(Ce),ui_path_id:a.string().optional().meta(Ce),promotion_id:a.string().optional().meta(Ce),status:a.enum(["draft","active","inactive"]).meta(Ce),created_at:a.string().datetime().optional().meta({...Ce,readOnly:true}),updated_at:a.string().datetime().optional().meta({...Ce,readOnly:true})}).meta({id:"ContentPlacementPayload","x-revturbine-schema-persistence":AO,"x-revturbine-schema-exposure":Gi});({"/api/surface-template-anchors":{get:y({operationId:"listSurfaceTemplateAnchors",requestParams:{query:Q},summary:"List surface template anchors (identity registry)",tags:["content"],responses:{200:{description:"Surface template anchor list",content:{"application/json":{schema:Y(iB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"surface-template-anchors",persistence:{table:"surfaceTemplates",mode:"list"}}})},"/api/surface-templates":{get:y({operationId:"listSurfaceTemplates",requestParams:{query:Q},summary:"List surface templates",tags:["content"],responses:{200:{description:"Template list",content:{"application/json":{schema:Y(uS)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-templates",persistence:{table:"surfaceTemplateVersions",mode:"list"}}})},"/api/message-block-record-anchors":{get:y({operationId:"listMessageBlockRecordAnchors",requestParams:{query:Q},summary:"List message block anchors (identity registry)",tags:["content"],responses:{200:{description:"Message block anchor list",content:{"application/json":{schema:Y(oB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"message-block-record-anchors",persistence:{table:"messageBlocks",mode:"list"}}})},"/api/messages":{get:y({operationId:"listMessageBlocks",requestParams:{query:Q},summary:"List message blocks",tags:["content"],responses:{200:{description:"Message block list",content:{"application/json":{schema:Y(dS)}}}},"x-revturbine-operation":{exposure:"external",resource:"message-blocks",persistence:{table:"messageBlockVersions",mode:"list"}}})},"/api/cta-path-anchors":{get:y({operationId:"listCtaPathAnchors",requestParams:{query:Q},summary:"List CTA path anchors (identity registry)",tags:["content"],responses:{200:{description:"CTA path anchor list",content:{"application/json":{schema:Y(tB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"cta-path-anchors",persistence:{table:"ctaPaths",mode:"list"}}})},"/api/cta-paths":{get:y({operationId:"listCtaPaths",requestParams:{query:Q},summary:"List CTA paths",tags:["content"],responses:{200:{description:"CTA path list",content:{"application/json":{schema:Y(lS)}}}},"x-revturbine-operation":{exposure:"external",resource:"cta-paths",persistence:{table:"ctaPathVersions",mode:"list"}}})}});var {Unrestricted:ms,Pii:sB}=Zt,{Persisted:DO}=Bt,{Internal:cB,External:lB}=Mt,uB=lt(He.Branding,{sdkInput:false});a.object({id:a.string().min(1).meta({...ms,readOnly:true}),name:a.string().min(1).max(120).meta(ms),mode:a.enum(["light","dark","system"]).default("system").meta(ms),tokens:a.record(a.string(),a.string()).default({}).meta(ms)}).meta({id:"Theme","x-revturbine-schema-persistence":DO,"x-revturbine-schema-exposure":lB,...uB});var mO=ne.merge(pe).extend({user_id:a.string().min(1).meta(sB),scope:a.string().min(1).meta(ms),preferences:a.record(a.string(),a.unknown()).default({}).meta(ms)}).meta({id:"UiPreference","x-revturbine-schema-persistence":DO,"x-revturbine-schema-exposure":cB});({"/api/ui-preferences":{get:y({operationId:"listUiPreferences",requestParams:{query:Q},summary:"List UI preferences",tags:["ui"],responses:{200:{description:"UI preferences list response",content:{"application/json":{schema:Y(mO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"ui-preferences",persistence:{table:"uiPreferences",mode:"list"}}}),put:y({operationId:"upsertUiPreferences",summary:"Upsert UI preferences",tags:["ui"],requestBody:{required:true,content:{"application/json":{schema:a.array(pn(mO))}}},responses:{200:{description:"UI preferences upsert response",content:{"application/json":{schema:a.object({updated:a.number().int().min(0)})}}}},"x-revturbine-operation":{exposure:"internal",resource:"ui-preferences",persistence:{table:"uiPreferences",mode:"upsert",writeSchema:"UiPreferenceSchema#writable"}}})}});var {Unrestricted:Oe,Financial:Kr}=Zt,{Persisted:FO,Transient:Ll}=Bt,{External:Vl,Internal:NO}=Mt,dB=a.object({month:a.string().meta(Oe),cohort_size:a.number().int().min(0).meta(Oe),retained:a.number().int().min(0).meta(Oe),retention_rate:a.number().min(0).max(1).meta(Oe),revenue_cents:a.number().int().min(0).meta(Kr)}).meta({id:"CohortMonth","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Vl}),mB=a.object({step:a.string().meta(Oe),label:a.string().meta(Oe),count:a.number().int().min(0).meta(Oe),conversion_rate:a.number().min(0).max(1).meta(Oe),drop_off_rate:a.number().min(0).max(1).meta(Oe)}).meta({id:"FunnelStep","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Vl}),pB=a.object({placement_id:a.string().meta(Oe),placement_name:a.string().meta(Oe),impressions:a.number().int().min(0).meta(Oe),clicks:a.number().int().min(0).meta(Oe),conversions:a.number().int().min(0).meta(Oe),ctr:a.number().min(0).meta(Oe),conversion_rate:a.number().min(0).meta(Oe),revenue_cents:a.number().int().min(0).meta(Kr)}).meta({id:"PlacementPerformanceRow","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Vl}),fB=a.object({date:a.string().meta(Oe),mrr_cents:a.number().int().min(0).meta(Kr),arr_cents:a.number().int().min(0).meta(Kr),new_mrr_cents:a.number().int().min(0).meta(Kr),churned_mrr_cents:a.number().int().min(0).meta(Kr),expansion_mrr_cents:a.number().int().min(0).meta(Kr),net_new_mrr_cents:a.number().int().meta(Kr)}).meta({id:"RevenueMetric","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Vl}),gB=a.object({metric_key:a.string().min(1).meta(Oe),label:a.string().meta(Oe),current_value:a.number().meta(Kr),previous_value:a.number().nullable().default(null).meta(Kr),change_percent:a.number().nullable().default(null).meta(Oe),period:a.string().meta(Oe),unit:a.enum(["count","cents","percent","ratio","seconds"]).default("count").meta(Oe)}).meta({id:"KpiAggregate","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Vl}),pO=ne.merge(pe).merge(_e).extend({report_type:a.enum(["plan_drift","entitlement_drift","usage_anomaly","revenue_anomaly"]).meta(Oe),severity:vS.meta(Oe),resource_type:a.string().min(1).meta(Oe),resource_id:a.string().min(1).meta(Oe),summary:a.string().max(1e3).meta(Oe),expected_value:a.unknown().optional().meta(Oe),actual_value:a.unknown().optional().meta(Oe),affected_customer_count:a.number().int().min(0).default(0).meta(Oe),is_resolved:a.boolean().default(false).meta(Oe),resolved_at:Et.meta(Oe),metadata:jt.meta(Oe)}).meta({id:"DriftReport","x-revturbine-schema-persistence":FO,"x-revturbine-schema-exposure":NO}),fO=ne.merge(pe).merge(_e).extend({alert_type:a.enum(["usage_threshold","revenue_drop","conversion_drop","experiment_significance","drift_detected","custom"]).meta(Oe),severity:vS.meta(Oe),title:a.string().min(1).max(300).meta(Oe),description:a.string().max(2e3).meta(Oe),resource_type:a.string().optional().meta(Oe),resource_id:a.string().optional().meta(Oe),is_acknowledged:a.boolean().default(false).meta(Oe),acknowledged_at:Et.meta(Oe),acknowledged_by:a.string().nullable().default(null).meta(Oe),metadata:jt.meta(Oe)}).meta({id:"Alert","x-revturbine-schema-persistence":FO,"x-revturbine-schema-exposure":NO});({"/api/analytics/kpis":{get:y({operationId:"listKpiAggregates",requestParams:{query:Q},summary:"List KPI aggregate metrics",tags:["analytics"],responses:{200:{description:"KPI list",content:{"application/json":{schema:Y(gB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"kpiAggregates",mode:"list"}}})},"/api/analytics/placement-performance":{get:y({operationId:"listPlacementPerformance",requestParams:{query:Q},summary:"List placement performance rows",tags:["analytics"],responses:{200:{description:"Performance rows",content:{"application/json":{schema:Y(pB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"placementPerformance",mode:"list"}}})},"/api/analytics/revenue":{get:y({operationId:"listRevenueMetrics",requestParams:{query:Q},summary:"List revenue metrics over time",tags:["analytics"],responses:{200:{description:"Revenue metrics",content:{"application/json":{schema:Y(fB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"revenueMetrics",mode:"list"}}})},"/api/analytics/cohorts":{get:y({operationId:"listCohortMetrics",requestParams:{query:Q},summary:"List cohort retention metrics",tags:["analytics"],responses:{200:{description:"Cohort metrics",content:{"application/json":{schema:Y(dB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"cohortMetrics",mode:"list"}}})},"/api/analytics/funnels":{get:y({operationId:"listFunnelSteps",requestParams:{query:Q},summary:"List funnel step metrics",tags:["analytics"],responses:{200:{description:"Funnel steps",content:{"application/json":{schema:Y(mB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"funnelSteps",mode:"list"}}})},"/api/analytics/drift-reports":{get:y({operationId:"listDriftReports",requestParams:{query:Q},summary:"List drift reports",tags:["analytics"],responses:{200:{description:"Drift reports",content:{"application/json":{schema:Y(pO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"driftReports",mode:"list"}}})},"/api/analytics/drift-reports/{reportId}/resolve":{post:y({operationId:"resolveDriftReport",requestParams:{path:a.object({reportId:a.string()})},summary:"Mark a drift report as resolved",tags:["analytics"],responses:{200:{description:"Resolved",content:{"application/json":{schema:pO}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"driftReports",mode:"update"}}})},"/api/analytics/alerts":{get:y({operationId:"listAlerts",requestParams:{query:Q},summary:"List alerts",tags:["analytics"],responses:{200:{description:"Alert list",content:{"application/json":{schema:Y(fO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"alerts",mode:"list"}}})},"/api/analytics/alerts/{alertId}/acknowledge":{post:y({operationId:"acknowledgeAlert",requestParams:{path:a.object({alertId:a.string()})},summary:"Acknowledge an alert",tags:["analytics"],responses:{200:{description:"Acknowledged",content:{"application/json":{schema:fO}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"alerts",mode:"update"}}})}});var {Unrestricted:M,Pii:gs}=Zt,{Persisted:LO,Transient:Ut}=Bt,{Internal:Ji,External:an}=Mt,VO=a.enum(["clickstream","telemetry","sdk","workflow","system"]).meta({id:"EventSource","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an}),hB=ne.extend({event_type:a.string().min(1).meta(M),source:VO.default("sdk").meta(M),tenant_id:a.string().min(1).optional().meta(M),user_id:a.string().min(1).optional().meta(gs),session_id:a.string().min(1).optional().meta(gs),occurred_at:a.string().datetime().meta(M),request_id:a.string().min(1).meta(M),attributes:a.record(a.string(),a.unknown()).default({}).meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M)}).meta({id:"EventEnvelope","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji}),bB=hB.extend({ingested_at:a.string().datetime().meta(M)}).meta({id:"IngestedEvent","x-revturbine-schema-persistence":LO,"x-revturbine-schema-exposure":Ji});a.array(a.object({id:a.string().min(1).optional().meta(M),event_type:a.string().min(1).meta(M),occurred_at:a.string().datetime().optional().meta(M),tenant_id:a.string().min(1).optional().meta(M),user_id:a.string().min(1).optional().meta(gs),session_id:a.string().min(1).optional().meta(gs),attributes:a.record(a.string(),a.unknown()).optional().meta(M),payload:a.record(a.string(),a.unknown()).optional().meta(M),message:a.string().optional().meta(M),level:a.string().optional().meta(M),path:a.string().optional().meta(M)})).meta({id:"EventIngestBatch","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji});var _B=a.enum(["impression","dismiss","remind_me_later","cta_clicked","cta_completed","suppress"]).meta({id:"TreatmentInteractionType","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({user_id:a.string().min(1).meta(gs),placement_id:a.string().min(1).meta(M),treatment_id:a.string().min(1).optional().meta(M),surface_slot_id:a.string().min(1).optional().meta(M),surface_template_id:a.string().min(1).optional().meta(M),payload_id:a.string().min(1).optional().meta(M),interaction_type:_B.meta(M),interaction_at:a.string().datetime().optional().meta(M),metadata:a.record(a.string(),a.unknown()).optional().meta(M)}).meta({id:"TreatmentInteractionInput","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.enum(["trial_midpoint","trial_expiring","trial_expired","usage_limit_approaching","usage_limit_reached","credit_balance_low","seat_limit_reached","feature_gated","cancel_intent","payment_failed","auto_renewal_reminder","onboarding_complete","invite_teammate_prompt","referral_offer","plan_upgrade_nudge"]).meta({id:"TriggerEventType","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({days_remaining:a.number().int().min(0).optional().meta(M)}).meta({id:"TrialTriggerPayload","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({entitlement_handle:a.string().optional().meta(M),current_usage:a.number().min(0).optional().meta(M),usage_limit:a.number().min(0).optional().meta(M),usage_percent:a.number().min(0).max(100).optional().meta(M),threshold:a.number().min(0).optional().meta(M),balance:a.number().min(0).optional().meta(M),allocation:a.number().min(0).optional().meta(M),seats_used:a.number().int().min(0).optional().meta(M),seats_allowed:a.number().int().min(0).optional().meta(M)}).meta({id:"UsageTriggerPayload","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({feature:a.string().min(1).meta(M)}).meta({id:"FeatureGateTriggerPayload","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({retry_count:a.number().int().min(0).optional().meta(M),renewal_date:a.string().optional().meta(M)}).meta({id:"PaymentTriggerPayload","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({event_type:a.string().min(1).meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M)}).meta({id:"SemanticEvent","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});var yB=a.enum(["system","workflow"]).meta({id:"ControlPlaneEventSource","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an}),xB=a.enum(["web_signed_up","web_signed_in","cli_signed_up","cli_signed_in","cli_command_executed","changeset_submitted","changeset_approved","changeset_rejected","changeset_deployed","changeset_launched","changeset_parked","changeset_resumed","changeset_discarded","changeset_archived","config_imported","config_exported","entity_created","entity_updated","entity_deleted"]).meta({id:"ControlPlaneEventType","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({event_type:xB.meta(M),source:yB.meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M)}).meta({id:"ControlPlaneSemanticEvent","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({q:a.string().optional().meta(M),source:VO.optional().meta(M),event_type:a.string().optional().meta(M),from:a.string().datetime().optional().meta(M),to:a.string().datetime().optional().meta(M),page:a.coerce.number().int().min(1).default(1).meta(M),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(M)}).meta({id:"EventSearchParams","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji});var SB=a.enum(["stripe","apple","google"]).meta({id:"WebhookEventSource","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji}),IB=a.enum(["processed","failed","skipped"]).meta({id:"WebhookEventStatus","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji}),mS=ne.merge(pe).merge(_e).extend({event_id:a.string().min(1).meta(M),event_type:a.string().min(1).meta(M),source:SB.meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M),status:IB.default("processed").meta(M),processed_at:a.string().datetime().optional().meta(M),error_message:a.string().optional().meta(M)}).meta({id:"WebhookEventLog","x-revturbine-schema-persistence":LO,"x-revturbine-schema-exposure":Ji});a.object({accepted:a.number().int().min(0).meta(M)}).meta({id:"null","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji});var PB=500,kB=a.enum(["explicit","automatic","derived","raw"]).meta({id:"EventOrigin","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an}),TB=a.object({environment_id:a.string().min(1).meta(M),user_id:a.string().min(1).meta(gs),account_id:a.string().min(1).meta(M),event_name:a.string().min(1).max(120).meta(M),event_ts:a.string().datetime().meta(M),properties:a.string().optional().meta(M),surface_slot_id:a.string().nullable().optional().meta(M),placement_id:a.string().nullable().optional().meta(M),payload_id:a.string().nullable().optional().meta(M),request_id:a.string().optional().meta(M),experiment_id:a.string().nullable().optional().meta(M),variant_key:a.string().nullable().optional().meta(M),tenant_id:a.string().optional().meta(M),event_id:a.string().nullable().optional().meta(M),origin:kB.nullable().optional().meta(M),playbook_version:a.string().nullable().optional().meta(M),decision_id:a.string().nullable().optional().meta(M)}).meta({id:"TrackEvent","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({events:a.array(TB).min(1).max(PB).meta(M)}).meta({id:"TrackIngestBatch","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});var wB=10,RB=a.enum(["sdk_init","sdk_error","sdk_validation_warning"]).meta({id:"SdkMetaEventType","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an}),CB=a.object({plans:a.number().int().min(0).meta(M),entitlements:a.number().int().min(0).meta(M),entitlement_rules:a.number().int().min(0).meta(M),segments:a.number().int().min(0).meta(M),placements:a.number().int().min(0).meta(M),placement_payloads:a.number().int().min(0).meta(M),content_ui_paths:a.number().int().min(0).meta(M),surface_templates:a.number().int().min(0).meta(M)}).meta({id:"SdkConfigShape","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an}),EB=a.object({event_type:RB.meta(M),occurred_at:a.string().datetime().meta(M),request_id:a.string().min(1).optional().meta(M),config_hash_id:a.string().min(1).max(64).optional().meta(M),sdk_version:a.string().min(1).max(64).optional().meta(M),runtime_mode:a.string().min(1).max(64).optional().meta(M),schema_version:a.string().min(1).max(64).optional().meta(M),bundle_version:a.string().min(1).max(64).optional().meta(M),config_shape:CB.optional().meta(M),message:a.string().max(500).optional().meta(M)}).meta({id:"SdkMetaEvent","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({events:a.array(EB).min(1).max(wB).meta(M)}).meta({id:"SdkMetaIngestBatch","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});({"/api/events/search":{get:y({operationId:"searchEvents",summary:"Search ingested events",tags:["events"],responses:{200:{description:"Paginated event results",content:{"application/json":{schema:HL(bB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"events"}})},"/api/webhook-events":{get:y({operationId:"listWebhookEvents",requestParams:{query:Q},summary:"List webhook event log entries",tags:["events"],responses:{200:{description:"Webhook event list",content:{"application/json":{schema:Y(mS)}}}},"x-revturbine-operation":{exposure:"internal",resource:"webhook-events",persistence:{table:"webhookEventLog",mode:"list"}}})}});var {Unrestricted:xe}=Zt,{Persisted:Bl,Transient:Ml}=Bt,{Internal:Gr}=Mt,BO=lt(He.Playbook,{sdkInput:true}),MO=lt(He.Playbook,{inConfig:false,sdkInput:true}),zB=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":Ml,"x-revturbine-schema-exposure":Gr}),$S=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":Ml,"x-revturbine-schema-exposure":Gr}),ZO=a.object({name:Ft.meta(xe),handle:ct.meta(xe),plan_id:a.string().nullable().optional().meta(xe),segment_id:a.string().nullable().optional().meta(xe),trial_limit_type:$S.default("time").meta(xe),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(xe),grace_period_days:a.number().int().min(0).default(0).meta(xe),usage_entitlement_handle:a.string().min(1).optional().meta(xe),usage_limit_value:a.number().int().min(1).optional().meta(xe),require_payment_method:a.boolean().default(false).meta(xe),auto_convert:a.boolean().default(true).meta(xe),convert_to_plan_id:a.string().optional().meta(xe),fallback_plan_id:a.string().optional().meta(xe),limit_per_customer:a.number().int().min(1).default(1).meta(xe),is_active:a.boolean().default(true).meta(xe),metadata:jt.meta(xe)}),Qa=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...xe,readOnly:true})}).merge(ZO).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Gr,...BO,...fn()}),jB=Qt("FreeTrialRuleAnchor"),UB=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":Ml,"x-revturbine-schema-exposure":Gr}),qO=a.object({name:Ft.meta(xe),handle:ct.meta(xe),premium_plan_id:a.string().min(1).meta(xe),fallback_plan_id:a.string().min(1).meta(xe),segment_id:a.string().nullable().optional().meta(xe),trial_limit_type:$S.default("time").meta(xe),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(xe),usage_entitlement_handle:a.string().min(1).optional().meta(xe),usage_limit_value:a.number().int().min(1).optional().meta(xe),start_policy:UB.default("signup").meta(xe),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(xe),entitlements_during_trial:a.array(a.string()).default([]).meta(xe),is_active:a.boolean().default(true).meta(xe),metadata:jt.meta(xe)}),es=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...xe,readOnly:true})}).merge(qO).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Gr,...BO,...fn()}),AB=Qt("ReverseTrialRuleAnchor"),HO=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":Ml,"x-revturbine-schema-exposure":Gr}),KO=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":Ml,"x-revturbine-schema-exposure":Gr}),ts=ne.merge(pe).merge(_e).extend({trial_limit_policy:HO.default("1_per_lifetime").meta(xe),eligibility_scope:KO.default("per_customer").meta(xe)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Gr,...MO}),ns=ne.merge(pe).merge(_e).extend({trial_limit_policy:HO.default("1_per_lifetime").meta(xe),eligibility_scope:KO.default("per_customer").meta(xe)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Gr,...MO}),gp=ne.merge(pe).merge(_e).extend({customer_id:a.string().min(1).meta(xe),rule_id:a.string().min(1).meta(xe),rule_type:a.enum(["free_trial","reverse_trial"]).meta(xe),plan_id:a.string().min(1).meta(xe),status:zB.default("active").meta(xe),started_at:a.string().datetime().meta({...xe,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(xe),trial_limit_type:$S.default("time").meta(xe),usage_entitlement_handle:a.string().min(1).optional().meta(xe),usage_limit_value:a.number().int().min(1).optional().meta(xe),converted_at:Et.meta(xe),cancelled_at:Et.meta(xe),metadata:jt.meta(xe)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Gr});({"/api/free-trial-rule-anchors":{get:y({operationId:"listFreeTrialRuleAnchors",requestParams:{query:Q},summary:"List free trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Free trial rule anchor list",content:{"application/json":{schema:Y(jB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-rule-anchors",persistence:{table:"freeTrialRules",mode:"list"}}})},"/api/trials/free-rules":{get:y({operationId:"listFreeTrialRules",requestParams:{query:Q},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:Y(Qa)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"list"}}})},"/api/trials/free-rules/{ruleId}":{get:y({operationId:"getFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Get free trial rule",tags:["trials"],responses:{200:{description:"Free trial rule",content:{"application/json":{schema:Qa}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"get"}}}),patch:y({operationId:"updateFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update free trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Qa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Qa}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"update"}}}),delete:y({operationId:"deleteFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete free trial rule",tags:["trials"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"delete"}}})},"/api/reverse-trial-rule-anchors":{get:y({operationId:"listReverseTrialRuleAnchors",requestParams:{query:Q},summary:"List reverse trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Reverse trial rule anchor list",content:{"application/json":{schema:Y(AB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rule-anchors",persistence:{table:"reverseTrialRules",mode:"list"}}})},"/api/trials/reverse-rules":{get:y({operationId:"listReverseTrialRules",requestParams:{query:Q},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:Y(es)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"list"}}})},"/api/trials/reverse-rules/{ruleId}":{get:y({operationId:"getReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Get reverse trial rule",tags:["trials"],responses:{200:{description:"Reverse trial rule",content:{"application/json":{schema:es}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"get"}}}),patch:y({operationId:"updateReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update reverse trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:es.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:es}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"update"}}}),delete:y({operationId:"deleteReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete reverse trial rule",tags:["trials"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"delete"}}})},"/api/trials/free-settings":{get:y({operationId:"listFreeTrialSettings",requestParams:{query:Q},summary:"List free trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Free trial settings list",content:{"application/json":{schema:Y(ts)}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"list"}}})},"/api/trials/free-settings/{settingsId}":{get:y({operationId:"getFreeTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Get free trial settings",tags:["trials"],responses:{200:{description:"Free trial settings",content:{"application/json":{schema:ts}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"get"}}}),patch:y({operationId:"updateFreeTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update free trial settings",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:ts.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ts}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"update"}}})},"/api/trials/reverse-settings":{get:y({operationId:"listReverseTrialSettings",requestParams:{query:Q},summary:"List reverse trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Reverse trial settings list",content:{"application/json":{schema:Y(ns)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"list"}}})},"/api/trials/reverse-settings/{settingsId}":{get:y({operationId:"getReverseTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Get reverse trial settings",tags:["trials"],responses:{200:{description:"Reverse trial settings",content:{"application/json":{schema:ns}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"get"}}}),patch:y({operationId:"updateReverseTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update reverse trial settings",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:ns.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ns}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:y({operationId:"listTrialInstances",requestParams:{query:Q},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:Y(gp)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"list"}}})},"/api/trials/instances/{instanceId}":{get:y({operationId:"getTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Get trial instance",tags:["trials"],responses:{200:{description:"Trial instance",content:{"application/json":{schema:gp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"get"}}})},"/api/trials/instances/{instanceId}/cancel":{post:y({operationId:"cancelTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Cancel an active trial",tags:["trials"],responses:{200:{description:"Cancelled",content:{"application/json":{schema:gp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})},"/api/trials/instances/{instanceId}/convert":{post:y({operationId:"convertTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Convert trial to paid subscription",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:a.object({plan_id:a.string().optional()})}}},responses:{200:{description:"Converted",content:{"application/json":{schema:gp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:xt}=Zt,{Persisted:wS,Transient:GO}=Bt,{Internal:Zl}=Mt,JO=lt(He.Playbook,{inConfig:false,sdkInput:true}),DB=a.enum(["draft","ramping","winning","neutral","needs_attention","paused","complete"]).meta({id:"ExperimentStatus","x-revturbine-schema-persistence":GO,"x-revturbine-schema-exposure":Zl}),FB=a.enum(["placement_ab","entitlement_ab","plan_ab","pricing_ab","custom"]).meta({id:"ExperimentType","x-revturbine-schema-persistence":GO,"x-revturbine-schema-exposure":Zl}),NB=a.object({variant_id:a.string().min(1),name:Ft,weight:a.number().min(0).max(1).default(.5),is_control:a.boolean().default(false),config:a.record(a.string(),a.unknown()).default({})}).meta({id:"ExperimentVariant","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":Zl,...JO}),si=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...xt,readOnly:true}),name:Ft.meta(xt),handle:ct.meta(xt),description:a.string().max(1e3).optional().meta(xt),experiment_type:FB.meta(xt),status:DB.default("draft").meta(xt),target_resource_id:a.string().optional().meta(xt),target_segment_ids:a.array(a.string()).default([]).meta(xt),variants:a.array(NB).min(2).meta(xt),primary_metric:a.string().min(1).meta(xt),metric_threshold:a.number().default(.05).meta(xt),secondary_metrics:a.array(a.string()).default([]).meta(xt),traffic_allocation:a.number().min(0).max(1).default(1).meta(xt),started_at:Et.meta(xt),ended_at:Et.meta(xt),confidence_threshold:a.number().min(0).max(1).default(.95).meta(xt),winning_variant_id:a.string().nullable().default(null).meta(xt),metadata:jt.meta(xt)}).meta({id:"Experiment","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":Zl,...JO,...fn()}),LB=Qt("ExperimentAnchor"),VB=vS,gO=ne.merge(pe).merge(_e).extend({experiment_id:a.string().optional().meta(xt),resource_type:a.string().min(1).meta(xt),resource_id:a.string().min(1).meta(xt),severity:VB.default("info").meta(xt),title:a.string().min(1).max(300).meta(xt),description:a.string().max(2e3).meta(xt),suggested_action:a.string().max(1e3).optional().meta(xt),estimated_impact:a.number().optional().meta(xt),is_dismissed:a.boolean().default(false).meta(xt),metadata:jt.meta(xt)}).meta({id:"OptimizationSuggestion","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":Zl});({"/api/experiment-anchors":{get:y({operationId:"listExperimentAnchors",requestParams:{query:Q},summary:"List experiment anchors (identity registry)",tags:["experiments"],responses:{200:{description:"Experiment anchor list",content:{"application/json":{schema:Y(LB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiment-anchors",persistence:{table:"experiments",mode:"list"}}})},"/api/experiments":{get:y({operationId:"listExperiments",requestParams:{query:Q},summary:"List experiments",tags:["experiments"],responses:{200:{description:"Experiment list",content:{"application/json":{schema:Y(si)}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"list"}}})},"/api/experiments/{experimentId}":{get:y({operationId:"getExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Get experiment",tags:["experiments"],responses:{200:{description:"Experiment",content:{"application/json":{schema:si}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"get"}}}),patch:y({operationId:"updateExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Update experiment",tags:["experiments"],requestBody:{required:true,content:{"application/json":{schema:si.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:si}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}}),delete:y({operationId:"deleteExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Delete experiment",tags:["experiments"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"delete"}}})},"/api/experiments/{experimentId}/start":{post:y({operationId:"startExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Start experiment (begin traffic allocation)",tags:["experiments"],responses:{200:{description:"Started",content:{"application/json":{schema:si}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}})},"/api/experiments/{experimentId}/pause":{post:y({operationId:"pauseExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Pause running experiment",tags:["experiments"],responses:{200:{description:"Paused",content:{"application/json":{schema:si}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}})},"/api/experiments/{experimentId}/complete":{post:y({operationId:"completeExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Complete experiment and declare winner",tags:["experiments"],requestBody:{required:true,content:{"application/json":{schema:a.object({winning_variant_id:a.string()})}}},responses:{200:{description:"Completed",content:{"application/json":{schema:si}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}})},"/api/optimization-suggestions":{get:y({operationId:"listOptimizationSuggestions",requestParams:{query:Q},summary:"List optimization suggestions",tags:["experiments"],responses:{200:{description:"Suggestion list",content:{"application/json":{schema:Y(gO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"optimization-suggestions",persistence:{table:"optimizationSuggestions",mode:"list"}}})},"/api/optimization-suggestions/{suggestionId}/dismiss":{post:y({operationId:"dismissOptimizationSuggestion",requestParams:{path:a.object({suggestionId:a.string()})},summary:"Dismiss an optimization suggestion",tags:["experiments"],responses:{200:{description:"Dismissed",content:{"application/json":{schema:gO}}}},"x-revturbine-operation":{exposure:"internal",resource:"optimization-suggestions",persistence:{table:"optimizationSuggestions",mode:"update"}}})}});var {Unrestricted:cn,Financial:hO}=Zt,{Persisted:BB,Transient:WO}=Bt,{Internal:RS}=Mt,MB=lt(He.Playbook,{sdkInput:true}),ZB=a.enum(["draft","scheduled","live","expired","archived"]).meta({id:"PromotionStatus","x-revturbine-schema-persistence":WO,"x-revturbine-schema-exposure":RS}),qB=a.enum(["percentage","fixed_amount","free_months"]).meta({id:"DiscountType","x-revturbine-schema-persistence":WO,"x-revturbine-schema-exposure":RS}),Bi=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...cn,readOnly:true}),name:Ft.meta(cn),handle:ct.meta(cn),description:a.string().max(1e3).optional().meta(cn),rt_status:ZB.default("draft").meta(cn),discount_type:qB.meta(cn),discount_value:a.number().min(0).meta(hO),currency:a.string().length(3).default("USD").meta(hO),applicable_plan_ids:a.array(a.string()).default([]).meta(cn),applicable_addon_ids:a.array(a.string()).default([]).meta(cn),target_segment_ids:a.array(a.string()).default([]).meta(cn),max_redemptions:a.number().int().min(0).nullable().default(null).meta(cn),current_redemptions:a.number().int().min(0).default(0).meta({...cn,readOnly:true}),coupon_code:a.string().max(100).optional().meta(cn),starts_at:Et.meta(cn),ends_at:Et.meta(cn),stripe_coupon_id:a.string().nullable().default(null).meta(cn),stripe_promotion_code_id:a.string().nullable().default(null).meta(cn),auto_sync_stripe:a.boolean().default(false).meta(cn),metadata:jt.meta(cn)}).meta({id:"Promotion","x-revturbine-schema-persistence":BB,"x-revturbine-schema-exposure":RS,...MB,...fn()}),HB=Qt("PromotionAnchor");({"/api/promotion-anchors":{get:y({operationId:"listPromotionAnchors",requestParams:{query:Q},summary:"List promotion anchors (identity registry)",tags:["promotions"],responses:{200:{description:"Promotion anchor list",content:{"application/json":{schema:Y(HB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotion-anchors",persistence:{table:"promotions",mode:"list"}}})},"/api/promotions":{get:y({operationId:"listPromotions",requestParams:{query:Q},summary:"List promotions",tags:["promotions"],responses:{200:{description:"Promotion list",content:{"application/json":{schema:Y(Bi)}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"list"}}})},"/api/promotions/{promotionId}":{get:y({operationId:"getPromotion",requestParams:{path:a.object({promotionId:a.string()})},summary:"Get promotion",tags:["promotions"],responses:{200:{description:"Promotion",content:{"application/json":{schema:Bi}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"get"}}}),patch:y({operationId:"updatePromotion",requestParams:{path:a.object({promotionId:a.string()})},summary:"Update promotion",tags:["promotions"],requestBody:{required:true,content:{"application/json":{schema:Bi.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Bi}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"update"}}}),delete:y({operationId:"deletePromotion",requestParams:{path:a.object({promotionId:a.string()})},summary:"Delete (archive) promotion",tags:["promotions"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"delete"}}})},"/api/promotions/{promotionId}/sync-stripe":{post:y({operationId:"syncPromotionToStripe",requestParams:{path:a.object({promotionId:a.string()})},summary:"Sync promotion to Stripe as coupon/promotion code",tags:["promotions"],responses:{200:{description:"Synced",content:{"application/json":{schema:Bi}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"update"}}})},"/api/promotions/{promotionId}/duplicate":{post:y({operationId:"duplicatePromotion",requestParams:{path:a.object({promotionId:a.string()})},summary:"Duplicate promotion",tags:["promotions"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:Bi}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"create"}}})}});var {Unrestricted:Ct,Pii:CS}=Zt,{Persisted:ES}=Bt,{Internal:OS}=Mt,KB=ne.merge(pe).merge(_e).extend({customer_id:a.string().min(1).meta(CS),placement_id:a.string().min(1).meta(Ct),payload_id:a.string().nullable().default(null).meta(Ct),variant_id:a.string().nullable().default(null).meta(Ct),surface_type:a.string().meta(Ct),presented_at:a.string().datetime().meta({...Ct,readOnly:true}),dismissed_at:Et.meta(Ct),cta_clicked_at:Et.meta(Ct),cta_action_type:a.string().nullable().default(null).meta(Ct),converted:a.boolean().default(false).meta(Ct),session_id:a.string().optional().meta(Ct),metadata:jt.meta(Ct)}).meta({id:"PresentationRecord","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":OS}),GB=ne.merge(pe).merge(_e).extend({customer_id:a.string().min(1).meta(CS),placement_id:a.string().min(1).meta(Ct),decision:a.enum(["show","suppress","defer"]).meta(Ct),reason:a.string().max(500).meta(Ct),matched_rules:a.array(a.object({rule_id:a.string(),rule_type:a.string(),matched:a.boolean()})).default([]).meta(Ct),experiment_id:a.string().nullable().default(null).meta(Ct),variant_id:a.string().nullable().default(null).meta(Ct),latency_ms:a.number().min(0).optional().meta(Ct)}).meta({id:"DecisionLog","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":OS}),JB=ne.merge(pe).merge(_e).extend({customer_id:a.string().min(1).meta(CS),entitlement_handle:a.string().min(1).meta(Ct),entitlement_type:a.string().meta(Ct),result:a.enum(["granted","denied","limited","metered"]).meta(Ct),current_usage:a.number().nullable().default(null).meta(Ct),limit:a.number().nullable().default(null).meta(Ct),source:a.enum(["plan","addon","override","trial"]).meta(Ct),source_id:a.string().min(1).meta(Ct),latency_ms:a.number().min(0).optional().meta(Ct)}).meta({id:"EntitlementEvalLog","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":OS});({"/api/presentation-records":{get:y({operationId:"listPresentationRecords",requestParams:{query:Q},summary:"List presentation records",tags:["runtime"],responses:{200:{description:"Presentation records",content:{"application/json":{schema:Y(KB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"presentation-records",persistence:{table:"presentationRecords",mode:"list"}}})},"/api/decision-logs":{get:y({operationId:"listDecisionLogs",requestParams:{query:Q},summary:"List decision logs",tags:["runtime"],responses:{200:{description:"Decision logs",content:{"application/json":{schema:Y(GB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"decision-logs",persistence:{table:"decisionLogs",mode:"list"}}})},"/api/entitlement-eval-logs":{get:y({operationId:"listEntitlementEvalLogs",requestParams:{query:Q},summary:"List entitlement evaluation logs",tags:["runtime"],responses:{200:{description:"Entitlement eval logs",content:{"application/json":{schema:Y(JB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-eval-logs",persistence:{table:"entitlementEvalLogs",mode:"list"}}})}});var {Unrestricted:_}=Zt,{Persisted:_s,Transient:Te}=Bt,{Internal:vr,External:Le}=Mt,Ae=lt(He.Playbook,{sdkInput:true}),us=lt(He.Playbook,{sdkInput:false}),qi=lt(He.Playbook,{inConfig:false,sdkInput:false}),XO=lt(He.Playbook,{inConfig:false,sdkInput:true}),Zi=lt(He.Playbook,{inConfig:false,sdkInput:true,source:wr.CodeConstant}),Ol=lt(He.Playbook,{inConfig:false,sdkInput:true,source:wr.Runtime}),zl=lt(He.Playbook,{inConfig:false,sdkInput:false,source:wr.Runtime}),WB=lt(He.Billing,{sdkInput:false}),XB=lt(He.Metering,{sdkInput:false}),YB=lt(He.Branding,{inConfig:true,sdkInput:true}),QB=lt(He.Branding,{sdkInput:false}),eM="1.0.0",Il=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),name:Ft.meta(_),handle:ct.meta(_),description:Eo.meta(_),is_default:a.boolean().default(false).meta(_),entitlement_ids:a.array(a.string()).default([]).meta(_),metadata:jt.meta(_)}).meta({id:"SeatType","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...qi,...fn()}),tM=Qt("SeatTypeAnchor"),Pl=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta(_),label:a.string().min(1).meta(_),description:a.string().nullable().default(null).meta(_),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(_),data_source:a.string().nullable().default(null).meta(_),example_value:a.string().nullable().default(null).meta(_),value_map:a.record(a.string(),a.string()).default({}).meta(_),format:a.enum(["string","number","currency","percentage","date"]).nullable().default(null).meta(_),metadata:jt.meta(_)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...qi,...fn()}),nM=Qt("PersonalizationTokenAnchor"),rM=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),fS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({..._,readOnly:true}),stripe_account_id:a.string().min(1).meta(_),live_mode:a.boolean().default(false).meta(_),onboarding_state:rM.default("not_started").meta({..._,readOnly:true}),onboarding_complete:a.boolean().default(false).meta({..._,readOnly:true}),charges_enabled:a.boolean().default(false).meta({..._,readOnly:true}),details_submitted:a.boolean().default(false).meta({..._,readOnly:true}),payouts_enabled:a.boolean().default(false).meta({..._,readOnly:true}),webhook_secret_set:a.boolean().default(false).meta({..._,readOnly:true}),sync_products:a.boolean().default(true).meta(_),sync_prices:a.boolean().default(true).meta(_),sync_subscriptions:a.boolean().default(true).meta(_),sync_invoices:a.boolean().default(false).meta(_),default_currency:a.string().length(3).default("USD").meta(_),tax_behavior:a.enum(["inclusive","exclusive","unspecified"]).default("unspecified").meta(_),last_sync_at:a.string().optional().meta({..._,readOnly:true}),metadata:jt.meta(_)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...WB,...sr()});a.object({theme:a.record(a.string(),a.unknown()).optional().meta(_),workspace_name:a.string().optional().meta(_),logo_url:a.string().optional().meta(_),support_email:a.string().optional().meta(_)}).meta({id:"BrandingConfig","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...QB});var kl=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({..._,readOnly:true}),entitlement_id:a.string().min(1).meta(_),meter_key:a.string().min(1).max(100).meta(_),aggregation_type:a.enum(["sum","count","max","last_value"]).default("sum").meta(_),reset_period:a.enum(["none","daily","weekly","monthly","yearly"]).default("monthly").meta(_),stripe_meter_id:a.string().nullable().default(null).meta(_),is_active:a.boolean().default(true).meta(_),metadata:jt.meta(_)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...XB,...sr()}),bO=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),Tl=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta({..._,readOnly:true}),entitlement_id:a.string().min(1).meta(_),soft_limit_percent:a.number().min(0).max(100).default(80).meta(_),hard_limit_percent:a.number().min(0).max(100).default(100).meta(_),soft_limit_action:bO.default("warn").meta(_),hard_limit_action:bO.default("block").meta(_),grace_period_hours:a.number().int().min(0).default(0).meta(_),notification_channels:a.array(a.enum(["email","in_app","webhook"])).default(["in_app"]).meta(_),is_active:a.boolean().default(true).meta(_)}).meta({id:"UsageEnforcementSettings","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...XO,...sr()}),iM=Qt("UsageEnforcementSettingsAnchor"),oM=a.object({kind:a.enum(["template","slot"]).meta(_),id:a.string().min(1).meta(_),label:a.string().min(1).optional().meta(_)}).meta({id:"PlacementSettingsCapRuleGroupItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),aM=a.object({id:a.string().min(1).meta(_),group:a.array(oM).min(1).meta(_),cap:a.object({count:a.number().int().min(1).meta(_),period:a.enum(["session","day","week","month"]).meta(_)}).meta(_)}).meta({id:"PlacementSettingsCapRule","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),sM=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),YO=a.object({capRules:a.array(aM).default([]).meta(_),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(_),testMode:sM.default("off").meta(_)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),gS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta({..._,readOnly:true}),global_frequency_cap:YO.nullable().default(null).meta(_),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(_),suppress_for_paid:a.boolean().default(false).meta(_),suppress_for_trial:a.boolean().default(false).meta(_),default_dismiss_cooldown_hours:a.number().int().min(0).default(24).meta(_),allow_stacking:a.boolean().default(false).meta(_),priority_collision_strategy:a.enum(["highest_priority","most_recent","random"]).default("highest_priority").meta(_)}).meta({id:"PlacementSettings","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...XO,...sr()}),cM=Qt("PlacementSettingsAnchor"),lM=a.object({field:a.string().min(1).meta(_),operator:a.enum(["eq","neq","gt","lt","gte","lte","contains","in"]).meta(_),value:a.string().meta(_)}).meta({id:"RevTurbineConfigSegmentsItemPredicatesItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),uM=a.object({name:a.string().min(1).meta(_),handle:a.string().min(1).meta(_),predicates:a.array(lM).optional().meta(_),dimension_id:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),dM=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),tier_position:a.number().int().min(0).default(0).meta(_),sort_order:a.number().int().min(0).default(0).meta(_),visibility:Hi.default("public").meta(_)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),mM=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),sort_order:a.number().int().min(0).default(0).meta(_),visibility:Hi.default("public").meta(_)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...us}),pM=a.object({handle:a.string().min(1).meta(_),plan_handle:a.string().min(1).meta(_),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(_),segment_handle:a.string().nullable().default(null).meta(_),price_amount:a.number().min(0).meta(_),pricing_model:Al.meta(_),visibility:Hi.default("public").meta(_),stripe_price_id:a.string().nullable().default(null).meta(_),price_source:Ip.meta(_)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...qi}),fM=a.object({handle:a.string().min(1).meta(_),addon_handle:a.string().min(1).meta(_),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(_),segment_handle:a.string().nullable().default(null).meta(_),price_amount:a.number().min(0).meta(_),pricing_model:Al.meta(_),visibility:Hi.default("public").meta(_),stripe_price_id:a.string().nullable().default(null).meta(_),price_source:Ip.meta(_)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...qi}),gM=a.object({handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),description:a.string().nullable().default(null).meta(_),is_default:a.boolean().default(false).meta(_),entitlement_handles:a.array(a.string()).default([]).meta(_)}).meta({id:"RevTurbineConfigSeatTypesItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),hM=a.object({handle:a.string().min(1).meta(_),entitlement_handle:a.string().nullable().default(null).meta(_),soft_limit_percent:a.number().int().min(0).nullable().default(null).meta(_),hard_limit_percent:a.number().int().min(0).nullable().default(null).meta(_),soft_limit_action:a.string().meta(_),hard_limit_action:a.string().meta(_),grace_period_hours:a.number().int().min(0).nullable().default(null).meta(_),notification_channels:a.array(a.string()).default([]).meta(_),is_active:a.boolean().default(true).meta(_)}).meta({id:"RevTurbineConfigEnforcementDefaultsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),bM=a.object({handle:a.string().min(1).meta(_),global_frequency_cap:YO.nullable().default(null).meta(_),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(_),suppress_for_paid:a.boolean().default(false).meta(_),suppress_for_trial:a.boolean().default(false).meta(_),default_dismiss_cooldown_hours:a.number().int().min(0).nullable().default(null).meta(_),allow_stacking:a.boolean().default(false).meta(_),priority_collision_strategy:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigPlacementSettingsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),_M=a.object({handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),category:a.string().nullable().default(null).meta(_),visibility_toggle:a.boolean().default(true).meta(_),source_type:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigSegmentDimensionsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),vM=a.object({handle:a.string().min(1).meta(_),entitlement_handle:a.string().min(1).meta(_),meter_handle:a.string().min(1).meta(_),limit:a.number().int().min(0).nullable().default(null).meta(_),reset_period:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigMeterBindingsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),yM=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),type:_S.meta(_),unit:a.string().optional().meta(_),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(_)}).meta({id:"RevTurbineConfigEntitlementsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),xM=a.object({id:a.string().min(1).meta(_),entitlement_id:a.string().min(1).meta(_),targets:a.array($O).min(1).meta(_),segment_ids:a.array(a.string()).default([]).meta(_),kind:_S.optional().meta({..._,readOnly:true}),unit:a.string().optional().meta({..._,readOnly:true}),tier_name:a.string().optional().meta({..._,readOnly:true}),tier_description:a.string().optional().meta({..._,readOnly:true}),...ps.pick({enabled:true,limit_value:true,enforcement:true,tier_value:true,period_scope:true,included_count:true,seat_type_id:true,initial_grant:true,allowance_value:true,rollover_enabled:true,max_balance:true,reset_period:true,max_seats:true,rate_value:true,amount_cents:true,currency:true}).shape,current_usage:a.number().default(0).meta(_),allocation:Pp.optional().meta(_)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),SM=a.object({slot_id:a.string().min(1).meta(_),active:a.boolean().meta(_),triggers:a.array(a.string()).meta(_)}).meta({id:"RevTurbineConfigSlotConfigsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),IM=a.object({id:a.string().min(1).meta(_),label:a.string().min(1).meta(_),description:a.string().meta(_),surface_type:a.string().meta(_),placement_handle:a.string().min(1).meta(_),template:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigPlacementSlotsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),PM=a.object({name:a.string().min(1).meta(_),type:a.string().optional().meta(_),required:a.boolean().optional().meta(_)}).meta({id:"RevTurbineConfigSurfaceTemplatesItemFieldsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),kM=a.object({id:a.string().min(1).meta(_),surface_type:a.string().meta(_),fields:a.array(PM).optional().meta(_)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),TM=a.enum(["open_checkout_modal","navigate_to_plans","open_upgrade_modal","open_placement","book_demo","open_feature_tour","extend_trial","switch_billing_period","custom_url","dismiss","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription"]).meta({id:"RevTurbineConfigUiPathActionType","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),$M=a.object({name:a.string().min(1).meta(_),action_type:TM.meta(_),plan_handle:a.string().optional().meta(_),promotion_id:a.string().optional().meta(_),placement_handle:a.string().optional().meta(_),url:a.string().optional().meta(_),tour_id:a.string().optional().meta(_),target_billing_period:a.enum(["monthly","annual"]).optional().meta(_),description:a.string().optional().meta(_)}).meta({id:"ContentUiPath","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),wM=a.object({id:a.string().meta(_),name:a.string().meta(_),discount:a.string().meta(_),type:a.string().meta(_),status:a.string().meta(_)}).meta({id:"ContentPromotion","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),RM=a.object({token:a.string().regex(/^[a-z][a-z0-9_]*$/).meta(_),label:a.string().min(1).meta(_),description:a.string().optional().meta(_),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(_),data_source:a.string().optional().meta(_),example_value:a.string().optional().meta(_),value_map:a.record(a.string(),a.string()).optional().meta(_),format:a.enum(["string","number","currency","percentage","date"]).optional().meta(_)}).meta({id:"RevTurbineConfigPersonalizationTokensItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),_O=a.object({header:a.string().optional().meta(_),body:a.string().optional().meta(_),cta_label:a.string().optional().meta(_),secondary_cta_label:a.string().optional().meta(_)}).catchall(a.unknown()).meta({id:"MessageBlockContent","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),CM=a.object({block_id:a.string().min(1).meta(_),tenant_id:a.string().min(1).meta(_),name:a.string().min(1).meta(_),surface_template_id:a.string().optional().meta(_),default_content:_O.meta(_),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:_O})).optional().meta(_),child_blocks:a.array(a.object({slot:a.string(),block_id:a.string()})).optional().meta(_),tokens_used:a.array(a.string()).optional().meta(_),status:a.enum(["draft","active","archived"]).meta(_),created_at:a.string().datetime().meta({..._,readOnly:true}),updated_at:a.string().datetime().meta({..._,readOnly:true})}).meta({id:"MessageBlock","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),EM=a.object({label:a.string().meta(_),path:yO.meta(_),config:a.record(a.string(),a.string()).optional().meta(_)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),QO=a.object({template_id:a.string().min(1).meta(_),fields:a.record(a.string(),a.string()).meta(_),ctas:a.array(EM).meta(_)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),ez=a.object({plan_ids:a.array(a.string()).meta(_),billing_cadences:a.array(a.string()).optional().meta(_),segment_chips:a.array(a.string()).meta(_)}).meta({id:"RevTurbineConfigStudioPayloadTarget","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),OM=a.object({count:a.number().int().min(1).meta(_),period:a.enum(["session","day","week","month","lifetime"]).meta(_)}).meta({id:"RevTurbineConfigPeriodCap","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),tz=a.object({max_per_period:OM.optional().meta(_),cooldown_days:a.number().int().min(0).optional().meta(_)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),zM=a.object({id:a.string().min(1).meta(_),target:ez.meta(_),surfaces:a.array(QO).meta(_),caps:tz.optional().meta(_),surface_slot_ids:a.array(a.string()).optional().meta(_),created_at:a.string().optional().meta({..._,readOnly:true}),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(_),recommendation_plan_override:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigStudioPayload","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),jM=a.discriminatedUnion("type",[a.object({type:a.literal("surface_render"),slot_id:a.string().min(1)}),a.object({type:a.literal("entitlement_gate"),entitlement_handle:a.string().min(1),tier_threshold:a.string().optional()}),a.object({type:a.literal("usage_threshold"),entitlement_handle:a.string().min(1),threshold_percent:Cl}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:Cl}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:Cl}),a.object({type:a.literal("trial_started"),trial_type:a.enum(["free","reverse"]).optional()}),a.object({type:a.literal("trial_progress"),progress_percent:a.number().min(1).max(100)}),a.object({type:a.literal("trial_ending"),days_before_end:a.number().int().min(0)}),a.object({type:a.literal("trial_ended")}),a.object({type:a.literal("trial_converted")}),a.object({type:a.literal("qualifier"),qualifier:a.string().min(1)})]).meta({id:"RevTurbineConfigPlacementTrigger","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),UM=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),AM=a.object({id:a.string().min(1).meta(_),name:a.string().min(1).meta(_),category:UM.meta(_),trigger:jM.meta(_),payloads:a.array(zM).meta(_),order:a.number().int().min(0).meta(_)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),DM=a.object({payload_id:a.string().min(1).meta(_),placement_id:a.string().min(1).meta(_),target:ez.meta(_),caps:tz.optional().meta(_),created_at:a.string().meta({..._,readOnly:true}),updated_at:a.string().datetime().optional().meta({..._,readOnly:true}),source_mode:a.enum(["inline","content_linked"]).meta(_),surfaces:a.array(QO).optional().meta(_),surface_slot_ids:a.array(a.string()).optional().meta(_),content_link:a.object({message_block_id:a.string().optional(),ui_path_id:a.string().optional(),promotion_id:a.string().optional(),content_payload_id:a.string().optional()}).optional().meta(_)}).meta({id:"RevTurbineConfigPlacementPayloadItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),FM=a.object({kind:a.string().min(1).meta(_),schema_version:a.number().int().nonnegative().meta(_),config:a.unknown().meta(_)}).meta({id:"RevTurbineConfigExtensionRulesItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),NM=ne.merge(ZO).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...qi}),LM=ne.merge(qO).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...qi}),VM=a.object({version:a.string().meta({..._,...Zi}),exported_at:a.string().datetime().optional().meta({..._,...Ol,readOnly:true}),schema_version:a.string().optional().meta({..._,...Zi,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({..._,...Zi,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({..._,...Ol,readOnly:true}),tenant_id:a.string().optional().meta({..._,...zl,readOnly:true}),environment_id:a.string().optional().meta({..._,...zl,readOnly:true}),plans:a.array(dM).meta({..._,...Ae}),addons:a.array(mM).optional().meta({..._,...us}),entitlements:a.array(yM).meta({..._,...Ae}),entitlement_rules:a.array(xM).meta({..._,...Ae}),segments:a.array(uM).meta({..._,...Ae}),content_ui_paths:a.array($M).meta({..._,...Ae}),slot_configs:a.array(SM).optional().meta({..._,...Ae,...fp({since:"0.1.117",replacement:"SDK-local activation/trigger state",removeAfter:"one compatibility window",reason:"Slot activation moved to SDK-local state (plan 118 TASK-6); no longer a Playbook authoring input."})}),content_overrides:a.record(a.string(),a.record(a.string(),a.string())).optional().meta({..._,...Ae,...fp({since:"0.1.117",replacement:"Message Block / Placement Payload content",removeAfter:"one compatibility window",reason:"Content overrides moved to Message Block / Payload content (plan 118 TASK-6); no longer a Playbook authoring input."})}),theme:a.record(a.string(),a.unknown()).optional().meta({..._,...YB,...fp({since:"0.1.111",replacement:"SDK branding argument",removeAfter:"one compatibility window",reason:"Branding is independently owned and is not Playbook strategy."})}),placement_slots:a.array(IM).optional().meta({..._,...Ae}),message_blocks:a.array(CM).optional().meta({..._,...Ae}),placement_payloads:a.array(DM).optional().meta({..._,...Ae}),placements:a.array(AM).optional().meta({..._,...Ae}),content_promotions:a.array(wM).optional().meta({..._,...Ae}),personalization_tokens:a.array(RM).optional().meta({..._,...Ae}),surface_templates:a.array(kM).optional().meta({..._,...Ae}),free_trial_rules:a.array(NM).optional().meta({..._,...us}),reverse_trial_rules:a.array(LM).optional().meta({..._,...us}),plan_variations:a.array(pM).optional().meta({..._,...us}),addon_variations:a.array(fM).optional().meta({..._,...us}),extension_rules:a.array(FM).optional().meta({..._,...Ae}),seat_types:a.array(gM).optional().meta({..._,...Ae}),enforcement_defaults:a.array(hM).optional().meta({..._,...Ae}),placement_settings:a.array(bM).optional().meta({..._,...Ae}),segment_dimensions:a.array(_M).optional().meta({..._,...Ae}),meter_bindings:a.array(vM).optional().meta({..._,...Ae})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae,...fp({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),BM=a.object({artifact_type:a.literal("playbook").meta({..._,...Zi,readOnly:true}),format_version:a.literal(eM).meta({..._,...Zi,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({..._,...Zi}),playbook_version_id:a.string().nullable().default(null).meta({..._,...Ol,readOnly:true}),tenant_id:a.string().min(1).meta({..._,...zl,readOnly:true}),environment_id:a.string().min(1).meta({..._,...zl,readOnly:true}),project_id:a.string().min(1).optional().meta({..._,...zl,readOnly:true}),exported_at:a.string().datetime().optional().meta({..._,...Ol,readOnly:true}),schema_version:a.string().min(1).optional().meta({..._,...Zi,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({..._,...Zi,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ol}),MM={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},ZM=VM.omit(MM).extend({experiments:a.array(a.unknown()).max(0).optional().meta({..._,...qi}),signal_catalog:a.object({}).strict().optional().meta({..._,...qi})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae});BM.extend(ZM.shape).meta({id:"Playbook","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae});({"/api/seat-type-anchors":{get:y({operationId:"listSeatTypeAnchors",requestParams:{query:Q},summary:"List seat type anchors (identity registry)",tags:["config"],responses:{200:{description:"Seat type anchor list",content:{"application/json":{schema:Y(tM)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:y({operationId:"listSeatTypes",requestParams:{query:Q},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:Y(Il)}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"list"}}}),post:y({operationId:"createSeatType",summary:"Create seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:mn(Il)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Il}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"create"}}})},"/api/config/seat-types/{id}":{patch:y({operationId:"updateSeatType",requestParams:{path:a.object({id:a.string()})},summary:"Update seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Il.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Il}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"update"}}}),delete:y({operationId:"deleteSeatType",requestParams:{path:a.object({id:a.string()})},summary:"Delete seat type",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"delete"}}})},"/api/personalization-token-anchors":{get:y({operationId:"listPersonalizationTokenAnchors",requestParams:{query:Q},summary:"List personalization token anchors (identity registry)",tags:["config"],responses:{200:{description:"Personalization token anchor list",content:{"application/json":{schema:Y(nM)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:y({operationId:"listPersonalizationTokens",requestParams:{query:Q},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:Y(Pl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"list"}}}),post:y({operationId:"createPersonalizationToken",summary:"Create personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:mn(Pl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Pl}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"create"}}})},"/api/config/personalization-tokens/{id}":{patch:y({operationId:"updatePersonalizationToken",requestParams:{path:a.object({id:a.string()})},summary:"Update personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Pl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Pl}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"update"}}}),delete:y({operationId:"deletePersonalizationToken",requestParams:{path:a.object({id:a.string()})},summary:"Delete personalization token",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"delete"}}})},"/api/config/stripe":{put:y({operationId:"upsertStripeIntegrationConfig",summary:"Create or update Stripe integration config",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:pn(fS)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:fS}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:y({operationId:"listMeteringConfigs",requestParams:{query:Q},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:Y(kl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"list"}}}),post:y({operationId:"createMeteringConfig",summary:"Create metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:mn(kl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:kl}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"create"}}})},"/api/config/metering/{meteringId}":{patch:y({operationId:"updateMeteringConfig",requestParams:{path:a.object({meteringId:a.string()})},summary:"Update metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:kl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:kl}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"update"}}}),delete:y({operationId:"deleteMeteringConfig",requestParams:{path:a.object({meteringId:a.string()})},summary:"Delete metering configuration",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"delete"}}})},"/api/usage-enforcement-setting-anchors":{get:y({operationId:"listUsageEnforcementSettingsAnchors",requestParams:{query:Q},summary:"List usage enforcement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Usage enforcement setting anchor list",content:{"application/json":{schema:Y(iM)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement-setting-anchors",persistence:{table:"usageEnforcementSettings",mode:"list"}}})},"/api/config/usage-enforcement":{get:y({operationId:"listUsageEnforcementSettings",requestParams:{query:Q},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:Y(Tl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"list"}}}),post:y({operationId:"createUsageEnforcementSettings",summary:"Create usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:mn(Tl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Tl}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"create"}}})},"/api/config/usage-enforcement/{settingsId}":{patch:y({operationId:"updateUsageEnforcementSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Tl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Tl}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"update"}}}),delete:y({operationId:"deleteUsageEnforcementSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Delete usage enforcement settings",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"delete"}}})},"/api/placement-setting-anchors":{get:y({operationId:"listPlacementSettingsAnchors",requestParams:{query:Q},summary:"List placement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Placement setting anchor list",content:{"application/json":{schema:Y(cM)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-setting-anchors",persistence:{table:"placementSettings",mode:"list"}}})},"/api/config/placement-settings":{put:y({operationId:"upsertPlacementSettings",summary:"Create or update global placement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:pn(gS)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:gS}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});var {Unrestricted:ci}=Zt,{Persisted:nz}=Bt,{Internal:rz}=Mt,qM=a.enum(["create","update","delete","archive","restore","reorder","duplicate","sync","publish"]).meta({id:"ChangeLogAction","x-revturbine-schema-persistence":nz,"x-revturbine-schema-exposure":rz}),vO=ne.merge(pe).merge(_e).extend({action:qM.meta(ci),resource_type:a.string().min(1).max(100).meta(ci),resource_id:a.string().min(1).meta(ci),resource_name:a.string().max(200).optional().meta(ci),actor_id:a.string().min(1).meta(ci),actor_email:a.string().email().optional().meta(ci),diff:a.object({before:a.record(a.string(),a.unknown()).optional(),after:a.record(a.string(),a.unknown()).optional()}).optional().meta(ci),summary:a.string().max(1e3).optional().meta(ci),metadata:jt.meta(ci)}).meta({id:"ChangeLogEntry","x-revturbine-schema-persistence":nz,"x-revturbine-schema-exposure":rz});({"/api/changelog":{get:y({operationId:"listChangeLogEntries",requestParams:{query:Q},summary:"List change log entries",tags:["changelog"],responses:{200:{description:"Change log entries",content:{"application/json":{schema:Y(vO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"changelog",persistence:{table:"changeLogEntries",mode:"list"}}})},"/api/changelog/{entryId}":{get:y({operationId:"getChangeLogEntry",requestParams:{path:a.object({entryId:a.string()})},summary:"Get change log entry by ID",tags:["changelog"],responses:{200:{description:"Change log entry",content:{"application/json":{schema:vO}}}},"x-revturbine-operation":{exposure:"internal",resource:"changelog",persistence:{table:"changeLogEntries",mode:"get"}}})}});var {Unrestricted:hp}=Zt,{Persisted:HM,Transient:KM}=Bt,{Internal:iz}=Mt,GM=a.enum(["active","suspended","archived"]).meta({id:"TenantStatus","x-revturbine-schema-persistence":KM,"x-revturbine-schema-exposure":iz}),Mi=ne.merge(pe).extend({name:Ft.meta(hp),handle:ct.meta(hp),status:GM.default("active").meta(hp),metadata:jt.meta(hp)}).meta({id:"Tenant","x-revturbine-schema-persistence":HM,"x-revturbine-schema-exposure":iz});({"/api/tenants":{get:y({operationId:"listTenants",requestParams:{query:Q},summary:"List tenants",tags:["tenants"],responses:{200:{description:"Tenant list",content:{"application/json":{schema:Y(Mi)}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"list"}}})},"/api/tenants/{tenantId}":{get:y({operationId:"getTenant",requestParams:{path:a.object({tenantId:a.string()})},summary:"Get tenant by ID",tags:["tenants"],responses:{200:{description:"Tenant",content:{"application/json":{schema:Mi}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"get"}}}),patch:y({operationId:"updateTenant",requestParams:{path:a.object({tenantId:a.string()})},summary:"Update tenant",tags:["tenants"],requestBody:{required:true,content:{"application/json":{schema:Mi.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Mi}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"update"}}})},"/api/tenants/{tenantId}/suspend":{post:y({operationId:"suspendTenant",requestParams:{path:a.object({tenantId:a.string()})},summary:"Suspend tenant (disables all API access)",tags:["tenants"],responses:{200:{description:"Suspended",content:{"application/json":{schema:Mi}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"update"}}})},"/api/tenants/{tenantId}/reactivate":{post:y({operationId:"reactivateTenant",requestParams:{path:a.object({tenantId:a.string()})},summary:"Reactivate a suspended tenant",tags:["tenants"],responses:{200:{description:"Reactivated",content:{"application/json":{schema:Mi}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"update"}}})}});var {Unrestricted:br}=Zt,{Persisted:JM,Transient:oz}=Bt,{Internal:zS}=Mt,WM=a.enum(["active","archived","locked"]).meta({id:"EnvironmentStatus","x-revturbine-schema-persistence":oz,"x-revturbine-schema-exposure":zS}),rs=ne.merge(pe).merge(_e).extend({name:Ft.meta(br),handle:ct.meta(br),description:Eo.meta(br),is_production:a.boolean().default(false).meta({...br,readOnly:true}),status:WM.default("active").meta(br),cloned_from_environment_id:a.string().nullable().default(null).meta({...br,readOnly:true}),cloned_at:Et.meta({...br,readOnly:true}),cloned_at_sequence:a.number().int().min(0).nullable().default(null).meta({...br,readOnly:true}),requires_approval:a.boolean().default(false).meta(br),auto_deploy_on_approval:a.boolean().default(false).meta(br),created_by:a.string().optional().meta(br),metadata:jt.meta(br)}).meta({id:"Environment","x-revturbine-schema-persistence":JM,"x-revturbine-schema-exposure":zS}),XM=a.object({source_environment_id:a.string().min(1),target_environment_id:a.string().min(1),playbook_version_ids:a.array(a.string()).optional(),strategy:a.enum(["all_current","selected_playbook_versions"]).default("all_current")}).meta({id:"EnvironmentPromotionRequest","x-revturbine-schema-persistence":oz,"x-revturbine-schema-exposure":zS});({"/api/environments":{get:y({operationId:"listEnvironments",requestParams:{query:Q},summary:"List environments",tags:["environments"],responses:{200:{description:"Environment list",content:{"application/json":{schema:Y(rs)}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"list"}}}),post:y({operationId:"createEnvironment",summary:"Create environment (optionally cloned from another)",tags:["environments"],requestBody:{required:true,content:{"application/json":{schema:a.object({name:a.string().min(1).max(200),handle:a.string().min(1).max(100),description:a.string().max(500).optional(),clone_from_environment_id:a.string().optional(),requires_approval:a.boolean().optional()})}}},responses:{201:{description:"Created",content:{"application/json":{schema:rs}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"create"}}})},"/api/environments/{environmentId}":{get:y({operationId:"getEnvironment",requestParams:{path:a.object({environmentId:a.string()})},summary:"Get environment by ID",tags:["environments"],responses:{200:{description:"Environment",content:{"application/json":{schema:rs}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"get"}}}),patch:y({operationId:"updateEnvironment",requestParams:{path:a.object({environmentId:a.string()})},summary:"Update environment settings",tags:["environments"],requestBody:{required:true,content:{"application/json":{schema:rs.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:rs}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"update"}}})},"/api/environments/{environmentId}/archive":{post:y({operationId:"archiveEnvironment",requestParams:{path:a.object({environmentId:a.string()})},summary:"Archive environment (production cannot be archived)",tags:["environments"],responses:{200:{description:"Archived",content:{"application/json":{schema:rs}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"update"}}})},"/api/environments/promote":{post:y({operationId:"promoteEnvironment",summary:"Promote (merge) changes from one environment to another",tags:["environments"],requestBody:{required:true,content:{"application/json":{schema:XM}}},responses:{200:{description:"Promotion result",content:{"application/json":{schema:a.object({promoted_count:a.number().int(),conflict_count:a.number().int(),conflicts:a.array(a.object({handle:a.string(),resource_type:a.string(),source_sequence:a.number().int(),target_sequence:a.number().int()}))})}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"promote"}}})}});var {Unrestricted:Se,Pii:jl}=Zt,{Transient:Jr,Persisted:YM}=Bt,{External:Rr}=Mt,QM=a.enum(["milestone_version","milestone_order"]).meta({id:"SupersessionReason","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr});a.object({superseded_output_id:a.string().min(1).meta(Se),superseded_by:a.string().min(1).meta(Se),reason:QM.meta(Se)}).meta({id:"SupersessionRecord","x-revturbine-schema-persistence":YM,"x-revturbine-schema-exposure":Rr,"x-revturbine-data-classification":"operational"});var e3=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementStatus","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr}),az=a.object({output_id:a.string().meta(Se),category:a.string().meta(Se),surface:a.object({template:a.string().optional().meta(Se),type:xp.meta(Se),slot_id:a.string().optional().meta(Se)}).meta(Se),content:a.record(a.string(),a.unknown()).meta(Se),promotion:a.record(a.string(),a.unknown()).optional().meta(Se),cta_path:a.record(a.string(),a.unknown()).optional().meta(Se),ui_path:a.record(a.string(),a.unknown()).optional().meta(Se),rule_id:a.string().meta(Se),decision_id:a.string().meta(Se),config_version:a.string().meta(Se),present_upsell:a.boolean().meta(Se)}).meta({id:"PlacementDecisionOutput","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr}),t3=a.object({status:e3.meta(Se),allowed:a.boolean().meta(Se),reason:a.string().optional().meta(Se),current_tier:a.string().optional().meta(Se),limit:a.number().optional().meta(Se),used:a.number().optional().meta(Se),remaining:a.number().optional().meta(Se),placement:az.optional().meta(Se)}).meta({id:"EntitlementCheckResult","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr});a.object({id:a.string().meta(Se),name:a.string().optional().meta(Se),discount:a.string().optional().meta(Se),type:a.string().optional().meta(Se),status:a.string().optional().meta(Se)}).meta({id:"RuntimePromotionSnapshot","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr});var n3=a.object({id:a.string().meta(jl),anonymous_id:a.string().optional().meta(Se),traits:a.record(a.string(),a.unknown()).optional().meta(jl)}).meta({id:"ServerEvaluationPayloadUser","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr}),r3=a.object({slot_id:a.string().optional().meta(Se),entitlement_handle:a.string().optional().meta(Se),plan_handle:a.string().optional().meta(Se),placement_handle:a.string().optional().meta(Se),visible:a.boolean().meta(Se),output:az.optional().meta(Se),reason_codes:a.array(a.string()).optional().meta(Se)}).meta({id:"ServerEvaluationPayloadDecisionsItem","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr}),i3=t3,o3=SS.meta({id:"ServerEvaluationPayloadTrialStatus","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr}),a3=a.object({segments:a.array(a.string()).optional().meta(Se),traits:a.record(a.string(),a.unknown()).optional().meta(jl),usage_balances:a.record(a.string(),a.number()).optional().meta(Se)}).meta({id:"ServerEvaluationPayloadUserContext","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr});a.object({version:a.literal("1.0.0").meta(Se),request_id:a.string().meta(Se),tenant_id:a.string().meta(Se),evaluated_at:a.string().datetime().meta(Se),ttl_seconds:a.number().int().min(0).max(86400).meta(Se),user:n3.meta(jl),decisions:a.array(r3).meta(Se),entitlements:a.record(a.string(),i3).optional().meta(Se),theme:a.record(a.string(),a.unknown()).optional().meta(Se),trial_status:o3.optional().meta(Se),user_context:a3.optional().meta(jl)}).meta({id:"ServerEvaluationPayload","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr});var {Unrestricted:tt}=Zt,{Persisted:s3,Transient:Tp}=Bt,{Internal:ql}=Mt,c3=a.enum(["draft","awaiting_approval","approved","deploying","deployed","rejected","archived"]).meta({id:"PlaybookVersionStatus","x-revturbine-schema-persistence":Tp,"x-revturbine-schema-exposure":ql}),$l=ne.merge(pe).merge(_e).extend({environment_id:a.string().min(1).meta(tt),name:Ft.meta(tt),description:a.string().max(2e3).optional().meta(tt),status:c3.default("draft").meta(tt),labels:a.array(a.string()).default([]).meta(tt),created_by:a.string().min(1).meta(tt),submitted_by:a.string().nullable().default(null).meta({...tt,readOnly:true}),reviewed_by:a.string().nullable().default(null).meta({...tt,readOnly:true}),deployed_by:a.string().nullable().default(null).meta({...tt,readOnly:true}),submitted_at:Et.meta({...tt,readOnly:true}),reviewed_at:Et.meta({...tt,readOnly:true}),deployed_at:Et.meta({...tt,readOnly:true}),base_snapshot_sequence:a.number().int().min(0).default(0).meta({...tt,readOnly:true}),entry_count:a.number().int().min(0).default(0).meta({...tt,readOnly:true}),conflict_count:a.number().int().min(0).default(0).meta({...tt,readOnly:true}),rollback_of_playbook_version_id:a.string().nullable().default(null).meta(tt),cherry_picked_from_playbook_version_id:a.string().nullable().default(null).meta(tt),review_notes:a.string().max(2e3).optional().meta(tt),rejection_reason:a.string().max(2e3).optional().meta(tt),snapshot:a.record(a.string(),a.unknown()).nullable().default(null).meta({...tt,readOnly:true}),bundle:a.string().nullable().default(null).meta({...tt,readOnly:true}),metadata:jt.meta(tt)}).meta({id:"PlaybookVersion","x-revturbine-schema-persistence":s3,"x-revturbine-schema-exposure":ql}),sz=a.object({handle:a.string().meta(tt),resource_type:a.string().meta(tt),resource_name:a.string().optional().meta(tt),action:a.enum(["create","update","delete"]).meta(tt),has_conflict:a.boolean().meta(tt)}).meta({id:"PlaybookVersionEntrySummary","x-revturbine-schema-persistence":Tp,"x-revturbine-schema-exposure":ql}),l3=a.object({playbook_version_id:a.string().meta(tt),entries:a.array(sz).meta(tt),total_entries:a.number().int().min(0).meta(tt),total_conflicts:a.number().int().min(0).meta(tt),deployable:a.boolean().meta(tt)}).meta({id:"PlaybookVersionDiff","x-revturbine-schema-persistence":Tp,"x-revturbine-schema-exposure":ql}),u3=a.object({playbook_version_id:a.string().meta(tt),deployed_count:a.number().int().min(0).meta(tt),superseded_count:a.number().int().min(0).meta(tt),skipped_conflicts:a.number().int().min(0).meta(tt),deployed_at:a.string().datetime().meta(tt)}).meta({id:"PlaybookVersionDeployResult","x-revturbine-schema-persistence":Tp,"x-revturbine-schema-exposure":ql});({"/api/playbook-versions/{playbookVersionId}/submit":{post:y({operationId:"submitPlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Submit playbook version for approval",tags:["playbook-versions"],responses:{200:{description:"Submitted",content:{"application/json":{schema:$l}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})},"/api/playbook-versions/{playbookVersionId}/approve":{post:y({operationId:"approvePlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Approve playbook version (may auto-deploy if environment allows)",tags:["playbook-versions"],requestBody:{required:true,content:{"application/json":{schema:a.object({review_notes:a.string().max(2e3).optional()})}}},responses:{200:{description:"Approved",content:{"application/json":{schema:$l}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})},"/api/playbook-versions/{playbookVersionId}/reject":{post:y({operationId:"rejectPlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Reject playbook version",tags:["playbook-versions"],requestBody:{required:true,content:{"application/json":{schema:a.object({rejection_reason:a.string().max(2e3)})}}},responses:{200:{description:"Rejected",content:{"application/json":{schema:$l}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})},"/api/playbook-versions/{playbookVersionId}/deploy":{post:y({operationId:"deployPlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Deploy playbook version \u2014 activates all entries, supersedes previous versions",tags:["playbook-versions"],requestBody:{required:true,content:{"application/json":{schema:a.object({force:a.boolean().default(false)})}}},responses:{200:{description:"Deploy result",content:{"application/json":{schema:u3}}},default:{description:"Error (conflicts exist)",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"deploy"}}})},"/api/playbook-versions/{playbookVersionId}/archive":{post:y({operationId:"archivePlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Archive (abandon) a playbook version",tags:["playbook-versions"],responses:{200:{description:"Archived",content:{"application/json":{schema:$l}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})},"/api/playbook-versions/{playbookVersionId}/preview":{get:y({operationId:"previewPlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Preview diff of all entries vs current state (dry-run deploy)",tags:["playbook-versions"],responses:{200:{description:"Diff preview",content:{"application/json":{schema:l3}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"preview"}}})},"/api/playbook-versions/{playbookVersionId}/conflicts":{get:y({operationId:"listPlaybookVersionConflicts",requestParams:{path:a.object({playbookVersionId:a.string()}),query:Q},summary:"List entries with sequence conflicts (base_sequence \u2260 current)",tags:["playbook-versions"],responses:{200:{description:"Conflict list",content:{"application/json":{schema:Y(sz)}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"list"}}})},"/api/playbook-versions/{playbookVersionId}/rollback":{post:y({operationId:"rollbackPlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Create a rollback playbook version that reverts a deployed one",tags:["playbook-versions"],requestBody:{required:true,content:{"application/json":{schema:a.object({name:a.string().min(1).max(200).optional()})}}},responses:{201:{description:"Rollback PlaybookVersion created",content:{"application/json":{schema:$l}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"create"}}})},"/api/playbook-versions/{playbookVersionId}/cherry-pick":{post:y({operationId:"cherryPickEntries",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Cherry-pick individual entries from this PlaybookVersion into another",tags:["playbook-versions"],requestBody:{required:true,content:{"application/json":{schema:a.object({handles:a.array(a.string()).min(1),target_playbook_version_id:a.string().min(1)})}}},responses:{200:{description:"Cherry-picked",content:{"application/json":{schema:a.object({copied_count:a.number().int()})}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})}});var {Unrestricted:Xe,Pii:d3}=Zt,{Persisted:Cr}=Bt,{Internal:Er}=Mt,m3=a.enum(["active","revoked","rotating"]).meta({id:"ApiKeyStatus","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),bp=ne.merge(pe).merge(_e).extend({name:Ft.meta(Xe),key_hash:a.string().min(1).meta({...d3,readOnly:true}),key_prefix:a.string().min(1).max(20).meta({...Xe,readOnly:true}),key_last4:a.string().length(4).meta({...Xe,readOnly:true}),status:m3.default("active").meta(Xe),last_used_at:Et.meta({...Xe,readOnly:true}),expires_at:Et.meta(Xe)}).meta({id:"ApiKey","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),p3=a.enum(["boolean","string","number","json"]).meta({id:"FlagValueType","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),Ro=ne.merge(pe).merge(_e).extend({key:a.string().min(1).max(100).meta(Xe),value_type:p3.default("boolean").meta(Xe),value:a.string().max(4e3).default("false").meta(Xe),description:Eo.meta(Xe),enabled:a.boolean().default(true).meta(Xe)}).meta({id:"FeatureFlag","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),hS=ne.merge(pe).merge(_e).extend({workspace_name:a.string().min(1).max(200).meta(Xe),support_email:a.string().email().nullable().default(null).meta(Xe),timezone:a.string().max(50).default("UTC").meta(Xe),default_currency:a.string().length(3).default("USD").meta(Xe),logo_url:a.string().url().nullable().default(null).meta(Xe)}).meta({id:"TenantConfig","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),bS=ne.merge(pe).merge(_e).extend({server_url:a.string().url().max(500).meta(Xe),api_token_hint:a.string().max(50).nullable().default(null).meta(Xe),allow_write_actions:a.boolean().default(false).meta(Xe),enabled_tools:a.array(a.string().max(100)).default([]).meta(Xe),enabled:a.boolean().default(false).meta(Xe)}).meta({id:"McpConfig","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),_p=ne.merge(pe).merge(_e).extend({step_key:a.string().min(1).max(100).meta(Xe),label:a.string().min(1).max(200).meta(Xe),done:a.boolean().default(false).meta(Xe),completed_at:Et.meta({...Xe,readOnly:true})}).meta({id:"OnboardingChecklist","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),f3=a.enum(["user","agent","system","webhook"]).meta({id:"AuditActorType","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),g3=ne.merge(_e).extend({environment_id:a.string().min(1).default("production").meta(Xe),actor_type:f3.meta(Xe),actor_id:a.string().nullable().default(null).meta(Xe),action:a.string().min(1).max(120).meta(Xe),object_type:a.string().max(120).nullable().default(null).meta(Xe),object_id:a.string().max(200).nullable().default(null).meta(Xe),payload:a.record(a.string(),a.unknown()).nullable().default(null).meta(Xe),occurred_at:a.string().datetime().meta({...Xe,readOnly:true})}).meta({id:"AuditEvent","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),h3=a.enum(["user_id","account_id","email"]).meta({id:"PlacementTestUserIdentifierType","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),vp=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({...Xe,readOnly:true}),identifier:a.string().min(1).max(200).meta(Xe),identifier_type:h3.default("user_id").meta(Xe),note:a.string().max(500).nullable().default(null).meta(Xe),added_by:a.string().meta(Xe)}).meta({id:"PlacementTestUser","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er,...sr()});({"/api/settings/api-keys":{get:y({operationId:"listApiKeys",requestParams:{query:Q},summary:"List API keys for the tenant",tags:["settings"],responses:{200:{description:"API keys",content:{"application/json":{schema:Y(bp)}}}},"x-revturbine-operation":{exposure:"internal",resource:"api-keys",persistence:{table:"apiKeys",mode:"list"}}}),post:y({operationId:"createApiKey",summary:"Create a new API key",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:mn(bp)}}},responses:{201:{description:"API key created",content:{"application/json":{schema:bp}}}},"x-revturbine-operation":{exposure:"internal",resource:"api-keys",persistence:{table:"apiKeys",mode:"create",writeSchema:"ApiKeySchema#writable"}}})},"/api/settings/api-keys/{keyId}":{delete:y({operationId:"revokeApiKey",requestParams:{path:a.object({keyId:a.string()})},summary:"Revoke an API key",tags:["settings"],responses:{200:{description:"API key revoked",content:{"application/json":{schema:bp}}}},"x-revturbine-operation":{exposure:"internal",resource:"api-keys",persistence:{table:"apiKeys",mode:"delete"}}})},"/api/flags":{get:y({operationId:"listFeatureFlags",requestParams:{query:Q},summary:"List feature flags for the tenant",tags:["settings"],responses:{200:{description:"Feature flags",content:{"application/json":{schema:Y(Ro)}}}},"x-revturbine-operation":{exposure:"internal",resource:"feature-flags",persistence:{table:"featureFlags",mode:"list"}}}),post:y({operationId:"createFeatureFlag",summary:"Create a feature flag",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:mn(Ro)}}},responses:{201:{description:"Feature flag created",content:{"application/json":{schema:Ro}}}},"x-revturbine-operation":{exposure:"internal",resource:"feature-flags",persistence:{table:"featureFlags",mode:"create",writeSchema:"FeatureFlagSchema#writable"}}})},"/api/flags/{flagId}":{get:y({operationId:"getFeatureFlag",requestParams:{path:a.object({flagId:a.string()})},summary:"Get a feature flag",tags:["settings"],responses:{200:{description:"Feature flag",content:{"application/json":{schema:Ro}}}},"x-revturbine-operation":{exposure:"internal",resource:"feature-flags",persistence:{table:"featureFlags",mode:"get"}}}),put:y({operationId:"updateFeatureFlag",requestParams:{path:a.object({flagId:a.string()})},summary:"Update a feature flag",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:pn(Ro).partial()}}},responses:{200:{description:"Feature flag updated",content:{"application/json":{schema:Ro}}}},"x-revturbine-operation":{exposure:"internal",resource:"feature-flags",persistence:{table:"featureFlags",mode:"update",writeSchema:"FeatureFlagSchema#writable"}}}),delete:y({operationId:"deleteFeatureFlag",requestParams:{path:a.object({flagId:a.string()})},summary:"Delete a feature flag",tags:["settings"],responses:{200:{description:"Feature flag deleted",content:{"application/json":{schema:Ro}}}},"x-revturbine-operation":{exposure:"internal",resource:"feature-flags",persistence:{table:"featureFlags",mode:"delete"}}})},"/api/settings/tenant-config":{put:y({operationId:"updateTenantConfig",summary:"Update tenant configuration",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:pn(hS).partial()}}},responses:{200:{description:"Tenant config updated",content:{"application/json":{schema:hS}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenant-config",persistence:{table:"tenantConfigs",mode:"update",writeSchema:"TenantConfigSchema#writable"}}})},"/api/settings/mcp":{put:y({operationId:"updateMcpConfig",summary:"Update MCP config",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:pn(bS).partial()}}},responses:{200:{description:"MCP config updated",content:{"application/json":{schema:bS}}}},"x-revturbine-operation":{exposure:"internal",resource:"mcp-config",persistence:{table:"mcpConfigs",mode:"update",writeSchema:"McpConfigSchema#writable"}}})},"/api/settings/onboarding":{get:y({operationId:"listOnboardingSteps",requestParams:{query:Q},summary:"List onboarding checklist steps",tags:["settings"],responses:{200:{description:"Onboarding steps",content:{"application/json":{schema:Y(_p)}}}},"x-revturbine-operation":{exposure:"internal",resource:"onboarding",persistence:{table:"onboardingChecklist",mode:"list"}}})},"/api/settings/onboarding/{stepId}":{get:y({operationId:"getOnboardingStep",requestParams:{path:a.object({stepId:a.string()})},summary:"Get an onboarding step",tags:["settings"],responses:{200:{description:"Onboarding step",content:{"application/json":{schema:_p}}}},"x-revturbine-operation":{exposure:"internal",resource:"onboarding",persistence:{table:"onboardingChecklist",mode:"get"}}}),put:y({operationId:"updateOnboardingStep",requestParams:{path:a.object({stepId:a.string()})},summary:"Update an onboarding step",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:pn(_p).partial()}}},responses:{200:{description:"Onboarding step updated",content:{"application/json":{schema:_p}}}},"x-revturbine-operation":{exposure:"internal",resource:"onboarding",persistence:{table:"onboardingChecklist",mode:"update",writeSchema:"OnboardingChecklistSchema#writable"}}})},"/api/settings/audit-events":{get:y({operationId:"listAuditEvents",requestParams:{query:Q},summary:"List audit events for the tenant",tags:["settings"],responses:{200:{description:"Audit events",content:{"application/json":{schema:Y(g3)}}}},"x-revturbine-operation":{exposure:"internal",resource:"audit-events",persistence:{table:"auditEvents",mode:"list"}}})},"/api/config/placement-test-users":{get:y({operationId:"listPlacementTestUsers",requestParams:{query:Q},summary:"List placement test users for the tenant",tags:["settings"],responses:{200:{description:"Placement test users",content:{"application/json":{schema:Y(vp)}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-test-users",persistence:{table:"placementTestUsers",mode:"list"}}}),post:y({operationId:"createPlacementTestUser",summary:"Add a placement test user",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:mn(vp)}}},responses:{201:{description:"Placement test user created",content:{"application/json":{schema:vp}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-test-users",persistence:{table:"placementTestUsers",mode:"create",writeSchema:"PlacementTestUserSchema#writable"}}})},"/api/config/placement-test-users/{testUserId}":{delete:y({operationId:"deletePlacementTestUser",requestParams:{path:a.object({testUserId:a.string()})},summary:"Remove a placement test user",tags:["settings"],responses:{200:{description:"Placement test user removed",content:{"application/json":{schema:vp}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-test-users",persistence:{table:"placementTestUsers",mode:"delete"}}})}});var {Unrestricted:te,Pii:xn}=Zt,{Persisted:An,Transient:jS}=Bt,{Internal:ln}=Mt,b3=a.enum(["user","admin"]).meta({id:"UserRole","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.merge(pe).extend({name:Ft.meta(te),email:a.string().email().meta(xn),email_verified:a.boolean().default(false).meta(te),image:a.string().url().nullable().default(null).meta(xn),role:b3.default("user").meta(te),banned:a.boolean().default(false).meta({...te,readOnly:true}),ban_reason:a.string().nullable().default(null).meta({...te,readOnly:true}),ban_expires:Et.meta({...te,readOnly:true}),two_factor_enabled:a.boolean().default(false).meta({...te,readOnly:true})}).meta({id:"AuthUser","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.merge(pe).extend({expires_at:a.string().datetime().meta(te),token:a.string().min(1).meta({...xn,readOnly:true}),ip_address:a.string().nullable().default(null).meta(xn),user_agent:a.string().nullable().default(null).meta(xn),user_id:a.string().min(1).meta({...te,readOnly:true}),active_organization_id:a.string().nullable().default(null).meta(te),impersonated_by:a.string().nullable().default(null).meta({...te,readOnly:true})}).meta({id:"AuthSession","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.merge(pe).extend({account_id:a.string().min(1).meta(te),provider_id:a.string().min(1).meta(te),user_id:a.string().min(1).meta({...te,readOnly:true}),access_token:a.string().nullable().default(null).meta({...xn,readOnly:true}),refresh_token:a.string().nullable().default(null).meta({...xn,readOnly:true}),id_token:a.string().nullable().default(null).meta({...xn,readOnly:true}),access_token_expires_at:Et.meta({...te,readOnly:true}),refresh_token_expires_at:Et.meta({...te,readOnly:true}),scope:a.string().nullable().default(null).meta(te),password:a.string().nullable().default(null).meta({...xn,readOnly:true})}).meta({id:"AuthAccount","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.merge(pe).extend({identifier:a.string().min(1).meta(xn),value:a.string().min(1).meta({...xn,readOnly:true}),expires_at:a.string().datetime().meta(te)}).meta({id:"AuthVerification","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({secret:a.string().min(1).meta({...xn,readOnly:true}),backup_codes:a.string().min(1).meta({...xn,readOnly:true}),user_id:a.string().min(1).meta({...te,readOnly:true}),verified:a.boolean().default(false).meta({...te,readOnly:true})}).meta({id:"AuthTwoFactor","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({name:Ft.meta(te),slug:a.string().min(1).max(100).nullable().default(null).meta(te),logo:a.string().url().nullable().default(null).meta(te),created_at:a.string().datetime().meta({...te,readOnly:true}),metadata:a.string().nullable().default(null).meta(te)}).meta({id:"AuthOrganization","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});var cz=a.enum(["viewer","collaborator","approver","admin"]).meta({id:"Role","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});var lz=a.enum(["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"]).meta({id:"PermissionResource","x-revturbine-schema-persistence":jS,"x-revturbine-schema-exposure":ln}),uz=a.enum(["read","create","update","delete","publish","approve","invite","manage_roles"]).meta({id:"PermissionAction","x-revturbine-schema-persistence":jS,"x-revturbine-schema-exposure":ln});a.object({resource:lz,action:uz}).meta({id:"Permission","x-revturbine-schema-persistence":jS,"x-revturbine-schema-exposure":ln});var _3=["tenant","plans","entitlements","placements","targeting","content","experiments","audit","settings"],v3=["plans","entitlements","placements","targeting","content","experiments"],y3=["plans","entitlements","placements","targeting","content","experiments"],x3=["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"],S3=["read","create","update","delete","publish","approve","invite","manage_roles"];function $p(e,n){return e.flatMap(r=>n.map(o=>({resource:r,action:o})))}var I3=$p(_3,["read"]),P3=[...I3,...$p(v3,["create","update"])];[...P3,...$p(y3,["publish","approve","delete"])];$p(x3,S3);var k3=lz.options.flatMap(e=>uz.options.map(n=>`${e}:${n}`));a.enum(k3).meta({id:"McpTokenScope","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({organization_id:a.string().min(1).meta({...te,readOnly:true}),user_id:a.string().min(1).meta({...te,readOnly:true}),role:cz.default("viewer").meta(te),created_at:a.string().datetime().meta({...te,readOnly:true})}).meta({id:"AuthMember","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});var T3=a.enum(["pending","accepted","rejected","canceled","expired"]).meta({id:"InvitationStatus","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({organization_id:a.string().min(1).meta({...te,readOnly:true}),email:a.string().email().meta(xn),role:cz.nullable().default(null).meta(te),status:T3.default("pending").meta(te),expires_at:a.string().datetime().meta(te),created_at:a.string().datetime().meta({...te,readOnly:true}),inviter_id:a.string().min(1).meta({...te,readOnly:true})}).meta({id:"AuthInvitation","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({name:a.string().max(200).nullable().default(null).meta(te),public_key:a.string().min(1).meta({...xn,readOnly:true}),user_id:a.string().min(1).meta({...te,readOnly:true}),credential_id:a.string().min(1).meta({...te,readOnly:true}),counter:a.number().int().default(0).meta({...te,readOnly:true}),device_type:a.string().min(1).meta(te),backed_up:a.boolean().default(false).meta(te),transports:a.string().nullable().default(null).meta(te),created_at:a.string().datetime().meta({...te,readOnly:true}),aaguid:a.string().nullable().default(null).meta(te)}).meta({id:"AuthPasskey","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.merge(pe).extend({config_id:a.string().min(1).meta(te),name:a.string().max(200).nullable().default(null).meta(te),start:a.string().nullable().default(null).meta(te),reference_id:a.string().min(1).meta(te),prefix:a.string().nullable().default(null).meta(te),key:a.string().min(1).meta({...xn,readOnly:true}),refill_interval:a.number().int().nullable().default(null).meta(te),refill_amount:a.number().int().nullable().default(null).meta(te),last_refill_at:Et.meta({...te,readOnly:true}),enabled:a.boolean().default(true).meta(te),rate_limit_enabled:a.boolean().default(false).meta(te),rate_limit_time_window:a.number().int().nullable().default(null).meta(te),rate_limit_max:a.number().int().nullable().default(null).meta(te),request_count:a.number().int().default(0).meta({...te,readOnly:true}),remaining:a.number().int().nullable().default(null).meta({...te,readOnly:true}),last_request:Et.meta({...te,readOnly:true}),expires_at:Et.meta(te),permissions:a.string().nullable().default(null).meta(te),metadata:a.string().nullable().default(null).meta(te)}).meta({id:"AuthApiKey","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({issuer:a.string().min(1).meta(te),oidc_config:a.string().nullable().default(null).meta(te),saml_config:a.string().nullable().default(null).meta(te),user_id:a.string().min(1).meta({...te,readOnly:true}),provider_id:a.string().min(1).meta(te),organization_id:a.string().nullable().default(null).meta(te),domain:a.string().min(1).meta(te)}).meta({id:"AuthSsoProvider","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});var dz="0.2.44";var Sn=Object.freeze({colors:{primary:"#1e40af",primaryText:"#ffffff",secondary:"#f3f4f6",secondaryText:"#1f2937",accent:"#7c3aed",accentText:"#ffffff",background:"#ffffff",surface:"#f8fafc",surfaceBorder:"#e2e8f0",text:"#111827",textSecondary:"#4b5563",textMuted:"#6b7280",overlay:"rgba(0, 0, 0, 0.5)",success:"#16a34a",warning:"#f59e0b",danger:"#dc2626",info:"#60a5fa",toastBackground:"#1f2937",toastText:"#ffffff",cliBackground:"#1e1e1e",cliText:"#d4d4d4",cliLink:"#569cd6",track:"#e5e7eb"},typography:{fontFamily:"system-ui, -apple-system, sans-serif",fontFamilyMono:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',fontSize:"14px",fontSizeSmall:"13px",fontSizeHeader:"20px",fontSizeLargeHeader:"28px"},shape:{borderRadiusSmall:"6px",borderRadius:"8px",borderRadiusLarge:"12px"},shadows:{medium:"0 10px 40px rgba(0, 0, 0, 0.25)",large:"0 20px 60px rgba(0, 0, 0, 0.3)"}});function di(e){return e?{id:e.id??Sn.id,name:e.name??Sn.name,version:e.version??Sn.version,colors:{...Sn.colors,...e.colors},typography:{...Sn.typography,...e.typography},shape:{...Sn.shape,...e.shape},shadows:{...Sn.shadows,...e.shadows}}:{...Sn}}var mz=createContext(Sn);function US({theme:e,children:n}){return jsx(mz.Provider,{value:e,children:n})}function gt(){return useContext(mz)}var z3={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 24px",lineHeight:"1.5",zIndex:9990,width:"100%",boxSizing:"border-box"},j3={display:"flex",flexDirection:"column",gap:"2px",flex:1},U3={display:"flex",alignItems:"center",gap:"8px",marginLeft:"16px",flexShrink:0};function Oo({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[c,l]=useState(false),[d,m]=useState(o);o&&!d&&l(false),o!==d&&m(o);let p=e.position||"top",f=e.dismissible!==false,g=useCallback(()=>{l(true),r();},[r]),h=useMemo(()=>{let{colors:x,typography:S,shape:w}=s;return {banner:{...z3,backgroundColor:x.primary,color:x.primaryText,fontFamily:S.fontFamily,fontSize:S.fontSize,position:"sticky",...p==="bottom"?{bottom:0}:{top:0}},header:{fontWeight:600,fontSize:"15px"},body:{opacity:.9},cta:{padding:"6px 16px",backgroundColor:x.primaryText,color:x.primary,border:"none",borderRadius:w.borderRadiusSmall,fontWeight:600,fontSize:S.fontSizeSmall,cursor:"pointer",whiteSpace:"nowrap"},dismiss:{padding:"4px 8px",background:"transparent",border:"none",color:x.primaryText,fontSize:"18px",cursor:"pointer",opacity:.7,lineHeight:1}}},[s,p]);return !o||c?null:jsxs("div",{className:t,style:{...h.banner,...i},role:"banner","data-rt-placement":"banner",children:[jsxs("div",{style:j3,children:[e.header&&jsx("div",{style:h.header,children:e.header}),(e.body||e.message)&&jsx("div",{style:h.body,children:e.body||e.message})]}),jsxs("div",{style:U3,children:[e.cta_label&&jsx("button",{type:"button",style:h.cta,onClick:n,children:e.cta_label}),f&&jsx("button",{type:"button",style:h.dismiss,onClick:g,"aria-label":"Dismiss",children:"\xD7"})]})]})}Oo.displayName="BannerSlot";var F3={position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999},N3={width:"100%",maxHeight:"200px",objectFit:"cover",marginBottom:"16px"},L3={display:"flex",gap:"12px",justifyContent:"flex-end"};function jo({content:e,onCtaClick:n,onSecondaryCtaClick:r,onDismiss:o,visible:t,className:i,style:s}){let c=gt(),l=useRef(null),d=e.style||"optional",[m,p]=useState(false),f=useRef(t);useEffect(()=>{t&&!f.current&&p(false),f.current=t;},[t]);let g=useCallback(()=>{p(true),o();},[o]),h=useCallback(w=>{d==="optional"&&w.target===w.currentTarget&&g();},[d,g]),x=useCallback(w=>{w.key==="Escape"&&d==="optional"&&g();},[d,g]);useEffect(()=>{if(t)return document.addEventListener("keydown",x),l.current?.focus(),()=>document.removeEventListener("keydown",x)},[t,x]);let S=useMemo(()=>{let{colors:w,typography:$,shape:E,shadows:P}=c;return {overlay:{...F3,backgroundColor:w.overlay,fontFamily:$.fontFamily},dialog:{position:"relative",maxWidth:"480px",width:"90%",backgroundColor:w.background,borderRadius:E.borderRadiusLarge,boxShadow:P.large,padding:"32px",boxSizing:"border-box"},close:{position:"absolute",top:"12px",right:"12px",background:"transparent",border:"none",fontSize:"20px",color:w.textMuted,cursor:"pointer",padding:"4px 8px",lineHeight:1},image:{...N3,borderRadius:E.borderRadius},header:{fontSize:$.fontSizeHeader,fontWeight:700,color:w.text,marginBottom:"8px",lineHeight:1.3},body:{fontSize:"15px",color:w.textSecondary,lineHeight:1.6,marginBottom:"24px"},primaryBtn:{padding:"10px 24px",backgroundColor:w.primary,color:w.primaryText,border:"none",borderRadius:E.borderRadius,fontWeight:600,fontSize:$.fontSize,cursor:"pointer"},secondaryBtn:{padding:"10px 24px",backgroundColor:"transparent",color:w.textSecondary,border:`1px solid ${w.surfaceBorder}`,borderRadius:E.borderRadius,fontWeight:500,fontSize:$.fontSize,cursor:"pointer"}}},[c]);return !t||m?null:jsx("div",{style:S.overlay,onClick:h,role:"dialog","aria-modal":"true","aria-label":typeof e.header=="string"?e.header:"Placement","data-rt-placement":"modal",children:jsxs("div",{ref:l,className:i,style:{...S.dialog,...s},tabIndex:-1,children:[d==="optional"&&jsx("button",{type:"button",style:S.close,onClick:g,"aria-label":"Close",children:"\xD7"}),e.image_url&&jsx("img",{src:e.image_url,alt:"",style:S.image}),e.header&&jsx("div",{style:S.header,children:e.header}),e.body&&jsx("div",{style:S.body,children:e.body}),jsxs("div",{style:L3,children:[e.secondary_cta_label&&r&&jsx("button",{type:"button",style:S.secondaryBtn,onClick:r,children:e.secondary_cta_label}),e.cta_label&&jsx("button",{type:"button",style:S.primaryBtn,onClick:n,children:e.cta_label})]})]})})}jo.displayName="ModalSlot";var B3={width:"100%",maxHeight:"180px",objectFit:"cover",marginBottom:"12px"};function Hl({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt(),s=useMemo(()=>{let{colors:c,typography:l,shape:d}=i;return {container:{backgroundColor:c.surface,border:`1px solid ${c.surfaceBorder}`,borderRadius:d.borderRadius,padding:"20px",fontFamily:l.fontFamily,boxSizing:"border-box"},header:{fontSize:"16px",fontWeight:600,color:c.text,marginBottom:"6px",lineHeight:1.4},body:{fontSize:l.fontSize,color:c.textSecondary,lineHeight:1.6,marginBottom:"16px"},image:{...B3,borderRadius:d.borderRadiusSmall},cta:{padding:"8px 20px",backgroundColor:c.primary,color:c.primaryText,border:"none",borderRadius:d.borderRadiusSmall,fontWeight:600,fontSize:l.fontSizeSmall,cursor:"pointer"}}},[i]);return r?jsxs("div",{className:o,style:{...s.container,...t},"data-rt-placement":"inline-embed",children:[e.image_url&&jsx("img",{src:e.image_url,alt:"",style:s.image}),e.header&&jsx("div",{style:s.header,children:e.header}),(e.body||e.message)&&jsx("div",{style:s.body,children:e.body||e.message}),e.cta_label&&jsx("button",{type:"button",style:s.cta,onClick:n,children:e.cta_label})]}):null}Hl.displayName="InlineEmbedSlot";function mi(e){return jsx(Hl,{...e})}mi.displayName="InPageSlot";var _z={"top-right":{top:"16px",right:"16px"},"bottom-right":{bottom:"16px",right:"16px"},"bottom-center":{bottom:"16px",left:"50%",transform:"translateX(-50%)"}},G3={position:"absolute",zIndex:9995,maxWidth:"380px",width:"90%",lineHeight:1.5,display:"flex",alignItems:"center",gap:"12px",boxSizing:"border-box"},J3={flex:1};function Uo({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[c,l]=useState(o),[d,m]=useState(o);o&&!d&&l(true),o!==d&&m(o);let p=e.position||"bottom-right",f=typeof e.duration=="number"?e.duration:5,g=useCallback(()=>{l(false),r();},[r]);useEffect(()=>{if(!c||f<=0)return;let S=setTimeout(()=>{g();},f*1e3);return ()=>clearTimeout(S)},[c,f,g]);let h=useMemo(()=>{let{colors:S,typography:w,shape:$,shadows:E}=s;return {container:{...G3,backgroundColor:S.toastBackground,color:S.toastText,borderRadius:$.borderRadius,boxShadow:E.medium,padding:"14px 18px",fontFamily:w.fontFamily,fontSize:w.fontSize},cta:{color:S.info,background:"transparent",border:"none",fontWeight:600,fontSize:w.fontSizeSmall,cursor:"pointer",whiteSpace:"nowrap",textDecoration:"underline",padding:0},close:{background:"transparent",border:"none",color:S.textMuted,fontSize:"16px",cursor:"pointer",padding:"2px 4px",lineHeight:1,flexShrink:0}}},[s]);if(!c)return null;let x=_z[p]??_z["bottom-right"];return jsxs("div",{className:t,style:{...h.container,...x,...i},role:"status","aria-live":"polite","data-rt-placement":"toast",children:[jsx("div",{style:J3,children:e.message||e.body||e.header}),e.cta_label&&jsx("button",{type:"button",style:h.cta,onClick:n,children:e.cta_label}),jsx("button",{type:"button",style:h.close,onClick:g,"aria-label":"Close",children:"\xD7"})]})}Uo.displayName="ToastSlot";function Ao({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt();if(!r)return null;let s=e.style||"primary",c={padding:"8px 20px",border:"none",borderRadius:i.shape.borderRadiusSmall,fontWeight:600,fontSize:i.typography.fontSize,cursor:"pointer",fontFamily:i.typography.fontFamily,whiteSpace:"nowrap",lineHeight:1.4},l={primary:{...c,backgroundColor:i.colors.primary,color:i.colors.primaryText},secondary:{...c,backgroundColor:i.colors.secondary,color:i.colors.secondaryText,border:`1px solid ${i.colors.surfaceBorder}`},accent:{...c,backgroundColor:i.colors.accent,color:i.colors.accentText}},d=l[s]??l.primary;return jsx("button",{type:"button",className:o,style:{...d,...t},onClick:n,"data-rt-placement":"button",children:e.cta_label||"Upgrade"})}Ao.displayName="ButtonSlot";function BS(e){if(typeof e.usage_percent=="number")return e.usage_percent;let n=typeof e.usage_current=="number"?e.usage_current:0,r=typeof e.usage_limit=="number"?e.usage_limit:100;return r>0?Math.min(100,Math.round(n/r*100)):0}function vz(e,n){return e>=90?n.colors.danger:e>=70?n.colors.warning:n.colors.primary}function Y3({content:e,theme:n}){let r=BS(e),o=e.usage_current??r,t=e.usage_limit??100;return jsxs(Fragment,{children:[jsxs("div",{style:{fontSize:n.typography.fontSizeSmall,color:n.colors.textMuted,marginBottom:"8px",display:"flex",justifyContent:"space-between",alignItems:"baseline"},children:[jsx("span",{children:typeof e.header=="string"?e.header:"Usage"}),jsxs("span",{style:{fontWeight:600,color:n.colors.text},children:[String(o)," / ",String(t)]})]}),jsx("div",{style:{width:"100%",height:"8px",backgroundColor:n.colors.track,borderRadius:n.shape.borderRadiusSmall,overflow:"hidden",marginBottom:"12px"},children:jsx("div",{style:{height:"100%",borderRadius:n.shape.borderRadiusSmall,transition:"width 0.3s ease",width:`${Math.min(100,r)}%`,backgroundColor:vz(r,n)}})})]})}function Q3({content:e,theme:n}){let r=e.usage_current??0,o=e.usage_limit??100;return jsxs(Fragment,{children:[jsxs("div",{style:{fontSize:"24px",fontWeight:700,color:n.colors.text,marginBottom:"4px"},children:[String(r)," / ",String(o)]}),jsx("div",{style:{fontSize:n.typography.fontSizeSmall,color:n.colors.textMuted,marginBottom:"12px"},children:typeof e.header=="string"?e.header:"Usage"})]})}var Or=80,LS=8,VS=(Or-LS)/2,NS=2*Math.PI*VS;function eZ({content:e,theme:n}){let r=BS(e),o=e.usage_current??r,t=e.usage_limit??100,i=NS-r/100*NS,s=vz(r,n);return jsxs("div",{style:{display:"flex",alignItems:"center",gap:"16px",marginBottom:"12px"},children:[jsxs("svg",{width:Or,height:Or,style:{flexShrink:0},children:[jsx("circle",{cx:Or/2,cy:Or/2,r:VS,fill:"none",stroke:n.colors.track,strokeWidth:LS}),jsx("circle",{cx:Or/2,cy:Or/2,r:VS,fill:"none",stroke:s,strokeWidth:LS,strokeLinecap:"round",strokeDasharray:NS,strokeDashoffset:i,transform:`rotate(-90 ${Or/2} ${Or/2})`,style:{transition:"stroke-dashoffset 0.3s ease"}}),jsxs("text",{x:Or/2,y:Or/2+1,textAnchor:"middle",dominantBaseline:"central",fontSize:"16",fontWeight:"700",fill:n.colors.text,children:[r,"%"]})]}),jsxs("div",{children:[jsxs("div",{style:{fontSize:n.typography.fontSize,fontWeight:600,color:n.colors.text},children:[String(o)," / ",String(t)]}),jsx("div",{style:{fontSize:n.typography.fontSizeSmall,color:n.colors.textMuted},children:typeof e.header=="string"?e.header:"Usage"})]})]})}function vs({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt();if(!r)return null;let s=e.display_style||"progress_bar",c=typeof e.show_at=="number"?e.show_at:0,l=BS(e);if(c>0&&l<c)return null;let d={backgroundColor:i.colors.surface,border:`1px solid ${i.colors.surfaceBorder}`,borderRadius:i.shape.borderRadius,padding:"16px 20px",fontFamily:i.typography.fontFamily,boxSizing:"border-box"},m={padding:"6px 16px",backgroundColor:i.colors.primary,color:i.colors.primaryText,border:"none",borderRadius:i.shape.borderRadiusSmall,fontWeight:600,fontSize:i.typography.fontSizeSmall,cursor:"pointer"};return jsxs("div",{className:o,style:{...d,...t},"data-rt-placement":"quota-meter",children:[s==="numeric_counter"?jsx(Q3,{content:e,theme:i}):s==="circular_gauge"?jsx(eZ,{content:e,theme:i}):jsx(Y3,{content:e,theme:i}),e.cta_label&&jsx("button",{type:"button",style:m,onClick:n,children:e.cta_label})]})}vs.displayName="QuotaMeterSlot";var tZ={maxWidth:"800px",margin:"0 auto",padding:"40px 24px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},nZ={fontSize:"28px",fontWeight:700,color:"#111827",textAlign:"center",marginBottom:"12px",lineHeight:1.3},rZ={fontSize:"16px",color:"#4b5563",textAlign:"center",lineHeight:1.6,marginBottom:"32px",maxWidth:"600px",marginLeft:"auto",marginRight:"auto"},iZ={display:"flex",justifyContent:"center",gap:"16px"},oZ={padding:"12px 32px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"8px",fontWeight:600,fontSize:"16px",cursor:"pointer"},aZ={padding:"12px 32px",backgroundColor:"transparent",color:"#4b5563",border:"1px solid #d1d5db",borderRadius:"8px",fontWeight:500,fontSize:"16px",cursor:"pointer"};function ys({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){return o?jsxs("div",{className:t,style:{...tZ,...i},"data-rt-placement":"full-page",children:[e.header&&jsx("h1",{style:nZ,children:e.header}),e.body&&jsx("p",{style:rZ,children:e.body}),jsxs("div",{style:iZ,children:[e.cta_label&&jsx("button",{type:"button",style:oZ,onClick:n,children:e.cta_label}),e.secondary_cta_label&&r&&jsx("button",{type:"button",style:aZ,onClick:r,children:e.secondary_cta_label})]})]}):null}ys.displayName="FullPageSlot";var sZ={backgroundColor:"#1e1e1e",color:"#d4d4d4",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',fontSize:"13px",lineHeight:1.6,padding:"16px 20px",borderRadius:"6px",boxSizing:"border-box"},cZ={whiteSpace:"pre-wrap",marginBottom:"12px"},lZ={display:"flex",gap:"16px"},Sz={color:"#569cd6",background:"transparent",border:"none",cursor:"pointer",fontFamily:"inherit",fontSize:"inherit",padding:0,textDecoration:"underline"};function Kl({content:e,onCtaClick:n,visible:r,className:o,style:t}){if(!r)return null;let i=e.message||e.body||"",s=e.action_links,c=Array.isArray(s)?s.filter(l=>typeof l=="string"):[];return jsxs("div",{className:o,style:{...sZ,...t},"data-rt-placement":"cli",children:[i&&jsx("div",{style:cZ,children:i}),(c.length>0||e.cta_label)&&jsxs("div",{style:lZ,children:[e.cta_label&&jsx("button",{type:"button",style:Sz,onClick:n,children:e.cta_label}),c.map(l=>jsx("button",{type:"button",style:Sz,onClick:n,children:l},l))]})]})}Kl.displayName="CliSlot";var uZ={backgroundColor:"#ffffff",border:"1px solid #e2e8f0",borderRadius:"8px",padding:"16px 20px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},dZ={display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:"4px"},mZ={fontSize:"13px",color:"#6b7280"},pZ={fontSize:"28px",fontWeight:700,color:"#111827"},fZ={fontSize:"12px",color:"#9ca3af",marginBottom:"12px"},gZ={width:"100%",height:"6px",backgroundColor:"#e5e7eb",borderRadius:"3px",overflow:"hidden",marginBottom:"12px"},hZ={height:"100%",borderRadius:"3px",transition:"width 0.3s ease"},bZ={display:"flex",gap:"8px"},_Z={padding:"6px 16px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"6px",fontWeight:600,fontSize:"13px",cursor:"pointer"};function vZ(e,n){if(n<=0)return "#1e40af";let r=e/n*100;return r<=10?"#dc2626":r<=25?"#f59e0b":"#1e40af"}function Gl({content:e,onCtaClick:n,visible:r,className:o,style:t}){if(!r)return null;let i=typeof e.credits_remaining=="number"?e.credits_remaining:0,s=typeof e.credits_total=="number"?e.credits_total:i,c=typeof e.show_at=="number"?e.show_at:0,l=e.show_burn_rate===true,d=e.display_style||"numeric_balance";if(c>0&&i>c)return null;let m=s>0?i/s*100:0;return jsxs("div",{className:o,style:{...uZ,...t},"data-rt-placement":"credit-balance",children:[jsxs("div",{style:dZ,children:[jsx("span",{style:mZ,children:typeof e.header=="string"?e.header:"Credits Remaining"}),jsx("span",{style:pZ,children:String(i)})]}),l&&typeof e.burn_rate_label=="string"&&jsx("div",{style:fZ,children:e.burn_rate_label}),(d==="balance_bar"||d==="balance_burn_rate")&&s>0&&jsx("div",{style:gZ,children:jsx("div",{style:{...hZ,width:`${Math.min(100,m)}%`,backgroundColor:vZ(i,s)}})}),jsx("div",{style:bZ,children:e.cta_label&&jsx("button",{type:"button",style:_Z,onClick:n,children:e.cta_label})})]})}Gl.displayName="CreditBalanceSlot";var xZ={position:"absolute",top:"16px",right:"16px"};function SZ(e,n,r){return n==="top"?{position:"fixed",left:`${e.left+e.width/2}px`,top:`${e.top-r}px`,transform:"translate(-50%, -100%)"}:n==="left"?{position:"fixed",left:`${e.left-r}px`,top:`${e.top+e.height/2}px`,transform:"translate(-100%, -50%)"}:n==="right"?{position:"fixed",left:`${e.left+e.width+r}px`,top:`${e.top+e.height/2}px`,transform:"translate(0, -50%)"}:{position:"fixed",left:`${e.left+e.width/2}px`,top:`${e.top+e.height+r}px`,transform:"translate(-50%, 0)"}}function Jl({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[c,l]=useState(false),[d,m]=useState(null),p=e.anchor_selector||void 0,f=e.position||"top",g=typeof e.anchor_gap=="number"?e.anchor_gap:10,h=useCallback(()=>{if(!p||typeof window>"u"){m(null);return}let $=window.document.querySelector(p);if(!$){m(null);return}let E=$.getBoundingClientRect();m({top:E.top,left:E.left,width:E.width,height:E.height});},[p]);useEffect(()=>{o&&l(false);},[o]),useEffect(()=>{if(!o||(h(),typeof window>"u"))return;let $=()=>h();return window.addEventListener("resize",$),window.addEventListener("scroll",$,true),()=>{window.removeEventListener("resize",$),window.removeEventListener("scroll",$,true);}},[o,h]);let x=useCallback(()=>{l(true),r();},[r]),S=useMemo(()=>{let{colors:$,typography:E,shape:P,shadows:I}=s;return {container:{zIndex:9996,maxWidth:"320px",width:"max-content",lineHeight:1.45,display:"flex",flexDirection:"column",gap:"10px",boxSizing:"border-box",backgroundColor:$.toastBackground,color:$.toastText,borderRadius:P.borderRadius,boxShadow:I.medium,padding:"12px 14px",fontFamily:E.fontFamily,fontSize:E.fontSizeSmall},body:{margin:0},actions:{display:"flex",alignItems:"center",gap:"10px"},cta:{color:$.info,background:"transparent",border:"none",fontWeight:600,fontSize:E.fontSizeSmall,cursor:"pointer",textDecoration:"underline",padding:0},close:{marginLeft:"auto",background:"transparent",border:"none",color:$.textMuted,fontSize:"14px",cursor:"pointer",lineHeight:1,padding:"2px 4px"}}},[s]);if(!o||c)return null;let w=d?SZ(d,f,g):xZ;return jsxs("div",{className:t,style:{...S.container,...w,...i},role:"status","aria-live":"polite","data-rt-placement":"tooltip",children:[jsx("p",{style:S.body,children:e.message||e.body||e.header}),jsxs("div",{style:S.actions,children:[e.cta_label&&jsx("button",{type:"button",style:S.cta,onClick:n,children:e.cta_label}),jsx("button",{type:"button",style:S.close,onClick:x,"aria-label":"Close tooltip",children:"\xD7"})]})]})}Jl.displayName="TooltipSlot";function PZ(e){return e==="connected"?"#22c55e":e==="pending"?"#f59e0b":"#ef4444"}function kZ(e){return e==="connected"?"Connected":e==="pending"?"Pending":"Disconnected"}function Wl({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt(),s=e.connection_state||"disconnected",c=useMemo(()=>{let{colors:l,typography:d,shape:m,shadows:p}=i;return {card:{backgroundColor:l.surface,border:`1px solid ${l.surfaceBorder}`,borderRadius:m.borderRadius,boxShadow:p.medium,padding:"16px",display:"flex",flexDirection:"column",gap:"12px",fontFamily:d.fontFamily,maxWidth:"420px"},row:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px"},heading:{margin:0,color:l.text,fontSize:"15px",fontWeight:600},body:{margin:0,color:l.textSecondary,fontSize:d.fontSizeSmall,lineHeight:1.45},badge:{display:"inline-flex",alignItems:"center",gap:"6px",borderRadius:"999px",border:`1px solid ${l.surfaceBorder}`,padding:"3px 8px",fontSize:"12px",color:l.textSecondary},dot:{width:"8px",height:"8px",borderRadius:"50%",backgroundColor:PZ(s)},cta:{alignSelf:"flex-start",backgroundColor:l.primary,color:l.primaryText,border:"none",borderRadius:m.borderRadiusSmall,padding:"7px 12px",fontWeight:600,fontSize:d.fontSizeSmall,cursor:"pointer"}}},[i,s]);return r?jsxs("section",{className:o,style:{...c.card,...t},"data-rt-placement":"agent-connector",children:[jsxs("div",{style:c.row,children:[jsx("h3",{style:c.heading,children:e.header||"Connect your assistant"}),jsxs("span",{style:c.badge,children:[jsx("span",{style:c.dot}),kZ(s)]})]}),jsx("p",{style:c.body,children:e.body||"Enable your agent connector to automate premium workflows."}),e.cta_label&&jsx("button",{type:"button",style:c.cta,onClick:n,children:e.cta_label})]}):null}Wl.displayName="AgentConnectorSlot";var Yl=(e,n="")=>e==null||e===""?n:String(e);function $Z(e){let n=[];return e.cta_label&&n.push({kind:"primary",label:e.cta_label}),e.secondary_cta_label&&n.push({kind:"secondary",label:e.secondary_cta_label}),n}var HS={fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.05em",color:"#94a3b8"};function KS({content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:o,accentText:t}){let i=$Z(e);if(i.length===0)return null;let s={padding:"5px 12px",borderRadius:"6px",fontSize:"12px",fontWeight:600,cursor:"pointer",whiteSpace:"nowrap"};return jsx("div",{style:{display:"flex",gap:"8px",marginTop:"8px",alignItems:"center"},children:i.map(c=>c.kind==="primary"?jsx("button",{type:"button","data-rt-cta":"primary",onClick:n,style:{...s,backgroundColor:o,color:t,border:"none"},children:c.label},"primary"):r&&jsx("button",{type:"button","data-rt-cta":"secondary",onClick:r,style:{...s,backgroundColor:"transparent",color:o,border:`1px solid ${o}`},children:c.label},"secondary"))})}function GS(){let e=gt();return useMemo(()=>({accent:e.colors.primary,accentText:e.colors.primaryText}),[e])}function Op({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=GS();return o?jsxs("div",{className:t,"data-rt-placement":"email",style:{borderRadius:"8px",border:"1px solid #e2e8f0",backgroundColor:"#ffffff",...i},children:[jsxs("div",{style:{borderBottom:"1px solid #f1f5f9",padding:"8px 12px"},children:[jsx("p",{style:{...HS,margin:0},children:"Email preview"}),jsx("p",{style:{margin:"2px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Yl(e.subject,"(no subject)")})]}),jsxs("div",{style:{padding:"8px 12px",fontSize:"12px",color:"#475569",whiteSpace:"pre-wrap"},children:[Yl(e.body,"(empty body)"),jsx(KS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]})]}):null}Op.displayName="EmailPreviewSlot";function zp({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=GS();return o?jsxs("div",{className:t,"data-rt-placement":"sms",style:{borderRadius:"8px",border:"1px solid #e2e8f0",backgroundColor:"#f8fafc",padding:"12px",...i},children:[jsx("p",{style:{...HS,margin:0},children:"SMS preview"}),jsx("div",{style:{display:"inline-block",maxWidth:"85%",marginTop:"4px",borderRadius:"16px",backgroundColor:"#dcfce7",padding:"8px 12px",fontSize:"12px",color:"#1e293b"},children:Yl(e.body??e.message,"(empty message)")}),jsx(KS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}zp.displayName="SmsPreviewSlot";function jp({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=GS();return o?jsxs("div",{className:t,"data-rt-placement":"push",style:{borderRadius:"8px",border:"1px solid #e2e8f0",backgroundColor:"#ffffff",padding:"12px",boxShadow:"0 1px 2px rgba(0,0,0,0.05)",...i},children:[jsx("p",{style:{...HS,margin:0},children:"Push preview"}),jsx("p",{style:{margin:"4px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Yl(e.header??e.title,"(no title)")}),jsx("p",{style:{margin:0,fontSize:"12px",color:"#475569"},children:Yl(e.body,"(empty body)")}),jsx(KS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}jp.displayName="PushPreviewSlot";function xs(e){e.register({id:"banner",label:"Banner",description:"Full-width banner placement at the top or bottom of the page.",surfaceType:"banner",component:Oo,defaultProps:{content:{position:"top",dismissible:true}}}),e.register({id:"modal",label:"Modal Overlay",description:"Centered overlay dialog. Supports optional (dismissible) and blocking modes.",surfaceType:"modal",component:jo}),e.register({id:"in_page",label:"Inline Embed",description:"Content card or message embedded in the page flow.",surfaceType:"in_page",component:mi}),e.register({id:"plans_cta",label:"Plans CTA",description:"Pricing page CTA-focused module with concise upgrade actions.",surfaceType:"in_page",component:mi,priority:30,accepts:n=>n.surface.type==="in_page"&&typeof n.surface.template=="string"&&["plans_cta","pricing_page_cta","plans_pricing_cta"].includes(n.surface.template)}),e.register({id:"plans_full",label:"Plans Full Page",description:"Dedicated plans and pricing full-page experience.",surfaceType:"full_page",component:ys,priority:30,accepts:n=>typeof n.surface.template=="string"&&["plans_full","pricing_page_full","plans_pricing_full"].includes(n.surface.template)}),e.register({id:"inline_gate_message",label:"Inline Gate Message",description:"Inline entitlement gate message with upgrade CTA.",surfaceType:"in_page",component:mi,priority:40,accepts:n=>n.surface.type==="in_page"&&typeof n.surface.template=="string"&&["inline_gate_message","inline_feature_gate","feature_gate_inline"].includes(n.surface.template)}),e.register({id:"tooltip",label:"Tooltip",description:"Compact tooltip-like guidance near a feature surface.",surfaceType:"toast",component:Jl,priority:50,accepts:n=>{let r=typeof n.surface.template=="string"?n.surface.template:"";return r==="tooltip"||r==="feature_tooltip"||r==="inline_tooltip"},defaultProps:{content:{position:"top-right",duration:0}}}),e.register({id:"toast",label:"Toast Notification",description:"Small transient notification that auto-dismisses.",surfaceType:"toast",component:Uo,defaultProps:{content:{position:"bottom-right",duration:5}}}),e.register({id:"button",label:"Button",description:"Persistent button in the product navigation or UI.",surfaceType:"button",component:Ao,defaultProps:{content:{style:"primary"}}}),e.register({id:"full_page",label:"Full Page",description:"Dedicated managed page (e.g. plans & pricing).",surfaceType:"full_page",component:ys}),e.register({id:"quota_meter",label:"Quota Meter",description:"Visual usage meter with upgrade CTA. Triggers at configurable threshold.",surfaceType:"in_page",component:vs,accepts:n=>n.surface.type==="in_page"&&(n.surface.template==="quota_meter"||n.surface.template==="quota_meter_counter_upgrade_button")}),e.register({id:"trial_counter",label:"Trial Counter",description:"Trial countdown/counter with conversion CTA.",surfaceType:"in_page",component:vs,priority:35,accepts:n=>n.surface.type==="in_page"&&typeof n.surface.template=="string"&&["trial_counter","trial_countdown","trial_days_counter"].includes(n.surface.template),defaultProps:{content:{display_style:"numeric_counter"}}}),e.register({id:"cli",label:"CLI Message",description:"Message in a CLI or chat-style interface with action links.",surfaceType:"cli",component:Kl}),e.register({id:"email",label:"Email Preview",description:"Static email channel preview (subject + body + CTAs).",surfaceType:"email",component:Op}),e.register({id:"sms",label:"SMS Preview",description:"Static SMS channel preview (message bubble + CTAs).",surfaceType:"sms",component:zp}),e.register({id:"push",label:"Push Preview",description:"Static push-notification channel preview (title + body + CTAs).",surfaceType:"push",component:jp}),e.register({id:"agent_connector",label:"Agent Connector",description:"Agent-surface placement for assistant/connector experiences.",surfaceType:"agent",component:Wl,priority:30,accepts:n=>{let r=typeof n.surface.template=="string"?n.surface.template:"";return n.surface.type==="agent"||r==="agent_connector"}}),e.register({id:"credit_balance",label:"Credit Balance Counter",description:"Depleting credit balance display with purchase/upgrade CTA.",surfaceType:"in_page",component:Gl,accepts:n=>n.surface.type==="in_page"&&(n.surface.template==="credit_balance_counter"||n.surface.template==="credit_balance")});}var wZ=new Set(["type","plan_handle","promotion_id","placement_handle","url","tour_id"]),Fo=class{constructor(){O(this,"types",new Map);O(this,"surfaceIndex",new Map);}register(n){let r=this.types.get(n.id);r&&console.warn(`[RevTurbine] Replacing existing placement slot type id ${n.id}.`,{previousSurfaceType:r.surfaceType,nextSurfaceType:n.surfaceType});let o={...n,priority:n.priority??0,accepts:n.accepts??(i=>i.surface.type===n.surfaceType)};this.types.set(o.id,o);let t=this.surfaceIndex.get(o.surfaceType)??[];t.includes(o.id)||(t.push(o.id),this.surfaceIndex.set(o.surfaceType,t));}unregister(n){let r=this.types.get(n);if(!r)return false;this.types.delete(n);let o=this.surfaceIndex.get(r.surfaceType);if(o){let t=o.filter(i=>i!==n);t.length>0?this.surfaceIndex.set(r.surfaceType,t):this.surfaceIndex.delete(r.surfaceType);}return true}get(n){return this.types.get(n)}resolve(n){if(n.surface.template){let t=this.types.get(n.surface.template);if(t)return t}let o=(this.surfaceIndex.get(n.surface.type)??[]).map(t=>this.types.get(t)).filter(t=>t!=null).sort((t,i)=>i.priority-t.priority);for(let t of o)if(t.accepts?.(n))return t;return this.types.get("custom")}listAll(){return Array.from(this.types.values())}listBySurfaceType(n){return (this.surfaceIndex.get(n)??[]).map(o=>this.types.get(o)).filter(Boolean)}has(n){return this.types.has(n)}};function JS(e,n){let r={current_usage:"usage_current",current_limit:"usage_limit",remaining_usage:"usage_remaining"},o=i=>{if(typeof i=="number"&&Number.isFinite(i))return i;if(typeof i=="string"&&i.trim().length>0){let s=Number(i);if(Number.isFinite(s))return s}},t=i=>{let s="_usage_remaining";if(i==="usage_remaining"){let m=o(n.usage_current??n.current_usage),p=o(n.usage_limit);return m!==void 0&&p!==void 0?Math.max(0,p-m):void 0}if(!i.endsWith(s))return;let c=i.slice(0,-s.length);if(!c)return;let l=o(n[`${c}_usage_current`]),d=o(n[`${c}_usage_limit`]);if(!(l===void 0||d===void 0))return Math.max(0,d-l)};return e.replace(/\{\{(\w+)\}\}/g,(i,s)=>{let c=r[s]??s,l=n[c];if(l!=null)return String(l);let d=t(c);return d!=null?String(d):`{{${s}}}`})}function Ss(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=JS(t,n):r[o]=t;return r}function Up(e){let n=typeof e.type=="string"&&e.type.length>0?e.type:"dismiss",r={};for(let[o,t]of Object.entries(e))wZ.has(o)||(r[o]=t);return {type:n,plan_handle:typeof e.plan_handle=="string"?e.plan_handle:void 0,promotion_id:typeof e.promotion_id=="string"?e.promotion_id:void 0,placement_handle:typeof e.placement_handle=="string"?e.placement_handle:void 0,url:typeof e.url=="string"?e.url:void 0,tour_id:typeof e.tour_id=="string"?e.tour_id:void 0,...Object.keys(r).length>0?{params:r}:{}}}function Ap(e){if(e)return {id:typeof e.id=="string"?e.id:"",name:typeof e.name=="string"?e.name:void 0,discount:typeof e.discount=="string"?e.discount:void 0,type:typeof e.type=="string"?e.type:void 0,status:typeof e.status=="string"?e.status:void 0}}var Ql=null;function Dp(){return Ql||(Ql=new Fo,xs(Ql)),Ql}function Rz(){Ql=null;}var eu={recommended_plan_handle:"",recommended_plan_name:""};function Cz(e){let{strategy:n,planOverride:r,currentPlanHandle:o,plans:t}=e;if(t.length===0)return eu;if(n==="custom"){let c=r??"";if(c===""||c===o)return eu;let l=t.find(d=>d.unique_handle===c);return l?{recommended_plan_handle:l.unique_handle,recommended_plan_name:l.name}:eu}if(o==="")return eu;let i=ph(o,t);if(i===null)return eu;let s=t.find(c=>c.unique_handle===i);return {recommended_plan_handle:i,recommended_plan_name:s?.name??i}}var WS="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Np=WS.length,RZ=Np-1,CZ=10,Fp=16;function EZ(e){let n=e,r="";for(let o=0;o<CZ;o+=1){let t=n%Np;r=WS[t]+r,n=Math.floor(n/Np);}return r}function Ez(){let e=new Uint8Array(Fp);crypto.getRandomValues(e);let n=new Array(Fp);for(let r=0;r<Fp;r+=1)n[r]=e[r]%Np;return n}function OZ(e){for(let n=e.length-1;n>=0;n-=1){if(e[n]<RZ)return e[n]+=1,true;e[n]=0;}return false}function Oz(){let e=-1,n=[];return {next(r=Date.now()){r<=e&&n.length===Fp?OZ(n)||(e+=1,n=Ez()):(e=r,n=Ez());let o=EZ(e);for(let t=0;t<n.length;t+=1)o+=WS[n[t]];return o}}}var XS=Oz();var zZ=new Set([408,429,500,502,503,504]);function jZ(e){return new Promise(n=>setTimeout(n,e))}async function YS(e,n={}){let r=n.retries??2,o=n.baseDelayMs??200,t=n.sleep??jZ,i;for(let s=0;s<=r;s+=1){try{let c=await e();if(c.ok)return {delivered:!0,status:c.status,attempts:s+1};if(!zZ.has(c.status))return {delivered:!1,status:c.status,attempts:s+1};i=new Error(`ingest_status_${c.status}`);}catch(c){i=c instanceof Error?c:new Error(String(c));}s<r&&await t(o*(s+1));}return {delivered:false,error:i,attempts:r+1}}function QS(){return {created:0,dropped:0,redacted:0,sampled:0,deduped:0,queued:0,sent:0,failed:0}}function zz(){let e=typeof IntersectionObserver<"u",n=new Map;function r(t,i,s,c){s.fired||(s.fired=true,s.timer!==null&&(clearTimeout(s.timer),s.timer=null),t.io.unobserve(i),t.tracked.delete(i),s.onExposed(c));}function o(t,i){let s=`${t}|${i}`,c=n.get(s);if(c)return c;let l=new Map,m={io:new IntersectionObserver(p=>{let f=n.get(s);if(f)for(let g of p){let h=l.get(g.target);!h||h.fired||(g.isIntersecting?h.minVisibleMs<=0?r(f,g.target,h,"viewport"):h.timer===null&&(h.timer=setTimeout(()=>r(f,g.target,h,"viewport"),h.minVisibleMs)):h.timer!==null&&(clearTimeout(h.timer),h.timer=null));}},{threshold:t,rootMargin:i}),tracked:l};return n.set(s,m),m}return {supported:e,observe(t,i,s){if(!e){let p=false;return Promise.resolve().then(()=>{p||s("render_fallback");}),()=>{p=true;}}let c=i.threshold??.5,l=i.rootMargin??"0px",d=o(c,l),m={onExposed:s,minVisibleMs:i.minVisibleMs??0,timer:null,fired:false};return d.tracked.set(t,m),d.io.observe(t),()=>{m.fired||(m.timer!==null&&(clearTimeout(m.timer),m.timer=null),d.io.unobserve(t),d.tracked.delete(t));}},disconnect(){for(let t of n.values())t.io.disconnect();n.clear();}}}var No=zz();var UZ="data-rt-event",AZ="data-rt-ref",DZ="data-rt-no-capture",jz="data-rt-prop-";var FZ=new Set(["password","file","hidden"]),NZ=/(^|\s)(cc-|current-password|new-password|one-time-code)/;function LZ(e){if(e.tagName.toLowerCase()!=="input")return false;let r=(e.getAttribute("type")??"text").toLowerCase();if(FZ.has(r))return true;let o=(e.getAttribute("autocomplete")??"").toLowerCase();return NZ.test(o)}function VZ(e,n){let r=n instanceof Document?n.documentElement.parentElement:n.parentElement,o=e,t=null;for(;o&&o!==r;){if(o instanceof HTMLElement){if(o.hasAttribute(DZ))return null;if(!t){let i=o.getAttribute(UZ);if(i){if(LZ(o))return null;t={el:o,event:i};}}}o=o.parentElement;}return t}function BZ(e,n,r){let o={},t=0;for(let s of Array.from(e.attributes)){if(t>=n)break;if(!s.name.startsWith(jz))continue;let c=s.name.slice(jz.length);c&&(o[c]=String(s.value).slice(0,r),t+=1);}let i=e.getAttribute(AZ);return i&&(o.ref=i.slice(0,r)),o}function eI(e,n,r={}){let o=r.events??["click"],t=r.maxProps??24,i=r.maxValueLen??256,s=c=>{let l=c.target;if(!(l instanceof Element))return;let d=VZ(l,e);d&&n(d.event,BZ(d.el,t,i));};for(let c of o)e.addEventListener(c,s,true);return ()=>{for(let c of o)e.removeEventListener(c,s,true);}}var Nz=new Set(xp.options);function Fre(e,n){return Mp(n,"defineUiPathResolvers(resolvers)")}function Mp(e,n){if(!e)return {};let r={};for(let[o,t]of Object.entries(e)){let i=String(o||"").trim();if(!i)throw new Error(`[RevTurbine] ${n} contains an empty action_type key.`);if(typeof t!="function")throw new Error(`[RevTurbine] ${n} contains a non-function resolver for action_type '${i}'.`);r[i]=t;}return r}var Uz={Server:"revturbine_server",CustomEndpoints:"custom_endpoints",LocalOnly:"local_only"};function Is(e){return e?.playbook??e?.exportedConfig}function Nre(e){return {...e,runtimeMode:"revturbine_server"}}function Lre(e){return {...e,runtimeMode:"custom_endpoints",endpointOverrides:e.endpointOverrides}}function MZ(e){let n=Mp(e.uiPathResolvers,"createLocalRuntimeConfig(uiPathResolvers)");return {...e,runtimeMode:"local_only",localRuntime:e.localRuntime,uiPathResolvers:n}}function Vre(e){return MZ(e)}function Bre(e,n,r={}){return {slotId:e,surfaceType:n,entitlementHandle:r.entitlementHandle,planHandle:r.planHandle,placementHandle:r.placementHandle}}function Mre(e,n={}){return {entitlementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,planHandle:n.planHandle,placementHandle:n.placementHandle}}function Zre(e,n={}){return {placementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,entitlementHandle:n.entitlementHandle,planHandle:n.planHandle}}function Wi(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function qre(e,n,r,o={}){return {userId:e,placementId:n,interactionType:r,treatmentId:o.treatmentId,interactionAt:o.interactionAt,metadata:o.metadata}}function Hre(e,n,r){return {eventType:e,payload:n,options:r}}var Az="revturbine:sdk-route-change",Bp="sdk_validation_warning",ZZ="revturbine:decision-cache",qZ="revturbine:interaction-state",HZ="revturbine:presentation-caps",KZ="/api/track",GZ="/api/sdk/meta",JZ="/api/events/interactions",WZ="/api/placements/interactions",XZ="revturbine-web-sdk",nI="user_context_observed",YZ=20,QZ=5e3;function Lz(e,n){let r=e[n];if(typeof r=="string"&&r.trim().length>0)return r;let o=Vz(e);if(o){let t=o[n];if(typeof t=="string"&&t.trim().length>0)return t}return null}function Vz(e){return oe(e.payload)?e.payload:null}var eq=["surface_slot_id","placement_id","payload_id","experiment_id","variant_key"];function tq(e){let n={};for(let r of eq)n[r]=Lz(e,r);return n}var nq=["placement_","gate_","slot_","engagement_"],rq=new Set(["impression","segment_enrolled","segment_unenrolled",nI]);function iq(e){let n=yc(e);return n===Bp?"derived":rq.has(n)||nq.some(r=>n.startsWith(r))?"automatic":"explicit"}var oq=["decision_id"];function aq(e){let n={};for(let r of oq)n[r]=Lz(e,r);return n}function sq(e){return ch(e,sI(8))}async function Dz(e){let n=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Ym(new Uint8Array(n))}function sI(e){let n=Math.ceil(e/2),r=new Uint8Array(n);crypto.getRandomValues(r);let o="";for(let t=0;t<r.length;t+=1){let i=r[t].toString(16).padStart(2,"0");o+=i;}return o.slice(0,e)}function en(){return typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${sI(16)}`}function Lp(){return Wa()?{}:{url:window.location.href,title:document.title,referrer:document.referrer||void 0}}function Fz(){return {id:void 0,custom:{},entitlements:{},usage:{},personalization:{}}}function cq(e,n){let r={};for(let[o,t]of Object.entries(n))(typeof t=="string"||typeof t=="number"||typeof t=="boolean")&&(r[o]=t);return wx(e,r)}function lq(e,n,r){if(e.length===0)return true;let o=new Map;for(let t of e){let i=r.get(t)??"__no_dim__",s=o.get(i)??[];s.push(t),o.set(i,s);}for(let t of o.values())if(!t.some(i=>n.has(i)))return false;return true}var rI=class{constructor(n){O(this,"exportedConfig");this.exportedConfig=n;}getExportedConfig(){return this.exportedConfig}},iI=class{constructor(n,r,o){O(this,"cached");O(this,"resolver");O(this,"legacyTargetDefaults");this.resolver=n,this.cached=o,this.legacyTargetDefaults=r;}getExportedConfig(){return this.cached}async refresh(){let n=vi(await this.resolver(),"localRuntime.resolvers.resolveExportedConfig()",this.legacyTargetDefaults);return n&&(this.cached=n),this.cached}},oI=class{constructor(n,r){O(this,"source");O(this,"legacyTargetDefaults");this.source=n,this.legacyTargetDefaults=r;}getExportedConfig(){return vi(this.source.getExportedConfig(),"configProvider.getExportedConfig()",this.legacyTargetDefaults)}async refresh(){let n=await this.source.refresh?.();return vi(n??this.source.getExportedConfig(),"configProvider.refresh()",this.legacyTargetDefaults)}},aI=class{constructor(n){O(this,"tenantId");O(this,"apiKey");O(this,"ingestPublicKey");O(this,"environmentId");O(this,"analyticsEnabled");O(this,"anonymousTelemetryEnabled");O(this,"telemetryConsent");O(this,"telemetryCounters",QS());O(this,"maxBatchSize");O(this,"flushIntervalMs");O(this,"flushTimer");O(this,"batchingTeardown",[]);O(this,"anonTelemetryNoticeShown",false);O(this,"piiRedactionWarned",false);O(this,"endpoint");O(this,"runtimeMode");O(this,"endpointOverrides");O(this,"localRuntime");O(this,"localStorageKey");O(this,"mode");O(this,"policy");O(this,"extensionEnabled");O(this,"placementBehavior");O(this,"providerFailureSlotBehavior");O(this,"uiPathResolvers");O(this,"persistentStore");O(this,"sessionStore");O(this,"anonymousId");O(this,"sessionId");O(this,"decisionCache",new Map);O(this,"interactionState",new Map);O(this,"interactionQueue",[]);O(this,"defaultDecisionTtlMs",6e4);O(this,"defaultDismissCooldownMs",1440*60*1e3);O(this,"defaultRemindLaterMs",3600*1e3);O(this,"defaultUsageWarningPercent",80);O(this,"defaultTrialExpiringDays",3);O(this,"events",[]);O(this,"placements",new Map);O(this,"syncedSurfaceSlotIds",new Set);O(this,"userContext");O(this,"pageContext");O(this,"usageBalances",{});O(this,"localDecisionsByPlacementId",new Map);O(this,"localPlacementsByLookupKey",new Map);O(this,"localEntitlementsByHandle",new Map);O(this,"localUserContextsByUserId",new Map);O(this,"localTrialStatus",{in_trial:false});O(this,"presentationCapsByKey",new Map);O(this,"usageLimitByEntitlement",new Map);O(this,"usageTokenPrefixByEntitlement",new Map);O(this,"segmentIdsByPredicateField",new Map);O(this,"configuredSegmentsById",new Map);O(this,"dirtySegmentIds",new Set);O(this,"segmentMembershipBySegmentId",new Map);O(this,"segmentMembershipUserId");O(this,"lastTrialTriggerStage","none");O(this,"configProvider");O(this,"branding");O(this,"apiBranding");O(this,"defaultLocalPlacementDecisionResolver");O(this,"sdkDisabledByProviderFailure",false);O(this,"sdkDisabledReason");O(this,"providerRegistry");O(this,"placementTypeRegistry");O(this,"impressionHistory");if(this.tenantId=n.tenantId,this.apiKey=n.apiKey,this.ingestPublicKey=n.ingestPublicKey,this.environmentId=n.environmentId?.trim()||"default",this.analyticsEnabled=n.analytics!==false,this.anonymousTelemetryEnabled=n.anonymousTelemetry!==false,this.telemetryConsent=n.telemetry?.consent??"granted",this.maxBatchSize=Math.max(1,n.eventBatching?.maxBatchSize??YZ),this.flushIntervalMs=Math.max(0,n.eventBatching?.flushIntervalMs??QZ),this.endpoint=n.endpoint.replace(/\/$/,""),this.runtimeMode=n.runtimeMode??Uz.Server,this.endpointOverrides=n.endpointOverrides??{},this.localRuntime=n.localRuntime,this.branding=n.branding,this.apiBranding=n.apiBranding,this.configProvider=this.resolveConfigProvider(n),this.localStorageKey=n.localRuntime?.storageKey??`revturbine:${this.tenantId}:local-runtime`,this.mode=n.mode,this.policy={inferUser:n.contextPolicy?.inferUser??true,inferPage:n.contextPolicy?.inferPage??true,routerAutoTrack:n.contextPolicy?.routerAutoTrack??true},this.extensionEnabled=!!n.extension?.enabled,this.placementBehavior={enableClientCapsEnforcement:n.placementBehavior?.enableClientCapsEnforcement??false,enableAutoGatedPlacement:n.placementBehavior?.enableAutoGatedPlacement??false,enableTrialAutoTriggers:n.placementBehavior?.enableTrialAutoTriggers??false},this.providerFailureSlotBehavior=n.providerFailureSlotBehavior??"invisible",this.uiPathResolvers=Mp(n.uiPathResolvers,"RevTurbineInitOptions.uiPathResolvers"),this.persistentStore=Li(n.persistentStorage),this.sessionStore=iS(n.sessionStorage),this.userContext={usage:{},...this.policy.inferUser?Fz():{},...n.user||{}},this.pageContext={...this.policy.inferPage?Lp():{},...n.page||{},tags:vc(n.page?.tags)},this.anonymousId=this.resolveAnonymousId(),this.sessionId=en(),this.providerRegistry=new xl,this.placementTypeRegistry=new Fo,this.impressionHistory=new Yx({store:new pp({storage:this.persistentStore,tenantId:this.tenantId}),userId:this.userContext.id??this.anonymousId}),xs(this.placementTypeRegistry),this.defaultLocalPlacementDecisionResolver=this.buildDefaultLocalPlacementDecisionResolver(),n.domainProviders)for(let r of n.domainProviders)this.providerRegistry.register(r);this.assertUiPathResolverCoverageOrThrow(),this.hydrateDecisionCache(),this.hydrateInteractionState(),this.hydratePresentationCaps(),this.hydrateLocalRuntimeState(),this.impressionHistory.hydrate(),this.rebuildSegmentPredicateFieldIndex(),this.refreshExportedConfigSnapshot(),this.recalculateDerivedUsageTraits(),zn()&&this.policy.routerAutoTrack&&this.installRouteTracking(),zn()&&this.extensionEnabled&&this.installBridge(),this.capture("page_view",{mode:this.mode,runtime_mode:this.runtimeMode,source:"sdk_init",placement_behavior_flags:this.placementBehavior}),this.startEventBatchFlushing(),this.emitSdkInitTelemetry();}isLocalOnlyMode(){return this.runtimeMode===Uz.LocalOnly}resolveConfigProvider(n){let r={tenantId:n.tenantId,environmentId:n.environmentId??"default"};if(n.configProvider)return new oI(n.configProvider,r);let o=vi(Is(n.localRuntime),"localRuntime.playbook",r),t=n.localRuntime?.resolvers?.resolveExportedConfig;if(t)return new iI(t,r,o);if(o)return new rI(o)}async refreshExportedConfigSnapshot(){try{await this.configProvider?.refresh?.(),this.rebuildSegmentPredicateFieldIndex();}catch{}}getConfiguredExportedConfig(){return this.configProvider?.getExportedConfig()}rebuildSegmentPredicateFieldIndex(){this.segmentIdsByPredicateField.clear(),this.configuredSegmentsById.clear();let r=this.getConfiguredExportedConfig()?.segments??[];for(let o of r)if(this.configuredSegmentsById.set(o.handle,o),!(!o.predicates||o.predicates.length===0))for(let t of o.predicates){let i=String(t.field||"").trim();if(!i)continue;let s=this.segmentIdsByPredicateField.get(i)??new Set;s.add(o.handle),this.segmentIdsByPredicateField.set(i,s);}this.markAllSegmentsDirty();}buildDefaultLocalPlacementDecisionResolver(){if(!this.isLocalOnlyMode()||this.localRuntime?.resolvers?.getPlacementDecision)return;let n=this.getConfiguredExportedConfig(),r=this.localRuntime?.placements??(Array.isArray(n?.placements)?{placements:n.placements}:void 0);if(!(!n||!r))return wo({placements:r,exportedConfig:n,impressionHistory:this.impressionHistory})}synthesizeProviderContext(){let n=this.userContext.plan,r=this.userContext.usage,o=this.localTrialStatus,t=this.userContext.payment_failed,i=this.userContext.payment_at_risk,s=this.userContext.tiers,c=s!==void 0&&Object.keys(s).length>0;if(!n&&!r&&!c)return;let l={};if(r&&typeof r=="object"){let m=ti(r);for(let[p,f]of Object.entries(r)){if(!f||typeof f!="object")continue;let g=typeof f.amount=="number"?f.amount:m[p]??0,h=typeof f.limit=="number"?f.limit:0,x=h>0?Math.max(0,h-g):0;l[p]={used:g,limit:h,remaining:x,unit:typeof f.unit=="string"?f.unit:void 0,reset_date:typeof f.reset_date=="string"?f.reset_date:void 0};}}let d={...o.in_trial!==void 0?{trialActive:o.in_trial}:{},...o.trial_limit_type!==void 0?{trialLimitType:o.trial_limit_type}:{},...o.progress_percent!==void 0?{trialProgressPercent:o.progress_percent}:{},...o.days_remaining!==void 0?{trialDaysRemaining:o.days_remaining}:{},...o.day_number!==void 0&&o.days_remaining!==void 0?{trialDaysTotal:o.day_number+o.days_remaining}:{},...o.state!==void 0?{trialState:o.state}:{},...o.usage_entitlement_handle!==void 0?{trialUsageEntitlementHandle:o.usage_entitlement_handle}:{},...o.usage_consumed!==void 0?{trialUsageConsumed:o.usage_consumed}:{},...o.usage_limit!==void 0?{trialUsageLimit:o.usage_limit}:{}};return {...n?{plan:{currentPlanHandle:n.id??n.name??"",currentPlanName:n.name,...d,...t!==void 0?{paymentFailed:t}:{},...i!==void 0?{paymentAtRisk:i}:{}}}:{},...Object.keys(l).length>0||c?{entitlements:{entries:{},usage:l,...c?{tiers:s}:{}}}:{}}}markAllSegmentsDirty(){this.dirtySegmentIds.clear();for(let n of this.configuredSegmentsById.keys())this.dirtySegmentIds.add(n);this.segmentMembershipBySegmentId.clear();}markSegmentsDirtyForFields(n){for(let r of n){let o=this.segmentIdsByPredicateField.get(r);if(o)for(let t of o)this.dirtySegmentIds.add(t);}}toSegmentEvaluationTraits(n,r,o){return np(n,r,o)}buildTargetingState(n){return rp(n,this.getConfiguredExportedConfig(),this.usageBalances)}markSegmentsDirtyFromContextChange(n,r){if(this.configuredSegmentsById.size===0)return;let o=n.id||this.anonymousId,t=r.id||this.anonymousId;if(o!==t){this.segmentMembershipUserId=t,this.markAllSegmentsDirty();return}let i=this.buildTargetingState(n),s=this.buildTargetingState(r),c=new Set,l=new Set([...Object.keys(i.segmentTraits),...Object.keys(s.segmentTraits)]);for(let d of l)i.segmentTraits[d]!==s.segmentTraits[d]&&c.add(d);this.markSegmentsDirtyForFields(c);}currentPathname(){if(this.pageContext.url)try{return new URL(this.pageContext.url).pathname}catch{}return zn()?window.location.pathname:"/"}disableForProviderFailure(n){this.sdkDisabledByProviderFailure||(this.sdkDisabledByProviderFailure=true,this.sdkDisabledReason=n,this.decisionCache.clear(),this.persistDecisionCache(),console.warn(`[RevTurbine] SDK disabled after provider fallback chain failed: ${n}`));}isDisabledByProviderFailure(){return this.sdkDisabledByProviderFailure}disabledDecisionForPlacement(n,r){let o=this.providerFailureSlotBehavior==="placeholder",t=o?`${r??n} temporarily unavailable`:`${r??n} unavailable`,i=o?"This placement is in safe fallback mode because all configured providers failed.":"This placement is currently hidden because provider fallback resolution failed.";return {placementId:n,requestId:en(),visible:o,decisionSource:"fallback",reasonCodes:["sdk_disabled_provider_failure"],suppressionReason:o?void 0:"sdk_disabled_provider_failure",content:Wi(t,i,o?"Retry later":"Continue")}}disabledPlacementOutputForConfig(n){if(this.providerFailureSlotBehavior!=="placeholder")return null;let r=`disabled_output_${en()}`,o=n.slotId?`${n.slotId} temporarily unavailable`:"Placement temporarily unavailable";return {output_id:r,category:"fallback",surface:{type:n.surfaceType??"banner",slot_id:n.slotId},content:{title:o,header:o,body:"This placement is in safe fallback mode because all configured providers failed.",cta_label:"Retry later"},rule_id:"sdk_disabled_provider_failure",decision_id:r,config_version:"sdk-fallback",present_upsell:false}}endpointFor(n,r){let o=this.endpointOverrides[n];return o&&o.trim().length>0?/^https?:\/\//i.test(o)?o:`${this.endpoint}${o.startsWith("/")?"":"/"}${o}`:`${this.endpoint}${r}`}localPlacementLookupKey(n){return Cx(n)}localLookupMatchesConfig(n,r){if(r.slotId&&n.slotId&&n.slotId!==r.slotId||r.surfaceType&&n.surfaceType&&n.surfaceType!==r.surfaceType)return false;let o=(t,i)=>!t||!i?true:t===i;return o(r.entitlementHandle,n.entitlementHandle)&&o(r.planHandle,n.planHandle)&&o(r.placementHandle,n.placementHandle)}localOutputMatchesConfig(n,r){return mh(n,r.planHandle)}applyCategoryConflictSuppression(n){return ep(n)}resolveLocalPlacementFromCandidates(n,r){return Ox(n,true,{fixedOnly:r?.fixedOnly??false})}localPlacementForConfig(n){let r=this.localPlacementsByLookupKey.get(this.localPlacementLookupKey(n));if(r&&!this.localOutputMatchesConfig(r,n))return null;let o=[];for(let[t,i]of this.localPlacementsByLookupKey.entries()){if(!i)continue;let s=dh(t);this.localLookupMatchesConfig(s,n)&&this.localOutputMatchesConfig(i,n)&&o.push(i);}return r&&!o.some(t=>t.output_id===r.output_id)&&o.push(r),this.resolveLocalPlacementFromCandidates(o,n)}hydrateLocalRuntimeState(){if(!this.isLocalOnlyMode())return;let n=this.localRuntime?.initialData;if(n?.placementDecisionsByPlacementId)for(let[o,t]of Object.entries(n.placementDecisionsByPlacementId))this.localDecisionsByPlacementId.set(o,t);if(n?.placementsByLookupKey)for(let[o,t]of Object.entries(n.placementsByLookupKey))this.localPlacementsByLookupKey.set(o,t);if(n?.entitlementByHandle)for(let[o,t]of Object.entries(n.entitlementByHandle))this.localEntitlementsByHandle.set(o,t);if(n?.userContextByUserId)for(let[o,t]of Object.entries(n.userContextByUserId))this.localUserContextsByUserId.set(o,t);n?.trialStatus&&(this.localTrialStatus=n.trialStatus);let r=this.persistentStore.getItem(this.localStorageKey);if(!r){this.persistLocalRuntimeState();return}try{let o=JSON.parse(r);o.userContext&&(this.userContext=this.mergeUserContext(o.userContext)),o.pageContext&&(this.pageContext=this.mergePageContext(o.pageContext)),o.usageBalances&&(this.usageBalances={...this.usageBalances,...o.usageBalances});for(let t of o.placements||[])this.placements.set(t.id,t);for(let[t,i]of Object.entries(o.decisions||{}))this.localDecisionsByPlacementId.set(t,i);for(let[t,i]of Object.entries(o.placementLookup||{}))this.localPlacementsByLookupKey.set(t,i);for(let[t,i]of Object.entries(o.entitlements||{}))this.localEntitlementsByHandle.set(t,i);for(let[t,i]of Object.entries(o.userContexts||{}))this.localUserContextsByUserId.set(t,i);o.trialStatus&&(this.localTrialStatus=o.trialStatus);}catch{this.persistentStore.removeItem(this.localStorageKey),this.persistLocalRuntimeState();}}persistLocalRuntimeState(){if(this.isLocalOnlyMode())try{let n={userContext:this.userContext,pageContext:this.pageContext,usageBalances:this.usageBalances,placements:Array.from(this.placements.values()),decisions:Object.fromEntries(this.localDecisionsByPlacementId.entries()),placementLookup:Object.fromEntries(this.localPlacementsByLookupKey.entries()),entitlements:Object.fromEntries(this.localEntitlementsByHandle.entries()),userContexts:Object.fromEntries(this.localUserContextsByUserId.entries()),trialStatus:this.localTrialStatus};this.persistentStore.setItem(this.localStorageKey,JSON.stringify(n));}catch{}}decisionCacheStorageKey(){return `${ZZ}:${this.tenantId}:${this.anonymousId}`}interactionStateStorageKey(){return `${qZ}:${this.tenantId}:${this.anonymousId}`}presentationCapsStorageKey(){return `${HZ}:${this.tenantId}:${this.anonymousId}`}hydrateDecisionCache(){let n=this.sessionStore.getItem(this.decisionCacheStorageKey());if(n)try{let r=JSON.parse(n),o=Date.now();Object.entries(r).forEach(([t,i])=>{!i||typeof i!="object"||!Number.isFinite(i.expiresAt)||i.expiresAt<=o||this.decisionCache.set(t,i);});}catch{this.sessionStore.removeItem(this.decisionCacheStorageKey());}}persistDecisionCache(){let n=Date.now(),r=Object.fromEntries(Array.from(this.decisionCache.entries()).filter(([,o])=>o.expiresAt>n));try{this.sessionStore.setItem(this.decisionCacheStorageKey(),JSON.stringify(r));}catch{}}hydrateInteractionState(){let n=this.persistentStore.getItem(this.interactionStateStorageKey());if(n)try{let r=JSON.parse(n);Object.entries(r).forEach(([o,t])=>{!t||typeof t!="object"||this.interactionState.set(o,t);});}catch{this.persistentStore.removeItem(this.interactionStateStorageKey());}}persistInteractionState(){let n=Object.fromEntries(this.interactionState.entries());try{this.persistentStore.setItem(this.interactionStateStorageKey(),JSON.stringify(n));}catch{}}hydratePresentationCaps(){let n=this.persistentStore.getItem(this.presentationCapsStorageKey());if(n)try{let r=JSON.parse(n);for(let[o,t]of Object.entries(r)){if(!t||typeof t!="object")continue;let i=Array.isArray(t.seenAt)?t.seenAt.filter(c=>Number.isFinite(c)&&c>0):[],s=Number.isFinite(t.cooldownUntil)?t.cooldownUntil:void 0;this.presentationCapsByKey.set(o,{seenAt:i,cooldownUntil:s});}}catch{this.persistentStore.removeItem(this.presentationCapsStorageKey());}}persistPresentationCaps(){try{let n=Object.fromEntries(this.presentationCapsByKey.entries());this.persistentStore.setItem(this.presentationCapsStorageKey(),JSON.stringify(n));}catch{}}activePlanIdentifiers(n){let r=oe(this.userContext.plan)&&typeof this.userContext.plan.id=="string"?this.userContext.plan.id:typeof this.userContext.custom?.plan=="string"?this.userContext.custom.plan:"",o=String(r||"").toLowerCase(),t=new Set;if(!o)return t;t.add(o);for(let i of n.plans??[]){let s=typeof i.unique_handle=="string"?i.unique_handle.toLowerCase():"";s===o&&t.add(s);}return t}ruleTargetsActivePlan(n,r){let t=(Array.isArray(n.targets)?n.targets:[]).filter(i=>oe(i)&&i.kind==="plan");return t.length===0?true:t.some(i=>typeof i.id=="string"&&r.has(i.id.toLowerCase()))}hydrateUsageLimitRulesFromExportedConfig(){let n=this.getConfiguredExportedConfig();if(!n)return;this.usageLimitByEntitlement.clear();let r=this.activePlanIdentifiers(n),o=new Map,t=n.entitlements??[];for(let s of t){let c=typeof s.unique_handle=="string"?s.unique_handle:"";c&&o.set(c,c);}let i=n.entitlement_rules??[];for(let s of i){if(!oe(s))continue;let c=typeof s.entitlement_id=="string"?s.entitlement_id:"";if(!c)continue;let l=typeof s.kind=="string"?s.kind:"";if(!(l==="usage_limit"||l==="credits"||l==="seat"))continue;let m=o.get(c)??"",p=typeof s.unit=="string"?s.unit:"",f=fh(p),g=f&&!gh(f)?f:Qo(m||c);g&&(this.usageTokenPrefixByEntitlement.set(c,g),m&&this.usageTokenPrefixByEntitlement.set(m,g));let h=Number(s.limit_value??s.allowance_value);if(!Number.isFinite(h)||h<=0||!this.ruleTargetsActivePlan(s,r))continue;let x=this.defaultUsageWarningPercent;this.usageLimitByEntitlement.set(c,{limit:h,warningPercent:x}),m&&this.usageLimitByEntitlement.set(m,{limit:h,warningPercent:x});}}recalculateDerivedUsageTraits(){let n=this.getConfiguredExportedConfig();this.hydrateUsageLimitRulesFromExportedConfig();let r=Ax({context:this.userContext,exportedConfig:n,usageBalances:this.usageBalances,usageTokenPrefixByEntitlement:this.usageTokenPrefixByEntitlement,usageThresholdLookup:t=>this.usageThresholdForEntitlement(t)}),o=this.deriveRecommendedPlanTokens(n);this.userContext={...this.userContext,personalization:{...r,...o}};}deriveRecommendedPlanTokens(n,r){let o={recommended_plan_handle:"",recommended_plan_name:""};if(!n?.plans?.length)return o;let t=typeof this.userContext.plan=="object"&&this.userContext.plan?.id||(typeof this.userContext.custom?.plan=="string"?this.userContext.custom.plan:""),i=String(t||"").toLowerCase(),s=n.plans.map(c=>({source_id:c.unique_handle,unique_handle:c.unique_handle,name:c.name,tier_position:c.tier_position??0,sort_order:c.sort_order??0}));return Cz({strategy:r?.strategy??"next_tier_up",planOverride:r?.planOverride,currentPlanHandle:i,plans:s})}getPersonalizationTokens(n){let r={},o=this.userContext.personalization??{};for(let[t,i]of Object.entries(o))t!=="user_id"&&(typeof i=="string"||typeof i=="number")&&(r[t]=i);if(r.plan_name===void 0){let t=ho(this.getConfiguredExportedConfig(),this.userContext.plan);t?r.plan_name=t:typeof this.userContext.plan=="object"&&this.userContext.plan?.name&&(r.plan_name=this.userContext.plan.name);}if(n?.recommendation_strategy){let t=this.deriveRecommendedPlanTokens(this.getConfiguredExportedConfig(),{strategy:n.recommendation_strategy,planOverride:n.recommendation_plan_override??void 0});r.recommended_plan_handle=t.recommended_plan_handle,r.recommended_plan_name=t.recommended_plan_name;}return r}getEntitlements(){return Object.fromEntries(this.localEntitlementsByHandle.entries())}getUsage(){let n={...ti(this.userContext.usage),...this.usageBalances},r={};for(let[o,t]of Object.entries(n)){if(!Number.isFinite(t))continue;let i=this.usageTokenPrefixByEntitlement.get(o)??Qo(o)??o,s=this.usageThresholdForEntitlement(o);r[i]={current:t,...s?.limit!==void 0?{limit:s.limit}:{}};}return r}getPolicy(){let n=this.getConfiguredExportedConfig();return {contextPolicy:this.policy,placementBehavior:this.placementBehavior,runtimeMode:this.runtimeMode,...typeof n?.version=="string"?{exportedConfigVersion:n.version}:{}}}getBranding(){return eS({explicit:this.branding,legacyConfigTheme:this.getConfiguredExportedConfig()?.theme,apiBranding:this.apiBranding})}deriveLocalEntitlementFromConfiguredRules(n,r){let o=this.getConfiguredExportedConfig();if(!o)return null;let t=typeof this.userContext.plan=="object"&&this.userContext.plan?.id||(typeof this.userContext.custom?.plan=="string"?this.userContext.custom.plan:""),i=String(t||"").toLowerCase(),s=this.getTargeting(),c=new Set(s.segmentIds??[]),{trialGrantedEntitlementHandles:l,effectivePlanHandle:d}=this.resolveReverseTrialGrants(o);return il({handle:n,context:r,currentPlanHandle:i,segmentIds:c,usageBalances:this.usageBalances,userUsage:this.userContext.usage,exportedConfig:o,...l!==void 0?{trialGrantedEntitlementHandles:l}:{},...d!==void 0?{effectivePlanHandle:d}:{}})}resolveReverseTrialGrants(n){let r=this.localTrialStatus;if(!r.in_trial||r.trial_type!=="reverse")return {};let o=r.plan_handle;if(!o)return {};let i=(n.reverse_trial_rules??[]).find(s=>s.fallback_plan_id===o&&s.is_active!==false);return !i||i.entitlements_during_trial.length===0?{}:{trialGrantedEntitlementHandles:new Set(i.entitlements_during_trial),effectivePlanHandle:i.premium_plan_id}}getTargeting(){let n=this.userContext.id||this.anonymousId,r=this.localUserContextsByUserId.get(n),o=this.getConfiguredExportedConfig(),t=ho(o,this.userContext.plan),i=t??r?.plan??(typeof this.userContext.plan=="object"&&this.userContext.plan?.id?this.userContext.plan.id:void 0),s=[...o?.segments??[]],c=Array.from(new Set(s.flatMap(f=>(f.predicates??[]).map(g=>g.field)))).sort((f,g)=>f.localeCompare(g)),l={...r?.traits??{},...this.userContext.custom??{}};for(let[f,g]of Object.entries(this.userContext.entitlements??{}))l[f]===void 0&&(l[f]=g);t&&l.plan_name===void 0&&(l.plan_name=t),i&&l.plan===void 0&&(l.plan=i);let d={...r?.usage??{},...ti(this.userContext.usage),...this.usageBalances};for(let[f,g]of Object.entries(d))l[f]===void 0&&(l[f]=g);let m={};for(let[f,g]of Object.entries(l))(typeof g=="string"||typeof g=="number"||typeof g=="boolean")&&(m[f]=g);if(this.segmentMembershipUserId!==n&&(this.segmentMembershipUserId=n,this.markAllSegmentsDirty()),s.length>0&&this.segmentIdsByPredicateField.size===0&&this.rebuildSegmentPredicateFieldIndex(),s.length>0&&this.dirtySegmentIds.size>0){for(let f of this.dirtySegmentIds){let g=this.configuredSegmentsById.get(f)??s.find(x=>x.handle===f);if(!g){this.segmentMembershipBySegmentId.delete(f);continue}let h=ol([g],m).length>0;this.segmentMembershipBySegmentId.set(f,h);}this.dirtySegmentIds.clear();}let p=s.length>0?s.filter(f=>this.segmentMembershipBySegmentId.get(f.handle)===true).map(f=>f.handle):[...r?.segmentIds??[]];return {userId:n,segmentIds:p,traits:l,...i?{plan:i}:{},...Object.keys(d).length>0?{usage:d}:{},configuredSegments:s,configuredTraitFields:c}}async explainPlacementDecision(n){let r=await this.getPlacementDecision(n),o=this.getTargeting(),t=this.getEntitlements(),i=this.getPolicy(),s=this.getConfiguredExportedConfig(),c=new Set(o.segmentIds),l=o.configuredSegments.map(L=>{let H=Array.isArray(L.predicates)?L.predicates.map(Pe=>cq(Pe,o.traits)):[],ee=H.length>0?H.every(Pe=>Pe.matched):c.has(L.handle);return {segmentId:L.handle,...L.name?{segmentName:L.name}:{},matched:ee,predicates:H}}),d=new Map,m=new Map;if(Array.isArray(s?.entitlements))for(let L of s.entitlements){let H=Lt(L.unique_handle),ee=H;ee&&H&&d.set(ee,H);let Pe=Lt(L.type);ee&&Pe&&m.set(ee,Pe);}let p=new Map;if(Array.isArray(s?.plans))for(let L of s.plans){let H=Lt(L.unique_handle),ee=H;ee&&H&&p.set(ee,H);}let g=(Lt(o.plan,o.traits.plan,o.traits.plan_handle,o.traits.plan_id)??"").toLowerCase(),h=new Map;if(Array.isArray(s?.segments))for(let L of s.segments){let H=Lt(L.handle),ee=Lt(L.dimension_id);H&&ee&&h.set(H,ee);}let x=Array.isArray(s?.entitlement_rules)?s.entitlement_rules.map((L,H)=>{let ee=Lt(L.id)??`entitlement_rule_${H}`,Pe=Lt(L.entitlement_id),me=Pe?d.get(Pe):void 0,fe=Array.isArray(L.targets)?L.targets.filter(ge=>ge.kind==="plan").map(ge=>ge.id):[],ie=fe.map(ge=>p.get(ge)??ge),ze=Array.isArray(L.segment_ids)?L.segment_ids.filter(ge=>typeof ge=="string"):[],At=Lt(L.kind),Qe=!g||fe.some(ge=>ge.toLowerCase()===g),he=lq(ze,c,h),rt=Qe&&he,rn=me?t[me]:Pe?t[Pe]:void 0,K=rt?rn?.status??"unknown":"unknown",G;if(rt)switch(At){case "feature":G=L.enabled===false?"disables feature":"grants access";break;case "capability_tier":{let ge=Lt(L.tier_name);G=ge?`unlocks ${ge} tier`:"unlocks capability tier";break}case "usage_limit":{let ge=typeof L.limit_value=="number"?L.limit_value:void 0,ve=Lt(L.unit)??"",kt=Lt(L.period_scope)??"",un=kt?` / ${kt.replace("per_","")}`:"";G=ge!=null?`sets limit to ${ge.toLocaleString()}${ve?` ${ve}`:""}${un}`:"sets usage limit";break}case "credits":{let ge=L.allowance_value,ve=typeof ge=="number"?ge:void 0,kt=Lt(L.unit)??"credits",un=Lt(L.reset_period)??"",ad=un?` / ${un.replace("per_","")}`:"";G=ve!=null?`grants ${ve.toLocaleString()} ${kt}${ad}`:"grants credit allowance";break}case "seat":{let ge=L.included_count,ve=typeof ge=="number"?ge:void 0;G=ve!=null?`includes ${ve} seat${ve===1?"":"s"}`:"includes seats";break}default:if(Pe){let ge=m.get(Pe);ge==="feature"?G="grants access":ge&&(G=`${ge.replace(/_/g," ")} entitlement`);}break}return {ruleId:ee,...Pe?{entitlementId:Pe}:{},...me?{entitlementHandle:me}:{},...At?{kind:At}:{},planScopes:ie,planIds:fe,...ze.length>0?{segmentIds:ze}:{},matchesPlan:Qe,matchesSegment:he,matched:rt,outcome:K,...G?{outcomeDescription:G}:{},...rn?.reason?{reason:rn.reason}:{}}}):[],S=Lt(r.output?.output_id),w=this.placements.get(n.placementId),$=Lt(w?.name)??"",E=Array.isArray(w?.metadata?.surface_template_ids)?w.metadata.surface_template_ids:[],P=[],I=new Set;if(Array.isArray(s?.placements))for(let L of s.placements){if(!L||typeof L!="object")continue;let H=Lt(L.id)??"",ee=Lt(L.name)??"";if(I.has(H))continue;let Pe=Lt(r.output?.rule_id);if(Pe&&H===Pe){I.add(H),P.push(L);continue}if($&&(H===$||ee===$||H===`pl_${$}`||ee===`pl_${$}`)){I.add(H),P.push(L);continue}E.length>0&&(L.payloads??[]).some(ie=>(ie.surfaces??[]).some(At=>{let Qe=Lt(At.template_id);return Qe?E.includes(Qe):false}))&&(I.add(H),P.push(L));}let z=P.flatMap(L=>(L.payloads??[]).map(ee=>{let Pe=ee.target,me=Pe?.plan_ids??[],fe=me.map(K=>p.get(K)??K),ie=Pe?.segment_chips??[],At=(ee.surfaces??[]).map(K=>Lt(K.template_id)).filter(K=>typeof K=="string"),Qe=me.length===0||!g||me.some(K=>K.toLowerCase()===g),he=ie.length===0||ie.some(K=>c.has(K)),rt="active",rn=rt==="active"&&Qe&&he;return {payloadId:String(ee.id??""),placementId:String(L.id??""),placementName:String(L.name??""),status:rt,planIds:me,planScopes:fe,segmentChips:ie,surfaceTemplateIds:At,matchesPlan:Qe,matchesSegment:he,eligible:rn,selected:!!S&&S===String(ee.id??"")}})),X=r.output?this.extractPlacementCapPolicies(r.output).flatMap(L=>L.rules.length===0&&L.cooldownMs===void 0?[]:L.rules.length===0?[{count:0,period:"session",cooldownMs:L.cooldownMs}]:L.rules.map(H=>({count:H.count,period:H.period,...L.cooldownMs!==void 0?{cooldownMs:L.cooldownMs}:{}}))):[],re={ruleId:r.output?.rule_id,decisionId:r.output?.decision_id,category:r.output?.category,suppressionReason:r.suppressionReason,reasonCodes:r.reasonCodes,capPolicies:X};return {generatedAt:new Date().toISOString(),input:n,decision:r,targeting:o,policy:i,entitlements:t,segments:l,entitlementRules:x,eligiblePayloads:z,placementRules:re}}usageThresholdForEntitlement(n){return Tx(n,this.usageLimitByEntitlement,this.localEntitlementsByHandle,this.usageBalances,this.defaultUsageWarningPercent)}evaluateUsageThresholdCrossings(n,r){return Dx(n,r,t=>this.usageThresholdForEntitlement(t)).map(t=>this.emitTrigger(t.type,{entitlement_handle:t.entitlement_handle,current_usage:t.current_usage,usage_limit:t.usage_limit,usage_percent:t.usage_percent,threshold:t.threshold}))}deriveTrialTriggerStage(n){return Fx(n,this.lastTrialTriggerStage,this.defaultTrialExpiringDays)}async evaluateTrialLifecycleTriggers(n){let r=this.deriveTrialTriggerStage(n);if(!this.placementBehavior.enableTrialAutoTriggers){this.lastTrialTriggerStage=r;return}if(r!==this.lastTrialTriggerStage){if(this.lastTrialTriggerStage=r,r==="midpoint"){await this.emitTrigger("trial_midpoint",{days_remaining:n.days_remaining});return}if(r==="expiring"){await this.emitTrigger("trial_expiring",{days_remaining:n.days_remaining});return}r==="expired"&&await this.emitTrigger("trial_expired",{days_remaining:0});}}resolveAnonymousId(){let n=`revturbine:${this.tenantId}:anon`;try{let r=this.persistentStore.getItem(n);if(r)return r;let o=en();return this.persistentStore.setItem(n,o),o}catch{return en()}}installBridge(){let n={getSnapshot:()=>({tenantId:this.tenantId,user:this.userContext,page:this.pageContext,placements:Array.from(this.placements.values())}),setPageContext:r=>{this.setPageContext(r);},setUserContext:r=>{this.setUserContext(r);}};window.__RT_SDK_BRIDGE__=n;}installRouteTracking(){if(Wa())return;let n=window.history;if(n.__rtPatched)return;let r=()=>{window.dispatchEvent(new CustomEvent(Az,{detail:{path:window.location.pathname,title:document.title}}));},o=n.pushState.bind(n);n.pushState=((...i)=>{o(...i),r();});let t=n.replaceState.bind(n);n.replaceState=((...i)=>{t(...i),r();}),window.addEventListener("popstate",r),window.addEventListener(Az,i=>{let s=i.detail;this.onRouteChange({path:s.path,title:s.title,tags:s.tags});}),n.__rtPatched=true;}mergeUserContext(n){return Ux(this.userContext,n)}mergePageContext(n){return {...this.pageContext,...n,tags:vc(n.tags||this.pageContext.tags)}}collectPageContextIssues(){let n=[],r={...this.policy.inferPage?Lp():{},...this.pageContext},o=String(r.url||"").trim();if(!o)n.push({code:"invalid_page_context_url",reason:"Page context URL is missing."});else try{new URL(o);}catch{n.push({code:"invalid_page_context_url",reason:"Page context URL is not a valid absolute URL.",details:{value:o}});}return r.tags&&!Array.isArray(r.tags)&&n.push({code:"invalid_page_context_tags",reason:"Page tags must be an array of strings."}),n}collectPayloadIssues(n){let r=[];if(!oe(n))return r.push({code:"invalid_event_payload",reason:"Event payload must be a plain object."}),r;let o=Vz(n),t=typeof n.placement_id=="string"&&n.placement_id.trim()?n.placement_id:typeof o?.placement_id=="string"?o.placement_id:null;return typeof t=="string"&&t.trim()&&(this.placements.has(t)||r.push({code:"unknown_placement_id",reason:"Payload placement_id is not registered in SDK runtime.",details:{placement_id:t}})),r}buildValidationWarningEvent(n,r,o){return this.toEventEnvelope(Bp,{source_event_type:n,warning_count:r.length,warning_codes:r.map(t=>t.code),warnings:r,page_context:{url:this.pageContext.url??null,title:this.pageContext.title??null},payload_snapshot:oe(o)?o:null})}toEventEnvelope(n,r){let o={...this.policy.inferPage?Lp():{},...this.pageContext},t=o.url||(zn()?window.location.href:""),i=(()=>{try{return new URL(t).pathname}catch{return zn()?window.location.pathname:"/"}})();return {tenant_id:this.tenantId,type:n,level:"INFO",message:`${n} captured by ${this.mode} runtime`,url:t,path:i,page_title:o.title||(zn()?document.title:""),event_time:new Date().toISOString(),anonymous_id:this.anonymousId,user_id:this.userContext.id||null,session_id:this.sessionId,tags:vc(o.tags),identity:{tenant_id:this.tenantId,user_id:this.userContext.id||null,anonymous_id:this.anonymousId,traits:n===nI?{}:{...this.userContext.custom||{}}},properties:r}}warnPiiRedactedOnce(){this.piiRedactionWarned||(this.piiRedactionWarned=true,console.warn("[RevTurbine] Detected and redacted PII-shaped values (emails / card numbers) from event data before sending. Do not put PII in event properties or traits; this is best-effort redaction, not a guarantee."));}anonymousTelemetryActive(){return !this.ingestPublicKey&&this.anonymousTelemetryEnabled&&!this.isLocalOnlyMode()&&zn()}async emitSdkInitTelemetry(){this.anonymousTelemetryActive()&&await this.emitAnonMeta("sdk_init",{config_shape:this.computeConfigShape()});}computeConfigShape(){let n=this.getConfiguredExportedConfig();if(!n)return;let r=n.placements??[],o=r.reduce((t,i)=>t+(i.payloads?.length??0),0);return {plans:n.plans?.length??0,entitlements:n.entitlements?.length??0,entitlement_rules:n.entitlement_rules?.length??0,segments:n.segments?.length??0,placements:r.length,placement_payloads:o,content_ui_paths:n.content_ui_paths?.length??0,surface_templates:n.surface_templates?.length??0}}async emitAnonMeta(n,r={}){if(this.anonymousTelemetryActive()){this.showAnonTelemetryNoticeOnce();try{let o=this.getConfiguredExportedConfig(),t=o?.version!=null?String(o.version):void 0,i=t?`${this.tenantId}:${t}`:this.tenantId,s=(await Dz(i)).slice(0,64),l={events:[{event_type:n,occurred_at:new Date().toISOString(),request_id:en(),config_hash_id:s,sdk_version:dz,runtime_mode:this.runtimeMode,...t?{bundle_version:t}:{},...r.config_shape?{config_shape:r.config_shape}:{},...r.message?{message:r.message.slice(0,500)}:{}}]};await fetch(this.endpointFor("ingestSdkMeta",GZ),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(l),keepalive:!0});}catch{}}}showAnonTelemetryNoticeOnce(){this.anonTelemetryNoticeShown||(this.anonTelemetryNoticeShown=true,console.info("[RevTurbine] Sending anonymous SDK telemetry (config-shape counts and SDK version only \u2014 no user data or PII). Disable it by setting `anonymousTelemetry: false` in your initRevTurbine() options."));}async sendEvents(n){if(n.length===0)return;if(!this.telemetryConsented()){this.telemetryCounters.dropped+=n.length;return}let r=0,o=n.map(p=>{let f=sO(p);return r+=f.redactions,f.value}),t=this.providerRegistry.has("events")||!this.isLocalOnlyMode()&&this.analyticsEnabled;if(r>0&&t&&this.warnPiiRedactedOnce(),this.telemetryCounters.redacted+=r,this.dispatchToEventConsumers(o),this.isLocalOnlyMode()){this.persistLocalRuntimeState();return}if(!this.analyticsEnabled)return;let i=en(),s=this.getConfiguredExportedConfig()?.change_set_id,c=o.map(p=>{let f=p.user_id||p.anonymous_id,g=nS(this.userContext.account_id||f),h=tS({level:p.level,message:p.message,path:p.path,url:p.url,page_title:p.page_title,session_id:p.session_id,anonymous_id:p.anonymous_id,tags:p.tags,traits:p.identity.traits??null,payload:p.properties,source:XZ});return r+=h.redactions+(g.redacted?1:0),{environment_id:this.environmentId,user_id:f,account_id:g.value,event_name:yc(p.type).slice(0,120),event_ts:p.event_time,properties:JSON.stringify(h.value),...tq(p.properties),...aq(p.properties),origin:iq(p.type),playbook_version:typeof s=="string"&&s.length>0?s:null,event_id:XS.next(),request_id:en(),tenant_id:p.tenant_id}});r>0&&this.warnPiiRedactedOnce();let l=this.endpointFor("ingestEvents",KZ),d={method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.ingestPublicKey??this.apiKey}`,"x-request-id":i},body:JSON.stringify({events:c}),keepalive:true};(await YS(()=>fetch(l,d))).delivered?this.telemetryCounters.sent+=c.length:this.telemetryCounters.failed+=c.length;}dispatchToEventConsumers(n){this.providerRegistry.has("events")&&this.providerRegistry.get("events").then(r=>{let o=r?.consumers;if(!(!o||o.length===0))for(let t of o)try{Promise.resolve(t.consume(n)).catch(()=>{});}catch{}}).catch(()=>{});}telemetryConsented(){return this.telemetryConsent==="granted"}setTelemetryConsent(n){this.telemetryConsent=n;}getTelemetryConsent(){return this.telemetryConsent}getTelemetryCounters(){return {...this.telemetryCounters}}async capture(n,r,o){if(!this.telemetryConsented()){this.telemetryCounters.dropped+=1;return}let t=yc(n),i=this.toEventEnvelope(t,r),s=[...this.collectPageContextIssues(),...this.collectPayloadIssues(r)],c=[i];if(s.length>0&&c.push(this.buildValidationWarningEvent(t,s,r)),this.telemetryCounters.created+=c.length,o?.immediate){await this.sendEvents(c);return}this.events.push(...c),this.telemetryCounters.queued+=c.length,this.events.length>=this.maxBatchSize&&await this.flushEvents();}async trackControlPlaneEvent(n,r={},o){let{eventName:t,properties:i}=rS(n,r);await this.capture(t,i,o);}async flushEvents(){if(this.events.length===0)return;let n=[...this.events];this.events.length=0,await this.sendEvents(n);}startEventBatchFlushing(){if(!zn()||this.isLocalOnlyMode())return;this.flushIntervalMs>0&&(this.flushTimer=setInterval(()=>{this.flushEvents();},this.flushIntervalMs),this.flushTimer.unref?.());let n=()=>{this.flushEvents();},r=()=>{document.visibilityState==="hidden"&&this.flushEvents();};window.addEventListener("pagehide",n),document.addEventListener("visibilitychange",r),this.batchingTeardown.push(()=>window.removeEventListener("pagehide",n),()=>document.removeEventListener("visibilitychange",r));}dispose(){this.flushTimer!==void 0&&(clearInterval(this.flushTimer),this.flushTimer=void 0);for(let n of this.batchingTeardown.splice(0))try{n();}catch{}this.flushEvents();}async emitSemantic(n,r,o){let t=oe(r)?r:{};await this.capture(n,{semantic:true,payload:t},o);}async evaluateUserSegmentsAndUsage(n,r=false){let o=await this.fetchUserContext(this.userContext.id||""),t={...this.userContext,...n,custom:{...this.userContext.custom||{},...n.custom||{}}},i=await this.fetchUserContext(t.id||""),s=new Set(o.segmentIds||[]),c=new Set(i.segmentIds||[]),l=Array.from(c).filter(m=>!s.has(m)),d=Array.from(s).filter(m=>!c.has(m));for(let m of l)await this.emitSemantic("segment_enrolled",{segment_id:m,user_id:t.id??null});for(let m of d)await this.emitSemantic("segment_unenrolled",{segment_id:m,user_id:t.id??null});if(r){let m=o.usage||{},p={...m,...this.usageBalances},f=this.evaluateUsageThresholdCrossings(m,p);await Promise.all(f);}}emitObservedContextFields(n){let r=Object.keys(n??{}).filter(o=>o.length>0).sort();r.length!==0&&this.capture(nI,{context_fields:r});}setUserContext(n){let r=this.userContext;this.userContext=this.mergeUserContext(n),this.recalculateDerivedUsageTraits(),this.markSegmentsDirtyFromContextChange(r,this.userContext),this.persistLocalRuntimeState(),this.evaluateUserSegmentsAndUsage(n,false),this.emitObservedContextFields(n.custom);}setPageContext(n){this.pageContext=this.mergePageContext(n),this.persistLocalRuntimeState();}refreshPageContext(){this.pageContext=this.mergePageContext(Lp());}hydrate(n){if(n.version!=="1.0.0"){console.warn(`[RevTurbine] Unknown hydration payload version: ${n.version}. Skipping.`);return}let r=this.userContext;n.user&&(this.userContext=this.mergeUserContext({id:n.user.id,custom:n.user.traits,usage:{}}),this.recalculateDerivedUsageTraits());let o=(n.ttl_seconds??60)*1e3,t=Date.now()+o;for(let i of n.decisions??[]){if(!i.output)continue;let s=[this.tenantId,i.slot_id??i.entitlement_handle??i.placement_handle??"unknown",n.user?.id??this.anonymousId].join(":"),c=oe(i.output?.content)?i.output.content:{};this.decisionCache.set(s,{value:{placementId:i.slot_id??i.entitlement_handle??i.placement_handle??"unknown",requestId:n.request_id,visible:i.visible,decisionSource:"cache",reasonCodes:i.reason_codes??[],content:Wi(String(c.header??""),String(c.body??""),String(c.cta_label??"")),output:i.output},expiresAt:t});}if(this.persistDecisionCache(),n.entitlements)for(let[i,s]of Object.entries(n.entitlements))this.localEntitlementsByHandle.set(i,{status:s.status,allowed:s.allowed,reason:s.reason,current_tier:s.current_tier,placement:s.placement});n.trial_status&&(this.localTrialStatus={in_trial:n.trial_status.in_trial,trial_type:n.trial_status.trial_type,plan_handle:n.trial_status.plan_handle,day_number:n.trial_status.day_number,days_remaining:n.trial_status.days_remaining}),n.user_context?.usage_balances&&(this.usageBalances={...this.usageBalances,...n.user_context.usage_balances},this.recalculateDerivedUsageTraits()),this.markSegmentsDirtyFromContextChange(r,this.userContext);}async generatePlacementId(n){return Rx({tenantId:this.tenantId,placementName:n.placementName,placementScopeKey:n.placementScopeKey,pageRoute:n.normalizedPageRoute||this.currentPathname()},{sha256Base64Url:Dz,randomHex:sI})}async registerPlacement(n){let r=String(n.placementScopeKey||n.name||"").trim();return this.registerSurfaceSlot({id:r||String(n.name||"surface_slot").trim(),name:n.name,metadata:oe(n.metadata)?n.metadata:void 0})}async upsertSurfaceSlot(n){if(this.isLocalOnlyMode())return;let r=en(),o=this.endpointFor("surfaceSlots","/api/placements").replace(/\/+$/,""),t=sq(n.placementScopeKey||n.id||n.name),i={...oe(n.metadata)?n.metadata:{},surface_slot_id:n.placementScopeKey||n.id,registration_source:"sdk_surface_slot",route:n.route},s={name:n.name,slug:t,description:`Surface slot ${n.placementScopeKey||n.id}`,slot_type:"custom",status:"active",targeting_rules:{},content:{},priority:0,metadata:i},c={"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":r},l=await fetch(`${o}/${encodeURIComponent(n.id)}`,{method:"PUT",headers:c,body:JSON.stringify(s)});if(l.ok){this.syncedSurfaceSlotIds.add(n.id);return}if(l.status!==404)throw new Error(`surface_slot_upsert_failed:${l.status}`);let d=await fetch(o,{method:"POST",headers:c,body:JSON.stringify(s)});if(!d.ok)throw new Error(`surface_slot_create_failed:${d.status}`);this.syncedSurfaceSlotIds.add(n.id);}async registerSurfaceSlot(n){let r=Yo(this.currentPathname()),o=String(n?.id||"").trim(),t=String(n?.name||o).trim(),i=[];o||i.push({code:"invalid_surface_slot_id",reason:"SurfaceSlot id is required and must be a non-empty string."}),t||i.push({code:"invalid_placement_name",reason:"SurfaceSlot name is missing or empty."}),n?.metadata!==void 0&&!oe(n.metadata)&&i.push({code:"invalid_placement_metadata",reason:"Placement metadata must be a plain object when provided."});let s=await this.generatePlacementId({placementName:t||o||"invalid_surface_slot",placementScopeKey:o||void 0,normalizedPageRoute:r}),c={id:s,route:r,name:t||"invalid_surface_slot",placementScopeKey:o||void 0,metadata:{...oe(n.metadata)?n.metadata:{},surface_slot_id:o||null,...Array.isArray(n.surfaceTemplateIds)&&n.surfaceTemplateIds.length>0?{surface_template_ids:n.surfaceTemplateIds}:{}}},l=this.placements.get(s),d=l?this.stableStringify(l):null,m=this.stableStringify(c);return (!l||d!==m)&&(this.placements.set(s,c),this.persistLocalRuntimeState(),this.syncedSurfaceSlotIds.delete(s)),!this.isLocalOnlyMode()&&!this.syncedSurfaceSlotIds.has(s)&&await this.upsertSurfaceSlot(c),i.length>0&&await this.sendEvents([this.buildValidationWarningEvent("placement_registered",i,{surface_slot_id:o||null,placement_id:s,route:r,placement_name:t||null})]),s}async persistPlacementTypes(n){if(this.isLocalOnlyMode())return;let r=(Array.isArray(n)?n:[]).map(i=>dq(i)).filter(i=>i!==null);if(r.length===0)return;let o=en(),t=await fetch(this.endpointFor("placementTypes","/api/sdk/placement-types"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":o},body:JSON.stringify({request_id:o,tenant_id:this.tenantId,types:r})});if(!t.ok)throw new Error(`persist_placement_types_failed:${t.status}`)}stableStringify(n){return yi(n)}decisionCacheKey(n,r){return Ex({tenantId:this.tenantId,placementId:n.placementId,userId:n.userId,contextMode:n.contextMode??"auto",overrides:n.overrides??{},traits:n.traits??{},route:this.currentPathname(),...r?{runtimeContextFingerprint:r}:{}})}interactionStateKey(n){return YE({tenantId:this.tenantId,...n})}readDecisionCache(n){let r=this.decisionCache.get(n);return r?r.expiresAt<=Date.now()?(this.decisionCache.delete(n),this.persistDecisionCache(),null):{...r.value,decisionSource:"cache"}:null}writeDecisionCache(n,r,o){let t=Date.now()+Math.max(5e3,o??this.defaultDecisionTtlMs);this.decisionCache.set(n,{expiresAt:t,value:r}),this.persistDecisionCache();}suppressionForState(n){return QE(n)}placementCapKey(n){return [this.tenantId,this.userContext.id||this.anonymousId,n.surface.type,n.output_id].join(":")}extractPlacementCapPolicies(n){return tp(n)}applyPlacementCapsIfNeeded(n,r={}){if(!this.placementBehavior.enableClientCapsEnforcement)return {allowed:true};let o=r.tick??true,t=this.placementCapKey(n),i=this.presentationCapsByKey.get(t),s=jx(n,t,i,Date.now());return s.updatedState&&o&&(this.presentationCapsByKey.set(t,s.updatedState),s.allowed&&this.persistPresentationCaps()),{allowed:s.allowed,reason:s.reason}}gateDecisionByCaps(n,r={}){if(!this.placementBehavior.enableClientCapsEnforcement||!n.visible||!n.output)return n;let o=this.applyPlacementCapsIfNeeded(n.output,{tick:r.tick??true});if(o.allowed)return n;let t=o.reason??"cap_exceeded";return {...n,visible:false,reasonCodes:[...n.reasonCodes??[],t],suppressionReason:t}}normalizeDecisionFromResponse(n,r,o,t){return zx(n,r,o,t)}async getPlacementDecision(n){let r=this.placements.get(n.placementId),o=en();if(this.isDisabledByProviderFailure())return this.disabledDecisionForPlacement(n.placementId,r?.name);if(!r)return {placementId:n.placementId,requestId:o,visible:false,decisionSource:"fallback",reasonCodes:["placement_not_registered"],suppressionReason:"placement_not_registered",content:Wi("Placement not found","Register the placement before requesting a decision.","Register placement")};let t=this.interactionStateKey({placementId:n.placementId,userId:n.userId}),i=this.suppressionForState(this.interactionState.get(t));if(i.suppressed)return {placementId:n.placementId,requestId:o,visible:false,decisionSource:"cache",reasonCodes:i.reason?[i.reason]:[],suppressionReason:i.reason,content:Wi(`${r.name} suppressed`,"Suppressed due to recent interaction state.","Continue")};let s,c,l;this.isLocalOnlyMode()&&(s=await this.localRuntime?.getContext?.(),c=this.providerRegistry.size>0?await this.providerRegistry.resolveAll():this.synthesizeProviderContext(),(s||c)&&(l=this.stableStringify({legacyCtx:s??{},providerCtx:c??{}})));let d=this.decisionCacheKey(n,l),m=this.readDecisionCache(d);if(m)return this.gateDecisionByCaps(m,{tick:false});if(this.isLocalOnlyMode()){let p=this.localRuntime?.resolvers?.getPlacementDecision??this.defaultLocalPlacementDecisionResolver;if(p){let g={...s,...c?{__providers:c}:{}},h=this.gateDecisionByCaps(await p(n,r,g));return this.localDecisionsByPlacementId.set(n.placementId,h),this.writeDecisionCache(d,h,n.ttlMs),this.persistLocalRuntimeState(),h}let f=this.localDecisionsByPlacementId.get(n.placementId);if(f){let g=this.gateDecisionByCaps({...f,decisionSource:"fallback"});return this.writeDecisionCache(d,g,n.ttlMs),this.persistLocalRuntimeState(),g}}try{let p=await fetch(this.endpointFor("decideContext","/api/sdk/decide-context"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":o},body:JSON.stringify({request_id:o,tenant_id:this.tenantId,placement_id:n.placementId,user_id:n.userId,context_mode:n.contextMode??"auto",overrides:n.overrides?{segment_id:n.overrides.segmentId,plan_id:n.overrides.planId,usage:n.overrides.usage?.map(h=>({entitlement_id:h.entitlementId,meter_id:h.meterId,used:h.used}))}:void 0,traits:n.traits,context:{user:this.userContext,page:this.pageContext,placement:r}})});if(!p.ok)throw new Error(`decide-context failed: ${p.status}`);let f=await p.json(),g=this.gateDecisionByCaps(this.normalizeDecisionFromResponse(n.placementId,o,r.name,f));return this.writeDecisionCache(d,g,n.ttlMs),this.localDecisionsByPlacementId.set(n.placementId,g),this.persistLocalRuntimeState(),g}catch{let p=await this.getPlacementContent(n.placementId,{user_id:n.userId,context_mode:n.contextMode??"auto",overrides:n.overrides,traits:n.traits}),f={placementId:n.placementId,requestId:p.requestId,visible:true,decisionSource:"fallback",reasonCodes:["fallback_content"],content:p.content};return this.writeDecisionCache(d,f,n.ttlMs),this.localDecisionsByPlacementId.set(n.placementId,f),this.persistLocalRuntimeState(),f}}async preloadPlacementDecisions(n){let r=new Map;for(let o of n)r.set(this.decisionCacheKey(o),o);await Promise.allSettled(Array.from(r.values()).map(o=>this.getPlacementDecision(o)));}async bootstrapPlacementDecisions(n){if(this.isDisabledByProviderFailure()){await Promise.all(n.map(async o=>{let t=await this.getPlacementDecision(o),i=this.decisionCacheKey(o);this.writeDecisionCache(i,t,o.ttlMs);}));return}let r=new Map;for(let o of n){if(!this.placements.get(o.placementId)||!o.userId)continue;let i=this.stableStringify({userId:o.userId,contextMode:o.contextMode??"auto",overrides:o.overrides??{},traits:o.traits??{},ttlMs:o.ttlMs??null}),s=r.get(i);if(s){s.placementIds.push(o.placementId);continue}r.set(i,{userId:o.userId,contextMode:o.contextMode,overrides:o.overrides,traits:o.traits,ttlMs:o.ttlMs,placementIds:[o.placementId]});}for(let o of r.values()){if(o.placementIds.length<=1){let i=n.find(s=>s.placementId===o.placementIds[0]&&s.userId===o.userId);i&&await this.getPlacementDecision(i);continue}let t=en();try{let i=await fetch(this.endpointFor("bootstrapContext","/api/sdk/bootstrap-context"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":t},body:JSON.stringify({request_id:t,tenant_id:this.tenantId,user_id:o.userId,context_mode:o.contextMode??"auto",overrides:o.overrides?{segment_id:o.overrides.segmentId,plan_id:o.overrides.planId,usage:o.overrides.usage?.map(l=>({entitlement_id:l.entitlementId,meter_id:l.meterId,used:l.used}))}:void 0,traits:o.traits,placements:o.placementIds.map(l=>({placement_id:l}))})});if(!i.ok)throw new Error(`bootstrap-context failed: ${i.status}`);let s=await i.json(),c=oe(s)&&Array.isArray(s.decisions)?s.decisions:[];for(let l of c){if(!oe(l))continue;let d=typeof l.placement_id=="string"?l.placement_id:"",m=oe(l.result)?l.result:null,p=this.placements.get(d);if(!p||!m)continue;let f=this.normalizeDecisionFromResponse(d,t,p.name,m),g=this.decisionCacheKey({placementId:d,userId:o.userId,contextMode:o.contextMode,overrides:o.overrides,traits:o.traits});this.writeDecisionCache(g,f,o.ttlMs),this.localDecisionsByPlacementId.set(d,f);}this.persistLocalRuntimeState();}catch{let i=n.filter(s=>o.placementIds.includes(s.placementId)&&s.userId===o.userId);await Promise.allSettled(i.map(s=>this.getPlacementDecision(s)));}}}updateInteractionState(n){let r=this.interactionStateKey({placementId:n.placementId,userId:n.userId,treatmentId:n.treatmentId}),o=Date.now(),t=n.metadata??{},s={...this.interactionState.get(r)??{updatedAt:new Date(o).toISOString()},lastInteractionType:n.interactionType,updatedAt:n.interactionAt??new Date(o).toISOString()};if(n.interactionType==="dismiss"){let c=Number(t.cooldown_ms);s.suppressedUntil=o+(Number.isFinite(c)&&c>0?c:this.defaultDismissCooldownMs);}if(n.interactionType==="remind_me_later"){let c=Number(t.remind_after_seconds);s.suppressedUntil=o+(Number.isFinite(c)&&c>0?c*1e3:this.defaultRemindLaterMs);}if((n.interactionType==="cta_clicked"||n.interactionType==="cta_completed")&&(s.suppressedUntil=o+300*1e3),n.interactionType==="suppress"){let c=Number(t.suppress_duration_ms);s.suppressedUntil=o+(Number.isFinite(c)&&c>0?c:this.defaultDismissCooldownMs);}this.interactionState.set(r,s),this.persistInteractionState();}async flushInteractionQueue(){if(this.interactionQueue.length===0)return;let n=[...this.interactionQueue];if(this.interactionQueue.length=0,this.isLocalOnlyMode()){this.persistLocalRuntimeState();return}let r=n.map(o=>({user_id:o.userId,placement_id:o.placementId,treatment_id:o.treatmentId,interaction_type:o.interactionType,interaction_at:o.interactionAt,surface_slot_id:o.surfaceSlotId,surface_template_id:o.surfaceTemplateId,payload_id:o.payloadId,metadata:o.metadata??{},tenant_id:this.tenantId}));try{(await fetch(this.endpointFor("touchpointTransition",JZ),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":en()},body:JSON.stringify(r.length===1?r[0]:r)})).ok||(await fetch(this.endpointFor("legacyInteractions",WZ),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":en()},body:JSON.stringify(n.length===1?n[0]:n)})).ok||this.interactionQueue.unshift(...n);}catch{this.interactionQueue.unshift(...n);}}async trackTreatmentInteraction(n){let r={...n,interactionAt:n.interactionAt??new Date().toISOString()};this.updateInteractionState(r),this.interactionQueue.push(r),this.flushInteractionQueue();let o=r.placementId,t=r.treatmentId,i=r.metadata??{};if(r.interactionType==="dismiss")this.impressionHistory.recordDismissal(o,t);else if(r.interactionType==="cta_clicked"||r.interactionType==="cta_completed")this.impressionHistory.recordClickThru(o,t);else if(r.interactionType==="suppress"){let l=Number(i.suppress_duration_ms);this.impressionHistory.recordSuppression(o,t,void 0,i,Number.isFinite(l)&&l>0?l:void 0);}let s=r.metadata??{},c=typeof s.decision_id=="string"?s.decision_id:null;await this.emitSemantic("placement_interaction",{user_id:r.userId,placement_id:r.placementId,treatment_id:r.treatmentId??null,interaction_type:r.interactionType,interaction_at:r.interactionAt??null,...c?{decision_id:c}:{},metadata:s},{immediate:false});}async getPlacementContent(n,r){let o=this.placements.get(n),t=en();if(this.isDisabledByProviderFailure()){let s=this.disabledDecisionForPlacement(n,o?.name);return {placementId:n,requestId:t,decisionSource:"fallback",content:s.content}}if(this.isLocalOnlyMode()){let s=this.localPlacementsByLookupKey.get(this.localPlacementLookupKey({placementHandle:n}));return {placementId:n,requestId:t,decisionSource:s?"remote":"fallback",content:Wi(typeof s?.content?.title=="string"?String(s.content.title):`${o?.name??n} treatment`,typeof s?.content?.body=="string"?String(s.content.body):"Local runtime placement content.",typeof s?.content?.cta=="string"?String(s.content.cta):"Continue")}}if(!o)return {placementId:n,requestId:t,decisionSource:"fallback",content:Wi("Placement not found","Register the placement before requesting content.","Register placement")};let i={request_id:t,tenant_id:this.tenantId,placement_id:n,context:{user:this.userContext,page:this.pageContext,placement:o},request:r||{}};try{let s=await fetch(this.endpointFor("decide","/api/sdk/decide"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":t},body:JSON.stringify(i)});if(!s.ok)throw new Error(`decision request failed: ${s.status}`);let c=await s.json();return {placementId:n,requestId:t,decisionSource:"remote",content:Wi(c.recommendation?.title||`${o.name} recommendation`,c.recommendation?.message||"Treatment selected by RevTurbine decisioning.",c.recommendation?.action||"View details")}}catch{return {placementId:n,requestId:t,decisionSource:"fallback",content:Wi(`${o.name} treatment`,"Fallback treatment active while decision endpoint is unavailable.","Continue")}}}normalizePlacementOutput(n){let r=nl(n,en);return r&&oe(n)&&typeof n.decision_id!="string"&&this.capture(Bp,{reason:"placement response missing decision_id; generated synthetic",output_id:r.output_id,synthetic_decision_id:r.decision_id}),r}normalizeEntitlementResult(n){return kx(n,en)}validateTrialStatusShape(n){return yh(n)}async getPlacement(n){if(this.isDisabledByProviderFailure())return this.disabledPlacementOutputForConfig(n);let r=n.slotId,o=n.surfaceType;if(o&&!Nz.has(o))return this.capture(Bp,{reason:`getPlacement called with unknown surfaceType: ${String(o)}`,slot_id:r??null}),null;let t=en();if(this.isLocalOnlyMode()){let i=this.localRuntime?.resolvers?.getPlacement;if(i){let l=await i(n);return l&&this.applyPlacementCapsIfNeeded(l).allowed?l:null}let s=this.localPlacementForConfig(n);return s&&this.applyPlacementCapsIfNeeded(s).allowed?s:null}try{let i=await fetch(this.endpointFor("getPlacement","/api/sdk/get-placement"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":t},body:JSON.stringify({request_id:t,tenant_id:this.tenantId,slot_id:r,surface_type:o,entitlement_handle:n.entitlementHandle,plan_handle:n.planHandle,placement_handle:n.placementHandle,user_id:this.userContext.id,usage:this.usageBalances,context:{user:this.userContext,page:this.pageContext}})});if(!i.ok)return null;let s=await i.json(),c=this.normalizePlacementOutput(s);return !c||!this.applyPlacementCapsIfNeeded(c).allowed?null:(this.localPlacementsByLookupKey.set(this.localPlacementLookupKey(n),c),this.persistLocalRuntimeState(),c)}catch{return null}}async checkEntitlement(n,r){if(this.isDisabledByProviderFailure())return {status:"denied",allowed:false,reason:this.sdkDisabledReason??"sdk_disabled_provider_failure"};let o=r?.used!==void 0?{used:r.used}:r?.balance!==void 0?{balance:r.balance}:this.usageBalances[n]!==void 0?{used:this.usageBalances[n]}:void 0,t=en();if(this.isLocalOnlyMode()){let i=this.localRuntime?.resolvers?.checkEntitlement;if(i){let l=await i(n,r);return this.localEntitlementsByHandle.set(n,l),this.persistLocalRuntimeState(),l}let s=this.deriveLocalEntitlementFromConfiguredRules(n,r);if(s)return this.localEntitlementsByHandle.set(n,s),this.persistLocalRuntimeState(),s;let c=this.localEntitlementsByHandle.get(n);return c||{status:"denied",allowed:false,reason:"local_runtime_default_allow"}}try{let i=await fetch(this.endpointFor("checkEntitlement","/api/sdk/check-entitlement"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":t},body:JSON.stringify({request_id:t,tenant_id:this.tenantId,handle:n,user_id:this.userContext.id,usage:o,required_tier:r?.requiredTier,context:{user:this.userContext}})});if(!i.ok)return {status:"denied",allowed:!1,reason:"entitlement_service_unavailable"};let s=await i.json(),c=this.normalizeEntitlementResult(s);return this.localEntitlementsByHandle.set(n,c),this.persistLocalRuntimeState(),c}catch{return {status:"denied",allowed:false,reason:"entitlement_check_error"}}}updateUsage(n){let r=this.userContext;this.usageBalances={...this.usageBalances,...n},this.recalculateDerivedUsageTraits(),this.markSegmentsDirtyFromContextChange(r,this.userContext),this.persistLocalRuntimeState(),this.evaluateUserSegmentsAndUsage({},true);}getUserContext(){let n=this.userContext.id||this.anonymousId,r=new Date().toISOString();return {id:n,tenant_id:this.tenantId,user_id:n,created_at:r,updated_at:r,account_id:this.userContext.account_id,email:this.userContext.email,plan:this.userContext.plan,usage:this.userContext.usage??{},entitlements:this.userContext.entitlements??{},custom:Object.fromEntries(Object.entries(this.userContext.custom??{}).filter(([,o])=>typeof o=="string"||typeof o=="number"||typeof o=="boolean"||o===null)),personalization:Object.fromEntries(Object.entries(this.userContext.personalization??{}).filter(([,o])=>typeof o=="string"||typeof o=="number")),derived_computed_at:null}}async fetchUserContext(n){let r=en();if(this.isLocalOnlyMode()){let o=this.localRuntime?.resolvers?.fetchUserContext;if(o){let i=await o(n);return this.localUserContextsByUserId.set(n,i),this.persistLocalRuntimeState(),i}let t=this.localUserContextsByUserId.get(n);return t||{userId:n,segmentIds:[],traits:{},plan:void 0,usage:this.usageBalances}}try{let o=await fetch(this.endpointFor("userContext","/api/sdk/user-context"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":r},body:JSON.stringify({request_id:r,tenant_id:this.tenantId,user_id:n,context:{user:this.userContext,page:this.pageContext}})});if(!o.ok)return {userId:n,segmentIds:[],traits:{}};let t=await o.json(),i={userId:n,segmentIds:Array.isArray(t.segment_ids)?t.segment_ids.filter(s=>typeof s=="string"):[],traits:oe(t.traits)?t.traits:{},plan:typeof t.plan=="string"?t.plan:void 0,usage:oe(t.usage)?Object.fromEntries(Object.entries(t.usage).filter(([,s])=>typeof s=="number")):void 0};return this.localUserContextsByUserId.set(n,i),this.persistLocalRuntimeState(),i}catch{return {userId:n,segmentIds:[],traits:{}}}}async recordImpression(n,r,o,t){await this.impressionHistory.recordImpression(n,r,o,t);}async recordDismissal(n,r,o,t){await this.impressionHistory.recordDismissal(n,r,o,t);}async recordClickThru(n,r,o,t){await this.impressionHistory.recordClickThru(n,r,o,t);}async getTrialStatus(){let n=en();if(this.isLocalOnlyMode()){let r=this.localRuntime?.resolvers?.getTrialStatus;if(r){let o=await r();return this.localTrialStatus=o,await this.evaluateTrialLifecycleTriggers(o),this.persistLocalRuntimeState(),o}return await this.evaluateTrialLifecycleTriggers(this.localTrialStatus),this.localTrialStatus}try{let r=await fetch(this.endpointFor("trialStatus","/api/sdk/trial-status"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":n},body:JSON.stringify({request_id:n,tenant_id:this.tenantId,user_id:this.userContext.id})});if(!r.ok)return {in_trial:!1};let o=await r.json(),t=this.validateTrialStatusShape(o);return this.localTrialStatus=t,await this.evaluateTrialLifecycleTriggers(t),this.persistLocalRuntimeState(),t}catch{return {in_trial:false}}}async setTrialInstances(n,r){let o=this.getConfiguredExportedConfig(),t=r?.nowIso??new Date().toISOString(),{trial:i}=ld({...o?.free_trial_rules!==void 0?{freeTrialRules:o.free_trial_rules}:{},...o?.reverse_trial_rules!==void 0?{reverseTrialRules:o.reverse_trial_rules}:{},instances:n,nowIso:t,usageBalances:this.usageBalances,...r?.basePlanHandle!==void 0?{basePlanHandle:r.basePlanHandle}:{}}),s=i??{in_trial:false};return this.localTrialStatus=s,await this.evaluateTrialLifecycleTriggers(s),this.persistLocalRuntimeState(),s}getExportedConfig(){return this.getConfiguredExportedConfig()}async validateUiPathResolvers(n={}){await this.refreshExportedConfigSnapshot();let r=this.getConfiguredExportedConfig(),o=Array.isArray(n.uiPaths)?n.uiPaths:oe(r)&&Array.isArray(r.content_ui_paths)?r.content_ui_paths:[],t=n.includeProviderHandlers??true,i=Mp(n.resolvers,"validateUiPathResolvers(options.resolvers)"),s={...this.uiPathResolvers,...i};if(t&&this.providerRegistry.has("cta"))try{let m=await this.providerRegistry.resolveAll();oe(m.cta)&&oe(m.cta.handlers)&&Object.assign(s,m.cta.handlers);}catch{}let c=[],l=0;for(let m of o){let p=oe(m)?m:{},f=typeof p.action_type=="string"?p.action_type.trim():"";if(!f){c.push({actionType:"unknown",reason:"missing_action_type",...typeof p.id=="string"?{uiPathId:p.id}:{},...typeof p.name=="string"?{name:p.name}:{}});continue}if(typeof s[f]=="function"){l+=1;continue}c.push({actionType:f,reason:"missing_resolver",...typeof p.id=="string"?{uiPathId:p.id}:{},...typeof p.name=="string"?{name:p.name}:{}});}let d={valid:c.length===0,totalUiPaths:o.length,resolvedUiPaths:l,issues:c};if(!d.valid&&n.throwOnMissing){let m=d.issues.filter(f=>f.reason==="missing_resolver").map(f=>f.actionType),p=m.length>0?` Missing resolver(s) for action_type: ${Array.from(new Set(m)).join(", ")}.`:"";throw new Error(`[RevTurbine] UI path resolver validation failed with ${d.issues.length} issue(s).${p}`)}return d}assertUiPathResolverCoverageOrThrow(){let n=this.getConfiguredExportedConfig(),r=oe(n)&&Array.isArray(n.content_ui_paths)?n.content_ui_paths:[];if(r.length===0)return;let o=[],t=0;for(let c of r){let d=(oe(c)?c:{}).action_type,m=typeof d=="string"?d.trim():"";if(!m){t+=1;continue}typeof this.uiPathResolvers[m]!="function"&&o.push(m);}if(t===0&&o.length===0)return;let i=Array.from(new Set(o)),s=[];throw i.length>0&&s.push(`missing resolvers for action_type: ${i.join(", ")}`),t>0&&s.push(`content_ui_paths with missing action_type: ${t}`),new Error(`[RevTurbine] SDK initialization failed: ${s.join("; ")}.`)}async dismiss(n){await this.emitSemantic("placement_interaction",{interaction_type:"dismiss",payload_id:n,user_id:this.userContext.id??null,interaction_at:new Date().toISOString()},{immediate:false});}async snooze(n,r=3600){await this.emitSemantic("placement_interaction",{interaction_type:"remind_me_later",payload_id:n,user_id:this.userContext.id??null,interaction_at:new Date().toISOString(),remind_after_seconds:r},{immediate:false});}async convert(n){await this.emitSemantic("placement_interaction",{interaction_type:"cta_completed",payload_id:n,user_id:this.userContext.id??null,interaction_at:new Date().toISOString()},{immediate:false});}async emitTrigger(n,r,o){await this.emitSemantic(n,{...r,user_id:this.userContext.id??null,plan_handle:this.userContext.personalization?.plan_name??null,triggered_at:new Date().toISOString(),source:"sdk"},o);}async trackEvent(n,r){await this.capture(n,r??{});}identify(n,r){let o=this.userContext,t=r!=null&&typeof r=="object"&&!Array.isArray(r)&&("account_id"in r||"email"in r||"plan"in r||"usage"in r||"entitlements"in r||"custom"in r);if(t){let i=r;i.usage&&(this.usageBalances={...this.usageBalances,...ti(i.usage)}),this.userContext=this.mergeUserContext({id:n,account_id:i.account_id,email:i.email,plan:i.plan,usage:i.usage,entitlements:i.entitlements,custom:i.custom,personalization:i.personalization});}else this.userContext=this.mergeUserContext({id:n,custom:r,usage:{}});this.recalculateDerivedUsageTraits(),this.markSegmentsDirtyFromContextChange(o,this.userContext),this.decisionCache.clear(),this.persistDecisionCache(),this.persistLocalRuntimeState(),this.impressionHistory.setUserId(n),this.impressionHistory.hydrate(),this.emitObservedContextFields(t?r.custom:r);}resetIdentity(){this.clearAllUserState({reinfer:true});}resetUserContext(){this.clearAllUserState({reinfer:false});}clearAllUserState({reinfer:n}){let r=this.userContext;this.userContext={usage:{},...n&&this.policy.inferUser?Fz():{},id:void 0,custom:{},entitlements:{},personalization:{}},this.usageBalances={},this.recalculateDerivedUsageTraits(),this.markSegmentsDirtyFromContextChange(r,this.userContext),this.decisionCache.clear(),this.interactionState.clear(),this.persistDecisionCache(),this.persistInteractionState(),this.persistLocalRuntimeState(),this.impressionHistory.setUserId(this.anonymousId),this.impressionHistory.hydrate();}can(n,r){return this.checkEntitlement(n,r)}async gate(n,r,o){this.emitSemantic("gate_attempted",{entitlement_handle:n},{immediate:false});let t=await this.checkEntitlement(n,o);return t.allowed?(this.emitSemantic("gate_allowed",{entitlement_handle:n},{immediate:false}),{ran:true,result:await r(),entitlement:t}):(this.emitSemantic("gate_denied",{entitlement_handle:n,reason:t.reason??null},{immediate:false}),{ran:false,entitlement:t})}track(n,r){return this.trackEvent(n,r)}update(n){n.usage&&this.updateUsage(n.usage);}reset(){this.resetIdentity();}onRouteChange(n){this.setPageContext({url:`${zn()?window.location.origin:""}${n.path}`,title:n.title,tags:n.tags}),this.capture("page_view",{source:"router_auto_track",path:n.path});}};function tu(e){let n=uq(e),r=new aI(n);if(!n.provider)return r;let o=(m,p)=>{try{return typeof m=="function"?m(n):m}catch(f){return console.warn(`[RevTurbine] Provider factory failed at chain index ${p}.`,f),null}},t=[o(n.provider,0),...(n.providerFallbacks??[]).map((m,p)=>o(m,p+1))].filter(m=>m!==null);if(t.length===0)return r.disableForProviderFailure("provider_factory_chain_failed"),r;let i=async(m,p,f)=>{let g=[];for(let h=0;h<t.length;h+=1){let S=t[h][m];if(S){g.push(h);try{return await S(...p)}catch(w){let $=t.slice(h+1).some(E=>typeof E[m]=="function");console.warn(h===0&&$?`[RevTurbine] Primary provider ${m} failed; trying configured fallbacks.`:`[RevTurbine] Provider ${m} failed at chain index ${h}.`,w);}}}return g.length===0||r.disableForProviderFailure(`provider_${m}_chain_failed`),f()},s=r.getPlacement.bind(r),c=r.checkEntitlement.bind(r),l=r.persistPlacementTypes.bind(r),d=r.identify.bind(r);return r.getPlacement=async m=>i("getPlacement",[m],()=>s(m)),r.checkEntitlement=async(m,p)=>i("checkEntitlement",[m,p],()=>c(m,p)),r.persistPlacementTypes=async m=>i("persistPlacementTypes",[m],()=>l(m)),r.identify=(m,p)=>{let f=0;for(let g=0;g<t.length;g+=1){let h=t[g];if(h.identify){f+=1;try{h.identify(m,p);return}catch(x){let S=t.slice(g+1).some(w=>typeof w.identify=="function");console.warn(g===0&&S?"[RevTurbine] Primary provider identify failed; trying configured fallbacks.":`[RevTurbine] Provider identify failed at chain index ${g}.`,x);}}}if(f>0){r.disableForProviderFailure("provider_identify_chain_failed"),d(m,p);return}d(m,p);},r}var Vp={tenantId:"local",apiKey:"local-only",endpoint:"https://api.revturbine.local",mode:"react"};function tI(e){return typeof e=="string"&&e.trim().length>0}function uq(e){return Is(e.localRuntime)!==void 0?{...e,tenantId:tI(e.tenantId)?e.tenantId:Vp.tenantId,apiKey:tI(e.apiKey)?e.apiKey:Vp.apiKey,endpoint:tI(e.endpoint)?e.endpoint:Vp.endpoint,mode:e.mode??Vp.mode,runtimeMode:e.runtimeMode??"local_only"}:e}function dq(e){if(!oe(e))return null;let n=(l,d)=>String(l??"").trim().slice(0,d),r=n(e.id,256),o=n(e.label,256),t=n(e.description,1024),i=n(e.surfaceType,64);if(!r||!o||!t||!Nz.has(i))return null;let s=Number(e.priority),c=Number.isFinite(s)?Math.max(0,Math.floor(s)):0;return {id:r,label:o,description:t,surfaceType:i,priority:c}}typeof window<"u"&&(window.RevTurbine={init:tu});var mq="revturbine:theme";function cI(e){return `${mq}:${e}`}function pq(e,n){try{let r=n.getItem(cI(e));if(!r)return null;let o=JSON.parse(r);return typeof o!="object"||o===null?null:o}catch{return null}}function fq(e,n,r){try{r.setItem(cI(e),JSON.stringify(n));}catch{}}function Bz(e,n){let r=n??Li();try{r.removeItem(cI(e));}catch{}}async function Ps(e,n){let{tenantId:r,endpoint:o,apiKey:t}=e,i=e.storage??Li(),s=pq(r,i),c=di(s);return gq(o,r,t).then(l=>{l&&(s?.version&&l.version===s.version||(fq(r,l,i),n?.(di(l))));}).catch(()=>{}),c}async function gq(e,n,r){let o=e.replace(/\/$/,""),t=typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`,i=await fetch(`${o}/api/sdk/theme`,{method:"GET",headers:{authorization:`Bearer ${r}`,"x-tenant-id":n,"x-request-id":t}});if(!i.ok)return null;let s=await i.json();return typeof s!="object"||s===null?null:s}var ks=class{constructor(n,r){O(this,"sdk");O(this,"options");O(this,"listeners",new Set);O(this,"_placementId","");O(this,"_decision",null);O(this,"_isLoading",false);O(this,"_error","");O(this,"_impressionTracked",false);O(this,"_loadSeq",0);O(this,"_rendered",false);O(this,"_exposed",false);O(this,"_exposureBasis",null);this.sdk=n,this.options=r;}get state(){return {isLoading:this._isLoading,error:this._error,placementId:this._placementId,visible:!!this._decision?.visible,decision:this._decision,content:this._decision?.content??null,exposureBasis:this._exposureBasis}}get exposureMode(){return this.options.placementExposure??"legacy_resolution"}markRendered(){this._rendered||(this._rendered=true,this.emitPlacementLifecycle("placement_rendered",null),this.exposureMode==="render"&&this.fireImpression("render"),this.notify());}markVisible(n="viewport"){this._exposed||(this._exposed=true,this._exposureBasis=n,this.emitPlacementLifecycle("placement_exposed",n),this.exposureMode==="viewport"&&n==="viewport"&&this.fireImpression("viewport"),this.notify());}fireImpression(n){let r=this._decision;if(!r?.visible||this._impressionTracked||this.options.autoTrackImpression===false)return;let o=this.options.userId||this.sdk.getUserContext().user_id;o&&(this._impressionTracked=true,this.sdk.trackTreatmentInteraction({userId:o,placementId:this._placementId,interactionType:"impression",surfaceSlotId:r.output?.surface?.slot_id,surfaceTemplateId:r.output?.surface?.template,payloadId:r.output?.output_id,metadata:{decision_source:r.decisionSource,exposure_basis:n,decision_id:r.output?.decision_id??null}}));}emitPlacementLifecycle(n,r){let o=this._decision;try{this.sdk.emitSemantic(n,{placement_id:this._placementId,surface_slot_id:o?.output?.surface?.slot_id??null,payload_id:o?.output?.output_id??null,decision_id:o?.output?.decision_id??null,decision_source:o?.decisionSource??null,...r?{exposure_basis:r}:{}},{immediate:!1});}catch{}}get visible(){return !!this._decision?.visible}get content(){return this._decision?.content??null}get decision(){return this._decision}get placementId(){return this._placementId}async load(){let n=this.options,r=n.userId||this.sdk.getUserContext().user_id;if(!r)return this._error="Cannot load placement: no userId available.",this.notify(),null;let o=++this._loadSeq;this._isLoading=true,this._error="",this.notify();try{if(!this._placementId)if(n.surfaceSlot)this._placementId=await this.sdk.registerSurfaceSlot(n.surfaceSlot);else if(n.placement)this._placementId=await this.sdk.registerPlacement(n.placement);else return this._error="Either placement or surfaceSlot must be provided.",this._isLoading=!1,this.notify(),null;if(o!==this._loadSeq)return this._decision;let t=await this.sdk.getPlacementDecision({placementId:this._placementId,userId:r,contextMode:n.contextMode,overrides:n.overrides,traits:n.traits,ttlMs:n.ttlMs});if(o!==this._loadSeq)return this._decision;this._decision=t,this.emitPlacementLifecycle("placement_resolved",null);let i=this.exposureMode;return i==="legacy_resolution"?this.fireImpression("legacy_resolution"):i==="viewport"&&!No.supported&&this.fireImpression("render_fallback"),t}catch(t){return o===this._loadSeq&&(this._error=t instanceof Error?t.message:"Failed to load placement decision."),null}finally{o===this._loadSeq&&(this._isLoading=false,this.notify());}}async refresh(){return this._impressionTracked=false,this._rendered=false,this._exposed=false,this._exposureBasis=null,this.load()}async dismiss(n=1440*60*1e3){await this.trackInteraction("dismiss",{cooldown_ms:n});}async snooze(n=3600){await this.trackInteraction("remind_me_later",{remind_after_seconds:n});}async remindMeLater(n=3600){await this.snooze(n);}async ctaClick(n){await this.trackInteraction("cta_clicked",{cta_target:n||null});}async ctaComplete(n){await this.trackInteraction("cta_completed",{cta_target:n||null});}onChange(n){return this.listeners.add(n),()=>{this.listeners.delete(n);}}reset(){this._placementId="",this._decision=null,this._isLoading=false,this._error="",this._impressionTracked=false,this._rendered=false,this._exposed=false,this._exposureBasis=null,this._loadSeq++,this.notify();}async trackInteraction(n,r){let o=this.options.userId||this.sdk.getUserContext().user_id;if(!this._placementId||!o)return;let t=this._decision?.output?.decision_id??null;await this.sdk.trackTreatmentInteraction({userId:o,placementId:this._placementId,treatmentId:this._decision?.placementId,interactionType:n,surfaceSlotId:this._decision?.output?.surface?.slot_id,surfaceTemplateId:this._decision?.output?.surface?.template,payloadId:this._decision?.output?.output_id,metadata:t?{...r,decision_id:t}:r}),(n==="dismiss"||n==="remind_me_later"||n==="cta_completed")&&this._decision&&(this._decision={...this._decision,visible:false},this.notify());}notify(){for(let n of this.listeners)n();}},Ts=class{constructor(n,r){O(this,"sdk");O(this,"options");O(this,"listeners",new Set);O(this,"_isLoading",false);O(this,"_error",null);O(this,"_result",null);O(this,"_gatedPlacement",null);O(this,"_lastEvaluatedKey",null);this.sdk=n,this.options=r;}get state(){return {isLoading:this._isLoading,error:this._error,result:this._result,allowed:this._result?.status==="allowed",limited:this._result?.status==="limited",denied:this._result?.status==="denied",gatedPlacement:this._gatedPlacement}}get allowed(){return this._result?.status==="allowed"}get limited(){return this._result?.status==="limited"}get denied(){return this._result?.status==="denied"}get result(){return this._result}get gatedPlacement(){return this._gatedPlacement}async check(){let{handle:n,context:r,autoGate:o,gatePlacementRequest:t}=this.options;this._isLoading=true,this._error=null,this.notify();try{let i=await this.sdk.checkEntitlement(n,r);if(this._result=i,this.emitGateEvaluated(n,i),!o||i.status!=="denied")this._gatedPlacement=null;else if(i.placement)this._gatedPlacement=i.placement;else {let s=await this.sdk.getPlacement({...t,entitlementHandle:n});this._gatedPlacement=s;}return i}catch(i){return this._error=i instanceof Error?i.message:String(i),this._gatedPlacement=null,null}finally{this._isLoading=false,this.notify();}}async recheck(){return this.check()}emitGateEvaluated(n,r){let o=`${n}|${r.status}`;if(this._lastEvaluatedKey!==o){this._lastEvaluatedKey=o;try{this.sdk.emitSemantic("gate_evaluated",{entitlement_handle:n,outcome:r.status,gated:r.status==="denied",reason:r.reason??null,limit:r.limit??null,used:r.used??null,remaining:r.remaining??null},{immediate:!1});}catch{}}}onChange(n){return this.listeners.add(n),()=>{this.listeners.delete(n);}}notify(){for(let n of this.listeners)n();}},Zp=class{constructor(n,r){O(this,"sdk");O(this,"theme");this.sdk=n,this.theme=r;}identify(n,r){this.sdk.identify(n,r);}resetIdentity(){this.sdk.resetIdentity();}resetUserContext(){this.sdk.resetUserContext();}setUserContext(n){this.sdk.setUserContext(n);}getUserContext(){return this.sdk.getUserContext()}updateUsage(n){this.sdk.updateUsage(n);}async fetchUserContext(n){return this.sdk.fetchUserContext(n)}async getTrialStatus(){return this.sdk.getTrialStatus()}getUsage(){return this.sdk.getUsage()}placement(n){return new ks(this.sdk,n)}async getPlacementBySlotId(n,r){return this.placement({...r,surfaceSlot:{id:n,name:n}}).load()}async getPlacement(n){return this.sdk.getPlacement(n)}entitlement(n){return new Ts(this.sdk,n)}async checkEntitlement(n,r){return this.sdk.checkEntitlement(n,r)}async trackEvent(n,r){return this.sdk.trackEvent(n,r)}};async function hq(e){let{bootstrapPlacements:n,...r}=e,o=r,t=tu(o),i=o.user;i&&typeof i=="object"&&i.id&&t.identify(i.id,i);let s=Sn,l=Is(o.localRuntime)?.theme;if(l&&typeof l=="object"?s=di(l):s=await Ps({tenantId:o.tenantId??"local",endpoint:o.endpoint??"https://api.revturbine.local",apiKey:o.apiKey??"local-only"}),n&&n.length>0){let d=t.getUserContext().user_id,m=[];for(let p of n){let f=await t.registerPlacement(p.placement),g=p.userId||d;g&&m.push({placementId:f,userId:g,contextMode:p.contextMode,overrides:p.overrides,traits:p.traits,ttlMs:p.ttlMs});}m.length>0&&await t.bootstrapPlacementDecisions(m);}return new Zp(t,s)}var bq=/\{[^{}]+\}/g,_q=()=>typeof process=="object"&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function vq(){return Math.random().toString(36).slice(2,11)}function Hz(e){let{baseUrl:n="",Request:r=globalThis.Request,fetch:o=globalThis.fetch,querySerializer:t,bodySerializer:i,pathSerializer:s,headers:c,requestInitExt:l=void 0,...d}={...e};l=_q()?l:void 0,n=qz(n);let m=[];async function p(f,g){let{baseUrl:h,fetch:x=o,Request:S=r,headers:w,params:$={},parseAs:E="json",querySerializer:P,bodySerializer:I=i??xq,pathSerializer:z,body:X,middleware:re=[],...L}=g||{},H=n;h&&(H=qz(h)??n);let ee=typeof t=="function"?t:Mz(t);P&&(ee=typeof P=="function"?P:Mz({...typeof t=="object"?t:{},...P}));let Pe=z||s||yq,me=X===void 0?void 0:I(X,Zz(c,w,$.header)),fe=Zz(me===void 0||me instanceof FormData?{}:{"Content-Type":"application/json"},c,w,$.header),ie=[...m,...re],ze={redirect:"follow",...d,...L,body:me,headers:fe},At,Qe,he=new S(Sq(f,{baseUrl:H,params:$,querySerializer:ee,pathSerializer:Pe}),ze),rt;for(let G in L)G in he||(he[G]=L[G]);if(ie.length){At=vq(),Qe=Object.freeze({baseUrl:H,fetch:x,parseAs:E,querySerializer:ee,bodySerializer:I,pathSerializer:Pe});for(let G of ie)if(G&&typeof G=="object"&&typeof G.onRequest=="function"){let ge=await G.onRequest({request:he,schemaPath:f,params:$,options:Qe,id:At});if(ge)if(ge instanceof S)he=ge;else if(ge instanceof Response){rt=ge;break}else throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}if(!rt){try{rt=await x(he,l);}catch(G){let ge=G;if(ie.length)for(let ve=ie.length-1;ve>=0;ve--){let kt=ie[ve];if(kt&&typeof kt=="object"&&typeof kt.onError=="function"){let un=await kt.onError({request:he,error:ge,schemaPath:f,params:$,options:Qe,id:At});if(un){if(un instanceof Response){ge=void 0,rt=un;break}if(un instanceof Error){ge=un;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(ge)throw ge}if(ie.length)for(let G=ie.length-1;G>=0;G--){let ge=ie[G];if(ge&&typeof ge=="object"&&typeof ge.onResponse=="function"){let ve=await ge.onResponse({request:he,response:rt,schemaPath:f,params:$,options:Qe,id:At});if(ve){if(!(ve instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");rt=ve;}}}}let rn=rt.headers.get("Content-Length");if(rt.status===204||he.method==="HEAD"||rn==="0"&&!rt.headers.get("Transfer-Encoding")?.includes("chunked"))return rt.ok?{data:void 0,response:rt}:{error:void 0,response:rt};if(rt.ok)return {data:await(async()=>{if(E==="stream")return rt.body;if(E==="json"&&!rn){let ge=await rt.text();return ge?JSON.parse(ge):void 0}return await rt[E]()})(),response:rt};let K=await rt.text();try{K=JSON.parse(K);}catch{}return {error:K,response:rt}}return {request(f,g,h){return p(g,{...h,method:f.toUpperCase()})},GET(f,g){return p(f,{...g,method:"GET"})},PUT(f,g){return p(f,{...g,method:"PUT"})},POST(f,g){return p(f,{...g,method:"POST"})},DELETE(f,g){return p(f,{...g,method:"DELETE"})},OPTIONS(f,g){return p(f,{...g,method:"OPTIONS"})},HEAD(f,g){return p(f,{...g,method:"HEAD"})},PATCH(f,g){return p(f,{...g,method:"PATCH"})},TRACE(f,g){return p(f,{...g,method:"TRACE"})},use(...f){for(let g of f)if(g){if(typeof g!="object"||!("onRequest"in g||"onResponse"in g||"onError"in g))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");m.push(g);}},eject(...f){for(let g of f){let h=m.indexOf(g);h!==-1&&m.splice(h,1);}}}}function qp(e,n,r){if(n==null)return "";if(typeof n=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${e}=${r?.allowReserved===true?n:encodeURIComponent(n)}`}function Kz(e,n,r){if(!n||typeof n!="object")return "";let o=[],t={simple:",",label:".",matrix:";"}[r.style]||"&";if(r.style!=="deepObject"&&r.explode===false){for(let c in n)o.push(c,r.allowReserved===true?n[c]:encodeURIComponent(n[c]));let s=o.join(",");switch(r.style){case "form":return `${e}=${s}`;case "label":return `.${s}`;case "matrix":return `;${e}=${s}`;default:return s}}for(let s in n){let c=r.style==="deepObject"?`${e}[${s}]`:s;o.push(qp(c,n[s],r));}let i=o.join(t);return r.style==="label"||r.style==="matrix"?`${t}${i}`:i}function Gz(e,n,r){if(!Array.isArray(n))return "";if(r.explode===false){let i={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[r.style]||",",s=(r.allowReserved===true?n:n.map(c=>encodeURIComponent(c))).join(i);switch(r.style){case "simple":return s;case "label":return `.${s}`;case "matrix":return `;${e}=${s}`;default:return `${e}=${s}`}}let o={simple:",",label:".",matrix:";"}[r.style]||"&",t=[];for(let i of n)r.style==="simple"||r.style==="label"?t.push(r.allowReserved===true?i:encodeURIComponent(i)):t.push(qp(e,i,r));return r.style==="label"||r.style==="matrix"?`${o}${t.join(o)}`:t.join(o)}function Mz(e){return function(r){let o=[];if(r&&typeof r=="object")for(let t in r){let i=r[t];if(i!=null){if(Array.isArray(i)){if(i.length===0)continue;o.push(Gz(t,i,{style:"form",explode:true,...e?.array,allowReserved:e?.allowReserved||false}));continue}if(typeof i=="object"){o.push(Kz(t,i,{style:"deepObject",explode:true,...e?.object,allowReserved:e?.allowReserved||false}));continue}o.push(qp(t,i,e));}}return o.join("&")}}function yq(e,n){let r=e;for(let o of e.match(bq)??[]){let t=o.substring(1,o.length-1),i=false,s="simple";if(t.endsWith("*")&&(i=true,t=t.substring(0,t.length-1)),t.startsWith(".")?(s="label",t=t.substring(1)):t.startsWith(";")&&(s="matrix",t=t.substring(1)),!n||n[t]===void 0||n[t]===null)continue;let c=n[t];if(Array.isArray(c)){r=r.replace(o,Gz(t,c,{style:s,explode:i}));continue}if(typeof c=="object"){r=r.replace(o,Kz(t,c,{style:s,explode:i}));continue}if(s==="matrix"){r=r.replace(o,`;${qp(t,c)}`);continue}r=r.replace(o,s==="label"?`.${encodeURIComponent(c)}`:encodeURIComponent(c));}return r}function xq(e,n){return e instanceof FormData?e:n&&(n.get instanceof Function?n.get("Content-Type")??n.get("content-type"):n["Content-Type"]??n["content-type"])==="application/x-www-form-urlencoded"?new URLSearchParams(e).toString():JSON.stringify(e)}function Sq(e,n){let r=`${n.baseUrl}${e}`;n.params?.path&&(r=n.pathSerializer(r,n.params.path));let o=n.querySerializer(n.params.query??{});return o.startsWith("?")&&(o=o.substring(1)),o&&(r+=`?${o}`),r}function Zz(...e){let n=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let o=r instanceof Headers?r.entries():Object.entries(r);for(let[t,i]of o)if(i===null)n.delete(t);else if(Array.isArray(i))for(let s of i)n.append(t,s);else i!==void 0&&n.set(t,i);}return n}function qz(e){return e.endsWith("/")?e.substring(0,e.length-1):e}function Iq(e){let n={...e.headers};return e.tenantId&&(n["x-rt-tenant-id"]=e.tenantId),e.token&&(n.Authorization=`Bearer ${e.token}`),Hz({baseUrl:e.baseUrl,headers:n})}var lI=class extends Error{constructor(r,o){super(o);O(this,"status",r);this.name="ApiError";}};var uI=class extends rO{constructor(r){let{exportedConfig:o,environmentId:t,...i}=r,s=vi(o,"BrowserRuntime.exportedConfig",{tenantId:r.tenantId,environmentId:t??"default"});if(!s)throw new Error("BrowserRuntime requires exportedConfig");let c=Li(r.storage),l=new pp({storage:c,tenantId:r.tenantId,maxRecords:r.maxImpressionRecords});super({...i,exportedConfig:s,storage:c,impressionStore:l});O(this,"_hydratePromise");let d=r.autoHydrate??true;this._hydratePromise=d?this.hydrate():null;}async ready(){this._hydratePromise&&await this._hydratePromise;}};var Pq=new Set(["tenant_id","user_id","anonymous_id","session_id","url","path","page_title","event_time"]);function kq(e){let n={};for(let[r,o]of Object.entries(e.properties))n[Pq.has(r)?`rt_prop_${r}`:r]=o;return {...n,tenant_id:e.tenant_id,user_id:e.user_id,anonymous_id:e.anonymous_id,session_id:e.session_id,url:e.url,path:e.path,page_title:e.page_title,event_time:e.event_time}}var dI=class{constructor(n){O(this,"name");O(this,"handler");O(this,"transform");O(this,"filterSet");this.name=n.name??"analytics",this.handler=n.handler,this.transform=n.transform,this.filterSet=n.filter?new Set(n.filter):void 0;}consume(n){for(let r of n){if(this.filterSet&&!this.filterSet.has(r.type))continue;let o=r.type,t=kq(r);if(this.transform){let i=this.transform(o,t);if(i===null)continue;o=i.eventName,t=i.properties;}try{this.handler(o,t);}catch{}}}};function Jz(e){let n=new dI(e);return {domain:"events",resolve:()=>({consumers:[n]})}}function Tq(e){let{posthog:n,filter:r,transform:o,name:t}=e;return Jz({name:t??"posthog",filter:r,transform:o,handler:(i,s)=>{n.capture(i,s);}})}var Wz=["banner_placement"],Xz=["banner_placement","in_page_card"],Yz=["toast_message"],Qz=["modal_overlay"];var nu=["banner_placement","in_page_card","usage_counter","button"],ru=["modal_overlay","inline_gate_message"],iu=["toast_message","modal_overlay","banner_placement"];function ou(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}var Hp=class{constructor(n){O(this,"tenantId");O(this,"apiKey");O(this,"endpoint");O(this,"defaultTtlSeconds");O(this,"fetchFn");this.tenantId=n.tenantId,this.apiKey=n.apiKey,this.endpoint=n.endpoint.replace(/\/$/,""),this.defaultTtlSeconds=n.defaultTtlSeconds??60,this.fetchFn=n.fetch??globalThis.fetch;}async evaluate(n){let r=ou(),o=n.anonymousId??ou(),[t,i,s,c,l]=await Promise.all([this.evaluatePlacements(r,n),this.evaluateEntitlements(r,n),n.includeTrialStatus?this.fetchTrialStatus(r,n.userId):Promise.resolve(void 0),n.includeUserContext?this.fetchUserContext(r,n.userId):Promise.resolve(void 0),n.includeTheme?this.fetchTheme(r):Promise.resolve(void 0)]),d={version:"1.0.0",request_id:r,tenant_id:this.tenantId,evaluated_at:new Date().toISOString(),ttl_seconds:this.defaultTtlSeconds,user:{id:n.userId,anonymous_id:o,traits:n.traits},decisions:t};return i&&Object.keys(i).length>0&&(d.entitlements=i),s&&(d.trial_status=s),c&&(d.user_context=c),l&&(d.theme=l),d}async getPlacement(n,r,o){let t=ou(),i={request_id:t,user_id:n,traits:o??{},slot_id:r.slotId,entitlement_handle:r.entitlementHandle,plan_handle:r.planHandle,placement_handle:r.placementHandle};try{let s=await this.apiCall(t,"/api/decision-api/v1/decide-context",i);if(!s.ok)return {slot_id:r.slotId,entitlement_handle:r.entitlementHandle,plan_handle:r.planHandle,placement_handle:r.placementHandle,visible:!1,reason_codes:["api_error"]};let c=await s.json(),l=c.decision,d=l?.visible??!1,m={slot_id:r.slotId,entitlement_handle:r.entitlementHandle,plan_handle:r.planHandle,placement_handle:r.placementHandle,visible:d};return d&&l&&(m.output=l),c.reason_codes&&(m.reason_codes=c.reason_codes),m}catch{return {slot_id:r.slotId,entitlement_handle:r.entitlementHandle,plan_handle:r.planHandle,placement_handle:r.placementHandle,visible:false,reason_codes:["network_error"]}}}async checkEntitlement(n,r,o){let t=ou(),i={request_id:t,user_id:n,entitlement_handle:r,...o??{}};try{let s=await this.apiCall(t,"/api/decision-api/v1/check-entitlement",i);if(!s.ok)return {status:"denied",allowed:!1,reason:"api_error"};let c=await s.json();return {status:c.status??"denied",allowed:c.allowed??!1,reason:c.reason,current_tier:c.current_tier}}catch{return {status:"denied",allowed:false,reason:"network_error"}}}can(n,r,o){return this.checkEntitlement(n,r,o)}async getTrialStatus(n){let r=ou();return this.fetchTrialStatus(r,n)}async apiCall(n,r,o){return this.fetchFn(`${this.endpoint}${r}`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":n},body:JSON.stringify(o)})}async apiGet(n,r){return this.fetchFn(`${this.endpoint}${r}`,{method:"GET",headers:{authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":n}})}async evaluatePlacements(n,r){let o=r.placements??[];return o.length===0?[]:o.length>1?this.evaluatePlacementsBatch(n,r,o):[await this.getPlacement(r.userId,o[0],r.traits)]}async evaluatePlacementsBatch(n,r,o){let t={request_id:n,user_id:r.userId,traits:r.traits??{},usage_balances:r.usageBalances??{},page:r.page??{},placements:o.map(i=>({slot_id:i.slotId,entitlement_handle:i.entitlementHandle,plan_handle:i.planHandle,placement_handle:i.placementHandle}))};try{let i=await this.apiCall(n,"/api/decision-api/v1/bootstrap-context",t);return i.ok?(await i.json()).decisions.map((c,l)=>{let d=o[l]??{},m=c.result.decision?.visible??!1,p={slot_id:d.slotId,entitlement_handle:d.entitlementHandle,plan_handle:d.planHandle,placement_handle:d.placementHandle,visible:m};return m&&c.result.decision&&(p.output=c.result.decision),c.result.reason_codes&&(p.reason_codes=c.result.reason_codes),p}):o.map(c=>({slot_id:c.slotId,entitlement_handle:c.entitlementHandle,plan_handle:c.planHandle,placement_handle:c.placementHandle,visible:!1,reason_codes:["api_error"]}))}catch{return o.map(i=>({slot_id:i.slotId,entitlement_handle:i.entitlementHandle,plan_handle:i.planHandle,placement_handle:i.placementHandle,visible:false,reason_codes:["network_error"]}))}}async evaluateEntitlements(n,r){let o=r.entitlementHandles??[];if(o.length===0)return;let t={},i=await Promise.allSettled(o.map(async s=>{let c=await this.checkEntitlement(r.userId,s);return {handle:s,result:c}}));for(let s of i)s.status==="fulfilled"&&(t[s.value.handle]=s.value.result);return t}async fetchTrialStatus(n,r){try{let o=await this.apiCall(n,"/api/decision-api/v1/trial-status",{request_id:n,user_id:r});if(!o.ok)return {in_trial:!1};let t=await o.json();return {in_trial:t.in_trial??!1,...t.trial_type!==void 0?{trial_type:t.trial_type}:{},...t.plan_handle!==void 0?{plan_handle:t.plan_handle}:{},...t.trial_limit_type!==void 0?{trial_limit_type:t.trial_limit_type}:{},...t.progress_percent!==void 0?{progress_percent:t.progress_percent}:{},...t.day_number!==void 0?{day_number:t.day_number}:{},...t.days_remaining!==void 0?{days_remaining:t.days_remaining}:{},...t.usage_entitlement_handle!==void 0?{usage_entitlement_handle:t.usage_entitlement_handle}:{},...t.usage_consumed!==void 0?{usage_consumed:t.usage_consumed}:{},...t.usage_remaining!==void 0?{usage_remaining:t.usage_remaining}:{},...t.usage_limit!==void 0?{usage_limit:t.usage_limit}:{}}}catch{return {in_trial:false}}}async fetchUserContext(n,r){try{let o=await this.apiCall(n,"/api/decision-api/v1/user-context",{request_id:n,user_id:r});if(!o.ok)return;let t=await o.json();return {segments:t.segments,traits:t.traits,usage_balances:t.usage_balances}}catch{return}}async fetchTheme(n){try{let r=await this.apiGet(n,"/api/sdk/theme");if(!r.ok)return;let o=await r.json();return typeof o!="object"||o===null?void 0:o}catch{return}}};var u={};sn(u,{$brand:()=>pI,$input:()=>jk,$output:()=>zk,NEVER:()=>mI,TimePrecision:()=>Fk,ZodAny:()=>$T,ZodArray:()=>ET,ZodBase64:()=>yg,ZodBase64URL:()=>xg,ZodBigInt:()=>rc,ZodBigIntFormat:()=>Pg,ZodBoolean:()=>nc,ZodCIDRv4:()=>_g,ZodCIDRv6:()=>vg,ZodCUID:()=>dg,ZodCUID2:()=>mg,ZodCatch:()=>QT,ZodCodec:()=>Du,ZodCustom:()=>Fu,ZodCustomStringFormat:()=>ec,ZodDate:()=>Ou,ZodDefault:()=>KT,ZodDiscriminatedUnion:()=>zT,ZodE164:()=>Sg,ZodEmail:()=>cg,ZodEmoji:()=>lg,ZodEnum:()=>Ys,ZodError:()=>rK,ZodExactOptional:()=>ZT,ZodFile:()=>BT,ZodFirstPartyTypeKind:()=>m$,ZodFunction:()=>l$,ZodGUID:()=>$u,ZodIPv4:()=>hg,ZodIPv6:()=>bg,ZodISODate:()=>ng,ZodISODateTime:()=>tg,ZodISODuration:()=>ig,ZodISOTime:()=>rg,ZodIntersection:()=>jT,ZodIssueCode:()=>oK,ZodJWT:()=>Ig,ZodKSUID:()=>gg,ZodLazy:()=>a$,ZodLiteral:()=>VT,ZodMAC:()=>yT,ZodMap:()=>NT,ZodNaN:()=>t$,ZodNanoID:()=>ug,ZodNever:()=>RT,ZodNonOptional:()=>Cg,ZodNull:()=>kT,ZodNullable:()=>HT,ZodNumber:()=>tc,ZodNumberFormat:()=>Go,ZodObject:()=>ju,ZodOptional:()=>Rg,ZodPipe:()=>Au,ZodPrefault:()=>JT,ZodPreprocess:()=>n$,ZodPromise:()=>c$,ZodReadonly:()=>r$,ZodRealError:()=>Qn,ZodRecord:()=>Xs,ZodSet:()=>LT,ZodString:()=>Qs,ZodStringFormat:()=>It,ZodSuccess:()=>YT,ZodSymbol:()=>IT,ZodTemplateLiteral:()=>o$,ZodTransform:()=>MT,ZodTuple:()=>AT,ZodType:()=>De,ZodULID:()=>pg,ZodURL:()=>Eu,ZodUUID:()=>Qr,ZodUndefined:()=>PT,ZodUnion:()=>Uu,ZodUnknown:()=>wT,ZodVoid:()=>CT,ZodXID:()=>fg,ZodXor:()=>OT,_ZodString:()=>sg,_default:()=>GT,_function:()=>VU,any:()=>_U,array:()=>zu,base64:()=>tU,base64url:()=>nU,bigint:()=>pU,boolean:()=>ST,catch:()=>e$,check:()=>BU,cidrv4:()=>Q1,cidrv6:()=>eU,clone:()=>Dn,codec:()=>DU,coerce:()=>p$,config:()=>Jt,core:()=>gi,cuid:()=>q1,cuid2:()=>H1,custom:()=>MU,date:()=>yU,decode:()=>pT,decodeAsync:()=>gT,describe:()=>ZU,discriminatedUnion:()=>TU,e164:()=>rU,email:()=>U1,emoji:()=>M1,encode:()=>mT,encodeAsync:()=>fT,endsWith:()=>Vs,enum:()=>$g,exactOptional:()=>qT,file:()=>zU,flattenError:()=>pu,float32:()=>lU,float64:()=>uU,formatError:()=>fu,fromJSONSchema:()=>XU,function:()=>VU,getErrorMap:()=>sK,globalRegistry:()=>gn,gt:()=>Xr,gte:()=>Nn,guid:()=>A1,hash:()=>cU,hex:()=>sU,hostname:()=>aU,httpUrl:()=>B1,includes:()=>Ns,instanceof:()=>HU,int:()=>og,int32:()=>dU,int64:()=>fU,intersection:()=>UT,invertCodec:()=>FU,ipv4:()=>W1,ipv6:()=>Y1,iso:()=>Ws,json:()=>GU,jwt:()=>iU,keyof:()=>xU,ksuid:()=>J1,lazy:()=>s$,length:()=>Ho,literal:()=>OU,locales:()=>Su,looseObject:()=>PU,looseRecord:()=>wU,lowercase:()=>Ds,lt:()=>Wr,lte:()=>ur,mac:()=>X1,map:()=>RU,maxLength:()=>qo,maxSize:()=>ro,meta:()=>qU,mime:()=>Bs,minLength:()=>fi,minSize:()=>Yr,multipleOf:()=>no,nan:()=>AU,nanoid:()=>Z1,nativeEnum:()=>EU,negative:()=>qf,never:()=>kg,nonnegative:()=>Kf,nonoptional:()=>XT,nonpositive:()=>Hf,normalize:()=>Ms,null:()=>TT,nullable:()=>Ru,nullish:()=>jU,number:()=>xT,object:()=>SU,optional:()=>wu,overwrite:()=>Ar,parse:()=>cT,parseAsync:()=>lT,partialRecord:()=>$U,pipe:()=>ag,positive:()=>Zf,prefault:()=>WT,preprocess:()=>JU,prettifyError:()=>TI,promise:()=>LU,property:()=>Gf,readonly:()=>i$,record:()=>FT,refine:()=>u$,regex:()=>As,regexes:()=>lr,registry:()=>If,safeDecode:()=>bT,safeDecodeAsync:()=>vT,safeEncode:()=>hT,safeEncodeAsync:()=>_T,safeParse:()=>uT,safeParseAsync:()=>dT,set:()=>CU,setErrorMap:()=>aK,size:()=>Zo,slugify:()=>Ks,startsWith:()=>Ls,strictObject:()=>IU,string:()=>Tu,stringFormat:()=>oU,stringbool:()=>KU,success:()=>UU,superRefine:()=>d$,symbol:()=>hU,templateLiteral:()=>NU,toJSONSchema:()=>Yf,toLowerCase:()=>qs,toUpperCase:()=>Hs,transform:()=>wg,treeifyError:()=>kI,trim:()=>Zs,tuple:()=>DT,uint32:()=>mU,uint64:()=>gU,ulid:()=>K1,undefined:()=>bU,union:()=>Tg,unknown:()=>Ko,uppercase:()=>Fs,url:()=>V1,util:()=>B,uuid:()=>D1,uuidv4:()=>F1,uuidv6:()=>N1,uuidv7:()=>L1,void:()=>vU,xid:()=>G1,xor:()=>kU});var gi={};sn(gi,{$ZodAny:()=>tk,$ZodArray:()=>ak,$ZodAsyncError:()=>Ur,$ZodBase64:()=>qP,$ZodBase64URL:()=>HP,$ZodBigInt:()=>gf,$ZodBigIntFormat:()=>XP,$ZodBoolean:()=>_u,$ZodCIDRv4:()=>BP,$ZodCIDRv6:()=>MP,$ZodCUID:()=>CP,$ZodCUID2:()=>EP,$ZodCatch:()=>Pk,$ZodCheck:()=>$t,$ZodCheckBigIntFormat:()=>aP,$ZodCheckEndsWith:()=>_P,$ZodCheckGreaterThan:()=>lf,$ZodCheckIncludes:()=>hP,$ZodCheckLengthEquals:()=>mP,$ZodCheckLessThan:()=>cf,$ZodCheckLowerCase:()=>fP,$ZodCheckMaxLength:()=>uP,$ZodCheckMaxSize:()=>sP,$ZodCheckMimeType:()=>yP,$ZodCheckMinLength:()=>dP,$ZodCheckMinSize:()=>cP,$ZodCheckMultipleOf:()=>iP,$ZodCheckNumberFormat:()=>oP,$ZodCheckOverwrite:()=>xP,$ZodCheckProperty:()=>vP,$ZodCheckRegex:()=>pP,$ZodCheckSizeEquals:()=>lP,$ZodCheckStartsWith:()=>bP,$ZodCheckStringFormat:()=>js,$ZodCheckUpperCase:()=>gP,$ZodCodec:()=>yu,$ZodCustom:()=>Ok,$ZodCustomStringFormat:()=>JP,$ZodDate:()=>ok,$ZodDefault:()=>yk,$ZodDiscriminatedUnion:()=>lk,$ZodE164:()=>KP,$ZodEmail:()=>TP,$ZodEmoji:()=>wP,$ZodEncodeError:()=>Xi,$ZodEnum:()=>fk,$ZodError:()=>mu,$ZodExactOptional:()=>_k,$ZodFile:()=>hk,$ZodFunction:()=>Rk,$ZodGUID:()=>PP,$ZodIPv4:()=>NP,$ZodIPv6:()=>LP,$ZodISODate:()=>AP,$ZodISODateTime:()=>UP,$ZodISODuration:()=>FP,$ZodISOTime:()=>DP,$ZodIntersection:()=>uk,$ZodJWT:()=>GP,$ZodKSUID:()=>jP,$ZodLazy:()=>Ek,$ZodLiteral:()=>gk,$ZodMAC:()=>VP,$ZodMap:()=>mk,$ZodNaN:()=>kk,$ZodNanoID:()=>RP,$ZodNever:()=>rk,$ZodNonOptional:()=>Sk,$ZodNull:()=>ek,$ZodNullable:()=>vk,$ZodNumber:()=>ff,$ZodNumberFormat:()=>WP,$ZodObject:()=>Cj,$ZodObjectJIT:()=>sk,$ZodOptional:()=>bf,$ZodPipe:()=>_f,$ZodPrefault:()=>xk,$ZodPreprocess:()=>Tk,$ZodPromise:()=>Ck,$ZodReadonly:()=>$k,$ZodRealError:()=>Yn,$ZodRecord:()=>dk,$ZodRegistry:()=>Sf,$ZodSet:()=>pk,$ZodString:()=>Mo,$ZodStringFormat:()=>St,$ZodSuccess:()=>Ik,$ZodSymbol:()=>YP,$ZodTemplateLiteral:()=>wk,$ZodTransform:()=>bk,$ZodTuple:()=>hf,$ZodType:()=>Re,$ZodULID:()=>OP,$ZodURL:()=>$P,$ZodUUID:()=>kP,$ZodUndefined:()=>QP,$ZodUnion:()=>vu,$ZodUnknown:()=>nk,$ZodVoid:()=>ik,$ZodXID:()=>zP,$ZodXor:()=>ck,$brand:()=>pI,$constructor:()=>T,$input:()=>jk,$output:()=>zk,Doc:()=>bu,JSONSchema:()=>O1,JSONSchemaGenerator:()=>Qf,NEVER:()=>mI,TimePrecision:()=>Fk,_any:()=>o0,_array:()=>m0,_base64:()=>Lf,_base64url:()=>Vf,_bigint:()=>Yk,_boolean:()=>Wk,_catch:()=>J8,_check:()=>E1,_cidrv4:()=>Ff,_cidrv6:()=>Nf,_coercedBigint:()=>Qk,_coercedBoolean:()=>Xk,_coercedDate:()=>u0,_coercedNumber:()=>Zk,_coercedString:()=>Ak,_cuid:()=>Ef,_cuid2:()=>Of,_custom:()=>f0,_date:()=>l0,_decode:()=>Yp,_decodeAsync:()=>ef,_default:()=>H8,_discriminatedUnion:()=>j8,_e164:()=>Bf,_email:()=>Pf,_emoji:()=>Rf,_encode:()=>Xp,_encodeAsync:()=>Qp,_endsWith:()=>Vs,_enum:()=>L8,_file:()=>p0,_float32:()=>Hk,_float64:()=>Kk,_gt:()=>Xr,_gte:()=>Nn,_guid:()=>Iu,_includes:()=>Ns,_int:()=>qk,_int32:()=>Gk,_int64:()=>e0,_intersection:()=>U8,_ipv4:()=>Af,_ipv6:()=>Df,_isoDate:()=>Lk,_isoDateTime:()=>Nk,_isoDuration:()=>Bk,_isoTime:()=>Vk,_jwt:()=>Mf,_ksuid:()=>Uf,_lazy:()=>Q8,_length:()=>Ho,_literal:()=>B8,_lowercase:()=>Ds,_lt:()=>Wr,_lte:()=>ur,_mac:()=>Dk,_map:()=>F8,_max:()=>ur,_maxLength:()=>qo,_maxSize:()=>ro,_mime:()=>Bs,_min:()=>Nn,_minLength:()=>fi,_minSize:()=>Yr,_multipleOf:()=>no,_nan:()=>d0,_nanoid:()=>Cf,_nativeEnum:()=>V8,_negative:()=>qf,_never:()=>s0,_nonnegative:()=>Kf,_nonoptional:()=>K8,_nonpositive:()=>Hf,_normalize:()=>Ms,_null:()=>i0,_nullable:()=>q8,_number:()=>Mk,_optional:()=>Z8,_overwrite:()=>Ar,_parse:()=>Cs,_parseAsync:()=>Es,_pipe:()=>W8,_positive:()=>Zf,_promise:()=>eK,_property:()=>Gf,_readonly:()=>X8,_record:()=>D8,_refine:()=>g0,_regex:()=>As,_safeDecode:()=>nf,_safeDecodeAsync:()=>of,_safeEncode:()=>tf,_safeEncodeAsync:()=>rf,_safeParse:()=>Os,_safeParseAsync:()=>zs,_set:()=>N8,_size:()=>Zo,_slugify:()=>Ks,_startsWith:()=>Ls,_string:()=>Uk,_stringFormat:()=>Gs,_stringbool:()=>v0,_success:()=>G8,_superRefine:()=>h0,_symbol:()=>n0,_templateLiteral:()=>Y8,_toLowerCase:()=>qs,_toUpperCase:()=>Hs,_transform:()=>M8,_trim:()=>Zs,_tuple:()=>A8,_uint32:()=>Jk,_uint64:()=>t0,_ulid:()=>zf,_undefined:()=>r0,_union:()=>O8,_unknown:()=>a0,_uppercase:()=>Fs,_url:()=>Pu,_uuid:()=>kf,_uuidv4:()=>Tf,_uuidv6:()=>$f,_uuidv7:()=>wf,_void:()=>c0,_xid:()=>jf,_xor:()=>z8,clone:()=>Dn,config:()=>Jt,createStandardJSONSchemaMethod:()=>Js,createToJSONSchemaMethod:()=>y0,decode:()=>eH,decodeAsync:()=>nH,describe:()=>b0,encode:()=>Qq,encodeAsync:()=>tH,extractDefs:()=>oo,finalize:()=>ao,flattenError:()=>pu,formatError:()=>fu,globalConfig:()=>Lo,globalRegistry:()=>gn,initializeContext:()=>io,isValidBase64:()=>ZP,isValidBase64URL:()=>Tj,isValidJWT:()=>$j,locales:()=>Su,meta:()=>_0,parse:()=>Jp,parseAsync:()=>Wp,prettifyError:()=>TI,process:()=>ht,regexes:()=>lr,registry:()=>If,safeDecode:()=>iH,safeDecodeAsync:()=>aH,safeEncode:()=>rH,safeEncodeAsync:()=>oH,safeParse:()=>$I,safeParseAsync:()=>wI,toDotPath:()=>oj,toJSONSchema:()=>Yf,treeifyError:()=>kI,util:()=>B,version:()=>SP});var ej,mI=Object.freeze({status:"aborted"});function T(e,n,r){function o(c,l){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:l,constr:s,traits:new Set},enumerable:false}),c._zod.traits.has(e))return;c._zod.traits.add(e),n(c,l);let d=s.prototype,m=Object.keys(d);for(let p=0;p<m.length;p++){let f=m[p];f in c||(c[f]=d[f].bind(c));}}let t=r?.Parent??Object;class i extends t{}Object.defineProperty(i,"name",{value:e});function s(c){var l;let d=r?.Parent?new i:this;o(d,c),(l=d._zod).deferred??(l.deferred=[]);for(let m of d._zod.deferred)m();return d}return Object.defineProperty(s,"init",{value:o}),Object.defineProperty(s,Symbol.hasInstance,{value:c=>r?.Parent&&c instanceof r.Parent?true:c?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var pI=Symbol("zod_brand"),Ur=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.");}},Xi=class extends Error{constructor(n){super(`Encountered unidirectional transform during encode: ${n}`),this.name="ZodEncodeError";}};(ej=globalThis).__zod_globalConfig??(ej.__zod_globalConfig={});var Lo=globalThis.__zod_globalConfig;function Jt(e){return e&&Object.assign(Lo,e),Lo}var B={};sn(B,{BIGINT_FORMAT_RANGES:()=>II,Class:()=>gI,NUMBER_FORMAT_RANGES:()=>SI,aborted:()=>to,allowsEval:()=>_I,assert:()=>Eq,assertEqual:()=>$q,assertIs:()=>Rq,assertNever:()=>Cq,assertNotEqual:()=>wq,assignProp:()=>Qi,base64ToUint8Array:()=>nj,base64urlToUint8Array:()=>Gq,cached:()=>ws,captureStackTrace:()=>Gp,cleanEnum:()=>Kq,cleanRegex:()=>cu,clone:()=>Dn,cloneDef:()=>zq,createTransparentProxy:()=>Nq,defineLazy:()=>Ke,esc:()=>Kp,escapeRegex:()=>yr,explicitlyAborted:()=>PI,extend:()=>Bq,finalizeIssue:()=>Fn,floatSafeRemainder:()=>hI,getElementAtPath:()=>jq,getEnumValues:()=>su,getLengthableOrigin:()=>du,getParsedType:()=>Fq,getSizableOrigin:()=>uu,hexToUint8Array:()=>Wq,isObject:()=>Vo,isPlainObject:()=>eo,issue:()=>Rs,joinValues:()=>C,jsonStringifyReplacer:()=>$s,merge:()=>Zq,mergeDefs:()=>pi,normalizeParams:()=>q,nullish:()=>Yi,numKeys:()=>Dq,objectClone:()=>Oq,omit:()=>Vq,optionalKeys:()=>xI,parsedType:()=>N,partial:()=>qq,pick:()=>Lq,prefixIssues:()=>Xn,primitiveTypes:()=>yI,promiseAllObject:()=>Uq,propertyKeyTypes:()=>lu,randomString:()=>Aq,required:()=>Hq,safeExtend:()=>Mq,shallowClone:()=>vI,slugify:()=>bI,stringifyPrimitive:()=>D,uint8ArrayToBase64:()=>rj,uint8ArrayToBase64url:()=>Jq,uint8ArrayToHex:()=>Xq,unwrapMessage:()=>au});function $q(e){return e}function wq(e){return e}function Rq(e){}function Cq(e){throw new Error("Unexpected value in exhaustive check")}function Eq(e){}function su(e){let n=Object.values(e).filter(o=>typeof o=="number");return Object.entries(e).filter(([o,t])=>n.indexOf(+o)===-1).map(([o,t])=>t)}function C(e,n="|"){return e.map(r=>D(r)).join(n)}function $s(e,n){return typeof n=="bigint"?n.toString():n}function ws(e){return {get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}}}}function Yi(e){return e==null}function cu(e){let n=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(n,r)}function hI(e,n){let r=e/n,o=Math.round(r),t=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-o)<t?0:r-o}var tj=Symbol("evaluating");function Ke(e,n,r){let o;Object.defineProperty(e,n,{get(){if(o!==tj)return o===void 0&&(o=tj,o=r()),o},set(t){Object.defineProperty(e,n,{value:t});},configurable:true});}function Oq(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Qi(e,n,r){Object.defineProperty(e,n,{value:r,writable:true,enumerable:true,configurable:true});}function pi(...e){let n={};for(let r of e){let o=Object.getOwnPropertyDescriptors(r);Object.assign(n,o);}return Object.defineProperties({},n)}function zq(e){return pi(e._zod.def)}function jq(e,n){return n?n.reduce((r,o)=>r?.[o],e):e}function Uq(e){let n=Object.keys(e),r=n.map(o=>e[o]);return Promise.all(r).then(o=>{let t={};for(let i=0;i<n.length;i++)t[n[i]]=o[i];return t})}function Aq(e=10){let n="abcdefghijklmnopqrstuvwxyz",r="";for(let o=0;o<e;o++)r+=n[Math.floor(Math.random()*n.length)];return r}function Kp(e){return JSON.stringify(e)}function bI(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Gp="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Vo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var _I=ws(()=>{if(Lo.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return false;try{let e=Function;return new e(""),!0}catch{return false}});function eo(e){if(Vo(e)===false)return false;let n=e.constructor;if(n===void 0||typeof n!="function")return true;let r=n.prototype;return !(Vo(r)===false||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===false)}function vI(e){return eo(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function Dq(e){let n=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&n++;return n}var Fq=e=>{let n=typeof e;switch(n){case "undefined":return "undefined";case "string":return "string";case "number":return Number.isNaN(e)?"nan":"number";case "boolean":return "boolean";case "function":return "function";case "bigint":return "bigint";case "symbol":return "symbol";case "object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${n}`)}},lu=new Set(["string","number","symbol"]),yI=new Set(["string","number","bigint","boolean","symbol","undefined"]);function yr(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Dn(e,n,r){let o=new e._zod.constr(n??e._zod.def);return (!n||r?.parent)&&(o._zod.parent=e),o}function q(e){let n=e;if(!n)return {};if(typeof n=="string")return {error:()=>n};if(n?.message!==void 0){if(n?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");n.error=n.message;}return delete n.message,typeof n.error=="string"?{...n,error:()=>n.error}:n}function Nq(e){let n;return new Proxy({},{get(r,o,t){return n??(n=e()),Reflect.get(n,o,t)},set(r,o,t,i){return n??(n=e()),Reflect.set(n,o,t,i)},has(r,o){return n??(n=e()),Reflect.has(n,o)},deleteProperty(r,o){return n??(n=e()),Reflect.deleteProperty(n,o)},ownKeys(r){return n??(n=e()),Reflect.ownKeys(n)},getOwnPropertyDescriptor(r,o){return n??(n=e()),Reflect.getOwnPropertyDescriptor(n,o)},defineProperty(r,o,t){return n??(n=e()),Reflect.defineProperty(n,o,t)}})}function D(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function xI(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}var SI={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},II={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Lq(e,n){let r=e._zod.def,o=r.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=pi(e._zod.def,{get shape(){let s={};for(let c in n){if(!(c in r.shape))throw new Error(`Unrecognized key: "${c}"`);n[c]&&(s[c]=r.shape[c]);}return Qi(this,"shape",s),s},checks:[]});return Dn(e,i)}function Vq(e,n){let r=e._zod.def,o=r.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=pi(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let c in n){if(!(c in r.shape))throw new Error(`Unrecognized key: "${c}"`);n[c]&&delete s[c];}return Qi(this,"shape",s),s},checks:[]});return Dn(e,i)}function Bq(e,n){if(!eo(n))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let i=e._zod.def.shape;for(let s in n)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let t=pi(e._zod.def,{get shape(){let i={...e._zod.def.shape,...n};return Qi(this,"shape",i),i}});return Dn(e,t)}function Mq(e,n){if(!eo(n))throw new Error("Invalid input to safeExtend: expected a plain object");let r=pi(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n};return Qi(this,"shape",o),o}});return Dn(e,r)}function Zq(e,n){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=pi(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n._zod.def.shape};return Qi(this,"shape",o),o},get catchall(){return n._zod.def.catchall},checks:n._zod.def.checks??[]});return Dn(e,r)}function qq(e,n,r){let t=n._zod.def.checks;if(t&&t.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=pi(n._zod.def,{get shape(){let c=n._zod.def.shape,l={...c};if(r)for(let d in r){if(!(d in c))throw new Error(`Unrecognized key: "${d}"`);r[d]&&(l[d]=e?new e({type:"optional",innerType:c[d]}):c[d]);}else for(let d in c)l[d]=e?new e({type:"optional",innerType:c[d]}):c[d];return Qi(this,"shape",l),l},checks:[]});return Dn(n,s)}function Hq(e,n,r){let o=pi(n._zod.def,{get shape(){let t=n._zod.def.shape,i={...t};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new e({type:"nonoptional",innerType:t[s]}));}else for(let s in t)i[s]=new e({type:"nonoptional",innerType:t[s]});return Qi(this,"shape",i),i}});return Dn(n,o)}function to(e,n=0){if(e.aborted===true)return true;for(let r=n;r<e.issues.length;r++)if(e.issues[r]?.continue!==true)return true;return false}function PI(e,n=0){if(e.aborted===true)return true;for(let r=n;r<e.issues.length;r++)if(e.issues[r]?.continue===false)return true;return false}function Xn(e,n){return n.map(r=>{var o;return (o=r).path??(o.path=[]),r.path.unshift(e),r})}function au(e){return typeof e=="string"?e:e?.message}function Fn(e,n,r){let o=e.message?e.message:au(e.inst?._zod.def?.error?.(e))??au(n?.error?.(e))??au(r.customError?.(e))??au(r.localeError?.(e))??"Invalid input",{inst:t,continue:i,input:s,...c}=e;return c.path??(c.path=[]),c.message=o,n?.reportInput&&(c.input=s),c}function uu(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function du(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function N(e){let n=typeof e;switch(n){case "number":return Number.isNaN(e)?"nan":"number";case "object":{if(e===null)return "null";if(Array.isArray(e))return "array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return n}function Rs(...e){let[n,r,o]=e;return typeof n=="string"?{message:n,code:"custom",input:r,inst:o}:{...n}}function Kq(e){return Object.entries(e).filter(([n,r])=>Number.isNaN(Number.parseInt(n,10))).map(n=>n[1])}function nj(e){let n=atob(e),r=new Uint8Array(n.length);for(let o=0;o<n.length;o++)r[o]=n.charCodeAt(o);return r}function rj(e){let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}function Gq(e){let n=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-n.length%4)%4);return nj(n+r)}function Jq(e){return rj(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Wq(e){let n=e.replace(/^0x/,"");if(n.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(n.length/2);for(let o=0;o<n.length;o+=2)r[o/2]=Number.parseInt(n.slice(o,o+2),16);return r}function Xq(e){return Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}var gI=class{constructor(...n){}};var ij=(e,n)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:false}),Object.defineProperty(e,"issues",{value:n,enumerable:false}),e.message=JSON.stringify(n,$s,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:false});},mu=T("$ZodError",ij),Yn=T("$ZodError",ij,{Parent:Error});function pu(e,n=r=>r.message){let r={},o=[];for(let t of e.issues)t.path.length>0?(r[t.path[0]]=r[t.path[0]]||[],r[t.path[0]].push(n(t))):o.push(n(t));return {formErrors:o,fieldErrors:r}}function fu(e,n=r=>r.message){let r={_errors:[]},o=(t,i=[])=>{for(let s of t.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(c=>o({issues:c},[...i,...s.path]));else if(s.code==="invalid_key")o({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")o({issues:s.issues},[...i,...s.path]);else {let c=[...i,...s.path];if(c.length===0)r._errors.push(n(s));else {let l=r,d=0;for(;d<c.length;){let m=c[d];d===c.length-1?(l[m]=l[m]||{_errors:[]},l[m]._errors.push(n(s))):l[m]=l[m]||{_errors:[]},l=l[m],d++;}}}};return o(e),r}function kI(e,n=r=>r.message){let r={errors:[]},o=(t,i=[])=>{var s,c;for(let l of t.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(d=>o({issues:d},[...i,...l.path]));else if(l.code==="invalid_key")o({issues:l.issues},[...i,...l.path]);else if(l.code==="invalid_element")o({issues:l.issues},[...i,...l.path]);else {let d=[...i,...l.path];if(d.length===0){r.errors.push(n(l));continue}let m=r,p=0;for(;p<d.length;){let f=d[p],g=p===d.length-1;typeof f=="string"?(m.properties??(m.properties={}),(s=m.properties)[f]??(s[f]={errors:[]}),m=m.properties[f]):(m.items??(m.items=[]),(c=m.items)[f]??(c[f]={errors:[]}),m=m.items[f]),g&&m.errors.push(n(l)),p++;}}};return o(e),r}function oj(e){let n=[],r=e.map(o=>typeof o=="object"?o.key:o);for(let o of r)typeof o=="number"?n.push(`[${o}]`):typeof o=="symbol"?n.push(`[${JSON.stringify(String(o))}]`):/[^\w$]/.test(o)?n.push(`[${JSON.stringify(o)}]`):(n.length&&n.push("."),n.push(o));return n.join("")}function TI(e){let n=[],r=[...e.issues].sort((o,t)=>(o.path??[]).length-(t.path??[]).length);for(let o of r)n.push(`\u2716 ${o.message}`),o.path?.length&&n.push(` \u2192 at ${oj(o.path)}`);return n.join(`
65
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of e.seen.entries()){let c=s[1];if(n===s[0]){i(s);continue}if(e.external){let d=e.external.registry.get(s[0])?.id;if(n!==s[0]&&d){i(s);continue}}if(e.metadataRegistry.get(s[0])?.id){i(s);continue}if(c.cycle){i(s);continue}if(c.count>1&&e.reused==="ref"){i(s);continue}}}function Ei(e,n){let r=e.seen.get(n);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let o=c=>{let l=e.seen.get(c);if(l.ref===null)return;let d=l.def??l.schema,m={...d},p=l.ref;if(l.ref=null,p){o(p);let g=e.seen.get(p),h=g.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(h)):Object.assign(d,h),Object.assign(d,m),c._zod.parent===p)for(let S in d)S==="$ref"||S==="allOf"||S in m||delete d[S];if(h.$ref&&g.def)for(let S in d)S==="$ref"||S==="allOf"||S in g.def&&JSON.stringify(d[S])===JSON.stringify(g.def[S])&&delete d[S];}let f=c._zod.parent;if(f&&f!==p){o(f);let g=e.seen.get(f);if(g?.schema.$ref&&(d.$ref=g.schema.$ref,g.def))for(let h in d)h==="$ref"||h==="allOf"||h in g.def&&JSON.stringify(d[h])===JSON.stringify(g.def[h])&&delete d[h];}e.override({zodSchema:c,jsonSchema:d,path:l.path??[]});};for(let c of [...e.seen.entries()].reverse())o(c[0]);let t={};if(e.target==="draft-2020-12"?t.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?t.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?t.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let c=e.external.registry.get(n)?.id;if(!c)throw new Error("Schema is missing an `id` property");t.$id=e.external.uri(c);}Object.assign(t,r.def??r.schema);let i=e.metadataRegistry.get(n)?.id;i!==void 0&&t.id===i&&delete t.id;let s=e.external?.defs??{};for(let c of e.seen.entries()){let l=c[1];l.def&&l.defId&&(l.def.id===l.defId&&delete l.def.id,s[l.defId]=l.def);}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?t.$defs=s:t.definitions=s);try{let c=JSON.parse(JSON.stringify(t));return Object.defineProperty(c,"~standard",{value:{...n["~standard"],jsonSchema:{input:Sa(n,"input",e.processors),output:Sa(n,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch{throw new Error("Error converting schema to JSON.")}}function Cn(e,n){let r=n??{seen:new Set};if(r.seen.has(e))return false;r.seen.add(e);let o=e._zod.def;if(o.type==="transform")return true;if(o.type==="array")return Cn(o.element,r);if(o.type==="set")return Cn(o.valueType,r);if(o.type==="lazy")return Cn(o.getter(),r);if(o.type==="promise"||o.type==="optional"||o.type==="nonoptional"||o.type==="nullable"||o.type==="readonly"||o.type==="default"||o.type==="prefault")return Cn(o.innerType,r);if(o.type==="intersection")return Cn(o.left,r)||Cn(o.right,r);if(o.type==="record"||o.type==="map")return Cn(o.keyType,r)||Cn(o.valueType,r);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?true:Cn(o.in,r)||Cn(o.out,r);if(o.type==="object"){for(let t in o.shape)if(Cn(o.shape[t],r))return true;return false}if(o.type==="union"){for(let t of o.options)if(Cn(t,r))return true;return false}if(o.type==="tuple"){for(let t of o.items)if(Cn(t,r))return true;return !!(o.rest&&Cn(o.rest,r))}return false}var Rv=(e,n={})=>r=>{let o=Ri({...r,processors:n});return pt(e,o),Ci(o,e),Ei(o,e)},Sa=(e,n,r={})=>o=>{let{libraryOptions:t,target:i}=o??{},s=Ri({...t??{},target:i,io:n,processors:r});return pt(e,s),Ci(s,e),Ei(s,e)};var g6={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Cv=(e,n,r,o)=>{let t=r;t.type="string";let{minimum:i,maximum:s,format:c,patterns:l,contentEncoding:d}=e._zod.bag;if(typeof i=="number"&&(t.minLength=i),typeof s=="number"&&(t.maxLength=s),c&&(t.format=g6[c]??c,t.format===""&&delete t.format,c==="time"&&delete t.format),d&&(t.contentEncoding=d),l&&l.size>0){let m=[...l];m.length===1?t.pattern=m[0].source:m.length>1&&(t.allOf=[...m.map(p=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:p.source}))]);}},Ev=(e,n,r,o)=>{let t=r,{minimum:i,maximum:s,format:c,multipleOf:l,exclusiveMaximum:d,exclusiveMinimum:m}=e._zod.bag;typeof c=="string"&&c.includes("int")?t.type="integer":t.type="number";let p=typeof m=="number"&&m>=(i??Number.NEGATIVE_INFINITY),f=typeof d=="number"&&d<=(s??Number.POSITIVE_INFINITY),g=n.target==="draft-04"||n.target==="openapi-3.0";p?g?(t.minimum=m,t.exclusiveMinimum=true):t.exclusiveMinimum=m:typeof i=="number"&&(t.minimum=i),f?g?(t.maximum=d,t.exclusiveMaximum=true):t.exclusiveMaximum=d:typeof s=="number"&&(t.maximum=s),typeof l=="number"&&(t.multipleOf=l);},Ov=(e,n,r,o)=>{r.type="boolean";},zv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},jv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},Uv=(e,n,r,o)=>{n.target==="openapi-3.0"?(r.type="string",r.nullable=true,r.enum=[null]):r.type="null";},Av=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Dv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},Fv=(e,n,r,o)=>{r.not={};},Nv=(e,n,r,o)=>{},Lv=(e,n,r,o)=>{},Vv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},Bv=(e,n,r,o)=>{let t=e._zod.def,i=Pc(t.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i;},Mv=(e,n,r,o)=>{let t=e._zod.def,i=[];for(let s of t.values)if(s===void 0){if(n.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof s=="bigint"){if(n.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(s));}else i.push(s);if(i.length!==0)if(i.length===1){let s=i[0];r.type=s===null?"null":typeof s,n.target==="draft-04"||n.target==="openapi-3.0"?r.enum=[s]:r.const=s;}else i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),i.every(s=>typeof s=="boolean")&&(r.type="boolean"),i.every(s=>s===null)&&(r.type="null"),r.enum=i;},Zv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},qv=(e,n,r,o)=>{let t=r,i=e._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");t.type="string",t.pattern=i.source;},Hv=(e,n,r,o)=>{let t=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:s,maximum:c,mime:l}=e._zod.bag;s!==void 0&&(i.minLength=s),c!==void 0&&(i.maxLength=c),l?l.length===1?(i.contentMediaType=l[0],Object.assign(t,i)):(Object.assign(t,i),t.anyOf=l.map(d=>({contentMediaType:d}))):Object.assign(t,i);},Kv=(e,n,r,o)=>{r.type="boolean";},Gv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Jv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Wv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Xv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Yv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Qv=(e,n,r,o)=>{let t=r,i=e._zod.def,{minimum:s,maximum:c}=e._zod.bag;typeof s=="number"&&(t.minItems=s),typeof c=="number"&&(t.maxItems=c),t.type="array",t.items=pt(i.element,n,{...o,path:[...o.path,"items"]});},ey=(e,n,r,o)=>{let t=r,i=e._zod.def;t.type="object",t.properties={};let s=i.shape;for(let d in s)t.properties[d]=pt(s[d],n,{...o,path:[...o.path,"properties",d]});let c=new Set(Object.keys(s)),l=new Set([...c].filter(d=>{let m=i.shape[d]._zod;return n.io==="input"?m.optin===void 0:m.optout===void 0}));l.size>0&&(t.required=Array.from(l)),i.catchall?._zod.def.type==="never"?t.additionalProperties=false:i.catchall?i.catchall&&(t.additionalProperties=pt(i.catchall,n,{...o,path:[...o.path,"additionalProperties"]})):n.io==="output"&&(t.additionalProperties=false);},pm=(e,n,r,o)=>{let t=e._zod.def,i=t.inclusive===false,s=t.options.map((c,l)=>pt(c,n,{...o,path:[...o.path,i?"oneOf":"anyOf",l]}));i?r.oneOf=s:r.anyOf=s;},ty=(e,n,r,o)=>{let t=e._zod.def,i=pt(t.left,n,{...o,path:[...o.path,"allOf",0]}),s=pt(t.right,n,{...o,path:[...o.path,"allOf",1]}),c=d=>"allOf"in d&&Object.keys(d).length===1,l=[...c(i)?i.allOf:[i],...c(s)?s.allOf:[s]];r.allOf=l;},ny=(e,n,r,o)=>{let t=r,i=e._zod.def;t.type="array";let s=n.target==="draft-2020-12"?"prefixItems":"items",c=n.target==="draft-2020-12"||n.target==="openapi-3.0"?"items":"additionalItems",l=i.items.map((f,g)=>pt(f,n,{...o,path:[...o.path,s,g]})),d=i.rest?pt(i.rest,n,{...o,path:[...o.path,c,...n.target==="openapi-3.0"?[i.items.length]:[]]}):null;n.target==="draft-2020-12"?(t.prefixItems=l,d&&(t.items=d)):n.target==="openapi-3.0"?(t.items={anyOf:l},d&&t.items.anyOf.push(d),t.minItems=l.length,d||(t.maxItems=l.length)):(t.items=l,d&&(t.additionalItems=d));let{minimum:m,maximum:p}=e._zod.bag;typeof m=="number"&&(t.minItems=m),typeof p=="number"&&(t.maxItems=p);},ry=(e,n,r,o)=>{let t=r,i=e._zod.def;t.type="object";let s=i.keyType,l=s._zod.bag?.patterns;if(i.mode==="loose"&&l&&l.size>0){let m=pt(i.valueType,n,{...o,path:[...o.path,"patternProperties","*"]});t.patternProperties={};for(let p of l)t.patternProperties[p.source]=m;}else (n.target==="draft-07"||n.target==="draft-2020-12")&&(t.propertyNames=pt(i.keyType,n,{...o,path:[...o.path,"propertyNames"]})),t.additionalProperties=pt(i.valueType,n,{...o,path:[...o.path,"additionalProperties"]});let d=s._zod.values;if(d){let m=[...d].filter(p=>typeof p=="string"||typeof p=="number");m.length>0&&(t.required=m);}},iy=(e,n,r,o)=>{let t=e._zod.def,i=pt(t.innerType,n,o),s=n.seen.get(e);n.target==="openapi-3.0"?(s.ref=t.innerType,r.nullable=true):r.anyOf=[i,{type:"null"}];},oy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},ay=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.default=JSON.parse(JSON.stringify(t.defaultValue));},sy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,n.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(t.defaultValue)));},cy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;let s;try{s=t.catchValue(void 0);}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s;},ly=(e,n,r,o)=>{let t=e._zod.def,i=t.in._zod.traits.has("$ZodTransform"),s=n.io==="input"?i?t.out:t.in:t.out;pt(s,n,o);let c=n.seen.get(e);c.ref=s;},uy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.readOnly=true;},dy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},fm=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},my=(e,n,r,o)=>{let t=e._zod.innerType;pt(t,n,o);let i=n.seen.get(e);i.ref=t;},mm={string:Cv,number:Ev,boolean:Ov,bigint:zv,symbol:jv,null:Uv,undefined:Av,void:Dv,never:Fv,any:Nv,unknown:Lv,date:Vv,enum:Bv,literal:Mv,nan:Zv,template_literal:qv,file:Hv,success:Kv,custom:Gv,function:Jv,transform:Wv,map:Xv,set:Yv,array:Qv,object:ey,union:pm,intersection:ty,tuple:ny,record:ry,nullable:iy,nonoptional:oy,default:ay,prefault:sy,catch:cy,pipe:ly,readonly:uy,promise:dy,optional:fm,lazy:my};function gm(e,n){if("_idmap"in e){let o=e,t=Ri({...n,processors:mm}),i={};for(let l of o._idmap.entries()){let[d,m]=l;pt(m,t);}let s={},c={registry:o,uri:n?.uri,defs:i};t.external=c;for(let l of o._idmap.entries()){let[d,m]=l;Ci(t,m),s[d]=Ei(t,m);}if(Object.keys(i).length>0){let l=t.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[l]:i};}return {schemas:s}}let r=Ri({...n,processors:mm});return pt(e,r),Ci(r,e),Ei(r,e)}var hm=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(n){this.ctx.counter=n;}get seen(){return this.ctx.seen}constructor(n){let r=n?.target??"draft-2020-12";r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),this.ctx=Ri({processors:mm,target:r,...n?.metadata&&{metadata:n.metadata},...n?.unrepresentable&&{unrepresentable:n.unrepresentable},...n?.override&&{override:n.override},...n?.io&&{io:n.io}});}process(n,r={path:[],schemaPath:[]}){return pt(n,this.ctx,r)}emit(n,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),Ci(this.ctx,n);let o=Ei(this.ctx,n),{"~standard":t,...i}=o;return i}};var IR={};var Bc={};sn(Bc,{ZodAny:()=>Ay,ZodArray:()=>Ly,ZodBase64:()=>Dm,ZodBase64URL:()=>Fm,ZodBigInt:()=>Ca,ZodBigIntFormat:()=>Vm,ZodBoolean:()=>Ra,ZodCIDRv4:()=>Um,ZodCIDRv6:()=>Am,ZodCUID:()=>wm,ZodCUID2:()=>Rm,ZodCatch:()=>cx,ZodCodec:()=>el,ZodCustom:()=>tl,ZodCustomStringFormat:()=>$a,ZodDate:()=>Jc,ZodDefault:()=>nx,ZodDiscriminatedUnion:()=>By,ZodE164:()=>Nm,ZodEmail:()=>km,ZodEmoji:()=>Tm,ZodEnum:()=>ka,ZodExactOptional:()=>Qy,ZodFile:()=>Xy,ZodFunction:()=>_x,ZodGUID:()=>Zc,ZodIPv4:()=>zm,ZodIPv6:()=>jm,ZodIntersection:()=>My,ZodJWT:()=>Lm,ZodKSUID:()=>Om,ZodLazy:()=>gx,ZodLiteral:()=>Wy,ZodMAC:()=>Ry,ZodMap:()=>Gy,ZodNaN:()=>ux,ZodNanoID:()=>$m,ZodNever:()=>Fy,ZodNonOptional:()=>Km,ZodNull:()=>jy,ZodNullable:()=>tx,ZodNumber:()=>wa,ZodNumberFormat:()=>ko,ZodObject:()=>Xc,ZodOptional:()=>Hm,ZodPipe:()=>Qc,ZodPrefault:()=>ix,ZodPreprocess:()=>dx,ZodPromise:()=>bx,ZodReadonly:()=>mx,ZodRecord:()=>Pa,ZodSet:()=>Jy,ZodString:()=>Ta,ZodStringFormat:()=>vt,ZodSuccess:()=>sx,ZodSymbol:()=>Oy,ZodTemplateLiteral:()=>fx,ZodTransform:()=>Yy,ZodTuple:()=>qy,ZodType:()=>je,ZodULID:()=>Cm,ZodURL:()=>Gc,ZodUUID:()=>Zr,ZodUndefined:()=>zy,ZodUnion:()=>Yc,ZodUnknown:()=>Dy,ZodVoid:()=>Ny,ZodXID:()=>Em,ZodXor:()=>Vy,_ZodString:()=>Pm,_default:()=>rx,_function:()=>OC,any:()=>lC,array:()=>Wc,base64:()=>HR,base64url:()=>KR,bigint:()=>iC,boolean:()=>Ey,catch:()=>lx,check:()=>zC,cidrv4:()=>ZR,cidrv6:()=>qR,codec:()=>wC,cuid:()=>AR,cuid2:()=>DR,custom:()=>jC,date:()=>dC,describe:()=>UC,discriminatedUnion:()=>bC,e164:()=>GR,email:()=>TR,emoji:()=>jR,enum:()=>Zm,exactOptional:()=>ex,file:()=>PC,float32:()=>eC,float64:()=>tC,function:()=>OC,guid:()=>$R,hash:()=>QR,hex:()=>YR,hostname:()=>XR,httpUrl:()=>zR,instanceof:()=>DC,int:()=>Sm,int32:()=>nC,int64:()=>oC,intersection:()=>Zy,invertCodec:()=>RC,ipv4:()=>VR,ipv6:()=>MR,json:()=>NC,jwt:()=>JR,keyof:()=>mC,ksuid:()=>LR,lazy:()=>hx,literal:()=>IC,looseObject:()=>gC,looseRecord:()=>vC,mac:()=>BR,map:()=>yC,meta:()=>AC,nan:()=>$C,nanoid:()=>UR,nativeEnum:()=>SC,never:()=>Bm,nonoptional:()=>ax,null:()=>Uy,nullable:()=>Hc,nullish:()=>kC,number:()=>Cy,object:()=>pC,optional:()=>qc,partialRecord:()=>_C,pipe:()=>Im,prefault:()=>ox,preprocess:()=>LC,promise:()=>EC,readonly:()=>px,record:()=>Ky,refine:()=>vx,set:()=>xC,strictObject:()=>fC,string:()=>Mc,stringFormat:()=>WR,stringbool:()=>FC,success:()=>TC,superRefine:()=>yx,symbol:()=>sC,templateLiteral:()=>CC,transform:()=>qm,tuple:()=>Hy,uint32:()=>rC,uint64:()=>aC,ulid:()=>FR,undefined:()=>cC,union:()=>Mm,unknown:()=>Po,url:()=>OR,uuid:()=>wR,uuidv4:()=>RR,uuidv6:()=>CR,uuidv7:()=>ER,void:()=>uC,xid:()=>NR,xor:()=>hC});var bm={};sn(bm,{endsWith:()=>fa,gt:()=>Br,gte:()=>Rn,includes:()=>ma,length:()=>Io,lowercase:()=>ua,lt:()=>Vr,lte:()=>or,maxLength:()=>So,maxSize:()=>wi,mime:()=>ga,minLength:()=>ri,minSize:()=>Mr,multipleOf:()=>$i,negative:()=>cm,nonnegative:()=>um,nonpositive:()=>lm,normalize:()=>ha,overwrite:()=>Tr,positive:()=>sm,property:()=>dm,regex:()=>la,size:()=>xo,slugify:()=>ya,startsWith:()=>pa,toLowerCase:()=>_a,toUpperCase:()=>va,trim:()=>ba,uppercase:()=>da});var Ia={};sn(Ia,{ZodISODate:()=>vm,ZodISODateTime:()=>_m,ZodISODuration:()=>xm,ZodISOTime:()=>ym,date:()=>fy,datetime:()=>py,duration:()=>hy,time:()=>gy});var _m=k("ZodISODateTime",(e,n)=>{Zb.init(e,n),vt.init(e,n);});function py(e){return G_(_m,e)}var vm=k("ZodISODate",(e,n)=>{qb.init(e,n),vt.init(e,n);});function fy(e){return J_(vm,e)}var ym=k("ZodISOTime",(e,n)=>{Hb.init(e,n),vt.init(e,n);});function gy(e){return W_(ym,e)}var xm=k("ZodISODuration",(e,n)=>{Kb.init(e,n),vt.init(e,n);});function hy(e){return X_(xm,e)}var PR=(e,n)=>{Rc.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>Ec(e,r)},flatten:{value:r=>Cc(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,ea,2);}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,ea,2);}},isEmpty:{get(){return e.issues.length===0}}});},b6=k("ZodError",PR),Hn=k("ZodError",PR,{Parent:Error});var by=ra(Hn),_y=ia(Hn),vy=oa(Hn),yy=aa(Hn),xy=gd(Hn),Sy=hd(Hn),Iy=bd(Hn),Py=_d(Hn),ky=vd(Hn),Ty=yd(Hn),$y=xd(Hn),wy=Sd(Hn);var kR=new WeakMap;function Kc(e,n,r){let o=Object.getPrototypeOf(e),t=kR.get(o);if(t||(t=new Set,kR.set(o,t)),!t.has(n)){t.add(n);for(let i in r){let s=r[i];Object.defineProperty(o,i,{configurable:true,enumerable:false,get(){let c=s.bind(this);return Object.defineProperty(this,i,{configurable:true,writable:true,enumerable:true,value:c}),c},set(c){Object.defineProperty(this,i,{configurable:true,writable:true,enumerable:true,value:c});}});}}}var je=k("ZodType",(e,n)=>(we.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:Sa(e,"input"),output:Sa(e,"output")}}),e.toJSONSchema=Rv(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.parse=(r,o)=>by(e,r,o,{callee:e.parse}),e.safeParse=(r,o)=>vy(e,r,o),e.parseAsync=async(r,o)=>_y(e,r,o,{callee:e.parseAsync}),e.safeParseAsync=async(r,o)=>yy(e,r,o),e.spa=e.safeParseAsync,e.encode=(r,o)=>xy(e,r,o),e.decode=(r,o)=>Sy(e,r,o),e.encodeAsync=async(r,o)=>Iy(e,r,o),e.decodeAsync=async(r,o)=>Py(e,r,o),e.safeEncode=(r,o)=>ky(e,r,o),e.safeDecode=(r,o)=>Ty(e,r,o),e.safeEncodeAsync=async(r,o)=>$y(e,r,o),e.safeDecodeAsync=async(r,o)=>wy(e,r,o),Kc(e,"ZodType",{check(...r){let o=this.def;return this.clone(V.mergeDefs(o,{checks:[...o.checks??[],...r.map(t=>typeof t=="function"?{_zod:{check:t,def:{check:"custom"},onattach:[]}}:t)]}),{parent:true})},with(...r){return this.check(...r)},clone(r,o){return $n(this,r,o)},brand(){return this},register(r,o){return r.add(this,o),this},refine(r,o){return this.check(vx(r,o))},superRefine(r,o){return this.check(yx(r,o))},overwrite(r){return this.check(Tr(r))},optional(){return qc(this)},exactOptional(){return ex(this)},nullable(){return Hc(this)},nullish(){return qc(Hc(this))},nonoptional(r){return ax(this,r)},array(){return Wc(this)},or(r){return Mm([this,r])},and(r){return Zy(this,r)},transform(r){return Im(this,qm(r))},default(r){return rx(this,r)},prefault(r){return ox(this,r)},catch(r){return lx(this,r)},pipe(r){return Im(this,r)},readonly(){return px(this)},describe(r){let o=this.clone();return dn.add(o,{description:r}),o},meta(...r){if(r.length===0)return dn.get(this);let o=this.clone();return dn.add(o,r[0]),o},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(e,"description",{get(){return dn.get(e)?.description},configurable:true}),e)),Pm=k("_ZodString",(e,n)=>{yo.init(e,n),je.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Cv(e,o,t);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,Kc(e,"_ZodString",{regex(...o){return this.check(la(...o))},includes(...o){return this.check(ma(...o))},startsWith(...o){return this.check(pa(...o))},endsWith(...o){return this.check(fa(...o))},min(...o){return this.check(ri(...o))},max(...o){return this.check(So(...o))},length(...o){return this.check(Io(...o))},nonempty(...o){return this.check(ri(1,...o))},lowercase(o){return this.check(ua(o))},uppercase(o){return this.check(da(o))},trim(){return this.check(ba())},normalize(...o){return this.check(ha(...o))},toLowerCase(){return this.check(_a())},toUpperCase(){return this.check(va())},slugify(){return this.check(ya())}});}),Ta=k("ZodString",(e,n)=>{yo.init(e,n),Pm.init(e,n),e.email=r=>e.check(Vd(km,r)),e.url=r=>e.check(Vc(Gc,r)),e.jwt=r=>e.check(am(Lm,r)),e.emoji=r=>e.check(Hd(Tm,r)),e.guid=r=>e.check(Lc(Zc,r)),e.uuid=r=>e.check(Bd(Zr,r)),e.uuidv4=r=>e.check(Md(Zr,r)),e.uuidv6=r=>e.check(Zd(Zr,r)),e.uuidv7=r=>e.check(qd(Zr,r)),e.nanoid=r=>e.check(Kd($m,r)),e.guid=r=>e.check(Lc(Zc,r)),e.cuid=r=>e.check(Gd(wm,r)),e.cuid2=r=>e.check(Jd(Rm,r)),e.ulid=r=>e.check(Wd(Cm,r)),e.base64=r=>e.check(rm(Dm,r)),e.base64url=r=>e.check(im(Fm,r)),e.xid=r=>e.check(Xd(Em,r)),e.ksuid=r=>e.check(Yd(Om,r)),e.ipv4=r=>e.check(Qd(zm,r)),e.ipv6=r=>e.check(em(jm,r)),e.cidrv4=r=>e.check(tm(Um,r)),e.cidrv6=r=>e.check(nm(Am,r)),e.e164=r=>e.check(om(Nm,r)),e.datetime=r=>e.check(py(r)),e.date=r=>e.check(fy(r)),e.time=r=>e.check(gy(r)),e.duration=r=>e.check(hy(r));});function Mc(e){return Z_(Ta,e)}var vt=k("ZodStringFormat",(e,n)=>{_t.init(e,n),Pm.init(e,n);}),km=k("ZodEmail",(e,n)=>{Ub.init(e,n),vt.init(e,n);});function TR(e){return Vd(km,e)}var Zc=k("ZodGUID",(e,n)=>{zb.init(e,n),vt.init(e,n);});function $R(e){return Lc(Zc,e)}var Zr=k("ZodUUID",(e,n)=>{jb.init(e,n),vt.init(e,n);});function wR(e){return Bd(Zr,e)}function RR(e){return Md(Zr,e)}function CR(e){return Zd(Zr,e)}function ER(e){return qd(Zr,e)}var Gc=k("ZodURL",(e,n)=>{Ab.init(e,n),vt.init(e,n);});function OR(e){return Vc(Gc,e)}function zR(e){return Vc(Gc,{protocol:ir.httpProtocol,hostname:ir.domain,...V.normalizeParams(e)})}var Tm=k("ZodEmoji",(e,n)=>{Db.init(e,n),vt.init(e,n);});function jR(e){return Hd(Tm,e)}var $m=k("ZodNanoID",(e,n)=>{Fb.init(e,n),vt.init(e,n);});function UR(e){return Kd($m,e)}var wm=k("ZodCUID",(e,n)=>{Nb.init(e,n),vt.init(e,n);});function AR(e){return Gd(wm,e)}var Rm=k("ZodCUID2",(e,n)=>{Lb.init(e,n),vt.init(e,n);});function DR(e){return Jd(Rm,e)}var Cm=k("ZodULID",(e,n)=>{Vb.init(e,n),vt.init(e,n);});function FR(e){return Wd(Cm,e)}var Em=k("ZodXID",(e,n)=>{Bb.init(e,n),vt.init(e,n);});function NR(e){return Xd(Em,e)}var Om=k("ZodKSUID",(e,n)=>{Mb.init(e,n),vt.init(e,n);});function LR(e){return Yd(Om,e)}var zm=k("ZodIPv4",(e,n)=>{Gb.init(e,n),vt.init(e,n);});function VR(e){return Qd(zm,e)}var Ry=k("ZodMAC",(e,n)=>{Wb.init(e,n),vt.init(e,n);});function BR(e){return H_(Ry,e)}var jm=k("ZodIPv6",(e,n)=>{Jb.init(e,n),vt.init(e,n);});function MR(e){return em(jm,e)}var Um=k("ZodCIDRv4",(e,n)=>{Xb.init(e,n),vt.init(e,n);});function ZR(e){return tm(Um,e)}var Am=k("ZodCIDRv6",(e,n)=>{Yb.init(e,n),vt.init(e,n);});function qR(e){return nm(Am,e)}var Dm=k("ZodBase64",(e,n)=>{e_.init(e,n),vt.init(e,n);});function HR(e){return rm(Dm,e)}var Fm=k("ZodBase64URL",(e,n)=>{t_.init(e,n),vt.init(e,n);});function KR(e){return im(Fm,e)}var Nm=k("ZodE164",(e,n)=>{n_.init(e,n),vt.init(e,n);});function GR(e){return om(Nm,e)}var Lm=k("ZodJWT",(e,n)=>{r_.init(e,n),vt.init(e,n);});function JR(e){return am(Lm,e)}var $a=k("ZodCustomStringFormat",(e,n)=>{i_.init(e,n),vt.init(e,n);});function WR(e,n,r={}){return xa($a,e,n,r)}function XR(e){return xa($a,"hostname",ir.hostname,e)}function YR(e){return xa($a,"hex",ir.hex,e)}function QR(e,n){let r=n?.enc??"hex",o=`${e}_${r}`,t=ir[o];if(!t)throw new Error(`Unrecognized hash format: ${o}`);return xa($a,o,t,n)}var wa=k("ZodNumber",(e,n)=>{Ed.init(e,n),je.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Ev(e,o,t),Kc(e,"ZodNumber",{gt(o,t){return this.check(Br(o,t))},gte(o,t){return this.check(Rn(o,t))},min(o,t){return this.check(Rn(o,t))},lt(o,t){return this.check(Vr(o,t))},lte(o,t){return this.check(or(o,t))},max(o,t){return this.check(or(o,t))},int(o){return this.check(Sm(o))},safe(o){return this.check(Sm(o))},positive(o){return this.check(Br(0,o))},nonnegative(o){return this.check(Rn(0,o))},negative(o){return this.check(Vr(0,o))},nonpositive(o){return this.check(or(0,o))},multipleOf(o,t){return this.check($i(o,t))},step(o,t){return this.check($i(o,t))},finite(){return this}});let r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=true,e.format=r.format??null;});function Cy(e){return Y_(wa,e)}var ko=k("ZodNumberFormat",(e,n)=>{o_.init(e,n),wa.init(e,n);});function Sm(e){return ev(ko,e)}function eC(e){return tv(ko,e)}function tC(e){return nv(ko,e)}function nC(e){return rv(ko,e)}function rC(e){return iv(ko,e)}var Ra=k("ZodBoolean",(e,n)=>{Uc.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Ov(e,r,o);});function Ey(e){return ov(Ra,e)}var Ca=k("ZodBigInt",(e,n)=>{Od.init(e,n),je.init(e,n),e._zod.processJSONSchema=(o,t,i)=>zv(e,o),e.gte=(o,t)=>e.check(Rn(o,t)),e.min=(o,t)=>e.check(Rn(o,t)),e.gt=(o,t)=>e.check(Br(o,t)),e.gte=(o,t)=>e.check(Rn(o,t)),e.min=(o,t)=>e.check(Rn(o,t)),e.lt=(o,t)=>e.check(Vr(o,t)),e.lte=(o,t)=>e.check(or(o,t)),e.max=(o,t)=>e.check(or(o,t)),e.positive=o=>e.check(Br(BigInt(0),o)),e.negative=o=>e.check(Vr(BigInt(0),o)),e.nonpositive=o=>e.check(or(BigInt(0),o)),e.nonnegative=o=>e.check(Rn(BigInt(0),o)),e.multipleOf=(o,t)=>e.check($i(o,t));let r=e._zod.bag;e.minValue=r.minimum??null,e.maxValue=r.maximum??null,e.format=r.format??null;});function iC(e){return sv(Ca,e)}var Vm=k("ZodBigIntFormat",(e,n)=>{a_.init(e,n),Ca.init(e,n);});function oC(e){return lv(Vm,e)}function aC(e){return uv(Vm,e)}var Oy=k("ZodSymbol",(e,n)=>{s_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>jv(e,r);});function sC(e){return dv(Oy,e)}var zy=k("ZodUndefined",(e,n)=>{c_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Av(e,r);});function cC(e){return mv(zy,e)}var jy=k("ZodNull",(e,n)=>{l_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Uv(e,r,o);});function Uy(e){return pv(jy,e)}var Ay=k("ZodAny",(e,n)=>{u_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Nv();});function lC(){return fv(Ay)}var Dy=k("ZodUnknown",(e,n)=>{d_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Lv();});function Po(){return gv(Dy)}var Fy=k("ZodNever",(e,n)=>{m_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Fv(e,r,o);});function Bm(e){return hv(Fy,e)}var Ny=k("ZodVoid",(e,n)=>{p_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Dv(e,r);});function uC(e){return bv(Ny,e)}var Jc=k("ZodDate",(e,n)=>{f_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Vv(e,o),e.min=(o,t)=>e.check(Rn(o,t)),e.max=(o,t)=>e.check(or(o,t));let r=e._zod.bag;e.minDate=r.minimum?new Date(r.minimum):null,e.maxDate=r.maximum?new Date(r.maximum):null;});function dC(e){return _v(Jc,e)}var Ly=k("ZodArray",(e,n)=>{g_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Qv(e,r,o,t),e.element=n.element,Kc(e,"ZodArray",{min(r,o){return this.check(ri(r,o))},nonempty(r){return this.check(ri(1,r))},max(r,o){return this.check(So(r,o))},length(r,o){return this.check(Io(r,o))},unwrap(){return this.element}});});function Wc(e,n){return xv(Ly,e,n)}function mC(e){let n=e._zod.def.shape;return Zm(Object.keys(n))}var Xc=k("ZodObject",(e,n)=>{h_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ey(e,r,o,t),V.defineLazy(e,"shape",()=>n.shape),Kc(e,"ZodObject",{keyof(){return Zm(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:Po()})},loose(){return this.clone({...this._zod.def,catchall:Po()})},strict(){return this.clone({...this._zod.def,catchall:Bm()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return V.extend(this,r)},safeExtend(r){return V.safeExtend(this,r)},merge(r){return V.merge(this,r)},pick(r){return V.pick(this,r)},omit(r){return V.omit(this,r)},partial(...r){return V.partial(Hm,this,r[0])},required(...r){return V.required(Km,this,r[0])}});});function pC(e,n){let r={type:"object",shape:e??{},...V.normalizeParams(n)};return new Xc(r)}function fC(e,n){return new Xc({type:"object",shape:e,catchall:Bm(),...V.normalizeParams(n)})}function gC(e,n){return new Xc({type:"object",shape:e,catchall:Po(),...V.normalizeParams(n)})}var Yc=k("ZodUnion",(e,n)=>{Ac.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>pm(e,r,o,t),e.options=n.options;});function Mm(e,n){return new Yc({type:"union",options:e,...V.normalizeParams(n)})}var Vy=k("ZodXor",(e,n)=>{Yc.init(e,n),b_.init(e,n),e._zod.processJSONSchema=(r,o,t)=>pm(e,r,o,t),e.options=n.options;});function hC(e,n){return new Vy({type:"union",options:e,inclusive:false,...V.normalizeParams(n)})}var By=k("ZodDiscriminatedUnion",(e,n)=>{Yc.init(e,n),__.init(e,n);});function bC(e,n,r){return new By({type:"union",options:n,discriminator:e,...V.normalizeParams(r)})}var My=k("ZodIntersection",(e,n)=>{v_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ty(e,r,o,t);});function Zy(e,n){return new My({type:"intersection",left:e,right:n})}var qy=k("ZodTuple",(e,n)=>{zd.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ny(e,r,o,t),e.rest=r=>e.clone({...e._zod.def,rest:r});});function Hy(e,n,r){let o=n instanceof we,t=o?r:n,i=o?n:null;return new qy({type:"tuple",items:e,rest:i,...V.normalizeParams(t)})}var Pa=k("ZodRecord",(e,n)=>{y_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ry(e,r,o,t),e.keyType=n.keyType,e.valueType=n.valueType;});function Ky(e,n,r){return !n||!n._zod?new Pa({type:"record",keyType:Mc(),valueType:e,...V.normalizeParams(n)}):new Pa({type:"record",keyType:e,valueType:n,...V.normalizeParams(r)})}function _C(e,n,r){let o=$n(e);return o._zod.values=void 0,new Pa({type:"record",keyType:o,valueType:n,...V.normalizeParams(r)})}function vC(e,n,r){return new Pa({type:"record",keyType:e,valueType:n,mode:"loose",...V.normalizeParams(r)})}var Gy=k("ZodMap",(e,n)=>{x_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Xv(e,r),e.keyType=n.keyType,e.valueType=n.valueType,e.min=(...r)=>e.check(Mr(...r)),e.nonempty=r=>e.check(Mr(1,r)),e.max=(...r)=>e.check(wi(...r)),e.size=(...r)=>e.check(xo(...r));});function yC(e,n,r){return new Gy({type:"map",keyType:e,valueType:n,...V.normalizeParams(r)})}var Jy=k("ZodSet",(e,n)=>{S_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Yv(e,r),e.min=(...r)=>e.check(Mr(...r)),e.nonempty=r=>e.check(Mr(1,r)),e.max=(...r)=>e.check(wi(...r)),e.size=(...r)=>e.check(xo(...r));});function xC(e,n){return new Jy({type:"set",valueType:e,...V.normalizeParams(n)})}var ka=k("ZodEnum",(e,n)=>{I_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Bv(e,o,t),e.enum=n.entries,e.options=Object.values(n.entries);let r=new Set(Object.keys(n.entries));e.extract=(o,t)=>{let i={};for(let s of o)if(r.has(s))i[s]=n.entries[s];else throw new Error(`Key ${s} not found in enum`);return new ka({...n,checks:[],...V.normalizeParams(t),entries:i})},e.exclude=(o,t)=>{let i={...n.entries};for(let s of o)if(r.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new ka({...n,checks:[],...V.normalizeParams(t),entries:i})};});function Zm(e,n){let r=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new ka({type:"enum",entries:r,...V.normalizeParams(n)})}function SC(e,n){return new ka({type:"enum",entries:e,...V.normalizeParams(n)})}var Wy=k("ZodLiteral",(e,n)=>{P_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Mv(e,r,o),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}});});function IC(e,n){return new Wy({type:"literal",values:Array.isArray(e)?e:[e],...V.normalizeParams(n)})}var Xy=k("ZodFile",(e,n)=>{k_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Hv(e,r,o),e.min=(r,o)=>e.check(Mr(r,o)),e.max=(r,o)=>e.check(wi(r,o)),e.mime=(r,o)=>e.check(ga(Array.isArray(r)?r:[r],o));});function PC(e){return Sv(Xy,e)}var Yy=k("ZodTransform",(e,n)=>{T_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Wv(e,r),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new Si(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(V.issue(i,r.value,n));else {let s=i;s.fatal&&(s.continue=false),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=e),r.issues.push(V.issue(s));}};let t=n.transform(r.value,r);return t instanceof Promise?t.then(i=>(r.value=i,r.fallback=true,r)):(r.value=t,r.fallback=true,r)};});function qm(e){return new Yy({type:"transform",transform:e})}var Hm=k("ZodOptional",(e,n)=>{jd.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>fm(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function qc(e){return new Hm({type:"optional",innerType:e})}var Qy=k("ZodExactOptional",(e,n)=>{$_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>fm(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function ex(e){return new Qy({type:"optional",innerType:e})}var tx=k("ZodNullable",(e,n)=>{w_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>iy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Hc(e){return new tx({type:"nullable",innerType:e})}function kC(e){return qc(Hc(e))}var nx=k("ZodDefault",(e,n)=>{R_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ay(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap;});function rx(e,n){return new nx({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():V.shallowClone(n)}})}var ix=k("ZodPrefault",(e,n)=>{C_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>sy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function ox(e,n){return new ix({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():V.shallowClone(n)}})}var Km=k("ZodNonOptional",(e,n)=>{E_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>oy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function ax(e,n){return new Km({type:"nonoptional",innerType:e,...V.normalizeParams(n)})}var sx=k("ZodSuccess",(e,n)=>{O_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Kv(e,r,o),e.unwrap=()=>e._zod.def.innerType;});function TC(e){return new sx({type:"success",innerType:e})}var cx=k("ZodCatch",(e,n)=>{z_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>cy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap;});function lx(e,n){return new cx({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}var ux=k("ZodNaN",(e,n)=>{j_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Zv(e,r);});function $C(e){return yv(ux,e)}var Qc=k("ZodPipe",(e,n)=>{Ud.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ly(e,r,o,t),e.in=n.in,e.out=n.out;});function Im(e,n){return new Qc({type:"pipe",in:e,out:n})}var el=k("ZodCodec",(e,n)=>{Qc.init(e,n),Dc.init(e,n);});function wC(e,n,r){return new el({type:"pipe",in:e,out:n,transform:r.decode,reverseTransform:r.encode})}function RC(e){let n=e._zod.def;return new el({type:"pipe",in:n.out,out:n.in,transform:n.reverseTransform,reverseTransform:n.transform})}var dx=k("ZodPreprocess",(e,n)=>{Qc.init(e,n),U_.init(e,n);}),mx=k("ZodReadonly",(e,n)=>{A_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>uy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function px(e){return new mx({type:"readonly",innerType:e})}var fx=k("ZodTemplateLiteral",(e,n)=>{D_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>qv(e,r,o);});function CC(e,n){return new fx({type:"template_literal",parts:e,...V.normalizeParams(n)})}var gx=k("ZodLazy",(e,n)=>{L_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>my(e,r,o,t),e.unwrap=()=>e._zod.def.getter();});function hx(e){return new gx({type:"lazy",getter:e})}var bx=k("ZodPromise",(e,n)=>{N_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>dy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function EC(e){return new bx({type:"promise",innerType:e})}var _x=k("ZodFunction",(e,n)=>{F_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Jv(e,r);});function OC(e){return new _x({type:"function",input:Array.isArray(e?.input)?Hy(e?.input):e?.input??Wc(Po()),output:e?.output??Po()})}var tl=k("ZodCustom",(e,n)=>{V_.init(e,n),je.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Gv(e,r);});function zC(e){let n=new Tt({check:"custom"});return n._zod.check=e,n}function jC(e,n){return Iv(tl,e??(()=>true),n)}function vx(e,n={}){return Pv(tl,e,n)}function yx(e,n){return kv(e,n)}var UC=Tv,AC=$v;function DC(e,n={}){let r=new tl({type:"custom",check:"custom",fn:o=>o instanceof e,abort:true,...V.normalizeParams(n)});return r._zod.bag.Class=e,r._zod.check=o=>{o.value instanceof e||o.issues.push({code:"invalid_type",expected:e.name,input:o.value,inst:r,path:[...r._zod.def.path??[]]});},r}var FC=(...e)=>wv({Codec:el,Boolean:Ra,String:Ta},...e);function NC(e){let n=hx(()=>Mm([Mc(e),Cy(),Ey(),Uy(),Wc(n),Ky(Mc(),n)]));return n}function LC(e,n){return new dx({type:"pipe",in:qm(e),out:n})}var v6={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function y6(e){Ht({customError:e});}function x6(){return Ht().customError}var xx;xx||(xx={});var J={...Bc,...bm,iso:Ia},S6=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function I6(e,n){let r=e.$schema;return r==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":r==="http://json-schema.org/draft-07/schema#"?"draft-7":r==="http://json-schema.org/draft-04/schema#"?"draft-4":n??"draft-2020-12"}function P6(e,n){if(!e.startsWith("#"))throw new Error("External $ref is not supported, only local refs (#/...) are allowed");let r=e.slice(1).split("/").filter(Boolean);if(r.length===0)return n.rootSchema;let o=n.version==="draft-2020-12"?"$defs":"definitions";if(r[0]===o){let t=r[1];if(!t||!n.defs[t])throw new Error(`Reference not found: ${e}`);return n.defs[t]}throw new Error(`Reference not found: ${e}`)}function VC(e,n){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return J.never();throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw new Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw new Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw new Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw new Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){let t=e.$ref;if(n.refs.has(t))return n.refs.get(t);if(n.processing.has(t))return J.lazy(()=>{if(!n.refs.has(t))throw new Error(`Circular reference not resolved: ${t}`);return n.refs.get(t)});n.processing.add(t);let i=P6(t,n),s=bn(i,n);return n.refs.set(t,s),n.processing.delete(t),s}if(e.enum!==void 0){let t=e.enum;if(n.version==="openapi-3.0"&&e.nullable===true&&t.length===1&&t[0]===null)return J.null();if(t.length===0)return J.never();if(t.length===1)return J.literal(t[0]);if(t.every(s=>typeof s=="string"))return J.enum(t);let i=t.map(s=>J.literal(s));return i.length<2?i[0]:J.union([i[0],i[1],...i.slice(2)])}if(e.const!==void 0)return J.literal(e.const);let r=e.type;if(Array.isArray(r)){let t=r.map(i=>{let s={...e,type:i};return VC(s,n)});return t.length===0?J.never():t.length===1?t[0]:J.union(t)}if(!r)return J.any();let o;switch(r){case "string":{let t=J.string();if(e.format){let i=e.format;i==="email"?t=t.check(J.email()):i==="uri"||i==="uri-reference"?t=t.check(J.url()):i==="uuid"||i==="guid"?t=t.check(J.uuid()):i==="date-time"?t=t.check(J.iso.datetime()):i==="date"?t=t.check(J.iso.date()):i==="time"?t=t.check(J.iso.time()):i==="duration"?t=t.check(J.iso.duration()):i==="ipv4"?t=t.check(J.ipv4()):i==="ipv6"?t=t.check(J.ipv6()):i==="mac"?t=t.check(J.mac()):i==="cidr"?t=t.check(J.cidrv4()):i==="cidr-v6"?t=t.check(J.cidrv6()):i==="base64"?t=t.check(J.base64()):i==="base64url"?t=t.check(J.base64url()):i==="e164"?t=t.check(J.e164()):i==="jwt"?t=t.check(J.jwt()):i==="emoji"?t=t.check(J.emoji()):i==="nanoid"?t=t.check(J.nanoid()):i==="cuid"?t=t.check(J.cuid()):i==="cuid2"?t=t.check(J.cuid2()):i==="ulid"?t=t.check(J.ulid()):i==="xid"?t=t.check(J.xid()):i==="ksuid"&&(t=t.check(J.ksuid()));}typeof e.minLength=="number"&&(t=t.min(e.minLength)),typeof e.maxLength=="number"&&(t=t.max(e.maxLength)),e.pattern&&(t=t.regex(new RegExp(e.pattern))),o=t;break}case "number":case "integer":{let t=r==="integer"?J.number().int():J.number();typeof e.minimum=="number"&&(t=t.min(e.minimum)),typeof e.maximum=="number"&&(t=t.max(e.maximum)),typeof e.exclusiveMinimum=="number"?t=t.gt(e.exclusiveMinimum):e.exclusiveMinimum===true&&typeof e.minimum=="number"&&(t=t.gt(e.minimum)),typeof e.exclusiveMaximum=="number"?t=t.lt(e.exclusiveMaximum):e.exclusiveMaximum===true&&typeof e.maximum=="number"&&(t=t.lt(e.maximum)),typeof e.multipleOf=="number"&&(t=t.multipleOf(e.multipleOf)),o=t;break}case "boolean":{o=J.boolean();break}case "null":{o=J.null();break}case "object":{let t={},i=e.properties||{},s=new Set(e.required||[]);for(let[l,d]of Object.entries(i)){let m=bn(d,n);t[l]=s.has(l)?m:m.optional();}if(e.propertyNames){let l=bn(e.propertyNames,n),d=e.additionalProperties&&typeof e.additionalProperties=="object"?bn(e.additionalProperties,n):J.any();if(Object.keys(t).length===0){o=J.record(l,d);break}let m=J.object(t).passthrough(),p=J.looseRecord(l,d);o=J.intersection(m,p);break}if(e.patternProperties){let l=e.patternProperties,d=Object.keys(l),m=[];for(let f of d){let g=bn(l[f],n),h=J.string().regex(new RegExp(f));m.push(J.looseRecord(h,g));}let p=[];if(Object.keys(t).length>0&&p.push(J.object(t).passthrough()),p.push(...m),p.length===0)o=J.object({}).passthrough();else if(p.length===1)o=p[0];else {let f=J.intersection(p[0],p[1]);for(let g=2;g<p.length;g++)f=J.intersection(f,p[g]);o=f;}break}let c=J.object(t);e.additionalProperties===false?o=c.strict():typeof e.additionalProperties=="object"?o=c.catchall(bn(e.additionalProperties,n)):o=c.passthrough();break}case "array":{let t=e.prefixItems,i=e.items;if(t&&Array.isArray(t)){let s=t.map(l=>bn(l,n)),c=i&&typeof i=="object"&&!Array.isArray(i)?bn(i,n):void 0;c?o=J.tuple(s).rest(c):o=J.tuple(s),typeof e.minItems=="number"&&(o=o.check(J.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(J.maxLength(e.maxItems)));}else if(Array.isArray(i)){let s=i.map(l=>bn(l,n)),c=e.additionalItems&&typeof e.additionalItems=="object"?bn(e.additionalItems,n):void 0;c?o=J.tuple(s).rest(c):o=J.tuple(s),typeof e.minItems=="number"&&(o=o.check(J.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(J.maxLength(e.maxItems)));}else if(i!==void 0){let s=bn(i,n),c=J.array(s);typeof e.minItems=="number"&&(c=c.min(e.minItems)),typeof e.maxItems=="number"&&(c=c.max(e.maxItems)),o=c;}else o=J.array(J.any());break}default:throw new Error(`Unsupported type: ${r}`)}return o}function bn(e,n){if(typeof e=="boolean")return e?J.any():J.never();let r=VC(e,n),o=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){let c=e.anyOf.map(d=>bn(d,n)),l=J.union(c);r=o?J.intersection(r,l):l;}if(e.oneOf&&Array.isArray(e.oneOf)){let c=e.oneOf.map(d=>bn(d,n)),l=J.xor(c);r=o?J.intersection(r,l):l;}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)r=o?r:J.any();else {let c=o?r:bn(e.allOf[0],n),l=o?0:1;for(let d=l;d<e.allOf.length;d++)c=J.intersection(c,bn(e.allOf[d],n));r=c;}e.nullable===true&&n.version==="openapi-3.0"&&(r=J.nullable(r)),e.readOnly===true&&(r=J.readonly(r)),e.default!==void 0&&(r=r.default(e.default));let t={},i=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let c of i)c in e&&(t[c]=e[c]);let s=["contentEncoding","contentMediaType","contentSchema"];for(let c of s)c in e&&(t[c]=e[c]);for(let c of Object.keys(e))S6.has(c)||(t[c]=e[c]);return Object.keys(t).length>0&&n.registry.add(r,t),e.description&&(r=r.describe(e.description)),r}function BC(e,n){if(typeof e=="boolean")return e?J.any():J.never();let r;try{r=JSON.parse(JSON.stringify(e));}catch{throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}let o=I6(r,n?.defaultTarget),t=r.$defs||r.definitions||{},i={version:o,defs:t,refs:new Map,processing:new Set,rootSchema:r,registry:n?.registry??dn};return bn(r,i)}var Sx={};sn(Sx,{bigint:()=>w6,boolean:()=>$6,date:()=>R6,number:()=>T6,string:()=>k6});function k6(e){return q_(Ta,e)}function T6(e){return Q_(wa,e)}function $6(e){return av(Ra,e)}function w6(e){return cv(Ca,e)}function R6(e){return vv(Jc,e)}Ht(Ad());var C6=/^[a-z0-9._]{1,100}$/,Oi={Persisted:"persisted",Transient:"transient"},zi={Internal:"internal",External:"external"},ji={Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}},E6="readOnly";function Kn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[E6]===true||(n[r]=o);}return a.object(n)}function _n(e){let n=Kn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(C6)}):n}var {Unrestricted:En}=ji,{Transient:Gn,Persisted:O6}=Oi,{Internal:To,External:Ui}=zi;a.object({page:a.coerce.number().int().min(1).default(1).meta(En),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(En)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui});var wt=a.object({created_at:a.string().datetime().meta({...En,readOnly:true}),updated_at:a.string().datetime().meta({...En,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui}),yt=a.object({id:a.string().min(1).meta({...En,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui}),Rt=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...En,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui});var Ix=a.enum(["banner","modal","tooltip","sidebar","inline","toast","fullscreen","email","sms","push","in_page","button","full_page","agent","cli","custom"]).meta({id:"SurfaceType","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui}),Gm=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui}),MC=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To});var oi=a.string().min(1).max(200),Xt=a.string().min(1).max(100),Jm=a.string().max(500).optional(),ar=a.record(a.string(),a.unknown()).default({}),$o=a.number().int().min(10).max(100).multipleOf(10),Wm=a.string().datetime().nullable().default(null),Kt=a.object({environment_id:a.string().min(1).default("production").meta({...En,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To}),Yt=a.object({playbook_version_id:a.string().nullable().default(null).meta(En),is_current:a.boolean().default(true).meta({...En,readOnly:true}),is_deleted:a.boolean().default(false).meta({...En,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...En,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...En,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...En,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To}),z6=yt.merge(wt).merge(Rt).merge(Kt).extend({handle:Xt.meta({...En,readOnly:true}),active:a.boolean().default(true).meta({...En,readOnly:true})});function vn(e){return z6.meta({id:e,"x-revturbine-schema-persistence":O6,"x-revturbine-schema-exposure":To})}a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To});a.enum(["button","plans_page_ctas","plans_page_full","inline_gate_message","tooltip","in_page_card","usage_counter","credit_counter","trial_counter","banner","modal_optional","modal_blocking","toast","email","sms","push","cli","agent_connector","custom_in_app"]).meta({id:"StudioSurfaceType","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":To});var ZC=a.enum(["open_checkout","view_plans","book_demo","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription","switch_billing_period","extend_trial","open_rt_placement","dismiss","snooze","custom"]).meta({id:"CtaActionType","x-revturbine-schema-persistence":Gn,"x-revturbine-schema-exposure":Ui}),j6=new Set(Ix.options);function nl(e,n){if(!oe(e))return null;let r=typeof e.output_id=="string"?e.output_id:"";if(!r)return null;let o=oe(e.surface)?e.surface:{},t=j6.has(o.type)?o.type:"custom",i=oe(e.cta_path)?e.cta_path:oe(e.ui_path)?e.ui_path:{};return {output_id:r,category:typeof e.category=="string"?e.category:"unknown",surface:{...typeof o.template=="string"?{template:o.template}:{},type:t,...typeof o.slot_id=="string"?{slot_id:o.slot_id}:{}},content:oe(e.content)?e.content:{},...oe(e.promotion)?{promotion:e.promotion}:{},cta_path:i,ui_path:i,rule_id:typeof e.rule_id=="string"?e.rule_id:"",decision_id:typeof e.decision_id=="string"?e.decision_id:n(),config_version:typeof e.config_version=="string"?e.config_version:"unknown",present_upsell:typeof e.present_upsell=="boolean"?e.present_upsell:false}}var U6="__no_dim__";function KC(e,n,r){if(e.length===0)return true;let o=n instanceof Set?n:new Set(n),t=new Map;for(let i of e){let s=r(i)??U6,c=t.get(s)??[];c.push(i),t.set(s,c);}for(let i of t.values())if(!i.some(s=>o.has(s)))return false;return true}var A6=999999;function D6(e){return e==null||e==="unlimited"||e===A6}function rl(e){return D6(e)?Number.POSITIVE_INFINITY:typeof e=="number"&&Number.isFinite(e)?e:void 0}function F6(e,n){switch(e.kind){case "plan":return n.currentPlanId!=null&&e.id===n.currentPlanId||n.currentPlanHandle!=null&&e.id===n.currentPlanHandle;case "plan_variation":return n.currentPlanVariationId!=null&&e.id===n.currentPlanVariationId;case "addon":return n.addonIds?.includes(e.id)??false;case "addon_variation":return n.addonVariationIds?.includes(e.id)??false;default:return false}}function GC(e,n,r){return e.map(o=>{let t=o.targets!=null&&o.targets.length>0?o.targets.some(s=>F6(s,n)):n.currentPlanId!=null&&o.planIds.includes(n.currentPlanId)||n.currentPlanHandle!=null&&o.planIds.includes(n.currentPlanHandle),i=KC(o.segmentIds,n.segmentIds,s=>r?.[s]);return {rule:o,matchesPlan:t,matchesSegment:i,matched:t&&i}})}function JC(e){let n=e.fields??{};switch(e.kind){case "usage_limit":return rl(n.limit_value)??0;case "credits":return rl(n.allowance_value!==void 0?n.allowance_value:n.allowance)??0;case "seat":return rl(n.included_count)??0;case "feature":return n.enabled===true?1:0;default:return 0}}function WC(e,n){let r,o=Number.NEGATIVE_INFINITY;for(let t of e){let i=n(t);(r===void 0||i>o)&&(r=t,o=i);}return r}function N6(e){return WC(e,n=>JC(n.rule))?.rule}function Px(e,n,r){let o=e.entitlementRules[n];if(!o||o.length===0)return;let t=GC(o,r,e.segmentDimensions);return N6(t.filter(i=>i.matched))}function L6(e){let n=e.segment_ids;if(Array.isArray(n))return n.filter(o=>typeof o=="string");let r=e.segment_id??e.segmentId;return typeof r=="string"&&r!=="all"?[r]:[]}function V6(e,n,r){let o=new Map;for(let t of r)typeof t.handle=="string"&&o.set(t.handle,typeof t.dimension_id=="string"?t.dimension_id:void 0);return KC(L6(e),n,t=>o.get(t))}function qC(e,n,r){if(!e)return {status:"allowed",allowed:true};switch(n){case "hard_block":return {status:"denied",allowed:false,reason:r};case "soft_block":return {status:"denied",allowed:false,reason:`${r}_soft_block`};case "degrade":return {status:"limited",allowed:true,reason:`${r}_degraded`};case "allow_overage":return {status:"allowed",allowed:true,reason:`${r}_overage`};default:return {status:"limited",allowed:false,reason:r}}}function il(e){let{handle:n,context:r,exportedConfig:o,currentPlanHandle:t,segmentIds:i,usageBalances:s,userUsage:c,trialGrantedEntitlementHandles:l,effectivePlanHandle:d}=e,p=(o.entitlements??[]).find(me=>typeof me?.unique_handle=="string"&&me.unique_handle===n),f=typeof p?.unique_handle=="string"?p.unique_handle:n,g=typeof p?.unique_handle=="string"?p.unique_handle:void 0,h=!!(l&&l.size>0&&(l.has(n)||l.has(f)||g!==void 0&&l.has(g)));if(h&&(d===void 0||d===""))return {status:"allowed",allowed:true,reason:"granted_by_reverse_trial"};let S=String((h&&d?d:t)||"").toLowerCase(),$=(o.plans??[]).find(me=>typeof me.unique_handle=="string"&&me.unique_handle.toLowerCase()===S),E=typeof $?.unique_handle=="string"?$.unique_handle:S||void 0,I=(o.entitlement_rules??[]).filter(me=>{if((typeof me.entitlement_id=="string"?me.entitlement_id:typeof me.entitlementId=="string"?me.entitlementId:"")!==f)return false;let ie=Array.isArray(me.targets)?me.targets.filter(ze=>oe(ze)&&ze.kind==="plan"&&typeof ze.id=="string").map(ze=>ze.id):Array.isArray(me.plan_ids)?me.plan_ids.filter(ze=>typeof ze=="string"):Array.isArray(me.planIds)?me.planIds.filter(ze=>typeof ze=="string"):[];return !(E!==void 0&&!ie.includes(E)||!V6(me,i,o.segments??[]))});if(I.length===0)return {status:"denied",allowed:false,reason:"no_matching_entitlement_rule"};let z=(()=>{let me=(o.entitlements??[]).find(fe=>fe.unique_handle===f);return me&&typeof me.type=="string"?me.type:void 0})(),X=me=>{let fe=oe(me)?me:{},ze={...oe(fe.type_fields)?fe.type_fields:oe(fe.typeFields)?fe.typeFields:{},...fe};return typeof ze.kind!="string"&&z&&(ze.kind=z),ze},re=WC(I,me=>{let fe=X(me);return JC({kind:typeof fe.kind=="string"?fe.kind:"",fields:fe})})??I[0],L=X(re);typeof L.kind=="string"?L.kind:void 0;let ee=me=>{let fe=c?.[me];if(oe(fe)&&typeof fe.amount=="number")return fe.amount},Pe=r?.used??(Number.isFinite(s[n])?s[n]:void 0)??(Number.isFinite(s[f])?s[f]:void 0)??ee(n)??ee(f)??0;return Xm(L,Pe)}function HC(e,n,r){return {...e,limit:n,used:r,remaining:Math.max(0,n-r)}}function XC(e){return e==="feature"||e==="usage_limit"||e==="limit"||e==="credits"||e==="capability_tier"}function Xm(e,n){let r=typeof e.kind=="string"?e.kind:void 0;if(r==="feature"){let o=e.enabled!==false;return {status:o?"allowed":"denied",allowed:o,reason:o?void 0:"feature_not_enabled_for_plan"}}if(r==="usage_limit"||r==="limit"){let o=rl(e.limit_value);return o!==void 0&&Number.isFinite(o)&&o>=0?HC(qC(n>=o,e.enforcement,"usage_limit_reached"),o,n):{status:"allowed",allowed:true}}if(r==="credits"){let o=e.allowance_value!==void 0?e.allowance_value:e.allowance,t=o===void 0?void 0:rl(o),i=Number(e.initial_grant),s=t!==void 0&&t>=0?t:Number.isFinite(i)&&i>=0?i:void 0;return s!==void 0&&Number.isFinite(s)?HC(qC(n>=s,e.enforcement,"credit_balance_exhausted"),s,n):{status:"allowed",allowed:true}}if(r==="capability_tier"){let o=typeof e.tier_name=="string"?e.tier_name:void 0;return {status:"allowed",allowed:true,...o?{current_tier:o}:{}}}return {status:"allowed",allowed:true}}function kx(e,n){if(!oe(e))return {status:"allowed",allowed:true};let r=typeof e.status=="string"?e.status:void 0,o=r==="limited"||r==="denied"||r==="allowed"?r:typeof e.allowed=="boolean"&&e.allowed?"allowed":"denied",t=o!=="denied",i=typeof e.reason=="string"?e.reason:void 0,s=typeof e.current_tier=="string"?e.current_tier:void 0,c=oe(e.placement)?nl(e.placement,n):void 0;return {status:o,allowed:t,...i!==void 0?{reason:i}:{},...s!==void 0?{current_tier:s}:{},...c!=null?{placement:c}:{}}}function Tx(e,n,r,o,t=80){let i=n.get(e);if(i)return i;if(r.get(e)?.status==="limited"&&Number.isFinite(o[e])){let c=Number(o[e]);if(c>0)return {limit:c,warningPercent:t}}return null}var B6=0;function M6(){return `core_${Date.now()}_${++B6}`}function YC(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}var $x=class{constructor(e){this.registry=e.registry,this.interactionTracker=e.interactionTracker,this.capEnforcer=e.capEnforcer,this.options=e.options??{},this.placements=e.placements??new Map,this.placementResolver=e.placementResolver;}async evaluate(e){let n=M6(),r=this.placements.get(e.placementId);if(this.interactionTracker){let i=this.interactionTracker.checkSuppression(e.placementId,e.userId);if(i.suppressed)return {placementId:e.placementId,requestId:n,visible:false,decisionSource:"cache",reasonCodes:i.reason?[i.reason]:[],suppressionReason:i.reason,content:YC(`${r?.name??e.placementId} suppressed`,"Suppressed due to recent interaction state.","Continue")}}let t={__providers:await this.registry.resolveAll()};if(e.traits&&(t.traits=e.traits),this.placementResolver){let i=await this.placementResolver(e,r,t);if(i.visible&&i.output&&this.capEnforcer&&this.options.enableCapsEnforcement!==false){let s=this.capEnforcer.enforce(i.output);if(!s.allowed)return {...i,visible:false,reasonCodes:[...i.reasonCodes,s.reason??"suppressed_by_cap"],suppressionReason:s.reason}}return i}return {placementId:e.placementId,requestId:n,visible:false,decisionSource:"fallback",reasonCodes:["no_resolver_configured"],content:YC("No resolver","No placement resolver configured.","")}}async evaluateBatch(e){return Promise.all(e.map(n=>this.evaluate(n)))}async checkEntitlement(e,n){let r=await this.registry.resolveAll();return this.deriveEntitlementResult(e,r,n)}trackInteraction(e){this.interactionTracker?.track(e);}async resolveProviders(){return this.registry.resolveAll()}deriveEntitlementResult(e,n,r){let o=this.options.defaultEntitlementPolicy??"allow",t=n.entitlements;if(!t)return o==="allow"?{status:"allowed",allowed:true,reason:"no_entitlement_provider"}:{status:"denied",allowed:false,reason:"no_entitlement_provider_default_deny"};let i=t.entries[e];if(!i)return o==="allow"?{status:"allowed",allowed:true,reason:"entitlement_not_found_default_allow"}:{status:"denied",allowed:false,reason:"entitlement_not_found_default_deny"};let s=t.usage?.[e];if(n.rules){let c=Px(n.rules,e,{currentPlanHandle:n.plan?.currentPlanHandle,billingPeriod:n.plan?.billingPeriod,segmentIds:n.segments?.segmentIds??[]});if(c){let l={kind:c.kind,...c.fields};if(XC(l.kind))return Xm(l,r?.used??s?.used??0)}else return {status:"denied",allowed:false,reason:"no_matching_entitlement_rule"}}return s&&r?.used!==void 0&&s.limit>0&&r.used>=s.limit?{status:"denied",allowed:false,reason:"usage_limit_exceeded",limit:s.limit,used:r.used,remaining:Math.max(0,s.limit-r.used)}:{status:i.status,allowed:i.status==="allowed",reason:i.reason,limit:s?.limit,used:s?.used,remaining:s?.remaining}}};function QC(e,n){let r=n[e.field];if(r===void 0)return false;let o=String(r),t=e.value;switch(e.operator){case "eq":return o===t;case "neq":return o!==t;case "gt":return Number(o)>Number(t);case "lt":return Number(o)<Number(t);case "gte":return Number(o)>=Number(t);case "lte":return Number(o)<=Number(t);case "contains":return o.includes(t);case "in":return t.split(",").map(s=>s.trim()).includes(o);default:return false}}function ol(e,n){return e.filter(r=>!r.predicates||r.predicates.length===0?false:r.predicates.every(o=>QC(o,n))).map(r=>r.handle)}function wx(e,n){let r=String(e.field||""),o=String(e.operator||""),t=String(e.value||""),i=n[r],s=typeof i=="string"||typeof i=="number"||typeof i=="boolean"?i:null,c=QC(e,n);return {field:r,operator:o,expected:t,actual:s,matched:c}}function Ym(e){let n="";return e.forEach(r=>{n+=String.fromCharCode(r);}),btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Qm(e){let n=2166136261;for(let t=0;t<e.length;t+=1)n^=e.charCodeAt(t),n+=(n<<1)+(n<<4)+(n<<7)+(n<<8)+(n<<24);let r=new Uint8Array(8),o=new DataView(r.buffer);return o.setUint32(0,n>>>0),o.setUint32(4,n*1103515245>>>0),Ym(r)}async function Rx(e,n){let r=Yo(e.pageRoute),o=[e.tenantId,r,e.placementName.trim().toLowerCase(),String(e.placementScopeKey||"").trim().toLowerCase()].join("::");if(n)try{return (await n.sha256Base64Url(o)).slice(0,22)}catch{}return Qm(o).slice(0,22)}function Cx(e){return [e.slotId||"",e.surfaceType||"",e.entitlementHandle||"",e.planHandle||"",e.placementHandle||""].join("::")}function Ex(e){let n=yi({placementId:e.placementId,userId:e.userId,contextMode:e.contextMode??"auto",overrides:e.overrides??{},traits:e.traits??{},route:Yo(e.route),...e.runtimeContextFingerprint?{runtimeContextFingerprint:e.runtimeContextFingerprint}:{}});return `${e.tenantId}:${e.placementId}:${e.userId}:${Qm(n)}`}function tE(e){if(e.length<=1)return e;let n=new Set;for(let o of e){let t=o.surface.template;if(!t)continue;let i=vh(o);if(i.length!==0)for(let s of e){if(s.output_id===o.output_id||s.surface.template!==t)continue;let c=_h(s);c&&i.includes(c)&&n.add(s.output_id);}}let r=new Map;for(let o of e){if(!o.surface.template)continue;let t=r.get(o.surface.template)??[];t.push(o),r.set(o.surface.template,t);}for(let o of r.values()){if(o.length<=1)continue;let t=o.map(s=>{let c=oe(s.content)?s.content:{};return {output:s,order:bt(c.milestone_order)??Number.NEGATIVE_INFINITY}}).filter(s=>Number.isFinite(s.order));if(t.length<=1)continue;let i=t.reduce((s,c)=>c.order>s.order?c:s);for(let s of t)s.output.output_id!==i.output.output_id&&n.add(s.output.output_id);}return e.filter(o=>!n.has(o.output_id))}function eE(e){let r=(oe(e.content)?e.content:{}).__trigger_entitlement_handle;return typeof r=="string"&&r.length>0?r:null}function Z6(e,n,r){if(r===1){let o=e.surface.slot_id,t=n.surface.slot_id;if(typeof o=="string"&&o&&typeof t=="string"&&t)return {leftKey:o,rightKey:t}}else if(r===0){let o=eE(e),t=eE(n);if(o&&t)return {leftKey:o,rightKey:t}}return {leftKey:e.surface.type??"",rightKey:n.surface.type??""}}function ep(e){if(e.length<=1)return e;let n=new Set;for(let r=0;r<e.length;r+=1)for(let o=r+1;o<e.length;o+=1){let t=e[r],i=e[o];if(t.surface.type!==i.surface.type)continue;let s=xi(t.category),c=xi(i.category);if(s!==c){s<c?n.add(i.output_id):n.add(t.output_id);continue}if(s===0||s===1){let{leftKey:l,rightKey:d}=Z6(t,i,s);l===d&&n.add(i.output_id);}}return e.filter(r=>!n.has(r.output_id))}function Ox(e,n=false,r){let o=e;if(r?.fixedOnly&&(o=o.filter(l=>xi(l.category)===1)),o.length===0)return null;let t=tE(o);if(t.length===0)return null;let i=t.some(l=>Sc(l)!==null),s=i?t:ep(t);return s.length===0?null:[...s].sort((l,d)=>{if(i){let x=Sc(l),S=Sc(d);if(x!==null&&S!==null&&x!==S)return x-S;if(x!==null&&S===null)return -1;if(x===null&&S!==null)return 1}let m=xi(l.category),p=xi(d.category),f=m-p;if(f!==0)return f;if(m===2){let x=bh(l)-bh(d);if(x!==0)return x;let S=hh(d)-hh(l);if(S!==0)return S}let g=xc(d)-xc(l);if(g!==0)return g;let h=ud(d)-ud(l);return h!==0?h:l.output_id.localeCompare(d.output_id)})[0]??null}function q6(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function zx(e,n,r,o){let t=oe(o)?o:{},i=oe(t.decision)?t.decision:{},s=oe(t.content)?t.content:oe(i.content)?i.content:{},c=typeof i.visible=="boolean"?i.visible:typeof t.visible=="boolean"?t.visible:true;return {placementId:e,requestId:typeof t.request_id=="string"?t.request_id:n,visible:c,decisionSource:"remote",reasonCodes:Array.isArray(t.reason_codes)?t.reason_codes.filter(l=>typeof l=="string"):[],content:q6(typeof s.title=="string"?s.title:`${r} recommendation`,typeof s.body=="string"?s.body:"Treatment selected by RevTurbine decisioning.",typeof s.cta=="string"?s.cta:"Continue")}}function tp(e){let n=[],r=[e,e.content,oe(e.content)?e.content.payload:void 0,oe(e.content)?e.content.placement:void 0,oe(e.content)?e.content.surface:void 0];for(let o of r){if(!oe(o))continue;let t=oe(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=lh(t.max_per_period);s&&i.push(s);let c=Number(t.cooldown_days),l=Number.isFinite(c)&&c>0?c*24*60*60*1e3:void 0;n.push({rules:i,...l!==void 0?{cooldownMs:l}:{}});}return n}function jx(e,n,r,o,t="impression"){if(xi(e.category)<=1)return {allowed:true};let i=tp(e);if(i.length===0)return {allowed:true};let s={...r??{seenAt:[]},seenAt:(r?.seenAt??[]).filter(m=>Number.isFinite(m)&&m>0)};if(Number.isFinite(s.cooldownUntil)&&s.cooldownUntil>o)return {allowed:false,reason:"suppressed_by_payload_cooldown",updatedState:s};for(let m of i)for(let p of m.rules){let f=uh(p.period,o),g=s.seenAt.filter(h=>h>=f&&h<=o);if(g.length>=p.count)return {allowed:false,reason:`suppressed_by_payload_cap_${p.period}`,updatedState:{...s,seenAt:g}}}let c=[...s.seenAt,o],l=t==="dismiss"?i.map(m=>m.cooldownMs).filter(m=>typeof m=="number"&&Number.isFinite(m)&&m>0):[],d=l.length>0?o+Math.max(...l):void 0;return {allowed:true,updatedState:{seenAt:c,...d!==void 0?{cooldownUntil:d}:{}}}}function Ea(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim().length>0){let n=Number(e);if(Number.isFinite(n))return n}}function al(e){return e.replace(/_(minutes|minute|credits|credit|seats|seat)$/i,"").replace(/_usage$/i,"").trim()}function H6(e,n){let r=Ea(e.limit_value??e.usage_limit??e.limit??e.allowance??e.initial_grant);if(r!==void 0)return r;let o=e.usageLimits;if(o&&typeof o=="object"&&!Array.isArray(o)){let t=(n??"").toLowerCase();for(let[i,s]of Object.entries(o))if(i.toLowerCase()===t)return Ea(s)}}function K6(e){let n=Ea(e.warning_threshold_percent??e.warning_percentage??e.threshold_percent??e.threshold);if(n!==void 0)return Math.max(0,Math.min(100,n))}function Oa(e){let n={},r=e.providers;if(e.userId&&(n.user_id=e.userId),e.base)for(let[g,h]of Object.entries(e.base))(typeof h=="string"||typeof h=="number")&&(n[g]=h);let o=r?.plan?.currentPlanHandle,t=r?.plan?.currentPlanName??o;typeof t=="string"&&t.length>0&&(n.plan_name=t);let i=r?.plan?.trialDaysRemaining;i!==void 0&&Number.isFinite(i)&&(n.trial_days_remaining=i);let s=r?.plan?.trialDaysTotal;s!==void 0&&Number.isFinite(s)&&(n.trial_days_total=s);let c=r?.traits?.traits??{};for(let[g,h]of Object.entries(c))(typeof h=="string"||typeof h=="number")&&(n[g]=h);let l=r?.entitlements?.usage??{};for(let[g,h]of Object.entries(l)){let x=al(g);if(!x)continue;let S=Ea(h.used),w=Ea(h.remaining),$=Ea(h.limit);if(S!==void 0&&(n[`${x}_usage_current`]=S,n.usage_current===void 0&&(n.usage_current=S),n.current_usage===void 0&&(n.current_usage=S)),$!==void 0&&(n[`${x}_usage_limit`]=$,n.usage_limit===void 0&&(n.usage_limit=$),n.current_limit===void 0&&(n.current_limit=$)),w!==void 0)n[`${x}_usage_remaining`]=w,n.usage_remaining===void 0&&(n.usage_remaining=w);else if(S!==void 0&&$!==void 0){let P=Math.max(0,$-S);n[`${x}_usage_remaining`]=P,n.usage_remaining===void 0&&(n.usage_remaining=P);}if(S!==void 0&&$!==void 0&&$>0){let P=Math.min(100,Math.round(S/$*100));n[`${x}_usage_percent`]=P,n.usage_percent===void 0&&(n.usage_percent=P);}let E=h.reset_date;typeof E=="string"&&E.length>0&&(n[`${x}_reset_date`]=E,n.reset_date===void 0&&(n.reset_date=E));}let d=r?.rules?.entitlementRules??{};for(let[g,h]of Object.entries(d)){if(!Array.isArray(h)||h.length===0)continue;let x=h.find(P=>P.kind==="usage_limit"||P.kind==="usage_rate"||P.kind==="credits"||P.kind==="seat");if(!x)continue;let S=al(g);if(!S)continue;let w=x.fields??{},$=H6(w,o);$!==void 0&&n[`${S}_usage_limit`]===void 0&&(n[`${S}_usage_limit`]=$);let E=K6(w);E!==void 0&&(n[`${S}_usage_warning_threshold_percent`]=E);}e.userName&&e.userName.length>0&&(n.user_name=e.userName);let m=r?.plan?.currentPlanPrice;typeof m=="string"&&m.length>0&&(n.plan_price=m),e.upgradePlan?.name&&(n.upgrade_plan_name=e.upgradePlan.name),e.upgradePlan?.price&&(n.upgrade_plan_price=e.upgradePlan.price),e.trialPlanName&&e.trialPlanName.length>0&&(n.trial_plan_name=e.trialPlanName),e.promoDiscount&&e.promoDiscount.length>0&&(n.promo_discount=e.promoDiscount),e.featuresLostOnDowngrade&&e.featuresLostOnDowngrade.length>0&&(n.features_lost_on_downgrade=e.featuresLostOnDowngrade);let p=e.effectiveGrants;if(p)for(let[g,h]of Object.entries(p)){if(h.allocation==="per_user"||h.allocation==="per_user_pooled"||!h.allocation){let x=al(g);if(!x)continue;h.used!==void 0&&n[`${x}_usage_current`]===void 0&&(n[`${x}_usage_current`]=h.used),h.limit!==void 0&&n[`${x}_usage_limit`]===void 0&&(n[`${x}_usage_limit`]=h.limit);}if(h.enforcement&&(h.status==="limited"||h.status==="denied")){let x=al(g);x&&n[`${x}_enforcement`]===void 0&&(n[`${x}_enforcement`]=h.enforcement),n.enforcement_mode===void 0&&(n.enforcement_mode=h.enforcement);}}let f=r?.rules?.entitlementRules??{};for(let[g,h]of Object.entries(f)){if(!Array.isArray(h))continue;let x=al(g);if(x)for(let S of h){if(S.kind==="credits"){let w=n[`${x}_usage_remaining`];w!==void 0&&n.credits_remaining===void 0&&(n.credits_remaining=w);}if(S.kind==="seat"){let w=n[`${x}_usage_current`],$=n[`${x}_usage_limit`];w!==void 0&&n.seat_count===void 0&&(n.seat_count=w),$!==void 0&&n.seat_limit===void 0&&(n.seat_limit=$);}}}if(e.featureInteractions&&p){let{invokedFeatureHandles:g,interactionCounts:h,topFeaturesByEngagement:x}=e.featureInteractions,S=new Set(g),w=new Set;for(let[P,I]of Object.entries(p))(I.status==="denied"||I.status==="limited")&&w.add(P);let $=0,E=0;for(let P of g)w.has(P)&&($++,h&&(E+=h[P]??0));if(n.gated_features_used_count=$,h&&(n.gated_action_count=E),x){let P=x.find(I=>!S.has(I)&&w.has(I));P&&(n.top_unused_gated_feature=P);}if(r?.plan?.trialActive){let P=0;for(let I of g)I in p&&P++;n.trial_features_used=P;}}return n}function Ux(e,n){let r={};for(let[o,t]of Object.entries(n))t!==void 0&&(r[o]=t);return {...e,...r,custom:{...e.custom||{},...n.custom||{}},entitlements:{...e.entitlements||{},...n.entitlements||{}},usage:{...e.usage||{},...n.usage||{}},personalization:{...e.personalization||{},...n.personalization||{}}}}function np(e,n,r){let o={};for(let[t,i]of Object.entries(e))(typeof i=="string"||typeof i=="number"||typeof i=="boolean")&&(o[t]=i);n&&o.plan===void 0&&(o.plan=n);for(let[t,i]of Object.entries(r))o[t]===void 0&&(o[t]=i);return o}function rp(e,n,r){let o=ho(n,e.plan),t=o??(typeof e.plan=="object"&&e.plan?.id?e.plan.id:void 0),i={...e.custom??{}};for(let[c,l]of Object.entries(e.entitlements??{}))i[c]===void 0&&(i[c]=l);o&&i.plan_name===void 0&&(i.plan_name=o),t&&i.plan===void 0&&(i.plan=t);let s={...ti(e.usage),...r??{}};for(let[c,l]of Object.entries(s))i[c]===void 0&&(i[c]=l);return {effectivePlan:t,traits:i,usage:s,segmentTraits:np(i,t,s)}}function Ax(e){let{context:n,exportedConfig:r,usageBalances:o,usageTokenPrefixByEntitlement:t,usageThresholdLookup:i}=e,s={};for(let[w,$]of Object.entries(n.personalization??{}))/^(usage_(current|limit|remaining|percent)|.+_usage_(current|limit|remaining|percent)|plan_name|user_id)$/i.test(w)||(s[w]=$);let c={...s},l=ho(r,n.plan);l?c.plan_name=l:typeof n.plan=="object"&&n.plan?.name&&(c.plan_name=n.plan.name);let d={...ti(n.usage),...o},m=Object.entries(d).filter(([,w])=>Number.isFinite(w)).sort(([w],[$])=>w.localeCompare($)),p,f,g,h,x=[];for(let[w,$]of m){let E=t.get(w)??Qo(w);if(!E)continue;let I=i(w)?.limit,z=I!==void 0?Math.max(0,I-$):void 0,X=I!==void 0&&I>0?Math.min(100,Math.round($/I*100)):void 0;c[`${E}_usage_current`]=$,I!==void 0&&(c[`${E}_usage_limit`]=I),z!==void 0&&(c[`${E}_usage_remaining`]=z),X!==void 0&&(c[`${E}_usage_percent`]=X),x.push({prefix:E,current:$,...I!==void 0?{limit:I}:{},...z!==void 0?{remaining:z}:{},...X!==void 0?{percent:X}:{}}),p===void 0&&(p=$,f=I,g=z,h=X);}let S=x.find(w=>w.prefix==="core")??x.find(w=>w.limit!==void 0)??x[0];return S&&(p=S.current,f=S.limit,g=S.remaining,h=S.percent),p!==void 0&&(c.usage_current=p),f!==void 0&&(c.usage_limit=f),g!==void 0&&(c.usage_remaining=g),h!==void 0&&(c.usage_percent=h),c}function Dx(e,n,r){let o=[];for(let[t,i]of Object.entries(n)){let s=e[t]||0;if(!Number.isFinite(i)||i<=s)continue;let c=r(t);if(!c)continue;let l=s/c.limit*100,d=i/c.limit*100;d>=c.warningPercent&&l<c.warningPercent&&o.push({type:"usage_limit_approaching",entitlement_handle:t,current_usage:i,usage_limit:c.limit,usage_percent:Math.min(100,Math.round(d)),threshold:c.warningPercent}),i>=c.limit&&s<c.limit&&o.push({type:"usage_limit_reached",entitlement_handle:t,current_usage:i,usage_limit:c.limit,usage_percent:Math.min(100,Math.round(d)),threshold:100});}return o}function Fx(e,n,r=3){if(!e.in_trial)return n==="none"?"none":"expired";let o=Number(e.days_remaining);if(Number.isFinite(o)&&o<=0)return "expired";if(Number.isFinite(o)&&o<=r)return "expiring";let t=Number(e.day_number);if(Number.isFinite(t)&&t>0&&Number.isFinite(o)){let i=t+Math.max(0,o);if(i>0&&t>=Math.ceil(i/2))return "midpoint"}return "none"}a.object({target_plan_ids:a.array(a.string()).default([]),target_billing_periods:a.array(a.string()).default([]),category:a.string().optional()});function Nx(e,n){return e.target_plan_ids.length>0&&n.currentPlanId&&!e.target_plan_ids.includes(n.currentPlanId)?{eligible:false,reason:"plan_mismatch"}:e.target_billing_periods.length>0&&n.billingPeriod&&!e.target_billing_periods.includes(n.billingPeriod)?{eligible:false,reason:"billing_period_mismatch"}:(e.category==="upsell"||e.category==="trial_conversion")&&n.planHandle==="enterprise"?{eligible:false,reason:"enterprise_upsell_suppressed"}:{eligible:true}}var nE={Named:"named",Minted:"minted"},rE="x-revturbine-schema-identity";function $r(e="handle"){return {[rE]:{kind:nE.Named,handleField:e}}}function fr(e="handle"){return {[rE]:{kind:nE.Minted,handleField:e}}}var ut={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},pr={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},W6="x-revturbine-context",X6="x-revturbine-in-config",Y6="x-revturbine-sdk-input",Q6="x-revturbine-source",eF="x-revturbine-deprecation",tF={[ut.Playbook]:pr.Customer,[ut.Branding]:pr.Customer,[ut.Billing]:pr.Stripe,[ut.Metering]:pr.Customer,[ut.CustomerOperations]:pr.Runtime,[ut.EventIngestion]:pr.Runtime};function Dt(e,n){return {[W6]:e,[X6]:n.inConfig??e===ut.Playbook,[Y6]:n.sdkInput,[Q6]:n.source??tF[e]}}function sl(e){return {deprecated:true,[eF]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var it=e=>a.object({items:a.array(e)}),Vt=a.object({error:a.string(),code:a.string(),request_id:a.string()}),j=e=>e,ot=a.object({page:a.number().int().min(1).default(1).optional(),per_page:a.number().int().min(1).max(100).default(25).optional(),sort:a.string().optional(),order:a.enum(["asc","desc"]).default("asc").optional(),include_deleted:a.boolean().default(false).optional()});var ip=new Int32Array(2);new Float32Array(ip.buffer);new Float64Array(ip.buffer);new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var op;(function(e){e[e.UTF8_BYTES=1]="UTF8_BYTES",e[e.UTF16_STRING=2]="UTF16_STRING";})(op||(op={}));var rF=4294967295;var iF=rF;function Vx(e){return !e||e.trialActive!==true||e.trialState==="expired"?null:typeof e.trialProgressPercent=="number"&&e.trialProgressPercent>=0?Math.min(100,e.trialProgressPercent):typeof e.trialDaysTotal=="number"&&typeof e.trialDaysRemaining=="number"&&e.trialDaysTotal>0?Math.max(0,e.trialDaysTotal-e.trialDaysRemaining)/e.trialDaysTotal*100:typeof e.trialUsageLimit=="number"&&typeof e.trialUsageConsumed=="number"&&e.trialUsageLimit>0?Math.min(100,Math.max(0,e.trialUsageConsumed/e.trialUsageLimit*100)):null}function Lx(e,n){if(!e)return true;if(!n)return false;switch(e.kind){case "trial_started":{if(n.trialActive!==true)return false;let r=Vx(n);return r===null?false:r<=5}case "trial_progress":return n.trialActive===true&&n.trialState!=="expired"&&n.trialState!=="converted";case "trial_ending":return n.trialActive!==true||n.trialLimitType==="usage"||typeof n.trialDaysRemaining!="number"?false:n.trialDaysRemaining<=e.daysBeforeEnd;case "trial_ended":return n.trialState==="expired";case "trial_converted":return n.trialState==="converted";default:return false}}function gE(e,n){let r=e.filter(s=>s.trialTrigger?.kind==="trial_progress");if(r.length===0)return null;let o=r.filter(s=>s.trialTrigger?.kind!=="trial_progress"?false:n>=s.trialTrigger.progressPercent);if(o.length===0)return null;let t=o[0];for(let s of o.slice(1)){let c=s.trialTrigger.kind==="trial_progress"?s.trialTrigger.progressPercent:-1,l=t.trialTrigger.kind==="trial_progress"?t.trialTrigger.progressPercent:-1;(c>l||c===l&&s.entryOrder<t.entryOrder)&&(t=s);}let i=o.filter(s=>s!==t).map(s=>s.ruleId).filter(s=>typeof s=="string"&&s.length>0);return {winner:t,supersededIds:i}}function hE(e){switch(e.kind){case "trial_started":return {kind:"trial_started"};case "trial_progress":return typeof e.progressPercent=="number"?{kind:"trial_progress",progressPercent:e.progressPercent}:void 0;case "trial_ending":return typeof e.daysBeforeEnd=="number"?{kind:"trial_ending",daysBeforeEnd:e.daysBeforeEnd}:void 0;case "trial_ended":return {kind:"trial_ended"};case "trial_converted":return {kind:"trial_converted"};default:return}}function bE(e){if(!(!e||typeof e.type!="string"))switch(e.type){case "trial_started":return {kind:"trial_started"};case "trial_progress":return typeof e.progress_percent=="number"?{kind:"trial_progress",progressPercent:e.progress_percent}:void 0;case "trial_ending":return typeof e.days_before_end=="number"?{kind:"trial_ending",daysBeforeEnd:e.days_before_end}:void 0;case "trial_ended":return {kind:"trial_ended"};case "trial_converted":return {kind:"trial_converted"};default:return}}function ja(e){let n=Array.isArray(e.payloads)?e.payloads:[],r=new Map((Array.isArray(e.messageBlocks)?e.messageBlocks:[]).map(s=>[s.block_id,s])),o=Array.isArray(e.uiPaths)?e.uiPaths:[],t=Array.isArray(e.promotions)?e.promotions:[],i=Array.isArray(e.tokens)?e.tokens:[];return {listPayloads:s=>n.filter(c=>c.surface_template_id===s),getMessageBlockById:s=>r.get(s),getUiPathById:s=>o.find(c=>c.id===s||c.name===s),getPromotionById:s=>t.find(c=>c.id===s||c.name===s),listPersonalizationTokens:()=>i}}function Ua(e,n){let r={...e};for(let o of n){let t=e[o.token];if(t==null||!o.value_map)continue;let i=String(t),s=o.value_map[i];s!==void 0&&(r[o.token]=s);}return r}function Bx(e,n){let r={current_usage:"usage_current",current_limit:"usage_limit",remaining_usage:"usage_remaining"};return e.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g,(o,t)=>{let i=n[t];if(i===void 0){let s=r[t];s&&(i=n[s]);}return i===void 0?o:String(i)})}function Mx(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=Bx(t,n):r[o]=t;return r}function _E(e,n){return Mx(e,n)}function sp(e,n,r,o,t,i,s){let c=r.filter(f=>f.surface_template_id===e&&f.status==="active");if(c.length===0)return null;let l=new Map(o.map(f=>[f.block_id,f])),d=new Set(n.segmentIds),m=Ua(i,t),p=s?.segmentDimensions;for(let f of c){let g=f.default_message_block_id,h,x=f.ui_path_id,S=f.promotion_id;if(f.segment_content_map){if(p&&Object.keys(p).length>0){let P=new Map;for(let I of f.segment_content_map){let z=I.dimension;if(!z)continue;let X=P.get(z)??[];X.push(I),P.set(z,X);}if(P.size>0){let I=true,z;for(let[,X]of P){let re=X.find(L=>d.has(L.segment_id));if(!re){I=false;break}z||(z=re);}if(I&&z)g=z.message_block_id,h=z.segment_id,z.ui_path_id&&(x=z.ui_path_id),z.promotion_id&&(S=z.promotion_id);else if(!I)continue}else for(let I of f.segment_content_map)if(d.has(I.segment_id)){g=I.message_block_id,h=I.segment_id,I.ui_path_id&&(x=I.ui_path_id),I.promotion_id&&(S=I.promotion_id);break}}else for(let P of f.segment_content_map)if(d.has(P.segment_id)){g=P.message_block_id,h=P.segment_id,P.ui_path_id&&(x=P.ui_path_id),P.promotion_id&&(S=P.promotion_id);break}}let w=l.get(g);if(!w||w.status!=="active")continue;let $={...w.default_content};if(w.segment_overrides){let P=h?w.segment_overrides.find(I=>I.segment_value_id===h):w.segment_overrides.find(I=>d.has(I.segment_value_id));P&&($={...$,...P.content},h=P.segment_value_id);}let E=_E($,m);return {payload:f,messageBlock:w,resolvedContent:E,matchedSegmentId:h,uiPathId:x,promotionId:S}}return null}async function ll(e,n,r,o,t){let s=(await Promise.resolve(r.listPayloads(e))).filter(m=>m.status==="active");if(s.length===0)return null;let c=new Set(n.segmentIds),l=t??(r.listPersonalizationTokens?await Promise.resolve(r.listPersonalizationTokens()):[]),d=Ua(o,l);for(let m of s){let p=m.default_message_block_id,f,g=m.ui_path_id,h=m.promotion_id;if(m.segment_content_map){for(let P of m.segment_content_map)if(c.has(P.segment_id)){p=P.message_block_id,f=P.segment_id,P.ui_path_id&&(g=P.ui_path_id),P.promotion_id&&(h=P.promotion_id);break}}let x=await Promise.resolve(r.getMessageBlockById(p));if(!x||x.status!=="active")continue;let S={...x.default_content};if(x.segment_overrides){let P=f?x.segment_overrides.find(I=>I.segment_value_id===f):x.segment_overrides.find(I=>c.has(I.segment_value_id));P&&(S={...S,...P.content},f=P.segment_value_id);}let w=_E(S,d),$;g&&r.getUiPathById&&($=await Promise.resolve(r.getUiPathById(g)));let E;return h&&r.getPromotionById&&(E=await Promise.resolve(r.getPromotionById(h))),{payload:m,messageBlock:x,resolvedContent:w,matchedSegmentId:f,uiPathId:g,promotionId:h,uiPath:$??void 0,promotion:E??void 0}}return null}function oF(e,n){let r=n.grants;if(!r)return;let o=r.user?.[e]??r.instance?.[e]??r.account?.[e];switch(o?.allocation){case "account_pool":case "per_user_pooled":return r.account?.[e]??o;case "per_instance":return r.instance?.[e]??o;case "per_user":return r.user?.[e]??o;default:return o}}function aF(e,n){let r=oF(e,n);if(r&&typeof r.limit=="number")return {used:typeof r.used=="number"?r.used:0,limit:r.limit};let o=n.usage?.[e];return o&&typeof o.limit=="number"?{used:o.used,limit:o.limit,remaining:o.remaining}:null}function sF(e,n){if(!n)return null;let r=aF(e.entitlementHandle,n);return !r||!Number.isFinite(r.limit)||r.limit<=0?null:e.kind==="credit_threshold"&&typeof r.remaining=="number"?(r.limit-r.remaining)/r.limit*100:Number.isFinite(r.used)?r.used/r.limit*100:null}function uE(e,n){if(!e)return true;let r=sF(e,n);return r===null?false:r>=e.thresholdPercent}var{Unrestricted:le}=ji,{Persisted:ul,Transient:Ai}=Oi,{External:gr,Internal:cF}=zi,vE=Dt(ut.Playbook,{sdkInput:true}),lF=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),uF=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),dF=Dt(ut.Playbook,{inConfig:false,sdkInput:false,source:pr.Runtime}),mF=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]),pF={other_conversion:["none_always_on","overage_vs_upgrade","time_bound"],retention:["payment_failed","payment_at_risk"]};function fF(e){return pF[e]??[]}function gF(e,n){return fF(n).includes(e)}var yE=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),xE=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),hF=a.object({count:a.number().int().positive().meta(le),period:xE.meta(le)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr});a.object({surface_type:a.string().min(1).meta(le),rules:a.array(hF).meta(le),cooldown_ms:a.number().int().nonnegative().optional().meta(le)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":ul,"x-revturbine-schema-exposure":gr,"x-revturbine-data-classification":"operational",...uF});var bF=a.enum(["open_checkout","view_plans","book_demo","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription","switch_billing_period","extend_trial","open_rt_placement","dismiss","snooze","custom"]).meta({id:"CtaPathType","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),za=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true}),name:oi.meta(le),handle:Xt.meta(le),description:Jm.meta(le),category:yE.meta(le),drag_order_in_category:a.number().int().default(0).meta(le),surface_slot_id:a.string().optional().meta(le),entitlement_id:a.string().optional().meta(le),tier_threshold:a.string().optional().meta(le),threshold_percent:$o.optional().meta(le),trial_type:a.enum(["free","reverse"]).optional().meta(le),trigger_type:a.string().optional().meta(le),trial_progress_percent:a.number().min(0).max(100).optional().meta(le),days_before_end:a.number().int().min(0).optional().meta(le),qualifier:mF.optional().meta(le),activation_window_start:a.string().datetime().optional().meta(le),activation_window_end:a.string().datetime().optional().meta(le),metadata:ar.meta(le)}).meta({id:"Placement","x-revturbine-schema-persistence":ul,"x-revturbine-schema-exposure":gr,...vE,...$r()}),_F=vn("PlacementAnchor"),vF=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),yF=a.object({code:vF.meta(le),message:a.string().min(1).meta(le),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(le)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),dE=za.extend({warnings:a.array(yF).optional().meta(le)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),xF=a.object({label:a.string().min(1).max(200).meta(le),cta_path_type:bF.meta(le),config_fields:a.record(a.string(),a.unknown()).default({}).meta(le)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Ai,"x-revturbine-schema-exposure":gr}),cl=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true}),handle:Xt.meta({...le,readOnly:true}),placement_id:a.string().min(1).meta(le),drag_order:a.number().int().default(0).meta(le),target_plan_ids:a.array(a.string()).default([]).meta(le),target_plan_billing_cadences:a.array(a.string()).default([]).meta(le),target_segments:a.array(a.string()).default([]).meta(le),surface_slot_ids:a.array(a.string()).default([]).meta(le),surface_template_id:a.string().min(1).meta(le),content_fields:a.record(a.string(),a.unknown()).default({}).meta(le),cta_list:a.array(xF).default([]).meta(le),max_per_period:a.number().int().min(0).nullable().default(null).meta(le),max_period_unit:xE.default("session").meta(le),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(le),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(le),recommendation_plan_override:a.string().optional().meta(le)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":ul,"x-revturbine-schema-exposure":gr,...vE,...fr()}),SF=vn("PlacementPayloadAnchor");yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...le,readOnly:true}),placement_payload_id:a.string().min(1).meta(le),experiment_id:a.string().min(1).meta(le),variant_name:a.string().min(1).max(200).meta(le),is_control:a.boolean().default(false).meta(le),traffic_allocation_percent:a.number().min(0).max(100).meta(le),override_fields:a.record(a.string(),a.unknown()).default({}).meta(le),status:a.enum(["active","paused","complete"]).default("active").meta(le)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":ul,"x-revturbine-schema-exposure":cF,...lF,...fr()});var IF=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({surface_slot_handle:a.string().min(1).max(200).meta(le),surface_type:Ix.meta(le),surface_template_ids:a.array(a.string()).default([]).meta(le),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(le),first_seen:a.string().datetime().meta({...le,readOnly:true}),last_seen:a.string().datetime().meta({...le,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(le),placement_count:a.number().int().min(0).default(0).meta({...le,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":ul,"x-revturbine-schema-exposure":gr,...dF,...$r("surface_slot_handle")}),PF=Kn(za),kF=Kn(cl);({"/api/placement-anchors":{get:j({operationId:"listPlacementAnchors",requestParams:{query:ot},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:it(_F)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:j({operationId:"listPlacements",requestParams:{query:ot},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:it(za)}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"list"}}}),post:j({operationId:"createPlacement",summary:"Create placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:_n(za)}}},responses:{201:{description:"Created",content:{"application/json":{schema:dE}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"create"}}})},"/api/placements/{placementId}":{get:j({operationId:"getPlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Get placement",tags:["placements"],responses:{200:{description:"Placement detail",content:{"application/json":{schema:za}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"get"}}}),patch:j({operationId:"updatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Update placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:PF}}},responses:{200:{description:"Updated",content:{"application/json":{schema:dE}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"update"}}}),delete:j({operationId:"deletePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Delete placement",tags:["placements"],responses:{204:{description:"Deleted"},default:{description:"Error",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"delete"}}})},"/api/placements/{placementId}/duplicate":{post:j({operationId:"duplicatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Duplicate placement",tags:["placements"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:za}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"duplicate"}}})},"/api/placements/reorder":{post:j({operationId:"reorderPlacements",summary:"Reorder placements within category",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:a.object({category:yE,ids:a.array(a.string())})}}},responses:{200:{description:"Reordered"}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"reorder"}}})},"/api/placement-payload-anchors":{get:j({operationId:"listPlacementPayloadAnchors",requestParams:{query:ot},summary:"List placement payload anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement payload anchor list",content:{"application/json":{schema:it(SF)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-payload-anchors",persistence:{table:"placementPayloads",mode:"list"}}})},"/api/placements/{placementId}/payloads":{get:j({operationId:"listPlacementPayloads",requestParams:{path:a.object({placementId:a.string()}),query:ot},summary:"List placement payloads",tags:["placements"],responses:{200:{description:"Payload list",content:{"application/json":{schema:it(cl)}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"list"}}}),post:j({operationId:"createPlacementPayload",requestParams:{path:a.object({placementId:a.string()})},summary:"Create placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:_n(cl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:cl}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"create"}}})},"/api/placement-payloads/{payloadId}":{patch:j({operationId:"updatePlacementPayload",requestParams:{path:a.object({payloadId:a.string()})},summary:"Update placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:kF}}},responses:{200:{description:"Updated",content:{"application/json":{schema:cl}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"update"}}}),delete:j({operationId:"deletePlacementPayload",requestParams:{path:a.object({payloadId:a.string()})},summary:"Delete placement payload",tags:["placements"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"delete"}}})},"/api/surface-slots":{get:j({operationId:"listSurfaceSlots",requestParams:{query:ot},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:it(IF)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});function mE(e,n,r){if(!e)return true;if(!gF(e.qualifier,n))return false;switch(e.qualifier){case "none_always_on":return true;case "payment_failed":return r?.paymentFailed===true;case "payment_at_risk":return r?.paymentAtRisk===true;default:return true}}function pE(e,n,r){if(!e||!e.tierThreshold)return true;let o=n.get(e.entitlementHandle);if(!o||o.length===0)return false;let t=o.indexOf(e.tierThreshold);if(t<0)return false;let i=r?.tiers?.[e.entitlementHandle];return (i?o.indexOf(i):-1)<t}var SE={modal_overlay:"modal",banner_placement:"banner",in_page_card:"in_page",inline_gate_message:"in_page",usage_counter:"in_page",button:"button",email:"email",full_page:"full_page"};function TF(e,n){return e.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g,(r,o)=>{let t=n[o];return t==null?`{{${o}}}`:String(t)})}function $F(e){let n={};for(let[r,o]of Object.entries(e)){if(typeof o=="string"){n[r]=TF(o,e);continue}n[r]=o;}return n}function IE(e){if(!e?.path)return {type:"dismiss"};let n=e.path,r=e.config??{};return n==="open_checkout"?{type:"open_checkout_modal",plan_handle:typeof r.purchase=="string"?r.purchase:void 0}:n==="view_plans"?{type:"navigate_to_plans"}:n==="snooze_remind_later"?{type:"dismiss"}:n==="open_rt_placement"?{type:"open_rt_placement",placement_handle:typeof r.placement_handle=="string"?r.placement_handle:void 0}:{type:n,...r}}function PE(e,n){if(e==="qualifier"&&!(typeof n!="string"||n.length===0))return {kind:"qualifier",qualifier:n}}function wF(e){if(!e||typeof e!="object")return;let n="type"in e&&typeof e.type=="string"?e.type:void 0,r="qualifier"in e?e.qualifier:void 0;return PE(n,r)}function RF(e){if(e)return PE(e.kind,e.qualifier)}function kE(e,n,r){if(!(e!=="usage_threshold"&&e!=="credit_threshold"&&e!=="seat_threshold")&&!(typeof n!="string"||n.length===0)&&!(typeof r!="number"||!Number.isFinite(r)))return {kind:e,entitlementHandle:n,thresholdPercent:r}}function CF(e,n){if(!e||typeof e!="object")return;let r="type"in e&&typeof e.type=="string"?e.type:void 0,o="threshold_percent"in e?e.threshold_percent:void 0;return kE(r,n,o)}function EF(e,n){if(e)return kE(e.kind,n,e.thresholdPercent)}function TE(e,n,r){if(e!=="entitlement_gate"||typeof n!="string"||n.length===0)return;let o=typeof r=="string"&&r.length>0?r:void 0;return {kind:"entitlement_gate",entitlementHandle:n,tierThreshold:o}}function OF(e,n){if(!e||typeof e!="object")return;let r="type"in e&&typeof e.type=="string"?e.type:void 0,o="tier_threshold"in e?e.tier_threshold:void 0;return TE(r,n,o)}function zF(e,n){if(e)return TE(e.kind,n,e.tierThreshold)}function jF(e){if(!e||typeof e!="object"||!("entitlement_handle"in e))return;let n=e.entitlement_handle;return typeof n=="string"?n:void 0}function UF(e){if(!e||typeof e!="object"||!("slot_id"in e))return;let n=e.slot_id;return typeof n=="string"?n:void 0}function AF(e,n){let r={...SE};for(let c of e.surface_templates??[])r[c.id]=c.surface_type;let o=new Map;for(let c of e.plans??[])o.set(c.unique_handle,c.unique_handle);let t=new Map;for(let c of e.entitlements??[])c.tier_definitions?.length&&t.set(c.unique_handle,c.tier_definitions.map(l=>l.handle));let i=new Map,s=new Map;for(let c of n.placements){let l=c.payloads[0];if(!l)continue;let d=l.surfaces[0];if(!d)continue;let m=d.template_id,p=r[m]??"custom",f={...d.fields};d.ctas?.[0]&&(f.cta_label=d.ctas[0].label),d.ctas?.[1]&&(f.secondary_cta_label=d.ctas[1].label);let g=IE(d.ctas?.[0]),h=Array.isArray(l.target?.plan_ids)?l.target.plan_ids:[],x=jF(c.trigger),S=UF(c.trigger),w=bE(c.trigger),$=CF(c.trigger,x),E=wF(c.trigger),P=OF(c.trigger,x),I={output_id:l.id,category:c.category,surface:{template:m,type:p,slot_id:c.id},content:{...f,__target_plan_ids:h,...x?{__trigger_entitlement_handle:x}:{},...w?{__trigger_kind:w.kind}:{}},cta_path:g,rule_id:c.id,decision_id:l.id,config_version:e.version,present_upsell:true},z=i.get(m)??[];z.push({output:I,entryOrder:c.order??0,entryCategory:c.category,triggerEntitlementHandle:x,triggerSlotId:S,trialTrigger:w,thresholdTrigger:$,qualifierTrigger:E,entitlementGateTrigger:P}),i.set(m,z);let X=c.id.replace(/^pl_/,"");s.set(X,I),s.set(c.id,I);}for(let c of i.values())c.sort((l,d)=>l.entryOrder-d.entryOrder);return {outputsByTemplate:i,outputsByName:s,planHandleToId:o,tierLaddersByHandle:t}}function DF(e,n){let r=n.trigger;if(r.kind==="entitlement_gate"||r.kind==="usage_threshold"||r.kind==="credit_threshold"||r.kind==="seat_threshold")return e.getEntitlement(r.entitlementIdx)?.uniqueHandle}function FF(e,n){return n.trigger.kind!=="surface_render"?void 0:e.getSlot(n.trigger.slotIdx)?.sourceId}function NF(e){let n={...SE};for(let c=0;c<e.surfaceTemplatesLength();c++){let l=e.getSurfaceTemplate(c);l&&(n[l.sourceId]=l.surfaceType);}let r=new Map;for(let c=0;c<e.plansLength();c++){let l=e.getPlan(c);l&&r.set(l.uniqueHandle,l.sourceId);}let o=new Map;for(let c=0;c<e.entitlementsLength();c++){let l=e.getEntitlement(c);l&&l.tierHandles.length>0&&o.set(l.uniqueHandle,l.tierHandles);}let t=new Map,i=new Map,s=e.header().configVersion;for(let c=0;c<e.placementsLength();c++){let l=e.getPlacement(c);if(!l)continue;let d=l.payloads[0];if(!d)continue;let m=d.surfaces[0];if(!m)continue;let p=m.templateSourceId,f=n[p]??"custom",g={...m.fields};m.ctas[0]&&(g.cta_label=m.ctas[0].label),m.ctas[1]&&(g.secondary_cta_label=m.ctas[1].label);let h=IE(m.ctas[0]),x=[];for(let L of d.target.planIdxs){let H=e.getPlan(L);H&&x.push(H.sourceId);}let S=DF(e,l),w=FF(e,l),$=hE(l.trigger),E=EF(l.trigger,S),P=RF(l.trigger),I=zF(l.trigger,S),z={output_id:d.sourceId,category:l.category,surface:{template:p,type:f,slot_id:l.sourceId},content:{...g,__target_plan_ids:x,...S?{__trigger_entitlement_handle:S}:{},...$?{__trigger_kind:$.kind}:{}},cta_path:h,rule_id:l.sourceId,decision_id:d.sourceId,config_version:s,present_upsell:true},X=t.get(p)??[];X.push({output:z,entryOrder:l.order,entryCategory:l.category,triggerEntitlementHandle:S,triggerSlotId:w,trialTrigger:$,thresholdTrigger:E,qualifierTrigger:P,entitlementGateTrigger:I}),t.set(p,X);let re=l.sourceId.replace(/^pl_/,"");i.set(re,z),i.set(l.sourceId,z);}for(let c of t.values())c.sort((l,d)=>l.entryOrder-d.entryOrder);return {outputsByTemplate:t,outputsByName:i,planHandleToId:r,tierLaddersByHandle:o}}function LF(e,n){let r=e.message_blocks,o=e.placement_payloads;if(!r?.length||!o?.length)return;let t=new Map;for(let s of n.placements){let c=s.payloads[0]?.surfaces?.[0]?.template_id;c&&t.set(s.id,c);}let i=[];for(let s of o){let c=s.content_link?.message_block_id;if(!c)continue;let l=t.get(s.placement_id);l&&i.push({payload_id:s.payload_id,tenant_id:"",name:s.payload_id,surface_template_id:l,default_message_block_id:c,ui_path_id:s.content_link?.ui_path_id,promotion_id:s.content_link?.promotion_id,status:"active"});}if(i.length!==0)return ja({payloads:i,messageBlocks:r,uiPaths:e.content_ui_paths,promotions:e.content_promotions,tokens:e.personalization_tokens})}function VF(e){let n=e.messageBlocksLength(),r=e.placementPayloadsLength();if(n===0||r===0)return;let o=new Map;for(let c=0;c<e.placementsLength();c++){let l=e.getPlacement(c);if(!l)continue;let d=l.payloads[0]?.surfaces?.[0]?.templateSourceId;d&&o.set(l.sourceId,d);}let t=[],i=new Map;for(let c=0;c<n;c++){let l=e.getMessageBlock(c);l&&(t.push(l),i.set(c,l.block_id));}let s=[];for(let c=0;c<r;c++){let l=e.getPlacementPayload(c);if(!l||l.messageBlockIdx===iF)continue;let d=i.get(l.messageBlockIdx);if(!d)continue;let m=o.get(l.placementSourceId);m&&s.push({payload_id:l.sourceId,tenant_id:"",name:l.sourceId,surface_template_id:m,default_message_block_id:d,status:"active"});}if(s.length!==0)return ja({payloads:s,messageBlocks:t})}function $E(e){let{source:n,impressionHistory:r}=e,{outputsByTemplate:o,outputsByName:t,planHandleToId:i,tierLaddersByHandle:s}=n.format==="flatbuffer"?NF(n.handle):AF(n.exportedConfig,n.placements),c=n.format==="json"?LF(n.exportedConfig,n.placements):VF(n.handle);function l(d,m,p,f){let g=Array.isArray(d.content.__target_plan_ids)?d.content.__target_plan_ids.filter(x=>typeof x=="string"):[],h=Array.isArray(d.content.__target_billing_periods)?d.content.__target_billing_periods.filter(x=>typeof x=="string"):[];return Nx({target_plan_ids:g,target_billing_periods:h,category:d.category},{currentPlanId:m,planHandle:p,billingPeriod:f}).eligible}return async(d,m,p)=>{let f=p?.__providers,g=f?.plan?.currentPlanHandle,h=f?.plan?.billingPeriod,x=g?i.get(g):void 0,S=fe=>typeof fe=="string"?fe:"",w=Array.isArray(m?.metadata?.surface_template_ids)?m.metadata.surface_template_ids:void 0,$,E=[];if(w&&w.length>0){let fe=[];for(let ve of w){let kt=o.get(ve);kt&&fe.push(...kt);}if(fe.length===0)return fE(d,"no_candidates_for_template","No placements configured for this surface template");fe.sort((ve,kt)=>ve.entryOrder-kt.entryOrder);let ie=m?.metadata?.entitlement_handle,ze=m?.metadata?.surface_slot_category,Qe=ze?{gated:["gated"],fixed:["fixed"],triggered:["usage_credit_seat","trials","other_conversion","retention"]}[ze]:void 0,he=fe;if(ie){let ve=fe.filter(kt=>kt.triggerEntitlementHandle===ie);ve.length>0&&(he=ve);}let rt=m?.metadata?.surface_slot_id;if(rt){let ve=he.filter(kt=>kt.triggerSlotId===rt);ve.length>0&&(he=ve);}if(Qe&&ze!=="fixed"&&he.length>1){let ve=he.filter(kt=>Qe.includes(kt.entryCategory));ve.length>0&&(he=ve);}r&&(he=he.filter(ve=>!r.isHiddenSync(ve.output.rule_id??""))),he=he.filter(ve=>Lx(ve.trialTrigger,f?.plan)),he=he.filter(ve=>uE(ve.thresholdTrigger,f?.entitlements)),he=he.filter(ve=>mE(ve.qualifierTrigger,ve.entryCategory,f?.plan)),he=he.filter(ve=>pE(ve.entitlementGateTrigger,s,f?.entitlements));let rn,K=[],G=Vx(f?.plan);if(G!==null&&he.length>1){let ve=he.map(un=>({ruleId:un.output.rule_id??void 0,entryOrder:un.entryOrder,trialTrigger:un.trialTrigger,output:un.output})),kt=gE(ve,G);if(kt){rn=kt.winner,K=kt.supersededIds;let un=kt.winner.ruleId;he=he.filter(ad=>ad.trialTrigger?.kind!=="trial_progress"||(ad.output.rule_id??void 0)===un);}}let ge;for(let ve of he)if(l(ve.output,x,g,h)){$=ve.output,ge=ve;break}ge&&rn&&rn.ruleId===(ge.output.rule_id??void 0)&&K.length>0&&($={...$,content:{...$.content,__superseded_placement_ids:K}}),$||(E=["no_eligible_candidate"]);}else {let fe=m?.name,ie=(fe?t.get(fe):void 0)??t.get(d.placementId),ze;if(ie)for(let At of o.values()){let Qe=At.find(he=>he.output===ie);if(Qe){ze=Qe;break}}ie&&r?.isHiddenSync(ie.rule_id??"")?E=["placement_retired"]:ie&&!Lx(ze?.trialTrigger,f?.plan)?E=["trial_trigger_unmet"]:ie&&!uE(ze?.thresholdTrigger,f?.entitlements)?E=["threshold_trigger_unmet"]:ie&&!mE(ze?.qualifierTrigger,ze?.entryCategory??ie.category,f?.plan)?E=["qualifier_trigger_unmet"]:ie&&!pE(ze?.entitlementGateTrigger,s,f?.entitlements)?E=["entitlement_gate_unmet"]:ie&&l(ie,x,g,h)?$=ie:ie?E=["plan_target_mismatch"]:E=["placement_not_found"];}if(!$){let fe=E[0]??"placement_not_found";return fE(d,fe,"Placement not configured")}let P=$.content,I=$.surface.template;if(c&&I){let fe={userId:typeof d.userId=="string"?d.userId:"",segmentIds:f?.segments?.segmentIds??[]},ie=await ll(I,fe,c,{});ie&&(P={...$.content,...ie.resolvedContent});}let z={...P},X=typeof z.entitlement=="string"?z.entitlement:typeof z.__trigger_entitlement_handle=="string"?z.__trigger_entitlement_handle:void 0,re=X?f?.entitlements?.usage?.[X]:void 0;if(re){z.usage_remaining=Number.isFinite(re.remaining)?re.remaining:0,z.usage_limit=Number.isFinite(re.limit)?re.limit:0,z.usage_current=Number.isFinite(re.used)?re.used:0,z.usage_percent=re.limit>0?Math.min(100,Math.round(re.used/re.limit*100)):0;let fe=re.reset_date;typeof fe=="string"&&fe.length>0&&(z.reset_date=fe);}let L=$F(z),H={...$,content:L},me=!(($.category==="upsell"||$.category==="trial_conversion")&&g==="enterprise");return {placementId:d.placementId,requestId:`local_${Date.now()}`,visible:me,decisionSource:"fallback",reasonCodes:me?[]:["plan_tier_suppressed"],content:{header:S(H.content.header),body:S(H.content.body),cta_label:S(H.content.cta_label),title:S(H.content.header),cta:S(H.content.cta_label)},output:H}}}function fE(e,n,r){return {placementId:e.placementId,requestId:`local_${Date.now()}`,visible:false,decisionSource:"fallback",reasonCodes:[n],content:{header:r,body:"",cta_label:"",title:r,cta:""}}}function wo(e){return $E({source:{format:"json",exportedConfig:e.exportedConfig,placements:e.placements},impressionHistory:e.impressionHistory})}var wE=a.enum(["session","day","week","month"]),RE=a.object({kind:a.enum(["template","slot"]),id:a.string(),label:a.string().optional()});a.object({id:a.string(),group:a.array(RE),cap:a.object({count:a.number().int().min(1),period:wE})});var EE=a.enum(["trial_started","trial_ending","trial_ended","trial_converted"]);a.object({stages:a.array(EE).default([]),days_before_end:a.number().int().min(0).max(365).nullable().default(null),trial_type:a.enum(["free","reverse"]).nullable().default(null)});a.object({threshold_percent:a.number().int().min(0).max(100),trial_type:a.enum(["free","reverse"]).nullable().default(null)});var {Unrestricted:ae}=ji,{Persisted:Jx,Transient:Jn}=Oi,{Internal:jE,External:On}=zi,UE=Dt(ut.Playbook,{sdkInput:true}),qF=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),AE=a.enum(["per_month","per_year","per_billing_period","lifetime","concurrent","per_instance","per_second","per_minute","per_hour","per_6_hours","per_day","per_week"]).meta({id:"UsagePeriodScope","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),up=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),HF=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),KF=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),DE=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),Zx=a.object({entitlement_id:a.string().min(1).meta(ae),entitlement_handle:a.string().min(1).meta(ae),status:HF.meta(ae),limit:a.number().optional().meta(ae),used:a.number().optional().meta(ae),allocation:up.optional().meta(ae),enforcement:DE.optional().meta(ae),source:KF.optional().meta(ae),plan_id:a.string().optional().meta(ae),segment_id:a.string().optional().meta(ae),seat_type_id:a.string().optional().meta(ae),rule_id:a.string().optional().meta(ae)}).meta({id:"EntitlementGrant","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),Zx).optional().meta(ae),instance:a.record(a.string(),Zx).optional().meta(ae),user:a.record(a.string(),Zx).optional().meta(ae)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On,"x-revturbine-data-classification":"operational"});var GF=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),JF=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),FE=a.object({kind:JF.meta(ae),id:a.string().min(1).meta(ae)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),WF=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),La=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ae,readOnly:true}),name:oi.meta(ae),handle:Xt.meta(ae),customer_facing_description:a.string().max(500).optional().meta(ae),type:Gm.meta(ae),unit:a.string().max(100).optional().meta(ae),period_scope:AE.optional().meta(ae),allocation:up.optional().meta(ae),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(ae),sort_order:a.number().int().default(0).meta(ae),metadata:ar.meta(ae)}).meta({id:"Entitlement","x-revturbine-schema-persistence":Jx,"x-revturbine-schema-exposure":On,...UE,...$r()}),XF=vn("EntitlementAnchor"),Ka=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ae,readOnly:true}),handle:Xt.meta({...ae,readOnly:true}),entitlement_id:a.string().min(1).meta(ae),targets:a.array(FE).min(1).meta(ae),segment_ids:a.array(a.string()).default([]).meta(ae),visibility:GF.default("public").meta(ae),period_scope:AE.optional().meta(ae),instance:a.string().max(100).optional().meta(ae),reset_period:WF.optional().meta(ae),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(ae),enforcement:DE.optional().meta(ae),warning_threshold_percent:$o.optional().meta(ae),overage_price_ref:a.string().optional().meta(ae),grace_period_hours:a.number().int().min(0).optional().meta(ae),tier_value:a.string().optional().meta(ae),rate_value:a.number().optional().meta(ae),initial_grant:a.number().optional().meta(ae),allowance_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(ae),rollover_enabled:a.boolean().optional().meta(ae),max_balance:a.union([a.number(),a.literal("unlimited")]).nullable().default(null).meta(ae),seat_type_id:a.string().optional().meta(ae),included_count:a.union([a.number().int(),a.literal("unlimited")]).optional().meta(ae),at_limit_behavior:a.enum(["hard_cap","auto_upgrade_at_renewal"]).optional().meta(ae),stripe_metered_price_id:a.string().optional().meta(ae),enabled:a.boolean().optional().meta(ae),allocation:up.optional().meta(ae),max_seats:a.union([a.number(),a.literal("unlimited")]).nullable().optional().meta(ae),amount_cents:a.number().int().optional().meta(ae),currency:a.string().optional().meta(ae)}).meta({id:"EntitlementRule","x-revturbine-schema-persistence":Jx,"x-revturbine-schema-exposure":jE,...UE,...fr()}),YF=vn("EntitlementRuleAnchor");Ka.superRefine((e,n)=>{e.reset_period==="billing_period"&&e.targets.findIndex(o=>o.kind!=="plan_variation"&&o.kind!=="addon_variation")!==-1&&n.addIssue({code:"custom",path:["reset_period"],params:{code:"billing_period_target_mismatch"},message:"reset_period='billing_period' requires all targets to be plan_variation or addon_variation"});});var QF=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),eN=a.object({code:QF.meta(ae),message:a.string().min(1).meta(ae),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(ae)}).meta({id:"EntitlementRuleWarning","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),qx=Ka.extend({warnings:a.array(eN).optional().meta(ae)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":Jn,"x-revturbine-schema-exposure":On}),Hx=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...ae,readOnly:true}),rule_id:a.string().min(1).meta(ae),experiment_id:a.string().min(1).meta(ae),variant_name:a.string().min(1).max(200).meta(ae),is_control:a.boolean().default(false).meta(ae),override_fields:a.record(a.string(),a.unknown()).default({}).meta(ae)}).meta({id:"EntitlementRuleVariant","x-revturbine-schema-persistence":Jx,"x-revturbine-schema-exposure":jE,...qF,...fr()}),tN=Kn(La),nN=Kn(Ka);({"/api/entitlement-anchors":{get:j({operationId:"listEntitlementAnchors",requestParams:{query:ot},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:it(XF)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:j({operationId:"listEntitlementRuleAnchors",requestParams:{query:ot},summary:"List entitlement rule anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement rule anchor list",content:{"application/json":{schema:it(YF)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:j({operationId:"listEntitlements",requestParams:{query:ot},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:it(La)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"list"}}}),post:j({operationId:"createEntitlement",summary:"Create entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:_n(La)}}},responses:{201:{description:"Created",content:{"application/json":{schema:La}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"create"}}})},"/api/entitlements/{entitlementId}":{get:j({operationId:"getEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Get entitlement",tags:["entitlements"],responses:{200:{description:"Entitlement detail",content:{"application/json":{schema:La}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"get"}}}),patch:j({operationId:"updateEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Update entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:tN}}},responses:{200:{description:"Updated",content:{"application/json":{schema:La}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"update"}}}),delete:j({operationId:"deleteEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Delete entitlement",tags:["entitlements"],responses:{204:{description:"Deleted"},default:{description:"Error",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"delete"}}})},"/api/entitlements/{entitlementId}/rules":{get:j({operationId:"listEntitlementRules",requestParams:{path:a.object({entitlementId:a.string()}),query:ot},summary:"List rules for entitlement",tags:["entitlements"],responses:{200:{description:"Rule list",content:{"application/json":{schema:it(Ka)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"list"}}}),post:j({operationId:"createEntitlementRule",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Create entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:_n(Ka)}}},responses:{201:{description:"Created",content:{"application/json":{schema:qx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"create"}}})},"/api/entitlement-rules/{ruleId}":{patch:j({operationId:"updateEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:nN}}},responses:{200:{description:"Updated",content:{"application/json":{schema:qx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"update"}}}),delete:j({operationId:"deleteEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete entitlement rule",tags:["entitlements"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"delete"}}})},"/api/entitlement-rules/{ruleId}/duplicate":{post:j({operationId:"duplicateEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Duplicate entitlement rule",tags:["entitlements"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:qx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"duplicate"}}})},"/api/entitlement-rules/{ruleId}/variants":{get:j({operationId:"listEntitlementRuleVariants",requestParams:{path:a.object({ruleId:a.string()}),query:ot},summary:"List A/B variants for rule",tags:["entitlements"],responses:{200:{description:"Variant list",content:{"application/json":{schema:it(Hx)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"list"}}}),post:j({operationId:"createEntitlementRuleVariant",requestParams:{path:a.object({ruleId:a.string()})},summary:"Create rule A/B variant",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:_n(Hx)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Hx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:ye}=ji,{Persisted:bl,Transient:_l}=Oi,{Internal:qr}=zi,NE=Dt(ut.Playbook,{sdkInput:true}),LE=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),rN=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":_l,"x-revturbine-schema-exposure":qr}),Wx=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":_l,"x-revturbine-schema-exposure":qr}),VE=a.object({name:oi.meta(ye),handle:Xt.meta(ye),plan_id:a.string().nullable().optional().meta(ye),segment_id:a.string().nullable().optional().meta(ye),trial_limit_type:Wx.default("time").meta(ye),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ye),grace_period_days:a.number().int().min(0).default(0).meta(ye),usage_entitlement_handle:a.string().min(1).optional().meta(ye),usage_limit_value:a.number().int().min(1).optional().meta(ye),require_payment_method:a.boolean().default(false).meta(ye),auto_convert:a.boolean().default(true).meta(ye),convert_to_plan_id:a.string().optional().meta(ye),fallback_plan_id:a.string().optional().meta(ye),limit_per_customer:a.number().int().min(1).default(1).meta(ye),is_active:a.boolean().default(true).meta(ye),metadata:ar.meta(ye)}),Aa=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true})}).merge(VE).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":qr,...NE,...$r()}),iN=vn("FreeTrialRuleAnchor"),oN=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":_l,"x-revturbine-schema-exposure":qr}),BE=a.object({name:oi.meta(ye),handle:Xt.meta(ye),premium_plan_id:a.string().min(1).meta(ye),fallback_plan_id:a.string().min(1).meta(ye),segment_id:a.string().nullable().optional().meta(ye),trial_limit_type:Wx.default("time").meta(ye),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ye),usage_entitlement_handle:a.string().min(1).optional().meta(ye),usage_limit_value:a.number().int().min(1).optional().meta(ye),start_policy:oN.default("signup").meta(ye),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(ye),entitlements_during_trial:a.array(a.string()).default([]).meta(ye),is_active:a.boolean().default(true).meta(ye),metadata:ar.meta(ye)}),Da=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true})}).merge(BE).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":qr,...NE,...$r()}),aN=vn("ReverseTrialRuleAnchor"),ME=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":_l,"x-revturbine-schema-exposure":qr}),ZE=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":_l,"x-revturbine-schema-exposure":qr}),Fa=yt.merge(wt).merge(Rt).extend({trial_limit_policy:ME.default("1_per_lifetime").meta(ye),eligibility_scope:ZE.default("per_customer").meta(ye)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":qr,...LE}),Na=yt.merge(wt).merge(Rt).extend({trial_limit_policy:ME.default("1_per_lifetime").meta(ye),eligibility_scope:ZE.default("per_customer").meta(ye)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":qr,...LE}),cp=yt.merge(wt).merge(Rt).extend({customer_id:a.string().min(1).meta(ye),rule_id:a.string().min(1).meta(ye),rule_type:a.enum(["free_trial","reverse_trial"]).meta(ye),plan_id:a.string().min(1).meta(ye),status:rN.default("active").meta(ye),started_at:a.string().datetime().meta({...ye,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(ye),trial_limit_type:Wx.default("time").meta(ye),usage_entitlement_handle:a.string().min(1).optional().meta(ye),usage_limit_value:a.number().int().min(1).optional().meta(ye),converted_at:Wm.meta(ye),cancelled_at:Wm.meta(ye),metadata:ar.meta(ye)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":qr});({"/api/free-trial-rule-anchors":{get:j({operationId:"listFreeTrialRuleAnchors",requestParams:{query:ot},summary:"List free trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Free trial rule anchor list",content:{"application/json":{schema:it(iN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-rule-anchors",persistence:{table:"freeTrialRules",mode:"list"}}})},"/api/trials/free-rules":{get:j({operationId:"listFreeTrialRules",requestParams:{query:ot},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:it(Aa)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"list"}}})},"/api/trials/free-rules/{ruleId}":{get:j({operationId:"getFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Get free trial rule",tags:["trials"],responses:{200:{description:"Free trial rule",content:{"application/json":{schema:Aa}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"get"}}}),patch:j({operationId:"updateFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update free trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Aa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Aa}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"update"}}}),delete:j({operationId:"deleteFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete free trial rule",tags:["trials"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"delete"}}})},"/api/reverse-trial-rule-anchors":{get:j({operationId:"listReverseTrialRuleAnchors",requestParams:{query:ot},summary:"List reverse trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Reverse trial rule anchor list",content:{"application/json":{schema:it(aN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rule-anchors",persistence:{table:"reverseTrialRules",mode:"list"}}})},"/api/trials/reverse-rules":{get:j({operationId:"listReverseTrialRules",requestParams:{query:ot},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:it(Da)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"list"}}})},"/api/trials/reverse-rules/{ruleId}":{get:j({operationId:"getReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Get reverse trial rule",tags:["trials"],responses:{200:{description:"Reverse trial rule",content:{"application/json":{schema:Da}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"get"}}}),patch:j({operationId:"updateReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update reverse trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Da.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Da}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"update"}}}),delete:j({operationId:"deleteReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete reverse trial rule",tags:["trials"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"delete"}}})},"/api/trials/free-settings":{get:j({operationId:"listFreeTrialSettings",requestParams:{query:ot},summary:"List free trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Free trial settings list",content:{"application/json":{schema:it(Fa)}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"list"}}})},"/api/trials/free-settings/{settingsId}":{get:j({operationId:"getFreeTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Get free trial settings",tags:["trials"],responses:{200:{description:"Free trial settings",content:{"application/json":{schema:Fa}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"get"}}}),patch:j({operationId:"updateFreeTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update free trial settings",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Fa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Fa}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"update"}}})},"/api/trials/reverse-settings":{get:j({operationId:"listReverseTrialSettings",requestParams:{query:ot},summary:"List reverse trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Reverse trial settings list",content:{"application/json":{schema:it(Na)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"list"}}})},"/api/trials/reverse-settings/{settingsId}":{get:j({operationId:"getReverseTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Get reverse trial settings",tags:["trials"],responses:{200:{description:"Reverse trial settings",content:{"application/json":{schema:Na}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"get"}}}),patch:j({operationId:"updateReverseTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update reverse trial settings",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Na.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Na}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:j({operationId:"listTrialInstances",requestParams:{query:ot},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:it(cp)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"list"}}})},"/api/trials/instances/{instanceId}":{get:j({operationId:"getTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Get trial instance",tags:["trials"],responses:{200:{description:"Trial instance",content:{"application/json":{schema:cp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"get"}}})},"/api/trials/instances/{instanceId}/cancel":{post:j({operationId:"cancelTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Cancel an active trial",tags:["trials"],responses:{200:{description:"Cancelled",content:{"application/json":{schema:cp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})},"/api/trials/instances/{instanceId}/convert":{post:j({operationId:"convertTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Convert trial to paid subscription",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:a.object({plan_id:a.string().optional()})}}},responses:{200:{description:"Converted",content:{"application/json":{schema:cp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:Je,Financial:lp}=ji,{Persisted:vl,Transient:dp}=Oi,{External:ai}=zi,sN=Dt(ut.Playbook,{sdkInput:true}),cN=Dt(ut.Playbook,{sdkInput:false}),Xx=Dt(ut.Billing,{sdkInput:false}),Ni=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":dp,"x-revturbine-schema-exposure":ai}),yl=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":dp,"x-revturbine-schema-exposure":ai}),mp=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":dp,"x-revturbine-schema-exposure":ai}),Va=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...Je,readOnly:true}),name:oi.meta(Je),handle:Xt.meta(Je),tier_position:a.number().int().min(0).default(0).meta(Je),sort_order:a.number().int().default(0).meta(Je),visibility:Ni.default("public").meta(Je),metadata:ar.meta(Je)}).meta({id:"Plan","x-revturbine-schema-persistence":vl,"x-revturbine-schema-exposure":ai,...sN,...$r()}),lN=vn("PlanAnchor"),Ba=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...Je,readOnly:true}),handle:Xt.meta({...Je,readOnly:true}),plan_id:a.string().min(1).meta(Je),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(Je),segment_id:a.string().nullable().default(null).meta(Je),price_amount:a.number().min(0).meta(lp),pricing_model:yl.meta(Je),visibility:Ni.default("public").meta(Je),stripe_price_id:a.string().optional().meta(Je),price_source:mp.default("static").meta(Je)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":vl,"x-revturbine-schema-exposure":ai,...Xx,...fr()}),uN=vn("PlanVariationAnchor"),Ma=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...Je,readOnly:true}),name:oi.meta(Je),handle:Xt.meta(Je),sort_order:a.number().int().default(0).meta(Je),visibility:Ni.default("public").meta(Je),metadata:ar.meta(Je)}).meta({id:"AddOn","x-revturbine-schema-persistence":vl,"x-revturbine-schema-exposure":ai,...cN,...$r()}),dN=vn("AddOnAnchor"),Za=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...Je,readOnly:true}),handle:Xt.meta({...Je,readOnly:true}),addon_id:a.string().min(1).meta(Je),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(Je),segment_id:a.string().nullable().default(null).meta(Je),price_amount:a.number().min(0).meta(lp),pricing_model:yl.meta(Je),visibility:Ni.default("public").meta(Je),stripe_price_id:a.string().optional().meta(Je),price_source:mp.default("static").meta(Je)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":vl,"x-revturbine-schema-exposure":ai,...Xx,...fr()}),mN=vn("AddOnVariationAnchor"),pN=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":dp,"x-revturbine-schema-exposure":ai}),qa=yt.merge(wt).merge(Rt).extend({stripe_price_id:a.string().min(1).meta(Je),stripe_product_id:a.string().min(1).meta(Je),billing_period:pN.meta(Je),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(lp),currency:MC.meta(lp),pricing_model:yl.meta(Je),nickname:a.string().nullable().default(null).meta(Je),is_mock:a.boolean().default(false).meta(Je),last_updated_from_stripe:Wm.meta(Je)}).meta({id:"StripePrice","x-revturbine-schema-persistence":vl,"x-revturbine-schema-exposure":ai,...Xx}),fN=Kn(Va),gN=Kn(Ba),hN=Kn(Ma),bN=Kn(Za),_N=Kn(qa);({"/api/plan-anchors":{get:j({operationId:"listPlanAnchors",requestParams:{query:ot},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:it(lN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:j({operationId:"listPlans",requestParams:{query:ot},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:it(Va)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"list"}}}),post:j({operationId:"createPlan",summary:"Create plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_n(Va)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:Va}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"create"}}})},"/api/plans/{planId}":{get:j({operationId:"getPlan",requestParams:{path:a.object({planId:a.string()})},summary:"Get plan by ID",tags:["plans"],responses:{200:{description:"Plan detail",content:{"application/json":{schema:Va}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"get"}}}),patch:j({operationId:"updatePlan",requestParams:{path:a.object({planId:a.string()})},summary:"Update plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:fN}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:Va}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"update"}}}),delete:j({operationId:"deletePlan",requestParams:{path:a.object({planId:a.string()})},summary:"Delete plan",tags:["plans"],responses:{204:{description:"Plan deleted"},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"delete"}}})},"/api/plans/reorder":{post:j({operationId:"reorderPlans",summary:"Reorder plans",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:a.object({ids:a.array(a.string())})}}},responses:{200:{description:"Reordered"}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"reorder"}}})},"/api/plan-variation-anchors":{get:j({operationId:"listPlanVariationAnchors",requestParams:{query:ot},summary:"List plan variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan variation anchor list",content:{"application/json":{schema:it(uN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-variation-anchors",persistence:{table:"planVariations",mode:"list"}}})},"/api/plans/{planId}/variations":{get:j({operationId:"listPlanVariations",requestParams:{path:a.object({planId:a.string()}),query:ot},summary:"List plan variations",tags:["plans"],responses:{200:{description:"Plan variations",content:{"application/json":{schema:it(Ba)}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"list"}}}),post:j({operationId:"createPlanVariation",requestParams:{path:a.object({planId:a.string()})},summary:"Create plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_n(Ba)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:Ba}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"create"}}})},"/api/plan-variations/{variationId}":{get:j({operationId:"getPlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Get plan variation by ID",tags:["plans"],responses:{200:{description:"Plan variation detail",content:{"application/json":{schema:Ba}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"get"}}}),patch:j({operationId:"updatePlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:gN}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:Ba}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"update"}}}),delete:j({operationId:"deletePlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Delete plan variation",tags:["plans"],responses:{204:{description:"Plan variation deleted"}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"delete"}}})},"/api/addon-anchors":{get:j({operationId:"listAddOnAnchors",requestParams:{query:ot},summary:"List add-on anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on anchor list",content:{"application/json":{schema:it(dN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:j({operationId:"listAddOns",requestParams:{query:ot},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:it(Ma)}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"list"}}}),post:j({operationId:"createAddOn",summary:"Create add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_n(Ma)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:Ma}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"create"}}})},"/api/addons/{addonId}":{get:j({operationId:"getAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Get add-on by ID",tags:["plans"],responses:{200:{description:"Add-on detail",content:{"application/json":{schema:Ma}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"get"}}}),patch:j({operationId:"updateAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Update add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:hN}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:Ma}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"update"}}}),delete:j({operationId:"deleteAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Delete add-on",tags:["plans"],responses:{204:{description:"Add-on deleted"}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"delete"}}})},"/api/addon-variation-anchors":{get:j({operationId:"listAddOnVariationAnchors",requestParams:{query:ot},summary:"List add-on variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on variation anchor list",content:{"application/json":{schema:it(mN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-variation-anchors",persistence:{table:"addonVariations",mode:"list"}}})},"/api/addons/{addonId}/variations":{get:j({operationId:"listAddOnVariations",requestParams:{path:a.object({addonId:a.string()}),query:ot},summary:"List add-on variations",tags:["plans"],responses:{200:{description:"Add-on variations",content:{"application/json":{schema:it(Za)}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"list"}}}),post:j({operationId:"createAddOnVariation",requestParams:{path:a.object({addonId:a.string()})},summary:"Create add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_n(Za)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:Za}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"create"}}})},"/api/addon-variations/{variationId}":{get:j({operationId:"getAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Get add-on variation by ID",tags:["plans"],responses:{200:{description:"Add-on variation detail",content:{"application/json":{schema:Za}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"get"}}}),patch:j({operationId:"updateAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:bN}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:Za}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"update"}}}),delete:j({operationId:"deleteAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Delete add-on variation",tags:["plans"],responses:{204:{description:"Variation deleted"}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"delete"}}})},"/api/stripe-prices":{get:j({operationId:"listStripePrices",requestParams:{query:ot},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:it(qa)}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"list"}}}),post:j({operationId:"createStripePrice",summary:"Create Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_n(qa)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:qa}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"create"}}})},"/api/stripe-prices/{id}":{get:j({operationId:"getStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Get Stripe price by ID",tags:["plans"],responses:{200:{description:"Stripe price detail",content:{"application/json":{schema:qa}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"get"}}}),patch:j({operationId:"updateStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Update Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:_N}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:qa}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"update"}}}),delete:j({operationId:"deleteStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Delete Stripe price",tags:["plans"],responses:{204:{description:"Stripe price deleted"}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"delete"}}})}});var {Unrestricted:b}=ji,{Persisted:Ga,Transient:ke}=Oi,{Internal:hr,External:Ne}=zi,Ue=Dt(ut.Playbook,{sdkInput:true}),Ha=Dt(ut.Playbook,{sdkInput:false}),Fi=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),qE=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),Di=Dt(ut.Playbook,{inConfig:false,sdkInput:true,source:pr.CodeConstant}),gl=Dt(ut.Playbook,{inConfig:false,sdkInput:true,source:pr.Runtime}),hl=Dt(ut.Playbook,{inConfig:false,sdkInput:false,source:pr.Runtime}),vN=Dt(ut.Billing,{sdkInput:false}),yN=Dt(ut.Metering,{sdkInput:false}),xN=Dt(ut.Branding,{inConfig:true,sdkInput:true}),SN=Dt(ut.Branding,{sdkInput:false}),IN="1.0.0",dl=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),name:oi.meta(b),handle:Xt.meta(b),description:Jm.meta(b),is_default:a.boolean().default(false).meta(b),entitlement_ids:a.array(a.string()).default([]).meta(b),metadata:ar.meta(b)}).meta({id:"SeatType","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...Fi,...$r()}),PN=vn("SeatTypeAnchor"),ml=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Xt.meta(b),label:a.string().min(1).meta(b),description:a.string().nullable().default(null).meta(b),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(b),data_source:a.string().nullable().default(null).meta(b),example_value:a.string().nullable().default(null).meta(b),value_map:a.record(a.string(),a.string()).default({}).meta(b),format:a.enum(["string","number","currency","percentage","date"]).nullable().default(null).meta(b),metadata:ar.meta(b)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...Fi,...$r()}),kN=vn("PersonalizationTokenAnchor"),TN=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),Kx=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...b,readOnly:true}),stripe_account_id:a.string().min(1).meta(b),live_mode:a.boolean().default(false).meta(b),onboarding_state:TN.default("not_started").meta({...b,readOnly:true}),onboarding_complete:a.boolean().default(false).meta({...b,readOnly:true}),charges_enabled:a.boolean().default(false).meta({...b,readOnly:true}),details_submitted:a.boolean().default(false).meta({...b,readOnly:true}),payouts_enabled:a.boolean().default(false).meta({...b,readOnly:true}),webhook_secret_set:a.boolean().default(false).meta({...b,readOnly:true}),sync_products:a.boolean().default(true).meta(b),sync_prices:a.boolean().default(true).meta(b),sync_subscriptions:a.boolean().default(true).meta(b),sync_invoices:a.boolean().default(false).meta(b),default_currency:a.string().length(3).default("USD").meta(b),tax_behavior:a.enum(["inclusive","exclusive","unspecified"]).default("unspecified").meta(b),last_sync_at:a.string().optional().meta({...b,readOnly:true}),metadata:ar.meta(b)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...vN,...fr()});a.object({theme:a.record(a.string(),a.unknown()).optional().meta(b),workspace_name:a.string().optional().meta(b),logo_url:a.string().optional().meta(b),support_email:a.string().optional().meta(b)}).meta({id:"BrandingConfig","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...SN});var pl=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...b,readOnly:true}),entitlement_id:a.string().min(1).meta(b),meter_key:a.string().min(1).max(100).meta(b),aggregation_type:a.enum(["sum","count","max","last_value"]).default("sum").meta(b),reset_period:a.enum(["none","daily","weekly","monthly","yearly"]).default("monthly").meta(b),stripe_meter_id:a.string().nullable().default(null).meta(b),is_active:a.boolean().default(true).meta(b),metadata:ar.meta(b)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...yN,...fr()}),OE=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),fl=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Xt.meta({...b,readOnly:true}),entitlement_id:a.string().min(1).meta(b),soft_limit_percent:a.number().min(0).max(100).default(80).meta(b),hard_limit_percent:a.number().min(0).max(100).default(100).meta(b),soft_limit_action:OE.default("warn").meta(b),hard_limit_action:OE.default("block").meta(b),grace_period_hours:a.number().int().min(0).default(0).meta(b),notification_channels:a.array(a.enum(["email","in_app","webhook"])).default(["in_app"]).meta(b),is_active:a.boolean().default(true).meta(b)}).meta({id:"UsageEnforcementSettings","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...qE,...fr()}),$N=vn("UsageEnforcementSettingsAnchor"),wN=a.object({kind:a.enum(["template","slot"]).meta(b),id:a.string().min(1).meta(b),label:a.string().min(1).optional().meta(b)}).meta({id:"PlacementSettingsCapRuleGroupItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),RN=a.object({id:a.string().min(1).meta(b),group:a.array(wN).min(1).meta(b),cap:a.object({count:a.number().int().min(1).meta(b),period:a.enum(["session","day","week","month"]).meta(b)}).meta(b)}).meta({id:"PlacementSettingsCapRule","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),CN=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),HE=a.object({capRules:a.array(RN).default([]).meta(b),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(b),testMode:CN.default("off").meta(b)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":hr}),Gx=yt.merge(wt).merge(Rt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Xt.meta({...b,readOnly:true}),global_frequency_cap:HE.nullable().default(null).meta(b),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(b),suppress_for_paid:a.boolean().default(false).meta(b),suppress_for_trial:a.boolean().default(false).meta(b),default_dismiss_cooldown_hours:a.number().int().min(0).default(24).meta(b),allow_stacking:a.boolean().default(false).meta(b),priority_collision_strategy:a.enum(["highest_priority","most_recent","random"]).default("highest_priority").meta(b)}).meta({id:"PlacementSettings","x-revturbine-schema-persistence":Ga,"x-revturbine-schema-exposure":hr,...qE,...fr()}),EN=vn("PlacementSettingsAnchor"),ON=a.object({field:a.string().min(1).meta(b),operator:a.enum(["eq","neq","gt","lt","gte","lte","contains","in"]).meta(b),value:a.string().meta(b)}).meta({id:"RevTurbineConfigSegmentsItemPredicatesItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),zN=a.object({name:a.string().min(1).meta(b),handle:a.string().min(1).meta(b),predicates:a.array(ON).optional().meta(b),dimension_id:a.string().optional().meta(b)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),jN=a.object({unique_handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),tier_position:a.number().int().min(0).default(0).meta(b),sort_order:a.number().int().min(0).default(0).meta(b),visibility:Ni.default("public").meta(b)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),UN=a.object({unique_handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),sort_order:a.number().int().min(0).default(0).meta(b),visibility:Ni.default("public").meta(b)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ha}),AN=a.object({handle:a.string().min(1).meta(b),plan_handle:a.string().min(1).meta(b),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(b),segment_handle:a.string().nullable().default(null).meta(b),price_amount:a.number().min(0).meta(b),pricing_model:yl.meta(b),visibility:Ni.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:mp.meta(b)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Fi}),DN=a.object({handle:a.string().min(1).meta(b),addon_handle:a.string().min(1).meta(b),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(b),segment_handle:a.string().nullable().default(null).meta(b),price_amount:a.number().min(0).meta(b),pricing_model:yl.meta(b),visibility:Ni.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:mp.meta(b)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Fi}),FN=a.object({handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),description:a.string().nullable().default(null).meta(b),is_default:a.boolean().default(false).meta(b),entitlement_handles:a.array(a.string()).default([]).meta(b)}).meta({id:"RevTurbineConfigSeatTypesItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),NN=a.object({handle:a.string().min(1).meta(b),entitlement_handle:a.string().nullable().default(null).meta(b),soft_limit_percent:a.number().int().min(0).nullable().default(null).meta(b),hard_limit_percent:a.number().int().min(0).nullable().default(null).meta(b),soft_limit_action:a.string().meta(b),hard_limit_action:a.string().meta(b),grace_period_hours:a.number().int().min(0).nullable().default(null).meta(b),notification_channels:a.array(a.string()).default([]).meta(b),is_active:a.boolean().default(true).meta(b)}).meta({id:"RevTurbineConfigEnforcementDefaultsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),LN=a.object({handle:a.string().min(1).meta(b),global_frequency_cap:HE.nullable().default(null).meta(b),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(b),suppress_for_paid:a.boolean().default(false).meta(b),suppress_for_trial:a.boolean().default(false).meta(b),default_dismiss_cooldown_hours:a.number().int().min(0).nullable().default(null).meta(b),allow_stacking:a.boolean().default(false).meta(b),priority_collision_strategy:a.string().nullable().default(null).meta(b)}).meta({id:"RevTurbineConfigPlacementSettingsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),VN=a.object({handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),category:a.string().nullable().default(null).meta(b),visibility_toggle:a.boolean().default(true).meta(b),source_type:a.string().nullable().default(null).meta(b)}).meta({id:"RevTurbineConfigSegmentDimensionsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),BN=a.object({handle:a.string().min(1).meta(b),entitlement_handle:a.string().min(1).meta(b),meter_handle:a.string().min(1).meta(b),limit:a.number().int().min(0).nullable().default(null).meta(b),reset_period:a.string().nullable().default(null).meta(b)}).meta({id:"RevTurbineConfigMeterBindingsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),MN=a.object({unique_handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),type:Gm.meta(b),unit:a.string().optional().meta(b),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(b)}).meta({id:"RevTurbineConfigEntitlementsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),ZN=a.object({id:a.string().min(1).meta(b),entitlement_id:a.string().min(1).meta(b),targets:a.array(FE).min(1).meta(b),segment_ids:a.array(a.string()).default([]).meta(b),kind:Gm.optional().meta({...b,readOnly:true}),unit:a.string().optional().meta({...b,readOnly:true}),tier_name:a.string().optional().meta({...b,readOnly:true}),tier_description:a.string().optional().meta({...b,readOnly:true}),...Ka.pick({enabled:true,limit_value:true,enforcement:true,tier_value:true,period_scope:true,included_count:true,seat_type_id:true,initial_grant:true,allowance_value:true,rollover_enabled:true,max_balance:true,reset_period:true,max_seats:true,rate_value:true,amount_cents:true,currency:true}).shape,current_usage:a.number().default(0).meta(b),allocation:up.optional().meta(b)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),qN=a.object({slot_id:a.string().min(1).meta(b),active:a.boolean().meta(b),triggers:a.array(a.string()).meta(b)}).meta({id:"RevTurbineConfigSlotConfigsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),HN=a.object({id:a.string().min(1).meta(b),label:a.string().min(1).meta(b),description:a.string().meta(b),surface_type:a.string().meta(b),placement_handle:a.string().min(1).meta(b),template:a.string().optional().meta(b)}).meta({id:"RevTurbineConfigPlacementSlotsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),KN=a.object({name:a.string().min(1).meta(b),type:a.string().optional().meta(b),required:a.boolean().optional().meta(b)}).meta({id:"RevTurbineConfigSurfaceTemplatesItemFieldsItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),GN=a.object({id:a.string().min(1).meta(b),surface_type:a.string().meta(b),fields:a.array(KN).optional().meta(b)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),JN=a.enum(["open_checkout_modal","navigate_to_plans","open_upgrade_modal","open_placement","book_demo","open_feature_tour","extend_trial","switch_billing_period","custom_url","dismiss","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription"]).meta({id:"RevTurbineConfigUiPathActionType","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),WN=a.object({name:a.string().min(1).meta(b),action_type:JN.meta(b),plan_handle:a.string().optional().meta(b),promotion_id:a.string().optional().meta(b),placement_handle:a.string().optional().meta(b),url:a.string().optional().meta(b),tour_id:a.string().optional().meta(b),target_billing_period:a.enum(["monthly","annual"]).optional().meta(b),description:a.string().optional().meta(b)}).meta({id:"ContentUiPath","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),XN=a.object({id:a.string().meta(b),name:a.string().meta(b),discount:a.string().meta(b),type:a.string().meta(b),status:a.string().meta(b)}).meta({id:"ContentPromotion","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),YN=a.object({token:a.string().regex(/^[a-z][a-z0-9_]*$/).meta(b),label:a.string().min(1).meta(b),description:a.string().optional().meta(b),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(b),data_source:a.string().optional().meta(b),example_value:a.string().optional().meta(b),value_map:a.record(a.string(),a.string()).optional().meta(b),format:a.enum(["string","number","currency","percentage","date"]).optional().meta(b)}).meta({id:"RevTurbineConfigPersonalizationTokensItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),zE=a.object({header:a.string().optional().meta(b),body:a.string().optional().meta(b),cta_label:a.string().optional().meta(b),secondary_cta_label:a.string().optional().meta(b)}).catchall(a.unknown()).meta({id:"MessageBlockContent","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),QN=a.object({block_id:a.string().min(1).meta(b),tenant_id:a.string().min(1).meta(b),name:a.string().min(1).meta(b),surface_template_id:a.string().optional().meta(b),default_content:zE.meta(b),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:zE})).optional().meta(b),child_blocks:a.array(a.object({slot:a.string(),block_id:a.string()})).optional().meta(b),tokens_used:a.array(a.string()).optional().meta(b),status:a.enum(["draft","active","archived"]).meta(b),created_at:a.string().datetime().meta({...b,readOnly:true}),updated_at:a.string().datetime().meta({...b,readOnly:true})}).meta({id:"MessageBlock","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),eL=a.object({label:a.string().meta(b),path:ZC.meta(b),config:a.record(a.string(),a.string()).optional().meta(b)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),KE=a.object({template_id:a.string().min(1).meta(b),fields:a.record(a.string(),a.string()).meta(b),ctas:a.array(eL).meta(b)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),GE=a.object({plan_ids:a.array(a.string()).meta(b),billing_cadences:a.array(a.string()).optional().meta(b),segment_chips:a.array(a.string()).meta(b)}).meta({id:"RevTurbineConfigStudioPayloadTarget","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),tL=a.object({count:a.number().int().min(1).meta(b),period:a.enum(["session","day","week","month","lifetime"]).meta(b)}).meta({id:"RevTurbineConfigPeriodCap","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),JE=a.object({max_per_period:tL.optional().meta(b),cooldown_days:a.number().int().min(0).optional().meta(b)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),nL=a.object({id:a.string().min(1).meta(b),target:GE.meta(b),surfaces:a.array(KE).meta(b),caps:JE.optional().meta(b),surface_slot_ids:a.array(a.string()).optional().meta(b),created_at:a.string().optional().meta({...b,readOnly:true}),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(b),recommendation_plan_override:a.string().optional().meta(b)}).meta({id:"RevTurbineConfigStudioPayload","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),rL=a.discriminatedUnion("type",[a.object({type:a.literal("surface_render"),slot_id:a.string().min(1)}),a.object({type:a.literal("entitlement_gate"),entitlement_handle:a.string().min(1),tier_threshold:a.string().optional()}),a.object({type:a.literal("usage_threshold"),entitlement_handle:a.string().min(1),threshold_percent:$o}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:$o}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:$o}),a.object({type:a.literal("trial_started"),trial_type:a.enum(["free","reverse"]).optional()}),a.object({type:a.literal("trial_progress"),progress_percent:a.number().min(1).max(100)}),a.object({type:a.literal("trial_ending"),days_before_end:a.number().int().min(0)}),a.object({type:a.literal("trial_ended")}),a.object({type:a.literal("trial_converted")}),a.object({type:a.literal("qualifier"),qualifier:a.string().min(1)})]).meta({id:"RevTurbineConfigPlacementTrigger","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),iL=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne}),oL=a.object({id:a.string().min(1).meta(b),name:a.string().min(1).meta(b),category:iL.meta(b),trigger:rL.meta(b),payloads:a.array(nL).meta(b),order:a.number().int().min(0).meta(b)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),aL=a.object({payload_id:a.string().min(1).meta(b),placement_id:a.string().min(1).meta(b),target:GE.meta(b),caps:JE.optional().meta(b),created_at:a.string().meta({...b,readOnly:true}),updated_at:a.string().datetime().optional().meta({...b,readOnly:true}),source_mode:a.enum(["inline","content_linked"]).meta(b),surfaces:a.array(KE).optional().meta(b),surface_slot_ids:a.array(a.string()).optional().meta(b),content_link:a.object({message_block_id:a.string().optional(),ui_path_id:a.string().optional(),promotion_id:a.string().optional(),content_payload_id:a.string().optional()}).optional().meta(b)}).meta({id:"RevTurbineConfigPlacementPayloadItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),sL=a.object({kind:a.string().min(1).meta(b),schema_version:a.number().int().nonnegative().meta(b),config:a.unknown().meta(b)}).meta({id:"RevTurbineConfigExtensionRulesItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue}),cL=yt.merge(VE).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Fi}),lL=yt.merge(BE).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Fi}),uL=a.object({version:a.string().meta({...b,...Di}),exported_at:a.string().datetime().optional().meta({...b,...gl,readOnly:true}),schema_version:a.string().optional().meta({...b,...Di,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({...b,...Di,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({...b,...gl,readOnly:true}),tenant_id:a.string().optional().meta({...b,...hl,readOnly:true}),environment_id:a.string().optional().meta({...b,...hl,readOnly:true}),plans:a.array(jN).meta({...b,...Ue}),addons:a.array(UN).optional().meta({...b,...Ha}),entitlements:a.array(MN).meta({...b,...Ue}),entitlement_rules:a.array(ZN).meta({...b,...Ue}),segments:a.array(zN).meta({...b,...Ue}),content_ui_paths:a.array(WN).meta({...b,...Ue}),slot_configs:a.array(qN).optional().meta({...b,...Ue,...sl({since:"0.1.117",replacement:"SDK-local activation/trigger state",removeAfter:"one compatibility window",reason:"Slot activation moved to SDK-local state (plan 118 TASK-6); no longer a Playbook authoring input."})}),content_overrides:a.record(a.string(),a.record(a.string(),a.string())).optional().meta({...b,...Ue,...sl({since:"0.1.117",replacement:"Message Block / Placement Payload content",removeAfter:"one compatibility window",reason:"Content overrides moved to Message Block / Payload content (plan 118 TASK-6); no longer a Playbook authoring input."})}),theme:a.record(a.string(),a.unknown()).optional().meta({...b,...xN,...sl({since:"0.1.111",replacement:"SDK branding argument",removeAfter:"one compatibility window",reason:"Branding is independently owned and is not Playbook strategy."})}),placement_slots:a.array(HN).optional().meta({...b,...Ue}),message_blocks:a.array(QN).optional().meta({...b,...Ue}),placement_payloads:a.array(aL).optional().meta({...b,...Ue}),placements:a.array(oL).optional().meta({...b,...Ue}),content_promotions:a.array(XN).optional().meta({...b,...Ue}),personalization_tokens:a.array(YN).optional().meta({...b,...Ue}),surface_templates:a.array(GN).optional().meta({...b,...Ue}),free_trial_rules:a.array(cL).optional().meta({...b,...Ha}),reverse_trial_rules:a.array(lL).optional().meta({...b,...Ha}),plan_variations:a.array(AN).optional().meta({...b,...Ha}),addon_variations:a.array(DN).optional().meta({...b,...Ha}),extension_rules:a.array(sL).optional().meta({...b,...Ue}),seat_types:a.array(FN).optional().meta({...b,...Ue}),enforcement_defaults:a.array(NN).optional().meta({...b,...Ue}),placement_settings:a.array(LN).optional().meta({...b,...Ue}),segment_dimensions:a.array(VN).optional().meta({...b,...Ue}),meter_bindings:a.array(BN).optional().meta({...b,...Ue})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue,...sl({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),dL=a.object({artifact_type:a.literal("playbook").meta({...b,...Di,readOnly:true}),format_version:a.literal(IN).meta({...b,...Di,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({...b,...Di}),playbook_version_id:a.string().nullable().default(null).meta({...b,...gl,readOnly:true}),tenant_id:a.string().min(1).meta({...b,...hl,readOnly:true}),environment_id:a.string().min(1).meta({...b,...hl,readOnly:true}),project_id:a.string().min(1).optional().meta({...b,...hl,readOnly:true}),exported_at:a.string().datetime().optional().meta({...b,...gl,readOnly:true}),schema_version:a.string().min(1).optional().meta({...b,...Di,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({...b,...Di,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...gl}),mL={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},pL=uL.omit(mL).extend({experiments:a.array(a.unknown()).max(0).optional().meta({...b,...Fi}),signal_catalog:a.object({}).strict().optional().meta({...b,...Fi})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue});dL.extend(pL.shape).meta({id:"Playbook","x-revturbine-schema-persistence":ke,"x-revturbine-schema-exposure":Ne,...Ue});({"/api/seat-type-anchors":{get:j({operationId:"listSeatTypeAnchors",requestParams:{query:ot},summary:"List seat type anchors (identity registry)",tags:["config"],responses:{200:{description:"Seat type anchor list",content:{"application/json":{schema:it(PN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:j({operationId:"listSeatTypes",requestParams:{query:ot},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:it(dl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"list"}}}),post:j({operationId:"createSeatType",summary:"Create seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:_n(dl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:dl}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"create"}}})},"/api/config/seat-types/{id}":{patch:j({operationId:"updateSeatType",requestParams:{path:a.object({id:a.string()})},summary:"Update seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:dl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:dl}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"update"}}}),delete:j({operationId:"deleteSeatType",requestParams:{path:a.object({id:a.string()})},summary:"Delete seat type",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"delete"}}})},"/api/personalization-token-anchors":{get:j({operationId:"listPersonalizationTokenAnchors",requestParams:{query:ot},summary:"List personalization token anchors (identity registry)",tags:["config"],responses:{200:{description:"Personalization token anchor list",content:{"application/json":{schema:it(kN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:j({operationId:"listPersonalizationTokens",requestParams:{query:ot},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:it(ml)}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"list"}}}),post:j({operationId:"createPersonalizationToken",summary:"Create personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:_n(ml)}}},responses:{201:{description:"Created",content:{"application/json":{schema:ml}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"create"}}})},"/api/config/personalization-tokens/{id}":{patch:j({operationId:"updatePersonalizationToken",requestParams:{path:a.object({id:a.string()})},summary:"Update personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:ml.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ml}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"update"}}}),delete:j({operationId:"deletePersonalizationToken",requestParams:{path:a.object({id:a.string()})},summary:"Delete personalization token",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"delete"}}})},"/api/config/stripe":{put:j({operationId:"upsertStripeIntegrationConfig",summary:"Create or update Stripe integration config",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Kn(Kx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:Kx}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:j({operationId:"listMeteringConfigs",requestParams:{query:ot},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:it(pl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"list"}}}),post:j({operationId:"createMeteringConfig",summary:"Create metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:_n(pl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:pl}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"create"}}})},"/api/config/metering/{meteringId}":{patch:j({operationId:"updateMeteringConfig",requestParams:{path:a.object({meteringId:a.string()})},summary:"Update metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:pl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:pl}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"update"}}}),delete:j({operationId:"deleteMeteringConfig",requestParams:{path:a.object({meteringId:a.string()})},summary:"Delete metering configuration",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"delete"}}})},"/api/usage-enforcement-setting-anchors":{get:j({operationId:"listUsageEnforcementSettingsAnchors",requestParams:{query:ot},summary:"List usage enforcement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Usage enforcement setting anchor list",content:{"application/json":{schema:it($N)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement-setting-anchors",persistence:{table:"usageEnforcementSettings",mode:"list"}}})},"/api/config/usage-enforcement":{get:j({operationId:"listUsageEnforcementSettings",requestParams:{query:ot},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:it(fl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"list"}}}),post:j({operationId:"createUsageEnforcementSettings",summary:"Create usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:_n(fl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:fl}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"create"}}})},"/api/config/usage-enforcement/{settingsId}":{patch:j({operationId:"updateUsageEnforcementSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:fl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:fl}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"update"}}}),delete:j({operationId:"deleteUsageEnforcementSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Delete usage enforcement settings",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"delete"}}})},"/api/placement-setting-anchors":{get:j({operationId:"listPlacementSettingsAnchors",requestParams:{query:ot},summary:"List placement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Placement setting anchor list",content:{"application/json":{schema:it(EN)}}},default:{description:"Error response",content:{"application/json":{schema:Vt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-setting-anchors",persistence:{table:"placementSettings",mode:"list"}}})},"/api/config/placement-settings":{put:j({operationId:"upsertPlacementSettings",summary:"Create or update global placement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Kn(Gx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:Gx}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});function Wa(){return typeof window>"u"||typeof document>"u"}function zn(){return !Wa()}var xl=class{constructor(){this.providers=new Map,this.cache=new Map,this.unsubscribers=new Map;}register(e){let n=this.providers.get(e.domain);if(n&&this.unregister(n.domain),this.providers.set(e.domain,e),e.subscribe){let r=e.subscribe(o=>{this.cache.set(e.domain,{value:o,resolvedAt:Date.now(),ttlMs:e.cacheTtlMs??0});});this.unsubscribers.set(e.domain,r);}}unregister(e){this.providers.delete(e),this.cache.delete(e);let n=this.unsubscribers.get(e);n&&(n(),this.unsubscribers.delete(e));}clear(){for(let e of this.unsubscribers.values())e();this.providers.clear(),this.cache.clear(),this.unsubscribers.clear();}async resolveAll(){let e=Array.from(this.providers.entries()),n=await Promise.all(e.map(async([i,s])=>{let c=this.cache.get(i),l=Date.now();if(c&&c.ttlMs>0&&l-c.resolvedAt<c.ttlMs)return [i,c.value];let d=await s.resolve();return this.cache.set(i,{value:d,resolvedAt:l,ttlMs:s.cacheTtlMs??0}),[i,d]})),r={},o={},t=false;for(let[i,s]of n)if(i==="traits"||i.startsWith("traits:")){let c=s;c?.traits&&(Object.assign(o,c.traits),t=true);}else r[i]=s;return t&&(r.traits={traits:o}),r}async get(e){let n=this.providers.get(e);if(!n)return;let r=this.cache.get(e),o=Date.now();if(r&&r.ttlMs>0&&o-r.resolvedAt<r.ttlMs)return r.value;let t=await n.resolve();return this.cache.set(e,{value:t,resolvedAt:o,ttlMs:n.cacheTtlMs??0}),t}has(e){return this.providers.has(e)}get size(){return this.providers.size}invalidate(e){this.cache.delete(e);}invalidateAll(){this.cache.clear();}},fL="revturbine:interaction-state",WE=class{constructor(e){this.state=new Map,this.storage=e.storage,this.tenantId=e.tenantId,this.userId=e.userId,this.defaultDismissCooldownMs=e.defaultDismissCooldownMs??1440*60*1e3,this.defaultRemindLaterMs=e.defaultRemindLaterMs??3600*1e3,this.hydrate();}track(e){let n=this.stateKey(e.placementId,e.userId,e.treatmentId),r=Date.now(),o=e.metadata??{},i={...this.state.get(n)??{updatedAt:new Date(r).toISOString()},lastInteractionType:e.interactionType,updatedAt:e.interactionAt??new Date(r).toISOString()};if(e.interactionType==="dismiss"){let s=Number(o.cooldown_ms);i.suppressedUntil=r+(Number.isFinite(s)&&s>0?s:this.defaultDismissCooldownMs);}if(e.interactionType==="remind_me_later"){let s=Number(o.remind_after_seconds);i.suppressedUntil=r+(Number.isFinite(s)&&s>0?s*1e3:this.defaultRemindLaterMs);}(e.interactionType==="cta_clicked"||e.interactionType==="cta_completed")&&(i.suppressedUntil=r+300*1e3),this.state.set(n,i),this.persist();}checkSuppression(e,n,r){let o=this.stateKey(e,n,r),t=this.state.get(o);return t?.suppressedUntil?t.suppressedUntil<=Date.now()?{suppressed:false}:{suppressed:true,reason:t.lastInteractionType==="remind_me_later"?"suppressed_until_remind_window":"suppressed_by_dismiss_cooldown"}:{suppressed:false}}clearSuppression(e,n,r){let o=this.stateKey(e,n,r);this.state.delete(o),this.persist();}hydrate(){let e=this.storage.getItem(this.storageKey());if(e)try{let n=JSON.parse(e);for(let[r,o]of Object.entries(n))!o||typeof o!="object"||this.state.set(r,o);}catch{this.storage.removeItem(this.storageKey());}}persist(){try{let e=Object.fromEntries(this.state.entries());this.storage.setItem(this.storageKey(),JSON.stringify(e));}catch{}}storageKey(){return `${fL}:${this.tenantId}:${this.userId}`}stateKey(e,n,r){return [this.tenantId,n,e,r||"default"].join(":")}},gL="revturbine:presentation-caps";function Ja(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function hL(e){if(!Ja(e))return null;let n=Number(e.count),r=typeof e.period=="string"?e.period:"";return !Number.isFinite(n)||n<=0||r!=="session"&&r!=="day"&&r!=="week"&&r!=="month"&&r!=="lifetime"?null:{count:n,period:r}}function bL(e,n){return e==="session"||e==="lifetime"?0:e==="day"?n-1440*60*1e3:e==="week"?n-10080*60*1e3:n-720*60*60*1e3}var XE=class{constructor(e){this.capsByKey=new Map,this.storage=e.storage,this.tenantId=e.tenantId,this.userId=e.userId,this.hydrate();}enforce(e){let n=this.extractPolicies(e);if(n.length===0)return {allowed:true};let r=this.capKey(e),o=Date.now(),t=this.capsByKey.get(r)??{seenAt:[]},i={...t,seenAt:t.seenAt.filter(c=>Number.isFinite(c)&&c>0)};if(Number.isFinite(i.cooldownUntil)&&i.cooldownUntil>o)return this.capsByKey.set(r,i),{allowed:false,reason:"suppressed_by_payload_cooldown"};for(let c of n)for(let l of c.rules){let d=bL(l.period,o),m=i.seenAt.filter(p=>p>=d&&p<=o);if(m.length>=l.count)return this.capsByKey.set(r,{...i,seenAt:m}),{allowed:false,reason:`suppressed_by_payload_cap_${l.period}`}}i.seenAt.push(o);let s=n.map(c=>c.cooldownMs).filter(c=>typeof c=="number"&&Number.isFinite(c)&&c>0);return s.length>0?i.cooldownUntil=o+Math.max(...s):delete i.cooldownUntil,this.capsByKey.set(r,i),this.persist(),{allowed:true}}hydrate(){let e=this.storage.getItem(this.storageKey());if(e)try{let n=JSON.parse(e);for(let[r,o]of Object.entries(n)){if(!o||typeof o!="object")continue;let t=Array.isArray(o.seenAt)?o.seenAt.filter(s=>Number.isFinite(s)&&s>0):[],i=Number.isFinite(o.cooldownUntil)?o.cooldownUntil:void 0;this.capsByKey.set(r,{seenAt:t,cooldownUntil:i});}}catch{this.storage.removeItem(this.storageKey());}}persist(){try{let e=Object.fromEntries(this.capsByKey.entries());this.storage.setItem(this.storageKey(),JSON.stringify(e));}catch{}}storageKey(){return `${gL}:${this.tenantId}:${this.userId}`}capKey(e){return [this.tenantId,this.userId,e.surface.type,e.output_id].join(":")}extractPolicies(e){let n=[],r=[e,e.content,Ja(e.content)?e.content.payload:void 0,Ja(e.content)?e.content.placement:void 0,Ja(e.content)?e.content.surface:void 0];for(let o of r){if(!Ja(o))continue;let t=Ja(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=hL(t.max_per_period);s&&i.push(s);let c=Number(t.cooldown_days),l=Number.isFinite(c)&&c>0?c*24*60*60*1e3:void 0;n.push({rules:i,...l!==void 0?{cooldownMs:l}:{}});}return n}},Xa=class{constructor(){this.store=new Map;}getItem(e){return this.store.get(e)??null}setItem(e,n){this.store.set(e,n);}removeItem(e){this.store.delete(e);}};function YE(e){return [e.tenantId,e.userId,e.placementId,e.treatmentId||"default"].join(":")}function QE(e,n=Date.now()){return e?.suppressedUntil?e.suppressedUntil<=n?{suppressed:false}:{suppressed:true,reason:e.lastInteractionType==="remind_me_later"?"suppressed_until_remind_window":"suppressed_by_dismiss_cooldown"}:{suppressed:false}}var _L=new Set(["dismissed","clicked_thru"]),vL=1440*60*1e3,Yx=class{constructor(e){this.retiredCache=null,this.suppressedCache=null,this.store=e.store,this.userId=e.userId,this.defaultSuppressionMs=e.defaultSuppressionMs??vL;}async recordImpression(e,n,r,o){await this.appendRecord(e,"impressed",n,r,o);}async recordDismissal(e,n,r,o){await this.appendRecord(e,"dismissed",n,r,o),this.retireInCache(e);}async recordClickThru(e,n,r,o){await this.appendRecord(e,"clicked_thru",n,r,o),this.retireInCache(e);}async recordSuppression(e,n,r,o,t){let i=t??this.defaultSuppressionMs,s=new Date(Date.now()+i).toISOString();await this.appendRecord(e,"suppressed",n,r,{...o,suppressUntil:s}),this.suppressInCache(e,s);}async isRetired(e){return (await this.getRetiredIds()).has(e)}async getRetiredIds(){if(this.retiredCache)return this.retiredCache;let e=await this.store.getRetiredPlacementIds(this.userId);return this.retiredCache=e,e}isRetiredSync(e){return this.retiredCache?.has(e)??false}isSuppressedSync(e){if(!this.suppressedCache)return false;let n=this.suppressedCache.get(e);return n?new Date(n).getTime()>Date.now()?true:(this.suppressedCache.delete(e),false):false}isHiddenSync(e){return this.isRetiredSync(e)||this.isSuppressedSync(e)}async queryHistory(e){return this.store.query(this.userId,e)}async hydrate(){this.retiredCache=await this.store.getRetiredPlacementIds(this.userId),this.suppressedCache=await this.store.getSuppressedPlacements(this.userId);}async reset(){await this.store.clear(this.userId),this.retiredCache=new Set,this.suppressedCache=new Map;}setUserId(e){this.userId=e,this.retiredCache=null,this.suppressedCache=null;}async appendRecord(e,n,r,o,t){let i={placementId:e,outcome:n,occurredAt:new Date().toISOString(),...r?{payloadId:r}:{},...o?{surfaceTemplateId:o}:{},...t?{metadata:t}:{}};await this.store.append(this.userId,i);}retireInCache(e){this.retiredCache||(this.retiredCache=new Set),this.retiredCache.add(e);}suppressInCache(e,n){this.suppressedCache||(this.suppressedCache=new Map),this.suppressedCache.set(e,n);}},yL=class{constructor(){this.records=new Map;}append(e,n){let r=this.records.get(e)??[];r.push(n),this.records.set(e,r);}query(e,n){let r=this.records.get(e)??[];return n&&(r=eO(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.records.get(e)??[];return tO(n)}getSuppressedPlacements(e){let n=this.records.get(e)??[];return nO(n)}clear(e){this.records.delete(e);}},xL="revturbine:impression-history",pp=class{constructor(e){this.storage=e.storage,this.tenantId=e.tenantId,this.maxRecords=e.maxRecords??500;}append(e,n){let r=this.load(e);r.push(n),r.length>this.maxRecords&&r.splice(0,r.length-this.maxRecords),this.save(e,r);}query(e,n){let r=this.load(e);return n&&(r=eO(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.load(e);return tO(n)}getSuppressedPlacements(e){let n=this.load(e);return nO(n)}clear(e){this.storage.removeItem(this.key(e));}key(e){return `${xL}:${this.tenantId}:${e}`}load(e){let n=this.storage.getItem(this.key(e));if(!n)return [];try{let r=JSON.parse(n);return Array.isArray(r)?r:[]}catch{return []}}save(e,n){try{this.storage.setItem(this.key(e),JSON.stringify(n));}catch{}}};function eO(e,n){let r=e;if(n.placementIds&&n.placementIds.length>0){let o=new Set(n.placementIds);r=r.filter(t=>o.has(t.placementId));}if(n.outcomes&&n.outcomes.length>0){let o=new Set(n.outcomes);r=r.filter(t=>o.has(t.outcome));}if(n.since){let o=new Date(n.since).getTime();r=r.filter(t=>new Date(t.occurredAt).getTime()>=o);}return r}function tO(e){let n=new Set;for(let r of e)_L.has(r.outcome)&&n.add(r.placementId);return n}function nO(e){let n=new Map,r=Date.now();for(let o=e.length-1;o>=0;o--){let t=e[o];if(t.outcome!=="suppressed"||n.has(t.placementId))continue;let i=t.metadata?.suppressUntil;typeof i=="string"&&new Date(i).getTime()>r&&n.set(t.placementId,i);}return n}function SL(e){let{config:n,cacheTtlMs:r}=e,o=[];if(e.planHandle){let t={domain:"plan",cacheTtlMs:r,resolve:()=>({currentPlanHandle:e.planHandle,currentPlanName:e.planName??e.planHandle,...e.paymentFailed!==void 0?{paymentFailed:e.paymentFailed}:{},...e.paymentAtRisk!==void 0?{paymentAtRisk:e.paymentAtRisk}:{}})};o.push(t);}if(n.entitlements?.length){let t=e.defaultEntitlementPolicy??"allow",i={domain:"entitlements",cacheTtlMs:r,resolve:()=>{let s={},c={};for(let l of n.entitlements??[]){s[l.unique_handle]={status:t==="allow"?"allowed":"denied",allowed:t==="allow",reason:`static_config_default_${t}`};let d=e.usage?.[l.unique_handle];d&&(c[l.unique_handle]={used:d.used,limit:d.limit,remaining:Math.max(0,d.limit-d.used),unit:l.unit});}return {entries:s,usage:c,...e.tiers!==void 0?{tiers:e.tiers}:{}}}};o.push(i);}if(n.segments?.length){let t={domain:"segments",cacheTtlMs:r,resolve:()=>({segmentIds:(n.segments??[]).map(i=>i.handle),segmentSlugs:(n.segments??[]).map(i=>i.handle)})};o.push(t);}if(n.entitlement_rules?.length){let t={domain:"rules",cacheTtlMs:r,resolve:()=>{let i={},s=new Map;for(let l of n.entitlements??[]){let d=l;typeof d.unique_handle=="string"&&typeof d.type=="string"&&s.set(d.unique_handle,d.type);}for(let l of n.entitlement_rules??[]){let d=l.entitlement_id;i[d]||(i[d]=[]);let m=l,p=Array.isArray(m.segment_ids)?m.segment_ids.filter(h=>typeof h=="string"):typeof m.segment_id=="string"&&m.segment_id!=="all"?[m.segment_id]:[],f=Array.isArray(m.plan_ids)?m.plan_ids.filter(h=>typeof h=="string"):[],g={ruleId:l.id,entitlementId:d,planIds:(l.targets??[]).length>0?(l.targets??[]).filter(h=>h.kind==="plan").map(h=>h.id):f,segmentIds:p,kind:(()=>{let h=typeof m.type_fields=="object"&&m.type_fields!==null?m.type_fields:{};return (typeof m.kind=="string"?m.kind:void 0)??(typeof h.kind=="string"?h.kind:void 0)??s.get(d)??"feature"})(),fields:{...typeof m.type_fields=="object"&&m.type_fields!==null?m.type_fields:{},...m}};i[d].push(g);}let c={};for(let l of n.segments??[])typeof l.dimension_id=="string"&&typeof l.handle=="string"&&(c[l.handle]=l.dimension_id);return {entitlementRules:i,segmentDimensions:c,configVersion:n.version}}};o.push(t);}if(n.message_blocks?.length||n.personalization_tokens?.length){let t={domain:"content",cacheTtlMs:r,resolve:()=>{let i={};for(let s of n.message_blocks??[])i[s.block_id]={blockId:s.block_id,name:s.name,defaultContent:s.default_content,segmentOverrides:s.segment_overrides?.map(c=>({segmentId:c.segment_value_id,content:c.content})),status:s.status};return {messageBlocks:i,personalization:{}}}};o.push(t);}if(n.theme&&Object.keys(n.theme).length>0){let t={domain:"theme",cacheTtlMs:r,resolve:()=>({overrides:n.theme})};o.push(t);}return o}function IL(e){let{payload:n,cacheTtlMs:r}=e,o=[];if(n.user_context){let t=n.user_context,i={domain:"plan",cacheTtlMs:r,resolve:()=>({currentPlanHandle:t.plan_handle??"unknown",currentPlanName:t.plan_name,billingPeriod:t.billing_period,trialActive:t.trial_active,trialLimitType:t.trial_limit_type,trialProgressPercent:t.trial_progress_percent,trialDaysRemaining:t.trial_days_remaining,trialDaysTotal:t.trial_days_total,trialState:t.trial_state,trialUsageEntitlementHandle:t.trial_usage_entitlement_handle,trialUsageConsumed:t.trial_usage_consumed,trialUsageLimit:t.trial_usage_limit})};o.push(i);}if(n.entitlements){let t=n.entitlements,i={domain:"entitlements",cacheTtlMs:r,resolve:()=>{let s={};for(let[c,l]of Object.entries(t))s[c]=l;return {entries:s}}};o.push(i);}if(n.user_context){let t=n.user_context;if(Array.isArray(t.segment_ids)){let i={domain:"segments",cacheTtlMs:r,resolve:()=>({segmentIds:t.segment_ids})};o.push(i);}}if(n.user_context){let t=n.user_context;if(t.traits&&typeof t.traits=="object"){let i={domain:"traits",cacheTtlMs:r,resolve:()=>({traits:t.traits})};o.push(i);}}if(n.theme){let t={domain:"theme",cacheTtlMs:r,resolve:()=>({overrides:n.theme})};o.push(t);}return o}var rO=class{constructor(e){this.registeredPlacements=new Map,this.tenantId=e.tenantId,this.userId=e.userId,this.exportedConfig=e.exportedConfig;let n=e.storage??new Xa;this.registry=new xl;for(let o of e.providers)this.registry.register(o);this.interactionTracker=new WE({storage:n,tenantId:e.tenantId,userId:e.userId,...e.interactionOptions}),this.capEnforcer=new XE({storage:n,tenantId:e.tenantId,userId:e.userId}),this.impressionHistory=new Yx({store:e.impressionStore??new yL,userId:e.userId});let r=e.customResolver??this.buildPlacementResolver(e);this.engine=new $x({registry:this.registry,interactionTracker:this.interactionTracker,capEnforcer:this.capEnforcer,options:e.engineOptions,placements:this.registeredPlacements,placementResolver:r});}registerPlacement(e){this.registeredPlacements.set(e.id,e);}async getPlacementDecision(e){return this.engine.evaluate(e)}async getPlacementDecisions(e){return this.engine.evaluateBatch(e)}async checkEntitlement(e,n){let r=await this.engine.checkEntitlement(e,n);return r.reason==="no_entitlement_provider"?this.deriveEntitlementFromConfig(e,n):r}trackInteraction(e){this.engine.trackInteraction(e);}clearSuppression(e,n){this.interactionTracker.clearSuppression(e,n??this.userId);}async resolveProviders(){return this.registry.resolveAll()}evaluateSegments(e){let n=this.exportedConfig.segments??[];return ol(n,e)}buildTargetingState(e,n){return rp(e,this.exportedConfig,n)}async derivePersonalizationTokens(e){let n=await this.registry.resolveAll();return Oa({userId:this.userId,providers:n,base:e})}setUserId(e){this.userId=e,this.impressionHistory.setUserId(e);}getUserId(){return this.userId}getExportedConfig(){return this.exportedConfig}async hydrate(){await this.impressionHistory.hydrate();}updateProviders(e){this.registry.clear();for(let n of e)this.registry.register(n);}buildPlacementResolver(e){let n=e.placements??{placements:e.exportedConfig.placements??[]};return wo({placements:n,exportedConfig:e.exportedConfig,impressionHistory:this.impressionHistory})}deriveEntitlementFromConfig(e,n){return il({handle:e,context:n,currentPlanHandle:"",segmentIds:new Set,usageBalances:{},exportedConfig:this.exportedConfig})??{status:"allowed",allowed:true,reason:"local_runtime_default_allow"}}},PL=["web-client","server"],kL=a.enum(PL),TL=["method","meta","component"],$L=a.enum(TL),wL=["ts","python","java","csharp","rust"];a.enum(wL);var RL=a.object({ts:a.string().min(1).optional(),python:a.string().min(1).optional(),java:a.string().min(1).optional(),csharp:a.string().min(1).optional(),rust:a.string().min(1).optional()}).strict(),CL=a.object({canonical:a.string().min(1),aliases:a.array(a.string().min(1)),kind:$L,appliesTo:a.array(kL).min(1),composes:a.string().min(1).optional(),perLanguage:RL.optional(),description:a.string().min(1)}).strict().refine(e=>e.kind!=="meta"||e.composes!==void 0,{message:"kind 'meta' requires a `composes` reference",path:["composes"]}),EL=a.object({version:a.number().int().positive(),functions:a.array(CL).min(1)}).strict().superRefine((e,n)=>{let r=new Map;for(let o of e.functions)for(let t of [o.canonical,...o.aliases]){let i=r.get(t);i!==void 0&&n.addIssue({code:"custom",message:`duplicate SDK name "${t}" (also on "${i}")`,path:["functions"]}),r.set(t,o.canonical);}});EL.parse({version:2,functions:[{canonical:"checkEntitlement",aliases:["can"],kind:"method",appliesTo:["web-client","server"],description:"Check whether the user is entitled to a feature/handle; returns the rich EntitlementResult (allowed, status, reason, limits, enforcement)."},{canonical:"gate",aliases:[],kind:"meta",appliesTo:["web-client"],composes:"checkEntitlement",description:"Gate an action behind an entitlement: checks the handle, runs fn when allowed, otherwise returns the entitlement so the caller can surface a paywall."},{canonical:"trackEvent",aliases:["track"],kind:"method",appliesTo:["web-client"],description:"Emit a product/analytics event powering frequency caps, attribution, and experiments."},{canonical:"updateUsage",aliases:["update"],kind:"method",appliesTo:["web-client"],description:"Patch customer-reported usage balances for client-side metering display (the advertised update({ usage }) verb)."},{canonical:"resetIdentity",aliases:["reset"],kind:"method",appliesTo:["web-client"],description:"Clear the current user and revert to the anonymous identity (e.g. on sign-out)."},{canonical:"identify",aliases:[],kind:"method",appliesTo:["web-client"],description:"Associate the session with a known user id and optional traits/context."},{canonical:"getPlacement",aliases:[],kind:"method",appliesTo:["web-client","server"],description:"Resolve a single placement decision for a surface."},{canonical:"getPlacementDecision",aliases:[],kind:"method",appliesTo:["web-client"],description:"Resolve a placement decision from an explicit decision input (headless)."},{canonical:"evaluate",aliases:[],kind:"method",appliesTo:["server"],description:"Batch-evaluate placements + entitlements for a user, returning a serializable payload the client SDK can hydrate."},{canonical:"getTrialStatus",aliases:[],kind:"method",appliesTo:["server"],description:"Fetch the user's trial status for server-side gating."},{canonical:"SurfaceSlotComponent",aliases:["Slot","RTSlot"],kind:"component",appliesTo:["web-client"],description:"React slot component that renders the resolved placement; advertised as <Slot> (<RTSlot> is the deprecated prior name)."},{canonical:"AccessGateSurfaceSlot",aliases:["Gate"],kind:"component",appliesTo:["web-client"],description:"React component that gates content behind an entitlement, rendering an upsell placement when denied; advertised as <Gate>."}]});var Qx={workspace_name:"Your workspace",theme:{}};function iO(e){return !!e&&Object.keys(e).length>0}var oO=false;function eS(e={}){let n=(r,o)=>({branding:{...Qx,...r,theme:{...Qx.theme,...r?.theme}},source:o});return iO(e.explicit)?n(e.explicit,"explicit"):e.legacyConfigTheme&&Object.keys(e.legacyConfigTheme).length>0?(e.warnOnLegacy!==false&&!oO&&OL()&&(oO=true,console.warn("[RevTurbine] Branding embedded in the config `theme` field is deprecated. Pass a `branding` option to the SDK, or resolve it via the Branding API. See the Branding resolution ladder in the SDK docs.")),n({theme:e.legacyConfigTheme},"legacy-config")):iO(e.apiBranding)?n(e.apiBranding,"branding-api"):n(void 0,"default")}function OL(){let e=globalThis.process;if(e)return e.env?.NODE_ENV!=="production";let n=globalThis.location;return n?.hostname==="localhost"||n?.hostname==="127.0.0.1"||n?.hostname==="[::1]"}var aO="[REDACTED]",zL=/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g,jL=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,UL=/\d(?:[ -]?\d){12,18}/g;function AL(e){let n=0,r=false;for(let o=e.length-1;o>=0;o-=1){let t=e.charCodeAt(o)-48;if(t<0||t>9)return false;if(r){let i=t*2;i>9&&(i-=9),n+=i;}else n+=t;r=!r;}return n%10===0}function DL(e){let n=0,r=e.replace(zL,()=>(n+=1,aO));return r=r.replace(UL,o=>{let t=o.replace(/[ -]/g,"");return t.length>=13&&t.length<=19&&AL(t)?(n+=1,aO):o}),{value:r,count:n}}function tS(e){let n=0,r=o=>{if(typeof o=="string"){let t=DL(o);return n+=t.count,t.value}if(Array.isArray(o))return o.map(r);if(o&&typeof o=="object"){let t={};for(let[i,s]of Object.entries(o))t[i]=r(s);return t}return o};return {value:r(e),redactions:n}}function FL(e){return jL.test(e.trim())}function NL(e){let n=e.trim().toLowerCase();return `eml_${BL(n).slice(0,16)}`}function nS(e){return FL(e)?{value:NL(e),redacted:true}:{value:e,redacted:false}}function sO(e){let n=nS(e.user_id??""),r=tS({url:e.url,path:e.path,page_title:e.page_title,tags:e.tags,traits:e.identity?.traits??null,properties:e.properties});return {value:{...e,url:r.value.url,path:r.value.path,page_title:r.value.page_title,tags:r.value.tags,user_id:e.user_id===null||e.user_id===void 0?e.user_id:n.value,identity:e.identity?{...e.identity,traits:r.value.traits??void 0}:e.identity,properties:r.value.properties},redactions:r.redactions+(n.redacted?1:0)}}var LL=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function VL(e){let n=[];for(let r=0;r<e.length;r+=1){let o=e.charCodeAt(r);if(o<128)n.push(o);else if(o<2048)n.push(192|o>>6,128|o&63);else if(o>=55296&&o<=56319){let t=o,i=e.charCodeAt(r+1);r+=1,o=65536+((t&1023)<<10)+(i&1023),n.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|o&63);}else n.push(224|o>>12,128|o>>6&63,128|o&63);}return n}function Hr(e,n){return e>>>n|e<<32-n}function BL(e){let n=VL(e),r=n.length*8;for(n.push(128);n.length%64!==56;)n.push(0);for(let f=0;f<4;f+=1)n.push(0);n.push(r>>>24&255,r>>>16&255,r>>>8&255,r&255);let o=1779033703,t=3144134277,i=1013904242,s=2773480762,c=1359893119,l=2600822924,d=528734635,m=1541459225,p=new Array(64);for(let f=0;f<n.length;f+=64){for(let I=0;I<16;I+=1){let z=f+I*4;p[I]=(n[z]<<24|n[z+1]<<16|n[z+2]<<8|n[z+3])>>>0;}for(let I=16;I<64;I+=1){let z=Hr(p[I-15],7)^Hr(p[I-15],18)^p[I-15]>>>3,X=Hr(p[I-2],17)^Hr(p[I-2],19)^p[I-2]>>>10;p[I]=p[I-16]+z+p[I-7]+X>>>0;}let g=o,h=t,x=i,S=s,w=c,$=l,E=d,P=m;for(let I=0;I<64;I+=1){let z=Hr(w,6)^Hr(w,11)^Hr(w,25),X=w&$^~w&E,re=P+z+X+LL[I]+p[I]>>>0,L=Hr(g,2)^Hr(g,13)^Hr(g,22),H=g&h^g&x^h&x,ee=L+H>>>0;P=E,E=$,$=w,w=S+re>>>0,S=x,x=h,h=g,g=re+ee>>>0;}o=o+g>>>0,t=t+h>>>0,i=i+x>>>0,s=s+S>>>0,c=c+w>>>0,l=l+$>>>0,d=d+E>>>0,m=m+P>>>0;}return [o,t,i,s,c,l,d,m].map(f=>f.toString(16).padStart(8,"0")).join("")}var cO={web_signed_up:"system",web_signed_in:"system",cli_signed_up:"system",cli_signed_in:"system",cli_command_executed:"system",changeset_submitted:"workflow",changeset_approved:"workflow",changeset_rejected:"workflow",changeset_deployed:"workflow",changeset_launched:"workflow",changeset_parked:"workflow",changeset_resumed:"workflow",changeset_discarded:"workflow",changeset_archived:"workflow",config_imported:"workflow",config_exported:"workflow",entity_created:"workflow",entity_updated:"workflow",entity_deleted:"workflow"},lO="control_plane_source";function rS(e,n={}){return {eventName:e,properties:{[lO]:cO[e],...n}}}var Sl=class{constructor(n){O(this,"backend");this.backend=n;}getItem(n){try{return this.backend.getItem(n)}catch{return null}}setItem(n,r){try{this.backend.setItem(n,r);}catch{}}removeItem(n){try{this.backend.removeItem(n);}catch{}}};function Li(e){if(e)return e;if(zn())try{return new Sl(window.localStorage)}catch{}return new Xa}function iS(e){if(e)return e;if(zn())try{return new Sl(window.sessionStorage)}catch{}return new Xa}var ML=/^[a-z0-9._]{1,100}$/,Bt={Persisted:"persisted",Transient:"transient"},Mt={Internal:"internal",External:"external"},Zt={Pii:{"x-revturbine-data-classification":"pii"},Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}};var ZL="readOnly";function pn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[ZL]===true||(n[r]=o);}return a.object(n)}function mn(e){let n=pn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(ML)}):n}var {Unrestricted:on}=Zt,{Transient:jn,Persisted:qL}=Bt,{Internal:Co,External:li}=Mt;a.object({page:a.coerce.number().int().min(1).default(1).meta(on),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(on)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li});var HL=e=>a.object({items:a.array(e).meta(on),total:a.number().int().min(0).meta(on),page:a.number().int().min(1).meta(on),per_page:a.number().int().min(1).meta(on),has_more:a.boolean().meta(on)}).meta({id:"PaginatedResponse","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),pe=a.object({created_at:a.string().datetime().meta({...on,readOnly:true}),updated_at:a.string().datetime().meta({...on,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),ne=a.object({id:a.string().min(1).meta({...on,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),_e=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...on,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li});var xp=a.enum(["banner","modal","tooltip","sidebar","inline","toast","fullscreen","email","sms","push","in_page","button","full_page","agent","cli","custom"]).meta({id:"SurfaceType","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),_S=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),KL=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co});var Ft=a.string().min(1).max(200),ct=a.string().min(1).max(100),Eo=a.string().max(500).optional(),jt=a.record(a.string(),a.unknown()).default({}),Cl=a.number().int().min(10).max(100).multipleOf(10),Et=a.string().datetime().nullable().default(null),dt=a.object({environment_id:a.string().min(1).default("production").meta({...on,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co}),ft=a.object({playbook_version_id:a.string().nullable().default(null).meta(on),is_current:a.boolean().default(true).meta({...on,readOnly:true}),is_deleted:a.boolean().default(false).meta({...on,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...on,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...on,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...on,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co}),GL=ne.merge(pe).merge(_e).merge(dt).extend({handle:ct.meta({...on,readOnly:true}),active:a.boolean().default(true).meta({...on,readOnly:true})});function Qt(e){return GL.meta({id:e,"x-revturbine-schema-persistence":qL,"x-revturbine-schema-exposure":Co})}var vS=a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co}),JL=a.enum(["button","plans_page_ctas","plans_page_full","inline_gate_message","tooltip","in_page_card","usage_counter","credit_counter","trial_counter","banner","modal_optional","modal_blocking","toast","email","sms","push","cli","agent_connector","custom_in_app"]).meta({id:"StudioSurfaceType","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":Co}),yO=a.enum(["open_checkout","view_plans","book_demo","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription","switch_billing_period","extend_trial","open_rt_placement","dismiss","snooze","custom"]).meta({id:"CtaActionType","x-revturbine-schema-persistence":jn,"x-revturbine-schema-exposure":li}),He={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},wr={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},WL="x-revturbine-context",XL="x-revturbine-in-config",YL="x-revturbine-sdk-input",QL="x-revturbine-source",eV="x-revturbine-deprecation",tV={[He.Playbook]:wr.Customer,[He.Branding]:wr.Customer,[He.Billing]:wr.Stripe,[He.Metering]:wr.Customer,[He.CustomerOperations]:wr.Runtime,[He.EventIngestion]:wr.Runtime};function lt(e,n){return {[WL]:e,[XL]:n.inConfig??e===He.Playbook,[YL]:n.sdkInput,[QL]:n.source??tV[e]}}function fp(e){return {deprecated:true,[eV]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var xO={Named:"named",Minted:"minted"},SO="x-revturbine-schema-identity";function fn(e="handle"){return {[SO]:{kind:xO.Named,handleField:e}}}function sr(e="handle"){return {[SO]:{kind:xO.Minted,handleField:e}}}var Y=e=>a.object({items:a.array(e)}),Ee=a.object({error:a.string(),code:a.string(),request_id:a.string()}),y=e=>e,Q=a.object({page:a.number().int().min(1).default(1).optional(),per_page:a.number().int().min(1).max(100).default(25).optional(),sort:a.string().optional(),order:a.enum(["asc","desc"]).default("asc").optional(),include_deleted:a.boolean().default(false).optional()}),{Unrestricted:We,Financial:yp}=Zt,{Persisted:Ul,Transient:Sp}=Bt,{External:ui}=Mt,nV=lt(He.Playbook,{sdkInput:true}),rV=lt(He.Playbook,{sdkInput:false}),yS=lt(He.Billing,{sdkInput:false}),Hi=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":ui}),Al=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":ui}),Ip=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":ui}),is=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...We,readOnly:true}),name:Ft.meta(We),handle:ct.meta(We),tier_position:a.number().int().min(0).default(0).meta(We),sort_order:a.number().int().default(0).meta(We),visibility:Hi.default("public").meta(We),metadata:jt.meta(We)}).meta({id:"Plan","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":ui,...nV,...fn()}),iV=Qt("PlanAnchor"),os=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...We,readOnly:true}),handle:ct.meta({...We,readOnly:true}),plan_id:a.string().min(1).meta(We),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(We),segment_id:a.string().nullable().default(null).meta(We),price_amount:a.number().min(0).meta(yp),pricing_model:Al.meta(We),visibility:Hi.default("public").meta(We),stripe_price_id:a.string().optional().meta(We),price_source:Ip.default("static").meta(We)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":ui,...yS,...sr()}),oV=Qt("PlanVariationAnchor"),as=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...We,readOnly:true}),name:Ft.meta(We),handle:ct.meta(We),sort_order:a.number().int().default(0).meta(We),visibility:Hi.default("public").meta(We),metadata:jt.meta(We)}).meta({id:"AddOn","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":ui,...rV,...fn()}),aV=Qt("AddOnAnchor"),ss=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...We,readOnly:true}),handle:ct.meta({...We,readOnly:true}),addon_id:a.string().min(1).meta(We),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(We),segment_id:a.string().nullable().default(null).meta(We),price_amount:a.number().min(0).meta(yp),pricing_model:Al.meta(We),visibility:Hi.default("public").meta(We),stripe_price_id:a.string().optional().meta(We),price_source:Ip.default("static").meta(We)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":ui,...yS,...sr()}),sV=Qt("AddOnVariationAnchor"),cV=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":ui}),cs=ne.merge(pe).merge(_e).extend({stripe_price_id:a.string().min(1).meta(We),stripe_product_id:a.string().min(1).meta(We),billing_period:cV.meta(We),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(yp),currency:KL.meta(yp),pricing_model:Al.meta(We),nickname:a.string().nullable().default(null).meta(We),is_mock:a.boolean().default(false).meta(We),last_updated_from_stripe:Et.meta(We)}).meta({id:"StripePrice","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":ui,...yS});var lV=pn(is),uV=pn(os),dV=pn(as),mV=pn(ss),pV=pn(cs);({"/api/plan-anchors":{get:y({operationId:"listPlanAnchors",requestParams:{query:Q},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:Y(iV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:y({operationId:"listPlans",requestParams:{query:Q},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:Y(is)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"list"}}}),post:y({operationId:"createPlan",summary:"Create plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mn(is)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:is}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"create"}}})},"/api/plans/{planId}":{get:y({operationId:"getPlan",requestParams:{path:a.object({planId:a.string()})},summary:"Get plan by ID",tags:["plans"],responses:{200:{description:"Plan detail",content:{"application/json":{schema:is}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"get"}}}),patch:y({operationId:"updatePlan",requestParams:{path:a.object({planId:a.string()})},summary:"Update plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:lV}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:is}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"update"}}}),delete:y({operationId:"deletePlan",requestParams:{path:a.object({planId:a.string()})},summary:"Delete plan",tags:["plans"],responses:{204:{description:"Plan deleted"},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"delete"}}})},"/api/plans/reorder":{post:y({operationId:"reorderPlans",summary:"Reorder plans",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:a.object({ids:a.array(a.string())})}}},responses:{200:{description:"Reordered"}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"reorder"}}})},"/api/plan-variation-anchors":{get:y({operationId:"listPlanVariationAnchors",requestParams:{query:Q},summary:"List plan variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan variation anchor list",content:{"application/json":{schema:Y(oV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-variation-anchors",persistence:{table:"planVariations",mode:"list"}}})},"/api/plans/{planId}/variations":{get:y({operationId:"listPlanVariations",requestParams:{path:a.object({planId:a.string()}),query:Q},summary:"List plan variations",tags:["plans"],responses:{200:{description:"Plan variations",content:{"application/json":{schema:Y(os)}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"list"}}}),post:y({operationId:"createPlanVariation",requestParams:{path:a.object({planId:a.string()})},summary:"Create plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mn(os)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:os}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"create"}}})},"/api/plan-variations/{variationId}":{get:y({operationId:"getPlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Get plan variation by ID",tags:["plans"],responses:{200:{description:"Plan variation detail",content:{"application/json":{schema:os}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"get"}}}),patch:y({operationId:"updatePlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:uV}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:os}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"update"}}}),delete:y({operationId:"deletePlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Delete plan variation",tags:["plans"],responses:{204:{description:"Plan variation deleted"}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"delete"}}})},"/api/addon-anchors":{get:y({operationId:"listAddOnAnchors",requestParams:{query:Q},summary:"List add-on anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on anchor list",content:{"application/json":{schema:Y(aV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:y({operationId:"listAddOns",requestParams:{query:Q},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:Y(as)}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"list"}}}),post:y({operationId:"createAddOn",summary:"Create add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mn(as)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:as}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"create"}}})},"/api/addons/{addonId}":{get:y({operationId:"getAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Get add-on by ID",tags:["plans"],responses:{200:{description:"Add-on detail",content:{"application/json":{schema:as}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"get"}}}),patch:y({operationId:"updateAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Update add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:dV}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:as}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"update"}}}),delete:y({operationId:"deleteAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Delete add-on",tags:["plans"],responses:{204:{description:"Add-on deleted"}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"delete"}}})},"/api/addon-variation-anchors":{get:y({operationId:"listAddOnVariationAnchors",requestParams:{query:Q},summary:"List add-on variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on variation anchor list",content:{"application/json":{schema:Y(sV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-variation-anchors",persistence:{table:"addonVariations",mode:"list"}}})},"/api/addons/{addonId}/variations":{get:y({operationId:"listAddOnVariations",requestParams:{path:a.object({addonId:a.string()}),query:Q},summary:"List add-on variations",tags:["plans"],responses:{200:{description:"Add-on variations",content:{"application/json":{schema:Y(ss)}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"list"}}}),post:y({operationId:"createAddOnVariation",requestParams:{path:a.object({addonId:a.string()})},summary:"Create add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mn(ss)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:ss}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"create"}}})},"/api/addon-variations/{variationId}":{get:y({operationId:"getAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Get add-on variation by ID",tags:["plans"],responses:{200:{description:"Add-on variation detail",content:{"application/json":{schema:ss}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"get"}}}),patch:y({operationId:"updateAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mV}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:ss}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"update"}}}),delete:y({operationId:"deleteAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Delete add-on variation",tags:["plans"],responses:{204:{description:"Variation deleted"}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"delete"}}})},"/api/stripe-prices":{get:y({operationId:"listStripePrices",requestParams:{query:Q},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:Y(cs)}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"list"}}}),post:y({operationId:"createStripePrice",summary:"Create Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mn(cs)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:cs}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"create"}}})},"/api/stripe-prices/{id}":{get:y({operationId:"getStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Get Stripe price by ID",tags:["plans"],responses:{200:{description:"Stripe price detail",content:{"application/json":{schema:cs}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"get"}}}),patch:y({operationId:"updateStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Update Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:pV}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:cs}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"update"}}}),delete:y({operationId:"deleteStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Delete Stripe price",tags:["plans"],responses:{204:{description:"Stripe price deleted"}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"delete"}}})}});var {Unrestricted:se}=Zt,{Persisted:xS,Transient:Wn}=Bt,{Internal:IO,External:Un}=Mt,PO=lt(He.Playbook,{sdkInput:true}),fV=lt(He.Playbook,{inConfig:false,sdkInput:false}),kO=a.enum(["per_month","per_year","per_billing_period","lifetime","concurrent","per_instance","per_second","per_minute","per_hour","per_6_hours","per_day","per_week"]).meta({id:"UsagePeriodScope","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),Pp=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),gV=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),hV=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),TO=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),El=a.object({entitlement_id:a.string().min(1).meta(se),entitlement_handle:a.string().min(1).meta(se),status:gV.meta(se),limit:a.number().optional().meta(se),used:a.number().optional().meta(se),allocation:Pp.optional().meta(se),enforcement:TO.optional().meta(se),source:hV.optional().meta(se),plan_id:a.string().optional().meta(se),segment_id:a.string().optional().meta(se),seat_type_id:a.string().optional().meta(se),rule_id:a.string().optional().meta(se)}).meta({id:"EntitlementGrant","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),El).optional().meta(se),instance:a.record(a.string(),El).optional().meta(se),user:a.record(a.string(),El).optional().meta(se)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un,"x-revturbine-data-classification":"operational"});var bV=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),_V=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),$O=a.object({kind:_V.meta(se),id:a.string().min(1).meta(se)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),vV=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),ls=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...se,readOnly:true}),name:Ft.meta(se),handle:ct.meta(se),customer_facing_description:a.string().max(500).optional().meta(se),type:_S.meta(se),unit:a.string().max(100).optional().meta(se),period_scope:kO.optional().meta(se),allocation:Pp.optional().meta(se),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(se),sort_order:a.number().int().default(0).meta(se),metadata:jt.meta(se)}).meta({id:"Entitlement","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":Un,...PO,...fn()}),yV=Qt("EntitlementAnchor"),ps=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...se,readOnly:true}),handle:ct.meta({...se,readOnly:true}),entitlement_id:a.string().min(1).meta(se),targets:a.array($O).min(1).meta(se),segment_ids:a.array(a.string()).default([]).meta(se),visibility:bV.default("public").meta(se),period_scope:kO.optional().meta(se),instance:a.string().max(100).optional().meta(se),reset_period:vV.optional().meta(se),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(se),enforcement:TO.optional().meta(se),warning_threshold_percent:Cl.optional().meta(se),overage_price_ref:a.string().optional().meta(se),grace_period_hours:a.number().int().min(0).optional().meta(se),tier_value:a.string().optional().meta(se),rate_value:a.number().optional().meta(se),initial_grant:a.number().optional().meta(se),allowance_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(se),rollover_enabled:a.boolean().optional().meta(se),max_balance:a.union([a.number(),a.literal("unlimited")]).nullable().default(null).meta(se),seat_type_id:a.string().optional().meta(se),included_count:a.union([a.number().int(),a.literal("unlimited")]).optional().meta(se),at_limit_behavior:a.enum(["hard_cap","auto_upgrade_at_renewal"]).optional().meta(se),stripe_metered_price_id:a.string().optional().meta(se),enabled:a.boolean().optional().meta(se),allocation:Pp.optional().meta(se),max_seats:a.union([a.number(),a.literal("unlimited")]).nullable().optional().meta(se),amount_cents:a.number().int().optional().meta(se),currency:a.string().optional().meta(se)}).meta({id:"EntitlementRule","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":IO,...PO,...sr()}),xV=Qt("EntitlementRuleAnchor");ps.superRefine((e,n)=>{e.reset_period==="billing_period"&&e.targets.findIndex(o=>o.kind!=="plan_variation"&&o.kind!=="addon_variation")!==-1&&n.addIssue({code:"custom",path:["reset_period"],params:{code:"billing_period_target_mismatch"},message:"reset_period='billing_period' requires all targets to be plan_variation or addon_variation"});});var SV=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),IV=a.object({code:SV.meta(se),message:a.string().min(1).meta(se),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(se)}).meta({id:"EntitlementRuleWarning","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un}),oS=ps.extend({warnings:a.array(IV).optional().meta(se)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":Un});var aS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({...se,readOnly:true}),rule_id:a.string().min(1).meta(se),experiment_id:a.string().min(1).meta(se),variant_name:a.string().min(1).max(200).meta(se),is_control:a.boolean().default(false).meta(se),override_fields:a.record(a.string(),a.unknown()).default({}).meta(se)}).meta({id:"EntitlementRuleVariant","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":IO,...fV,...sr()}),PV=pn(ls),kV=pn(ps);({"/api/entitlement-anchors":{get:y({operationId:"listEntitlementAnchors",requestParams:{query:Q},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:Y(yV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:y({operationId:"listEntitlementRuleAnchors",requestParams:{query:Q},summary:"List entitlement rule anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement rule anchor list",content:{"application/json":{schema:Y(xV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:y({operationId:"listEntitlements",requestParams:{query:Q},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:Y(ls)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"list"}}}),post:y({operationId:"createEntitlement",summary:"Create entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:mn(ls)}}},responses:{201:{description:"Created",content:{"application/json":{schema:ls}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"create"}}})},"/api/entitlements/{entitlementId}":{get:y({operationId:"getEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Get entitlement",tags:["entitlements"],responses:{200:{description:"Entitlement detail",content:{"application/json":{schema:ls}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"get"}}}),patch:y({operationId:"updateEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Update entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:PV}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ls}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"update"}}}),delete:y({operationId:"deleteEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Delete entitlement",tags:["entitlements"],responses:{204:{description:"Deleted"},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"delete"}}})},"/api/entitlements/{entitlementId}/rules":{get:y({operationId:"listEntitlementRules",requestParams:{path:a.object({entitlementId:a.string()}),query:Q},summary:"List rules for entitlement",tags:["entitlements"],responses:{200:{description:"Rule list",content:{"application/json":{schema:Y(ps)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"list"}}}),post:y({operationId:"createEntitlementRule",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Create entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:mn(ps)}}},responses:{201:{description:"Created",content:{"application/json":{schema:oS}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"create"}}})},"/api/entitlement-rules/{ruleId}":{patch:y({operationId:"updateEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:kV}}},responses:{200:{description:"Updated",content:{"application/json":{schema:oS}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"update"}}}),delete:y({operationId:"deleteEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete entitlement rule",tags:["entitlements"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"delete"}}})},"/api/entitlement-rules/{ruleId}/duplicate":{post:y({operationId:"duplicateEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Duplicate entitlement rule",tags:["entitlements"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:oS}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"duplicate"}}})},"/api/entitlement-rules/{ruleId}/variants":{get:y({operationId:"listEntitlementRuleVariants",requestParams:{path:a.object({ruleId:a.string()}),query:Q},summary:"List A/B variants for rule",tags:["entitlements"],responses:{200:{description:"Variant list",content:{"application/json":{schema:Y(aS)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"list"}}}),post:y({operationId:"createEntitlementRuleVariant",requestParams:{path:a.object({ruleId:a.string()})},summary:"Create rule A/B variant",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:mn(aS)}}},responses:{201:{description:"Created",content:{"application/json":{schema:aS}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:ue}=Zt,{Persisted:Dl,Transient:Ki}=Bt,{External:_r,Internal:TV}=Mt,wO=lt(He.Playbook,{sdkInput:true}),$V=lt(He.Playbook,{inConfig:false,sdkInput:false}),wV=lt(He.Playbook,{inConfig:false,sdkInput:true}),RV=lt(He.Playbook,{inConfig:false,sdkInput:false,source:wr.Runtime}),CV=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]);var RO=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),CO=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),EV=a.object({count:a.number().int().positive().meta(ue),period:CO.meta(ue)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r});a.object({surface_type:a.string().min(1).meta(ue),rules:a.array(EV).meta(ue),cooldown_ms:a.number().int().nonnegative().optional().meta(ue)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":Dl,"x-revturbine-schema-exposure":_r,"x-revturbine-data-classification":"operational",...wV});var OV=a.enum(["open_checkout","view_plans","book_demo","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription","switch_billing_period","extend_trial","open_rt_placement","dismiss","snooze","custom"]).meta({id:"CtaPathType","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),ds=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true}),name:Ft.meta(ue),handle:ct.meta(ue),description:Eo.meta(ue),category:RO.meta(ue),drag_order_in_category:a.number().int().default(0).meta(ue),surface_slot_id:a.string().optional().meta(ue),entitlement_id:a.string().optional().meta(ue),tier_threshold:a.string().optional().meta(ue),threshold_percent:Cl.optional().meta(ue),trial_type:a.enum(["free","reverse"]).optional().meta(ue),trigger_type:a.string().optional().meta(ue),trial_progress_percent:a.number().min(0).max(100).optional().meta(ue),days_before_end:a.number().int().min(0).optional().meta(ue),qualifier:CV.optional().meta(ue),activation_window_start:a.string().datetime().optional().meta(ue),activation_window_end:a.string().datetime().optional().meta(ue),metadata:jt.meta(ue)}).meta({id:"Placement","x-revturbine-schema-persistence":Dl,"x-revturbine-schema-exposure":_r,...wO,...fn()}),zV=Qt("PlacementAnchor"),jV=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),UV=a.object({code:jV.meta(ue),message:a.string().min(1).meta(ue),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(ue)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),uO=ds.extend({warnings:a.array(UV).optional().meta(ue)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r});var AV=a.object({label:a.string().min(1).max(200).meta(ue),cta_path_type:OV.meta(ue),config_fields:a.record(a.string(),a.unknown()).default({}).meta(ue)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Ki,"x-revturbine-schema-exposure":_r}),wl=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true}),handle:ct.meta({...ue,readOnly:true}),placement_id:a.string().min(1).meta(ue),drag_order:a.number().int().default(0).meta(ue),target_plan_ids:a.array(a.string()).default([]).meta(ue),target_plan_billing_cadences:a.array(a.string()).default([]).meta(ue),target_segments:a.array(a.string()).default([]).meta(ue),surface_slot_ids:a.array(a.string()).default([]).meta(ue),surface_template_id:a.string().min(1).meta(ue),content_fields:a.record(a.string(),a.unknown()).default({}).meta(ue),cta_list:a.array(AV).default([]).meta(ue),max_per_period:a.number().int().min(0).nullable().default(null).meta(ue),max_period_unit:CO.default("session").meta(ue),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(ue),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(ue),recommendation_plan_override:a.string().optional().meta(ue)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":Dl,"x-revturbine-schema-exposure":_r,...wO,...sr()}),DV=Qt("PlacementPayloadAnchor");ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({...ue,readOnly:true}),placement_payload_id:a.string().min(1).meta(ue),experiment_id:a.string().min(1).meta(ue),variant_name:a.string().min(1).max(200).meta(ue),is_control:a.boolean().default(false).meta(ue),traffic_allocation_percent:a.number().min(0).max(100).meta(ue),override_fields:a.record(a.string(),a.unknown()).default({}).meta(ue),status:a.enum(["active","paused","complete"]).default("active").meta(ue)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":Dl,"x-revturbine-schema-exposure":TV,...$V,...sr()});var FV=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({surface_slot_handle:a.string().min(1).max(200).meta(ue),surface_type:xp.meta(ue),surface_template_ids:a.array(a.string()).default([]).meta(ue),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(ue),first_seen:a.string().datetime().meta({...ue,readOnly:true}),last_seen:a.string().datetime().meta({...ue,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(ue),placement_count:a.number().int().min(0).default(0).meta({...ue,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":Dl,"x-revturbine-schema-exposure":_r,...RV,...fn("surface_slot_handle")}),NV=pn(ds),LV=pn(wl);({"/api/placement-anchors":{get:y({operationId:"listPlacementAnchors",requestParams:{query:Q},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:Y(zV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:y({operationId:"listPlacements",requestParams:{query:Q},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:Y(ds)}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"list"}}}),post:y({operationId:"createPlacement",summary:"Create placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:mn(ds)}}},responses:{201:{description:"Created",content:{"application/json":{schema:uO}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"create"}}})},"/api/placements/{placementId}":{get:y({operationId:"getPlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Get placement",tags:["placements"],responses:{200:{description:"Placement detail",content:{"application/json":{schema:ds}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"get"}}}),patch:y({operationId:"updatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Update placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:NV}}},responses:{200:{description:"Updated",content:{"application/json":{schema:uO}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"update"}}}),delete:y({operationId:"deletePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Delete placement",tags:["placements"],responses:{204:{description:"Deleted"},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"delete"}}})},"/api/placements/{placementId}/duplicate":{post:y({operationId:"duplicatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Duplicate placement",tags:["placements"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:ds}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"duplicate"}}})},"/api/placements/reorder":{post:y({operationId:"reorderPlacements",summary:"Reorder placements within category",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:a.object({category:RO,ids:a.array(a.string())})}}},responses:{200:{description:"Reordered"}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"reorder"}}})},"/api/placement-payload-anchors":{get:y({operationId:"listPlacementPayloadAnchors",requestParams:{query:Q},summary:"List placement payload anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement payload anchor list",content:{"application/json":{schema:Y(DV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-payload-anchors",persistence:{table:"placementPayloads",mode:"list"}}})},"/api/placements/{placementId}/payloads":{get:y({operationId:"listPlacementPayloads",requestParams:{path:a.object({placementId:a.string()}),query:Q},summary:"List placement payloads",tags:["placements"],responses:{200:{description:"Payload list",content:{"application/json":{schema:Y(wl)}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"list"}}}),post:y({operationId:"createPlacementPayload",requestParams:{path:a.object({placementId:a.string()})},summary:"Create placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:mn(wl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:wl}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"create"}}})},"/api/placement-payloads/{payloadId}":{patch:y({operationId:"updatePlacementPayload",requestParams:{path:a.object({payloadId:a.string()})},summary:"Update placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:LV}}},responses:{200:{description:"Updated",content:{"application/json":{schema:wl}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"update"}}}),delete:y({operationId:"deletePlacementPayload",requestParams:{path:a.object({payloadId:a.string()})},summary:"Delete placement payload",tags:["placements"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"delete"}}})},"/api/surface-slots":{get:y({operationId:"listSurfaceSlots",requestParams:{query:Q},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:Y(FV)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});var {Unrestricted:qe,Pii:Rl}=Zt,{Persisted:EO,Transient:kp}=Bt,{External:Fl}=Mt,SS=a.object({in_trial:a.boolean().meta(qe),trial_type:a.string().optional().meta(qe),plan_handle:a.string().optional().meta(qe),state:a.enum(["active","running_out","expired","converted","none"]).optional().meta(qe),trial_limit_type:a.enum(["time","usage"]).optional().meta(qe),progress_percent:a.number().min(0).max(100).optional().meta(qe),day_number:a.number().int().min(0).optional().meta(qe),days_remaining:a.number().int().min(0).optional().meta(qe),usage_entitlement_handle:a.string().optional().meta(qe),usage_consumed:a.number().int().min(0).optional().meta(qe),usage_remaining:a.number().int().min(0).optional().meta(qe),usage_limit:a.number().int().min(0).optional().meta(qe)}).meta({id:"UserTrialStatus","x-revturbine-schema-persistence":kp,"x-revturbine-schema-exposure":Fl}),OO=a.object({entitlement_handle:a.string().min(1).meta(qe),unit:a.string().min(1).meta(qe),amount:a.number().min(0).meta(qe),limit:a.number().min(0).optional().meta(qe),reset_date:a.string().optional().meta(qe)}).meta({id:"UserUsageEntry","x-revturbine-schema-persistence":kp,"x-revturbine-schema-exposure":Fl}),zO=a.object({id:a.string().min(1).meta(qe),name:a.string().min(1).meta(qe),price:a.string().optional().meta(qe),billing_period:a.enum(["monthly","annual","none"]).optional().meta(qe)}).meta({id:"UserPlanContext","x-revturbine-schema-persistence":kp,"x-revturbine-schema-exposure":Fl}),VV=a.object({product_instance_id:a.string().min(1).meta(qe),user_id:a.string().min(1).meta(Rl),plan:zO.optional().meta(qe),usage:a.record(a.string(),OO).default({}).meta(qe),trial:SS.optional().meta(qe),entitlements:a.record(a.string(),a.union([a.boolean(),El])).default({}).meta(qe)}).meta({id:"UserInstanceContext","x-revturbine-schema-persistence":EO,"x-revturbine-schema-exposure":Fl}),Ya=ne.merge(_e).merge(pe).extend({user_id:a.string().min(1).meta(Rl),account_id:a.string().min(1).nullable().optional().meta(Rl),email:a.string().email().nullable().optional().meta(Rl),email_type:a.string().optional().meta(qe),plan:zO.optional().meta(qe),usage:a.record(a.string(),OO).default({}).meta(qe),trial:SS.optional().meta(qe),payment_failed:a.boolean().optional().meta(qe),payment_at_risk:a.boolean().optional().meta(qe),tiers:a.record(a.string(),a.string()).optional().meta(qe),entitlements:a.record(a.string(),a.union([a.boolean(),El])).default({}).meta(qe),instances:a.array(VV).optional().meta(qe),custom:a.record(a.string(),a.union([a.string(),a.number(),a.boolean(),a.null()])).default({}).meta(Rl),personalization:a.record(a.string(),a.union([a.string(),a.number()])).default({}).meta({...qe,"x-revturbine-schema-persistence":kp}),derived_config_version:a.string().nullable().optional().meta(qe),context_hash:a.string().nullable().optional().meta(qe),derived_computed_at:Et.meta(qe)}).meta({id:"UserContext","x-revturbine-schema-persistence":EO,"x-revturbine-schema-exposure":Fl});({"/api/user-contexts":{get:y({operationId:"listUserContexts",requestParams:{query:Q},summary:"List user contexts",tags:["users"],responses:{200:{description:"User context list",content:{"application/json":{schema:Y(Ya)}}}},"x-revturbine-operation":{exposure:"internal",resource:"user-contexts",persistence:{table:"userContexts",mode:"list"}}})},"/api/user-contexts/{userContextId}":{get:y({operationId:"getUserContext",requestParams:{path:a.object({userContextId:a.string()})},summary:"Get user context",tags:["users"],responses:{200:{description:"User context",content:{"application/json":{schema:Ya}}}},"x-revturbine-operation":{exposure:"internal",resource:"user-contexts",persistence:{table:"userContexts",mode:"get"}}}),patch:y({operationId:"updateUserContext",requestParams:{path:a.object({userContextId:a.string()})},summary:"Update a user context",tags:["users"],requestBody:{required:true,content:{"application/json":{schema:Ya.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ya}}}},"x-revturbine-operation":{exposure:"internal",resource:"user-contexts",persistence:{table:"userContexts",mode:"update"}}}),delete:y({operationId:"deleteUserContext",requestParams:{path:a.object({userContextId:a.string()})},summary:"Delete a user context",tags:["users"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"user-contexts",persistence:{table:"userContexts",mode:"delete"}}})}});var {Unrestricted:yn,Pii:fs}=Zt,{Persisted:IS,Transient:PS}=Bt,{Internal:hs}=Mt,BV=lt(He.CustomerOperations,{sdkInput:false}),MV=a.object({external_id:a.string().min(1).meta(fs),traits:a.record(a.string(),a.unknown()).default({}).meta(fs),plan_id:a.string().optional().meta(yn)}).meta({id:"Identity","x-revturbine-schema-persistence":IS,"x-revturbine-schema-exposure":hs}),dO=ne.merge(pe).merge(_e).extend({external_id:a.string().min(1).meta(fs),identity:MV.meta(fs),stripe_customer_id:a.string().optional().meta(yn),current_plan_id:a.string().optional().meta(yn),subscription_status:a.enum(["active","past_due","canceled","trialing","unpaid","none"]).default("none").meta(yn),status:a.enum(["active","churned","trial","suspended"]).default("active").meta(yn),metadata:jt.meta(yn)}).meta({id:"Customer","x-revturbine-schema-persistence":IS,"x-revturbine-schema-exposure":hs}),ZV=a.enum(["permanent","for_duration"]).meta({id:"CustomerOverrideDuration","x-revturbine-schema-persistence":PS,"x-revturbine-schema-exposure":hs}),qV=a.enum(["grant_plan","grant_addon","grant_entitlement"]).meta({id:"CustomerOverrideType","x-revturbine-schema-persistence":PS,"x-revturbine-schema-exposure":hs}),HV=a.enum(["active","expired","revoked"]).meta({id:"CustomerOverrideStatus","x-revturbine-schema-persistence":PS,"x-revturbine-schema-exposure":hs}),Vi=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({...yn,readOnly:true}),customer_id:a.string().min(1).meta(fs),customer_id_list:a.array(a.string()).optional().meta(fs),override_type:qV.meta(yn),target_id:a.string().min(1).meta(yn),value:a.record(a.string(),a.unknown()).default({}).meta(yn),duration_type:ZV.default("permanent").meta(yn),duration_value:a.string().optional().meta(yn),expiry_date:Et.meta(yn),status:HV.default("active").meta(yn),reason:a.string().max(500).optional().meta(yn),created_by:a.string().optional().meta(yn)}).meta({id:"CustomerOverride","x-revturbine-schema-persistence":IS,"x-revturbine-schema-exposure":hs,...BV,...sr()});({"/api/customers":{get:y({operationId:"listCustomers",requestParams:{query:Q},summary:"List customers",tags:["customers"],responses:{200:{description:"Customer list",content:{"application/json":{schema:Y(dO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"customers",persistence:{table:"customers",mode:"list"}}})},"/api/customers/{customerId}":{get:y({operationId:"getCustomer",requestParams:{path:a.object({customerId:a.string()})},summary:"Get customer by ID",tags:["customers"],responses:{200:{description:"Customer",content:{"application/json":{schema:dO}}}},"x-revturbine-operation":{exposure:"internal",resource:"customers",persistence:{table:"customers",mode:"get"}}})},"/api/customer-overrides":{get:y({operationId:"listCustomerOverrides",requestParams:{query:Q},summary:"List customer overrides",tags:["customers"],responses:{200:{description:"Override list",content:{"application/json":{schema:Y(Vi)}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"list"}}})},"/api/customer-overrides/{overrideId}":{get:y({operationId:"getCustomerOverride",requestParams:{path:a.object({overrideId:a.string()})},summary:"Get customer override",tags:["customers"],responses:{200:{description:"Override",content:{"application/json":{schema:Vi}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"get"}}}),patch:y({operationId:"updateCustomerOverride",requestParams:{path:a.object({overrideId:a.string()})},summary:"Update customer override",tags:["customers"],requestBody:{required:true,content:{"application/json":{schema:Vi.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Vi}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"update"}}}),delete:y({operationId:"deleteCustomerOverride",requestParams:{path:a.object({overrideId:a.string()})},summary:"Delete customer override",tags:["customers"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"delete"}}})},"/api/customer-overrides/{overrideId}/revoke":{post:y({operationId:"revokeCustomerOverride",requestParams:{path:a.object({overrideId:a.string()})},summary:"Revoke an active customer override",tags:["customers"],responses:{200:{description:"Revoked",content:{"application/json":{schema:Vi}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"update"}}})},"/api/customer-overrides/{overrideId}/duplicate":{post:y({operationId:"duplicateCustomerOverride",requestParams:{path:a.object({overrideId:a.string()})},summary:"Duplicate customer override for another customer",tags:["customers"],requestBody:{required:true,content:{"application/json":{schema:a.object({customer_id:a.string()})}}},responses:{201:{description:"Duplicated",content:{"application/json":{schema:Vi}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"create"}}})}});var {Unrestricted:Gt}=Zt,{Persisted:kS,Transient:jO}=Bt,{Internal:Nl}=Mt,KV=lt(He.Playbook,{sdkInput:true}),UO=lt(He.Playbook,{inConfig:false,sdkInput:true}),GV=a.enum(["default","custom"]).meta({id:"DimensionCategory","x-revturbine-schema-persistence":jO,"x-revturbine-schema-exposure":Nl}),JV=a.enum(["system","sdk_trait","sdk_trait_enum","cdp_property","manual_list"]).meta({id:"DimensionSourceType","x-revturbine-schema-persistence":jO,"x-revturbine-schema-exposure":Nl}),sS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),name:Ft.meta(Gt),handle:ct.optional().meta(Gt),category:GV.default("custom").meta(Gt),visibility_toggle:a.boolean().default(true).meta(Gt),source_type:JV.default("system").meta(Gt),estimated_size:a.number().int().min(0).optional().meta(Gt)}).meta({id:"SegmentDimension","x-revturbine-schema-persistence":kS,"x-revturbine-schema-exposure":Nl,...UO,...fn()}),WV=Qt("SegmentDimensionAnchor"),cS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),dimension_id:a.string().min(1).meta(Gt),name:Ft.meta(Gt),handle:ct.meta(Gt),description:Eo.meta(Gt),definition_rule:a.record(a.string(),a.unknown()).optional().meta(Gt),used_in_count:a.number().int().min(0).default(0).meta({...Gt,readOnly:true})}).meta({id:"SegmentValue","x-revturbine-schema-persistence":kS,"x-revturbine-schema-exposure":Nl,...UO,...fn()}),XV=Qt("SegmentValueAnchor");ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),name:Ft.meta(Gt),handle:ct.meta(Gt),description:Eo.meta(Gt),rules:a.record(a.string(),a.unknown()).default({}).meta(Gt),is_active:a.boolean().default(true).meta(Gt),estimated_size:a.number().int().min(0).nullable().default(null).meta(Gt),metadata:jt.meta(Gt)}).meta({id:"Segment","x-revturbine-schema-persistence":kS,"x-revturbine-schema-exposure":Nl,...KV,...fn()});({"/api/segment-dimension-anchors":{get:y({operationId:"listSegmentDimensionAnchors",requestParams:{query:Q},summary:"List segment dimension anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment dimension anchor list",content:{"application/json":{schema:Y(WV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-dimension-anchors",persistence:{table:"segmentDimensions",mode:"list"}}})},"/api/segment-value-anchors":{get:y({operationId:"listSegmentValueAnchors",requestParams:{query:Q},summary:"List segment value anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment value anchor list",content:{"application/json":{schema:Y(XV)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-value-anchors",persistence:{table:"segmentValues",mode:"list"}}})},"/api/segments":{get:y({operationId:"listSegmentDimensions",requestParams:{query:Q},summary:"List segment dimensions",tags:["segments"],responses:{200:{description:"Dimension list",content:{"application/json":{schema:Y(sS)}}}},"x-revturbine-operation":{exposure:"internal",resource:"segments",persistence:{table:"segmentDimensionVersions",mode:"list"}}})},"/api/segments/custom":{post:y({operationId:"createCustomDimension",summary:"Create custom segment dimension",tags:["segments"],requestBody:{required:true,content:{"application/json":{schema:a.object({name:a.string(),description:a.string().optional()})}}},responses:{201:{description:"Created",content:{"application/json":{schema:sS}}}},"x-revturbine-operation":{exposure:"internal",resource:"segments",persistence:{table:"segmentDimensionVersions",mode:"create"}}})},"/api/segments/{dimensionId}":{delete:y({operationId:"deleteCustomDimension",requestParams:{path:a.object({dimensionId:a.string()})},summary:"Delete custom dimension",tags:["segments"],responses:{204:{description:"Deleted"},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"segments",persistence:{table:"segmentDimensionVersions",mode:"delete"}}})},"/api/segments/{dimensionId}/visibility":{patch:y({operationId:"toggleDimensionVisibility",requestParams:{path:a.object({dimensionId:a.string()})},summary:"Toggle dimension visibility",tags:["segments"],requestBody:{required:true,content:{"application/json":{schema:a.object({visible:a.boolean()})}}},responses:{200:{description:"Updated",content:{"application/json":{schema:sS}}}},"x-revturbine-operation":{exposure:"internal",resource:"segments",persistence:{table:"segmentDimensionVersions",mode:"update"}}})},"/api/segments/{dimensionId}/values":{get:y({operationId:"listSegmentValues",requestParams:{path:a.object({dimensionId:a.string()}),query:Q},summary:"List segment values for dimension",tags:["segments"],responses:{200:{description:"Value list",content:{"application/json":{schema:Y(cS)}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-values",persistence:{table:"segmentValueVersions",mode:"list"}}}),post:y({operationId:"createSegmentValue",requestParams:{path:a.object({dimensionId:a.string()})},summary:"Create segment value",tags:["segments"],requestBody:{required:true,content:{"application/json":{schema:a.object({name:a.string(),handle:a.string(),definition_rule:a.record(a.string(),a.unknown()).optional()})}}},responses:{201:{description:"Created",content:{"application/json":{schema:cS}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-values",persistence:{table:"segmentValueVersions",mode:"create"}}})},"/api/segment-values/{valueId}":{patch:y({operationId:"updateSegmentValue",requestParams:{path:a.object({valueId:a.string()})},summary:"Update segment value",tags:["segments"],requestBody:{required:true,content:{"application/json":{schema:a.object({name:a.string().optional(),definition_rule:a.record(a.string(),a.unknown()).optional()})}}},responses:{200:{description:"Updated",content:{"application/json":{schema:cS}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-values",persistence:{table:"segmentValueVersions",mode:"update"}}}),delete:y({operationId:"deleteSegmentValue",requestParams:{path:a.object({valueId:a.string()})},summary:"Delete segment value",tags:["segments"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"segment-values",persistence:{table:"segmentValueVersions",mode:"delete"}}})}});var {Unrestricted:Ce}=Zt,{Persisted:bs,Transient:AO}=Bt,{External:Gi}=Mt,TS=lt(He.Playbook,{sdkInput:true}),YV=lt(He.Playbook,{inConfig:false,sdkInput:false}),QV=lt(He.Playbook,{inConfig:false,sdkInput:true}),eB=lt(He.Playbook,{inConfig:false,sdkInput:true,source:wr.CodeConstant});ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Ce,readOnly:true}),handle:ct.meta({...Ce,readOnly:true}),name:Ft.meta(Ce),channel:a.enum(["in_app","email","push","sms","webhook"]).meta(Ce),subject:a.string().max(500).optional().meta(Ce),body:a.string().meta(Ce),template_variables:a.array(a.string()).default([]).meta(Ce),metadata:jt.meta(Ce)}).meta({id:"Message","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...YV,...sr()});var lS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Ce,readOnly:true}),name:Ft.meta(Ce),handle:ct.meta(Ce),action_type:yO.meta(Ce),target_url:a.string().optional().meta(Ce),target_plan_id:a.string().optional().meta(Ce),config_fields:a.record(a.string(),a.unknown()).default({}).meta(Ce),metadata:jt.meta(Ce)}).meta({id:"CtaPath","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...TS,...fn()}),tB=Qt("CtaPathAnchor"),nB=a.enum(["header","body","secondary_body","message","cta_label","secondary_label","image","toggle","duration","send_delay","entitlement","plan","dropdown","json"]).meta({id:"TemplateFieldType","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...eB}),rB=a.object({name:a.string().min(1),field_type:nB,required:a.boolean().default(false),default_value:a.unknown().optional(),order:a.number().int().min(0).optional(),help_text:a.string().max(500).optional()}).meta({id:"FieldDefinition","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...QV}),uS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Ce,readOnly:true}),name:Ft.meta(Ce),handle:ct.meta(Ce),surface_type:JL.meta(Ce),field_definitions:a.array(rB).default([]).meta(Ce),description:Eo.meta(Ce)}).meta({id:"SurfaceTemplate","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...TS,...fn()}),iB=Qt("SurfaceTemplateAnchor"),dS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...Ce,readOnly:true}),name:Ft.meta(Ce),handle:ct.meta(Ce),content_fields:a.record(a.string(),a.unknown()).default({}).meta(Ce),variation_dimension_id:a.string().optional().meta(Ce),variation_values:a.array(a.object({segment_value_id:a.string(),content_fields_override:a.record(a.string(),a.unknown())})).optional().meta(Ce),notes:a.string().max(1e3).optional().meta(Ce),used_in_count:a.number().int().min(0).default(0).meta({...Ce,readOnly:true})}).meta({id:"MessageBlockRecord","x-revturbine-schema-persistence":bs,"x-revturbine-schema-exposure":Gi,...TS,...fn()}),oB=Qt("MessageBlockRecordAnchor"),aB=a.object({segment_id:a.string().min(1).meta(Ce),message_block_id:a.string().min(1).meta(Ce),ui_path_id:a.string().optional().meta(Ce),promotion_id:a.string().optional().meta(Ce)}).meta({id:"ContentPayloadSegmentEntry","x-revturbine-schema-persistence":AO,"x-revturbine-schema-exposure":Gi});a.object({payload_id:a.string().min(1).meta(Ce),tenant_id:a.string().min(1).meta(Ce),name:Ft.meta(Ce),surface_template_id:a.string().min(1).meta(Ce),default_message_block_id:a.string().min(1).meta(Ce),segment_content_map:a.array(aB).optional().meta(Ce),ui_path_id:a.string().optional().meta(Ce),promotion_id:a.string().optional().meta(Ce),status:a.enum(["draft","active","inactive"]).meta(Ce),created_at:a.string().datetime().optional().meta({...Ce,readOnly:true}),updated_at:a.string().datetime().optional().meta({...Ce,readOnly:true})}).meta({id:"ContentPlacementPayload","x-revturbine-schema-persistence":AO,"x-revturbine-schema-exposure":Gi});({"/api/surface-template-anchors":{get:y({operationId:"listSurfaceTemplateAnchors",requestParams:{query:Q},summary:"List surface template anchors (identity registry)",tags:["content"],responses:{200:{description:"Surface template anchor list",content:{"application/json":{schema:Y(iB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"surface-template-anchors",persistence:{table:"surfaceTemplates",mode:"list"}}})},"/api/surface-templates":{get:y({operationId:"listSurfaceTemplates",requestParams:{query:Q},summary:"List surface templates",tags:["content"],responses:{200:{description:"Template list",content:{"application/json":{schema:Y(uS)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-templates",persistence:{table:"surfaceTemplateVersions",mode:"list"}}})},"/api/message-block-record-anchors":{get:y({operationId:"listMessageBlockRecordAnchors",requestParams:{query:Q},summary:"List message block anchors (identity registry)",tags:["content"],responses:{200:{description:"Message block anchor list",content:{"application/json":{schema:Y(oB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"message-block-record-anchors",persistence:{table:"messageBlocks",mode:"list"}}})},"/api/messages":{get:y({operationId:"listMessageBlocks",requestParams:{query:Q},summary:"List message blocks",tags:["content"],responses:{200:{description:"Message block list",content:{"application/json":{schema:Y(dS)}}}},"x-revturbine-operation":{exposure:"external",resource:"message-blocks",persistence:{table:"messageBlockVersions",mode:"list"}}})},"/api/cta-path-anchors":{get:y({operationId:"listCtaPathAnchors",requestParams:{query:Q},summary:"List CTA path anchors (identity registry)",tags:["content"],responses:{200:{description:"CTA path anchor list",content:{"application/json":{schema:Y(tB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"cta-path-anchors",persistence:{table:"ctaPaths",mode:"list"}}})},"/api/cta-paths":{get:y({operationId:"listCtaPaths",requestParams:{query:Q},summary:"List CTA paths",tags:["content"],responses:{200:{description:"CTA path list",content:{"application/json":{schema:Y(lS)}}}},"x-revturbine-operation":{exposure:"external",resource:"cta-paths",persistence:{table:"ctaPathVersions",mode:"list"}}})}});var {Unrestricted:ms,Pii:sB}=Zt,{Persisted:DO}=Bt,{Internal:cB,External:lB}=Mt,uB=lt(He.Branding,{sdkInput:false});a.object({id:a.string().min(1).meta({...ms,readOnly:true}),name:a.string().min(1).max(120).meta(ms),mode:a.enum(["light","dark","system"]).default("system").meta(ms),tokens:a.record(a.string(),a.string()).default({}).meta(ms)}).meta({id:"Theme","x-revturbine-schema-persistence":DO,"x-revturbine-schema-exposure":lB,...uB});var mO=ne.merge(pe).extend({user_id:a.string().min(1).meta(sB),scope:a.string().min(1).meta(ms),preferences:a.record(a.string(),a.unknown()).default({}).meta(ms)}).meta({id:"UiPreference","x-revturbine-schema-persistence":DO,"x-revturbine-schema-exposure":cB});({"/api/ui-preferences":{get:y({operationId:"listUiPreferences",requestParams:{query:Q},summary:"List UI preferences",tags:["ui"],responses:{200:{description:"UI preferences list response",content:{"application/json":{schema:Y(mO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"ui-preferences",persistence:{table:"uiPreferences",mode:"list"}}}),put:y({operationId:"upsertUiPreferences",summary:"Upsert UI preferences",tags:["ui"],requestBody:{required:true,content:{"application/json":{schema:a.array(pn(mO))}}},responses:{200:{description:"UI preferences upsert response",content:{"application/json":{schema:a.object({updated:a.number().int().min(0)})}}}},"x-revturbine-operation":{exposure:"internal",resource:"ui-preferences",persistence:{table:"uiPreferences",mode:"upsert",writeSchema:"UiPreferenceSchema#writable"}}})}});var {Unrestricted:Oe,Financial:Kr}=Zt,{Persisted:FO,Transient:Ll}=Bt,{External:Vl,Internal:NO}=Mt,dB=a.object({month:a.string().meta(Oe),cohort_size:a.number().int().min(0).meta(Oe),retained:a.number().int().min(0).meta(Oe),retention_rate:a.number().min(0).max(1).meta(Oe),revenue_cents:a.number().int().min(0).meta(Kr)}).meta({id:"CohortMonth","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Vl}),mB=a.object({step:a.string().meta(Oe),label:a.string().meta(Oe),count:a.number().int().min(0).meta(Oe),conversion_rate:a.number().min(0).max(1).meta(Oe),drop_off_rate:a.number().min(0).max(1).meta(Oe)}).meta({id:"FunnelStep","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Vl}),pB=a.object({placement_id:a.string().meta(Oe),placement_name:a.string().meta(Oe),impressions:a.number().int().min(0).meta(Oe),clicks:a.number().int().min(0).meta(Oe),conversions:a.number().int().min(0).meta(Oe),ctr:a.number().min(0).meta(Oe),conversion_rate:a.number().min(0).meta(Oe),revenue_cents:a.number().int().min(0).meta(Kr)}).meta({id:"PlacementPerformanceRow","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Vl}),fB=a.object({date:a.string().meta(Oe),mrr_cents:a.number().int().min(0).meta(Kr),arr_cents:a.number().int().min(0).meta(Kr),new_mrr_cents:a.number().int().min(0).meta(Kr),churned_mrr_cents:a.number().int().min(0).meta(Kr),expansion_mrr_cents:a.number().int().min(0).meta(Kr),net_new_mrr_cents:a.number().int().meta(Kr)}).meta({id:"RevenueMetric","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Vl}),gB=a.object({metric_key:a.string().min(1).meta(Oe),label:a.string().meta(Oe),current_value:a.number().meta(Kr),previous_value:a.number().nullable().default(null).meta(Kr),change_percent:a.number().nullable().default(null).meta(Oe),period:a.string().meta(Oe),unit:a.enum(["count","cents","percent","ratio","seconds"]).default("count").meta(Oe)}).meta({id:"KpiAggregate","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Vl}),pO=ne.merge(pe).merge(_e).extend({report_type:a.enum(["plan_drift","entitlement_drift","usage_anomaly","revenue_anomaly"]).meta(Oe),severity:vS.meta(Oe),resource_type:a.string().min(1).meta(Oe),resource_id:a.string().min(1).meta(Oe),summary:a.string().max(1e3).meta(Oe),expected_value:a.unknown().optional().meta(Oe),actual_value:a.unknown().optional().meta(Oe),affected_customer_count:a.number().int().min(0).default(0).meta(Oe),is_resolved:a.boolean().default(false).meta(Oe),resolved_at:Et.meta(Oe),metadata:jt.meta(Oe)}).meta({id:"DriftReport","x-revturbine-schema-persistence":FO,"x-revturbine-schema-exposure":NO}),fO=ne.merge(pe).merge(_e).extend({alert_type:a.enum(["usage_threshold","revenue_drop","conversion_drop","experiment_significance","drift_detected","custom"]).meta(Oe),severity:vS.meta(Oe),title:a.string().min(1).max(300).meta(Oe),description:a.string().max(2e3).meta(Oe),resource_type:a.string().optional().meta(Oe),resource_id:a.string().optional().meta(Oe),is_acknowledged:a.boolean().default(false).meta(Oe),acknowledged_at:Et.meta(Oe),acknowledged_by:a.string().nullable().default(null).meta(Oe),metadata:jt.meta(Oe)}).meta({id:"Alert","x-revturbine-schema-persistence":FO,"x-revturbine-schema-exposure":NO});({"/api/analytics/kpis":{get:y({operationId:"listKpiAggregates",requestParams:{query:Q},summary:"List KPI aggregate metrics",tags:["analytics"],responses:{200:{description:"KPI list",content:{"application/json":{schema:Y(gB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"kpiAggregates",mode:"list"}}})},"/api/analytics/placement-performance":{get:y({operationId:"listPlacementPerformance",requestParams:{query:Q},summary:"List placement performance rows",tags:["analytics"],responses:{200:{description:"Performance rows",content:{"application/json":{schema:Y(pB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"placementPerformance",mode:"list"}}})},"/api/analytics/revenue":{get:y({operationId:"listRevenueMetrics",requestParams:{query:Q},summary:"List revenue metrics over time",tags:["analytics"],responses:{200:{description:"Revenue metrics",content:{"application/json":{schema:Y(fB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"revenueMetrics",mode:"list"}}})},"/api/analytics/cohorts":{get:y({operationId:"listCohortMetrics",requestParams:{query:Q},summary:"List cohort retention metrics",tags:["analytics"],responses:{200:{description:"Cohort metrics",content:{"application/json":{schema:Y(dB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"cohortMetrics",mode:"list"}}})},"/api/analytics/funnels":{get:y({operationId:"listFunnelSteps",requestParams:{query:Q},summary:"List funnel step metrics",tags:["analytics"],responses:{200:{description:"Funnel steps",content:{"application/json":{schema:Y(mB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"funnelSteps",mode:"list"}}})},"/api/analytics/drift-reports":{get:y({operationId:"listDriftReports",requestParams:{query:Q},summary:"List drift reports",tags:["analytics"],responses:{200:{description:"Drift reports",content:{"application/json":{schema:Y(pO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"driftReports",mode:"list"}}})},"/api/analytics/drift-reports/{reportId}/resolve":{post:y({operationId:"resolveDriftReport",requestParams:{path:a.object({reportId:a.string()})},summary:"Mark a drift report as resolved",tags:["analytics"],responses:{200:{description:"Resolved",content:{"application/json":{schema:pO}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"driftReports",mode:"update"}}})},"/api/analytics/alerts":{get:y({operationId:"listAlerts",requestParams:{query:Q},summary:"List alerts",tags:["analytics"],responses:{200:{description:"Alert list",content:{"application/json":{schema:Y(fO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"alerts",mode:"list"}}})},"/api/analytics/alerts/{alertId}/acknowledge":{post:y({operationId:"acknowledgeAlert",requestParams:{path:a.object({alertId:a.string()})},summary:"Acknowledge an alert",tags:["analytics"],responses:{200:{description:"Acknowledged",content:{"application/json":{schema:fO}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"alerts",mode:"update"}}})}});var {Unrestricted:M,Pii:gs}=Zt,{Persisted:LO,Transient:Ut}=Bt,{Internal:Ji,External:an}=Mt,VO=a.enum(["clickstream","telemetry","sdk","workflow","system"]).meta({id:"EventSource","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an}),hB=ne.extend({event_type:a.string().min(1).meta(M),source:VO.default("sdk").meta(M),tenant_id:a.string().min(1).optional().meta(M),user_id:a.string().min(1).optional().meta(gs),session_id:a.string().min(1).optional().meta(gs),occurred_at:a.string().datetime().meta(M),request_id:a.string().min(1).meta(M),attributes:a.record(a.string(),a.unknown()).default({}).meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M)}).meta({id:"EventEnvelope","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji}),bB=hB.extend({ingested_at:a.string().datetime().meta(M)}).meta({id:"IngestedEvent","x-revturbine-schema-persistence":LO,"x-revturbine-schema-exposure":Ji});a.array(a.object({id:a.string().min(1).optional().meta(M),event_type:a.string().min(1).meta(M),occurred_at:a.string().datetime().optional().meta(M),tenant_id:a.string().min(1).optional().meta(M),user_id:a.string().min(1).optional().meta(gs),session_id:a.string().min(1).optional().meta(gs),attributes:a.record(a.string(),a.unknown()).optional().meta(M),payload:a.record(a.string(),a.unknown()).optional().meta(M),message:a.string().optional().meta(M),level:a.string().optional().meta(M),path:a.string().optional().meta(M)})).meta({id:"EventIngestBatch","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji});var _B=a.enum(["impression","dismiss","remind_me_later","cta_clicked","cta_completed","suppress"]).meta({id:"TreatmentInteractionType","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({user_id:a.string().min(1).meta(gs),placement_id:a.string().min(1).meta(M),treatment_id:a.string().min(1).optional().meta(M),surface_slot_id:a.string().min(1).optional().meta(M),surface_template_id:a.string().min(1).optional().meta(M),payload_id:a.string().min(1).optional().meta(M),interaction_type:_B.meta(M),interaction_at:a.string().datetime().optional().meta(M),metadata:a.record(a.string(),a.unknown()).optional().meta(M)}).meta({id:"TreatmentInteractionInput","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.enum(["trial_midpoint","trial_expiring","trial_expired","usage_limit_approaching","usage_limit_reached","credit_balance_low","seat_limit_reached","feature_gated","cancel_intent","payment_failed","auto_renewal_reminder","onboarding_complete","invite_teammate_prompt","referral_offer","plan_upgrade_nudge"]).meta({id:"TriggerEventType","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({days_remaining:a.number().int().min(0).optional().meta(M)}).meta({id:"TrialTriggerPayload","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({entitlement_handle:a.string().optional().meta(M),current_usage:a.number().min(0).optional().meta(M),usage_limit:a.number().min(0).optional().meta(M),usage_percent:a.number().min(0).max(100).optional().meta(M),threshold:a.number().min(0).optional().meta(M),balance:a.number().min(0).optional().meta(M),allocation:a.number().min(0).optional().meta(M),seats_used:a.number().int().min(0).optional().meta(M),seats_allowed:a.number().int().min(0).optional().meta(M)}).meta({id:"UsageTriggerPayload","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({feature:a.string().min(1).meta(M)}).meta({id:"FeatureGateTriggerPayload","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({retry_count:a.number().int().min(0).optional().meta(M),renewal_date:a.string().optional().meta(M)}).meta({id:"PaymentTriggerPayload","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({event_type:a.string().min(1).meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M)}).meta({id:"SemanticEvent","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});var yB=a.enum(["system","workflow"]).meta({id:"ControlPlaneEventSource","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an}),xB=a.enum(["web_signed_up","web_signed_in","cli_signed_up","cli_signed_in","cli_command_executed","changeset_submitted","changeset_approved","changeset_rejected","changeset_deployed","changeset_launched","changeset_parked","changeset_resumed","changeset_discarded","changeset_archived","config_imported","config_exported","entity_created","entity_updated","entity_deleted"]).meta({id:"ControlPlaneEventType","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({event_type:xB.meta(M),source:yB.meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M)}).meta({id:"ControlPlaneSemanticEvent","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({q:a.string().optional().meta(M),source:VO.optional().meta(M),event_type:a.string().optional().meta(M),from:a.string().datetime().optional().meta(M),to:a.string().datetime().optional().meta(M),page:a.coerce.number().int().min(1).default(1).meta(M),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(M)}).meta({id:"EventSearchParams","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji});var SB=a.enum(["stripe","apple","google"]).meta({id:"WebhookEventSource","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji}),IB=a.enum(["processed","failed","skipped"]).meta({id:"WebhookEventStatus","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji}),mS=ne.merge(pe).merge(_e).extend({event_id:a.string().min(1).meta(M),event_type:a.string().min(1).meta(M),source:SB.meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M),status:IB.default("processed").meta(M),processed_at:a.string().datetime().optional().meta(M),error_message:a.string().optional().meta(M)}).meta({id:"WebhookEventLog","x-revturbine-schema-persistence":LO,"x-revturbine-schema-exposure":Ji});a.object({accepted:a.number().int().min(0).meta(M)}).meta({id:"null","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":Ji});var PB=500,kB=a.enum(["explicit","automatic","derived","raw"]).meta({id:"EventOrigin","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an}),TB=a.object({environment_id:a.string().min(1).meta(M),user_id:a.string().min(1).meta(gs),account_id:a.string().min(1).meta(M),event_name:a.string().min(1).max(120).meta(M),event_ts:a.string().datetime().meta(M),properties:a.string().optional().meta(M),surface_slot_id:a.string().nullable().optional().meta(M),placement_id:a.string().nullable().optional().meta(M),payload_id:a.string().nullable().optional().meta(M),request_id:a.string().optional().meta(M),experiment_id:a.string().nullable().optional().meta(M),variant_key:a.string().nullable().optional().meta(M),tenant_id:a.string().optional().meta(M),event_id:a.string().nullable().optional().meta(M),origin:kB.nullable().optional().meta(M),playbook_version:a.string().nullable().optional().meta(M),decision_id:a.string().nullable().optional().meta(M)}).meta({id:"TrackEvent","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({events:a.array(TB).min(1).max(PB).meta(M)}).meta({id:"TrackIngestBatch","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});var wB=10,RB=a.enum(["sdk_init","sdk_error","sdk_validation_warning"]).meta({id:"SdkMetaEventType","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an}),CB=a.object({plans:a.number().int().min(0).meta(M),entitlements:a.number().int().min(0).meta(M),entitlement_rules:a.number().int().min(0).meta(M),segments:a.number().int().min(0).meta(M),placements:a.number().int().min(0).meta(M),placement_payloads:a.number().int().min(0).meta(M),content_ui_paths:a.number().int().min(0).meta(M),surface_templates:a.number().int().min(0).meta(M)}).meta({id:"SdkConfigShape","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an}),EB=a.object({event_type:RB.meta(M),occurred_at:a.string().datetime().meta(M),request_id:a.string().min(1).optional().meta(M),config_hash_id:a.string().min(1).max(64).optional().meta(M),sdk_version:a.string().min(1).max(64).optional().meta(M),runtime_mode:a.string().min(1).max(64).optional().meta(M),schema_version:a.string().min(1).max(64).optional().meta(M),bundle_version:a.string().min(1).max(64).optional().meta(M),config_shape:CB.optional().meta(M),message:a.string().max(500).optional().meta(M)}).meta({id:"SdkMetaEvent","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});a.object({events:a.array(EB).min(1).max(wB).meta(M)}).meta({id:"SdkMetaIngestBatch","x-revturbine-schema-persistence":Ut,"x-revturbine-schema-exposure":an});({"/api/events/search":{get:y({operationId:"searchEvents",summary:"Search ingested events",tags:["events"],responses:{200:{description:"Paginated event results",content:{"application/json":{schema:HL(bB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"events"}})},"/api/webhook-events":{get:y({operationId:"listWebhookEvents",requestParams:{query:Q},summary:"List webhook event log entries",tags:["events"],responses:{200:{description:"Webhook event list",content:{"application/json":{schema:Y(mS)}}}},"x-revturbine-operation":{exposure:"internal",resource:"webhook-events",persistence:{table:"webhookEventLog",mode:"list"}}})}});var {Unrestricted:xe}=Zt,{Persisted:Bl,Transient:Ml}=Bt,{Internal:Gr}=Mt,BO=lt(He.Playbook,{sdkInput:true}),MO=lt(He.Playbook,{inConfig:false,sdkInput:true}),zB=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":Ml,"x-revturbine-schema-exposure":Gr}),$S=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":Ml,"x-revturbine-schema-exposure":Gr}),ZO=a.object({name:Ft.meta(xe),handle:ct.meta(xe),plan_id:a.string().nullable().optional().meta(xe),segment_id:a.string().nullable().optional().meta(xe),trial_limit_type:$S.default("time").meta(xe),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(xe),grace_period_days:a.number().int().min(0).default(0).meta(xe),usage_entitlement_handle:a.string().min(1).optional().meta(xe),usage_limit_value:a.number().int().min(1).optional().meta(xe),require_payment_method:a.boolean().default(false).meta(xe),auto_convert:a.boolean().default(true).meta(xe),convert_to_plan_id:a.string().optional().meta(xe),fallback_plan_id:a.string().optional().meta(xe),limit_per_customer:a.number().int().min(1).default(1).meta(xe),is_active:a.boolean().default(true).meta(xe),metadata:jt.meta(xe)}),Qa=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...xe,readOnly:true})}).merge(ZO).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Gr,...BO,...fn()}),jB=Qt("FreeTrialRuleAnchor"),UB=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":Ml,"x-revturbine-schema-exposure":Gr}),qO=a.object({name:Ft.meta(xe),handle:ct.meta(xe),premium_plan_id:a.string().min(1).meta(xe),fallback_plan_id:a.string().min(1).meta(xe),segment_id:a.string().nullable().optional().meta(xe),trial_limit_type:$S.default("time").meta(xe),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(xe),usage_entitlement_handle:a.string().min(1).optional().meta(xe),usage_limit_value:a.number().int().min(1).optional().meta(xe),start_policy:UB.default("signup").meta(xe),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(xe),entitlements_during_trial:a.array(a.string()).default([]).meta(xe),is_active:a.boolean().default(true).meta(xe),metadata:jt.meta(xe)}),es=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...xe,readOnly:true})}).merge(qO).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Gr,...BO,...fn()}),AB=Qt("ReverseTrialRuleAnchor"),HO=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":Ml,"x-revturbine-schema-exposure":Gr}),KO=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":Ml,"x-revturbine-schema-exposure":Gr}),ts=ne.merge(pe).merge(_e).extend({trial_limit_policy:HO.default("1_per_lifetime").meta(xe),eligibility_scope:KO.default("per_customer").meta(xe)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Gr,...MO}),ns=ne.merge(pe).merge(_e).extend({trial_limit_policy:HO.default("1_per_lifetime").meta(xe),eligibility_scope:KO.default("per_customer").meta(xe)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Gr,...MO}),gp=ne.merge(pe).merge(_e).extend({customer_id:a.string().min(1).meta(xe),rule_id:a.string().min(1).meta(xe),rule_type:a.enum(["free_trial","reverse_trial"]).meta(xe),plan_id:a.string().min(1).meta(xe),status:zB.default("active").meta(xe),started_at:a.string().datetime().meta({...xe,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(xe),trial_limit_type:$S.default("time").meta(xe),usage_entitlement_handle:a.string().min(1).optional().meta(xe),usage_limit_value:a.number().int().min(1).optional().meta(xe),converted_at:Et.meta(xe),cancelled_at:Et.meta(xe),metadata:jt.meta(xe)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Gr});({"/api/free-trial-rule-anchors":{get:y({operationId:"listFreeTrialRuleAnchors",requestParams:{query:Q},summary:"List free trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Free trial rule anchor list",content:{"application/json":{schema:Y(jB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-rule-anchors",persistence:{table:"freeTrialRules",mode:"list"}}})},"/api/trials/free-rules":{get:y({operationId:"listFreeTrialRules",requestParams:{query:Q},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:Y(Qa)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"list"}}})},"/api/trials/free-rules/{ruleId}":{get:y({operationId:"getFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Get free trial rule",tags:["trials"],responses:{200:{description:"Free trial rule",content:{"application/json":{schema:Qa}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"get"}}}),patch:y({operationId:"updateFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update free trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Qa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Qa}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"update"}}}),delete:y({operationId:"deleteFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete free trial rule",tags:["trials"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"delete"}}})},"/api/reverse-trial-rule-anchors":{get:y({operationId:"listReverseTrialRuleAnchors",requestParams:{query:Q},summary:"List reverse trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Reverse trial rule anchor list",content:{"application/json":{schema:Y(AB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rule-anchors",persistence:{table:"reverseTrialRules",mode:"list"}}})},"/api/trials/reverse-rules":{get:y({operationId:"listReverseTrialRules",requestParams:{query:Q},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:Y(es)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"list"}}})},"/api/trials/reverse-rules/{ruleId}":{get:y({operationId:"getReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Get reverse trial rule",tags:["trials"],responses:{200:{description:"Reverse trial rule",content:{"application/json":{schema:es}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"get"}}}),patch:y({operationId:"updateReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update reverse trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:es.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:es}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"update"}}}),delete:y({operationId:"deleteReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Delete reverse trial rule",tags:["trials"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"delete"}}})},"/api/trials/free-settings":{get:y({operationId:"listFreeTrialSettings",requestParams:{query:Q},summary:"List free trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Free trial settings list",content:{"application/json":{schema:Y(ts)}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"list"}}})},"/api/trials/free-settings/{settingsId}":{get:y({operationId:"getFreeTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Get free trial settings",tags:["trials"],responses:{200:{description:"Free trial settings",content:{"application/json":{schema:ts}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"get"}}}),patch:y({operationId:"updateFreeTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update free trial settings",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:ts.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ts}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"update"}}})},"/api/trials/reverse-settings":{get:y({operationId:"listReverseTrialSettings",requestParams:{query:Q},summary:"List reverse trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Reverse trial settings list",content:{"application/json":{schema:Y(ns)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"list"}}})},"/api/trials/reverse-settings/{settingsId}":{get:y({operationId:"getReverseTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Get reverse trial settings",tags:["trials"],responses:{200:{description:"Reverse trial settings",content:{"application/json":{schema:ns}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"get"}}}),patch:y({operationId:"updateReverseTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update reverse trial settings",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:ns.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ns}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:y({operationId:"listTrialInstances",requestParams:{query:Q},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:Y(gp)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"list"}}})},"/api/trials/instances/{instanceId}":{get:y({operationId:"getTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Get trial instance",tags:["trials"],responses:{200:{description:"Trial instance",content:{"application/json":{schema:gp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"get"}}})},"/api/trials/instances/{instanceId}/cancel":{post:y({operationId:"cancelTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Cancel an active trial",tags:["trials"],responses:{200:{description:"Cancelled",content:{"application/json":{schema:gp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})},"/api/trials/instances/{instanceId}/convert":{post:y({operationId:"convertTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Convert trial to paid subscription",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:a.object({plan_id:a.string().optional()})}}},responses:{200:{description:"Converted",content:{"application/json":{schema:gp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:xt}=Zt,{Persisted:wS,Transient:GO}=Bt,{Internal:Zl}=Mt,JO=lt(He.Playbook,{inConfig:false,sdkInput:true}),DB=a.enum(["draft","ramping","winning","neutral","needs_attention","paused","complete"]).meta({id:"ExperimentStatus","x-revturbine-schema-persistence":GO,"x-revturbine-schema-exposure":Zl}),FB=a.enum(["placement_ab","entitlement_ab","plan_ab","pricing_ab","custom"]).meta({id:"ExperimentType","x-revturbine-schema-persistence":GO,"x-revturbine-schema-exposure":Zl}),NB=a.object({variant_id:a.string().min(1),name:Ft,weight:a.number().min(0).max(1).default(.5),is_control:a.boolean().default(false),config:a.record(a.string(),a.unknown()).default({})}).meta({id:"ExperimentVariant","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":Zl,...JO}),si=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...xt,readOnly:true}),name:Ft.meta(xt),handle:ct.meta(xt),description:a.string().max(1e3).optional().meta(xt),experiment_type:FB.meta(xt),status:DB.default("draft").meta(xt),target_resource_id:a.string().optional().meta(xt),target_segment_ids:a.array(a.string()).default([]).meta(xt),variants:a.array(NB).min(2).meta(xt),primary_metric:a.string().min(1).meta(xt),metric_threshold:a.number().default(.05).meta(xt),secondary_metrics:a.array(a.string()).default([]).meta(xt),traffic_allocation:a.number().min(0).max(1).default(1).meta(xt),started_at:Et.meta(xt),ended_at:Et.meta(xt),confidence_threshold:a.number().min(0).max(1).default(.95).meta(xt),winning_variant_id:a.string().nullable().default(null).meta(xt),metadata:jt.meta(xt)}).meta({id:"Experiment","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":Zl,...JO,...fn()}),LB=Qt("ExperimentAnchor"),VB=vS,gO=ne.merge(pe).merge(_e).extend({experiment_id:a.string().optional().meta(xt),resource_type:a.string().min(1).meta(xt),resource_id:a.string().min(1).meta(xt),severity:VB.default("info").meta(xt),title:a.string().min(1).max(300).meta(xt),description:a.string().max(2e3).meta(xt),suggested_action:a.string().max(1e3).optional().meta(xt),estimated_impact:a.number().optional().meta(xt),is_dismissed:a.boolean().default(false).meta(xt),metadata:jt.meta(xt)}).meta({id:"OptimizationSuggestion","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":Zl});({"/api/experiment-anchors":{get:y({operationId:"listExperimentAnchors",requestParams:{query:Q},summary:"List experiment anchors (identity registry)",tags:["experiments"],responses:{200:{description:"Experiment anchor list",content:{"application/json":{schema:Y(LB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiment-anchors",persistence:{table:"experiments",mode:"list"}}})},"/api/experiments":{get:y({operationId:"listExperiments",requestParams:{query:Q},summary:"List experiments",tags:["experiments"],responses:{200:{description:"Experiment list",content:{"application/json":{schema:Y(si)}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"list"}}})},"/api/experiments/{experimentId}":{get:y({operationId:"getExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Get experiment",tags:["experiments"],responses:{200:{description:"Experiment",content:{"application/json":{schema:si}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"get"}}}),patch:y({operationId:"updateExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Update experiment",tags:["experiments"],requestBody:{required:true,content:{"application/json":{schema:si.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:si}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}}),delete:y({operationId:"deleteExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Delete experiment",tags:["experiments"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"delete"}}})},"/api/experiments/{experimentId}/start":{post:y({operationId:"startExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Start experiment (begin traffic allocation)",tags:["experiments"],responses:{200:{description:"Started",content:{"application/json":{schema:si}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}})},"/api/experiments/{experimentId}/pause":{post:y({operationId:"pauseExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Pause running experiment",tags:["experiments"],responses:{200:{description:"Paused",content:{"application/json":{schema:si}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}})},"/api/experiments/{experimentId}/complete":{post:y({operationId:"completeExperiment",requestParams:{path:a.object({experimentId:a.string()})},summary:"Complete experiment and declare winner",tags:["experiments"],requestBody:{required:true,content:{"application/json":{schema:a.object({winning_variant_id:a.string()})}}},responses:{200:{description:"Completed",content:{"application/json":{schema:si}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}})},"/api/optimization-suggestions":{get:y({operationId:"listOptimizationSuggestions",requestParams:{query:Q},summary:"List optimization suggestions",tags:["experiments"],responses:{200:{description:"Suggestion list",content:{"application/json":{schema:Y(gO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"optimization-suggestions",persistence:{table:"optimizationSuggestions",mode:"list"}}})},"/api/optimization-suggestions/{suggestionId}/dismiss":{post:y({operationId:"dismissOptimizationSuggestion",requestParams:{path:a.object({suggestionId:a.string()})},summary:"Dismiss an optimization suggestion",tags:["experiments"],responses:{200:{description:"Dismissed",content:{"application/json":{schema:gO}}}},"x-revturbine-operation":{exposure:"internal",resource:"optimization-suggestions",persistence:{table:"optimizationSuggestions",mode:"update"}}})}});var {Unrestricted:cn,Financial:hO}=Zt,{Persisted:BB,Transient:WO}=Bt,{Internal:RS}=Mt,MB=lt(He.Playbook,{sdkInput:true}),ZB=a.enum(["draft","scheduled","live","expired","archived"]).meta({id:"PromotionStatus","x-revturbine-schema-persistence":WO,"x-revturbine-schema-exposure":RS}),qB=a.enum(["percentage","fixed_amount","free_months"]).meta({id:"DiscountType","x-revturbine-schema-persistence":WO,"x-revturbine-schema-exposure":RS}),Bi=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...cn,readOnly:true}),name:Ft.meta(cn),handle:ct.meta(cn),description:a.string().max(1e3).optional().meta(cn),rt_status:ZB.default("draft").meta(cn),discount_type:qB.meta(cn),discount_value:a.number().min(0).meta(hO),currency:a.string().length(3).default("USD").meta(hO),applicable_plan_ids:a.array(a.string()).default([]).meta(cn),applicable_addon_ids:a.array(a.string()).default([]).meta(cn),target_segment_ids:a.array(a.string()).default([]).meta(cn),max_redemptions:a.number().int().min(0).nullable().default(null).meta(cn),current_redemptions:a.number().int().min(0).default(0).meta({...cn,readOnly:true}),coupon_code:a.string().max(100).optional().meta(cn),starts_at:Et.meta(cn),ends_at:Et.meta(cn),stripe_coupon_id:a.string().nullable().default(null).meta(cn),stripe_promotion_code_id:a.string().nullable().default(null).meta(cn),auto_sync_stripe:a.boolean().default(false).meta(cn),metadata:jt.meta(cn)}).meta({id:"Promotion","x-revturbine-schema-persistence":BB,"x-revturbine-schema-exposure":RS,...MB,...fn()}),HB=Qt("PromotionAnchor");({"/api/promotion-anchors":{get:y({operationId:"listPromotionAnchors",requestParams:{query:Q},summary:"List promotion anchors (identity registry)",tags:["promotions"],responses:{200:{description:"Promotion anchor list",content:{"application/json":{schema:Y(HB)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotion-anchors",persistence:{table:"promotions",mode:"list"}}})},"/api/promotions":{get:y({operationId:"listPromotions",requestParams:{query:Q},summary:"List promotions",tags:["promotions"],responses:{200:{description:"Promotion list",content:{"application/json":{schema:Y(Bi)}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"list"}}})},"/api/promotions/{promotionId}":{get:y({operationId:"getPromotion",requestParams:{path:a.object({promotionId:a.string()})},summary:"Get promotion",tags:["promotions"],responses:{200:{description:"Promotion",content:{"application/json":{schema:Bi}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"get"}}}),patch:y({operationId:"updatePromotion",requestParams:{path:a.object({promotionId:a.string()})},summary:"Update promotion",tags:["promotions"],requestBody:{required:true,content:{"application/json":{schema:Bi.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Bi}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"update"}}}),delete:y({operationId:"deletePromotion",requestParams:{path:a.object({promotionId:a.string()})},summary:"Delete (archive) promotion",tags:["promotions"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"delete"}}})},"/api/promotions/{promotionId}/sync-stripe":{post:y({operationId:"syncPromotionToStripe",requestParams:{path:a.object({promotionId:a.string()})},summary:"Sync promotion to Stripe as coupon/promotion code",tags:["promotions"],responses:{200:{description:"Synced",content:{"application/json":{schema:Bi}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"update"}}})},"/api/promotions/{promotionId}/duplicate":{post:y({operationId:"duplicatePromotion",requestParams:{path:a.object({promotionId:a.string()})},summary:"Duplicate promotion",tags:["promotions"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:Bi}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"create"}}})}});var {Unrestricted:Ct,Pii:CS}=Zt,{Persisted:ES}=Bt,{Internal:OS}=Mt,KB=ne.merge(pe).merge(_e).extend({customer_id:a.string().min(1).meta(CS),placement_id:a.string().min(1).meta(Ct),payload_id:a.string().nullable().default(null).meta(Ct),variant_id:a.string().nullable().default(null).meta(Ct),surface_type:a.string().meta(Ct),presented_at:a.string().datetime().meta({...Ct,readOnly:true}),dismissed_at:Et.meta(Ct),cta_clicked_at:Et.meta(Ct),cta_action_type:a.string().nullable().default(null).meta(Ct),converted:a.boolean().default(false).meta(Ct),session_id:a.string().optional().meta(Ct),metadata:jt.meta(Ct)}).meta({id:"PresentationRecord","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":OS}),GB=ne.merge(pe).merge(_e).extend({customer_id:a.string().min(1).meta(CS),placement_id:a.string().min(1).meta(Ct),decision:a.enum(["show","suppress","defer"]).meta(Ct),reason:a.string().max(500).meta(Ct),matched_rules:a.array(a.object({rule_id:a.string(),rule_type:a.string(),matched:a.boolean()})).default([]).meta(Ct),experiment_id:a.string().nullable().default(null).meta(Ct),variant_id:a.string().nullable().default(null).meta(Ct),latency_ms:a.number().min(0).optional().meta(Ct)}).meta({id:"DecisionLog","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":OS}),JB=ne.merge(pe).merge(_e).extend({customer_id:a.string().min(1).meta(CS),entitlement_handle:a.string().min(1).meta(Ct),entitlement_type:a.string().meta(Ct),result:a.enum(["granted","denied","limited","metered"]).meta(Ct),current_usage:a.number().nullable().default(null).meta(Ct),limit:a.number().nullable().default(null).meta(Ct),source:a.enum(["plan","addon","override","trial"]).meta(Ct),source_id:a.string().min(1).meta(Ct),latency_ms:a.number().min(0).optional().meta(Ct)}).meta({id:"EntitlementEvalLog","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":OS});({"/api/presentation-records":{get:y({operationId:"listPresentationRecords",requestParams:{query:Q},summary:"List presentation records",tags:["runtime"],responses:{200:{description:"Presentation records",content:{"application/json":{schema:Y(KB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"presentation-records",persistence:{table:"presentationRecords",mode:"list"}}})},"/api/decision-logs":{get:y({operationId:"listDecisionLogs",requestParams:{query:Q},summary:"List decision logs",tags:["runtime"],responses:{200:{description:"Decision logs",content:{"application/json":{schema:Y(GB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"decision-logs",persistence:{table:"decisionLogs",mode:"list"}}})},"/api/entitlement-eval-logs":{get:y({operationId:"listEntitlementEvalLogs",requestParams:{query:Q},summary:"List entitlement evaluation logs",tags:["runtime"],responses:{200:{description:"Entitlement eval logs",content:{"application/json":{schema:Y(JB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-eval-logs",persistence:{table:"entitlementEvalLogs",mode:"list"}}})}});var {Unrestricted:_}=Zt,{Persisted:_s,Transient:Te}=Bt,{Internal:vr,External:Le}=Mt,Ae=lt(He.Playbook,{sdkInput:true}),us=lt(He.Playbook,{sdkInput:false}),qi=lt(He.Playbook,{inConfig:false,sdkInput:false}),XO=lt(He.Playbook,{inConfig:false,sdkInput:true}),Zi=lt(He.Playbook,{inConfig:false,sdkInput:true,source:wr.CodeConstant}),Ol=lt(He.Playbook,{inConfig:false,sdkInput:true,source:wr.Runtime}),zl=lt(He.Playbook,{inConfig:false,sdkInput:false,source:wr.Runtime}),WB=lt(He.Billing,{sdkInput:false}),XB=lt(He.Metering,{sdkInput:false}),YB=lt(He.Branding,{inConfig:true,sdkInput:true}),QB=lt(He.Branding,{sdkInput:false}),eM="1.0.0",Il=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),name:Ft.meta(_),handle:ct.meta(_),description:Eo.meta(_),is_default:a.boolean().default(false).meta(_),entitlement_ids:a.array(a.string()).default([]).meta(_),metadata:jt.meta(_)}).meta({id:"SeatType","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...qi,...fn()}),tM=Qt("SeatTypeAnchor"),Pl=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta(_),label:a.string().min(1).meta(_),description:a.string().nullable().default(null).meta(_),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(_),data_source:a.string().nullable().default(null).meta(_),example_value:a.string().nullable().default(null).meta(_),value_map:a.record(a.string(),a.string()).default({}).meta(_),format:a.enum(["string","number","currency","percentage","date"]).nullable().default(null).meta(_),metadata:jt.meta(_)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...qi,...fn()}),nM=Qt("PersonalizationTokenAnchor"),rM=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),fS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({..._,readOnly:true}),stripe_account_id:a.string().min(1).meta(_),live_mode:a.boolean().default(false).meta(_),onboarding_state:rM.default("not_started").meta({..._,readOnly:true}),onboarding_complete:a.boolean().default(false).meta({..._,readOnly:true}),charges_enabled:a.boolean().default(false).meta({..._,readOnly:true}),details_submitted:a.boolean().default(false).meta({..._,readOnly:true}),payouts_enabled:a.boolean().default(false).meta({..._,readOnly:true}),webhook_secret_set:a.boolean().default(false).meta({..._,readOnly:true}),sync_products:a.boolean().default(true).meta(_),sync_prices:a.boolean().default(true).meta(_),sync_subscriptions:a.boolean().default(true).meta(_),sync_invoices:a.boolean().default(false).meta(_),default_currency:a.string().length(3).default("USD").meta(_),tax_behavior:a.enum(["inclusive","exclusive","unspecified"]).default("unspecified").meta(_),last_sync_at:a.string().optional().meta({..._,readOnly:true}),metadata:jt.meta(_)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...WB,...sr()});a.object({theme:a.record(a.string(),a.unknown()).optional().meta(_),workspace_name:a.string().optional().meta(_),logo_url:a.string().optional().meta(_),support_email:a.string().optional().meta(_)}).meta({id:"BrandingConfig","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...QB});var kl=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({..._,readOnly:true}),entitlement_id:a.string().min(1).meta(_),meter_key:a.string().min(1).max(100).meta(_),aggregation_type:a.enum(["sum","count","max","last_value"]).default("sum").meta(_),reset_period:a.enum(["none","daily","weekly","monthly","yearly"]).default("monthly").meta(_),stripe_meter_id:a.string().nullable().default(null).meta(_),is_active:a.boolean().default(true).meta(_),metadata:jt.meta(_)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...XB,...sr()}),bO=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),Tl=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta({..._,readOnly:true}),entitlement_id:a.string().min(1).meta(_),soft_limit_percent:a.number().min(0).max(100).default(80).meta(_),hard_limit_percent:a.number().min(0).max(100).default(100).meta(_),soft_limit_action:bO.default("warn").meta(_),hard_limit_action:bO.default("block").meta(_),grace_period_hours:a.number().int().min(0).default(0).meta(_),notification_channels:a.array(a.enum(["email","in_app","webhook"])).default(["in_app"]).meta(_),is_active:a.boolean().default(true).meta(_)}).meta({id:"UsageEnforcementSettings","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...XO,...sr()}),iM=Qt("UsageEnforcementSettingsAnchor"),oM=a.object({kind:a.enum(["template","slot"]).meta(_),id:a.string().min(1).meta(_),label:a.string().min(1).optional().meta(_)}).meta({id:"PlacementSettingsCapRuleGroupItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),aM=a.object({id:a.string().min(1).meta(_),group:a.array(oM).min(1).meta(_),cap:a.object({count:a.number().int().min(1).meta(_),period:a.enum(["session","day","week","month"]).meta(_)}).meta(_)}).meta({id:"PlacementSettingsCapRule","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),sM=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),YO=a.object({capRules:a.array(aM).default([]).meta(_),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(_),testMode:sM.default("off").meta(_)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":vr}),gS=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta({..._,readOnly:true}),global_frequency_cap:YO.nullable().default(null).meta(_),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(_),suppress_for_paid:a.boolean().default(false).meta(_),suppress_for_trial:a.boolean().default(false).meta(_),default_dismiss_cooldown_hours:a.number().int().min(0).default(24).meta(_),allow_stacking:a.boolean().default(false).meta(_),priority_collision_strategy:a.enum(["highest_priority","most_recent","random"]).default("highest_priority").meta(_)}).meta({id:"PlacementSettings","x-revturbine-schema-persistence":_s,"x-revturbine-schema-exposure":vr,...XO,...sr()}),cM=Qt("PlacementSettingsAnchor"),lM=a.object({field:a.string().min(1).meta(_),operator:a.enum(["eq","neq","gt","lt","gte","lte","contains","in"]).meta(_),value:a.string().meta(_)}).meta({id:"RevTurbineConfigSegmentsItemPredicatesItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),uM=a.object({name:a.string().min(1).meta(_),handle:a.string().min(1).meta(_),predicates:a.array(lM).optional().meta(_),dimension_id:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),dM=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),tier_position:a.number().int().min(0).default(0).meta(_),sort_order:a.number().int().min(0).default(0).meta(_),visibility:Hi.default("public").meta(_)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),mM=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),sort_order:a.number().int().min(0).default(0).meta(_),visibility:Hi.default("public").meta(_)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...us}),pM=a.object({handle:a.string().min(1).meta(_),plan_handle:a.string().min(1).meta(_),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(_),segment_handle:a.string().nullable().default(null).meta(_),price_amount:a.number().min(0).meta(_),pricing_model:Al.meta(_),visibility:Hi.default("public").meta(_),stripe_price_id:a.string().nullable().default(null).meta(_),price_source:Ip.meta(_)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...qi}),fM=a.object({handle:a.string().min(1).meta(_),addon_handle:a.string().min(1).meta(_),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(_),segment_handle:a.string().nullable().default(null).meta(_),price_amount:a.number().min(0).meta(_),pricing_model:Al.meta(_),visibility:Hi.default("public").meta(_),stripe_price_id:a.string().nullable().default(null).meta(_),price_source:Ip.meta(_)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...qi}),gM=a.object({handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),description:a.string().nullable().default(null).meta(_),is_default:a.boolean().default(false).meta(_),entitlement_handles:a.array(a.string()).default([]).meta(_)}).meta({id:"RevTurbineConfigSeatTypesItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),hM=a.object({handle:a.string().min(1).meta(_),entitlement_handle:a.string().nullable().default(null).meta(_),soft_limit_percent:a.number().int().min(0).nullable().default(null).meta(_),hard_limit_percent:a.number().int().min(0).nullable().default(null).meta(_),soft_limit_action:a.string().meta(_),hard_limit_action:a.string().meta(_),grace_period_hours:a.number().int().min(0).nullable().default(null).meta(_),notification_channels:a.array(a.string()).default([]).meta(_),is_active:a.boolean().default(true).meta(_)}).meta({id:"RevTurbineConfigEnforcementDefaultsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),bM=a.object({handle:a.string().min(1).meta(_),global_frequency_cap:YO.nullable().default(null).meta(_),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(_),suppress_for_paid:a.boolean().default(false).meta(_),suppress_for_trial:a.boolean().default(false).meta(_),default_dismiss_cooldown_hours:a.number().int().min(0).nullable().default(null).meta(_),allow_stacking:a.boolean().default(false).meta(_),priority_collision_strategy:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigPlacementSettingsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),_M=a.object({handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),category:a.string().nullable().default(null).meta(_),visibility_toggle:a.boolean().default(true).meta(_),source_type:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigSegmentDimensionsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),vM=a.object({handle:a.string().min(1).meta(_),entitlement_handle:a.string().min(1).meta(_),meter_handle:a.string().min(1).meta(_),limit:a.number().int().min(0).nullable().default(null).meta(_),reset_period:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigMeterBindingsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),yM=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),type:_S.meta(_),unit:a.string().optional().meta(_),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(_)}).meta({id:"RevTurbineConfigEntitlementsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),xM=a.object({id:a.string().min(1).meta(_),entitlement_id:a.string().min(1).meta(_),targets:a.array($O).min(1).meta(_),segment_ids:a.array(a.string()).default([]).meta(_),kind:_S.optional().meta({..._,readOnly:true}),unit:a.string().optional().meta({..._,readOnly:true}),tier_name:a.string().optional().meta({..._,readOnly:true}),tier_description:a.string().optional().meta({..._,readOnly:true}),...ps.pick({enabled:true,limit_value:true,enforcement:true,tier_value:true,period_scope:true,included_count:true,seat_type_id:true,initial_grant:true,allowance_value:true,rollover_enabled:true,max_balance:true,reset_period:true,max_seats:true,rate_value:true,amount_cents:true,currency:true}).shape,current_usage:a.number().default(0).meta(_),allocation:Pp.optional().meta(_)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),SM=a.object({slot_id:a.string().min(1).meta(_),active:a.boolean().meta(_),triggers:a.array(a.string()).meta(_)}).meta({id:"RevTurbineConfigSlotConfigsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),IM=a.object({id:a.string().min(1).meta(_),label:a.string().min(1).meta(_),description:a.string().meta(_),surface_type:a.string().meta(_),placement_handle:a.string().min(1).meta(_),template:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigPlacementSlotsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),PM=a.object({name:a.string().min(1).meta(_),type:a.string().optional().meta(_),required:a.boolean().optional().meta(_)}).meta({id:"RevTurbineConfigSurfaceTemplatesItemFieldsItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),kM=a.object({id:a.string().min(1).meta(_),surface_type:a.string().meta(_),fields:a.array(PM).optional().meta(_)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),TM=a.enum(["open_checkout_modal","navigate_to_plans","open_upgrade_modal","open_placement","book_demo","open_feature_tour","extend_trial","switch_billing_period","custom_url","dismiss","contact_sales","complete_onboarding","invite_teammate","refer_friend","verify_work_email","update_payment_method","enable_auto_renewal","manage_subscription"]).meta({id:"RevTurbineConfigUiPathActionType","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),$M=a.object({name:a.string().min(1).meta(_),action_type:TM.meta(_),plan_handle:a.string().optional().meta(_),promotion_id:a.string().optional().meta(_),placement_handle:a.string().optional().meta(_),url:a.string().optional().meta(_),tour_id:a.string().optional().meta(_),target_billing_period:a.enum(["monthly","annual"]).optional().meta(_),description:a.string().optional().meta(_)}).meta({id:"ContentUiPath","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),wM=a.object({id:a.string().meta(_),name:a.string().meta(_),discount:a.string().meta(_),type:a.string().meta(_),status:a.string().meta(_)}).meta({id:"ContentPromotion","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),RM=a.object({token:a.string().regex(/^[a-z][a-z0-9_]*$/).meta(_),label:a.string().min(1).meta(_),description:a.string().optional().meta(_),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(_),data_source:a.string().optional().meta(_),example_value:a.string().optional().meta(_),value_map:a.record(a.string(),a.string()).optional().meta(_),format:a.enum(["string","number","currency","percentage","date"]).optional().meta(_)}).meta({id:"RevTurbineConfigPersonalizationTokensItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),_O=a.object({header:a.string().optional().meta(_),body:a.string().optional().meta(_),cta_label:a.string().optional().meta(_),secondary_cta_label:a.string().optional().meta(_)}).catchall(a.unknown()).meta({id:"MessageBlockContent","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),CM=a.object({block_id:a.string().min(1).meta(_),tenant_id:a.string().min(1).meta(_),name:a.string().min(1).meta(_),surface_template_id:a.string().optional().meta(_),default_content:_O.meta(_),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:_O})).optional().meta(_),child_blocks:a.array(a.object({slot:a.string(),block_id:a.string()})).optional().meta(_),tokens_used:a.array(a.string()).optional().meta(_),status:a.enum(["draft","active","archived"]).meta(_),created_at:a.string().datetime().meta({..._,readOnly:true}),updated_at:a.string().datetime().meta({..._,readOnly:true})}).meta({id:"MessageBlock","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),EM=a.object({label:a.string().meta(_),path:yO.meta(_),config:a.record(a.string(),a.string()).optional().meta(_)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),QO=a.object({template_id:a.string().min(1).meta(_),fields:a.record(a.string(),a.string()).meta(_),ctas:a.array(EM).meta(_)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),ez=a.object({plan_ids:a.array(a.string()).meta(_),billing_cadences:a.array(a.string()).optional().meta(_),segment_chips:a.array(a.string()).meta(_)}).meta({id:"RevTurbineConfigStudioPayloadTarget","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),OM=a.object({count:a.number().int().min(1).meta(_),period:a.enum(["session","day","week","month","lifetime"]).meta(_)}).meta({id:"RevTurbineConfigPeriodCap","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),tz=a.object({max_per_period:OM.optional().meta(_),cooldown_days:a.number().int().min(0).optional().meta(_)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),zM=a.object({id:a.string().min(1).meta(_),target:ez.meta(_),surfaces:a.array(QO).meta(_),caps:tz.optional().meta(_),surface_slot_ids:a.array(a.string()).optional().meta(_),created_at:a.string().optional().meta({..._,readOnly:true}),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(_),recommendation_plan_override:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigStudioPayload","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),jM=a.discriminatedUnion("type",[a.object({type:a.literal("surface_render"),slot_id:a.string().min(1)}),a.object({type:a.literal("entitlement_gate"),entitlement_handle:a.string().min(1),tier_threshold:a.string().optional()}),a.object({type:a.literal("usage_threshold"),entitlement_handle:a.string().min(1),threshold_percent:Cl}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:Cl}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:Cl}),a.object({type:a.literal("trial_started"),trial_type:a.enum(["free","reverse"]).optional()}),a.object({type:a.literal("trial_progress"),progress_percent:a.number().min(1).max(100)}),a.object({type:a.literal("trial_ending"),days_before_end:a.number().int().min(0)}),a.object({type:a.literal("trial_ended")}),a.object({type:a.literal("trial_converted")}),a.object({type:a.literal("qualifier"),qualifier:a.string().min(1)})]).meta({id:"RevTurbineConfigPlacementTrigger","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),UM=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le}),AM=a.object({id:a.string().min(1).meta(_),name:a.string().min(1).meta(_),category:UM.meta(_),trigger:jM.meta(_),payloads:a.array(zM).meta(_),order:a.number().int().min(0).meta(_)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),DM=a.object({payload_id:a.string().min(1).meta(_),placement_id:a.string().min(1).meta(_),target:ez.meta(_),caps:tz.optional().meta(_),created_at:a.string().meta({..._,readOnly:true}),updated_at:a.string().datetime().optional().meta({..._,readOnly:true}),source_mode:a.enum(["inline","content_linked"]).meta(_),surfaces:a.array(QO).optional().meta(_),surface_slot_ids:a.array(a.string()).optional().meta(_),content_link:a.object({message_block_id:a.string().optional(),ui_path_id:a.string().optional(),promotion_id:a.string().optional(),content_payload_id:a.string().optional()}).optional().meta(_)}).meta({id:"RevTurbineConfigPlacementPayloadItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),FM=a.object({kind:a.string().min(1).meta(_),schema_version:a.number().int().nonnegative().meta(_),config:a.unknown().meta(_)}).meta({id:"RevTurbineConfigExtensionRulesItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae}),NM=ne.merge(ZO).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...qi}),LM=ne.merge(qO).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...qi}),VM=a.object({version:a.string().meta({..._,...Zi}),exported_at:a.string().datetime().optional().meta({..._,...Ol,readOnly:true}),schema_version:a.string().optional().meta({..._,...Zi,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({..._,...Zi,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({..._,...Ol,readOnly:true}),tenant_id:a.string().optional().meta({..._,...zl,readOnly:true}),environment_id:a.string().optional().meta({..._,...zl,readOnly:true}),plans:a.array(dM).meta({..._,...Ae}),addons:a.array(mM).optional().meta({..._,...us}),entitlements:a.array(yM).meta({..._,...Ae}),entitlement_rules:a.array(xM).meta({..._,...Ae}),segments:a.array(uM).meta({..._,...Ae}),content_ui_paths:a.array($M).meta({..._,...Ae}),slot_configs:a.array(SM).optional().meta({..._,...Ae,...fp({since:"0.1.117",replacement:"SDK-local activation/trigger state",removeAfter:"one compatibility window",reason:"Slot activation moved to SDK-local state (plan 118 TASK-6); no longer a Playbook authoring input."})}),content_overrides:a.record(a.string(),a.record(a.string(),a.string())).optional().meta({..._,...Ae,...fp({since:"0.1.117",replacement:"Message Block / Placement Payload content",removeAfter:"one compatibility window",reason:"Content overrides moved to Message Block / Payload content (plan 118 TASK-6); no longer a Playbook authoring input."})}),theme:a.record(a.string(),a.unknown()).optional().meta({..._,...YB,...fp({since:"0.1.111",replacement:"SDK branding argument",removeAfter:"one compatibility window",reason:"Branding is independently owned and is not Playbook strategy."})}),placement_slots:a.array(IM).optional().meta({..._,...Ae}),message_blocks:a.array(CM).optional().meta({..._,...Ae}),placement_payloads:a.array(DM).optional().meta({..._,...Ae}),placements:a.array(AM).optional().meta({..._,...Ae}),content_promotions:a.array(wM).optional().meta({..._,...Ae}),personalization_tokens:a.array(RM).optional().meta({..._,...Ae}),surface_templates:a.array(kM).optional().meta({..._,...Ae}),free_trial_rules:a.array(NM).optional().meta({..._,...us}),reverse_trial_rules:a.array(LM).optional().meta({..._,...us}),plan_variations:a.array(pM).optional().meta({..._,...us}),addon_variations:a.array(fM).optional().meta({..._,...us}),extension_rules:a.array(FM).optional().meta({..._,...Ae}),seat_types:a.array(gM).optional().meta({..._,...Ae}),enforcement_defaults:a.array(hM).optional().meta({..._,...Ae}),placement_settings:a.array(bM).optional().meta({..._,...Ae}),segment_dimensions:a.array(_M).optional().meta({..._,...Ae}),meter_bindings:a.array(vM).optional().meta({..._,...Ae})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae,...fp({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),BM=a.object({artifact_type:a.literal("playbook").meta({..._,...Zi,readOnly:true}),format_version:a.literal(eM).meta({..._,...Zi,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({..._,...Zi}),playbook_version_id:a.string().nullable().default(null).meta({..._,...Ol,readOnly:true}),tenant_id:a.string().min(1).meta({..._,...zl,readOnly:true}),environment_id:a.string().min(1).meta({..._,...zl,readOnly:true}),project_id:a.string().min(1).optional().meta({..._,...zl,readOnly:true}),exported_at:a.string().datetime().optional().meta({..._,...Ol,readOnly:true}),schema_version:a.string().min(1).optional().meta({..._,...Zi,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({..._,...Zi,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ol}),MM={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},ZM=VM.omit(MM).extend({experiments:a.array(a.unknown()).max(0).optional().meta({..._,...qi}),signal_catalog:a.object({}).strict().optional().meta({..._,...qi})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae});BM.extend(ZM.shape).meta({id:"Playbook","x-revturbine-schema-persistence":Te,"x-revturbine-schema-exposure":Le,...Ae});({"/api/seat-type-anchors":{get:y({operationId:"listSeatTypeAnchors",requestParams:{query:Q},summary:"List seat type anchors (identity registry)",tags:["config"],responses:{200:{description:"Seat type anchor list",content:{"application/json":{schema:Y(tM)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:y({operationId:"listSeatTypes",requestParams:{query:Q},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:Y(Il)}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"list"}}}),post:y({operationId:"createSeatType",summary:"Create seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:mn(Il)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Il}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"create"}}})},"/api/config/seat-types/{id}":{patch:y({operationId:"updateSeatType",requestParams:{path:a.object({id:a.string()})},summary:"Update seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Il.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Il}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"update"}}}),delete:y({operationId:"deleteSeatType",requestParams:{path:a.object({id:a.string()})},summary:"Delete seat type",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"delete"}}})},"/api/personalization-token-anchors":{get:y({operationId:"listPersonalizationTokenAnchors",requestParams:{query:Q},summary:"List personalization token anchors (identity registry)",tags:["config"],responses:{200:{description:"Personalization token anchor list",content:{"application/json":{schema:Y(nM)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:y({operationId:"listPersonalizationTokens",requestParams:{query:Q},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:Y(Pl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"list"}}}),post:y({operationId:"createPersonalizationToken",summary:"Create personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:mn(Pl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Pl}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"create"}}})},"/api/config/personalization-tokens/{id}":{patch:y({operationId:"updatePersonalizationToken",requestParams:{path:a.object({id:a.string()})},summary:"Update personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Pl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Pl}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"update"}}}),delete:y({operationId:"deletePersonalizationToken",requestParams:{path:a.object({id:a.string()})},summary:"Delete personalization token",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"delete"}}})},"/api/config/stripe":{put:y({operationId:"upsertStripeIntegrationConfig",summary:"Create or update Stripe integration config",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:pn(fS)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:fS}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:y({operationId:"listMeteringConfigs",requestParams:{query:Q},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:Y(kl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"list"}}}),post:y({operationId:"createMeteringConfig",summary:"Create metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:mn(kl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:kl}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"create"}}})},"/api/config/metering/{meteringId}":{patch:y({operationId:"updateMeteringConfig",requestParams:{path:a.object({meteringId:a.string()})},summary:"Update metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:kl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:kl}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"update"}}}),delete:y({operationId:"deleteMeteringConfig",requestParams:{path:a.object({meteringId:a.string()})},summary:"Delete metering configuration",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"delete"}}})},"/api/usage-enforcement-setting-anchors":{get:y({operationId:"listUsageEnforcementSettingsAnchors",requestParams:{query:Q},summary:"List usage enforcement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Usage enforcement setting anchor list",content:{"application/json":{schema:Y(iM)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement-setting-anchors",persistence:{table:"usageEnforcementSettings",mode:"list"}}})},"/api/config/usage-enforcement":{get:y({operationId:"listUsageEnforcementSettings",requestParams:{query:Q},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:Y(Tl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"list"}}}),post:y({operationId:"createUsageEnforcementSettings",summary:"Create usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:mn(Tl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Tl}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"create"}}})},"/api/config/usage-enforcement/{settingsId}":{patch:y({operationId:"updateUsageEnforcementSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Tl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Tl}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"update"}}}),delete:y({operationId:"deleteUsageEnforcementSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Delete usage enforcement settings",tags:["config"],responses:{204:{description:"Deleted"}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"delete"}}})},"/api/placement-setting-anchors":{get:y({operationId:"listPlacementSettingsAnchors",requestParams:{query:Q},summary:"List placement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Placement setting anchor list",content:{"application/json":{schema:Y(cM)}}},default:{description:"Error response",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-setting-anchors",persistence:{table:"placementSettings",mode:"list"}}})},"/api/config/placement-settings":{put:y({operationId:"upsertPlacementSettings",summary:"Create or update global placement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:pn(gS)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:gS}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});var {Unrestricted:ci}=Zt,{Persisted:nz}=Bt,{Internal:rz}=Mt,qM=a.enum(["create","update","delete","archive","restore","reorder","duplicate","sync","publish"]).meta({id:"ChangeLogAction","x-revturbine-schema-persistence":nz,"x-revturbine-schema-exposure":rz}),vO=ne.merge(pe).merge(_e).extend({action:qM.meta(ci),resource_type:a.string().min(1).max(100).meta(ci),resource_id:a.string().min(1).meta(ci),resource_name:a.string().max(200).optional().meta(ci),actor_id:a.string().min(1).meta(ci),actor_email:a.string().email().optional().meta(ci),diff:a.object({before:a.record(a.string(),a.unknown()).optional(),after:a.record(a.string(),a.unknown()).optional()}).optional().meta(ci),summary:a.string().max(1e3).optional().meta(ci),metadata:jt.meta(ci)}).meta({id:"ChangeLogEntry","x-revturbine-schema-persistence":nz,"x-revturbine-schema-exposure":rz});({"/api/changelog":{get:y({operationId:"listChangeLogEntries",requestParams:{query:Q},summary:"List change log entries",tags:["changelog"],responses:{200:{description:"Change log entries",content:{"application/json":{schema:Y(vO)}}}},"x-revturbine-operation":{exposure:"internal",resource:"changelog",persistence:{table:"changeLogEntries",mode:"list"}}})},"/api/changelog/{entryId}":{get:y({operationId:"getChangeLogEntry",requestParams:{path:a.object({entryId:a.string()})},summary:"Get change log entry by ID",tags:["changelog"],responses:{200:{description:"Change log entry",content:{"application/json":{schema:vO}}}},"x-revturbine-operation":{exposure:"internal",resource:"changelog",persistence:{table:"changeLogEntries",mode:"get"}}})}});var {Unrestricted:hp}=Zt,{Persisted:HM,Transient:KM}=Bt,{Internal:iz}=Mt,GM=a.enum(["active","suspended","archived"]).meta({id:"TenantStatus","x-revturbine-schema-persistence":KM,"x-revturbine-schema-exposure":iz}),Mi=ne.merge(pe).extend({name:Ft.meta(hp),handle:ct.meta(hp),status:GM.default("active").meta(hp),metadata:jt.meta(hp)}).meta({id:"Tenant","x-revturbine-schema-persistence":HM,"x-revturbine-schema-exposure":iz});({"/api/tenants":{get:y({operationId:"listTenants",requestParams:{query:Q},summary:"List tenants",tags:["tenants"],responses:{200:{description:"Tenant list",content:{"application/json":{schema:Y(Mi)}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"list"}}})},"/api/tenants/{tenantId}":{get:y({operationId:"getTenant",requestParams:{path:a.object({tenantId:a.string()})},summary:"Get tenant by ID",tags:["tenants"],responses:{200:{description:"Tenant",content:{"application/json":{schema:Mi}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"get"}}}),patch:y({operationId:"updateTenant",requestParams:{path:a.object({tenantId:a.string()})},summary:"Update tenant",tags:["tenants"],requestBody:{required:true,content:{"application/json":{schema:Mi.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Mi}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"update"}}})},"/api/tenants/{tenantId}/suspend":{post:y({operationId:"suspendTenant",requestParams:{path:a.object({tenantId:a.string()})},summary:"Suspend tenant (disables all API access)",tags:["tenants"],responses:{200:{description:"Suspended",content:{"application/json":{schema:Mi}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"update"}}})},"/api/tenants/{tenantId}/reactivate":{post:y({operationId:"reactivateTenant",requestParams:{path:a.object({tenantId:a.string()})},summary:"Reactivate a suspended tenant",tags:["tenants"],responses:{200:{description:"Reactivated",content:{"application/json":{schema:Mi}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"update"}}})}});var {Unrestricted:br}=Zt,{Persisted:JM,Transient:oz}=Bt,{Internal:zS}=Mt,WM=a.enum(["active","archived","locked"]).meta({id:"EnvironmentStatus","x-revturbine-schema-persistence":oz,"x-revturbine-schema-exposure":zS}),rs=ne.merge(pe).merge(_e).extend({name:Ft.meta(br),handle:ct.meta(br),description:Eo.meta(br),is_production:a.boolean().default(false).meta({...br,readOnly:true}),status:WM.default("active").meta(br),cloned_from_environment_id:a.string().nullable().default(null).meta({...br,readOnly:true}),cloned_at:Et.meta({...br,readOnly:true}),cloned_at_sequence:a.number().int().min(0).nullable().default(null).meta({...br,readOnly:true}),requires_approval:a.boolean().default(false).meta(br),auto_deploy_on_approval:a.boolean().default(false).meta(br),created_by:a.string().optional().meta(br),metadata:jt.meta(br)}).meta({id:"Environment","x-revturbine-schema-persistence":JM,"x-revturbine-schema-exposure":zS}),XM=a.object({source_environment_id:a.string().min(1),target_environment_id:a.string().min(1),playbook_version_ids:a.array(a.string()).optional(),strategy:a.enum(["all_current","selected_playbook_versions"]).default("all_current")}).meta({id:"EnvironmentPromotionRequest","x-revturbine-schema-persistence":oz,"x-revturbine-schema-exposure":zS});({"/api/environments":{get:y({operationId:"listEnvironments",requestParams:{query:Q},summary:"List environments",tags:["environments"],responses:{200:{description:"Environment list",content:{"application/json":{schema:Y(rs)}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"list"}}}),post:y({operationId:"createEnvironment",summary:"Create environment (optionally cloned from another)",tags:["environments"],requestBody:{required:true,content:{"application/json":{schema:a.object({name:a.string().min(1).max(200),handle:a.string().min(1).max(100),description:a.string().max(500).optional(),clone_from_environment_id:a.string().optional(),requires_approval:a.boolean().optional()})}}},responses:{201:{description:"Created",content:{"application/json":{schema:rs}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"create"}}})},"/api/environments/{environmentId}":{get:y({operationId:"getEnvironment",requestParams:{path:a.object({environmentId:a.string()})},summary:"Get environment by ID",tags:["environments"],responses:{200:{description:"Environment",content:{"application/json":{schema:rs}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"get"}}}),patch:y({operationId:"updateEnvironment",requestParams:{path:a.object({environmentId:a.string()})},summary:"Update environment settings",tags:["environments"],requestBody:{required:true,content:{"application/json":{schema:rs.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:rs}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"update"}}})},"/api/environments/{environmentId}/archive":{post:y({operationId:"archiveEnvironment",requestParams:{path:a.object({environmentId:a.string()})},summary:"Archive environment (production cannot be archived)",tags:["environments"],responses:{200:{description:"Archived",content:{"application/json":{schema:rs}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"update"}}})},"/api/environments/promote":{post:y({operationId:"promoteEnvironment",summary:"Promote (merge) changes from one environment to another",tags:["environments"],requestBody:{required:true,content:{"application/json":{schema:XM}}},responses:{200:{description:"Promotion result",content:{"application/json":{schema:a.object({promoted_count:a.number().int(),conflict_count:a.number().int(),conflicts:a.array(a.object({handle:a.string(),resource_type:a.string(),source_sequence:a.number().int(),target_sequence:a.number().int()}))})}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"promote"}}})}});var {Unrestricted:Se,Pii:jl}=Zt,{Transient:Jr,Persisted:YM}=Bt,{External:Rr}=Mt,QM=a.enum(["milestone_version","milestone_order"]).meta({id:"SupersessionReason","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr});a.object({superseded_output_id:a.string().min(1).meta(Se),superseded_by:a.string().min(1).meta(Se),reason:QM.meta(Se)}).meta({id:"SupersessionRecord","x-revturbine-schema-persistence":YM,"x-revturbine-schema-exposure":Rr,"x-revturbine-data-classification":"operational"});var e3=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementStatus","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr}),az=a.object({output_id:a.string().meta(Se),category:a.string().meta(Se),surface:a.object({template:a.string().optional().meta(Se),type:xp.meta(Se),slot_id:a.string().optional().meta(Se)}).meta(Se),content:a.record(a.string(),a.unknown()).meta(Se),promotion:a.record(a.string(),a.unknown()).optional().meta(Se),cta_path:a.record(a.string(),a.unknown()).optional().meta(Se),ui_path:a.record(a.string(),a.unknown()).optional().meta(Se),rule_id:a.string().meta(Se),decision_id:a.string().meta(Se),config_version:a.string().meta(Se),present_upsell:a.boolean().meta(Se)}).meta({id:"PlacementDecisionOutput","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr}),t3=a.object({status:e3.meta(Se),allowed:a.boolean().meta(Se),reason:a.string().optional().meta(Se),current_tier:a.string().optional().meta(Se),limit:a.number().optional().meta(Se),used:a.number().optional().meta(Se),remaining:a.number().optional().meta(Se),placement:az.optional().meta(Se)}).meta({id:"EntitlementCheckResult","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr});a.object({id:a.string().meta(Se),name:a.string().optional().meta(Se),discount:a.string().optional().meta(Se),type:a.string().optional().meta(Se),status:a.string().optional().meta(Se)}).meta({id:"RuntimePromotionSnapshot","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr});var n3=a.object({id:a.string().meta(jl),anonymous_id:a.string().optional().meta(Se),traits:a.record(a.string(),a.unknown()).optional().meta(jl)}).meta({id:"ServerEvaluationPayloadUser","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr}),r3=a.object({slot_id:a.string().optional().meta(Se),entitlement_handle:a.string().optional().meta(Se),plan_handle:a.string().optional().meta(Se),placement_handle:a.string().optional().meta(Se),visible:a.boolean().meta(Se),output:az.optional().meta(Se),reason_codes:a.array(a.string()).optional().meta(Se)}).meta({id:"ServerEvaluationPayloadDecisionsItem","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr}),i3=t3,o3=SS.meta({id:"ServerEvaluationPayloadTrialStatus","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr}),a3=a.object({segments:a.array(a.string()).optional().meta(Se),traits:a.record(a.string(),a.unknown()).optional().meta(jl),usage_balances:a.record(a.string(),a.number()).optional().meta(Se)}).meta({id:"ServerEvaluationPayloadUserContext","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr});a.object({version:a.literal("1.0.0").meta(Se),request_id:a.string().meta(Se),tenant_id:a.string().meta(Se),evaluated_at:a.string().datetime().meta(Se),ttl_seconds:a.number().int().min(0).max(86400).meta(Se),user:n3.meta(jl),decisions:a.array(r3).meta(Se),entitlements:a.record(a.string(),i3).optional().meta(Se),theme:a.record(a.string(),a.unknown()).optional().meta(Se),trial_status:o3.optional().meta(Se),user_context:a3.optional().meta(jl)}).meta({id:"ServerEvaluationPayload","x-revturbine-schema-persistence":Jr,"x-revturbine-schema-exposure":Rr});var {Unrestricted:tt}=Zt,{Persisted:s3,Transient:Tp}=Bt,{Internal:ql}=Mt,c3=a.enum(["draft","awaiting_approval","approved","deploying","deployed","rejected","archived"]).meta({id:"PlaybookVersionStatus","x-revturbine-schema-persistence":Tp,"x-revturbine-schema-exposure":ql}),$l=ne.merge(pe).merge(_e).extend({environment_id:a.string().min(1).meta(tt),name:Ft.meta(tt),description:a.string().max(2e3).optional().meta(tt),status:c3.default("draft").meta(tt),labels:a.array(a.string()).default([]).meta(tt),created_by:a.string().min(1).meta(tt),submitted_by:a.string().nullable().default(null).meta({...tt,readOnly:true}),reviewed_by:a.string().nullable().default(null).meta({...tt,readOnly:true}),deployed_by:a.string().nullable().default(null).meta({...tt,readOnly:true}),submitted_at:Et.meta({...tt,readOnly:true}),reviewed_at:Et.meta({...tt,readOnly:true}),deployed_at:Et.meta({...tt,readOnly:true}),base_snapshot_sequence:a.number().int().min(0).default(0).meta({...tt,readOnly:true}),entry_count:a.number().int().min(0).default(0).meta({...tt,readOnly:true}),conflict_count:a.number().int().min(0).default(0).meta({...tt,readOnly:true}),rollback_of_playbook_version_id:a.string().nullable().default(null).meta(tt),cherry_picked_from_playbook_version_id:a.string().nullable().default(null).meta(tt),review_notes:a.string().max(2e3).optional().meta(tt),rejection_reason:a.string().max(2e3).optional().meta(tt),snapshot:a.record(a.string(),a.unknown()).nullable().default(null).meta({...tt,readOnly:true}),bundle:a.string().nullable().default(null).meta({...tt,readOnly:true}),metadata:jt.meta(tt)}).meta({id:"PlaybookVersion","x-revturbine-schema-persistence":s3,"x-revturbine-schema-exposure":ql}),sz=a.object({handle:a.string().meta(tt),resource_type:a.string().meta(tt),resource_name:a.string().optional().meta(tt),action:a.enum(["create","update","delete"]).meta(tt),has_conflict:a.boolean().meta(tt)}).meta({id:"PlaybookVersionEntrySummary","x-revturbine-schema-persistence":Tp,"x-revturbine-schema-exposure":ql}),l3=a.object({playbook_version_id:a.string().meta(tt),entries:a.array(sz).meta(tt),total_entries:a.number().int().min(0).meta(tt),total_conflicts:a.number().int().min(0).meta(tt),deployable:a.boolean().meta(tt)}).meta({id:"PlaybookVersionDiff","x-revturbine-schema-persistence":Tp,"x-revturbine-schema-exposure":ql}),u3=a.object({playbook_version_id:a.string().meta(tt),deployed_count:a.number().int().min(0).meta(tt),superseded_count:a.number().int().min(0).meta(tt),skipped_conflicts:a.number().int().min(0).meta(tt),deployed_at:a.string().datetime().meta(tt)}).meta({id:"PlaybookVersionDeployResult","x-revturbine-schema-persistence":Tp,"x-revturbine-schema-exposure":ql});({"/api/playbook-versions/{playbookVersionId}/submit":{post:y({operationId:"submitPlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Submit playbook version for approval",tags:["playbook-versions"],responses:{200:{description:"Submitted",content:{"application/json":{schema:$l}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})},"/api/playbook-versions/{playbookVersionId}/approve":{post:y({operationId:"approvePlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Approve playbook version (may auto-deploy if environment allows)",tags:["playbook-versions"],requestBody:{required:true,content:{"application/json":{schema:a.object({review_notes:a.string().max(2e3).optional()})}}},responses:{200:{description:"Approved",content:{"application/json":{schema:$l}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})},"/api/playbook-versions/{playbookVersionId}/reject":{post:y({operationId:"rejectPlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Reject playbook version",tags:["playbook-versions"],requestBody:{required:true,content:{"application/json":{schema:a.object({rejection_reason:a.string().max(2e3)})}}},responses:{200:{description:"Rejected",content:{"application/json":{schema:$l}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})},"/api/playbook-versions/{playbookVersionId}/deploy":{post:y({operationId:"deployPlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Deploy playbook version \u2014 activates all entries, supersedes previous versions",tags:["playbook-versions"],requestBody:{required:true,content:{"application/json":{schema:a.object({force:a.boolean().default(false)})}}},responses:{200:{description:"Deploy result",content:{"application/json":{schema:u3}}},default:{description:"Error (conflicts exist)",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"deploy"}}})},"/api/playbook-versions/{playbookVersionId}/archive":{post:y({operationId:"archivePlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Archive (abandon) a playbook version",tags:["playbook-versions"],responses:{200:{description:"Archived",content:{"application/json":{schema:$l}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})},"/api/playbook-versions/{playbookVersionId}/preview":{get:y({operationId:"previewPlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Preview diff of all entries vs current state (dry-run deploy)",tags:["playbook-versions"],responses:{200:{description:"Diff preview",content:{"application/json":{schema:l3}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"preview"}}})},"/api/playbook-versions/{playbookVersionId}/conflicts":{get:y({operationId:"listPlaybookVersionConflicts",requestParams:{path:a.object({playbookVersionId:a.string()}),query:Q},summary:"List entries with sequence conflicts (base_sequence \u2260 current)",tags:["playbook-versions"],responses:{200:{description:"Conflict list",content:{"application/json":{schema:Y(sz)}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"list"}}})},"/api/playbook-versions/{playbookVersionId}/rollback":{post:y({operationId:"rollbackPlaybookVersion",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Create a rollback playbook version that reverts a deployed one",tags:["playbook-versions"],requestBody:{required:true,content:{"application/json":{schema:a.object({name:a.string().min(1).max(200).optional()})}}},responses:{201:{description:"Rollback PlaybookVersion created",content:{"application/json":{schema:$l}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"create"}}})},"/api/playbook-versions/{playbookVersionId}/cherry-pick":{post:y({operationId:"cherryPickEntries",requestParams:{path:a.object({playbookVersionId:a.string()})},summary:"Cherry-pick individual entries from this PlaybookVersion into another",tags:["playbook-versions"],requestBody:{required:true,content:{"application/json":{schema:a.object({handles:a.array(a.string()).min(1),target_playbook_version_id:a.string().min(1)})}}},responses:{200:{description:"Cherry-picked",content:{"application/json":{schema:a.object({copied_count:a.number().int()})}}},default:{description:"Error",content:{"application/json":{schema:Ee}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})}});var {Unrestricted:Xe,Pii:d3}=Zt,{Persisted:Cr}=Bt,{Internal:Er}=Mt,m3=a.enum(["active","revoked","rotating"]).meta({id:"ApiKeyStatus","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),bp=ne.merge(pe).merge(_e).extend({name:Ft.meta(Xe),key_hash:a.string().min(1).meta({...d3,readOnly:true}),key_prefix:a.string().min(1).max(20).meta({...Xe,readOnly:true}),key_last4:a.string().length(4).meta({...Xe,readOnly:true}),status:m3.default("active").meta(Xe),last_used_at:Et.meta({...Xe,readOnly:true}),expires_at:Et.meta(Xe)}).meta({id:"ApiKey","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),p3=a.enum(["boolean","string","number","json"]).meta({id:"FlagValueType","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),Ro=ne.merge(pe).merge(_e).extend({key:a.string().min(1).max(100).meta(Xe),value_type:p3.default("boolean").meta(Xe),value:a.string().max(4e3).default("false").meta(Xe),description:Eo.meta(Xe),enabled:a.boolean().default(true).meta(Xe)}).meta({id:"FeatureFlag","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),hS=ne.merge(pe).merge(_e).extend({workspace_name:a.string().min(1).max(200).meta(Xe),support_email:a.string().email().nullable().default(null).meta(Xe),timezone:a.string().max(50).default("UTC").meta(Xe),default_currency:a.string().length(3).default("USD").meta(Xe),logo_url:a.string().url().nullable().default(null).meta(Xe)}).meta({id:"TenantConfig","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),bS=ne.merge(pe).merge(_e).extend({server_url:a.string().url().max(500).meta(Xe),api_token_hint:a.string().max(50).nullable().default(null).meta(Xe),allow_write_actions:a.boolean().default(false).meta(Xe),enabled_tools:a.array(a.string().max(100)).default([]).meta(Xe),enabled:a.boolean().default(false).meta(Xe)}).meta({id:"McpConfig","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),_p=ne.merge(pe).merge(_e).extend({step_key:a.string().min(1).max(100).meta(Xe),label:a.string().min(1).max(200).meta(Xe),done:a.boolean().default(false).meta(Xe),completed_at:Et.meta({...Xe,readOnly:true})}).meta({id:"OnboardingChecklist","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),f3=a.enum(["user","agent","system","webhook"]).meta({id:"AuditActorType","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),g3=ne.merge(_e).extend({environment_id:a.string().min(1).default("production").meta(Xe),actor_type:f3.meta(Xe),actor_id:a.string().nullable().default(null).meta(Xe),action:a.string().min(1).max(120).meta(Xe),object_type:a.string().max(120).nullable().default(null).meta(Xe),object_id:a.string().max(200).nullable().default(null).meta(Xe),payload:a.record(a.string(),a.unknown()).nullable().default(null).meta(Xe),occurred_at:a.string().datetime().meta({...Xe,readOnly:true})}).meta({id:"AuditEvent","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),h3=a.enum(["user_id","account_id","email"]).meta({id:"PlacementTestUserIdentifierType","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er}),vp=ne.merge(pe).merge(_e).merge(dt).merge(ft).extend({handle:ct.meta({...Xe,readOnly:true}),identifier:a.string().min(1).max(200).meta(Xe),identifier_type:h3.default("user_id").meta(Xe),note:a.string().max(500).nullable().default(null).meta(Xe),added_by:a.string().meta(Xe)}).meta({id:"PlacementTestUser","x-revturbine-schema-persistence":Cr,"x-revturbine-schema-exposure":Er,...sr()});({"/api/settings/api-keys":{get:y({operationId:"listApiKeys",requestParams:{query:Q},summary:"List API keys for the tenant",tags:["settings"],responses:{200:{description:"API keys",content:{"application/json":{schema:Y(bp)}}}},"x-revturbine-operation":{exposure:"internal",resource:"api-keys",persistence:{table:"apiKeys",mode:"list"}}}),post:y({operationId:"createApiKey",summary:"Create a new API key",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:mn(bp)}}},responses:{201:{description:"API key created",content:{"application/json":{schema:bp}}}},"x-revturbine-operation":{exposure:"internal",resource:"api-keys",persistence:{table:"apiKeys",mode:"create",writeSchema:"ApiKeySchema#writable"}}})},"/api/settings/api-keys/{keyId}":{delete:y({operationId:"revokeApiKey",requestParams:{path:a.object({keyId:a.string()})},summary:"Revoke an API key",tags:["settings"],responses:{200:{description:"API key revoked",content:{"application/json":{schema:bp}}}},"x-revturbine-operation":{exposure:"internal",resource:"api-keys",persistence:{table:"apiKeys",mode:"delete"}}})},"/api/flags":{get:y({operationId:"listFeatureFlags",requestParams:{query:Q},summary:"List feature flags for the tenant",tags:["settings"],responses:{200:{description:"Feature flags",content:{"application/json":{schema:Y(Ro)}}}},"x-revturbine-operation":{exposure:"internal",resource:"feature-flags",persistence:{table:"featureFlags",mode:"list"}}}),post:y({operationId:"createFeatureFlag",summary:"Create a feature flag",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:mn(Ro)}}},responses:{201:{description:"Feature flag created",content:{"application/json":{schema:Ro}}}},"x-revturbine-operation":{exposure:"internal",resource:"feature-flags",persistence:{table:"featureFlags",mode:"create",writeSchema:"FeatureFlagSchema#writable"}}})},"/api/flags/{flagId}":{get:y({operationId:"getFeatureFlag",requestParams:{path:a.object({flagId:a.string()})},summary:"Get a feature flag",tags:["settings"],responses:{200:{description:"Feature flag",content:{"application/json":{schema:Ro}}}},"x-revturbine-operation":{exposure:"internal",resource:"feature-flags",persistence:{table:"featureFlags",mode:"get"}}}),put:y({operationId:"updateFeatureFlag",requestParams:{path:a.object({flagId:a.string()})},summary:"Update a feature flag",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:pn(Ro).partial()}}},responses:{200:{description:"Feature flag updated",content:{"application/json":{schema:Ro}}}},"x-revturbine-operation":{exposure:"internal",resource:"feature-flags",persistence:{table:"featureFlags",mode:"update",writeSchema:"FeatureFlagSchema#writable"}}}),delete:y({operationId:"deleteFeatureFlag",requestParams:{path:a.object({flagId:a.string()})},summary:"Delete a feature flag",tags:["settings"],responses:{200:{description:"Feature flag deleted",content:{"application/json":{schema:Ro}}}},"x-revturbine-operation":{exposure:"internal",resource:"feature-flags",persistence:{table:"featureFlags",mode:"delete"}}})},"/api/settings/tenant-config":{put:y({operationId:"updateTenantConfig",summary:"Update tenant configuration",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:pn(hS).partial()}}},responses:{200:{description:"Tenant config updated",content:{"application/json":{schema:hS}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenant-config",persistence:{table:"tenantConfigs",mode:"update",writeSchema:"TenantConfigSchema#writable"}}})},"/api/settings/mcp":{put:y({operationId:"updateMcpConfig",summary:"Update MCP config",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:pn(bS).partial()}}},responses:{200:{description:"MCP config updated",content:{"application/json":{schema:bS}}}},"x-revturbine-operation":{exposure:"internal",resource:"mcp-config",persistence:{table:"mcpConfigs",mode:"update",writeSchema:"McpConfigSchema#writable"}}})},"/api/settings/onboarding":{get:y({operationId:"listOnboardingSteps",requestParams:{query:Q},summary:"List onboarding checklist steps",tags:["settings"],responses:{200:{description:"Onboarding steps",content:{"application/json":{schema:Y(_p)}}}},"x-revturbine-operation":{exposure:"internal",resource:"onboarding",persistence:{table:"onboardingChecklist",mode:"list"}}})},"/api/settings/onboarding/{stepId}":{get:y({operationId:"getOnboardingStep",requestParams:{path:a.object({stepId:a.string()})},summary:"Get an onboarding step",tags:["settings"],responses:{200:{description:"Onboarding step",content:{"application/json":{schema:_p}}}},"x-revturbine-operation":{exposure:"internal",resource:"onboarding",persistence:{table:"onboardingChecklist",mode:"get"}}}),put:y({operationId:"updateOnboardingStep",requestParams:{path:a.object({stepId:a.string()})},summary:"Update an onboarding step",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:pn(_p).partial()}}},responses:{200:{description:"Onboarding step updated",content:{"application/json":{schema:_p}}}},"x-revturbine-operation":{exposure:"internal",resource:"onboarding",persistence:{table:"onboardingChecklist",mode:"update",writeSchema:"OnboardingChecklistSchema#writable"}}})},"/api/settings/audit-events":{get:y({operationId:"listAuditEvents",requestParams:{query:Q},summary:"List audit events for the tenant",tags:["settings"],responses:{200:{description:"Audit events",content:{"application/json":{schema:Y(g3)}}}},"x-revturbine-operation":{exposure:"internal",resource:"audit-events",persistence:{table:"auditEvents",mode:"list"}}})},"/api/config/placement-test-users":{get:y({operationId:"listPlacementTestUsers",requestParams:{query:Q},summary:"List placement test users for the tenant",tags:["settings"],responses:{200:{description:"Placement test users",content:{"application/json":{schema:Y(vp)}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-test-users",persistence:{table:"placementTestUsers",mode:"list"}}}),post:y({operationId:"createPlacementTestUser",summary:"Add a placement test user",tags:["settings"],requestBody:{required:true,content:{"application/json":{schema:mn(vp)}}},responses:{201:{description:"Placement test user created",content:{"application/json":{schema:vp}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-test-users",persistence:{table:"placementTestUsers",mode:"create",writeSchema:"PlacementTestUserSchema#writable"}}})},"/api/config/placement-test-users/{testUserId}":{delete:y({operationId:"deletePlacementTestUser",requestParams:{path:a.object({testUserId:a.string()})},summary:"Remove a placement test user",tags:["settings"],responses:{200:{description:"Placement test user removed",content:{"application/json":{schema:vp}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-test-users",persistence:{table:"placementTestUsers",mode:"delete"}}})}});var {Unrestricted:te,Pii:xn}=Zt,{Persisted:An,Transient:jS}=Bt,{Internal:ln}=Mt,b3=a.enum(["user","admin"]).meta({id:"UserRole","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.merge(pe).extend({name:Ft.meta(te),email:a.string().email().meta(xn),email_verified:a.boolean().default(false).meta(te),image:a.string().url().nullable().default(null).meta(xn),role:b3.default("user").meta(te),banned:a.boolean().default(false).meta({...te,readOnly:true}),ban_reason:a.string().nullable().default(null).meta({...te,readOnly:true}),ban_expires:Et.meta({...te,readOnly:true}),two_factor_enabled:a.boolean().default(false).meta({...te,readOnly:true})}).meta({id:"AuthUser","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.merge(pe).extend({expires_at:a.string().datetime().meta(te),token:a.string().min(1).meta({...xn,readOnly:true}),ip_address:a.string().nullable().default(null).meta(xn),user_agent:a.string().nullable().default(null).meta(xn),user_id:a.string().min(1).meta({...te,readOnly:true}),active_organization_id:a.string().nullable().default(null).meta(te),impersonated_by:a.string().nullable().default(null).meta({...te,readOnly:true})}).meta({id:"AuthSession","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.merge(pe).extend({account_id:a.string().min(1).meta(te),provider_id:a.string().min(1).meta(te),user_id:a.string().min(1).meta({...te,readOnly:true}),access_token:a.string().nullable().default(null).meta({...xn,readOnly:true}),refresh_token:a.string().nullable().default(null).meta({...xn,readOnly:true}),id_token:a.string().nullable().default(null).meta({...xn,readOnly:true}),access_token_expires_at:Et.meta({...te,readOnly:true}),refresh_token_expires_at:Et.meta({...te,readOnly:true}),scope:a.string().nullable().default(null).meta(te),password:a.string().nullable().default(null).meta({...xn,readOnly:true})}).meta({id:"AuthAccount","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.merge(pe).extend({identifier:a.string().min(1).meta(xn),value:a.string().min(1).meta({...xn,readOnly:true}),expires_at:a.string().datetime().meta(te)}).meta({id:"AuthVerification","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({secret:a.string().min(1).meta({...xn,readOnly:true}),backup_codes:a.string().min(1).meta({...xn,readOnly:true}),user_id:a.string().min(1).meta({...te,readOnly:true}),verified:a.boolean().default(false).meta({...te,readOnly:true})}).meta({id:"AuthTwoFactor","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({name:Ft.meta(te),slug:a.string().min(1).max(100).nullable().default(null).meta(te),logo:a.string().url().nullable().default(null).meta(te),created_at:a.string().datetime().meta({...te,readOnly:true}),metadata:a.string().nullable().default(null).meta(te)}).meta({id:"AuthOrganization","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});var cz=a.enum(["viewer","collaborator","approver","admin"]).meta({id:"Role","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});var lz=a.enum(["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"]).meta({id:"PermissionResource","x-revturbine-schema-persistence":jS,"x-revturbine-schema-exposure":ln}),uz=a.enum(["read","create","update","delete","publish","approve","invite","manage_roles"]).meta({id:"PermissionAction","x-revturbine-schema-persistence":jS,"x-revturbine-schema-exposure":ln});a.object({resource:lz,action:uz}).meta({id:"Permission","x-revturbine-schema-persistence":jS,"x-revturbine-schema-exposure":ln});var _3=["tenant","plans","entitlements","placements","targeting","content","experiments","audit","settings"],v3=["plans","entitlements","placements","targeting","content","experiments"],y3=["plans","entitlements","placements","targeting","content","experiments"],x3=["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"],S3=["read","create","update","delete","publish","approve","invite","manage_roles"];function $p(e,n){return e.flatMap(r=>n.map(o=>({resource:r,action:o})))}var I3=$p(_3,["read"]),P3=[...I3,...$p(v3,["create","update"])];[...P3,...$p(y3,["publish","approve","delete"])];$p(x3,S3);var k3=lz.options.flatMap(e=>uz.options.map(n=>`${e}:${n}`));a.enum(k3).meta({id:"McpTokenScope","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({organization_id:a.string().min(1).meta({...te,readOnly:true}),user_id:a.string().min(1).meta({...te,readOnly:true}),role:cz.default("viewer").meta(te),created_at:a.string().datetime().meta({...te,readOnly:true})}).meta({id:"AuthMember","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});var T3=a.enum(["pending","accepted","rejected","canceled","expired"]).meta({id:"InvitationStatus","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({organization_id:a.string().min(1).meta({...te,readOnly:true}),email:a.string().email().meta(xn),role:cz.nullable().default(null).meta(te),status:T3.default("pending").meta(te),expires_at:a.string().datetime().meta(te),created_at:a.string().datetime().meta({...te,readOnly:true}),inviter_id:a.string().min(1).meta({...te,readOnly:true})}).meta({id:"AuthInvitation","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({name:a.string().max(200).nullable().default(null).meta(te),public_key:a.string().min(1).meta({...xn,readOnly:true}),user_id:a.string().min(1).meta({...te,readOnly:true}),credential_id:a.string().min(1).meta({...te,readOnly:true}),counter:a.number().int().default(0).meta({...te,readOnly:true}),device_type:a.string().min(1).meta(te),backed_up:a.boolean().default(false).meta(te),transports:a.string().nullable().default(null).meta(te),created_at:a.string().datetime().meta({...te,readOnly:true}),aaguid:a.string().nullable().default(null).meta(te)}).meta({id:"AuthPasskey","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.merge(pe).extend({config_id:a.string().min(1).meta(te),name:a.string().max(200).nullable().default(null).meta(te),start:a.string().nullable().default(null).meta(te),reference_id:a.string().min(1).meta(te),prefix:a.string().nullable().default(null).meta(te),key:a.string().min(1).meta({...xn,readOnly:true}),refill_interval:a.number().int().nullable().default(null).meta(te),refill_amount:a.number().int().nullable().default(null).meta(te),last_refill_at:Et.meta({...te,readOnly:true}),enabled:a.boolean().default(true).meta(te),rate_limit_enabled:a.boolean().default(false).meta(te),rate_limit_time_window:a.number().int().nullable().default(null).meta(te),rate_limit_max:a.number().int().nullable().default(null).meta(te),request_count:a.number().int().default(0).meta({...te,readOnly:true}),remaining:a.number().int().nullable().default(null).meta({...te,readOnly:true}),last_request:Et.meta({...te,readOnly:true}),expires_at:Et.meta(te),permissions:a.string().nullable().default(null).meta(te),metadata:a.string().nullable().default(null).meta(te)}).meta({id:"AuthApiKey","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});ne.extend({issuer:a.string().min(1).meta(te),oidc_config:a.string().nullable().default(null).meta(te),saml_config:a.string().nullable().default(null).meta(te),user_id:a.string().min(1).meta({...te,readOnly:true}),provider_id:a.string().min(1).meta(te),organization_id:a.string().nullable().default(null).meta(te),domain:a.string().min(1).meta(te)}).meta({id:"AuthSsoProvider","x-revturbine-schema-persistence":An,"x-revturbine-schema-exposure":ln});var dz="0.2.46";var Sn=Object.freeze({colors:{primary:"#1e40af",primaryText:"#ffffff",secondary:"#f3f4f6",secondaryText:"#1f2937",accent:"#7c3aed",accentText:"#ffffff",background:"#ffffff",surface:"#f8fafc",surfaceBorder:"#e2e8f0",text:"#111827",textSecondary:"#4b5563",textMuted:"#6b7280",overlay:"rgba(0, 0, 0, 0.5)",success:"#16a34a",warning:"#f59e0b",danger:"#dc2626",info:"#60a5fa",toastBackground:"#1f2937",toastText:"#ffffff",cliBackground:"#1e1e1e",cliText:"#d4d4d4",cliLink:"#569cd6",track:"#e5e7eb"},typography:{fontFamily:"system-ui, -apple-system, sans-serif",fontFamilyMono:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',fontSize:"14px",fontSizeSmall:"13px",fontSizeHeader:"20px",fontSizeLargeHeader:"28px"},shape:{borderRadiusSmall:"6px",borderRadius:"8px",borderRadiusLarge:"12px"},shadows:{medium:"0 10px 40px rgba(0, 0, 0, 0.25)",large:"0 20px 60px rgba(0, 0, 0, 0.3)"}});function di(e){return e?{id:e.id??Sn.id,name:e.name??Sn.name,version:e.version??Sn.version,colors:{...Sn.colors,...e.colors},typography:{...Sn.typography,...e.typography},shape:{...Sn.shape,...e.shape},shadows:{...Sn.shadows,...e.shadows}}:{...Sn}}var mz=createContext(Sn);function US({theme:e,children:n}){return jsx(mz.Provider,{value:e,children:n})}function gt(){return useContext(mz)}var z3={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 24px",lineHeight:"1.5",zIndex:9990,width:"100%",boxSizing:"border-box"},j3={display:"flex",flexDirection:"column",gap:"2px",flex:1},U3={display:"flex",alignItems:"center",gap:"8px",marginLeft:"16px",flexShrink:0};function Oo({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[c,l]=useState(false),[d,m]=useState(o);o&&!d&&l(false),o!==d&&m(o);let p=e.position||"top",f=e.dismissible!==false,g=useCallback(()=>{l(true),r();},[r]),h=useMemo(()=>{let{colors:x,typography:S,shape:w}=s;return {banner:{...z3,backgroundColor:x.primary,color:x.primaryText,fontFamily:S.fontFamily,fontSize:S.fontSize,position:"sticky",...p==="bottom"?{bottom:0}:{top:0}},header:{fontWeight:600,fontSize:"15px"},body:{opacity:.9},cta:{padding:"6px 16px",backgroundColor:x.primaryText,color:x.primary,border:"none",borderRadius:w.borderRadiusSmall,fontWeight:600,fontSize:S.fontSizeSmall,cursor:"pointer",whiteSpace:"nowrap"},dismiss:{padding:"4px 8px",background:"transparent",border:"none",color:x.primaryText,fontSize:"18px",cursor:"pointer",opacity:.7,lineHeight:1}}},[s,p]);return !o||c?null:jsxs("div",{className:t,style:{...h.banner,...i},role:"banner","data-rt-placement":"banner",children:[jsxs("div",{style:j3,children:[e.header&&jsx("div",{style:h.header,children:e.header}),(e.body||e.message)&&jsx("div",{style:h.body,children:e.body||e.message})]}),jsxs("div",{style:U3,children:[e.cta_label&&jsx("button",{type:"button",style:h.cta,onClick:n,children:e.cta_label}),f&&jsx("button",{type:"button",style:h.dismiss,onClick:g,"aria-label":"Dismiss",children:"\xD7"})]})]})}Oo.displayName="BannerSlot";var F3={position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999},N3={width:"100%",maxHeight:"200px",objectFit:"cover",marginBottom:"16px"},L3={display:"flex",gap:"12px",justifyContent:"flex-end"};function jo({content:e,onCtaClick:n,onSecondaryCtaClick:r,onDismiss:o,visible:t,className:i,style:s}){let c=gt(),l=useRef(null),d=e.style||"optional",[m,p]=useState(false),f=useRef(t);useEffect(()=>{t&&!f.current&&p(false),f.current=t;},[t]);let g=useCallback(()=>{p(true),o();},[o]),h=useCallback(w=>{d==="optional"&&w.target===w.currentTarget&&g();},[d,g]),x=useCallback(w=>{w.key==="Escape"&&d==="optional"&&g();},[d,g]);useEffect(()=>{if(t)return document.addEventListener("keydown",x),l.current?.focus(),()=>document.removeEventListener("keydown",x)},[t,x]);let S=useMemo(()=>{let{colors:w,typography:$,shape:E,shadows:P}=c;return {overlay:{...F3,backgroundColor:w.overlay,fontFamily:$.fontFamily},dialog:{position:"relative",maxWidth:"480px",width:"90%",backgroundColor:w.background,borderRadius:E.borderRadiusLarge,boxShadow:P.large,padding:"32px",boxSizing:"border-box"},close:{position:"absolute",top:"12px",right:"12px",background:"transparent",border:"none",fontSize:"20px",color:w.textMuted,cursor:"pointer",padding:"4px 8px",lineHeight:1},image:{...N3,borderRadius:E.borderRadius},header:{fontSize:$.fontSizeHeader,fontWeight:700,color:w.text,marginBottom:"8px",lineHeight:1.3},body:{fontSize:"15px",color:w.textSecondary,lineHeight:1.6,marginBottom:"24px"},primaryBtn:{padding:"10px 24px",backgroundColor:w.primary,color:w.primaryText,border:"none",borderRadius:E.borderRadius,fontWeight:600,fontSize:$.fontSize,cursor:"pointer"},secondaryBtn:{padding:"10px 24px",backgroundColor:"transparent",color:w.textSecondary,border:`1px solid ${w.surfaceBorder}`,borderRadius:E.borderRadius,fontWeight:500,fontSize:$.fontSize,cursor:"pointer"}}},[c]);return !t||m?null:jsx("div",{style:S.overlay,onClick:h,role:"dialog","aria-modal":"true","aria-label":typeof e.header=="string"?e.header:"Placement","data-rt-placement":"modal",children:jsxs("div",{ref:l,className:i,style:{...S.dialog,...s},tabIndex:-1,children:[d==="optional"&&jsx("button",{type:"button",style:S.close,onClick:g,"aria-label":"Close",children:"\xD7"}),e.image_url&&jsx("img",{src:e.image_url,alt:"",style:S.image}),e.header&&jsx("div",{style:S.header,children:e.header}),e.body&&jsx("div",{style:S.body,children:e.body}),jsxs("div",{style:L3,children:[e.secondary_cta_label&&r&&jsx("button",{type:"button",style:S.secondaryBtn,onClick:r,children:e.secondary_cta_label}),e.cta_label&&jsx("button",{type:"button",style:S.primaryBtn,onClick:n,children:e.cta_label})]})]})})}jo.displayName="ModalSlot";var B3={width:"100%",maxHeight:"180px",objectFit:"cover",marginBottom:"12px"};function Hl({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt(),s=useMemo(()=>{let{colors:c,typography:l,shape:d}=i;return {container:{backgroundColor:c.surface,border:`1px solid ${c.surfaceBorder}`,borderRadius:d.borderRadius,padding:"20px",fontFamily:l.fontFamily,boxSizing:"border-box"},header:{fontSize:"16px",fontWeight:600,color:c.text,marginBottom:"6px",lineHeight:1.4},body:{fontSize:l.fontSize,color:c.textSecondary,lineHeight:1.6,marginBottom:"16px"},image:{...B3,borderRadius:d.borderRadiusSmall},cta:{padding:"8px 20px",backgroundColor:c.primary,color:c.primaryText,border:"none",borderRadius:d.borderRadiusSmall,fontWeight:600,fontSize:l.fontSizeSmall,cursor:"pointer"}}},[i]);return r?jsxs("div",{className:o,style:{...s.container,...t},"data-rt-placement":"inline-embed",children:[e.image_url&&jsx("img",{src:e.image_url,alt:"",style:s.image}),e.header&&jsx("div",{style:s.header,children:e.header}),(e.body||e.message)&&jsx("div",{style:s.body,children:e.body||e.message}),e.cta_label&&jsx("button",{type:"button",style:s.cta,onClick:n,children:e.cta_label})]}):null}Hl.displayName="InlineEmbedSlot";function mi(e){return jsx(Hl,{...e})}mi.displayName="InPageSlot";var _z={"top-right":{top:"16px",right:"16px"},"bottom-right":{bottom:"16px",right:"16px"},"bottom-center":{bottom:"16px",left:"50%",transform:"translateX(-50%)"}},G3={position:"absolute",zIndex:9995,maxWidth:"380px",width:"90%",lineHeight:1.5,display:"flex",alignItems:"center",gap:"12px",boxSizing:"border-box"},J3={flex:1};function Uo({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[c,l]=useState(o),[d,m]=useState(o);o&&!d&&l(true),o!==d&&m(o);let p=e.position||"bottom-right",f=typeof e.duration=="number"?e.duration:5,g=useCallback(()=>{l(false),r();},[r]);useEffect(()=>{if(!c||f<=0)return;let S=setTimeout(()=>{g();},f*1e3);return ()=>clearTimeout(S)},[c,f,g]);let h=useMemo(()=>{let{colors:S,typography:w,shape:$,shadows:E}=s;return {container:{...G3,backgroundColor:S.toastBackground,color:S.toastText,borderRadius:$.borderRadius,boxShadow:E.medium,padding:"14px 18px",fontFamily:w.fontFamily,fontSize:w.fontSize},cta:{color:S.info,background:"transparent",border:"none",fontWeight:600,fontSize:w.fontSizeSmall,cursor:"pointer",whiteSpace:"nowrap",textDecoration:"underline",padding:0},close:{background:"transparent",border:"none",color:S.textMuted,fontSize:"16px",cursor:"pointer",padding:"2px 4px",lineHeight:1,flexShrink:0}}},[s]);if(!c)return null;let x=_z[p]??_z["bottom-right"];return jsxs("div",{className:t,style:{...h.container,...x,...i},role:"status","aria-live":"polite","data-rt-placement":"toast",children:[jsx("div",{style:J3,children:e.message||e.body||e.header}),e.cta_label&&jsx("button",{type:"button",style:h.cta,onClick:n,children:e.cta_label}),jsx("button",{type:"button",style:h.close,onClick:g,"aria-label":"Close",children:"\xD7"})]})}Uo.displayName="ToastSlot";function Ao({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt();if(!r)return null;let s=e.style||"primary",c={padding:"8px 20px",border:"none",borderRadius:i.shape.borderRadiusSmall,fontWeight:600,fontSize:i.typography.fontSize,cursor:"pointer",fontFamily:i.typography.fontFamily,whiteSpace:"nowrap",lineHeight:1.4},l={primary:{...c,backgroundColor:i.colors.primary,color:i.colors.primaryText},secondary:{...c,backgroundColor:i.colors.secondary,color:i.colors.secondaryText,border:`1px solid ${i.colors.surfaceBorder}`},accent:{...c,backgroundColor:i.colors.accent,color:i.colors.accentText}},d=l[s]??l.primary;return jsx("button",{type:"button",className:o,style:{...d,...t},onClick:n,"data-rt-placement":"button",children:e.cta_label||"Upgrade"})}Ao.displayName="ButtonSlot";function BS(e){if(typeof e.usage_percent=="number")return e.usage_percent;let n=typeof e.usage_current=="number"?e.usage_current:0,r=typeof e.usage_limit=="number"?e.usage_limit:100;return r>0?Math.min(100,Math.round(n/r*100)):0}function vz(e,n){return e>=90?n.colors.danger:e>=70?n.colors.warning:n.colors.primary}function Y3({content:e,theme:n}){let r=BS(e),o=e.usage_current??r,t=e.usage_limit??100;return jsxs(Fragment,{children:[jsxs("div",{style:{fontSize:n.typography.fontSizeSmall,color:n.colors.textMuted,marginBottom:"8px",display:"flex",justifyContent:"space-between",alignItems:"baseline"},children:[jsx("span",{children:typeof e.header=="string"?e.header:"Usage"}),jsxs("span",{style:{fontWeight:600,color:n.colors.text},children:[String(o)," / ",String(t)]})]}),jsx("div",{style:{width:"100%",height:"8px",backgroundColor:n.colors.track,borderRadius:n.shape.borderRadiusSmall,overflow:"hidden",marginBottom:"12px"},children:jsx("div",{style:{height:"100%",borderRadius:n.shape.borderRadiusSmall,transition:"width 0.3s ease",width:`${Math.min(100,r)}%`,backgroundColor:vz(r,n)}})})]})}function Q3({content:e,theme:n}){let r=e.usage_current??0,o=e.usage_limit??100;return jsxs(Fragment,{children:[jsxs("div",{style:{fontSize:"24px",fontWeight:700,color:n.colors.text,marginBottom:"4px"},children:[String(r)," / ",String(o)]}),jsx("div",{style:{fontSize:n.typography.fontSizeSmall,color:n.colors.textMuted,marginBottom:"12px"},children:typeof e.header=="string"?e.header:"Usage"})]})}var Or=80,LS=8,VS=(Or-LS)/2,NS=2*Math.PI*VS;function eZ({content:e,theme:n}){let r=BS(e),o=e.usage_current??r,t=e.usage_limit??100,i=NS-r/100*NS,s=vz(r,n);return jsxs("div",{style:{display:"flex",alignItems:"center",gap:"16px",marginBottom:"12px"},children:[jsxs("svg",{width:Or,height:Or,style:{flexShrink:0},children:[jsx("circle",{cx:Or/2,cy:Or/2,r:VS,fill:"none",stroke:n.colors.track,strokeWidth:LS}),jsx("circle",{cx:Or/2,cy:Or/2,r:VS,fill:"none",stroke:s,strokeWidth:LS,strokeLinecap:"round",strokeDasharray:NS,strokeDashoffset:i,transform:`rotate(-90 ${Or/2} ${Or/2})`,style:{transition:"stroke-dashoffset 0.3s ease"}}),jsxs("text",{x:Or/2,y:Or/2+1,textAnchor:"middle",dominantBaseline:"central",fontSize:"16",fontWeight:"700",fill:n.colors.text,children:[r,"%"]})]}),jsxs("div",{children:[jsxs("div",{style:{fontSize:n.typography.fontSize,fontWeight:600,color:n.colors.text},children:[String(o)," / ",String(t)]}),jsx("div",{style:{fontSize:n.typography.fontSizeSmall,color:n.colors.textMuted},children:typeof e.header=="string"?e.header:"Usage"})]})]})}function vs({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt();if(!r)return null;let s=e.display_style||"progress_bar",c=typeof e.show_at=="number"?e.show_at:0,l=BS(e);if(c>0&&l<c)return null;let d={backgroundColor:i.colors.surface,border:`1px solid ${i.colors.surfaceBorder}`,borderRadius:i.shape.borderRadius,padding:"16px 20px",fontFamily:i.typography.fontFamily,boxSizing:"border-box"},m={padding:"6px 16px",backgroundColor:i.colors.primary,color:i.colors.primaryText,border:"none",borderRadius:i.shape.borderRadiusSmall,fontWeight:600,fontSize:i.typography.fontSizeSmall,cursor:"pointer"};return jsxs("div",{className:o,style:{...d,...t},"data-rt-placement":"quota-meter",children:[s==="numeric_counter"?jsx(Q3,{content:e,theme:i}):s==="circular_gauge"?jsx(eZ,{content:e,theme:i}):jsx(Y3,{content:e,theme:i}),e.cta_label&&jsx("button",{type:"button",style:m,onClick:n,children:e.cta_label})]})}vs.displayName="QuotaMeterSlot";var tZ={maxWidth:"800px",margin:"0 auto",padding:"40px 24px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},nZ={fontSize:"28px",fontWeight:700,color:"#111827",textAlign:"center",marginBottom:"12px",lineHeight:1.3},rZ={fontSize:"16px",color:"#4b5563",textAlign:"center",lineHeight:1.6,marginBottom:"32px",maxWidth:"600px",marginLeft:"auto",marginRight:"auto"},iZ={display:"flex",justifyContent:"center",gap:"16px"},oZ={padding:"12px 32px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"8px",fontWeight:600,fontSize:"16px",cursor:"pointer"},aZ={padding:"12px 32px",backgroundColor:"transparent",color:"#4b5563",border:"1px solid #d1d5db",borderRadius:"8px",fontWeight:500,fontSize:"16px",cursor:"pointer"};function ys({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){return o?jsxs("div",{className:t,style:{...tZ,...i},"data-rt-placement":"full-page",children:[e.header&&jsx("h1",{style:nZ,children:e.header}),e.body&&jsx("p",{style:rZ,children:e.body}),jsxs("div",{style:iZ,children:[e.cta_label&&jsx("button",{type:"button",style:oZ,onClick:n,children:e.cta_label}),e.secondary_cta_label&&r&&jsx("button",{type:"button",style:aZ,onClick:r,children:e.secondary_cta_label})]})]}):null}ys.displayName="FullPageSlot";var sZ={backgroundColor:"#1e1e1e",color:"#d4d4d4",fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',fontSize:"13px",lineHeight:1.6,padding:"16px 20px",borderRadius:"6px",boxSizing:"border-box"},cZ={whiteSpace:"pre-wrap",marginBottom:"12px"},lZ={display:"flex",gap:"16px"},Sz={color:"#569cd6",background:"transparent",border:"none",cursor:"pointer",fontFamily:"inherit",fontSize:"inherit",padding:0,textDecoration:"underline"};function Kl({content:e,onCtaClick:n,visible:r,className:o,style:t}){if(!r)return null;let i=e.message||e.body||"",s=e.action_links,c=Array.isArray(s)?s.filter(l=>typeof l=="string"):[];return jsxs("div",{className:o,style:{...sZ,...t},"data-rt-placement":"cli",children:[i&&jsx("div",{style:cZ,children:i}),(c.length>0||e.cta_label)&&jsxs("div",{style:lZ,children:[e.cta_label&&jsx("button",{type:"button",style:Sz,onClick:n,children:e.cta_label}),c.map(l=>jsx("button",{type:"button",style:Sz,onClick:n,children:l},l))]})]})}Kl.displayName="CliSlot";var uZ={backgroundColor:"#ffffff",border:"1px solid #e2e8f0",borderRadius:"8px",padding:"16px 20px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},dZ={display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:"4px"},mZ={fontSize:"13px",color:"#6b7280"},pZ={fontSize:"28px",fontWeight:700,color:"#111827"},fZ={fontSize:"12px",color:"#9ca3af",marginBottom:"12px"},gZ={width:"100%",height:"6px",backgroundColor:"#e5e7eb",borderRadius:"3px",overflow:"hidden",marginBottom:"12px"},hZ={height:"100%",borderRadius:"3px",transition:"width 0.3s ease"},bZ={display:"flex",gap:"8px"},_Z={padding:"6px 16px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"6px",fontWeight:600,fontSize:"13px",cursor:"pointer"};function vZ(e,n){if(n<=0)return "#1e40af";let r=e/n*100;return r<=10?"#dc2626":r<=25?"#f59e0b":"#1e40af"}function Gl({content:e,onCtaClick:n,visible:r,className:o,style:t}){if(!r)return null;let i=typeof e.credits_remaining=="number"?e.credits_remaining:0,s=typeof e.credits_total=="number"?e.credits_total:i,c=typeof e.show_at=="number"?e.show_at:0,l=e.show_burn_rate===true,d=e.display_style||"numeric_balance";if(c>0&&i>c)return null;let m=s>0?i/s*100:0;return jsxs("div",{className:o,style:{...uZ,...t},"data-rt-placement":"credit-balance",children:[jsxs("div",{style:dZ,children:[jsx("span",{style:mZ,children:typeof e.header=="string"?e.header:"Credits Remaining"}),jsx("span",{style:pZ,children:String(i)})]}),l&&typeof e.burn_rate_label=="string"&&jsx("div",{style:fZ,children:e.burn_rate_label}),(d==="balance_bar"||d==="balance_burn_rate")&&s>0&&jsx("div",{style:gZ,children:jsx("div",{style:{...hZ,width:`${Math.min(100,m)}%`,backgroundColor:vZ(i,s)}})}),jsx("div",{style:bZ,children:e.cta_label&&jsx("button",{type:"button",style:_Z,onClick:n,children:e.cta_label})})]})}Gl.displayName="CreditBalanceSlot";var xZ={position:"absolute",top:"16px",right:"16px"};function SZ(e,n,r){return n==="top"?{position:"fixed",left:`${e.left+e.width/2}px`,top:`${e.top-r}px`,transform:"translate(-50%, -100%)"}:n==="left"?{position:"fixed",left:`${e.left-r}px`,top:`${e.top+e.height/2}px`,transform:"translate(-100%, -50%)"}:n==="right"?{position:"fixed",left:`${e.left+e.width+r}px`,top:`${e.top+e.height/2}px`,transform:"translate(0, -50%)"}:{position:"fixed",left:`${e.left+e.width/2}px`,top:`${e.top+e.height+r}px`,transform:"translate(-50%, 0)"}}function Jl({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[c,l]=useState(false),[d,m]=useState(null),p=e.anchor_selector||void 0,f=e.position||"top",g=typeof e.anchor_gap=="number"?e.anchor_gap:10,h=useCallback(()=>{if(!p||typeof window>"u"){m(null);return}let $=window.document.querySelector(p);if(!$){m(null);return}let E=$.getBoundingClientRect();m({top:E.top,left:E.left,width:E.width,height:E.height});},[p]);useEffect(()=>{o&&l(false);},[o]),useEffect(()=>{if(!o||(h(),typeof window>"u"))return;let $=()=>h();return window.addEventListener("resize",$),window.addEventListener("scroll",$,true),()=>{window.removeEventListener("resize",$),window.removeEventListener("scroll",$,true);}},[o,h]);let x=useCallback(()=>{l(true),r();},[r]),S=useMemo(()=>{let{colors:$,typography:E,shape:P,shadows:I}=s;return {container:{zIndex:9996,maxWidth:"320px",width:"max-content",lineHeight:1.45,display:"flex",flexDirection:"column",gap:"10px",boxSizing:"border-box",backgroundColor:$.toastBackground,color:$.toastText,borderRadius:P.borderRadius,boxShadow:I.medium,padding:"12px 14px",fontFamily:E.fontFamily,fontSize:E.fontSizeSmall},body:{margin:0},actions:{display:"flex",alignItems:"center",gap:"10px"},cta:{color:$.info,background:"transparent",border:"none",fontWeight:600,fontSize:E.fontSizeSmall,cursor:"pointer",textDecoration:"underline",padding:0},close:{marginLeft:"auto",background:"transparent",border:"none",color:$.textMuted,fontSize:"14px",cursor:"pointer",lineHeight:1,padding:"2px 4px"}}},[s]);if(!o||c)return null;let w=d?SZ(d,f,g):xZ;return jsxs("div",{className:t,style:{...S.container,...w,...i},role:"status","aria-live":"polite","data-rt-placement":"tooltip",children:[jsx("p",{style:S.body,children:e.message||e.body||e.header}),jsxs("div",{style:S.actions,children:[e.cta_label&&jsx("button",{type:"button",style:S.cta,onClick:n,children:e.cta_label}),jsx("button",{type:"button",style:S.close,onClick:x,"aria-label":"Close tooltip",children:"\xD7"})]})]})}Jl.displayName="TooltipSlot";function PZ(e){return e==="connected"?"#22c55e":e==="pending"?"#f59e0b":"#ef4444"}function kZ(e){return e==="connected"?"Connected":e==="pending"?"Pending":"Disconnected"}function Wl({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt(),s=e.connection_state||"disconnected",c=useMemo(()=>{let{colors:l,typography:d,shape:m,shadows:p}=i;return {card:{backgroundColor:l.surface,border:`1px solid ${l.surfaceBorder}`,borderRadius:m.borderRadius,boxShadow:p.medium,padding:"16px",display:"flex",flexDirection:"column",gap:"12px",fontFamily:d.fontFamily,maxWidth:"420px"},row:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px"},heading:{margin:0,color:l.text,fontSize:"15px",fontWeight:600},body:{margin:0,color:l.textSecondary,fontSize:d.fontSizeSmall,lineHeight:1.45},badge:{display:"inline-flex",alignItems:"center",gap:"6px",borderRadius:"999px",border:`1px solid ${l.surfaceBorder}`,padding:"3px 8px",fontSize:"12px",color:l.textSecondary},dot:{width:"8px",height:"8px",borderRadius:"50%",backgroundColor:PZ(s)},cta:{alignSelf:"flex-start",backgroundColor:l.primary,color:l.primaryText,border:"none",borderRadius:m.borderRadiusSmall,padding:"7px 12px",fontWeight:600,fontSize:d.fontSizeSmall,cursor:"pointer"}}},[i,s]);return r?jsxs("section",{className:o,style:{...c.card,...t},"data-rt-placement":"agent-connector",children:[jsxs("div",{style:c.row,children:[jsx("h3",{style:c.heading,children:e.header||"Connect your assistant"}),jsxs("span",{style:c.badge,children:[jsx("span",{style:c.dot}),kZ(s)]})]}),jsx("p",{style:c.body,children:e.body||"Enable your agent connector to automate premium workflows."}),e.cta_label&&jsx("button",{type:"button",style:c.cta,onClick:n,children:e.cta_label})]}):null}Wl.displayName="AgentConnectorSlot";var Yl=(e,n="")=>e==null||e===""?n:String(e);function $Z(e){let n=[];return e.cta_label&&n.push({kind:"primary",label:e.cta_label}),e.secondary_cta_label&&n.push({kind:"secondary",label:e.secondary_cta_label}),n}var HS={fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.05em",color:"#94a3b8"};function KS({content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:o,accentText:t}){let i=$Z(e);if(i.length===0)return null;let s={padding:"5px 12px",borderRadius:"6px",fontSize:"12px",fontWeight:600,cursor:"pointer",whiteSpace:"nowrap"};return jsx("div",{style:{display:"flex",gap:"8px",marginTop:"8px",alignItems:"center"},children:i.map(c=>c.kind==="primary"?jsx("button",{type:"button","data-rt-cta":"primary",onClick:n,style:{...s,backgroundColor:o,color:t,border:"none"},children:c.label},"primary"):r&&jsx("button",{type:"button","data-rt-cta":"secondary",onClick:r,style:{...s,backgroundColor:"transparent",color:o,border:`1px solid ${o}`},children:c.label},"secondary"))})}function GS(){let e=gt();return useMemo(()=>({accent:e.colors.primary,accentText:e.colors.primaryText}),[e])}function Op({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=GS();return o?jsxs("div",{className:t,"data-rt-placement":"email",style:{borderRadius:"8px",border:"1px solid #e2e8f0",backgroundColor:"#ffffff",...i},children:[jsxs("div",{style:{borderBottom:"1px solid #f1f5f9",padding:"8px 12px"},children:[jsx("p",{style:{...HS,margin:0},children:"Email preview"}),jsx("p",{style:{margin:"2px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Yl(e.subject,"(no subject)")})]}),jsxs("div",{style:{padding:"8px 12px",fontSize:"12px",color:"#475569",whiteSpace:"pre-wrap"},children:[Yl(e.body,"(empty body)"),jsx(KS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]})]}):null}Op.displayName="EmailPreviewSlot";function zp({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=GS();return o?jsxs("div",{className:t,"data-rt-placement":"sms",style:{borderRadius:"8px",border:"1px solid #e2e8f0",backgroundColor:"#f8fafc",padding:"12px",...i},children:[jsx("p",{style:{...HS,margin:0},children:"SMS preview"}),jsx("div",{style:{display:"inline-block",maxWidth:"85%",marginTop:"4px",borderRadius:"16px",backgroundColor:"#dcfce7",padding:"8px 12px",fontSize:"12px",color:"#1e293b"},children:Yl(e.body??e.message,"(empty message)")}),jsx(KS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}zp.displayName="SmsPreviewSlot";function jp({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=GS();return o?jsxs("div",{className:t,"data-rt-placement":"push",style:{borderRadius:"8px",border:"1px solid #e2e8f0",backgroundColor:"#ffffff",padding:"12px",boxShadow:"0 1px 2px rgba(0,0,0,0.05)",...i},children:[jsx("p",{style:{...HS,margin:0},children:"Push preview"}),jsx("p",{style:{margin:"4px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Yl(e.header??e.title,"(no title)")}),jsx("p",{style:{margin:0,fontSize:"12px",color:"#475569"},children:Yl(e.body,"(empty body)")}),jsx(KS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}jp.displayName="PushPreviewSlot";function xs(e){e.register({id:"banner",label:"Banner",description:"Full-width banner placement at the top or bottom of the page.",surfaceType:"banner",component:Oo,defaultProps:{content:{position:"top",dismissible:true}}}),e.register({id:"modal",label:"Modal Overlay",description:"Centered overlay dialog. Supports optional (dismissible) and blocking modes.",surfaceType:"modal",component:jo}),e.register({id:"in_page",label:"Inline Embed",description:"Content card or message embedded in the page flow.",surfaceType:"in_page",component:mi}),e.register({id:"plans_cta",label:"Plans CTA",description:"Pricing page CTA-focused module with concise upgrade actions.",surfaceType:"in_page",component:mi,priority:30,accepts:n=>n.surface.type==="in_page"&&typeof n.surface.template=="string"&&["plans_cta","pricing_page_cta","plans_pricing_cta"].includes(n.surface.template)}),e.register({id:"plans_full",label:"Plans Full Page",description:"Dedicated plans and pricing full-page experience.",surfaceType:"full_page",component:ys,priority:30,accepts:n=>typeof n.surface.template=="string"&&["plans_full","pricing_page_full","plans_pricing_full"].includes(n.surface.template)}),e.register({id:"inline_gate_message",label:"Inline Gate Message",description:"Inline entitlement gate message with upgrade CTA.",surfaceType:"in_page",component:mi,priority:40,accepts:n=>n.surface.type==="in_page"&&typeof n.surface.template=="string"&&["inline_gate_message","inline_feature_gate","feature_gate_inline"].includes(n.surface.template)}),e.register({id:"tooltip",label:"Tooltip",description:"Compact tooltip-like guidance near a feature surface.",surfaceType:"toast",component:Jl,priority:50,accepts:n=>{let r=typeof n.surface.template=="string"?n.surface.template:"";return r==="tooltip"||r==="feature_tooltip"||r==="inline_tooltip"},defaultProps:{content:{position:"top-right",duration:0}}}),e.register({id:"toast",label:"Toast Notification",description:"Small transient notification that auto-dismisses.",surfaceType:"toast",component:Uo,defaultProps:{content:{position:"bottom-right",duration:5}}}),e.register({id:"button",label:"Button",description:"Persistent button in the product navigation or UI.",surfaceType:"button",component:Ao,defaultProps:{content:{style:"primary"}}}),e.register({id:"full_page",label:"Full Page",description:"Dedicated managed page (e.g. plans & pricing).",surfaceType:"full_page",component:ys}),e.register({id:"quota_meter",label:"Quota Meter",description:"Visual usage meter with upgrade CTA. Triggers at configurable threshold.",surfaceType:"in_page",component:vs,accepts:n=>n.surface.type==="in_page"&&(n.surface.template==="quota_meter"||n.surface.template==="quota_meter_counter_upgrade_button")}),e.register({id:"trial_counter",label:"Trial Counter",description:"Trial countdown/counter with conversion CTA.",surfaceType:"in_page",component:vs,priority:35,accepts:n=>n.surface.type==="in_page"&&typeof n.surface.template=="string"&&["trial_counter","trial_countdown","trial_days_counter"].includes(n.surface.template),defaultProps:{content:{display_style:"numeric_counter"}}}),e.register({id:"cli",label:"CLI Message",description:"Message in a CLI or chat-style interface with action links.",surfaceType:"cli",component:Kl}),e.register({id:"email",label:"Email Preview",description:"Static email channel preview (subject + body + CTAs).",surfaceType:"email",component:Op}),e.register({id:"sms",label:"SMS Preview",description:"Static SMS channel preview (message bubble + CTAs).",surfaceType:"sms",component:zp}),e.register({id:"push",label:"Push Preview",description:"Static push-notification channel preview (title + body + CTAs).",surfaceType:"push",component:jp}),e.register({id:"agent_connector",label:"Agent Connector",description:"Agent-surface placement for assistant/connector experiences.",surfaceType:"agent",component:Wl,priority:30,accepts:n=>{let r=typeof n.surface.template=="string"?n.surface.template:"";return n.surface.type==="agent"||r==="agent_connector"}}),e.register({id:"credit_balance",label:"Credit Balance Counter",description:"Depleting credit balance display with purchase/upgrade CTA.",surfaceType:"in_page",component:Gl,accepts:n=>n.surface.type==="in_page"&&(n.surface.template==="credit_balance_counter"||n.surface.template==="credit_balance")});}var wZ=new Set(["type","plan_handle","promotion_id","placement_handle","url","tour_id"]),Fo=class{constructor(){O(this,"types",new Map);O(this,"surfaceIndex",new Map);}register(n){let r=this.types.get(n.id);r&&console.warn(`[RevTurbine] Replacing existing placement slot type id ${n.id}.`,{previousSurfaceType:r.surfaceType,nextSurfaceType:n.surfaceType});let o={...n,priority:n.priority??0,accepts:n.accepts??(i=>i.surface.type===n.surfaceType)};this.types.set(o.id,o);let t=this.surfaceIndex.get(o.surfaceType)??[];t.includes(o.id)||(t.push(o.id),this.surfaceIndex.set(o.surfaceType,t));}unregister(n){let r=this.types.get(n);if(!r)return false;this.types.delete(n);let o=this.surfaceIndex.get(r.surfaceType);if(o){let t=o.filter(i=>i!==n);t.length>0?this.surfaceIndex.set(r.surfaceType,t):this.surfaceIndex.delete(r.surfaceType);}return true}get(n){return this.types.get(n)}resolve(n){if(n.surface.template){let t=this.types.get(n.surface.template);if(t)return t}let o=(this.surfaceIndex.get(n.surface.type)??[]).map(t=>this.types.get(t)).filter(t=>t!=null).sort((t,i)=>i.priority-t.priority);for(let t of o)if(t.accepts?.(n))return t;return this.types.get("custom")}listAll(){return Array.from(this.types.values())}listBySurfaceType(n){return (this.surfaceIndex.get(n)??[]).map(o=>this.types.get(o)).filter(Boolean)}has(n){return this.types.has(n)}};function JS(e,n){let r={current_usage:"usage_current",current_limit:"usage_limit",remaining_usage:"usage_remaining"},o=i=>{if(typeof i=="number"&&Number.isFinite(i))return i;if(typeof i=="string"&&i.trim().length>0){let s=Number(i);if(Number.isFinite(s))return s}},t=i=>{let s="_usage_remaining";if(i==="usage_remaining"){let m=o(n.usage_current??n.current_usage),p=o(n.usage_limit);return m!==void 0&&p!==void 0?Math.max(0,p-m):void 0}if(!i.endsWith(s))return;let c=i.slice(0,-s.length);if(!c)return;let l=o(n[`${c}_usage_current`]),d=o(n[`${c}_usage_limit`]);if(!(l===void 0||d===void 0))return Math.max(0,d-l)};return e.replace(/\{\{(\w+)\}\}/g,(i,s)=>{let c=r[s]??s,l=n[c];if(l!=null)return String(l);let d=t(c);return d!=null?String(d):`{{${s}}}`})}function Ss(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=JS(t,n):r[o]=t;return r}function Up(e){let n=typeof e.type=="string"&&e.type.length>0?e.type:"dismiss",r={};for(let[o,t]of Object.entries(e))wZ.has(o)||(r[o]=t);return {type:n,plan_handle:typeof e.plan_handle=="string"?e.plan_handle:void 0,promotion_id:typeof e.promotion_id=="string"?e.promotion_id:void 0,placement_handle:typeof e.placement_handle=="string"?e.placement_handle:void 0,url:typeof e.url=="string"?e.url:void 0,tour_id:typeof e.tour_id=="string"?e.tour_id:void 0,...Object.keys(r).length>0?{params:r}:{}}}function Ap(e){if(e)return {id:typeof e.id=="string"?e.id:"",name:typeof e.name=="string"?e.name:void 0,discount:typeof e.discount=="string"?e.discount:void 0,type:typeof e.type=="string"?e.type:void 0,status:typeof e.status=="string"?e.status:void 0}}var Ql=null;function Dp(){return Ql||(Ql=new Fo,xs(Ql)),Ql}function Rz(){Ql=null;}var eu={recommended_plan_handle:"",recommended_plan_name:""};function Cz(e){let{strategy:n,planOverride:r,currentPlanHandle:o,plans:t}=e;if(t.length===0)return eu;if(n==="custom"){let c=r??"";if(c===""||c===o)return eu;let l=t.find(d=>d.unique_handle===c);return l?{recommended_plan_handle:l.unique_handle,recommended_plan_name:l.name}:eu}if(o==="")return eu;let i=ph(o,t);if(i===null)return eu;let s=t.find(c=>c.unique_handle===i);return {recommended_plan_handle:i,recommended_plan_name:s?.name??i}}var WS="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Np=WS.length,RZ=Np-1,CZ=10,Fp=16;function EZ(e){let n=e,r="";for(let o=0;o<CZ;o+=1){let t=n%Np;r=WS[t]+r,n=Math.floor(n/Np);}return r}function Ez(){let e=new Uint8Array(Fp);crypto.getRandomValues(e);let n=new Array(Fp);for(let r=0;r<Fp;r+=1)n[r]=e[r]%Np;return n}function OZ(e){for(let n=e.length-1;n>=0;n-=1){if(e[n]<RZ)return e[n]+=1,true;e[n]=0;}return false}function Oz(){let e=-1,n=[];return {next(r=Date.now()){r<=e&&n.length===Fp?OZ(n)||(e+=1,n=Ez()):(e=r,n=Ez());let o=EZ(e);for(let t=0;t<n.length;t+=1)o+=WS[n[t]];return o}}}var XS=Oz();var zZ=new Set([408,429,500,502,503,504]);function jZ(e){return new Promise(n=>setTimeout(n,e))}async function YS(e,n={}){let r=n.retries??2,o=n.baseDelayMs??200,t=n.sleep??jZ,i;for(let s=0;s<=r;s+=1){try{let c=await e();if(c.ok)return {delivered:!0,status:c.status,attempts:s+1};if(!zZ.has(c.status))return {delivered:!1,status:c.status,attempts:s+1};i=new Error(`ingest_status_${c.status}`);}catch(c){i=c instanceof Error?c:new Error(String(c));}s<r&&await t(o*(s+1));}return {delivered:false,error:i,attempts:r+1}}function QS(){return {created:0,dropped:0,redacted:0,sampled:0,deduped:0,queued:0,sent:0,failed:0}}function zz(){let e=typeof IntersectionObserver<"u",n=new Map;function r(t,i,s,c){s.fired||(s.fired=true,s.timer!==null&&(clearTimeout(s.timer),s.timer=null),t.io.unobserve(i),t.tracked.delete(i),s.onExposed(c));}function o(t,i){let s=`${t}|${i}`,c=n.get(s);if(c)return c;let l=new Map,m={io:new IntersectionObserver(p=>{let f=n.get(s);if(f)for(let g of p){let h=l.get(g.target);!h||h.fired||(g.isIntersecting?h.minVisibleMs<=0?r(f,g.target,h,"viewport"):h.timer===null&&(h.timer=setTimeout(()=>r(f,g.target,h,"viewport"),h.minVisibleMs)):h.timer!==null&&(clearTimeout(h.timer),h.timer=null));}},{threshold:t,rootMargin:i}),tracked:l};return n.set(s,m),m}return {supported:e,observe(t,i,s){if(!e){let p=false;return Promise.resolve().then(()=>{p||s("render_fallback");}),()=>{p=true;}}let c=i.threshold??.5,l=i.rootMargin??"0px",d=o(c,l),m={onExposed:s,minVisibleMs:i.minVisibleMs??0,timer:null,fired:false};return d.tracked.set(t,m),d.io.observe(t),()=>{m.fired||(m.timer!==null&&(clearTimeout(m.timer),m.timer=null),d.io.unobserve(t),d.tracked.delete(t));}},disconnect(){for(let t of n.values())t.io.disconnect();n.clear();}}}var No=zz();var UZ="data-rt-event",AZ="data-rt-ref",DZ="data-rt-no-capture",jz="data-rt-prop-";var FZ=new Set(["password","file","hidden"]),NZ=/(^|\s)(cc-|current-password|new-password|one-time-code)/;function LZ(e){if(e.tagName.toLowerCase()!=="input")return false;let r=(e.getAttribute("type")??"text").toLowerCase();if(FZ.has(r))return true;let o=(e.getAttribute("autocomplete")??"").toLowerCase();return NZ.test(o)}function VZ(e,n){let r=n instanceof Document?n.documentElement.parentElement:n.parentElement,o=e,t=null;for(;o&&o!==r;){if(o instanceof HTMLElement){if(o.hasAttribute(DZ))return null;if(!t){let i=o.getAttribute(UZ);if(i){if(LZ(o))return null;t={el:o,event:i};}}}o=o.parentElement;}return t}function BZ(e,n,r){let o={},t=0;for(let s of Array.from(e.attributes)){if(t>=n)break;if(!s.name.startsWith(jz))continue;let c=s.name.slice(jz.length);c&&(o[c]=String(s.value).slice(0,r),t+=1);}let i=e.getAttribute(AZ);return i&&(o.ref=i.slice(0,r)),o}function eI(e,n,r={}){let o=r.events??["click"],t=r.maxProps??24,i=r.maxValueLen??256,s=c=>{let l=c.target;if(!(l instanceof Element))return;let d=VZ(l,e);d&&n(d.event,BZ(d.el,t,i));};for(let c of o)e.addEventListener(c,s,true);return ()=>{for(let c of o)e.removeEventListener(c,s,true);}}var Nz=new Set(xp.options);function Fre(e,n){return Mp(n,"defineUiPathResolvers(resolvers)")}function Mp(e,n){if(!e)return {};let r={};for(let[o,t]of Object.entries(e)){let i=String(o||"").trim();if(!i)throw new Error(`[RevTurbine] ${n} contains an empty action_type key.`);if(typeof t!="function")throw new Error(`[RevTurbine] ${n} contains a non-function resolver for action_type '${i}'.`);r[i]=t;}return r}var Uz={Server:"revturbine_server",CustomEndpoints:"custom_endpoints",LocalOnly:"local_only"};function Is(e){return e?.playbook??e?.exportedConfig}function Nre(e){return {...e,runtimeMode:"revturbine_server"}}function Lre(e){return {...e,runtimeMode:"custom_endpoints",endpointOverrides:e.endpointOverrides}}function MZ(e){let n=Mp(e.uiPathResolvers,"createLocalRuntimeConfig(uiPathResolvers)");return {...e,runtimeMode:"local_only",localRuntime:e.localRuntime,uiPathResolvers:n}}function Vre(e){return MZ(e)}function Bre(e,n,r={}){return {slotId:e,surfaceType:n,entitlementHandle:r.entitlementHandle,planHandle:r.planHandle,placementHandle:r.placementHandle}}function Mre(e,n={}){return {entitlementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,planHandle:n.planHandle,placementHandle:n.placementHandle}}function Zre(e,n={}){return {placementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,entitlementHandle:n.entitlementHandle,planHandle:n.planHandle}}function Wi(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function qre(e,n,r,o={}){return {userId:e,placementId:n,interactionType:r,treatmentId:o.treatmentId,interactionAt:o.interactionAt,metadata:o.metadata}}function Hre(e,n,r){return {eventType:e,payload:n,options:r}}var Az="revturbine:sdk-route-change",Bp="sdk_validation_warning",ZZ="revturbine:decision-cache",qZ="revturbine:interaction-state",HZ="revturbine:presentation-caps",KZ="/api/track",GZ="/api/sdk/meta",JZ="/api/events/interactions",WZ="/api/placements/interactions",XZ="revturbine-web-sdk",nI="user_context_observed",YZ=20,QZ=5e3;function Lz(e,n){let r=e[n];if(typeof r=="string"&&r.trim().length>0)return r;let o=Vz(e);if(o){let t=o[n];if(typeof t=="string"&&t.trim().length>0)return t}return null}function Vz(e){return oe(e.payload)?e.payload:null}var eq=["surface_slot_id","placement_id","payload_id","experiment_id","variant_key"];function tq(e){let n={};for(let r of eq)n[r]=Lz(e,r);return n}var nq=["placement_","gate_","slot_","engagement_"],rq=new Set(["impression","segment_enrolled","segment_unenrolled",nI]);function iq(e){let n=yc(e);return n===Bp?"derived":rq.has(n)||nq.some(r=>n.startsWith(r))?"automatic":"explicit"}var oq=["decision_id"];function aq(e){let n={};for(let r of oq)n[r]=Lz(e,r);return n}function sq(e){return ch(e,sI(8))}async function Dz(e){let n=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Ym(new Uint8Array(n))}function sI(e){let n=Math.ceil(e/2),r=new Uint8Array(n);crypto.getRandomValues(r);let o="";for(let t=0;t<r.length;t+=1){let i=r[t].toString(16).padStart(2,"0");o+=i;}return o.slice(0,e)}function en(){return typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${sI(16)}`}function Lp(){return Wa()?{}:{url:window.location.href,title:document.title,referrer:document.referrer||void 0}}function Fz(){return {id:void 0,custom:{},entitlements:{},usage:{},personalization:{}}}function cq(e,n){let r={};for(let[o,t]of Object.entries(n))(typeof t=="string"||typeof t=="number"||typeof t=="boolean")&&(r[o]=t);return wx(e,r)}function lq(e,n,r){if(e.length===0)return true;let o=new Map;for(let t of e){let i=r.get(t)??"__no_dim__",s=o.get(i)??[];s.push(t),o.set(i,s);}for(let t of o.values())if(!t.some(i=>n.has(i)))return false;return true}var rI=class{constructor(n){O(this,"exportedConfig");this.exportedConfig=n;}getExportedConfig(){return this.exportedConfig}},iI=class{constructor(n,r,o){O(this,"cached");O(this,"resolver");O(this,"legacyTargetDefaults");this.resolver=n,this.cached=o,this.legacyTargetDefaults=r;}getExportedConfig(){return this.cached}async refresh(){let n=vi(await this.resolver(),"localRuntime.resolvers.resolveExportedConfig()",this.legacyTargetDefaults);return n&&(this.cached=n),this.cached}},oI=class{constructor(n,r){O(this,"source");O(this,"legacyTargetDefaults");this.source=n,this.legacyTargetDefaults=r;}getExportedConfig(){return vi(this.source.getExportedConfig(),"configProvider.getExportedConfig()",this.legacyTargetDefaults)}async refresh(){let n=await this.source.refresh?.();return vi(n??this.source.getExportedConfig(),"configProvider.refresh()",this.legacyTargetDefaults)}},aI=class{constructor(n){O(this,"tenantId");O(this,"apiKey");O(this,"ingestPublicKey");O(this,"environmentId");O(this,"analyticsEnabled");O(this,"anonymousTelemetryEnabled");O(this,"previewMode");O(this,"telemetryConsent");O(this,"telemetryCounters",QS());O(this,"maxBatchSize");O(this,"flushIntervalMs");O(this,"flushTimer");O(this,"batchingTeardown",[]);O(this,"anonTelemetryNoticeShown",false);O(this,"piiRedactionWarned",false);O(this,"endpoint");O(this,"runtimeMode");O(this,"endpointOverrides");O(this,"localRuntime");O(this,"localStorageKey");O(this,"mode");O(this,"policy");O(this,"extensionEnabled");O(this,"placementBehavior");O(this,"providerFailureSlotBehavior");O(this,"uiPathResolvers");O(this,"persistentStore");O(this,"sessionStore");O(this,"anonymousId");O(this,"sessionId");O(this,"decisionCache",new Map);O(this,"interactionState",new Map);O(this,"interactionQueue",[]);O(this,"defaultDecisionTtlMs",6e4);O(this,"defaultDismissCooldownMs",1440*60*1e3);O(this,"defaultRemindLaterMs",3600*1e3);O(this,"defaultUsageWarningPercent",80);O(this,"defaultTrialExpiringDays",3);O(this,"events",[]);O(this,"placements",new Map);O(this,"syncedSurfaceSlotIds",new Set);O(this,"userContext");O(this,"pageContext");O(this,"usageBalances",{});O(this,"localDecisionsByPlacementId",new Map);O(this,"localPlacementsByLookupKey",new Map);O(this,"localEntitlementsByHandle",new Map);O(this,"localUserContextsByUserId",new Map);O(this,"localTrialStatus",{in_trial:false});O(this,"presentationCapsByKey",new Map);O(this,"usageLimitByEntitlement",new Map);O(this,"usageTokenPrefixByEntitlement",new Map);O(this,"segmentIdsByPredicateField",new Map);O(this,"configuredSegmentsById",new Map);O(this,"dirtySegmentIds",new Set);O(this,"segmentMembershipBySegmentId",new Map);O(this,"segmentMembershipUserId");O(this,"lastTrialTriggerStage","none");O(this,"configProvider");O(this,"branding");O(this,"apiBranding");O(this,"defaultLocalPlacementDecisionResolver");O(this,"sdkDisabledByProviderFailure",false);O(this,"sdkDisabledReason");O(this,"providerRegistry");O(this,"placementTypeRegistry");O(this,"impressionHistory");if(this.tenantId=n.tenantId,this.apiKey=n.apiKey,this.ingestPublicKey=n.ingestPublicKey,this.environmentId=n.environmentId?.trim()||"default",this.analyticsEnabled=n.analytics!==false,this.anonymousTelemetryEnabled=n.anonymousTelemetry!==false,this.previewMode=n.previewMode===true,this.telemetryConsent=n.telemetry?.consent??"granted",this.maxBatchSize=Math.max(1,n.eventBatching?.maxBatchSize??YZ),this.flushIntervalMs=Math.max(0,n.eventBatching?.flushIntervalMs??QZ),this.endpoint=n.endpoint.replace(/\/$/,""),this.runtimeMode=n.runtimeMode??Uz.Server,this.endpointOverrides=n.endpointOverrides??{},this.localRuntime=n.localRuntime,this.branding=n.branding,this.apiBranding=n.apiBranding,this.configProvider=this.resolveConfigProvider(n),this.localStorageKey=n.localRuntime?.storageKey??`revturbine:${this.tenantId}:local-runtime`,this.mode=n.mode,this.policy={inferUser:n.contextPolicy?.inferUser??true,inferPage:n.contextPolicy?.inferPage??true,routerAutoTrack:n.contextPolicy?.routerAutoTrack??true},this.extensionEnabled=!!n.extension?.enabled,this.placementBehavior={enableClientCapsEnforcement:n.placementBehavior?.enableClientCapsEnforcement??false,enableAutoGatedPlacement:n.placementBehavior?.enableAutoGatedPlacement??false,enableTrialAutoTriggers:n.placementBehavior?.enableTrialAutoTriggers??false},this.providerFailureSlotBehavior=n.providerFailureSlotBehavior??"invisible",this.uiPathResolvers=Mp(n.uiPathResolvers,"RevTurbineInitOptions.uiPathResolvers"),this.persistentStore=Li(n.persistentStorage),this.sessionStore=iS(n.sessionStorage),this.userContext={usage:{},...this.policy.inferUser?Fz():{},...n.user||{}},this.pageContext={...this.policy.inferPage?Lp():{},...n.page||{},tags:vc(n.page?.tags)},this.anonymousId=this.resolveAnonymousId(),this.sessionId=en(),this.providerRegistry=new xl,this.placementTypeRegistry=new Fo,this.impressionHistory=new Yx({store:new pp({storage:this.persistentStore,tenantId:this.tenantId}),userId:this.userContext.id??this.anonymousId}),xs(this.placementTypeRegistry),this.defaultLocalPlacementDecisionResolver=this.buildDefaultLocalPlacementDecisionResolver(),n.domainProviders)for(let r of n.domainProviders)this.providerRegistry.register(r);this.assertUiPathResolverCoverageOrThrow(),this.hydrateDecisionCache(),this.hydrateInteractionState(),this.hydratePresentationCaps(),this.hydrateLocalRuntimeState(),this.impressionHistory.hydrate(),this.rebuildSegmentPredicateFieldIndex(),this.refreshExportedConfigSnapshot(),this.recalculateDerivedUsageTraits(),zn()&&this.policy.routerAutoTrack&&this.installRouteTracking(),zn()&&this.extensionEnabled&&this.installBridge(),this.capture("page_view",{mode:this.mode,runtime_mode:this.runtimeMode,source:"sdk_init",placement_behavior_flags:this.placementBehavior}),this.startEventBatchFlushing(),this.emitSdkInitTelemetry();}isLocalOnlyMode(){return this.runtimeMode===Uz.LocalOnly}resolveConfigProvider(n){let r={tenantId:n.tenantId,environmentId:n.environmentId??"default"};if(n.configProvider)return new oI(n.configProvider,r);let o=vi(Is(n.localRuntime),"localRuntime.playbook",r),t=n.localRuntime?.resolvers?.resolveExportedConfig;if(t)return new iI(t,r,o);if(o)return new rI(o)}async refreshExportedConfigSnapshot(){try{await this.configProvider?.refresh?.(),this.rebuildSegmentPredicateFieldIndex();}catch{}}getConfiguredExportedConfig(){return this.configProvider?.getExportedConfig()}rebuildSegmentPredicateFieldIndex(){this.segmentIdsByPredicateField.clear(),this.configuredSegmentsById.clear();let r=this.getConfiguredExportedConfig()?.segments??[];for(let o of r)if(this.configuredSegmentsById.set(o.handle,o),!(!o.predicates||o.predicates.length===0))for(let t of o.predicates){let i=String(t.field||"").trim();if(!i)continue;let s=this.segmentIdsByPredicateField.get(i)??new Set;s.add(o.handle),this.segmentIdsByPredicateField.set(i,s);}this.markAllSegmentsDirty();}buildDefaultLocalPlacementDecisionResolver(){if(!this.isLocalOnlyMode()||this.localRuntime?.resolvers?.getPlacementDecision)return;let n=this.getConfiguredExportedConfig(),r=this.localRuntime?.placements??(Array.isArray(n?.placements)?{placements:n.placements}:void 0);if(!(!n||!r))return wo({placements:r,exportedConfig:n,impressionHistory:this.impressionHistory})}synthesizeProviderContext(){let n=this.userContext.plan,r=this.userContext.usage,o=this.localTrialStatus,t=this.userContext.payment_failed,i=this.userContext.payment_at_risk,s=this.userContext.tiers,c=s!==void 0&&Object.keys(s).length>0;if(!n&&!r&&!c)return;let l={};if(r&&typeof r=="object"){let m=ti(r);for(let[p,f]of Object.entries(r)){if(!f||typeof f!="object")continue;let g=typeof f.amount=="number"?f.amount:m[p]??0,h=typeof f.limit=="number"?f.limit:0,x=h>0?Math.max(0,h-g):0;l[p]={used:g,limit:h,remaining:x,unit:typeof f.unit=="string"?f.unit:void 0,reset_date:typeof f.reset_date=="string"?f.reset_date:void 0};}}let d={...o.in_trial!==void 0?{trialActive:o.in_trial}:{},...o.trial_limit_type!==void 0?{trialLimitType:o.trial_limit_type}:{},...o.progress_percent!==void 0?{trialProgressPercent:o.progress_percent}:{},...o.days_remaining!==void 0?{trialDaysRemaining:o.days_remaining}:{},...o.day_number!==void 0&&o.days_remaining!==void 0?{trialDaysTotal:o.day_number+o.days_remaining}:{},...o.state!==void 0?{trialState:o.state}:{},...o.usage_entitlement_handle!==void 0?{trialUsageEntitlementHandle:o.usage_entitlement_handle}:{},...o.usage_consumed!==void 0?{trialUsageConsumed:o.usage_consumed}:{},...o.usage_limit!==void 0?{trialUsageLimit:o.usage_limit}:{}};return {...n?{plan:{currentPlanHandle:n.id??n.name??"",currentPlanName:n.name,...d,...t!==void 0?{paymentFailed:t}:{},...i!==void 0?{paymentAtRisk:i}:{}}}:{},...Object.keys(l).length>0||c?{entitlements:{entries:{},usage:l,...c?{tiers:s}:{}}}:{}}}markAllSegmentsDirty(){this.dirtySegmentIds.clear();for(let n of this.configuredSegmentsById.keys())this.dirtySegmentIds.add(n);this.segmentMembershipBySegmentId.clear();}markSegmentsDirtyForFields(n){for(let r of n){let o=this.segmentIdsByPredicateField.get(r);if(o)for(let t of o)this.dirtySegmentIds.add(t);}}toSegmentEvaluationTraits(n,r,o){return np(n,r,o)}buildTargetingState(n){return rp(n,this.getConfiguredExportedConfig(),this.usageBalances)}markSegmentsDirtyFromContextChange(n,r){if(this.configuredSegmentsById.size===0)return;let o=n.id||this.anonymousId,t=r.id||this.anonymousId;if(o!==t){this.segmentMembershipUserId=t,this.markAllSegmentsDirty();return}let i=this.buildTargetingState(n),s=this.buildTargetingState(r),c=new Set,l=new Set([...Object.keys(i.segmentTraits),...Object.keys(s.segmentTraits)]);for(let d of l)i.segmentTraits[d]!==s.segmentTraits[d]&&c.add(d);this.markSegmentsDirtyForFields(c);}currentPathname(){if(this.pageContext.url)try{return new URL(this.pageContext.url).pathname}catch{}return zn()?window.location.pathname:"/"}disableForProviderFailure(n){this.sdkDisabledByProviderFailure||(this.sdkDisabledByProviderFailure=true,this.sdkDisabledReason=n,this.decisionCache.clear(),this.persistDecisionCache(),console.warn(`[RevTurbine] SDK disabled after provider fallback chain failed: ${n}`));}isDisabledByProviderFailure(){return this.sdkDisabledByProviderFailure}disabledDecisionForPlacement(n,r){let o=this.providerFailureSlotBehavior==="placeholder",t=o?`${r??n} temporarily unavailable`:`${r??n} unavailable`,i=o?"This placement is in safe fallback mode because all configured providers failed.":"This placement is currently hidden because provider fallback resolution failed.";return {placementId:n,requestId:en(),visible:o,decisionSource:"fallback",reasonCodes:["sdk_disabled_provider_failure"],suppressionReason:o?void 0:"sdk_disabled_provider_failure",content:Wi(t,i,o?"Retry later":"Continue")}}disabledPlacementOutputForConfig(n){if(this.providerFailureSlotBehavior!=="placeholder")return null;let r=`disabled_output_${en()}`,o=n.slotId?`${n.slotId} temporarily unavailable`:"Placement temporarily unavailable";return {output_id:r,category:"fallback",surface:{type:n.surfaceType??"banner",slot_id:n.slotId},content:{title:o,header:o,body:"This placement is in safe fallback mode because all configured providers failed.",cta_label:"Retry later"},rule_id:"sdk_disabled_provider_failure",decision_id:r,config_version:"sdk-fallback",present_upsell:false}}endpointFor(n,r){let o=this.endpointOverrides[n];return o&&o.trim().length>0?/^https?:\/\//i.test(o)?o:`${this.endpoint}${o.startsWith("/")?"":"/"}${o}`:`${this.endpoint}${r}`}localPlacementLookupKey(n){return Cx(n)}localLookupMatchesConfig(n,r){if(r.slotId&&n.slotId&&n.slotId!==r.slotId||r.surfaceType&&n.surfaceType&&n.surfaceType!==r.surfaceType)return false;let o=(t,i)=>!t||!i?true:t===i;return o(r.entitlementHandle,n.entitlementHandle)&&o(r.planHandle,n.planHandle)&&o(r.placementHandle,n.placementHandle)}localOutputMatchesConfig(n,r){return mh(n,r.planHandle)}applyCategoryConflictSuppression(n){return ep(n)}resolveLocalPlacementFromCandidates(n,r){return Ox(n,true,{fixedOnly:r?.fixedOnly??false})}localPlacementForConfig(n){let r=this.localPlacementsByLookupKey.get(this.localPlacementLookupKey(n));if(r&&!this.localOutputMatchesConfig(r,n))return null;let o=[];for(let[t,i]of this.localPlacementsByLookupKey.entries()){if(!i)continue;let s=dh(t);this.localLookupMatchesConfig(s,n)&&this.localOutputMatchesConfig(i,n)&&o.push(i);}return r&&!o.some(t=>t.output_id===r.output_id)&&o.push(r),this.resolveLocalPlacementFromCandidates(o,n)}hydrateLocalRuntimeState(){if(!this.isLocalOnlyMode())return;let n=this.localRuntime?.initialData;if(n?.placementDecisionsByPlacementId)for(let[o,t]of Object.entries(n.placementDecisionsByPlacementId))this.localDecisionsByPlacementId.set(o,t);if(n?.placementsByLookupKey)for(let[o,t]of Object.entries(n.placementsByLookupKey))this.localPlacementsByLookupKey.set(o,t);if(n?.entitlementByHandle)for(let[o,t]of Object.entries(n.entitlementByHandle))this.localEntitlementsByHandle.set(o,t);if(n?.userContextByUserId)for(let[o,t]of Object.entries(n.userContextByUserId))this.localUserContextsByUserId.set(o,t);n?.trialStatus&&(this.localTrialStatus=n.trialStatus);let r=this.persistentStore.getItem(this.localStorageKey);if(!r){this.persistLocalRuntimeState();return}try{let o=JSON.parse(r);o.userContext&&(this.userContext=this.mergeUserContext(o.userContext)),o.pageContext&&(this.pageContext=this.mergePageContext(o.pageContext)),o.usageBalances&&(this.usageBalances={...this.usageBalances,...o.usageBalances});for(let t of o.placements||[])this.placements.set(t.id,t);for(let[t,i]of Object.entries(o.decisions||{}))this.localDecisionsByPlacementId.set(t,i);for(let[t,i]of Object.entries(o.placementLookup||{}))this.localPlacementsByLookupKey.set(t,i);for(let[t,i]of Object.entries(o.entitlements||{}))this.localEntitlementsByHandle.set(t,i);for(let[t,i]of Object.entries(o.userContexts||{}))this.localUserContextsByUserId.set(t,i);o.trialStatus&&(this.localTrialStatus=o.trialStatus);}catch{this.persistentStore.removeItem(this.localStorageKey),this.persistLocalRuntimeState();}}persistLocalRuntimeState(){if(this.isLocalOnlyMode())try{let n={userContext:this.userContext,pageContext:this.pageContext,usageBalances:this.usageBalances,placements:Array.from(this.placements.values()),decisions:Object.fromEntries(this.localDecisionsByPlacementId.entries()),placementLookup:Object.fromEntries(this.localPlacementsByLookupKey.entries()),entitlements:Object.fromEntries(this.localEntitlementsByHandle.entries()),userContexts:Object.fromEntries(this.localUserContextsByUserId.entries()),trialStatus:this.localTrialStatus};this.persistentStore.setItem(this.localStorageKey,JSON.stringify(n));}catch{}}decisionCacheStorageKey(){return `${ZZ}:${this.tenantId}:${this.anonymousId}`}interactionStateStorageKey(){return `${qZ}:${this.tenantId}:${this.anonymousId}`}presentationCapsStorageKey(){return `${HZ}:${this.tenantId}:${this.anonymousId}`}hydrateDecisionCache(){let n=this.sessionStore.getItem(this.decisionCacheStorageKey());if(n)try{let r=JSON.parse(n),o=Date.now();Object.entries(r).forEach(([t,i])=>{!i||typeof i!="object"||!Number.isFinite(i.expiresAt)||i.expiresAt<=o||this.decisionCache.set(t,i);});}catch{this.sessionStore.removeItem(this.decisionCacheStorageKey());}}persistDecisionCache(){let n=Date.now(),r=Object.fromEntries(Array.from(this.decisionCache.entries()).filter(([,o])=>o.expiresAt>n));try{this.sessionStore.setItem(this.decisionCacheStorageKey(),JSON.stringify(r));}catch{}}hydrateInteractionState(){let n=this.persistentStore.getItem(this.interactionStateStorageKey());if(n)try{let r=JSON.parse(n);Object.entries(r).forEach(([o,t])=>{!t||typeof t!="object"||this.interactionState.set(o,t);});}catch{this.persistentStore.removeItem(this.interactionStateStorageKey());}}persistInteractionState(){let n=Object.fromEntries(this.interactionState.entries());try{this.persistentStore.setItem(this.interactionStateStorageKey(),JSON.stringify(n));}catch{}}hydratePresentationCaps(){let n=this.persistentStore.getItem(this.presentationCapsStorageKey());if(n)try{let r=JSON.parse(n);for(let[o,t]of Object.entries(r)){if(!t||typeof t!="object")continue;let i=Array.isArray(t.seenAt)?t.seenAt.filter(c=>Number.isFinite(c)&&c>0):[],s=Number.isFinite(t.cooldownUntil)?t.cooldownUntil:void 0;this.presentationCapsByKey.set(o,{seenAt:i,cooldownUntil:s});}}catch{this.persistentStore.removeItem(this.presentationCapsStorageKey());}}persistPresentationCaps(){try{let n=Object.fromEntries(this.presentationCapsByKey.entries());this.persistentStore.setItem(this.presentationCapsStorageKey(),JSON.stringify(n));}catch{}}activePlanIdentifiers(n){let r=oe(this.userContext.plan)&&typeof this.userContext.plan.id=="string"?this.userContext.plan.id:typeof this.userContext.custom?.plan=="string"?this.userContext.custom.plan:"",o=String(r||"").toLowerCase(),t=new Set;if(!o)return t;t.add(o);for(let i of n.plans??[]){let s=typeof i.unique_handle=="string"?i.unique_handle.toLowerCase():"";s===o&&t.add(s);}return t}ruleTargetsActivePlan(n,r){let t=(Array.isArray(n.targets)?n.targets:[]).filter(i=>oe(i)&&i.kind==="plan");return t.length===0?true:t.some(i=>typeof i.id=="string"&&r.has(i.id.toLowerCase()))}hydrateUsageLimitRulesFromExportedConfig(){let n=this.getConfiguredExportedConfig();if(!n)return;this.usageLimitByEntitlement.clear();let r=this.activePlanIdentifiers(n),o=new Map,t=n.entitlements??[];for(let s of t){let c=typeof s.unique_handle=="string"?s.unique_handle:"";c&&o.set(c,c);}let i=n.entitlement_rules??[];for(let s of i){if(!oe(s))continue;let c=typeof s.entitlement_id=="string"?s.entitlement_id:"";if(!c)continue;let l=typeof s.kind=="string"?s.kind:"";if(!(l==="usage_limit"||l==="credits"||l==="seat"))continue;let m=o.get(c)??"",p=typeof s.unit=="string"?s.unit:"",f=fh(p),g=f&&!gh(f)?f:Qo(m||c);g&&(this.usageTokenPrefixByEntitlement.set(c,g),m&&this.usageTokenPrefixByEntitlement.set(m,g));let h=Number(s.limit_value??s.allowance_value);if(!Number.isFinite(h)||h<=0||!this.ruleTargetsActivePlan(s,r))continue;let x=this.defaultUsageWarningPercent;this.usageLimitByEntitlement.set(c,{limit:h,warningPercent:x}),m&&this.usageLimitByEntitlement.set(m,{limit:h,warningPercent:x});}}recalculateDerivedUsageTraits(){let n=this.getConfiguredExportedConfig();this.hydrateUsageLimitRulesFromExportedConfig();let r=Ax({context:this.userContext,exportedConfig:n,usageBalances:this.usageBalances,usageTokenPrefixByEntitlement:this.usageTokenPrefixByEntitlement,usageThresholdLookup:t=>this.usageThresholdForEntitlement(t)}),o=this.deriveRecommendedPlanTokens(n);this.userContext={...this.userContext,personalization:{...r,...o}};}deriveRecommendedPlanTokens(n,r){let o={recommended_plan_handle:"",recommended_plan_name:""};if(!n?.plans?.length)return o;let t=typeof this.userContext.plan=="object"&&this.userContext.plan?.id||(typeof this.userContext.custom?.plan=="string"?this.userContext.custom.plan:""),i=String(t||"").toLowerCase(),s=n.plans.map(c=>({source_id:c.unique_handle,unique_handle:c.unique_handle,name:c.name,tier_position:c.tier_position??0,sort_order:c.sort_order??0}));return Cz({strategy:r?.strategy??"next_tier_up",planOverride:r?.planOverride,currentPlanHandle:i,plans:s})}getPersonalizationTokens(n){let r={},o=this.userContext.personalization??{};for(let[t,i]of Object.entries(o))t!=="user_id"&&(typeof i=="string"||typeof i=="number")&&(r[t]=i);if(r.plan_name===void 0){let t=ho(this.getConfiguredExportedConfig(),this.userContext.plan);t?r.plan_name=t:typeof this.userContext.plan=="object"&&this.userContext.plan?.name&&(r.plan_name=this.userContext.plan.name);}if(n?.recommendation_strategy){let t=this.deriveRecommendedPlanTokens(this.getConfiguredExportedConfig(),{strategy:n.recommendation_strategy,planOverride:n.recommendation_plan_override??void 0});r.recommended_plan_handle=t.recommended_plan_handle,r.recommended_plan_name=t.recommended_plan_name;}return r}getEntitlements(){return Object.fromEntries(this.localEntitlementsByHandle.entries())}getUsage(){let n={...ti(this.userContext.usage),...this.usageBalances},r={};for(let[o,t]of Object.entries(n)){if(!Number.isFinite(t))continue;let i=this.usageTokenPrefixByEntitlement.get(o)??Qo(o)??o,s=this.usageThresholdForEntitlement(o);r[i]={current:t,...s?.limit!==void 0?{limit:s.limit}:{}};}return r}getPolicy(){let n=this.getConfiguredExportedConfig();return {contextPolicy:this.policy,placementBehavior:this.placementBehavior,runtimeMode:this.runtimeMode,...typeof n?.version=="string"?{exportedConfigVersion:n.version}:{}}}getBranding(){return eS({explicit:this.branding,legacyConfigTheme:this.getConfiguredExportedConfig()?.theme,apiBranding:this.apiBranding})}deriveLocalEntitlementFromConfiguredRules(n,r){let o=this.getConfiguredExportedConfig();if(!o)return null;let t=typeof this.userContext.plan=="object"&&this.userContext.plan?.id||(typeof this.userContext.custom?.plan=="string"?this.userContext.custom.plan:""),i=String(t||"").toLowerCase(),s=this.getTargeting(),c=new Set(s.segmentIds??[]),{trialGrantedEntitlementHandles:l,effectivePlanHandle:d}=this.resolveReverseTrialGrants(o);return il({handle:n,context:r,currentPlanHandle:i,segmentIds:c,usageBalances:this.usageBalances,userUsage:this.userContext.usage,exportedConfig:o,...l!==void 0?{trialGrantedEntitlementHandles:l}:{},...d!==void 0?{effectivePlanHandle:d}:{}})}resolveReverseTrialGrants(n){let r=this.localTrialStatus;if(!r.in_trial||r.trial_type!=="reverse")return {};let o=r.plan_handle;if(!o)return {};let i=(n.reverse_trial_rules??[]).find(s=>s.fallback_plan_id===o&&s.is_active!==false);return !i||i.entitlements_during_trial.length===0?{}:{trialGrantedEntitlementHandles:new Set(i.entitlements_during_trial),effectivePlanHandle:i.premium_plan_id}}getTargeting(){let n=this.userContext.id||this.anonymousId,r=this.localUserContextsByUserId.get(n),o=this.getConfiguredExportedConfig(),t=ho(o,this.userContext.plan),i=t??r?.plan??(typeof this.userContext.plan=="object"&&this.userContext.plan?.id?this.userContext.plan.id:void 0),s=[...o?.segments??[]],c=Array.from(new Set(s.flatMap(f=>(f.predicates??[]).map(g=>g.field)))).sort((f,g)=>f.localeCompare(g)),l={...r?.traits??{},...this.userContext.custom??{}};for(let[f,g]of Object.entries(this.userContext.entitlements??{}))l[f]===void 0&&(l[f]=g);t&&l.plan_name===void 0&&(l.plan_name=t),i&&l.plan===void 0&&(l.plan=i);let d={...r?.usage??{},...ti(this.userContext.usage),...this.usageBalances};for(let[f,g]of Object.entries(d))l[f]===void 0&&(l[f]=g);let m={};for(let[f,g]of Object.entries(l))(typeof g=="string"||typeof g=="number"||typeof g=="boolean")&&(m[f]=g);if(this.segmentMembershipUserId!==n&&(this.segmentMembershipUserId=n,this.markAllSegmentsDirty()),s.length>0&&this.segmentIdsByPredicateField.size===0&&this.rebuildSegmentPredicateFieldIndex(),s.length>0&&this.dirtySegmentIds.size>0){for(let f of this.dirtySegmentIds){let g=this.configuredSegmentsById.get(f)??s.find(x=>x.handle===f);if(!g){this.segmentMembershipBySegmentId.delete(f);continue}let h=ol([g],m).length>0;this.segmentMembershipBySegmentId.set(f,h);}this.dirtySegmentIds.clear();}let p=s.length>0?s.filter(f=>this.segmentMembershipBySegmentId.get(f.handle)===true).map(f=>f.handle):[...r?.segmentIds??[]];return {userId:n,segmentIds:p,traits:l,...i?{plan:i}:{},...Object.keys(d).length>0?{usage:d}:{},configuredSegments:s,configuredTraitFields:c}}async explainPlacementDecision(n){let r=await this.getPlacementDecision(n),o=this.getTargeting(),t=this.getEntitlements(),i=this.getPolicy(),s=this.getConfiguredExportedConfig(),c=new Set(o.segmentIds),l=o.configuredSegments.map(L=>{let H=Array.isArray(L.predicates)?L.predicates.map(Pe=>cq(Pe,o.traits)):[],ee=H.length>0?H.every(Pe=>Pe.matched):c.has(L.handle);return {segmentId:L.handle,...L.name?{segmentName:L.name}:{},matched:ee,predicates:H}}),d=new Map,m=new Map;if(Array.isArray(s?.entitlements))for(let L of s.entitlements){let H=Lt(L.unique_handle),ee=H;ee&&H&&d.set(ee,H);let Pe=Lt(L.type);ee&&Pe&&m.set(ee,Pe);}let p=new Map;if(Array.isArray(s?.plans))for(let L of s.plans){let H=Lt(L.unique_handle),ee=H;ee&&H&&p.set(ee,H);}let g=(Lt(o.plan,o.traits.plan,o.traits.plan_handle,o.traits.plan_id)??"").toLowerCase(),h=new Map;if(Array.isArray(s?.segments))for(let L of s.segments){let H=Lt(L.handle),ee=Lt(L.dimension_id);H&&ee&&h.set(H,ee);}let x=Array.isArray(s?.entitlement_rules)?s.entitlement_rules.map((L,H)=>{let ee=Lt(L.id)??`entitlement_rule_${H}`,Pe=Lt(L.entitlement_id),me=Pe?d.get(Pe):void 0,fe=Array.isArray(L.targets)?L.targets.filter(ge=>ge.kind==="plan").map(ge=>ge.id):[],ie=fe.map(ge=>p.get(ge)??ge),ze=Array.isArray(L.segment_ids)?L.segment_ids.filter(ge=>typeof ge=="string"):[],At=Lt(L.kind),Qe=!g||fe.some(ge=>ge.toLowerCase()===g),he=lq(ze,c,h),rt=Qe&&he,rn=me?t[me]:Pe?t[Pe]:void 0,K=rt?rn?.status??"unknown":"unknown",G;if(rt)switch(At){case "feature":G=L.enabled===false?"disables feature":"grants access";break;case "capability_tier":{let ge=Lt(L.tier_name);G=ge?`unlocks ${ge} tier`:"unlocks capability tier";break}case "usage_limit":{let ge=typeof L.limit_value=="number"?L.limit_value:void 0,ve=Lt(L.unit)??"",kt=Lt(L.period_scope)??"",un=kt?` / ${kt.replace("per_","")}`:"";G=ge!=null?`sets limit to ${ge.toLocaleString()}${ve?` ${ve}`:""}${un}`:"sets usage limit";break}case "credits":{let ge=L.allowance_value,ve=typeof ge=="number"?ge:void 0,kt=Lt(L.unit)??"credits",un=Lt(L.reset_period)??"",ad=un?` / ${un.replace("per_","")}`:"";G=ve!=null?`grants ${ve.toLocaleString()} ${kt}${ad}`:"grants credit allowance";break}case "seat":{let ge=L.included_count,ve=typeof ge=="number"?ge:void 0;G=ve!=null?`includes ${ve} seat${ve===1?"":"s"}`:"includes seats";break}default:if(Pe){let ge=m.get(Pe);ge==="feature"?G="grants access":ge&&(G=`${ge.replace(/_/g," ")} entitlement`);}break}return {ruleId:ee,...Pe?{entitlementId:Pe}:{},...me?{entitlementHandle:me}:{},...At?{kind:At}:{},planScopes:ie,planIds:fe,...ze.length>0?{segmentIds:ze}:{},matchesPlan:Qe,matchesSegment:he,matched:rt,outcome:K,...G?{outcomeDescription:G}:{},...rn?.reason?{reason:rn.reason}:{}}}):[],S=Lt(r.output?.output_id),w=this.placements.get(n.placementId),$=Lt(w?.name)??"",E=Array.isArray(w?.metadata?.surface_template_ids)?w.metadata.surface_template_ids:[],P=[],I=new Set;if(Array.isArray(s?.placements))for(let L of s.placements){if(!L||typeof L!="object")continue;let H=Lt(L.id)??"",ee=Lt(L.name)??"";if(I.has(H))continue;let Pe=Lt(r.output?.rule_id);if(Pe&&H===Pe){I.add(H),P.push(L);continue}if($&&(H===$||ee===$||H===`pl_${$}`||ee===`pl_${$}`)){I.add(H),P.push(L);continue}E.length>0&&(L.payloads??[]).some(ie=>(ie.surfaces??[]).some(At=>{let Qe=Lt(At.template_id);return Qe?E.includes(Qe):false}))&&(I.add(H),P.push(L));}let z=P.flatMap(L=>(L.payloads??[]).map(ee=>{let Pe=ee.target,me=Pe?.plan_ids??[],fe=me.map(K=>p.get(K)??K),ie=Pe?.segment_chips??[],At=(ee.surfaces??[]).map(K=>Lt(K.template_id)).filter(K=>typeof K=="string"),Qe=me.length===0||!g||me.some(K=>K.toLowerCase()===g),he=ie.length===0||ie.some(K=>c.has(K)),rt="active",rn=rt==="active"&&Qe&&he;return {payloadId:String(ee.id??""),placementId:String(L.id??""),placementName:String(L.name??""),status:rt,planIds:me,planScopes:fe,segmentChips:ie,surfaceTemplateIds:At,matchesPlan:Qe,matchesSegment:he,eligible:rn,selected:!!S&&S===String(ee.id??"")}})),X=r.output?this.extractPlacementCapPolicies(r.output).flatMap(L=>L.rules.length===0&&L.cooldownMs===void 0?[]:L.rules.length===0?[{count:0,period:"session",cooldownMs:L.cooldownMs}]:L.rules.map(H=>({count:H.count,period:H.period,...L.cooldownMs!==void 0?{cooldownMs:L.cooldownMs}:{}}))):[],re={ruleId:r.output?.rule_id,decisionId:r.output?.decision_id,category:r.output?.category,suppressionReason:r.suppressionReason,reasonCodes:r.reasonCodes,capPolicies:X};return {generatedAt:new Date().toISOString(),input:n,decision:r,targeting:o,policy:i,entitlements:t,segments:l,entitlementRules:x,eligiblePayloads:z,placementRules:re}}usageThresholdForEntitlement(n){return Tx(n,this.usageLimitByEntitlement,this.localEntitlementsByHandle,this.usageBalances,this.defaultUsageWarningPercent)}evaluateUsageThresholdCrossings(n,r){return Dx(n,r,t=>this.usageThresholdForEntitlement(t)).map(t=>this.emitTrigger(t.type,{entitlement_handle:t.entitlement_handle,current_usage:t.current_usage,usage_limit:t.usage_limit,usage_percent:t.usage_percent,threshold:t.threshold}))}deriveTrialTriggerStage(n){return Fx(n,this.lastTrialTriggerStage,this.defaultTrialExpiringDays)}async evaluateTrialLifecycleTriggers(n){let r=this.deriveTrialTriggerStage(n);if(!this.placementBehavior.enableTrialAutoTriggers){this.lastTrialTriggerStage=r;return}if(r!==this.lastTrialTriggerStage){if(this.lastTrialTriggerStage=r,r==="midpoint"){await this.emitTrigger("trial_midpoint",{days_remaining:n.days_remaining});return}if(r==="expiring"){await this.emitTrigger("trial_expiring",{days_remaining:n.days_remaining});return}r==="expired"&&await this.emitTrigger("trial_expired",{days_remaining:0});}}resolveAnonymousId(){let n=`revturbine:${this.tenantId}:anon`;try{let r=this.persistentStore.getItem(n);if(r)return r;let o=en();return this.persistentStore.setItem(n,o),o}catch{return en()}}installBridge(){let n={getSnapshot:()=>({tenantId:this.tenantId,user:this.userContext,page:this.pageContext,placements:Array.from(this.placements.values())}),setPageContext:r=>{this.setPageContext(r);},setUserContext:r=>{this.setUserContext(r);}};window.__RT_SDK_BRIDGE__=n;}installRouteTracking(){if(Wa())return;let n=window.history;if(n.__rtPatched)return;let r=()=>{window.dispatchEvent(new CustomEvent(Az,{detail:{path:window.location.pathname,title:document.title}}));},o=n.pushState.bind(n);n.pushState=((...i)=>{o(...i),r();});let t=n.replaceState.bind(n);n.replaceState=((...i)=>{t(...i),r();}),window.addEventListener("popstate",r),window.addEventListener(Az,i=>{let s=i.detail;this.onRouteChange({path:s.path,title:s.title,tags:s.tags});}),n.__rtPatched=true;}mergeUserContext(n){return Ux(this.userContext,n)}mergePageContext(n){return {...this.pageContext,...n,tags:vc(n.tags||this.pageContext.tags)}}collectPageContextIssues(){let n=[],r={...this.policy.inferPage?Lp():{},...this.pageContext},o=String(r.url||"").trim();if(!o)n.push({code:"invalid_page_context_url",reason:"Page context URL is missing."});else try{new URL(o);}catch{n.push({code:"invalid_page_context_url",reason:"Page context URL is not a valid absolute URL.",details:{value:o}});}return r.tags&&!Array.isArray(r.tags)&&n.push({code:"invalid_page_context_tags",reason:"Page tags must be an array of strings."}),n}collectPayloadIssues(n){let r=[];if(!oe(n))return r.push({code:"invalid_event_payload",reason:"Event payload must be a plain object."}),r;let o=Vz(n),t=typeof n.placement_id=="string"&&n.placement_id.trim()?n.placement_id:typeof o?.placement_id=="string"?o.placement_id:null;return typeof t=="string"&&t.trim()&&(this.placements.has(t)||r.push({code:"unknown_placement_id",reason:"Payload placement_id is not registered in SDK runtime.",details:{placement_id:t}})),r}buildValidationWarningEvent(n,r,o){return this.toEventEnvelope(Bp,{source_event_type:n,warning_count:r.length,warning_codes:r.map(t=>t.code),warnings:r,page_context:{url:this.pageContext.url??null,title:this.pageContext.title??null},payload_snapshot:oe(o)?o:null})}toEventEnvelope(n,r){let o={...this.policy.inferPage?Lp():{},...this.pageContext},t=o.url||(zn()?window.location.href:""),i=(()=>{try{return new URL(t).pathname}catch{return zn()?window.location.pathname:"/"}})();return {tenant_id:this.tenantId,type:n,level:"INFO",message:`${n} captured by ${this.mode} runtime`,url:t,path:i,page_title:o.title||(zn()?document.title:""),event_time:new Date().toISOString(),anonymous_id:this.anonymousId,user_id:this.userContext.id||null,session_id:this.sessionId,tags:vc(o.tags),identity:{tenant_id:this.tenantId,user_id:this.userContext.id||null,anonymous_id:this.anonymousId,traits:n===nI?{}:{...this.userContext.custom||{}}},properties:r}}warnPiiRedactedOnce(){this.piiRedactionWarned||(this.piiRedactionWarned=true,console.warn("[RevTurbine] Detected and redacted PII-shaped values (emails / card numbers) from event data before sending. Do not put PII in event properties or traits; this is best-effort redaction, not a guarantee."));}anonymousTelemetryActive(){return !this.ingestPublicKey&&this.anonymousTelemetryEnabled&&!this.previewMode&&zn()}async emitSdkInitTelemetry(){this.anonymousTelemetryActive()&&await this.emitAnonMeta("sdk_init",{config_shape:this.computeConfigShape()});}computeConfigShape(){let n=this.getConfiguredExportedConfig();if(!n)return;let r=n.placements??[],o=r.reduce((t,i)=>t+(i.payloads?.length??0),0);return {plans:n.plans?.length??0,entitlements:n.entitlements?.length??0,entitlement_rules:n.entitlement_rules?.length??0,segments:n.segments?.length??0,placements:r.length,placement_payloads:o,content_ui_paths:n.content_ui_paths?.length??0,surface_templates:n.surface_templates?.length??0}}async emitAnonMeta(n,r={}){if(this.anonymousTelemetryActive()){this.showAnonTelemetryNoticeOnce();try{let o=this.getConfiguredExportedConfig(),t=o?.version!=null?String(o.version):void 0,i=t?`${this.tenantId}:${t}`:this.tenantId,s=(await Dz(i)).slice(0,64),l={events:[{event_type:n,occurred_at:new Date().toISOString(),request_id:en(),config_hash_id:s,sdk_version:dz,runtime_mode:this.runtimeMode,...t?{bundle_version:t}:{},...r.config_shape?{config_shape:r.config_shape}:{},...r.message?{message:r.message.slice(0,500)}:{}}]};await fetch(this.endpointFor("ingestSdkMeta",GZ),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(l),keepalive:!0});}catch{}}}showAnonTelemetryNoticeOnce(){this.anonTelemetryNoticeShown||(this.anonTelemetryNoticeShown=true,console.info("[RevTurbine] Sending anonymous SDK telemetry (config-shape counts and SDK version only \u2014 no user data or PII). Disable it by setting `anonymousTelemetry: false` in your initRevTurbine() options."));}async sendEvents(n){if(n.length===0)return;if(!this.telemetryConsented()){this.telemetryCounters.dropped+=n.length;return}let r=0,o=n.map(p=>{let f=sO(p);return r+=f.redactions,f.value}),t=this.providerRegistry.has("events")||!this.isLocalOnlyMode()&&this.analyticsEnabled;if(r>0&&t&&this.warnPiiRedactedOnce(),this.telemetryCounters.redacted+=r,this.dispatchToEventConsumers(o),this.isLocalOnlyMode()){this.persistLocalRuntimeState();return}if(!this.analyticsEnabled)return;let i=en(),s=this.getConfiguredExportedConfig()?.change_set_id,c=o.map(p=>{let f=p.user_id||p.anonymous_id,g=nS(this.userContext.account_id||f),h=tS({level:p.level,message:p.message,path:p.path,url:p.url,page_title:p.page_title,session_id:p.session_id,anonymous_id:p.anonymous_id,tags:p.tags,traits:p.identity.traits??null,payload:p.properties,source:XZ});return r+=h.redactions+(g.redacted?1:0),{environment_id:this.environmentId,user_id:f,account_id:g.value,event_name:yc(p.type).slice(0,120),event_ts:p.event_time,properties:JSON.stringify(h.value),...tq(p.properties),...aq(p.properties),origin:iq(p.type),playbook_version:typeof s=="string"&&s.length>0?s:null,event_id:XS.next(),request_id:en(),tenant_id:p.tenant_id}});r>0&&this.warnPiiRedactedOnce();let l=this.endpointFor("ingestEvents",KZ),d={method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.ingestPublicKey??this.apiKey}`,"x-request-id":i},body:JSON.stringify({events:c}),keepalive:true};(await YS(()=>fetch(l,d))).delivered?this.telemetryCounters.sent+=c.length:this.telemetryCounters.failed+=c.length;}dispatchToEventConsumers(n){this.providerRegistry.has("events")&&this.providerRegistry.get("events").then(r=>{let o=r?.consumers;if(!(!o||o.length===0))for(let t of o)try{Promise.resolve(t.consume(n)).catch(()=>{});}catch{}}).catch(()=>{});}telemetryConsented(){return this.telemetryConsent==="granted"}setTelemetryConsent(n){this.telemetryConsent=n;}getTelemetryConsent(){return this.telemetryConsent}getTelemetryCounters(){return {...this.telemetryCounters}}async capture(n,r,o){if(!this.telemetryConsented()){this.telemetryCounters.dropped+=1;return}let t=yc(n),i=this.toEventEnvelope(t,r),s=[...this.collectPageContextIssues(),...this.collectPayloadIssues(r)],c=[i];if(s.length>0&&c.push(this.buildValidationWarningEvent(t,s,r)),this.telemetryCounters.created+=c.length,o?.immediate){await this.sendEvents(c);return}this.events.push(...c),this.telemetryCounters.queued+=c.length,this.events.length>=this.maxBatchSize&&await this.flushEvents();}async trackControlPlaneEvent(n,r={},o){let{eventName:t,properties:i}=rS(n,r);await this.capture(t,i,o);}async flushEvents(){if(this.events.length===0)return;let n=[...this.events];this.events.length=0,await this.sendEvents(n);}startEventBatchFlushing(){if(!zn()||this.isLocalOnlyMode())return;this.flushIntervalMs>0&&(this.flushTimer=setInterval(()=>{this.flushEvents();},this.flushIntervalMs),this.flushTimer.unref?.());let n=()=>{this.flushEvents();},r=()=>{document.visibilityState==="hidden"&&this.flushEvents();};window.addEventListener("pagehide",n),document.addEventListener("visibilitychange",r),this.batchingTeardown.push(()=>window.removeEventListener("pagehide",n),()=>document.removeEventListener("visibilitychange",r));}dispose(){this.flushTimer!==void 0&&(clearInterval(this.flushTimer),this.flushTimer=void 0);for(let n of this.batchingTeardown.splice(0))try{n();}catch{}this.flushEvents();}async emitSemantic(n,r,o){let t=oe(r)?r:{};await this.capture(n,{semantic:true,payload:t},o);}async evaluateUserSegmentsAndUsage(n,r=false){let o=await this.fetchUserContext(this.userContext.id||""),t={...this.userContext,...n,custom:{...this.userContext.custom||{},...n.custom||{}}},i=await this.fetchUserContext(t.id||""),s=new Set(o.segmentIds||[]),c=new Set(i.segmentIds||[]),l=Array.from(c).filter(m=>!s.has(m)),d=Array.from(s).filter(m=>!c.has(m));for(let m of l)await this.emitSemantic("segment_enrolled",{segment_id:m,user_id:t.id??null});for(let m of d)await this.emitSemantic("segment_unenrolled",{segment_id:m,user_id:t.id??null});if(r){let m=o.usage||{},p={...m,...this.usageBalances},f=this.evaluateUsageThresholdCrossings(m,p);await Promise.all(f);}}emitObservedContextFields(n){let r=Object.keys(n??{}).filter(o=>o.length>0).sort();r.length!==0&&this.capture(nI,{context_fields:r});}setUserContext(n){let r=this.userContext;this.userContext=this.mergeUserContext(n),this.recalculateDerivedUsageTraits(),this.markSegmentsDirtyFromContextChange(r,this.userContext),this.persistLocalRuntimeState(),this.evaluateUserSegmentsAndUsage(n,false),this.emitObservedContextFields(n.custom);}setPageContext(n){this.pageContext=this.mergePageContext(n),this.persistLocalRuntimeState();}refreshPageContext(){this.pageContext=this.mergePageContext(Lp());}hydrate(n){if(n.version!=="1.0.0"){console.warn(`[RevTurbine] Unknown hydration payload version: ${n.version}. Skipping.`);return}let r=this.userContext;n.user&&(this.userContext=this.mergeUserContext({id:n.user.id,custom:n.user.traits,usage:{}}),this.recalculateDerivedUsageTraits());let o=(n.ttl_seconds??60)*1e3,t=Date.now()+o;for(let i of n.decisions??[]){if(!i.output)continue;let s=[this.tenantId,i.slot_id??i.entitlement_handle??i.placement_handle??"unknown",n.user?.id??this.anonymousId].join(":"),c=oe(i.output?.content)?i.output.content:{};this.decisionCache.set(s,{value:{placementId:i.slot_id??i.entitlement_handle??i.placement_handle??"unknown",requestId:n.request_id,visible:i.visible,decisionSource:"cache",reasonCodes:i.reason_codes??[],content:Wi(String(c.header??""),String(c.body??""),String(c.cta_label??"")),output:i.output},expiresAt:t});}if(this.persistDecisionCache(),n.entitlements)for(let[i,s]of Object.entries(n.entitlements))this.localEntitlementsByHandle.set(i,{status:s.status,allowed:s.allowed,reason:s.reason,current_tier:s.current_tier,placement:s.placement});n.trial_status&&(this.localTrialStatus={in_trial:n.trial_status.in_trial,trial_type:n.trial_status.trial_type,plan_handle:n.trial_status.plan_handle,day_number:n.trial_status.day_number,days_remaining:n.trial_status.days_remaining}),n.user_context?.usage_balances&&(this.usageBalances={...this.usageBalances,...n.user_context.usage_balances},this.recalculateDerivedUsageTraits()),this.markSegmentsDirtyFromContextChange(r,this.userContext);}async generatePlacementId(n){return Rx({tenantId:this.tenantId,placementName:n.placementName,placementScopeKey:n.placementScopeKey,pageRoute:n.normalizedPageRoute||this.currentPathname()},{sha256Base64Url:Dz,randomHex:sI})}async registerPlacement(n){let r=String(n.placementScopeKey||n.name||"").trim();return this.registerSurfaceSlot({id:r||String(n.name||"surface_slot").trim(),name:n.name,metadata:oe(n.metadata)?n.metadata:void 0})}async upsertSurfaceSlot(n){if(this.isLocalOnlyMode())return;let r=en(),o=this.endpointFor("surfaceSlots","/api/placements").replace(/\/+$/,""),t=sq(n.placementScopeKey||n.id||n.name),i={...oe(n.metadata)?n.metadata:{},surface_slot_id:n.placementScopeKey||n.id,registration_source:"sdk_surface_slot",route:n.route},s={name:n.name,slug:t,description:`Surface slot ${n.placementScopeKey||n.id}`,slot_type:"custom",status:"active",targeting_rules:{},content:{},priority:0,metadata:i},c={"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":r},l=await fetch(`${o}/${encodeURIComponent(n.id)}`,{method:"PUT",headers:c,body:JSON.stringify(s)});if(l.ok){this.syncedSurfaceSlotIds.add(n.id);return}if(l.status!==404)throw new Error(`surface_slot_upsert_failed:${l.status}`);let d=await fetch(o,{method:"POST",headers:c,body:JSON.stringify(s)});if(!d.ok)throw new Error(`surface_slot_create_failed:${d.status}`);this.syncedSurfaceSlotIds.add(n.id);}async registerSurfaceSlot(n){let r=Yo(this.currentPathname()),o=String(n?.id||"").trim(),t=String(n?.name||o).trim(),i=[];o||i.push({code:"invalid_surface_slot_id",reason:"SurfaceSlot id is required and must be a non-empty string."}),t||i.push({code:"invalid_placement_name",reason:"SurfaceSlot name is missing or empty."}),n?.metadata!==void 0&&!oe(n.metadata)&&i.push({code:"invalid_placement_metadata",reason:"Placement metadata must be a plain object when provided."});let s=await this.generatePlacementId({placementName:t||o||"invalid_surface_slot",placementScopeKey:o||void 0,normalizedPageRoute:r}),c={id:s,route:r,name:t||"invalid_surface_slot",placementScopeKey:o||void 0,metadata:{...oe(n.metadata)?n.metadata:{},surface_slot_id:o||null,...Array.isArray(n.surfaceTemplateIds)&&n.surfaceTemplateIds.length>0?{surface_template_ids:n.surfaceTemplateIds}:{}}},l=this.placements.get(s),d=l?this.stableStringify(l):null,m=this.stableStringify(c);return (!l||d!==m)&&(this.placements.set(s,c),this.persistLocalRuntimeState(),this.syncedSurfaceSlotIds.delete(s)),!this.isLocalOnlyMode()&&!this.syncedSurfaceSlotIds.has(s)&&await this.upsertSurfaceSlot(c),i.length>0&&await this.sendEvents([this.buildValidationWarningEvent("placement_registered",i,{surface_slot_id:o||null,placement_id:s,route:r,placement_name:t||null})]),s}async persistPlacementTypes(n){if(this.isLocalOnlyMode())return;let r=(Array.isArray(n)?n:[]).map(i=>dq(i)).filter(i=>i!==null);if(r.length===0)return;let o=en(),t=await fetch(this.endpointFor("placementTypes","/api/sdk/placement-types"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":o},body:JSON.stringify({request_id:o,tenant_id:this.tenantId,types:r})});if(!t.ok)throw new Error(`persist_placement_types_failed:${t.status}`)}stableStringify(n){return yi(n)}decisionCacheKey(n,r){return Ex({tenantId:this.tenantId,placementId:n.placementId,userId:n.userId,contextMode:n.contextMode??"auto",overrides:n.overrides??{},traits:n.traits??{},route:this.currentPathname(),...r?{runtimeContextFingerprint:r}:{}})}interactionStateKey(n){return YE({tenantId:this.tenantId,...n})}readDecisionCache(n){let r=this.decisionCache.get(n);return r?r.expiresAt<=Date.now()?(this.decisionCache.delete(n),this.persistDecisionCache(),null):{...r.value,decisionSource:"cache"}:null}writeDecisionCache(n,r,o){let t=Date.now()+Math.max(5e3,o??this.defaultDecisionTtlMs);this.decisionCache.set(n,{expiresAt:t,value:r}),this.persistDecisionCache();}suppressionForState(n){return QE(n)}placementCapKey(n){return [this.tenantId,this.userContext.id||this.anonymousId,n.surface.type,n.output_id].join(":")}extractPlacementCapPolicies(n){return tp(n)}applyPlacementCapsIfNeeded(n,r={}){if(!this.placementBehavior.enableClientCapsEnforcement)return {allowed:true};let o=r.tick??true,t=this.placementCapKey(n),i=this.presentationCapsByKey.get(t),s=jx(n,t,i,Date.now());return s.updatedState&&o&&(this.presentationCapsByKey.set(t,s.updatedState),s.allowed&&this.persistPresentationCaps()),{allowed:s.allowed,reason:s.reason}}gateDecisionByCaps(n,r={}){if(!this.placementBehavior.enableClientCapsEnforcement||!n.visible||!n.output)return n;let o=this.applyPlacementCapsIfNeeded(n.output,{tick:r.tick??true});if(o.allowed)return n;let t=o.reason??"cap_exceeded";return {...n,visible:false,reasonCodes:[...n.reasonCodes??[],t],suppressionReason:t}}normalizeDecisionFromResponse(n,r,o,t){return zx(n,r,o,t)}async getPlacementDecision(n){let r=this.placements.get(n.placementId),o=en();if(this.isDisabledByProviderFailure())return this.disabledDecisionForPlacement(n.placementId,r?.name);if(!r)return {placementId:n.placementId,requestId:o,visible:false,decisionSource:"fallback",reasonCodes:["placement_not_registered"],suppressionReason:"placement_not_registered",content:Wi("Placement not found","Register the placement before requesting a decision.","Register placement")};let t=this.interactionStateKey({placementId:n.placementId,userId:n.userId}),i=this.suppressionForState(this.interactionState.get(t));if(i.suppressed)return {placementId:n.placementId,requestId:o,visible:false,decisionSource:"cache",reasonCodes:i.reason?[i.reason]:[],suppressionReason:i.reason,content:Wi(`${r.name} suppressed`,"Suppressed due to recent interaction state.","Continue")};let s,c,l;this.isLocalOnlyMode()&&(s=await this.localRuntime?.getContext?.(),c=this.providerRegistry.size>0?await this.providerRegistry.resolveAll():this.synthesizeProviderContext(),(s||c)&&(l=this.stableStringify({legacyCtx:s??{},providerCtx:c??{}})));let d=this.decisionCacheKey(n,l),m=this.readDecisionCache(d);if(m)return this.gateDecisionByCaps(m,{tick:false});if(this.isLocalOnlyMode()){let p=this.localRuntime?.resolvers?.getPlacementDecision??this.defaultLocalPlacementDecisionResolver;if(p){let g={...s,...c?{__providers:c}:{}},h=this.gateDecisionByCaps(await p(n,r,g));return this.localDecisionsByPlacementId.set(n.placementId,h),this.writeDecisionCache(d,h,n.ttlMs),this.persistLocalRuntimeState(),h}let f=this.localDecisionsByPlacementId.get(n.placementId);if(f){let g=this.gateDecisionByCaps({...f,decisionSource:"fallback"});return this.writeDecisionCache(d,g,n.ttlMs),this.persistLocalRuntimeState(),g}}try{let p=await fetch(this.endpointFor("decideContext","/api/sdk/decide-context"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":o},body:JSON.stringify({request_id:o,tenant_id:this.tenantId,placement_id:n.placementId,user_id:n.userId,context_mode:n.contextMode??"auto",overrides:n.overrides?{segment_id:n.overrides.segmentId,plan_id:n.overrides.planId,usage:n.overrides.usage?.map(h=>({entitlement_id:h.entitlementId,meter_id:h.meterId,used:h.used}))}:void 0,traits:n.traits,context:{user:this.userContext,page:this.pageContext,placement:r}})});if(!p.ok)throw new Error(`decide-context failed: ${p.status}`);let f=await p.json(),g=this.gateDecisionByCaps(this.normalizeDecisionFromResponse(n.placementId,o,r.name,f));return this.writeDecisionCache(d,g,n.ttlMs),this.localDecisionsByPlacementId.set(n.placementId,g),this.persistLocalRuntimeState(),g}catch{let p=await this.getPlacementContent(n.placementId,{user_id:n.userId,context_mode:n.contextMode??"auto",overrides:n.overrides,traits:n.traits}),f={placementId:n.placementId,requestId:p.requestId,visible:true,decisionSource:"fallback",reasonCodes:["fallback_content"],content:p.content};return this.writeDecisionCache(d,f,n.ttlMs),this.localDecisionsByPlacementId.set(n.placementId,f),this.persistLocalRuntimeState(),f}}async preloadPlacementDecisions(n){let r=new Map;for(let o of n)r.set(this.decisionCacheKey(o),o);await Promise.allSettled(Array.from(r.values()).map(o=>this.getPlacementDecision(o)));}async bootstrapPlacementDecisions(n){if(this.isDisabledByProviderFailure()){await Promise.all(n.map(async o=>{let t=await this.getPlacementDecision(o),i=this.decisionCacheKey(o);this.writeDecisionCache(i,t,o.ttlMs);}));return}let r=new Map;for(let o of n){if(!this.placements.get(o.placementId)||!o.userId)continue;let i=this.stableStringify({userId:o.userId,contextMode:o.contextMode??"auto",overrides:o.overrides??{},traits:o.traits??{},ttlMs:o.ttlMs??null}),s=r.get(i);if(s){s.placementIds.push(o.placementId);continue}r.set(i,{userId:o.userId,contextMode:o.contextMode,overrides:o.overrides,traits:o.traits,ttlMs:o.ttlMs,placementIds:[o.placementId]});}for(let o of r.values()){if(o.placementIds.length<=1){let i=n.find(s=>s.placementId===o.placementIds[0]&&s.userId===o.userId);i&&await this.getPlacementDecision(i);continue}let t=en();try{let i=await fetch(this.endpointFor("bootstrapContext","/api/sdk/bootstrap-context"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":t},body:JSON.stringify({request_id:t,tenant_id:this.tenantId,user_id:o.userId,context_mode:o.contextMode??"auto",overrides:o.overrides?{segment_id:o.overrides.segmentId,plan_id:o.overrides.planId,usage:o.overrides.usage?.map(l=>({entitlement_id:l.entitlementId,meter_id:l.meterId,used:l.used}))}:void 0,traits:o.traits,placements:o.placementIds.map(l=>({placement_id:l}))})});if(!i.ok)throw new Error(`bootstrap-context failed: ${i.status}`);let s=await i.json(),c=oe(s)&&Array.isArray(s.decisions)?s.decisions:[];for(let l of c){if(!oe(l))continue;let d=typeof l.placement_id=="string"?l.placement_id:"",m=oe(l.result)?l.result:null,p=this.placements.get(d);if(!p||!m)continue;let f=this.normalizeDecisionFromResponse(d,t,p.name,m),g=this.decisionCacheKey({placementId:d,userId:o.userId,contextMode:o.contextMode,overrides:o.overrides,traits:o.traits});this.writeDecisionCache(g,f,o.ttlMs),this.localDecisionsByPlacementId.set(d,f);}this.persistLocalRuntimeState();}catch{let i=n.filter(s=>o.placementIds.includes(s.placementId)&&s.userId===o.userId);await Promise.allSettled(i.map(s=>this.getPlacementDecision(s)));}}}updateInteractionState(n){let r=this.interactionStateKey({placementId:n.placementId,userId:n.userId,treatmentId:n.treatmentId}),o=Date.now(),t=n.metadata??{},s={...this.interactionState.get(r)??{updatedAt:new Date(o).toISOString()},lastInteractionType:n.interactionType,updatedAt:n.interactionAt??new Date(o).toISOString()};if(n.interactionType==="dismiss"){let c=Number(t.cooldown_ms);s.suppressedUntil=o+(Number.isFinite(c)&&c>0?c:this.defaultDismissCooldownMs);}if(n.interactionType==="remind_me_later"){let c=Number(t.remind_after_seconds);s.suppressedUntil=o+(Number.isFinite(c)&&c>0?c*1e3:this.defaultRemindLaterMs);}if((n.interactionType==="cta_clicked"||n.interactionType==="cta_completed")&&(s.suppressedUntil=o+300*1e3),n.interactionType==="suppress"){let c=Number(t.suppress_duration_ms);s.suppressedUntil=o+(Number.isFinite(c)&&c>0?c:this.defaultDismissCooldownMs);}this.interactionState.set(r,s),this.persistInteractionState();}async flushInteractionQueue(){if(this.interactionQueue.length===0)return;let n=[...this.interactionQueue];if(this.interactionQueue.length=0,this.isLocalOnlyMode()){this.persistLocalRuntimeState();return}let r=n.map(o=>({user_id:o.userId,placement_id:o.placementId,treatment_id:o.treatmentId,interaction_type:o.interactionType,interaction_at:o.interactionAt,surface_slot_id:o.surfaceSlotId,surface_template_id:o.surfaceTemplateId,payload_id:o.payloadId,metadata:o.metadata??{},tenant_id:this.tenantId}));try{(await fetch(this.endpointFor("touchpointTransition",JZ),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":en()},body:JSON.stringify(r.length===1?r[0]:r)})).ok||(await fetch(this.endpointFor("legacyInteractions",WZ),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":en()},body:JSON.stringify(n.length===1?n[0]:n)})).ok||this.interactionQueue.unshift(...n);}catch{this.interactionQueue.unshift(...n);}}async trackTreatmentInteraction(n){let r={...n,interactionAt:n.interactionAt??new Date().toISOString()};this.updateInteractionState(r),this.interactionQueue.push(r),this.flushInteractionQueue();let o=r.placementId,t=r.treatmentId,i=r.metadata??{};if(r.interactionType==="dismiss")this.impressionHistory.recordDismissal(o,t);else if(r.interactionType==="cta_clicked"||r.interactionType==="cta_completed")this.impressionHistory.recordClickThru(o,t);else if(r.interactionType==="suppress"){let l=Number(i.suppress_duration_ms);this.impressionHistory.recordSuppression(o,t,void 0,i,Number.isFinite(l)&&l>0?l:void 0);}let s=r.metadata??{},c=typeof s.decision_id=="string"?s.decision_id:null;await this.emitSemantic("placement_interaction",{user_id:r.userId,placement_id:r.placementId,treatment_id:r.treatmentId??null,interaction_type:r.interactionType,interaction_at:r.interactionAt??null,...c?{decision_id:c}:{},metadata:s},{immediate:false});}async getPlacementContent(n,r){let o=this.placements.get(n),t=en();if(this.isDisabledByProviderFailure()){let s=this.disabledDecisionForPlacement(n,o?.name);return {placementId:n,requestId:t,decisionSource:"fallback",content:s.content}}if(this.isLocalOnlyMode()){let s=this.localPlacementsByLookupKey.get(this.localPlacementLookupKey({placementHandle:n}));return {placementId:n,requestId:t,decisionSource:s?"remote":"fallback",content:Wi(typeof s?.content?.title=="string"?String(s.content.title):`${o?.name??n} treatment`,typeof s?.content?.body=="string"?String(s.content.body):"Local runtime placement content.",typeof s?.content?.cta=="string"?String(s.content.cta):"Continue")}}if(!o)return {placementId:n,requestId:t,decisionSource:"fallback",content:Wi("Placement not found","Register the placement before requesting content.","Register placement")};let i={request_id:t,tenant_id:this.tenantId,placement_id:n,context:{user:this.userContext,page:this.pageContext,placement:o},request:r||{}};try{let s=await fetch(this.endpointFor("decide","/api/sdk/decide"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":t},body:JSON.stringify(i)});if(!s.ok)throw new Error(`decision request failed: ${s.status}`);let c=await s.json();return {placementId:n,requestId:t,decisionSource:"remote",content:Wi(c.recommendation?.title||`${o.name} recommendation`,c.recommendation?.message||"Treatment selected by RevTurbine decisioning.",c.recommendation?.action||"View details")}}catch{return {placementId:n,requestId:t,decisionSource:"fallback",content:Wi(`${o.name} treatment`,"Fallback treatment active while decision endpoint is unavailable.","Continue")}}}normalizePlacementOutput(n){let r=nl(n,en);return r&&oe(n)&&typeof n.decision_id!="string"&&this.capture(Bp,{reason:"placement response missing decision_id; generated synthetic",output_id:r.output_id,synthetic_decision_id:r.decision_id}),r}normalizeEntitlementResult(n){return kx(n,en)}validateTrialStatusShape(n){return yh(n)}async getPlacement(n){if(this.isDisabledByProviderFailure())return this.disabledPlacementOutputForConfig(n);let r=n.slotId,o=n.surfaceType;if(o&&!Nz.has(o))return this.capture(Bp,{reason:`getPlacement called with unknown surfaceType: ${String(o)}`,slot_id:r??null}),null;let t=en();if(this.isLocalOnlyMode()){let i=this.localRuntime?.resolvers?.getPlacement;if(i){let l=await i(n);return l&&this.applyPlacementCapsIfNeeded(l).allowed?l:null}let s=this.localPlacementForConfig(n);return s&&this.applyPlacementCapsIfNeeded(s).allowed?s:null}try{let i=await fetch(this.endpointFor("getPlacement","/api/sdk/get-placement"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":t},body:JSON.stringify({request_id:t,tenant_id:this.tenantId,slot_id:r,surface_type:o,entitlement_handle:n.entitlementHandle,plan_handle:n.planHandle,placement_handle:n.placementHandle,user_id:this.userContext.id,usage:this.usageBalances,context:{user:this.userContext,page:this.pageContext}})});if(!i.ok)return null;let s=await i.json(),c=this.normalizePlacementOutput(s);return !c||!this.applyPlacementCapsIfNeeded(c).allowed?null:(this.localPlacementsByLookupKey.set(this.localPlacementLookupKey(n),c),this.persistLocalRuntimeState(),c)}catch{return null}}async checkEntitlement(n,r){if(this.isDisabledByProviderFailure())return {status:"denied",allowed:false,reason:this.sdkDisabledReason??"sdk_disabled_provider_failure"};let o=r?.used!==void 0?{used:r.used}:r?.balance!==void 0?{balance:r.balance}:this.usageBalances[n]!==void 0?{used:this.usageBalances[n]}:void 0,t=en();if(this.isLocalOnlyMode()){let i=this.localRuntime?.resolvers?.checkEntitlement;if(i){let l=await i(n,r);return this.localEntitlementsByHandle.set(n,l),this.persistLocalRuntimeState(),l}let s=this.deriveLocalEntitlementFromConfiguredRules(n,r);if(s)return this.localEntitlementsByHandle.set(n,s),this.persistLocalRuntimeState(),s;let c=this.localEntitlementsByHandle.get(n);return c||{status:"denied",allowed:false,reason:"local_runtime_default_allow"}}try{let i=await fetch(this.endpointFor("checkEntitlement","/api/sdk/check-entitlement"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":t},body:JSON.stringify({request_id:t,tenant_id:this.tenantId,handle:n,user_id:this.userContext.id,usage:o,required_tier:r?.requiredTier,context:{user:this.userContext}})});if(!i.ok)return {status:"denied",allowed:!1,reason:"entitlement_service_unavailable"};let s=await i.json(),c=this.normalizeEntitlementResult(s);return this.localEntitlementsByHandle.set(n,c),this.persistLocalRuntimeState(),c}catch{return {status:"denied",allowed:false,reason:"entitlement_check_error"}}}updateUsage(n){let r=this.userContext;this.usageBalances={...this.usageBalances,...n},this.recalculateDerivedUsageTraits(),this.markSegmentsDirtyFromContextChange(r,this.userContext),this.persistLocalRuntimeState(),this.evaluateUserSegmentsAndUsage({},true);}getUserContext(){let n=this.userContext.id||this.anonymousId,r=new Date().toISOString();return {id:n,tenant_id:this.tenantId,user_id:n,created_at:r,updated_at:r,account_id:this.userContext.account_id,email:this.userContext.email,plan:this.userContext.plan,usage:this.userContext.usage??{},entitlements:this.userContext.entitlements??{},custom:Object.fromEntries(Object.entries(this.userContext.custom??{}).filter(([,o])=>typeof o=="string"||typeof o=="number"||typeof o=="boolean"||o===null)),personalization:Object.fromEntries(Object.entries(this.userContext.personalization??{}).filter(([,o])=>typeof o=="string"||typeof o=="number")),derived_computed_at:null}}async fetchUserContext(n){let r=en();if(this.isLocalOnlyMode()){let o=this.localRuntime?.resolvers?.fetchUserContext;if(o){let i=await o(n);return this.localUserContextsByUserId.set(n,i),this.persistLocalRuntimeState(),i}let t=this.localUserContextsByUserId.get(n);return t||{userId:n,segmentIds:[],traits:{},plan:void 0,usage:this.usageBalances}}try{let o=await fetch(this.endpointFor("userContext","/api/sdk/user-context"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":r},body:JSON.stringify({request_id:r,tenant_id:this.tenantId,user_id:n,context:{user:this.userContext,page:this.pageContext}})});if(!o.ok)return {userId:n,segmentIds:[],traits:{}};let t=await o.json(),i={userId:n,segmentIds:Array.isArray(t.segment_ids)?t.segment_ids.filter(s=>typeof s=="string"):[],traits:oe(t.traits)?t.traits:{},plan:typeof t.plan=="string"?t.plan:void 0,usage:oe(t.usage)?Object.fromEntries(Object.entries(t.usage).filter(([,s])=>typeof s=="number")):void 0};return this.localUserContextsByUserId.set(n,i),this.persistLocalRuntimeState(),i}catch{return {userId:n,segmentIds:[],traits:{}}}}async recordImpression(n,r,o,t){await this.impressionHistory.recordImpression(n,r,o,t);}async recordDismissal(n,r,o,t){await this.impressionHistory.recordDismissal(n,r,o,t);}async recordClickThru(n,r,o,t){await this.impressionHistory.recordClickThru(n,r,o,t);}async getTrialStatus(){let n=en();if(this.isLocalOnlyMode()){let r=this.localRuntime?.resolvers?.getTrialStatus;if(r){let o=await r();return this.localTrialStatus=o,await this.evaluateTrialLifecycleTriggers(o),this.persistLocalRuntimeState(),o}return await this.evaluateTrialLifecycleTriggers(this.localTrialStatus),this.localTrialStatus}try{let r=await fetch(this.endpointFor("trialStatus","/api/sdk/trial-status"),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":n},body:JSON.stringify({request_id:n,tenant_id:this.tenantId,user_id:this.userContext.id})});if(!r.ok)return {in_trial:!1};let o=await r.json(),t=this.validateTrialStatusShape(o);return this.localTrialStatus=t,await this.evaluateTrialLifecycleTriggers(t),this.persistLocalRuntimeState(),t}catch{return {in_trial:false}}}async setTrialInstances(n,r){let o=this.getConfiguredExportedConfig(),t=r?.nowIso??new Date().toISOString(),{trial:i}=ld({...o?.free_trial_rules!==void 0?{freeTrialRules:o.free_trial_rules}:{},...o?.reverse_trial_rules!==void 0?{reverseTrialRules:o.reverse_trial_rules}:{},instances:n,nowIso:t,usageBalances:this.usageBalances,...r?.basePlanHandle!==void 0?{basePlanHandle:r.basePlanHandle}:{}}),s=i??{in_trial:false};return this.localTrialStatus=s,await this.evaluateTrialLifecycleTriggers(s),this.persistLocalRuntimeState(),s}getExportedConfig(){return this.getConfiguredExportedConfig()}async validateUiPathResolvers(n={}){await this.refreshExportedConfigSnapshot();let r=this.getConfiguredExportedConfig(),o=Array.isArray(n.uiPaths)?n.uiPaths:oe(r)&&Array.isArray(r.content_ui_paths)?r.content_ui_paths:[],t=n.includeProviderHandlers??true,i=Mp(n.resolvers,"validateUiPathResolvers(options.resolvers)"),s={...this.uiPathResolvers,...i};if(t&&this.providerRegistry.has("cta"))try{let m=await this.providerRegistry.resolveAll();oe(m.cta)&&oe(m.cta.handlers)&&Object.assign(s,m.cta.handlers);}catch{}let c=[],l=0;for(let m of o){let p=oe(m)?m:{},f=typeof p.action_type=="string"?p.action_type.trim():"";if(!f){c.push({actionType:"unknown",reason:"missing_action_type",...typeof p.id=="string"?{uiPathId:p.id}:{},...typeof p.name=="string"?{name:p.name}:{}});continue}if(typeof s[f]=="function"){l+=1;continue}c.push({actionType:f,reason:"missing_resolver",...typeof p.id=="string"?{uiPathId:p.id}:{},...typeof p.name=="string"?{name:p.name}:{}});}let d={valid:c.length===0,totalUiPaths:o.length,resolvedUiPaths:l,issues:c};if(!d.valid&&n.throwOnMissing){let m=d.issues.filter(f=>f.reason==="missing_resolver").map(f=>f.actionType),p=m.length>0?` Missing resolver(s) for action_type: ${Array.from(new Set(m)).join(", ")}.`:"";throw new Error(`[RevTurbine] UI path resolver validation failed with ${d.issues.length} issue(s).${p}`)}return d}assertUiPathResolverCoverageOrThrow(){let n=this.getConfiguredExportedConfig(),r=oe(n)&&Array.isArray(n.content_ui_paths)?n.content_ui_paths:[];if(r.length===0)return;let o=[],t=0;for(let c of r){let d=(oe(c)?c:{}).action_type,m=typeof d=="string"?d.trim():"";if(!m){t+=1;continue}typeof this.uiPathResolvers[m]!="function"&&o.push(m);}if(t===0&&o.length===0)return;let i=Array.from(new Set(o)),s=[];throw i.length>0&&s.push(`missing resolvers for action_type: ${i.join(", ")}`),t>0&&s.push(`content_ui_paths with missing action_type: ${t}`),new Error(`[RevTurbine] SDK initialization failed: ${s.join("; ")}.`)}async dismiss(n){await this.emitSemantic("placement_interaction",{interaction_type:"dismiss",payload_id:n,user_id:this.userContext.id??null,interaction_at:new Date().toISOString()},{immediate:false});}async snooze(n,r=3600){await this.emitSemantic("placement_interaction",{interaction_type:"remind_me_later",payload_id:n,user_id:this.userContext.id??null,interaction_at:new Date().toISOString(),remind_after_seconds:r},{immediate:false});}async convert(n){await this.emitSemantic("placement_interaction",{interaction_type:"cta_completed",payload_id:n,user_id:this.userContext.id??null,interaction_at:new Date().toISOString()},{immediate:false});}async emitTrigger(n,r,o){await this.emitSemantic(n,{...r,user_id:this.userContext.id??null,plan_handle:this.userContext.personalization?.plan_name??null,triggered_at:new Date().toISOString(),source:"sdk"},o);}async trackEvent(n,r){await this.capture(n,r??{});}identify(n,r){let o=this.userContext,t=r!=null&&typeof r=="object"&&!Array.isArray(r)&&("account_id"in r||"email"in r||"plan"in r||"usage"in r||"entitlements"in r||"custom"in r);if(t){let i=r;i.usage&&(this.usageBalances={...this.usageBalances,...ti(i.usage)}),this.userContext=this.mergeUserContext({id:n,account_id:i.account_id,email:i.email,plan:i.plan,usage:i.usage,entitlements:i.entitlements,custom:i.custom,personalization:i.personalization});}else this.userContext=this.mergeUserContext({id:n,custom:r,usage:{}});this.recalculateDerivedUsageTraits(),this.markSegmentsDirtyFromContextChange(o,this.userContext),this.decisionCache.clear(),this.persistDecisionCache(),this.persistLocalRuntimeState(),this.impressionHistory.setUserId(n),this.impressionHistory.hydrate(),this.emitObservedContextFields(t?r.custom:r);}resetIdentity(){this.clearAllUserState({reinfer:true});}resetUserContext(){this.clearAllUserState({reinfer:false});}clearAllUserState({reinfer:n}){let r=this.userContext;this.userContext={usage:{},...n&&this.policy.inferUser?Fz():{},id:void 0,custom:{},entitlements:{},personalization:{}},this.usageBalances={},this.recalculateDerivedUsageTraits(),this.markSegmentsDirtyFromContextChange(r,this.userContext),this.decisionCache.clear(),this.interactionState.clear(),this.persistDecisionCache(),this.persistInteractionState(),this.persistLocalRuntimeState(),this.impressionHistory.setUserId(this.anonymousId),this.impressionHistory.hydrate();}can(n,r){return this.checkEntitlement(n,r)}async gate(n,r,o){this.emitSemantic("gate_attempted",{entitlement_handle:n},{immediate:false});let t=await this.checkEntitlement(n,o);return t.allowed?(this.emitSemantic("gate_allowed",{entitlement_handle:n},{immediate:false}),{ran:true,result:await r(),entitlement:t}):(this.emitSemantic("gate_denied",{entitlement_handle:n,reason:t.reason??null},{immediate:false}),{ran:false,entitlement:t})}track(n,r){return this.trackEvent(n,r)}update(n){n.usage&&this.updateUsage(n.usage);}reset(){this.resetIdentity();}onRouteChange(n){this.setPageContext({url:`${zn()?window.location.origin:""}${n.path}`,title:n.title,tags:n.tags}),this.capture("page_view",{source:"router_auto_track",path:n.path});}};function tu(e){let n=uq(e),r=new aI(n);if(!n.provider)return r;let o=(m,p)=>{try{return typeof m=="function"?m(n):m}catch(f){return console.warn(`[RevTurbine] Provider factory failed at chain index ${p}.`,f),null}},t=[o(n.provider,0),...(n.providerFallbacks??[]).map((m,p)=>o(m,p+1))].filter(m=>m!==null);if(t.length===0)return r.disableForProviderFailure("provider_factory_chain_failed"),r;let i=async(m,p,f)=>{let g=[];for(let h=0;h<t.length;h+=1){let S=t[h][m];if(S){g.push(h);try{return await S(...p)}catch(w){let $=t.slice(h+1).some(E=>typeof E[m]=="function");console.warn(h===0&&$?`[RevTurbine] Primary provider ${m} failed; trying configured fallbacks.`:`[RevTurbine] Provider ${m} failed at chain index ${h}.`,w);}}}return g.length===0||r.disableForProviderFailure(`provider_${m}_chain_failed`),f()},s=r.getPlacement.bind(r),c=r.checkEntitlement.bind(r),l=r.persistPlacementTypes.bind(r),d=r.identify.bind(r);return r.getPlacement=async m=>i("getPlacement",[m],()=>s(m)),r.checkEntitlement=async(m,p)=>i("checkEntitlement",[m,p],()=>c(m,p)),r.persistPlacementTypes=async m=>i("persistPlacementTypes",[m],()=>l(m)),r.identify=(m,p)=>{let f=0;for(let g=0;g<t.length;g+=1){let h=t[g];if(h.identify){f+=1;try{h.identify(m,p);return}catch(x){let S=t.slice(g+1).some(w=>typeof w.identify=="function");console.warn(g===0&&S?"[RevTurbine] Primary provider identify failed; trying configured fallbacks.":`[RevTurbine] Provider identify failed at chain index ${g}.`,x);}}}if(f>0){r.disableForProviderFailure("provider_identify_chain_failed"),d(m,p);return}d(m,p);},r}var Vp={tenantId:"local",apiKey:"local-only",endpoint:"https://api.revturbine.local",mode:"react"};function tI(e){return typeof e=="string"&&e.trim().length>0}function uq(e){return Is(e.localRuntime)!==void 0?{...e,tenantId:tI(e.tenantId)?e.tenantId:Vp.tenantId,apiKey:tI(e.apiKey)?e.apiKey:Vp.apiKey,endpoint:tI(e.endpoint)?e.endpoint:Vp.endpoint,mode:e.mode??Vp.mode,runtimeMode:e.runtimeMode??"local_only"}:e}function dq(e){if(!oe(e))return null;let n=(l,d)=>String(l??"").trim().slice(0,d),r=n(e.id,256),o=n(e.label,256),t=n(e.description,1024),i=n(e.surfaceType,64);if(!r||!o||!t||!Nz.has(i))return null;let s=Number(e.priority),c=Number.isFinite(s)?Math.max(0,Math.floor(s)):0;return {id:r,label:o,description:t,surfaceType:i,priority:c}}typeof window<"u"&&(window.RevTurbine={init:tu});var mq="revturbine:theme";function cI(e){return `${mq}:${e}`}function pq(e,n){try{let r=n.getItem(cI(e));if(!r)return null;let o=JSON.parse(r);return typeof o!="object"||o===null?null:o}catch{return null}}function fq(e,n,r){try{r.setItem(cI(e),JSON.stringify(n));}catch{}}function Bz(e,n){let r=n??Li();try{r.removeItem(cI(e));}catch{}}async function Ps(e,n){let{tenantId:r,endpoint:o,apiKey:t}=e,i=e.storage??Li(),s=pq(r,i),c=di(s);return gq(o,r,t).then(l=>{l&&(s?.version&&l.version===s.version||(fq(r,l,i),n?.(di(l))));}).catch(()=>{}),c}async function gq(e,n,r){let o=e.replace(/\/$/,""),t=typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`,i=await fetch(`${o}/api/sdk/theme`,{method:"GET",headers:{authorization:`Bearer ${r}`,"x-tenant-id":n,"x-request-id":t}});if(!i.ok)return null;let s=await i.json();return typeof s!="object"||s===null?null:s}var ks=class{constructor(n,r){O(this,"sdk");O(this,"options");O(this,"listeners",new Set);O(this,"_placementId","");O(this,"_decision",null);O(this,"_isLoading",false);O(this,"_error","");O(this,"_impressionTracked",false);O(this,"_loadSeq",0);O(this,"_rendered",false);O(this,"_exposed",false);O(this,"_exposureBasis",null);O(this,"_lastSlotKey",null);this.sdk=n,this.options=r;}get state(){return {isLoading:this._isLoading,error:this._error,placementId:this._placementId,visible:!!this._decision?.visible,decision:this._decision,content:this._decision?.content??null,exposureBasis:this._exposureBasis}}get exposureMode(){return this.options.placementExposure??"legacy_resolution"}markRendered(){this._rendered||(this._rendered=true,this.emitPlacementLifecycle("placement_rendered",null),this.exposureMode==="render"&&this.fireImpression("render"),this.notify());}markVisible(n="viewport"){this._exposed||(this._exposed=true,this._exposureBasis=n,this.emitPlacementLifecycle("placement_exposed",n),this.exposureMode==="viewport"&&n==="viewport"&&this.fireImpression("viewport"),this.notify());}fireImpression(n){let r=this._decision;if(!r?.visible||this._impressionTracked||this.options.autoTrackImpression===false)return;let o=this.options.userId||this.sdk.getUserContext().user_id;o&&(this._impressionTracked=true,this.sdk.trackTreatmentInteraction({userId:o,placementId:this._placementId,interactionType:"impression",surfaceSlotId:r.output?.surface?.slot_id,surfaceTemplateId:r.output?.surface?.template,payloadId:r.output?.output_id,metadata:{decision_source:r.decisionSource,exposure_basis:n,decision_id:r.output?.decision_id??null}}));}emitPlacementLifecycle(n,r){let o=this._decision;try{this.sdk.emitSemantic(n,{placement_id:this._placementId,surface_slot_id:o?.output?.surface?.slot_id??null,payload_id:o?.output?.output_id??null,decision_id:o?.output?.decision_id??null,decision_source:o?.decisionSource??null,...r?{exposure_basis:r}:{}},{immediate:!1});}catch{}}slotContext(){let n=this._decision,r=this.options.surfaceSlot;return {surface_slot_id:n?.output?.surface?.slot_id??r?.id??null,slot_name:r?.name??null,template_ids:r?.surfaceTemplateIds??null,template_id:n?.output?.surface?.template??null,surface_type:n?.output?.surface?.type??null,category:n?.output?.category??null,decision_source:n?.decisionSource??null,reason_codes:n?.reasonCodes??[],decision_id:n?.output?.decision_id??null}}emitSlotResolution(){let n=this._decision,r=n?.visible?"slot_filled":n?.suppressionReason?"slot_suppressed":"slot_empty",o=`${this._placementId}|${n?.output?.decision_id??n?.requestId??""}|${r}`;if(this._lastSlotKey===o)return;this._lastSlotKey=o;let t=this.slotContext();this.emitSlotEvent("slot_evaluated",t),this.emitSlotEvent(r,t);}emitSlotError(n){let r=`${this._placementId}|slot_error`;this._lastSlotKey!==r&&(this._lastSlotKey=r,this.emitSlotEvent("slot_error",{...this.slotContext(),error:n}));}emitSlotEvent(n,r){try{this.sdk.emitSemantic(n,r,{immediate:!1});}catch{}}emitPlacementOutcome(n){let r=this._decision;try{this.sdk.emitSemantic("placement_outcome",{placement_id:this._placementId,surface_slot_id:r?.output?.surface?.slot_id??null,payload_id:r?.output?.output_id??null,decision_id:r?.output?.decision_id??null,decision_source:r?.decisionSource??null,outcome:"cta_completed",cta_target:n},{immediate:!1});}catch{}}get visible(){return !!this._decision?.visible}get content(){return this._decision?.content??null}get decision(){return this._decision}get placementId(){return this._placementId}async load(){let n=this.options,r=n.userId||this.sdk.getUserContext().user_id;if(!r)return this._error="Cannot load placement: no userId available.",this.notify(),null;let o=++this._loadSeq;this._isLoading=true,this._error="",this.notify();try{if(!this._placementId)if(n.surfaceSlot)this._placementId=await this.sdk.registerSurfaceSlot(n.surfaceSlot);else if(n.placement)this._placementId=await this.sdk.registerPlacement(n.placement);else return this._error="Either placement or surfaceSlot must be provided.",this._isLoading=!1,this.notify(),null;if(o!==this._loadSeq)return this._decision;let t=await this.sdk.getPlacementDecision({placementId:this._placementId,userId:r,contextMode:n.contextMode,overrides:n.overrides,traits:n.traits,ttlMs:n.ttlMs});if(o!==this._loadSeq)return this._decision;this._decision=t,this.emitPlacementLifecycle("placement_resolved",null),this.emitSlotResolution();let i=this.exposureMode;return i==="legacy_resolution"?this.fireImpression("legacy_resolution"):i==="viewport"&&!No.supported&&this.fireImpression("render_fallback"),t}catch(t){return o===this._loadSeq&&(this._error=t instanceof Error?t.message:"Failed to load placement decision.",this.emitSlotError(this._error)),null}finally{o===this._loadSeq&&(this._isLoading=false,this.notify());}}async refresh(){return this._impressionTracked=false,this._rendered=false,this._exposed=false,this._exposureBasis=null,this.load()}async dismiss(n=1440*60*1e3){await this.trackInteraction("dismiss",{cooldown_ms:n});}async snooze(n=3600){await this.trackInteraction("remind_me_later",{remind_after_seconds:n});}async remindMeLater(n=3600){await this.snooze(n);}async ctaClick(n){await this.trackInteraction("cta_clicked",{cta_target:n||null});}async ctaComplete(n){await this.trackInteraction("cta_completed",{cta_target:n||null}),this.emitPlacementOutcome(n||null);}onChange(n){return this.listeners.add(n),()=>{this.listeners.delete(n);}}reset(){this._placementId="",this._decision=null,this._isLoading=false,this._error="",this._impressionTracked=false,this._rendered=false,this._exposed=false,this._exposureBasis=null,this._lastSlotKey=null,this._loadSeq++,this.notify();}async trackInteraction(n,r){let o=this.options.userId||this.sdk.getUserContext().user_id;if(!this._placementId||!o)return;let t=this._decision?.output?.decision_id??null;await this.sdk.trackTreatmentInteraction({userId:o,placementId:this._placementId,treatmentId:this._decision?.placementId,interactionType:n,surfaceSlotId:this._decision?.output?.surface?.slot_id,surfaceTemplateId:this._decision?.output?.surface?.template,payloadId:this._decision?.output?.output_id,metadata:t?{...r,decision_id:t}:r}),(n==="dismiss"||n==="remind_me_later"||n==="cta_completed")&&this._decision&&(this._decision={...this._decision,visible:false},this.notify());}notify(){for(let n of this.listeners)n();}},Ts=class{constructor(n,r){O(this,"sdk");O(this,"options");O(this,"listeners",new Set);O(this,"_isLoading",false);O(this,"_error",null);O(this,"_result",null);O(this,"_gatedPlacement",null);O(this,"_lastEvaluatedKey",null);this.sdk=n,this.options=r;}get state(){return {isLoading:this._isLoading,error:this._error,result:this._result,allowed:this._result?.status==="allowed",limited:this._result?.status==="limited",denied:this._result?.status==="denied",gatedPlacement:this._gatedPlacement}}get allowed(){return this._result?.status==="allowed"}get limited(){return this._result?.status==="limited"}get denied(){return this._result?.status==="denied"}get result(){return this._result}get gatedPlacement(){return this._gatedPlacement}async check(){let{handle:n,context:r,autoGate:o,gatePlacementRequest:t}=this.options;this._isLoading=true,this._error=null,this.notify();try{let i=await this.sdk.checkEntitlement(n,r);if(this._result=i,this.emitGateEvaluated(n,i),!o||i.status!=="denied")this._gatedPlacement=null;else if(i.placement)this._gatedPlacement=i.placement;else {let s=await this.sdk.getPlacement({...t,entitlementHandle:n});this._gatedPlacement=s;}return i}catch(i){return this._error=i instanceof Error?i.message:String(i),this._gatedPlacement=null,null}finally{this._isLoading=false,this.notify();}}async recheck(){return this.check()}emitGateEvaluated(n,r){let o=`${n}|${r.status}`;if(this._lastEvaluatedKey!==o){this._lastEvaluatedKey=o;try{this.sdk.emitSemantic("gate_evaluated",{entitlement_handle:n,outcome:r.status,gated:r.status==="denied",reason:r.reason??null,limit:r.limit??null,used:r.used??null,remaining:r.remaining??null},{immediate:!1});}catch{}}}onChange(n){return this.listeners.add(n),()=>{this.listeners.delete(n);}}notify(){for(let n of this.listeners)n();}},Zp=class{constructor(n,r){O(this,"sdk");O(this,"theme");this.sdk=n,this.theme=r;}identify(n,r){this.sdk.identify(n,r);}resetIdentity(){this.sdk.resetIdentity();}resetUserContext(){this.sdk.resetUserContext();}setUserContext(n){this.sdk.setUserContext(n);}getUserContext(){return this.sdk.getUserContext()}updateUsage(n){this.sdk.updateUsage(n);}async fetchUserContext(n){return this.sdk.fetchUserContext(n)}async getTrialStatus(){return this.sdk.getTrialStatus()}getUsage(){return this.sdk.getUsage()}placement(n){return new ks(this.sdk,n)}async getPlacementBySlotId(n,r){return this.placement({...r,surfaceSlot:{id:n,name:n}}).load()}async getPlacement(n){return this.sdk.getPlacement(n)}entitlement(n){return new Ts(this.sdk,n)}async checkEntitlement(n,r){return this.sdk.checkEntitlement(n,r)}async trackEvent(n,r){return this.sdk.trackEvent(n,r)}};async function hq(e){let{bootstrapPlacements:n,...r}=e,o=r,t=tu(o),i=o.user;i&&typeof i=="object"&&i.id&&t.identify(i.id,i);let s=Sn,l=Is(o.localRuntime)?.theme;if(l&&typeof l=="object"?s=di(l):s=await Ps({tenantId:o.tenantId??"local",endpoint:o.endpoint??"https://api.revturbine.local",apiKey:o.apiKey??"local-only"}),n&&n.length>0){let d=t.getUserContext().user_id,m=[];for(let p of n){let f=await t.registerPlacement(p.placement),g=p.userId||d;g&&m.push({placementId:f,userId:g,contextMode:p.contextMode,overrides:p.overrides,traits:p.traits,ttlMs:p.ttlMs});}m.length>0&&await t.bootstrapPlacementDecisions(m);}return new Zp(t,s)}var bq=/\{[^{}]+\}/g,_q=()=>typeof process=="object"&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function vq(){return Math.random().toString(36).slice(2,11)}function Hz(e){let{baseUrl:n="",Request:r=globalThis.Request,fetch:o=globalThis.fetch,querySerializer:t,bodySerializer:i,pathSerializer:s,headers:c,requestInitExt:l=void 0,...d}={...e};l=_q()?l:void 0,n=qz(n);let m=[];async function p(f,g){let{baseUrl:h,fetch:x=o,Request:S=r,headers:w,params:$={},parseAs:E="json",querySerializer:P,bodySerializer:I=i??xq,pathSerializer:z,body:X,middleware:re=[],...L}=g||{},H=n;h&&(H=qz(h)??n);let ee=typeof t=="function"?t:Mz(t);P&&(ee=typeof P=="function"?P:Mz({...typeof t=="object"?t:{},...P}));let Pe=z||s||yq,me=X===void 0?void 0:I(X,Zz(c,w,$.header)),fe=Zz(me===void 0||me instanceof FormData?{}:{"Content-Type":"application/json"},c,w,$.header),ie=[...m,...re],ze={redirect:"follow",...d,...L,body:me,headers:fe},At,Qe,he=new S(Sq(f,{baseUrl:H,params:$,querySerializer:ee,pathSerializer:Pe}),ze),rt;for(let G in L)G in he||(he[G]=L[G]);if(ie.length){At=vq(),Qe=Object.freeze({baseUrl:H,fetch:x,parseAs:E,querySerializer:ee,bodySerializer:I,pathSerializer:Pe});for(let G of ie)if(G&&typeof G=="object"&&typeof G.onRequest=="function"){let ge=await G.onRequest({request:he,schemaPath:f,params:$,options:Qe,id:At});if(ge)if(ge instanceof S)he=ge;else if(ge instanceof Response){rt=ge;break}else throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}if(!rt){try{rt=await x(he,l);}catch(G){let ge=G;if(ie.length)for(let ve=ie.length-1;ve>=0;ve--){let kt=ie[ve];if(kt&&typeof kt=="object"&&typeof kt.onError=="function"){let un=await kt.onError({request:he,error:ge,schemaPath:f,params:$,options:Qe,id:At});if(un){if(un instanceof Response){ge=void 0,rt=un;break}if(un instanceof Error){ge=un;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(ge)throw ge}if(ie.length)for(let G=ie.length-1;G>=0;G--){let ge=ie[G];if(ge&&typeof ge=="object"&&typeof ge.onResponse=="function"){let ve=await ge.onResponse({request:he,response:rt,schemaPath:f,params:$,options:Qe,id:At});if(ve){if(!(ve instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");rt=ve;}}}}let rn=rt.headers.get("Content-Length");if(rt.status===204||he.method==="HEAD"||rn==="0"&&!rt.headers.get("Transfer-Encoding")?.includes("chunked"))return rt.ok?{data:void 0,response:rt}:{error:void 0,response:rt};if(rt.ok)return {data:await(async()=>{if(E==="stream")return rt.body;if(E==="json"&&!rn){let ge=await rt.text();return ge?JSON.parse(ge):void 0}return await rt[E]()})(),response:rt};let K=await rt.text();try{K=JSON.parse(K);}catch{}return {error:K,response:rt}}return {request(f,g,h){return p(g,{...h,method:f.toUpperCase()})},GET(f,g){return p(f,{...g,method:"GET"})},PUT(f,g){return p(f,{...g,method:"PUT"})},POST(f,g){return p(f,{...g,method:"POST"})},DELETE(f,g){return p(f,{...g,method:"DELETE"})},OPTIONS(f,g){return p(f,{...g,method:"OPTIONS"})},HEAD(f,g){return p(f,{...g,method:"HEAD"})},PATCH(f,g){return p(f,{...g,method:"PATCH"})},TRACE(f,g){return p(f,{...g,method:"TRACE"})},use(...f){for(let g of f)if(g){if(typeof g!="object"||!("onRequest"in g||"onResponse"in g||"onError"in g))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");m.push(g);}},eject(...f){for(let g of f){let h=m.indexOf(g);h!==-1&&m.splice(h,1);}}}}function qp(e,n,r){if(n==null)return "";if(typeof n=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${e}=${r?.allowReserved===true?n:encodeURIComponent(n)}`}function Kz(e,n,r){if(!n||typeof n!="object")return "";let o=[],t={simple:",",label:".",matrix:";"}[r.style]||"&";if(r.style!=="deepObject"&&r.explode===false){for(let c in n)o.push(c,r.allowReserved===true?n[c]:encodeURIComponent(n[c]));let s=o.join(",");switch(r.style){case "form":return `${e}=${s}`;case "label":return `.${s}`;case "matrix":return `;${e}=${s}`;default:return s}}for(let s in n){let c=r.style==="deepObject"?`${e}[${s}]`:s;o.push(qp(c,n[s],r));}let i=o.join(t);return r.style==="label"||r.style==="matrix"?`${t}${i}`:i}function Gz(e,n,r){if(!Array.isArray(n))return "";if(r.explode===false){let i={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[r.style]||",",s=(r.allowReserved===true?n:n.map(c=>encodeURIComponent(c))).join(i);switch(r.style){case "simple":return s;case "label":return `.${s}`;case "matrix":return `;${e}=${s}`;default:return `${e}=${s}`}}let o={simple:",",label:".",matrix:";"}[r.style]||"&",t=[];for(let i of n)r.style==="simple"||r.style==="label"?t.push(r.allowReserved===true?i:encodeURIComponent(i)):t.push(qp(e,i,r));return r.style==="label"||r.style==="matrix"?`${o}${t.join(o)}`:t.join(o)}function Mz(e){return function(r){let o=[];if(r&&typeof r=="object")for(let t in r){let i=r[t];if(i!=null){if(Array.isArray(i)){if(i.length===0)continue;o.push(Gz(t,i,{style:"form",explode:true,...e?.array,allowReserved:e?.allowReserved||false}));continue}if(typeof i=="object"){o.push(Kz(t,i,{style:"deepObject",explode:true,...e?.object,allowReserved:e?.allowReserved||false}));continue}o.push(qp(t,i,e));}}return o.join("&")}}function yq(e,n){let r=e;for(let o of e.match(bq)??[]){let t=o.substring(1,o.length-1),i=false,s="simple";if(t.endsWith("*")&&(i=true,t=t.substring(0,t.length-1)),t.startsWith(".")?(s="label",t=t.substring(1)):t.startsWith(";")&&(s="matrix",t=t.substring(1)),!n||n[t]===void 0||n[t]===null)continue;let c=n[t];if(Array.isArray(c)){r=r.replace(o,Gz(t,c,{style:s,explode:i}));continue}if(typeof c=="object"){r=r.replace(o,Kz(t,c,{style:s,explode:i}));continue}if(s==="matrix"){r=r.replace(o,`;${qp(t,c)}`);continue}r=r.replace(o,s==="label"?`.${encodeURIComponent(c)}`:encodeURIComponent(c));}return r}function xq(e,n){return e instanceof FormData?e:n&&(n.get instanceof Function?n.get("Content-Type")??n.get("content-type"):n["Content-Type"]??n["content-type"])==="application/x-www-form-urlencoded"?new URLSearchParams(e).toString():JSON.stringify(e)}function Sq(e,n){let r=`${n.baseUrl}${e}`;n.params?.path&&(r=n.pathSerializer(r,n.params.path));let o=n.querySerializer(n.params.query??{});return o.startsWith("?")&&(o=o.substring(1)),o&&(r+=`?${o}`),r}function Zz(...e){let n=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let o=r instanceof Headers?r.entries():Object.entries(r);for(let[t,i]of o)if(i===null)n.delete(t);else if(Array.isArray(i))for(let s of i)n.append(t,s);else i!==void 0&&n.set(t,i);}return n}function qz(e){return e.endsWith("/")?e.substring(0,e.length-1):e}function Iq(e){let n={...e.headers};return e.tenantId&&(n["x-rt-tenant-id"]=e.tenantId),e.token&&(n.Authorization=`Bearer ${e.token}`),Hz({baseUrl:e.baseUrl,headers:n})}var lI=class extends Error{constructor(r,o){super(o);O(this,"status",r);this.name="ApiError";}};var uI=class extends rO{constructor(r){let{exportedConfig:o,environmentId:t,...i}=r,s=vi(o,"BrowserRuntime.exportedConfig",{tenantId:r.tenantId,environmentId:t??"default"});if(!s)throw new Error("BrowserRuntime requires exportedConfig");let c=Li(r.storage),l=new pp({storage:c,tenantId:r.tenantId,maxRecords:r.maxImpressionRecords});super({...i,exportedConfig:s,storage:c,impressionStore:l});O(this,"_hydratePromise");let d=r.autoHydrate??true;this._hydratePromise=d?this.hydrate():null;}async ready(){this._hydratePromise&&await this._hydratePromise;}};var Pq=new Set(["tenant_id","user_id","anonymous_id","session_id","url","path","page_title","event_time"]);function kq(e){let n={};for(let[r,o]of Object.entries(e.properties))n[Pq.has(r)?`rt_prop_${r}`:r]=o;return {...n,tenant_id:e.tenant_id,user_id:e.user_id,anonymous_id:e.anonymous_id,session_id:e.session_id,url:e.url,path:e.path,page_title:e.page_title,event_time:e.event_time}}var dI=class{constructor(n){O(this,"name");O(this,"handler");O(this,"transform");O(this,"filterSet");this.name=n.name??"analytics",this.handler=n.handler,this.transform=n.transform,this.filterSet=n.filter?new Set(n.filter):void 0;}consume(n){for(let r of n){if(this.filterSet&&!this.filterSet.has(r.type))continue;let o=r.type,t=kq(r);if(this.transform){let i=this.transform(o,t);if(i===null)continue;o=i.eventName,t=i.properties;}try{this.handler(o,t);}catch{}}}};function Jz(e){let n=new dI(e);return {domain:"events",resolve:()=>({consumers:[n]})}}function Tq(e){let{posthog:n,filter:r,transform:o,name:t}=e;return Jz({name:t??"posthog",filter:r,transform:o,handler:(i,s)=>{n.capture(i,s);}})}var Wz=["banner_placement"],Xz=["banner_placement","in_page_card"],Yz=["toast_message"],Qz=["modal_overlay"];var nu=["banner_placement","in_page_card","usage_counter","button"],ru=["modal_overlay","inline_gate_message"],iu=["toast_message","modal_overlay","banner_placement"];function ou(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}var Hp=class{constructor(n){O(this,"tenantId");O(this,"apiKey");O(this,"endpoint");O(this,"defaultTtlSeconds");O(this,"fetchFn");this.tenantId=n.tenantId,this.apiKey=n.apiKey,this.endpoint=n.endpoint.replace(/\/$/,""),this.defaultTtlSeconds=n.defaultTtlSeconds??60,this.fetchFn=n.fetch??globalThis.fetch;}async evaluate(n){let r=ou(),o=n.anonymousId??ou(),[t,i,s,c,l]=await Promise.all([this.evaluatePlacements(r,n),this.evaluateEntitlements(r,n),n.includeTrialStatus?this.fetchTrialStatus(r,n.userId):Promise.resolve(void 0),n.includeUserContext?this.fetchUserContext(r,n.userId):Promise.resolve(void 0),n.includeTheme?this.fetchTheme(r):Promise.resolve(void 0)]),d={version:"1.0.0",request_id:r,tenant_id:this.tenantId,evaluated_at:new Date().toISOString(),ttl_seconds:this.defaultTtlSeconds,user:{id:n.userId,anonymous_id:o,traits:n.traits},decisions:t};return i&&Object.keys(i).length>0&&(d.entitlements=i),s&&(d.trial_status=s),c&&(d.user_context=c),l&&(d.theme=l),d}async getPlacement(n,r,o){let t=ou(),i={request_id:t,user_id:n,traits:o??{},slot_id:r.slotId,entitlement_handle:r.entitlementHandle,plan_handle:r.planHandle,placement_handle:r.placementHandle};try{let s=await this.apiCall(t,"/api/decision-api/v1/decide-context",i);if(!s.ok)return {slot_id:r.slotId,entitlement_handle:r.entitlementHandle,plan_handle:r.planHandle,placement_handle:r.placementHandle,visible:!1,reason_codes:["api_error"]};let c=await s.json(),l=c.decision,d=l?.visible??!1,m={slot_id:r.slotId,entitlement_handle:r.entitlementHandle,plan_handle:r.planHandle,placement_handle:r.placementHandle,visible:d};return d&&l&&(m.output=l),c.reason_codes&&(m.reason_codes=c.reason_codes),m}catch{return {slot_id:r.slotId,entitlement_handle:r.entitlementHandle,plan_handle:r.planHandle,placement_handle:r.placementHandle,visible:false,reason_codes:["network_error"]}}}async checkEntitlement(n,r,o){let t=ou(),i={request_id:t,user_id:n,entitlement_handle:r,...o??{}};try{let s=await this.apiCall(t,"/api/decision-api/v1/check-entitlement",i);if(!s.ok)return {status:"denied",allowed:!1,reason:"api_error"};let c=await s.json();return {status:c.status??"denied",allowed:c.allowed??!1,reason:c.reason,current_tier:c.current_tier}}catch{return {status:"denied",allowed:false,reason:"network_error"}}}can(n,r,o){return this.checkEntitlement(n,r,o)}async getTrialStatus(n){let r=ou();return this.fetchTrialStatus(r,n)}async apiCall(n,r,o){return this.fetchFn(`${this.endpoint}${r}`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":n},body:JSON.stringify(o)})}async apiGet(n,r){return this.fetchFn(`${this.endpoint}${r}`,{method:"GET",headers:{authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":n}})}async evaluatePlacements(n,r){let o=r.placements??[];return o.length===0?[]:o.length>1?this.evaluatePlacementsBatch(n,r,o):[await this.getPlacement(r.userId,o[0],r.traits)]}async evaluatePlacementsBatch(n,r,o){let t={request_id:n,user_id:r.userId,traits:r.traits??{},usage_balances:r.usageBalances??{},page:r.page??{},placements:o.map(i=>({slot_id:i.slotId,entitlement_handle:i.entitlementHandle,plan_handle:i.planHandle,placement_handle:i.placementHandle}))};try{let i=await this.apiCall(n,"/api/decision-api/v1/bootstrap-context",t);return i.ok?(await i.json()).decisions.map((c,l)=>{let d=o[l]??{},m=c.result.decision?.visible??!1,p={slot_id:d.slotId,entitlement_handle:d.entitlementHandle,plan_handle:d.planHandle,placement_handle:d.placementHandle,visible:m};return m&&c.result.decision&&(p.output=c.result.decision),c.result.reason_codes&&(p.reason_codes=c.result.reason_codes),p}):o.map(c=>({slot_id:c.slotId,entitlement_handle:c.entitlementHandle,plan_handle:c.planHandle,placement_handle:c.placementHandle,visible:!1,reason_codes:["api_error"]}))}catch{return o.map(i=>({slot_id:i.slotId,entitlement_handle:i.entitlementHandle,plan_handle:i.planHandle,placement_handle:i.placementHandle,visible:false,reason_codes:["network_error"]}))}}async evaluateEntitlements(n,r){let o=r.entitlementHandles??[];if(o.length===0)return;let t={},i=await Promise.allSettled(o.map(async s=>{let c=await this.checkEntitlement(r.userId,s);return {handle:s,result:c}}));for(let s of i)s.status==="fulfilled"&&(t[s.value.handle]=s.value.result);return t}async fetchTrialStatus(n,r){try{let o=await this.apiCall(n,"/api/decision-api/v1/trial-status",{request_id:n,user_id:r});if(!o.ok)return {in_trial:!1};let t=await o.json();return {in_trial:t.in_trial??!1,...t.trial_type!==void 0?{trial_type:t.trial_type}:{},...t.plan_handle!==void 0?{plan_handle:t.plan_handle}:{},...t.trial_limit_type!==void 0?{trial_limit_type:t.trial_limit_type}:{},...t.progress_percent!==void 0?{progress_percent:t.progress_percent}:{},...t.day_number!==void 0?{day_number:t.day_number}:{},...t.days_remaining!==void 0?{days_remaining:t.days_remaining}:{},...t.usage_entitlement_handle!==void 0?{usage_entitlement_handle:t.usage_entitlement_handle}:{},...t.usage_consumed!==void 0?{usage_consumed:t.usage_consumed}:{},...t.usage_remaining!==void 0?{usage_remaining:t.usage_remaining}:{},...t.usage_limit!==void 0?{usage_limit:t.usage_limit}:{}}}catch{return {in_trial:false}}}async fetchUserContext(n,r){try{let o=await this.apiCall(n,"/api/decision-api/v1/user-context",{request_id:n,user_id:r});if(!o.ok)return;let t=await o.json();return {segments:t.segments,traits:t.traits,usage_balances:t.usage_balances}}catch{return}}async fetchTheme(n){try{let r=await this.apiGet(n,"/api/sdk/theme");if(!r.ok)return;let o=await r.json();return typeof o!="object"||o===null?void 0:o}catch{return}}};var u={};sn(u,{$brand:()=>pI,$input:()=>jk,$output:()=>zk,NEVER:()=>mI,TimePrecision:()=>Fk,ZodAny:()=>$T,ZodArray:()=>ET,ZodBase64:()=>yg,ZodBase64URL:()=>xg,ZodBigInt:()=>rc,ZodBigIntFormat:()=>Pg,ZodBoolean:()=>nc,ZodCIDRv4:()=>_g,ZodCIDRv6:()=>vg,ZodCUID:()=>dg,ZodCUID2:()=>mg,ZodCatch:()=>QT,ZodCodec:()=>Du,ZodCustom:()=>Fu,ZodCustomStringFormat:()=>ec,ZodDate:()=>Ou,ZodDefault:()=>KT,ZodDiscriminatedUnion:()=>zT,ZodE164:()=>Sg,ZodEmail:()=>cg,ZodEmoji:()=>lg,ZodEnum:()=>Ys,ZodError:()=>rK,ZodExactOptional:()=>ZT,ZodFile:()=>BT,ZodFirstPartyTypeKind:()=>m$,ZodFunction:()=>l$,ZodGUID:()=>$u,ZodIPv4:()=>hg,ZodIPv6:()=>bg,ZodISODate:()=>ng,ZodISODateTime:()=>tg,ZodISODuration:()=>ig,ZodISOTime:()=>rg,ZodIntersection:()=>jT,ZodIssueCode:()=>oK,ZodJWT:()=>Ig,ZodKSUID:()=>gg,ZodLazy:()=>a$,ZodLiteral:()=>VT,ZodMAC:()=>yT,ZodMap:()=>NT,ZodNaN:()=>t$,ZodNanoID:()=>ug,ZodNever:()=>RT,ZodNonOptional:()=>Cg,ZodNull:()=>kT,ZodNullable:()=>HT,ZodNumber:()=>tc,ZodNumberFormat:()=>Go,ZodObject:()=>ju,ZodOptional:()=>Rg,ZodPipe:()=>Au,ZodPrefault:()=>JT,ZodPreprocess:()=>n$,ZodPromise:()=>c$,ZodReadonly:()=>r$,ZodRealError:()=>Qn,ZodRecord:()=>Xs,ZodSet:()=>LT,ZodString:()=>Qs,ZodStringFormat:()=>It,ZodSuccess:()=>YT,ZodSymbol:()=>IT,ZodTemplateLiteral:()=>o$,ZodTransform:()=>MT,ZodTuple:()=>AT,ZodType:()=>De,ZodULID:()=>pg,ZodURL:()=>Eu,ZodUUID:()=>Qr,ZodUndefined:()=>PT,ZodUnion:()=>Uu,ZodUnknown:()=>wT,ZodVoid:()=>CT,ZodXID:()=>fg,ZodXor:()=>OT,_ZodString:()=>sg,_default:()=>GT,_function:()=>VU,any:()=>_U,array:()=>zu,base64:()=>tU,base64url:()=>nU,bigint:()=>pU,boolean:()=>ST,catch:()=>e$,check:()=>BU,cidrv4:()=>Q1,cidrv6:()=>eU,clone:()=>Dn,codec:()=>DU,coerce:()=>p$,config:()=>Jt,core:()=>gi,cuid:()=>q1,cuid2:()=>H1,custom:()=>MU,date:()=>yU,decode:()=>pT,decodeAsync:()=>gT,describe:()=>ZU,discriminatedUnion:()=>TU,e164:()=>rU,email:()=>U1,emoji:()=>M1,encode:()=>mT,encodeAsync:()=>fT,endsWith:()=>Vs,enum:()=>$g,exactOptional:()=>qT,file:()=>zU,flattenError:()=>pu,float32:()=>lU,float64:()=>uU,formatError:()=>fu,fromJSONSchema:()=>XU,function:()=>VU,getErrorMap:()=>sK,globalRegistry:()=>gn,gt:()=>Xr,gte:()=>Nn,guid:()=>A1,hash:()=>cU,hex:()=>sU,hostname:()=>aU,httpUrl:()=>B1,includes:()=>Ns,instanceof:()=>HU,int:()=>og,int32:()=>dU,int64:()=>fU,intersection:()=>UT,invertCodec:()=>FU,ipv4:()=>W1,ipv6:()=>Y1,iso:()=>Ws,json:()=>GU,jwt:()=>iU,keyof:()=>xU,ksuid:()=>J1,lazy:()=>s$,length:()=>Ho,literal:()=>OU,locales:()=>Su,looseObject:()=>PU,looseRecord:()=>wU,lowercase:()=>Ds,lt:()=>Wr,lte:()=>ur,mac:()=>X1,map:()=>RU,maxLength:()=>qo,maxSize:()=>ro,meta:()=>qU,mime:()=>Bs,minLength:()=>fi,minSize:()=>Yr,multipleOf:()=>no,nan:()=>AU,nanoid:()=>Z1,nativeEnum:()=>EU,negative:()=>qf,never:()=>kg,nonnegative:()=>Kf,nonoptional:()=>XT,nonpositive:()=>Hf,normalize:()=>Ms,null:()=>TT,nullable:()=>Ru,nullish:()=>jU,number:()=>xT,object:()=>SU,optional:()=>wu,overwrite:()=>Ar,parse:()=>cT,parseAsync:()=>lT,partialRecord:()=>$U,pipe:()=>ag,positive:()=>Zf,prefault:()=>WT,preprocess:()=>JU,prettifyError:()=>TI,promise:()=>LU,property:()=>Gf,readonly:()=>i$,record:()=>FT,refine:()=>u$,regex:()=>As,regexes:()=>lr,registry:()=>If,safeDecode:()=>bT,safeDecodeAsync:()=>vT,safeEncode:()=>hT,safeEncodeAsync:()=>_T,safeParse:()=>uT,safeParseAsync:()=>dT,set:()=>CU,setErrorMap:()=>aK,size:()=>Zo,slugify:()=>Ks,startsWith:()=>Ls,strictObject:()=>IU,string:()=>Tu,stringFormat:()=>oU,stringbool:()=>KU,success:()=>UU,superRefine:()=>d$,symbol:()=>hU,templateLiteral:()=>NU,toJSONSchema:()=>Yf,toLowerCase:()=>qs,toUpperCase:()=>Hs,transform:()=>wg,treeifyError:()=>kI,trim:()=>Zs,tuple:()=>DT,uint32:()=>mU,uint64:()=>gU,ulid:()=>K1,undefined:()=>bU,union:()=>Tg,unknown:()=>Ko,uppercase:()=>Fs,url:()=>V1,util:()=>B,uuid:()=>D1,uuidv4:()=>F1,uuidv6:()=>N1,uuidv7:()=>L1,void:()=>vU,xid:()=>G1,xor:()=>kU});var gi={};sn(gi,{$ZodAny:()=>tk,$ZodArray:()=>ak,$ZodAsyncError:()=>Ur,$ZodBase64:()=>qP,$ZodBase64URL:()=>HP,$ZodBigInt:()=>gf,$ZodBigIntFormat:()=>XP,$ZodBoolean:()=>_u,$ZodCIDRv4:()=>BP,$ZodCIDRv6:()=>MP,$ZodCUID:()=>CP,$ZodCUID2:()=>EP,$ZodCatch:()=>Pk,$ZodCheck:()=>$t,$ZodCheckBigIntFormat:()=>aP,$ZodCheckEndsWith:()=>_P,$ZodCheckGreaterThan:()=>lf,$ZodCheckIncludes:()=>hP,$ZodCheckLengthEquals:()=>mP,$ZodCheckLessThan:()=>cf,$ZodCheckLowerCase:()=>fP,$ZodCheckMaxLength:()=>uP,$ZodCheckMaxSize:()=>sP,$ZodCheckMimeType:()=>yP,$ZodCheckMinLength:()=>dP,$ZodCheckMinSize:()=>cP,$ZodCheckMultipleOf:()=>iP,$ZodCheckNumberFormat:()=>oP,$ZodCheckOverwrite:()=>xP,$ZodCheckProperty:()=>vP,$ZodCheckRegex:()=>pP,$ZodCheckSizeEquals:()=>lP,$ZodCheckStartsWith:()=>bP,$ZodCheckStringFormat:()=>js,$ZodCheckUpperCase:()=>gP,$ZodCodec:()=>yu,$ZodCustom:()=>Ok,$ZodCustomStringFormat:()=>JP,$ZodDate:()=>ok,$ZodDefault:()=>yk,$ZodDiscriminatedUnion:()=>lk,$ZodE164:()=>KP,$ZodEmail:()=>TP,$ZodEmoji:()=>wP,$ZodEncodeError:()=>Xi,$ZodEnum:()=>fk,$ZodError:()=>mu,$ZodExactOptional:()=>_k,$ZodFile:()=>hk,$ZodFunction:()=>Rk,$ZodGUID:()=>PP,$ZodIPv4:()=>NP,$ZodIPv6:()=>LP,$ZodISODate:()=>AP,$ZodISODateTime:()=>UP,$ZodISODuration:()=>FP,$ZodISOTime:()=>DP,$ZodIntersection:()=>uk,$ZodJWT:()=>GP,$ZodKSUID:()=>jP,$ZodLazy:()=>Ek,$ZodLiteral:()=>gk,$ZodMAC:()=>VP,$ZodMap:()=>mk,$ZodNaN:()=>kk,$ZodNanoID:()=>RP,$ZodNever:()=>rk,$ZodNonOptional:()=>Sk,$ZodNull:()=>ek,$ZodNullable:()=>vk,$ZodNumber:()=>ff,$ZodNumberFormat:()=>WP,$ZodObject:()=>Cj,$ZodObjectJIT:()=>sk,$ZodOptional:()=>bf,$ZodPipe:()=>_f,$ZodPrefault:()=>xk,$ZodPreprocess:()=>Tk,$ZodPromise:()=>Ck,$ZodReadonly:()=>$k,$ZodRealError:()=>Yn,$ZodRecord:()=>dk,$ZodRegistry:()=>Sf,$ZodSet:()=>pk,$ZodString:()=>Mo,$ZodStringFormat:()=>St,$ZodSuccess:()=>Ik,$ZodSymbol:()=>YP,$ZodTemplateLiteral:()=>wk,$ZodTransform:()=>bk,$ZodTuple:()=>hf,$ZodType:()=>Re,$ZodULID:()=>OP,$ZodURL:()=>$P,$ZodUUID:()=>kP,$ZodUndefined:()=>QP,$ZodUnion:()=>vu,$ZodUnknown:()=>nk,$ZodVoid:()=>ik,$ZodXID:()=>zP,$ZodXor:()=>ck,$brand:()=>pI,$constructor:()=>T,$input:()=>jk,$output:()=>zk,Doc:()=>bu,JSONSchema:()=>O1,JSONSchemaGenerator:()=>Qf,NEVER:()=>mI,TimePrecision:()=>Fk,_any:()=>o0,_array:()=>m0,_base64:()=>Lf,_base64url:()=>Vf,_bigint:()=>Yk,_boolean:()=>Wk,_catch:()=>J8,_check:()=>E1,_cidrv4:()=>Ff,_cidrv6:()=>Nf,_coercedBigint:()=>Qk,_coercedBoolean:()=>Xk,_coercedDate:()=>u0,_coercedNumber:()=>Zk,_coercedString:()=>Ak,_cuid:()=>Ef,_cuid2:()=>Of,_custom:()=>f0,_date:()=>l0,_decode:()=>Yp,_decodeAsync:()=>ef,_default:()=>H8,_discriminatedUnion:()=>j8,_e164:()=>Bf,_email:()=>Pf,_emoji:()=>Rf,_encode:()=>Xp,_encodeAsync:()=>Qp,_endsWith:()=>Vs,_enum:()=>L8,_file:()=>p0,_float32:()=>Hk,_float64:()=>Kk,_gt:()=>Xr,_gte:()=>Nn,_guid:()=>Iu,_includes:()=>Ns,_int:()=>qk,_int32:()=>Gk,_int64:()=>e0,_intersection:()=>U8,_ipv4:()=>Af,_ipv6:()=>Df,_isoDate:()=>Lk,_isoDateTime:()=>Nk,_isoDuration:()=>Bk,_isoTime:()=>Vk,_jwt:()=>Mf,_ksuid:()=>Uf,_lazy:()=>Q8,_length:()=>Ho,_literal:()=>B8,_lowercase:()=>Ds,_lt:()=>Wr,_lte:()=>ur,_mac:()=>Dk,_map:()=>F8,_max:()=>ur,_maxLength:()=>qo,_maxSize:()=>ro,_mime:()=>Bs,_min:()=>Nn,_minLength:()=>fi,_minSize:()=>Yr,_multipleOf:()=>no,_nan:()=>d0,_nanoid:()=>Cf,_nativeEnum:()=>V8,_negative:()=>qf,_never:()=>s0,_nonnegative:()=>Kf,_nonoptional:()=>K8,_nonpositive:()=>Hf,_normalize:()=>Ms,_null:()=>i0,_nullable:()=>q8,_number:()=>Mk,_optional:()=>Z8,_overwrite:()=>Ar,_parse:()=>Cs,_parseAsync:()=>Es,_pipe:()=>W8,_positive:()=>Zf,_promise:()=>eK,_property:()=>Gf,_readonly:()=>X8,_record:()=>D8,_refine:()=>g0,_regex:()=>As,_safeDecode:()=>nf,_safeDecodeAsync:()=>of,_safeEncode:()=>tf,_safeEncodeAsync:()=>rf,_safeParse:()=>Os,_safeParseAsync:()=>zs,_set:()=>N8,_size:()=>Zo,_slugify:()=>Ks,_startsWith:()=>Ls,_string:()=>Uk,_stringFormat:()=>Gs,_stringbool:()=>v0,_success:()=>G8,_superRefine:()=>h0,_symbol:()=>n0,_templateLiteral:()=>Y8,_toLowerCase:()=>qs,_toUpperCase:()=>Hs,_transform:()=>M8,_trim:()=>Zs,_tuple:()=>A8,_uint32:()=>Jk,_uint64:()=>t0,_ulid:()=>zf,_undefined:()=>r0,_union:()=>O8,_unknown:()=>a0,_uppercase:()=>Fs,_url:()=>Pu,_uuid:()=>kf,_uuidv4:()=>Tf,_uuidv6:()=>$f,_uuidv7:()=>wf,_void:()=>c0,_xid:()=>jf,_xor:()=>z8,clone:()=>Dn,config:()=>Jt,createStandardJSONSchemaMethod:()=>Js,createToJSONSchemaMethod:()=>y0,decode:()=>eH,decodeAsync:()=>nH,describe:()=>b0,encode:()=>Qq,encodeAsync:()=>tH,extractDefs:()=>oo,finalize:()=>ao,flattenError:()=>pu,formatError:()=>fu,globalConfig:()=>Lo,globalRegistry:()=>gn,initializeContext:()=>io,isValidBase64:()=>ZP,isValidBase64URL:()=>Tj,isValidJWT:()=>$j,locales:()=>Su,meta:()=>_0,parse:()=>Jp,parseAsync:()=>Wp,prettifyError:()=>TI,process:()=>ht,regexes:()=>lr,registry:()=>If,safeDecode:()=>iH,safeDecodeAsync:()=>aH,safeEncode:()=>rH,safeEncodeAsync:()=>oH,safeParse:()=>$I,safeParseAsync:()=>wI,toDotPath:()=>oj,toJSONSchema:()=>Yf,treeifyError:()=>kI,util:()=>B,version:()=>SP});var ej,mI=Object.freeze({status:"aborted"});function T(e,n,r){function o(c,l){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:l,constr:s,traits:new Set},enumerable:false}),c._zod.traits.has(e))return;c._zod.traits.add(e),n(c,l);let d=s.prototype,m=Object.keys(d);for(let p=0;p<m.length;p++){let f=m[p];f in c||(c[f]=d[f].bind(c));}}let t=r?.Parent??Object;class i extends t{}Object.defineProperty(i,"name",{value:e});function s(c){var l;let d=r?.Parent?new i:this;o(d,c),(l=d._zod).deferred??(l.deferred=[]);for(let m of d._zod.deferred)m();return d}return Object.defineProperty(s,"init",{value:o}),Object.defineProperty(s,Symbol.hasInstance,{value:c=>r?.Parent&&c instanceof r.Parent?true:c?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var pI=Symbol("zod_brand"),Ur=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.");}},Xi=class extends Error{constructor(n){super(`Encountered unidirectional transform during encode: ${n}`),this.name="ZodEncodeError";}};(ej=globalThis).__zod_globalConfig??(ej.__zod_globalConfig={});var Lo=globalThis.__zod_globalConfig;function Jt(e){return e&&Object.assign(Lo,e),Lo}var B={};sn(B,{BIGINT_FORMAT_RANGES:()=>II,Class:()=>gI,NUMBER_FORMAT_RANGES:()=>SI,aborted:()=>to,allowsEval:()=>_I,assert:()=>Eq,assertEqual:()=>$q,assertIs:()=>Rq,assertNever:()=>Cq,assertNotEqual:()=>wq,assignProp:()=>Qi,base64ToUint8Array:()=>nj,base64urlToUint8Array:()=>Gq,cached:()=>ws,captureStackTrace:()=>Gp,cleanEnum:()=>Kq,cleanRegex:()=>cu,clone:()=>Dn,cloneDef:()=>zq,createTransparentProxy:()=>Nq,defineLazy:()=>Ke,esc:()=>Kp,escapeRegex:()=>yr,explicitlyAborted:()=>PI,extend:()=>Bq,finalizeIssue:()=>Fn,floatSafeRemainder:()=>hI,getElementAtPath:()=>jq,getEnumValues:()=>su,getLengthableOrigin:()=>du,getParsedType:()=>Fq,getSizableOrigin:()=>uu,hexToUint8Array:()=>Wq,isObject:()=>Vo,isPlainObject:()=>eo,issue:()=>Rs,joinValues:()=>C,jsonStringifyReplacer:()=>$s,merge:()=>Zq,mergeDefs:()=>pi,normalizeParams:()=>q,nullish:()=>Yi,numKeys:()=>Dq,objectClone:()=>Oq,omit:()=>Vq,optionalKeys:()=>xI,parsedType:()=>N,partial:()=>qq,pick:()=>Lq,prefixIssues:()=>Xn,primitiveTypes:()=>yI,promiseAllObject:()=>Uq,propertyKeyTypes:()=>lu,randomString:()=>Aq,required:()=>Hq,safeExtend:()=>Mq,shallowClone:()=>vI,slugify:()=>bI,stringifyPrimitive:()=>D,uint8ArrayToBase64:()=>rj,uint8ArrayToBase64url:()=>Jq,uint8ArrayToHex:()=>Xq,unwrapMessage:()=>au});function $q(e){return e}function wq(e){return e}function Rq(e){}function Cq(e){throw new Error("Unexpected value in exhaustive check")}function Eq(e){}function su(e){let n=Object.values(e).filter(o=>typeof o=="number");return Object.entries(e).filter(([o,t])=>n.indexOf(+o)===-1).map(([o,t])=>t)}function C(e,n="|"){return e.map(r=>D(r)).join(n)}function $s(e,n){return typeof n=="bigint"?n.toString():n}function ws(e){return {get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}}}}function Yi(e){return e==null}function cu(e){let n=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(n,r)}function hI(e,n){let r=e/n,o=Math.round(r),t=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-o)<t?0:r-o}var tj=Symbol("evaluating");function Ke(e,n,r){let o;Object.defineProperty(e,n,{get(){if(o!==tj)return o===void 0&&(o=tj,o=r()),o},set(t){Object.defineProperty(e,n,{value:t});},configurable:true});}function Oq(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Qi(e,n,r){Object.defineProperty(e,n,{value:r,writable:true,enumerable:true,configurable:true});}function pi(...e){let n={};for(let r of e){let o=Object.getOwnPropertyDescriptors(r);Object.assign(n,o);}return Object.defineProperties({},n)}function zq(e){return pi(e._zod.def)}function jq(e,n){return n?n.reduce((r,o)=>r?.[o],e):e}function Uq(e){let n=Object.keys(e),r=n.map(o=>e[o]);return Promise.all(r).then(o=>{let t={};for(let i=0;i<n.length;i++)t[n[i]]=o[i];return t})}function Aq(e=10){let n="abcdefghijklmnopqrstuvwxyz",r="";for(let o=0;o<e;o++)r+=n[Math.floor(Math.random()*n.length)];return r}function Kp(e){return JSON.stringify(e)}function bI(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Gp="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Vo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var _I=ws(()=>{if(Lo.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return false;try{let e=Function;return new e(""),!0}catch{return false}});function eo(e){if(Vo(e)===false)return false;let n=e.constructor;if(n===void 0||typeof n!="function")return true;let r=n.prototype;return !(Vo(r)===false||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===false)}function vI(e){return eo(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function Dq(e){let n=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&n++;return n}var Fq=e=>{let n=typeof e;switch(n){case "undefined":return "undefined";case "string":return "string";case "number":return Number.isNaN(e)?"nan":"number";case "boolean":return "boolean";case "function":return "function";case "bigint":return "bigint";case "symbol":return "symbol";case "object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${n}`)}},lu=new Set(["string","number","symbol"]),yI=new Set(["string","number","bigint","boolean","symbol","undefined"]);function yr(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Dn(e,n,r){let o=new e._zod.constr(n??e._zod.def);return (!n||r?.parent)&&(o._zod.parent=e),o}function q(e){let n=e;if(!n)return {};if(typeof n=="string")return {error:()=>n};if(n?.message!==void 0){if(n?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");n.error=n.message;}return delete n.message,typeof n.error=="string"?{...n,error:()=>n.error}:n}function Nq(e){let n;return new Proxy({},{get(r,o,t){return n??(n=e()),Reflect.get(n,o,t)},set(r,o,t,i){return n??(n=e()),Reflect.set(n,o,t,i)},has(r,o){return n??(n=e()),Reflect.has(n,o)},deleteProperty(r,o){return n??(n=e()),Reflect.deleteProperty(n,o)},ownKeys(r){return n??(n=e()),Reflect.ownKeys(n)},getOwnPropertyDescriptor(r,o){return n??(n=e()),Reflect.getOwnPropertyDescriptor(n,o)},defineProperty(r,o,t){return n??(n=e()),Reflect.defineProperty(n,o,t)}})}function D(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function xI(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}var SI={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},II={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Lq(e,n){let r=e._zod.def,o=r.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=pi(e._zod.def,{get shape(){let s={};for(let c in n){if(!(c in r.shape))throw new Error(`Unrecognized key: "${c}"`);n[c]&&(s[c]=r.shape[c]);}return Qi(this,"shape",s),s},checks:[]});return Dn(e,i)}function Vq(e,n){let r=e._zod.def,o=r.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=pi(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let c in n){if(!(c in r.shape))throw new Error(`Unrecognized key: "${c}"`);n[c]&&delete s[c];}return Qi(this,"shape",s),s},checks:[]});return Dn(e,i)}function Bq(e,n){if(!eo(n))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let i=e._zod.def.shape;for(let s in n)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let t=pi(e._zod.def,{get shape(){let i={...e._zod.def.shape,...n};return Qi(this,"shape",i),i}});return Dn(e,t)}function Mq(e,n){if(!eo(n))throw new Error("Invalid input to safeExtend: expected a plain object");let r=pi(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n};return Qi(this,"shape",o),o}});return Dn(e,r)}function Zq(e,n){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=pi(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n._zod.def.shape};return Qi(this,"shape",o),o},get catchall(){return n._zod.def.catchall},checks:n._zod.def.checks??[]});return Dn(e,r)}function qq(e,n,r){let t=n._zod.def.checks;if(t&&t.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=pi(n._zod.def,{get shape(){let c=n._zod.def.shape,l={...c};if(r)for(let d in r){if(!(d in c))throw new Error(`Unrecognized key: "${d}"`);r[d]&&(l[d]=e?new e({type:"optional",innerType:c[d]}):c[d]);}else for(let d in c)l[d]=e?new e({type:"optional",innerType:c[d]}):c[d];return Qi(this,"shape",l),l},checks:[]});return Dn(n,s)}function Hq(e,n,r){let o=pi(n._zod.def,{get shape(){let t=n._zod.def.shape,i={...t};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new e({type:"nonoptional",innerType:t[s]}));}else for(let s in t)i[s]=new e({type:"nonoptional",innerType:t[s]});return Qi(this,"shape",i),i}});return Dn(n,o)}function to(e,n=0){if(e.aborted===true)return true;for(let r=n;r<e.issues.length;r++)if(e.issues[r]?.continue!==true)return true;return false}function PI(e,n=0){if(e.aborted===true)return true;for(let r=n;r<e.issues.length;r++)if(e.issues[r]?.continue===false)return true;return false}function Xn(e,n){return n.map(r=>{var o;return (o=r).path??(o.path=[]),r.path.unshift(e),r})}function au(e){return typeof e=="string"?e:e?.message}function Fn(e,n,r){let o=e.message?e.message:au(e.inst?._zod.def?.error?.(e))??au(n?.error?.(e))??au(r.customError?.(e))??au(r.localeError?.(e))??"Invalid input",{inst:t,continue:i,input:s,...c}=e;return c.path??(c.path=[]),c.message=o,n?.reportInput&&(c.input=s),c}function uu(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function du(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function N(e){let n=typeof e;switch(n){case "number":return Number.isNaN(e)?"nan":"number";case "object":{if(e===null)return "null";if(Array.isArray(e))return "array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return n}function Rs(...e){let[n,r,o]=e;return typeof n=="string"?{message:n,code:"custom",input:r,inst:o}:{...n}}function Kq(e){return Object.entries(e).filter(([n,r])=>Number.isNaN(Number.parseInt(n,10))).map(n=>n[1])}function nj(e){let n=atob(e),r=new Uint8Array(n.length);for(let o=0;o<n.length;o++)r[o]=n.charCodeAt(o);return r}function rj(e){let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}function Gq(e){let n=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-n.length%4)%4);return nj(n+r)}function Jq(e){return rj(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Wq(e){let n=e.replace(/^0x/,"");if(n.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(n.length/2);for(let o=0;o<n.length;o+=2)r[o/2]=Number.parseInt(n.slice(o,o+2),16);return r}function Xq(e){return Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}var gI=class{constructor(...n){}};var ij=(e,n)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:false}),Object.defineProperty(e,"issues",{value:n,enumerable:false}),e.message=JSON.stringify(n,$s,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:false});},mu=T("$ZodError",ij),Yn=T("$ZodError",ij,{Parent:Error});function pu(e,n=r=>r.message){let r={},o=[];for(let t of e.issues)t.path.length>0?(r[t.path[0]]=r[t.path[0]]||[],r[t.path[0]].push(n(t))):o.push(n(t));return {formErrors:o,fieldErrors:r}}function fu(e,n=r=>r.message){let r={_errors:[]},o=(t,i=[])=>{for(let s of t.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(c=>o({issues:c},[...i,...s.path]));else if(s.code==="invalid_key")o({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")o({issues:s.issues},[...i,...s.path]);else {let c=[...i,...s.path];if(c.length===0)r._errors.push(n(s));else {let l=r,d=0;for(;d<c.length;){let m=c[d];d===c.length-1?(l[m]=l[m]||{_errors:[]},l[m]._errors.push(n(s))):l[m]=l[m]||{_errors:[]},l=l[m],d++;}}}};return o(e),r}function kI(e,n=r=>r.message){let r={errors:[]},o=(t,i=[])=>{var s,c;for(let l of t.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(d=>o({issues:d},[...i,...l.path]));else if(l.code==="invalid_key")o({issues:l.issues},[...i,...l.path]);else if(l.code==="invalid_element")o({issues:l.issues},[...i,...l.path]);else {let d=[...i,...l.path];if(d.length===0){r.errors.push(n(l));continue}let m=r,p=0;for(;p<d.length;){let f=d[p],g=p===d.length-1;typeof f=="string"?(m.properties??(m.properties={}),(s=m.properties)[f]??(s[f]={errors:[]}),m=m.properties[f]):(m.items??(m.items=[]),(c=m.items)[f]??(c[f]={errors:[]}),m=m.items[f]),g&&m.errors.push(n(l)),p++;}}};return o(e),r}function oj(e){let n=[],r=e.map(o=>typeof o=="object"?o.key:o);for(let o of r)typeof o=="number"?n.push(`[${o}]`):typeof o=="symbol"?n.push(`[${JSON.stringify(String(o))}]`):/[^\w$]/.test(o)?n.push(`[${JSON.stringify(o)}]`):(n.length&&n.push("."),n.push(o));return n.join("")}function TI(e){let n=[],r=[...e.issues].sort((o,t)=>(o.path??[]).length-(t.path??[]).length);for(let o of r)n.push(`\u2716 ${o.message}`),o.path?.length&&n.push(` \u2192 at ${oj(o.path)}`);return n.join(`
66
66
  `)}var Cs=e=>(n,r,o,t)=>{let i=o?{...o,async:false}:{async:false},s=n._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new Ur;if(s.issues.length){let c=new(t?.Err??e)(s.issues.map(l=>Fn(l,i,Jt())));throw Gp(c,t?.callee),c}return s.value},Jp=Cs(Yn),Es=e=>async(n,r,o,t)=>{let i=o?{...o,async:true}:{async:true},s=n._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let c=new(t?.Err??e)(s.issues.map(l=>Fn(l,i,Jt())));throw Gp(c,t?.callee),c}return s.value},Wp=Es(Yn),Os=e=>(n,r,o)=>{let t=o?{...o,async:false}:{async:false},i=n._zod.run({value:r,issues:[]},t);if(i instanceof Promise)throw new Ur;return i.issues.length?{success:false,error:new(e??mu)(i.issues.map(s=>Fn(s,t,Jt())))}:{success:true,data:i.value}},$I=Os(Yn),zs=e=>async(n,r,o)=>{let t=o?{...o,async:true}:{async:true},i=n._zod.run({value:r,issues:[]},t);return i instanceof Promise&&(i=await i),i.issues.length?{success:false,error:new e(i.issues.map(s=>Fn(s,t,Jt())))}:{success:true,data:i.value}},wI=zs(Yn),Xp=e=>(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return Cs(e)(n,r,t)},Qq=Xp(Yn),Yp=e=>(n,r,o)=>Cs(e)(n,r,o),eH=Yp(Yn),Qp=e=>async(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return Es(e)(n,r,t)},tH=Qp(Yn),ef=e=>async(n,r,o)=>Es(e)(n,r,o),nH=ef(Yn),tf=e=>(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return Os(e)(n,r,t)},rH=tf(Yn),nf=e=>(n,r,o)=>Os(e)(n,r,o),iH=nf(Yn),rf=e=>async(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return zs(e)(n,r,t)},oH=rf(Yn),of=e=>async(n,r,o)=>zs(e)(n,r,o),aH=of(Yn);var lr={};sn(lr,{base64:()=>ZI,base64url:()=>af,bigint:()=>XI,boolean:()=>QI,browserEmail:()=>fH,cidrv4:()=>BI,cidrv6:()=>MI,cuid:()=>RI,cuid2:()=>CI,date:()=>KI,datetime:()=>JI,domain:()=>bH,duration:()=>UI,e164:()=>HI,email:()=>DI,emoji:()=>FI,extendedDuration:()=>sH,guid:()=>AI,hex:()=>_H,hostname:()=>hH,html5Email:()=>dH,httpProtocol:()=>qI,idnEmail:()=>pH,integer:()=>YI,ipv4:()=>NI,ipv6:()=>LI,ksuid:()=>zI,lowercase:()=>nP,mac:()=>VI,md5_base64:()=>yH,md5_base64url:()=>xH,md5_hex:()=>vH,nanoid:()=>jI,null:()=>eP,number:()=>sf,rfc5322Email:()=>mH,sha1_base64:()=>IH,sha1_base64url:()=>PH,sha1_hex:()=>SH,sha256_base64:()=>TH,sha256_base64url:()=>$H,sha256_hex:()=>kH,sha384_base64:()=>RH,sha384_base64url:()=>CH,sha384_hex:()=>wH,sha512_base64:()=>OH,sha512_base64url:()=>zH,sha512_hex:()=>EH,string:()=>WI,time:()=>GI,ulid:()=>EI,undefined:()=>tP,unicodeEmail:()=>aj,uppercase:()=>rP,uuid:()=>Bo,uuid4:()=>cH,uuid6:()=>lH,uuid7:()=>uH,xid:()=>OI});var RI=/^[cC][0-9a-z]{6,}$/,CI=/^[0-9a-z]+$/,EI=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,OI=/^[0-9a-vA-V]{20}$/,zI=/^[A-Za-z0-9]{27}$/,jI=/^[a-zA-Z0-9_-]{21}$/,UI=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,sH=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,AI=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Bo=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,cH=Bo(4),lH=Bo(6),uH=Bo(7),DI=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,dH=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,mH=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,aj=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,pH=aj,fH=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,gH="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function FI(){return new RegExp(gH,"u")}var NI=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,LI=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,VI=e=>{let n=yr(e??":");return new RegExp(`^(?:[0-9A-F]{2}${n}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${n}){5}[0-9a-f]{2}$`)},BI=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,MI=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ZI=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,af=/^[A-Za-z0-9_-]*$/,hH=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,bH=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,qI=/^https?$/,HI=/^\+[1-9]\d{6,14}$/,sj="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",KI=new RegExp(`^${sj}$`);function cj(e){let n="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${n}`:e.precision===0?`${n}:[0-5]\\d`:`${n}:[0-5]\\d\\.\\d{${e.precision}}`:`${n}(?::[0-5]\\d(?:\\.\\d+)?)?`}function GI(e){return new RegExp(`^${cj(e)}$`)}function JI(e){let n=cj({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let o=`${n}(?:${r.join("|")})`;return new RegExp(`^${sj}T(?:${o})$`)}var WI=e=>{let n=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${n}$`)},XI=/^-?\d+n?$/,YI=/^-?\d+$/,sf=/^-?\d+(?:\.\d+)?$/,QI=/^(?:true|false)$/i,eP=/^null$/i;var tP=/^undefined$/i;var nP=/^[^A-Z]*$/,rP=/^[^a-z]*$/,_H=/^[0-9a-fA-F]*$/;function gu(e,n){return new RegExp(`^[A-Za-z0-9+/]{${e}}${n}$`)}function hu(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var vH=/^[0-9a-fA-F]{32}$/,yH=gu(22,"=="),xH=hu(22),SH=/^[0-9a-fA-F]{40}$/,IH=gu(27,"="),PH=hu(27),kH=/^[0-9a-fA-F]{64}$/,TH=gu(43,"="),$H=hu(43),wH=/^[0-9a-fA-F]{96}$/,RH=gu(64,""),CH=hu(64),EH=/^[0-9a-fA-F]{128}$/,OH=gu(86,"=="),zH=hu(86);var $t=T("$ZodCheck",(e,n)=>{var r;e._zod??(e._zod={}),e._zod.def=n,(r=e._zod).onattach??(r.onattach=[]);}),uj={number:"number",bigint:"bigint",object:"date"},cf=T("$ZodCheckLessThan",(e,n)=>{$t.init(e,n);let r=uj[typeof n.value];e._zod.onattach.push(o=>{let t=o._zod.bag,i=(n.inclusive?t.maximum:t.exclusiveMaximum)??Number.POSITIVE_INFINITY;n.value<i&&(n.inclusive?t.maximum=n.value:t.exclusiveMaximum=n.value);}),e._zod.check=o=>{(n.inclusive?o.value<=n.value:o.value<n.value)||o.issues.push({origin:r,code:"too_big",maximum:typeof n.value=="object"?n.value.getTime():n.value,input:o.value,inclusive:n.inclusive,inst:e,continue:!n.abort});};}),lf=T("$ZodCheckGreaterThan",(e,n)=>{$t.init(e,n);let r=uj[typeof n.value];e._zod.onattach.push(o=>{let t=o._zod.bag,i=(n.inclusive?t.minimum:t.exclusiveMinimum)??Number.NEGATIVE_INFINITY;n.value>i&&(n.inclusive?t.minimum=n.value:t.exclusiveMinimum=n.value);}),e._zod.check=o=>{(n.inclusive?o.value>=n.value:o.value>n.value)||o.issues.push({origin:r,code:"too_small",minimum:typeof n.value=="object"?n.value.getTime():n.value,input:o.value,inclusive:n.inclusive,inst:e,continue:!n.abort});};}),iP=T("$ZodCheckMultipleOf",(e,n)=>{$t.init(e,n),e._zod.onattach.push(r=>{var o;(o=r._zod.bag).multipleOf??(o.multipleOf=n.value);}),e._zod.check=r=>{if(typeof r.value!=typeof n.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%n.value===BigInt(0):hI(r.value,n.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:n.value,input:r.value,inst:e,continue:!n.abort});};}),oP=T("$ZodCheckNumberFormat",(e,n)=>{$t.init(e,n),n.format=n.format||"float64";let r=n.format?.includes("int"),o=r?"int":"number",[t,i]=SI[n.format];e._zod.onattach.push(s=>{let c=s._zod.bag;c.format=n.format,c.minimum=t,c.maximum=i,r&&(c.pattern=YI);}),e._zod.check=s=>{let c=s.value;if(r){if(!Number.isInteger(c)){s.issues.push({expected:o,format:n.format,code:"invalid_type",continue:false,input:c,inst:e});return}if(!Number.isSafeInteger(c)){c>0?s.issues.push({input:c,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:true,continue:!n.abort}):s.issues.push({input:c,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:true,continue:!n.abort});return}}c<t&&s.issues.push({origin:"number",input:c,code:"too_small",minimum:t,inclusive:true,inst:e,continue:!n.abort}),c>i&&s.issues.push({origin:"number",input:c,code:"too_big",maximum:i,inclusive:true,inst:e,continue:!n.abort});};}),aP=T("$ZodCheckBigIntFormat",(e,n)=>{$t.init(e,n);let[r,o]=II[n.format];e._zod.onattach.push(t=>{let i=t._zod.bag;i.format=n.format,i.minimum=r,i.maximum=o;}),e._zod.check=t=>{let i=t.value;i<r&&t.issues.push({origin:"bigint",input:i,code:"too_small",minimum:r,inclusive:true,inst:e,continue:!n.abort}),i>o&&t.issues.push({origin:"bigint",input:i,code:"too_big",maximum:o,inclusive:true,inst:e,continue:!n.abort});};}),sP=T("$ZodCheckMaxSize",(e,n)=>{var r;$t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Yi(t)&&t.size!==void 0}),e._zod.onattach.push(o=>{let t=o._zod.bag.maximum??Number.POSITIVE_INFINITY;n.maximum<t&&(o._zod.bag.maximum=n.maximum);}),e._zod.check=o=>{let t=o.value;t.size<=n.maximum||o.issues.push({origin:uu(t),code:"too_big",maximum:n.maximum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),cP=T("$ZodCheckMinSize",(e,n)=>{var r;$t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Yi(t)&&t.size!==void 0}),e._zod.onattach.push(o=>{let t=o._zod.bag.minimum??Number.NEGATIVE_INFINITY;n.minimum>t&&(o._zod.bag.minimum=n.minimum);}),e._zod.check=o=>{let t=o.value;t.size>=n.minimum||o.issues.push({origin:uu(t),code:"too_small",minimum:n.minimum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),lP=T("$ZodCheckSizeEquals",(e,n)=>{var r;$t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Yi(t)&&t.size!==void 0}),e._zod.onattach.push(o=>{let t=o._zod.bag;t.minimum=n.size,t.maximum=n.size,t.size=n.size;}),e._zod.check=o=>{let t=o.value,i=t.size;if(i===n.size)return;let s=i>n.size;o.issues.push({origin:uu(t),...s?{code:"too_big",maximum:n.size}:{code:"too_small",minimum:n.size},inclusive:true,exact:true,input:o.value,inst:e,continue:!n.abort});};}),uP=T("$ZodCheckMaxLength",(e,n)=>{var r;$t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Yi(t)&&t.length!==void 0}),e._zod.onattach.push(o=>{let t=o._zod.bag.maximum??Number.POSITIVE_INFINITY;n.maximum<t&&(o._zod.bag.maximum=n.maximum);}),e._zod.check=o=>{let t=o.value;if(t.length<=n.maximum)return;let s=du(t);o.issues.push({origin:s,code:"too_big",maximum:n.maximum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),dP=T("$ZodCheckMinLength",(e,n)=>{var r;$t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Yi(t)&&t.length!==void 0}),e._zod.onattach.push(o=>{let t=o._zod.bag.minimum??Number.NEGATIVE_INFINITY;n.minimum>t&&(o._zod.bag.minimum=n.minimum);}),e._zod.check=o=>{let t=o.value;if(t.length>=n.minimum)return;let s=du(t);o.issues.push({origin:s,code:"too_small",minimum:n.minimum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),mP=T("$ZodCheckLengthEquals",(e,n)=>{var r;$t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Yi(t)&&t.length!==void 0}),e._zod.onattach.push(o=>{let t=o._zod.bag;t.minimum=n.length,t.maximum=n.length,t.length=n.length;}),e._zod.check=o=>{let t=o.value,i=t.length;if(i===n.length)return;let s=du(t),c=i>n.length;o.issues.push({origin:s,...c?{code:"too_big",maximum:n.length}:{code:"too_small",minimum:n.length},inclusive:true,exact:true,input:o.value,inst:e,continue:!n.abort});};}),js=T("$ZodCheckStringFormat",(e,n)=>{var r,o;$t.init(e,n),e._zod.onattach.push(t=>{let i=t._zod.bag;i.format=n.format,n.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(n.pattern));}),n.pattern?(r=e._zod).check??(r.check=t=>{n.pattern.lastIndex=0,!n.pattern.test(t.value)&&t.issues.push({origin:"string",code:"invalid_format",format:n.format,input:t.value,...n.pattern?{pattern:n.pattern.toString()}:{},inst:e,continue:!n.abort});}):(o=e._zod).check??(o.check=()=>{});}),pP=T("$ZodCheckRegex",(e,n)=>{js.init(e,n),e._zod.check=r=>{n.pattern.lastIndex=0,!n.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:n.pattern.toString(),inst:e,continue:!n.abort});};}),fP=T("$ZodCheckLowerCase",(e,n)=>{n.pattern??(n.pattern=nP),js.init(e,n);}),gP=T("$ZodCheckUpperCase",(e,n)=>{n.pattern??(n.pattern=rP),js.init(e,n);}),hP=T("$ZodCheckIncludes",(e,n)=>{$t.init(e,n);let r=yr(n.includes),o=new RegExp(typeof n.position=="number"?`^.{${n.position}}${r}`:r);n.pattern=o,e._zod.onattach.push(t=>{let i=t._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(o);}),e._zod.check=t=>{t.value.includes(n.includes,n.position)||t.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:n.includes,input:t.value,inst:e,continue:!n.abort});};}),bP=T("$ZodCheckStartsWith",(e,n)=>{$t.init(e,n);let r=new RegExp(`^${yr(n.prefix)}.*`);n.pattern??(n.pattern=r),e._zod.onattach.push(o=>{let t=o._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(r);}),e._zod.check=o=>{o.value.startsWith(n.prefix)||o.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:n.prefix,input:o.value,inst:e,continue:!n.abort});};}),_P=T("$ZodCheckEndsWith",(e,n)=>{$t.init(e,n);let r=new RegExp(`.*${yr(n.suffix)}$`);n.pattern??(n.pattern=r),e._zod.onattach.push(o=>{let t=o._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(r);}),e._zod.check=o=>{o.value.endsWith(n.suffix)||o.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:n.suffix,input:o.value,inst:e,continue:!n.abort});};});function lj(e,n,r){e.issues.length&&n.issues.push(...Xn(r,e.issues));}var vP=T("$ZodCheckProperty",(e,n)=>{$t.init(e,n),e._zod.check=r=>{let o=n.schema._zod.run({value:r.value[n.property],issues:[]},{});if(o instanceof Promise)return o.then(t=>lj(t,r,n.property));lj(o,r,n.property);};}),yP=T("$ZodCheckMimeType",(e,n)=>{$t.init(e,n);let r=new Set(n.mime);e._zod.onattach.push(o=>{o._zod.bag.mime=n.mime;}),e._zod.check=o=>{r.has(o.value.type)||o.issues.push({code:"invalid_value",values:n.mime,input:o.value.type,inst:e,continue:!n.abort});};}),xP=T("$ZodCheckOverwrite",(e,n)=>{$t.init(e,n),e._zod.check=r=>{r.value=n.tx(r.value);};});var bu=class{constructor(n=[]){this.content=[],this.indent=0,this&&(this.args=n);}indented(n){this.indent+=1,n(this),this.indent-=1;}write(n){if(typeof n=="function"){n(this,{execution:"sync"}),n(this,{execution:"async"});return}let o=n.split(`
67
67
  `).filter(s=>s),t=Math.min(...o.map(s=>s.length-s.trimStart().length)),i=o.map(s=>s.slice(t)).map(s=>" ".repeat(this.indent*2)+s);for(let s of i)this.content.push(s);}compile(){let n=Function,r=this?.args,t=[...(this?.content??[""]).map(i=>` ${i}`)];return new n(...r,t.join(`
68
68
  `))}};var SP={major:4,minor:4,patch:3};var Re=T("$ZodType",(e,n)=>{var r;e??(e={}),e._zod.def=n,e._zod.bag=e._zod.bag||{},e._zod.version=SP;let o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(let t of o)for(let i of t._zod.onattach)i(e);if(o.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse;});else {let t=(s,c,l)=>{let d=to(s),m;for(let p of c){if(p._zod.def.when){if(PI(s)||!p._zod.def.when(s))continue}else if(d)continue;let f=s.issues.length,g=p._zod.check(s);if(g instanceof Promise&&l?.async===false)throw new Ur;if(m||g instanceof Promise)m=(m??Promise.resolve()).then(async()=>{await g,s.issues.length!==f&&(d||(d=to(s,f)));});else {if(s.issues.length===f)continue;d||(d=to(s,f));}}return m?m.then(()=>s):s},i=(s,c,l)=>{if(to(s))return s.aborted=true,s;let d=t(c,o,l);if(d instanceof Promise){if(l.async===false)throw new Ur;return d.then(m=>e._zod.parse(m,l))}return e._zod.parse(d,l)};e._zod.run=(s,c)=>{if(c.skipChecks)return e._zod.parse(s,c);if(c.direction==="backward"){let d=e._zod.parse({value:s.value,issues:[]},{...c,skipChecks:true});return d instanceof Promise?d.then(m=>i(m,s,c)):i(d,s,c)}let l=e._zod.parse(s,c);if(l instanceof Promise){if(c.async===false)throw new Ur;return l.then(d=>t(d,o,c))}return t(l,o,c)};}Ke(e,"~standard",()=>({validate:t=>{try{let i=$I(e,t);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return wI(e,t).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}));}),Mo=T("$ZodString",(e,n)=>{Re.init(e,n),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??WI(e._zod.bag),e._zod.parse=(r,o)=>{if(n.coerce)try{r.value=String(r.value);}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r};}),St=T("$ZodStringFormat",(e,n)=>{js.init(e,n),Mo.init(e,n);}),PP=T("$ZodGUID",(e,n)=>{n.pattern??(n.pattern=AI),St.init(e,n);}),kP=T("$ZodUUID",(e,n)=>{if(n.version){let o={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[n.version];if(o===void 0)throw new Error(`Invalid UUID version: "${n.version}"`);n.pattern??(n.pattern=Bo(o));}else n.pattern??(n.pattern=Bo());St.init(e,n);}),TP=T("$ZodEmail",(e,n)=>{n.pattern??(n.pattern=DI),St.init(e,n);}),$P=T("$ZodURL",(e,n)=>{St.init(e,n),e._zod.check=r=>{try{let o=r.value.trim();if(!n.normalize&&n.protocol?.source===qI.source&&!/^https?:\/\//i.test(o)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!n.abort});return}let t=new URL(o);n.hostname&&(n.hostname.lastIndex=0,n.hostname.test(t.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:n.hostname.source,input:r.value,inst:e,continue:!n.abort})),n.protocol&&(n.protocol.lastIndex=0,n.protocol.test(t.protocol.endsWith(":")?t.protocol.slice(0,-1):t.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:n.protocol.source,input:r.value,inst:e,continue:!n.abort})),n.normalize?r.value=t.href:r.value=o;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!n.abort});}};}),wP=T("$ZodEmoji",(e,n)=>{n.pattern??(n.pattern=FI()),St.init(e,n);}),RP=T("$ZodNanoID",(e,n)=>{n.pattern??(n.pattern=jI),St.init(e,n);}),CP=T("$ZodCUID",(e,n)=>{n.pattern??(n.pattern=RI),St.init(e,n);}),EP=T("$ZodCUID2",(e,n)=>{n.pattern??(n.pattern=CI),St.init(e,n);}),OP=T("$ZodULID",(e,n)=>{n.pattern??(n.pattern=EI),St.init(e,n);}),zP=T("$ZodXID",(e,n)=>{n.pattern??(n.pattern=OI),St.init(e,n);}),jP=T("$ZodKSUID",(e,n)=>{n.pattern??(n.pattern=zI),St.init(e,n);}),UP=T("$ZodISODateTime",(e,n)=>{n.pattern??(n.pattern=JI(n)),St.init(e,n);}),AP=T("$ZodISODate",(e,n)=>{n.pattern??(n.pattern=KI),St.init(e,n);}),DP=T("$ZodISOTime",(e,n)=>{n.pattern??(n.pattern=GI(n)),St.init(e,n);}),FP=T("$ZodISODuration",(e,n)=>{n.pattern??(n.pattern=UI),St.init(e,n);}),NP=T("$ZodIPv4",(e,n)=>{n.pattern??(n.pattern=NI),St.init(e,n),e._zod.bag.format="ipv4";}),LP=T("$ZodIPv6",(e,n)=>{n.pattern??(n.pattern=LI),St.init(e,n),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`);}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!n.abort});}};}),VP=T("$ZodMAC",(e,n)=>{n.pattern??(n.pattern=VI(n.delimiter)),St.init(e,n),e._zod.bag.format="mac";}),BP=T("$ZodCIDRv4",(e,n)=>{n.pattern??(n.pattern=BI),St.init(e,n);}),MP=T("$ZodCIDRv6",(e,n)=>{n.pattern??(n.pattern=MI),St.init(e,n),e._zod.check=r=>{let o=r.value.split("/");try{if(o.length!==2)throw new Error;let[t,i]=o;if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${t}]`);}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!n.abort});}};});function ZP(e){if(e==="")return true;if(/\s/.test(e)||e.length%4!==0)return false;try{return atob(e),!0}catch{return false}}var qP=T("$ZodBase64",(e,n)=>{n.pattern??(n.pattern=ZI),St.init(e,n),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{ZP(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!n.abort});};});function Tj(e){if(!af.test(e))return false;let n=e.replace(/[-_]/g,o=>o==="-"?"+":"/"),r=n.padEnd(Math.ceil(n.length/4)*4,"=");return ZP(r)}var HP=T("$ZodBase64URL",(e,n)=>{n.pattern??(n.pattern=af),St.init(e,n),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Tj(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!n.abort});};}),KP=T("$ZodE164",(e,n)=>{n.pattern??(n.pattern=HI),St.init(e,n);});function $j(e,n=null){try{let r=e.split(".");if(r.length!==3)return !1;let[o]=r;if(!o)return !1;let t=JSON.parse(atob(o));return !("typ"in t&&t?.typ!=="JWT"||!t.alg||n&&(!("alg"in t)||t.alg!==n))}catch{return false}}var GP=T("$ZodJWT",(e,n)=>{St.init(e,n),e._zod.check=r=>{$j(r.value,n.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!n.abort});};}),JP=T("$ZodCustomStringFormat",(e,n)=>{St.init(e,n),e._zod.check=r=>{n.fn(r.value)||r.issues.push({code:"invalid_format",format:n.format,input:r.value,inst:e,continue:!n.abort});};}),ff=T("$ZodNumber",(e,n)=>{Re.init(e,n),e._zod.pattern=e._zod.bag.pattern??sf,e._zod.parse=(r,o)=>{if(n.coerce)try{r.value=Number(r.value);}catch{}let t=r.value;if(typeof t=="number"&&!Number.isNaN(t)&&Number.isFinite(t))return r;let i=typeof t=="number"?Number.isNaN(t)?"NaN":Number.isFinite(t)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:t,inst:e,...i?{received:i}:{}}),r};}),WP=T("$ZodNumberFormat",(e,n)=>{oP.init(e,n),ff.init(e,n);}),_u=T("$ZodBoolean",(e,n)=>{Re.init(e,n),e._zod.pattern=QI,e._zod.parse=(r,o)=>{if(n.coerce)try{r.value=!!r.value;}catch{}let t=r.value;return typeof t=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:t,inst:e}),r};}),gf=T("$ZodBigInt",(e,n)=>{Re.init(e,n),e._zod.pattern=XI,e._zod.parse=(r,o)=>{if(n.coerce)try{r.value=BigInt(r.value);}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:e}),r};}),XP=T("$ZodBigIntFormat",(e,n)=>{aP.init(e,n),gf.init(e,n);}),YP=T("$ZodSymbol",(e,n)=>{Re.init(e,n),e._zod.parse=(r,o)=>{let t=r.value;return typeof t=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:t,inst:e}),r};}),QP=T("$ZodUndefined",(e,n)=>{Re.init(e,n),e._zod.pattern=tP,e._zod.values=new Set([void 0]),e._zod.parse=(r,o)=>{let t=r.value;return typeof t>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:t,inst:e}),r};}),ek=T("$ZodNull",(e,n)=>{Re.init(e,n),e._zod.pattern=eP,e._zod.values=new Set([null]),e._zod.parse=(r,o)=>{let t=r.value;return t===null||r.issues.push({expected:"null",code:"invalid_type",input:t,inst:e}),r};}),tk=T("$ZodAny",(e,n)=>{Re.init(e,n),e._zod.parse=r=>r;}),nk=T("$ZodUnknown",(e,n)=>{Re.init(e,n),e._zod.parse=r=>r;}),rk=T("$ZodNever",(e,n)=>{Re.init(e,n),e._zod.parse=(r,o)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r);}),ik=T("$ZodVoid",(e,n)=>{Re.init(e,n),e._zod.parse=(r,o)=>{let t=r.value;return typeof t>"u"||r.issues.push({expected:"void",code:"invalid_type",input:t,inst:e}),r};}),ok=T("$ZodDate",(e,n)=>{Re.init(e,n),e._zod.parse=(r,o)=>{if(n.coerce)try{r.value=new Date(r.value);}catch{}let t=r.value,i=t instanceof Date;return i&&!Number.isNaN(t.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:t,...i?{received:"Invalid Date"}:{},inst:e}),r};});function mj(e,n,r){e.issues.length&&n.issues.push(...Xn(r,e.issues)),n.value[r]=e.value;}var ak=T("$ZodArray",(e,n)=>{Re.init(e,n),e._zod.parse=(r,o)=>{let t=r.value;if(!Array.isArray(t))return r.issues.push({expected:"array",code:"invalid_type",input:t,inst:e}),r;r.value=Array(t.length);let i=[];for(let s=0;s<t.length;s++){let c=t[s],l=n.element._zod.run({value:c,issues:[]},o);l instanceof Promise?i.push(l.then(d=>mj(d,r,s))):mj(l,r,s);}return i.length?Promise.all(i).then(()=>r):r};});function pf(e,n,r,o,t,i){let s=r in o;if(e.issues.length){if(t&&i&&!s)return;n.issues.push(...Xn(r,e.issues));}if(!s&&!t){e.issues.length||n.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?s&&(n.value[r]=void 0):n.value[r]=e.value;}function wj(e){let n=Object.keys(e.shape);for(let o of n)if(!e.shape?.[o]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${o}": expected a Zod schema`);let r=xI(e.shape);return {...e,keys:n,keySet:new Set(n),numKeys:n.length,optionalKeys:new Set(r)}}function Rj(e,n,r,o,t,i){let s=[],c=t.keySet,l=t.catchall._zod,d=l.def.type,m=l.optin==="optional",p=l.optout==="optional";for(let f in n){if(f==="__proto__"||c.has(f))continue;if(d==="never"){s.push(f);continue}let g=l.run({value:n[f],issues:[]},o);g instanceof Promise?e.push(g.then(h=>pf(h,r,f,n,m,p))):pf(g,r,f,n,m,p);}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:n,inst:i}),e.length?Promise.all(e).then(()=>r):r}var Cj=T("$ZodObject",(e,n)=>{if(Re.init(e,n),!Object.getOwnPropertyDescriptor(n,"shape")?.get){let c=n.shape;Object.defineProperty(n,"shape",{get:()=>{let l={...c};return Object.defineProperty(n,"shape",{value:l}),l}});}let o=ws(()=>wj(n));Ke(e._zod,"propValues",()=>{let c=n.shape,l={};for(let d in c){let m=c[d]._zod;if(m.values){l[d]??(l[d]=new Set);for(let p of m.values)l[d].add(p);}}return l});let t=Vo,i=n.catchall,s;e._zod.parse=(c,l)=>{s??(s=o.value);let d=c.value;if(!t(d))return c.issues.push({expected:"object",code:"invalid_type",input:d,inst:e}),c;c.value={};let m=[],p=s.shape;for(let f of s.keys){let g=p[f],h=g._zod.optin==="optional",x=g._zod.optout==="optional",S=g._zod.run({value:d[f],issues:[]},l);S instanceof Promise?m.push(S.then(w=>pf(w,c,f,d,h,x))):pf(S,c,f,d,h,x);}return i?Rj(m,d,c,l,o.value,e):m.length?Promise.all(m).then(()=>c):c};}),sk=T("$ZodObjectJIT",(e,n)=>{Cj.init(e,n);let r=e._zod.parse,o=ws(()=>wj(n)),t=f=>{let g=new bu(["shape","payload","ctx"]),h=o.value,x=E=>{let P=Kp(E);return `shape[${P}]._zod.run({ value: input[${P}], issues: [] }, ctx)`};g.write("const input = payload.value;");let S=Object.create(null),w=0;for(let E of h.keys)S[E]=`key_${w++}`;g.write("const newResult = {};");for(let E of h.keys){let P=S[E],I=Kp(E),z=f[E],X=z?._zod?.optin==="optional",re=z?._zod?.optout==="optional";g.write(`const ${P} = ${x(E)};`),X&&re?g.write(`