@revturbine/sdk 0.2.37 → 0.2.39

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/headless.js CHANGED
@@ -62,7 +62,7 @@ import {createContext,useState,useCallback,useMemo,useRef,useEffect,useContext}f
62
62
 
63
63
  `);}f.write("payload.value = newResult;"),f.write("return payload;");let E=f.compile();return (A,w)=>E(g,A,w)},i,s=no,c=!to.jitless,d=c&&yg.value,m=n.catchall,p;e._zod.parse=(g,f)=>{p??(p=o.value);let v=g.value;return s(v)?c&&d&&f?.async===false&&f.jitless!==true?(i||(i=t(n.shape)),g=i(g,f),m?vT([],v,g,f,p,e):g):r(g,f):(g.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),g)};});function rT(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=>!fi(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 sc=x("$ZodUnion",(e,n)=>{_e.init(e,n),Ce(e._zod,"optin",()=>n.options.some(o=>o._zod.optin==="optional")?"optional":void 0),Ce(e._zod,"optout",()=>n.options.some(o=>o._zod.optout==="optional")?"optional":void 0),Ce(e._zod,"values",()=>{if(n.options.every(o=>o._zod.values))return new Set(n.options.flatMap(o=>Array.from(o._zod.values)))}),Ce(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=>Ws(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 u=c._zod.run({value:o.value,issues:[]},t);if(u instanceof Promise)s.push(u),i=true;else {if(u.issues.length===0)return u;s.push(u);}}return i?Promise.all(s).then(c=>rT(c,o,e,t)):rT(s,o,e,t)};});function iT(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 ub=x("$ZodXor",(e,n)=>{sc.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 u=c._zod.run({value:o.value,issues:[]},t);u instanceof Promise?(s.push(u),i=true):s.push(u);}return i?Promise.all(s).then(c=>iT(c,o,e,t)):iT(s,o,e,t)};}),db=x("$ZodDiscriminatedUnion",(e,n)=>{n.inclusive=false,sc.init(e,n);let r=e._zod.parse;Ce(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,u]of Object.entries(s)){t[c]||(t[c]=new Set);for(let d of u)t[c].add(d);}}return t});let o=Oo(()=>{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 u of c){if(i.has(u))throw new Error(`Duplicate discriminator value "${String(u)}"`);i.set(u,s);}}return i});e._zod.parse=(t,i)=>{let s=t.value;if(!no(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)};}),mb=x("$ZodIntersection",(e,n)=>{_e.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(([u,d])=>oT(r,u,d)):oT(r,i,s)};});function kh(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(pi(e)&&pi(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=kh(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=kh(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 oT(e,n,r){let o=new Map,t;for(let c of n.issues)if(c.code==="unrecognized_keys"){t??(t=c);for(let u of c.keys)o.has(u)||o.set(u,{}),o.get(u).l=true;}else e.issues.push(c);for(let c of r.issues)if(c.code==="unrecognized_keys")for(let u of c.keys)o.has(u)||o.set(u,{}),o.get(u).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}),fi(e))return e;let s=kh(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 Ku=x("$ZodTuple",(e,n)=>{_e.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=aT(r,"optin"),u=aT(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(g=>{d[m]=g;})):d[m]=p;}if(n.rest){let m=r.length-1,p=i.slice(r.length);for(let g of p){m++;let f=n.rest._zod.run({value:g,issues:[]},t);f instanceof Promise?s.push(f.then(v=>sT(v,o,m))):sT(f,o,m);}}return s.length?Promise.all(s).then(()=>cT(d,o,r,i,u)):cT(d,o,r,i,u)};});function aT(e,n){for(let r=e.length-1;r>=0;r--)if(e[r]._zod[n]!=="optional")return r+1;return 0}function sT(e,n,r){e.issues.length&&n.issues.push(...Ln(r,e.issues)),n.value[r]=e.value;}function cT(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(...Ln(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 pb=x("$ZodRecord",(e,n)=>{_e.init(e,n),e._zod.parse=(r,o)=>{let t=r.value;if(!pi(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(f=>wn(f,o,Ht())),input:d,path:[d],inst:e});continue}let p=m.value,g=n.valueType._zod.run({value:t[d],issues:[]},o);g instanceof Promise?i.push(g.then(f=>{f.issues.length&&r.issues.push(...Ln(d,f.issues)),r.value[p]=f.value;})):(g.issues.length&&r.issues.push(...Ln(d,g.issues)),r.value[p]=g.value);}let u;for(let d in t)c.has(d)||(u=u??[],u.push(d));u&&u.length>0&&r.issues.push({code:"unrecognized_keys",input:t,inst:e,keys:u});}else {r.value={};for(let c of Reflect.ownKeys(t)){if(c==="__proto__"||!Object.prototype.propertyIsEnumerable.call(t,c))continue;let u=n.keyType._zod.run({value:c,issues:[]},o);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof c=="string"&&Fu.test(c)&&u.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&&(u=p);}if(u.issues.length){n.mode==="loose"?r.value[c]=t[c]:r.issues.push({code:"invalid_key",origin:"record",issues:u.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(...Ln(c,p.issues)),r.value[u.value]=p.value;})):(m.issues.length&&r.issues.push(...Ln(c,m.issues)),r.value[u.value]=m.value);}}return i.length?Promise.all(i).then(()=>r):r};}),fb=x("$ZodMap",(e,n)=>{_e.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 u=n.keyType._zod.run({value:s,issues:[]},o),d=n.valueType._zod.run({value:c,issues:[]},o);u instanceof Promise||d instanceof Promise?i.push(Promise.all([u,d]).then(([m,p])=>{lT(m,p,r,s,t,e,o);})):lT(u,d,r,s,t,e,o);}return i.length?Promise.all(i).then(()=>r):r};});function lT(e,n,r,o,t,i,s){e.issues.length&&(Xs.has(typeof o)?r.issues.push(...Ln(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&&(Xs.has(typeof o)?r.issues.push(...Ln(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 gb=x("$ZodSet",(e,n)=>{_e.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(u=>uT(u,r))):uT(c,r);}return i.length?Promise.all(i).then(()=>r):r};});function uT(e,n){e.issues.length&&n.issues.push(...e.issues),n.value.add(e.value);}var hb=x("$ZodEnum",(e,n)=>{_e.init(e,n);let r=Js(n.entries),o=new Set(r);e._zod.values=o,e._zod.pattern=new RegExp(`^(${r.filter(t=>Xs.has(typeof t)).map(t=>typeof t=="string"?ar(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};}),bb=x("$ZodLiteral",(e,n)=>{if(_e.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"?ar(o):o?ar(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};}),_b=x("$ZodFile",(e,n)=>{_e.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};}),vb=x("$ZodTransform",(e,n)=>{_e.init(e,n),e._zod.optin="optional",e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new ui(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 vr;return r.value=t,r.fallback=true,r};});function dT(e,n){return n===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Gu=x("$ZodOptional",(e,n)=>{_e.init(e,n),e._zod.optin="optional",e._zod.optout="optional",Ce(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),Ce(e._zod,"pattern",()=>{let r=n.innerType._zod.pattern;return r?new RegExp(`^(${Ws(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=>dT(s,t)):dT(i,t)}return r.value===void 0?r:n.innerType._zod.run(r,o)};}),yb=x("$ZodExactOptional",(e,n)=>{Gu.init(e,n),Ce(e._zod,"values",()=>n.innerType._zod.values),Ce(e._zod,"pattern",()=>n.innerType._zod.pattern),e._zod.parse=(r,o)=>n.innerType._zod.run(r,o);}),xb=x("$ZodNullable",(e,n)=>{_e.init(e,n),Ce(e._zod,"optin",()=>n.innerType._zod.optin),Ce(e._zod,"optout",()=>n.innerType._zod.optout),Ce(e._zod,"pattern",()=>{let r=n.innerType._zod.pattern;return r?new RegExp(`^(${Ws(r.source)}|null)$`):void 0}),Ce(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);}),Ib=x("$ZodDefault",(e,n)=>{_e.init(e,n),e._zod.optin="optional",Ce(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=>mT(i,n)):mT(t,n)};});function mT(e,n){return e.value===void 0&&(e.value=n.defaultValue),e}var Sb=x("$ZodPrefault",(e,n)=>{_e.init(e,n),e._zod.optin="optional",Ce(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));}),Pb=x("$ZodNonOptional",(e,n)=>{_e.init(e,n),Ce(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=>pT(i,e)):pT(t,e)};});function pT(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 kb=x("$ZodSuccess",(e,n)=>{_e.init(e,n),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new ui("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)};}),$b=x("$ZodCatch",(e,n)=>{_e.init(e,n),e._zod.optin="optional",Ce(e._zod,"optout",()=>n.innerType._zod.optout),Ce(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)};}),Tb=x("$ZodNaN",(e,n)=>{_e.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);}),Ju=x("$ZodPipe",(e,n)=>{_e.init(e,n),Ce(e._zod,"values",()=>n.in._zod.values),Ce(e._zod,"optin",()=>n.in._zod.optin),Ce(e._zod,"optout",()=>n.out._zod.optout),Ce(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=>Vu(s,n.in,o)):Vu(i,n.in,o)}let t=n.in._zod.run(r,o);return t instanceof Promise?t.then(i=>Vu(i,n.out,o)):Vu(t,n.out,o)};});function Vu(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 cc=x("$ZodCodec",(e,n)=>{_e.init(e,n),Ce(e._zod,"values",()=>n.in._zod.values),Ce(e._zod,"optin",()=>n.in._zod.optin),Ce(e._zod,"optout",()=>n.out._zod.optout),Ce(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=>Bu(s,n,o)):Bu(i,n,o)}else {let i=n.out._zod.run(r,o);return i instanceof Promise?i.then(s=>Bu(s,n,o)):Bu(i,n,o)}};});function Bu(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=>Mu(e,i,n.out,r)):Mu(e,t,n.out,r)}else {let t=n.reverseTransform(e.value,e);return t instanceof Promise?t.then(i=>Mu(e,i,n.in,r)):Mu(e,t,n.in,r)}}function Mu(e,n,r,o){return e.issues.length?(e.aborted=true,e):r._zod.run({value:n,issues:e.issues},o)}var wb=x("$ZodPreprocess",(e,n)=>{Ju.init(e,n);}),Eb=x("$ZodReadonly",(e,n)=>{_e.init(e,n),Ce(e._zod,"propValues",()=>n.innerType._zod.propValues),Ce(e._zod,"values",()=>n.innerType._zod.values),Ce(e._zod,"optin",()=>n.innerType?._zod?.optin),Ce(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(fT):fT(t)};});function fT(e){return e.value=Object.freeze(e.value),e}var Rb=x("$ZodTemplateLiteral",(e,n)=>{_e.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||Ig.has(typeof o))r.push(ar(`${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);}),Cb=x("$ZodFunction",(e,n)=>(_e.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?Tu(e._def.input,o):o,i=Reflect.apply(r,this,t);return e._def.output?Tu(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 wu(e._def.input,o):o,i=await Reflect.apply(r,this,t);return e._def.output?await wu(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 Ku({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)),jb=x("$ZodPromise",(e,n)=>{_e.init(e,n),e._zod.parse=(r,o)=>Promise.resolve(r.value).then(t=>n.innerType._zod.run({value:t,issues:[]},o));}),Ob=x("$ZodLazy",(e,n)=>{_e.init(e,n),Ce(e._zod,"innerType",()=>{let r=n;return r._cachedInner||(r._cachedInner=n.getter()),r._cachedInner}),Ce(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),Ce(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),Ce(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),Ce(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,o)=>e._zod.innerType._zod.run(r,o);}),zb=x("$ZodCustom",(e,n)=>{bt.init(e,n),_e.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=>gT(i,r,o,e));gT(t,r,o,e);};});function gT(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(zo(t));}}var uc={};un(uc,{ar:()=>xT,az:()=>IT,be:()=>PT,bg:()=>kT,ca:()=>$T,cs:()=>TT,da:()=>wT,de:()=>ET,el:()=>RT,en:()=>Wu,eo:()=>CT,es:()=>jT,fa:()=>OT,fi:()=>zT,fr:()=>UT,frCA:()=>AT,he:()=>DT,hr:()=>FT,hu:()=>NT,hy:()=>VT,id:()=>BT,is:()=>MT,it:()=>ZT,ja:()=>qT,ka:()=>HT,kh:()=>KT,km:()=>Xu,ko:()=>GT,lt:()=>WT,mk:()=>XT,ms:()=>YT,nl:()=>QT,no:()=>ew,ota:()=>tw,pl:()=>rw,ps:()=>nw,pt:()=>iw,ro:()=>ow,ru:()=>sw,sl:()=>cw,sv:()=>lw,ta:()=>uw,th:()=>dw,tr:()=>mw,ua:()=>pw,uk:()=>Yu,ur:()=>fw,uz:()=>gw,vi:()=>hw,yo:()=>vw,zhCN:()=>bw,zhTW:()=>_w});var G4=()=>{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=D(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 ${z(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: ${P(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":""}: ${P(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 xT(){return {localeError:G4()}}var J4=()=>{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=D(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 ${z(t.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${P(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":""}: ${P(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 IT(){return {localeError:J4()}}function ST(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 W4=()=>{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=D(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 ${z(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 ${P(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);if(s){let c=Number(t.maximum),u=ST(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()} ${u}`}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),u=ST(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()} ${u}`}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"}: ${P(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 PT(){return {localeError:W4()}}var X4=()=>{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=D(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 ${z(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 ${P(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":""}: ${P(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 kT(){return {localeError:X4()}}var Y4=()=>{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=D(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 ${z(t.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${P(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":""}: ${P(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 $T(){return {localeError:Y4()}}var Q4=()=>{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=D(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 ${z(t.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${P(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: ${P(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 TT(){return {localeError:Q4()}}var e2=()=>{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=D(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 ${z(t.values[0])}`:`Ugyldigt valg: forventede en af f\xF8lgende ${P(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"}: ${P(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 wT(){return {localeError:e2()}}var t2=()=>{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=D(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 ${z(t.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${P(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"}: ${P(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 ET(){return {localeError:t2()}}var n2=()=>{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=D(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 ${z(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 ${P(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"}: ${P(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 RT(){return {localeError:n2()}}var r2=()=>{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=D(t.input),c=o[s]??s;return `Invalid input: expected ${i}, received ${c}`}case "invalid_value":return t.values.length===1?`Invalid input: expected ${z(t.values[0])}`:`Invalid option: expected one of ${P(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":""}: ${P(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 Wu(){return {localeError:r2()}}var i2=()=>{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=D(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 ${z(t.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${P(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":""}: ${P(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 CT(){return {localeError:i2()}}var o2=()=>{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=D(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 ${z(t.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${P(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":""}: ${P(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 jT(){return {localeError:o2()}}var a2=()=>{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=D(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 ${z(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 ${P(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: ${P(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 OT(){return {localeError:a2()}}var s2=()=>{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=D(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 ${z(t.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${P(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"}: ${P(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 zT(){return {localeError:s2()}}var c2=()=>{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=D(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 : ${z(t.values[0])} attendu`:`Option invalide : une valeur parmi ${P(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":""} : ${P(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 UT(){return {localeError:c2()}}var l2=()=>{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=D(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 ${z(t.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${P(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":""} : ${P(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 AT(){return {localeError:l2()}}var u2=()=>{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"}},u={nan:"NaN"};return d=>{switch(d.code){case "invalid_type":{let m=d.expected,p=u[m??""]??o(m),g=D(d.input),f=u[g]??e[g]?.label??g;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 ${f}`:`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${p}, \u05D4\u05EA\u05E7\u05D1\u05DC ${f}`}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 ${z(d.values[0])}`;let m=d.values.map(f=>z(f));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 v=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 ${v}`}if(d.origin==="array"||d.origin==="set"){let v=d.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",$=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} ${v} \u05DC\u05D4\u05DB\u05D9\u05DC ${$}`.trim()}let g=d.inclusive?"<=":"<",f=i(d.origin??"value");return m?.unit?`${m.longLabel} \u05DE\u05D3\u05D9: ${p} ${f} ${g}${d.maximum.toString()} ${m.unit}`:`${m?.longLabel??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${p} ${f} ${g}${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 v=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 ${v}`}if(d.origin==="array"||d.origin==="set"){let v=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} ${v} \u05DC\u05D4\u05DB\u05D9\u05DC ${S}`}let $=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} ${v} \u05DC\u05D4\u05DB\u05D9\u05DC ${$}`.trim()}let g=d.inclusive?">=":">",f=i(d.origin??"value");return m?.unit?`${m.shortLabel} \u05DE\u05D3\u05D9: ${p} ${f} ${g}${d.minimum.toString()} ${m.unit}`:`${m?.shortLabel??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${p} ${f} ${g}${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],g=p?.label??m.format,v=(p?.gender??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return `${g} \u05DC\u05D0 ${v}`}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"}: ${P(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 DT(){return {localeError:u2()}}var d2=()=>{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=D(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 ${z(t.values[0])}`:`Neispravna opcija: o\u010Dekivano jedno od ${P(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"}: ${P(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 FT(){return {localeError:d2()}}var m2=()=>{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=D(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 ${z(t.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${P(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":""}: ${P(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 NT(){return {localeError:m2()}}function LT(e,n,r){return Math.abs(e)===1?n:r}function Lo(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 p2=()=>{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=D(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 ${z(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 ${P(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);if(s){let c=Number(t.maximum),u=LT(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 ${Lo(t.origin??"\u0561\u0580\u056A\u0565\u0584")} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${i}${t.maximum.toString()} ${u}`}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 ${Lo(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),u=LT(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 ${Lo(t.origin)} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${i}${t.minimum.toString()} ${u}`}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 ${Lo(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":""}. ${P(t.keys,", ")}`;case "invalid_key":return `\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${Lo(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 ${Lo(t.origin)}-\u0578\u0582\u0574`;default:return "\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574"}}};function VT(){return {localeError:p2()}}var f2=()=>{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=D(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 ${z(t.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${P(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":""}: ${P(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 BT(){return {localeError:f2()}}var g2=()=>{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=D(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 ${z(t.values[0])}`:`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${P(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"}: ${P(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 MT(){return {localeError:g2()}}var h2=()=>{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=D(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 ${z(t.values[0])}`:`Opzione non valida: atteso uno tra ${P(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"}: ${P(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 ZT(){return {localeError:h2()}}var b2=()=>{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=D(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: ${z(t.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${P(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":""}: ${P(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 qT(){return {localeError:b2()}}var _2=()=>{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=D(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 ${z(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 ${P(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"}: ${P(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 HT(){return {localeError:_2()}}var v2=()=>{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=D(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 ${z(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 ${P(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 ${P(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 Xu(){return {localeError:v2()}}function KT(){return Xu()}var y2=()=>{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=D(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 ${z(t.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${P(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),u=c?.unit??"\uC694\uC18C";return c?`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${t.maximum.toString()}${u} ${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),u=c?.unit??"\uC694\uC18C";return c?`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${t.minimum.toString()}${u} ${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: ${P(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 GT(){return {localeError:y2()}}var lc=e=>e.charAt(0).toUpperCase()+e.slice(1);function JT(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 x2=()=>{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 u=e[t]??null;return u===null?u:{unit:u.unit[i],verb:u.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=D(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 ${z(t.values[0])}`:`Privalo b\u016Bti vienas i\u0161 ${P(t.values,"|")} pasirinkim\u0173`;case "too_big":{let i=o[t.origin]??t.origin,s=n(t.origin,JT(Number(t.maximum)),t.inclusive??false,"smaller");if(s?.verb)return `${lc(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 `${lc(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,JT(Number(t.minimum)),t.inclusive??false,"bigger");if(s?.verb)return `${lc(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 `${lc(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"}: ${P(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 `${lc(i??t.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return "Klaidinga \u012Fvestis"}}};function WT(){return {localeError:x2()}}var I2=()=>{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=D(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 ${z(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 ${P(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"}: ${P(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 XT(){return {localeError:I2()}}var S2=()=>{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=D(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 ${z(t.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${P(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: ${P(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 YT(){return {localeError:S2()}}var P2=()=>{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=D(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 ${z(t.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${P(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":""}: ${P(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 QT(){return {localeError:P2()}}var k2=()=>{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=D(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 ${z(t.values[0])}`:`Ugyldig valg: forventet en av ${P(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"}: ${P(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 ew(){return {localeError:k2()}}var $2=()=>{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=D(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 ${z(t.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${P(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":""}: ${P(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 tw(){return {localeError:$2()}}var T2=()=>{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=D(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 ${z(t.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${P(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"}: ${P(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 nw(){return {localeError:T2()}}var w2=()=>{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=D(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 ${z(t.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${P(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":""}: ${P(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 rw(){return {localeError:w2()}}var E2=()=>{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=D(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 ${z(t.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${P(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":""}: ${P(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 iw(){return {localeError:E2()}}var R2=()=>{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=D(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 ${z(t.values[0])}`:`Op\u021Biune invalid\u0103: a\u0219teptat una dintre ${P(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: ${P(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 ow(){return {localeError:R2()}}function aw(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 C2=()=>{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=D(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 ${z(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 ${P(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);if(s){let c=Number(t.maximum),u=aw(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()} ${u}`}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),u=aw(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()} ${u}`}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":""}: ${P(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 sw(){return {localeError:C2()}}var j2=()=>{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=D(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 ${z(t.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${P(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"}: ${P(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 cw(){return {localeError:j2()}}var O2=()=>{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=D(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 ${z(t.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${P(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"}: ${P(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 lw(){return {localeError:O2()}}var z2=()=>{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=D(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 ${z(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 ${P(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":""}: ${P(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 uw(){return {localeError:z2()}}var U2=()=>{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=D(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 ${z(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 ${P(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: ${P(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 dw(){return {localeError:U2()}}var A2=()=>{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=D(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 ${z(t.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${P(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":""}: ${P(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 mw(){return {localeError:A2()}}var D2=()=>{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=D(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 ${z(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 ${P(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":""}: ${P(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 Yu(){return {localeError:D2()}}function pw(){return Yu()}var F2=()=>{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=D(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: ${z(t.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${P(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":""}: ${P(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 fw(){return {localeError:F2()}}var N2=()=>{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=D(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 ${z(t.values[0])}`:`Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${P(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":""}: ${P(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 gw(){return {localeError:N2()}}var L2=()=>{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=D(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 ${z(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 ${P(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: ${P(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 hw(){return {localeError:L2()}}var V2=()=>{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=D(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 ${z(t.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${P(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): ${P(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 bw(){return {localeError:V2()}}var B2=()=>{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=D(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 ${z(t.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${P(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${P(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 _w(){return {localeError:B2()}}var M2=()=>{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=D(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 ${z(t.values[0])}`:`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${P(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: ${P(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 vw(){return {localeError:M2()}}var yw,Ub=Symbol("ZodOutput"),Ab=Symbol("ZodInput"),Qu=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 ed(){return new Qu}(yw=globalThis).__zod_globalRegistry??(yw.__zod_globalRegistry=ed());var fn=globalThis.__zod_globalRegistry;function Db(e,n){return new e({type:"string",...q(n)})}function Fb(e,n){return new e({type:"string",coerce:true,...q(n)})}function td(e,n){return new e({type:"string",format:"email",check:"string_format",abort:false,...q(n)})}function dc(e,n){return new e({type:"string",format:"guid",check:"string_format",abort:false,...q(n)})}function nd(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,...q(n)})}function rd(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,version:"v4",...q(n)})}function id(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,version:"v6",...q(n)})}function od(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,version:"v7",...q(n)})}function mc(e,n){return new e({type:"string",format:"url",check:"string_format",abort:false,...q(n)})}function ad(e,n){return new e({type:"string",format:"emoji",check:"string_format",abort:false,...q(n)})}function sd(e,n){return new e({type:"string",format:"nanoid",check:"string_format",abort:false,...q(n)})}function cd(e,n){return new e({type:"string",format:"cuid",check:"string_format",abort:false,...q(n)})}function ld(e,n){return new e({type:"string",format:"cuid2",check:"string_format",abort:false,...q(n)})}function ud(e,n){return new e({type:"string",format:"ulid",check:"string_format",abort:false,...q(n)})}function dd(e,n){return new e({type:"string",format:"xid",check:"string_format",abort:false,...q(n)})}function md(e,n){return new e({type:"string",format:"ksuid",check:"string_format",abort:false,...q(n)})}function pd(e,n){return new e({type:"string",format:"ipv4",check:"string_format",abort:false,...q(n)})}function fd(e,n){return new e({type:"string",format:"ipv6",check:"string_format",abort:false,...q(n)})}function Nb(e,n){return new e({type:"string",format:"mac",check:"string_format",abort:false,...q(n)})}function gd(e,n){return new e({type:"string",format:"cidrv4",check:"string_format",abort:false,...q(n)})}function hd(e,n){return new e({type:"string",format:"cidrv6",check:"string_format",abort:false,...q(n)})}function bd(e,n){return new e({type:"string",format:"base64",check:"string_format",abort:false,...q(n)})}function _d(e,n){return new e({type:"string",format:"base64url",check:"string_format",abort:false,...q(n)})}function vd(e,n){return new e({type:"string",format:"e164",check:"string_format",abort:false,...q(n)})}function yd(e,n){return new e({type:"string",format:"jwt",check:"string_format",abort:false,...q(n)})}var Lb={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function Vb(e,n){return new e({type:"string",format:"datetime",check:"string_format",offset:false,local:false,precision:null,...q(n)})}function Bb(e,n){return new e({type:"string",format:"date",check:"string_format",...q(n)})}function Mb(e,n){return new e({type:"string",format:"time",check:"string_format",precision:null,...q(n)})}function Zb(e,n){return new e({type:"string",format:"duration",check:"string_format",...q(n)})}function qb(e,n){return new e({type:"number",checks:[],...q(n)})}function Hb(e,n){return new e({type:"number",coerce:true,checks:[],...q(n)})}function Kb(e,n){return new e({type:"number",check:"number_format",abort:false,format:"safeint",...q(n)})}function Gb(e,n){return new e({type:"number",check:"number_format",abort:false,format:"float32",...q(n)})}function Jb(e,n){return new e({type:"number",check:"number_format",abort:false,format:"float64",...q(n)})}function Wb(e,n){return new e({type:"number",check:"number_format",abort:false,format:"int32",...q(n)})}function Xb(e,n){return new e({type:"number",check:"number_format",abort:false,format:"uint32",...q(n)})}function Yb(e,n){return new e({type:"boolean",...q(n)})}function Qb(e,n){return new e({type:"boolean",coerce:true,...q(n)})}function e_(e,n){return new e({type:"bigint",...q(n)})}function t_(e,n){return new e({type:"bigint",coerce:true,...q(n)})}function n_(e,n){return new e({type:"bigint",check:"bigint_format",abort:false,format:"int64",...q(n)})}function r_(e,n){return new e({type:"bigint",check:"bigint_format",abort:false,format:"uint64",...q(n)})}function i_(e,n){return new e({type:"symbol",...q(n)})}function o_(e,n){return new e({type:"undefined",...q(n)})}function a_(e,n){return new e({type:"null",...q(n)})}function s_(e){return new e({type:"any"})}function c_(e){return new e({type:"unknown"})}function l_(e,n){return new e({type:"never",...q(n)})}function u_(e,n){return new e({type:"void",...q(n)})}function d_(e,n){return new e({type:"date",...q(n)})}function m_(e,n){return new e({type:"date",coerce:true,...q(n)})}function p_(e,n){return new e({type:"nan",...q(n)})}function jr(e,n){return new Nu({check:"less_than",...q(n),value:e,inclusive:false})}function Xn(e,n){return new Nu({check:"less_than",...q(n),value:e,inclusive:true})}function Or(e,n){return new Lu({check:"greater_than",...q(n),value:e,inclusive:false})}function En(e,n){return new Lu({check:"greater_than",...q(n),value:e,inclusive:true})}function xd(e){return Or(0,e)}function Id(e){return jr(0,e)}function Sd(e){return Xn(0,e)}function Pd(e){return En(0,e)}function gi(e,n){return new ah({check:"multiple_of",...q(n),value:e})}function hi(e,n){return new lh({check:"max_size",...q(n),maximum:e})}function zr(e,n){return new uh({check:"min_size",...q(n),minimum:e})}function oo(e,n){return new dh({check:"size_equals",...q(n),size:e})}function ao(e,n){return new mh({check:"max_length",...q(n),maximum:e})}function Gr(e,n){return new ph({check:"min_length",...q(n),minimum:e})}function so(e,n){return new fh({check:"length_equals",...q(n),length:e})}function Vo(e,n){return new gh({check:"string_format",format:"regex",...q(n),pattern:e})}function Bo(e){return new hh({check:"string_format",format:"lowercase",...q(e)})}function Mo(e){return new bh({check:"string_format",format:"uppercase",...q(e)})}function Zo(e,n){return new _h({check:"string_format",format:"includes",...q(n),includes:e})}function qo(e,n){return new vh({check:"string_format",format:"starts_with",...q(n),prefix:e})}function Ho(e,n){return new yh({check:"string_format",format:"ends_with",...q(n),suffix:e})}function kd(e,n,r){return new xh({check:"property",property:e,schema:n,...q(r)})}function Ko(e,n){return new Ih({check:"mime_type",mime:e,...q(n)})}function yr(e){return new Sh({check:"overwrite",tx:e})}function Go(e){return yr(n=>n.normalize(e))}function Jo(){return yr(e=>e.trim())}function Wo(){return yr(e=>e.toLowerCase())}function Xo(){return yr(e=>e.toUpperCase())}function Yo(){return yr(e=>vg(e))}function f_(e,n,r){return new e({type:"array",element:n,...q(r)})}function q2(e,n,r){return new e({type:"union",options:n,...q(r)})}function H2(e,n,r){return new e({type:"union",options:n,inclusive:false,...q(r)})}function K2(e,n,r,o){return new e({type:"union",options:r,discriminator:n,...q(o)})}function G2(e,n,r){return new e({type:"intersection",left:n,right:r})}function J2(e,n,r,o){let t=r instanceof _e,i=t?o:r,s=t?r:null;return new e({type:"tuple",items:n,rest:s,...q(i)})}function W2(e,n,r,o){return new e({type:"record",keyType:n,valueType:r,...q(o)})}function X2(e,n,r,o){return new e({type:"map",keyType:n,valueType:r,...q(o)})}function Y2(e,n,r){return new e({type:"set",valueType:n,...q(r)})}function Q2(e,n,r){let o=Array.isArray(n)?Object.fromEntries(n.map(t=>[t,t])):n;return new e({type:"enum",entries:o,...q(r)})}function eA(e,n,r){return new e({type:"enum",entries:n,...q(r)})}function tA(e,n,r){return new e({type:"literal",values:Array.isArray(n)?n:[n],...q(r)})}function g_(e,n){return new e({type:"file",...q(n)})}function nA(e,n){return new e({type:"transform",transform:n})}function rA(e,n){return new e({type:"optional",innerType:n})}function iA(e,n){return new e({type:"nullable",innerType:n})}function oA(e,n,r){return new e({type:"default",innerType:n,get defaultValue(){return typeof r=="function"?r():xg(r)}})}function aA(e,n,r){return new e({type:"nonoptional",innerType:n,...q(r)})}function sA(e,n){return new e({type:"success",innerType:n})}function cA(e,n,r){return new e({type:"catch",innerType:n,catchValue:typeof r=="function"?r:()=>r})}function lA(e,n,r){return new e({type:"pipe",in:n,out:r})}function uA(e,n){return new e({type:"readonly",innerType:n})}function dA(e,n,r){return new e({type:"template_literal",parts:n,...q(r)})}function mA(e,n){return new e({type:"lazy",getter:n})}function pA(e,n){return new e({type:"promise",innerType:n})}function h_(e,n,r){let o=q(r);return o.abort??(o.abort=true),new e({type:"custom",check:"custom",fn:n,...o})}function b_(e,n,r){return new e({type:"custom",check:"custom",fn:n,...q(r)})}function __(e,n){let r=xw(o=>(o.addIssue=t=>{if(typeof t=="string")o.issues.push(zo(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(zo(i));}},e(o.value,o)),n);return r}function xw(e,n){let r=new bt({check:"custom",...q(n)});return r._zod.check=e,r}function v_(e){let n=new bt({check:"describe"});return n._zod.onattach=[r=>{let o=fn.get(r)??{};fn.add(r,{...o,description:e});}],n._zod.check=()=>{},n}function y_(e){let n=new bt({check:"meta"});return n._zod.onattach=[r=>{let o=fn.get(r)??{};fn.add(r,{...o,...e});}],n._zod.check=()=>{},n}function x_(e,n){let r=q(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(f=>typeof f=="string"?f.toLowerCase():f),t=t.map(f=>typeof f=="string"?f.toLowerCase():f));let i=new Set(o),s=new Set(t),c=e.Codec??cc,u=e.Boolean??ac,d=e.String??io,m=new d({type:"string",error:r.error}),p=new u({type:"boolean",error:r.error}),g=new c({type:"pipe",in:m,out:p,transform:((f,v)=>{let $=f;return r.case!=="sensitive"&&($=$.toLowerCase()),i.has($)?true:s.has($)?false:(v.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...s],input:v.value,inst:g,continue:false}),{})}),reverseTransform:((f,v)=>f===true?o[0]||"true":t[0]||"false"),error:r.error});return g}function Qo(e,n,r,o={}){let t=q(o),i={...q(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 bi(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??fn,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 ot(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 g=s.schema,f=n.processors[t.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${t.type}`);f(e,n,g,m);}let p=e._zod.parent;p&&(s.ref||(s.ref=p),ot(p,n,m),n.seen.get(p).isParent=true);}let u=n.metadataRegistry.get(e);return u&&Object.assign(s.schema,u),n.io==="input"&&Rn(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 _i(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 u=o.get(c);if(u&&u!==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,g=e.external.uri??(v=>v);if(p)return {ref:g(p)};let f=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=f,{defId:f,ref:`${g("__shared")}#/${c}/${f}`}}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:u,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=u;};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 vi(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 u=e.seen.get(c);if(u.ref===null)return;let d=u.def??u.schema,m={...d},p=u.ref;if(u.ref=null,p){o(p);let f=e.seen.get(p),v=f.schema;if(v.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(v)):Object.assign(d,v),Object.assign(d,m),c._zod.parent===p)for(let S in d)S==="$ref"||S==="allOf"||S in m||delete d[S];if(v.$ref&&f.def)for(let S in d)S==="$ref"||S==="allOf"||S in f.def&&JSON.stringify(d[S])===JSON.stringify(f.def[S])&&delete d[S];}let g=c._zod.parent;if(g&&g!==p){o(g);let f=e.seen.get(g);if(f?.schema.$ref&&(d.$ref=f.schema.$ref,f.def))for(let v in d)v==="$ref"||v==="allOf"||v in f.def&&JSON.stringify(d[v])===JSON.stringify(f.def[v])&&delete d[v];}e.override({zodSchema:c,jsonSchema:d,path:u.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 u=c[1];u.def&&u.defId&&(u.def.id===u.defId&&delete u.def.id,s[u.defId]=u.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:ea(n,"input",e.processors),output:ea(n,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch{throw new Error("Error converting schema to JSON.")}}function Rn(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 Rn(o.element,r);if(o.type==="set")return Rn(o.valueType,r);if(o.type==="lazy")return Rn(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 Rn(o.innerType,r);if(o.type==="intersection")return Rn(o.left,r)||Rn(o.right,r);if(o.type==="record"||o.type==="map")return Rn(o.keyType,r)||Rn(o.valueType,r);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?true:Rn(o.in,r)||Rn(o.out,r);if(o.type==="object"){for(let t in o.shape)if(Rn(o.shape[t],r))return true;return false}if(o.type==="union"){for(let t of o.options)if(Rn(t,r))return true;return false}if(o.type==="tuple"){for(let t of o.items)if(Rn(t,r))return true;return !!(o.rest&&Rn(o.rest,r))}return false}var I_=(e,n={})=>r=>{let o=bi({...r,processors:n});return ot(e,o),_i(o,e),vi(o,e)},ea=(e,n,r={})=>o=>{let{libraryOptions:t,target:i}=o??{},s=bi({...t??{},target:i,io:n,processors:r});return ot(e,s),_i(s,e),vi(s,e)};var fA={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},S_=(e,n,r,o)=>{let t=r;t.type="string";let{minimum:i,maximum:s,format:c,patterns:u,contentEncoding:d}=e._zod.bag;if(typeof i=="number"&&(t.minLength=i),typeof s=="number"&&(t.maxLength=s),c&&(t.format=fA[c]??c,t.format===""&&delete t.format,c==="time"&&delete t.format),d&&(t.contentEncoding=d),u&&u.size>0){let m=[...u];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}))]);}},P_=(e,n,r,o)=>{let t=r,{minimum:i,maximum:s,format:c,multipleOf:u,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),g=typeof d=="number"&&d<=(s??Number.POSITIVE_INFINITY),f=n.target==="draft-04"||n.target==="openapi-3.0";p?f?(t.minimum=m,t.exclusiveMinimum=true):t.exclusiveMinimum=m:typeof i=="number"&&(t.minimum=i),g?f?(t.maximum=d,t.exclusiveMaximum=true):t.exclusiveMaximum=d:typeof s=="number"&&(t.maximum=s),typeof u=="number"&&(t.multipleOf=u);},k_=(e,n,r,o)=>{r.type="boolean";},$_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},T_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},w_=(e,n,r,o)=>{n.target==="openapi-3.0"?(r.type="string",r.nullable=true,r.enum=[null]):r.type="null";},E_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},R_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},C_=(e,n,r,o)=>{r.not={};},j_=(e,n,r,o)=>{},O_=(e,n,r,o)=>{},z_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},U_=(e,n,r,o)=>{let t=e._zod.def,i=Js(t.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i;},A_=(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;},D_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},F_=(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;},N_=(e,n,r,o)=>{let t=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:s,maximum:c,mime:u}=e._zod.bag;s!==void 0&&(i.minLength=s),c!==void 0&&(i.maxLength=c),u?u.length===1?(i.contentMediaType=u[0],Object.assign(t,i)):(Object.assign(t,i),t.anyOf=u.map(d=>({contentMediaType:d}))):Object.assign(t,i);},L_=(e,n,r,o)=>{r.type="boolean";},V_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},B_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},M_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Z_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},q_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},H_=(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=ot(i.element,n,{...o,path:[...o.path,"items"]});},K_=(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]=ot(s[d],n,{...o,path:[...o.path,"properties",d]});let c=new Set(Object.keys(s)),u=new Set([...c].filter(d=>{let m=i.shape[d]._zod;return n.io==="input"?m.optin===void 0:m.optout===void 0}));u.size>0&&(t.required=Array.from(u)),i.catchall?._zod.def.type==="never"?t.additionalProperties=false:i.catchall?i.catchall&&(t.additionalProperties=ot(i.catchall,n,{...o,path:[...o.path,"additionalProperties"]})):n.io==="output"&&(t.additionalProperties=false);},Td=(e,n,r,o)=>{let t=e._zod.def,i=t.inclusive===false,s=t.options.map((c,u)=>ot(c,n,{...o,path:[...o.path,i?"oneOf":"anyOf",u]}));i?r.oneOf=s:r.anyOf=s;},G_=(e,n,r,o)=>{let t=e._zod.def,i=ot(t.left,n,{...o,path:[...o.path,"allOf",0]}),s=ot(t.right,n,{...o,path:[...o.path,"allOf",1]}),c=d=>"allOf"in d&&Object.keys(d).length===1,u=[...c(i)?i.allOf:[i],...c(s)?s.allOf:[s]];r.allOf=u;},J_=(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",u=i.items.map((g,f)=>ot(g,n,{...o,path:[...o.path,s,f]})),d=i.rest?ot(i.rest,n,{...o,path:[...o.path,c,...n.target==="openapi-3.0"?[i.items.length]:[]]}):null;n.target==="draft-2020-12"?(t.prefixItems=u,d&&(t.items=d)):n.target==="openapi-3.0"?(t.items={anyOf:u},d&&t.items.anyOf.push(d),t.minItems=u.length,d||(t.maxItems=u.length)):(t.items=u,d&&(t.additionalItems=d));let{minimum:m,maximum:p}=e._zod.bag;typeof m=="number"&&(t.minItems=m),typeof p=="number"&&(t.maxItems=p);},W_=(e,n,r,o)=>{let t=r,i=e._zod.def;t.type="object";let s=i.keyType,u=s._zod.bag?.patterns;if(i.mode==="loose"&&u&&u.size>0){let m=ot(i.valueType,n,{...o,path:[...o.path,"patternProperties","*"]});t.patternProperties={};for(let p of u)t.patternProperties[p.source]=m;}else (n.target==="draft-07"||n.target==="draft-2020-12")&&(t.propertyNames=ot(i.keyType,n,{...o,path:[...o.path,"propertyNames"]})),t.additionalProperties=ot(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);}},X_=(e,n,r,o)=>{let t=e._zod.def,i=ot(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"}];},Y_=(e,n,r,o)=>{let t=e._zod.def;ot(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},Q_=(e,n,r,o)=>{let t=e._zod.def;ot(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.default=JSON.parse(JSON.stringify(t.defaultValue));},ev=(e,n,r,o)=>{let t=e._zod.def;ot(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)));},tv=(e,n,r,o)=>{let t=e._zod.def;ot(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;},nv=(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;ot(s,n,o);let c=n.seen.get(e);c.ref=s;},rv=(e,n,r,o)=>{let t=e._zod.def;ot(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.readOnly=true;},iv=(e,n,r,o)=>{let t=e._zod.def;ot(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},wd=(e,n,r,o)=>{let t=e._zod.def;ot(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},ov=(e,n,r,o)=>{let t=e._zod.innerType;ot(t,n,o);let i=n.seen.get(e);i.ref=t;},$d={string:S_,number:P_,boolean:k_,bigint:$_,symbol:T_,null:w_,undefined:E_,void:R_,never:C_,any:j_,unknown:O_,date:z_,enum:U_,literal:A_,nan:D_,template_literal:F_,file:N_,success:L_,custom:V_,function:B_,transform:M_,map:Z_,set:q_,array:H_,object:K_,union:Td,intersection:G_,tuple:J_,record:W_,nullable:X_,nonoptional:Y_,default:Q_,prefault:ev,catch:tv,pipe:nv,readonly:rv,promise:iv,optional:wd,lazy:ov};function Ed(e,n){if("_idmap"in e){let o=e,t=bi({...n,processors:$d}),i={};for(let u of o._idmap.entries()){let[d,m]=u;ot(m,t);}let s={},c={registry:o,uri:n?.uri,defs:i};t.external=c;for(let u of o._idmap.entries()){let[d,m]=u;_i(t,m),s[d]=vi(t,m);}if(Object.keys(i).length>0){let u=t.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[u]:i};}return {schemas:s}}let r=bi({...n,processors:$d});return ot(e,r),_i(r,e),vi(r,e)}var Rd=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=bi({processors:$d,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 ot(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)),_i(this.ctx,n);let o=vi(this.ctx,n),{"~standard":t,...i}=o;return i}};var Iw={};var pc={};un(pc,{ZodAny:()=>Ev,ZodArray:()=>Ov,ZodBase64:()=>Xd,ZodBase64URL:()=>Yd,ZodBigInt:()=>ca,ZodBigIntFormat:()=>tm,ZodBoolean:()=>sa,ZodCIDRv4:()=>Jd,ZodCIDRv6:()=>Wd,ZodCUID:()=>Bd,ZodCUID2:()=>Md,ZodCatch:()=>ty,ZodCodec:()=>kc,ZodCustom:()=>$c,ZodCustomStringFormat:()=>oa,ZodDate:()=>yc,ZodDefault:()=>Jv,ZodDiscriminatedUnion:()=>Uv,ZodE164:()=>Qd,ZodEmail:()=>Nd,ZodEmoji:()=>Ld,ZodEnum:()=>ra,ZodExactOptional:()=>Hv,ZodFile:()=>Zv,ZodFunction:()=>dy,ZodGUID:()=>gc,ZodIPv4:()=>Kd,ZodIPv6:()=>Gd,ZodIntersection:()=>Av,ZodJWT:()=>em,ZodKSUID:()=>Hd,ZodLazy:()=>cy,ZodLiteral:()=>Mv,ZodMAC:()=>Iv,ZodMap:()=>Vv,ZodNaN:()=>ry,ZodNanoID:()=>Vd,ZodNever:()=>Cv,ZodNonOptional:()=>sm,ZodNull:()=>Tv,ZodNullable:()=>Gv,ZodNumber:()=>aa,ZodNumberFormat:()=>lo,ZodObject:()=>Ic,ZodOptional:()=>am,ZodPipe:()=>Pc,ZodPrefault:()=>Xv,ZodPreprocess:()=>iy,ZodPromise:()=>uy,ZodReadonly:()=>oy,ZodRecord:()=>na,ZodSet:()=>Bv,ZodString:()=>ia,ZodStringFormat:()=>dt,ZodSuccess:()=>ey,ZodSymbol:()=>kv,ZodTemplateLiteral:()=>sy,ZodTransform:()=>qv,ZodTuple:()=>Fv,ZodType:()=>Se,ZodULID:()=>Zd,ZodURL:()=>vc,ZodUUID:()=>Ur,ZodUndefined:()=>$v,ZodUnion:()=>Sc,ZodUnknown:()=>Rv,ZodVoid:()=>jv,ZodXID:()=>qd,ZodXor:()=>zv,_ZodString:()=>Fd,_default:()=>Wv,_function:()=>CE,any:()=>cE,array:()=>xc,base64:()=>qw,base64url:()=>Hw,bigint:()=>rE,boolean:()=>Pv,catch:()=>ny,check:()=>jE,cidrv4:()=>Mw,cidrv6:()=>Zw,codec:()=>TE,cuid:()=>Uw,cuid2:()=>Aw,custom:()=>OE,date:()=>uE,describe:()=>zE,discriminatedUnion:()=>hE,e164:()=>Kw,email:()=>kw,emoji:()=>Ow,enum:()=>im,exactOptional:()=>Kv,file:()=>SE,float32:()=>Qw,float64:()=>eE,function:()=>CE,guid:()=>$w,hash:()=>Yw,hex:()=>Xw,hostname:()=>Ww,httpUrl:()=>jw,instanceof:()=>AE,int:()=>Ad,int32:()=>tE,int64:()=>iE,intersection:()=>Dv,invertCodec:()=>wE,ipv4:()=>Lw,ipv6:()=>Bw,json:()=>FE,jwt:()=>Gw,keyof:()=>dE,ksuid:()=>Nw,lazy:()=>ly,literal:()=>IE,looseObject:()=>fE,looseRecord:()=>_E,mac:()=>Vw,map:()=>vE,meta:()=>UE,nan:()=>$E,nanoid:()=>zw,nativeEnum:()=>xE,never:()=>nm,nonoptional:()=>Qv,null:()=>wv,nullable:()=>bc,nullish:()=>PE,number:()=>Sv,object:()=>mE,optional:()=>hc,partialRecord:()=>bE,pipe:()=>Dd,prefault:()=>Yv,preprocess:()=>NE,promise:()=>RE,readonly:()=>ay,record:()=>Lv,refine:()=>my,set:()=>yE,strictObject:()=>pE,string:()=>fc,stringFormat:()=>Jw,stringbool:()=>DE,success:()=>kE,superRefine:()=>py,symbol:()=>aE,templateLiteral:()=>EE,transform:()=>om,tuple:()=>Nv,uint32:()=>nE,uint64:()=>oE,ulid:()=>Dw,undefined:()=>sE,union:()=>rm,unknown:()=>co,url:()=>Cw,uuid:()=>Tw,uuidv4:()=>ww,uuidv6:()=>Ew,uuidv7:()=>Rw,void:()=>lE,xid:()=>Fw,xor:()=>gE});var Cd={};un(Cd,{endsWith:()=>Ho,gt:()=>Or,gte:()=>En,includes:()=>Zo,length:()=>so,lowercase:()=>Bo,lt:()=>jr,lte:()=>Xn,maxLength:()=>ao,maxSize:()=>hi,mime:()=>Ko,minLength:()=>Gr,minSize:()=>zr,multipleOf:()=>gi,negative:()=>Id,nonnegative:()=>Pd,nonpositive:()=>Sd,normalize:()=>Go,overwrite:()=>yr,positive:()=>xd,property:()=>kd,regex:()=>Vo,size:()=>oo,slugify:()=>Yo,startsWith:()=>qo,toLowerCase:()=>Wo,toUpperCase:()=>Xo,trim:()=>Jo,uppercase:()=>Mo});var ta={};un(ta,{ZodISODate:()=>Od,ZodISODateTime:()=>jd,ZodISODuration:()=>Ud,ZodISOTime:()=>zd,date:()=>sv,datetime:()=>av,duration:()=>lv,time:()=>cv});var jd=x("ZodISODateTime",(e,n)=>{Dh.init(e,n),dt.init(e,n);});function av(e){return Vb(jd,e)}var Od=x("ZodISODate",(e,n)=>{Fh.init(e,n),dt.init(e,n);});function sv(e){return Bb(Od,e)}var zd=x("ZodISOTime",(e,n)=>{Nh.init(e,n),dt.init(e,n);});function cv(e){return Mb(zd,e)}var Ud=x("ZodISODuration",(e,n)=>{Lh.init(e,n),dt.init(e,n);});function lv(e){return Zb(Ud,e)}var Sw=(e,n)=>{ec.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>nc(e,r)},flatten:{value:r=>tc(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,jo,2);}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,jo,2);}},isEmpty:{get(){return e.issues.length===0}}});},hA=x("ZodError",Sw),Bn=x("ZodError",Sw,{Parent:Error});var uv=Uo(Bn),dv=Ao(Bn),mv=Do(Bn),pv=Fo(Bn),fv=Eu(Bn),gv=Ru(Bn),hv=Cu(Bn),bv=ju(Bn),_v=Ou(Bn),vv=zu(Bn),yv=Uu(Bn),xv=Au(Bn);var Pw=new WeakMap;function _c(e,n,r){let o=Object.getPrototypeOf(e),t=Pw.get(o);if(t||(t=new Set,Pw.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 Se=x("ZodType",(e,n)=>(_e.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:ea(e,"input"),output:ea(e,"output")}}),e.toJSONSchema=I_(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.parse=(r,o)=>uv(e,r,o,{callee:e.parse}),e.safeParse=(r,o)=>mv(e,r,o),e.parseAsync=async(r,o)=>dv(e,r,o,{callee:e.parseAsync}),e.safeParseAsync=async(r,o)=>pv(e,r,o),e.spa=e.safeParseAsync,e.encode=(r,o)=>fv(e,r,o),e.decode=(r,o)=>gv(e,r,o),e.encodeAsync=async(r,o)=>hv(e,r,o),e.decodeAsync=async(r,o)=>bv(e,r,o),e.safeEncode=(r,o)=>_v(e,r,o),e.safeDecode=(r,o)=>vv(e,r,o),e.safeEncodeAsync=async(r,o)=>yv(e,r,o),e.safeDecodeAsync=async(r,o)=>xv(e,r,o),_c(e,"ZodType",{check(...r){let o=this.def;return this.clone(N.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 Tn(this,r,o)},brand(){return this},register(r,o){return r.add(this,o),this},refine(r,o){return this.check(my(r,o))},superRefine(r,o){return this.check(py(r,o))},overwrite(r){return this.check(yr(r))},optional(){return hc(this)},exactOptional(){return Kv(this)},nullable(){return bc(this)},nullish(){return hc(bc(this))},nonoptional(r){return Qv(this,r)},array(){return xc(this)},or(r){return rm([this,r])},and(r){return Dv(this,r)},transform(r){return Dd(this,om(r))},default(r){return Wv(this,r)},prefault(r){return Yv(this,r)},catch(r){return ny(this,r)},pipe(r){return Dd(this,r)},readonly(){return ay(this)},describe(r){let o=this.clone();return fn.add(o,{description:r}),o},meta(...r){if(r.length===0)return fn.get(this);let o=this.clone();return fn.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 fn.get(e)?.description},configurable:true}),e)),Fd=x("_ZodString",(e,n)=>{io.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(o,t,i)=>S_(e,o,t);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,_c(e,"_ZodString",{regex(...o){return this.check(Vo(...o))},includes(...o){return this.check(Zo(...o))},startsWith(...o){return this.check(qo(...o))},endsWith(...o){return this.check(Ho(...o))},min(...o){return this.check(Gr(...o))},max(...o){return this.check(ao(...o))},length(...o){return this.check(so(...o))},nonempty(...o){return this.check(Gr(1,...o))},lowercase(o){return this.check(Bo(o))},uppercase(o){return this.check(Mo(o))},trim(){return this.check(Jo())},normalize(...o){return this.check(Go(...o))},toLowerCase(){return this.check(Wo())},toUpperCase(){return this.check(Xo())},slugify(){return this.check(Yo())}});}),ia=x("ZodString",(e,n)=>{io.init(e,n),Fd.init(e,n),e.email=r=>e.check(td(Nd,r)),e.url=r=>e.check(mc(vc,r)),e.jwt=r=>e.check(yd(em,r)),e.emoji=r=>e.check(ad(Ld,r)),e.guid=r=>e.check(dc(gc,r)),e.uuid=r=>e.check(nd(Ur,r)),e.uuidv4=r=>e.check(rd(Ur,r)),e.uuidv6=r=>e.check(id(Ur,r)),e.uuidv7=r=>e.check(od(Ur,r)),e.nanoid=r=>e.check(sd(Vd,r)),e.guid=r=>e.check(dc(gc,r)),e.cuid=r=>e.check(cd(Bd,r)),e.cuid2=r=>e.check(ld(Md,r)),e.ulid=r=>e.check(ud(Zd,r)),e.base64=r=>e.check(bd(Xd,r)),e.base64url=r=>e.check(_d(Yd,r)),e.xid=r=>e.check(dd(qd,r)),e.ksuid=r=>e.check(md(Hd,r)),e.ipv4=r=>e.check(pd(Kd,r)),e.ipv6=r=>e.check(fd(Gd,r)),e.cidrv4=r=>e.check(gd(Jd,r)),e.cidrv6=r=>e.check(hd(Wd,r)),e.e164=r=>e.check(vd(Qd,r)),e.datetime=r=>e.check(av(r)),e.date=r=>e.check(sv(r)),e.time=r=>e.check(cv(r)),e.duration=r=>e.check(lv(r));});function fc(e){return Db(ia,e)}var dt=x("ZodStringFormat",(e,n)=>{ut.init(e,n),Fd.init(e,n);}),Nd=x("ZodEmail",(e,n)=>{wh.init(e,n),dt.init(e,n);});function kw(e){return td(Nd,e)}var gc=x("ZodGUID",(e,n)=>{$h.init(e,n),dt.init(e,n);});function $w(e){return dc(gc,e)}var Ur=x("ZodUUID",(e,n)=>{Th.init(e,n),dt.init(e,n);});function Tw(e){return nd(Ur,e)}function ww(e){return rd(Ur,e)}function Ew(e){return id(Ur,e)}function Rw(e){return od(Ur,e)}var vc=x("ZodURL",(e,n)=>{Eh.init(e,n),dt.init(e,n);});function Cw(e){return mc(vc,e)}function jw(e){return mc(vc,{protocol:Wn.httpProtocol,hostname:Wn.domain,...N.normalizeParams(e)})}var Ld=x("ZodEmoji",(e,n)=>{Rh.init(e,n),dt.init(e,n);});function Ow(e){return ad(Ld,e)}var Vd=x("ZodNanoID",(e,n)=>{Ch.init(e,n),dt.init(e,n);});function zw(e){return sd(Vd,e)}var Bd=x("ZodCUID",(e,n)=>{jh.init(e,n),dt.init(e,n);});function Uw(e){return cd(Bd,e)}var Md=x("ZodCUID2",(e,n)=>{Oh.init(e,n),dt.init(e,n);});function Aw(e){return ld(Md,e)}var Zd=x("ZodULID",(e,n)=>{zh.init(e,n),dt.init(e,n);});function Dw(e){return ud(Zd,e)}var qd=x("ZodXID",(e,n)=>{Uh.init(e,n),dt.init(e,n);});function Fw(e){return dd(qd,e)}var Hd=x("ZodKSUID",(e,n)=>{Ah.init(e,n),dt.init(e,n);});function Nw(e){return md(Hd,e)}var Kd=x("ZodIPv4",(e,n)=>{Vh.init(e,n),dt.init(e,n);});function Lw(e){return pd(Kd,e)}var Iv=x("ZodMAC",(e,n)=>{Mh.init(e,n),dt.init(e,n);});function Vw(e){return Nb(Iv,e)}var Gd=x("ZodIPv6",(e,n)=>{Bh.init(e,n),dt.init(e,n);});function Bw(e){return fd(Gd,e)}var Jd=x("ZodCIDRv4",(e,n)=>{Zh.init(e,n),dt.init(e,n);});function Mw(e){return gd(Jd,e)}var Wd=x("ZodCIDRv6",(e,n)=>{qh.init(e,n),dt.init(e,n);});function Zw(e){return hd(Wd,e)}var Xd=x("ZodBase64",(e,n)=>{Kh.init(e,n),dt.init(e,n);});function qw(e){return bd(Xd,e)}var Yd=x("ZodBase64URL",(e,n)=>{Gh.init(e,n),dt.init(e,n);});function Hw(e){return _d(Yd,e)}var Qd=x("ZodE164",(e,n)=>{Jh.init(e,n),dt.init(e,n);});function Kw(e){return vd(Qd,e)}var em=x("ZodJWT",(e,n)=>{Wh.init(e,n),dt.init(e,n);});function Gw(e){return yd(em,e)}var oa=x("ZodCustomStringFormat",(e,n)=>{Xh.init(e,n),dt.init(e,n);});function Jw(e,n,r={}){return Qo(oa,e,n,r)}function Ww(e){return Qo(oa,"hostname",Wn.hostname,e)}function Xw(e){return Qo(oa,"hex",Wn.hex,e)}function Yw(e,n){let r=n?.enc??"hex",o=`${e}_${r}`,t=Wn[o];if(!t)throw new Error(`Unrecognized hash format: ${o}`);return Qo(oa,o,t,n)}var aa=x("ZodNumber",(e,n)=>{qu.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(o,t,i)=>P_(e,o,t),_c(e,"ZodNumber",{gt(o,t){return this.check(Or(o,t))},gte(o,t){return this.check(En(o,t))},min(o,t){return this.check(En(o,t))},lt(o,t){return this.check(jr(o,t))},lte(o,t){return this.check(Xn(o,t))},max(o,t){return this.check(Xn(o,t))},int(o){return this.check(Ad(o))},safe(o){return this.check(Ad(o))},positive(o){return this.check(Or(0,o))},nonnegative(o){return this.check(En(0,o))},negative(o){return this.check(jr(0,o))},nonpositive(o){return this.check(Xn(0,o))},multipleOf(o,t){return this.check(gi(o,t))},step(o,t){return this.check(gi(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 Sv(e){return qb(aa,e)}var lo=x("ZodNumberFormat",(e,n)=>{Yh.init(e,n),aa.init(e,n);});function Ad(e){return Kb(lo,e)}function Qw(e){return Gb(lo,e)}function eE(e){return Jb(lo,e)}function tE(e){return Wb(lo,e)}function nE(e){return Xb(lo,e)}var sa=x("ZodBoolean",(e,n)=>{ac.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>k_(e,r,o);});function Pv(e){return Yb(sa,e)}var ca=x("ZodBigInt",(e,n)=>{Hu.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(o,t,i)=>$_(e,o),e.gte=(o,t)=>e.check(En(o,t)),e.min=(o,t)=>e.check(En(o,t)),e.gt=(o,t)=>e.check(Or(o,t)),e.gte=(o,t)=>e.check(En(o,t)),e.min=(o,t)=>e.check(En(o,t)),e.lt=(o,t)=>e.check(jr(o,t)),e.lte=(o,t)=>e.check(Xn(o,t)),e.max=(o,t)=>e.check(Xn(o,t)),e.positive=o=>e.check(Or(BigInt(0),o)),e.negative=o=>e.check(jr(BigInt(0),o)),e.nonpositive=o=>e.check(Xn(BigInt(0),o)),e.nonnegative=o=>e.check(En(BigInt(0),o)),e.multipleOf=(o,t)=>e.check(gi(o,t));let r=e._zod.bag;e.minValue=r.minimum??null,e.maxValue=r.maximum??null,e.format=r.format??null;});function rE(e){return e_(ca,e)}var tm=x("ZodBigIntFormat",(e,n)=>{Qh.init(e,n),ca.init(e,n);});function iE(e){return n_(tm,e)}function oE(e){return r_(tm,e)}var kv=x("ZodSymbol",(e,n)=>{eb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>T_(e,r);});function aE(e){return i_(kv,e)}var $v=x("ZodUndefined",(e,n)=>{tb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>E_(e,r);});function sE(e){return o_($v,e)}var Tv=x("ZodNull",(e,n)=>{nb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>w_(e,r,o);});function wv(e){return a_(Tv,e)}var Ev=x("ZodAny",(e,n)=>{rb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>j_();});function cE(){return s_(Ev)}var Rv=x("ZodUnknown",(e,n)=>{ib.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>O_();});function co(){return c_(Rv)}var Cv=x("ZodNever",(e,n)=>{ob.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>C_(e,r,o);});function nm(e){return l_(Cv,e)}var jv=x("ZodVoid",(e,n)=>{ab.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>R_(e,r);});function lE(e){return u_(jv,e)}var yc=x("ZodDate",(e,n)=>{sb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(o,t,i)=>z_(e,o),e.min=(o,t)=>e.check(En(o,t)),e.max=(o,t)=>e.check(Xn(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 uE(e){return d_(yc,e)}var Ov=x("ZodArray",(e,n)=>{cb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>H_(e,r,o,t),e.element=n.element,_c(e,"ZodArray",{min(r,o){return this.check(Gr(r,o))},nonempty(r){return this.check(Gr(1,r))},max(r,o){return this.check(ao(r,o))},length(r,o){return this.check(so(r,o))},unwrap(){return this.element}});});function xc(e,n){return f_(Ov,e,n)}function dE(e){let n=e._zod.def.shape;return im(Object.keys(n))}var Ic=x("ZodObject",(e,n)=>{lb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>K_(e,r,o,t),N.defineLazy(e,"shape",()=>n.shape),_c(e,"ZodObject",{keyof(){return im(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:co()})},loose(){return this.clone({...this._zod.def,catchall:co()})},strict(){return this.clone({...this._zod.def,catchall:nm()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return N.extend(this,r)},safeExtend(r){return N.safeExtend(this,r)},merge(r){return N.merge(this,r)},pick(r){return N.pick(this,r)},omit(r){return N.omit(this,r)},partial(...r){return N.partial(am,this,r[0])},required(...r){return N.required(sm,this,r[0])}});});function mE(e,n){let r={type:"object",shape:e??{},...N.normalizeParams(n)};return new Ic(r)}function pE(e,n){return new Ic({type:"object",shape:e,catchall:nm(),...N.normalizeParams(n)})}function fE(e,n){return new Ic({type:"object",shape:e,catchall:co(),...N.normalizeParams(n)})}var Sc=x("ZodUnion",(e,n)=>{sc.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Td(e,r,o,t),e.options=n.options;});function rm(e,n){return new Sc({type:"union",options:e,...N.normalizeParams(n)})}var zv=x("ZodXor",(e,n)=>{Sc.init(e,n),ub.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Td(e,r,o,t),e.options=n.options;});function gE(e,n){return new zv({type:"union",options:e,inclusive:false,...N.normalizeParams(n)})}var Uv=x("ZodDiscriminatedUnion",(e,n)=>{Sc.init(e,n),db.init(e,n);});function hE(e,n,r){return new Uv({type:"union",options:n,discriminator:e,...N.normalizeParams(r)})}var Av=x("ZodIntersection",(e,n)=>{mb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>G_(e,r,o,t);});function Dv(e,n){return new Av({type:"intersection",left:e,right:n})}var Fv=x("ZodTuple",(e,n)=>{Ku.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>J_(e,r,o,t),e.rest=r=>e.clone({...e._zod.def,rest:r});});function Nv(e,n,r){let o=n instanceof _e,t=o?r:n,i=o?n:null;return new Fv({type:"tuple",items:e,rest:i,...N.normalizeParams(t)})}var na=x("ZodRecord",(e,n)=>{pb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>W_(e,r,o,t),e.keyType=n.keyType,e.valueType=n.valueType;});function Lv(e,n,r){return !n||!n._zod?new na({type:"record",keyType:fc(),valueType:e,...N.normalizeParams(n)}):new na({type:"record",keyType:e,valueType:n,...N.normalizeParams(r)})}function bE(e,n,r){let o=Tn(e);return o._zod.values=void 0,new na({type:"record",keyType:o,valueType:n,...N.normalizeParams(r)})}function _E(e,n,r){return new na({type:"record",keyType:e,valueType:n,mode:"loose",...N.normalizeParams(r)})}var Vv=x("ZodMap",(e,n)=>{fb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Z_(e,r),e.keyType=n.keyType,e.valueType=n.valueType,e.min=(...r)=>e.check(zr(...r)),e.nonempty=r=>e.check(zr(1,r)),e.max=(...r)=>e.check(hi(...r)),e.size=(...r)=>e.check(oo(...r));});function vE(e,n,r){return new Vv({type:"map",keyType:e,valueType:n,...N.normalizeParams(r)})}var Bv=x("ZodSet",(e,n)=>{gb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>q_(e,r),e.min=(...r)=>e.check(zr(...r)),e.nonempty=r=>e.check(zr(1,r)),e.max=(...r)=>e.check(hi(...r)),e.size=(...r)=>e.check(oo(...r));});function yE(e,n){return new Bv({type:"set",valueType:e,...N.normalizeParams(n)})}var ra=x("ZodEnum",(e,n)=>{hb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(o,t,i)=>U_(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 ra({...n,checks:[],...N.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 ra({...n,checks:[],...N.normalizeParams(t),entries:i})};});function im(e,n){let r=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new ra({type:"enum",entries:r,...N.normalizeParams(n)})}function xE(e,n){return new ra({type:"enum",entries:e,...N.normalizeParams(n)})}var Mv=x("ZodLiteral",(e,n)=>{bb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>A_(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 IE(e,n){return new Mv({type:"literal",values:Array.isArray(e)?e:[e],...N.normalizeParams(n)})}var Zv=x("ZodFile",(e,n)=>{_b.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>N_(e,r,o),e.min=(r,o)=>e.check(zr(r,o)),e.max=(r,o)=>e.check(hi(r,o)),e.mime=(r,o)=>e.check(Ko(Array.isArray(r)?r:[r],o));});function SE(e){return g_(Zv,e)}var qv=x("ZodTransform",(e,n)=>{vb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>M_(e,r),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new ui(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(N.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(N.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 om(e){return new qv({type:"transform",transform:e})}var am=x("ZodOptional",(e,n)=>{Gu.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>wd(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function hc(e){return new am({type:"optional",innerType:e})}var Hv=x("ZodExactOptional",(e,n)=>{yb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>wd(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Kv(e){return new Hv({type:"optional",innerType:e})}var Gv=x("ZodNullable",(e,n)=>{xb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>X_(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function bc(e){return new Gv({type:"nullable",innerType:e})}function PE(e){return hc(bc(e))}var Jv=x("ZodDefault",(e,n)=>{Ib.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Q_(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap;});function Wv(e,n){return new Jv({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():N.shallowClone(n)}})}var Xv=x("ZodPrefault",(e,n)=>{Sb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ev(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Yv(e,n){return new Xv({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():N.shallowClone(n)}})}var sm=x("ZodNonOptional",(e,n)=>{Pb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Y_(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Qv(e,n){return new sm({type:"nonoptional",innerType:e,...N.normalizeParams(n)})}var ey=x("ZodSuccess",(e,n)=>{kb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>L_(e,r,o),e.unwrap=()=>e._zod.def.innerType;});function kE(e){return new ey({type:"success",innerType:e})}var ty=x("ZodCatch",(e,n)=>{$b.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>tv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap;});function ny(e,n){return new ty({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}var ry=x("ZodNaN",(e,n)=>{Tb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>D_(e,r);});function $E(e){return p_(ry,e)}var Pc=x("ZodPipe",(e,n)=>{Ju.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>nv(e,r,o,t),e.in=n.in,e.out=n.out;});function Dd(e,n){return new Pc({type:"pipe",in:e,out:n})}var kc=x("ZodCodec",(e,n)=>{Pc.init(e,n),cc.init(e,n);});function TE(e,n,r){return new kc({type:"pipe",in:e,out:n,transform:r.decode,reverseTransform:r.encode})}function wE(e){let n=e._zod.def;return new kc({type:"pipe",in:n.out,out:n.in,transform:n.reverseTransform,reverseTransform:n.transform})}var iy=x("ZodPreprocess",(e,n)=>{Pc.init(e,n),wb.init(e,n);}),oy=x("ZodReadonly",(e,n)=>{Eb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>rv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function ay(e){return new oy({type:"readonly",innerType:e})}var sy=x("ZodTemplateLiteral",(e,n)=>{Rb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>F_(e,r,o);});function EE(e,n){return new sy({type:"template_literal",parts:e,...N.normalizeParams(n)})}var cy=x("ZodLazy",(e,n)=>{Ob.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ov(e,r,o,t),e.unwrap=()=>e._zod.def.getter();});function ly(e){return new cy({type:"lazy",getter:e})}var uy=x("ZodPromise",(e,n)=>{jb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>iv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function RE(e){return new uy({type:"promise",innerType:e})}var dy=x("ZodFunction",(e,n)=>{Cb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>B_(e,r);});function CE(e){return new dy({type:"function",input:Array.isArray(e?.input)?Nv(e?.input):e?.input??xc(co()),output:e?.output??co()})}var $c=x("ZodCustom",(e,n)=>{zb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>V_(e,r);});function jE(e){let n=new bt({check:"custom"});return n._zod.check=e,n}function OE(e,n){return h_($c,e??(()=>true),n)}function my(e,n={}){return b_($c,e,n)}function py(e,n){return __(e,n)}var zE=v_,UE=y_;function AE(e,n={}){let r=new $c({type:"custom",check:"custom",fn:o=>o instanceof e,abort:true,...N.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 DE=(...e)=>x_({Codec:kc,Boolean:sa,String:ia},...e);function FE(e){let n=ly(()=>rm([fc(e),Sv(),Pv(),wv(),xc(n),Lv(fc(),n)]));return n}function NE(e,n){return new iy({type:"pipe",in:om(e),out:n})}var _A={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 vA(e){Ht({customError:e});}function yA(){return Ht().customError}var fy;fy||(fy={});var K={...pc,...Cd,iso:ta},xA=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 IA(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 SA(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 LE(e,n){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return K.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 K.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=SA(t,n),s=vn(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 K.null();if(t.length===0)return K.never();if(t.length===1)return K.literal(t[0]);if(t.every(s=>typeof s=="string"))return K.enum(t);let i=t.map(s=>K.literal(s));return i.length<2?i[0]:K.union([i[0],i[1],...i.slice(2)])}if(e.const!==void 0)return K.literal(e.const);let r=e.type;if(Array.isArray(r)){let t=r.map(i=>{let s={...e,type:i};return LE(s,n)});return t.length===0?K.never():t.length===1?t[0]:K.union(t)}if(!r)return K.any();let o;switch(r){case "string":{let t=K.string();if(e.format){let i=e.format;i==="email"?t=t.check(K.email()):i==="uri"||i==="uri-reference"?t=t.check(K.url()):i==="uuid"||i==="guid"?t=t.check(K.uuid()):i==="date-time"?t=t.check(K.iso.datetime()):i==="date"?t=t.check(K.iso.date()):i==="time"?t=t.check(K.iso.time()):i==="duration"?t=t.check(K.iso.duration()):i==="ipv4"?t=t.check(K.ipv4()):i==="ipv6"?t=t.check(K.ipv6()):i==="mac"?t=t.check(K.mac()):i==="cidr"?t=t.check(K.cidrv4()):i==="cidr-v6"?t=t.check(K.cidrv6()):i==="base64"?t=t.check(K.base64()):i==="base64url"?t=t.check(K.base64url()):i==="e164"?t=t.check(K.e164()):i==="jwt"?t=t.check(K.jwt()):i==="emoji"?t=t.check(K.emoji()):i==="nanoid"?t=t.check(K.nanoid()):i==="cuid"?t=t.check(K.cuid()):i==="cuid2"?t=t.check(K.cuid2()):i==="ulid"?t=t.check(K.ulid()):i==="xid"?t=t.check(K.xid()):i==="ksuid"&&(t=t.check(K.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"?K.number().int():K.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=K.boolean();break}case "null":{o=K.null();break}case "object":{let t={},i=e.properties||{},s=new Set(e.required||[]);for(let[u,d]of Object.entries(i)){let m=vn(d,n);t[u]=s.has(u)?m:m.optional();}if(e.propertyNames){let u=vn(e.propertyNames,n),d=e.additionalProperties&&typeof e.additionalProperties=="object"?vn(e.additionalProperties,n):K.any();if(Object.keys(t).length===0){o=K.record(u,d);break}let m=K.object(t).passthrough(),p=K.looseRecord(u,d);o=K.intersection(m,p);break}if(e.patternProperties){let u=e.patternProperties,d=Object.keys(u),m=[];for(let g of d){let f=vn(u[g],n),v=K.string().regex(new RegExp(g));m.push(K.looseRecord(v,f));}let p=[];if(Object.keys(t).length>0&&p.push(K.object(t).passthrough()),p.push(...m),p.length===0)o=K.object({}).passthrough();else if(p.length===1)o=p[0];else {let g=K.intersection(p[0],p[1]);for(let f=2;f<p.length;f++)g=K.intersection(g,p[f]);o=g;}break}let c=K.object(t);e.additionalProperties===false?o=c.strict():typeof e.additionalProperties=="object"?o=c.catchall(vn(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(u=>vn(u,n)),c=i&&typeof i=="object"&&!Array.isArray(i)?vn(i,n):void 0;c?o=K.tuple(s).rest(c):o=K.tuple(s),typeof e.minItems=="number"&&(o=o.check(K.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(K.maxLength(e.maxItems)));}else if(Array.isArray(i)){let s=i.map(u=>vn(u,n)),c=e.additionalItems&&typeof e.additionalItems=="object"?vn(e.additionalItems,n):void 0;c?o=K.tuple(s).rest(c):o=K.tuple(s),typeof e.minItems=="number"&&(o=o.check(K.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(K.maxLength(e.maxItems)));}else if(i!==void 0){let s=vn(i,n),c=K.array(s);typeof e.minItems=="number"&&(c=c.min(e.minItems)),typeof e.maxItems=="number"&&(c=c.max(e.maxItems)),o=c;}else o=K.array(K.any());break}default:throw new Error(`Unsupported type: ${r}`)}return o}function vn(e,n){if(typeof e=="boolean")return e?K.any():K.never();let r=LE(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=>vn(d,n)),u=K.union(c);r=o?K.intersection(r,u):u;}if(e.oneOf&&Array.isArray(e.oneOf)){let c=e.oneOf.map(d=>vn(d,n)),u=K.xor(c);r=o?K.intersection(r,u):u;}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)r=o?r:K.any();else {let c=o?r:vn(e.allOf[0],n),u=o?0:1;for(let d=u;d<e.allOf.length;d++)c=K.intersection(c,vn(e.allOf[d],n));r=c;}e.nullable===true&&n.version==="openapi-3.0"&&(r=K.nullable(r)),e.readOnly===true&&(r=K.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))xA.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 VE(e,n){if(typeof e=="boolean")return e?K.any():K.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=IA(r,n?.defaultTarget),t=r.$defs||r.definitions||{},i={version:o,defs:t,refs:new Map,processing:new Set,rootSchema:r,registry:n?.registry??fn};return vn(r,i)}var gy={};un(gy,{bigint:()=>TA,boolean:()=>$A,date:()=>wA,number:()=>kA,string:()=>PA});function PA(e){return Fb(ia,e)}function kA(e){return Hb(aa,e)}function $A(e){return Qb(sa,e)}function TA(e){return t_(ca,e)}function wA(e){return m_(yc,e)}Ht(Wu());var EA=/^[a-z0-9._]{1,100}$/,yi={Persisted:"persisted",Transient:"transient"},xi={Internal:"internal",External:"external"},Ii={Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}},RA="readOnly";function Mn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[RA]===true||(n[r]=o);}return a.object(n)}function yn(e){let n=Mn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(EA)}):n}var {Unrestricted:Cn}=Ii,{Transient:Zn,Persisted:CA}=yi,{Internal:uo,External:Si}=xi;a.object({page:a.coerce.number().int().min(1).default(1).meta(Cn),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(Cn)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si});var yt=a.object({created_at:a.string().datetime().meta({...Cn,readOnly:true}),updated_at:a.string().datetime().meta({...Cn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si}),mt=a.object({id:a.string().min(1).meta({...Cn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si}),xt=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...Cn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":uo});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si});var hy=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":Zn,"x-revturbine-schema-exposure":Si}),by=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si}),BE=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":uo});var Wr=a.string().min(1).max(200),Xt=a.string().min(1).max(100),cm=a.string().max(500).optional(),Yn=a.record(a.string(),a.unknown()).default({}),mo=a.number().int().min(10).max(100).multipleOf(10),lm=a.string().datetime().nullable().default(null),Kt=a.object({environment_id:a.string().min(1).default("production").meta({...Cn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":uo}),Yt=a.object({playbook_version_id:a.string().nullable().default(null).meta(Cn),is_current:a.boolean().default(true).meta({...Cn,readOnly:true}),is_deleted:a.boolean().default(false).meta({...Cn,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...Cn,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...Cn,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...Cn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":uo}),jA=mt.merge(yt).merge(xt).merge(Kt).extend({handle:Xt.meta({...Cn,readOnly:true}),active:a.boolean().default(true).meta({...Cn,readOnly:true})});function xn(e){return jA.meta({id:e,"x-revturbine-schema-persistence":CA,"x-revturbine-schema-exposure":uo})}a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":uo});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":Zn,"x-revturbine-schema-exposure":uo});var ME=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":Zn,"x-revturbine-schema-exposure":Si}),OA=new Set(hy.options);function Tc(e,n){if(!X(e))return null;let r=typeof e.output_id=="string"?e.output_id:"";if(!r)return null;let o=X(e.surface)?e.surface:{},t=OA.has(o.type)?o.type:"custom",i=X(e.cta_path)?e.cta_path:X(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:X(e.content)?e.content:{},...X(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 zA="__no_dim__";function HE(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)??zA,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 UA=999999;function AA(e){return e==null||e==="unlimited"||e===UA}function wc(e){return AA(e)?Number.POSITIVE_INFINITY:typeof e=="number"&&Number.isFinite(e)?e:void 0}function DA(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 KE(e,n,r){return e.map(o=>{let t=o.targets!=null&&o.targets.length>0?o.targets.some(s=>DA(s,n)):n.currentPlanId!=null&&o.planIds.includes(n.currentPlanId)||n.currentPlanHandle!=null&&o.planIds.includes(n.currentPlanHandle),i=HE(o.segmentIds,n.segmentIds,s=>r?.[s]);return {rule:o,matchesPlan:t,matchesSegment:i,matched:t&&i}})}function GE(e){let n=e.fields??{};switch(e.kind){case "usage_limit":return wc(n.limit_value)??0;case "credits":return wc(n.allowance_value!==void 0?n.allowance_value:n.allowance)??0;case "seat":return wc(n.included_count)??0;case "feature":return n.enabled===true?1:0;default:return 0}}function JE(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 FA(e){return JE(e,n=>GE(n.rule))?.rule}function _y(e,n,r){let o=e.entitlementRules[n];if(!o||o.length===0)return;let t=KE(o,r,e.segmentDimensions);return FA(t.filter(i=>i.matched))}function NA(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 LA(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 HE(NA(e),n,t=>o.get(t))}function ZE(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 Ec(e){let{handle:n,context:r,exportedConfig:o,currentPlanHandle:t,segmentIds:i,usageBalances:s,userUsage:c,trialGrantedEntitlementHandles:u,effectivePlanHandle:d}=e,p=(o.entitlements??[]).find(ce=>typeof ce?.unique_handle=="string"&&ce.unique_handle===n),g=typeof p?.unique_handle=="string"?p.unique_handle:n,f=typeof p?.unique_handle=="string"?p.unique_handle:void 0,v=!!(u&&u.size>0&&(u.has(n)||u.has(g)||f!==void 0&&u.has(f)));if(v&&(d===void 0||d===""))return {status:"allowed",allowed:true,reason:"granted_by_reverse_trial"};let S=String((v&&d?d:t)||"").toLowerCase(),E=(o.plans??[]).find(ce=>typeof ce.unique_handle=="string"&&ce.unique_handle.toLowerCase()===S),A=typeof E?.unique_handle=="string"?E.unique_handle:S||void 0,T=(o.entitlement_rules??[]).filter(ce=>{if((typeof ce.entitlement_id=="string"?ce.entitlement_id:typeof ce.entitlementId=="string"?ce.entitlementId:"")!==g)return false;let it=Array.isArray(ce.targets)?ce.targets.filter(be=>X(be)&&be.kind==="plan"&&typeof be.id=="string").map(be=>be.id):Array.isArray(ce.plan_ids)?ce.plan_ids.filter(be=>typeof be=="string"):Array.isArray(ce.planIds)?ce.planIds.filter(be=>typeof be=="string"):[];return !(A!==void 0&&!it.includes(A)||!LA(ce,i,o.segments??[]))});if(T.length===0)return {status:"denied",allowed:false,reason:"no_matching_entitlement_rule"};let ee=ce=>X(ce.type_fields)?ce.type_fields:X(ce.typeFields)?ce.typeFields:{},Ne=JE(T,ce=>{let vt=ee(ce);return GE({kind:typeof vt.kind=="string"?vt.kind:"",fields:vt})})??T[0],Le=ee(Ne);typeof Le.kind=="string"?Le.kind:void 0;let pe=ce=>{let vt=c?.[ce];if(X(vt)&&typeof vt.amount=="number")return vt.amount},et=r?.used??(Number.isFinite(s[n])?s[n]:void 0)??(Number.isFinite(s[g])?s[g]:void 0)??pe(n)??pe(g)??0;return um(Le,et)}function qE(e,n,r){return {...e,limit:n,used:r,remaining:Math.max(0,n-r)}}function WE(e){return e==="feature"||e==="usage_limit"||e==="limit"||e==="credits"||e==="capability_tier"}function um(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=wc(e.limit_value);return o!==void 0&&Number.isFinite(o)&&o>=0?qE(ZE(n>=o,e.enforcement,"usage_limit_reached"),o,n):{status:"allowed",allowed:true}}if(r==="credits"){let o=e.allowance===void 0?void 0:wc(e.allowance),t=Number(e.initial_grant),i=o!==void 0&&o>=0?o:Number.isFinite(t)&&t>=0?t:void 0;return i!==void 0&&Number.isFinite(i)?qE(ZE(n>=i,e.enforcement,"credit_balance_exhausted"),i,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 vy(e,n){if(!X(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=X(e.placement)?Tc(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 yy(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 VA=0;function BA(){return `core_${Date.now()}_${++VA}`}function XE(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}var xy=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=BA(),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:XE(`${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:XE("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=_y(n.rules,e,{currentPlanHandle:n.plan?.currentPlanHandle,billingPeriod:n.plan?.billingPeriod,segmentIds:n.segments?.segmentIds??[]});if(c){let u={kind:c.kind,...c.fields};if(WE(u.kind))return um(u,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 YE(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 Rc(e,n){return e.filter(r=>!r.predicates||r.predicates.length===0?false:r.predicates.every(o=>YE(o,n))).map(r=>r.handle)}function Iy(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=YE(e,n);return {field:r,operator:o,expected:t,actual:s,matched:c}}function dm(e){let n="";return e.forEach(r=>{n+=String.fromCharCode(r);}),btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function mm(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),dm(r)}async function Sy(e,n){let r=Ro(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 mm(o).slice(0,22)}function Py(e){return [e.slotId||"",e.surfaceType||"",e.entitlementHandle||"",e.planHandle||"",e.placementHandle||""].join("::")}function ky(e){let n=ci({placementId:e.placementId,userId:e.userId,contextMode:e.contextMode??"auto",overrides:e.overrides??{},traits:e.traits??{},route:Ro(e.route),...e.runtimeContextFingerprint?{runtimeContextFingerprint:e.runtimeContextFingerprint}:{}});return `${e.tenantId}:${e.placementId}:${e.userId}:${mm(n)}`}function eR(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=mg(o);if(i.length!==0)for(let s of e){if(s.output_id===o.output_id||s.surface.template!==t)continue;let c=dg(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=X(s.content)?s.content:{};return {output:s,order:ct(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 QE(e){let r=(X(e.content)?e.content:{}).__trigger_entitlement_handle;return typeof r=="string"&&r.length>0?r:null}function MA(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=QE(e),t=QE(n);if(o&&t)return {leftKey:o,rightKey:t}}return {leftKey:e.surface.type??"",rightKey:n.surface.type??""}}function pm(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=li(t.category),c=li(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:u,rightKey:d}=MA(t,i,s);u===d&&n.add(i.output_id);}}return e.filter(r=>!n.has(r.output_id))}function $y(e,n=false,r){let o=e;if(r?.fixedOnly&&(o=o.filter(u=>li(u.category)===1)),o.length===0)return null;let t=eR(o);if(t.length===0)return null;let i=t.some(u=>Ks(u)!==null),s=i?t:pm(t);return s.length===0?null:[...s].sort((u,d)=>{if(i){let $=Ks(u),S=Ks(d);if($!==null&&S!==null&&$!==S)return $-S;if($!==null&&S===null)return -1;if($===null&&S!==null)return 1}let m=li(u.category),p=li(d.category),g=m-p;if(g!==0)return g;if(m===2){let $=ug(u)-ug(d);if($!==0)return $;let S=lg(d)-lg(u);if(S!==0)return S}let f=Hs(d)-Hs(u);if(f!==0)return f;let v=Pu(d)-Pu(u);return v!==0?v:u.output_id.localeCompare(d.output_id)})[0]??null}function ZA(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function Ty(e,n,r,o){let t=X(o)?o:{},i=X(t.decision)?t.decision:{},s=X(t.content)?t.content:X(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(u=>typeof u=="string"):[],content:ZA(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 fm(e){let n=[],r=[e,e.content,X(e.content)?e.content.payload:void 0,X(e.content)?e.content.placement:void 0,X(e.content)?e.content.surface:void 0];for(let o of r){if(!X(o))continue;let t=X(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=ng(t.max_per_period);s&&i.push(s);let c=Number(t.cooldown_days),u=Number.isFinite(c)&&c>0?c*24*60*60*1e3:void 0;n.push({rules:i,...u!==void 0?{cooldownMs:u}:{}});}return n}function wy(e,n,r,o,t="impression"){if(li(e.category)<=1)return {allowed:true};let i=fm(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 g=rg(p.period,o),f=s.seenAt.filter(v=>v>=g&&v<=o);if(f.length>=p.count)return {allowed:false,reason:`suppressed_by_payload_cap_${p.period}`,updatedState:{...s,seenAt:f}}}let c=[...s.seenAt,o],u=t==="dismiss"?i.map(m=>m.cooldownMs).filter(m=>typeof m=="number"&&Number.isFinite(m)&&m>0):[],d=u.length>0?o+Math.max(...u):void 0;return {allowed:true,updatedState:{seenAt:c,...d!==void 0?{cooldownUntil:d}:{}}}}function la(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 Cc(e){return e.replace(/_(minutes|minute|credits|credit|seats|seat)$/i,"").replace(/_usage$/i,"").trim()}function qA(e,n){let r=la(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 la(s)}}function HA(e){let n=la(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 tR(e){let n={},r=e.providers;if(e.userId&&(n.user_id=e.userId),e.base)for(let[f,v]of Object.entries(e.base))(typeof v=="string"||typeof v=="number")&&(n[f]=v);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[f,v]of Object.entries(c))(typeof v=="string"||typeof v=="number")&&(n[f]=v);let u=r?.entitlements?.usage??{};for(let[f,v]of Object.entries(u)){let $=Cc(f);if(!$)continue;let S=la(v.used),R=la(v.remaining),E=la(v.limit);if(S!==void 0&&(n[`${$}_usage_current`]=S,n.usage_current===void 0&&(n.usage_current=S),n.current_usage===void 0&&(n.current_usage=S)),E!==void 0&&(n[`${$}_usage_limit`]=E,n.usage_limit===void 0&&(n.usage_limit=E),n.current_limit===void 0&&(n.current_limit=E)),R!==void 0)n[`${$}_usage_remaining`]=R,n.usage_remaining===void 0&&(n.usage_remaining=R);else if(S!==void 0&&E!==void 0){let w=Math.max(0,E-S);n[`${$}_usage_remaining`]=w,n.usage_remaining===void 0&&(n.usage_remaining=w);}if(S!==void 0&&E!==void 0&&E>0){let w=Math.min(100,Math.round(S/E*100));n[`${$}_usage_percent`]=w,n.usage_percent===void 0&&(n.usage_percent=w);}let A=v.reset_date;typeof A=="string"&&A.length>0&&(n[`${$}_reset_date`]=A,n.reset_date===void 0&&(n.reset_date=A));}let d=r?.rules?.entitlementRules??{};for(let[f,v]of Object.entries(d)){if(!Array.isArray(v)||v.length===0)continue;let $=v.find(w=>w.kind==="usage_limit"||w.kind==="usage_rate"||w.kind==="credits"||w.kind==="seat");if(!$)continue;let S=Cc(f);if(!S)continue;let R=$.fields??{},E=qA(R,o);E!==void 0&&n[`${S}_usage_limit`]===void 0&&(n[`${S}_usage_limit`]=E);let A=HA(R);A!==void 0&&(n[`${S}_usage_warning_threshold_percent`]=A);}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[f,v]of Object.entries(p)){if(v.allocation==="per_user"||v.allocation==="per_user_pooled"||!v.allocation){let $=Cc(f);if(!$)continue;v.used!==void 0&&n[`${$}_usage_current`]===void 0&&(n[`${$}_usage_current`]=v.used),v.limit!==void 0&&n[`${$}_usage_limit`]===void 0&&(n[`${$}_usage_limit`]=v.limit);}if(v.enforcement&&(v.status==="limited"||v.status==="denied")){let $=Cc(f);$&&n[`${$}_enforcement`]===void 0&&(n[`${$}_enforcement`]=v.enforcement),n.enforcement_mode===void 0&&(n.enforcement_mode=v.enforcement);}}let g=r?.rules?.entitlementRules??{};for(let[f,v]of Object.entries(g)){if(!Array.isArray(v))continue;let $=Cc(f);if($)for(let S of v){if(S.kind==="credits"){let R=n[`${$}_usage_remaining`];R!==void 0&&n.credits_remaining===void 0&&(n.credits_remaining=R);}if(S.kind==="seat"){let R=n[`${$}_usage_current`],E=n[`${$}_usage_limit`];R!==void 0&&n.seat_count===void 0&&(n.seat_count=R),E!==void 0&&n.seat_limit===void 0&&(n.seat_limit=E);}}}if(e.featureInteractions&&p){let{invokedFeatureHandles:f,interactionCounts:v,topFeaturesByEngagement:$}=e.featureInteractions,S=new Set(f),R=new Set;for(let[w,T]of Object.entries(p))(T.status==="denied"||T.status==="limited")&&R.add(w);let E=0,A=0;for(let w of f)R.has(w)&&(E++,v&&(A+=v[w]??0));if(n.gated_features_used_count=E,v&&(n.gated_action_count=A),$){let w=$.find(T=>!S.has(T)&&R.has(T));w&&(n.top_unused_gated_feature=w);}if(r?.plan?.trialActive){let w=0;for(let T of f)T in p&&w++;n.trial_features_used=w;}}return n}function Ey(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 gm(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 hm(e,n,r){let o=eo(n,e.plan),t=o??(typeof e.plan=="object"&&e.plan?.id?e.plan.id:void 0),i={...e.custom??{}};for(let[c,u]of Object.entries(e.entitlements??{}))i[c]===void 0&&(i[c]=u);o&&i.plan_name===void 0&&(i.plan_name=o),t&&i.plan===void 0&&(i.plan=t);let s={...Hr(e.usage),...r??{}};for(let[c,u]of Object.entries(s))i[c]===void 0&&(i[c]=u);return {effectivePlan:t,traits:i,usage:s,segmentTraits:gm(i,t,s)}}function Ry(e){let{context:n,exportedConfig:r,usageBalances:o,usageTokenPrefixByEntitlement:t,usageThresholdLookup:i}=e,s={};for(let[R,E]of Object.entries(n.personalization??{}))/^(usage_(current|limit|remaining|percent)|.+_usage_(current|limit|remaining|percent)|plan_name|user_id)$/i.test(R)||(s[R]=E);let c={...s},u=eo(r,n.plan);u?c.plan_name=u:typeof n.plan=="object"&&n.plan?.name&&(c.plan_name=n.plan.name);let d={...Hr(n.usage),...o},m=Object.entries(d).filter(([,R])=>Number.isFinite(R)).sort(([R],[E])=>R.localeCompare(E)),p,g,f,v,$=[];for(let[R,E]of m){let A=t.get(R)??Co(R);if(!A)continue;let T=i(R)?.limit,ee=T!==void 0?Math.max(0,T-E):void 0,Ne=T!==void 0&&T>0?Math.min(100,Math.round(E/T*100)):void 0;c[`${A}_usage_current`]=E,T!==void 0&&(c[`${A}_usage_limit`]=T),ee!==void 0&&(c[`${A}_usage_remaining`]=ee),Ne!==void 0&&(c[`${A}_usage_percent`]=Ne),$.push({prefix:A,current:E,...T!==void 0?{limit:T}:{},...ee!==void 0?{remaining:ee}:{},...Ne!==void 0?{percent:Ne}:{}}),p===void 0&&(p=E,g=T,f=ee,v=Ne);}let S=$.find(R=>R.prefix==="core")??$.find(R=>R.limit!==void 0)??$[0];return S&&(p=S.current,g=S.limit,f=S.remaining,v=S.percent),p!==void 0&&(c.usage_current=p),g!==void 0&&(c.usage_limit=g),f!==void 0&&(c.usage_remaining=f),v!==void 0&&(c.usage_percent=v),c}function Cy(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 u=s/c.limit*100,d=i/c.limit*100;d>=c.warningPercent&&u<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 jy(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 Oy(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 nR={Named:"named",Minted:"minted"},rR="x-revturbine-schema-identity";function xr(e="handle"){return {[rR]:{kind:nR.Named,handleField:e}}}function cr(e="handle"){return {[rR]:{kind:nR.Minted,handleField:e}}}var tt={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},sr={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},JA="x-revturbine-context",WA="x-revturbine-in-config",XA="x-revturbine-sdk-input",YA="x-revturbine-source",QA="x-revturbine-deprecation",eD={[tt.Playbook]:sr.Customer,[tt.Branding]:sr.Customer,[tt.Billing]:sr.Stripe,[tt.Metering]:sr.Customer,[tt.CustomerOperations]:sr.Runtime,[tt.EventIngestion]:sr.Runtime};function Rt(e,n){return {[JA]:e,[WA]:n.inConfig??e===tt.Playbook,[XA]:n.sdkInput,[YA]:n.source??eD[e]}}function jc(e){return {deprecated:true,[QA]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var Ze=e=>a.object({items:a.array(e)}),Dt=a.object({error:a.string(),code:a.string(),request_id:a.string()}),j=e=>e,qe=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 bm=new Int32Array(2);new Float32Array(bm.buffer);new Float64Array(bm.buffer);new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var _m;(function(e){e[e.UTF8_BYTES=1]="UTF8_BYTES",e[e.UTF16_STRING=2]="UTF16_STRING";})(_m||(_m={}));var nD=4294967295;var rD=nD;function Uy(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 zy(e,n){if(!e)return true;if(!n)return false;switch(e.kind){case "trial_started":{if(n.trialActive!==true)return false;let r=Uy(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 gR(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,u=t.trialTrigger.kind==="trial_progress"?t.trialTrigger.progressPercent:-1;(c>u||c===u&&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 hR(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 bR(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 zc(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 Uc(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 Ay(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 Dy(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=Ay(t,n):r[o]=t;return r}function _R(e,n){return Dy(e,n)}function Fy(e,n,r,o,t,i,s){let c=r.filter(g=>g.surface_template_id===e&&g.status==="active");if(c.length===0)return null;let u=new Map(o.map(g=>[g.block_id,g])),d=new Set(n.segmentIds),m=Uc(i,t),p=s?.segmentDimensions;for(let g of c){let f=g.default_message_block_id,v,$=g.ui_path_id,S=g.promotion_id;if(g.segment_content_map){if(p&&Object.keys(p).length>0){let w=new Map;for(let T of g.segment_content_map){let ee=T.dimension;if(!ee)continue;let Ne=w.get(ee)??[];Ne.push(T),w.set(ee,Ne);}if(w.size>0){let T=true,ee;for(let[,Ne]of w){let Le=Ne.find(ae=>d.has(ae.segment_id));if(!Le){T=false;break}ee||(ee=Le);}if(T&&ee)f=ee.message_block_id,v=ee.segment_id,ee.ui_path_id&&($=ee.ui_path_id),ee.promotion_id&&(S=ee.promotion_id);else if(!T)continue}else for(let T of g.segment_content_map)if(d.has(T.segment_id)){f=T.message_block_id,v=T.segment_id,T.ui_path_id&&($=T.ui_path_id),T.promotion_id&&(S=T.promotion_id);break}}else for(let w of g.segment_content_map)if(d.has(w.segment_id)){f=w.message_block_id,v=w.segment_id,w.ui_path_id&&($=w.ui_path_id),w.promotion_id&&(S=w.promotion_id);break}}let R=u.get(f);if(!R||R.status!=="active")continue;let E={...R.default_content};if(R.segment_overrides){let w=v?R.segment_overrides.find(T=>T.segment_value_id===v):R.segment_overrides.find(T=>d.has(T.segment_value_id));w&&(E={...E,...w.content},v=w.segment_value_id);}let A=_R(E,m);return {payload:g,messageBlock:R,resolvedContent:A,matchedSegmentId:v,uiPathId:$,promotionId:S}}return null}async function ym(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),u=t??(r.listPersonalizationTokens?await Promise.resolve(r.listPersonalizationTokens()):[]),d=Uc(o,u);for(let m of s){let p=m.default_message_block_id,g,f=m.ui_path_id,v=m.promotion_id;if(m.segment_content_map){for(let w of m.segment_content_map)if(c.has(w.segment_id)){p=w.message_block_id,g=w.segment_id,w.ui_path_id&&(f=w.ui_path_id),w.promotion_id&&(v=w.promotion_id);break}}let $=await Promise.resolve(r.getMessageBlockById(p));if(!$||$.status!=="active")continue;let S={...$.default_content};if($.segment_overrides){let w=g?$.segment_overrides.find(T=>T.segment_value_id===g):$.segment_overrides.find(T=>c.has(T.segment_value_id));w&&(S={...S,...w.content},g=w.segment_value_id);}let R=_R(S,d),E;f&&r.getUiPathById&&(E=await Promise.resolve(r.getUiPathById(f)));let A;return v&&r.getPromotionById&&(A=await Promise.resolve(r.getPromotionById(v))),{payload:m,messageBlock:$,resolvedContent:R,matchedSegmentId:g,uiPathId:f,promotionId:v,uiPath:E??void 0,promotion:A??void 0}}return null}function iD(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 oD(e,n){let r=iD(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 aD(e,n){if(!n)return null;let r=oD(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 uR(e,n){if(!e)return true;let r=aD(e,n);return r===null?false:r>=e.thresholdPercent}var{Unrestricted:ne}=Ii,{Persisted:Ac,Transient:Pi}=yi,{External:lr,Internal:sD}=xi,vR=Rt(tt.Playbook,{sdkInput:true}),cD=Rt(tt.Playbook,{inConfig:false,sdkInput:false}),lD=Rt(tt.Playbook,{inConfig:false,sdkInput:true}),uD=Rt(tt.Playbook,{inConfig:false,sdkInput:false,source:sr.Runtime}),dD=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]),mD={other_conversion:["none_always_on","overage_vs_upgrade","time_bound"],retention:["payment_failed","payment_at_risk"]};function pD(e){return mD[e]??[]}function fD(e,n){return pD(n).includes(e)}var yR=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),xR=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),gD=a.object({count:a.number().int().positive().meta(ne),period:xR.meta(ne)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr});a.object({surface_type:a.string().min(1).meta(ne),rules:a.array(gD).meta(ne),cooldown_ms:a.number().int().nonnegative().optional().meta(ne)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":Ac,"x-revturbine-schema-exposure":lr,"x-revturbine-data-classification":"operational",...lD});var hD=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":Pi,"x-revturbine-schema-exposure":lr}),ua=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ne,readOnly:true}),name:Wr.meta(ne),handle:Xt.meta(ne),description:cm.meta(ne),category:yR.meta(ne),drag_order_in_category:a.number().int().default(0).meta(ne),surface_slot_id:a.string().optional().meta(ne),entitlement_id:a.string().optional().meta(ne),tier_threshold:a.string().optional().meta(ne),threshold_percent:mo.optional().meta(ne),trial_type:a.enum(["free","reverse"]).optional().meta(ne),trigger_type:a.string().optional().meta(ne),trial_progress_percent:a.number().min(0).max(100).optional().meta(ne),days_before_end:a.number().int().min(0).optional().meta(ne),qualifier:dD.optional().meta(ne),activation_window_start:a.string().datetime().optional().meta(ne),activation_window_end:a.string().datetime().optional().meta(ne),metadata:Yn.meta(ne)}).meta({id:"Placement","x-revturbine-schema-persistence":Ac,"x-revturbine-schema-exposure":lr,...vR,...xr()}),bD=xn("PlacementAnchor"),_D=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),vD=a.object({code:_D.meta(ne),message:a.string().min(1).meta(ne),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(ne)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),dR=ua.extend({warnings:a.array(vD).optional().meta(ne)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),yD=a.object({label:a.string().min(1).max(200).meta(ne),cta_path_type:hD.meta(ne),config_fields:a.record(a.string(),a.unknown()).default({}).meta(ne)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),Oc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ne,readOnly:true}),handle:Xt.meta({...ne,readOnly:true}),placement_id:a.string().min(1).meta(ne),drag_order:a.number().int().default(0).meta(ne),target_plan_ids:a.array(a.string()).default([]).meta(ne),target_plan_billing_cadences:a.array(a.string()).default([]).meta(ne),target_segments:a.array(a.string()).default([]).meta(ne),surface_slot_ids:a.array(a.string()).default([]).meta(ne),surface_template_id:a.string().min(1).meta(ne),content_fields:a.record(a.string(),a.unknown()).default({}).meta(ne),cta_list:a.array(yD).default([]).meta(ne),max_per_period:a.number().int().min(0).nullable().default(null).meta(ne),max_period_unit:xR.default("session").meta(ne),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(ne),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(ne),recommendation_plan_override:a.string().optional().meta(ne)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":Ac,"x-revturbine-schema-exposure":lr,...vR,...cr()}),xD=xn("PlacementPayloadAnchor");mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...ne,readOnly:true}),placement_payload_id:a.string().min(1).meta(ne),experiment_id:a.string().min(1).meta(ne),variant_name:a.string().min(1).max(200).meta(ne),is_control:a.boolean().default(false).meta(ne),traffic_allocation_percent:a.number().min(0).max(100).meta(ne),override_fields:a.record(a.string(),a.unknown()).default({}).meta(ne),status:a.enum(["active","paused","complete"]).default("active").meta(ne)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":Ac,"x-revturbine-schema-exposure":sD,...cD,...cr()});var ID=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({surface_slot_handle:a.string().min(1).max(200).meta(ne),surface_type:hy.meta(ne),surface_template_ids:a.array(a.string()).default([]).meta(ne),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(ne),first_seen:a.string().datetime().meta({...ne,readOnly:true}),last_seen:a.string().datetime().meta({...ne,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(ne),placement_count:a.number().int().min(0).default(0).meta({...ne,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":Ac,"x-revturbine-schema-exposure":lr,...uD,...xr("surface_slot_handle")}),SD=Mn(ua),PD=Mn(Oc);({"/api/placement-anchors":{get:j({operationId:"listPlacementAnchors",requestParams:{query:qe},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:Ze(bD)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:j({operationId:"listPlacements",requestParams:{query:qe},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:Ze(ua)}}}},"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:yn(ua)}}},responses:{201:{description:"Created",content:{"application/json":{schema:dR}}}},"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:ua}}}},"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:SD}}},responses:{200:{description:"Updated",content:{"application/json":{schema:dR}}}},"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:Dt}}}},"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:ua}}}},"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:yR,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:qe},summary:"List placement payload anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement payload anchor list",content:{"application/json":{schema:Ze(xD)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List placement payloads",tags:["placements"],responses:{200:{description:"Payload list",content:{"application/json":{schema:Ze(Oc)}}}},"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:yn(Oc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Oc}}}},"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:PD}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Oc}}}},"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:qe},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:Ze(ID)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});function mR(e,n,r){if(!e)return true;if(!fD(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 pR(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 IR={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 kD(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 $D(e){let n={};for(let[r,o]of Object.entries(e)){if(typeof o=="string"){n[r]=kD(o,e);continue}n[r]=o;}return n}function SR(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 PR(e,n){if(e==="qualifier"&&!(typeof n!="string"||n.length===0))return {kind:"qualifier",qualifier:n}}function TD(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 PR(n,r)}function wD(e){if(e)return PR(e.kind,e.qualifier)}function kR(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 ED(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 kR(r,n,o)}function RD(e,n){if(e)return kR(e.kind,n,e.thresholdPercent)}function $R(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 CD(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 $R(r,n,o)}function jD(e,n){if(e)return $R(e.kind,n,e.tierThreshold)}function OD(e){if(!e||typeof e!="object"||!("entitlement_handle"in e))return;let n=e.entitlement_handle;return typeof n=="string"?n:void 0}function zD(e){if(!e||typeof e!="object"||!("slot_id"in e))return;let n=e.slot_id;return typeof n=="string"?n:void 0}function UD(e,n){let r={...IR};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(u=>u.handle));let i=new Map,s=new Map;for(let c of n.placements){let u=c.payloads[0];if(!u)continue;let d=u.surfaces[0];if(!d)continue;let m=d.template_id,p=r[m]??"custom",g={...d.fields};d.ctas?.[0]&&(g.cta_label=d.ctas[0].label),d.ctas?.[1]&&(g.secondary_cta_label=d.ctas[1].label);let f=SR(d.ctas?.[0]),v=Array.isArray(u.target?.plan_ids)?u.target.plan_ids:[],$=OD(c.trigger),S=zD(c.trigger),R=bR(c.trigger),E=ED(c.trigger,$),A=TD(c.trigger),w=CD(c.trigger,$),T={output_id:u.id,category:c.category,surface:{template:m,type:p,slot_id:c.id},content:{...g,__target_plan_ids:v,...$?{__trigger_entitlement_handle:$}:{},...R?{__trigger_kind:R.kind}:{}},cta_path:f,rule_id:c.id,decision_id:u.id,config_version:e.version,present_upsell:true},ee=i.get(m)??[];ee.push({output:T,entryOrder:c.order??0,entryCategory:c.category,triggerEntitlementHandle:$,triggerSlotId:S,trialTrigger:R,thresholdTrigger:E,qualifierTrigger:A,entitlementGateTrigger:w}),i.set(m,ee);let Ne=c.id.replace(/^pl_/,"");s.set(Ne,T),s.set(c.id,T);}for(let c of i.values())c.sort((u,d)=>u.entryOrder-d.entryOrder);return {outputsByTemplate:i,outputsByName:s,planHandleToId:o,tierLaddersByHandle:t}}function AD(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 DD(e,n){return n.trigger.kind!=="surface_render"?void 0:e.getSlot(n.trigger.slotIdx)?.sourceId}function FD(e){let n={...IR};for(let c=0;c<e.surfaceTemplatesLength();c++){let u=e.getSurfaceTemplate(c);u&&(n[u.sourceId]=u.surfaceType);}let r=new Map;for(let c=0;c<e.plansLength();c++){let u=e.getPlan(c);u&&r.set(u.uniqueHandle,u.sourceId);}let o=new Map;for(let c=0;c<e.entitlementsLength();c++){let u=e.getEntitlement(c);u&&u.tierHandles.length>0&&o.set(u.uniqueHandle,u.tierHandles);}let t=new Map,i=new Map,s=e.header().configVersion;for(let c=0;c<e.placementsLength();c++){let u=e.getPlacement(c);if(!u)continue;let d=u.payloads[0];if(!d)continue;let m=d.surfaces[0];if(!m)continue;let p=m.templateSourceId,g=n[p]??"custom",f={...m.fields};m.ctas[0]&&(f.cta_label=m.ctas[0].label),m.ctas[1]&&(f.secondary_cta_label=m.ctas[1].label);let v=SR(m.ctas[0]),$=[];for(let ae of d.target.planIdxs){let pe=e.getPlan(ae);pe&&$.push(pe.sourceId);}let S=AD(e,u),R=DD(e,u),E=hR(u.trigger),A=RD(u.trigger,S),w=wD(u.trigger),T=jD(u.trigger,S),ee={output_id:d.sourceId,category:u.category,surface:{template:p,type:g,slot_id:u.sourceId},content:{...f,__target_plan_ids:$,...S?{__trigger_entitlement_handle:S}:{},...E?{__trigger_kind:E.kind}:{}},cta_path:v,rule_id:u.sourceId,decision_id:d.sourceId,config_version:s,present_upsell:true},Ne=t.get(p)??[];Ne.push({output:ee,entryOrder:u.order,entryCategory:u.category,triggerEntitlementHandle:S,triggerSlotId:R,trialTrigger:E,thresholdTrigger:A,qualifierTrigger:w,entitlementGateTrigger:T}),t.set(p,Ne);let Le=u.sourceId.replace(/^pl_/,"");i.set(Le,ee),i.set(u.sourceId,ee);}for(let c of t.values())c.sort((u,d)=>u.entryOrder-d.entryOrder);return {outputsByTemplate:t,outputsByName:i,planHandleToId:r,tierLaddersByHandle:o}}function ND(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 u=t.get(s.placement_id);u&&i.push({payload_id:s.payload_id,tenant_id:"",name:s.payload_id,surface_template_id:u,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 zc({payloads:i,messageBlocks:r,uiPaths:e.content_ui_paths,promotions:e.content_promotions,tokens:e.personalization_tokens})}function LD(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 u=e.getPlacement(c);if(!u)continue;let d=u.payloads[0]?.surfaces?.[0]?.templateSourceId;d&&o.set(u.sourceId,d);}let t=[],i=new Map;for(let c=0;c<n;c++){let u=e.getMessageBlock(c);u&&(t.push(u),i.set(c,u.block_id));}let s=[];for(let c=0;c<r;c++){let u=e.getPlacementPayload(c);if(!u||u.messageBlockIdx===rD)continue;let d=i.get(u.messageBlockIdx);if(!d)continue;let m=o.get(u.placementSourceId);m&&s.push({payload_id:u.sourceId,tenant_id:"",name:u.sourceId,surface_template_id:m,default_message_block_id:d,status:"active"});}if(s.length!==0)return zc({payloads:s,messageBlocks:t})}function TR(e){let{source:n,impressionHistory:r}=e,{outputsByTemplate:o,outputsByName:t,planHandleToId:i,tierLaddersByHandle:s}=n.format==="flatbuffer"?FD(n.handle):UD(n.exportedConfig,n.placements),c=n.format==="json"?ND(n.exportedConfig,n.placements):LD(n.handle);function u(d,m,p,g){let f=Array.isArray(d.content.__target_plan_ids)?d.content.__target_plan_ids.filter($=>typeof $=="string"):[],v=Array.isArray(d.content.__target_billing_periods)?d.content.__target_billing_periods.filter($=>typeof $=="string"):[];return Oy({target_plan_ids:f,target_billing_periods:v,category:d.category},{currentPlanId:m,planHandle:p,billingPeriod:g}).eligible}return async(d,m,p)=>{let g=p?.__providers,f=g?.plan?.currentPlanHandle,v=g?.plan?.billingPeriod,$=f?i.get(f):void 0,S=it=>typeof it=="string"?it:"",R=Array.isArray(m?.metadata?.surface_template_ids)?m.metadata.surface_template_ids:void 0,E,A=[];if(R&&R.length>0){let it=[];for(let te of R){let Tt=o.get(te);Tt&&it.push(...Tt);}if(it.length===0)return fR(d,"no_candidates_for_template","No placements configured for this surface template");it.sort((te,Tt)=>te.entryOrder-Tt.entryOrder);let be=m?.metadata?.entitlement_handle,cn=m?.metadata?.surface_slot_category,rn=cn?{gated:["gated"],fixed:["fixed"],triggered:["usage_credit_seat","trials","other_conversion","retention"]}[cn]:void 0,De=it;if(be){let te=it.filter(Tt=>Tt.triggerEntitlementHandle===be);te.length>0&&(De=te);}let lt=m?.metadata?.surface_slot_id;if(lt){let te=De.filter(Tt=>Tt.triggerSlotId===lt);te.length>0&&(De=te);}if(rn&&cn!=="fixed"&&De.length>1){let te=De.filter(Tt=>rn.includes(Tt.entryCategory));te.length>0&&(De=te);}r&&(De=De.filter(te=>!r.isHiddenSync(te.output.rule_id??""))),De=De.filter(te=>zy(te.trialTrigger,g?.plan)),De=De.filter(te=>uR(te.thresholdTrigger,g?.entitlements)),De=De.filter(te=>mR(te.qualifierTrigger,te.entryCategory,g?.plan)),De=De.filter(te=>pR(te.entitlementGateTrigger,s,g?.entitlements));let or,qt=[],on=Uy(g?.plan);if(on!==null&&De.length>1){let te=De.map(ln=>({ruleId:ln.output.rule_id??void 0,entryOrder:ln.entryOrder,trialTrigger:ln.trialTrigger,output:ln.output})),Tt=gR(te,on);if(Tt){or=Tt.winner,qt=Tt.supersededIds;let ln=Tt.winner.ruleId;De=De.filter(Eo=>Eo.trialTrigger?.kind!=="trial_progress"||(Eo.output.rule_id??void 0)===ln);}}let Xe;for(let te of De)if(u(te.output,$,f,v)){E=te.output,Xe=te;break}Xe&&or&&or.ruleId===(Xe.output.rule_id??void 0)&&qt.length>0&&(E={...E,content:{...E.content,__superseded_placement_ids:qt}}),E||(A=["no_eligible_candidate"]);}else {let it=m?.name,be=(it?t.get(it):void 0)??t.get(d.placementId),cn;if(be)for(let $t of o.values()){let rn=$t.find(De=>De.output===be);if(rn){cn=rn;break}}be&&r?.isHiddenSync(be.rule_id??"")?A=["placement_retired"]:be&&!zy(cn?.trialTrigger,g?.plan)?A=["trial_trigger_unmet"]:be&&!uR(cn?.thresholdTrigger,g?.entitlements)?A=["threshold_trigger_unmet"]:be&&!mR(cn?.qualifierTrigger,cn?.entryCategory??be.category,g?.plan)?A=["qualifier_trigger_unmet"]:be&&!pR(cn?.entitlementGateTrigger,s,g?.entitlements)?A=["entitlement_gate_unmet"]:be&&u(be,$,f,v)?E=be:be?A=["plan_target_mismatch"]:A=["placement_not_found"];}if(!E){let it=A[0]??"placement_not_found";return fR(d,it,"Placement not configured")}let w=E.content,T=E.surface.template;if(c&&T){let it={userId:typeof d.userId=="string"?d.userId:"",segmentIds:g?.segments?.segmentIds??[]},be=await ym(T,it,c,{});be&&(w={...E.content,...be.resolvedContent});}let ee={...w},Ne=typeof ee.entitlement=="string"?ee.entitlement:typeof ee.__trigger_entitlement_handle=="string"?ee.__trigger_entitlement_handle:void 0,Le=Ne?g?.entitlements?.usage?.[Ne]:void 0;if(Le){ee.usage_remaining=Number.isFinite(Le.remaining)?Le.remaining:0,ee.usage_limit=Number.isFinite(Le.limit)?Le.limit:0,ee.usage_current=Number.isFinite(Le.used)?Le.used:0,ee.usage_percent=Le.limit>0?Math.min(100,Math.round(Le.used/Le.limit*100)):0;let it=Le.reset_date;typeof it=="string"&&it.length>0&&(ee.reset_date=it);}let ae=$D(ee),pe={...E,content:ae},vt=!((E.category==="upsell"||E.category==="trial_conversion")&&f==="enterprise");return {placementId:d.placementId,requestId:`local_${Date.now()}`,visible:vt,decisionSource:"fallback",reasonCodes:vt?[]:["plan_tier_suppressed"],content:{header:S(pe.content.header),body:S(pe.content.body),cta_label:S(pe.content.cta_label),title:S(pe.content.header),cta:S(pe.content.cta_label)},output:pe}}}function fR(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 da(e){return TR({source:{format:"json",exportedConfig:e.exportedConfig,placements:e.placements},impressionHistory:e.impressionHistory})}var wR=a.enum(["session","day","week","month"]),ER=a.object({kind:a.enum(["template","slot"]),id:a.string(),label:a.string().optional()});a.object({id:a.string(),group:a.array(ER),cap:a.object({count:a.number().int().min(1),period:wR})});var CR=a.enum(["trial_started","trial_ending","trial_ended","trial_converted"]);a.object({stages:a.array(CR).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:V}=Ii,{Persisted:qy,Transient:Ft}=yi,{Internal:zR,External:Ct}=xi,UR=Rt(tt.Playbook,{sdkInput:true}),ZD=Rt(tt.Playbook,{inConfig:false,sdkInput:false}),Sa=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":Ft,"x-revturbine-schema-exposure":Ct}),Hy=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),qD=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),HD=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),Sm=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),Ny=a.object({entitlement_id:a.string().min(1).meta(V),entitlement_handle:a.string().min(1).meta(V),status:qD.meta(V),limit:a.number().optional().meta(V),used:a.number().optional().meta(V),allocation:Hy.optional().meta(V),enforcement:Sm.optional().meta(V),source:HD.optional().meta(V),plan_id:a.string().optional().meta(V),segment_id:a.string().optional().meta(V),seat_type_id:a.string().optional().meta(V),rule_id:a.string().optional().meta(V)}).meta({id:"EntitlementGrant","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),Ny).optional().meta(V),instance:a.record(a.string(),Ny).optional().meta(V),user:a.record(a.string(),Ny).optional().meta(V)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct,"x-revturbine-data-classification":"operational"});var KD=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),GD=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),AR=a.object({kind:GD.meta(V),id:a.string().min(1).meta(V)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),DR=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),Zy=a.union([a.number(),a.literal("unlimited")]).nullable().optional(),JD=a.looseObject({kind:a.literal("feature").meta(V),enabled:a.boolean().optional().meta(V)}).meta({id:"EntitlementTypeFieldsFeature","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),WD=a.looseObject({kind:a.literal("capability_tier").meta(V),tier_name:a.string().optional().meta(V),tier_description:a.string().optional().meta(V)}).meta({id:"EntitlementTypeFieldsCapabilityTier","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),XD=a.looseObject({kind:a.literal("usage_limit").meta(V),limit_value:Zy.meta(V),unit:a.string().optional().meta(V),period:Sa.optional().meta(V),enforcement:Sm.optional().meta(V)}).meta({id:"EntitlementTypeFieldsUsageLimit","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),YD=a.looseObject({kind:a.literal("price_per_unit").meta(V),amount_cents:a.number().optional().meta(V),currency:a.string().optional().meta(V),unit:a.string().optional().meta(V),period:Sa.optional().meta(V)}).meta({id:"EntitlementTypeFieldsPricePerUnit","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),QD=a.looseObject({kind:a.literal("rate_limit").meta(V),rate_value:a.number().optional().meta(V),period_scope:Sa.optional().meta(V),enforcement:Sm.optional().meta(V)}).meta({id:"EntitlementTypeFieldsRateLimit","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),eF=a.looseObject({kind:a.literal("credits").meta(V),allowance:Zy.meta(V),initial_grant:a.number().optional().meta(V),unit:a.string().optional().meta(V),period:Sa.optional().meta(V),reset_period:DR.optional().meta(V),rollover:a.boolean().optional().meta(V),max_balance:Zy.meta(V),top_up_available:a.boolean().optional().meta(V)}).meta({id:"EntitlementTypeFieldsCredits","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),tF=a.looseObject({kind:a.literal("seat").meta(V),included_seats:a.union([a.number(),a.literal("unlimited")]).optional().meta(V),max_seats:a.union([a.number(),a.literal("unlimited")]).nullable().optional().meta(V),seat_type:a.string().optional().meta(V)}).meta({id:"EntitlementTypeFieldsSeat","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),nF=a.looseObject({}).meta({id:"EntitlementTypeFieldsUntyped","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),rF=[JD,WD,XD,YD,QD,eF,tF],iF=a.union([...rF,nF]).meta({id:"EntitlementTypeFields","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),ha=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...V,readOnly:true}),name:Wr.meta(V),handle:Xt.meta(V),customer_facing_description:a.string().max(500).optional().meta(V),type:by.meta(V),unit:a.string().max(100).optional().meta(V),period_scope:Sa.optional().meta(V),allocation:Hy.optional().meta(V),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(V),sort_order:a.number().int().default(0).meta(V),metadata:Yn.meta(V)}).meta({id:"Entitlement","x-revturbine-schema-persistence":qy,"x-revturbine-schema-exposure":Ct,...UR,...xr()}),oF=xn("EntitlementAnchor"),Mc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...V,readOnly:true}),handle:Xt.meta({...V,readOnly:true}),entitlement_id:a.string().min(1).meta(V),targets:a.array(AR).min(1).meta(V),segment_ids:a.array(a.string()).default([]).meta(V),visibility:KD.default("public").meta(V),period_scope:Sa.optional().meta(V),instance:a.string().max(100).optional().meta(V),reset_period:DR.optional().meta(V),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(V),enforcement:Sm.optional().meta(V),warning_threshold_percent:mo.optional().meta(V),overage_price_ref:a.string().optional().meta(V),grace_period_hours:a.number().int().min(0).optional().meta(V),tier_value:a.string().optional().meta(V),rate_value:a.number().optional().meta(V),initial_grant:a.number().optional().meta(V),allowance_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(V),rollover_enabled:a.boolean().optional().meta(V),max_balance:a.union([a.number(),a.literal("unlimited")]).nullable().default(null).meta(V),seat_type_id:a.string().optional().meta(V),included_count:a.union([a.number().int(),a.literal("unlimited")]).optional().meta(V),at_limit_behavior:a.enum(["hard_cap","auto_upgrade_at_renewal"]).optional().meta(V),stripe_metered_price_id:a.string().optional().meta(V)}).meta({id:"EntitlementRule","x-revturbine-schema-persistence":qy,"x-revturbine-schema-exposure":zR,...UR,...cr()}),aF=xn("EntitlementRuleAnchor");Mc.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 sF=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),cF=a.object({code:sF.meta(V),message:a.string().min(1).meta(V),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(V)}).meta({id:"EntitlementRuleWarning","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),Ly=Mc.extend({warnings:a.array(cF).optional().meta(V)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),Vy=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...V,readOnly:true}),rule_id:a.string().min(1).meta(V),experiment_id:a.string().min(1).meta(V),variant_name:a.string().min(1).max(200).meta(V),is_control:a.boolean().default(false).meta(V),override_fields:a.record(a.string(),a.unknown()).default({}).meta(V)}).meta({id:"EntitlementRuleVariant","x-revturbine-schema-persistence":qy,"x-revturbine-schema-exposure":zR,...ZD,...cr()}),lF=Mn(ha),uF=Mn(Mc);({"/api/entitlement-anchors":{get:j({operationId:"listEntitlementAnchors",requestParams:{query:qe},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:Ze(oF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:j({operationId:"listEntitlementRuleAnchors",requestParams:{query:qe},summary:"List entitlement rule anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement rule anchor list",content:{"application/json":{schema:Ze(aF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:j({operationId:"listEntitlements",requestParams:{query:qe},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:Ze(ha)}}}},"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:yn(ha)}}},responses:{201:{description:"Created",content:{"application/json":{schema:ha}}}},"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:ha}}}},"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:lF}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ha}}}},"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:Dt}}}},"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:qe},summary:"List rules for entitlement",tags:["entitlements"],responses:{200:{description:"Rule list",content:{"application/json":{schema:Ze(Mc)}}}},"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:yn(Mc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Ly}}}},"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:uF}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ly}}}},"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:Ly}}}},"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:qe},summary:"List A/B variants for rule",tags:["entitlements"],responses:{200:{description:"Variant list",content:{"application/json":{schema:Ze(Vy)}}}},"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:yn(Vy)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Vy}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:le}=Ii,{Persisted:Zc,Transient:qc}=yi,{Internal:Ar}=xi,FR=Rt(tt.Playbook,{sdkInput:true}),NR=Rt(tt.Playbook,{inConfig:false,sdkInput:true}),dF=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":qc,"x-revturbine-schema-exposure":Ar}),Ky=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":qc,"x-revturbine-schema-exposure":Ar}),LR=a.object({name:Wr.meta(le),handle:Xt.meta(le),plan_id:a.string().nullable().optional().meta(le),segment_id:a.string().nullable().optional().meta(le),trial_limit_type:Ky.default("time").meta(le),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(le),grace_period_days:a.number().int().min(0).default(0).meta(le),usage_entitlement_handle:a.string().min(1).optional().meta(le),usage_limit_value:a.number().int().min(1).optional().meta(le),require_payment_method:a.boolean().default(false).meta(le),auto_convert:a.boolean().default(true).meta(le),convert_to_plan_id:a.string().optional().meta(le),fallback_plan_id:a.string().optional().meta(le),limit_per_customer:a.number().int().min(1).default(1).meta(le),is_active:a.boolean().default(true).meta(le),metadata:Yn.meta(le)}),ma=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true})}).merge(LR).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":Zc,"x-revturbine-schema-exposure":Ar,...FR,...xr()}),mF=xn("FreeTrialRuleAnchor"),pF=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":qc,"x-revturbine-schema-exposure":Ar}),VR=a.object({name:Wr.meta(le),handle:Xt.meta(le),premium_plan_id:a.string().min(1).meta(le),fallback_plan_id:a.string().min(1).meta(le),segment_id:a.string().nullable().optional().meta(le),trial_limit_type:Ky.default("time").meta(le),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(le),usage_entitlement_handle:a.string().min(1).optional().meta(le),usage_limit_value:a.number().int().min(1).optional().meta(le),start_policy:pF.default("signup").meta(le),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(le),entitlements_during_trial:a.array(a.string()).default([]).meta(le),is_active:a.boolean().default(true).meta(le),metadata:Yn.meta(le)}),pa=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true})}).merge(VR).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":Zc,"x-revturbine-schema-exposure":Ar,...FR,...xr()}),fF=xn("ReverseTrialRuleAnchor"),BR=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":qc,"x-revturbine-schema-exposure":Ar}),MR=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":qc,"x-revturbine-schema-exposure":Ar}),fa=mt.merge(yt).merge(xt).extend({trial_limit_policy:BR.default("1_per_lifetime").meta(le),eligibility_scope:MR.default("per_customer").meta(le)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":Zc,"x-revturbine-schema-exposure":Ar,...NR}),ga=mt.merge(yt).merge(xt).extend({trial_limit_policy:BR.default("1_per_lifetime").meta(le),eligibility_scope:MR.default("per_customer").meta(le)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":Zc,"x-revturbine-schema-exposure":Ar,...NR}),xm=mt.merge(yt).merge(xt).extend({customer_id:a.string().min(1).meta(le),rule_id:a.string().min(1).meta(le),rule_type:a.enum(["free_trial","reverse_trial"]).meta(le),plan_id:a.string().min(1).meta(le),status:dF.default("active").meta(le),started_at:a.string().datetime().meta({...le,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(le),trial_limit_type:Ky.default("time").meta(le),usage_entitlement_handle:a.string().min(1).optional().meta(le),usage_limit_value:a.number().int().min(1).optional().meta(le),converted_at:lm.meta(le),cancelled_at:lm.meta(le),metadata:Yn.meta(le)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":Zc,"x-revturbine-schema-exposure":Ar});({"/api/free-trial-rule-anchors":{get:j({operationId:"listFreeTrialRuleAnchors",requestParams:{query:qe},summary:"List free trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Free trial rule anchor list",content:{"application/json":{schema:Ze(mF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:Ze(ma)}}}},"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:ma}}}},"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:ma.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ma}}}},"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:qe},summary:"List reverse trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Reverse trial rule anchor list",content:{"application/json":{schema:Ze(fF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:Ze(pa)}}}},"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:pa}}}},"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:pa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:pa}}}},"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:qe},summary:"List free trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Free trial settings list",content:{"application/json":{schema:Ze(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:qe},summary:"List reverse trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Reverse trial settings list",content:{"application/json":{schema:Ze(ga)}}}},"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:ga}}}},"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:ga.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ga}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:j({operationId:"listTrialInstances",requestParams:{query:qe},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:Ze(xm)}}}},"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:xm}}}},"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:xm}}}},"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:xm}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:He,Financial:Im}=Ii,{Persisted:Hc,Transient:Pm}=yi,{External:Xr}=xi,gF=Rt(tt.Playbook,{sdkInput:true}),hF=Rt(tt.Playbook,{sdkInput:false}),Gy=Rt(tt.Billing,{sdkInput:false}),Pa=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":Pm,"x-revturbine-schema-exposure":Xr}),Kc=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":Pm,"x-revturbine-schema-exposure":Xr}),km=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":Pm,"x-revturbine-schema-exposure":Xr}),ba=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...He,readOnly:true}),name:Wr.meta(He),handle:Xt.meta(He),tier_position:a.number().int().min(0).default(0).meta(He),sort_order:a.number().int().default(0).meta(He),metadata:Yn.meta(He)}).meta({id:"Plan","x-revturbine-schema-persistence":Hc,"x-revturbine-schema-exposure":Xr,...gF,...xr()}),bF=xn("PlanAnchor"),_a=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...He,readOnly:true}),handle:Xt.meta({...He,readOnly:true}),plan_id:a.string().min(1).meta(He),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(He),segment_id:a.string().nullable().default(null).meta(He),price_amount:a.number().min(0).meta(Im),pricing_model:Kc.meta(He),visibility:Pa.default("public").meta(He),stripe_price_id:a.string().optional().meta(He),price_source:km.default("static").meta(He)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":Hc,"x-revturbine-schema-exposure":Xr,...Gy,...cr()}),_F=xn("PlanVariationAnchor"),va=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...He,readOnly:true}),name:Wr.meta(He),handle:Xt.meta(He),sort_order:a.number().int().default(0).meta(He),metadata:Yn.meta(He)}).meta({id:"AddOn","x-revturbine-schema-persistence":Hc,"x-revturbine-schema-exposure":Xr,...hF,...xr()}),vF=xn("AddOnAnchor"),ya=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...He,readOnly:true}),handle:Xt.meta({...He,readOnly:true}),addon_id:a.string().min(1).meta(He),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(He),segment_id:a.string().nullable().default(null).meta(He),price_amount:a.number().min(0).meta(Im),pricing_model:Kc.meta(He),visibility:Pa.default("public").meta(He),stripe_price_id:a.string().optional().meta(He),price_source:km.default("static").meta(He)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":Hc,"x-revturbine-schema-exposure":Xr,...Gy,...cr()}),yF=xn("AddOnVariationAnchor"),xF=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":Pm,"x-revturbine-schema-exposure":Xr}),xa=mt.merge(yt).merge(xt).extend({stripe_price_id:a.string().min(1).meta(He),stripe_product_id:a.string().min(1).meta(He),billing_period:xF.meta(He),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(Im),currency:BE.meta(Im),pricing_model:Kc.meta(He),nickname:a.string().nullable().default(null).meta(He),is_mock:a.boolean().default(false).meta(He),last_updated_from_stripe:lm.meta(He)}).meta({id:"StripePrice","x-revturbine-schema-persistence":Hc,"x-revturbine-schema-exposure":Xr,...Gy}),IF=Mn(ba),SF=Mn(_a),PF=Mn(va),kF=Mn(ya),$F=Mn(xa);({"/api/plan-anchors":{get:j({operationId:"listPlanAnchors",requestParams:{query:qe},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:Ze(bF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:j({operationId:"listPlans",requestParams:{query:qe},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:Ze(ba)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:yn(ba)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:ba}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:ba}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:IF}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:ba}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:Dt}}}},"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:qe},summary:"List plan variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan variation anchor list",content:{"application/json":{schema:Ze(_F)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List plan variations",tags:["plans"],responses:{200:{description:"Plan variations",content:{"application/json":{schema:Ze(_a)}}}},"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:yn(_a)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:_a}}}},"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:_a}}}},"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:SF}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:_a}}}},"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:qe},summary:"List add-on anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on anchor list",content:{"application/json":{schema:Ze(vF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:j({operationId:"listAddOns",requestParams:{query:qe},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:Ze(va)}}}},"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:yn(va)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:va}}}},"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:va}}}},"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:PF}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:va}}}},"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:qe},summary:"List add-on variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on variation anchor list",content:{"application/json":{schema:Ze(yF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List add-on variations",tags:["plans"],responses:{200:{description:"Add-on variations",content:{"application/json":{schema:Ze(ya)}}}},"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:yn(ya)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:ya}}}},"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:ya}}}},"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:kF}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:ya}}}},"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:qe},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:Ze(xa)}}}},"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:yn(xa)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:xa}}}},"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:xa}}}},"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:$F}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:xa}}}},"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:h}=Ii,{Persisted:ka,Transient:fe}=yi,{Internal:ur,External:we}=xi,Pe=Rt(tt.Playbook,{sdkInput:true}),Ia=Rt(tt.Playbook,{sdkInput:false}),$i=Rt(tt.Playbook,{inConfig:false,sdkInput:false}),ZR=Rt(tt.Playbook,{inConfig:false,sdkInput:true}),ki=Rt(tt.Playbook,{inConfig:false,sdkInput:true,source:sr.CodeConstant}),Vc=Rt(tt.Playbook,{inConfig:false,sdkInput:true,source:sr.Runtime}),Bc=Rt(tt.Playbook,{inConfig:false,sdkInput:false,source:sr.Runtime}),TF=Rt(tt.Billing,{sdkInput:false}),wF=Rt(tt.Metering,{sdkInput:false}),EF=Rt(tt.Branding,{inConfig:true,sdkInput:true}),RF=Rt(tt.Branding,{sdkInput:false}),CF="1.0.0",Dc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...h,readOnly:true}),name:Wr.meta(h),handle:Xt.meta(h),description:cm.meta(h),is_default:a.boolean().default(false).meta(h),entitlement_ids:a.array(a.string()).default([]).meta(h),metadata:Yn.meta(h)}).meta({id:"SeatType","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...$i,...xr()}),jF=xn("SeatTypeAnchor"),Fc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...h,readOnly:true}),handle:Xt.meta(h),label:a.string().min(1).meta(h),description:a.string().nullable().default(null).meta(h),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(h),data_source:a.string().nullable().default(null).meta(h),example_value:a.string().nullable().default(null).meta(h),value_map:a.record(a.string(),a.string()).default({}).meta(h),format:a.enum(["string","number","currency","percentage","date"]).nullable().default(null).meta(h),metadata:Yn.meta(h)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...$i,...xr()}),OF=xn("PersonalizationTokenAnchor"),zF=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),By=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...h,readOnly:true}),stripe_account_id:a.string().min(1).meta(h),live_mode:a.boolean().default(false).meta(h),onboarding_state:zF.default("not_started").meta({...h,readOnly:true}),onboarding_complete:a.boolean().default(false).meta({...h,readOnly:true}),charges_enabled:a.boolean().default(false).meta({...h,readOnly:true}),details_submitted:a.boolean().default(false).meta({...h,readOnly:true}),payouts_enabled:a.boolean().default(false).meta({...h,readOnly:true}),webhook_secret_set:a.boolean().default(false).meta({...h,readOnly:true}),sync_products:a.boolean().default(true).meta(h),sync_prices:a.boolean().default(true).meta(h),sync_subscriptions:a.boolean().default(true).meta(h),sync_invoices:a.boolean().default(false).meta(h),default_currency:a.string().length(3).default("USD").meta(h),tax_behavior:a.enum(["inclusive","exclusive","unspecified"]).default("unspecified").meta(h),last_sync_at:a.string().optional().meta({...h,readOnly:true}),metadata:Yn.meta(h)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...TF,...cr()});a.object({theme:a.record(a.string(),a.unknown()).optional().meta(h),workspace_name:a.string().optional().meta(h),logo_url:a.string().optional().meta(h),support_email:a.string().optional().meta(h)}).meta({id:"BrandingConfig","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...RF});var Nc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...h,readOnly:true}),entitlement_id:a.string().min(1).meta(h),meter_key:a.string().min(1).max(100).meta(h),aggregation_type:a.enum(["sum","count","max","last_value"]).default("sum").meta(h),reset_period:a.enum(["none","daily","weekly","monthly","yearly"]).default("monthly").meta(h),stripe_meter_id:a.string().nullable().default(null).meta(h),is_active:a.boolean().default(true).meta(h),metadata:Yn.meta(h)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...wF,...cr()}),jR=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),Lc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...h,readOnly:true}),handle:Xt.meta({...h,readOnly:true}),entitlement_id:a.string().min(1).meta(h),soft_limit_percent:a.number().min(0).max(100).default(80).meta(h),hard_limit_percent:a.number().min(0).max(100).default(100).meta(h),soft_limit_action:jR.default("warn").meta(h),hard_limit_action:jR.default("block").meta(h),grace_period_hours:a.number().int().min(0).default(0).meta(h),notification_channels:a.array(a.enum(["email","in_app","webhook"])).default(["in_app"]).meta(h),is_active:a.boolean().default(true).meta(h)}).meta({id:"UsageEnforcementSettings","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...ZR,...cr()}),UF=xn("UsageEnforcementSettingsAnchor"),AF=a.object({kind:a.enum(["template","slot"]).meta(h),id:a.string().min(1).meta(h),label:a.string().min(1).optional().meta(h)}).meta({id:"PlacementSettingsCapRuleGroupItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),DF=a.object({id:a.string().min(1).meta(h),group:a.array(AF).min(1).meta(h),cap:a.object({count:a.number().int().min(1).meta(h),period:a.enum(["session","day","week","month"]).meta(h)}).meta(h)}).meta({id:"PlacementSettingsCapRule","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),FF=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),qR=a.object({capRules:a.array(DF).default([]).meta(h),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(h),testMode:FF.default("off").meta(h)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),My=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...h,readOnly:true}),handle:Xt.meta({...h,readOnly:true}),global_frequency_cap:qR.nullable().default(null).meta(h),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(h),suppress_for_paid:a.boolean().default(false).meta(h),suppress_for_trial:a.boolean().default(false).meta(h),default_dismiss_cooldown_hours:a.number().int().min(0).default(24).meta(h),allow_stacking:a.boolean().default(false).meta(h),priority_collision_strategy:a.enum(["highest_priority","most_recent","random"]).default("highest_priority").meta(h)}).meta({id:"PlacementSettings","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...ZR,...cr()}),NF=xn("PlacementSettingsAnchor"),LF=a.object({field:a.string().min(1).meta(h),operator:a.enum(["eq","neq","gt","lt","gte","lte","contains","in"]).meta(h),value:a.string().meta(h)}).meta({id:"RevTurbineConfigSegmentsItemPredicatesItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),VF=a.object({name:a.string().min(1).meta(h),handle:a.string().min(1).meta(h),predicates:a.array(LF).optional().meta(h),dimension_id:a.string().optional().meta(h)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),BF=a.object({unique_handle:a.string().min(1).meta(h),name:a.string().min(1).meta(h),tier_position:a.number().int().min(0).default(0).meta(h),sort_order:a.number().int().min(0).default(0).meta(h),visibility:Pa.default("public").meta(h)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),MF=a.object({unique_handle:a.string().min(1).meta(h),name:a.string().min(1).meta(h),sort_order:a.number().int().min(0).default(0).meta(h),visibility:Pa.default("public").meta(h)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Ia}),ZF=a.object({handle:a.string().min(1).meta(h),plan_handle:a.string().min(1).meta(h),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(h),segment_handle:a.string().nullable().default(null).meta(h),price_amount:a.number().min(0).meta(h),pricing_model:Kc.meta(h),visibility:Pa.default("public").meta(h),stripe_price_id:a.string().nullable().default(null).meta(h),price_source:km.meta(h)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...$i}),qF=a.object({handle:a.string().min(1).meta(h),addon_handle:a.string().min(1).meta(h),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(h),segment_handle:a.string().nullable().default(null).meta(h),price_amount:a.number().min(0).meta(h),pricing_model:Kc.meta(h),visibility:Pa.default("public").meta(h),stripe_price_id:a.string().nullable().default(null).meta(h),price_source:km.meta(h)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...$i}),HF=a.object({handle:a.string().min(1).meta(h),name:a.string().min(1).meta(h),description:a.string().nullable().default(null).meta(h),is_default:a.boolean().default(false).meta(h),entitlement_handles:a.array(a.string()).default([]).meta(h)}).meta({id:"RevTurbineConfigSeatTypesItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),KF=a.object({handle:a.string().min(1).meta(h),entitlement_handle:a.string().nullable().default(null).meta(h),soft_limit_percent:a.number().int().min(0).nullable().default(null).meta(h),hard_limit_percent:a.number().int().min(0).nullable().default(null).meta(h),soft_limit_action:a.string().meta(h),hard_limit_action:a.string().meta(h),grace_period_hours:a.number().int().min(0).nullable().default(null).meta(h),notification_channels:a.array(a.string()).default([]).meta(h),is_active:a.boolean().default(true).meta(h)}).meta({id:"RevTurbineConfigEnforcementDefaultsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),GF=a.object({handle:a.string().min(1).meta(h),global_frequency_cap:qR.nullable().default(null).meta(h),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(h),suppress_for_paid:a.boolean().default(false).meta(h),suppress_for_trial:a.boolean().default(false).meta(h),default_dismiss_cooldown_hours:a.number().int().min(0).nullable().default(null).meta(h),allow_stacking:a.boolean().default(false).meta(h),priority_collision_strategy:a.string().nullable().default(null).meta(h)}).meta({id:"RevTurbineConfigPlacementSettingsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),JF=a.object({handle:a.string().min(1).meta(h),name:a.string().min(1).meta(h),category:a.string().nullable().default(null).meta(h),visibility_toggle:a.boolean().default(true).meta(h),source_type:a.string().nullable().default(null).meta(h)}).meta({id:"RevTurbineConfigSegmentDimensionsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),WF=a.object({handle:a.string().min(1).meta(h),entitlement_handle:a.string().min(1).meta(h),meter_handle:a.string().min(1).meta(h),limit:a.number().int().min(0).nullable().default(null).meta(h),reset_period:a.string().nullable().default(null).meta(h)}).meta({id:"RevTurbineConfigMeterBindingsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),XF=a.object({unique_handle:a.string().min(1).meta(h),name:a.string().min(1).meta(h),type:by.meta(h),unit:a.string().optional().meta(h),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(h)}).meta({id:"RevTurbineConfigEntitlementsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),YF=a.object({id:a.string().min(1).meta(h),entitlement_id:a.string().min(1).meta(h),targets:a.array(AR).min(1).meta(h),segment_ids:a.array(a.string()).default([]).meta(h),type_fields:iF.default({}).meta(h),current_usage:a.number().default(0).meta(h),allocation:Hy.optional().meta(h)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),QF=a.object({slot_id:a.string().min(1).meta(h),active:a.boolean().meta(h),triggers:a.array(a.string()).meta(h)}).meta({id:"RevTurbineConfigSlotConfigsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),e6=a.object({id:a.string().min(1).meta(h),label:a.string().min(1).meta(h),description:a.string().meta(h),surface_type:a.string().meta(h),placement_handle:a.string().min(1).meta(h),template:a.string().optional().meta(h)}).meta({id:"RevTurbineConfigPlacementSlotsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),t6=a.object({name:a.string().min(1).meta(h),type:a.string().optional().meta(h),required:a.boolean().optional().meta(h)}).meta({id:"RevTurbineConfigSurfaceTemplatesItemFieldsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),n6=a.object({id:a.string().min(1).meta(h),surface_type:a.string().meta(h),fields:a.array(t6).optional().meta(h)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),r6=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":fe,"x-revturbine-schema-exposure":we}),i6=a.object({name:a.string().min(1).meta(h),action_type:r6.meta(h),plan_handle:a.string().optional().meta(h),promotion_id:a.string().optional().meta(h),placement_handle:a.string().optional().meta(h),url:a.string().optional().meta(h),tour_id:a.string().optional().meta(h),target_billing_period:a.enum(["monthly","annual"]).optional().meta(h),description:a.string().optional().meta(h)}).meta({id:"ContentUiPath","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),o6=a.object({id:a.string().meta(h),name:a.string().meta(h),discount:a.string().meta(h),type:a.string().meta(h),status:a.string().meta(h)}).meta({id:"ContentPromotion","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),a6=a.object({token:a.string().regex(/^[a-z][a-z0-9_]*$/).meta(h),label:a.string().min(1).meta(h),description:a.string().optional().meta(h),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(h),data_source:a.string().optional().meta(h),example_value:a.string().optional().meta(h),value_map:a.record(a.string(),a.string()).optional().meta(h),format:a.enum(["string","number","currency","percentage","date"]).optional().meta(h)}).meta({id:"RevTurbineConfigPersonalizationTokensItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),OR=a.object({header:a.string().optional().meta(h),body:a.string().optional().meta(h),cta_label:a.string().optional().meta(h),secondary_cta_label:a.string().optional().meta(h)}).catchall(a.unknown()).meta({id:"MessageBlockContent","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),s6=a.object({block_id:a.string().min(1).meta(h),tenant_id:a.string().min(1).meta(h),name:a.string().min(1).meta(h),surface_template_id:a.string().optional().meta(h),default_content:OR.meta(h),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:OR})).optional().meta(h),child_blocks:a.array(a.object({slot:a.string(),block_id:a.string()})).optional().meta(h),tokens_used:a.array(a.string()).optional().meta(h),status:a.enum(["draft","active","archived"]).meta(h),created_at:a.string().datetime().meta({...h,readOnly:true}),updated_at:a.string().datetime().meta({...h,readOnly:true})}).meta({id:"MessageBlock","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),c6=a.object({label:a.string().meta(h),path:ME.meta(h),config:a.record(a.string(),a.string()).optional().meta(h)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),HR=a.object({template_id:a.string().min(1).meta(h),fields:a.record(a.string(),a.string()).meta(h),ctas:a.array(c6).meta(h)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),KR=a.object({plan_ids:a.array(a.string()).meta(h),billing_cadences:a.array(a.string()).optional().meta(h),segment_chips:a.array(a.string()).meta(h)}).meta({id:"RevTurbineConfigStudioPayloadTarget","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),l6=a.object({count:a.number().int().min(1).meta(h),period:a.enum(["session","day","week","month","lifetime"]).meta(h)}).meta({id:"RevTurbineConfigPeriodCap","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),GR=a.object({max_per_period:l6.optional().meta(h),cooldown_days:a.number().int().min(0).optional().meta(h)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),u6=a.object({id:a.string().min(1).meta(h),target:KR.meta(h),surfaces:a.array(HR).meta(h),caps:GR.optional().meta(h),surface_slot_ids:a.array(a.string()).optional().meta(h),created_at:a.string().optional().meta({...h,readOnly:true}),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(h),recommendation_plan_override:a.string().optional().meta(h)}).meta({id:"RevTurbineConfigStudioPayload","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),d6=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:mo}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:mo}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:mo}),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":fe,"x-revturbine-schema-exposure":we}),m6=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),p6=a.object({id:a.string().min(1).meta(h),name:a.string().min(1).meta(h),category:m6.meta(h),trigger:d6.meta(h),payloads:a.array(u6).meta(h),order:a.number().int().min(0).meta(h)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),f6=a.object({payload_id:a.string().min(1).meta(h),placement_id:a.string().min(1).meta(h),target:KR.meta(h),caps:GR.optional().meta(h),created_at:a.string().meta({...h,readOnly:true}),updated_at:a.string().datetime().optional().meta({...h,readOnly:true}),source_mode:a.enum(["inline","content_linked"]).meta(h),surfaces:a.array(HR).optional().meta(h),surface_slot_ids:a.array(a.string()).optional().meta(h),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(h)}).meta({id:"RevTurbineConfigPlacementPayloadItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),g6=a.object({kind:a.string().min(1).meta(h),schema_version:a.number().int().nonnegative().meta(h),config:a.unknown().meta(h)}).meta({id:"RevTurbineConfigExtensionRulesItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),h6=mt.merge(LR).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...$i}),b6=mt.merge(VR).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...$i}),_6=a.object({version:a.string().meta({...h,...ki}),exported_at:a.string().datetime().optional().meta({...h,...Vc,readOnly:true}),schema_version:a.string().optional().meta({...h,...ki,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({...h,...ki,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({...h,...Vc,readOnly:true}),tenant_id:a.string().optional().meta({...h,...Bc,readOnly:true}),environment_id:a.string().optional().meta({...h,...Bc,readOnly:true}),plans:a.array(BF).meta({...h,...Pe}),addons:a.array(MF).optional().meta({...h,...Ia}),entitlements:a.array(XF).meta({...h,...Pe}),entitlement_rules:a.array(YF).meta({...h,...Pe}),segments:a.array(VF).meta({...h,...Pe}),content_ui_paths:a.array(i6).meta({...h,...Pe}),slot_configs:a.array(QF).optional().meta({...h,...Pe,...jc({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({...h,...Pe,...jc({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({...h,...EF,...jc({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(e6).optional().meta({...h,...Pe}),message_blocks:a.array(s6).optional().meta({...h,...Pe}),placement_payloads:a.array(f6).optional().meta({...h,...Pe}),placements:a.array(p6).optional().meta({...h,...Pe}),content_promotions:a.array(o6).optional().meta({...h,...Pe}),personalization_tokens:a.array(a6).optional().meta({...h,...Pe}),surface_templates:a.array(n6).optional().meta({...h,...Pe}),free_trial_rules:a.array(h6).optional().meta({...h,...Ia}),reverse_trial_rules:a.array(b6).optional().meta({...h,...Ia}),plan_variations:a.array(ZF).optional().meta({...h,...Ia}),addon_variations:a.array(qF).optional().meta({...h,...Ia}),extension_rules:a.array(g6).optional().meta({...h,...Pe}),seat_types:a.array(HF).optional().meta({...h,...Pe}),enforcement_defaults:a.array(KF).optional().meta({...h,...Pe}),placement_settings:a.array(GF).optional().meta({...h,...Pe}),segment_dimensions:a.array(JF).optional().meta({...h,...Pe}),meter_bindings:a.array(WF).optional().meta({...h,...Pe})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe,...jc({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),v6=a.object({artifact_type:a.literal("playbook").meta({...h,...ki,readOnly:true}),format_version:a.literal(CF).meta({...h,...ki,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({...h,...ki}),playbook_version_id:a.string().nullable().default(null).meta({...h,...Vc,readOnly:true}),tenant_id:a.string().min(1).meta({...h,...Bc,readOnly:true}),environment_id:a.string().min(1).meta({...h,...Bc,readOnly:true}),project_id:a.string().min(1).optional().meta({...h,...Bc,readOnly:true}),exported_at:a.string().datetime().optional().meta({...h,...Vc,readOnly:true}),schema_version:a.string().min(1).optional().meta({...h,...ki,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({...h,...ki,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Vc}),y6={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},x6=_6.omit(y6).extend({experiments:a.array(a.unknown()).max(0).optional().meta({...h,...$i}),signal_catalog:a.object({}).strict().optional().meta({...h,...$i})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe});v6.extend(x6.shape).meta({id:"Playbook","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe});({"/api/seat-type-anchors":{get:j({operationId:"listSeatTypeAnchors",requestParams:{query:qe},summary:"List seat type anchors (identity registry)",tags:["config"],responses:{200:{description:"Seat type anchor list",content:{"application/json":{schema:Ze(jF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:j({operationId:"listSeatTypes",requestParams:{query:qe},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:Ze(Dc)}}}},"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:yn(Dc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Dc}}}},"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:Dc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Dc}}}},"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:qe},summary:"List personalization token anchors (identity registry)",tags:["config"],responses:{200:{description:"Personalization token anchor list",content:{"application/json":{schema:Ze(OF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:j({operationId:"listPersonalizationTokens",requestParams:{query:qe},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:Ze(Fc)}}}},"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:yn(Fc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Fc}}}},"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:Fc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Fc}}}},"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:Mn(By)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:By}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:j({operationId:"listMeteringConfigs",requestParams:{query:qe},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:Ze(Nc)}}}},"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:yn(Nc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Nc}}}},"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:Nc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Nc}}}},"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:qe},summary:"List usage enforcement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Usage enforcement setting anchor list",content:{"application/json":{schema:Ze(UF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:Ze(Lc)}}}},"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:yn(Lc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Lc}}}},"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:Lc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Lc}}}},"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:qe},summary:"List placement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Placement setting anchor list",content:{"application/json":{schema:Ze(NF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:Mn(My)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:My}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});function Ta(){return typeof window>"u"||typeof document>"u"}function jn(){return !Ta()}var Gc=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),u=Date.now();if(c&&c.ttlMs>0&&u-c.resolvedAt<c.ttlMs)return [i,c.value];let d=await s.resolve();return this.cache.set(i,{value:d,resolvedAt:u,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();}},I6="revturbine:interaction-state",JR=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 `${I6}:${this.tenantId}:${this.userId}`}stateKey(e,n,r){return [this.tenantId,n,e,r||"default"].join(":")}},S6="revturbine:presentation-caps";function $a(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function P6(e){if(!$a(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 k6(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 WR=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 u of c.rules){let d=k6(u.period,o),m=i.seenAt.filter(p=>p>=d&&p<=o);if(m.length>=u.count)return this.capsByKey.set(r,{...i,seenAt:m}),{allowed:false,reason:`suppressed_by_payload_cap_${u.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 `${S6}:${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,$a(e.content)?e.content.payload:void 0,$a(e.content)?e.content.placement:void 0,$a(e.content)?e.content.surface:void 0];for(let o of r){if(!$a(o))continue;let t=$a(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=P6(t.max_per_period);s&&i.push(s);let c=Number(t.cooldown_days),u=Number.isFinite(c)&&c>0?c*24*60*60*1e3:void 0;n.push({rules:i,...u!==void 0?{cooldownMs:u}:{}});}return n}},wa=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 XR(e){return [e.tenantId,e.userId,e.placementId,e.treatmentId||"default"].join(":")}function YR(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 $6=new Set(["dismissed","clicked_thru"]),T6=1440*60*1e3,Jy=class{constructor(e){this.retiredCache=null,this.suppressedCache=null,this.store=e.store,this.userId=e.userId,this.defaultSuppressionMs=e.defaultSuppressionMs??T6;}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);}},w6=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=QR(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.records.get(e)??[];return eC(n)}getSuppressedPlacements(e){let n=this.records.get(e)??[];return tC(n)}clear(e){this.records.delete(e);}},E6="revturbine:impression-history",$m=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=QR(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.load(e);return eC(n)}getSuppressedPlacements(e){let n=this.load(e);return tC(n)}clear(e){this.storage.removeItem(this.key(e));}key(e){return `${E6}:${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 QR(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 eC(e){let n=new Set;for(let r of e)$6.has(r.outcome)&&n.add(r.placementId);return n}function tC(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 R6(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 u of n.entitlements??[]){s[u.unique_handle]={status:t==="allow"?"allowed":"denied",allowed:t==="allow",reason:`static_config_default_${t}`};let d=e.usage?.[u.unique_handle];d&&(c[u.unique_handle]={used:d.used,limit:d.limit,remaining:Math.max(0,d.limit-d.used),unit:u.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={};for(let c of n.entitlement_rules??[]){let u=c.entitlement_id;i[u]||(i[u]=[]);let d=c,m=Array.isArray(d.segment_ids)?d.segment_ids.filter(f=>typeof f=="string"):typeof d.segment_id=="string"&&d.segment_id!=="all"?[d.segment_id]:[],p=Array.isArray(d.plan_ids)?d.plan_ids.filter(f=>typeof f=="string"):[],g={ruleId:c.id,entitlementId:u,planIds:(c.targets??[]).length>0?(c.targets??[]).filter(f=>f.kind==="plan").map(f=>f.id):p,segmentIds:m,kind:c.type_fields?.kind??"feature",fields:c.type_fields??{}};i[u].push(g);}let s={};for(let c of n.segments??[])typeof c.dimension_id=="string"&&typeof c.handle=="string"&&(s[c.handle]=c.dimension_id);return {entitlementRules:i,segmentDimensions:s,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 C6(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,u]of Object.entries(t))s[c]=u;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 nC=class{constructor(e){this.registeredPlacements=new Map,this.tenantId=e.tenantId,this.userId=e.userId,this.exportedConfig=e.exportedConfig;let n=e.storage??new wa;this.registry=new Gc;for(let o of e.providers)this.registry.register(o);this.interactionTracker=new JR({storage:n,tenantId:e.tenantId,userId:e.userId,...e.interactionOptions}),this.capEnforcer=new WR({storage:n,tenantId:e.tenantId,userId:e.userId}),this.impressionHistory=new Jy({store:e.impressionStore??new w6,userId:e.userId});let r=e.customResolver??this.buildPlacementResolver(e);this.engine=new xy({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 Rc(n,e)}buildTargetingState(e,n){return hm(e,this.exportedConfig,n)}async derivePersonalizationTokens(e){let n=await this.registry.resolveAll();return tR({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 da({placements:n,exportedConfig:e.exportedConfig,impressionHistory:this.impressionHistory})}deriveEntitlementFromConfig(e,n){return Ec({handle:e,context:n,currentPlanHandle:"",segmentIds:new Set,usageBalances:{},exportedConfig:this.exportedConfig})??{status:"allowed",allowed:true,reason:"local_runtime_default_allow"}}},j6=["web-client","server"],O6=a.enum(j6),z6=["method","meta","component"],U6=a.enum(z6),A6=["ts","python","java","csharp","rust"];a.enum(A6);var D6=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(),F6=a.object({canonical:a.string().min(1),aliases:a.array(a.string().min(1)),kind:U6,appliesTo:a.array(O6).min(1),composes:a.string().min(1).optional(),perLanguage:D6.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"]}),N6=a.object({version:a.number().int().positive(),functions:a.array(F6).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);}});N6.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 Wy={workspace_name:"Your workspace",theme:{}};function rC(e){return !!e&&Object.keys(e).length>0}var iC=false;function Xy(e={}){let n=(r,o)=>({branding:{...Wy,...r,theme:{...Wy.theme,...r?.theme}},source:o});return rC(e.explicit)?n(e.explicit,"explicit"):e.legacyConfigTheme&&Object.keys(e.legacyConfigTheme).length>0?(e.warnOnLegacy!==false&&!iC&&L6()&&(iC=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")):rC(e.apiBranding)?n(e.apiBranding,"branding-api"):n(void 0,"default")}function L6(){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 oC="[REDACTED]",V6=/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g,B6=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,M6=/\d(?:[ -]?\d){12,18}/g;function Z6(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 q6(e){let n=0,r=e.replace(V6,()=>(n+=1,oC));return r=r.replace(M6,o=>{let t=o.replace(/[ -]/g,"");return t.length>=13&&t.length<=19&&Z6(t)?(n+=1,oC):o}),{value:r,count:n}}function Yy(e){let n=0,r=o=>{if(typeof o=="string"){let t=q6(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 H6(e){return B6.test(e.trim())}function K6(e){let n=e.trim().toLowerCase();return `eml_${W6(n).slice(0,16)}`}function Qy(e){return H6(e)?{value:K6(e),redacted:true}:{value:e,redacted:false}}function aC(e){let n=Qy(e.user_id??""),r=Yy({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 G6=[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 J6(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 Dr(e,n){return e>>>n|e<<32-n}function W6(e){let n=J6(e),r=n.length*8;for(n.push(128);n.length%64!==56;)n.push(0);for(let g=0;g<4;g+=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,u=2600822924,d=528734635,m=1541459225,p=new Array(64);for(let g=0;g<n.length;g+=64){for(let T=0;T<16;T+=1){let ee=g+T*4;p[T]=(n[ee]<<24|n[ee+1]<<16|n[ee+2]<<8|n[ee+3])>>>0;}for(let T=16;T<64;T+=1){let ee=Dr(p[T-15],7)^Dr(p[T-15],18)^p[T-15]>>>3,Ne=Dr(p[T-2],17)^Dr(p[T-2],19)^p[T-2]>>>10;p[T]=p[T-16]+ee+p[T-7]+Ne>>>0;}let f=o,v=t,$=i,S=s,R=c,E=u,A=d,w=m;for(let T=0;T<64;T+=1){let ee=Dr(R,6)^Dr(R,11)^Dr(R,25),Ne=R&E^~R&A,Le=w+ee+Ne+G6[T]+p[T]>>>0,ae=Dr(f,2)^Dr(f,13)^Dr(f,22),pe=f&v^f&$^v&$,et=ae+pe>>>0;w=A,A=E,E=R,R=S+Le>>>0,S=$,$=v,v=f,f=Le+et>>>0;}o=o+f>>>0,t=t+v>>>0,i=i+$>>>0,s=s+S>>>0,c=c+R>>>0,u=u+E>>>0,d=d+A>>>0,m=m+w>>>0;}return [o,t,i,s,c,u,d,m].map(g=>g.toString(16).padStart(8,"0")).join("")}var sC={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"},cC="control_plane_source";function ex(e,n={}){return {eventName:e,properties:{[cC]:sC[e],...n}}}var Jc=class{constructor(n){C(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 Ti(e){if(e)return e;if(jn())try{return new Jc(window.localStorage)}catch{}return new wa}function tx(e){if(e)return e;if(jn())try{return new Jc(window.sessionStorage)}catch{}return new wa}var X6=/^[a-z0-9._]{1,100}$/,Nt={Persisted:"persisted",Transient:"transient"},Lt={Internal:"internal",External:"external"},Vt={Pii:{"x-revturbine-data-classification":"pii"},Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}};var Y6="readOnly";function hn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[Y6]===true||(n[r]=o);}return a.object(n)}function gn(e){let n=hn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(X6)}):n}var {Unrestricted:an}=Vt,{Transient:On,Persisted:Q6}=Nt,{Internal:fo,External:ei}=Lt;a.object({page:a.coerce.number().int().min(1).default(1).meta(an),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(an)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei});var eN=e=>a.object({items:a.array(e).meta(an),total:a.number().int().min(0).meta(an),page:a.number().int().min(1).meta(an),per_page:a.number().int().min(1).meta(an),has_more:a.boolean().meta(an)}).meta({id:"PaginatedResponse","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei}),oe=a.object({created_at:a.string().datetime().meta({...an,readOnly:true}),updated_at:a.string().datetime().meta({...an,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei}),Q=a.object({id:a.string().min(1).meta({...an,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei}),se=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...an,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":fo});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei});var zm=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":On,"x-revturbine-schema-exposure":ei}),vC=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei}),tN=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":fo});var jt=a.string().min(1).max(200),Ye=a.string().min(1).max(100),go=a.string().max(500).optional(),wt=a.record(a.string(),a.unknown()).default({}),rl=a.number().int().min(10).max(100).multipleOf(10),St=a.string().datetime().nullable().default(null),nt=a.object({environment_id:a.string().min(1).default("production").meta({...an,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":fo}),at=a.object({playbook_version_id:a.string().nullable().default(null).meta(an),is_current:a.boolean().default(true).meta({...an,readOnly:true}),is_deleted:a.boolean().default(false).meta({...an,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...an,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...an,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...an,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":fo}),nN=Q.merge(oe).merge(se).merge(nt).extend({handle:Ye.meta({...an,readOnly:true}),active:a.boolean().default(true).meta({...an,readOnly:true})});function Qt(e){return nN.meta({id:e,"x-revturbine-schema-persistence":Q6,"x-revturbine-schema-exposure":fo})}var hx=a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":fo}),rN=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":On,"x-revturbine-schema-exposure":fo}),yC=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":On,"x-revturbine-schema-exposure":ei}),ze={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},Ir={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},iN="x-revturbine-context",oN="x-revturbine-in-config",aN="x-revturbine-sdk-input",sN="x-revturbine-source",cN="x-revturbine-deprecation",lN={[ze.Playbook]:Ir.Customer,[ze.Branding]:Ir.Customer,[ze.Billing]:Ir.Stripe,[ze.Metering]:Ir.Customer,[ze.CustomerOperations]:Ir.Runtime,[ze.EventIngestion]:Ir.Runtime};function Qe(e,n){return {[iN]:e,[oN]:n.inConfig??e===ze.Playbook,[aN]:n.sdkInput,[sN]:n.source??lN[e]}}function Tm(e){return {deprecated:true,[cN]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var xC={Named:"named",Minted:"minted"},IC="x-revturbine-schema-identity";function bn(e="handle"){return {[IC]:{kind:xC.Named,handleField:e}}}function Qn(e="handle"){return {[IC]:{kind:xC.Minted,handleField:e}}}var J=e=>a.object({items:a.array(e)}),xe=a.object({error:a.string(),code:a.string(),request_id:a.string()}),y=e=>e,W=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:Ke,Financial:Om}=Vt,{Persisted:ll,Transient:Um}=Nt,{External:ti}=Lt,uN=Qe(ze.Playbook,{sdkInput:true}),dN=Qe(ze.Playbook,{sdkInput:false}),bx=Qe(ze.Billing,{sdkInput:false}),Ha=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":Um,"x-revturbine-schema-exposure":ti}),ul=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":Um,"x-revturbine-schema-exposure":ti}),Am=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":Um,"x-revturbine-schema-exposure":ti}),Ua=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Ke,readOnly:true}),name:jt.meta(Ke),handle:Ye.meta(Ke),tier_position:a.number().int().min(0).default(0).meta(Ke),sort_order:a.number().int().default(0).meta(Ke),metadata:wt.meta(Ke)}).meta({id:"Plan","x-revturbine-schema-persistence":ll,"x-revturbine-schema-exposure":ti,...uN,...bn()}),mN=Qt("PlanAnchor"),Aa=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Ke,readOnly:true}),handle:Ye.meta({...Ke,readOnly:true}),plan_id:a.string().min(1).meta(Ke),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(Ke),segment_id:a.string().nullable().default(null).meta(Ke),price_amount:a.number().min(0).meta(Om),pricing_model:ul.meta(Ke),visibility:Ha.default("public").meta(Ke),stripe_price_id:a.string().optional().meta(Ke),price_source:Am.default("static").meta(Ke)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":ll,"x-revturbine-schema-exposure":ti,...bx,...Qn()}),pN=Qt("PlanVariationAnchor"),Da=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Ke,readOnly:true}),name:jt.meta(Ke),handle:Ye.meta(Ke),sort_order:a.number().int().default(0).meta(Ke),metadata:wt.meta(Ke)}).meta({id:"AddOn","x-revturbine-schema-persistence":ll,"x-revturbine-schema-exposure":ti,...dN,...bn()}),fN=Qt("AddOnAnchor"),Fa=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Ke,readOnly:true}),handle:Ye.meta({...Ke,readOnly:true}),addon_id:a.string().min(1).meta(Ke),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(Ke),segment_id:a.string().nullable().default(null).meta(Ke),price_amount:a.number().min(0).meta(Om),pricing_model:ul.meta(Ke),visibility:Ha.default("public").meta(Ke),stripe_price_id:a.string().optional().meta(Ke),price_source:Am.default("static").meta(Ke)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":ll,"x-revturbine-schema-exposure":ti,...bx,...Qn()}),gN=Qt("AddOnVariationAnchor"),hN=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":Um,"x-revturbine-schema-exposure":ti}),Na=Q.merge(oe).merge(se).extend({stripe_price_id:a.string().min(1).meta(Ke),stripe_product_id:a.string().min(1).meta(Ke),billing_period:hN.meta(Ke),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(Om),currency:tN.meta(Om),pricing_model:ul.meta(Ke),nickname:a.string().nullable().default(null).meta(Ke),is_mock:a.boolean().default(false).meta(Ke),last_updated_from_stripe:St.meta(Ke)}).meta({id:"StripePrice","x-revturbine-schema-persistence":ll,"x-revturbine-schema-exposure":ti,...bx});var bN=hn(Ua),_N=hn(Aa),vN=hn(Da),yN=hn(Fa),xN=hn(Na);({"/api/plan-anchors":{get:y({operationId:"listPlanAnchors",requestParams:{query:W},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:J(mN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:y({operationId:"listPlans",requestParams:{query:W},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:J(Ua)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:gn(Ua)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:Ua}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:Ua}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:bN}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:Ua}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:xe}}}},"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:W},summary:"List plan variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan variation anchor list",content:{"application/json":{schema:J(pN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List plan variations",tags:["plans"],responses:{200:{description:"Plan variations",content:{"application/json":{schema:J(Aa)}}}},"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:gn(Aa)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:Aa}}}},"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:Aa}}}},"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:_N}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:Aa}}}},"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:W},summary:"List add-on anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on anchor list",content:{"application/json":{schema:J(fN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:y({operationId:"listAddOns",requestParams:{query:W},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:J(Da)}}}},"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:gn(Da)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:Da}}}},"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:Da}}}},"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:vN}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:Da}}}},"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:W},summary:"List add-on variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on variation anchor list",content:{"application/json":{schema:J(gN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List add-on variations",tags:["plans"],responses:{200:{description:"Add-on variations",content:{"application/json":{schema:J(Fa)}}}},"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:gn(Fa)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:Fa}}}},"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:Fa}}}},"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:yN}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:Fa}}}},"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:W},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:J(Na)}}}},"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:gn(Na)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:Na}}}},"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:Na}}}},"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:xN}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:Na}}}},"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:B}=Vt,{Persisted:_x,Transient:Bt}=Nt,{Internal:SC,External:Ot}=Lt,PC=Qe(ze.Playbook,{sdkInput:true}),IN=Qe(ze.Playbook,{inConfig:false,sdkInput:false}),Ka=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":Bt,"x-revturbine-schema-exposure":Ot}),vx=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),SN=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),PN=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),Dm=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),il=a.object({entitlement_id:a.string().min(1).meta(B),entitlement_handle:a.string().min(1).meta(B),status:SN.meta(B),limit:a.number().optional().meta(B),used:a.number().optional().meta(B),allocation:vx.optional().meta(B),enforcement:Dm.optional().meta(B),source:PN.optional().meta(B),plan_id:a.string().optional().meta(B),segment_id:a.string().optional().meta(B),seat_type_id:a.string().optional().meta(B),rule_id:a.string().optional().meta(B)}).meta({id:"EntitlementGrant","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),il).optional().meta(B),instance:a.record(a.string(),il).optional().meta(B),user:a.record(a.string(),il).optional().meta(B)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot,"x-revturbine-data-classification":"operational"});var kN=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),$N=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),kC=a.object({kind:$N.meta(B),id:a.string().min(1).meta(B)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),$C=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),gx=a.union([a.number(),a.literal("unlimited")]).nullable().optional(),TN=a.looseObject({kind:a.literal("feature").meta(B),enabled:a.boolean().optional().meta(B)}).meta({id:"EntitlementTypeFieldsFeature","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),wN=a.looseObject({kind:a.literal("capability_tier").meta(B),tier_name:a.string().optional().meta(B),tier_description:a.string().optional().meta(B)}).meta({id:"EntitlementTypeFieldsCapabilityTier","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),EN=a.looseObject({kind:a.literal("usage_limit").meta(B),limit_value:gx.meta(B),unit:a.string().optional().meta(B),period:Ka.optional().meta(B),enforcement:Dm.optional().meta(B)}).meta({id:"EntitlementTypeFieldsUsageLimit","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),RN=a.looseObject({kind:a.literal("price_per_unit").meta(B),amount_cents:a.number().optional().meta(B),currency:a.string().optional().meta(B),unit:a.string().optional().meta(B),period:Ka.optional().meta(B)}).meta({id:"EntitlementTypeFieldsPricePerUnit","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),CN=a.looseObject({kind:a.literal("rate_limit").meta(B),rate_value:a.number().optional().meta(B),period_scope:Ka.optional().meta(B),enforcement:Dm.optional().meta(B)}).meta({id:"EntitlementTypeFieldsRateLimit","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),jN=a.looseObject({kind:a.literal("credits").meta(B),allowance:gx.meta(B),initial_grant:a.number().optional().meta(B),unit:a.string().optional().meta(B),period:Ka.optional().meta(B),reset_period:$C.optional().meta(B),rollover:a.boolean().optional().meta(B),max_balance:gx.meta(B),top_up_available:a.boolean().optional().meta(B)}).meta({id:"EntitlementTypeFieldsCredits","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),ON=a.looseObject({kind:a.literal("seat").meta(B),included_seats:a.union([a.number(),a.literal("unlimited")]).optional().meta(B),max_seats:a.union([a.number(),a.literal("unlimited")]).nullable().optional().meta(B),seat_type:a.string().optional().meta(B)}).meta({id:"EntitlementTypeFieldsSeat","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),zN=a.looseObject({}).meta({id:"EntitlementTypeFieldsUntyped","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),UN=[TN,wN,EN,RN,CN,jN,ON],AN=a.union([...UN,zN]).meta({id:"EntitlementTypeFields","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),La=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...B,readOnly:true}),name:jt.meta(B),handle:Ye.meta(B),customer_facing_description:a.string().max(500).optional().meta(B),type:vC.meta(B),unit:a.string().max(100).optional().meta(B),period_scope:Ka.optional().meta(B),allocation:vx.optional().meta(B),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(B),sort_order:a.number().int().default(0).meta(B),metadata:wt.meta(B)}).meta({id:"Entitlement","x-revturbine-schema-persistence":_x,"x-revturbine-schema-exposure":Ot,...PC,...bn()}),DN=Qt("EntitlementAnchor"),sl=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...B,readOnly:true}),handle:Ye.meta({...B,readOnly:true}),entitlement_id:a.string().min(1).meta(B),targets:a.array(kC).min(1).meta(B),segment_ids:a.array(a.string()).default([]).meta(B),visibility:kN.default("public").meta(B),period_scope:Ka.optional().meta(B),instance:a.string().max(100).optional().meta(B),reset_period:$C.optional().meta(B),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(B),enforcement:Dm.optional().meta(B),warning_threshold_percent:rl.optional().meta(B),overage_price_ref:a.string().optional().meta(B),grace_period_hours:a.number().int().min(0).optional().meta(B),tier_value:a.string().optional().meta(B),rate_value:a.number().optional().meta(B),initial_grant:a.number().optional().meta(B),allowance_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(B),rollover_enabled:a.boolean().optional().meta(B),max_balance:a.union([a.number(),a.literal("unlimited")]).nullable().default(null).meta(B),seat_type_id:a.string().optional().meta(B),included_count:a.union([a.number().int(),a.literal("unlimited")]).optional().meta(B),at_limit_behavior:a.enum(["hard_cap","auto_upgrade_at_renewal"]).optional().meta(B),stripe_metered_price_id:a.string().optional().meta(B)}).meta({id:"EntitlementRule","x-revturbine-schema-persistence":_x,"x-revturbine-schema-exposure":SC,...PC,...Qn()}),FN=Qt("EntitlementRuleAnchor");sl.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 NN=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),LN=a.object({code:NN.meta(B),message:a.string().min(1).meta(B),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(B)}).meta({id:"EntitlementRuleWarning","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),nx=sl.extend({warnings:a.array(LN).optional().meta(B)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot});var rx=Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.meta({...B,readOnly:true}),rule_id:a.string().min(1).meta(B),experiment_id:a.string().min(1).meta(B),variant_name:a.string().min(1).max(200).meta(B),is_control:a.boolean().default(false).meta(B),override_fields:a.record(a.string(),a.unknown()).default({}).meta(B)}).meta({id:"EntitlementRuleVariant","x-revturbine-schema-persistence":_x,"x-revturbine-schema-exposure":SC,...IN,...Qn()}),VN=hn(La),BN=hn(sl);({"/api/entitlement-anchors":{get:y({operationId:"listEntitlementAnchors",requestParams:{query:W},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:J(DN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:y({operationId:"listEntitlementRuleAnchors",requestParams:{query:W},summary:"List entitlement rule anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement rule anchor list",content:{"application/json":{schema:J(FN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:y({operationId:"listEntitlements",requestParams:{query:W},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:J(La)}}}},"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:gn(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:y({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:y({operationId:"updateEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Update entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:VN}}},responses:{200:{description:"Updated",content:{"application/json":{schema:La}}}},"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:xe}}}},"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:W},summary:"List rules for entitlement",tags:["entitlements"],responses:{200:{description:"Rule list",content:{"application/json":{schema:J(sl)}}}},"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:gn(sl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:nx}}}},"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:BN}}},responses:{200:{description:"Updated",content:{"application/json":{schema:nx}}}},"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:nx}}}},"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:W},summary:"List A/B variants for rule",tags:["entitlements"],responses:{200:{description:"Variant list",content:{"application/json":{schema:J(rx)}}}},"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:gn(rx)}}},responses:{201:{description:"Created",content:{"application/json":{schema:rx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:re}=Vt,{Persisted:dl,Transient:Oi}=Nt,{External:mr,Internal:MN}=Lt,TC=Qe(ze.Playbook,{sdkInput:true}),ZN=Qe(ze.Playbook,{inConfig:false,sdkInput:false}),qN=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),HN=Qe(ze.Playbook,{inConfig:false,sdkInput:false,source:Ir.Runtime}),KN=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]);var wC=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr}),EC=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr}),GN=a.object({count:a.number().int().positive().meta(re),period:EC.meta(re)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr});a.object({surface_type:a.string().min(1).meta(re),rules:a.array(GN).meta(re),cooldown_ms:a.number().int().nonnegative().optional().meta(re)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":dl,"x-revturbine-schema-exposure":mr,"x-revturbine-data-classification":"operational",...qN});var JN=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":Oi,"x-revturbine-schema-exposure":mr}),Ba=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...re,readOnly:true}),name:jt.meta(re),handle:Ye.meta(re),description:go.meta(re),category:wC.meta(re),drag_order_in_category:a.number().int().default(0).meta(re),surface_slot_id:a.string().optional().meta(re),entitlement_id:a.string().optional().meta(re),tier_threshold:a.string().optional().meta(re),threshold_percent:rl.optional().meta(re),trial_type:a.enum(["free","reverse"]).optional().meta(re),trigger_type:a.string().optional().meta(re),trial_progress_percent:a.number().min(0).max(100).optional().meta(re),days_before_end:a.number().int().min(0).optional().meta(re),qualifier:KN.optional().meta(re),activation_window_start:a.string().datetime().optional().meta(re),activation_window_end:a.string().datetime().optional().meta(re),metadata:wt.meta(re)}).meta({id:"Placement","x-revturbine-schema-persistence":dl,"x-revturbine-schema-exposure":mr,...TC,...bn()}),WN=Qt("PlacementAnchor"),XN=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr}),YN=a.object({code:XN.meta(re),message:a.string().min(1).meta(re),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(re)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr}),lC=Ba.extend({warnings:a.array(YN).optional().meta(re)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr});var QN=a.object({label:a.string().min(1).max(200).meta(re),cta_path_type:JN.meta(re),config_fields:a.record(a.string(),a.unknown()).default({}).meta(re)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr}),tl=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...re,readOnly:true}),handle:Ye.meta({...re,readOnly:true}),placement_id:a.string().min(1).meta(re),drag_order:a.number().int().default(0).meta(re),target_plan_ids:a.array(a.string()).default([]).meta(re),target_plan_billing_cadences:a.array(a.string()).default([]).meta(re),target_segments:a.array(a.string()).default([]).meta(re),surface_slot_ids:a.array(a.string()).default([]).meta(re),surface_template_id:a.string().min(1).meta(re),content_fields:a.record(a.string(),a.unknown()).default({}).meta(re),cta_list:a.array(QN).default([]).meta(re),max_per_period:a.number().int().min(0).nullable().default(null).meta(re),max_period_unit:EC.default("session").meta(re),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(re),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(re),recommendation_plan_override:a.string().optional().meta(re)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":dl,"x-revturbine-schema-exposure":mr,...TC,...Qn()}),eL=Qt("PlacementPayloadAnchor");Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.meta({...re,readOnly:true}),placement_payload_id:a.string().min(1).meta(re),experiment_id:a.string().min(1).meta(re),variant_name:a.string().min(1).max(200).meta(re),is_control:a.boolean().default(false).meta(re),traffic_allocation_percent:a.number().min(0).max(100).meta(re),override_fields:a.record(a.string(),a.unknown()).default({}).meta(re),status:a.enum(["active","paused","complete"]).default("active").meta(re)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":dl,"x-revturbine-schema-exposure":MN,...ZN,...Qn()});var tL=Q.merge(oe).merge(se).merge(nt).merge(at).extend({surface_slot_handle:a.string().min(1).max(200).meta(re),surface_type:zm.meta(re),surface_template_ids:a.array(a.string()).default([]).meta(re),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(re),first_seen:a.string().datetime().meta({...re,readOnly:true}),last_seen:a.string().datetime().meta({...re,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(re),placement_count:a.number().int().min(0).default(0).meta({...re,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":dl,"x-revturbine-schema-exposure":mr,...HN,...bn("surface_slot_handle")}),nL=hn(Ba),rL=hn(tl);({"/api/placement-anchors":{get:y({operationId:"listPlacementAnchors",requestParams:{query:W},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:J(WN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:y({operationId:"listPlacements",requestParams:{query:W},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:J(Ba)}}}},"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:gn(Ba)}}},responses:{201:{description:"Created",content:{"application/json":{schema:lC}}}},"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:Ba}}}},"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:nL}}},responses:{200:{description:"Updated",content:{"application/json":{schema:lC}}}},"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:xe}}}},"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:Ba}}}},"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:wC,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:W},summary:"List placement payload anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement payload anchor list",content:{"application/json":{schema:J(eL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List placement payloads",tags:["placements"],responses:{200:{description:"Payload list",content:{"application/json":{schema:J(tl)}}}},"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:gn(tl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:tl}}}},"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:rL}}},responses:{200:{description:"Updated",content:{"application/json":{schema:tl}}}},"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:W},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:J(tL)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});var {Unrestricted:Oe,Pii:nl}=Vt,{Persisted:RC,Transient:Fm}=Nt,{External:ml}=Lt,yx=a.object({in_trial:a.boolean().meta(Oe),trial_type:a.string().optional().meta(Oe),plan_handle:a.string().optional().meta(Oe),state:a.enum(["active","running_out","expired","converted","none"]).optional().meta(Oe),trial_limit_type:a.enum(["time","usage"]).optional().meta(Oe),progress_percent:a.number().min(0).max(100).optional().meta(Oe),day_number:a.number().int().min(0).optional().meta(Oe),days_remaining:a.number().int().min(0).optional().meta(Oe),usage_entitlement_handle:a.string().optional().meta(Oe),usage_consumed:a.number().int().min(0).optional().meta(Oe),usage_remaining:a.number().int().min(0).optional().meta(Oe),usage_limit:a.number().int().min(0).optional().meta(Oe)}).meta({id:"UserTrialStatus","x-revturbine-schema-persistence":Fm,"x-revturbine-schema-exposure":ml}),CC=a.object({entitlement_handle:a.string().min(1).meta(Oe),unit:a.string().min(1).meta(Oe),amount:a.number().min(0).meta(Oe),limit:a.number().min(0).optional().meta(Oe),reset_date:a.string().optional().meta(Oe)}).meta({id:"UserUsageEntry","x-revturbine-schema-persistence":Fm,"x-revturbine-schema-exposure":ml}),jC=a.object({id:a.string().min(1).meta(Oe),name:a.string().min(1).meta(Oe),price:a.string().optional().meta(Oe),billing_period:a.enum(["monthly","annual","none"]).optional().meta(Oe)}).meta({id:"UserPlanContext","x-revturbine-schema-persistence":Fm,"x-revturbine-schema-exposure":ml}),iL=a.object({product_instance_id:a.string().min(1).meta(Oe),user_id:a.string().min(1).meta(nl),plan:jC.optional().meta(Oe),usage:a.record(a.string(),CC).default({}).meta(Oe),trial:yx.optional().meta(Oe),entitlements:a.record(a.string(),a.union([a.boolean(),il])).default({}).meta(Oe)}).meta({id:"UserInstanceContext","x-revturbine-schema-persistence":RC,"x-revturbine-schema-exposure":ml}),Ea=Q.merge(se).merge(oe).extend({user_id:a.string().min(1).meta(nl),account_id:a.string().min(1).nullable().optional().meta(nl),email:a.string().email().nullable().optional().meta(nl),email_type:a.string().optional().meta(Oe),plan:jC.optional().meta(Oe),usage:a.record(a.string(),CC).default({}).meta(Oe),trial:yx.optional().meta(Oe),payment_failed:a.boolean().optional().meta(Oe),payment_at_risk:a.boolean().optional().meta(Oe),tiers:a.record(a.string(),a.string()).optional().meta(Oe),entitlements:a.record(a.string(),a.union([a.boolean(),il])).default({}).meta(Oe),instances:a.array(iL).optional().meta(Oe),custom:a.record(a.string(),a.union([a.string(),a.number(),a.boolean(),a.null()])).default({}).meta(nl),personalization:a.record(a.string(),a.union([a.string(),a.number()])).default({}).meta({...Oe,"x-revturbine-schema-persistence":Fm}),derived_config_version:a.string().nullable().optional().meta(Oe),context_hash:a.string().nullable().optional().meta(Oe),derived_computed_at:St.meta(Oe)}).meta({id:"UserContext","x-revturbine-schema-persistence":RC,"x-revturbine-schema-exposure":ml});({"/api/user-contexts":{get:y({operationId:"listUserContexts",requestParams:{query:W},summary:"List user contexts",tags:["users"],responses:{200:{description:"User context list",content:{"application/json":{schema:J(Ea)}}}},"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:Ea}}}},"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:Ea.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ea}}}},"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:In,Pii:Za}=Vt,{Persisted:xx,Transient:Ix}=Nt,{Internal:Ga}=Lt,oL=Qe(ze.CustomerOperations,{sdkInput:false}),aL=a.object({external_id:a.string().min(1).meta(Za),traits:a.record(a.string(),a.unknown()).default({}).meta(Za),plan_id:a.string().optional().meta(In)}).meta({id:"Identity","x-revturbine-schema-persistence":xx,"x-revturbine-schema-exposure":Ga}),uC=Q.merge(oe).merge(se).extend({external_id:a.string().min(1).meta(Za),identity:aL.meta(Za),stripe_customer_id:a.string().optional().meta(In),current_plan_id:a.string().optional().meta(In),subscription_status:a.enum(["active","past_due","canceled","trialing","unpaid","none"]).default("none").meta(In),status:a.enum(["active","churned","trial","suspended"]).default("active").meta(In),metadata:wt.meta(In)}).meta({id:"Customer","x-revturbine-schema-persistence":xx,"x-revturbine-schema-exposure":Ga}),sL=a.enum(["permanent","for_duration"]).meta({id:"CustomerOverrideDuration","x-revturbine-schema-persistence":Ix,"x-revturbine-schema-exposure":Ga}),cL=a.enum(["grant_plan","grant_addon","grant_entitlement"]).meta({id:"CustomerOverrideType","x-revturbine-schema-persistence":Ix,"x-revturbine-schema-exposure":Ga}),lL=a.enum(["active","expired","revoked"]).meta({id:"CustomerOverrideStatus","x-revturbine-schema-persistence":Ix,"x-revturbine-schema-exposure":Ga}),wi=Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.meta({...In,readOnly:true}),customer_id:a.string().min(1).meta(Za),customer_id_list:a.array(a.string()).optional().meta(Za),override_type:cL.meta(In),target_id:a.string().min(1).meta(In),value:a.record(a.string(),a.unknown()).default({}).meta(In),duration_type:sL.default("permanent").meta(In),duration_value:a.string().optional().meta(In),expiry_date:St.meta(In),status:lL.default("active").meta(In),reason:a.string().max(500).optional().meta(In),created_by:a.string().optional().meta(In)}).meta({id:"CustomerOverride","x-revturbine-schema-persistence":xx,"x-revturbine-schema-exposure":Ga,...oL,...Qn()});({"/api/customers":{get:y({operationId:"listCustomers",requestParams:{query:W},summary:"List customers",tags:["customers"],responses:{200:{description:"Customer list",content:{"application/json":{schema:J(uC)}}}},"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:uC}}}},"x-revturbine-operation":{exposure:"internal",resource:"customers",persistence:{table:"customers",mode:"get"}}})},"/api/customer-overrides":{get:y({operationId:"listCustomerOverrides",requestParams:{query:W},summary:"List customer overrides",tags:["customers"],responses:{200:{description:"Override list",content:{"application/json":{schema:J(wi)}}}},"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:wi}}}},"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:wi.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:wi}}}},"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:wi}}}},"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:wi}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"create"}}})}});var {Unrestricted:Gt}=Vt,{Persisted:Sx,Transient:OC}=Nt,{Internal:pl}=Lt,uL=Qe(ze.Playbook,{sdkInput:true}),zC=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),dL=a.enum(["default","custom"]).meta({id:"DimensionCategory","x-revturbine-schema-persistence":OC,"x-revturbine-schema-exposure":pl}),mL=a.enum(["system","sdk_trait","sdk_trait_enum","cdp_property","manual_list"]).meta({id:"DimensionSourceType","x-revturbine-schema-persistence":OC,"x-revturbine-schema-exposure":pl}),ix=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),name:jt.meta(Gt),handle:Ye.optional().meta(Gt),category:dL.default("custom").meta(Gt),visibility_toggle:a.boolean().default(true).meta(Gt),source_type:mL.default("system").meta(Gt),estimated_size:a.number().int().min(0).optional().meta(Gt)}).meta({id:"SegmentDimension","x-revturbine-schema-persistence":Sx,"x-revturbine-schema-exposure":pl,...zC,...bn()}),pL=Qt("SegmentDimensionAnchor"),ox=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),dimension_id:a.string().min(1).meta(Gt),name:jt.meta(Gt),handle:Ye.meta(Gt),description:go.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":Sx,"x-revturbine-schema-exposure":pl,...zC,...bn()}),fL=Qt("SegmentValueAnchor");Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),name:jt.meta(Gt),handle:Ye.meta(Gt),description:go.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:wt.meta(Gt)}).meta({id:"Segment","x-revturbine-schema-persistence":Sx,"x-revturbine-schema-exposure":pl,...uL,...bn()});({"/api/segment-dimension-anchors":{get:y({operationId:"listSegmentDimensionAnchors",requestParams:{query:W},summary:"List segment dimension anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment dimension anchor list",content:{"application/json":{schema:J(pL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-dimension-anchors",persistence:{table:"segmentDimensions",mode:"list"}}})},"/api/segment-value-anchors":{get:y({operationId:"listSegmentValueAnchors",requestParams:{query:W},summary:"List segment value anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment value anchor list",content:{"application/json":{schema:J(fL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-value-anchors",persistence:{table:"segmentValues",mode:"list"}}})},"/api/segments":{get:y({operationId:"listSegmentDimensions",requestParams:{query:W},summary:"List segment dimensions",tags:["segments"],responses:{200:{description:"Dimension list",content:{"application/json":{schema:J(ix)}}}},"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:ix}}}},"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:xe}}}},"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:ix}}}},"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:W},summary:"List segment values for dimension",tags:["segments"],responses:{200:{description:"Value list",content:{"application/json":{schema:J(ox)}}}},"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:ox}}}},"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:ox}}}},"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:ye}=Vt,{Persisted:Ja,Transient:UC}=Nt,{External:zi}=Lt,Px=Qe(ze.Playbook,{sdkInput:true}),gL=Qe(ze.Playbook,{inConfig:false,sdkInput:false}),hL=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),bL=Qe(ze.Playbook,{inConfig:false,sdkInput:true,source:Ir.CodeConstant});Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true}),handle:Ye.meta({...ye,readOnly:true}),name:jt.meta(ye),channel:a.enum(["in_app","email","push","sms","webhook"]).meta(ye),subject:a.string().max(500).optional().meta(ye),body:a.string().meta(ye),template_variables:a.array(a.string()).default([]).meta(ye),metadata:wt.meta(ye)}).meta({id:"Message","x-revturbine-schema-persistence":Ja,"x-revturbine-schema-exposure":zi,...gL,...Qn()});var ax=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true}),name:jt.meta(ye),handle:Ye.meta(ye),action_type:yC.meta(ye),target_url:a.string().optional().meta(ye),target_plan_id:a.string().optional().meta(ye),config_fields:a.record(a.string(),a.unknown()).default({}).meta(ye),metadata:wt.meta(ye)}).meta({id:"CtaPath","x-revturbine-schema-persistence":Ja,"x-revturbine-schema-exposure":zi,...Px,...bn()}),_L=Qt("CtaPathAnchor"),vL=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":Ja,"x-revturbine-schema-exposure":zi,...bL}),yL=a.object({name:a.string().min(1),field_type:vL,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":Ja,"x-revturbine-schema-exposure":zi,...hL}),sx=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true}),name:jt.meta(ye),handle:Ye.meta(ye),surface_type:rN.meta(ye),field_definitions:a.array(yL).default([]).meta(ye),description:go.meta(ye)}).meta({id:"SurfaceTemplate","x-revturbine-schema-persistence":Ja,"x-revturbine-schema-exposure":zi,...Px,...bn()}),xL=Qt("SurfaceTemplateAnchor"),cx=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true}),name:jt.meta(ye),handle:Ye.meta(ye),content_fields:a.record(a.string(),a.unknown()).default({}).meta(ye),variation_dimension_id:a.string().optional().meta(ye),variation_values:a.array(a.object({segment_value_id:a.string(),content_fields_override:a.record(a.string(),a.unknown())})).optional().meta(ye),notes:a.string().max(1e3).optional().meta(ye),used_in_count:a.number().int().min(0).default(0).meta({...ye,readOnly:true})}).meta({id:"MessageBlockRecord","x-revturbine-schema-persistence":Ja,"x-revturbine-schema-exposure":zi,...Px,...bn()}),IL=Qt("MessageBlockRecordAnchor"),SL=a.object({segment_id:a.string().min(1).meta(ye),message_block_id:a.string().min(1).meta(ye),ui_path_id:a.string().optional().meta(ye),promotion_id:a.string().optional().meta(ye)}).meta({id:"ContentPayloadSegmentEntry","x-revturbine-schema-persistence":UC,"x-revturbine-schema-exposure":zi});a.object({payload_id:a.string().min(1).meta(ye),tenant_id:a.string().min(1).meta(ye),name:jt.meta(ye),surface_template_id:a.string().min(1).meta(ye),default_message_block_id:a.string().min(1).meta(ye),segment_content_map:a.array(SL).optional().meta(ye),ui_path_id:a.string().optional().meta(ye),promotion_id:a.string().optional().meta(ye),status:a.enum(["draft","active","inactive"]).meta(ye),created_at:a.string().datetime().optional().meta({...ye,readOnly:true}),updated_at:a.string().datetime().optional().meta({...ye,readOnly:true})}).meta({id:"ContentPlacementPayload","x-revturbine-schema-persistence":UC,"x-revturbine-schema-exposure":zi});({"/api/surface-template-anchors":{get:y({operationId:"listSurfaceTemplateAnchors",requestParams:{query:W},summary:"List surface template anchors (identity registry)",tags:["content"],responses:{200:{description:"Surface template anchor list",content:{"application/json":{schema:J(xL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"surface-template-anchors",persistence:{table:"surfaceTemplates",mode:"list"}}})},"/api/surface-templates":{get:y({operationId:"listSurfaceTemplates",requestParams:{query:W},summary:"List surface templates",tags:["content"],responses:{200:{description:"Template list",content:{"application/json":{schema:J(sx)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-templates",persistence:{table:"surfaceTemplateVersions",mode:"list"}}})},"/api/message-block-record-anchors":{get:y({operationId:"listMessageBlockRecordAnchors",requestParams:{query:W},summary:"List message block anchors (identity registry)",tags:["content"],responses:{200:{description:"Message block anchor list",content:{"application/json":{schema:J(IL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"message-block-record-anchors",persistence:{table:"messageBlocks",mode:"list"}}})},"/api/messages":{get:y({operationId:"listMessageBlocks",requestParams:{query:W},summary:"List message blocks",tags:["content"],responses:{200:{description:"Message block list",content:{"application/json":{schema:J(cx)}}}},"x-revturbine-operation":{exposure:"external",resource:"message-blocks",persistence:{table:"messageBlockVersions",mode:"list"}}})},"/api/cta-path-anchors":{get:y({operationId:"listCtaPathAnchors",requestParams:{query:W},summary:"List CTA path anchors (identity registry)",tags:["content"],responses:{200:{description:"CTA path anchor list",content:{"application/json":{schema:J(_L)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"cta-path-anchors",persistence:{table:"ctaPaths",mode:"list"}}})},"/api/cta-paths":{get:y({operationId:"listCtaPaths",requestParams:{query:W},summary:"List CTA paths",tags:["content"],responses:{200:{description:"CTA path list",content:{"application/json":{schema:J(ax)}}}},"x-revturbine-operation":{exposure:"external",resource:"cta-paths",persistence:{table:"ctaPathVersions",mode:"list"}}})}});var {Unrestricted:Ma,Pii:PL}=Vt,{Persisted:AC}=Nt,{Internal:kL,External:$L}=Lt,TL=Qe(ze.Branding,{sdkInput:false});a.object({id:a.string().min(1).meta({...Ma,readOnly:true}),name:a.string().min(1).max(120).meta(Ma),mode:a.enum(["light","dark","system"]).default("system").meta(Ma),tokens:a.record(a.string(),a.string()).default({}).meta(Ma)}).meta({id:"Theme","x-revturbine-schema-persistence":AC,"x-revturbine-schema-exposure":$L,...TL});var dC=Q.merge(oe).extend({user_id:a.string().min(1).meta(PL),scope:a.string().min(1).meta(Ma),preferences:a.record(a.string(),a.unknown()).default({}).meta(Ma)}).meta({id:"UiPreference","x-revturbine-schema-persistence":AC,"x-revturbine-schema-exposure":kL});({"/api/ui-preferences":{get:y({operationId:"listUiPreferences",requestParams:{query:W},summary:"List UI preferences",tags:["ui"],responses:{200:{description:"UI preferences list response",content:{"application/json":{schema:J(dC)}}}},"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(hn(dC))}}},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:Ie,Financial:Fr}=Vt,{Persisted:DC,Transient:fl}=Nt,{External:gl,Internal:FC}=Lt,wL=a.object({month:a.string().meta(Ie),cohort_size:a.number().int().min(0).meta(Ie),retained:a.number().int().min(0).meta(Ie),retention_rate:a.number().min(0).max(1).meta(Ie),revenue_cents:a.number().int().min(0).meta(Fr)}).meta({id:"CohortMonth","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":gl}),EL=a.object({step:a.string().meta(Ie),label:a.string().meta(Ie),count:a.number().int().min(0).meta(Ie),conversion_rate:a.number().min(0).max(1).meta(Ie),drop_off_rate:a.number().min(0).max(1).meta(Ie)}).meta({id:"FunnelStep","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":gl}),RL=a.object({placement_id:a.string().meta(Ie),placement_name:a.string().meta(Ie),impressions:a.number().int().min(0).meta(Ie),clicks:a.number().int().min(0).meta(Ie),conversions:a.number().int().min(0).meta(Ie),ctr:a.number().min(0).meta(Ie),conversion_rate:a.number().min(0).meta(Ie),revenue_cents:a.number().int().min(0).meta(Fr)}).meta({id:"PlacementPerformanceRow","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":gl}),CL=a.object({date:a.string().meta(Ie),mrr_cents:a.number().int().min(0).meta(Fr),arr_cents:a.number().int().min(0).meta(Fr),new_mrr_cents:a.number().int().min(0).meta(Fr),churned_mrr_cents:a.number().int().min(0).meta(Fr),expansion_mrr_cents:a.number().int().min(0).meta(Fr),net_new_mrr_cents:a.number().int().meta(Fr)}).meta({id:"RevenueMetric","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":gl}),jL=a.object({metric_key:a.string().min(1).meta(Ie),label:a.string().meta(Ie),current_value:a.number().meta(Fr),previous_value:a.number().nullable().default(null).meta(Fr),change_percent:a.number().nullable().default(null).meta(Ie),period:a.string().meta(Ie),unit:a.enum(["count","cents","percent","ratio","seconds"]).default("count").meta(Ie)}).meta({id:"KpiAggregate","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":gl}),mC=Q.merge(oe).merge(se).extend({report_type:a.enum(["plan_drift","entitlement_drift","usage_anomaly","revenue_anomaly"]).meta(Ie),severity:hx.meta(Ie),resource_type:a.string().min(1).meta(Ie),resource_id:a.string().min(1).meta(Ie),summary:a.string().max(1e3).meta(Ie),expected_value:a.unknown().optional().meta(Ie),actual_value:a.unknown().optional().meta(Ie),affected_customer_count:a.number().int().min(0).default(0).meta(Ie),is_resolved:a.boolean().default(false).meta(Ie),resolved_at:St.meta(Ie),metadata:wt.meta(Ie)}).meta({id:"DriftReport","x-revturbine-schema-persistence":DC,"x-revturbine-schema-exposure":FC}),pC=Q.merge(oe).merge(se).extend({alert_type:a.enum(["usage_threshold","revenue_drop","conversion_drop","experiment_significance","drift_detected","custom"]).meta(Ie),severity:hx.meta(Ie),title:a.string().min(1).max(300).meta(Ie),description:a.string().max(2e3).meta(Ie),resource_type:a.string().optional().meta(Ie),resource_id:a.string().optional().meta(Ie),is_acknowledged:a.boolean().default(false).meta(Ie),acknowledged_at:St.meta(Ie),acknowledged_by:a.string().nullable().default(null).meta(Ie),metadata:wt.meta(Ie)}).meta({id:"Alert","x-revturbine-schema-persistence":DC,"x-revturbine-schema-exposure":FC});({"/api/analytics/kpis":{get:y({operationId:"listKpiAggregates",requestParams:{query:W},summary:"List KPI aggregate metrics",tags:["analytics"],responses:{200:{description:"KPI list",content:{"application/json":{schema:J(jL)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"kpiAggregates",mode:"list"}}})},"/api/analytics/placement-performance":{get:y({operationId:"listPlacementPerformance",requestParams:{query:W},summary:"List placement performance rows",tags:["analytics"],responses:{200:{description:"Performance rows",content:{"application/json":{schema:J(RL)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"placementPerformance",mode:"list"}}})},"/api/analytics/revenue":{get:y({operationId:"listRevenueMetrics",requestParams:{query:W},summary:"List revenue metrics over time",tags:["analytics"],responses:{200:{description:"Revenue metrics",content:{"application/json":{schema:J(CL)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"revenueMetrics",mode:"list"}}})},"/api/analytics/cohorts":{get:y({operationId:"listCohortMetrics",requestParams:{query:W},summary:"List cohort retention metrics",tags:["analytics"],responses:{200:{description:"Cohort metrics",content:{"application/json":{schema:J(wL)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"cohortMetrics",mode:"list"}}})},"/api/analytics/funnels":{get:y({operationId:"listFunnelSteps",requestParams:{query:W},summary:"List funnel step metrics",tags:["analytics"],responses:{200:{description:"Funnel steps",content:{"application/json":{schema:J(EL)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"funnelSteps",mode:"list"}}})},"/api/analytics/drift-reports":{get:y({operationId:"listDriftReports",requestParams:{query:W},summary:"List drift reports",tags:["analytics"],responses:{200:{description:"Drift reports",content:{"application/json":{schema:J(mC)}}}},"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:mC}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"driftReports",mode:"update"}}})},"/api/analytics/alerts":{get:y({operationId:"listAlerts",requestParams:{query:W},summary:"List alerts",tags:["analytics"],responses:{200:{description:"Alert list",content:{"application/json":{schema:J(pC)}}}},"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:pC}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"alerts",mode:"update"}}})}});var {Unrestricted:M,Pii:qa}=Vt,{Persisted:NC,Transient:Et}=Nt,{Internal:Ui,External:sn}=Lt,LC=a.enum(["clickstream","telemetry","sdk","workflow","system"]).meta({id:"EventSource","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn}),OL=Q.extend({event_type:a.string().min(1).meta(M),source:LC.default("sdk").meta(M),tenant_id:a.string().min(1).optional().meta(M),user_id:a.string().min(1).optional().meta(qa),session_id:a.string().min(1).optional().meta(qa),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":Et,"x-revturbine-schema-exposure":Ui}),zL=OL.extend({ingested_at:a.string().datetime().meta(M)}).meta({id:"IngestedEvent","x-revturbine-schema-persistence":NC,"x-revturbine-schema-exposure":Ui});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(qa),session_id:a.string().min(1).optional().meta(qa),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":Et,"x-revturbine-schema-exposure":Ui});var UL=a.enum(["impression","dismiss","remind_me_later","cta_clicked","cta_completed","suppress"]).meta({id:"TreatmentInteractionType","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});a.object({user_id:a.string().min(1).meta(qa),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:UL.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":Et,"x-revturbine-schema-exposure":sn});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":Et,"x-revturbine-schema-exposure":sn});a.object({days_remaining:a.number().int().min(0).optional().meta(M)}).meta({id:"TrialTriggerPayload","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});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":Et,"x-revturbine-schema-exposure":sn});a.object({feature:a.string().min(1).meta(M)}).meta({id:"FeatureGateTriggerPayload","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});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":Et,"x-revturbine-schema-exposure":sn});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":Et,"x-revturbine-schema-exposure":sn});var DL=a.enum(["system","workflow"]).meta({id:"ControlPlaneEventSource","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn}),FL=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":Et,"x-revturbine-schema-exposure":sn});a.object({event_type:FL.meta(M),source:DL.meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M)}).meta({id:"ControlPlaneSemanticEvent","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});a.object({q:a.string().optional().meta(M),source:LC.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":Et,"x-revturbine-schema-exposure":Ui});var NL=a.enum(["stripe","apple","google"]).meta({id:"WebhookEventSource","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":Ui}),LL=a.enum(["processed","failed","skipped"]).meta({id:"WebhookEventStatus","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":Ui}),lx=Q.merge(oe).merge(se).extend({event_id:a.string().min(1).meta(M),event_type:a.string().min(1).meta(M),source:NL.meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M),status:LL.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":NC,"x-revturbine-schema-exposure":Ui});a.object({accepted:a.number().int().min(0).meta(M)}).meta({id:"null","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":Ui});var VL=500,BL=a.enum(["explicit","automatic","derived","raw"]).meta({id:"EventOrigin","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn}),ML=a.object({environment_id:a.string().min(1).meta(M),user_id:a.string().min(1).meta(qa),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:BL.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":Et,"x-revturbine-schema-exposure":sn});a.object({events:a.array(ML).min(1).max(VL).meta(M)}).meta({id:"TrackIngestBatch","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});var qL=10,HL=a.enum(["sdk_init","sdk_error","sdk_validation_warning"]).meta({id:"SdkMetaEventType","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn}),KL=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":Et,"x-revturbine-schema-exposure":sn}),GL=a.object({event_type:HL.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:KL.optional().meta(M),message:a.string().max(500).optional().meta(M)}).meta({id:"SdkMetaEvent","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});a.object({events:a.array(GL).min(1).max(qL).meta(M)}).meta({id:"SdkMetaIngestBatch","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});({"/api/events/search":{get:y({operationId:"searchEvents",summary:"Search ingested events",tags:["events"],responses:{200:{description:"Paginated event results",content:{"application/json":{schema:eN(zL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"events"}})},"/api/webhook-events":{get:y({operationId:"listWebhookEvents",requestParams:{query:W},summary:"List webhook event log entries",tags:["events"],responses:{200:{description:"Webhook event list",content:{"application/json":{schema:J(lx)}}}},"x-revturbine-operation":{exposure:"internal",resource:"webhook-events",persistence:{table:"webhookEventLog",mode:"list"}}})}});var {Unrestricted:ue}=Vt,{Persisted:hl,Transient:bl}=Nt,{Internal:Nr}=Lt,VC=Qe(ze.Playbook,{sdkInput:true}),BC=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),WL=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":Nr}),kx=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":Nr}),MC=a.object({name:jt.meta(ue),handle:Ye.meta(ue),plan_id:a.string().nullable().optional().meta(ue),segment_id:a.string().nullable().optional().meta(ue),trial_limit_type:kx.default("time").meta(ue),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ue),grace_period_days:a.number().int().min(0).default(0).meta(ue),usage_entitlement_handle:a.string().min(1).optional().meta(ue),usage_limit_value:a.number().int().min(1).optional().meta(ue),require_payment_method:a.boolean().default(false).meta(ue),auto_convert:a.boolean().default(true).meta(ue),convert_to_plan_id:a.string().optional().meta(ue),fallback_plan_id:a.string().optional().meta(ue),limit_per_customer:a.number().int().min(1).default(1).meta(ue),is_active:a.boolean().default(true).meta(ue),metadata:wt.meta(ue)}),Ra=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true})}).merge(MC).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":Nr,...VC,...bn()}),XL=Qt("FreeTrialRuleAnchor"),YL=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":Nr}),ZC=a.object({name:jt.meta(ue),handle:Ye.meta(ue),premium_plan_id:a.string().min(1).meta(ue),fallback_plan_id:a.string().min(1).meta(ue),segment_id:a.string().nullable().optional().meta(ue),trial_limit_type:kx.default("time").meta(ue),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ue),usage_entitlement_handle:a.string().min(1).optional().meta(ue),usage_limit_value:a.number().int().min(1).optional().meta(ue),start_policy:YL.default("signup").meta(ue),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(ue),entitlements_during_trial:a.array(a.string()).default([]).meta(ue),is_active:a.boolean().default(true).meta(ue),metadata:wt.meta(ue)}),Ca=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true})}).merge(ZC).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":Nr,...VC,...bn()}),QL=Qt("ReverseTrialRuleAnchor"),qC=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":Nr}),HC=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":Nr}),ja=Q.merge(oe).merge(se).extend({trial_limit_policy:qC.default("1_per_lifetime").meta(ue),eligibility_scope:HC.default("per_customer").meta(ue)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":Nr,...BC}),Oa=Q.merge(oe).merge(se).extend({trial_limit_policy:qC.default("1_per_lifetime").meta(ue),eligibility_scope:HC.default("per_customer").meta(ue)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":Nr,...BC}),wm=Q.merge(oe).merge(se).extend({customer_id:a.string().min(1).meta(ue),rule_id:a.string().min(1).meta(ue),rule_type:a.enum(["free_trial","reverse_trial"]).meta(ue),plan_id:a.string().min(1).meta(ue),status:WL.default("active").meta(ue),started_at:a.string().datetime().meta({...ue,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(ue),trial_limit_type:kx.default("time").meta(ue),usage_entitlement_handle:a.string().min(1).optional().meta(ue),usage_limit_value:a.number().int().min(1).optional().meta(ue),converted_at:St.meta(ue),cancelled_at:St.meta(ue),metadata:wt.meta(ue)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":Nr});({"/api/free-trial-rule-anchors":{get:y({operationId:"listFreeTrialRuleAnchors",requestParams:{query:W},summary:"List free trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Free trial rule anchor list",content:{"application/json":{schema:J(XL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:J(Ra)}}}},"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:Ra}}}},"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:Ra.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ra}}}},"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:W},summary:"List reverse trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Reverse trial rule anchor list",content:{"application/json":{schema:J(QL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:J(Ca)}}}},"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:Ca}}}},"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:Ca.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ca}}}},"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:W},summary:"List free trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Free trial settings list",content:{"application/json":{schema:J(ja)}}}},"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:ja}}}},"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:ja.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ja}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"update"}}})},"/api/trials/reverse-settings":{get:y({operationId:"listReverseTrialSettings",requestParams:{query:W},summary:"List reverse trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Reverse trial settings list",content:{"application/json":{schema:J(Oa)}}}},"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:Oa}}}},"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:Oa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Oa}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:y({operationId:"listTrialInstances",requestParams:{query:W},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:J(wm)}}}},"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:wm}}}},"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:wm}}}},"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:wm}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:pt}=Vt,{Persisted:$x,Transient:KC}=Nt,{Internal:_l}=Lt,GC=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),eV=a.enum(["draft","ramping","winning","neutral","needs_attention","paused","complete"]).meta({id:"ExperimentStatus","x-revturbine-schema-persistence":KC,"x-revturbine-schema-exposure":_l}),tV=a.enum(["placement_ab","entitlement_ab","plan_ab","pricing_ab","custom"]).meta({id:"ExperimentType","x-revturbine-schema-persistence":KC,"x-revturbine-schema-exposure":_l}),nV=a.object({variant_id:a.string().min(1),name:jt,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":$x,"x-revturbine-schema-exposure":_l,...GC}),Yr=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...pt,readOnly:true}),name:jt.meta(pt),handle:Ye.meta(pt),description:a.string().max(1e3).optional().meta(pt),experiment_type:tV.meta(pt),status:eV.default("draft").meta(pt),target_resource_id:a.string().optional().meta(pt),target_segment_ids:a.array(a.string()).default([]).meta(pt),variants:a.array(nV).min(2).meta(pt),primary_metric:a.string().min(1).meta(pt),metric_threshold:a.number().default(.05).meta(pt),secondary_metrics:a.array(a.string()).default([]).meta(pt),traffic_allocation:a.number().min(0).max(1).default(1).meta(pt),started_at:St.meta(pt),ended_at:St.meta(pt),confidence_threshold:a.number().min(0).max(1).default(.95).meta(pt),winning_variant_id:a.string().nullable().default(null).meta(pt),metadata:wt.meta(pt)}).meta({id:"Experiment","x-revturbine-schema-persistence":$x,"x-revturbine-schema-exposure":_l,...GC,...bn()}),rV=Qt("ExperimentAnchor"),iV=hx,fC=Q.merge(oe).merge(se).extend({experiment_id:a.string().optional().meta(pt),resource_type:a.string().min(1).meta(pt),resource_id:a.string().min(1).meta(pt),severity:iV.default("info").meta(pt),title:a.string().min(1).max(300).meta(pt),description:a.string().max(2e3).meta(pt),suggested_action:a.string().max(1e3).optional().meta(pt),estimated_impact:a.number().optional().meta(pt),is_dismissed:a.boolean().default(false).meta(pt),metadata:wt.meta(pt)}).meta({id:"OptimizationSuggestion","x-revturbine-schema-persistence":$x,"x-revturbine-schema-exposure":_l});({"/api/experiment-anchors":{get:y({operationId:"listExperimentAnchors",requestParams:{query:W},summary:"List experiment anchors (identity registry)",tags:["experiments"],responses:{200:{description:"Experiment anchor list",content:{"application/json":{schema:J(rV)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiment-anchors",persistence:{table:"experiments",mode:"list"}}})},"/api/experiments":{get:y({operationId:"listExperiments",requestParams:{query:W},summary:"List experiments",tags:["experiments"],responses:{200:{description:"Experiment list",content:{"application/json":{schema:J(Yr)}}}},"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:Yr}}}},"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:Yr.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Yr}}}},"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:Yr}}}},"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:Yr}}}},"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:Yr}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}})},"/api/optimization-suggestions":{get:y({operationId:"listOptimizationSuggestions",requestParams:{query:W},summary:"List optimization suggestions",tags:["experiments"],responses:{200:{description:"Suggestion list",content:{"application/json":{schema:J(fC)}}}},"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:fC}}}},"x-revturbine-operation":{exposure:"internal",resource:"optimization-suggestions",persistence:{table:"optimizationSuggestions",mode:"update"}}})}});var {Unrestricted:dn,Financial:gC}=Vt,{Persisted:oV,Transient:JC}=Nt,{Internal:Tx}=Lt,aV=Qe(ze.Playbook,{sdkInput:true}),sV=a.enum(["draft","scheduled","live","expired","archived"]).meta({id:"PromotionStatus","x-revturbine-schema-persistence":JC,"x-revturbine-schema-exposure":Tx}),cV=a.enum(["percentage","fixed_amount","free_months"]).meta({id:"DiscountType","x-revturbine-schema-persistence":JC,"x-revturbine-schema-exposure":Tx}),Ei=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...dn,readOnly:true}),name:jt.meta(dn),handle:Ye.meta(dn),description:a.string().max(1e3).optional().meta(dn),rt_status:sV.default("draft").meta(dn),discount_type:cV.meta(dn),discount_value:a.number().min(0).meta(gC),currency:a.string().length(3).default("USD").meta(gC),applicable_plan_ids:a.array(a.string()).default([]).meta(dn),applicable_addon_ids:a.array(a.string()).default([]).meta(dn),target_segment_ids:a.array(a.string()).default([]).meta(dn),max_redemptions:a.number().int().min(0).nullable().default(null).meta(dn),current_redemptions:a.number().int().min(0).default(0).meta({...dn,readOnly:true}),coupon_code:a.string().max(100).optional().meta(dn),starts_at:St.meta(dn),ends_at:St.meta(dn),stripe_coupon_id:a.string().nullable().default(null).meta(dn),stripe_promotion_code_id:a.string().nullable().default(null).meta(dn),auto_sync_stripe:a.boolean().default(false).meta(dn),metadata:wt.meta(dn)}).meta({id:"Promotion","x-revturbine-schema-persistence":oV,"x-revturbine-schema-exposure":Tx,...aV,...bn()}),lV=Qt("PromotionAnchor");({"/api/promotion-anchors":{get:y({operationId:"listPromotionAnchors",requestParams:{query:W},summary:"List promotion anchors (identity registry)",tags:["promotions"],responses:{200:{description:"Promotion anchor list",content:{"application/json":{schema:J(lV)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotion-anchors",persistence:{table:"promotions",mode:"list"}}})},"/api/promotions":{get:y({operationId:"listPromotions",requestParams:{query:W},summary:"List promotions",tags:["promotions"],responses:{200:{description:"Promotion list",content:{"application/json":{schema:J(Ei)}}}},"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:Ei}}}},"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:Ei.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ei}}}},"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:Ei}}}},"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:Ei}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"create"}}})}});var {Unrestricted:It,Pii:wx}=Vt,{Persisted:Ex}=Nt,{Internal:Rx}=Lt,uV=Q.merge(oe).merge(se).extend({customer_id:a.string().min(1).meta(wx),placement_id:a.string().min(1).meta(It),payload_id:a.string().nullable().default(null).meta(It),variant_id:a.string().nullable().default(null).meta(It),surface_type:a.string().meta(It),presented_at:a.string().datetime().meta({...It,readOnly:true}),dismissed_at:St.meta(It),cta_clicked_at:St.meta(It),cta_action_type:a.string().nullable().default(null).meta(It),converted:a.boolean().default(false).meta(It),session_id:a.string().optional().meta(It),metadata:wt.meta(It)}).meta({id:"PresentationRecord","x-revturbine-schema-persistence":Ex,"x-revturbine-schema-exposure":Rx}),dV=Q.merge(oe).merge(se).extend({customer_id:a.string().min(1).meta(wx),placement_id:a.string().min(1).meta(It),decision:a.enum(["show","suppress","defer"]).meta(It),reason:a.string().max(500).meta(It),matched_rules:a.array(a.object({rule_id:a.string(),rule_type:a.string(),matched:a.boolean()})).default([]).meta(It),experiment_id:a.string().nullable().default(null).meta(It),variant_id:a.string().nullable().default(null).meta(It),latency_ms:a.number().min(0).optional().meta(It)}).meta({id:"DecisionLog","x-revturbine-schema-persistence":Ex,"x-revturbine-schema-exposure":Rx}),mV=Q.merge(oe).merge(se).extend({customer_id:a.string().min(1).meta(wx),entitlement_handle:a.string().min(1).meta(It),entitlement_type:a.string().meta(It),result:a.enum(["granted","denied","limited","metered"]).meta(It),current_usage:a.number().nullable().default(null).meta(It),limit:a.number().nullable().default(null).meta(It),source:a.enum(["plan","addon","override","trial"]).meta(It),source_id:a.string().min(1).meta(It),latency_ms:a.number().min(0).optional().meta(It)}).meta({id:"EntitlementEvalLog","x-revturbine-schema-persistence":Ex,"x-revturbine-schema-exposure":Rx});({"/api/presentation-records":{get:y({operationId:"listPresentationRecords",requestParams:{query:W},summary:"List presentation records",tags:["runtime"],responses:{200:{description:"Presentation records",content:{"application/json":{schema:J(uV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"presentation-records",persistence:{table:"presentationRecords",mode:"list"}}})},"/api/decision-logs":{get:y({operationId:"listDecisionLogs",requestParams:{query:W},summary:"List decision logs",tags:["runtime"],responses:{200:{description:"Decision logs",content:{"application/json":{schema:J(dV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"decision-logs",persistence:{table:"decisionLogs",mode:"list"}}})},"/api/entitlement-eval-logs":{get:y({operationId:"listEntitlementEvalLogs",requestParams:{query:W},summary:"List entitlement evaluation logs",tags:["runtime"],responses:{200:{description:"Entitlement eval logs",content:{"application/json":{schema:J(mV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-eval-logs",persistence:{table:"entitlementEvalLogs",mode:"list"}}})}});var {Unrestricted:b}=Vt,{Persisted:Wa,Transient:ge}=Nt,{Internal:pr,External:Ee}=Lt,ke=Qe(ze.Playbook,{sdkInput:true}),Va=Qe(ze.Playbook,{sdkInput:false}),ji=Qe(ze.Playbook,{inConfig:false,sdkInput:false}),WC=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),Ci=Qe(ze.Playbook,{inConfig:false,sdkInput:true,source:Ir.CodeConstant}),ol=Qe(ze.Playbook,{inConfig:false,sdkInput:true,source:Ir.Runtime}),al=Qe(ze.Playbook,{inConfig:false,sdkInput:false,source:Ir.Runtime}),pV=Qe(ze.Billing,{sdkInput:false}),fV=Qe(ze.Metering,{sdkInput:false}),gV=Qe(ze.Branding,{inConfig:true,sdkInput:true}),hV=Qe(ze.Branding,{sdkInput:false}),bV="1.0.0",Wc=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),name:jt.meta(b),handle:Ye.meta(b),description:go.meta(b),is_default:a.boolean().default(false).meta(b),entitlement_ids:a.array(a.string()).default([]).meta(b),metadata:wt.meta(b)}).meta({id:"SeatType","x-revturbine-schema-persistence":Wa,"x-revturbine-schema-exposure":pr,...ji,...bn()}),_V=Qt("SeatTypeAnchor"),Xc=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Ye.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:wt.meta(b)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":Wa,"x-revturbine-schema-exposure":pr,...ji,...bn()}),vV=Qt("PersonalizationTokenAnchor"),yV=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":pr}),dx=Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.meta({...b,readOnly:true}),stripe_account_id:a.string().min(1).meta(b),live_mode:a.boolean().default(false).meta(b),onboarding_state:yV.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:wt.meta(b)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":Wa,"x-revturbine-schema-exposure":pr,...pV,...Qn()});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":ge,"x-revturbine-schema-exposure":Ee,...hV});var Yc=Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.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:wt.meta(b)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":Wa,"x-revturbine-schema-exposure":pr,...fV,...Qn()}),hC=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":pr}),Qc=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Ye.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:hC.default("warn").meta(b),hard_limit_action:hC.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":Wa,"x-revturbine-schema-exposure":pr,...WC,...Qn()}),xV=Qt("UsageEnforcementSettingsAnchor"),IV=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":ge,"x-revturbine-schema-exposure":pr}),SV=a.object({id:a.string().min(1).meta(b),group:a.array(IV).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":ge,"x-revturbine-schema-exposure":pr}),PV=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":pr}),XC=a.object({capRules:a.array(SV).default([]).meta(b),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(b),testMode:PV.default("off").meta(b)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":pr}),mx=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Ye.meta({...b,readOnly:true}),global_frequency_cap:XC.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":Wa,"x-revturbine-schema-exposure":pr,...WC,...Qn()}),kV=Qt("PlacementSettingsAnchor"),$V=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":ge,"x-revturbine-schema-exposure":Ee}),TV=a.object({name:a.string().min(1).meta(b),handle:a.string().min(1).meta(b),predicates:a.array($V).optional().meta(b),dimension_id:a.string().optional().meta(b)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke}),wV=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:Ha.default("public").meta(b)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke}),EV=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:Ha.default("public").meta(b)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...Va}),RV=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:ul.meta(b),visibility:Ha.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:Am.meta(b)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ji}),CV=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:ul.meta(b),visibility:Ha.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:Am.meta(b)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ji}),jV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),OV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),zV=a.object({handle:a.string().min(1).meta(b),global_frequency_cap:XC.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":ge,"x-revturbine-schema-exposure":Ee,...ke}),UV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),AV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),DV=a.object({unique_handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),type:vC.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":ge,"x-revturbine-schema-exposure":Ee,...ke}),FV=a.object({id:a.string().min(1).meta(b),entitlement_id:a.string().min(1).meta(b),targets:a.array(kC).min(1).meta(b),segment_ids:a.array(a.string()).default([]).meta(b),type_fields:AN.default({}).meta(b),current_usage:a.number().default(0).meta(b),allocation:vx.optional().meta(b)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke}),NV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),LV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),VV=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":ge,"x-revturbine-schema-exposure":Ee}),BV=a.object({id:a.string().min(1).meta(b),surface_type:a.string().meta(b),fields:a.array(VV).optional().meta(b)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke}),MV=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":ge,"x-revturbine-schema-exposure":Ee}),ZV=a.object({name:a.string().min(1).meta(b),action_type:MV.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":ge,"x-revturbine-schema-exposure":Ee,...ke}),qV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),HV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),bC=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":ge,"x-revturbine-schema-exposure":Ee}),KV=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:bC.meta(b),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:bC})).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":ge,"x-revturbine-schema-exposure":Ee,...ke}),GV=a.object({label:a.string().meta(b),path:yC.meta(b),config:a.record(a.string(),a.string()).optional().meta(b)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee}),YC=a.object({template_id:a.string().min(1).meta(b),fields:a.record(a.string(),a.string()).meta(b),ctas:a.array(GV).meta(b)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee}),QC=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":ge,"x-revturbine-schema-exposure":Ee}),JV=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":ge,"x-revturbine-schema-exposure":Ee}),ej=a.object({max_per_period:JV.optional().meta(b),cooldown_days:a.number().int().min(0).optional().meta(b)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee}),WV=a.object({id:a.string().min(1).meta(b),target:QC.meta(b),surfaces:a.array(YC).meta(b),caps:ej.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":ge,"x-revturbine-schema-exposure":Ee}),XV=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:rl}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:rl}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:rl}),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":ge,"x-revturbine-schema-exposure":Ee}),YV=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee}),QV=a.object({id:a.string().min(1).meta(b),name:a.string().min(1).meta(b),category:YV.meta(b),trigger:XV.meta(b),payloads:a.array(WV).meta(b),order:a.number().int().min(0).meta(b)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke}),eB=a.object({payload_id:a.string().min(1).meta(b),placement_id:a.string().min(1).meta(b),target:QC.meta(b),caps:ej.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(YC).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":ge,"x-revturbine-schema-exposure":Ee,...ke}),tB=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),nB=Q.merge(MC).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ji}),rB=Q.merge(ZC).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ji}),iB=a.object({version:a.string().meta({...b,...Ci}),exported_at:a.string().datetime().optional().meta({...b,...ol,readOnly:true}),schema_version:a.string().optional().meta({...b,...Ci,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({...b,...Ci,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({...b,...ol,readOnly:true}),tenant_id:a.string().optional().meta({...b,...al,readOnly:true}),environment_id:a.string().optional().meta({...b,...al,readOnly:true}),plans:a.array(wV).meta({...b,...ke}),addons:a.array(EV).optional().meta({...b,...Va}),entitlements:a.array(DV).meta({...b,...ke}),entitlement_rules:a.array(FV).meta({...b,...ke}),segments:a.array(TV).meta({...b,...ke}),content_ui_paths:a.array(ZV).meta({...b,...ke}),slot_configs:a.array(NV).optional().meta({...b,...ke,...Tm({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,...ke,...Tm({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,...gV,...Tm({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(LV).optional().meta({...b,...ke}),message_blocks:a.array(KV).optional().meta({...b,...ke}),placement_payloads:a.array(eB).optional().meta({...b,...ke}),placements:a.array(QV).optional().meta({...b,...ke}),content_promotions:a.array(qV).optional().meta({...b,...ke}),personalization_tokens:a.array(HV).optional().meta({...b,...ke}),surface_templates:a.array(BV).optional().meta({...b,...ke}),free_trial_rules:a.array(nB).optional().meta({...b,...Va}),reverse_trial_rules:a.array(rB).optional().meta({...b,...Va}),plan_variations:a.array(RV).optional().meta({...b,...Va}),addon_variations:a.array(CV).optional().meta({...b,...Va}),extension_rules:a.array(tB).optional().meta({...b,...ke}),seat_types:a.array(jV).optional().meta({...b,...ke}),enforcement_defaults:a.array(OV).optional().meta({...b,...ke}),placement_settings:a.array(zV).optional().meta({...b,...ke}),segment_dimensions:a.array(UV).optional().meta({...b,...ke}),meter_bindings:a.array(AV).optional().meta({...b,...ke})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke,...Tm({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),oB=a.object({artifact_type:a.literal("playbook").meta({...b,...Ci,readOnly:true}),format_version:a.literal(bV).meta({...b,...Ci,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({...b,...Ci}),playbook_version_id:a.string().nullable().default(null).meta({...b,...ol,readOnly:true}),tenant_id:a.string().min(1).meta({...b,...al,readOnly:true}),environment_id:a.string().min(1).meta({...b,...al,readOnly:true}),project_id:a.string().min(1).optional().meta({...b,...al,readOnly:true}),exported_at:a.string().datetime().optional().meta({...b,...ol,readOnly:true}),schema_version:a.string().min(1).optional().meta({...b,...Ci,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({...b,...Ci,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ol}),aB={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},sB=iB.omit(aB).extend({experiments:a.array(a.unknown()).max(0).optional().meta({...b,...ji}),signal_catalog:a.object({}).strict().optional().meta({...b,...ji})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke});oB.extend(sB.shape).meta({id:"Playbook","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke});({"/api/seat-type-anchors":{get:y({operationId:"listSeatTypeAnchors",requestParams:{query:W},summary:"List seat type anchors (identity registry)",tags:["config"],responses:{200:{description:"Seat type anchor list",content:{"application/json":{schema:J(_V)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:y({operationId:"listSeatTypes",requestParams:{query:W},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:J(Wc)}}}},"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:gn(Wc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Wc}}}},"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:Wc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Wc}}}},"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:W},summary:"List personalization token anchors (identity registry)",tags:["config"],responses:{200:{description:"Personalization token anchor list",content:{"application/json":{schema:J(vV)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:y({operationId:"listPersonalizationTokens",requestParams:{query:W},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:J(Xc)}}}},"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:gn(Xc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Xc}}}},"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:Xc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Xc}}}},"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:hn(dx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:dx}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:y({operationId:"listMeteringConfigs",requestParams:{query:W},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:J(Yc)}}}},"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:gn(Yc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Yc}}}},"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:Yc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Yc}}}},"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:W},summary:"List usage enforcement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Usage enforcement setting anchor list",content:{"application/json":{schema:J(xV)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:J(Qc)}}}},"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:gn(Qc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Qc}}}},"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:Qc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Qc}}}},"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:W},summary:"List placement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Placement setting anchor list",content:{"application/json":{schema:J(kV)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:hn(mx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:mx}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});var {Unrestricted:Qr}=Vt,{Persisted:tj}=Nt,{Internal:nj}=Lt,cB=a.enum(["create","update","delete","archive","restore","reorder","duplicate","sync","publish"]).meta({id:"ChangeLogAction","x-revturbine-schema-persistence":tj,"x-revturbine-schema-exposure":nj}),_C=Q.merge(oe).merge(se).extend({action:cB.meta(Qr),resource_type:a.string().min(1).max(100).meta(Qr),resource_id:a.string().min(1).meta(Qr),resource_name:a.string().max(200).optional().meta(Qr),actor_id:a.string().min(1).meta(Qr),actor_email:a.string().email().optional().meta(Qr),diff:a.object({before:a.record(a.string(),a.unknown()).optional(),after:a.record(a.string(),a.unknown()).optional()}).optional().meta(Qr),summary:a.string().max(1e3).optional().meta(Qr),metadata:wt.meta(Qr)}).meta({id:"ChangeLogEntry","x-revturbine-schema-persistence":tj,"x-revturbine-schema-exposure":nj});({"/api/changelog":{get:y({operationId:"listChangeLogEntries",requestParams:{query:W},summary:"List change log entries",tags:["changelog"],responses:{200:{description:"Change log entries",content:{"application/json":{schema:J(_C)}}}},"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:_C}}}},"x-revturbine-operation":{exposure:"internal",resource:"changelog",persistence:{table:"changeLogEntries",mode:"get"}}})}});var {Unrestricted:Em}=Vt,{Persisted:lB,Transient:uB}=Nt,{Internal:rj}=Lt,dB=a.enum(["active","suspended","archived"]).meta({id:"TenantStatus","x-revturbine-schema-persistence":uB,"x-revturbine-schema-exposure":rj}),Ri=Q.merge(oe).extend({name:jt.meta(Em),handle:Ye.meta(Em),status:dB.default("active").meta(Em),metadata:wt.meta(Em)}).meta({id:"Tenant","x-revturbine-schema-persistence":lB,"x-revturbine-schema-exposure":rj});({"/api/tenants":{get:y({operationId:"listTenants",requestParams:{query:W},summary:"List tenants",tags:["tenants"],responses:{200:{description:"Tenant list",content:{"application/json":{schema:J(Ri)}}}},"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:Ri}}}},"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:Ri.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ri}}}},"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:Ri}}}},"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:Ri}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"update"}}})}});var {Unrestricted:dr}=Vt,{Persisted:mB,Transient:ij}=Nt,{Internal:Cx}=Lt,pB=a.enum(["active","archived","locked"]).meta({id:"EnvironmentStatus","x-revturbine-schema-persistence":ij,"x-revturbine-schema-exposure":Cx}),za=Q.merge(oe).merge(se).extend({name:jt.meta(dr),handle:Ye.meta(dr),description:go.meta(dr),is_production:a.boolean().default(false).meta({...dr,readOnly:true}),status:pB.default("active").meta(dr),cloned_from_environment_id:a.string().nullable().default(null).meta({...dr,readOnly:true}),cloned_at:St.meta({...dr,readOnly:true}),cloned_at_sequence:a.number().int().min(0).nullable().default(null).meta({...dr,readOnly:true}),requires_approval:a.boolean().default(false).meta(dr),auto_deploy_on_approval:a.boolean().default(false).meta(dr),created_by:a.string().optional().meta(dr),metadata:wt.meta(dr)}).meta({id:"Environment","x-revturbine-schema-persistence":mB,"x-revturbine-schema-exposure":Cx}),fB=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":ij,"x-revturbine-schema-exposure":Cx});({"/api/environments":{get:y({operationId:"listEnvironments",requestParams:{query:W},summary:"List environments",tags:["environments"],responses:{200:{description:"Environment list",content:{"application/json":{schema:J(za)}}}},"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:za}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:za}}}},"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:za.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:za}}}},"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:za}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:fB}}},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:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"promote"}}})}});var {Unrestricted:de,Pii:cl}=Vt,{Transient:Lr,Persisted:gB}=Nt,{External:Sr}=Lt,hB=a.enum(["milestone_version","milestone_order"]).meta({id:"SupersessionReason","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr});a.object({superseded_output_id:a.string().min(1).meta(de),superseded_by:a.string().min(1).meta(de),reason:hB.meta(de)}).meta({id:"SupersessionRecord","x-revturbine-schema-persistence":gB,"x-revturbine-schema-exposure":Sr,"x-revturbine-data-classification":"operational"});var bB=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementStatus","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr}),oj=a.object({output_id:a.string().meta(de),category:a.string().meta(de),surface:a.object({template:a.string().optional().meta(de),type:zm.meta(de),slot_id:a.string().optional().meta(de)}).meta(de),content:a.record(a.string(),a.unknown()).meta(de),promotion:a.record(a.string(),a.unknown()).optional().meta(de),cta_path:a.record(a.string(),a.unknown()).optional().meta(de),ui_path:a.record(a.string(),a.unknown()).optional().meta(de),rule_id:a.string().meta(de),decision_id:a.string().meta(de),config_version:a.string().meta(de),present_upsell:a.boolean().meta(de)}).meta({id:"PlacementDecisionOutput","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr}),_B=a.object({status:bB.meta(de),allowed:a.boolean().meta(de),reason:a.string().optional().meta(de),current_tier:a.string().optional().meta(de),limit:a.number().optional().meta(de),used:a.number().optional().meta(de),remaining:a.number().optional().meta(de),placement:oj.optional().meta(de)}).meta({id:"EntitlementCheckResult","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr});a.object({id:a.string().meta(de),name:a.string().optional().meta(de),discount:a.string().optional().meta(de),type:a.string().optional().meta(de),status:a.string().optional().meta(de)}).meta({id:"RuntimePromotionSnapshot","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr});var vB=a.object({id:a.string().meta(cl),anonymous_id:a.string().optional().meta(de),traits:a.record(a.string(),a.unknown()).optional().meta(cl)}).meta({id:"ServerEvaluationPayloadUser","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr}),yB=a.object({slot_id:a.string().optional().meta(de),entitlement_handle:a.string().optional().meta(de),plan_handle:a.string().optional().meta(de),placement_handle:a.string().optional().meta(de),visible:a.boolean().meta(de),output:oj.optional().meta(de),reason_codes:a.array(a.string()).optional().meta(de)}).meta({id:"ServerEvaluationPayloadDecisionsItem","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr}),xB=_B,IB=yx.meta({id:"ServerEvaluationPayloadTrialStatus","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr}),SB=a.object({segments:a.array(a.string()).optional().meta(de),traits:a.record(a.string(),a.unknown()).optional().meta(cl),usage_balances:a.record(a.string(),a.number()).optional().meta(de)}).meta({id:"ServerEvaluationPayloadUserContext","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr});a.object({version:a.literal("1.0.0").meta(de),request_id:a.string().meta(de),tenant_id:a.string().meta(de),evaluated_at:a.string().datetime().meta(de),ttl_seconds:a.number().int().min(0).max(86400).meta(de),user:vB.meta(cl),decisions:a.array(yB).meta(de),entitlements:a.record(a.string(),xB).optional().meta(de),theme:a.record(a.string(),a.unknown()).optional().meta(de),trial_status:IB.optional().meta(de),user_context:SB.optional().meta(cl)}).meta({id:"ServerEvaluationPayload","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr});var {Unrestricted:Be}=Vt,{Persisted:PB,Transient:Nm}=Nt,{Internal:vl}=Lt,kB=a.enum(["draft","awaiting_approval","approved","deploying","deployed","rejected","archived"]).meta({id:"PlaybookVersionStatus","x-revturbine-schema-persistence":Nm,"x-revturbine-schema-exposure":vl}),el=Q.merge(oe).merge(se).extend({environment_id:a.string().min(1).meta(Be),name:jt.meta(Be),description:a.string().max(2e3).optional().meta(Be),status:kB.default("draft").meta(Be),labels:a.array(a.string()).default([]).meta(Be),created_by:a.string().min(1).meta(Be),submitted_by:a.string().nullable().default(null).meta({...Be,readOnly:true}),reviewed_by:a.string().nullable().default(null).meta({...Be,readOnly:true}),deployed_by:a.string().nullable().default(null).meta({...Be,readOnly:true}),submitted_at:St.meta({...Be,readOnly:true}),reviewed_at:St.meta({...Be,readOnly:true}),deployed_at:St.meta({...Be,readOnly:true}),base_snapshot_sequence:a.number().int().min(0).default(0).meta({...Be,readOnly:true}),entry_count:a.number().int().min(0).default(0).meta({...Be,readOnly:true}),conflict_count:a.number().int().min(0).default(0).meta({...Be,readOnly:true}),rollback_of_playbook_version_id:a.string().nullable().default(null).meta(Be),cherry_picked_from_playbook_version_id:a.string().nullable().default(null).meta(Be),review_notes:a.string().max(2e3).optional().meta(Be),rejection_reason:a.string().max(2e3).optional().meta(Be),snapshot:a.record(a.string(),a.unknown()).nullable().default(null).meta({...Be,readOnly:true}),bundle:a.string().nullable().default(null).meta({...Be,readOnly:true}),metadata:wt.meta(Be)}).meta({id:"PlaybookVersion","x-revturbine-schema-persistence":PB,"x-revturbine-schema-exposure":vl}),aj=a.object({handle:a.string().meta(Be),resource_type:a.string().meta(Be),resource_name:a.string().optional().meta(Be),action:a.enum(["create","update","delete"]).meta(Be),has_conflict:a.boolean().meta(Be)}).meta({id:"PlaybookVersionEntrySummary","x-revturbine-schema-persistence":Nm,"x-revturbine-schema-exposure":vl}),$B=a.object({playbook_version_id:a.string().meta(Be),entries:a.array(aj).meta(Be),total_entries:a.number().int().min(0).meta(Be),total_conflicts:a.number().int().min(0).meta(Be),deployable:a.boolean().meta(Be)}).meta({id:"PlaybookVersionDiff","x-revturbine-schema-persistence":Nm,"x-revturbine-schema-exposure":vl}),TB=a.object({playbook_version_id:a.string().meta(Be),deployed_count:a.number().int().min(0).meta(Be),superseded_count:a.number().int().min(0).meta(Be),skipped_conflicts:a.number().int().min(0).meta(Be),deployed_at:a.string().datetime().meta(Be)}).meta({id:"PlaybookVersionDeployResult","x-revturbine-schema-persistence":Nm,"x-revturbine-schema-exposure":vl});({"/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:el}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:el}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:el}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:TB}}},default:{description:"Error (conflicts exist)",content:{"application/json":{schema:xe}}}},"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:el}}}},"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:$B}}}},"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:W},summary:"List entries with sequence conflicts (base_sequence \u2260 current)",tags:["playbook-versions"],responses:{200:{description:"Conflict list",content:{"application/json":{schema:J(aj)}}}},"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:el}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})}});var {Unrestricted:Fe,Pii:wB}=Vt,{Persisted:Pr}=Nt,{Internal:kr}=Lt,EB=a.enum(["active","revoked","rotating"]).meta({id:"ApiKeyStatus","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),Rm=Q.merge(oe).merge(se).extend({name:jt.meta(Fe),key_hash:a.string().min(1).meta({...wB,readOnly:true}),key_prefix:a.string().min(1).max(20).meta({...Fe,readOnly:true}),key_last4:a.string().length(4).meta({...Fe,readOnly:true}),status:EB.default("active").meta(Fe),last_used_at:St.meta({...Fe,readOnly:true}),expires_at:St.meta(Fe)}).meta({id:"ApiKey","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),RB=a.enum(["boolean","string","number","json"]).meta({id:"FlagValueType","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),po=Q.merge(oe).merge(se).extend({key:a.string().min(1).max(100).meta(Fe),value_type:RB.default("boolean").meta(Fe),value:a.string().max(4e3).default("false").meta(Fe),description:go.meta(Fe),enabled:a.boolean().default(true).meta(Fe)}).meta({id:"FeatureFlag","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),px=Q.merge(oe).merge(se).extend({workspace_name:a.string().min(1).max(200).meta(Fe),support_email:a.string().email().nullable().default(null).meta(Fe),timezone:a.string().max(50).default("UTC").meta(Fe),default_currency:a.string().length(3).default("USD").meta(Fe),logo_url:a.string().url().nullable().default(null).meta(Fe)}).meta({id:"TenantConfig","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),fx=Q.merge(oe).merge(se).extend({server_url:a.string().url().max(500).meta(Fe),api_token_hint:a.string().max(50).nullable().default(null).meta(Fe),allow_write_actions:a.boolean().default(false).meta(Fe),enabled_tools:a.array(a.string().max(100)).default([]).meta(Fe),enabled:a.boolean().default(false).meta(Fe)}).meta({id:"McpConfig","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),Cm=Q.merge(oe).merge(se).extend({step_key:a.string().min(1).max(100).meta(Fe),label:a.string().min(1).max(200).meta(Fe),done:a.boolean().default(false).meta(Fe),completed_at:St.meta({...Fe,readOnly:true})}).meta({id:"OnboardingChecklist","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),CB=a.enum(["user","agent","system","webhook"]).meta({id:"AuditActorType","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),jB=Q.merge(se).extend({environment_id:a.string().min(1).default("production").meta(Fe),actor_type:CB.meta(Fe),actor_id:a.string().nullable().default(null).meta(Fe),action:a.string().min(1).max(120).meta(Fe),object_type:a.string().max(120).nullable().default(null).meta(Fe),object_id:a.string().max(200).nullable().default(null).meta(Fe),payload:a.record(a.string(),a.unknown()).nullable().default(null).meta(Fe),occurred_at:a.string().datetime().meta({...Fe,readOnly:true})}).meta({id:"AuditEvent","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),OB=a.enum(["user_id","account_id","email"]).meta({id:"PlacementTestUserIdentifierType","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),jm=Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.meta({...Fe,readOnly:true}),identifier:a.string().min(1).max(200).meta(Fe),identifier_type:OB.default("user_id").meta(Fe),note:a.string().max(500).nullable().default(null).meta(Fe),added_by:a.string().meta(Fe)}).meta({id:"PlacementTestUser","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr,...Qn()});({"/api/settings/api-keys":{get:y({operationId:"listApiKeys",requestParams:{query:W},summary:"List API keys for the tenant",tags:["settings"],responses:{200:{description:"API keys",content:{"application/json":{schema:J(Rm)}}}},"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:gn(Rm)}}},responses:{201:{description:"API key created",content:{"application/json":{schema:Rm}}}},"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:Rm}}}},"x-revturbine-operation":{exposure:"internal",resource:"api-keys",persistence:{table:"apiKeys",mode:"delete"}}})},"/api/flags":{get:y({operationId:"listFeatureFlags",requestParams:{query:W},summary:"List feature flags for the tenant",tags:["settings"],responses:{200:{description:"Feature flags",content:{"application/json":{schema:J(po)}}}},"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:gn(po)}}},responses:{201:{description:"Feature flag created",content:{"application/json":{schema:po}}}},"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:po}}}},"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:hn(po).partial()}}},responses:{200:{description:"Feature flag updated",content:{"application/json":{schema:po}}}},"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:po}}}},"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:hn(px).partial()}}},responses:{200:{description:"Tenant config updated",content:{"application/json":{schema:px}}}},"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:hn(fx).partial()}}},responses:{200:{description:"MCP config updated",content:{"application/json":{schema:fx}}}},"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:W},summary:"List onboarding checklist steps",tags:["settings"],responses:{200:{description:"Onboarding steps",content:{"application/json":{schema:J(Cm)}}}},"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:Cm}}}},"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:hn(Cm).partial()}}},responses:{200:{description:"Onboarding step updated",content:{"application/json":{schema:Cm}}}},"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:W},summary:"List audit events for the tenant",tags:["settings"],responses:{200:{description:"Audit events",content:{"application/json":{schema:J(jB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"audit-events",persistence:{table:"auditEvents",mode:"list"}}})},"/api/config/placement-test-users":{get:y({operationId:"listPlacementTestUsers",requestParams:{query:W},summary:"List placement test users for the tenant",tags:["settings"],responses:{200:{description:"Placement test users",content:{"application/json":{schema:J(jm)}}}},"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:gn(jm)}}},responses:{201:{description:"Placement test user created",content:{"application/json":{schema:jm}}}},"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:jm}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-test-users",persistence:{table:"placementTestUsers",mode:"delete"}}})}});var {Unrestricted:Y,Pii:Sn}=Vt,{Persisted:zn,Transient:jx}=Nt,{Internal:mn}=Lt,zB=a.enum(["user","admin"]).meta({id:"UserRole","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.merge(oe).extend({name:jt.meta(Y),email:a.string().email().meta(Sn),email_verified:a.boolean().default(false).meta(Y),image:a.string().url().nullable().default(null).meta(Sn),role:zB.default("user").meta(Y),banned:a.boolean().default(false).meta({...Y,readOnly:true}),ban_reason:a.string().nullable().default(null).meta({...Y,readOnly:true}),ban_expires:St.meta({...Y,readOnly:true}),two_factor_enabled:a.boolean().default(false).meta({...Y,readOnly:true})}).meta({id:"AuthUser","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.merge(oe).extend({expires_at:a.string().datetime().meta(Y),token:a.string().min(1).meta({...Sn,readOnly:true}),ip_address:a.string().nullable().default(null).meta(Sn),user_agent:a.string().nullable().default(null).meta(Sn),user_id:a.string().min(1).meta({...Y,readOnly:true}),active_organization_id:a.string().nullable().default(null).meta(Y),impersonated_by:a.string().nullable().default(null).meta({...Y,readOnly:true})}).meta({id:"AuthSession","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.merge(oe).extend({account_id:a.string().min(1).meta(Y),provider_id:a.string().min(1).meta(Y),user_id:a.string().min(1).meta({...Y,readOnly:true}),access_token:a.string().nullable().default(null).meta({...Sn,readOnly:true}),refresh_token:a.string().nullable().default(null).meta({...Sn,readOnly:true}),id_token:a.string().nullable().default(null).meta({...Sn,readOnly:true}),access_token_expires_at:St.meta({...Y,readOnly:true}),refresh_token_expires_at:St.meta({...Y,readOnly:true}),scope:a.string().nullable().default(null).meta(Y),password:a.string().nullable().default(null).meta({...Sn,readOnly:true})}).meta({id:"AuthAccount","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.merge(oe).extend({identifier:a.string().min(1).meta(Sn),value:a.string().min(1).meta({...Sn,readOnly:true}),expires_at:a.string().datetime().meta(Y)}).meta({id:"AuthVerification","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({secret:a.string().min(1).meta({...Sn,readOnly:true}),backup_codes:a.string().min(1).meta({...Sn,readOnly:true}),user_id:a.string().min(1).meta({...Y,readOnly:true}),verified:a.boolean().default(false).meta({...Y,readOnly:true})}).meta({id:"AuthTwoFactor","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({name:jt.meta(Y),slug:a.string().min(1).max(100).nullable().default(null).meta(Y),logo:a.string().url().nullable().default(null).meta(Y),created_at:a.string().datetime().meta({...Y,readOnly:true}),metadata:a.string().nullable().default(null).meta(Y)}).meta({id:"AuthOrganization","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});var sj=a.enum(["viewer","collaborator","approver","admin"]).meta({id:"Role","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});var cj=a.enum(["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"]).meta({id:"PermissionResource","x-revturbine-schema-persistence":jx,"x-revturbine-schema-exposure":mn}),lj=a.enum(["read","create","update","delete","publish","approve","invite","manage_roles"]).meta({id:"PermissionAction","x-revturbine-schema-persistence":jx,"x-revturbine-schema-exposure":mn});a.object({resource:cj,action:lj}).meta({id:"Permission","x-revturbine-schema-persistence":jx,"x-revturbine-schema-exposure":mn});var UB=["tenant","plans","entitlements","placements","targeting","content","experiments","audit","settings"],AB=["plans","entitlements","placements","targeting","content","experiments"],DB=["plans","entitlements","placements","targeting","content","experiments"],FB=["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"],NB=["read","create","update","delete","publish","approve","invite","manage_roles"];function Lm(e,n){return e.flatMap(r=>n.map(o=>({resource:r,action:o})))}var LB=Lm(UB,["read"]),VB=[...LB,...Lm(AB,["create","update"])];[...VB,...Lm(DB,["publish","approve","delete"])];Lm(FB,NB);var BB=cj.options.flatMap(e=>lj.options.map(n=>`${e}:${n}`));a.enum(BB).meta({id:"McpTokenScope","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({organization_id:a.string().min(1).meta({...Y,readOnly:true}),user_id:a.string().min(1).meta({...Y,readOnly:true}),role:sj.default("viewer").meta(Y),created_at:a.string().datetime().meta({...Y,readOnly:true})}).meta({id:"AuthMember","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});var MB=a.enum(["pending","accepted","rejected","canceled","expired"]).meta({id:"InvitationStatus","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({organization_id:a.string().min(1).meta({...Y,readOnly:true}),email:a.string().email().meta(Sn),role:sj.nullable().default(null).meta(Y),status:MB.default("pending").meta(Y),expires_at:a.string().datetime().meta(Y),created_at:a.string().datetime().meta({...Y,readOnly:true}),inviter_id:a.string().min(1).meta({...Y,readOnly:true})}).meta({id:"AuthInvitation","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({name:a.string().max(200).nullable().default(null).meta(Y),public_key:a.string().min(1).meta({...Sn,readOnly:true}),user_id:a.string().min(1).meta({...Y,readOnly:true}),credential_id:a.string().min(1).meta({...Y,readOnly:true}),counter:a.number().int().default(0).meta({...Y,readOnly:true}),device_type:a.string().min(1).meta(Y),backed_up:a.boolean().default(false).meta(Y),transports:a.string().nullable().default(null).meta(Y),created_at:a.string().datetime().meta({...Y,readOnly:true}),aaguid:a.string().nullable().default(null).meta(Y)}).meta({id:"AuthPasskey","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.merge(oe).extend({config_id:a.string().min(1).meta(Y),name:a.string().max(200).nullable().default(null).meta(Y),start:a.string().nullable().default(null).meta(Y),reference_id:a.string().min(1).meta(Y),prefix:a.string().nullable().default(null).meta(Y),key:a.string().min(1).meta({...Sn,readOnly:true}),refill_interval:a.number().int().nullable().default(null).meta(Y),refill_amount:a.number().int().nullable().default(null).meta(Y),last_refill_at:St.meta({...Y,readOnly:true}),enabled:a.boolean().default(true).meta(Y),rate_limit_enabled:a.boolean().default(false).meta(Y),rate_limit_time_window:a.number().int().nullable().default(null).meta(Y),rate_limit_max:a.number().int().nullable().default(null).meta(Y),request_count:a.number().int().default(0).meta({...Y,readOnly:true}),remaining:a.number().int().nullable().default(null).meta({...Y,readOnly:true}),last_request:St.meta({...Y,readOnly:true}),expires_at:St.meta(Y),permissions:a.string().nullable().default(null).meta(Y),metadata:a.string().nullable().default(null).meta(Y)}).meta({id:"AuthApiKey","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({issuer:a.string().min(1).meta(Y),oidc_config:a.string().nullable().default(null).meta(Y),saml_config:a.string().nullable().default(null).meta(Y),user_id:a.string().min(1).meta({...Y,readOnly:true}),provider_id:a.string().min(1).meta(Y),organization_id:a.string().nullable().default(null).meta(Y),domain:a.string().min(1).meta(Y)}).meta({id:"AuthSsoProvider","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});var uj="0.2.37";var er=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 Xa(e){return e?{id:e.id??er.id,name:e.name??er.name,version:e.version??er.version,colors:{...er.colors,...e.colors},typography:{...er.typography,...e.typography},shape:{...er.shape,...e.shape},shadows:{...er.shadows,...e.shadows}}:{...er}}var KB=createContext(er);function pn(){return useContext(KB)}var WB={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 24px",lineHeight:"1.5",zIndex:9990,width:"100%",boxSizing:"border-box"},XB={display:"flex",flexDirection:"column",gap:"2px",flex:1},YB={display:"flex",alignItems:"center",gap:"8px",marginLeft:"16px",flexShrink:0};function zx({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=pn(),[c,u]=useState(false),[d,m]=useState(o);o&&!d&&u(false),o!==d&&m(o);let p=e.position||"top",g=e.dismissible!==false,f=useCallback(()=>{u(true),r();},[r]),v=useMemo(()=>{let{colors:$,typography:S,shape:R}=s;return {banner:{...WB,backgroundColor:$.primary,color:$.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:$.primaryText,color:$.primary,border:"none",borderRadius:R.borderRadiusSmall,fontWeight:600,fontSize:S.fontSizeSmall,cursor:"pointer",whiteSpace:"nowrap"},dismiss:{padding:"4px 8px",background:"transparent",border:"none",color:$.primaryText,fontSize:"18px",cursor:"pointer",opacity:.7,lineHeight:1}}},[s,p]);return !o||c?null:jsxs("div",{className:t,style:{...v.banner,...i},role:"banner","data-rt-placement":"banner",children:[jsxs("div",{style:XB,children:[e.header&&jsx("div",{style:v.header,children:e.header}),(e.body||e.message)&&jsx("div",{style:v.body,children:e.body||e.message})]}),jsxs("div",{style:YB,children:[e.cta_label&&jsx("button",{type:"button",style:v.cta,onClick:n,children:e.cta_label}),g&&jsx("button",{type:"button",style:v.dismiss,onClick:f,"aria-label":"Dismiss",children:"\xD7"})]})]})}zx.displayName="BannerSlot";var tM={position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999},nM={width:"100%",maxHeight:"200px",objectFit:"cover",marginBottom:"16px"},rM={display:"flex",gap:"12px",justifyContent:"flex-end"};function Ax({content:e,onCtaClick:n,onSecondaryCtaClick:r,onDismiss:o,visible:t,className:i,style:s}){let c=pn(),u=useRef(null),d=e.style||"optional",[m,p]=useState(false),g=useRef(t);useEffect(()=>{t&&!g.current&&p(false),g.current=t;},[t]);let f=useCallback(()=>{p(true),o();},[o]),v=useCallback(R=>{d==="optional"&&R.target===R.currentTarget&&f();},[d,f]),$=useCallback(R=>{R.key==="Escape"&&d==="optional"&&f();},[d,f]);useEffect(()=>{if(t)return document.addEventListener("keydown",$),u.current?.focus(),()=>document.removeEventListener("keydown",$)},[t,$]);let S=useMemo(()=>{let{colors:R,typography:E,shape:A,shadows:w}=c;return {overlay:{...tM,backgroundColor:R.overlay,fontFamily:E.fontFamily},dialog:{position:"relative",maxWidth:"480px",width:"90%",backgroundColor:R.background,borderRadius:A.borderRadiusLarge,boxShadow:w.large,padding:"32px",boxSizing:"border-box"},close:{position:"absolute",top:"12px",right:"12px",background:"transparent",border:"none",fontSize:"20px",color:R.textMuted,cursor:"pointer",padding:"4px 8px",lineHeight:1},image:{...nM,borderRadius:A.borderRadius},header:{fontSize:E.fontSizeHeader,fontWeight:700,color:R.text,marginBottom:"8px",lineHeight:1.3},body:{fontSize:"15px",color:R.textSecondary,lineHeight:1.6,marginBottom:"24px"},primaryBtn:{padding:"10px 24px",backgroundColor:R.primary,color:R.primaryText,border:"none",borderRadius:A.borderRadius,fontWeight:600,fontSize:E.fontSize,cursor:"pointer"},secondaryBtn:{padding:"10px 24px",backgroundColor:"transparent",color:R.textSecondary,border:`1px solid ${R.surfaceBorder}`,borderRadius:A.borderRadius,fontWeight:500,fontSize:E.fontSize,cursor:"pointer"}}},[c]);return !t||m?null:jsx("div",{style:S.overlay,onClick:v,role:"dialog","aria-modal":"true","aria-label":typeof e.header=="string"?e.header:"Placement","data-rt-placement":"modal",children:jsxs("div",{ref:u,className:i,style:{...S.dialog,...s},tabIndex:-1,children:[d==="optional"&&jsx("button",{type:"button",style:S.close,onClick:f,"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:rM,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})]})]})})}Ax.displayName="ModalSlot";var oM={width:"100%",maxHeight:"180px",objectFit:"cover",marginBottom:"12px"};function Dx({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=pn(),s=useMemo(()=>{let{colors:c,typography:u,shape:d}=i;return {container:{backgroundColor:c.surface,border:`1px solid ${c.surfaceBorder}`,borderRadius:d.borderRadius,padding:"20px",fontFamily:u.fontFamily,boxSizing:"border-box"},header:{fontSize:"16px",fontWeight:600,color:c.text,marginBottom:"6px",lineHeight:1.4},body:{fontSize:u.fontSize,color:c.textSecondary,lineHeight:1.6,marginBottom:"16px"},image:{...oM,borderRadius:d.borderRadiusSmall},cta:{padding:"8px 20px",backgroundColor:c.primary,color:c.primaryText,border:"none",borderRadius:d.borderRadiusSmall,fontWeight:600,fontSize:u.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}Dx.displayName="InlineEmbedSlot";function yl(e){return jsx(Dx,{...e})}yl.displayName="InPageSlot";var hj={"top-right":{top:"16px",right:"16px"},"bottom-right":{bottom:"16px",right:"16px"},"bottom-center":{bottom:"16px",left:"50%",transform:"translateX(-50%)"}},dM={position:"absolute",zIndex:9995,maxWidth:"380px",width:"90%",lineHeight:1.5,display:"flex",alignItems:"center",gap:"12px",boxSizing:"border-box"},mM={flex:1};function Nx({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=pn(),[c,u]=useState(o),[d,m]=useState(o);o&&!d&&u(true),o!==d&&m(o);let p=e.position||"bottom-right",g=typeof e.duration=="number"?e.duration:5,f=useCallback(()=>{u(false),r();},[r]);useEffect(()=>{if(!c||g<=0)return;let S=setTimeout(()=>{f();},g*1e3);return ()=>clearTimeout(S)},[c,g,f]);let v=useMemo(()=>{let{colors:S,typography:R,shape:E,shadows:A}=s;return {container:{...dM,backgroundColor:S.toastBackground,color:S.toastText,borderRadius:E.borderRadius,boxShadow:A.medium,padding:"14px 18px",fontFamily:R.fontFamily,fontSize:R.fontSize},cta:{color:S.info,background:"transparent",border:"none",fontWeight:600,fontSize:R.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 $=hj[p]??hj["bottom-right"];return jsxs("div",{className:t,style:{...v.container,...$,...i},role:"status","aria-live":"polite","data-rt-placement":"toast",children:[jsx("div",{style:mM,children:e.message||e.body||e.header}),e.cta_label&&jsx("button",{type:"button",style:v.cta,onClick:n,children:e.cta_label}),jsx("button",{type:"button",style:v.close,onClick:f,"aria-label":"Close",children:"\xD7"})]})}Nx.displayName="ToastSlot";function Lx({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=pn();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},u={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=u[s]??u.primary;return jsx("button",{type:"button",className:o,style:{...d,...t},onClick:n,"data-rt-placement":"button",children:e.cta_label||"Upgrade"})}Lx.displayName="ButtonSlot";function Zx(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 bj(e,n){return e>=90?n.colors.danger:e>=70?n.colors.warning:n.colors.primary}function gM({content:e,theme:n}){let r=Zx(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:bj(r,n)}})})]})}function hM({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 $r=80,Bx=8,Mx=($r-Bx)/2,Vx=2*Math.PI*Mx;function bM({content:e,theme:n}){let r=Zx(e),o=e.usage_current??r,t=e.usage_limit??100,i=Vx-r/100*Vx,s=bj(r,n);return jsxs("div",{style:{display:"flex",alignItems:"center",gap:"16px",marginBottom:"12px"},children:[jsxs("svg",{width:$r,height:$r,style:{flexShrink:0},children:[jsx("circle",{cx:$r/2,cy:$r/2,r:Mx,fill:"none",stroke:n.colors.track,strokeWidth:Bx}),jsx("circle",{cx:$r/2,cy:$r/2,r:Mx,fill:"none",stroke:s,strokeWidth:Bx,strokeLinecap:"round",strokeDasharray:Vx,strokeDashoffset:i,transform:`rotate(-90 ${$r/2} ${$r/2})`,style:{transition:"stroke-dashoffset 0.3s ease"}}),jsxs("text",{x:$r/2,y:$r/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 Mm({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=pn();if(!r)return null;let s=e.display_style||"progress_bar",c=typeof e.show_at=="number"?e.show_at:0,u=Zx(e);if(c>0&&u<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(hM,{content:e,theme:i}):s==="circular_gauge"?jsx(bM,{content:e,theme:i}):jsx(gM,{content:e,theme:i}),e.cta_label&&jsx("button",{type:"button",style:m,onClick:n,children:e.cta_label})]})}Mm.displayName="QuotaMeterSlot";var _M={maxWidth:"800px",margin:"0 auto",padding:"40px 24px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},vM={fontSize:"28px",fontWeight:700,color:"#111827",textAlign:"center",marginBottom:"12px",lineHeight:1.3},yM={fontSize:"16px",color:"#4b5563",textAlign:"center",lineHeight:1.6,marginBottom:"32px",maxWidth:"600px",marginLeft:"auto",marginRight:"auto"},xM={display:"flex",justifyContent:"center",gap:"16px"},IM={padding:"12px 32px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"8px",fontWeight:600,fontSize:"16px",cursor:"pointer"},SM={padding:"12px 32px",backgroundColor:"transparent",color:"#4b5563",border:"1px solid #d1d5db",borderRadius:"8px",fontWeight:500,fontSize:"16px",cursor:"pointer"};function qm({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){return o?jsxs("div",{className:t,style:{..._M,...i},"data-rt-placement":"full-page",children:[e.header&&jsx("h1",{style:vM,children:e.header}),e.body&&jsx("p",{style:yM,children:e.body}),jsxs("div",{style:xM,children:[e.cta_label&&jsx("button",{type:"button",style:IM,onClick:n,children:e.cta_label}),e.secondary_cta_label&&r&&jsx("button",{type:"button",style:SM,onClick:r,children:e.secondary_cta_label})]})]}):null}qm.displayName="FullPageSlot";var PM={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"},kM={whiteSpace:"pre-wrap",marginBottom:"12px"},$M={display:"flex",gap:"16px"},yj={color:"#569cd6",background:"transparent",border:"none",cursor:"pointer",fontFamily:"inherit",fontSize:"inherit",padding:0,textDecoration:"underline"};function Hx({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(u=>typeof u=="string"):[];return jsxs("div",{className:o,style:{...PM,...t},"data-rt-placement":"cli",children:[i&&jsx("div",{style:kM,children:i}),(c.length>0||e.cta_label)&&jsxs("div",{style:$M,children:[e.cta_label&&jsx("button",{type:"button",style:yj,onClick:n,children:e.cta_label}),c.map(u=>jsx("button",{type:"button",style:yj,onClick:n,children:u},u))]})]})}Hx.displayName="CliSlot";var TM={backgroundColor:"#ffffff",border:"1px solid #e2e8f0",borderRadius:"8px",padding:"16px 20px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},wM={display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:"4px"},EM={fontSize:"13px",color:"#6b7280"},RM={fontSize:"28px",fontWeight:700,color:"#111827"},CM={fontSize:"12px",color:"#9ca3af",marginBottom:"12px"},jM={width:"100%",height:"6px",backgroundColor:"#e5e7eb",borderRadius:"3px",overflow:"hidden",marginBottom:"12px"},OM={height:"100%",borderRadius:"3px",transition:"width 0.3s ease"},zM={display:"flex",gap:"8px"},UM={padding:"6px 16px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"6px",fontWeight:600,fontSize:"13px",cursor:"pointer"};function AM(e,n){if(n<=0)return "#1e40af";let r=e/n*100;return r<=10?"#dc2626":r<=25?"#f59e0b":"#1e40af"}function Kx({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,u=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:{...TM,...t},"data-rt-placement":"credit-balance",children:[jsxs("div",{style:wM,children:[jsx("span",{style:EM,children:typeof e.header=="string"?e.header:"Credits Remaining"}),jsx("span",{style:RM,children:String(i)})]}),u&&typeof e.burn_rate_label=="string"&&jsx("div",{style:CM,children:e.burn_rate_label}),(d==="balance_bar"||d==="balance_burn_rate")&&s>0&&jsx("div",{style:jM,children:jsx("div",{style:{...OM,width:`${Math.min(100,m)}%`,backgroundColor:AM(i,s)}})}),jsx("div",{style:zM,children:e.cta_label&&jsx("button",{type:"button",style:UM,onClick:n,children:e.cta_label})})]})}Kx.displayName="CreditBalanceSlot";var FM={position:"absolute",top:"16px",right:"16px"};function NM(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 Jx({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=pn(),[c,u]=useState(false),[d,m]=useState(null),p=e.anchor_selector||void 0,g=e.position||"top",f=typeof e.anchor_gap=="number"?e.anchor_gap:10,v=useCallback(()=>{if(!p||typeof window>"u"){m(null);return}let E=window.document.querySelector(p);if(!E){m(null);return}let A=E.getBoundingClientRect();m({top:A.top,left:A.left,width:A.width,height:A.height});},[p]);useEffect(()=>{o&&u(false);},[o]),useEffect(()=>{if(!o||(v(),typeof window>"u"))return;let E=()=>v();return window.addEventListener("resize",E),window.addEventListener("scroll",E,true),()=>{window.removeEventListener("resize",E),window.removeEventListener("scroll",E,true);}},[o,v]);let $=useCallback(()=>{u(true),r();},[r]),S=useMemo(()=>{let{colors:E,typography:A,shape:w,shadows:T}=s;return {container:{zIndex:9996,maxWidth:"320px",width:"max-content",lineHeight:1.45,display:"flex",flexDirection:"column",gap:"10px",boxSizing:"border-box",backgroundColor:E.toastBackground,color:E.toastText,borderRadius:w.borderRadius,boxShadow:T.medium,padding:"12px 14px",fontFamily:A.fontFamily,fontSize:A.fontSizeSmall},body:{margin:0},actions:{display:"flex",alignItems:"center",gap:"10px"},cta:{color:E.info,background:"transparent",border:"none",fontWeight:600,fontSize:A.fontSizeSmall,cursor:"pointer",textDecoration:"underline",padding:0},close:{marginLeft:"auto",background:"transparent",border:"none",color:E.textMuted,fontSize:"14px",cursor:"pointer",lineHeight:1,padding:"2px 4px"}}},[s]);if(!o||c)return null;let R=d?NM(d,g,f):FM;return jsxs("div",{className:t,style:{...S.container,...R,...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:$,"aria-label":"Close tooltip",children:"\xD7"})]})]})}Jx.displayName="TooltipSlot";function VM(e){return e==="connected"?"#22c55e":e==="pending"?"#f59e0b":"#ef4444"}function BM(e){return e==="connected"?"Connected":e==="pending"?"Pending":"Disconnected"}function Xx({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=pn(),s=e.connection_state||"disconnected",c=useMemo(()=>{let{colors:u,typography:d,shape:m,shadows:p}=i;return {card:{backgroundColor:u.surface,border:`1px solid ${u.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:u.text,fontSize:"15px",fontWeight:600},body:{margin:0,color:u.textSecondary,fontSize:d.fontSizeSmall,lineHeight:1.45},badge:{display:"inline-flex",alignItems:"center",gap:"6px",borderRadius:"999px",border:`1px solid ${u.surfaceBorder}`,padding:"3px 8px",fontSize:"12px",color:u.textSecondary},dot:{width:"8px",height:"8px",borderRadius:"50%",backgroundColor:VM(s)},cta:{alignSelf:"flex-start",backgroundColor:u.primary,color:u.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}),BM(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}Xx.displayName="AgentConnectorSlot";var Il=(e,n="")=>e==null||e===""?n:String(e);function ZM(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 Yx={fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.05em",color:"#94a3b8"};function Qx({content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:o,accentText:t}){let i=ZM(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 eI(){let e=pn();return useMemo(()=>({accent:e.colors.primary,accentText:e.colors.primaryText}),[e])}function tI({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=eI();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:{...Yx,margin:0},children:"Email preview"}),jsx("p",{style:{margin:"2px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Il(e.subject,"(no subject)")})]}),jsxs("div",{style:{padding:"8px 12px",fontSize:"12px",color:"#475569",whiteSpace:"pre-wrap"},children:[Il(e.body,"(empty body)"),jsx(Qx,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]})]}):null}tI.displayName="EmailPreviewSlot";function nI({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=eI();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:{...Yx,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:Il(e.body??e.message,"(empty message)")}),jsx(Qx,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}nI.displayName="SmsPreviewSlot";function rI({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=eI();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:{...Yx,margin:0},children:"Push preview"}),jsx("p",{style:{margin:"4px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Il(e.header??e.title,"(no title)")}),jsx("p",{style:{margin:0,fontSize:"12px",color:"#475569"},children:Il(e.body,"(empty body)")}),jsx(Qx,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}rI.displayName="PushPreviewSlot";function Sl(e){e.register({id:"banner",label:"Banner",description:"Full-width banner placement at the top or bottom of the page.",surfaceType:"banner",component:zx,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:Ax}),e.register({id:"in_page",label:"Inline Embed",description:"Content card or message embedded in the page flow.",surfaceType:"in_page",component:yl}),e.register({id:"plans_cta",label:"Plans CTA",description:"Pricing page CTA-focused module with concise upgrade actions.",surfaceType:"in_page",component:yl,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:qm,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:yl,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:Jx,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:Nx,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:Lx,defaultProps:{content:{style:"primary"}}}),e.register({id:"full_page",label:"Full Page",description:"Dedicated managed page (e.g. plans & pricing).",surfaceType:"full_page",component:qm}),e.register({id:"quota_meter",label:"Quota Meter",description:"Visual usage meter with upgrade CTA. Triggers at configurable threshold.",surfaceType:"in_page",component:Mm,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:Mm,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:Hx}),e.register({id:"email",label:"Email Preview",description:"Static email channel preview (subject + body + CTAs).",surfaceType:"email",component:tI}),e.register({id:"sms",label:"SMS Preview",description:"Static SMS channel preview (message bubble + CTAs).",surfaceType:"sms",component:nI}),e.register({id:"push",label:"Push Preview",description:"Static push-notification channel preview (title + body + CTAs).",surfaceType:"push",component:rI}),e.register({id:"agent_connector",label:"Agent Connector",description:"Agent-surface placement for assistant/connector experiences.",surfaceType:"agent",component:Xx,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:Kx,accepts:n=>n.surface.type==="in_page"&&(n.surface.template==="credit_balance_counter"||n.surface.template==="credit_balance")});}var qM=new Set(["type","plan_handle","promotion_id","placement_handle","url","tour_id"]),Ya=class{constructor(){C(this,"types",new Map);C(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 Tj(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 u=o(n[`${c}_usage_current`]),d=o(n[`${c}_usage_limit`]);if(!(u===void 0||d===void 0))return Math.max(0,d-u)};return e.replace(/\{\{(\w+)\}\}/g,(i,s)=>{let c=r[s]??s,u=n[c];if(u!=null)return String(u);let d=t(c);return d!=null?String(d):`{{${s}}}`})}function HM(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=Tj(t,n):r[o]=t;return r}function KM(e){let n=typeof e.type=="string"&&e.type.length>0?e.type:"dismiss",r={};for(let[o,t]of Object.entries(e))qM.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 GM(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 Pl=null;function JM(){return Pl||(Pl=new Ya,Sl(Pl)),Pl}function WM(){Pl=null;}var kl={recommended_plan_handle:"",recommended_plan_name:""};function wj(e){let{strategy:n,planOverride:r,currentPlanHandle:o,plans:t}=e;if(t.length===0)return kl;if(n==="custom"){let c=r??"";if(c===""||c===o)return kl;let u=t.find(d=>d.unique_handle===c);return u?{recommended_plan_handle:u.unique_handle,recommended_plan_name:u.name}:kl}if(o==="")return kl;let i=ag(o,t);if(i===null)return kl;let s=t.find(c=>c.unique_handle===i);return {recommended_plan_handle:i,recommended_plan_name:s?.name??i}}var iI="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Gm=iI.length,XM=Gm-1,YM=10,Km=16;function QM(e){let n=e,r="";for(let o=0;o<YM;o+=1){let t=n%Gm;r=iI[t]+r,n=Math.floor(n/Gm);}return r}function Ej(){let e=new Uint8Array(Km);crypto.getRandomValues(e);let n=new Array(Km);for(let r=0;r<Km;r+=1)n[r]=e[r]%Gm;return n}function e3(e){for(let n=e.length-1;n>=0;n-=1){if(e[n]<XM)return e[n]+=1,true;e[n]=0;}return false}function Rj(){let e=-1,n=[];return {next(r=Date.now()){r<=e&&n.length===Km?e3(n)||(e+=1,n=Ej()):(e=r,n=Ej());let o=QM(e);for(let t=0;t<n.length;t+=1)o+=iI[n[t]];return o}}}var oI=Rj();var t3=new Set([408,429,500,502,503,504]);function n3(e){return new Promise(n=>setTimeout(n,e))}async function aI(e,n={}){let r=n.retries??2,o=n.baseDelayMs??200,t=n.sleep??n3,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(!t3.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 sI(){return {created:0,dropped:0,redacted:0,sampled:0,deduped:0,queued:0,sent:0,failed:0}}function Cj(){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 u=new Map,m={io:new IntersectionObserver(p=>{let g=n.get(s);if(g)for(let f of p){let v=u.get(f.target);!v||v.fired||(f.isIntersecting?v.minVisibleMs<=0?r(g,f.target,v,"viewport"):v.timer===null&&(v.timer=setTimeout(()=>r(g,f.target,v,"viewport"),v.minVisibleMs)):v.timer!==null&&(clearTimeout(v.timer),v.timer=null));}},{threshold:t,rootMargin:i}),tracked:u};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,u=i.rootMargin??"0px",d=o(c,u),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 cI=Cj();var Aj=new Set(zm.options);function Bee(e,n){return Xm(n,"defineUiPathResolvers(resolvers)")}function Xm(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}function Ym(e){return e?.playbook??e?.exportedConfig}function Mee(e){return {...e,runtimeMode:"revturbine_server"}}function Zee(e){return {...e,runtimeMode:"custom_endpoints",endpointOverrides:e.endpointOverrides}}function r3(e){let n=Xm(e.uiPathResolvers,"createLocalRuntimeConfig(uiPathResolvers)");return {...e,runtimeMode:"local_only",localRuntime:e.localRuntime,uiPathResolvers:n}}function qee(e){return r3(e)}function Hee(e,n,r={}){return {slotId:e,surfaceType:n,entitlementHandle:r.entitlementHandle,planHandle:r.planHandle,placementHandle:r.placementHandle}}function Kee(e,n={}){return {entitlementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,planHandle:n.planHandle,placementHandle:n.placementHandle}}function Gee(e,n={}){return {placementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,entitlementHandle:n.entitlementHandle,planHandle:n.planHandle}}function Ai(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function Jee(e,n,r,o={}){return {userId:e,placementId:n,interactionType:r,treatmentId:o.treatmentId,interactionAt:o.interactionAt,metadata:o.metadata}}function Wee(e,n,r){return {eventType:e,payload:n,options:r}}var jj="revturbine:sdk-route-change",lI="sdk_validation_warning",i3="revturbine:decision-cache",o3="revturbine:interaction-state",a3="revturbine:presentation-caps",s3="/api/track",c3="/api/sdk/meta",l3="/api/events/interactions",u3="/api/placements/interactions",d3="revturbine-web-sdk",Oj="user_context_observed",m3=20,p3=5e3;function f3(e,n){let r=e[n];if(typeof r=="string"&&r.trim().length>0)return r;let o=Dj(e);if(o){let t=o[n];if(typeof t=="string"&&t.trim().length>0)return t}return null}function Dj(e){return X(e.payload)?e.payload:null}var g3=["surface_slot_id","placement_id","payload_id","experiment_id","variant_key"];function h3(e){let n={};for(let r of g3)n[r]=f3(e,r);return n}function b3(e){return tg(e,gI(8))}async function zj(e){let n=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return dm(new Uint8Array(n))}function gI(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()}-${gI(16)}`}function Jm(){return Ta()?{}:{url:window.location.href,title:document.title,referrer:document.referrer||void 0}}function Uj(){return {id:void 0,custom:{},entitlements:{},usage:{},personalization:{}}}function _3(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 Iy(e,r)}function v3(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 dI=class{constructor(n){C(this,"exportedConfig");this.exportedConfig=n;}getExportedConfig(){return this.exportedConfig}},mI=class{constructor(n,r,o){C(this,"cached");C(this,"resolver");C(this,"legacyTargetDefaults");this.resolver=n,this.cached=o,this.legacyTargetDefaults=r;}getExportedConfig(){return this.cached}async refresh(){let n=si(await this.resolver(),"localRuntime.resolvers.resolveExportedConfig()",this.legacyTargetDefaults);return n&&(this.cached=n),this.cached}},pI=class{constructor(n,r){C(this,"source");C(this,"legacyTargetDefaults");this.source=n,this.legacyTargetDefaults=r;}getExportedConfig(){return si(this.source.getExportedConfig(),"configProvider.getExportedConfig()",this.legacyTargetDefaults)}async refresh(){let n=await this.source.refresh?.();return si(n??this.source.getExportedConfig(),"configProvider.refresh()",this.legacyTargetDefaults)}},fI=class{constructor(n){C(this,"tenantId");C(this,"apiKey");C(this,"ingestPublicKey");C(this,"environmentId");C(this,"analyticsEnabled");C(this,"anonymousTelemetryEnabled");C(this,"telemetryConsent");C(this,"telemetryCounters",sI());C(this,"maxBatchSize");C(this,"flushIntervalMs");C(this,"flushTimer");C(this,"batchingTeardown",[]);C(this,"anonTelemetryNoticeShown",false);C(this,"piiRedactionWarned",false);C(this,"endpoint");C(this,"runtimeMode");C(this,"endpointOverrides");C(this,"localRuntime");C(this,"localStorageKey");C(this,"mode");C(this,"policy");C(this,"extensionEnabled");C(this,"placementBehavior");C(this,"providerFailureSlotBehavior");C(this,"uiPathResolvers");C(this,"persistentStore");C(this,"sessionStore");C(this,"anonymousId");C(this,"sessionId");C(this,"decisionCache",new Map);C(this,"interactionState",new Map);C(this,"interactionQueue",[]);C(this,"defaultDecisionTtlMs",6e4);C(this,"defaultDismissCooldownMs",1440*60*1e3);C(this,"defaultRemindLaterMs",3600*1e3);C(this,"defaultUsageWarningPercent",80);C(this,"defaultTrialExpiringDays",3);C(this,"events",[]);C(this,"placements",new Map);C(this,"syncedSurfaceSlotIds",new Set);C(this,"userContext");C(this,"pageContext");C(this,"usageBalances",{});C(this,"localDecisionsByPlacementId",new Map);C(this,"localPlacementsByLookupKey",new Map);C(this,"localEntitlementsByHandle",new Map);C(this,"localUserContextsByUserId",new Map);C(this,"localTrialStatus",{in_trial:false});C(this,"presentationCapsByKey",new Map);C(this,"usageLimitByEntitlement",new Map);C(this,"usageTokenPrefixByEntitlement",new Map);C(this,"segmentIdsByPredicateField",new Map);C(this,"configuredSegmentsById",new Map);C(this,"dirtySegmentIds",new Set);C(this,"segmentMembershipBySegmentId",new Map);C(this,"segmentMembershipUserId");C(this,"lastTrialTriggerStage","none");C(this,"configProvider");C(this,"branding");C(this,"apiBranding");C(this,"defaultLocalPlacementDecisionResolver");C(this,"sdkDisabledByProviderFailure",false);C(this,"sdkDisabledReason");C(this,"providerRegistry");C(this,"placementTypeRegistry");C(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??m3),this.flushIntervalMs=Math.max(0,n.eventBatching?.flushIntervalMs??p3),this.endpoint=n.endpoint.replace(/\/$/,""),this.runtimeMode=n.runtimeMode??"revturbine_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=Xm(n.uiPathResolvers,"RevTurbineInitOptions.uiPathResolvers"),this.persistentStore=Ti(n.persistentStorage),this.sessionStore=tx(n.sessionStorage),this.userContext={usage:{},...this.policy.inferUser?Uj():{},...n.user||{}},this.pageContext={...this.policy.inferPage?Jm():{},...n.page||{},tags:qs(n.page?.tags)},this.anonymousId=this.resolveAnonymousId(),this.sessionId=en(),this.providerRegistry=new Gc,this.placementTypeRegistry=new Ya,this.impressionHistory=new Jy({store:new $m({storage:this.persistentStore,tenantId:this.tenantId}),userId:this.userContext.id??this.anonymousId}),Sl(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(),jn()&&this.policy.routerAutoTrack&&this.installRouteTracking(),jn()&&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==="local_only"}resolveConfigProvider(n){let r={tenantId:n.tenantId,environmentId:n.environmentId??"default"};if(n.configProvider)return new pI(n.configProvider,r);let o=si(Ym(n.localRuntime),"localRuntime.playbook",r),t=n.localRuntime?.resolvers?.resolveExportedConfig;if(t)return new mI(t,r,o);if(o)return new dI(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 da({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 u={};if(r&&typeof r=="object"){let m=Hr(r);for(let[p,g]of Object.entries(r)){if(!g||typeof g!="object")continue;let f=typeof g.amount=="number"?g.amount:m[p]??0,v=typeof g.limit=="number"?g.limit:0,$=v>0?Math.max(0,v-f):0;u[p]={used:f,limit:v,remaining:$,unit:typeof g.unit=="string"?g.unit:void 0,reset_date:typeof g.reset_date=="string"?g.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(u).length>0||c?{entitlements:{entries:{},usage:u,...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 gm(n,r,o)}buildTargetingState(n){return hm(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,u=new Set([...Object.keys(i.segmentTraits),...Object.keys(s.segmentTraits)]);for(let d of u)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 jn()?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:Ai(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 Py(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 og(n,r.planHandle)}applyCategoryConflictSuppression(n){return pm(n)}resolveLocalPlacementFromCandidates(n,r){return $y(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=ig(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 `${i3}:${this.tenantId}:${this.anonymousId}`}interactionStateStorageKey(){return `${o3}:${this.tenantId}:${this.anonymousId}`}presentationCapsStorageKey(){return `${a3}:${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=X(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=>X(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(!X(s))continue;let c=typeof s.entitlement_id=="string"?s.entitlement_id:typeof s.entitlementId=="string"?s.entitlementId:"";if(!c)continue;let u=X(s.type_fields)?s.type_fields:X(s.typeFields)?s.typeFields:{},d=typeof u.kind=="string"?u.kind:"";if(!(d==="usage_limit"||d==="credits"||d==="seat"))continue;let p=o.get(c)??"",g=typeof u.usage_unit=="string"?u.usage_unit:typeof u.usageUnit=="string"?u.usageUnit:"",f=sg(g),v=f&&!cg(f)?f:Co(p||c);v&&(this.usageTokenPrefixByEntitlement.set(c,v),p&&this.usageTokenPrefixByEntitlement.set(p,v));let $=Number(u.limit_value??u.allowance??u.limit);if(!Number.isFinite($)||$<=0||!this.ruleTargetsActivePlan(s,r))continue;let S=Number(s.warning_threshold_percent??s.warning_percentage??u.warning_threshold_percent??u.warning_percentage),R=Number.isFinite(S)&&S>0?Math.min(100,S):this.defaultUsageWarningPercent;this.usageLimitByEntitlement.set(c,{limit:$,warningPercent:R}),p&&this.usageLimitByEntitlement.set(p,{limit:$,warningPercent:R});}}recalculateDerivedUsageTraits(){let n=this.getConfiguredExportedConfig();this.hydrateUsageLimitRulesFromExportedConfig();let r=Ry({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 wj({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=eo(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={...Hr(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)??Co(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 Xy({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:u,effectivePlanHandle:d}=this.resolveReverseTrialGrants(o);return Ec({handle:n,context:r,currentPlanHandle:i,segmentIds:c,usageBalances:this.usageBalances,userUsage:this.userContext.usage,exportedConfig:o,...u!==void 0?{trialGrantedEntitlementHandles:u}:{},...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=eo(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(g=>(g.predicates??[]).map(f=>f.field)))).sort((g,f)=>g.localeCompare(f)),u={...r?.traits??{},...this.userContext.custom??{}};for(let[g,f]of Object.entries(this.userContext.entitlements??{}))u[g]===void 0&&(u[g]=f);t&&u.plan_name===void 0&&(u.plan_name=t),i&&u.plan===void 0&&(u.plan=i);let d={...r?.usage??{},...Hr(this.userContext.usage),...this.usageBalances};for(let[g,f]of Object.entries(d))u[g]===void 0&&(u[g]=f);let m={};for(let[g,f]of Object.entries(u))(typeof f=="string"||typeof f=="number"||typeof f=="boolean")&&(m[g]=f);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 g of this.dirtySegmentIds){let f=this.configuredSegmentsById.get(g)??s.find($=>$.handle===g);if(!f){this.segmentMembershipBySegmentId.delete(g);continue}let v=Rc([f],m).length>0;this.segmentMembershipBySegmentId.set(g,v);}this.dirtySegmentIds.clear();}let p=s.length>0?s.filter(g=>this.segmentMembershipBySegmentId.get(g.handle)===true).map(g=>g.handle):[...r?.segmentIds??[]];return {userId:n,segmentIds:p,traits:u,...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),u=o.configuredSegments.map(ae=>{let pe=Array.isArray(ae.predicates)?ae.predicates.map(ce=>_3(ce,o.traits)):[],et=pe.length>0?pe.every(ce=>ce.matched):c.has(ae.handle);return {segmentId:ae.handle,...ae.name?{segmentName:ae.name}:{},matched:et,predicates:pe}}),d=new Map,m=new Map;if(Array.isArray(s?.entitlements))for(let ae of s.entitlements){let pe=At(ae.unique_handle),et=pe;et&&pe&&d.set(et,pe);let ce=At(ae.type);et&&ce&&m.set(et,ce);}let p=new Map;if(Array.isArray(s?.plans))for(let ae of s.plans){let pe=At(ae.unique_handle),et=pe;et&&pe&&p.set(et,pe);}let f=(At(o.plan,o.traits.plan,o.traits.plan_handle,o.traits.plan_id)??"").toLowerCase(),v=new Map;if(Array.isArray(s?.segments))for(let ae of s.segments){let pe=At(ae.handle),et=At(ae.dimension_id);pe&&et&&v.set(pe,et);}let $=Array.isArray(s?.entitlement_rules)?s.entitlement_rules.map((ae,pe)=>{let et=At(ae.id)??`entitlement_rule_${pe}`,ce=At(ae.entitlement_id),vt=ce?d.get(ce):void 0,it=Array.isArray(ae.targets)?ae.targets.filter(te=>te.kind==="plan").map(te=>te.id):[],be=it.map(te=>p.get(te)??te),cn=Array.isArray(ae.segment_ids)?ae.segment_ids.filter(te=>typeof te=="string"):[],$t=X(ae.type_fields)?ae.type_fields:{},rn=At($t.kind),De=!f||it.some(te=>te.toLowerCase()===f),lt=v3(cn,c,v),or=De&&lt,qt=vt?t[vt]:ce?t[ce]:void 0,on=or?qt?.status??"unknown":"unknown",Xe;if(or)switch(rn){case "feature":Xe=$t.enabled===false?"disables feature":"grants access";break;case "capability_tier":{let te=At($t.tier_name);Xe=te?`unlocks ${te} tier`:"unlocks capability tier";break}case "usage_limit":{let te=typeof $t.limit_value=="number"?$t.limit_value:void 0,Tt=At($t.unit)??"",ln=At($t.period)??"",Eo=ln?` / ${ln.replace("per_","")}`:"";Xe=te!=null?`sets limit to ${te.toLocaleString()}${Tt?` ${Tt}`:""}${Eo}`:"sets usage limit";break}case "credits":{let te=typeof $t.allowance=="number"?$t.allowance:void 0,Tt=At($t.unit)??"credits",ln=At($t.period)??"",Eo=ln?` / ${ln.replace("per_","")}`:"";Xe=te!=null?`grants ${te.toLocaleString()} ${Tt}${Eo}`:"grants credit allowance";break}case "seat":{let te=typeof $t.included_seats=="number"?$t.included_seats:void 0;Xe=te!=null?`includes ${te} seat${te===1?"":"s"}`:"includes seats";break}default:if(ce){let te=m.get(ce);te==="feature"?Xe="grants access":te&&(Xe=`${te.replace(/_/g," ")} entitlement`);}break}return {ruleId:et,...ce?{entitlementId:ce}:{},...vt?{entitlementHandle:vt}:{},...rn?{kind:rn}:{},planScopes:be,planIds:it,...cn.length>0?{segmentIds:cn}:{},matchesPlan:De,matchesSegment:lt,matched:or,outcome:on,...Xe?{outcomeDescription:Xe}:{},...qt?.reason?{reason:qt.reason}:{}}}):[],S=At(r.output?.output_id),R=this.placements.get(n.placementId),E=At(R?.name)??"",A=Array.isArray(R?.metadata?.surface_template_ids)?R.metadata.surface_template_ids:[],w=[],T=new Set;if(Array.isArray(s?.placements))for(let ae of s.placements){if(!ae||typeof ae!="object")continue;let pe=At(ae.id)??"",et=At(ae.name)??"";if(T.has(pe))continue;let ce=At(r.output?.rule_id);if(ce&&pe===ce){T.add(pe),w.push(ae);continue}if(E&&(pe===E||et===E||pe===`pl_${E}`||et===`pl_${E}`)){T.add(pe),w.push(ae);continue}A.length>0&&(ae.payloads??[]).some(be=>(be.surfaces??[]).some($t=>{let rn=At($t.template_id);return rn?A.includes(rn):false}))&&(T.add(pe),w.push(ae));}let ee=w.flatMap(ae=>(ae.payloads??[]).map(et=>{let ce=et.target,vt=ce?.plan_ids??[],it=vt.map(qt=>p.get(qt)??qt),be=ce?.segment_chips??[],$t=(et.surfaces??[]).map(qt=>At(qt.template_id)).filter(qt=>typeof qt=="string"),rn=vt.length===0||!f||vt.some(qt=>qt.toLowerCase()===f),De=be.length===0||be.some(qt=>c.has(qt)),lt="active",or=lt==="active"&&rn&&De;return {payloadId:String(et.id??""),placementId:String(ae.id??""),placementName:String(ae.name??""),status:lt,planIds:vt,planScopes:it,segmentChips:be,surfaceTemplateIds:$t,matchesPlan:rn,matchesSegment:De,eligible:or,selected:!!S&&S===String(et.id??"")}})),Ne=r.output?this.extractPlacementCapPolicies(r.output).flatMap(ae=>ae.rules.length===0&&ae.cooldownMs===void 0?[]:ae.rules.length===0?[{count:0,period:"session",cooldownMs:ae.cooldownMs}]:ae.rules.map(pe=>({count:pe.count,period:pe.period,...ae.cooldownMs!==void 0?{cooldownMs:ae.cooldownMs}:{}}))):[],Le={ruleId:r.output?.rule_id,decisionId:r.output?.decision_id,category:r.output?.category,suppressionReason:r.suppressionReason,reasonCodes:r.reasonCodes,capPolicies:Ne};return {generatedAt:new Date().toISOString(),input:n,decision:r,targeting:o,policy:i,entitlements:t,segments:u,entitlementRules:$,eligiblePayloads:ee,placementRules:Le}}usageThresholdForEntitlement(n){return yy(n,this.usageLimitByEntitlement,this.localEntitlementsByHandle,this.usageBalances,this.defaultUsageWarningPercent)}evaluateUsageThresholdCrossings(n,r){return Cy(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 jy(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(Ta())return;let n=window.history;if(n.__rtPatched)return;let r=()=>{window.dispatchEvent(new CustomEvent(jj,{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(jj,i=>{let s=i.detail;this.onRouteChange({path:s.path,title:s.title,tags:s.tags});}),n.__rtPatched=true;}mergeUserContext(n){return Ey(this.userContext,n)}mergePageContext(n){return {...this.pageContext,...n,tags:qs(n.tags||this.pageContext.tags)}}collectPageContextIssues(){let n=[],r={...this.policy.inferPage?Jm():{},...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(!X(n))return r.push({code:"invalid_event_payload",reason:"Event payload must be a plain object."}),r;let o=Dj(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(lI,{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:X(o)?o:null})}toEventEnvelope(n,r){let o={...this.policy.inferPage?Jm():{},...this.pageContext},t=o.url||(jn()?window.location.href:""),i=(()=>{try{return new URL(t).pathname}catch{return jn()?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||(jn()?document.title:""),event_time:new Date().toISOString(),anonymous_id:this.anonymousId,user_id:this.userContext.id||null,session_id:this.sessionId,tags:qs(o.tags),identity:{tenant_id:this.tenantId,user_id:this.userContext.id||null,anonymous_id:this.anonymousId,traits:n===Oj?{}:{...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()&&jn()}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 zj(i)).slice(0,64),u={events:[{event_type:n,occurred_at:new Date().toISOString(),request_id:en(),config_hash_id:s,sdk_version:uj,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",c3),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(u),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(m=>{let p=aC(m);return r+=p.redactions,p.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=o.map(m=>{let p=m.user_id||m.anonymous_id,g=Qy(this.userContext.account_id||p),f=Yy({level:m.level,message:m.message,path:m.path,url:m.url,page_title:m.page_title,session_id:m.session_id,anonymous_id:m.anonymous_id,tags:m.tags,traits:m.identity.traits??null,payload:m.properties,source:d3});return r+=f.redactions+(g.redacted?1:0),{environment_id:this.environmentId,user_id:p,account_id:g.value,event_name:Su(m.type).slice(0,120),event_ts:m.event_time,properties:JSON.stringify(f.value),...h3(m.properties),event_id:oI.next(),request_id:en(),tenant_id:m.tenant_id}});r>0&&this.warnPiiRedactedOnce();let c=this.endpointFor("ingestEvents",s3),u={method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.ingestPublicKey??this.apiKey}`,"x-request-id":i},body:JSON.stringify({events:s}),keepalive:true};(await aI(()=>fetch(c,u))).delivered?this.telemetryCounters.sent+=s.length:this.telemetryCounters.failed+=s.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=Su(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}=ex(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(!jn()||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=X(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||[]),u=Array.from(c).filter(m=>!s.has(m)),d=Array.from(s).filter(m=>!c.has(m));for(let m of u)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},g=this.evaluateUsageThresholdCrossings(m,p);await Promise.all(g);}}emitObservedContextFields(n){let r=Object.keys(n??{}).filter(o=>o.length>0).sort();r.length!==0&&this.capture(Oj,{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(Jm());}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=X(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:Ai(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 Sy({tenantId:this.tenantId,placementName:n.placementName,placementScopeKey:n.placementScopeKey,pageRoute:n.normalizedPageRoute||this.currentPathname()},{sha256Base64Url:zj,randomHex:gI})}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:X(n.metadata)?n.metadata:void 0})}async upsertSurfaceSlot(n){if(this.isLocalOnlyMode())return;let r=en(),o=this.endpointFor("surfaceSlots","/api/placements").replace(/\/+$/,""),t=b3(n.placementScopeKey||n.id||n.name),i={...X(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},u=await fetch(`${o}/${encodeURIComponent(n.id)}`,{method:"PUT",headers:c,body:JSON.stringify(s)});if(u.ok){this.syncedSurfaceSlotIds.add(n.id);return}if(u.status!==404)throw new Error(`surface_slot_upsert_failed:${u.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=Ro(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&&!X(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:{...X(n.metadata)?n.metadata:{},surface_slot_id:o||null,...Array.isArray(n.surfaceTemplateIds)&&n.surfaceTemplateIds.length>0?{surface_template_ids:n.surfaceTemplateIds}:{}}},u=this.placements.get(s),d=u?this.stableStringify(u):null,m=this.stableStringify(c);return (!u||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=>x3(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 ci(n)}decisionCacheKey(n,r){return ky({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 XR({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 YR(n)}placementCapKey(n){return [this.tenantId,this.userContext.id||this.anonymousId,n.surface.type,n.output_id].join(":")}extractPlacementCapPolicies(n){return fm(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=wy(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 Ty(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:Ai("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:Ai(`${r.name} suppressed`,"Suppressed due to recent interaction state.","Continue")};let s,c,u;this.isLocalOnlyMode()&&(s=await this.localRuntime?.getContext?.(),c=this.providerRegistry.size>0?await this.providerRegistry.resolveAll():this.synthesizeProviderContext(),(s||c)&&(u=this.stableStringify({legacyCtx:s??{},providerCtx:c??{}})));let d=this.decisionCacheKey(n,u),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 f={...s,...c?{__providers:c}:{}},v=this.gateDecisionByCaps(await p(n,r,f));return this.localDecisionsByPlacementId.set(n.placementId,v),this.writeDecisionCache(d,v,n.ttlMs),this.persistLocalRuntimeState(),v}let g=this.localDecisionsByPlacementId.get(n.placementId);if(g){let f=this.gateDecisionByCaps({...g,decisionSource:"fallback"});return this.writeDecisionCache(d,f,n.ttlMs),this.persistLocalRuntimeState(),f}}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(v=>({entitlement_id:v.entitlementId,meter_id:v.meterId,used:v.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 g=await p.json(),f=this.gateDecisionByCaps(this.normalizeDecisionFromResponse(n.placementId,o,r.name,g));return this.writeDecisionCache(d,f,n.ttlMs),this.localDecisionsByPlacementId.set(n.placementId,f),this.persistLocalRuntimeState(),f}catch{let p=await this.getPlacementContent(n.placementId,{user_id:n.userId,context_mode:n.contextMode??"auto",overrides:n.overrides,traits:n.traits}),g={placementId:n.placementId,requestId:p.requestId,visible:true,decisionSource:"fallback",reasonCodes:["fallback_content"],content:p.content};return this.writeDecisionCache(d,g,n.ttlMs),this.localDecisionsByPlacementId.set(n.placementId,g),this.persistLocalRuntimeState(),g}}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(u=>({entitlement_id:u.entitlementId,meter_id:u.meterId,used:u.used}))}:void 0,traits:o.traits,placements:o.placementIds.map(u=>({placement_id:u}))})});if(!i.ok)throw new Error(`bootstrap-context failed: ${i.status}`);let s=await i.json(),c=X(s)&&Array.isArray(s.decisions)?s.decisions:[];for(let u of c){if(!X(u))continue;let d=typeof u.placement_id=="string"?u.placement_id:"",m=X(u.result)?u.result:null,p=this.placements.get(d);if(!p||!m)continue;let g=this.normalizeDecisionFromResponse(d,t,p.name,m),f=this.decisionCacheKey({placementId:d,userId:o.userId,contextMode:o.contextMode,overrides:o.overrides,traits:o.traits});this.writeDecisionCache(f,g,o.ttlMs),this.localDecisionsByPlacementId.set(d,g);}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",l3),{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",u3),{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 s=Number(i.suppress_duration_ms);this.impressionHistory.recordSuppression(o,t,void 0,i,Number.isFinite(s)&&s>0?s:void 0);}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,metadata:r.metadata??{}},{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:Ai(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:Ai("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:Ai(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:Ai(`${o.name} treatment`,"Fallback treatment active while decision endpoint is unavailable.","Continue")}}}normalizePlacementOutput(n){let r=Tc(n,en);return r&&X(n)&&typeof n.decision_id!="string"&&this.capture(lI,{reason:"placement response missing decision_id; generated synthetic",output_id:r.output_id,synthetic_decision_id:r.decision_id}),r}normalizeEntitlementResult(n){return vy(n,en)}validateTrialStatusShape(n){return pg(n)}async getPlacement(n){if(this.isDisabledByProviderFailure())return this.disabledPlacementOutputForConfig(n);let r=n.slotId,o=n.surfaceType;if(o&&!Aj.has(o))return this.capture(lI,{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 u=await i(n);return u&&this.applyPlacementCapsIfNeeded(u).allowed?u: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 u=await i(n,r);return this.localEntitlementsByHandle.set(n,u),this.persistLocalRuntimeState(),u}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:X(t.traits)?t.traits:{},plan:typeof t.plan=="string"?t.plan:void 0,usage:X(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}=Iu({...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:X(r)&&Array.isArray(r.content_ui_paths)?r.content_ui_paths:[],t=n.includeProviderHandlers??true,i=Xm(n.resolvers,"validateUiPathResolvers(options.resolvers)"),s={...this.uiPathResolvers,...i};if(t&&this.providerRegistry.has("cta"))try{let m=await this.providerRegistry.resolveAll();X(m.cta)&&X(m.cta.handlers)&&Object.assign(s,m.cta.handlers);}catch{}let c=[],u=0;for(let m of o){let p=X(m)?m:{},g=typeof p.action_type=="string"?p.action_type.trim():"";if(!g){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[g]=="function"){u+=1;continue}c.push({actionType:g,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:u,issues:c};if(!d.valid&&n.throwOnMissing){let m=d.issues.filter(g=>g.reason==="missing_resolver").map(g=>g.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=X(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=(X(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,...Hr(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?Uj():{},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){let t=await this.checkEntitlement(n,o);return t.allowed?{ran:true,result:await r(),entitlement:t}:{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:`${jn()?window.location.origin:""}${n.path}`,title:n.title,tags:n.tags}),this.capture("page_view",{source:"router_auto_track",path:n.path});}};function hI(e){let n=y3(e),r=new fI(n);if(!n.provider)return r;let o=(m,p)=>{try{return typeof m=="function"?m(n):m}catch(g){return console.warn(`[RevTurbine] Provider factory failed at chain index ${p}.`,g),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,g)=>{let f=[];for(let v=0;v<t.length;v+=1){let S=t[v][m];if(S){f.push(v);try{return await S(...p)}catch(R){let E=t.slice(v+1).some(A=>typeof A[m]=="function");console.warn(v===0&&E?`[RevTurbine] Primary provider ${m} failed; trying configured fallbacks.`:`[RevTurbine] Provider ${m} failed at chain index ${v}.`,R);}}}return f.length===0||r.disableForProviderFailure(`provider_${m}_chain_failed`),g()},s=r.getPlacement.bind(r),c=r.checkEntitlement.bind(r),u=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],()=>u(m)),r.identify=(m,p)=>{let g=0;for(let f=0;f<t.length;f+=1){let v=t[f];if(v.identify){g+=1;try{v.identify(m,p);return}catch($){let S=t.slice(f+1).some(R=>typeof R.identify=="function");console.warn(f===0&&S?"[RevTurbine] Primary provider identify failed; trying configured fallbacks.":`[RevTurbine] Provider identify failed at chain index ${f}.`,$);}}}if(g>0){r.disableForProviderFailure("provider_identify_chain_failed"),d(m,p);return}d(m,p);},r}var Wm={tenantId:"local",apiKey:"local-only",endpoint:"https://api.revturbine.local",mode:"react"};function uI(e){return typeof e=="string"&&e.trim().length>0}function y3(e){return Ym(e.localRuntime)!==void 0?{...e,tenantId:uI(e.tenantId)?e.tenantId:Wm.tenantId,apiKey:uI(e.apiKey)?e.apiKey:Wm.apiKey,endpoint:uI(e.endpoint)?e.endpoint:Wm.endpoint,mode:e.mode??Wm.mode,runtimeMode:e.runtimeMode??"local_only"}:e}function x3(e){if(!X(e))return null;let n=(u,d)=>String(u??"").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||!Aj.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:hI});var I3="revturbine:theme";function bI(e){return `${I3}:${e}`}function S3(e,n){try{let r=n.getItem(bI(e));if(!r)return null;let o=JSON.parse(r);return typeof o!="object"||o===null?null:o}catch{return null}}function P3(e,n,r){try{r.setItem(bI(e),JSON.stringify(n));}catch{}}function k3(e,n){let r=n??Ti();try{r.removeItem(bI(e));}catch{}}async function _I(e,n){let{tenantId:r,endpoint:o,apiKey:t}=e,i=e.storage??Ti(),s=S3(r,i),c=Xa(s);return $3(o,r,t).then(u=>{u&&(s?.version&&u.version===s.version||(P3(r,u,i),n?.(Xa(u))));}).catch(()=>{}),c}async function $3(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 Qm=class{constructor(n,r){C(this,"sdk");C(this,"options");C(this,"listeners",new Set);C(this,"_placementId","");C(this,"_decision",null);C(this,"_isLoading",false);C(this,"_error","");C(this,"_impressionTracked",false);C(this,"_loadSeq",0);C(this,"_rendered",false);C(this,"_exposed",false);C(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}}));}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_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;let i=this.exposureMode;return i==="legacy_resolution"?this.fireImpression("legacy_resolution"):i==="viewport"&&!cI.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;!this._placementId||!o||(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: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();}},ep=class{constructor(n,r){C(this,"sdk");C(this,"options");C(this,"listeners",new Set);C(this,"_isLoading",false);C(this,"_error",null);C(this,"_result",null);C(this,"_gatedPlacement",null);C(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();}},tp=class{constructor(n,r){C(this,"sdk");C(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 Qm(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 ep(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 T3(e){let{bootstrapPlacements:n,...r}=e,o=r,t=hI(o),i=o.user;i&&typeof i=="object"&&i.id&&t.identify(i.id,i);let s=er,u=Ym(o.localRuntime)?.theme;if(u&&typeof u=="object"?s=Xa(u):s=await _I({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 g=await t.registerPlacement(p.placement),f=p.userId||d;f&&m.push({placementId:g,userId:f,contextMode:p.contextMode,overrides:p.overrides,traits:p.traits,ttlMs:p.ttlMs});}m.length>0&&await t.bootstrapPlacementDecisions(m);}return new tp(t,s)}var w3=/\{[^{}]+\}/g,E3=()=>typeof process=="object"&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function R3(){return Math.random().toString(36).slice(2,11)}function Vj(e){let{baseUrl:n="",Request:r=globalThis.Request,fetch:o=globalThis.fetch,querySerializer:t,bodySerializer:i,pathSerializer:s,headers:c,requestInitExt:u=void 0,...d}={...e};u=E3()?u:void 0,n=Lj(n);let m=[];async function p(g,f){let{baseUrl:v,fetch:$=o,Request:S=r,headers:R,params:E={},parseAs:A="json",querySerializer:w,bodySerializer:T=i??j3,pathSerializer:ee,body:Ne,middleware:Le=[],...ae}=f||{},pe=n;v&&(pe=Lj(v)??n);let et=typeof t=="function"?t:Fj(t);w&&(et=typeof w=="function"?w:Fj({...typeof t=="object"?t:{},...w}));let ce=ee||s||C3,vt=Ne===void 0?void 0:T(Ne,Nj(c,R,E.header)),it=Nj(vt===void 0||vt instanceof FormData?{}:{"Content-Type":"application/json"},c,R,E.header),be=[...m,...Le],cn={redirect:"follow",...d,...ae,body:vt,headers:it},$t,rn,De=new S(O3(g,{baseUrl:pe,params:E,querySerializer:et,pathSerializer:ce}),cn),lt;for(let on in ae)on in De||(De[on]=ae[on]);if(be.length){$t=R3(),rn=Object.freeze({baseUrl:pe,fetch:$,parseAs:A,querySerializer:et,bodySerializer:T,pathSerializer:ce});for(let on of be)if(on&&typeof on=="object"&&typeof on.onRequest=="function"){let Xe=await on.onRequest({request:De,schemaPath:g,params:E,options:rn,id:$t});if(Xe)if(Xe instanceof S)De=Xe;else if(Xe instanceof Response){lt=Xe;break}else throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}if(!lt){try{lt=await $(De,u);}catch(on){let Xe=on;if(be.length)for(let te=be.length-1;te>=0;te--){let Tt=be[te];if(Tt&&typeof Tt=="object"&&typeof Tt.onError=="function"){let ln=await Tt.onError({request:De,error:Xe,schemaPath:g,params:E,options:rn,id:$t});if(ln){if(ln instanceof Response){Xe=void 0,lt=ln;break}if(ln instanceof Error){Xe=ln;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(Xe)throw Xe}if(be.length)for(let on=be.length-1;on>=0;on--){let Xe=be[on];if(Xe&&typeof Xe=="object"&&typeof Xe.onResponse=="function"){let te=await Xe.onResponse({request:De,response:lt,schemaPath:g,params:E,options:rn,id:$t});if(te){if(!(te instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");lt=te;}}}}let or=lt.headers.get("Content-Length");if(lt.status===204||De.method==="HEAD"||or==="0"&&!lt.headers.get("Transfer-Encoding")?.includes("chunked"))return lt.ok?{data:void 0,response:lt}:{error:void 0,response:lt};if(lt.ok)return {data:await(async()=>{if(A==="stream")return lt.body;if(A==="json"&&!or){let Xe=await lt.text();return Xe?JSON.parse(Xe):void 0}return await lt[A]()})(),response:lt};let qt=await lt.text();try{qt=JSON.parse(qt);}catch{}return {error:qt,response:lt}}return {request(g,f,v){return p(f,{...v,method:g.toUpperCase()})},GET(g,f){return p(g,{...f,method:"GET"})},PUT(g,f){return p(g,{...f,method:"PUT"})},POST(g,f){return p(g,{...f,method:"POST"})},DELETE(g,f){return p(g,{...f,method:"DELETE"})},OPTIONS(g,f){return p(g,{...f,method:"OPTIONS"})},HEAD(g,f){return p(g,{...f,method:"HEAD"})},PATCH(g,f){return p(g,{...f,method:"PATCH"})},TRACE(g,f){return p(g,{...f,method:"TRACE"})},use(...g){for(let f of g)if(f){if(typeof f!="object"||!("onRequest"in f||"onResponse"in f||"onError"in f))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");m.push(f);}},eject(...g){for(let f of g){let v=m.indexOf(f);v!==-1&&m.splice(v,1);}}}}function np(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 Bj(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(np(c,n[s],r));}let i=o.join(t);return r.style==="label"||r.style==="matrix"?`${t}${i}`:i}function Mj(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(np(e,i,r));return r.style==="label"||r.style==="matrix"?`${o}${t.join(o)}`:t.join(o)}function Fj(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(Mj(t,i,{style:"form",explode:true,...e?.array,allowReserved:e?.allowReserved||false}));continue}if(typeof i=="object"){o.push(Bj(t,i,{style:"deepObject",explode:true,...e?.object,allowReserved:e?.allowReserved||false}));continue}o.push(np(t,i,e));}}return o.join("&")}}function C3(e,n){let r=e;for(let o of e.match(w3)??[]){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,Mj(t,c,{style:s,explode:i}));continue}if(typeof c=="object"){r=r.replace(o,Bj(t,c,{style:s,explode:i}));continue}if(s==="matrix"){r=r.replace(o,`;${np(t,c)}`);continue}r=r.replace(o,s==="label"?`.${encodeURIComponent(c)}`:encodeURIComponent(c));}return r}function j3(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 O3(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 Nj(...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 Lj(e){return e.endsWith("/")?e.substring(0,e.length-1):e}function z3(e){let n={...e.headers};return e.tenantId&&(n["x-rt-tenant-id"]=e.tenantId),e.token&&(n.Authorization=`Bearer ${e.token}`),Vj({baseUrl:e.baseUrl,headers:n})}var vI=class extends Error{constructor(r,o){super(o);C(this,"status",r);this.name="ApiError";}};var yI=class extends nC{constructor(r){let{exportedConfig:o,environmentId:t,...i}=r,s=si(o,"BrowserRuntime.exportedConfig",{tenantId:r.tenantId,environmentId:t??"default"});if(!s)throw new Error("BrowserRuntime requires exportedConfig");let c=Ti(r.storage),u=new $m({storage:c,tenantId:r.tenantId,maxRecords:r.maxImpressionRecords});super({...i,exportedConfig:s,storage:c,impressionStore:u});C(this,"_hydratePromise");let d=r.autoHydrate??true;this._hydratePromise=d?this.hydrate():null;}async ready(){this._hydratePromise&&await this._hydratePromise;}};var U3=new Set(["tenant_id","user_id","anonymous_id","session_id","url","path","page_title","event_time"]);function A3(e){let n={};for(let[r,o]of Object.entries(e.properties))n[U3.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 xI=class{constructor(n){C(this,"name");C(this,"handler");C(this,"transform");C(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=A3(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 Zj(e){let n=new xI(e);return {domain:"events",resolve:()=>({consumers:[n]})}}function D3(e){let{posthog:n,filter:r,transform:o,name:t}=e;return Zj({name:t??"posthog",filter:r,transform:o,handler:(i,s)=>{n.capture(i,s);}})}var F3=["banner_placement"],N3=["banner_placement","in_page_card"],L3=["toast_message"],V3=["modal_overlay"];var B3=["banner_placement","in_page_card","usage_counter","button"],M3=["modal_overlay","inline_gate_message"],Z3=["toast_message","modal_overlay","banner_placement"];function $l(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}var rp=class{constructor(n){C(this,"tenantId");C(this,"apiKey");C(this,"endpoint");C(this,"defaultTtlSeconds");C(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=$l(),o=n.anonymousId??$l(),[t,i,s,c,u]=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),u&&(d.theme=u),d}async getPlacement(n,r,o){let t=$l(),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(),u=c.decision,d=u?.visible??!1,m={slot_id:r.slotId,entitlement_handle:r.entitlementHandle,plan_handle:r.planHandle,placement_handle:r.placementHandle,visible:d};return d&&u&&(m.output=u),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=$l(),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=$l();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,u)=>{let d=o[u]??{},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 l={};un(l,{$brand:()=>SI,$input:()=>ZP,$output:()=>MP,NEVER:()=>II,TimePrecision:()=>GP,ZodAny:()=>D0,ZodArray:()=>V0,ZodBase64:()=>Cf,ZodBase64URL:()=>jf,ZodBigInt:()=>Es,ZodBigIntFormat:()=>Uf,ZodBoolean:()=>ws,ZodCIDRv4:()=>Ef,ZodCIDRv6:()=>Rf,ZodCUID:()=>If,ZodCUID2:()=>Sf,ZodCatch:()=>l$,ZodCodec:()=>iu,ZodCustom:()=>ou,ZodCustomStringFormat:()=>$s,ZodDate:()=>Ql,ZodDefault:()=>r$,ZodDiscriminatedUnion:()=>M0,ZodE164:()=>Of,ZodEmail:()=>vf,ZodEmoji:()=>yf,ZodEnum:()=>Ps,ZodError:()=>xH,ZodExactOptional:()=>e$,ZodFile:()=>Y0,ZodFirstPartyTypeKind:()=>I$,ZodFunction:()=>v$,ZodGUID:()=>Gl,ZodIPv4:()=>Tf,ZodIPv6:()=>wf,ZodISODate:()=>pf,ZodISODateTime:()=>mf,ZodISODuration:()=>gf,ZodISOTime:()=>ff,ZodIntersection:()=>Z0,ZodIssueCode:()=>SH,ZodJWT:()=>zf,ZodKSUID:()=>$f,ZodLazy:()=>h$,ZodLiteral:()=>X0,ZodMAC:()=>R0,ZodMap:()=>J0,ZodNaN:()=>d$,ZodNanoID:()=>xf,ZodNever:()=>N0,ZodNonOptional:()=>Vf,ZodNull:()=>U0,ZodNullable:()=>n$,ZodNumber:()=>Ts,ZodNumberFormat:()=>$o,ZodObject:()=>tu,ZodOptional:()=>Lf,ZodPipe:()=>ru,ZodPrefault:()=>o$,ZodPreprocess:()=>m$,ZodPromise:()=>_$,ZodReadonly:()=>p$,ZodRealError:()=>Kn,ZodRecord:()=>Ss,ZodSet:()=>W0,ZodString:()=>ks,ZodStringFormat:()=>gt,ZodSuccess:()=>c$,ZodSymbol:()=>O0,ZodTemplateLiteral:()=>g$,ZodTransform:()=>Q0,ZodTuple:()=>H0,ZodType:()=>$e,ZodULID:()=>Pf,ZodURL:()=>Yl,ZodUUID:()=>Zr,ZodUndefined:()=>z0,ZodUnion:()=>nu,ZodUnknown:()=>F0,ZodVoid:()=>L0,ZodXID:()=>kf,ZodXor:()=>B0,_ZodString:()=>_f,_default:()=>i$,_function:()=>j1,any:()=>l1,array:()=>eu,base64:()=>Hz,base64url:()=>Kz,bigint:()=>i1,boolean:()=>j0,catch:()=>u$,check:()=>O1,cidrv4:()=>Zz,cidrv6:()=>qz,clone:()=>Un,codec:()=>w1,coerce:()=>S$,config:()=>Jt,core:()=>ii,cuid:()=>Az,cuid2:()=>Dz,custom:()=>z1,date:()=>d1,decode:()=>S0,decodeAsync:()=>k0,describe:()=>U1,discriminatedUnion:()=>b1,e164:()=>Gz,email:()=>$z,emoji:()=>zz,encode:()=>I0,encodeAsync:()=>P0,endsWith:()=>ps,enum:()=>Ff,exactOptional:()=>t$,file:()=>P1,flattenError:()=>zl,float32:()=>e1,float64:()=>t1,formatError:()=>Ul,fromJSONSchema:()=>B1,function:()=>j1,getErrorMap:()=>kH,globalRegistry:()=>_n,gt:()=>Br,gte:()=>Dn,guid:()=>Tz,hash:()=>Qz,hex:()=>Yz,hostname:()=>Xz,httpUrl:()=>Oz,includes:()=>ds,instanceof:()=>D1,int:()=>hf,int32:()=>n1,int64:()=>o1,intersection:()=>q0,invertCodec:()=>E1,ipv4:()=>Vz,ipv6:()=>Mz,iso:()=>Is,json:()=>N1,jwt:()=>Jz,keyof:()=>m1,ksuid:()=>Lz,lazy:()=>b$,length:()=>Po,literal:()=>S1,locales:()=>Ml,looseObject:()=>g1,looseRecord:()=>v1,lowercase:()=>ls,lt:()=>Vr,lte:()=>rr,mac:()=>Bz,map:()=>y1,maxLength:()=>So,maxSize:()=>Mi,meta:()=>A1,mime:()=>fs,minLength:()=>ri,minSize:()=>Mr,multipleOf:()=>Bi,nan:()=>T1,nanoid:()=>Uz,nativeEnum:()=>I1,negative:()=>tf,never:()=>Af,nonnegative:()=>rf,nonoptional:()=>s$,nonpositive:()=>nf,normalize:()=>gs,null:()=>A0,nullable:()=>Wl,nullish:()=>k1,number:()=>C0,object:()=>p1,optional:()=>Jl,overwrite:()=>Rr,parse:()=>_0,parseAsync:()=>v0,partialRecord:()=>_1,pipe:()=>bf,positive:()=>ef,prefault:()=>a$,preprocess:()=>L1,prettifyError:()=>AI,promise:()=>C1,property:()=>of,readonly:()=>f$,record:()=>G0,refine:()=>y$,regex:()=>cs,regexes:()=>nr,registry:()=>Op,safeDecode:()=>T0,safeDecodeAsync:()=>E0,safeEncode:()=>$0,safeEncodeAsync:()=>w0,safeParse:()=>y0,safeParseAsync:()=>x0,set:()=>x1,setErrorMap:()=>PH,size:()=>Io,slugify:()=>vs,startsWith:()=>ms,strictObject:()=>f1,string:()=>Kl,stringFormat:()=>Wz,stringbool:()=>F1,success:()=>$1,superRefine:()=>x$,symbol:()=>s1,templateLiteral:()=>R1,toJSONSchema:()=>lf,toLowerCase:()=>bs,toUpperCase:()=>_s,transform:()=>Nf,treeifyError:()=>UI,trim:()=>hs,tuple:()=>K0,uint32:()=>r1,uint64:()=>a1,ulid:()=>Fz,undefined:()=>c1,union:()=>Df,unknown:()=>ko,uppercase:()=>us,url:()=>jz,util:()=>L,uuid:()=>wz,uuidv4:()=>Ez,uuidv6:()=>Rz,uuidv7:()=>Cz,void:()=>u1,xid:()=>Nz,xor:()=>h1});var ii={};un(ii,{$ZodAny:()=>dP,$ZodArray:()=>hP,$ZodAsyncError:()=>Er,$ZodBase64:()=>tP,$ZodBase64URL:()=>nP,$ZodBigInt:()=>kp,$ZodBigIntFormat:()=>sP,$ZodBoolean:()=>Nl,$ZodCIDRv4:()=>YS,$ZodCIDRv6:()=>QS,$ZodCUID:()=>LS,$ZodCUID2:()=>VS,$ZodCatch:()=>zP,$ZodCheck:()=>_t,$ZodCheckBigIntFormat:()=>hS,$ZodCheckEndsWith:()=>wS,$ZodCheckGreaterThan:()=>vp,$ZodCheckIncludes:()=>$S,$ZodCheckLengthEquals:()=>IS,$ZodCheckLessThan:()=>_p,$ZodCheckLowerCase:()=>PS,$ZodCheckMaxLength:()=>yS,$ZodCheckMaxSize:()=>bS,$ZodCheckMimeType:()=>RS,$ZodCheckMinLength:()=>xS,$ZodCheckMinSize:()=>_S,$ZodCheckMultipleOf:()=>fS,$ZodCheckNumberFormat:()=>gS,$ZodCheckOverwrite:()=>CS,$ZodCheckProperty:()=>ES,$ZodCheckRegex:()=>SS,$ZodCheckSizeEquals:()=>vS,$ZodCheckStartsWith:()=>TS,$ZodCheckStringFormat:()=>as,$ZodCheckUpperCase:()=>kS,$ZodCodec:()=>Vl,$ZodCustom:()=>BP,$ZodCustomStringFormat:()=>oP,$ZodDate:()=>gP,$ZodDefault:()=>RP,$ZodDiscriminatedUnion:()=>vP,$ZodE164:()=>rP,$ZodEmail:()=>AS,$ZodEmoji:()=>FS,$ZodEncodeError:()=>Di,$ZodEnum:()=>PP,$ZodError:()=>Ol,$ZodExactOptional:()=>wP,$ZodFile:()=>$P,$ZodFunction:()=>NP,$ZodGUID:()=>zS,$ZodIPv4:()=>JS,$ZodIPv6:()=>WS,$ZodISODate:()=>HS,$ZodISODateTime:()=>qS,$ZodISODuration:()=>GS,$ZodISOTime:()=>KS,$ZodIntersection:()=>yP,$ZodJWT:()=>iP,$ZodKSUID:()=>ZS,$ZodLazy:()=>VP,$ZodLiteral:()=>kP,$ZodMAC:()=>XS,$ZodMap:()=>IP,$ZodNaN:()=>UP,$ZodNanoID:()=>NS,$ZodNever:()=>pP,$ZodNonOptional:()=>jP,$ZodNull:()=>uP,$ZodNullable:()=>EP,$ZodNumber:()=>Pp,$ZodNumberFormat:()=>aP,$ZodObject:()=>xO,$ZodObjectJIT:()=>bP,$ZodOptional:()=>Tp,$ZodPipe:()=>wp,$ZodPrefault:()=>CP,$ZodPreprocess:()=>AP,$ZodPromise:()=>LP,$ZodReadonly:()=>DP,$ZodRealError:()=>Hn,$ZodRecord:()=>xP,$ZodRegistry:()=>jp,$ZodSet:()=>SP,$ZodString:()=>xo,$ZodStringFormat:()=>ft,$ZodSuccess:()=>OP,$ZodSymbol:()=>cP,$ZodTemplateLiteral:()=>FP,$ZodTransform:()=>TP,$ZodTuple:()=>$p,$ZodType:()=>ve,$ZodULID:()=>BS,$ZodURL:()=>DS,$ZodUUID:()=>US,$ZodUndefined:()=>lP,$ZodUnion:()=>Ll,$ZodUnknown:()=>mP,$ZodVoid:()=>fP,$ZodXID:()=>MS,$ZodXor:()=>_P,$brand:()=>SI,$constructor:()=>I,$input:()=>ZP,$output:()=>MP,Doc:()=>Fl,JSONSchema:()=>Sz,JSONSchemaGenerator:()=>uf,NEVER:()=>II,TimePrecision:()=>GP,_any:()=>gk,_array:()=>Ik,_base64:()=>Wp,_base64url:()=>Xp,_bigint:()=>ck,_boolean:()=>ak,_catch:()=>pH,_check:()=>Iz,_cidrv4:()=>Gp,_cidrv6:()=>Jp,_coercedBigint:()=>lk,_coercedBoolean:()=>sk,_coercedDate:()=>yk,_coercedNumber:()=>ek,_coercedString:()=>HP,_cuid:()=>Vp,_cuid2:()=>Bp,_custom:()=>Pk,_date:()=>vk,_decode:()=>lp,_decodeAsync:()=>dp,_default:()=>uH,_discriminatedUnion:()=>Yq,_e164:()=>Yp,_email:()=>zp,_emoji:()=>Np,_encode:()=>cp,_encodeAsync:()=>up,_endsWith:()=>ps,_enum:()=>iH,_file:()=>Sk,_float32:()=>nk,_float64:()=>rk,_gt:()=>Br,_gte:()=>Dn,_guid:()=>Zl,_includes:()=>ds,_int:()=>tk,_int32:()=>ik,_int64:()=>uk,_intersection:()=>Qq,_ipv4:()=>Hp,_ipv6:()=>Kp,_isoDate:()=>WP,_isoDateTime:()=>JP,_isoDuration:()=>YP,_isoTime:()=>XP,_jwt:()=>Qp,_ksuid:()=>qp,_lazy:()=>bH,_length:()=>Po,_literal:()=>aH,_lowercase:()=>ls,_lt:()=>Vr,_lte:()=>rr,_mac:()=>KP,_map:()=>nH,_max:()=>rr,_maxLength:()=>So,_maxSize:()=>Mi,_mime:()=>fs,_min:()=>Dn,_minLength:()=>ri,_minSize:()=>Mr,_multipleOf:()=>Bi,_nan:()=>xk,_nanoid:()=>Lp,_nativeEnum:()=>oH,_negative:()=>tf,_never:()=>bk,_nonnegative:()=>rf,_nonoptional:()=>dH,_nonpositive:()=>nf,_normalize:()=>gs,_null:()=>fk,_nullable:()=>lH,_number:()=>QP,_optional:()=>cH,_overwrite:()=>Rr,_parse:()=>ns,_parseAsync:()=>rs,_pipe:()=>fH,_positive:()=>ef,_promise:()=>_H,_property:()=>of,_readonly:()=>gH,_record:()=>tH,_refine:()=>kk,_regex:()=>cs,_safeDecode:()=>pp,_safeDecodeAsync:()=>gp,_safeEncode:()=>mp,_safeEncodeAsync:()=>fp,_safeParse:()=>is,_safeParseAsync:()=>os,_set:()=>rH,_size:()=>Io,_slugify:()=>vs,_startsWith:()=>ms,_string:()=>qP,_stringFormat:()=>ys,_stringbool:()=>Ek,_success:()=>mH,_superRefine:()=>$k,_symbol:()=>mk,_templateLiteral:()=>hH,_toLowerCase:()=>bs,_toUpperCase:()=>_s,_transform:()=>sH,_trim:()=>hs,_tuple:()=>eH,_uint32:()=>ok,_uint64:()=>dk,_ulid:()=>Mp,_undefined:()=>pk,_union:()=>Wq,_unknown:()=>hk,_uppercase:()=>us,_url:()=>ql,_uuid:()=>Up,_uuidv4:()=>Ap,_uuidv6:()=>Dp,_uuidv7:()=>Fp,_void:()=>_k,_xid:()=>Zp,_xor:()=>Xq,clone:()=>Un,config:()=>Jt,createStandardJSONSchemaMethod:()=>xs,createToJSONSchemaMethod:()=>Rk,decode:()=>_Z,decodeAsync:()=>yZ,describe:()=>Tk,encode:()=>bZ,encodeAsync:()=>vZ,extractDefs:()=>qi,finalize:()=>Hi,flattenError:()=>zl,formatError:()=>Ul,globalConfig:()=>_o,globalRegistry:()=>_n,initializeContext:()=>Zi,isValidBase64:()=>eP,isValidBase64URL:()=>bO,isValidJWT:()=>_O,locales:()=>Ml,meta:()=>wk,parse:()=>ap,parseAsync:()=>sp,prettifyError:()=>AI,process:()=>st,regexes:()=>nr,registry:()=>Op,safeDecode:()=>IZ,safeDecodeAsync:()=>PZ,safeEncode:()=>xZ,safeEncodeAsync:()=>SZ,safeParse:()=>DI,safeParseAsync:()=>FI,toDotPath:()=>Wj,toJSONSchema:()=>lf,treeifyError:()=>UI,util:()=>L,version:()=>jS});var qj,II=Object.freeze({status:"aborted"});function I(e,n,r){function o(c,u){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:u,constr:s,traits:new Set},enumerable:false}),c._zod.traits.has(e))return;c._zod.traits.add(e),n(c,u);let d=s.prototype,m=Object.keys(d);for(let p=0;p<m.length;p++){let g=m[p];g in c||(c[g]=d[g].bind(c));}}let t=r?.Parent??Object;class i extends t{}Object.defineProperty(i,"name",{value:e});function s(c){var u;let d=r?.Parent?new i:this;o(d,c),(u=d._zod).deferred??(u.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 SI=Symbol("zod_brand"),Er=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.");}},Di=class extends Error{constructor(n){super(`Encountered unidirectional transform during encode: ${n}`),this.name="ZodEncodeError";}};(qj=globalThis).__zod_globalConfig??(qj.__zod_globalConfig={});var _o=globalThis.__zod_globalConfig;function Jt(e){return e&&Object.assign(_o,e),_o}var L={};un(L,{BIGINT_FORMAT_RANGES:()=>OI,Class:()=>kI,NUMBER_FORMAT_RANGES:()=>jI,aborted:()=>Vi,allowsEval:()=>wI,assert:()=>J3,assertEqual:()=>q3,assertIs:()=>K3,assertNever:()=>G3,assertNotEqual:()=>H3,assignProp:()=>Ni,base64ToUint8Array:()=>Kj,base64urlToUint8Array:()=>mZ,cached:()=>es,captureStackTrace:()=>op,cleanEnum:()=>dZ,cleanRegex:()=>El,clone:()=>Un,cloneDef:()=>X3,createTransparentProxy:()=>rZ,defineLazy:()=>Ue,esc:()=>ip,escapeRegex:()=>fr,explicitlyAborted:()=>zI,extend:()=>aZ,finalizeIssue:()=>An,floatSafeRemainder:()=>$I,getElementAtPath:()=>Y3,getEnumValues:()=>wl,getLengthableOrigin:()=>jl,getParsedType:()=>nZ,getSizableOrigin:()=>Cl,hexToUint8Array:()=>fZ,isObject:()=>vo,isPlainObject:()=>Li,issue:()=>ts,joinValues:()=>k,jsonStringifyReplacer:()=>Qa,merge:()=>cZ,mergeDefs:()=>ni,normalizeParams:()=>H,nullish:()=>Fi,numKeys:()=>tZ,objectClone:()=>W3,omit:()=>oZ,optionalKeys:()=>CI,parsedType:()=>F,partial:()=>lZ,pick:()=>iZ,prefixIssues:()=>qn,primitiveTypes:()=>RI,promiseAllObject:()=>Q3,propertyKeyTypes:()=>Rl,randomString:()=>eZ,required:()=>uZ,safeExtend:()=>sZ,shallowClone:()=>EI,slugify:()=>TI,stringifyPrimitive:()=>U,uint8ArrayToBase64:()=>Gj,uint8ArrayToBase64url:()=>pZ,uint8ArrayToHex:()=>gZ,unwrapMessage:()=>Tl});function q3(e){return e}function H3(e){return e}function K3(e){}function G3(e){throw new Error("Unexpected value in exhaustive check")}function J3(e){}function wl(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 k(e,n="|"){return e.map(r=>U(r)).join(n)}function Qa(e,n){return typeof n=="bigint"?n.toString():n}function es(e){return {get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}}}}function Fi(e){return e==null}function El(e){let n=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(n,r)}function $I(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 Hj=Symbol("evaluating");function Ue(e,n,r){let o;Object.defineProperty(e,n,{get(){if(o!==Hj)return o===void 0&&(o=Hj,o=r()),o},set(t){Object.defineProperty(e,n,{value:t});},configurable:true});}function W3(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Ni(e,n,r){Object.defineProperty(e,n,{value:r,writable:true,enumerable:true,configurable:true});}function ni(...e){let n={};for(let r of e){let o=Object.getOwnPropertyDescriptors(r);Object.assign(n,o);}return Object.defineProperties({},n)}function X3(e){return ni(e._zod.def)}function Y3(e,n){return n?n.reduce((r,o)=>r?.[o],e):e}function Q3(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 eZ(e=10){let n="abcdefghijklmnopqrstuvwxyz",r="";for(let o=0;o<e;o++)r+=n[Math.floor(Math.random()*n.length)];return r}function ip(e){return JSON.stringify(e)}function TI(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var op="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function vo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var wI=es(()=>{if(_o.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return false;try{let e=Function;return new e(""),!0}catch{return false}});function Li(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 EI(e){return Li(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function tZ(e){let n=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&n++;return n}var nZ=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}`)}},Rl=new Set(["string","number","symbol"]),RI=new Set(["string","number","bigint","boolean","symbol","undefined"]);function fr(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Un(e,n,r){let o=new e._zod.constr(n??e._zod.def);return (!n||r?.parent)&&(o._zod.parent=e),o}function H(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 rZ(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 U(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function CI(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}var jI={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]},OI={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function iZ(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=ni(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 Ni(this,"shape",s),s},checks:[]});return Un(e,i)}function oZ(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=ni(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 Ni(this,"shape",s),s},checks:[]});return Un(e,i)}function aZ(e,n){if(!Li(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=ni(e._zod.def,{get shape(){let i={...e._zod.def.shape,...n};return Ni(this,"shape",i),i}});return Un(e,t)}function sZ(e,n){if(!Li(n))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ni(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n};return Ni(this,"shape",o),o}});return Un(e,r)}function cZ(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=ni(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n._zod.def.shape};return Ni(this,"shape",o),o},get catchall(){return n._zod.def.catchall},checks:n._zod.def.checks??[]});return Un(e,r)}function lZ(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=ni(n._zod.def,{get shape(){let c=n._zod.def.shape,u={...c};if(r)for(let d in r){if(!(d in c))throw new Error(`Unrecognized key: "${d}"`);r[d]&&(u[d]=e?new e({type:"optional",innerType:c[d]}):c[d]);}else for(let d in c)u[d]=e?new e({type:"optional",innerType:c[d]}):c[d];return Ni(this,"shape",u),u},checks:[]});return Un(n,s)}function uZ(e,n,r){let o=ni(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 Ni(this,"shape",i),i}});return Un(n,o)}function Vi(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 zI(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 qn(e,n){return n.map(r=>{var o;return (o=r).path??(o.path=[]),r.path.unshift(e),r})}function Tl(e){return typeof e=="string"?e:e?.message}function An(e,n,r){let o=e.message?e.message:Tl(e.inst?._zod.def?.error?.(e))??Tl(n?.error?.(e))??Tl(r.customError?.(e))??Tl(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 Cl(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function jl(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function F(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 ts(...e){let[n,r,o]=e;return typeof n=="string"?{message:n,code:"custom",input:r,inst:o}:{...n}}function dZ(e){return Object.entries(e).filter(([n,r])=>Number.isNaN(Number.parseInt(n,10))).map(n=>n[1])}function Kj(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 Gj(e){let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}function mZ(e){let n=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-n.length%4)%4);return Kj(n+r)}function pZ(e){return Gj(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function fZ(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 gZ(e){return Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}var kI=class{constructor(...n){}};var Jj=(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,Qa,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:false});},Ol=I("$ZodError",Jj),Hn=I("$ZodError",Jj,{Parent:Error});function zl(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 Ul(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 u=r,d=0;for(;d<c.length;){let m=c[d];d===c.length-1?(u[m]=u[m]||{_errors:[]},u[m]._errors.push(n(s))):u[m]=u[m]||{_errors:[]},u=u[m],d++;}}}};return o(e),r}function UI(e,n=r=>r.message){let r={errors:[]},o=(t,i=[])=>{var s,c;for(let u of t.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map(d=>o({issues:d},[...i,...u.path]));else if(u.code==="invalid_key")o({issues:u.issues},[...i,...u.path]);else if(u.code==="invalid_element")o({issues:u.issues},[...i,...u.path]);else {let d=[...i,...u.path];if(d.length===0){r.errors.push(n(u));continue}let m=r,p=0;for(;p<d.length;){let g=d[p],f=p===d.length-1;typeof g=="string"?(m.properties??(m.properties={}),(s=m.properties)[g]??(s[g]={errors:[]}),m=m.properties[g]):(m.items??(m.items=[]),(c=m.items)[g]??(c[g]={errors:[]}),m=m.items[g]),f&&m.errors.push(n(u)),p++;}}};return o(e),r}function Wj(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 AI(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 ${Wj(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 vi(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 u=e.seen.get(c);if(u.ref===null)return;let d=u.def??u.schema,m={...d},p=u.ref;if(u.ref=null,p){o(p);let f=e.seen.get(p),v=f.schema;if(v.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(v)):Object.assign(d,v),Object.assign(d,m),c._zod.parent===p)for(let S in d)S==="$ref"||S==="allOf"||S in m||delete d[S];if(v.$ref&&f.def)for(let S in d)S==="$ref"||S==="allOf"||S in f.def&&JSON.stringify(d[S])===JSON.stringify(f.def[S])&&delete d[S];}let g=c._zod.parent;if(g&&g!==p){o(g);let f=e.seen.get(g);if(f?.schema.$ref&&(d.$ref=f.schema.$ref,f.def))for(let v in d)v==="$ref"||v==="allOf"||v in f.def&&JSON.stringify(d[v])===JSON.stringify(f.def[v])&&delete d[v];}e.override({zodSchema:c,jsonSchema:d,path:u.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 u=c[1];u.def&&u.defId&&(u.def.id===u.defId&&delete u.def.id,s[u.defId]=u.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:ea(n,"input",e.processors),output:ea(n,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch{throw new Error("Error converting schema to JSON.")}}function Rn(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 Rn(o.element,r);if(o.type==="set")return Rn(o.valueType,r);if(o.type==="lazy")return Rn(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 Rn(o.innerType,r);if(o.type==="intersection")return Rn(o.left,r)||Rn(o.right,r);if(o.type==="record"||o.type==="map")return Rn(o.keyType,r)||Rn(o.valueType,r);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?true:Rn(o.in,r)||Rn(o.out,r);if(o.type==="object"){for(let t in o.shape)if(Rn(o.shape[t],r))return true;return false}if(o.type==="union"){for(let t of o.options)if(Rn(t,r))return true;return false}if(o.type==="tuple"){for(let t of o.items)if(Rn(t,r))return true;return !!(o.rest&&Rn(o.rest,r))}return false}var I_=(e,n={})=>r=>{let o=bi({...r,processors:n});return ot(e,o),_i(o,e),vi(o,e)},ea=(e,n,r={})=>o=>{let{libraryOptions:t,target:i}=o??{},s=bi({...t??{},target:i,io:n,processors:r});return ot(e,s),_i(s,e),vi(s,e)};var fA={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},S_=(e,n,r,o)=>{let t=r;t.type="string";let{minimum:i,maximum:s,format:c,patterns:u,contentEncoding:d}=e._zod.bag;if(typeof i=="number"&&(t.minLength=i),typeof s=="number"&&(t.maxLength=s),c&&(t.format=fA[c]??c,t.format===""&&delete t.format,c==="time"&&delete t.format),d&&(t.contentEncoding=d),u&&u.size>0){let m=[...u];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}))]);}},P_=(e,n,r,o)=>{let t=r,{minimum:i,maximum:s,format:c,multipleOf:u,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),g=typeof d=="number"&&d<=(s??Number.POSITIVE_INFINITY),f=n.target==="draft-04"||n.target==="openapi-3.0";p?f?(t.minimum=m,t.exclusiveMinimum=true):t.exclusiveMinimum=m:typeof i=="number"&&(t.minimum=i),g?f?(t.maximum=d,t.exclusiveMaximum=true):t.exclusiveMaximum=d:typeof s=="number"&&(t.maximum=s),typeof u=="number"&&(t.multipleOf=u);},k_=(e,n,r,o)=>{r.type="boolean";},$_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},T_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},w_=(e,n,r,o)=>{n.target==="openapi-3.0"?(r.type="string",r.nullable=true,r.enum=[null]):r.type="null";},E_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},R_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},C_=(e,n,r,o)=>{r.not={};},j_=(e,n,r,o)=>{},O_=(e,n,r,o)=>{},z_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},U_=(e,n,r,o)=>{let t=e._zod.def,i=Js(t.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i;},A_=(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;},D_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},F_=(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;},N_=(e,n,r,o)=>{let t=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:s,maximum:c,mime:u}=e._zod.bag;s!==void 0&&(i.minLength=s),c!==void 0&&(i.maxLength=c),u?u.length===1?(i.contentMediaType=u[0],Object.assign(t,i)):(Object.assign(t,i),t.anyOf=u.map(d=>({contentMediaType:d}))):Object.assign(t,i);},L_=(e,n,r,o)=>{r.type="boolean";},V_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},B_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},M_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Z_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},q_=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},H_=(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=ot(i.element,n,{...o,path:[...o.path,"items"]});},K_=(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]=ot(s[d],n,{...o,path:[...o.path,"properties",d]});let c=new Set(Object.keys(s)),u=new Set([...c].filter(d=>{let m=i.shape[d]._zod;return n.io==="input"?m.optin===void 0:m.optout===void 0}));u.size>0&&(t.required=Array.from(u)),i.catchall?._zod.def.type==="never"?t.additionalProperties=false:i.catchall?i.catchall&&(t.additionalProperties=ot(i.catchall,n,{...o,path:[...o.path,"additionalProperties"]})):n.io==="output"&&(t.additionalProperties=false);},Td=(e,n,r,o)=>{let t=e._zod.def,i=t.inclusive===false,s=t.options.map((c,u)=>ot(c,n,{...o,path:[...o.path,i?"oneOf":"anyOf",u]}));i?r.oneOf=s:r.anyOf=s;},G_=(e,n,r,o)=>{let t=e._zod.def,i=ot(t.left,n,{...o,path:[...o.path,"allOf",0]}),s=ot(t.right,n,{...o,path:[...o.path,"allOf",1]}),c=d=>"allOf"in d&&Object.keys(d).length===1,u=[...c(i)?i.allOf:[i],...c(s)?s.allOf:[s]];r.allOf=u;},J_=(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",u=i.items.map((g,f)=>ot(g,n,{...o,path:[...o.path,s,f]})),d=i.rest?ot(i.rest,n,{...o,path:[...o.path,c,...n.target==="openapi-3.0"?[i.items.length]:[]]}):null;n.target==="draft-2020-12"?(t.prefixItems=u,d&&(t.items=d)):n.target==="openapi-3.0"?(t.items={anyOf:u},d&&t.items.anyOf.push(d),t.minItems=u.length,d||(t.maxItems=u.length)):(t.items=u,d&&(t.additionalItems=d));let{minimum:m,maximum:p}=e._zod.bag;typeof m=="number"&&(t.minItems=m),typeof p=="number"&&(t.maxItems=p);},W_=(e,n,r,o)=>{let t=r,i=e._zod.def;t.type="object";let s=i.keyType,u=s._zod.bag?.patterns;if(i.mode==="loose"&&u&&u.size>0){let m=ot(i.valueType,n,{...o,path:[...o.path,"patternProperties","*"]});t.patternProperties={};for(let p of u)t.patternProperties[p.source]=m;}else (n.target==="draft-07"||n.target==="draft-2020-12")&&(t.propertyNames=ot(i.keyType,n,{...o,path:[...o.path,"propertyNames"]})),t.additionalProperties=ot(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);}},X_=(e,n,r,o)=>{let t=e._zod.def,i=ot(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"}];},Y_=(e,n,r,o)=>{let t=e._zod.def;ot(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},Q_=(e,n,r,o)=>{let t=e._zod.def;ot(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.default=JSON.parse(JSON.stringify(t.defaultValue));},ev=(e,n,r,o)=>{let t=e._zod.def;ot(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)));},tv=(e,n,r,o)=>{let t=e._zod.def;ot(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;},nv=(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;ot(s,n,o);let c=n.seen.get(e);c.ref=s;},rv=(e,n,r,o)=>{let t=e._zod.def;ot(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.readOnly=true;},iv=(e,n,r,o)=>{let t=e._zod.def;ot(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},wd=(e,n,r,o)=>{let t=e._zod.def;ot(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},ov=(e,n,r,o)=>{let t=e._zod.innerType;ot(t,n,o);let i=n.seen.get(e);i.ref=t;},$d={string:S_,number:P_,boolean:k_,bigint:$_,symbol:T_,null:w_,undefined:E_,void:R_,never:C_,any:j_,unknown:O_,date:z_,enum:U_,literal:A_,nan:D_,template_literal:F_,file:N_,success:L_,custom:V_,function:B_,transform:M_,map:Z_,set:q_,array:H_,object:K_,union:Td,intersection:G_,tuple:J_,record:W_,nullable:X_,nonoptional:Y_,default:Q_,prefault:ev,catch:tv,pipe:nv,readonly:rv,promise:iv,optional:wd,lazy:ov};function Ed(e,n){if("_idmap"in e){let o=e,t=bi({...n,processors:$d}),i={};for(let u of o._idmap.entries()){let[d,m]=u;ot(m,t);}let s={},c={registry:o,uri:n?.uri,defs:i};t.external=c;for(let u of o._idmap.entries()){let[d,m]=u;_i(t,m),s[d]=vi(t,m);}if(Object.keys(i).length>0){let u=t.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[u]:i};}return {schemas:s}}let r=bi({...n,processors:$d});return ot(e,r),_i(r,e),vi(r,e)}var Rd=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=bi({processors:$d,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 ot(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)),_i(this.ctx,n);let o=vi(this.ctx,n),{"~standard":t,...i}=o;return i}};var Iw={};var pc={};un(pc,{ZodAny:()=>Ev,ZodArray:()=>Ov,ZodBase64:()=>Xd,ZodBase64URL:()=>Yd,ZodBigInt:()=>ca,ZodBigIntFormat:()=>tm,ZodBoolean:()=>sa,ZodCIDRv4:()=>Jd,ZodCIDRv6:()=>Wd,ZodCUID:()=>Bd,ZodCUID2:()=>Md,ZodCatch:()=>ty,ZodCodec:()=>kc,ZodCustom:()=>$c,ZodCustomStringFormat:()=>oa,ZodDate:()=>yc,ZodDefault:()=>Jv,ZodDiscriminatedUnion:()=>Uv,ZodE164:()=>Qd,ZodEmail:()=>Nd,ZodEmoji:()=>Ld,ZodEnum:()=>ra,ZodExactOptional:()=>Hv,ZodFile:()=>Zv,ZodFunction:()=>dy,ZodGUID:()=>gc,ZodIPv4:()=>Kd,ZodIPv6:()=>Gd,ZodIntersection:()=>Av,ZodJWT:()=>em,ZodKSUID:()=>Hd,ZodLazy:()=>cy,ZodLiteral:()=>Mv,ZodMAC:()=>Iv,ZodMap:()=>Vv,ZodNaN:()=>ry,ZodNanoID:()=>Vd,ZodNever:()=>Cv,ZodNonOptional:()=>sm,ZodNull:()=>Tv,ZodNullable:()=>Gv,ZodNumber:()=>aa,ZodNumberFormat:()=>lo,ZodObject:()=>Ic,ZodOptional:()=>am,ZodPipe:()=>Pc,ZodPrefault:()=>Xv,ZodPreprocess:()=>iy,ZodPromise:()=>uy,ZodReadonly:()=>oy,ZodRecord:()=>na,ZodSet:()=>Bv,ZodString:()=>ia,ZodStringFormat:()=>dt,ZodSuccess:()=>ey,ZodSymbol:()=>kv,ZodTemplateLiteral:()=>sy,ZodTransform:()=>qv,ZodTuple:()=>Fv,ZodType:()=>Se,ZodULID:()=>Zd,ZodURL:()=>vc,ZodUUID:()=>Ur,ZodUndefined:()=>$v,ZodUnion:()=>Sc,ZodUnknown:()=>Rv,ZodVoid:()=>jv,ZodXID:()=>qd,ZodXor:()=>zv,_ZodString:()=>Fd,_default:()=>Wv,_function:()=>CE,any:()=>cE,array:()=>xc,base64:()=>qw,base64url:()=>Hw,bigint:()=>rE,boolean:()=>Pv,catch:()=>ny,check:()=>jE,cidrv4:()=>Mw,cidrv6:()=>Zw,codec:()=>TE,cuid:()=>Uw,cuid2:()=>Aw,custom:()=>OE,date:()=>uE,describe:()=>zE,discriminatedUnion:()=>hE,e164:()=>Kw,email:()=>kw,emoji:()=>Ow,enum:()=>im,exactOptional:()=>Kv,file:()=>SE,float32:()=>Qw,float64:()=>eE,function:()=>CE,guid:()=>$w,hash:()=>Yw,hex:()=>Xw,hostname:()=>Ww,httpUrl:()=>jw,instanceof:()=>AE,int:()=>Ad,int32:()=>tE,int64:()=>iE,intersection:()=>Dv,invertCodec:()=>wE,ipv4:()=>Lw,ipv6:()=>Bw,json:()=>FE,jwt:()=>Gw,keyof:()=>dE,ksuid:()=>Nw,lazy:()=>ly,literal:()=>IE,looseObject:()=>fE,looseRecord:()=>_E,mac:()=>Vw,map:()=>vE,meta:()=>UE,nan:()=>$E,nanoid:()=>zw,nativeEnum:()=>xE,never:()=>nm,nonoptional:()=>Qv,null:()=>wv,nullable:()=>bc,nullish:()=>PE,number:()=>Sv,object:()=>mE,optional:()=>hc,partialRecord:()=>bE,pipe:()=>Dd,prefault:()=>Yv,preprocess:()=>NE,promise:()=>RE,readonly:()=>ay,record:()=>Lv,refine:()=>my,set:()=>yE,strictObject:()=>pE,string:()=>fc,stringFormat:()=>Jw,stringbool:()=>DE,success:()=>kE,superRefine:()=>py,symbol:()=>aE,templateLiteral:()=>EE,transform:()=>om,tuple:()=>Nv,uint32:()=>nE,uint64:()=>oE,ulid:()=>Dw,undefined:()=>sE,union:()=>rm,unknown:()=>co,url:()=>Cw,uuid:()=>Tw,uuidv4:()=>ww,uuidv6:()=>Ew,uuidv7:()=>Rw,void:()=>lE,xid:()=>Fw,xor:()=>gE});var Cd={};un(Cd,{endsWith:()=>Ho,gt:()=>Or,gte:()=>En,includes:()=>Zo,length:()=>so,lowercase:()=>Bo,lt:()=>jr,lte:()=>Xn,maxLength:()=>ao,maxSize:()=>hi,mime:()=>Ko,minLength:()=>Gr,minSize:()=>zr,multipleOf:()=>gi,negative:()=>Id,nonnegative:()=>Pd,nonpositive:()=>Sd,normalize:()=>Go,overwrite:()=>yr,positive:()=>xd,property:()=>kd,regex:()=>Vo,size:()=>oo,slugify:()=>Yo,startsWith:()=>qo,toLowerCase:()=>Wo,toUpperCase:()=>Xo,trim:()=>Jo,uppercase:()=>Mo});var ta={};un(ta,{ZodISODate:()=>Od,ZodISODateTime:()=>jd,ZodISODuration:()=>Ud,ZodISOTime:()=>zd,date:()=>sv,datetime:()=>av,duration:()=>lv,time:()=>cv});var jd=x("ZodISODateTime",(e,n)=>{Dh.init(e,n),dt.init(e,n);});function av(e){return Vb(jd,e)}var Od=x("ZodISODate",(e,n)=>{Fh.init(e,n),dt.init(e,n);});function sv(e){return Bb(Od,e)}var zd=x("ZodISOTime",(e,n)=>{Nh.init(e,n),dt.init(e,n);});function cv(e){return Mb(zd,e)}var Ud=x("ZodISODuration",(e,n)=>{Lh.init(e,n),dt.init(e,n);});function lv(e){return Zb(Ud,e)}var Sw=(e,n)=>{ec.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>nc(e,r)},flatten:{value:r=>tc(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,jo,2);}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,jo,2);}},isEmpty:{get(){return e.issues.length===0}}});},hA=x("ZodError",Sw),Bn=x("ZodError",Sw,{Parent:Error});var uv=Uo(Bn),dv=Ao(Bn),mv=Do(Bn),pv=Fo(Bn),fv=Eu(Bn),gv=Ru(Bn),hv=Cu(Bn),bv=ju(Bn),_v=Ou(Bn),vv=zu(Bn),yv=Uu(Bn),xv=Au(Bn);var Pw=new WeakMap;function _c(e,n,r){let o=Object.getPrototypeOf(e),t=Pw.get(o);if(t||(t=new Set,Pw.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 Se=x("ZodType",(e,n)=>(_e.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:ea(e,"input"),output:ea(e,"output")}}),e.toJSONSchema=I_(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.parse=(r,o)=>uv(e,r,o,{callee:e.parse}),e.safeParse=(r,o)=>mv(e,r,o),e.parseAsync=async(r,o)=>dv(e,r,o,{callee:e.parseAsync}),e.safeParseAsync=async(r,o)=>pv(e,r,o),e.spa=e.safeParseAsync,e.encode=(r,o)=>fv(e,r,o),e.decode=(r,o)=>gv(e,r,o),e.encodeAsync=async(r,o)=>hv(e,r,o),e.decodeAsync=async(r,o)=>bv(e,r,o),e.safeEncode=(r,o)=>_v(e,r,o),e.safeDecode=(r,o)=>vv(e,r,o),e.safeEncodeAsync=async(r,o)=>yv(e,r,o),e.safeDecodeAsync=async(r,o)=>xv(e,r,o),_c(e,"ZodType",{check(...r){let o=this.def;return this.clone(N.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 Tn(this,r,o)},brand(){return this},register(r,o){return r.add(this,o),this},refine(r,o){return this.check(my(r,o))},superRefine(r,o){return this.check(py(r,o))},overwrite(r){return this.check(yr(r))},optional(){return hc(this)},exactOptional(){return Kv(this)},nullable(){return bc(this)},nullish(){return hc(bc(this))},nonoptional(r){return Qv(this,r)},array(){return xc(this)},or(r){return rm([this,r])},and(r){return Dv(this,r)},transform(r){return Dd(this,om(r))},default(r){return Wv(this,r)},prefault(r){return Yv(this,r)},catch(r){return ny(this,r)},pipe(r){return Dd(this,r)},readonly(){return ay(this)},describe(r){let o=this.clone();return fn.add(o,{description:r}),o},meta(...r){if(r.length===0)return fn.get(this);let o=this.clone();return fn.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 fn.get(e)?.description},configurable:true}),e)),Fd=x("_ZodString",(e,n)=>{io.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(o,t,i)=>S_(e,o,t);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,_c(e,"_ZodString",{regex(...o){return this.check(Vo(...o))},includes(...o){return this.check(Zo(...o))},startsWith(...o){return this.check(qo(...o))},endsWith(...o){return this.check(Ho(...o))},min(...o){return this.check(Gr(...o))},max(...o){return this.check(ao(...o))},length(...o){return this.check(so(...o))},nonempty(...o){return this.check(Gr(1,...o))},lowercase(o){return this.check(Bo(o))},uppercase(o){return this.check(Mo(o))},trim(){return this.check(Jo())},normalize(...o){return this.check(Go(...o))},toLowerCase(){return this.check(Wo())},toUpperCase(){return this.check(Xo())},slugify(){return this.check(Yo())}});}),ia=x("ZodString",(e,n)=>{io.init(e,n),Fd.init(e,n),e.email=r=>e.check(td(Nd,r)),e.url=r=>e.check(mc(vc,r)),e.jwt=r=>e.check(yd(em,r)),e.emoji=r=>e.check(ad(Ld,r)),e.guid=r=>e.check(dc(gc,r)),e.uuid=r=>e.check(nd(Ur,r)),e.uuidv4=r=>e.check(rd(Ur,r)),e.uuidv6=r=>e.check(id(Ur,r)),e.uuidv7=r=>e.check(od(Ur,r)),e.nanoid=r=>e.check(sd(Vd,r)),e.guid=r=>e.check(dc(gc,r)),e.cuid=r=>e.check(cd(Bd,r)),e.cuid2=r=>e.check(ld(Md,r)),e.ulid=r=>e.check(ud(Zd,r)),e.base64=r=>e.check(bd(Xd,r)),e.base64url=r=>e.check(_d(Yd,r)),e.xid=r=>e.check(dd(qd,r)),e.ksuid=r=>e.check(md(Hd,r)),e.ipv4=r=>e.check(pd(Kd,r)),e.ipv6=r=>e.check(fd(Gd,r)),e.cidrv4=r=>e.check(gd(Jd,r)),e.cidrv6=r=>e.check(hd(Wd,r)),e.e164=r=>e.check(vd(Qd,r)),e.datetime=r=>e.check(av(r)),e.date=r=>e.check(sv(r)),e.time=r=>e.check(cv(r)),e.duration=r=>e.check(lv(r));});function fc(e){return Db(ia,e)}var dt=x("ZodStringFormat",(e,n)=>{ut.init(e,n),Fd.init(e,n);}),Nd=x("ZodEmail",(e,n)=>{wh.init(e,n),dt.init(e,n);});function kw(e){return td(Nd,e)}var gc=x("ZodGUID",(e,n)=>{$h.init(e,n),dt.init(e,n);});function $w(e){return dc(gc,e)}var Ur=x("ZodUUID",(e,n)=>{Th.init(e,n),dt.init(e,n);});function Tw(e){return nd(Ur,e)}function ww(e){return rd(Ur,e)}function Ew(e){return id(Ur,e)}function Rw(e){return od(Ur,e)}var vc=x("ZodURL",(e,n)=>{Eh.init(e,n),dt.init(e,n);});function Cw(e){return mc(vc,e)}function jw(e){return mc(vc,{protocol:Wn.httpProtocol,hostname:Wn.domain,...N.normalizeParams(e)})}var Ld=x("ZodEmoji",(e,n)=>{Rh.init(e,n),dt.init(e,n);});function Ow(e){return ad(Ld,e)}var Vd=x("ZodNanoID",(e,n)=>{Ch.init(e,n),dt.init(e,n);});function zw(e){return sd(Vd,e)}var Bd=x("ZodCUID",(e,n)=>{jh.init(e,n),dt.init(e,n);});function Uw(e){return cd(Bd,e)}var Md=x("ZodCUID2",(e,n)=>{Oh.init(e,n),dt.init(e,n);});function Aw(e){return ld(Md,e)}var Zd=x("ZodULID",(e,n)=>{zh.init(e,n),dt.init(e,n);});function Dw(e){return ud(Zd,e)}var qd=x("ZodXID",(e,n)=>{Uh.init(e,n),dt.init(e,n);});function Fw(e){return dd(qd,e)}var Hd=x("ZodKSUID",(e,n)=>{Ah.init(e,n),dt.init(e,n);});function Nw(e){return md(Hd,e)}var Kd=x("ZodIPv4",(e,n)=>{Vh.init(e,n),dt.init(e,n);});function Lw(e){return pd(Kd,e)}var Iv=x("ZodMAC",(e,n)=>{Mh.init(e,n),dt.init(e,n);});function Vw(e){return Nb(Iv,e)}var Gd=x("ZodIPv6",(e,n)=>{Bh.init(e,n),dt.init(e,n);});function Bw(e){return fd(Gd,e)}var Jd=x("ZodCIDRv4",(e,n)=>{Zh.init(e,n),dt.init(e,n);});function Mw(e){return gd(Jd,e)}var Wd=x("ZodCIDRv6",(e,n)=>{qh.init(e,n),dt.init(e,n);});function Zw(e){return hd(Wd,e)}var Xd=x("ZodBase64",(e,n)=>{Kh.init(e,n),dt.init(e,n);});function qw(e){return bd(Xd,e)}var Yd=x("ZodBase64URL",(e,n)=>{Gh.init(e,n),dt.init(e,n);});function Hw(e){return _d(Yd,e)}var Qd=x("ZodE164",(e,n)=>{Jh.init(e,n),dt.init(e,n);});function Kw(e){return vd(Qd,e)}var em=x("ZodJWT",(e,n)=>{Wh.init(e,n),dt.init(e,n);});function Gw(e){return yd(em,e)}var oa=x("ZodCustomStringFormat",(e,n)=>{Xh.init(e,n),dt.init(e,n);});function Jw(e,n,r={}){return Qo(oa,e,n,r)}function Ww(e){return Qo(oa,"hostname",Wn.hostname,e)}function Xw(e){return Qo(oa,"hex",Wn.hex,e)}function Yw(e,n){let r=n?.enc??"hex",o=`${e}_${r}`,t=Wn[o];if(!t)throw new Error(`Unrecognized hash format: ${o}`);return Qo(oa,o,t,n)}var aa=x("ZodNumber",(e,n)=>{qu.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(o,t,i)=>P_(e,o,t),_c(e,"ZodNumber",{gt(o,t){return this.check(Or(o,t))},gte(o,t){return this.check(En(o,t))},min(o,t){return this.check(En(o,t))},lt(o,t){return this.check(jr(o,t))},lte(o,t){return this.check(Xn(o,t))},max(o,t){return this.check(Xn(o,t))},int(o){return this.check(Ad(o))},safe(o){return this.check(Ad(o))},positive(o){return this.check(Or(0,o))},nonnegative(o){return this.check(En(0,o))},negative(o){return this.check(jr(0,o))},nonpositive(o){return this.check(Xn(0,o))},multipleOf(o,t){return this.check(gi(o,t))},step(o,t){return this.check(gi(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 Sv(e){return qb(aa,e)}var lo=x("ZodNumberFormat",(e,n)=>{Yh.init(e,n),aa.init(e,n);});function Ad(e){return Kb(lo,e)}function Qw(e){return Gb(lo,e)}function eE(e){return Jb(lo,e)}function tE(e){return Wb(lo,e)}function nE(e){return Xb(lo,e)}var sa=x("ZodBoolean",(e,n)=>{ac.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>k_(e,r,o);});function Pv(e){return Yb(sa,e)}var ca=x("ZodBigInt",(e,n)=>{Hu.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(o,t,i)=>$_(e,o),e.gte=(o,t)=>e.check(En(o,t)),e.min=(o,t)=>e.check(En(o,t)),e.gt=(o,t)=>e.check(Or(o,t)),e.gte=(o,t)=>e.check(En(o,t)),e.min=(o,t)=>e.check(En(o,t)),e.lt=(o,t)=>e.check(jr(o,t)),e.lte=(o,t)=>e.check(Xn(o,t)),e.max=(o,t)=>e.check(Xn(o,t)),e.positive=o=>e.check(Or(BigInt(0),o)),e.negative=o=>e.check(jr(BigInt(0),o)),e.nonpositive=o=>e.check(Xn(BigInt(0),o)),e.nonnegative=o=>e.check(En(BigInt(0),o)),e.multipleOf=(o,t)=>e.check(gi(o,t));let r=e._zod.bag;e.minValue=r.minimum??null,e.maxValue=r.maximum??null,e.format=r.format??null;});function rE(e){return e_(ca,e)}var tm=x("ZodBigIntFormat",(e,n)=>{Qh.init(e,n),ca.init(e,n);});function iE(e){return n_(tm,e)}function oE(e){return r_(tm,e)}var kv=x("ZodSymbol",(e,n)=>{eb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>T_(e,r);});function aE(e){return i_(kv,e)}var $v=x("ZodUndefined",(e,n)=>{tb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>E_(e,r);});function sE(e){return o_($v,e)}var Tv=x("ZodNull",(e,n)=>{nb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>w_(e,r,o);});function wv(e){return a_(Tv,e)}var Ev=x("ZodAny",(e,n)=>{rb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>j_();});function cE(){return s_(Ev)}var Rv=x("ZodUnknown",(e,n)=>{ib.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>O_();});function co(){return c_(Rv)}var Cv=x("ZodNever",(e,n)=>{ob.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>C_(e,r,o);});function nm(e){return l_(Cv,e)}var jv=x("ZodVoid",(e,n)=>{ab.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>R_(e,r);});function lE(e){return u_(jv,e)}var yc=x("ZodDate",(e,n)=>{sb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(o,t,i)=>z_(e,o),e.min=(o,t)=>e.check(En(o,t)),e.max=(o,t)=>e.check(Xn(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 uE(e){return d_(yc,e)}var Ov=x("ZodArray",(e,n)=>{cb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>H_(e,r,o,t),e.element=n.element,_c(e,"ZodArray",{min(r,o){return this.check(Gr(r,o))},nonempty(r){return this.check(Gr(1,r))},max(r,o){return this.check(ao(r,o))},length(r,o){return this.check(so(r,o))},unwrap(){return this.element}});});function xc(e,n){return f_(Ov,e,n)}function dE(e){let n=e._zod.def.shape;return im(Object.keys(n))}var Ic=x("ZodObject",(e,n)=>{lb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>K_(e,r,o,t),N.defineLazy(e,"shape",()=>n.shape),_c(e,"ZodObject",{keyof(){return im(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:co()})},loose(){return this.clone({...this._zod.def,catchall:co()})},strict(){return this.clone({...this._zod.def,catchall:nm()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return N.extend(this,r)},safeExtend(r){return N.safeExtend(this,r)},merge(r){return N.merge(this,r)},pick(r){return N.pick(this,r)},omit(r){return N.omit(this,r)},partial(...r){return N.partial(am,this,r[0])},required(...r){return N.required(sm,this,r[0])}});});function mE(e,n){let r={type:"object",shape:e??{},...N.normalizeParams(n)};return new Ic(r)}function pE(e,n){return new Ic({type:"object",shape:e,catchall:nm(),...N.normalizeParams(n)})}function fE(e,n){return new Ic({type:"object",shape:e,catchall:co(),...N.normalizeParams(n)})}var Sc=x("ZodUnion",(e,n)=>{sc.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Td(e,r,o,t),e.options=n.options;});function rm(e,n){return new Sc({type:"union",options:e,...N.normalizeParams(n)})}var zv=x("ZodXor",(e,n)=>{Sc.init(e,n),ub.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Td(e,r,o,t),e.options=n.options;});function gE(e,n){return new zv({type:"union",options:e,inclusive:false,...N.normalizeParams(n)})}var Uv=x("ZodDiscriminatedUnion",(e,n)=>{Sc.init(e,n),db.init(e,n);});function hE(e,n,r){return new Uv({type:"union",options:n,discriminator:e,...N.normalizeParams(r)})}var Av=x("ZodIntersection",(e,n)=>{mb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>G_(e,r,o,t);});function Dv(e,n){return new Av({type:"intersection",left:e,right:n})}var Fv=x("ZodTuple",(e,n)=>{Ku.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>J_(e,r,o,t),e.rest=r=>e.clone({...e._zod.def,rest:r});});function Nv(e,n,r){let o=n instanceof _e,t=o?r:n,i=o?n:null;return new Fv({type:"tuple",items:e,rest:i,...N.normalizeParams(t)})}var na=x("ZodRecord",(e,n)=>{pb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>W_(e,r,o,t),e.keyType=n.keyType,e.valueType=n.valueType;});function Lv(e,n,r){return !n||!n._zod?new na({type:"record",keyType:fc(),valueType:e,...N.normalizeParams(n)}):new na({type:"record",keyType:e,valueType:n,...N.normalizeParams(r)})}function bE(e,n,r){let o=Tn(e);return o._zod.values=void 0,new na({type:"record",keyType:o,valueType:n,...N.normalizeParams(r)})}function _E(e,n,r){return new na({type:"record",keyType:e,valueType:n,mode:"loose",...N.normalizeParams(r)})}var Vv=x("ZodMap",(e,n)=>{fb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Z_(e,r),e.keyType=n.keyType,e.valueType=n.valueType,e.min=(...r)=>e.check(zr(...r)),e.nonempty=r=>e.check(zr(1,r)),e.max=(...r)=>e.check(hi(...r)),e.size=(...r)=>e.check(oo(...r));});function vE(e,n,r){return new Vv({type:"map",keyType:e,valueType:n,...N.normalizeParams(r)})}var Bv=x("ZodSet",(e,n)=>{gb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>q_(e,r),e.min=(...r)=>e.check(zr(...r)),e.nonempty=r=>e.check(zr(1,r)),e.max=(...r)=>e.check(hi(...r)),e.size=(...r)=>e.check(oo(...r));});function yE(e,n){return new Bv({type:"set",valueType:e,...N.normalizeParams(n)})}var ra=x("ZodEnum",(e,n)=>{hb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(o,t,i)=>U_(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 ra({...n,checks:[],...N.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 ra({...n,checks:[],...N.normalizeParams(t),entries:i})};});function im(e,n){let r=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new ra({type:"enum",entries:r,...N.normalizeParams(n)})}function xE(e,n){return new ra({type:"enum",entries:e,...N.normalizeParams(n)})}var Mv=x("ZodLiteral",(e,n)=>{bb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>A_(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 IE(e,n){return new Mv({type:"literal",values:Array.isArray(e)?e:[e],...N.normalizeParams(n)})}var Zv=x("ZodFile",(e,n)=>{_b.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>N_(e,r,o),e.min=(r,o)=>e.check(zr(r,o)),e.max=(r,o)=>e.check(hi(r,o)),e.mime=(r,o)=>e.check(Ko(Array.isArray(r)?r:[r],o));});function SE(e){return g_(Zv,e)}var qv=x("ZodTransform",(e,n)=>{vb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>M_(e,r),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new ui(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(N.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(N.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 om(e){return new qv({type:"transform",transform:e})}var am=x("ZodOptional",(e,n)=>{Gu.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>wd(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function hc(e){return new am({type:"optional",innerType:e})}var Hv=x("ZodExactOptional",(e,n)=>{yb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>wd(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Kv(e){return new Hv({type:"optional",innerType:e})}var Gv=x("ZodNullable",(e,n)=>{xb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>X_(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function bc(e){return new Gv({type:"nullable",innerType:e})}function PE(e){return hc(bc(e))}var Jv=x("ZodDefault",(e,n)=>{Ib.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Q_(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap;});function Wv(e,n){return new Jv({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():N.shallowClone(n)}})}var Xv=x("ZodPrefault",(e,n)=>{Sb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ev(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Yv(e,n){return new Xv({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():N.shallowClone(n)}})}var sm=x("ZodNonOptional",(e,n)=>{Pb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Y_(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Qv(e,n){return new sm({type:"nonoptional",innerType:e,...N.normalizeParams(n)})}var ey=x("ZodSuccess",(e,n)=>{kb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>L_(e,r,o),e.unwrap=()=>e._zod.def.innerType;});function kE(e){return new ey({type:"success",innerType:e})}var ty=x("ZodCatch",(e,n)=>{$b.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>tv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap;});function ny(e,n){return new ty({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}var ry=x("ZodNaN",(e,n)=>{Tb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>D_(e,r);});function $E(e){return p_(ry,e)}var Pc=x("ZodPipe",(e,n)=>{Ju.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>nv(e,r,o,t),e.in=n.in,e.out=n.out;});function Dd(e,n){return new Pc({type:"pipe",in:e,out:n})}var kc=x("ZodCodec",(e,n)=>{Pc.init(e,n),cc.init(e,n);});function TE(e,n,r){return new kc({type:"pipe",in:e,out:n,transform:r.decode,reverseTransform:r.encode})}function wE(e){let n=e._zod.def;return new kc({type:"pipe",in:n.out,out:n.in,transform:n.reverseTransform,reverseTransform:n.transform})}var iy=x("ZodPreprocess",(e,n)=>{Pc.init(e,n),wb.init(e,n);}),oy=x("ZodReadonly",(e,n)=>{Eb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>rv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function ay(e){return new oy({type:"readonly",innerType:e})}var sy=x("ZodTemplateLiteral",(e,n)=>{Rb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>F_(e,r,o);});function EE(e,n){return new sy({type:"template_literal",parts:e,...N.normalizeParams(n)})}var cy=x("ZodLazy",(e,n)=>{Ob.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ov(e,r,o,t),e.unwrap=()=>e._zod.def.getter();});function ly(e){return new cy({type:"lazy",getter:e})}var uy=x("ZodPromise",(e,n)=>{jb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>iv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function RE(e){return new uy({type:"promise",innerType:e})}var dy=x("ZodFunction",(e,n)=>{Cb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>B_(e,r);});function CE(e){return new dy({type:"function",input:Array.isArray(e?.input)?Nv(e?.input):e?.input??xc(co()),output:e?.output??co()})}var $c=x("ZodCustom",(e,n)=>{zb.init(e,n),Se.init(e,n),e._zod.processJSONSchema=(r,o,t)=>V_(e,r);});function jE(e){let n=new bt({check:"custom"});return n._zod.check=e,n}function OE(e,n){return h_($c,e??(()=>true),n)}function my(e,n={}){return b_($c,e,n)}function py(e,n){return __(e,n)}var zE=v_,UE=y_;function AE(e,n={}){let r=new $c({type:"custom",check:"custom",fn:o=>o instanceof e,abort:true,...N.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 DE=(...e)=>x_({Codec:kc,Boolean:sa,String:ia},...e);function FE(e){let n=ly(()=>rm([fc(e),Sv(),Pv(),wv(),xc(n),Lv(fc(),n)]));return n}function NE(e,n){return new iy({type:"pipe",in:om(e),out:n})}var _A={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 vA(e){Ht({customError:e});}function yA(){return Ht().customError}var fy;fy||(fy={});var K={...pc,...Cd,iso:ta},xA=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 IA(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 SA(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 LE(e,n){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return K.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 K.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=SA(t,n),s=vn(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 K.null();if(t.length===0)return K.never();if(t.length===1)return K.literal(t[0]);if(t.every(s=>typeof s=="string"))return K.enum(t);let i=t.map(s=>K.literal(s));return i.length<2?i[0]:K.union([i[0],i[1],...i.slice(2)])}if(e.const!==void 0)return K.literal(e.const);let r=e.type;if(Array.isArray(r)){let t=r.map(i=>{let s={...e,type:i};return LE(s,n)});return t.length===0?K.never():t.length===1?t[0]:K.union(t)}if(!r)return K.any();let o;switch(r){case "string":{let t=K.string();if(e.format){let i=e.format;i==="email"?t=t.check(K.email()):i==="uri"||i==="uri-reference"?t=t.check(K.url()):i==="uuid"||i==="guid"?t=t.check(K.uuid()):i==="date-time"?t=t.check(K.iso.datetime()):i==="date"?t=t.check(K.iso.date()):i==="time"?t=t.check(K.iso.time()):i==="duration"?t=t.check(K.iso.duration()):i==="ipv4"?t=t.check(K.ipv4()):i==="ipv6"?t=t.check(K.ipv6()):i==="mac"?t=t.check(K.mac()):i==="cidr"?t=t.check(K.cidrv4()):i==="cidr-v6"?t=t.check(K.cidrv6()):i==="base64"?t=t.check(K.base64()):i==="base64url"?t=t.check(K.base64url()):i==="e164"?t=t.check(K.e164()):i==="jwt"?t=t.check(K.jwt()):i==="emoji"?t=t.check(K.emoji()):i==="nanoid"?t=t.check(K.nanoid()):i==="cuid"?t=t.check(K.cuid()):i==="cuid2"?t=t.check(K.cuid2()):i==="ulid"?t=t.check(K.ulid()):i==="xid"?t=t.check(K.xid()):i==="ksuid"&&(t=t.check(K.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"?K.number().int():K.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=K.boolean();break}case "null":{o=K.null();break}case "object":{let t={},i=e.properties||{},s=new Set(e.required||[]);for(let[u,d]of Object.entries(i)){let m=vn(d,n);t[u]=s.has(u)?m:m.optional();}if(e.propertyNames){let u=vn(e.propertyNames,n),d=e.additionalProperties&&typeof e.additionalProperties=="object"?vn(e.additionalProperties,n):K.any();if(Object.keys(t).length===0){o=K.record(u,d);break}let m=K.object(t).passthrough(),p=K.looseRecord(u,d);o=K.intersection(m,p);break}if(e.patternProperties){let u=e.patternProperties,d=Object.keys(u),m=[];for(let g of d){let f=vn(u[g],n),v=K.string().regex(new RegExp(g));m.push(K.looseRecord(v,f));}let p=[];if(Object.keys(t).length>0&&p.push(K.object(t).passthrough()),p.push(...m),p.length===0)o=K.object({}).passthrough();else if(p.length===1)o=p[0];else {let g=K.intersection(p[0],p[1]);for(let f=2;f<p.length;f++)g=K.intersection(g,p[f]);o=g;}break}let c=K.object(t);e.additionalProperties===false?o=c.strict():typeof e.additionalProperties=="object"?o=c.catchall(vn(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(u=>vn(u,n)),c=i&&typeof i=="object"&&!Array.isArray(i)?vn(i,n):void 0;c?o=K.tuple(s).rest(c):o=K.tuple(s),typeof e.minItems=="number"&&(o=o.check(K.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(K.maxLength(e.maxItems)));}else if(Array.isArray(i)){let s=i.map(u=>vn(u,n)),c=e.additionalItems&&typeof e.additionalItems=="object"?vn(e.additionalItems,n):void 0;c?o=K.tuple(s).rest(c):o=K.tuple(s),typeof e.minItems=="number"&&(o=o.check(K.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(K.maxLength(e.maxItems)));}else if(i!==void 0){let s=vn(i,n),c=K.array(s);typeof e.minItems=="number"&&(c=c.min(e.minItems)),typeof e.maxItems=="number"&&(c=c.max(e.maxItems)),o=c;}else o=K.array(K.any());break}default:throw new Error(`Unsupported type: ${r}`)}return o}function vn(e,n){if(typeof e=="boolean")return e?K.any():K.never();let r=LE(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=>vn(d,n)),u=K.union(c);r=o?K.intersection(r,u):u;}if(e.oneOf&&Array.isArray(e.oneOf)){let c=e.oneOf.map(d=>vn(d,n)),u=K.xor(c);r=o?K.intersection(r,u):u;}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)r=o?r:K.any();else {let c=o?r:vn(e.allOf[0],n),u=o?0:1;for(let d=u;d<e.allOf.length;d++)c=K.intersection(c,vn(e.allOf[d],n));r=c;}e.nullable===true&&n.version==="openapi-3.0"&&(r=K.nullable(r)),e.readOnly===true&&(r=K.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))xA.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 VE(e,n){if(typeof e=="boolean")return e?K.any():K.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=IA(r,n?.defaultTarget),t=r.$defs||r.definitions||{},i={version:o,defs:t,refs:new Map,processing:new Set,rootSchema:r,registry:n?.registry??fn};return vn(r,i)}var gy={};un(gy,{bigint:()=>TA,boolean:()=>$A,date:()=>wA,number:()=>kA,string:()=>PA});function PA(e){return Fb(ia,e)}function kA(e){return Hb(aa,e)}function $A(e){return Qb(sa,e)}function TA(e){return t_(ca,e)}function wA(e){return m_(yc,e)}Ht(Wu());var EA=/^[a-z0-9._]{1,100}$/,yi={Persisted:"persisted",Transient:"transient"},xi={Internal:"internal",External:"external"},Ii={Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}},RA="readOnly";function Mn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[RA]===true||(n[r]=o);}return a.object(n)}function yn(e){let n=Mn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(EA)}):n}var {Unrestricted:Cn}=Ii,{Transient:Zn,Persisted:CA}=yi,{Internal:uo,External:Si}=xi;a.object({page:a.coerce.number().int().min(1).default(1).meta(Cn),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(Cn)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si});var yt=a.object({created_at:a.string().datetime().meta({...Cn,readOnly:true}),updated_at:a.string().datetime().meta({...Cn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si}),mt=a.object({id:a.string().min(1).meta({...Cn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si}),xt=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...Cn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":uo});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si});var hy=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":Zn,"x-revturbine-schema-exposure":Si}),by=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si}),BE=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":Si});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":uo});var Wr=a.string().min(1).max(200),Xt=a.string().min(1).max(100),cm=a.string().max(500).optional(),Yn=a.record(a.string(),a.unknown()).default({}),mo=a.number().int().min(10).max(100).multipleOf(10),lm=a.string().datetime().nullable().default(null),Kt=a.object({environment_id:a.string().min(1).default("production").meta({...Cn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":uo}),Yt=a.object({playbook_version_id:a.string().nullable().default(null).meta(Cn),is_current:a.boolean().default(true).meta({...Cn,readOnly:true}),is_deleted:a.boolean().default(false).meta({...Cn,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...Cn,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...Cn,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...Cn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":uo}),jA=mt.merge(yt).merge(xt).merge(Kt).extend({handle:Xt.meta({...Cn,readOnly:true}),active:a.boolean().default(true).meta({...Cn,readOnly:true})});function xn(e){return jA.meta({id:e,"x-revturbine-schema-persistence":CA,"x-revturbine-schema-exposure":uo})}a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":Zn,"x-revturbine-schema-exposure":uo});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":Zn,"x-revturbine-schema-exposure":uo});var ME=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":Zn,"x-revturbine-schema-exposure":Si}),OA=new Set(hy.options);function Tc(e,n){if(!X(e))return null;let r=typeof e.output_id=="string"?e.output_id:"";if(!r)return null;let o=X(e.surface)?e.surface:{},t=OA.has(o.type)?o.type:"custom",i=X(e.cta_path)?e.cta_path:X(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:X(e.content)?e.content:{},...X(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 zA="__no_dim__";function HE(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)??zA,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 UA=999999;function AA(e){return e==null||e==="unlimited"||e===UA}function wc(e){return AA(e)?Number.POSITIVE_INFINITY:typeof e=="number"&&Number.isFinite(e)?e:void 0}function DA(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 KE(e,n,r){return e.map(o=>{let t=o.targets!=null&&o.targets.length>0?o.targets.some(s=>DA(s,n)):n.currentPlanId!=null&&o.planIds.includes(n.currentPlanId)||n.currentPlanHandle!=null&&o.planIds.includes(n.currentPlanHandle),i=HE(o.segmentIds,n.segmentIds,s=>r?.[s]);return {rule:o,matchesPlan:t,matchesSegment:i,matched:t&&i}})}function GE(e){let n=e.fields??{};switch(e.kind){case "usage_limit":return wc(n.limit_value)??0;case "credits":return wc(n.allowance_value!==void 0?n.allowance_value:n.allowance)??0;case "seat":return wc(n.included_count)??0;case "feature":return n.enabled===true?1:0;default:return 0}}function JE(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 FA(e){return JE(e,n=>GE(n.rule))?.rule}function _y(e,n,r){let o=e.entitlementRules[n];if(!o||o.length===0)return;let t=KE(o,r,e.segmentDimensions);return FA(t.filter(i=>i.matched))}function NA(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 LA(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 HE(NA(e),n,t=>o.get(t))}function ZE(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 Ec(e){let{handle:n,context:r,exportedConfig:o,currentPlanHandle:t,segmentIds:i,usageBalances:s,userUsage:c,trialGrantedEntitlementHandles:u,effectivePlanHandle:d}=e,p=(o.entitlements??[]).find(ce=>typeof ce?.unique_handle=="string"&&ce.unique_handle===n),g=typeof p?.unique_handle=="string"?p.unique_handle:n,f=typeof p?.unique_handle=="string"?p.unique_handle:void 0,v=!!(u&&u.size>0&&(u.has(n)||u.has(g)||f!==void 0&&u.has(f)));if(v&&(d===void 0||d===""))return {status:"allowed",allowed:true,reason:"granted_by_reverse_trial"};let S=String((v&&d?d:t)||"").toLowerCase(),E=(o.plans??[]).find(ce=>typeof ce.unique_handle=="string"&&ce.unique_handle.toLowerCase()===S),A=typeof E?.unique_handle=="string"?E.unique_handle:S||void 0,T=(o.entitlement_rules??[]).filter(ce=>{if((typeof ce.entitlement_id=="string"?ce.entitlement_id:typeof ce.entitlementId=="string"?ce.entitlementId:"")!==g)return false;let it=Array.isArray(ce.targets)?ce.targets.filter(be=>X(be)&&be.kind==="plan"&&typeof be.id=="string").map(be=>be.id):Array.isArray(ce.plan_ids)?ce.plan_ids.filter(be=>typeof be=="string"):Array.isArray(ce.planIds)?ce.planIds.filter(be=>typeof be=="string"):[];return !(A!==void 0&&!it.includes(A)||!LA(ce,i,o.segments??[]))});if(T.length===0)return {status:"denied",allowed:false,reason:"no_matching_entitlement_rule"};let ee=ce=>X(ce.type_fields)?ce.type_fields:X(ce.typeFields)?ce.typeFields:{},Ne=JE(T,ce=>{let vt=ee(ce);return GE({kind:typeof vt.kind=="string"?vt.kind:"",fields:vt})})??T[0],Le=ee(Ne);typeof Le.kind=="string"?Le.kind:void 0;let pe=ce=>{let vt=c?.[ce];if(X(vt)&&typeof vt.amount=="number")return vt.amount},et=r?.used??(Number.isFinite(s[n])?s[n]:void 0)??(Number.isFinite(s[g])?s[g]:void 0)??pe(n)??pe(g)??0;return um(Le,et)}function qE(e,n,r){return {...e,limit:n,used:r,remaining:Math.max(0,n-r)}}function WE(e){return e==="feature"||e==="usage_limit"||e==="limit"||e==="credits"||e==="capability_tier"}function um(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=wc(e.limit_value);return o!==void 0&&Number.isFinite(o)&&o>=0?qE(ZE(n>=o,e.enforcement,"usage_limit_reached"),o,n):{status:"allowed",allowed:true}}if(r==="credits"){let o=e.allowance===void 0?void 0:wc(e.allowance),t=Number(e.initial_grant),i=o!==void 0&&o>=0?o:Number.isFinite(t)&&t>=0?t:void 0;return i!==void 0&&Number.isFinite(i)?qE(ZE(n>=i,e.enforcement,"credit_balance_exhausted"),i,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 vy(e,n){if(!X(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=X(e.placement)?Tc(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 yy(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 VA=0;function BA(){return `core_${Date.now()}_${++VA}`}function XE(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}var xy=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=BA(),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:XE(`${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:XE("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=_y(n.rules,e,{currentPlanHandle:n.plan?.currentPlanHandle,billingPeriod:n.plan?.billingPeriod,segmentIds:n.segments?.segmentIds??[]});if(c){let u={kind:c.kind,...c.fields};if(WE(u.kind))return um(u,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 YE(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 Rc(e,n){return e.filter(r=>!r.predicates||r.predicates.length===0?false:r.predicates.every(o=>YE(o,n))).map(r=>r.handle)}function Iy(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=YE(e,n);return {field:r,operator:o,expected:t,actual:s,matched:c}}function dm(e){let n="";return e.forEach(r=>{n+=String.fromCharCode(r);}),btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function mm(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),dm(r)}async function Sy(e,n){let r=Ro(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 mm(o).slice(0,22)}function Py(e){return [e.slotId||"",e.surfaceType||"",e.entitlementHandle||"",e.planHandle||"",e.placementHandle||""].join("::")}function ky(e){let n=ci({placementId:e.placementId,userId:e.userId,contextMode:e.contextMode??"auto",overrides:e.overrides??{},traits:e.traits??{},route:Ro(e.route),...e.runtimeContextFingerprint?{runtimeContextFingerprint:e.runtimeContextFingerprint}:{}});return `${e.tenantId}:${e.placementId}:${e.userId}:${mm(n)}`}function eR(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=mg(o);if(i.length!==0)for(let s of e){if(s.output_id===o.output_id||s.surface.template!==t)continue;let c=dg(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=X(s.content)?s.content:{};return {output:s,order:ct(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 QE(e){let r=(X(e.content)?e.content:{}).__trigger_entitlement_handle;return typeof r=="string"&&r.length>0?r:null}function MA(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=QE(e),t=QE(n);if(o&&t)return {leftKey:o,rightKey:t}}return {leftKey:e.surface.type??"",rightKey:n.surface.type??""}}function pm(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=li(t.category),c=li(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:u,rightKey:d}=MA(t,i,s);u===d&&n.add(i.output_id);}}return e.filter(r=>!n.has(r.output_id))}function $y(e,n=false,r){let o=e;if(r?.fixedOnly&&(o=o.filter(u=>li(u.category)===1)),o.length===0)return null;let t=eR(o);if(t.length===0)return null;let i=t.some(u=>Ks(u)!==null),s=i?t:pm(t);return s.length===0?null:[...s].sort((u,d)=>{if(i){let $=Ks(u),S=Ks(d);if($!==null&&S!==null&&$!==S)return $-S;if($!==null&&S===null)return -1;if($===null&&S!==null)return 1}let m=li(u.category),p=li(d.category),g=m-p;if(g!==0)return g;if(m===2){let $=ug(u)-ug(d);if($!==0)return $;let S=lg(d)-lg(u);if(S!==0)return S}let f=Hs(d)-Hs(u);if(f!==0)return f;let v=Pu(d)-Pu(u);return v!==0?v:u.output_id.localeCompare(d.output_id)})[0]??null}function ZA(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function Ty(e,n,r,o){let t=X(o)?o:{},i=X(t.decision)?t.decision:{},s=X(t.content)?t.content:X(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(u=>typeof u=="string"):[],content:ZA(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 fm(e){let n=[],r=[e,e.content,X(e.content)?e.content.payload:void 0,X(e.content)?e.content.placement:void 0,X(e.content)?e.content.surface:void 0];for(let o of r){if(!X(o))continue;let t=X(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=ng(t.max_per_period);s&&i.push(s);let c=Number(t.cooldown_days),u=Number.isFinite(c)&&c>0?c*24*60*60*1e3:void 0;n.push({rules:i,...u!==void 0?{cooldownMs:u}:{}});}return n}function wy(e,n,r,o,t="impression"){if(li(e.category)<=1)return {allowed:true};let i=fm(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 g=rg(p.period,o),f=s.seenAt.filter(v=>v>=g&&v<=o);if(f.length>=p.count)return {allowed:false,reason:`suppressed_by_payload_cap_${p.period}`,updatedState:{...s,seenAt:f}}}let c=[...s.seenAt,o],u=t==="dismiss"?i.map(m=>m.cooldownMs).filter(m=>typeof m=="number"&&Number.isFinite(m)&&m>0):[],d=u.length>0?o+Math.max(...u):void 0;return {allowed:true,updatedState:{seenAt:c,...d!==void 0?{cooldownUntil:d}:{}}}}function la(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 Cc(e){return e.replace(/_(minutes|minute|credits|credit|seats|seat)$/i,"").replace(/_usage$/i,"").trim()}function qA(e,n){let r=la(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 la(s)}}function HA(e){let n=la(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 tR(e){let n={},r=e.providers;if(e.userId&&(n.user_id=e.userId),e.base)for(let[f,v]of Object.entries(e.base))(typeof v=="string"||typeof v=="number")&&(n[f]=v);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[f,v]of Object.entries(c))(typeof v=="string"||typeof v=="number")&&(n[f]=v);let u=r?.entitlements?.usage??{};for(let[f,v]of Object.entries(u)){let $=Cc(f);if(!$)continue;let S=la(v.used),R=la(v.remaining),E=la(v.limit);if(S!==void 0&&(n[`${$}_usage_current`]=S,n.usage_current===void 0&&(n.usage_current=S),n.current_usage===void 0&&(n.current_usage=S)),E!==void 0&&(n[`${$}_usage_limit`]=E,n.usage_limit===void 0&&(n.usage_limit=E),n.current_limit===void 0&&(n.current_limit=E)),R!==void 0)n[`${$}_usage_remaining`]=R,n.usage_remaining===void 0&&(n.usage_remaining=R);else if(S!==void 0&&E!==void 0){let w=Math.max(0,E-S);n[`${$}_usage_remaining`]=w,n.usage_remaining===void 0&&(n.usage_remaining=w);}if(S!==void 0&&E!==void 0&&E>0){let w=Math.min(100,Math.round(S/E*100));n[`${$}_usage_percent`]=w,n.usage_percent===void 0&&(n.usage_percent=w);}let A=v.reset_date;typeof A=="string"&&A.length>0&&(n[`${$}_reset_date`]=A,n.reset_date===void 0&&(n.reset_date=A));}let d=r?.rules?.entitlementRules??{};for(let[f,v]of Object.entries(d)){if(!Array.isArray(v)||v.length===0)continue;let $=v.find(w=>w.kind==="usage_limit"||w.kind==="usage_rate"||w.kind==="credits"||w.kind==="seat");if(!$)continue;let S=Cc(f);if(!S)continue;let R=$.fields??{},E=qA(R,o);E!==void 0&&n[`${S}_usage_limit`]===void 0&&(n[`${S}_usage_limit`]=E);let A=HA(R);A!==void 0&&(n[`${S}_usage_warning_threshold_percent`]=A);}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[f,v]of Object.entries(p)){if(v.allocation==="per_user"||v.allocation==="per_user_pooled"||!v.allocation){let $=Cc(f);if(!$)continue;v.used!==void 0&&n[`${$}_usage_current`]===void 0&&(n[`${$}_usage_current`]=v.used),v.limit!==void 0&&n[`${$}_usage_limit`]===void 0&&(n[`${$}_usage_limit`]=v.limit);}if(v.enforcement&&(v.status==="limited"||v.status==="denied")){let $=Cc(f);$&&n[`${$}_enforcement`]===void 0&&(n[`${$}_enforcement`]=v.enforcement),n.enforcement_mode===void 0&&(n.enforcement_mode=v.enforcement);}}let g=r?.rules?.entitlementRules??{};for(let[f,v]of Object.entries(g)){if(!Array.isArray(v))continue;let $=Cc(f);if($)for(let S of v){if(S.kind==="credits"){let R=n[`${$}_usage_remaining`];R!==void 0&&n.credits_remaining===void 0&&(n.credits_remaining=R);}if(S.kind==="seat"){let R=n[`${$}_usage_current`],E=n[`${$}_usage_limit`];R!==void 0&&n.seat_count===void 0&&(n.seat_count=R),E!==void 0&&n.seat_limit===void 0&&(n.seat_limit=E);}}}if(e.featureInteractions&&p){let{invokedFeatureHandles:f,interactionCounts:v,topFeaturesByEngagement:$}=e.featureInteractions,S=new Set(f),R=new Set;for(let[w,T]of Object.entries(p))(T.status==="denied"||T.status==="limited")&&R.add(w);let E=0,A=0;for(let w of f)R.has(w)&&(E++,v&&(A+=v[w]??0));if(n.gated_features_used_count=E,v&&(n.gated_action_count=A),$){let w=$.find(T=>!S.has(T)&&R.has(T));w&&(n.top_unused_gated_feature=w);}if(r?.plan?.trialActive){let w=0;for(let T of f)T in p&&w++;n.trial_features_used=w;}}return n}function Ey(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 gm(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 hm(e,n,r){let o=eo(n,e.plan),t=o??(typeof e.plan=="object"&&e.plan?.id?e.plan.id:void 0),i={...e.custom??{}};for(let[c,u]of Object.entries(e.entitlements??{}))i[c]===void 0&&(i[c]=u);o&&i.plan_name===void 0&&(i.plan_name=o),t&&i.plan===void 0&&(i.plan=t);let s={...Hr(e.usage),...r??{}};for(let[c,u]of Object.entries(s))i[c]===void 0&&(i[c]=u);return {effectivePlan:t,traits:i,usage:s,segmentTraits:gm(i,t,s)}}function Ry(e){let{context:n,exportedConfig:r,usageBalances:o,usageTokenPrefixByEntitlement:t,usageThresholdLookup:i}=e,s={};for(let[R,E]of Object.entries(n.personalization??{}))/^(usage_(current|limit|remaining|percent)|.+_usage_(current|limit|remaining|percent)|plan_name|user_id)$/i.test(R)||(s[R]=E);let c={...s},u=eo(r,n.plan);u?c.plan_name=u:typeof n.plan=="object"&&n.plan?.name&&(c.plan_name=n.plan.name);let d={...Hr(n.usage),...o},m=Object.entries(d).filter(([,R])=>Number.isFinite(R)).sort(([R],[E])=>R.localeCompare(E)),p,g,f,v,$=[];for(let[R,E]of m){let A=t.get(R)??Co(R);if(!A)continue;let T=i(R)?.limit,ee=T!==void 0?Math.max(0,T-E):void 0,Ne=T!==void 0&&T>0?Math.min(100,Math.round(E/T*100)):void 0;c[`${A}_usage_current`]=E,T!==void 0&&(c[`${A}_usage_limit`]=T),ee!==void 0&&(c[`${A}_usage_remaining`]=ee),Ne!==void 0&&(c[`${A}_usage_percent`]=Ne),$.push({prefix:A,current:E,...T!==void 0?{limit:T}:{},...ee!==void 0?{remaining:ee}:{},...Ne!==void 0?{percent:Ne}:{}}),p===void 0&&(p=E,g=T,f=ee,v=Ne);}let S=$.find(R=>R.prefix==="core")??$.find(R=>R.limit!==void 0)??$[0];return S&&(p=S.current,g=S.limit,f=S.remaining,v=S.percent),p!==void 0&&(c.usage_current=p),g!==void 0&&(c.usage_limit=g),f!==void 0&&(c.usage_remaining=f),v!==void 0&&(c.usage_percent=v),c}function Cy(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 u=s/c.limit*100,d=i/c.limit*100;d>=c.warningPercent&&u<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 jy(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 Oy(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 nR={Named:"named",Minted:"minted"},rR="x-revturbine-schema-identity";function xr(e="handle"){return {[rR]:{kind:nR.Named,handleField:e}}}function cr(e="handle"){return {[rR]:{kind:nR.Minted,handleField:e}}}var tt={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},sr={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},JA="x-revturbine-context",WA="x-revturbine-in-config",XA="x-revturbine-sdk-input",YA="x-revturbine-source",QA="x-revturbine-deprecation",eD={[tt.Playbook]:sr.Customer,[tt.Branding]:sr.Customer,[tt.Billing]:sr.Stripe,[tt.Metering]:sr.Customer,[tt.CustomerOperations]:sr.Runtime,[tt.EventIngestion]:sr.Runtime};function Rt(e,n){return {[JA]:e,[WA]:n.inConfig??e===tt.Playbook,[XA]:n.sdkInput,[YA]:n.source??eD[e]}}function jc(e){return {deprecated:true,[QA]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var Ze=e=>a.object({items:a.array(e)}),Dt=a.object({error:a.string(),code:a.string(),request_id:a.string()}),j=e=>e,qe=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 bm=new Int32Array(2);new Float32Array(bm.buffer);new Float64Array(bm.buffer);new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var _m;(function(e){e[e.UTF8_BYTES=1]="UTF8_BYTES",e[e.UTF16_STRING=2]="UTF16_STRING";})(_m||(_m={}));var nD=4294967295;var rD=nD;function Uy(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 zy(e,n){if(!e)return true;if(!n)return false;switch(e.kind){case "trial_started":{if(n.trialActive!==true)return false;let r=Uy(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 gR(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,u=t.trialTrigger.kind==="trial_progress"?t.trialTrigger.progressPercent:-1;(c>u||c===u&&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 hR(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 bR(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 zc(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 Uc(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 Ay(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 Dy(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=Ay(t,n):r[o]=t;return r}function _R(e,n){return Dy(e,n)}function Fy(e,n,r,o,t,i,s){let c=r.filter(g=>g.surface_template_id===e&&g.status==="active");if(c.length===0)return null;let u=new Map(o.map(g=>[g.block_id,g])),d=new Set(n.segmentIds),m=Uc(i,t),p=s?.segmentDimensions;for(let g of c){let f=g.default_message_block_id,v,$=g.ui_path_id,S=g.promotion_id;if(g.segment_content_map){if(p&&Object.keys(p).length>0){let w=new Map;for(let T of g.segment_content_map){let ee=T.dimension;if(!ee)continue;let Ne=w.get(ee)??[];Ne.push(T),w.set(ee,Ne);}if(w.size>0){let T=true,ee;for(let[,Ne]of w){let Le=Ne.find(ae=>d.has(ae.segment_id));if(!Le){T=false;break}ee||(ee=Le);}if(T&&ee)f=ee.message_block_id,v=ee.segment_id,ee.ui_path_id&&($=ee.ui_path_id),ee.promotion_id&&(S=ee.promotion_id);else if(!T)continue}else for(let T of g.segment_content_map)if(d.has(T.segment_id)){f=T.message_block_id,v=T.segment_id,T.ui_path_id&&($=T.ui_path_id),T.promotion_id&&(S=T.promotion_id);break}}else for(let w of g.segment_content_map)if(d.has(w.segment_id)){f=w.message_block_id,v=w.segment_id,w.ui_path_id&&($=w.ui_path_id),w.promotion_id&&(S=w.promotion_id);break}}let R=u.get(f);if(!R||R.status!=="active")continue;let E={...R.default_content};if(R.segment_overrides){let w=v?R.segment_overrides.find(T=>T.segment_value_id===v):R.segment_overrides.find(T=>d.has(T.segment_value_id));w&&(E={...E,...w.content},v=w.segment_value_id);}let A=_R(E,m);return {payload:g,messageBlock:R,resolvedContent:A,matchedSegmentId:v,uiPathId:$,promotionId:S}}return null}async function ym(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),u=t??(r.listPersonalizationTokens?await Promise.resolve(r.listPersonalizationTokens()):[]),d=Uc(o,u);for(let m of s){let p=m.default_message_block_id,g,f=m.ui_path_id,v=m.promotion_id;if(m.segment_content_map){for(let w of m.segment_content_map)if(c.has(w.segment_id)){p=w.message_block_id,g=w.segment_id,w.ui_path_id&&(f=w.ui_path_id),w.promotion_id&&(v=w.promotion_id);break}}let $=await Promise.resolve(r.getMessageBlockById(p));if(!$||$.status!=="active")continue;let S={...$.default_content};if($.segment_overrides){let w=g?$.segment_overrides.find(T=>T.segment_value_id===g):$.segment_overrides.find(T=>c.has(T.segment_value_id));w&&(S={...S,...w.content},g=w.segment_value_id);}let R=_R(S,d),E;f&&r.getUiPathById&&(E=await Promise.resolve(r.getUiPathById(f)));let A;return v&&r.getPromotionById&&(A=await Promise.resolve(r.getPromotionById(v))),{payload:m,messageBlock:$,resolvedContent:R,matchedSegmentId:g,uiPathId:f,promotionId:v,uiPath:E??void 0,promotion:A??void 0}}return null}function iD(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 oD(e,n){let r=iD(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 aD(e,n){if(!n)return null;let r=oD(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 uR(e,n){if(!e)return true;let r=aD(e,n);return r===null?false:r>=e.thresholdPercent}var{Unrestricted:ne}=Ii,{Persisted:Ac,Transient:Pi}=yi,{External:lr,Internal:sD}=xi,vR=Rt(tt.Playbook,{sdkInput:true}),cD=Rt(tt.Playbook,{inConfig:false,sdkInput:false}),lD=Rt(tt.Playbook,{inConfig:false,sdkInput:true}),uD=Rt(tt.Playbook,{inConfig:false,sdkInput:false,source:sr.Runtime}),dD=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]),mD={other_conversion:["none_always_on","overage_vs_upgrade","time_bound"],retention:["payment_failed","payment_at_risk"]};function pD(e){return mD[e]??[]}function fD(e,n){return pD(n).includes(e)}var yR=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),xR=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),gD=a.object({count:a.number().int().positive().meta(ne),period:xR.meta(ne)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr});a.object({surface_type:a.string().min(1).meta(ne),rules:a.array(gD).meta(ne),cooldown_ms:a.number().int().nonnegative().optional().meta(ne)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":Ac,"x-revturbine-schema-exposure":lr,"x-revturbine-data-classification":"operational",...lD});var hD=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":Pi,"x-revturbine-schema-exposure":lr}),ua=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ne,readOnly:true}),name:Wr.meta(ne),handle:Xt.meta(ne),description:cm.meta(ne),category:yR.meta(ne),drag_order_in_category:a.number().int().default(0).meta(ne),surface_slot_id:a.string().optional().meta(ne),entitlement_id:a.string().optional().meta(ne),tier_threshold:a.string().optional().meta(ne),threshold_percent:mo.optional().meta(ne),trial_type:a.enum(["free","reverse"]).optional().meta(ne),trigger_type:a.string().optional().meta(ne),trial_progress_percent:a.number().min(0).max(100).optional().meta(ne),days_before_end:a.number().int().min(0).optional().meta(ne),qualifier:dD.optional().meta(ne),activation_window_start:a.string().datetime().optional().meta(ne),activation_window_end:a.string().datetime().optional().meta(ne),metadata:Yn.meta(ne)}).meta({id:"Placement","x-revturbine-schema-persistence":Ac,"x-revturbine-schema-exposure":lr,...vR,...xr()}),bD=xn("PlacementAnchor"),_D=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),vD=a.object({code:_D.meta(ne),message:a.string().min(1).meta(ne),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(ne)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),dR=ua.extend({warnings:a.array(vD).optional().meta(ne)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),yD=a.object({label:a.string().min(1).max(200).meta(ne),cta_path_type:hD.meta(ne),config_fields:a.record(a.string(),a.unknown()).default({}).meta(ne)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Pi,"x-revturbine-schema-exposure":lr}),Oc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...ne,readOnly:true}),handle:Xt.meta({...ne,readOnly:true}),placement_id:a.string().min(1).meta(ne),drag_order:a.number().int().default(0).meta(ne),target_plan_ids:a.array(a.string()).default([]).meta(ne),target_plan_billing_cadences:a.array(a.string()).default([]).meta(ne),target_segments:a.array(a.string()).default([]).meta(ne),surface_slot_ids:a.array(a.string()).default([]).meta(ne),surface_template_id:a.string().min(1).meta(ne),content_fields:a.record(a.string(),a.unknown()).default({}).meta(ne),cta_list:a.array(yD).default([]).meta(ne),max_per_period:a.number().int().min(0).nullable().default(null).meta(ne),max_period_unit:xR.default("session").meta(ne),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(ne),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(ne),recommendation_plan_override:a.string().optional().meta(ne)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":Ac,"x-revturbine-schema-exposure":lr,...vR,...cr()}),xD=xn("PlacementPayloadAnchor");mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...ne,readOnly:true}),placement_payload_id:a.string().min(1).meta(ne),experiment_id:a.string().min(1).meta(ne),variant_name:a.string().min(1).max(200).meta(ne),is_control:a.boolean().default(false).meta(ne),traffic_allocation_percent:a.number().min(0).max(100).meta(ne),override_fields:a.record(a.string(),a.unknown()).default({}).meta(ne),status:a.enum(["active","paused","complete"]).default("active").meta(ne)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":Ac,"x-revturbine-schema-exposure":sD,...cD,...cr()});var ID=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({surface_slot_handle:a.string().min(1).max(200).meta(ne),surface_type:hy.meta(ne),surface_template_ids:a.array(a.string()).default([]).meta(ne),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(ne),first_seen:a.string().datetime().meta({...ne,readOnly:true}),last_seen:a.string().datetime().meta({...ne,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(ne),placement_count:a.number().int().min(0).default(0).meta({...ne,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":Ac,"x-revturbine-schema-exposure":lr,...uD,...xr("surface_slot_handle")}),SD=Mn(ua),PD=Mn(Oc);({"/api/placement-anchors":{get:j({operationId:"listPlacementAnchors",requestParams:{query:qe},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:Ze(bD)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:j({operationId:"listPlacements",requestParams:{query:qe},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:Ze(ua)}}}},"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:yn(ua)}}},responses:{201:{description:"Created",content:{"application/json":{schema:dR}}}},"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:ua}}}},"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:SD}}},responses:{200:{description:"Updated",content:{"application/json":{schema:dR}}}},"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:Dt}}}},"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:ua}}}},"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:yR,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:qe},summary:"List placement payload anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement payload anchor list",content:{"application/json":{schema:Ze(xD)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List placement payloads",tags:["placements"],responses:{200:{description:"Payload list",content:{"application/json":{schema:Ze(Oc)}}}},"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:yn(Oc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Oc}}}},"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:PD}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Oc}}}},"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:qe},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:Ze(ID)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});function mR(e,n,r){if(!e)return true;if(!fD(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 pR(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 IR={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 kD(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 $D(e){let n={};for(let[r,o]of Object.entries(e)){if(typeof o=="string"){n[r]=kD(o,e);continue}n[r]=o;}return n}function SR(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 PR(e,n){if(e==="qualifier"&&!(typeof n!="string"||n.length===0))return {kind:"qualifier",qualifier:n}}function TD(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 PR(n,r)}function wD(e){if(e)return PR(e.kind,e.qualifier)}function kR(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 ED(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 kR(r,n,o)}function RD(e,n){if(e)return kR(e.kind,n,e.thresholdPercent)}function $R(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 CD(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 $R(r,n,o)}function jD(e,n){if(e)return $R(e.kind,n,e.tierThreshold)}function OD(e){if(!e||typeof e!="object"||!("entitlement_handle"in e))return;let n=e.entitlement_handle;return typeof n=="string"?n:void 0}function zD(e){if(!e||typeof e!="object"||!("slot_id"in e))return;let n=e.slot_id;return typeof n=="string"?n:void 0}function UD(e,n){let r={...IR};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(u=>u.handle));let i=new Map,s=new Map;for(let c of n.placements){let u=c.payloads[0];if(!u)continue;let d=u.surfaces[0];if(!d)continue;let m=d.template_id,p=r[m]??"custom",g={...d.fields};d.ctas?.[0]&&(g.cta_label=d.ctas[0].label),d.ctas?.[1]&&(g.secondary_cta_label=d.ctas[1].label);let f=SR(d.ctas?.[0]),v=Array.isArray(u.target?.plan_ids)?u.target.plan_ids:[],$=OD(c.trigger),S=zD(c.trigger),R=bR(c.trigger),E=ED(c.trigger,$),A=TD(c.trigger),w=CD(c.trigger,$),T={output_id:u.id,category:c.category,surface:{template:m,type:p,slot_id:c.id},content:{...g,__target_plan_ids:v,...$?{__trigger_entitlement_handle:$}:{},...R?{__trigger_kind:R.kind}:{}},cta_path:f,rule_id:c.id,decision_id:u.id,config_version:e.version,present_upsell:true},ee=i.get(m)??[];ee.push({output:T,entryOrder:c.order??0,entryCategory:c.category,triggerEntitlementHandle:$,triggerSlotId:S,trialTrigger:R,thresholdTrigger:E,qualifierTrigger:A,entitlementGateTrigger:w}),i.set(m,ee);let Ne=c.id.replace(/^pl_/,"");s.set(Ne,T),s.set(c.id,T);}for(let c of i.values())c.sort((u,d)=>u.entryOrder-d.entryOrder);return {outputsByTemplate:i,outputsByName:s,planHandleToId:o,tierLaddersByHandle:t}}function AD(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 DD(e,n){return n.trigger.kind!=="surface_render"?void 0:e.getSlot(n.trigger.slotIdx)?.sourceId}function FD(e){let n={...IR};for(let c=0;c<e.surfaceTemplatesLength();c++){let u=e.getSurfaceTemplate(c);u&&(n[u.sourceId]=u.surfaceType);}let r=new Map;for(let c=0;c<e.plansLength();c++){let u=e.getPlan(c);u&&r.set(u.uniqueHandle,u.sourceId);}let o=new Map;for(let c=0;c<e.entitlementsLength();c++){let u=e.getEntitlement(c);u&&u.tierHandles.length>0&&o.set(u.uniqueHandle,u.tierHandles);}let t=new Map,i=new Map,s=e.header().configVersion;for(let c=0;c<e.placementsLength();c++){let u=e.getPlacement(c);if(!u)continue;let d=u.payloads[0];if(!d)continue;let m=d.surfaces[0];if(!m)continue;let p=m.templateSourceId,g=n[p]??"custom",f={...m.fields};m.ctas[0]&&(f.cta_label=m.ctas[0].label),m.ctas[1]&&(f.secondary_cta_label=m.ctas[1].label);let v=SR(m.ctas[0]),$=[];for(let ae of d.target.planIdxs){let pe=e.getPlan(ae);pe&&$.push(pe.sourceId);}let S=AD(e,u),R=DD(e,u),E=hR(u.trigger),A=RD(u.trigger,S),w=wD(u.trigger),T=jD(u.trigger,S),ee={output_id:d.sourceId,category:u.category,surface:{template:p,type:g,slot_id:u.sourceId},content:{...f,__target_plan_ids:$,...S?{__trigger_entitlement_handle:S}:{},...E?{__trigger_kind:E.kind}:{}},cta_path:v,rule_id:u.sourceId,decision_id:d.sourceId,config_version:s,present_upsell:true},Ne=t.get(p)??[];Ne.push({output:ee,entryOrder:u.order,entryCategory:u.category,triggerEntitlementHandle:S,triggerSlotId:R,trialTrigger:E,thresholdTrigger:A,qualifierTrigger:w,entitlementGateTrigger:T}),t.set(p,Ne);let Le=u.sourceId.replace(/^pl_/,"");i.set(Le,ee),i.set(u.sourceId,ee);}for(let c of t.values())c.sort((u,d)=>u.entryOrder-d.entryOrder);return {outputsByTemplate:t,outputsByName:i,planHandleToId:r,tierLaddersByHandle:o}}function ND(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 u=t.get(s.placement_id);u&&i.push({payload_id:s.payload_id,tenant_id:"",name:s.payload_id,surface_template_id:u,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 zc({payloads:i,messageBlocks:r,uiPaths:e.content_ui_paths,promotions:e.content_promotions,tokens:e.personalization_tokens})}function LD(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 u=e.getPlacement(c);if(!u)continue;let d=u.payloads[0]?.surfaces?.[0]?.templateSourceId;d&&o.set(u.sourceId,d);}let t=[],i=new Map;for(let c=0;c<n;c++){let u=e.getMessageBlock(c);u&&(t.push(u),i.set(c,u.block_id));}let s=[];for(let c=0;c<r;c++){let u=e.getPlacementPayload(c);if(!u||u.messageBlockIdx===rD)continue;let d=i.get(u.messageBlockIdx);if(!d)continue;let m=o.get(u.placementSourceId);m&&s.push({payload_id:u.sourceId,tenant_id:"",name:u.sourceId,surface_template_id:m,default_message_block_id:d,status:"active"});}if(s.length!==0)return zc({payloads:s,messageBlocks:t})}function TR(e){let{source:n,impressionHistory:r}=e,{outputsByTemplate:o,outputsByName:t,planHandleToId:i,tierLaddersByHandle:s}=n.format==="flatbuffer"?FD(n.handle):UD(n.exportedConfig,n.placements),c=n.format==="json"?ND(n.exportedConfig,n.placements):LD(n.handle);function u(d,m,p,g){let f=Array.isArray(d.content.__target_plan_ids)?d.content.__target_plan_ids.filter($=>typeof $=="string"):[],v=Array.isArray(d.content.__target_billing_periods)?d.content.__target_billing_periods.filter($=>typeof $=="string"):[];return Oy({target_plan_ids:f,target_billing_periods:v,category:d.category},{currentPlanId:m,planHandle:p,billingPeriod:g}).eligible}return async(d,m,p)=>{let g=p?.__providers,f=g?.plan?.currentPlanHandle,v=g?.plan?.billingPeriod,$=f?i.get(f):void 0,S=it=>typeof it=="string"?it:"",R=Array.isArray(m?.metadata?.surface_template_ids)?m.metadata.surface_template_ids:void 0,E,A=[];if(R&&R.length>0){let it=[];for(let te of R){let Tt=o.get(te);Tt&&it.push(...Tt);}if(it.length===0)return fR(d,"no_candidates_for_template","No placements configured for this surface template");it.sort((te,Tt)=>te.entryOrder-Tt.entryOrder);let be=m?.metadata?.entitlement_handle,cn=m?.metadata?.surface_slot_category,rn=cn?{gated:["gated"],fixed:["fixed"],triggered:["usage_credit_seat","trials","other_conversion","retention"]}[cn]:void 0,De=it;if(be){let te=it.filter(Tt=>Tt.triggerEntitlementHandle===be);te.length>0&&(De=te);}let lt=m?.metadata?.surface_slot_id;if(lt){let te=De.filter(Tt=>Tt.triggerSlotId===lt);te.length>0&&(De=te);}if(rn&&cn!=="fixed"&&De.length>1){let te=De.filter(Tt=>rn.includes(Tt.entryCategory));te.length>0&&(De=te);}r&&(De=De.filter(te=>!r.isHiddenSync(te.output.rule_id??""))),De=De.filter(te=>zy(te.trialTrigger,g?.plan)),De=De.filter(te=>uR(te.thresholdTrigger,g?.entitlements)),De=De.filter(te=>mR(te.qualifierTrigger,te.entryCategory,g?.plan)),De=De.filter(te=>pR(te.entitlementGateTrigger,s,g?.entitlements));let or,qt=[],on=Uy(g?.plan);if(on!==null&&De.length>1){let te=De.map(ln=>({ruleId:ln.output.rule_id??void 0,entryOrder:ln.entryOrder,trialTrigger:ln.trialTrigger,output:ln.output})),Tt=gR(te,on);if(Tt){or=Tt.winner,qt=Tt.supersededIds;let ln=Tt.winner.ruleId;De=De.filter(Eo=>Eo.trialTrigger?.kind!=="trial_progress"||(Eo.output.rule_id??void 0)===ln);}}let Xe;for(let te of De)if(u(te.output,$,f,v)){E=te.output,Xe=te;break}Xe&&or&&or.ruleId===(Xe.output.rule_id??void 0)&&qt.length>0&&(E={...E,content:{...E.content,__superseded_placement_ids:qt}}),E||(A=["no_eligible_candidate"]);}else {let it=m?.name,be=(it?t.get(it):void 0)??t.get(d.placementId),cn;if(be)for(let $t of o.values()){let rn=$t.find(De=>De.output===be);if(rn){cn=rn;break}}be&&r?.isHiddenSync(be.rule_id??"")?A=["placement_retired"]:be&&!zy(cn?.trialTrigger,g?.plan)?A=["trial_trigger_unmet"]:be&&!uR(cn?.thresholdTrigger,g?.entitlements)?A=["threshold_trigger_unmet"]:be&&!mR(cn?.qualifierTrigger,cn?.entryCategory??be.category,g?.plan)?A=["qualifier_trigger_unmet"]:be&&!pR(cn?.entitlementGateTrigger,s,g?.entitlements)?A=["entitlement_gate_unmet"]:be&&u(be,$,f,v)?E=be:be?A=["plan_target_mismatch"]:A=["placement_not_found"];}if(!E){let it=A[0]??"placement_not_found";return fR(d,it,"Placement not configured")}let w=E.content,T=E.surface.template;if(c&&T){let it={userId:typeof d.userId=="string"?d.userId:"",segmentIds:g?.segments?.segmentIds??[]},be=await ym(T,it,c,{});be&&(w={...E.content,...be.resolvedContent});}let ee={...w},Ne=typeof ee.entitlement=="string"?ee.entitlement:typeof ee.__trigger_entitlement_handle=="string"?ee.__trigger_entitlement_handle:void 0,Le=Ne?g?.entitlements?.usage?.[Ne]:void 0;if(Le){ee.usage_remaining=Number.isFinite(Le.remaining)?Le.remaining:0,ee.usage_limit=Number.isFinite(Le.limit)?Le.limit:0,ee.usage_current=Number.isFinite(Le.used)?Le.used:0,ee.usage_percent=Le.limit>0?Math.min(100,Math.round(Le.used/Le.limit*100)):0;let it=Le.reset_date;typeof it=="string"&&it.length>0&&(ee.reset_date=it);}let ae=$D(ee),pe={...E,content:ae},vt=!((E.category==="upsell"||E.category==="trial_conversion")&&f==="enterprise");return {placementId:d.placementId,requestId:`local_${Date.now()}`,visible:vt,decisionSource:"fallback",reasonCodes:vt?[]:["plan_tier_suppressed"],content:{header:S(pe.content.header),body:S(pe.content.body),cta_label:S(pe.content.cta_label),title:S(pe.content.header),cta:S(pe.content.cta_label)},output:pe}}}function fR(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 da(e){return TR({source:{format:"json",exportedConfig:e.exportedConfig,placements:e.placements},impressionHistory:e.impressionHistory})}var wR=a.enum(["session","day","week","month"]),ER=a.object({kind:a.enum(["template","slot"]),id:a.string(),label:a.string().optional()});a.object({id:a.string(),group:a.array(ER),cap:a.object({count:a.number().int().min(1),period:wR})});var CR=a.enum(["trial_started","trial_ending","trial_ended","trial_converted"]);a.object({stages:a.array(CR).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:V}=Ii,{Persisted:qy,Transient:Ft}=yi,{Internal:zR,External:Ct}=xi,UR=Rt(tt.Playbook,{sdkInput:true}),ZD=Rt(tt.Playbook,{inConfig:false,sdkInput:false}),Sa=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":Ft,"x-revturbine-schema-exposure":Ct}),Hy=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),qD=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),HD=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),Sm=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),Ny=a.object({entitlement_id:a.string().min(1).meta(V),entitlement_handle:a.string().min(1).meta(V),status:qD.meta(V),limit:a.number().optional().meta(V),used:a.number().optional().meta(V),allocation:Hy.optional().meta(V),enforcement:Sm.optional().meta(V),source:HD.optional().meta(V),plan_id:a.string().optional().meta(V),segment_id:a.string().optional().meta(V),seat_type_id:a.string().optional().meta(V),rule_id:a.string().optional().meta(V)}).meta({id:"EntitlementGrant","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),Ny).optional().meta(V),instance:a.record(a.string(),Ny).optional().meta(V),user:a.record(a.string(),Ny).optional().meta(V)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct,"x-revturbine-data-classification":"operational"});var KD=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),GD=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),AR=a.object({kind:GD.meta(V),id:a.string().min(1).meta(V)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),DR=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),Zy=a.union([a.number(),a.literal("unlimited")]).nullable().optional(),JD=a.looseObject({kind:a.literal("feature").meta(V),enabled:a.boolean().optional().meta(V)}).meta({id:"EntitlementTypeFieldsFeature","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),WD=a.looseObject({kind:a.literal("capability_tier").meta(V),tier_name:a.string().optional().meta(V),tier_description:a.string().optional().meta(V)}).meta({id:"EntitlementTypeFieldsCapabilityTier","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),XD=a.looseObject({kind:a.literal("usage_limit").meta(V),limit_value:Zy.meta(V),unit:a.string().optional().meta(V),period:Sa.optional().meta(V),enforcement:Sm.optional().meta(V)}).meta({id:"EntitlementTypeFieldsUsageLimit","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),YD=a.looseObject({kind:a.literal("price_per_unit").meta(V),amount_cents:a.number().optional().meta(V),currency:a.string().optional().meta(V),unit:a.string().optional().meta(V),period:Sa.optional().meta(V)}).meta({id:"EntitlementTypeFieldsPricePerUnit","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),QD=a.looseObject({kind:a.literal("rate_limit").meta(V),rate_value:a.number().optional().meta(V),period_scope:Sa.optional().meta(V),enforcement:Sm.optional().meta(V)}).meta({id:"EntitlementTypeFieldsRateLimit","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),eF=a.looseObject({kind:a.literal("credits").meta(V),allowance:Zy.meta(V),initial_grant:a.number().optional().meta(V),unit:a.string().optional().meta(V),period:Sa.optional().meta(V),reset_period:DR.optional().meta(V),rollover:a.boolean().optional().meta(V),max_balance:Zy.meta(V),top_up_available:a.boolean().optional().meta(V)}).meta({id:"EntitlementTypeFieldsCredits","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),tF=a.looseObject({kind:a.literal("seat").meta(V),included_seats:a.union([a.number(),a.literal("unlimited")]).optional().meta(V),max_seats:a.union([a.number(),a.literal("unlimited")]).nullable().optional().meta(V),seat_type:a.string().optional().meta(V)}).meta({id:"EntitlementTypeFieldsSeat","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),nF=a.looseObject({}).meta({id:"EntitlementTypeFieldsUntyped","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),rF=[JD,WD,XD,YD,QD,eF,tF],iF=a.union([...rF,nF]).meta({id:"EntitlementTypeFields","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),ha=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...V,readOnly:true}),name:Wr.meta(V),handle:Xt.meta(V),customer_facing_description:a.string().max(500).optional().meta(V),type:by.meta(V),unit:a.string().max(100).optional().meta(V),period_scope:Sa.optional().meta(V),allocation:Hy.optional().meta(V),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(V),sort_order:a.number().int().default(0).meta(V),metadata:Yn.meta(V)}).meta({id:"Entitlement","x-revturbine-schema-persistence":qy,"x-revturbine-schema-exposure":Ct,...UR,...xr()}),oF=xn("EntitlementAnchor"),Mc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...V,readOnly:true}),handle:Xt.meta({...V,readOnly:true}),entitlement_id:a.string().min(1).meta(V),targets:a.array(AR).min(1).meta(V),segment_ids:a.array(a.string()).default([]).meta(V),visibility:KD.default("public").meta(V),period_scope:Sa.optional().meta(V),instance:a.string().max(100).optional().meta(V),reset_period:DR.optional().meta(V),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(V),enforcement:Sm.optional().meta(V),warning_threshold_percent:mo.optional().meta(V),overage_price_ref:a.string().optional().meta(V),grace_period_hours:a.number().int().min(0).optional().meta(V),tier_value:a.string().optional().meta(V),rate_value:a.number().optional().meta(V),initial_grant:a.number().optional().meta(V),allowance_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(V),rollover_enabled:a.boolean().optional().meta(V),max_balance:a.union([a.number(),a.literal("unlimited")]).nullable().default(null).meta(V),seat_type_id:a.string().optional().meta(V),included_count:a.union([a.number().int(),a.literal("unlimited")]).optional().meta(V),at_limit_behavior:a.enum(["hard_cap","auto_upgrade_at_renewal"]).optional().meta(V),stripe_metered_price_id:a.string().optional().meta(V)}).meta({id:"EntitlementRule","x-revturbine-schema-persistence":qy,"x-revturbine-schema-exposure":zR,...UR,...cr()}),aF=xn("EntitlementRuleAnchor");Mc.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 sF=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),cF=a.object({code:sF.meta(V),message:a.string().min(1).meta(V),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(V)}).meta({id:"EntitlementRuleWarning","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),Ly=Mc.extend({warnings:a.array(cF).optional().meta(V)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":Ft,"x-revturbine-schema-exposure":Ct}),Vy=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...V,readOnly:true}),rule_id:a.string().min(1).meta(V),experiment_id:a.string().min(1).meta(V),variant_name:a.string().min(1).max(200).meta(V),is_control:a.boolean().default(false).meta(V),override_fields:a.record(a.string(),a.unknown()).default({}).meta(V)}).meta({id:"EntitlementRuleVariant","x-revturbine-schema-persistence":qy,"x-revturbine-schema-exposure":zR,...ZD,...cr()}),lF=Mn(ha),uF=Mn(Mc);({"/api/entitlement-anchors":{get:j({operationId:"listEntitlementAnchors",requestParams:{query:qe},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:Ze(oF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:j({operationId:"listEntitlementRuleAnchors",requestParams:{query:qe},summary:"List entitlement rule anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement rule anchor list",content:{"application/json":{schema:Ze(aF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:j({operationId:"listEntitlements",requestParams:{query:qe},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:Ze(ha)}}}},"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:yn(ha)}}},responses:{201:{description:"Created",content:{"application/json":{schema:ha}}}},"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:ha}}}},"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:lF}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ha}}}},"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:Dt}}}},"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:qe},summary:"List rules for entitlement",tags:["entitlements"],responses:{200:{description:"Rule list",content:{"application/json":{schema:Ze(Mc)}}}},"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:yn(Mc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Ly}}}},"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:uF}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ly}}}},"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:Ly}}}},"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:qe},summary:"List A/B variants for rule",tags:["entitlements"],responses:{200:{description:"Variant list",content:{"application/json":{schema:Ze(Vy)}}}},"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:yn(Vy)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Vy}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:le}=Ii,{Persisted:Zc,Transient:qc}=yi,{Internal:Ar}=xi,FR=Rt(tt.Playbook,{sdkInput:true}),NR=Rt(tt.Playbook,{inConfig:false,sdkInput:true}),dF=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":qc,"x-revturbine-schema-exposure":Ar}),Ky=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":qc,"x-revturbine-schema-exposure":Ar}),LR=a.object({name:Wr.meta(le),handle:Xt.meta(le),plan_id:a.string().nullable().optional().meta(le),segment_id:a.string().nullable().optional().meta(le),trial_limit_type:Ky.default("time").meta(le),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(le),grace_period_days:a.number().int().min(0).default(0).meta(le),usage_entitlement_handle:a.string().min(1).optional().meta(le),usage_limit_value:a.number().int().min(1).optional().meta(le),require_payment_method:a.boolean().default(false).meta(le),auto_convert:a.boolean().default(true).meta(le),convert_to_plan_id:a.string().optional().meta(le),fallback_plan_id:a.string().optional().meta(le),limit_per_customer:a.number().int().min(1).default(1).meta(le),is_active:a.boolean().default(true).meta(le),metadata:Yn.meta(le)}),ma=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true})}).merge(LR).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":Zc,"x-revturbine-schema-exposure":Ar,...FR,...xr()}),mF=xn("FreeTrialRuleAnchor"),pF=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":qc,"x-revturbine-schema-exposure":Ar}),VR=a.object({name:Wr.meta(le),handle:Xt.meta(le),premium_plan_id:a.string().min(1).meta(le),fallback_plan_id:a.string().min(1).meta(le),segment_id:a.string().nullable().optional().meta(le),trial_limit_type:Ky.default("time").meta(le),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(le),usage_entitlement_handle:a.string().min(1).optional().meta(le),usage_limit_value:a.number().int().min(1).optional().meta(le),start_policy:pF.default("signup").meta(le),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(le),entitlements_during_trial:a.array(a.string()).default([]).meta(le),is_active:a.boolean().default(true).meta(le),metadata:Yn.meta(le)}),pa=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true})}).merge(VR).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":Zc,"x-revturbine-schema-exposure":Ar,...FR,...xr()}),fF=xn("ReverseTrialRuleAnchor"),BR=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":qc,"x-revturbine-schema-exposure":Ar}),MR=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":qc,"x-revturbine-schema-exposure":Ar}),fa=mt.merge(yt).merge(xt).extend({trial_limit_policy:BR.default("1_per_lifetime").meta(le),eligibility_scope:MR.default("per_customer").meta(le)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":Zc,"x-revturbine-schema-exposure":Ar,...NR}),ga=mt.merge(yt).merge(xt).extend({trial_limit_policy:BR.default("1_per_lifetime").meta(le),eligibility_scope:MR.default("per_customer").meta(le)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":Zc,"x-revturbine-schema-exposure":Ar,...NR}),xm=mt.merge(yt).merge(xt).extend({customer_id:a.string().min(1).meta(le),rule_id:a.string().min(1).meta(le),rule_type:a.enum(["free_trial","reverse_trial"]).meta(le),plan_id:a.string().min(1).meta(le),status:dF.default("active").meta(le),started_at:a.string().datetime().meta({...le,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(le),trial_limit_type:Ky.default("time").meta(le),usage_entitlement_handle:a.string().min(1).optional().meta(le),usage_limit_value:a.number().int().min(1).optional().meta(le),converted_at:lm.meta(le),cancelled_at:lm.meta(le),metadata:Yn.meta(le)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":Zc,"x-revturbine-schema-exposure":Ar});({"/api/free-trial-rule-anchors":{get:j({operationId:"listFreeTrialRuleAnchors",requestParams:{query:qe},summary:"List free trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Free trial rule anchor list",content:{"application/json":{schema:Ze(mF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:Ze(ma)}}}},"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:ma}}}},"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:ma.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ma}}}},"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:qe},summary:"List reverse trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Reverse trial rule anchor list",content:{"application/json":{schema:Ze(fF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:Ze(pa)}}}},"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:pa}}}},"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:pa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:pa}}}},"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:qe},summary:"List free trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Free trial settings list",content:{"application/json":{schema:Ze(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:qe},summary:"List reverse trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Reverse trial settings list",content:{"application/json":{schema:Ze(ga)}}}},"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:ga}}}},"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:ga.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ga}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:j({operationId:"listTrialInstances",requestParams:{query:qe},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:Ze(xm)}}}},"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:xm}}}},"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:xm}}}},"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:xm}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:He,Financial:Im}=Ii,{Persisted:Hc,Transient:Pm}=yi,{External:Xr}=xi,gF=Rt(tt.Playbook,{sdkInput:true}),hF=Rt(tt.Playbook,{sdkInput:false}),Gy=Rt(tt.Billing,{sdkInput:false}),Pa=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":Pm,"x-revturbine-schema-exposure":Xr}),Kc=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":Pm,"x-revturbine-schema-exposure":Xr}),km=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":Pm,"x-revturbine-schema-exposure":Xr}),ba=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...He,readOnly:true}),name:Wr.meta(He),handle:Xt.meta(He),tier_position:a.number().int().min(0).default(0).meta(He),sort_order:a.number().int().default(0).meta(He),metadata:Yn.meta(He)}).meta({id:"Plan","x-revturbine-schema-persistence":Hc,"x-revturbine-schema-exposure":Xr,...gF,...xr()}),bF=xn("PlanAnchor"),_a=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...He,readOnly:true}),handle:Xt.meta({...He,readOnly:true}),plan_id:a.string().min(1).meta(He),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(He),segment_id:a.string().nullable().default(null).meta(He),price_amount:a.number().min(0).meta(Im),pricing_model:Kc.meta(He),visibility:Pa.default("public").meta(He),stripe_price_id:a.string().optional().meta(He),price_source:km.default("static").meta(He)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":Hc,"x-revturbine-schema-exposure":Xr,...Gy,...cr()}),_F=xn("PlanVariationAnchor"),va=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...He,readOnly:true}),name:Wr.meta(He),handle:Xt.meta(He),sort_order:a.number().int().default(0).meta(He),metadata:Yn.meta(He)}).meta({id:"AddOn","x-revturbine-schema-persistence":Hc,"x-revturbine-schema-exposure":Xr,...hF,...xr()}),vF=xn("AddOnAnchor"),ya=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...He,readOnly:true}),handle:Xt.meta({...He,readOnly:true}),addon_id:a.string().min(1).meta(He),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(He),segment_id:a.string().nullable().default(null).meta(He),price_amount:a.number().min(0).meta(Im),pricing_model:Kc.meta(He),visibility:Pa.default("public").meta(He),stripe_price_id:a.string().optional().meta(He),price_source:km.default("static").meta(He)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":Hc,"x-revturbine-schema-exposure":Xr,...Gy,...cr()}),yF=xn("AddOnVariationAnchor"),xF=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":Pm,"x-revturbine-schema-exposure":Xr}),xa=mt.merge(yt).merge(xt).extend({stripe_price_id:a.string().min(1).meta(He),stripe_product_id:a.string().min(1).meta(He),billing_period:xF.meta(He),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(Im),currency:BE.meta(Im),pricing_model:Kc.meta(He),nickname:a.string().nullable().default(null).meta(He),is_mock:a.boolean().default(false).meta(He),last_updated_from_stripe:lm.meta(He)}).meta({id:"StripePrice","x-revturbine-schema-persistence":Hc,"x-revturbine-schema-exposure":Xr,...Gy}),IF=Mn(ba),SF=Mn(_a),PF=Mn(va),kF=Mn(ya),$F=Mn(xa);({"/api/plan-anchors":{get:j({operationId:"listPlanAnchors",requestParams:{query:qe},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:Ze(bF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:j({operationId:"listPlans",requestParams:{query:qe},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:Ze(ba)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:yn(ba)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:ba}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:ba}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:IF}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:ba}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:Dt}}}},"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:qe},summary:"List plan variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan variation anchor list",content:{"application/json":{schema:Ze(_F)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List plan variations",tags:["plans"],responses:{200:{description:"Plan variations",content:{"application/json":{schema:Ze(_a)}}}},"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:yn(_a)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:_a}}}},"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:_a}}}},"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:SF}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:_a}}}},"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:qe},summary:"List add-on anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on anchor list",content:{"application/json":{schema:Ze(vF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:j({operationId:"listAddOns",requestParams:{query:qe},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:Ze(va)}}}},"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:yn(va)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:va}}}},"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:va}}}},"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:PF}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:va}}}},"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:qe},summary:"List add-on variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on variation anchor list",content:{"application/json":{schema:Ze(yF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List add-on variations",tags:["plans"],responses:{200:{description:"Add-on variations",content:{"application/json":{schema:Ze(ya)}}}},"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:yn(ya)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:ya}}}},"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:ya}}}},"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:kF}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:ya}}}},"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:qe},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:Ze(xa)}}}},"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:yn(xa)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:xa}}}},"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:xa}}}},"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:$F}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:xa}}}},"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:h}=Ii,{Persisted:ka,Transient:fe}=yi,{Internal:ur,External:we}=xi,Pe=Rt(tt.Playbook,{sdkInput:true}),Ia=Rt(tt.Playbook,{sdkInput:false}),$i=Rt(tt.Playbook,{inConfig:false,sdkInput:false}),ZR=Rt(tt.Playbook,{inConfig:false,sdkInput:true}),ki=Rt(tt.Playbook,{inConfig:false,sdkInput:true,source:sr.CodeConstant}),Vc=Rt(tt.Playbook,{inConfig:false,sdkInput:true,source:sr.Runtime}),Bc=Rt(tt.Playbook,{inConfig:false,sdkInput:false,source:sr.Runtime}),TF=Rt(tt.Billing,{sdkInput:false}),wF=Rt(tt.Metering,{sdkInput:false}),EF=Rt(tt.Branding,{inConfig:true,sdkInput:true}),RF=Rt(tt.Branding,{sdkInput:false}),CF="1.0.0",Dc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...h,readOnly:true}),name:Wr.meta(h),handle:Xt.meta(h),description:cm.meta(h),is_default:a.boolean().default(false).meta(h),entitlement_ids:a.array(a.string()).default([]).meta(h),metadata:Yn.meta(h)}).meta({id:"SeatType","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...$i,...xr()}),jF=xn("SeatTypeAnchor"),Fc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...h,readOnly:true}),handle:Xt.meta(h),label:a.string().min(1).meta(h),description:a.string().nullable().default(null).meta(h),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(h),data_source:a.string().nullable().default(null).meta(h),example_value:a.string().nullable().default(null).meta(h),value_map:a.record(a.string(),a.string()).default({}).meta(h),format:a.enum(["string","number","currency","percentage","date"]).nullable().default(null).meta(h),metadata:Yn.meta(h)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...$i,...xr()}),OF=xn("PersonalizationTokenAnchor"),zF=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),By=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...h,readOnly:true}),stripe_account_id:a.string().min(1).meta(h),live_mode:a.boolean().default(false).meta(h),onboarding_state:zF.default("not_started").meta({...h,readOnly:true}),onboarding_complete:a.boolean().default(false).meta({...h,readOnly:true}),charges_enabled:a.boolean().default(false).meta({...h,readOnly:true}),details_submitted:a.boolean().default(false).meta({...h,readOnly:true}),payouts_enabled:a.boolean().default(false).meta({...h,readOnly:true}),webhook_secret_set:a.boolean().default(false).meta({...h,readOnly:true}),sync_products:a.boolean().default(true).meta(h),sync_prices:a.boolean().default(true).meta(h),sync_subscriptions:a.boolean().default(true).meta(h),sync_invoices:a.boolean().default(false).meta(h),default_currency:a.string().length(3).default("USD").meta(h),tax_behavior:a.enum(["inclusive","exclusive","unspecified"]).default("unspecified").meta(h),last_sync_at:a.string().optional().meta({...h,readOnly:true}),metadata:Yn.meta(h)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...TF,...cr()});a.object({theme:a.record(a.string(),a.unknown()).optional().meta(h),workspace_name:a.string().optional().meta(h),logo_url:a.string().optional().meta(h),support_email:a.string().optional().meta(h)}).meta({id:"BrandingConfig","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...RF});var Nc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({handle:Xt.meta({...h,readOnly:true}),entitlement_id:a.string().min(1).meta(h),meter_key:a.string().min(1).max(100).meta(h),aggregation_type:a.enum(["sum","count","max","last_value"]).default("sum").meta(h),reset_period:a.enum(["none","daily","weekly","monthly","yearly"]).default("monthly").meta(h),stripe_meter_id:a.string().nullable().default(null).meta(h),is_active:a.boolean().default(true).meta(h),metadata:Yn.meta(h)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...wF,...cr()}),jR=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),Lc=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...h,readOnly:true}),handle:Xt.meta({...h,readOnly:true}),entitlement_id:a.string().min(1).meta(h),soft_limit_percent:a.number().min(0).max(100).default(80).meta(h),hard_limit_percent:a.number().min(0).max(100).default(100).meta(h),soft_limit_action:jR.default("warn").meta(h),hard_limit_action:jR.default("block").meta(h),grace_period_hours:a.number().int().min(0).default(0).meta(h),notification_channels:a.array(a.enum(["email","in_app","webhook"])).default(["in_app"]).meta(h),is_active:a.boolean().default(true).meta(h)}).meta({id:"UsageEnforcementSettings","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...ZR,...cr()}),UF=xn("UsageEnforcementSettingsAnchor"),AF=a.object({kind:a.enum(["template","slot"]).meta(h),id:a.string().min(1).meta(h),label:a.string().min(1).optional().meta(h)}).meta({id:"PlacementSettingsCapRuleGroupItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),DF=a.object({id:a.string().min(1).meta(h),group:a.array(AF).min(1).meta(h),cap:a.object({count:a.number().int().min(1).meta(h),period:a.enum(["session","day","week","month"]).meta(h)}).meta(h)}).meta({id:"PlacementSettingsCapRule","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),FF=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),qR=a.object({capRules:a.array(DF).default([]).meta(h),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(h),testMode:FF.default("off").meta(h)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":ur}),My=mt.merge(yt).merge(xt).merge(Kt).merge(Yt).extend({anchor_id:a.string().min(1).meta({...h,readOnly:true}),handle:Xt.meta({...h,readOnly:true}),global_frequency_cap:qR.nullable().default(null).meta(h),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(h),suppress_for_paid:a.boolean().default(false).meta(h),suppress_for_trial:a.boolean().default(false).meta(h),default_dismiss_cooldown_hours:a.number().int().min(0).default(24).meta(h),allow_stacking:a.boolean().default(false).meta(h),priority_collision_strategy:a.enum(["highest_priority","most_recent","random"]).default("highest_priority").meta(h)}).meta({id:"PlacementSettings","x-revturbine-schema-persistence":ka,"x-revturbine-schema-exposure":ur,...ZR,...cr()}),NF=xn("PlacementSettingsAnchor"),LF=a.object({field:a.string().min(1).meta(h),operator:a.enum(["eq","neq","gt","lt","gte","lte","contains","in"]).meta(h),value:a.string().meta(h)}).meta({id:"RevTurbineConfigSegmentsItemPredicatesItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),VF=a.object({name:a.string().min(1).meta(h),handle:a.string().min(1).meta(h),predicates:a.array(LF).optional().meta(h),dimension_id:a.string().optional().meta(h)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),BF=a.object({unique_handle:a.string().min(1).meta(h),name:a.string().min(1).meta(h),tier_position:a.number().int().min(0).default(0).meta(h),sort_order:a.number().int().min(0).default(0).meta(h),visibility:Pa.default("public").meta(h)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),MF=a.object({unique_handle:a.string().min(1).meta(h),name:a.string().min(1).meta(h),sort_order:a.number().int().min(0).default(0).meta(h),visibility:Pa.default("public").meta(h)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Ia}),ZF=a.object({handle:a.string().min(1).meta(h),plan_handle:a.string().min(1).meta(h),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(h),segment_handle:a.string().nullable().default(null).meta(h),price_amount:a.number().min(0).meta(h),pricing_model:Kc.meta(h),visibility:Pa.default("public").meta(h),stripe_price_id:a.string().nullable().default(null).meta(h),price_source:km.meta(h)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...$i}),qF=a.object({handle:a.string().min(1).meta(h),addon_handle:a.string().min(1).meta(h),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(h),segment_handle:a.string().nullable().default(null).meta(h),price_amount:a.number().min(0).meta(h),pricing_model:Kc.meta(h),visibility:Pa.default("public").meta(h),stripe_price_id:a.string().nullable().default(null).meta(h),price_source:km.meta(h)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...$i}),HF=a.object({handle:a.string().min(1).meta(h),name:a.string().min(1).meta(h),description:a.string().nullable().default(null).meta(h),is_default:a.boolean().default(false).meta(h),entitlement_handles:a.array(a.string()).default([]).meta(h)}).meta({id:"RevTurbineConfigSeatTypesItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),KF=a.object({handle:a.string().min(1).meta(h),entitlement_handle:a.string().nullable().default(null).meta(h),soft_limit_percent:a.number().int().min(0).nullable().default(null).meta(h),hard_limit_percent:a.number().int().min(0).nullable().default(null).meta(h),soft_limit_action:a.string().meta(h),hard_limit_action:a.string().meta(h),grace_period_hours:a.number().int().min(0).nullable().default(null).meta(h),notification_channels:a.array(a.string()).default([]).meta(h),is_active:a.boolean().default(true).meta(h)}).meta({id:"RevTurbineConfigEnforcementDefaultsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),GF=a.object({handle:a.string().min(1).meta(h),global_frequency_cap:qR.nullable().default(null).meta(h),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(h),suppress_for_paid:a.boolean().default(false).meta(h),suppress_for_trial:a.boolean().default(false).meta(h),default_dismiss_cooldown_hours:a.number().int().min(0).nullable().default(null).meta(h),allow_stacking:a.boolean().default(false).meta(h),priority_collision_strategy:a.string().nullable().default(null).meta(h)}).meta({id:"RevTurbineConfigPlacementSettingsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),JF=a.object({handle:a.string().min(1).meta(h),name:a.string().min(1).meta(h),category:a.string().nullable().default(null).meta(h),visibility_toggle:a.boolean().default(true).meta(h),source_type:a.string().nullable().default(null).meta(h)}).meta({id:"RevTurbineConfigSegmentDimensionsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),WF=a.object({handle:a.string().min(1).meta(h),entitlement_handle:a.string().min(1).meta(h),meter_handle:a.string().min(1).meta(h),limit:a.number().int().min(0).nullable().default(null).meta(h),reset_period:a.string().nullable().default(null).meta(h)}).meta({id:"RevTurbineConfigMeterBindingsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),XF=a.object({unique_handle:a.string().min(1).meta(h),name:a.string().min(1).meta(h),type:by.meta(h),unit:a.string().optional().meta(h),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(h)}).meta({id:"RevTurbineConfigEntitlementsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),YF=a.object({id:a.string().min(1).meta(h),entitlement_id:a.string().min(1).meta(h),targets:a.array(AR).min(1).meta(h),segment_ids:a.array(a.string()).default([]).meta(h),type_fields:iF.default({}).meta(h),current_usage:a.number().default(0).meta(h),allocation:Hy.optional().meta(h)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),QF=a.object({slot_id:a.string().min(1).meta(h),active:a.boolean().meta(h),triggers:a.array(a.string()).meta(h)}).meta({id:"RevTurbineConfigSlotConfigsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),e6=a.object({id:a.string().min(1).meta(h),label:a.string().min(1).meta(h),description:a.string().meta(h),surface_type:a.string().meta(h),placement_handle:a.string().min(1).meta(h),template:a.string().optional().meta(h)}).meta({id:"RevTurbineConfigPlacementSlotsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),t6=a.object({name:a.string().min(1).meta(h),type:a.string().optional().meta(h),required:a.boolean().optional().meta(h)}).meta({id:"RevTurbineConfigSurfaceTemplatesItemFieldsItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),n6=a.object({id:a.string().min(1).meta(h),surface_type:a.string().meta(h),fields:a.array(t6).optional().meta(h)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),r6=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":fe,"x-revturbine-schema-exposure":we}),i6=a.object({name:a.string().min(1).meta(h),action_type:r6.meta(h),plan_handle:a.string().optional().meta(h),promotion_id:a.string().optional().meta(h),placement_handle:a.string().optional().meta(h),url:a.string().optional().meta(h),tour_id:a.string().optional().meta(h),target_billing_period:a.enum(["monthly","annual"]).optional().meta(h),description:a.string().optional().meta(h)}).meta({id:"ContentUiPath","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),o6=a.object({id:a.string().meta(h),name:a.string().meta(h),discount:a.string().meta(h),type:a.string().meta(h),status:a.string().meta(h)}).meta({id:"ContentPromotion","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),a6=a.object({token:a.string().regex(/^[a-z][a-z0-9_]*$/).meta(h),label:a.string().min(1).meta(h),description:a.string().optional().meta(h),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(h),data_source:a.string().optional().meta(h),example_value:a.string().optional().meta(h),value_map:a.record(a.string(),a.string()).optional().meta(h),format:a.enum(["string","number","currency","percentage","date"]).optional().meta(h)}).meta({id:"RevTurbineConfigPersonalizationTokensItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),OR=a.object({header:a.string().optional().meta(h),body:a.string().optional().meta(h),cta_label:a.string().optional().meta(h),secondary_cta_label:a.string().optional().meta(h)}).catchall(a.unknown()).meta({id:"MessageBlockContent","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),s6=a.object({block_id:a.string().min(1).meta(h),tenant_id:a.string().min(1).meta(h),name:a.string().min(1).meta(h),surface_template_id:a.string().optional().meta(h),default_content:OR.meta(h),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:OR})).optional().meta(h),child_blocks:a.array(a.object({slot:a.string(),block_id:a.string()})).optional().meta(h),tokens_used:a.array(a.string()).optional().meta(h),status:a.enum(["draft","active","archived"]).meta(h),created_at:a.string().datetime().meta({...h,readOnly:true}),updated_at:a.string().datetime().meta({...h,readOnly:true})}).meta({id:"MessageBlock","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),c6=a.object({label:a.string().meta(h),path:ME.meta(h),config:a.record(a.string(),a.string()).optional().meta(h)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),HR=a.object({template_id:a.string().min(1).meta(h),fields:a.record(a.string(),a.string()).meta(h),ctas:a.array(c6).meta(h)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),KR=a.object({plan_ids:a.array(a.string()).meta(h),billing_cadences:a.array(a.string()).optional().meta(h),segment_chips:a.array(a.string()).meta(h)}).meta({id:"RevTurbineConfigStudioPayloadTarget","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),l6=a.object({count:a.number().int().min(1).meta(h),period:a.enum(["session","day","week","month","lifetime"]).meta(h)}).meta({id:"RevTurbineConfigPeriodCap","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),GR=a.object({max_per_period:l6.optional().meta(h),cooldown_days:a.number().int().min(0).optional().meta(h)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),u6=a.object({id:a.string().min(1).meta(h),target:KR.meta(h),surfaces:a.array(HR).meta(h),caps:GR.optional().meta(h),surface_slot_ids:a.array(a.string()).optional().meta(h),created_at:a.string().optional().meta({...h,readOnly:true}),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(h),recommendation_plan_override:a.string().optional().meta(h)}).meta({id:"RevTurbineConfigStudioPayload","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),d6=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:mo}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:mo}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:mo}),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":fe,"x-revturbine-schema-exposure":we}),m6=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we}),p6=a.object({id:a.string().min(1).meta(h),name:a.string().min(1).meta(h),category:m6.meta(h),trigger:d6.meta(h),payloads:a.array(u6).meta(h),order:a.number().int().min(0).meta(h)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),f6=a.object({payload_id:a.string().min(1).meta(h),placement_id:a.string().min(1).meta(h),target:KR.meta(h),caps:GR.optional().meta(h),created_at:a.string().meta({...h,readOnly:true}),updated_at:a.string().datetime().optional().meta({...h,readOnly:true}),source_mode:a.enum(["inline","content_linked"]).meta(h),surfaces:a.array(HR).optional().meta(h),surface_slot_ids:a.array(a.string()).optional().meta(h),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(h)}).meta({id:"RevTurbineConfigPlacementPayloadItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),g6=a.object({kind:a.string().min(1).meta(h),schema_version:a.number().int().nonnegative().meta(h),config:a.unknown().meta(h)}).meta({id:"RevTurbineConfigExtensionRulesItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe}),h6=mt.merge(LR).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...$i}),b6=mt.merge(VR).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...$i}),_6=a.object({version:a.string().meta({...h,...ki}),exported_at:a.string().datetime().optional().meta({...h,...Vc,readOnly:true}),schema_version:a.string().optional().meta({...h,...ki,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({...h,...ki,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({...h,...Vc,readOnly:true}),tenant_id:a.string().optional().meta({...h,...Bc,readOnly:true}),environment_id:a.string().optional().meta({...h,...Bc,readOnly:true}),plans:a.array(BF).meta({...h,...Pe}),addons:a.array(MF).optional().meta({...h,...Ia}),entitlements:a.array(XF).meta({...h,...Pe}),entitlement_rules:a.array(YF).meta({...h,...Pe}),segments:a.array(VF).meta({...h,...Pe}),content_ui_paths:a.array(i6).meta({...h,...Pe}),slot_configs:a.array(QF).optional().meta({...h,...Pe,...jc({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({...h,...Pe,...jc({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({...h,...EF,...jc({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(e6).optional().meta({...h,...Pe}),message_blocks:a.array(s6).optional().meta({...h,...Pe}),placement_payloads:a.array(f6).optional().meta({...h,...Pe}),placements:a.array(p6).optional().meta({...h,...Pe}),content_promotions:a.array(o6).optional().meta({...h,...Pe}),personalization_tokens:a.array(a6).optional().meta({...h,...Pe}),surface_templates:a.array(n6).optional().meta({...h,...Pe}),free_trial_rules:a.array(h6).optional().meta({...h,...Ia}),reverse_trial_rules:a.array(b6).optional().meta({...h,...Ia}),plan_variations:a.array(ZF).optional().meta({...h,...Ia}),addon_variations:a.array(qF).optional().meta({...h,...Ia}),extension_rules:a.array(g6).optional().meta({...h,...Pe}),seat_types:a.array(HF).optional().meta({...h,...Pe}),enforcement_defaults:a.array(KF).optional().meta({...h,...Pe}),placement_settings:a.array(GF).optional().meta({...h,...Pe}),segment_dimensions:a.array(JF).optional().meta({...h,...Pe}),meter_bindings:a.array(WF).optional().meta({...h,...Pe})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe,...jc({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),v6=a.object({artifact_type:a.literal("playbook").meta({...h,...ki,readOnly:true}),format_version:a.literal(CF).meta({...h,...ki,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({...h,...ki}),playbook_version_id:a.string().nullable().default(null).meta({...h,...Vc,readOnly:true}),tenant_id:a.string().min(1).meta({...h,...Bc,readOnly:true}),environment_id:a.string().min(1).meta({...h,...Bc,readOnly:true}),project_id:a.string().min(1).optional().meta({...h,...Bc,readOnly:true}),exported_at:a.string().datetime().optional().meta({...h,...Vc,readOnly:true}),schema_version:a.string().min(1).optional().meta({...h,...ki,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({...h,...ki,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Vc}),y6={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},x6=_6.omit(y6).extend({experiments:a.array(a.unknown()).max(0).optional().meta({...h,...$i}),signal_catalog:a.object({}).strict().optional().meta({...h,...$i})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe});v6.extend(x6.shape).meta({id:"Playbook","x-revturbine-schema-persistence":fe,"x-revturbine-schema-exposure":we,...Pe});({"/api/seat-type-anchors":{get:j({operationId:"listSeatTypeAnchors",requestParams:{query:qe},summary:"List seat type anchors (identity registry)",tags:["config"],responses:{200:{description:"Seat type anchor list",content:{"application/json":{schema:Ze(jF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:j({operationId:"listSeatTypes",requestParams:{query:qe},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:Ze(Dc)}}}},"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:yn(Dc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Dc}}}},"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:Dc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Dc}}}},"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:qe},summary:"List personalization token anchors (identity registry)",tags:["config"],responses:{200:{description:"Personalization token anchor list",content:{"application/json":{schema:Ze(OF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:j({operationId:"listPersonalizationTokens",requestParams:{query:qe},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:Ze(Fc)}}}},"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:yn(Fc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Fc}}}},"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:Fc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Fc}}}},"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:Mn(By)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:By}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:j({operationId:"listMeteringConfigs",requestParams:{query:qe},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:Ze(Nc)}}}},"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:yn(Nc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Nc}}}},"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:Nc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Nc}}}},"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:qe},summary:"List usage enforcement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Usage enforcement setting anchor list",content:{"application/json":{schema:Ze(UF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:qe},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:Ze(Lc)}}}},"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:yn(Lc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Lc}}}},"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:Lc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Lc}}}},"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:qe},summary:"List placement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Placement setting anchor list",content:{"application/json":{schema:Ze(NF)}}},default:{description:"Error response",content:{"application/json":{schema:Dt}}}},"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:Mn(My)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:My}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});function Ta(){return typeof window>"u"||typeof document>"u"}function jn(){return !Ta()}var Gc=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),u=Date.now();if(c&&c.ttlMs>0&&u-c.resolvedAt<c.ttlMs)return [i,c.value];let d=await s.resolve();return this.cache.set(i,{value:d,resolvedAt:u,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();}},I6="revturbine:interaction-state",JR=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 `${I6}:${this.tenantId}:${this.userId}`}stateKey(e,n,r){return [this.tenantId,n,e,r||"default"].join(":")}},S6="revturbine:presentation-caps";function $a(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function P6(e){if(!$a(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 k6(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 WR=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 u of c.rules){let d=k6(u.period,o),m=i.seenAt.filter(p=>p>=d&&p<=o);if(m.length>=u.count)return this.capsByKey.set(r,{...i,seenAt:m}),{allowed:false,reason:`suppressed_by_payload_cap_${u.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 `${S6}:${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,$a(e.content)?e.content.payload:void 0,$a(e.content)?e.content.placement:void 0,$a(e.content)?e.content.surface:void 0];for(let o of r){if(!$a(o))continue;let t=$a(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=P6(t.max_per_period);s&&i.push(s);let c=Number(t.cooldown_days),u=Number.isFinite(c)&&c>0?c*24*60*60*1e3:void 0;n.push({rules:i,...u!==void 0?{cooldownMs:u}:{}});}return n}},wa=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 XR(e){return [e.tenantId,e.userId,e.placementId,e.treatmentId||"default"].join(":")}function YR(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 $6=new Set(["dismissed","clicked_thru"]),T6=1440*60*1e3,Jy=class{constructor(e){this.retiredCache=null,this.suppressedCache=null,this.store=e.store,this.userId=e.userId,this.defaultSuppressionMs=e.defaultSuppressionMs??T6;}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);}},w6=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=QR(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.records.get(e)??[];return eC(n)}getSuppressedPlacements(e){let n=this.records.get(e)??[];return tC(n)}clear(e){this.records.delete(e);}},E6="revturbine:impression-history",$m=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=QR(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.load(e);return eC(n)}getSuppressedPlacements(e){let n=this.load(e);return tC(n)}clear(e){this.storage.removeItem(this.key(e));}key(e){return `${E6}:${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 QR(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 eC(e){let n=new Set;for(let r of e)$6.has(r.outcome)&&n.add(r.placementId);return n}function tC(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 R6(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 u of n.entitlements??[]){s[u.unique_handle]={status:t==="allow"?"allowed":"denied",allowed:t==="allow",reason:`static_config_default_${t}`};let d=e.usage?.[u.unique_handle];d&&(c[u.unique_handle]={used:d.used,limit:d.limit,remaining:Math.max(0,d.limit-d.used),unit:u.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={};for(let c of n.entitlement_rules??[]){let u=c.entitlement_id;i[u]||(i[u]=[]);let d=c,m=Array.isArray(d.segment_ids)?d.segment_ids.filter(f=>typeof f=="string"):typeof d.segment_id=="string"&&d.segment_id!=="all"?[d.segment_id]:[],p=Array.isArray(d.plan_ids)?d.plan_ids.filter(f=>typeof f=="string"):[],g={ruleId:c.id,entitlementId:u,planIds:(c.targets??[]).length>0?(c.targets??[]).filter(f=>f.kind==="plan").map(f=>f.id):p,segmentIds:m,kind:c.type_fields?.kind??"feature",fields:c.type_fields??{}};i[u].push(g);}let s={};for(let c of n.segments??[])typeof c.dimension_id=="string"&&typeof c.handle=="string"&&(s[c.handle]=c.dimension_id);return {entitlementRules:i,segmentDimensions:s,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 C6(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,u]of Object.entries(t))s[c]=u;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 nC=class{constructor(e){this.registeredPlacements=new Map,this.tenantId=e.tenantId,this.userId=e.userId,this.exportedConfig=e.exportedConfig;let n=e.storage??new wa;this.registry=new Gc;for(let o of e.providers)this.registry.register(o);this.interactionTracker=new JR({storage:n,tenantId:e.tenantId,userId:e.userId,...e.interactionOptions}),this.capEnforcer=new WR({storage:n,tenantId:e.tenantId,userId:e.userId}),this.impressionHistory=new Jy({store:e.impressionStore??new w6,userId:e.userId});let r=e.customResolver??this.buildPlacementResolver(e);this.engine=new xy({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 Rc(n,e)}buildTargetingState(e,n){return hm(e,this.exportedConfig,n)}async derivePersonalizationTokens(e){let n=await this.registry.resolveAll();return tR({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 da({placements:n,exportedConfig:e.exportedConfig,impressionHistory:this.impressionHistory})}deriveEntitlementFromConfig(e,n){return Ec({handle:e,context:n,currentPlanHandle:"",segmentIds:new Set,usageBalances:{},exportedConfig:this.exportedConfig})??{status:"allowed",allowed:true,reason:"local_runtime_default_allow"}}},j6=["web-client","server"],O6=a.enum(j6),z6=["method","meta","component"],U6=a.enum(z6),A6=["ts","python","java","csharp","rust"];a.enum(A6);var D6=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(),F6=a.object({canonical:a.string().min(1),aliases:a.array(a.string().min(1)),kind:U6,appliesTo:a.array(O6).min(1),composes:a.string().min(1).optional(),perLanguage:D6.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"]}),N6=a.object({version:a.number().int().positive(),functions:a.array(F6).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);}});N6.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 Wy={workspace_name:"Your workspace",theme:{}};function rC(e){return !!e&&Object.keys(e).length>0}var iC=false;function Xy(e={}){let n=(r,o)=>({branding:{...Wy,...r,theme:{...Wy.theme,...r?.theme}},source:o});return rC(e.explicit)?n(e.explicit,"explicit"):e.legacyConfigTheme&&Object.keys(e.legacyConfigTheme).length>0?(e.warnOnLegacy!==false&&!iC&&L6()&&(iC=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")):rC(e.apiBranding)?n(e.apiBranding,"branding-api"):n(void 0,"default")}function L6(){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 oC="[REDACTED]",V6=/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g,B6=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,M6=/\d(?:[ -]?\d){12,18}/g;function Z6(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 q6(e){let n=0,r=e.replace(V6,()=>(n+=1,oC));return r=r.replace(M6,o=>{let t=o.replace(/[ -]/g,"");return t.length>=13&&t.length<=19&&Z6(t)?(n+=1,oC):o}),{value:r,count:n}}function Yy(e){let n=0,r=o=>{if(typeof o=="string"){let t=q6(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 H6(e){return B6.test(e.trim())}function K6(e){let n=e.trim().toLowerCase();return `eml_${W6(n).slice(0,16)}`}function Qy(e){return H6(e)?{value:K6(e),redacted:true}:{value:e,redacted:false}}function aC(e){let n=Qy(e.user_id??""),r=Yy({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 G6=[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 J6(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 Dr(e,n){return e>>>n|e<<32-n}function W6(e){let n=J6(e),r=n.length*8;for(n.push(128);n.length%64!==56;)n.push(0);for(let g=0;g<4;g+=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,u=2600822924,d=528734635,m=1541459225,p=new Array(64);for(let g=0;g<n.length;g+=64){for(let T=0;T<16;T+=1){let ee=g+T*4;p[T]=(n[ee]<<24|n[ee+1]<<16|n[ee+2]<<8|n[ee+3])>>>0;}for(let T=16;T<64;T+=1){let ee=Dr(p[T-15],7)^Dr(p[T-15],18)^p[T-15]>>>3,Ne=Dr(p[T-2],17)^Dr(p[T-2],19)^p[T-2]>>>10;p[T]=p[T-16]+ee+p[T-7]+Ne>>>0;}let f=o,v=t,$=i,S=s,R=c,E=u,A=d,w=m;for(let T=0;T<64;T+=1){let ee=Dr(R,6)^Dr(R,11)^Dr(R,25),Ne=R&E^~R&A,Le=w+ee+Ne+G6[T]+p[T]>>>0,ae=Dr(f,2)^Dr(f,13)^Dr(f,22),pe=f&v^f&$^v&$,et=ae+pe>>>0;w=A,A=E,E=R,R=S+Le>>>0,S=$,$=v,v=f,f=Le+et>>>0;}o=o+f>>>0,t=t+v>>>0,i=i+$>>>0,s=s+S>>>0,c=c+R>>>0,u=u+E>>>0,d=d+A>>>0,m=m+w>>>0;}return [o,t,i,s,c,u,d,m].map(g=>g.toString(16).padStart(8,"0")).join("")}var sC={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"},cC="control_plane_source";function ex(e,n={}){return {eventName:e,properties:{[cC]:sC[e],...n}}}var Jc=class{constructor(n){C(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 Ti(e){if(e)return e;if(jn())try{return new Jc(window.localStorage)}catch{}return new wa}function tx(e){if(e)return e;if(jn())try{return new Jc(window.sessionStorage)}catch{}return new wa}var X6=/^[a-z0-9._]{1,100}$/,Nt={Persisted:"persisted",Transient:"transient"},Lt={Internal:"internal",External:"external"},Vt={Pii:{"x-revturbine-data-classification":"pii"},Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}};var Y6="readOnly";function hn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[Y6]===true||(n[r]=o);}return a.object(n)}function gn(e){let n=hn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(X6)}):n}var {Unrestricted:an}=Vt,{Transient:On,Persisted:Q6}=Nt,{Internal:fo,External:ei}=Lt;a.object({page:a.coerce.number().int().min(1).default(1).meta(an),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(an)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei});var eN=e=>a.object({items:a.array(e).meta(an),total:a.number().int().min(0).meta(an),page:a.number().int().min(1).meta(an),per_page:a.number().int().min(1).meta(an),has_more:a.boolean().meta(an)}).meta({id:"PaginatedResponse","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei}),oe=a.object({created_at:a.string().datetime().meta({...an,readOnly:true}),updated_at:a.string().datetime().meta({...an,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei}),Q=a.object({id:a.string().min(1).meta({...an,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei}),se=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...an,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":fo});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei});var zm=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":On,"x-revturbine-schema-exposure":ei}),vC=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei}),tN=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":ei});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":fo});var jt=a.string().min(1).max(200),Ye=a.string().min(1).max(100),go=a.string().max(500).optional(),wt=a.record(a.string(),a.unknown()).default({}),rl=a.number().int().min(10).max(100).multipleOf(10),St=a.string().datetime().nullable().default(null),nt=a.object({environment_id:a.string().min(1).default("production").meta({...an,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":fo}),at=a.object({playbook_version_id:a.string().nullable().default(null).meta(an),is_current:a.boolean().default(true).meta({...an,readOnly:true}),is_deleted:a.boolean().default(false).meta({...an,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...an,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...an,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...an,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":fo}),nN=Q.merge(oe).merge(se).merge(nt).extend({handle:Ye.meta({...an,readOnly:true}),active:a.boolean().default(true).meta({...an,readOnly:true})});function Qt(e){return nN.meta({id:e,"x-revturbine-schema-persistence":Q6,"x-revturbine-schema-exposure":fo})}var hx=a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":On,"x-revturbine-schema-exposure":fo}),rN=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":On,"x-revturbine-schema-exposure":fo}),yC=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":On,"x-revturbine-schema-exposure":ei}),ze={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},Ir={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},iN="x-revturbine-context",oN="x-revturbine-in-config",aN="x-revturbine-sdk-input",sN="x-revturbine-source",cN="x-revturbine-deprecation",lN={[ze.Playbook]:Ir.Customer,[ze.Branding]:Ir.Customer,[ze.Billing]:Ir.Stripe,[ze.Metering]:Ir.Customer,[ze.CustomerOperations]:Ir.Runtime,[ze.EventIngestion]:Ir.Runtime};function Qe(e,n){return {[iN]:e,[oN]:n.inConfig??e===ze.Playbook,[aN]:n.sdkInput,[sN]:n.source??lN[e]}}function Tm(e){return {deprecated:true,[cN]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var xC={Named:"named",Minted:"minted"},IC="x-revturbine-schema-identity";function bn(e="handle"){return {[IC]:{kind:xC.Named,handleField:e}}}function Qn(e="handle"){return {[IC]:{kind:xC.Minted,handleField:e}}}var J=e=>a.object({items:a.array(e)}),xe=a.object({error:a.string(),code:a.string(),request_id:a.string()}),y=e=>e,W=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:Ke,Financial:Om}=Vt,{Persisted:ll,Transient:Um}=Nt,{External:ti}=Lt,uN=Qe(ze.Playbook,{sdkInput:true}),dN=Qe(ze.Playbook,{sdkInput:false}),bx=Qe(ze.Billing,{sdkInput:false}),Ha=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":Um,"x-revturbine-schema-exposure":ti}),ul=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":Um,"x-revturbine-schema-exposure":ti}),Am=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":Um,"x-revturbine-schema-exposure":ti}),Ua=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Ke,readOnly:true}),name:jt.meta(Ke),handle:Ye.meta(Ke),tier_position:a.number().int().min(0).default(0).meta(Ke),sort_order:a.number().int().default(0).meta(Ke),metadata:wt.meta(Ke)}).meta({id:"Plan","x-revturbine-schema-persistence":ll,"x-revturbine-schema-exposure":ti,...uN,...bn()}),mN=Qt("PlanAnchor"),Aa=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Ke,readOnly:true}),handle:Ye.meta({...Ke,readOnly:true}),plan_id:a.string().min(1).meta(Ke),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(Ke),segment_id:a.string().nullable().default(null).meta(Ke),price_amount:a.number().min(0).meta(Om),pricing_model:ul.meta(Ke),visibility:Ha.default("public").meta(Ke),stripe_price_id:a.string().optional().meta(Ke),price_source:Am.default("static").meta(Ke)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":ll,"x-revturbine-schema-exposure":ti,...bx,...Qn()}),pN=Qt("PlanVariationAnchor"),Da=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Ke,readOnly:true}),name:jt.meta(Ke),handle:Ye.meta(Ke),sort_order:a.number().int().default(0).meta(Ke),metadata:wt.meta(Ke)}).meta({id:"AddOn","x-revturbine-schema-persistence":ll,"x-revturbine-schema-exposure":ti,...dN,...bn()}),fN=Qt("AddOnAnchor"),Fa=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Ke,readOnly:true}),handle:Ye.meta({...Ke,readOnly:true}),addon_id:a.string().min(1).meta(Ke),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(Ke),segment_id:a.string().nullable().default(null).meta(Ke),price_amount:a.number().min(0).meta(Om),pricing_model:ul.meta(Ke),visibility:Ha.default("public").meta(Ke),stripe_price_id:a.string().optional().meta(Ke),price_source:Am.default("static").meta(Ke)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":ll,"x-revturbine-schema-exposure":ti,...bx,...Qn()}),gN=Qt("AddOnVariationAnchor"),hN=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":Um,"x-revturbine-schema-exposure":ti}),Na=Q.merge(oe).merge(se).extend({stripe_price_id:a.string().min(1).meta(Ke),stripe_product_id:a.string().min(1).meta(Ke),billing_period:hN.meta(Ke),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(Om),currency:tN.meta(Om),pricing_model:ul.meta(Ke),nickname:a.string().nullable().default(null).meta(Ke),is_mock:a.boolean().default(false).meta(Ke),last_updated_from_stripe:St.meta(Ke)}).meta({id:"StripePrice","x-revturbine-schema-persistence":ll,"x-revturbine-schema-exposure":ti,...bx});var bN=hn(Ua),_N=hn(Aa),vN=hn(Da),yN=hn(Fa),xN=hn(Na);({"/api/plan-anchors":{get:y({operationId:"listPlanAnchors",requestParams:{query:W},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:J(mN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:y({operationId:"listPlans",requestParams:{query:W},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:J(Ua)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:gn(Ua)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:Ua}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:Ua}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:bN}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:Ua}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:xe}}}},"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:W},summary:"List plan variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan variation anchor list",content:{"application/json":{schema:J(pN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List plan variations",tags:["plans"],responses:{200:{description:"Plan variations",content:{"application/json":{schema:J(Aa)}}}},"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:gn(Aa)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:Aa}}}},"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:Aa}}}},"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:_N}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:Aa}}}},"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:W},summary:"List add-on anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on anchor list",content:{"application/json":{schema:J(fN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:y({operationId:"listAddOns",requestParams:{query:W},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:J(Da)}}}},"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:gn(Da)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:Da}}}},"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:Da}}}},"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:vN}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:Da}}}},"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:W},summary:"List add-on variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on variation anchor list",content:{"application/json":{schema:J(gN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List add-on variations",tags:["plans"],responses:{200:{description:"Add-on variations",content:{"application/json":{schema:J(Fa)}}}},"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:gn(Fa)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:Fa}}}},"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:Fa}}}},"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:yN}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:Fa}}}},"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:W},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:J(Na)}}}},"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:gn(Na)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:Na}}}},"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:Na}}}},"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:xN}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:Na}}}},"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:B}=Vt,{Persisted:_x,Transient:Bt}=Nt,{Internal:SC,External:Ot}=Lt,PC=Qe(ze.Playbook,{sdkInput:true}),IN=Qe(ze.Playbook,{inConfig:false,sdkInput:false}),Ka=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":Bt,"x-revturbine-schema-exposure":Ot}),vx=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),SN=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),PN=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),Dm=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),il=a.object({entitlement_id:a.string().min(1).meta(B),entitlement_handle:a.string().min(1).meta(B),status:SN.meta(B),limit:a.number().optional().meta(B),used:a.number().optional().meta(B),allocation:vx.optional().meta(B),enforcement:Dm.optional().meta(B),source:PN.optional().meta(B),plan_id:a.string().optional().meta(B),segment_id:a.string().optional().meta(B),seat_type_id:a.string().optional().meta(B),rule_id:a.string().optional().meta(B)}).meta({id:"EntitlementGrant","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),il).optional().meta(B),instance:a.record(a.string(),il).optional().meta(B),user:a.record(a.string(),il).optional().meta(B)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot,"x-revturbine-data-classification":"operational"});var kN=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),$N=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),kC=a.object({kind:$N.meta(B),id:a.string().min(1).meta(B)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),$C=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),gx=a.union([a.number(),a.literal("unlimited")]).nullable().optional(),TN=a.looseObject({kind:a.literal("feature").meta(B),enabled:a.boolean().optional().meta(B)}).meta({id:"EntitlementTypeFieldsFeature","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),wN=a.looseObject({kind:a.literal("capability_tier").meta(B),tier_name:a.string().optional().meta(B),tier_description:a.string().optional().meta(B)}).meta({id:"EntitlementTypeFieldsCapabilityTier","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),EN=a.looseObject({kind:a.literal("usage_limit").meta(B),limit_value:gx.meta(B),unit:a.string().optional().meta(B),period:Ka.optional().meta(B),enforcement:Dm.optional().meta(B)}).meta({id:"EntitlementTypeFieldsUsageLimit","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),RN=a.looseObject({kind:a.literal("price_per_unit").meta(B),amount_cents:a.number().optional().meta(B),currency:a.string().optional().meta(B),unit:a.string().optional().meta(B),period:Ka.optional().meta(B)}).meta({id:"EntitlementTypeFieldsPricePerUnit","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),CN=a.looseObject({kind:a.literal("rate_limit").meta(B),rate_value:a.number().optional().meta(B),period_scope:Ka.optional().meta(B),enforcement:Dm.optional().meta(B)}).meta({id:"EntitlementTypeFieldsRateLimit","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),jN=a.looseObject({kind:a.literal("credits").meta(B),allowance:gx.meta(B),initial_grant:a.number().optional().meta(B),unit:a.string().optional().meta(B),period:Ka.optional().meta(B),reset_period:$C.optional().meta(B),rollover:a.boolean().optional().meta(B),max_balance:gx.meta(B),top_up_available:a.boolean().optional().meta(B)}).meta({id:"EntitlementTypeFieldsCredits","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),ON=a.looseObject({kind:a.literal("seat").meta(B),included_seats:a.union([a.number(),a.literal("unlimited")]).optional().meta(B),max_seats:a.union([a.number(),a.literal("unlimited")]).nullable().optional().meta(B),seat_type:a.string().optional().meta(B)}).meta({id:"EntitlementTypeFieldsSeat","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),zN=a.looseObject({}).meta({id:"EntitlementTypeFieldsUntyped","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),UN=[TN,wN,EN,RN,CN,jN,ON],AN=a.union([...UN,zN]).meta({id:"EntitlementTypeFields","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),La=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...B,readOnly:true}),name:jt.meta(B),handle:Ye.meta(B),customer_facing_description:a.string().max(500).optional().meta(B),type:vC.meta(B),unit:a.string().max(100).optional().meta(B),period_scope:Ka.optional().meta(B),allocation:vx.optional().meta(B),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(B),sort_order:a.number().int().default(0).meta(B),metadata:wt.meta(B)}).meta({id:"Entitlement","x-revturbine-schema-persistence":_x,"x-revturbine-schema-exposure":Ot,...PC,...bn()}),DN=Qt("EntitlementAnchor"),sl=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...B,readOnly:true}),handle:Ye.meta({...B,readOnly:true}),entitlement_id:a.string().min(1).meta(B),targets:a.array(kC).min(1).meta(B),segment_ids:a.array(a.string()).default([]).meta(B),visibility:kN.default("public").meta(B),period_scope:Ka.optional().meta(B),instance:a.string().max(100).optional().meta(B),reset_period:$C.optional().meta(B),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(B),enforcement:Dm.optional().meta(B),warning_threshold_percent:rl.optional().meta(B),overage_price_ref:a.string().optional().meta(B),grace_period_hours:a.number().int().min(0).optional().meta(B),tier_value:a.string().optional().meta(B),rate_value:a.number().optional().meta(B),initial_grant:a.number().optional().meta(B),allowance_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(B),rollover_enabled:a.boolean().optional().meta(B),max_balance:a.union([a.number(),a.literal("unlimited")]).nullable().default(null).meta(B),seat_type_id:a.string().optional().meta(B),included_count:a.union([a.number().int(),a.literal("unlimited")]).optional().meta(B),at_limit_behavior:a.enum(["hard_cap","auto_upgrade_at_renewal"]).optional().meta(B),stripe_metered_price_id:a.string().optional().meta(B)}).meta({id:"EntitlementRule","x-revturbine-schema-persistence":_x,"x-revturbine-schema-exposure":SC,...PC,...Qn()}),FN=Qt("EntitlementRuleAnchor");sl.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 NN=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),LN=a.object({code:NN.meta(B),message:a.string().min(1).meta(B),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(B)}).meta({id:"EntitlementRuleWarning","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot}),nx=sl.extend({warnings:a.array(LN).optional().meta(B)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":Bt,"x-revturbine-schema-exposure":Ot});var rx=Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.meta({...B,readOnly:true}),rule_id:a.string().min(1).meta(B),experiment_id:a.string().min(1).meta(B),variant_name:a.string().min(1).max(200).meta(B),is_control:a.boolean().default(false).meta(B),override_fields:a.record(a.string(),a.unknown()).default({}).meta(B)}).meta({id:"EntitlementRuleVariant","x-revturbine-schema-persistence":_x,"x-revturbine-schema-exposure":SC,...IN,...Qn()}),VN=hn(La),BN=hn(sl);({"/api/entitlement-anchors":{get:y({operationId:"listEntitlementAnchors",requestParams:{query:W},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:J(DN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:y({operationId:"listEntitlementRuleAnchors",requestParams:{query:W},summary:"List entitlement rule anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement rule anchor list",content:{"application/json":{schema:J(FN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:y({operationId:"listEntitlements",requestParams:{query:W},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:J(La)}}}},"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:gn(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:y({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:y({operationId:"updateEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Update entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:VN}}},responses:{200:{description:"Updated",content:{"application/json":{schema:La}}}},"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:xe}}}},"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:W},summary:"List rules for entitlement",tags:["entitlements"],responses:{200:{description:"Rule list",content:{"application/json":{schema:J(sl)}}}},"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:gn(sl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:nx}}}},"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:BN}}},responses:{200:{description:"Updated",content:{"application/json":{schema:nx}}}},"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:nx}}}},"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:W},summary:"List A/B variants for rule",tags:["entitlements"],responses:{200:{description:"Variant list",content:{"application/json":{schema:J(rx)}}}},"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:gn(rx)}}},responses:{201:{description:"Created",content:{"application/json":{schema:rx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:re}=Vt,{Persisted:dl,Transient:Oi}=Nt,{External:mr,Internal:MN}=Lt,TC=Qe(ze.Playbook,{sdkInput:true}),ZN=Qe(ze.Playbook,{inConfig:false,sdkInput:false}),qN=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),HN=Qe(ze.Playbook,{inConfig:false,sdkInput:false,source:Ir.Runtime}),KN=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]);var wC=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr}),EC=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr}),GN=a.object({count:a.number().int().positive().meta(re),period:EC.meta(re)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr});a.object({surface_type:a.string().min(1).meta(re),rules:a.array(GN).meta(re),cooldown_ms:a.number().int().nonnegative().optional().meta(re)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":dl,"x-revturbine-schema-exposure":mr,"x-revturbine-data-classification":"operational",...qN});var JN=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":Oi,"x-revturbine-schema-exposure":mr}),Ba=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...re,readOnly:true}),name:jt.meta(re),handle:Ye.meta(re),description:go.meta(re),category:wC.meta(re),drag_order_in_category:a.number().int().default(0).meta(re),surface_slot_id:a.string().optional().meta(re),entitlement_id:a.string().optional().meta(re),tier_threshold:a.string().optional().meta(re),threshold_percent:rl.optional().meta(re),trial_type:a.enum(["free","reverse"]).optional().meta(re),trigger_type:a.string().optional().meta(re),trial_progress_percent:a.number().min(0).max(100).optional().meta(re),days_before_end:a.number().int().min(0).optional().meta(re),qualifier:KN.optional().meta(re),activation_window_start:a.string().datetime().optional().meta(re),activation_window_end:a.string().datetime().optional().meta(re),metadata:wt.meta(re)}).meta({id:"Placement","x-revturbine-schema-persistence":dl,"x-revturbine-schema-exposure":mr,...TC,...bn()}),WN=Qt("PlacementAnchor"),XN=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr}),YN=a.object({code:XN.meta(re),message:a.string().min(1).meta(re),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(re)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr}),lC=Ba.extend({warnings:a.array(YN).optional().meta(re)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr});var QN=a.object({label:a.string().min(1).max(200).meta(re),cta_path_type:JN.meta(re),config_fields:a.record(a.string(),a.unknown()).default({}).meta(re)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Oi,"x-revturbine-schema-exposure":mr}),tl=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...re,readOnly:true}),handle:Ye.meta({...re,readOnly:true}),placement_id:a.string().min(1).meta(re),drag_order:a.number().int().default(0).meta(re),target_plan_ids:a.array(a.string()).default([]).meta(re),target_plan_billing_cadences:a.array(a.string()).default([]).meta(re),target_segments:a.array(a.string()).default([]).meta(re),surface_slot_ids:a.array(a.string()).default([]).meta(re),surface_template_id:a.string().min(1).meta(re),content_fields:a.record(a.string(),a.unknown()).default({}).meta(re),cta_list:a.array(QN).default([]).meta(re),max_per_period:a.number().int().min(0).nullable().default(null).meta(re),max_period_unit:EC.default("session").meta(re),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(re),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(re),recommendation_plan_override:a.string().optional().meta(re)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":dl,"x-revturbine-schema-exposure":mr,...TC,...Qn()}),eL=Qt("PlacementPayloadAnchor");Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.meta({...re,readOnly:true}),placement_payload_id:a.string().min(1).meta(re),experiment_id:a.string().min(1).meta(re),variant_name:a.string().min(1).max(200).meta(re),is_control:a.boolean().default(false).meta(re),traffic_allocation_percent:a.number().min(0).max(100).meta(re),override_fields:a.record(a.string(),a.unknown()).default({}).meta(re),status:a.enum(["active","paused","complete"]).default("active").meta(re)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":dl,"x-revturbine-schema-exposure":MN,...ZN,...Qn()});var tL=Q.merge(oe).merge(se).merge(nt).merge(at).extend({surface_slot_handle:a.string().min(1).max(200).meta(re),surface_type:zm.meta(re),surface_template_ids:a.array(a.string()).default([]).meta(re),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(re),first_seen:a.string().datetime().meta({...re,readOnly:true}),last_seen:a.string().datetime().meta({...re,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(re),placement_count:a.number().int().min(0).default(0).meta({...re,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":dl,"x-revturbine-schema-exposure":mr,...HN,...bn("surface_slot_handle")}),nL=hn(Ba),rL=hn(tl);({"/api/placement-anchors":{get:y({operationId:"listPlacementAnchors",requestParams:{query:W},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:J(WN)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:y({operationId:"listPlacements",requestParams:{query:W},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:J(Ba)}}}},"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:gn(Ba)}}},responses:{201:{description:"Created",content:{"application/json":{schema:lC}}}},"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:Ba}}}},"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:nL}}},responses:{200:{description:"Updated",content:{"application/json":{schema:lC}}}},"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:xe}}}},"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:Ba}}}},"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:wC,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:W},summary:"List placement payload anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement payload anchor list",content:{"application/json":{schema:J(eL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List placement payloads",tags:["placements"],responses:{200:{description:"Payload list",content:{"application/json":{schema:J(tl)}}}},"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:gn(tl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:tl}}}},"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:rL}}},responses:{200:{description:"Updated",content:{"application/json":{schema:tl}}}},"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:W},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:J(tL)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});var {Unrestricted:Oe,Pii:nl}=Vt,{Persisted:RC,Transient:Fm}=Nt,{External:ml}=Lt,yx=a.object({in_trial:a.boolean().meta(Oe),trial_type:a.string().optional().meta(Oe),plan_handle:a.string().optional().meta(Oe),state:a.enum(["active","running_out","expired","converted","none"]).optional().meta(Oe),trial_limit_type:a.enum(["time","usage"]).optional().meta(Oe),progress_percent:a.number().min(0).max(100).optional().meta(Oe),day_number:a.number().int().min(0).optional().meta(Oe),days_remaining:a.number().int().min(0).optional().meta(Oe),usage_entitlement_handle:a.string().optional().meta(Oe),usage_consumed:a.number().int().min(0).optional().meta(Oe),usage_remaining:a.number().int().min(0).optional().meta(Oe),usage_limit:a.number().int().min(0).optional().meta(Oe)}).meta({id:"UserTrialStatus","x-revturbine-schema-persistence":Fm,"x-revturbine-schema-exposure":ml}),CC=a.object({entitlement_handle:a.string().min(1).meta(Oe),unit:a.string().min(1).meta(Oe),amount:a.number().min(0).meta(Oe),limit:a.number().min(0).optional().meta(Oe),reset_date:a.string().optional().meta(Oe)}).meta({id:"UserUsageEntry","x-revturbine-schema-persistence":Fm,"x-revturbine-schema-exposure":ml}),jC=a.object({id:a.string().min(1).meta(Oe),name:a.string().min(1).meta(Oe),price:a.string().optional().meta(Oe),billing_period:a.enum(["monthly","annual","none"]).optional().meta(Oe)}).meta({id:"UserPlanContext","x-revturbine-schema-persistence":Fm,"x-revturbine-schema-exposure":ml}),iL=a.object({product_instance_id:a.string().min(1).meta(Oe),user_id:a.string().min(1).meta(nl),plan:jC.optional().meta(Oe),usage:a.record(a.string(),CC).default({}).meta(Oe),trial:yx.optional().meta(Oe),entitlements:a.record(a.string(),a.union([a.boolean(),il])).default({}).meta(Oe)}).meta({id:"UserInstanceContext","x-revturbine-schema-persistence":RC,"x-revturbine-schema-exposure":ml}),Ea=Q.merge(se).merge(oe).extend({user_id:a.string().min(1).meta(nl),account_id:a.string().min(1).nullable().optional().meta(nl),email:a.string().email().nullable().optional().meta(nl),email_type:a.string().optional().meta(Oe),plan:jC.optional().meta(Oe),usage:a.record(a.string(),CC).default({}).meta(Oe),trial:yx.optional().meta(Oe),payment_failed:a.boolean().optional().meta(Oe),payment_at_risk:a.boolean().optional().meta(Oe),tiers:a.record(a.string(),a.string()).optional().meta(Oe),entitlements:a.record(a.string(),a.union([a.boolean(),il])).default({}).meta(Oe),instances:a.array(iL).optional().meta(Oe),custom:a.record(a.string(),a.union([a.string(),a.number(),a.boolean(),a.null()])).default({}).meta(nl),personalization:a.record(a.string(),a.union([a.string(),a.number()])).default({}).meta({...Oe,"x-revturbine-schema-persistence":Fm}),derived_config_version:a.string().nullable().optional().meta(Oe),context_hash:a.string().nullable().optional().meta(Oe),derived_computed_at:St.meta(Oe)}).meta({id:"UserContext","x-revturbine-schema-persistence":RC,"x-revturbine-schema-exposure":ml});({"/api/user-contexts":{get:y({operationId:"listUserContexts",requestParams:{query:W},summary:"List user contexts",tags:["users"],responses:{200:{description:"User context list",content:{"application/json":{schema:J(Ea)}}}},"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:Ea}}}},"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:Ea.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ea}}}},"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:In,Pii:Za}=Vt,{Persisted:xx,Transient:Ix}=Nt,{Internal:Ga}=Lt,oL=Qe(ze.CustomerOperations,{sdkInput:false}),aL=a.object({external_id:a.string().min(1).meta(Za),traits:a.record(a.string(),a.unknown()).default({}).meta(Za),plan_id:a.string().optional().meta(In)}).meta({id:"Identity","x-revturbine-schema-persistence":xx,"x-revturbine-schema-exposure":Ga}),uC=Q.merge(oe).merge(se).extend({external_id:a.string().min(1).meta(Za),identity:aL.meta(Za),stripe_customer_id:a.string().optional().meta(In),current_plan_id:a.string().optional().meta(In),subscription_status:a.enum(["active","past_due","canceled","trialing","unpaid","none"]).default("none").meta(In),status:a.enum(["active","churned","trial","suspended"]).default("active").meta(In),metadata:wt.meta(In)}).meta({id:"Customer","x-revturbine-schema-persistence":xx,"x-revturbine-schema-exposure":Ga}),sL=a.enum(["permanent","for_duration"]).meta({id:"CustomerOverrideDuration","x-revturbine-schema-persistence":Ix,"x-revturbine-schema-exposure":Ga}),cL=a.enum(["grant_plan","grant_addon","grant_entitlement"]).meta({id:"CustomerOverrideType","x-revturbine-schema-persistence":Ix,"x-revturbine-schema-exposure":Ga}),lL=a.enum(["active","expired","revoked"]).meta({id:"CustomerOverrideStatus","x-revturbine-schema-persistence":Ix,"x-revturbine-schema-exposure":Ga}),wi=Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.meta({...In,readOnly:true}),customer_id:a.string().min(1).meta(Za),customer_id_list:a.array(a.string()).optional().meta(Za),override_type:cL.meta(In),target_id:a.string().min(1).meta(In),value:a.record(a.string(),a.unknown()).default({}).meta(In),duration_type:sL.default("permanent").meta(In),duration_value:a.string().optional().meta(In),expiry_date:St.meta(In),status:lL.default("active").meta(In),reason:a.string().max(500).optional().meta(In),created_by:a.string().optional().meta(In)}).meta({id:"CustomerOverride","x-revturbine-schema-persistence":xx,"x-revturbine-schema-exposure":Ga,...oL,...Qn()});({"/api/customers":{get:y({operationId:"listCustomers",requestParams:{query:W},summary:"List customers",tags:["customers"],responses:{200:{description:"Customer list",content:{"application/json":{schema:J(uC)}}}},"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:uC}}}},"x-revturbine-operation":{exposure:"internal",resource:"customers",persistence:{table:"customers",mode:"get"}}})},"/api/customer-overrides":{get:y({operationId:"listCustomerOverrides",requestParams:{query:W},summary:"List customer overrides",tags:["customers"],responses:{200:{description:"Override list",content:{"application/json":{schema:J(wi)}}}},"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:wi}}}},"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:wi.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:wi}}}},"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:wi}}}},"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:wi}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"create"}}})}});var {Unrestricted:Gt}=Vt,{Persisted:Sx,Transient:OC}=Nt,{Internal:pl}=Lt,uL=Qe(ze.Playbook,{sdkInput:true}),zC=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),dL=a.enum(["default","custom"]).meta({id:"DimensionCategory","x-revturbine-schema-persistence":OC,"x-revturbine-schema-exposure":pl}),mL=a.enum(["system","sdk_trait","sdk_trait_enum","cdp_property","manual_list"]).meta({id:"DimensionSourceType","x-revturbine-schema-persistence":OC,"x-revturbine-schema-exposure":pl}),ix=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),name:jt.meta(Gt),handle:Ye.optional().meta(Gt),category:dL.default("custom").meta(Gt),visibility_toggle:a.boolean().default(true).meta(Gt),source_type:mL.default("system").meta(Gt),estimated_size:a.number().int().min(0).optional().meta(Gt)}).meta({id:"SegmentDimension","x-revturbine-schema-persistence":Sx,"x-revturbine-schema-exposure":pl,...zC,...bn()}),pL=Qt("SegmentDimensionAnchor"),ox=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),dimension_id:a.string().min(1).meta(Gt),name:jt.meta(Gt),handle:Ye.meta(Gt),description:go.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":Sx,"x-revturbine-schema-exposure":pl,...zC,...bn()}),fL=Qt("SegmentValueAnchor");Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...Gt,readOnly:true}),name:jt.meta(Gt),handle:Ye.meta(Gt),description:go.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:wt.meta(Gt)}).meta({id:"Segment","x-revturbine-schema-persistence":Sx,"x-revturbine-schema-exposure":pl,...uL,...bn()});({"/api/segment-dimension-anchors":{get:y({operationId:"listSegmentDimensionAnchors",requestParams:{query:W},summary:"List segment dimension anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment dimension anchor list",content:{"application/json":{schema:J(pL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-dimension-anchors",persistence:{table:"segmentDimensions",mode:"list"}}})},"/api/segment-value-anchors":{get:y({operationId:"listSegmentValueAnchors",requestParams:{query:W},summary:"List segment value anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment value anchor list",content:{"application/json":{schema:J(fL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-value-anchors",persistence:{table:"segmentValues",mode:"list"}}})},"/api/segments":{get:y({operationId:"listSegmentDimensions",requestParams:{query:W},summary:"List segment dimensions",tags:["segments"],responses:{200:{description:"Dimension list",content:{"application/json":{schema:J(ix)}}}},"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:ix}}}},"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:xe}}}},"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:ix}}}},"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:W},summary:"List segment values for dimension",tags:["segments"],responses:{200:{description:"Value list",content:{"application/json":{schema:J(ox)}}}},"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:ox}}}},"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:ox}}}},"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:ye}=Vt,{Persisted:Ja,Transient:UC}=Nt,{External:zi}=Lt,Px=Qe(ze.Playbook,{sdkInput:true}),gL=Qe(ze.Playbook,{inConfig:false,sdkInput:false}),hL=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),bL=Qe(ze.Playbook,{inConfig:false,sdkInput:true,source:Ir.CodeConstant});Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true}),handle:Ye.meta({...ye,readOnly:true}),name:jt.meta(ye),channel:a.enum(["in_app","email","push","sms","webhook"]).meta(ye),subject:a.string().max(500).optional().meta(ye),body:a.string().meta(ye),template_variables:a.array(a.string()).default([]).meta(ye),metadata:wt.meta(ye)}).meta({id:"Message","x-revturbine-schema-persistence":Ja,"x-revturbine-schema-exposure":zi,...gL,...Qn()});var ax=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true}),name:jt.meta(ye),handle:Ye.meta(ye),action_type:yC.meta(ye),target_url:a.string().optional().meta(ye),target_plan_id:a.string().optional().meta(ye),config_fields:a.record(a.string(),a.unknown()).default({}).meta(ye),metadata:wt.meta(ye)}).meta({id:"CtaPath","x-revturbine-schema-persistence":Ja,"x-revturbine-schema-exposure":zi,...Px,...bn()}),_L=Qt("CtaPathAnchor"),vL=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":Ja,"x-revturbine-schema-exposure":zi,...bL}),yL=a.object({name:a.string().min(1),field_type:vL,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":Ja,"x-revturbine-schema-exposure":zi,...hL}),sx=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true}),name:jt.meta(ye),handle:Ye.meta(ye),surface_type:rN.meta(ye),field_definitions:a.array(yL).default([]).meta(ye),description:go.meta(ye)}).meta({id:"SurfaceTemplate","x-revturbine-schema-persistence":Ja,"x-revturbine-schema-exposure":zi,...Px,...bn()}),xL=Qt("SurfaceTemplateAnchor"),cx=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ye,readOnly:true}),name:jt.meta(ye),handle:Ye.meta(ye),content_fields:a.record(a.string(),a.unknown()).default({}).meta(ye),variation_dimension_id:a.string().optional().meta(ye),variation_values:a.array(a.object({segment_value_id:a.string(),content_fields_override:a.record(a.string(),a.unknown())})).optional().meta(ye),notes:a.string().max(1e3).optional().meta(ye),used_in_count:a.number().int().min(0).default(0).meta({...ye,readOnly:true})}).meta({id:"MessageBlockRecord","x-revturbine-schema-persistence":Ja,"x-revturbine-schema-exposure":zi,...Px,...bn()}),IL=Qt("MessageBlockRecordAnchor"),SL=a.object({segment_id:a.string().min(1).meta(ye),message_block_id:a.string().min(1).meta(ye),ui_path_id:a.string().optional().meta(ye),promotion_id:a.string().optional().meta(ye)}).meta({id:"ContentPayloadSegmentEntry","x-revturbine-schema-persistence":UC,"x-revturbine-schema-exposure":zi});a.object({payload_id:a.string().min(1).meta(ye),tenant_id:a.string().min(1).meta(ye),name:jt.meta(ye),surface_template_id:a.string().min(1).meta(ye),default_message_block_id:a.string().min(1).meta(ye),segment_content_map:a.array(SL).optional().meta(ye),ui_path_id:a.string().optional().meta(ye),promotion_id:a.string().optional().meta(ye),status:a.enum(["draft","active","inactive"]).meta(ye),created_at:a.string().datetime().optional().meta({...ye,readOnly:true}),updated_at:a.string().datetime().optional().meta({...ye,readOnly:true})}).meta({id:"ContentPlacementPayload","x-revturbine-schema-persistence":UC,"x-revturbine-schema-exposure":zi});({"/api/surface-template-anchors":{get:y({operationId:"listSurfaceTemplateAnchors",requestParams:{query:W},summary:"List surface template anchors (identity registry)",tags:["content"],responses:{200:{description:"Surface template anchor list",content:{"application/json":{schema:J(xL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"surface-template-anchors",persistence:{table:"surfaceTemplates",mode:"list"}}})},"/api/surface-templates":{get:y({operationId:"listSurfaceTemplates",requestParams:{query:W},summary:"List surface templates",tags:["content"],responses:{200:{description:"Template list",content:{"application/json":{schema:J(sx)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-templates",persistence:{table:"surfaceTemplateVersions",mode:"list"}}})},"/api/message-block-record-anchors":{get:y({operationId:"listMessageBlockRecordAnchors",requestParams:{query:W},summary:"List message block anchors (identity registry)",tags:["content"],responses:{200:{description:"Message block anchor list",content:{"application/json":{schema:J(IL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"message-block-record-anchors",persistence:{table:"messageBlocks",mode:"list"}}})},"/api/messages":{get:y({operationId:"listMessageBlocks",requestParams:{query:W},summary:"List message blocks",tags:["content"],responses:{200:{description:"Message block list",content:{"application/json":{schema:J(cx)}}}},"x-revturbine-operation":{exposure:"external",resource:"message-blocks",persistence:{table:"messageBlockVersions",mode:"list"}}})},"/api/cta-path-anchors":{get:y({operationId:"listCtaPathAnchors",requestParams:{query:W},summary:"List CTA path anchors (identity registry)",tags:["content"],responses:{200:{description:"CTA path anchor list",content:{"application/json":{schema:J(_L)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"cta-path-anchors",persistence:{table:"ctaPaths",mode:"list"}}})},"/api/cta-paths":{get:y({operationId:"listCtaPaths",requestParams:{query:W},summary:"List CTA paths",tags:["content"],responses:{200:{description:"CTA path list",content:{"application/json":{schema:J(ax)}}}},"x-revturbine-operation":{exposure:"external",resource:"cta-paths",persistence:{table:"ctaPathVersions",mode:"list"}}})}});var {Unrestricted:Ma,Pii:PL}=Vt,{Persisted:AC}=Nt,{Internal:kL,External:$L}=Lt,TL=Qe(ze.Branding,{sdkInput:false});a.object({id:a.string().min(1).meta({...Ma,readOnly:true}),name:a.string().min(1).max(120).meta(Ma),mode:a.enum(["light","dark","system"]).default("system").meta(Ma),tokens:a.record(a.string(),a.string()).default({}).meta(Ma)}).meta({id:"Theme","x-revturbine-schema-persistence":AC,"x-revturbine-schema-exposure":$L,...TL});var dC=Q.merge(oe).extend({user_id:a.string().min(1).meta(PL),scope:a.string().min(1).meta(Ma),preferences:a.record(a.string(),a.unknown()).default({}).meta(Ma)}).meta({id:"UiPreference","x-revturbine-schema-persistence":AC,"x-revturbine-schema-exposure":kL});({"/api/ui-preferences":{get:y({operationId:"listUiPreferences",requestParams:{query:W},summary:"List UI preferences",tags:["ui"],responses:{200:{description:"UI preferences list response",content:{"application/json":{schema:J(dC)}}}},"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(hn(dC))}}},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:Ie,Financial:Fr}=Vt,{Persisted:DC,Transient:fl}=Nt,{External:gl,Internal:FC}=Lt,wL=a.object({month:a.string().meta(Ie),cohort_size:a.number().int().min(0).meta(Ie),retained:a.number().int().min(0).meta(Ie),retention_rate:a.number().min(0).max(1).meta(Ie),revenue_cents:a.number().int().min(0).meta(Fr)}).meta({id:"CohortMonth","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":gl}),EL=a.object({step:a.string().meta(Ie),label:a.string().meta(Ie),count:a.number().int().min(0).meta(Ie),conversion_rate:a.number().min(0).max(1).meta(Ie),drop_off_rate:a.number().min(0).max(1).meta(Ie)}).meta({id:"FunnelStep","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":gl}),RL=a.object({placement_id:a.string().meta(Ie),placement_name:a.string().meta(Ie),impressions:a.number().int().min(0).meta(Ie),clicks:a.number().int().min(0).meta(Ie),conversions:a.number().int().min(0).meta(Ie),ctr:a.number().min(0).meta(Ie),conversion_rate:a.number().min(0).meta(Ie),revenue_cents:a.number().int().min(0).meta(Fr)}).meta({id:"PlacementPerformanceRow","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":gl}),CL=a.object({date:a.string().meta(Ie),mrr_cents:a.number().int().min(0).meta(Fr),arr_cents:a.number().int().min(0).meta(Fr),new_mrr_cents:a.number().int().min(0).meta(Fr),churned_mrr_cents:a.number().int().min(0).meta(Fr),expansion_mrr_cents:a.number().int().min(0).meta(Fr),net_new_mrr_cents:a.number().int().meta(Fr)}).meta({id:"RevenueMetric","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":gl}),jL=a.object({metric_key:a.string().min(1).meta(Ie),label:a.string().meta(Ie),current_value:a.number().meta(Fr),previous_value:a.number().nullable().default(null).meta(Fr),change_percent:a.number().nullable().default(null).meta(Ie),period:a.string().meta(Ie),unit:a.enum(["count","cents","percent","ratio","seconds"]).default("count").meta(Ie)}).meta({id:"KpiAggregate","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":gl}),mC=Q.merge(oe).merge(se).extend({report_type:a.enum(["plan_drift","entitlement_drift","usage_anomaly","revenue_anomaly"]).meta(Ie),severity:hx.meta(Ie),resource_type:a.string().min(1).meta(Ie),resource_id:a.string().min(1).meta(Ie),summary:a.string().max(1e3).meta(Ie),expected_value:a.unknown().optional().meta(Ie),actual_value:a.unknown().optional().meta(Ie),affected_customer_count:a.number().int().min(0).default(0).meta(Ie),is_resolved:a.boolean().default(false).meta(Ie),resolved_at:St.meta(Ie),metadata:wt.meta(Ie)}).meta({id:"DriftReport","x-revturbine-schema-persistence":DC,"x-revturbine-schema-exposure":FC}),pC=Q.merge(oe).merge(se).extend({alert_type:a.enum(["usage_threshold","revenue_drop","conversion_drop","experiment_significance","drift_detected","custom"]).meta(Ie),severity:hx.meta(Ie),title:a.string().min(1).max(300).meta(Ie),description:a.string().max(2e3).meta(Ie),resource_type:a.string().optional().meta(Ie),resource_id:a.string().optional().meta(Ie),is_acknowledged:a.boolean().default(false).meta(Ie),acknowledged_at:St.meta(Ie),acknowledged_by:a.string().nullable().default(null).meta(Ie),metadata:wt.meta(Ie)}).meta({id:"Alert","x-revturbine-schema-persistence":DC,"x-revturbine-schema-exposure":FC});({"/api/analytics/kpis":{get:y({operationId:"listKpiAggregates",requestParams:{query:W},summary:"List KPI aggregate metrics",tags:["analytics"],responses:{200:{description:"KPI list",content:{"application/json":{schema:J(jL)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"kpiAggregates",mode:"list"}}})},"/api/analytics/placement-performance":{get:y({operationId:"listPlacementPerformance",requestParams:{query:W},summary:"List placement performance rows",tags:["analytics"],responses:{200:{description:"Performance rows",content:{"application/json":{schema:J(RL)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"placementPerformance",mode:"list"}}})},"/api/analytics/revenue":{get:y({operationId:"listRevenueMetrics",requestParams:{query:W},summary:"List revenue metrics over time",tags:["analytics"],responses:{200:{description:"Revenue metrics",content:{"application/json":{schema:J(CL)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"revenueMetrics",mode:"list"}}})},"/api/analytics/cohorts":{get:y({operationId:"listCohortMetrics",requestParams:{query:W},summary:"List cohort retention metrics",tags:["analytics"],responses:{200:{description:"Cohort metrics",content:{"application/json":{schema:J(wL)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"cohortMetrics",mode:"list"}}})},"/api/analytics/funnels":{get:y({operationId:"listFunnelSteps",requestParams:{query:W},summary:"List funnel step metrics",tags:["analytics"],responses:{200:{description:"Funnel steps",content:{"application/json":{schema:J(EL)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"funnelSteps",mode:"list"}}})},"/api/analytics/drift-reports":{get:y({operationId:"listDriftReports",requestParams:{query:W},summary:"List drift reports",tags:["analytics"],responses:{200:{description:"Drift reports",content:{"application/json":{schema:J(mC)}}}},"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:mC}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"driftReports",mode:"update"}}})},"/api/analytics/alerts":{get:y({operationId:"listAlerts",requestParams:{query:W},summary:"List alerts",tags:["analytics"],responses:{200:{description:"Alert list",content:{"application/json":{schema:J(pC)}}}},"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:pC}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"alerts",mode:"update"}}})}});var {Unrestricted:M,Pii:qa}=Vt,{Persisted:NC,Transient:Et}=Nt,{Internal:Ui,External:sn}=Lt,LC=a.enum(["clickstream","telemetry","sdk","workflow","system"]).meta({id:"EventSource","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn}),OL=Q.extend({event_type:a.string().min(1).meta(M),source:LC.default("sdk").meta(M),tenant_id:a.string().min(1).optional().meta(M),user_id:a.string().min(1).optional().meta(qa),session_id:a.string().min(1).optional().meta(qa),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":Et,"x-revturbine-schema-exposure":Ui}),zL=OL.extend({ingested_at:a.string().datetime().meta(M)}).meta({id:"IngestedEvent","x-revturbine-schema-persistence":NC,"x-revturbine-schema-exposure":Ui});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(qa),session_id:a.string().min(1).optional().meta(qa),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":Et,"x-revturbine-schema-exposure":Ui});var UL=a.enum(["impression","dismiss","remind_me_later","cta_clicked","cta_completed","suppress"]).meta({id:"TreatmentInteractionType","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});a.object({user_id:a.string().min(1).meta(qa),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:UL.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":Et,"x-revturbine-schema-exposure":sn});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":Et,"x-revturbine-schema-exposure":sn});a.object({days_remaining:a.number().int().min(0).optional().meta(M)}).meta({id:"TrialTriggerPayload","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});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":Et,"x-revturbine-schema-exposure":sn});a.object({feature:a.string().min(1).meta(M)}).meta({id:"FeatureGateTriggerPayload","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});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":Et,"x-revturbine-schema-exposure":sn});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":Et,"x-revturbine-schema-exposure":sn});var DL=a.enum(["system","workflow"]).meta({id:"ControlPlaneEventSource","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn}),FL=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":Et,"x-revturbine-schema-exposure":sn});a.object({event_type:FL.meta(M),source:DL.meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M)}).meta({id:"ControlPlaneSemanticEvent","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});a.object({q:a.string().optional().meta(M),source:LC.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":Et,"x-revturbine-schema-exposure":Ui});var NL=a.enum(["stripe","apple","google"]).meta({id:"WebhookEventSource","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":Ui}),LL=a.enum(["processed","failed","skipped"]).meta({id:"WebhookEventStatus","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":Ui}),lx=Q.merge(oe).merge(se).extend({event_id:a.string().min(1).meta(M),event_type:a.string().min(1).meta(M),source:NL.meta(M),payload:a.record(a.string(),a.unknown()).default({}).meta(M),status:LL.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":NC,"x-revturbine-schema-exposure":Ui});a.object({accepted:a.number().int().min(0).meta(M)}).meta({id:"null","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":Ui});var VL=500,BL=a.enum(["explicit","automatic","derived","raw"]).meta({id:"EventOrigin","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn}),ML=a.object({environment_id:a.string().min(1).meta(M),user_id:a.string().min(1).meta(qa),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:BL.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":Et,"x-revturbine-schema-exposure":sn});a.object({events:a.array(ML).min(1).max(VL).meta(M)}).meta({id:"TrackIngestBatch","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});var qL=10,HL=a.enum(["sdk_init","sdk_error","sdk_validation_warning"]).meta({id:"SdkMetaEventType","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn}),KL=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":Et,"x-revturbine-schema-exposure":sn}),GL=a.object({event_type:HL.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:KL.optional().meta(M),message:a.string().max(500).optional().meta(M)}).meta({id:"SdkMetaEvent","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});a.object({events:a.array(GL).min(1).max(qL).meta(M)}).meta({id:"SdkMetaIngestBatch","x-revturbine-schema-persistence":Et,"x-revturbine-schema-exposure":sn});({"/api/events/search":{get:y({operationId:"searchEvents",summary:"Search ingested events",tags:["events"],responses:{200:{description:"Paginated event results",content:{"application/json":{schema:eN(zL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"events"}})},"/api/webhook-events":{get:y({operationId:"listWebhookEvents",requestParams:{query:W},summary:"List webhook event log entries",tags:["events"],responses:{200:{description:"Webhook event list",content:{"application/json":{schema:J(lx)}}}},"x-revturbine-operation":{exposure:"internal",resource:"webhook-events",persistence:{table:"webhookEventLog",mode:"list"}}})}});var {Unrestricted:ue}=Vt,{Persisted:hl,Transient:bl}=Nt,{Internal:Nr}=Lt,VC=Qe(ze.Playbook,{sdkInput:true}),BC=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),WL=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":Nr}),kx=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":Nr}),MC=a.object({name:jt.meta(ue),handle:Ye.meta(ue),plan_id:a.string().nullable().optional().meta(ue),segment_id:a.string().nullable().optional().meta(ue),trial_limit_type:kx.default("time").meta(ue),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ue),grace_period_days:a.number().int().min(0).default(0).meta(ue),usage_entitlement_handle:a.string().min(1).optional().meta(ue),usage_limit_value:a.number().int().min(1).optional().meta(ue),require_payment_method:a.boolean().default(false).meta(ue),auto_convert:a.boolean().default(true).meta(ue),convert_to_plan_id:a.string().optional().meta(ue),fallback_plan_id:a.string().optional().meta(ue),limit_per_customer:a.number().int().min(1).default(1).meta(ue),is_active:a.boolean().default(true).meta(ue),metadata:wt.meta(ue)}),Ra=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true})}).merge(MC).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":Nr,...VC,...bn()}),XL=Qt("FreeTrialRuleAnchor"),YL=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":Nr}),ZC=a.object({name:jt.meta(ue),handle:Ye.meta(ue),premium_plan_id:a.string().min(1).meta(ue),fallback_plan_id:a.string().min(1).meta(ue),segment_id:a.string().nullable().optional().meta(ue),trial_limit_type:kx.default("time").meta(ue),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ue),usage_entitlement_handle:a.string().min(1).optional().meta(ue),usage_limit_value:a.number().int().min(1).optional().meta(ue),start_policy:YL.default("signup").meta(ue),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(ue),entitlements_during_trial:a.array(a.string()).default([]).meta(ue),is_active:a.boolean().default(true).meta(ue),metadata:wt.meta(ue)}),Ca=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true})}).merge(ZC).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":Nr,...VC,...bn()}),QL=Qt("ReverseTrialRuleAnchor"),qC=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":Nr}),HC=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":bl,"x-revturbine-schema-exposure":Nr}),ja=Q.merge(oe).merge(se).extend({trial_limit_policy:qC.default("1_per_lifetime").meta(ue),eligibility_scope:HC.default("per_customer").meta(ue)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":Nr,...BC}),Oa=Q.merge(oe).merge(se).extend({trial_limit_policy:qC.default("1_per_lifetime").meta(ue),eligibility_scope:HC.default("per_customer").meta(ue)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":Nr,...BC}),wm=Q.merge(oe).merge(se).extend({customer_id:a.string().min(1).meta(ue),rule_id:a.string().min(1).meta(ue),rule_type:a.enum(["free_trial","reverse_trial"]).meta(ue),plan_id:a.string().min(1).meta(ue),status:WL.default("active").meta(ue),started_at:a.string().datetime().meta({...ue,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(ue),trial_limit_type:kx.default("time").meta(ue),usage_entitlement_handle:a.string().min(1).optional().meta(ue),usage_limit_value:a.number().int().min(1).optional().meta(ue),converted_at:St.meta(ue),cancelled_at:St.meta(ue),metadata:wt.meta(ue)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":Nr});({"/api/free-trial-rule-anchors":{get:y({operationId:"listFreeTrialRuleAnchors",requestParams:{query:W},summary:"List free trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Free trial rule anchor list",content:{"application/json":{schema:J(XL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:J(Ra)}}}},"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:Ra}}}},"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:Ra.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ra}}}},"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:W},summary:"List reverse trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Reverse trial rule anchor list",content:{"application/json":{schema:J(QL)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:J(Ca)}}}},"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:Ca}}}},"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:Ca.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ca}}}},"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:W},summary:"List free trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Free trial settings list",content:{"application/json":{schema:J(ja)}}}},"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:ja}}}},"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:ja.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ja}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"update"}}})},"/api/trials/reverse-settings":{get:y({operationId:"listReverseTrialSettings",requestParams:{query:W},summary:"List reverse trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Reverse trial settings list",content:{"application/json":{schema:J(Oa)}}}},"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:Oa}}}},"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:Oa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Oa}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:y({operationId:"listTrialInstances",requestParams:{query:W},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:J(wm)}}}},"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:wm}}}},"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:wm}}}},"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:wm}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:pt}=Vt,{Persisted:$x,Transient:KC}=Nt,{Internal:_l}=Lt,GC=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),eV=a.enum(["draft","ramping","winning","neutral","needs_attention","paused","complete"]).meta({id:"ExperimentStatus","x-revturbine-schema-persistence":KC,"x-revturbine-schema-exposure":_l}),tV=a.enum(["placement_ab","entitlement_ab","plan_ab","pricing_ab","custom"]).meta({id:"ExperimentType","x-revturbine-schema-persistence":KC,"x-revturbine-schema-exposure":_l}),nV=a.object({variant_id:a.string().min(1),name:jt,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":$x,"x-revturbine-schema-exposure":_l,...GC}),Yr=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...pt,readOnly:true}),name:jt.meta(pt),handle:Ye.meta(pt),description:a.string().max(1e3).optional().meta(pt),experiment_type:tV.meta(pt),status:eV.default("draft").meta(pt),target_resource_id:a.string().optional().meta(pt),target_segment_ids:a.array(a.string()).default([]).meta(pt),variants:a.array(nV).min(2).meta(pt),primary_metric:a.string().min(1).meta(pt),metric_threshold:a.number().default(.05).meta(pt),secondary_metrics:a.array(a.string()).default([]).meta(pt),traffic_allocation:a.number().min(0).max(1).default(1).meta(pt),started_at:St.meta(pt),ended_at:St.meta(pt),confidence_threshold:a.number().min(0).max(1).default(.95).meta(pt),winning_variant_id:a.string().nullable().default(null).meta(pt),metadata:wt.meta(pt)}).meta({id:"Experiment","x-revturbine-schema-persistence":$x,"x-revturbine-schema-exposure":_l,...GC,...bn()}),rV=Qt("ExperimentAnchor"),iV=hx,fC=Q.merge(oe).merge(se).extend({experiment_id:a.string().optional().meta(pt),resource_type:a.string().min(1).meta(pt),resource_id:a.string().min(1).meta(pt),severity:iV.default("info").meta(pt),title:a.string().min(1).max(300).meta(pt),description:a.string().max(2e3).meta(pt),suggested_action:a.string().max(1e3).optional().meta(pt),estimated_impact:a.number().optional().meta(pt),is_dismissed:a.boolean().default(false).meta(pt),metadata:wt.meta(pt)}).meta({id:"OptimizationSuggestion","x-revturbine-schema-persistence":$x,"x-revturbine-schema-exposure":_l});({"/api/experiment-anchors":{get:y({operationId:"listExperimentAnchors",requestParams:{query:W},summary:"List experiment anchors (identity registry)",tags:["experiments"],responses:{200:{description:"Experiment anchor list",content:{"application/json":{schema:J(rV)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiment-anchors",persistence:{table:"experiments",mode:"list"}}})},"/api/experiments":{get:y({operationId:"listExperiments",requestParams:{query:W},summary:"List experiments",tags:["experiments"],responses:{200:{description:"Experiment list",content:{"application/json":{schema:J(Yr)}}}},"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:Yr}}}},"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:Yr.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Yr}}}},"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:Yr}}}},"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:Yr}}}},"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:Yr}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}})},"/api/optimization-suggestions":{get:y({operationId:"listOptimizationSuggestions",requestParams:{query:W},summary:"List optimization suggestions",tags:["experiments"],responses:{200:{description:"Suggestion list",content:{"application/json":{schema:J(fC)}}}},"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:fC}}}},"x-revturbine-operation":{exposure:"internal",resource:"optimization-suggestions",persistence:{table:"optimizationSuggestions",mode:"update"}}})}});var {Unrestricted:dn,Financial:gC}=Vt,{Persisted:oV,Transient:JC}=Nt,{Internal:Tx}=Lt,aV=Qe(ze.Playbook,{sdkInput:true}),sV=a.enum(["draft","scheduled","live","expired","archived"]).meta({id:"PromotionStatus","x-revturbine-schema-persistence":JC,"x-revturbine-schema-exposure":Tx}),cV=a.enum(["percentage","fixed_amount","free_months"]).meta({id:"DiscountType","x-revturbine-schema-persistence":JC,"x-revturbine-schema-exposure":Tx}),Ei=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...dn,readOnly:true}),name:jt.meta(dn),handle:Ye.meta(dn),description:a.string().max(1e3).optional().meta(dn),rt_status:sV.default("draft").meta(dn),discount_type:cV.meta(dn),discount_value:a.number().min(0).meta(gC),currency:a.string().length(3).default("USD").meta(gC),applicable_plan_ids:a.array(a.string()).default([]).meta(dn),applicable_addon_ids:a.array(a.string()).default([]).meta(dn),target_segment_ids:a.array(a.string()).default([]).meta(dn),max_redemptions:a.number().int().min(0).nullable().default(null).meta(dn),current_redemptions:a.number().int().min(0).default(0).meta({...dn,readOnly:true}),coupon_code:a.string().max(100).optional().meta(dn),starts_at:St.meta(dn),ends_at:St.meta(dn),stripe_coupon_id:a.string().nullable().default(null).meta(dn),stripe_promotion_code_id:a.string().nullable().default(null).meta(dn),auto_sync_stripe:a.boolean().default(false).meta(dn),metadata:wt.meta(dn)}).meta({id:"Promotion","x-revturbine-schema-persistence":oV,"x-revturbine-schema-exposure":Tx,...aV,...bn()}),lV=Qt("PromotionAnchor");({"/api/promotion-anchors":{get:y({operationId:"listPromotionAnchors",requestParams:{query:W},summary:"List promotion anchors (identity registry)",tags:["promotions"],responses:{200:{description:"Promotion anchor list",content:{"application/json":{schema:J(lV)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotion-anchors",persistence:{table:"promotions",mode:"list"}}})},"/api/promotions":{get:y({operationId:"listPromotions",requestParams:{query:W},summary:"List promotions",tags:["promotions"],responses:{200:{description:"Promotion list",content:{"application/json":{schema:J(Ei)}}}},"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:Ei}}}},"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:Ei.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ei}}}},"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:Ei}}}},"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:Ei}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"create"}}})}});var {Unrestricted:It,Pii:wx}=Vt,{Persisted:Ex}=Nt,{Internal:Rx}=Lt,uV=Q.merge(oe).merge(se).extend({customer_id:a.string().min(1).meta(wx),placement_id:a.string().min(1).meta(It),payload_id:a.string().nullable().default(null).meta(It),variant_id:a.string().nullable().default(null).meta(It),surface_type:a.string().meta(It),presented_at:a.string().datetime().meta({...It,readOnly:true}),dismissed_at:St.meta(It),cta_clicked_at:St.meta(It),cta_action_type:a.string().nullable().default(null).meta(It),converted:a.boolean().default(false).meta(It),session_id:a.string().optional().meta(It),metadata:wt.meta(It)}).meta({id:"PresentationRecord","x-revturbine-schema-persistence":Ex,"x-revturbine-schema-exposure":Rx}),dV=Q.merge(oe).merge(se).extend({customer_id:a.string().min(1).meta(wx),placement_id:a.string().min(1).meta(It),decision:a.enum(["show","suppress","defer"]).meta(It),reason:a.string().max(500).meta(It),matched_rules:a.array(a.object({rule_id:a.string(),rule_type:a.string(),matched:a.boolean()})).default([]).meta(It),experiment_id:a.string().nullable().default(null).meta(It),variant_id:a.string().nullable().default(null).meta(It),latency_ms:a.number().min(0).optional().meta(It)}).meta({id:"DecisionLog","x-revturbine-schema-persistence":Ex,"x-revturbine-schema-exposure":Rx}),mV=Q.merge(oe).merge(se).extend({customer_id:a.string().min(1).meta(wx),entitlement_handle:a.string().min(1).meta(It),entitlement_type:a.string().meta(It),result:a.enum(["granted","denied","limited","metered"]).meta(It),current_usage:a.number().nullable().default(null).meta(It),limit:a.number().nullable().default(null).meta(It),source:a.enum(["plan","addon","override","trial"]).meta(It),source_id:a.string().min(1).meta(It),latency_ms:a.number().min(0).optional().meta(It)}).meta({id:"EntitlementEvalLog","x-revturbine-schema-persistence":Ex,"x-revturbine-schema-exposure":Rx});({"/api/presentation-records":{get:y({operationId:"listPresentationRecords",requestParams:{query:W},summary:"List presentation records",tags:["runtime"],responses:{200:{description:"Presentation records",content:{"application/json":{schema:J(uV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"presentation-records",persistence:{table:"presentationRecords",mode:"list"}}})},"/api/decision-logs":{get:y({operationId:"listDecisionLogs",requestParams:{query:W},summary:"List decision logs",tags:["runtime"],responses:{200:{description:"Decision logs",content:{"application/json":{schema:J(dV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"decision-logs",persistence:{table:"decisionLogs",mode:"list"}}})},"/api/entitlement-eval-logs":{get:y({operationId:"listEntitlementEvalLogs",requestParams:{query:W},summary:"List entitlement evaluation logs",tags:["runtime"],responses:{200:{description:"Entitlement eval logs",content:{"application/json":{schema:J(mV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-eval-logs",persistence:{table:"entitlementEvalLogs",mode:"list"}}})}});var {Unrestricted:b}=Vt,{Persisted:Wa,Transient:ge}=Nt,{Internal:pr,External:Ee}=Lt,ke=Qe(ze.Playbook,{sdkInput:true}),Va=Qe(ze.Playbook,{sdkInput:false}),ji=Qe(ze.Playbook,{inConfig:false,sdkInput:false}),WC=Qe(ze.Playbook,{inConfig:false,sdkInput:true}),Ci=Qe(ze.Playbook,{inConfig:false,sdkInput:true,source:Ir.CodeConstant}),ol=Qe(ze.Playbook,{inConfig:false,sdkInput:true,source:Ir.Runtime}),al=Qe(ze.Playbook,{inConfig:false,sdkInput:false,source:Ir.Runtime}),pV=Qe(ze.Billing,{sdkInput:false}),fV=Qe(ze.Metering,{sdkInput:false}),gV=Qe(ze.Branding,{inConfig:true,sdkInput:true}),hV=Qe(ze.Branding,{sdkInput:false}),bV="1.0.0",Wc=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),name:jt.meta(b),handle:Ye.meta(b),description:go.meta(b),is_default:a.boolean().default(false).meta(b),entitlement_ids:a.array(a.string()).default([]).meta(b),metadata:wt.meta(b)}).meta({id:"SeatType","x-revturbine-schema-persistence":Wa,"x-revturbine-schema-exposure":pr,...ji,...bn()}),_V=Qt("SeatTypeAnchor"),Xc=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Ye.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:wt.meta(b)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":Wa,"x-revturbine-schema-exposure":pr,...ji,...bn()}),vV=Qt("PersonalizationTokenAnchor"),yV=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":pr}),dx=Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.meta({...b,readOnly:true}),stripe_account_id:a.string().min(1).meta(b),live_mode:a.boolean().default(false).meta(b),onboarding_state:yV.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:wt.meta(b)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":Wa,"x-revturbine-schema-exposure":pr,...pV,...Qn()});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":ge,"x-revturbine-schema-exposure":Ee,...hV});var Yc=Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.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:wt.meta(b)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":Wa,"x-revturbine-schema-exposure":pr,...fV,...Qn()}),hC=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":pr}),Qc=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Ye.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:hC.default("warn").meta(b),hard_limit_action:hC.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":Wa,"x-revturbine-schema-exposure":pr,...WC,...Qn()}),xV=Qt("UsageEnforcementSettingsAnchor"),IV=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":ge,"x-revturbine-schema-exposure":pr}),SV=a.object({id:a.string().min(1).meta(b),group:a.array(IV).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":ge,"x-revturbine-schema-exposure":pr}),PV=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":pr}),XC=a.object({capRules:a.array(SV).default([]).meta(b),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(b),testMode:PV.default("off").meta(b)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":pr}),mx=Q.merge(oe).merge(se).merge(nt).merge(at).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:Ye.meta({...b,readOnly:true}),global_frequency_cap:XC.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":Wa,"x-revturbine-schema-exposure":pr,...WC,...Qn()}),kV=Qt("PlacementSettingsAnchor"),$V=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":ge,"x-revturbine-schema-exposure":Ee}),TV=a.object({name:a.string().min(1).meta(b),handle:a.string().min(1).meta(b),predicates:a.array($V).optional().meta(b),dimension_id:a.string().optional().meta(b)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke}),wV=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:Ha.default("public").meta(b)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke}),EV=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:Ha.default("public").meta(b)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...Va}),RV=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:ul.meta(b),visibility:Ha.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:Am.meta(b)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ji}),CV=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:ul.meta(b),visibility:Ha.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:Am.meta(b)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ji}),jV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),OV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),zV=a.object({handle:a.string().min(1).meta(b),global_frequency_cap:XC.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":ge,"x-revturbine-schema-exposure":Ee,...ke}),UV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),AV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),DV=a.object({unique_handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),type:vC.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":ge,"x-revturbine-schema-exposure":Ee,...ke}),FV=a.object({id:a.string().min(1).meta(b),entitlement_id:a.string().min(1).meta(b),targets:a.array(kC).min(1).meta(b),segment_ids:a.array(a.string()).default([]).meta(b),type_fields:AN.default({}).meta(b),current_usage:a.number().default(0).meta(b),allocation:vx.optional().meta(b)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke}),NV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),LV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),VV=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":ge,"x-revturbine-schema-exposure":Ee}),BV=a.object({id:a.string().min(1).meta(b),surface_type:a.string().meta(b),fields:a.array(VV).optional().meta(b)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke}),MV=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":ge,"x-revturbine-schema-exposure":Ee}),ZV=a.object({name:a.string().min(1).meta(b),action_type:MV.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":ge,"x-revturbine-schema-exposure":Ee,...ke}),qV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),HV=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),bC=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":ge,"x-revturbine-schema-exposure":Ee}),KV=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:bC.meta(b),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:bC})).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":ge,"x-revturbine-schema-exposure":Ee,...ke}),GV=a.object({label:a.string().meta(b),path:yC.meta(b),config:a.record(a.string(),a.string()).optional().meta(b)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee}),YC=a.object({template_id:a.string().min(1).meta(b),fields:a.record(a.string(),a.string()).meta(b),ctas:a.array(GV).meta(b)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee}),QC=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":ge,"x-revturbine-schema-exposure":Ee}),JV=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":ge,"x-revturbine-schema-exposure":Ee}),ej=a.object({max_per_period:JV.optional().meta(b),cooldown_days:a.number().int().min(0).optional().meta(b)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee}),WV=a.object({id:a.string().min(1).meta(b),target:QC.meta(b),surfaces:a.array(YC).meta(b),caps:ej.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":ge,"x-revturbine-schema-exposure":Ee}),XV=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:rl}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:rl}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:rl}),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":ge,"x-revturbine-schema-exposure":Ee}),YV=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee}),QV=a.object({id:a.string().min(1).meta(b),name:a.string().min(1).meta(b),category:YV.meta(b),trigger:XV.meta(b),payloads:a.array(WV).meta(b),order:a.number().int().min(0).meta(b)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke}),eB=a.object({payload_id:a.string().min(1).meta(b),placement_id:a.string().min(1).meta(b),target:QC.meta(b),caps:ej.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(YC).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":ge,"x-revturbine-schema-exposure":Ee,...ke}),tB=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":ge,"x-revturbine-schema-exposure":Ee,...ke}),nB=Q.merge(MC).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ji}),rB=Q.merge(ZC).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ji}),iB=a.object({version:a.string().meta({...b,...Ci}),exported_at:a.string().datetime().optional().meta({...b,...ol,readOnly:true}),schema_version:a.string().optional().meta({...b,...Ci,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({...b,...Ci,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({...b,...ol,readOnly:true}),tenant_id:a.string().optional().meta({...b,...al,readOnly:true}),environment_id:a.string().optional().meta({...b,...al,readOnly:true}),plans:a.array(wV).meta({...b,...ke}),addons:a.array(EV).optional().meta({...b,...Va}),entitlements:a.array(DV).meta({...b,...ke}),entitlement_rules:a.array(FV).meta({...b,...ke}),segments:a.array(TV).meta({...b,...ke}),content_ui_paths:a.array(ZV).meta({...b,...ke}),slot_configs:a.array(NV).optional().meta({...b,...ke,...Tm({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,...ke,...Tm({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,...gV,...Tm({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(LV).optional().meta({...b,...ke}),message_blocks:a.array(KV).optional().meta({...b,...ke}),placement_payloads:a.array(eB).optional().meta({...b,...ke}),placements:a.array(QV).optional().meta({...b,...ke}),content_promotions:a.array(qV).optional().meta({...b,...ke}),personalization_tokens:a.array(HV).optional().meta({...b,...ke}),surface_templates:a.array(BV).optional().meta({...b,...ke}),free_trial_rules:a.array(nB).optional().meta({...b,...Va}),reverse_trial_rules:a.array(rB).optional().meta({...b,...Va}),plan_variations:a.array(RV).optional().meta({...b,...Va}),addon_variations:a.array(CV).optional().meta({...b,...Va}),extension_rules:a.array(tB).optional().meta({...b,...ke}),seat_types:a.array(jV).optional().meta({...b,...ke}),enforcement_defaults:a.array(OV).optional().meta({...b,...ke}),placement_settings:a.array(zV).optional().meta({...b,...ke}),segment_dimensions:a.array(UV).optional().meta({...b,...ke}),meter_bindings:a.array(AV).optional().meta({...b,...ke})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke,...Tm({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),oB=a.object({artifact_type:a.literal("playbook").meta({...b,...Ci,readOnly:true}),format_version:a.literal(bV).meta({...b,...Ci,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({...b,...Ci}),playbook_version_id:a.string().nullable().default(null).meta({...b,...ol,readOnly:true}),tenant_id:a.string().min(1).meta({...b,...al,readOnly:true}),environment_id:a.string().min(1).meta({...b,...al,readOnly:true}),project_id:a.string().min(1).optional().meta({...b,...al,readOnly:true}),exported_at:a.string().datetime().optional().meta({...b,...ol,readOnly:true}),schema_version:a.string().min(1).optional().meta({...b,...Ci,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({...b,...Ci,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ol}),aB={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},sB=iB.omit(aB).extend({experiments:a.array(a.unknown()).max(0).optional().meta({...b,...ji}),signal_catalog:a.object({}).strict().optional().meta({...b,...ji})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke});oB.extend(sB.shape).meta({id:"Playbook","x-revturbine-schema-persistence":ge,"x-revturbine-schema-exposure":Ee,...ke});({"/api/seat-type-anchors":{get:y({operationId:"listSeatTypeAnchors",requestParams:{query:W},summary:"List seat type anchors (identity registry)",tags:["config"],responses:{200:{description:"Seat type anchor list",content:{"application/json":{schema:J(_V)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:y({operationId:"listSeatTypes",requestParams:{query:W},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:J(Wc)}}}},"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:gn(Wc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Wc}}}},"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:Wc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Wc}}}},"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:W},summary:"List personalization token anchors (identity registry)",tags:["config"],responses:{200:{description:"Personalization token anchor list",content:{"application/json":{schema:J(vV)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:y({operationId:"listPersonalizationTokens",requestParams:{query:W},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:J(Xc)}}}},"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:gn(Xc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Xc}}}},"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:Xc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Xc}}}},"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:hn(dx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:dx}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:y({operationId:"listMeteringConfigs",requestParams:{query:W},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:J(Yc)}}}},"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:gn(Yc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Yc}}}},"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:Yc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Yc}}}},"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:W},summary:"List usage enforcement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Usage enforcement setting anchor list",content:{"application/json":{schema:J(xV)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:W},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:J(Qc)}}}},"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:gn(Qc)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Qc}}}},"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:Qc.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Qc}}}},"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:W},summary:"List placement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Placement setting anchor list",content:{"application/json":{schema:J(kV)}}},default:{description:"Error response",content:{"application/json":{schema:xe}}}},"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:hn(mx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:mx}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});var {Unrestricted:Qr}=Vt,{Persisted:tj}=Nt,{Internal:nj}=Lt,cB=a.enum(["create","update","delete","archive","restore","reorder","duplicate","sync","publish"]).meta({id:"ChangeLogAction","x-revturbine-schema-persistence":tj,"x-revturbine-schema-exposure":nj}),_C=Q.merge(oe).merge(se).extend({action:cB.meta(Qr),resource_type:a.string().min(1).max(100).meta(Qr),resource_id:a.string().min(1).meta(Qr),resource_name:a.string().max(200).optional().meta(Qr),actor_id:a.string().min(1).meta(Qr),actor_email:a.string().email().optional().meta(Qr),diff:a.object({before:a.record(a.string(),a.unknown()).optional(),after:a.record(a.string(),a.unknown()).optional()}).optional().meta(Qr),summary:a.string().max(1e3).optional().meta(Qr),metadata:wt.meta(Qr)}).meta({id:"ChangeLogEntry","x-revturbine-schema-persistence":tj,"x-revturbine-schema-exposure":nj});({"/api/changelog":{get:y({operationId:"listChangeLogEntries",requestParams:{query:W},summary:"List change log entries",tags:["changelog"],responses:{200:{description:"Change log entries",content:{"application/json":{schema:J(_C)}}}},"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:_C}}}},"x-revturbine-operation":{exposure:"internal",resource:"changelog",persistence:{table:"changeLogEntries",mode:"get"}}})}});var {Unrestricted:Em}=Vt,{Persisted:lB,Transient:uB}=Nt,{Internal:rj}=Lt,dB=a.enum(["active","suspended","archived"]).meta({id:"TenantStatus","x-revturbine-schema-persistence":uB,"x-revturbine-schema-exposure":rj}),Ri=Q.merge(oe).extend({name:jt.meta(Em),handle:Ye.meta(Em),status:dB.default("active").meta(Em),metadata:wt.meta(Em)}).meta({id:"Tenant","x-revturbine-schema-persistence":lB,"x-revturbine-schema-exposure":rj});({"/api/tenants":{get:y({operationId:"listTenants",requestParams:{query:W},summary:"List tenants",tags:["tenants"],responses:{200:{description:"Tenant list",content:{"application/json":{schema:J(Ri)}}}},"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:Ri}}}},"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:Ri.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ri}}}},"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:Ri}}}},"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:Ri}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"update"}}})}});var {Unrestricted:dr}=Vt,{Persisted:mB,Transient:ij}=Nt,{Internal:Cx}=Lt,pB=a.enum(["active","archived","locked"]).meta({id:"EnvironmentStatus","x-revturbine-schema-persistence":ij,"x-revturbine-schema-exposure":Cx}),za=Q.merge(oe).merge(se).extend({name:jt.meta(dr),handle:Ye.meta(dr),description:go.meta(dr),is_production:a.boolean().default(false).meta({...dr,readOnly:true}),status:pB.default("active").meta(dr),cloned_from_environment_id:a.string().nullable().default(null).meta({...dr,readOnly:true}),cloned_at:St.meta({...dr,readOnly:true}),cloned_at_sequence:a.number().int().min(0).nullable().default(null).meta({...dr,readOnly:true}),requires_approval:a.boolean().default(false).meta(dr),auto_deploy_on_approval:a.boolean().default(false).meta(dr),created_by:a.string().optional().meta(dr),metadata:wt.meta(dr)}).meta({id:"Environment","x-revturbine-schema-persistence":mB,"x-revturbine-schema-exposure":Cx}),fB=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":ij,"x-revturbine-schema-exposure":Cx});({"/api/environments":{get:y({operationId:"listEnvironments",requestParams:{query:W},summary:"List environments",tags:["environments"],responses:{200:{description:"Environment list",content:{"application/json":{schema:J(za)}}}},"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:za}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:za}}}},"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:za.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:za}}}},"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:za}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:fB}}},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:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"promote"}}})}});var {Unrestricted:de,Pii:cl}=Vt,{Transient:Lr,Persisted:gB}=Nt,{External:Sr}=Lt,hB=a.enum(["milestone_version","milestone_order"]).meta({id:"SupersessionReason","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr});a.object({superseded_output_id:a.string().min(1).meta(de),superseded_by:a.string().min(1).meta(de),reason:hB.meta(de)}).meta({id:"SupersessionRecord","x-revturbine-schema-persistence":gB,"x-revturbine-schema-exposure":Sr,"x-revturbine-data-classification":"operational"});var bB=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementStatus","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr}),oj=a.object({output_id:a.string().meta(de),category:a.string().meta(de),surface:a.object({template:a.string().optional().meta(de),type:zm.meta(de),slot_id:a.string().optional().meta(de)}).meta(de),content:a.record(a.string(),a.unknown()).meta(de),promotion:a.record(a.string(),a.unknown()).optional().meta(de),cta_path:a.record(a.string(),a.unknown()).optional().meta(de),ui_path:a.record(a.string(),a.unknown()).optional().meta(de),rule_id:a.string().meta(de),decision_id:a.string().meta(de),config_version:a.string().meta(de),present_upsell:a.boolean().meta(de)}).meta({id:"PlacementDecisionOutput","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr}),_B=a.object({status:bB.meta(de),allowed:a.boolean().meta(de),reason:a.string().optional().meta(de),current_tier:a.string().optional().meta(de),limit:a.number().optional().meta(de),used:a.number().optional().meta(de),remaining:a.number().optional().meta(de),placement:oj.optional().meta(de)}).meta({id:"EntitlementCheckResult","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr});a.object({id:a.string().meta(de),name:a.string().optional().meta(de),discount:a.string().optional().meta(de),type:a.string().optional().meta(de),status:a.string().optional().meta(de)}).meta({id:"RuntimePromotionSnapshot","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr});var vB=a.object({id:a.string().meta(cl),anonymous_id:a.string().optional().meta(de),traits:a.record(a.string(),a.unknown()).optional().meta(cl)}).meta({id:"ServerEvaluationPayloadUser","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr}),yB=a.object({slot_id:a.string().optional().meta(de),entitlement_handle:a.string().optional().meta(de),plan_handle:a.string().optional().meta(de),placement_handle:a.string().optional().meta(de),visible:a.boolean().meta(de),output:oj.optional().meta(de),reason_codes:a.array(a.string()).optional().meta(de)}).meta({id:"ServerEvaluationPayloadDecisionsItem","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr}),xB=_B,IB=yx.meta({id:"ServerEvaluationPayloadTrialStatus","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr}),SB=a.object({segments:a.array(a.string()).optional().meta(de),traits:a.record(a.string(),a.unknown()).optional().meta(cl),usage_balances:a.record(a.string(),a.number()).optional().meta(de)}).meta({id:"ServerEvaluationPayloadUserContext","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr});a.object({version:a.literal("1.0.0").meta(de),request_id:a.string().meta(de),tenant_id:a.string().meta(de),evaluated_at:a.string().datetime().meta(de),ttl_seconds:a.number().int().min(0).max(86400).meta(de),user:vB.meta(cl),decisions:a.array(yB).meta(de),entitlements:a.record(a.string(),xB).optional().meta(de),theme:a.record(a.string(),a.unknown()).optional().meta(de),trial_status:IB.optional().meta(de),user_context:SB.optional().meta(cl)}).meta({id:"ServerEvaluationPayload","x-revturbine-schema-persistence":Lr,"x-revturbine-schema-exposure":Sr});var {Unrestricted:Be}=Vt,{Persisted:PB,Transient:Nm}=Nt,{Internal:vl}=Lt,kB=a.enum(["draft","awaiting_approval","approved","deploying","deployed","rejected","archived"]).meta({id:"PlaybookVersionStatus","x-revturbine-schema-persistence":Nm,"x-revturbine-schema-exposure":vl}),el=Q.merge(oe).merge(se).extend({environment_id:a.string().min(1).meta(Be),name:jt.meta(Be),description:a.string().max(2e3).optional().meta(Be),status:kB.default("draft").meta(Be),labels:a.array(a.string()).default([]).meta(Be),created_by:a.string().min(1).meta(Be),submitted_by:a.string().nullable().default(null).meta({...Be,readOnly:true}),reviewed_by:a.string().nullable().default(null).meta({...Be,readOnly:true}),deployed_by:a.string().nullable().default(null).meta({...Be,readOnly:true}),submitted_at:St.meta({...Be,readOnly:true}),reviewed_at:St.meta({...Be,readOnly:true}),deployed_at:St.meta({...Be,readOnly:true}),base_snapshot_sequence:a.number().int().min(0).default(0).meta({...Be,readOnly:true}),entry_count:a.number().int().min(0).default(0).meta({...Be,readOnly:true}),conflict_count:a.number().int().min(0).default(0).meta({...Be,readOnly:true}),rollback_of_playbook_version_id:a.string().nullable().default(null).meta(Be),cherry_picked_from_playbook_version_id:a.string().nullable().default(null).meta(Be),review_notes:a.string().max(2e3).optional().meta(Be),rejection_reason:a.string().max(2e3).optional().meta(Be),snapshot:a.record(a.string(),a.unknown()).nullable().default(null).meta({...Be,readOnly:true}),bundle:a.string().nullable().default(null).meta({...Be,readOnly:true}),metadata:wt.meta(Be)}).meta({id:"PlaybookVersion","x-revturbine-schema-persistence":PB,"x-revturbine-schema-exposure":vl}),aj=a.object({handle:a.string().meta(Be),resource_type:a.string().meta(Be),resource_name:a.string().optional().meta(Be),action:a.enum(["create","update","delete"]).meta(Be),has_conflict:a.boolean().meta(Be)}).meta({id:"PlaybookVersionEntrySummary","x-revturbine-schema-persistence":Nm,"x-revturbine-schema-exposure":vl}),$B=a.object({playbook_version_id:a.string().meta(Be),entries:a.array(aj).meta(Be),total_entries:a.number().int().min(0).meta(Be),total_conflicts:a.number().int().min(0).meta(Be),deployable:a.boolean().meta(Be)}).meta({id:"PlaybookVersionDiff","x-revturbine-schema-persistence":Nm,"x-revturbine-schema-exposure":vl}),TB=a.object({playbook_version_id:a.string().meta(Be),deployed_count:a.number().int().min(0).meta(Be),superseded_count:a.number().int().min(0).meta(Be),skipped_conflicts:a.number().int().min(0).meta(Be),deployed_at:a.string().datetime().meta(Be)}).meta({id:"PlaybookVersionDeployResult","x-revturbine-schema-persistence":Nm,"x-revturbine-schema-exposure":vl});({"/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:el}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:el}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:el}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:TB}}},default:{description:"Error (conflicts exist)",content:{"application/json":{schema:xe}}}},"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:el}}}},"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:$B}}}},"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:W},summary:"List entries with sequence conflicts (base_sequence \u2260 current)",tags:["playbook-versions"],responses:{200:{description:"Conflict list",content:{"application/json":{schema:J(aj)}}}},"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:el}}},default:{description:"Error",content:{"application/json":{schema:xe}}}},"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:xe}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})}});var {Unrestricted:Fe,Pii:wB}=Vt,{Persisted:Pr}=Nt,{Internal:kr}=Lt,EB=a.enum(["active","revoked","rotating"]).meta({id:"ApiKeyStatus","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),Rm=Q.merge(oe).merge(se).extend({name:jt.meta(Fe),key_hash:a.string().min(1).meta({...wB,readOnly:true}),key_prefix:a.string().min(1).max(20).meta({...Fe,readOnly:true}),key_last4:a.string().length(4).meta({...Fe,readOnly:true}),status:EB.default("active").meta(Fe),last_used_at:St.meta({...Fe,readOnly:true}),expires_at:St.meta(Fe)}).meta({id:"ApiKey","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),RB=a.enum(["boolean","string","number","json"]).meta({id:"FlagValueType","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),po=Q.merge(oe).merge(se).extend({key:a.string().min(1).max(100).meta(Fe),value_type:RB.default("boolean").meta(Fe),value:a.string().max(4e3).default("false").meta(Fe),description:go.meta(Fe),enabled:a.boolean().default(true).meta(Fe)}).meta({id:"FeatureFlag","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),px=Q.merge(oe).merge(se).extend({workspace_name:a.string().min(1).max(200).meta(Fe),support_email:a.string().email().nullable().default(null).meta(Fe),timezone:a.string().max(50).default("UTC").meta(Fe),default_currency:a.string().length(3).default("USD").meta(Fe),logo_url:a.string().url().nullable().default(null).meta(Fe)}).meta({id:"TenantConfig","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),fx=Q.merge(oe).merge(se).extend({server_url:a.string().url().max(500).meta(Fe),api_token_hint:a.string().max(50).nullable().default(null).meta(Fe),allow_write_actions:a.boolean().default(false).meta(Fe),enabled_tools:a.array(a.string().max(100)).default([]).meta(Fe),enabled:a.boolean().default(false).meta(Fe)}).meta({id:"McpConfig","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),Cm=Q.merge(oe).merge(se).extend({step_key:a.string().min(1).max(100).meta(Fe),label:a.string().min(1).max(200).meta(Fe),done:a.boolean().default(false).meta(Fe),completed_at:St.meta({...Fe,readOnly:true})}).meta({id:"OnboardingChecklist","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),CB=a.enum(["user","agent","system","webhook"]).meta({id:"AuditActorType","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),jB=Q.merge(se).extend({environment_id:a.string().min(1).default("production").meta(Fe),actor_type:CB.meta(Fe),actor_id:a.string().nullable().default(null).meta(Fe),action:a.string().min(1).max(120).meta(Fe),object_type:a.string().max(120).nullable().default(null).meta(Fe),object_id:a.string().max(200).nullable().default(null).meta(Fe),payload:a.record(a.string(),a.unknown()).nullable().default(null).meta(Fe),occurred_at:a.string().datetime().meta({...Fe,readOnly:true})}).meta({id:"AuditEvent","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),OB=a.enum(["user_id","account_id","email"]).meta({id:"PlacementTestUserIdentifierType","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr}),jm=Q.merge(oe).merge(se).merge(nt).merge(at).extend({handle:Ye.meta({...Fe,readOnly:true}),identifier:a.string().min(1).max(200).meta(Fe),identifier_type:OB.default("user_id").meta(Fe),note:a.string().max(500).nullable().default(null).meta(Fe),added_by:a.string().meta(Fe)}).meta({id:"PlacementTestUser","x-revturbine-schema-persistence":Pr,"x-revturbine-schema-exposure":kr,...Qn()});({"/api/settings/api-keys":{get:y({operationId:"listApiKeys",requestParams:{query:W},summary:"List API keys for the tenant",tags:["settings"],responses:{200:{description:"API keys",content:{"application/json":{schema:J(Rm)}}}},"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:gn(Rm)}}},responses:{201:{description:"API key created",content:{"application/json":{schema:Rm}}}},"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:Rm}}}},"x-revturbine-operation":{exposure:"internal",resource:"api-keys",persistence:{table:"apiKeys",mode:"delete"}}})},"/api/flags":{get:y({operationId:"listFeatureFlags",requestParams:{query:W},summary:"List feature flags for the tenant",tags:["settings"],responses:{200:{description:"Feature flags",content:{"application/json":{schema:J(po)}}}},"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:gn(po)}}},responses:{201:{description:"Feature flag created",content:{"application/json":{schema:po}}}},"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:po}}}},"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:hn(po).partial()}}},responses:{200:{description:"Feature flag updated",content:{"application/json":{schema:po}}}},"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:po}}}},"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:hn(px).partial()}}},responses:{200:{description:"Tenant config updated",content:{"application/json":{schema:px}}}},"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:hn(fx).partial()}}},responses:{200:{description:"MCP config updated",content:{"application/json":{schema:fx}}}},"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:W},summary:"List onboarding checklist steps",tags:["settings"],responses:{200:{description:"Onboarding steps",content:{"application/json":{schema:J(Cm)}}}},"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:Cm}}}},"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:hn(Cm).partial()}}},responses:{200:{description:"Onboarding step updated",content:{"application/json":{schema:Cm}}}},"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:W},summary:"List audit events for the tenant",tags:["settings"],responses:{200:{description:"Audit events",content:{"application/json":{schema:J(jB)}}}},"x-revturbine-operation":{exposure:"internal",resource:"audit-events",persistence:{table:"auditEvents",mode:"list"}}})},"/api/config/placement-test-users":{get:y({operationId:"listPlacementTestUsers",requestParams:{query:W},summary:"List placement test users for the tenant",tags:["settings"],responses:{200:{description:"Placement test users",content:{"application/json":{schema:J(jm)}}}},"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:gn(jm)}}},responses:{201:{description:"Placement test user created",content:{"application/json":{schema:jm}}}},"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:jm}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-test-users",persistence:{table:"placementTestUsers",mode:"delete"}}})}});var {Unrestricted:Y,Pii:Sn}=Vt,{Persisted:zn,Transient:jx}=Nt,{Internal:mn}=Lt,zB=a.enum(["user","admin"]).meta({id:"UserRole","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.merge(oe).extend({name:jt.meta(Y),email:a.string().email().meta(Sn),email_verified:a.boolean().default(false).meta(Y),image:a.string().url().nullable().default(null).meta(Sn),role:zB.default("user").meta(Y),banned:a.boolean().default(false).meta({...Y,readOnly:true}),ban_reason:a.string().nullable().default(null).meta({...Y,readOnly:true}),ban_expires:St.meta({...Y,readOnly:true}),two_factor_enabled:a.boolean().default(false).meta({...Y,readOnly:true})}).meta({id:"AuthUser","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.merge(oe).extend({expires_at:a.string().datetime().meta(Y),token:a.string().min(1).meta({...Sn,readOnly:true}),ip_address:a.string().nullable().default(null).meta(Sn),user_agent:a.string().nullable().default(null).meta(Sn),user_id:a.string().min(1).meta({...Y,readOnly:true}),active_organization_id:a.string().nullable().default(null).meta(Y),impersonated_by:a.string().nullable().default(null).meta({...Y,readOnly:true})}).meta({id:"AuthSession","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.merge(oe).extend({account_id:a.string().min(1).meta(Y),provider_id:a.string().min(1).meta(Y),user_id:a.string().min(1).meta({...Y,readOnly:true}),access_token:a.string().nullable().default(null).meta({...Sn,readOnly:true}),refresh_token:a.string().nullable().default(null).meta({...Sn,readOnly:true}),id_token:a.string().nullable().default(null).meta({...Sn,readOnly:true}),access_token_expires_at:St.meta({...Y,readOnly:true}),refresh_token_expires_at:St.meta({...Y,readOnly:true}),scope:a.string().nullable().default(null).meta(Y),password:a.string().nullable().default(null).meta({...Sn,readOnly:true})}).meta({id:"AuthAccount","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.merge(oe).extend({identifier:a.string().min(1).meta(Sn),value:a.string().min(1).meta({...Sn,readOnly:true}),expires_at:a.string().datetime().meta(Y)}).meta({id:"AuthVerification","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({secret:a.string().min(1).meta({...Sn,readOnly:true}),backup_codes:a.string().min(1).meta({...Sn,readOnly:true}),user_id:a.string().min(1).meta({...Y,readOnly:true}),verified:a.boolean().default(false).meta({...Y,readOnly:true})}).meta({id:"AuthTwoFactor","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({name:jt.meta(Y),slug:a.string().min(1).max(100).nullable().default(null).meta(Y),logo:a.string().url().nullable().default(null).meta(Y),created_at:a.string().datetime().meta({...Y,readOnly:true}),metadata:a.string().nullable().default(null).meta(Y)}).meta({id:"AuthOrganization","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});var sj=a.enum(["viewer","collaborator","approver","admin"]).meta({id:"Role","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});var cj=a.enum(["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"]).meta({id:"PermissionResource","x-revturbine-schema-persistence":jx,"x-revturbine-schema-exposure":mn}),lj=a.enum(["read","create","update","delete","publish","approve","invite","manage_roles"]).meta({id:"PermissionAction","x-revturbine-schema-persistence":jx,"x-revturbine-schema-exposure":mn});a.object({resource:cj,action:lj}).meta({id:"Permission","x-revturbine-schema-persistence":jx,"x-revturbine-schema-exposure":mn});var UB=["tenant","plans","entitlements","placements","targeting","content","experiments","audit","settings"],AB=["plans","entitlements","placements","targeting","content","experiments"],DB=["plans","entitlements","placements","targeting","content","experiments"],FB=["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"],NB=["read","create","update","delete","publish","approve","invite","manage_roles"];function Lm(e,n){return e.flatMap(r=>n.map(o=>({resource:r,action:o})))}var LB=Lm(UB,["read"]),VB=[...LB,...Lm(AB,["create","update"])];[...VB,...Lm(DB,["publish","approve","delete"])];Lm(FB,NB);var BB=cj.options.flatMap(e=>lj.options.map(n=>`${e}:${n}`));a.enum(BB).meta({id:"McpTokenScope","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({organization_id:a.string().min(1).meta({...Y,readOnly:true}),user_id:a.string().min(1).meta({...Y,readOnly:true}),role:sj.default("viewer").meta(Y),created_at:a.string().datetime().meta({...Y,readOnly:true})}).meta({id:"AuthMember","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});var MB=a.enum(["pending","accepted","rejected","canceled","expired"]).meta({id:"InvitationStatus","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({organization_id:a.string().min(1).meta({...Y,readOnly:true}),email:a.string().email().meta(Sn),role:sj.nullable().default(null).meta(Y),status:MB.default("pending").meta(Y),expires_at:a.string().datetime().meta(Y),created_at:a.string().datetime().meta({...Y,readOnly:true}),inviter_id:a.string().min(1).meta({...Y,readOnly:true})}).meta({id:"AuthInvitation","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({name:a.string().max(200).nullable().default(null).meta(Y),public_key:a.string().min(1).meta({...Sn,readOnly:true}),user_id:a.string().min(1).meta({...Y,readOnly:true}),credential_id:a.string().min(1).meta({...Y,readOnly:true}),counter:a.number().int().default(0).meta({...Y,readOnly:true}),device_type:a.string().min(1).meta(Y),backed_up:a.boolean().default(false).meta(Y),transports:a.string().nullable().default(null).meta(Y),created_at:a.string().datetime().meta({...Y,readOnly:true}),aaguid:a.string().nullable().default(null).meta(Y)}).meta({id:"AuthPasskey","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.merge(oe).extend({config_id:a.string().min(1).meta(Y),name:a.string().max(200).nullable().default(null).meta(Y),start:a.string().nullable().default(null).meta(Y),reference_id:a.string().min(1).meta(Y),prefix:a.string().nullable().default(null).meta(Y),key:a.string().min(1).meta({...Sn,readOnly:true}),refill_interval:a.number().int().nullable().default(null).meta(Y),refill_amount:a.number().int().nullable().default(null).meta(Y),last_refill_at:St.meta({...Y,readOnly:true}),enabled:a.boolean().default(true).meta(Y),rate_limit_enabled:a.boolean().default(false).meta(Y),rate_limit_time_window:a.number().int().nullable().default(null).meta(Y),rate_limit_max:a.number().int().nullable().default(null).meta(Y),request_count:a.number().int().default(0).meta({...Y,readOnly:true}),remaining:a.number().int().nullable().default(null).meta({...Y,readOnly:true}),last_request:St.meta({...Y,readOnly:true}),expires_at:St.meta(Y),permissions:a.string().nullable().default(null).meta(Y),metadata:a.string().nullable().default(null).meta(Y)}).meta({id:"AuthApiKey","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});Q.extend({issuer:a.string().min(1).meta(Y),oidc_config:a.string().nullable().default(null).meta(Y),saml_config:a.string().nullable().default(null).meta(Y),user_id:a.string().min(1).meta({...Y,readOnly:true}),provider_id:a.string().min(1).meta(Y),organization_id:a.string().nullable().default(null).meta(Y),domain:a.string().min(1).meta(Y)}).meta({id:"AuthSsoProvider","x-revturbine-schema-persistence":zn,"x-revturbine-schema-exposure":mn});var uj="0.2.39";var er=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 Xa(e){return e?{id:e.id??er.id,name:e.name??er.name,version:e.version??er.version,colors:{...er.colors,...e.colors},typography:{...er.typography,...e.typography},shape:{...er.shape,...e.shape},shadows:{...er.shadows,...e.shadows}}:{...er}}var KB=createContext(er);function pn(){return useContext(KB)}var WB={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 24px",lineHeight:"1.5",zIndex:9990,width:"100%",boxSizing:"border-box"},XB={display:"flex",flexDirection:"column",gap:"2px",flex:1},YB={display:"flex",alignItems:"center",gap:"8px",marginLeft:"16px",flexShrink:0};function zx({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=pn(),[c,u]=useState(false),[d,m]=useState(o);o&&!d&&u(false),o!==d&&m(o);let p=e.position||"top",g=e.dismissible!==false,f=useCallback(()=>{u(true),r();},[r]),v=useMemo(()=>{let{colors:$,typography:S,shape:R}=s;return {banner:{...WB,backgroundColor:$.primary,color:$.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:$.primaryText,color:$.primary,border:"none",borderRadius:R.borderRadiusSmall,fontWeight:600,fontSize:S.fontSizeSmall,cursor:"pointer",whiteSpace:"nowrap"},dismiss:{padding:"4px 8px",background:"transparent",border:"none",color:$.primaryText,fontSize:"18px",cursor:"pointer",opacity:.7,lineHeight:1}}},[s,p]);return !o||c?null:jsxs("div",{className:t,style:{...v.banner,...i},role:"banner","data-rt-placement":"banner",children:[jsxs("div",{style:XB,children:[e.header&&jsx("div",{style:v.header,children:e.header}),(e.body||e.message)&&jsx("div",{style:v.body,children:e.body||e.message})]}),jsxs("div",{style:YB,children:[e.cta_label&&jsx("button",{type:"button",style:v.cta,onClick:n,children:e.cta_label}),g&&jsx("button",{type:"button",style:v.dismiss,onClick:f,"aria-label":"Dismiss",children:"\xD7"})]})]})}zx.displayName="BannerSlot";var tM={position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999},nM={width:"100%",maxHeight:"200px",objectFit:"cover",marginBottom:"16px"},rM={display:"flex",gap:"12px",justifyContent:"flex-end"};function Ax({content:e,onCtaClick:n,onSecondaryCtaClick:r,onDismiss:o,visible:t,className:i,style:s}){let c=pn(),u=useRef(null),d=e.style||"optional",[m,p]=useState(false),g=useRef(t);useEffect(()=>{t&&!g.current&&p(false),g.current=t;},[t]);let f=useCallback(()=>{p(true),o();},[o]),v=useCallback(R=>{d==="optional"&&R.target===R.currentTarget&&f();},[d,f]),$=useCallback(R=>{R.key==="Escape"&&d==="optional"&&f();},[d,f]);useEffect(()=>{if(t)return document.addEventListener("keydown",$),u.current?.focus(),()=>document.removeEventListener("keydown",$)},[t,$]);let S=useMemo(()=>{let{colors:R,typography:E,shape:A,shadows:w}=c;return {overlay:{...tM,backgroundColor:R.overlay,fontFamily:E.fontFamily},dialog:{position:"relative",maxWidth:"480px",width:"90%",backgroundColor:R.background,borderRadius:A.borderRadiusLarge,boxShadow:w.large,padding:"32px",boxSizing:"border-box"},close:{position:"absolute",top:"12px",right:"12px",background:"transparent",border:"none",fontSize:"20px",color:R.textMuted,cursor:"pointer",padding:"4px 8px",lineHeight:1},image:{...nM,borderRadius:A.borderRadius},header:{fontSize:E.fontSizeHeader,fontWeight:700,color:R.text,marginBottom:"8px",lineHeight:1.3},body:{fontSize:"15px",color:R.textSecondary,lineHeight:1.6,marginBottom:"24px"},primaryBtn:{padding:"10px 24px",backgroundColor:R.primary,color:R.primaryText,border:"none",borderRadius:A.borderRadius,fontWeight:600,fontSize:E.fontSize,cursor:"pointer"},secondaryBtn:{padding:"10px 24px",backgroundColor:"transparent",color:R.textSecondary,border:`1px solid ${R.surfaceBorder}`,borderRadius:A.borderRadius,fontWeight:500,fontSize:E.fontSize,cursor:"pointer"}}},[c]);return !t||m?null:jsx("div",{style:S.overlay,onClick:v,role:"dialog","aria-modal":"true","aria-label":typeof e.header=="string"?e.header:"Placement","data-rt-placement":"modal",children:jsxs("div",{ref:u,className:i,style:{...S.dialog,...s},tabIndex:-1,children:[d==="optional"&&jsx("button",{type:"button",style:S.close,onClick:f,"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:rM,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})]})]})})}Ax.displayName="ModalSlot";var oM={width:"100%",maxHeight:"180px",objectFit:"cover",marginBottom:"12px"};function Dx({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=pn(),s=useMemo(()=>{let{colors:c,typography:u,shape:d}=i;return {container:{backgroundColor:c.surface,border:`1px solid ${c.surfaceBorder}`,borderRadius:d.borderRadius,padding:"20px",fontFamily:u.fontFamily,boxSizing:"border-box"},header:{fontSize:"16px",fontWeight:600,color:c.text,marginBottom:"6px",lineHeight:1.4},body:{fontSize:u.fontSize,color:c.textSecondary,lineHeight:1.6,marginBottom:"16px"},image:{...oM,borderRadius:d.borderRadiusSmall},cta:{padding:"8px 20px",backgroundColor:c.primary,color:c.primaryText,border:"none",borderRadius:d.borderRadiusSmall,fontWeight:600,fontSize:u.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}Dx.displayName="InlineEmbedSlot";function yl(e){return jsx(Dx,{...e})}yl.displayName="InPageSlot";var hj={"top-right":{top:"16px",right:"16px"},"bottom-right":{bottom:"16px",right:"16px"},"bottom-center":{bottom:"16px",left:"50%",transform:"translateX(-50%)"}},dM={position:"absolute",zIndex:9995,maxWidth:"380px",width:"90%",lineHeight:1.5,display:"flex",alignItems:"center",gap:"12px",boxSizing:"border-box"},mM={flex:1};function Nx({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=pn(),[c,u]=useState(o),[d,m]=useState(o);o&&!d&&u(true),o!==d&&m(o);let p=e.position||"bottom-right",g=typeof e.duration=="number"?e.duration:5,f=useCallback(()=>{u(false),r();},[r]);useEffect(()=>{if(!c||g<=0)return;let S=setTimeout(()=>{f();},g*1e3);return ()=>clearTimeout(S)},[c,g,f]);let v=useMemo(()=>{let{colors:S,typography:R,shape:E,shadows:A}=s;return {container:{...dM,backgroundColor:S.toastBackground,color:S.toastText,borderRadius:E.borderRadius,boxShadow:A.medium,padding:"14px 18px",fontFamily:R.fontFamily,fontSize:R.fontSize},cta:{color:S.info,background:"transparent",border:"none",fontWeight:600,fontSize:R.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 $=hj[p]??hj["bottom-right"];return jsxs("div",{className:t,style:{...v.container,...$,...i},role:"status","aria-live":"polite","data-rt-placement":"toast",children:[jsx("div",{style:mM,children:e.message||e.body||e.header}),e.cta_label&&jsx("button",{type:"button",style:v.cta,onClick:n,children:e.cta_label}),jsx("button",{type:"button",style:v.close,onClick:f,"aria-label":"Close",children:"\xD7"})]})}Nx.displayName="ToastSlot";function Lx({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=pn();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},u={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=u[s]??u.primary;return jsx("button",{type:"button",className:o,style:{...d,...t},onClick:n,"data-rt-placement":"button",children:e.cta_label||"Upgrade"})}Lx.displayName="ButtonSlot";function Zx(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 bj(e,n){return e>=90?n.colors.danger:e>=70?n.colors.warning:n.colors.primary}function gM({content:e,theme:n}){let r=Zx(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:bj(r,n)}})})]})}function hM({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 $r=80,Bx=8,Mx=($r-Bx)/2,Vx=2*Math.PI*Mx;function bM({content:e,theme:n}){let r=Zx(e),o=e.usage_current??r,t=e.usage_limit??100,i=Vx-r/100*Vx,s=bj(r,n);return jsxs("div",{style:{display:"flex",alignItems:"center",gap:"16px",marginBottom:"12px"},children:[jsxs("svg",{width:$r,height:$r,style:{flexShrink:0},children:[jsx("circle",{cx:$r/2,cy:$r/2,r:Mx,fill:"none",stroke:n.colors.track,strokeWidth:Bx}),jsx("circle",{cx:$r/2,cy:$r/2,r:Mx,fill:"none",stroke:s,strokeWidth:Bx,strokeLinecap:"round",strokeDasharray:Vx,strokeDashoffset:i,transform:`rotate(-90 ${$r/2} ${$r/2})`,style:{transition:"stroke-dashoffset 0.3s ease"}}),jsxs("text",{x:$r/2,y:$r/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 Mm({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=pn();if(!r)return null;let s=e.display_style||"progress_bar",c=typeof e.show_at=="number"?e.show_at:0,u=Zx(e);if(c>0&&u<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(hM,{content:e,theme:i}):s==="circular_gauge"?jsx(bM,{content:e,theme:i}):jsx(gM,{content:e,theme:i}),e.cta_label&&jsx("button",{type:"button",style:m,onClick:n,children:e.cta_label})]})}Mm.displayName="QuotaMeterSlot";var _M={maxWidth:"800px",margin:"0 auto",padding:"40px 24px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},vM={fontSize:"28px",fontWeight:700,color:"#111827",textAlign:"center",marginBottom:"12px",lineHeight:1.3},yM={fontSize:"16px",color:"#4b5563",textAlign:"center",lineHeight:1.6,marginBottom:"32px",maxWidth:"600px",marginLeft:"auto",marginRight:"auto"},xM={display:"flex",justifyContent:"center",gap:"16px"},IM={padding:"12px 32px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"8px",fontWeight:600,fontSize:"16px",cursor:"pointer"},SM={padding:"12px 32px",backgroundColor:"transparent",color:"#4b5563",border:"1px solid #d1d5db",borderRadius:"8px",fontWeight:500,fontSize:"16px",cursor:"pointer"};function qm({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){return o?jsxs("div",{className:t,style:{..._M,...i},"data-rt-placement":"full-page",children:[e.header&&jsx("h1",{style:vM,children:e.header}),e.body&&jsx("p",{style:yM,children:e.body}),jsxs("div",{style:xM,children:[e.cta_label&&jsx("button",{type:"button",style:IM,onClick:n,children:e.cta_label}),e.secondary_cta_label&&r&&jsx("button",{type:"button",style:SM,onClick:r,children:e.secondary_cta_label})]})]}):null}qm.displayName="FullPageSlot";var PM={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"},kM={whiteSpace:"pre-wrap",marginBottom:"12px"},$M={display:"flex",gap:"16px"},yj={color:"#569cd6",background:"transparent",border:"none",cursor:"pointer",fontFamily:"inherit",fontSize:"inherit",padding:0,textDecoration:"underline"};function Hx({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(u=>typeof u=="string"):[];return jsxs("div",{className:o,style:{...PM,...t},"data-rt-placement":"cli",children:[i&&jsx("div",{style:kM,children:i}),(c.length>0||e.cta_label)&&jsxs("div",{style:$M,children:[e.cta_label&&jsx("button",{type:"button",style:yj,onClick:n,children:e.cta_label}),c.map(u=>jsx("button",{type:"button",style:yj,onClick:n,children:u},u))]})]})}Hx.displayName="CliSlot";var TM={backgroundColor:"#ffffff",border:"1px solid #e2e8f0",borderRadius:"8px",padding:"16px 20px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},wM={display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:"4px"},EM={fontSize:"13px",color:"#6b7280"},RM={fontSize:"28px",fontWeight:700,color:"#111827"},CM={fontSize:"12px",color:"#9ca3af",marginBottom:"12px"},jM={width:"100%",height:"6px",backgroundColor:"#e5e7eb",borderRadius:"3px",overflow:"hidden",marginBottom:"12px"},OM={height:"100%",borderRadius:"3px",transition:"width 0.3s ease"},zM={display:"flex",gap:"8px"},UM={padding:"6px 16px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"6px",fontWeight:600,fontSize:"13px",cursor:"pointer"};function AM(e,n){if(n<=0)return "#1e40af";let r=e/n*100;return r<=10?"#dc2626":r<=25?"#f59e0b":"#1e40af"}function Kx({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,u=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:{...TM,...t},"data-rt-placement":"credit-balance",children:[jsxs("div",{style:wM,children:[jsx("span",{style:EM,children:typeof e.header=="string"?e.header:"Credits Remaining"}),jsx("span",{style:RM,children:String(i)})]}),u&&typeof e.burn_rate_label=="string"&&jsx("div",{style:CM,children:e.burn_rate_label}),(d==="balance_bar"||d==="balance_burn_rate")&&s>0&&jsx("div",{style:jM,children:jsx("div",{style:{...OM,width:`${Math.min(100,m)}%`,backgroundColor:AM(i,s)}})}),jsx("div",{style:zM,children:e.cta_label&&jsx("button",{type:"button",style:UM,onClick:n,children:e.cta_label})})]})}Kx.displayName="CreditBalanceSlot";var FM={position:"absolute",top:"16px",right:"16px"};function NM(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 Jx({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=pn(),[c,u]=useState(false),[d,m]=useState(null),p=e.anchor_selector||void 0,g=e.position||"top",f=typeof e.anchor_gap=="number"?e.anchor_gap:10,v=useCallback(()=>{if(!p||typeof window>"u"){m(null);return}let E=window.document.querySelector(p);if(!E){m(null);return}let A=E.getBoundingClientRect();m({top:A.top,left:A.left,width:A.width,height:A.height});},[p]);useEffect(()=>{o&&u(false);},[o]),useEffect(()=>{if(!o||(v(),typeof window>"u"))return;let E=()=>v();return window.addEventListener("resize",E),window.addEventListener("scroll",E,true),()=>{window.removeEventListener("resize",E),window.removeEventListener("scroll",E,true);}},[o,v]);let $=useCallback(()=>{u(true),r();},[r]),S=useMemo(()=>{let{colors:E,typography:A,shape:w,shadows:T}=s;return {container:{zIndex:9996,maxWidth:"320px",width:"max-content",lineHeight:1.45,display:"flex",flexDirection:"column",gap:"10px",boxSizing:"border-box",backgroundColor:E.toastBackground,color:E.toastText,borderRadius:w.borderRadius,boxShadow:T.medium,padding:"12px 14px",fontFamily:A.fontFamily,fontSize:A.fontSizeSmall},body:{margin:0},actions:{display:"flex",alignItems:"center",gap:"10px"},cta:{color:E.info,background:"transparent",border:"none",fontWeight:600,fontSize:A.fontSizeSmall,cursor:"pointer",textDecoration:"underline",padding:0},close:{marginLeft:"auto",background:"transparent",border:"none",color:E.textMuted,fontSize:"14px",cursor:"pointer",lineHeight:1,padding:"2px 4px"}}},[s]);if(!o||c)return null;let R=d?NM(d,g,f):FM;return jsxs("div",{className:t,style:{...S.container,...R,...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:$,"aria-label":"Close tooltip",children:"\xD7"})]})]})}Jx.displayName="TooltipSlot";function VM(e){return e==="connected"?"#22c55e":e==="pending"?"#f59e0b":"#ef4444"}function BM(e){return e==="connected"?"Connected":e==="pending"?"Pending":"Disconnected"}function Xx({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=pn(),s=e.connection_state||"disconnected",c=useMemo(()=>{let{colors:u,typography:d,shape:m,shadows:p}=i;return {card:{backgroundColor:u.surface,border:`1px solid ${u.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:u.text,fontSize:"15px",fontWeight:600},body:{margin:0,color:u.textSecondary,fontSize:d.fontSizeSmall,lineHeight:1.45},badge:{display:"inline-flex",alignItems:"center",gap:"6px",borderRadius:"999px",border:`1px solid ${u.surfaceBorder}`,padding:"3px 8px",fontSize:"12px",color:u.textSecondary},dot:{width:"8px",height:"8px",borderRadius:"50%",backgroundColor:VM(s)},cta:{alignSelf:"flex-start",backgroundColor:u.primary,color:u.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}),BM(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}Xx.displayName="AgentConnectorSlot";var Il=(e,n="")=>e==null||e===""?n:String(e);function ZM(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 Yx={fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.05em",color:"#94a3b8"};function Qx({content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:o,accentText:t}){let i=ZM(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 eI(){let e=pn();return useMemo(()=>({accent:e.colors.primary,accentText:e.colors.primaryText}),[e])}function tI({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=eI();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:{...Yx,margin:0},children:"Email preview"}),jsx("p",{style:{margin:"2px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Il(e.subject,"(no subject)")})]}),jsxs("div",{style:{padding:"8px 12px",fontSize:"12px",color:"#475569",whiteSpace:"pre-wrap"},children:[Il(e.body,"(empty body)"),jsx(Qx,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]})]}):null}tI.displayName="EmailPreviewSlot";function nI({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=eI();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:{...Yx,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:Il(e.body??e.message,"(empty message)")}),jsx(Qx,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}nI.displayName="SmsPreviewSlot";function rI({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=eI();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:{...Yx,margin:0},children:"Push preview"}),jsx("p",{style:{margin:"4px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Il(e.header??e.title,"(no title)")}),jsx("p",{style:{margin:0,fontSize:"12px",color:"#475569"},children:Il(e.body,"(empty body)")}),jsx(Qx,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}rI.displayName="PushPreviewSlot";function Sl(e){e.register({id:"banner",label:"Banner",description:"Full-width banner placement at the top or bottom of the page.",surfaceType:"banner",component:zx,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:Ax}),e.register({id:"in_page",label:"Inline Embed",description:"Content card or message embedded in the page flow.",surfaceType:"in_page",component:yl}),e.register({id:"plans_cta",label:"Plans CTA",description:"Pricing page CTA-focused module with concise upgrade actions.",surfaceType:"in_page",component:yl,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:qm,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:yl,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:Jx,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:Nx,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:Lx,defaultProps:{content:{style:"primary"}}}),e.register({id:"full_page",label:"Full Page",description:"Dedicated managed page (e.g. plans & pricing).",surfaceType:"full_page",component:qm}),e.register({id:"quota_meter",label:"Quota Meter",description:"Visual usage meter with upgrade CTA. Triggers at configurable threshold.",surfaceType:"in_page",component:Mm,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:Mm,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:Hx}),e.register({id:"email",label:"Email Preview",description:"Static email channel preview (subject + body + CTAs).",surfaceType:"email",component:tI}),e.register({id:"sms",label:"SMS Preview",description:"Static SMS channel preview (message bubble + CTAs).",surfaceType:"sms",component:nI}),e.register({id:"push",label:"Push Preview",description:"Static push-notification channel preview (title + body + CTAs).",surfaceType:"push",component:rI}),e.register({id:"agent_connector",label:"Agent Connector",description:"Agent-surface placement for assistant/connector experiences.",surfaceType:"agent",component:Xx,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:Kx,accepts:n=>n.surface.type==="in_page"&&(n.surface.template==="credit_balance_counter"||n.surface.template==="credit_balance")});}var qM=new Set(["type","plan_handle","promotion_id","placement_handle","url","tour_id"]),Ya=class{constructor(){C(this,"types",new Map);C(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 Tj(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 u=o(n[`${c}_usage_current`]),d=o(n[`${c}_usage_limit`]);if(!(u===void 0||d===void 0))return Math.max(0,d-u)};return e.replace(/\{\{(\w+)\}\}/g,(i,s)=>{let c=r[s]??s,u=n[c];if(u!=null)return String(u);let d=t(c);return d!=null?String(d):`{{${s}}}`})}function HM(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=Tj(t,n):r[o]=t;return r}function KM(e){let n=typeof e.type=="string"&&e.type.length>0?e.type:"dismiss",r={};for(let[o,t]of Object.entries(e))qM.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 GM(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 Pl=null;function JM(){return Pl||(Pl=new Ya,Sl(Pl)),Pl}function WM(){Pl=null;}var kl={recommended_plan_handle:"",recommended_plan_name:""};function wj(e){let{strategy:n,planOverride:r,currentPlanHandle:o,plans:t}=e;if(t.length===0)return kl;if(n==="custom"){let c=r??"";if(c===""||c===o)return kl;let u=t.find(d=>d.unique_handle===c);return u?{recommended_plan_handle:u.unique_handle,recommended_plan_name:u.name}:kl}if(o==="")return kl;let i=ag(o,t);if(i===null)return kl;let s=t.find(c=>c.unique_handle===i);return {recommended_plan_handle:i,recommended_plan_name:s?.name??i}}var iI="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Gm=iI.length,XM=Gm-1,YM=10,Km=16;function QM(e){let n=e,r="";for(let o=0;o<YM;o+=1){let t=n%Gm;r=iI[t]+r,n=Math.floor(n/Gm);}return r}function Ej(){let e=new Uint8Array(Km);crypto.getRandomValues(e);let n=new Array(Km);for(let r=0;r<Km;r+=1)n[r]=e[r]%Gm;return n}function e3(e){for(let n=e.length-1;n>=0;n-=1){if(e[n]<XM)return e[n]+=1,true;e[n]=0;}return false}function Rj(){let e=-1,n=[];return {next(r=Date.now()){r<=e&&n.length===Km?e3(n)||(e+=1,n=Ej()):(e=r,n=Ej());let o=QM(e);for(let t=0;t<n.length;t+=1)o+=iI[n[t]];return o}}}var oI=Rj();var t3=new Set([408,429,500,502,503,504]);function n3(e){return new Promise(n=>setTimeout(n,e))}async function aI(e,n={}){let r=n.retries??2,o=n.baseDelayMs??200,t=n.sleep??n3,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(!t3.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 sI(){return {created:0,dropped:0,redacted:0,sampled:0,deduped:0,queued:0,sent:0,failed:0}}function Cj(){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 u=new Map,m={io:new IntersectionObserver(p=>{let g=n.get(s);if(g)for(let f of p){let v=u.get(f.target);!v||v.fired||(f.isIntersecting?v.minVisibleMs<=0?r(g,f.target,v,"viewport"):v.timer===null&&(v.timer=setTimeout(()=>r(g,f.target,v,"viewport"),v.minVisibleMs)):v.timer!==null&&(clearTimeout(v.timer),v.timer=null));}},{threshold:t,rootMargin:i}),tracked:u};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,u=i.rootMargin??"0px",d=o(c,u),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 cI=Cj();var Aj=new Set(zm.options);function Bee(e,n){return Xm(n,"defineUiPathResolvers(resolvers)")}function Xm(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}function Ym(e){return e?.playbook??e?.exportedConfig}function Mee(e){return {...e,runtimeMode:"revturbine_server"}}function Zee(e){return {...e,runtimeMode:"custom_endpoints",endpointOverrides:e.endpointOverrides}}function r3(e){let n=Xm(e.uiPathResolvers,"createLocalRuntimeConfig(uiPathResolvers)");return {...e,runtimeMode:"local_only",localRuntime:e.localRuntime,uiPathResolvers:n}}function qee(e){return r3(e)}function Hee(e,n,r={}){return {slotId:e,surfaceType:n,entitlementHandle:r.entitlementHandle,planHandle:r.planHandle,placementHandle:r.placementHandle}}function Kee(e,n={}){return {entitlementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,planHandle:n.planHandle,placementHandle:n.placementHandle}}function Gee(e,n={}){return {placementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,entitlementHandle:n.entitlementHandle,planHandle:n.planHandle}}function Ai(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function Jee(e,n,r,o={}){return {userId:e,placementId:n,interactionType:r,treatmentId:o.treatmentId,interactionAt:o.interactionAt,metadata:o.metadata}}function Wee(e,n,r){return {eventType:e,payload:n,options:r}}var jj="revturbine:sdk-route-change",lI="sdk_validation_warning",i3="revturbine:decision-cache",o3="revturbine:interaction-state",a3="revturbine:presentation-caps",s3="/api/track",c3="/api/sdk/meta",l3="/api/events/interactions",u3="/api/placements/interactions",d3="revturbine-web-sdk",Oj="user_context_observed",m3=20,p3=5e3;function f3(e,n){let r=e[n];if(typeof r=="string"&&r.trim().length>0)return r;let o=Dj(e);if(o){let t=o[n];if(typeof t=="string"&&t.trim().length>0)return t}return null}function Dj(e){return X(e.payload)?e.payload:null}var g3=["surface_slot_id","placement_id","payload_id","experiment_id","variant_key"];function h3(e){let n={};for(let r of g3)n[r]=f3(e,r);return n}function b3(e){return tg(e,gI(8))}async function zj(e){let n=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return dm(new Uint8Array(n))}function gI(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()}-${gI(16)}`}function Jm(){return Ta()?{}:{url:window.location.href,title:document.title,referrer:document.referrer||void 0}}function Uj(){return {id:void 0,custom:{},entitlements:{},usage:{},personalization:{}}}function _3(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 Iy(e,r)}function v3(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 dI=class{constructor(n){C(this,"exportedConfig");this.exportedConfig=n;}getExportedConfig(){return this.exportedConfig}},mI=class{constructor(n,r,o){C(this,"cached");C(this,"resolver");C(this,"legacyTargetDefaults");this.resolver=n,this.cached=o,this.legacyTargetDefaults=r;}getExportedConfig(){return this.cached}async refresh(){let n=si(await this.resolver(),"localRuntime.resolvers.resolveExportedConfig()",this.legacyTargetDefaults);return n&&(this.cached=n),this.cached}},pI=class{constructor(n,r){C(this,"source");C(this,"legacyTargetDefaults");this.source=n,this.legacyTargetDefaults=r;}getExportedConfig(){return si(this.source.getExportedConfig(),"configProvider.getExportedConfig()",this.legacyTargetDefaults)}async refresh(){let n=await this.source.refresh?.();return si(n??this.source.getExportedConfig(),"configProvider.refresh()",this.legacyTargetDefaults)}},fI=class{constructor(n){C(this,"tenantId");C(this,"apiKey");C(this,"ingestPublicKey");C(this,"environmentId");C(this,"analyticsEnabled");C(this,"anonymousTelemetryEnabled");C(this,"telemetryConsent");C(this,"telemetryCounters",sI());C(this,"maxBatchSize");C(this,"flushIntervalMs");C(this,"flushTimer");C(this,"batchingTeardown",[]);C(this,"anonTelemetryNoticeShown",false);C(this,"piiRedactionWarned",false);C(this,"endpoint");C(this,"runtimeMode");C(this,"endpointOverrides");C(this,"localRuntime");C(this,"localStorageKey");C(this,"mode");C(this,"policy");C(this,"extensionEnabled");C(this,"placementBehavior");C(this,"providerFailureSlotBehavior");C(this,"uiPathResolvers");C(this,"persistentStore");C(this,"sessionStore");C(this,"anonymousId");C(this,"sessionId");C(this,"decisionCache",new Map);C(this,"interactionState",new Map);C(this,"interactionQueue",[]);C(this,"defaultDecisionTtlMs",6e4);C(this,"defaultDismissCooldownMs",1440*60*1e3);C(this,"defaultRemindLaterMs",3600*1e3);C(this,"defaultUsageWarningPercent",80);C(this,"defaultTrialExpiringDays",3);C(this,"events",[]);C(this,"placements",new Map);C(this,"syncedSurfaceSlotIds",new Set);C(this,"userContext");C(this,"pageContext");C(this,"usageBalances",{});C(this,"localDecisionsByPlacementId",new Map);C(this,"localPlacementsByLookupKey",new Map);C(this,"localEntitlementsByHandle",new Map);C(this,"localUserContextsByUserId",new Map);C(this,"localTrialStatus",{in_trial:false});C(this,"presentationCapsByKey",new Map);C(this,"usageLimitByEntitlement",new Map);C(this,"usageTokenPrefixByEntitlement",new Map);C(this,"segmentIdsByPredicateField",new Map);C(this,"configuredSegmentsById",new Map);C(this,"dirtySegmentIds",new Set);C(this,"segmentMembershipBySegmentId",new Map);C(this,"segmentMembershipUserId");C(this,"lastTrialTriggerStage","none");C(this,"configProvider");C(this,"branding");C(this,"apiBranding");C(this,"defaultLocalPlacementDecisionResolver");C(this,"sdkDisabledByProviderFailure",false);C(this,"sdkDisabledReason");C(this,"providerRegistry");C(this,"placementTypeRegistry");C(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??m3),this.flushIntervalMs=Math.max(0,n.eventBatching?.flushIntervalMs??p3),this.endpoint=n.endpoint.replace(/\/$/,""),this.runtimeMode=n.runtimeMode??"revturbine_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=Xm(n.uiPathResolvers,"RevTurbineInitOptions.uiPathResolvers"),this.persistentStore=Ti(n.persistentStorage),this.sessionStore=tx(n.sessionStorage),this.userContext={usage:{},...this.policy.inferUser?Uj():{},...n.user||{}},this.pageContext={...this.policy.inferPage?Jm():{},...n.page||{},tags:qs(n.page?.tags)},this.anonymousId=this.resolveAnonymousId(),this.sessionId=en(),this.providerRegistry=new Gc,this.placementTypeRegistry=new Ya,this.impressionHistory=new Jy({store:new $m({storage:this.persistentStore,tenantId:this.tenantId}),userId:this.userContext.id??this.anonymousId}),Sl(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(),jn()&&this.policy.routerAutoTrack&&this.installRouteTracking(),jn()&&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==="local_only"}resolveConfigProvider(n){let r={tenantId:n.tenantId,environmentId:n.environmentId??"default"};if(n.configProvider)return new pI(n.configProvider,r);let o=si(Ym(n.localRuntime),"localRuntime.playbook",r),t=n.localRuntime?.resolvers?.resolveExportedConfig;if(t)return new mI(t,r,o);if(o)return new dI(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 da({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 u={};if(r&&typeof r=="object"){let m=Hr(r);for(let[p,g]of Object.entries(r)){if(!g||typeof g!="object")continue;let f=typeof g.amount=="number"?g.amount:m[p]??0,v=typeof g.limit=="number"?g.limit:0,$=v>0?Math.max(0,v-f):0;u[p]={used:f,limit:v,remaining:$,unit:typeof g.unit=="string"?g.unit:void 0,reset_date:typeof g.reset_date=="string"?g.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(u).length>0||c?{entitlements:{entries:{},usage:u,...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 gm(n,r,o)}buildTargetingState(n){return hm(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,u=new Set([...Object.keys(i.segmentTraits),...Object.keys(s.segmentTraits)]);for(let d of u)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 jn()?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:Ai(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 Py(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 og(n,r.planHandle)}applyCategoryConflictSuppression(n){return pm(n)}resolveLocalPlacementFromCandidates(n,r){return $y(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=ig(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 `${i3}:${this.tenantId}:${this.anonymousId}`}interactionStateStorageKey(){return `${o3}:${this.tenantId}:${this.anonymousId}`}presentationCapsStorageKey(){return `${a3}:${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=X(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=>X(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(!X(s))continue;let c=typeof s.entitlement_id=="string"?s.entitlement_id:typeof s.entitlementId=="string"?s.entitlementId:"";if(!c)continue;let u=X(s.type_fields)?s.type_fields:X(s.typeFields)?s.typeFields:{},d=typeof u.kind=="string"?u.kind:"";if(!(d==="usage_limit"||d==="credits"||d==="seat"))continue;let p=o.get(c)??"",g=typeof u.usage_unit=="string"?u.usage_unit:typeof u.usageUnit=="string"?u.usageUnit:"",f=sg(g),v=f&&!cg(f)?f:Co(p||c);v&&(this.usageTokenPrefixByEntitlement.set(c,v),p&&this.usageTokenPrefixByEntitlement.set(p,v));let $=Number(u.limit_value??u.allowance??u.limit);if(!Number.isFinite($)||$<=0||!this.ruleTargetsActivePlan(s,r))continue;let S=Number(s.warning_threshold_percent??s.warning_percentage??u.warning_threshold_percent??u.warning_percentage),R=Number.isFinite(S)&&S>0?Math.min(100,S):this.defaultUsageWarningPercent;this.usageLimitByEntitlement.set(c,{limit:$,warningPercent:R}),p&&this.usageLimitByEntitlement.set(p,{limit:$,warningPercent:R});}}recalculateDerivedUsageTraits(){let n=this.getConfiguredExportedConfig();this.hydrateUsageLimitRulesFromExportedConfig();let r=Ry({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 wj({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=eo(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={...Hr(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)??Co(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 Xy({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:u,effectivePlanHandle:d}=this.resolveReverseTrialGrants(o);return Ec({handle:n,context:r,currentPlanHandle:i,segmentIds:c,usageBalances:this.usageBalances,userUsage:this.userContext.usage,exportedConfig:o,...u!==void 0?{trialGrantedEntitlementHandles:u}:{},...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=eo(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(g=>(g.predicates??[]).map(f=>f.field)))).sort((g,f)=>g.localeCompare(f)),u={...r?.traits??{},...this.userContext.custom??{}};for(let[g,f]of Object.entries(this.userContext.entitlements??{}))u[g]===void 0&&(u[g]=f);t&&u.plan_name===void 0&&(u.plan_name=t),i&&u.plan===void 0&&(u.plan=i);let d={...r?.usage??{},...Hr(this.userContext.usage),...this.usageBalances};for(let[g,f]of Object.entries(d))u[g]===void 0&&(u[g]=f);let m={};for(let[g,f]of Object.entries(u))(typeof f=="string"||typeof f=="number"||typeof f=="boolean")&&(m[g]=f);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 g of this.dirtySegmentIds){let f=this.configuredSegmentsById.get(g)??s.find($=>$.handle===g);if(!f){this.segmentMembershipBySegmentId.delete(g);continue}let v=Rc([f],m).length>0;this.segmentMembershipBySegmentId.set(g,v);}this.dirtySegmentIds.clear();}let p=s.length>0?s.filter(g=>this.segmentMembershipBySegmentId.get(g.handle)===true).map(g=>g.handle):[...r?.segmentIds??[]];return {userId:n,segmentIds:p,traits:u,...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),u=o.configuredSegments.map(ae=>{let pe=Array.isArray(ae.predicates)?ae.predicates.map(ce=>_3(ce,o.traits)):[],et=pe.length>0?pe.every(ce=>ce.matched):c.has(ae.handle);return {segmentId:ae.handle,...ae.name?{segmentName:ae.name}:{},matched:et,predicates:pe}}),d=new Map,m=new Map;if(Array.isArray(s?.entitlements))for(let ae of s.entitlements){let pe=At(ae.unique_handle),et=pe;et&&pe&&d.set(et,pe);let ce=At(ae.type);et&&ce&&m.set(et,ce);}let p=new Map;if(Array.isArray(s?.plans))for(let ae of s.plans){let pe=At(ae.unique_handle),et=pe;et&&pe&&p.set(et,pe);}let f=(At(o.plan,o.traits.plan,o.traits.plan_handle,o.traits.plan_id)??"").toLowerCase(),v=new Map;if(Array.isArray(s?.segments))for(let ae of s.segments){let pe=At(ae.handle),et=At(ae.dimension_id);pe&&et&&v.set(pe,et);}let $=Array.isArray(s?.entitlement_rules)?s.entitlement_rules.map((ae,pe)=>{let et=At(ae.id)??`entitlement_rule_${pe}`,ce=At(ae.entitlement_id),vt=ce?d.get(ce):void 0,it=Array.isArray(ae.targets)?ae.targets.filter(te=>te.kind==="plan").map(te=>te.id):[],be=it.map(te=>p.get(te)??te),cn=Array.isArray(ae.segment_ids)?ae.segment_ids.filter(te=>typeof te=="string"):[],$t=X(ae.type_fields)?ae.type_fields:{},rn=At($t.kind),De=!f||it.some(te=>te.toLowerCase()===f),lt=v3(cn,c,v),or=De&&lt,qt=vt?t[vt]:ce?t[ce]:void 0,on=or?qt?.status??"unknown":"unknown",Xe;if(or)switch(rn){case "feature":Xe=$t.enabled===false?"disables feature":"grants access";break;case "capability_tier":{let te=At($t.tier_name);Xe=te?`unlocks ${te} tier`:"unlocks capability tier";break}case "usage_limit":{let te=typeof $t.limit_value=="number"?$t.limit_value:void 0,Tt=At($t.unit)??"",ln=At($t.period)??"",Eo=ln?` / ${ln.replace("per_","")}`:"";Xe=te!=null?`sets limit to ${te.toLocaleString()}${Tt?` ${Tt}`:""}${Eo}`:"sets usage limit";break}case "credits":{let te=typeof $t.allowance=="number"?$t.allowance:void 0,Tt=At($t.unit)??"credits",ln=At($t.period)??"",Eo=ln?` / ${ln.replace("per_","")}`:"";Xe=te!=null?`grants ${te.toLocaleString()} ${Tt}${Eo}`:"grants credit allowance";break}case "seat":{let te=typeof $t.included_seats=="number"?$t.included_seats:void 0;Xe=te!=null?`includes ${te} seat${te===1?"":"s"}`:"includes seats";break}default:if(ce){let te=m.get(ce);te==="feature"?Xe="grants access":te&&(Xe=`${te.replace(/_/g," ")} entitlement`);}break}return {ruleId:et,...ce?{entitlementId:ce}:{},...vt?{entitlementHandle:vt}:{},...rn?{kind:rn}:{},planScopes:be,planIds:it,...cn.length>0?{segmentIds:cn}:{},matchesPlan:De,matchesSegment:lt,matched:or,outcome:on,...Xe?{outcomeDescription:Xe}:{},...qt?.reason?{reason:qt.reason}:{}}}):[],S=At(r.output?.output_id),R=this.placements.get(n.placementId),E=At(R?.name)??"",A=Array.isArray(R?.metadata?.surface_template_ids)?R.metadata.surface_template_ids:[],w=[],T=new Set;if(Array.isArray(s?.placements))for(let ae of s.placements){if(!ae||typeof ae!="object")continue;let pe=At(ae.id)??"",et=At(ae.name)??"";if(T.has(pe))continue;let ce=At(r.output?.rule_id);if(ce&&pe===ce){T.add(pe),w.push(ae);continue}if(E&&(pe===E||et===E||pe===`pl_${E}`||et===`pl_${E}`)){T.add(pe),w.push(ae);continue}A.length>0&&(ae.payloads??[]).some(be=>(be.surfaces??[]).some($t=>{let rn=At($t.template_id);return rn?A.includes(rn):false}))&&(T.add(pe),w.push(ae));}let ee=w.flatMap(ae=>(ae.payloads??[]).map(et=>{let ce=et.target,vt=ce?.plan_ids??[],it=vt.map(qt=>p.get(qt)??qt),be=ce?.segment_chips??[],$t=(et.surfaces??[]).map(qt=>At(qt.template_id)).filter(qt=>typeof qt=="string"),rn=vt.length===0||!f||vt.some(qt=>qt.toLowerCase()===f),De=be.length===0||be.some(qt=>c.has(qt)),lt="active",or=lt==="active"&&rn&&De;return {payloadId:String(et.id??""),placementId:String(ae.id??""),placementName:String(ae.name??""),status:lt,planIds:vt,planScopes:it,segmentChips:be,surfaceTemplateIds:$t,matchesPlan:rn,matchesSegment:De,eligible:or,selected:!!S&&S===String(et.id??"")}})),Ne=r.output?this.extractPlacementCapPolicies(r.output).flatMap(ae=>ae.rules.length===0&&ae.cooldownMs===void 0?[]:ae.rules.length===0?[{count:0,period:"session",cooldownMs:ae.cooldownMs}]:ae.rules.map(pe=>({count:pe.count,period:pe.period,...ae.cooldownMs!==void 0?{cooldownMs:ae.cooldownMs}:{}}))):[],Le={ruleId:r.output?.rule_id,decisionId:r.output?.decision_id,category:r.output?.category,suppressionReason:r.suppressionReason,reasonCodes:r.reasonCodes,capPolicies:Ne};return {generatedAt:new Date().toISOString(),input:n,decision:r,targeting:o,policy:i,entitlements:t,segments:u,entitlementRules:$,eligiblePayloads:ee,placementRules:Le}}usageThresholdForEntitlement(n){return yy(n,this.usageLimitByEntitlement,this.localEntitlementsByHandle,this.usageBalances,this.defaultUsageWarningPercent)}evaluateUsageThresholdCrossings(n,r){return Cy(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 jy(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(Ta())return;let n=window.history;if(n.__rtPatched)return;let r=()=>{window.dispatchEvent(new CustomEvent(jj,{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(jj,i=>{let s=i.detail;this.onRouteChange({path:s.path,title:s.title,tags:s.tags});}),n.__rtPatched=true;}mergeUserContext(n){return Ey(this.userContext,n)}mergePageContext(n){return {...this.pageContext,...n,tags:qs(n.tags||this.pageContext.tags)}}collectPageContextIssues(){let n=[],r={...this.policy.inferPage?Jm():{},...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(!X(n))return r.push({code:"invalid_event_payload",reason:"Event payload must be a plain object."}),r;let o=Dj(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(lI,{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:X(o)?o:null})}toEventEnvelope(n,r){let o={...this.policy.inferPage?Jm():{},...this.pageContext},t=o.url||(jn()?window.location.href:""),i=(()=>{try{return new URL(t).pathname}catch{return jn()?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||(jn()?document.title:""),event_time:new Date().toISOString(),anonymous_id:this.anonymousId,user_id:this.userContext.id||null,session_id:this.sessionId,tags:qs(o.tags),identity:{tenant_id:this.tenantId,user_id:this.userContext.id||null,anonymous_id:this.anonymousId,traits:n===Oj?{}:{...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()&&jn()}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 zj(i)).slice(0,64),u={events:[{event_type:n,occurred_at:new Date().toISOString(),request_id:en(),config_hash_id:s,sdk_version:uj,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",c3),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(u),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(m=>{let p=aC(m);return r+=p.redactions,p.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=o.map(m=>{let p=m.user_id||m.anonymous_id,g=Qy(this.userContext.account_id||p),f=Yy({level:m.level,message:m.message,path:m.path,url:m.url,page_title:m.page_title,session_id:m.session_id,anonymous_id:m.anonymous_id,tags:m.tags,traits:m.identity.traits??null,payload:m.properties,source:d3});return r+=f.redactions+(g.redacted?1:0),{environment_id:this.environmentId,user_id:p,account_id:g.value,event_name:Su(m.type).slice(0,120),event_ts:m.event_time,properties:JSON.stringify(f.value),...h3(m.properties),event_id:oI.next(),request_id:en(),tenant_id:m.tenant_id}});r>0&&this.warnPiiRedactedOnce();let c=this.endpointFor("ingestEvents",s3),u={method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.ingestPublicKey??this.apiKey}`,"x-request-id":i},body:JSON.stringify({events:s}),keepalive:true};(await aI(()=>fetch(c,u))).delivered?this.telemetryCounters.sent+=s.length:this.telemetryCounters.failed+=s.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=Su(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}=ex(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(!jn()||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=X(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||[]),u=Array.from(c).filter(m=>!s.has(m)),d=Array.from(s).filter(m=>!c.has(m));for(let m of u)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},g=this.evaluateUsageThresholdCrossings(m,p);await Promise.all(g);}}emitObservedContextFields(n){let r=Object.keys(n??{}).filter(o=>o.length>0).sort();r.length!==0&&this.capture(Oj,{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(Jm());}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=X(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:Ai(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 Sy({tenantId:this.tenantId,placementName:n.placementName,placementScopeKey:n.placementScopeKey,pageRoute:n.normalizedPageRoute||this.currentPathname()},{sha256Base64Url:zj,randomHex:gI})}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:X(n.metadata)?n.metadata:void 0})}async upsertSurfaceSlot(n){if(this.isLocalOnlyMode())return;let r=en(),o=this.endpointFor("surfaceSlots","/api/placements").replace(/\/+$/,""),t=b3(n.placementScopeKey||n.id||n.name),i={...X(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},u=await fetch(`${o}/${encodeURIComponent(n.id)}`,{method:"PUT",headers:c,body:JSON.stringify(s)});if(u.ok){this.syncedSurfaceSlotIds.add(n.id);return}if(u.status!==404)throw new Error(`surface_slot_upsert_failed:${u.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=Ro(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&&!X(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:{...X(n.metadata)?n.metadata:{},surface_slot_id:o||null,...Array.isArray(n.surfaceTemplateIds)&&n.surfaceTemplateIds.length>0?{surface_template_ids:n.surfaceTemplateIds}:{}}},u=this.placements.get(s),d=u?this.stableStringify(u):null,m=this.stableStringify(c);return (!u||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=>x3(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 ci(n)}decisionCacheKey(n,r){return ky({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 XR({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 YR(n)}placementCapKey(n){return [this.tenantId,this.userContext.id||this.anonymousId,n.surface.type,n.output_id].join(":")}extractPlacementCapPolicies(n){return fm(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=wy(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 Ty(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:Ai("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:Ai(`${r.name} suppressed`,"Suppressed due to recent interaction state.","Continue")};let s,c,u;this.isLocalOnlyMode()&&(s=await this.localRuntime?.getContext?.(),c=this.providerRegistry.size>0?await this.providerRegistry.resolveAll():this.synthesizeProviderContext(),(s||c)&&(u=this.stableStringify({legacyCtx:s??{},providerCtx:c??{}})));let d=this.decisionCacheKey(n,u),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 f={...s,...c?{__providers:c}:{}},v=this.gateDecisionByCaps(await p(n,r,f));return this.localDecisionsByPlacementId.set(n.placementId,v),this.writeDecisionCache(d,v,n.ttlMs),this.persistLocalRuntimeState(),v}let g=this.localDecisionsByPlacementId.get(n.placementId);if(g){let f=this.gateDecisionByCaps({...g,decisionSource:"fallback"});return this.writeDecisionCache(d,f,n.ttlMs),this.persistLocalRuntimeState(),f}}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(v=>({entitlement_id:v.entitlementId,meter_id:v.meterId,used:v.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 g=await p.json(),f=this.gateDecisionByCaps(this.normalizeDecisionFromResponse(n.placementId,o,r.name,g));return this.writeDecisionCache(d,f,n.ttlMs),this.localDecisionsByPlacementId.set(n.placementId,f),this.persistLocalRuntimeState(),f}catch{let p=await this.getPlacementContent(n.placementId,{user_id:n.userId,context_mode:n.contextMode??"auto",overrides:n.overrides,traits:n.traits}),g={placementId:n.placementId,requestId:p.requestId,visible:true,decisionSource:"fallback",reasonCodes:["fallback_content"],content:p.content};return this.writeDecisionCache(d,g,n.ttlMs),this.localDecisionsByPlacementId.set(n.placementId,g),this.persistLocalRuntimeState(),g}}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(u=>({entitlement_id:u.entitlementId,meter_id:u.meterId,used:u.used}))}:void 0,traits:o.traits,placements:o.placementIds.map(u=>({placement_id:u}))})});if(!i.ok)throw new Error(`bootstrap-context failed: ${i.status}`);let s=await i.json(),c=X(s)&&Array.isArray(s.decisions)?s.decisions:[];for(let u of c){if(!X(u))continue;let d=typeof u.placement_id=="string"?u.placement_id:"",m=X(u.result)?u.result:null,p=this.placements.get(d);if(!p||!m)continue;let g=this.normalizeDecisionFromResponse(d,t,p.name,m),f=this.decisionCacheKey({placementId:d,userId:o.userId,contextMode:o.contextMode,overrides:o.overrides,traits:o.traits});this.writeDecisionCache(f,g,o.ttlMs),this.localDecisionsByPlacementId.set(d,g);}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",l3),{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",u3),{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 s=Number(i.suppress_duration_ms);this.impressionHistory.recordSuppression(o,t,void 0,i,Number.isFinite(s)&&s>0?s:void 0);}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,metadata:r.metadata??{}},{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:Ai(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:Ai("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:Ai(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:Ai(`${o.name} treatment`,"Fallback treatment active while decision endpoint is unavailable.","Continue")}}}normalizePlacementOutput(n){let r=Tc(n,en);return r&&X(n)&&typeof n.decision_id!="string"&&this.capture(lI,{reason:"placement response missing decision_id; generated synthetic",output_id:r.output_id,synthetic_decision_id:r.decision_id}),r}normalizeEntitlementResult(n){return vy(n,en)}validateTrialStatusShape(n){return pg(n)}async getPlacement(n){if(this.isDisabledByProviderFailure())return this.disabledPlacementOutputForConfig(n);let r=n.slotId,o=n.surfaceType;if(o&&!Aj.has(o))return this.capture(lI,{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 u=await i(n);return u&&this.applyPlacementCapsIfNeeded(u).allowed?u: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 u=await i(n,r);return this.localEntitlementsByHandle.set(n,u),this.persistLocalRuntimeState(),u}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:X(t.traits)?t.traits:{},plan:typeof t.plan=="string"?t.plan:void 0,usage:X(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}=Iu({...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:X(r)&&Array.isArray(r.content_ui_paths)?r.content_ui_paths:[],t=n.includeProviderHandlers??true,i=Xm(n.resolvers,"validateUiPathResolvers(options.resolvers)"),s={...this.uiPathResolvers,...i};if(t&&this.providerRegistry.has("cta"))try{let m=await this.providerRegistry.resolveAll();X(m.cta)&&X(m.cta.handlers)&&Object.assign(s,m.cta.handlers);}catch{}let c=[],u=0;for(let m of o){let p=X(m)?m:{},g=typeof p.action_type=="string"?p.action_type.trim():"";if(!g){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[g]=="function"){u+=1;continue}c.push({actionType:g,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:u,issues:c};if(!d.valid&&n.throwOnMissing){let m=d.issues.filter(g=>g.reason==="missing_resolver").map(g=>g.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=X(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=(X(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,...Hr(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?Uj():{},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:`${jn()?window.location.origin:""}${n.path}`,title:n.title,tags:n.tags}),this.capture("page_view",{source:"router_auto_track",path:n.path});}};function hI(e){let n=y3(e),r=new fI(n);if(!n.provider)return r;let o=(m,p)=>{try{return typeof m=="function"?m(n):m}catch(g){return console.warn(`[RevTurbine] Provider factory failed at chain index ${p}.`,g),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,g)=>{let f=[];for(let v=0;v<t.length;v+=1){let S=t[v][m];if(S){f.push(v);try{return await S(...p)}catch(R){let E=t.slice(v+1).some(A=>typeof A[m]=="function");console.warn(v===0&&E?`[RevTurbine] Primary provider ${m} failed; trying configured fallbacks.`:`[RevTurbine] Provider ${m} failed at chain index ${v}.`,R);}}}return f.length===0||r.disableForProviderFailure(`provider_${m}_chain_failed`),g()},s=r.getPlacement.bind(r),c=r.checkEntitlement.bind(r),u=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],()=>u(m)),r.identify=(m,p)=>{let g=0;for(let f=0;f<t.length;f+=1){let v=t[f];if(v.identify){g+=1;try{v.identify(m,p);return}catch($){let S=t.slice(f+1).some(R=>typeof R.identify=="function");console.warn(f===0&&S?"[RevTurbine] Primary provider identify failed; trying configured fallbacks.":`[RevTurbine] Provider identify failed at chain index ${f}.`,$);}}}if(g>0){r.disableForProviderFailure("provider_identify_chain_failed"),d(m,p);return}d(m,p);},r}var Wm={tenantId:"local",apiKey:"local-only",endpoint:"https://api.revturbine.local",mode:"react"};function uI(e){return typeof e=="string"&&e.trim().length>0}function y3(e){return Ym(e.localRuntime)!==void 0?{...e,tenantId:uI(e.tenantId)?e.tenantId:Wm.tenantId,apiKey:uI(e.apiKey)?e.apiKey:Wm.apiKey,endpoint:uI(e.endpoint)?e.endpoint:Wm.endpoint,mode:e.mode??Wm.mode,runtimeMode:e.runtimeMode??"local_only"}:e}function x3(e){if(!X(e))return null;let n=(u,d)=>String(u??"").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||!Aj.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:hI});var I3="revturbine:theme";function bI(e){return `${I3}:${e}`}function S3(e,n){try{let r=n.getItem(bI(e));if(!r)return null;let o=JSON.parse(r);return typeof o!="object"||o===null?null:o}catch{return null}}function P3(e,n,r){try{r.setItem(bI(e),JSON.stringify(n));}catch{}}function k3(e,n){let r=n??Ti();try{r.removeItem(bI(e));}catch{}}async function _I(e,n){let{tenantId:r,endpoint:o,apiKey:t}=e,i=e.storage??Ti(),s=S3(r,i),c=Xa(s);return $3(o,r,t).then(u=>{u&&(s?.version&&u.version===s.version||(P3(r,u,i),n?.(Xa(u))));}).catch(()=>{}),c}async function $3(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 Qm=class{constructor(n,r){C(this,"sdk");C(this,"options");C(this,"listeners",new Set);C(this,"_placementId","");C(this,"_decision",null);C(this,"_isLoading",false);C(this,"_error","");C(this,"_impressionTracked",false);C(this,"_loadSeq",0);C(this,"_rendered",false);C(this,"_exposed",false);C(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}}));}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_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;let i=this.exposureMode;return i==="legacy_resolution"?this.fireImpression("legacy_resolution"):i==="viewport"&&!cI.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;!this._placementId||!o||(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: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();}},ep=class{constructor(n,r){C(this,"sdk");C(this,"options");C(this,"listeners",new Set);C(this,"_isLoading",false);C(this,"_error",null);C(this,"_result",null);C(this,"_gatedPlacement",null);C(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();}},tp=class{constructor(n,r){C(this,"sdk");C(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 Qm(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 ep(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 T3(e){let{bootstrapPlacements:n,...r}=e,o=r,t=hI(o),i=o.user;i&&typeof i=="object"&&i.id&&t.identify(i.id,i);let s=er,u=Ym(o.localRuntime)?.theme;if(u&&typeof u=="object"?s=Xa(u):s=await _I({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 g=await t.registerPlacement(p.placement),f=p.userId||d;f&&m.push({placementId:g,userId:f,contextMode:p.contextMode,overrides:p.overrides,traits:p.traits,ttlMs:p.ttlMs});}m.length>0&&await t.bootstrapPlacementDecisions(m);}return new tp(t,s)}var w3=/\{[^{}]+\}/g,E3=()=>typeof process=="object"&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function R3(){return Math.random().toString(36).slice(2,11)}function Vj(e){let{baseUrl:n="",Request:r=globalThis.Request,fetch:o=globalThis.fetch,querySerializer:t,bodySerializer:i,pathSerializer:s,headers:c,requestInitExt:u=void 0,...d}={...e};u=E3()?u:void 0,n=Lj(n);let m=[];async function p(g,f){let{baseUrl:v,fetch:$=o,Request:S=r,headers:R,params:E={},parseAs:A="json",querySerializer:w,bodySerializer:T=i??j3,pathSerializer:ee,body:Ne,middleware:Le=[],...ae}=f||{},pe=n;v&&(pe=Lj(v)??n);let et=typeof t=="function"?t:Fj(t);w&&(et=typeof w=="function"?w:Fj({...typeof t=="object"?t:{},...w}));let ce=ee||s||C3,vt=Ne===void 0?void 0:T(Ne,Nj(c,R,E.header)),it=Nj(vt===void 0||vt instanceof FormData?{}:{"Content-Type":"application/json"},c,R,E.header),be=[...m,...Le],cn={redirect:"follow",...d,...ae,body:vt,headers:it},$t,rn,De=new S(O3(g,{baseUrl:pe,params:E,querySerializer:et,pathSerializer:ce}),cn),lt;for(let on in ae)on in De||(De[on]=ae[on]);if(be.length){$t=R3(),rn=Object.freeze({baseUrl:pe,fetch:$,parseAs:A,querySerializer:et,bodySerializer:T,pathSerializer:ce});for(let on of be)if(on&&typeof on=="object"&&typeof on.onRequest=="function"){let Xe=await on.onRequest({request:De,schemaPath:g,params:E,options:rn,id:$t});if(Xe)if(Xe instanceof S)De=Xe;else if(Xe instanceof Response){lt=Xe;break}else throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}if(!lt){try{lt=await $(De,u);}catch(on){let Xe=on;if(be.length)for(let te=be.length-1;te>=0;te--){let Tt=be[te];if(Tt&&typeof Tt=="object"&&typeof Tt.onError=="function"){let ln=await Tt.onError({request:De,error:Xe,schemaPath:g,params:E,options:rn,id:$t});if(ln){if(ln instanceof Response){Xe=void 0,lt=ln;break}if(ln instanceof Error){Xe=ln;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(Xe)throw Xe}if(be.length)for(let on=be.length-1;on>=0;on--){let Xe=be[on];if(Xe&&typeof Xe=="object"&&typeof Xe.onResponse=="function"){let te=await Xe.onResponse({request:De,response:lt,schemaPath:g,params:E,options:rn,id:$t});if(te){if(!(te instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");lt=te;}}}}let or=lt.headers.get("Content-Length");if(lt.status===204||De.method==="HEAD"||or==="0"&&!lt.headers.get("Transfer-Encoding")?.includes("chunked"))return lt.ok?{data:void 0,response:lt}:{error:void 0,response:lt};if(lt.ok)return {data:await(async()=>{if(A==="stream")return lt.body;if(A==="json"&&!or){let Xe=await lt.text();return Xe?JSON.parse(Xe):void 0}return await lt[A]()})(),response:lt};let qt=await lt.text();try{qt=JSON.parse(qt);}catch{}return {error:qt,response:lt}}return {request(g,f,v){return p(f,{...v,method:g.toUpperCase()})},GET(g,f){return p(g,{...f,method:"GET"})},PUT(g,f){return p(g,{...f,method:"PUT"})},POST(g,f){return p(g,{...f,method:"POST"})},DELETE(g,f){return p(g,{...f,method:"DELETE"})},OPTIONS(g,f){return p(g,{...f,method:"OPTIONS"})},HEAD(g,f){return p(g,{...f,method:"HEAD"})},PATCH(g,f){return p(g,{...f,method:"PATCH"})},TRACE(g,f){return p(g,{...f,method:"TRACE"})},use(...g){for(let f of g)if(f){if(typeof f!="object"||!("onRequest"in f||"onResponse"in f||"onError"in f))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");m.push(f);}},eject(...g){for(let f of g){let v=m.indexOf(f);v!==-1&&m.splice(v,1);}}}}function np(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 Bj(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(np(c,n[s],r));}let i=o.join(t);return r.style==="label"||r.style==="matrix"?`${t}${i}`:i}function Mj(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(np(e,i,r));return r.style==="label"||r.style==="matrix"?`${o}${t.join(o)}`:t.join(o)}function Fj(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(Mj(t,i,{style:"form",explode:true,...e?.array,allowReserved:e?.allowReserved||false}));continue}if(typeof i=="object"){o.push(Bj(t,i,{style:"deepObject",explode:true,...e?.object,allowReserved:e?.allowReserved||false}));continue}o.push(np(t,i,e));}}return o.join("&")}}function C3(e,n){let r=e;for(let o of e.match(w3)??[]){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,Mj(t,c,{style:s,explode:i}));continue}if(typeof c=="object"){r=r.replace(o,Bj(t,c,{style:s,explode:i}));continue}if(s==="matrix"){r=r.replace(o,`;${np(t,c)}`);continue}r=r.replace(o,s==="label"?`.${encodeURIComponent(c)}`:encodeURIComponent(c));}return r}function j3(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 O3(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 Nj(...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 Lj(e){return e.endsWith("/")?e.substring(0,e.length-1):e}function z3(e){let n={...e.headers};return e.tenantId&&(n["x-rt-tenant-id"]=e.tenantId),e.token&&(n.Authorization=`Bearer ${e.token}`),Vj({baseUrl:e.baseUrl,headers:n})}var vI=class extends Error{constructor(r,o){super(o);C(this,"status",r);this.name="ApiError";}};var yI=class extends nC{constructor(r){let{exportedConfig:o,environmentId:t,...i}=r,s=si(o,"BrowserRuntime.exportedConfig",{tenantId:r.tenantId,environmentId:t??"default"});if(!s)throw new Error("BrowserRuntime requires exportedConfig");let c=Ti(r.storage),u=new $m({storage:c,tenantId:r.tenantId,maxRecords:r.maxImpressionRecords});super({...i,exportedConfig:s,storage:c,impressionStore:u});C(this,"_hydratePromise");let d=r.autoHydrate??true;this._hydratePromise=d?this.hydrate():null;}async ready(){this._hydratePromise&&await this._hydratePromise;}};var U3=new Set(["tenant_id","user_id","anonymous_id","session_id","url","path","page_title","event_time"]);function A3(e){let n={};for(let[r,o]of Object.entries(e.properties))n[U3.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 xI=class{constructor(n){C(this,"name");C(this,"handler");C(this,"transform");C(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=A3(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 Zj(e){let n=new xI(e);return {domain:"events",resolve:()=>({consumers:[n]})}}function D3(e){let{posthog:n,filter:r,transform:o,name:t}=e;return Zj({name:t??"posthog",filter:r,transform:o,handler:(i,s)=>{n.capture(i,s);}})}var F3=["banner_placement"],N3=["banner_placement","in_page_card"],L3=["toast_message"],V3=["modal_overlay"];var B3=["banner_placement","in_page_card","usage_counter","button"],M3=["modal_overlay","inline_gate_message"],Z3=["toast_message","modal_overlay","banner_placement"];function $l(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}var rp=class{constructor(n){C(this,"tenantId");C(this,"apiKey");C(this,"endpoint");C(this,"defaultTtlSeconds");C(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=$l(),o=n.anonymousId??$l(),[t,i,s,c,u]=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),u&&(d.theme=u),d}async getPlacement(n,r,o){let t=$l(),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(),u=c.decision,d=u?.visible??!1,m={slot_id:r.slotId,entitlement_handle:r.entitlementHandle,plan_handle:r.planHandle,placement_handle:r.placementHandle,visible:d};return d&&u&&(m.output=u),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=$l(),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=$l();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,u)=>{let d=o[u]??{},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 l={};un(l,{$brand:()=>SI,$input:()=>ZP,$output:()=>MP,NEVER:()=>II,TimePrecision:()=>GP,ZodAny:()=>D0,ZodArray:()=>V0,ZodBase64:()=>Cf,ZodBase64URL:()=>jf,ZodBigInt:()=>Es,ZodBigIntFormat:()=>Uf,ZodBoolean:()=>ws,ZodCIDRv4:()=>Ef,ZodCIDRv6:()=>Rf,ZodCUID:()=>If,ZodCUID2:()=>Sf,ZodCatch:()=>l$,ZodCodec:()=>iu,ZodCustom:()=>ou,ZodCustomStringFormat:()=>$s,ZodDate:()=>Ql,ZodDefault:()=>r$,ZodDiscriminatedUnion:()=>M0,ZodE164:()=>Of,ZodEmail:()=>vf,ZodEmoji:()=>yf,ZodEnum:()=>Ps,ZodError:()=>xH,ZodExactOptional:()=>e$,ZodFile:()=>Y0,ZodFirstPartyTypeKind:()=>I$,ZodFunction:()=>v$,ZodGUID:()=>Gl,ZodIPv4:()=>Tf,ZodIPv6:()=>wf,ZodISODate:()=>pf,ZodISODateTime:()=>mf,ZodISODuration:()=>gf,ZodISOTime:()=>ff,ZodIntersection:()=>Z0,ZodIssueCode:()=>SH,ZodJWT:()=>zf,ZodKSUID:()=>$f,ZodLazy:()=>h$,ZodLiteral:()=>X0,ZodMAC:()=>R0,ZodMap:()=>J0,ZodNaN:()=>d$,ZodNanoID:()=>xf,ZodNever:()=>N0,ZodNonOptional:()=>Vf,ZodNull:()=>U0,ZodNullable:()=>n$,ZodNumber:()=>Ts,ZodNumberFormat:()=>$o,ZodObject:()=>tu,ZodOptional:()=>Lf,ZodPipe:()=>ru,ZodPrefault:()=>o$,ZodPreprocess:()=>m$,ZodPromise:()=>_$,ZodReadonly:()=>p$,ZodRealError:()=>Kn,ZodRecord:()=>Ss,ZodSet:()=>W0,ZodString:()=>ks,ZodStringFormat:()=>gt,ZodSuccess:()=>c$,ZodSymbol:()=>O0,ZodTemplateLiteral:()=>g$,ZodTransform:()=>Q0,ZodTuple:()=>H0,ZodType:()=>$e,ZodULID:()=>Pf,ZodURL:()=>Yl,ZodUUID:()=>Zr,ZodUndefined:()=>z0,ZodUnion:()=>nu,ZodUnknown:()=>F0,ZodVoid:()=>L0,ZodXID:()=>kf,ZodXor:()=>B0,_ZodString:()=>_f,_default:()=>i$,_function:()=>j1,any:()=>l1,array:()=>eu,base64:()=>Hz,base64url:()=>Kz,bigint:()=>i1,boolean:()=>j0,catch:()=>u$,check:()=>O1,cidrv4:()=>Zz,cidrv6:()=>qz,clone:()=>Un,codec:()=>w1,coerce:()=>S$,config:()=>Jt,core:()=>ii,cuid:()=>Az,cuid2:()=>Dz,custom:()=>z1,date:()=>d1,decode:()=>S0,decodeAsync:()=>k0,describe:()=>U1,discriminatedUnion:()=>b1,e164:()=>Gz,email:()=>$z,emoji:()=>zz,encode:()=>I0,encodeAsync:()=>P0,endsWith:()=>ps,enum:()=>Ff,exactOptional:()=>t$,file:()=>P1,flattenError:()=>zl,float32:()=>e1,float64:()=>t1,formatError:()=>Ul,fromJSONSchema:()=>B1,function:()=>j1,getErrorMap:()=>kH,globalRegistry:()=>_n,gt:()=>Br,gte:()=>Dn,guid:()=>Tz,hash:()=>Qz,hex:()=>Yz,hostname:()=>Xz,httpUrl:()=>Oz,includes:()=>ds,instanceof:()=>D1,int:()=>hf,int32:()=>n1,int64:()=>o1,intersection:()=>q0,invertCodec:()=>E1,ipv4:()=>Vz,ipv6:()=>Mz,iso:()=>Is,json:()=>N1,jwt:()=>Jz,keyof:()=>m1,ksuid:()=>Lz,lazy:()=>b$,length:()=>Po,literal:()=>S1,locales:()=>Ml,looseObject:()=>g1,looseRecord:()=>v1,lowercase:()=>ls,lt:()=>Vr,lte:()=>rr,mac:()=>Bz,map:()=>y1,maxLength:()=>So,maxSize:()=>Mi,meta:()=>A1,mime:()=>fs,minLength:()=>ri,minSize:()=>Mr,multipleOf:()=>Bi,nan:()=>T1,nanoid:()=>Uz,nativeEnum:()=>I1,negative:()=>tf,never:()=>Af,nonnegative:()=>rf,nonoptional:()=>s$,nonpositive:()=>nf,normalize:()=>gs,null:()=>A0,nullable:()=>Wl,nullish:()=>k1,number:()=>C0,object:()=>p1,optional:()=>Jl,overwrite:()=>Rr,parse:()=>_0,parseAsync:()=>v0,partialRecord:()=>_1,pipe:()=>bf,positive:()=>ef,prefault:()=>a$,preprocess:()=>L1,prettifyError:()=>AI,promise:()=>C1,property:()=>of,readonly:()=>f$,record:()=>G0,refine:()=>y$,regex:()=>cs,regexes:()=>nr,registry:()=>Op,safeDecode:()=>T0,safeDecodeAsync:()=>E0,safeEncode:()=>$0,safeEncodeAsync:()=>w0,safeParse:()=>y0,safeParseAsync:()=>x0,set:()=>x1,setErrorMap:()=>PH,size:()=>Io,slugify:()=>vs,startsWith:()=>ms,strictObject:()=>f1,string:()=>Kl,stringFormat:()=>Wz,stringbool:()=>F1,success:()=>$1,superRefine:()=>x$,symbol:()=>s1,templateLiteral:()=>R1,toJSONSchema:()=>lf,toLowerCase:()=>bs,toUpperCase:()=>_s,transform:()=>Nf,treeifyError:()=>UI,trim:()=>hs,tuple:()=>K0,uint32:()=>r1,uint64:()=>a1,ulid:()=>Fz,undefined:()=>c1,union:()=>Df,unknown:()=>ko,uppercase:()=>us,url:()=>jz,util:()=>L,uuid:()=>wz,uuidv4:()=>Ez,uuidv6:()=>Rz,uuidv7:()=>Cz,void:()=>u1,xid:()=>Nz,xor:()=>h1});var ii={};un(ii,{$ZodAny:()=>dP,$ZodArray:()=>hP,$ZodAsyncError:()=>Er,$ZodBase64:()=>tP,$ZodBase64URL:()=>nP,$ZodBigInt:()=>kp,$ZodBigIntFormat:()=>sP,$ZodBoolean:()=>Nl,$ZodCIDRv4:()=>YS,$ZodCIDRv6:()=>QS,$ZodCUID:()=>LS,$ZodCUID2:()=>VS,$ZodCatch:()=>zP,$ZodCheck:()=>_t,$ZodCheckBigIntFormat:()=>hS,$ZodCheckEndsWith:()=>wS,$ZodCheckGreaterThan:()=>vp,$ZodCheckIncludes:()=>$S,$ZodCheckLengthEquals:()=>IS,$ZodCheckLessThan:()=>_p,$ZodCheckLowerCase:()=>PS,$ZodCheckMaxLength:()=>yS,$ZodCheckMaxSize:()=>bS,$ZodCheckMimeType:()=>RS,$ZodCheckMinLength:()=>xS,$ZodCheckMinSize:()=>_S,$ZodCheckMultipleOf:()=>fS,$ZodCheckNumberFormat:()=>gS,$ZodCheckOverwrite:()=>CS,$ZodCheckProperty:()=>ES,$ZodCheckRegex:()=>SS,$ZodCheckSizeEquals:()=>vS,$ZodCheckStartsWith:()=>TS,$ZodCheckStringFormat:()=>as,$ZodCheckUpperCase:()=>kS,$ZodCodec:()=>Vl,$ZodCustom:()=>BP,$ZodCustomStringFormat:()=>oP,$ZodDate:()=>gP,$ZodDefault:()=>RP,$ZodDiscriminatedUnion:()=>vP,$ZodE164:()=>rP,$ZodEmail:()=>AS,$ZodEmoji:()=>FS,$ZodEncodeError:()=>Di,$ZodEnum:()=>PP,$ZodError:()=>Ol,$ZodExactOptional:()=>wP,$ZodFile:()=>$P,$ZodFunction:()=>NP,$ZodGUID:()=>zS,$ZodIPv4:()=>JS,$ZodIPv6:()=>WS,$ZodISODate:()=>HS,$ZodISODateTime:()=>qS,$ZodISODuration:()=>GS,$ZodISOTime:()=>KS,$ZodIntersection:()=>yP,$ZodJWT:()=>iP,$ZodKSUID:()=>ZS,$ZodLazy:()=>VP,$ZodLiteral:()=>kP,$ZodMAC:()=>XS,$ZodMap:()=>IP,$ZodNaN:()=>UP,$ZodNanoID:()=>NS,$ZodNever:()=>pP,$ZodNonOptional:()=>jP,$ZodNull:()=>uP,$ZodNullable:()=>EP,$ZodNumber:()=>Pp,$ZodNumberFormat:()=>aP,$ZodObject:()=>xO,$ZodObjectJIT:()=>bP,$ZodOptional:()=>Tp,$ZodPipe:()=>wp,$ZodPrefault:()=>CP,$ZodPreprocess:()=>AP,$ZodPromise:()=>LP,$ZodReadonly:()=>DP,$ZodRealError:()=>Hn,$ZodRecord:()=>xP,$ZodRegistry:()=>jp,$ZodSet:()=>SP,$ZodString:()=>xo,$ZodStringFormat:()=>ft,$ZodSuccess:()=>OP,$ZodSymbol:()=>cP,$ZodTemplateLiteral:()=>FP,$ZodTransform:()=>TP,$ZodTuple:()=>$p,$ZodType:()=>ve,$ZodULID:()=>BS,$ZodURL:()=>DS,$ZodUUID:()=>US,$ZodUndefined:()=>lP,$ZodUnion:()=>Ll,$ZodUnknown:()=>mP,$ZodVoid:()=>fP,$ZodXID:()=>MS,$ZodXor:()=>_P,$brand:()=>SI,$constructor:()=>I,$input:()=>ZP,$output:()=>MP,Doc:()=>Fl,JSONSchema:()=>Sz,JSONSchemaGenerator:()=>uf,NEVER:()=>II,TimePrecision:()=>GP,_any:()=>gk,_array:()=>Ik,_base64:()=>Wp,_base64url:()=>Xp,_bigint:()=>ck,_boolean:()=>ak,_catch:()=>pH,_check:()=>Iz,_cidrv4:()=>Gp,_cidrv6:()=>Jp,_coercedBigint:()=>lk,_coercedBoolean:()=>sk,_coercedDate:()=>yk,_coercedNumber:()=>ek,_coercedString:()=>HP,_cuid:()=>Vp,_cuid2:()=>Bp,_custom:()=>Pk,_date:()=>vk,_decode:()=>lp,_decodeAsync:()=>dp,_default:()=>uH,_discriminatedUnion:()=>Yq,_e164:()=>Yp,_email:()=>zp,_emoji:()=>Np,_encode:()=>cp,_encodeAsync:()=>up,_endsWith:()=>ps,_enum:()=>iH,_file:()=>Sk,_float32:()=>nk,_float64:()=>rk,_gt:()=>Br,_gte:()=>Dn,_guid:()=>Zl,_includes:()=>ds,_int:()=>tk,_int32:()=>ik,_int64:()=>uk,_intersection:()=>Qq,_ipv4:()=>Hp,_ipv6:()=>Kp,_isoDate:()=>WP,_isoDateTime:()=>JP,_isoDuration:()=>YP,_isoTime:()=>XP,_jwt:()=>Qp,_ksuid:()=>qp,_lazy:()=>bH,_length:()=>Po,_literal:()=>aH,_lowercase:()=>ls,_lt:()=>Vr,_lte:()=>rr,_mac:()=>KP,_map:()=>nH,_max:()=>rr,_maxLength:()=>So,_maxSize:()=>Mi,_mime:()=>fs,_min:()=>Dn,_minLength:()=>ri,_minSize:()=>Mr,_multipleOf:()=>Bi,_nan:()=>xk,_nanoid:()=>Lp,_nativeEnum:()=>oH,_negative:()=>tf,_never:()=>bk,_nonnegative:()=>rf,_nonoptional:()=>dH,_nonpositive:()=>nf,_normalize:()=>gs,_null:()=>fk,_nullable:()=>lH,_number:()=>QP,_optional:()=>cH,_overwrite:()=>Rr,_parse:()=>ns,_parseAsync:()=>rs,_pipe:()=>fH,_positive:()=>ef,_promise:()=>_H,_property:()=>of,_readonly:()=>gH,_record:()=>tH,_refine:()=>kk,_regex:()=>cs,_safeDecode:()=>pp,_safeDecodeAsync:()=>gp,_safeEncode:()=>mp,_safeEncodeAsync:()=>fp,_safeParse:()=>is,_safeParseAsync:()=>os,_set:()=>rH,_size:()=>Io,_slugify:()=>vs,_startsWith:()=>ms,_string:()=>qP,_stringFormat:()=>ys,_stringbool:()=>Ek,_success:()=>mH,_superRefine:()=>$k,_symbol:()=>mk,_templateLiteral:()=>hH,_toLowerCase:()=>bs,_toUpperCase:()=>_s,_transform:()=>sH,_trim:()=>hs,_tuple:()=>eH,_uint32:()=>ok,_uint64:()=>dk,_ulid:()=>Mp,_undefined:()=>pk,_union:()=>Wq,_unknown:()=>hk,_uppercase:()=>us,_url:()=>ql,_uuid:()=>Up,_uuidv4:()=>Ap,_uuidv6:()=>Dp,_uuidv7:()=>Fp,_void:()=>_k,_xid:()=>Zp,_xor:()=>Xq,clone:()=>Un,config:()=>Jt,createStandardJSONSchemaMethod:()=>xs,createToJSONSchemaMethod:()=>Rk,decode:()=>_Z,decodeAsync:()=>yZ,describe:()=>Tk,encode:()=>bZ,encodeAsync:()=>vZ,extractDefs:()=>qi,finalize:()=>Hi,flattenError:()=>zl,formatError:()=>Ul,globalConfig:()=>_o,globalRegistry:()=>_n,initializeContext:()=>Zi,isValidBase64:()=>eP,isValidBase64URL:()=>bO,isValidJWT:()=>_O,locales:()=>Ml,meta:()=>wk,parse:()=>ap,parseAsync:()=>sp,prettifyError:()=>AI,process:()=>st,regexes:()=>nr,registry:()=>Op,safeDecode:()=>IZ,safeDecodeAsync:()=>PZ,safeEncode:()=>xZ,safeEncodeAsync:()=>SZ,safeParse:()=>DI,safeParseAsync:()=>FI,toDotPath:()=>Wj,toJSONSchema:()=>lf,treeifyError:()=>UI,util:()=>L,version:()=>jS});var qj,II=Object.freeze({status:"aborted"});function I(e,n,r){function o(c,u){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:u,constr:s,traits:new Set},enumerable:false}),c._zod.traits.has(e))return;c._zod.traits.add(e),n(c,u);let d=s.prototype,m=Object.keys(d);for(let p=0;p<m.length;p++){let g=m[p];g in c||(c[g]=d[g].bind(c));}}let t=r?.Parent??Object;class i extends t{}Object.defineProperty(i,"name",{value:e});function s(c){var u;let d=r?.Parent?new i:this;o(d,c),(u=d._zod).deferred??(u.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 SI=Symbol("zod_brand"),Er=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.");}},Di=class extends Error{constructor(n){super(`Encountered unidirectional transform during encode: ${n}`),this.name="ZodEncodeError";}};(qj=globalThis).__zod_globalConfig??(qj.__zod_globalConfig={});var _o=globalThis.__zod_globalConfig;function Jt(e){return e&&Object.assign(_o,e),_o}var L={};un(L,{BIGINT_FORMAT_RANGES:()=>OI,Class:()=>kI,NUMBER_FORMAT_RANGES:()=>jI,aborted:()=>Vi,allowsEval:()=>wI,assert:()=>J3,assertEqual:()=>q3,assertIs:()=>K3,assertNever:()=>G3,assertNotEqual:()=>H3,assignProp:()=>Ni,base64ToUint8Array:()=>Kj,base64urlToUint8Array:()=>mZ,cached:()=>es,captureStackTrace:()=>op,cleanEnum:()=>dZ,cleanRegex:()=>El,clone:()=>Un,cloneDef:()=>X3,createTransparentProxy:()=>rZ,defineLazy:()=>Ue,esc:()=>ip,escapeRegex:()=>fr,explicitlyAborted:()=>zI,extend:()=>aZ,finalizeIssue:()=>An,floatSafeRemainder:()=>$I,getElementAtPath:()=>Y3,getEnumValues:()=>wl,getLengthableOrigin:()=>jl,getParsedType:()=>nZ,getSizableOrigin:()=>Cl,hexToUint8Array:()=>fZ,isObject:()=>vo,isPlainObject:()=>Li,issue:()=>ts,joinValues:()=>k,jsonStringifyReplacer:()=>Qa,merge:()=>cZ,mergeDefs:()=>ni,normalizeParams:()=>H,nullish:()=>Fi,numKeys:()=>tZ,objectClone:()=>W3,omit:()=>oZ,optionalKeys:()=>CI,parsedType:()=>F,partial:()=>lZ,pick:()=>iZ,prefixIssues:()=>qn,primitiveTypes:()=>RI,promiseAllObject:()=>Q3,propertyKeyTypes:()=>Rl,randomString:()=>eZ,required:()=>uZ,safeExtend:()=>sZ,shallowClone:()=>EI,slugify:()=>TI,stringifyPrimitive:()=>U,uint8ArrayToBase64:()=>Gj,uint8ArrayToBase64url:()=>pZ,uint8ArrayToHex:()=>gZ,unwrapMessage:()=>Tl});function q3(e){return e}function H3(e){return e}function K3(e){}function G3(e){throw new Error("Unexpected value in exhaustive check")}function J3(e){}function wl(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 k(e,n="|"){return e.map(r=>U(r)).join(n)}function Qa(e,n){return typeof n=="bigint"?n.toString():n}function es(e){return {get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}}}}function Fi(e){return e==null}function El(e){let n=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(n,r)}function $I(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 Hj=Symbol("evaluating");function Ue(e,n,r){let o;Object.defineProperty(e,n,{get(){if(o!==Hj)return o===void 0&&(o=Hj,o=r()),o},set(t){Object.defineProperty(e,n,{value:t});},configurable:true});}function W3(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Ni(e,n,r){Object.defineProperty(e,n,{value:r,writable:true,enumerable:true,configurable:true});}function ni(...e){let n={};for(let r of e){let o=Object.getOwnPropertyDescriptors(r);Object.assign(n,o);}return Object.defineProperties({},n)}function X3(e){return ni(e._zod.def)}function Y3(e,n){return n?n.reduce((r,o)=>r?.[o],e):e}function Q3(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 eZ(e=10){let n="abcdefghijklmnopqrstuvwxyz",r="";for(let o=0;o<e;o++)r+=n[Math.floor(Math.random()*n.length)];return r}function ip(e){return JSON.stringify(e)}function TI(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var op="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function vo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var wI=es(()=>{if(_o.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return false;try{let e=Function;return new e(""),!0}catch{return false}});function Li(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 EI(e){return Li(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function tZ(e){let n=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&n++;return n}var nZ=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}`)}},Rl=new Set(["string","number","symbol"]),RI=new Set(["string","number","bigint","boolean","symbol","undefined"]);function fr(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Un(e,n,r){let o=new e._zod.constr(n??e._zod.def);return (!n||r?.parent)&&(o._zod.parent=e),o}function H(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 rZ(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 U(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function CI(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}var jI={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]},OI={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function iZ(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=ni(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 Ni(this,"shape",s),s},checks:[]});return Un(e,i)}function oZ(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=ni(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 Ni(this,"shape",s),s},checks:[]});return Un(e,i)}function aZ(e,n){if(!Li(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=ni(e._zod.def,{get shape(){let i={...e._zod.def.shape,...n};return Ni(this,"shape",i),i}});return Un(e,t)}function sZ(e,n){if(!Li(n))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ni(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n};return Ni(this,"shape",o),o}});return Un(e,r)}function cZ(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=ni(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n._zod.def.shape};return Ni(this,"shape",o),o},get catchall(){return n._zod.def.catchall},checks:n._zod.def.checks??[]});return Un(e,r)}function lZ(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=ni(n._zod.def,{get shape(){let c=n._zod.def.shape,u={...c};if(r)for(let d in r){if(!(d in c))throw new Error(`Unrecognized key: "${d}"`);r[d]&&(u[d]=e?new e({type:"optional",innerType:c[d]}):c[d]);}else for(let d in c)u[d]=e?new e({type:"optional",innerType:c[d]}):c[d];return Ni(this,"shape",u),u},checks:[]});return Un(n,s)}function uZ(e,n,r){let o=ni(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 Ni(this,"shape",i),i}});return Un(n,o)}function Vi(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 zI(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 qn(e,n){return n.map(r=>{var o;return (o=r).path??(o.path=[]),r.path.unshift(e),r})}function Tl(e){return typeof e=="string"?e:e?.message}function An(e,n,r){let o=e.message?e.message:Tl(e.inst?._zod.def?.error?.(e))??Tl(n?.error?.(e))??Tl(r.customError?.(e))??Tl(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 Cl(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function jl(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function F(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 ts(...e){let[n,r,o]=e;return typeof n=="string"?{message:n,code:"custom",input:r,inst:o}:{...n}}function dZ(e){return Object.entries(e).filter(([n,r])=>Number.isNaN(Number.parseInt(n,10))).map(n=>n[1])}function Kj(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 Gj(e){let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}function mZ(e){let n=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-n.length%4)%4);return Kj(n+r)}function pZ(e){return Gj(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function fZ(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 gZ(e){return Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}var kI=class{constructor(...n){}};var Jj=(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,Qa,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:false});},Ol=I("$ZodError",Jj),Hn=I("$ZodError",Jj,{Parent:Error});function zl(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 Ul(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 u=r,d=0;for(;d<c.length;){let m=c[d];d===c.length-1?(u[m]=u[m]||{_errors:[]},u[m]._errors.push(n(s))):u[m]=u[m]||{_errors:[]},u=u[m],d++;}}}};return o(e),r}function UI(e,n=r=>r.message){let r={errors:[]},o=(t,i=[])=>{var s,c;for(let u of t.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map(d=>o({issues:d},[...i,...u.path]));else if(u.code==="invalid_key")o({issues:u.issues},[...i,...u.path]);else if(u.code==="invalid_element")o({issues:u.issues},[...i,...u.path]);else {let d=[...i,...u.path];if(d.length===0){r.errors.push(n(u));continue}let m=r,p=0;for(;p<d.length;){let g=d[p],f=p===d.length-1;typeof g=="string"?(m.properties??(m.properties={}),(s=m.properties)[g]??(s[g]={errors:[]}),m=m.properties[g]):(m.items??(m.items=[]),(c=m.items)[g]??(c[g]={errors:[]}),m=m.items[g]),f&&m.errors.push(n(u)),p++;}}};return o(e),r}function Wj(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 AI(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 ${Wj(o.path)}`);return n.join(`
66
66
  `)}var ns=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 Er;if(s.issues.length){let c=new(t?.Err??e)(s.issues.map(u=>An(u,i,Jt())));throw op(c,t?.callee),c}return s.value},ap=ns(Hn),rs=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(u=>An(u,i,Jt())));throw op(c,t?.callee),c}return s.value},sp=rs(Hn),is=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 Er;return i.issues.length?{success:false,error:new(e??Ol)(i.issues.map(s=>An(s,t,Jt())))}:{success:true,data:i.value}},DI=is(Hn),os=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=>An(s,t,Jt())))}:{success:true,data:i.value}},FI=os(Hn),cp=e=>(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return ns(e)(n,r,t)},bZ=cp(Hn),lp=e=>(n,r,o)=>ns(e)(n,r,o),_Z=lp(Hn),up=e=>async(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return rs(e)(n,r,t)},vZ=up(Hn),dp=e=>async(n,r,o)=>rs(e)(n,r,o),yZ=dp(Hn),mp=e=>(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return is(e)(n,r,t)},xZ=mp(Hn),pp=e=>(n,r,o)=>is(e)(n,r,o),IZ=pp(Hn),fp=e=>async(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return os(e)(n,r,t)},SZ=fp(Hn),gp=e=>async(n,r,o)=>os(e)(n,r,o),PZ=gp(Hn);var nr={};un(nr,{base64:()=>eS,base64url:()=>hp,bigint:()=>sS,boolean:()=>lS,browserEmail:()=>jZ,cidrv4:()=>YI,cidrv6:()=>QI,cuid:()=>NI,cuid2:()=>LI,date:()=>rS,datetime:()=>oS,domain:()=>UZ,duration:()=>qI,e164:()=>nS,email:()=>KI,emoji:()=>GI,extendedDuration:()=>kZ,guid:()=>HI,hex:()=>AZ,hostname:()=>zZ,html5Email:()=>EZ,httpProtocol:()=>tS,idnEmail:()=>CZ,integer:()=>cS,ipv4:()=>JI,ipv6:()=>WI,ksuid:()=>MI,lowercase:()=>mS,mac:()=>XI,md5_base64:()=>FZ,md5_base64url:()=>NZ,md5_hex:()=>DZ,nanoid:()=>ZI,null:()=>uS,number:()=>bp,rfc5322Email:()=>RZ,sha1_base64:()=>VZ,sha1_base64url:()=>BZ,sha1_hex:()=>LZ,sha256_base64:()=>ZZ,sha256_base64url:()=>qZ,sha256_hex:()=>MZ,sha384_base64:()=>KZ,sha384_base64url:()=>GZ,sha384_hex:()=>HZ,sha512_base64:()=>WZ,sha512_base64url:()=>XZ,sha512_hex:()=>JZ,string:()=>aS,time:()=>iS,ulid:()=>VI,undefined:()=>dS,unicodeEmail:()=>Xj,uppercase:()=>pS,uuid:()=>yo,uuid4:()=>$Z,uuid6:()=>TZ,uuid7:()=>wZ,xid:()=>BI});var NI=/^[cC][0-9a-z]{6,}$/,LI=/^[0-9a-z]+$/,VI=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,BI=/^[0-9a-vA-V]{20}$/,MI=/^[A-Za-z0-9]{27}$/,ZI=/^[a-zA-Z0-9_-]{21}$/,qI=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,kZ=/^[-+]?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)?)??$/,HI=/^([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})$/,yo=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)$/,$Z=yo(4),TZ=yo(6),wZ=yo(7),KI=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,EZ=/^[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])?)*$/,RZ=/^(([^<>()\[\]\\.,;:\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,}))$/,Xj=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,CZ=Xj,jZ=/^[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])?)*$/,OZ="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function GI(){return new RegExp(OZ,"u")}var JI=/^(?:(?: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])$/,WI=/^(([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}|:))$/,XI=e=>{let n=fr(e??":");return new RegExp(`^(?:[0-9A-F]{2}${n}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${n}){5}[0-9a-f]{2}$`)},YI=/^((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])$/,QI=/^(([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])$/,eS=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,hp=/^[A-Za-z0-9_-]*$/,zZ=/^(?=.{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])?)*\.?$/,UZ=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,tS=/^https?$/,nS=/^\+[1-9]\d{6,14}$/,Yj="(?:(?:\\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])))",rS=new RegExp(`^${Yj}$`);function Qj(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 iS(e){return new RegExp(`^${Qj(e)}$`)}function oS(e){let n=Qj({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(`^${Yj}T(?:${o})$`)}var aS=e=>{let n=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${n}$`)},sS=/^-?\d+n?$/,cS=/^-?\d+$/,bp=/^-?\d+(?:\.\d+)?$/,lS=/^(?:true|false)$/i,uS=/^null$/i;var dS=/^undefined$/i;var mS=/^[^A-Z]*$/,pS=/^[^a-z]*$/,AZ=/^[0-9a-fA-F]*$/;function Al(e,n){return new RegExp(`^[A-Za-z0-9+/]{${e}}${n}$`)}function Dl(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var DZ=/^[0-9a-fA-F]{32}$/,FZ=Al(22,"=="),NZ=Dl(22),LZ=/^[0-9a-fA-F]{40}$/,VZ=Al(27,"="),BZ=Dl(27),MZ=/^[0-9a-fA-F]{64}$/,ZZ=Al(43,"="),qZ=Dl(43),HZ=/^[0-9a-fA-F]{96}$/,KZ=Al(64,""),GZ=Dl(64),JZ=/^[0-9a-fA-F]{128}$/,WZ=Al(86,"=="),XZ=Dl(86);var _t=I("$ZodCheck",(e,n)=>{var r;e._zod??(e._zod={}),e._zod.def=n,(r=e._zod).onattach??(r.onattach=[]);}),tO={number:"number",bigint:"bigint",object:"date"},_p=I("$ZodCheckLessThan",(e,n)=>{_t.init(e,n);let r=tO[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});};}),vp=I("$ZodCheckGreaterThan",(e,n)=>{_t.init(e,n);let r=tO[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});};}),fS=I("$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):$I(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});};}),gS=I("$ZodCheckNumberFormat",(e,n)=>{_t.init(e,n),n.format=n.format||"float64";let r=n.format?.includes("int"),o=r?"int":"number",[t,i]=jI[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=cS);}),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});};}),hS=I("$ZodCheckBigIntFormat",(e,n)=>{_t.init(e,n);let[r,o]=OI[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});};}),bS=I("$ZodCheckMaxSize",(e,n)=>{var r;_t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Fi(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:Cl(t),code:"too_big",maximum:n.maximum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),_S=I("$ZodCheckMinSize",(e,n)=>{var r;_t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Fi(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:Cl(t),code:"too_small",minimum:n.minimum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),vS=I("$ZodCheckSizeEquals",(e,n)=>{var r;_t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Fi(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:Cl(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});};}),yS=I("$ZodCheckMaxLength",(e,n)=>{var r;_t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Fi(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=jl(t);o.issues.push({origin:s,code:"too_big",maximum:n.maximum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),xS=I("$ZodCheckMinLength",(e,n)=>{var r;_t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Fi(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=jl(t);o.issues.push({origin:s,code:"too_small",minimum:n.minimum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),IS=I("$ZodCheckLengthEquals",(e,n)=>{var r;_t.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Fi(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=jl(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});};}),as=I("$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=()=>{});}),SS=I("$ZodCheckRegex",(e,n)=>{as.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});};}),PS=I("$ZodCheckLowerCase",(e,n)=>{n.pattern??(n.pattern=mS),as.init(e,n);}),kS=I("$ZodCheckUpperCase",(e,n)=>{n.pattern??(n.pattern=pS),as.init(e,n);}),$S=I("$ZodCheckIncludes",(e,n)=>{_t.init(e,n);let r=fr(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});};}),TS=I("$ZodCheckStartsWith",(e,n)=>{_t.init(e,n);let r=new RegExp(`^${fr(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});};}),wS=I("$ZodCheckEndsWith",(e,n)=>{_t.init(e,n);let r=new RegExp(`.*${fr(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 eO(e,n,r){e.issues.length&&n.issues.push(...qn(r,e.issues));}var ES=I("$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=>eO(t,r,n.property));eO(o,r,n.property);};}),RS=I("$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});};}),CS=I("$ZodCheckOverwrite",(e,n)=>{_t.init(e,n),e._zod.check=r=>{r.value=n.tx(r.value);};});var Fl=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 jS={major:4,minor:4,patch:3};var ve=I("$ZodType",(e,n)=>{var r;e??(e={}),e._zod.def=n,e._zod.bag=e._zod.bag||{},e._zod.version=jS;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,u)=>{let d=Vi(s),m;for(let p of c){if(p._zod.def.when){if(zI(s)||!p._zod.def.when(s))continue}else if(d)continue;let g=s.issues.length,f=p._zod.check(s);if(f instanceof Promise&&u?.async===false)throw new Er;if(m||f instanceof Promise)m=(m??Promise.resolve()).then(async()=>{await f,s.issues.length!==g&&(d||(d=Vi(s,g)));});else {if(s.issues.length===g)continue;d||(d=Vi(s,g));}}return m?m.then(()=>s):s},i=(s,c,u)=>{if(Vi(s))return s.aborted=true,s;let d=t(c,o,u);if(d instanceof Promise){if(u.async===false)throw new Er;return d.then(m=>e._zod.parse(m,u))}return e._zod.parse(d,u)};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 u=e._zod.parse(s,c);if(u instanceof Promise){if(c.async===false)throw new Er;return u.then(d=>t(d,o,c))}return t(u,o,c)};}Ue(e,"~standard",()=>({validate:t=>{try{let i=DI(e,t);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return FI(e,t).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}));}),xo=I("$ZodString",(e,n)=>{ve.init(e,n),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??aS(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};}),ft=I("$ZodStringFormat",(e,n)=>{as.init(e,n),xo.init(e,n);}),zS=I("$ZodGUID",(e,n)=>{n.pattern??(n.pattern=HI),ft.init(e,n);}),US=I("$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=yo(o));}else n.pattern??(n.pattern=yo());ft.init(e,n);}),AS=I("$ZodEmail",(e,n)=>{n.pattern??(n.pattern=KI),ft.init(e,n);}),DS=I("$ZodURL",(e,n)=>{ft.init(e,n),e._zod.check=r=>{try{let o=r.value.trim();if(!n.normalize&&n.protocol?.source===tS.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});}};}),FS=I("$ZodEmoji",(e,n)=>{n.pattern??(n.pattern=GI()),ft.init(e,n);}),NS=I("$ZodNanoID",(e,n)=>{n.pattern??(n.pattern=ZI),ft.init(e,n);}),LS=I("$ZodCUID",(e,n)=>{n.pattern??(n.pattern=NI),ft.init(e,n);}),VS=I("$ZodCUID2",(e,n)=>{n.pattern??(n.pattern=LI),ft.init(e,n);}),BS=I("$ZodULID",(e,n)=>{n.pattern??(n.pattern=VI),ft.init(e,n);}),MS=I("$ZodXID",(e,n)=>{n.pattern??(n.pattern=BI),ft.init(e,n);}),ZS=I("$ZodKSUID",(e,n)=>{n.pattern??(n.pattern=MI),ft.init(e,n);}),qS=I("$ZodISODateTime",(e,n)=>{n.pattern??(n.pattern=oS(n)),ft.init(e,n);}),HS=I("$ZodISODate",(e,n)=>{n.pattern??(n.pattern=rS),ft.init(e,n);}),KS=I("$ZodISOTime",(e,n)=>{n.pattern??(n.pattern=iS(n)),ft.init(e,n);}),GS=I("$ZodISODuration",(e,n)=>{n.pattern??(n.pattern=qI),ft.init(e,n);}),JS=I("$ZodIPv4",(e,n)=>{n.pattern??(n.pattern=JI),ft.init(e,n),e._zod.bag.format="ipv4";}),WS=I("$ZodIPv6",(e,n)=>{n.pattern??(n.pattern=WI),ft.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});}};}),XS=I("$ZodMAC",(e,n)=>{n.pattern??(n.pattern=XI(n.delimiter)),ft.init(e,n),e._zod.bag.format="mac";}),YS=I("$ZodCIDRv4",(e,n)=>{n.pattern??(n.pattern=YI),ft.init(e,n);}),QS=I("$ZodCIDRv6",(e,n)=>{n.pattern??(n.pattern=QI),ft.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 eP(e){if(e==="")return true;if(/\s/.test(e)||e.length%4!==0)return false;try{return atob(e),!0}catch{return false}}var tP=I("$ZodBase64",(e,n)=>{n.pattern??(n.pattern=eS),ft.init(e,n),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{eP(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!n.abort});};});function bO(e){if(!hp.test(e))return false;let n=e.replace(/[-_]/g,o=>o==="-"?"+":"/"),r=n.padEnd(Math.ceil(n.length/4)*4,"=");return eP(r)}var nP=I("$ZodBase64URL",(e,n)=>{n.pattern??(n.pattern=hp),ft.init(e,n),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{bO(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!n.abort});};}),rP=I("$ZodE164",(e,n)=>{n.pattern??(n.pattern=nS),ft.init(e,n);});function _O(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 iP=I("$ZodJWT",(e,n)=>{ft.init(e,n),e._zod.check=r=>{_O(r.value,n.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!n.abort});};}),oP=I("$ZodCustomStringFormat",(e,n)=>{ft.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});};}),Pp=I("$ZodNumber",(e,n)=>{ve.init(e,n),e._zod.pattern=e._zod.bag.pattern??bp,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};}),aP=I("$ZodNumberFormat",(e,n)=>{gS.init(e,n),Pp.init(e,n);}),Nl=I("$ZodBoolean",(e,n)=>{ve.init(e,n),e._zod.pattern=lS,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};}),kp=I("$ZodBigInt",(e,n)=>{ve.init(e,n),e._zod.pattern=sS,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};}),sP=I("$ZodBigIntFormat",(e,n)=>{hS.init(e,n),kp.init(e,n);}),cP=I("$ZodSymbol",(e,n)=>{ve.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};}),lP=I("$ZodUndefined",(e,n)=>{ve.init(e,n),e._zod.pattern=dS,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};}),uP=I("$ZodNull",(e,n)=>{ve.init(e,n),e._zod.pattern=uS,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};}),dP=I("$ZodAny",(e,n)=>{ve.init(e,n),e._zod.parse=r=>r;}),mP=I("$ZodUnknown",(e,n)=>{ve.init(e,n),e._zod.parse=r=>r;}),pP=I("$ZodNever",(e,n)=>{ve.init(e,n),e._zod.parse=(r,o)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r);}),fP=I("$ZodVoid",(e,n)=>{ve.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};}),gP=I("$ZodDate",(e,n)=>{ve.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 rO(e,n,r){e.issues.length&&n.issues.push(...qn(r,e.issues)),n.value[r]=e.value;}var hP=I("$ZodArray",(e,n)=>{ve.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],u=n.element._zod.run({value:c,issues:[]},o);u instanceof Promise?i.push(u.then(d=>rO(d,r,s))):rO(u,r,s);}return i.length?Promise.all(i).then(()=>r):r};});function Sp(e,n,r,o,t,i){let s=r in o;if(e.issues.length){if(t&&i&&!s)return;n.issues.push(...qn(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 vO(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=CI(e.shape);return {...e,keys:n,keySet:new Set(n),numKeys:n.length,optionalKeys:new Set(r)}}function yO(e,n,r,o,t,i){let s=[],c=t.keySet,u=t.catchall._zod,d=u.def.type,m=u.optin==="optional",p=u.optout==="optional";for(let g in n){if(g==="__proto__"||c.has(g))continue;if(d==="never"){s.push(g);continue}let f=u.run({value:n[g],issues:[]},o);f instanceof Promise?e.push(f.then(v=>Sp(v,r,g,n,m,p))):Sp(f,r,g,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 xO=I("$ZodObject",(e,n)=>{if(ve.init(e,n),!Object.getOwnPropertyDescriptor(n,"shape")?.get){let c=n.shape;Object.defineProperty(n,"shape",{get:()=>{let u={...c};return Object.defineProperty(n,"shape",{value:u}),u}});}let o=es(()=>vO(n));Ue(e._zod,"propValues",()=>{let c=n.shape,u={};for(let d in c){let m=c[d]._zod;if(m.values){u[d]??(u[d]=new Set);for(let p of m.values)u[d].add(p);}}return u});let t=vo,i=n.catchall,s;e._zod.parse=(c,u)=>{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 g of s.keys){let f=p[g],v=f._zod.optin==="optional",$=f._zod.optout==="optional",S=f._zod.run({value:d[g],issues:[]},u);S instanceof Promise?m.push(S.then(R=>Sp(R,c,g,d,v,$))):Sp(S,c,g,d,v,$);}return i?yO(m,d,c,u,o.value,e):m.length?Promise.all(m).then(()=>c):c};}),bP=I("$ZodObjectJIT",(e,n)=>{xO.init(e,n);let r=e._zod.parse,o=es(()=>vO(n)),t=g=>{let f=new Fl(["shape","payload","ctx"]),v=o.value,$=A=>{let w=ip(A);return `shape[${w}]._zod.run({ value: input[${w}], issues: [] }, ctx)`};f.write("const input = payload.value;");let S=Object.create(null),R=0;for(let A of v.keys)S[A]=`key_${R++}`;f.write("const newResult = {};");for(let A of v.keys){let w=S[A],T=ip(A),ee=g[A],Ne=ee?._zod?.optin==="optional",Le=ee?._zod?.optout==="optional";f.write(`const ${w} = ${$(A)};`),Ne&&Le?f.write(`