@revturbine/sdk 0.2.34 → 0.2.35
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 +1 -1
- package/dist/headless.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/web-sdk/controllers.d.ts +7 -0
- package/dist/types/web-sdk/controllers.d.ts.map +1 -1
- package/dist/types/web-sdk/customer-side.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -62,7 +62,7 @@ import H4,{createContext,useMemo,useCallback,useEffect,useRef,useState,useContex
|
|
|
62
62
|
|
|
63
63
|
`);}f.write("payload.value = newResult;"),f.write("return payload;");let S=f.compile();return (E,I)=>S(g,E,I)},i,s=fo,c=!po.jitless,d=c&&yh.value,m=n.catchall,p;e._zod.parse=(g,f)=>{p??(p=o.value);let h=g.value;return s(h)?c&&d&&f?.async===false&&f.jitless!==true?(i||(i=t(n.shape)),g=i(g,f),m?bw([],h,g,f,p,e):g):r(g,f):(g.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),g)};});function tw(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=>!ki(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=>jn(s,o,Yt())))}),n)}var zc=k("$ZodUnion",(e,n)=>{ke.init(e,n),Be(e._zod,"optin",()=>n.options.some(o=>o._zod.optin==="optional")?"optional":void 0),Be(e._zod,"optout",()=>n.options.some(o=>o._zod.optout==="optional")?"optional":void 0),Be(e._zod,"values",()=>{if(n.options.every(o=>o._zod.values))return new Set(n.options.flatMap(o=>Array.from(o._zod.values)))}),Be(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=>xc(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=>tw(c,o,e,t)):tw(s,o,e,t)};});function nw(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=>jn(s,o,Yt())))}):n.issues.push({code:"invalid_union",input:n.value,inst:r,errors:[],inclusive:false}),n)}var u_=k("$ZodXor",(e,n)=>{zc.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=>nw(c,o,e,t)):nw(s,o,e,t)};}),d_=k("$ZodDiscriminatedUnion",(e,n)=>{n.inclusive=false,zc.init(e,n);let r=e._zod.parse;Be(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=Wo(()=>{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(!fo(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)};}),m_=k("$ZodIntersection",(e,n)=>{ke.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])=>rw(r,u,d)):rw(r,i,s)};});function kb(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=kb(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=kb(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 rw(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}),ki(e))return e;let s=kb(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 Ed=k("$ZodTuple",(e,n)=>{ke.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=iw(r,"optin"),u=iw(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(h=>ow(h,o,m))):ow(f,o,m);}}return s.length?Promise.all(s).then(()=>aw(d,o,r,i,u)):aw(d,o,r,i,u)};});function iw(e,n){for(let r=e.length-1;r>=0;r--)if(e[r]._zod[n]!=="optional")return r+1;return 0}function ow(e,n,r){e.issues.length&&n.issues.push(...Hn(r,e.issues)),n.value[r]=e.value;}function aw(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(...Hn(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 p_=k("$ZodRecord",(e,n)=>{ke.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=>jn(f,o,Yt())),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(...Hn(d,f.issues)),r.value[p]=f.value;})):(g.issues.length&&r.issues.push(...Hn(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"&&Sd.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=>jn(p,o,Yt())),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(...Hn(c,p.issues)),r.value[u.value]=p.value;})):(m.issues.length&&r.issues.push(...Hn(c,m.issues)),r.value[u.value]=m.value);}}return i.length?Promise.all(i).then(()=>r):r};}),f_=k("$ZodMap",(e,n)=>{ke.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])=>{sw(m,p,r,s,t,e,o);})):sw(u,d,r,s,t,e,o);}return i.length?Promise.all(i).then(()=>r):r};});function sw(e,n,r,o,t,i,s){e.issues.length&&(Sc.has(typeof o)?r.issues.push(...Hn(o,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:t,inst:i,issues:e.issues.map(c=>jn(c,s,Yt()))})),n.issues.length&&(Sc.has(typeof o)?r.issues.push(...Hn(o,n.issues)):r.issues.push({origin:"map",code:"invalid_element",input:t,inst:i,key:o,issues:n.issues.map(c=>jn(c,s,Yt()))})),r.value.set(e.value,n.value);}var g_=k("$ZodSet",(e,n)=>{ke.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=>cw(u,r))):cw(c,r);}return i.length?Promise.all(i).then(()=>r):r};});function cw(e,n){e.issues.length&&n.issues.push(...e.issues),n.value.add(e.value);}var h_=k("$ZodEnum",(e,n)=>{ke.init(e,n);let r=yc(n.entries),o=new Set(r);e._zod.values=o,e._zod.pattern=new RegExp(`^(${r.filter(t=>Sc.has(typeof t)).map(t=>typeof t=="string"?dr(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};}),b_=k("$ZodLiteral",(e,n)=>{if(ke.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"?dr(o):o?dr(o.toString()):String(o)).join("|")})$`),e._zod.parse=(o,t)=>{let i=o.value;return r.has(i)||o.issues.push({code:"invalid_value",values:n.values,input:i,inst:e}),o};}),__=k("$ZodFile",(e,n)=>{ke.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};}),v_=k("$ZodTransform",(e,n)=>{ke.init(e,n),e._zod.optin="optional",e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new xi(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 Pr;return r.value=t,r.fallback=true,r};});function lw(e,n){return n===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var zd=k("$ZodOptional",(e,n)=>{ke.init(e,n),e._zod.optin="optional",e._zod.optout="optional",Be(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),Be(e._zod,"pattern",()=>{let r=n.innerType._zod.pattern;return r?new RegExp(`^(${xc(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=>lw(s,t)):lw(i,t)}return r.value===void 0?r:n.innerType._zod.run(r,o)};}),y_=k("$ZodExactOptional",(e,n)=>{zd.init(e,n),Be(e._zod,"values",()=>n.innerType._zod.values),Be(e._zod,"pattern",()=>n.innerType._zod.pattern),e._zod.parse=(r,o)=>n.innerType._zod.run(r,o);}),x_=k("$ZodNullable",(e,n)=>{ke.init(e,n),Be(e._zod,"optin",()=>n.innerType._zod.optin),Be(e._zod,"optout",()=>n.innerType._zod.optout),Be(e._zod,"pattern",()=>{let r=n.innerType._zod.pattern;return r?new RegExp(`^(${xc(r.source)}|null)$`):void 0}),Be(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);}),S_=k("$ZodDefault",(e,n)=>{ke.init(e,n),e._zod.optin="optional",Be(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=>uw(i,n)):uw(t,n)};});function uw(e,n){return e.value===void 0&&(e.value=n.defaultValue),e}var I_=k("$ZodPrefault",(e,n)=>{ke.init(e,n),e._zod.optin="optional",Be(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));}),P_=k("$ZodNonOptional",(e,n)=>{ke.init(e,n),Be(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=>dw(i,e)):dw(t,e)};});function dw(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 k_=k("$ZodSuccess",(e,n)=>{ke.init(e,n),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new xi("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)};}),T_=k("$ZodCatch",(e,n)=>{ke.init(e,n),e._zod.optin="optional",Be(e._zod,"optout",()=>n.innerType._zod.optout),Be(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=>jn(s,o,Yt()))},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=>jn(i,o,Yt()))},input:r.value}),r.issues=[],r.fallback=true),r)};}),$_=k("$ZodNaN",(e,n)=>{ke.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);}),Od=k("$ZodPipe",(e,n)=>{ke.init(e,n),Be(e._zod,"values",()=>n.in._zod.values),Be(e._zod,"optin",()=>n.in._zod.optin),Be(e._zod,"optout",()=>n.out._zod.optout),Be(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=>kd(s,n.in,o)):kd(i,n.in,o)}let t=n.in._zod.run(r,o);return t instanceof Promise?t.then(i=>kd(i,n.out,o)):kd(t,n.out,o)};});function kd(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 Oc=k("$ZodCodec",(e,n)=>{ke.init(e,n),Be(e._zod,"values",()=>n.in._zod.values),Be(e._zod,"optin",()=>n.in._zod.optin),Be(e._zod,"optout",()=>n.out._zod.optout),Be(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=>Td(s,n,o)):Td(i,n,o)}else {let i=n.out._zod.run(r,o);return i instanceof Promise?i.then(s=>Td(s,n,o)):Td(i,n,o)}};});function Td(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=>$d(e,i,n.out,r)):$d(e,t,n.out,r)}else {let t=n.reverseTransform(e.value,e);return t instanceof Promise?t.then(i=>$d(e,i,n.in,r)):$d(e,t,n.in,r)}}function $d(e,n,r,o){return e.issues.length?(e.aborted=true,e):r._zod.run({value:n,issues:e.issues},o)}var w_=k("$ZodPreprocess",(e,n)=>{Od.init(e,n);}),R_=k("$ZodReadonly",(e,n)=>{ke.init(e,n),Be(e._zod,"propValues",()=>n.innerType._zod.propValues),Be(e._zod,"values",()=>n.innerType._zod.values),Be(e._zod,"optin",()=>n.innerType?._zod?.optin),Be(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(mw):mw(t)};});function mw(e){return e.value=Object.freeze(e.value),e}var C_=k("$ZodTemplateLiteral",(e,n)=>{ke.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||Sh.has(typeof o))r.push(dr(`${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);}),E_=k("$ZodFunction",(e,n)=>(ke.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?dd(e._def.input,o):o,i=Reflect.apply(r,this,t);return e._def.output?dd(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 md(e._def.input,o):o,i=await Reflect.apply(r,this,t);return e._def.output?await md(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 Ed({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)),z_=k("$ZodPromise",(e,n)=>{ke.init(e,n),e._zod.parse=(r,o)=>Promise.resolve(r.value).then(t=>n.innerType._zod.run({value:t,issues:[]},o));}),O_=k("$ZodLazy",(e,n)=>{ke.init(e,n),Be(e._zod,"innerType",()=>{let r=n;return r._cachedInner||(r._cachedInner=n.getter()),r._cachedInner}),Be(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),Be(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),Be(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),Be(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,o)=>e._zod.innerType._zod.run(r,o);}),j_=k("$ZodCustom",(e,n)=>{$t.init(e,n),ke.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=>pw(i,r,o,e));pw(t,r,o,e);};});function pw(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(Xo(t));}}var Uc={};fn(Uc,{ar:()=>vw,az:()=>yw,be:()=>Sw,bg:()=>Iw,ca:()=>Pw,cs:()=>kw,da:()=>Tw,de:()=>$w,el:()=>ww,en:()=>jd,eo:()=>Rw,es:()=>Cw,fa:()=>Ew,fi:()=>zw,fr:()=>Ow,frCA:()=>jw,he:()=>Uw,hr:()=>Aw,hu:()=>Dw,hy:()=>Nw,id:()=>Lw,is:()=>Bw,it:()=>Vw,ja:()=>Mw,ka:()=>Zw,kh:()=>qw,km:()=>Ud,ko:()=>Hw,lt:()=>Gw,mk:()=>Jw,ms:()=>Ww,nl:()=>Xw,no:()=>Yw,ota:()=>Qw,pl:()=>tR,ps:()=>eR,pt:()=>nR,ro:()=>rR,ru:()=>oR,sl:()=>aR,sv:()=>sR,ta:()=>cR,th:()=>lR,tr:()=>uR,ua:()=>dR,uk:()=>Ad,ur:()=>mR,uz:()=>pR,vi:()=>fR,yo:()=>bR,zhCN:()=>gR,zhTW:()=>hR});var FA=()=>{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 ${U(t.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${t.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${t.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${t.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${t.minimum.toString()} ${s.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${t.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${t.prefix}"`:i.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${i.suffix}"`:i.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${i.includes}"`:i.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${i.pattern}`:`${r[i.format]??t.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case "not_multiple_of":return `\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${t.divisor}`;case "unrecognized_keys":return `\u0645\u0639\u0631\u0641${t.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${t.keys.length>1?"\u0629":""}: ${R(t.keys,"\u060C ")}`;case "invalid_key":return `\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${t.origin}`;case "invalid_union":return "\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case "invalid_element":return `\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${t.origin}`;default:return "\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function vw(){return {localeError:FA()}}var NA=()=>{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 ${U(t.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${t.origin??"d\u0259y\u0259r"} ${i}${t.maximum.toString()} ${s.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${t.origin??"d\u0259y\u0259r"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${t.origin} ${i}${t.minimum.toString()} ${s.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${i.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:i.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${i.suffix}" il\u0259 bitm\u0259lidir`:i.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${i.includes}" daxil olmal\u0131d\u0131r`:i.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${i.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${r[i.format]??t.format}`}case "not_multiple_of":return `Yanl\u0131\u015F \u0259d\u0259d: ${t.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case "unrecognized_keys":return `Tan\u0131nmayan a\xE7ar${t.keys.length>1?"lar":""}: ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case "invalid_union":return "Yanl\u0131\u015F d\u0259y\u0259r";case "invalid_element":return `${t.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return "Yanl\u0131\u015F d\u0259y\u0259r"}}};function yw(){return {localeError:NA()}}function xw(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 LA=()=>{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 ${U(t.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);if(s){let c=Number(t.maximum),u=xw(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=xw(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"}: ${R(t.keys,", ")}`;case "invalid_key":return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${t.origin}`;case "invalid_union":return "\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case "invalid_element":return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${t.origin}`;default:return "\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function Sw(){return {localeError:LA()}}var BA=()=>{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 ${U(t.values[0])}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${t.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${t.minimum.toString()} ${s.unit}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;if(i.format==="starts_with")return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${i.prefix}"`;if(i.format==="ends_with")return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${i.suffix}"`;if(i.format==="includes")return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${i.includes}"`;if(i.format==="regex")return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${i.pattern}`;let s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";return i.format==="emoji"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="datetime"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="date"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),i.format==="time"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="duration"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),`${s} ${r[i.format]??t.format}`}case "not_multiple_of":return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${t.divisor}`;case "unrecognized_keys":return `\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${t.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${t.keys.length>1?"\u043E\u0432\u0435":""}: ${R(t.keys,", ")}`;case "invalid_key":return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${t.origin}`;case "invalid_union":return "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case "invalid_element":return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${t.origin}`;default:return "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};function Iw(){return {localeError:BA()}}var VA=()=>{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 ${U(t.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${R(t.values," o ")}`;case "too_big":{let i=t.inclusive?"com a m\xE0xim":"menys de",s=n(t.origin);return s?`Massa gran: s'esperava que ${t.origin??"el valor"} contingu\xE9s ${i} ${t.maximum.toString()} ${s.unit??"elements"}`:`Massa gran: s'esperava que ${t.origin??"el valor"} fos ${i} ${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?"com a m\xEDnim":"m\xE9s de",s=n(t.origin);return s?`Massa petit: s'esperava que ${t.origin} contingu\xE9s ${i} ${t.minimum.toString()} ${s.unit}`:`Massa petit: s'esperava que ${t.origin} fos ${i} ${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${i.prefix}"`:i.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${i.suffix}"`:i.format==="includes"?`Format inv\xE0lid: ha d'incloure "${i.includes}"`:i.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${i.pattern}`:`Format inv\xE0lid per a ${r[i.format]??t.format}`}case "not_multiple_of":return `N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${t.divisor}`;case "unrecognized_keys":return `Clau${t.keys.length>1?"s":""} no reconeguda${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Clau inv\xE0lida a ${t.origin}`;case "invalid_union":return "Entrada inv\xE0lida";case "invalid_element":return `Element inv\xE0lid a ${t.origin}`;default:return "Entrada inv\xE0lida"}}};function Pw(){return {localeError:VA()}}var MA=()=>{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 ${U(t.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${t.origin??"hodnota"} mus\xED m\xEDt ${i}${t.maximum.toString()} ${s.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${t.origin??"hodnota"} mus\xED b\xFDt ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${t.origin??"hodnota"} mus\xED m\xEDt ${i}${t.minimum.toString()} ${s.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${t.origin??"hodnota"} mus\xED b\xFDt ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${i.prefix}"`:i.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${i.suffix}"`:i.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${i.includes}"`:i.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${i.pattern}`:`Neplatn\xFD form\xE1t ${r[i.format]??t.format}`}case "not_multiple_of":return `Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${t.divisor}`;case "unrecognized_keys":return `Nezn\xE1m\xE9 kl\xED\u010De: ${R(t.keys,", ")}`;case "invalid_key":return `Neplatn\xFD kl\xED\u010D v ${t.origin}`;case "invalid_union":return "Neplatn\xFD vstup";case "invalid_element":return `Neplatn\xE1 hodnota v ${t.origin}`;default:return "Neplatn\xFD vstup"}}};function kw(){return {localeError:MA()}}var ZA=()=>{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 ${U(t.values[0])}`:`Ugyldigt valg: forventede en af f\xF8lgende ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin),c=o[t.origin]??t.origin;return s?`For stor: forventede ${c??"value"} ${s.verb} ${i} ${t.maximum.toString()} ${s.unit??"elementer"}`:`For stor: forventede ${c??"value"} havde ${i} ${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin),c=o[t.origin]??t.origin;return s?`For lille: forventede ${c} ${s.verb} ${i} ${t.minimum.toString()} ${s.unit}`:`For lille: forventede ${c} havde ${i} ${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ugyldig streng: skal starte med "${i.prefix}"`:i.format==="ends_with"?`Ugyldig streng: skal ende med "${i.suffix}"`:i.format==="includes"?`Ugyldig streng: skal indeholde "${i.includes}"`:i.format==="regex"?`Ugyldig streng: skal matche m\xF8nsteret ${i.pattern}`:`Ugyldig ${r[i.format]??t.format}`}case "not_multiple_of":return `Ugyldigt tal: skal v\xE6re deleligt med ${t.divisor}`;case "unrecognized_keys":return `${t.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${R(t.keys,", ")}`;case "invalid_key":return `Ugyldig n\xF8gle i ${t.origin}`;case "invalid_union":return "Ugyldigt input: matcher ingen af de tilladte typer";case "invalid_element":return `Ugyldig v\xE6rdi i ${t.origin}`;default:return "Ugyldigt input"}}};function Tw(){return {localeError:ZA()}}var qA=()=>{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 ${U(t.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Zu gro\xDF: erwartet, dass ${t.origin??"Wert"} ${i}${t.maximum.toString()} ${s.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${t.origin??"Wert"} ${i}${t.maximum.toString()} ist`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Zu klein: erwartet, dass ${t.origin} ${i}${t.minimum.toString()} ${s.unit} hat`:`Zu klein: erwartet, dass ${t.origin} ${i}${t.minimum.toString()} ist`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ung\xFCltiger String: muss mit "${i.prefix}" beginnen`:i.format==="ends_with"?`Ung\xFCltiger String: muss mit "${i.suffix}" enden`:i.format==="includes"?`Ung\xFCltiger String: muss "${i.includes}" enthalten`:i.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${i.pattern} entsprechen`:`Ung\xFCltig: ${r[i.format]??t.format}`}case "not_multiple_of":return `Ung\xFCltige Zahl: muss ein Vielfaches von ${t.divisor} sein`;case "unrecognized_keys":return `${t.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${R(t.keys,", ")}`;case "invalid_key":return `Ung\xFCltiger Schl\xFCssel in ${t.origin}`;case "invalid_union":return "Ung\xFCltige Eingabe";case "invalid_element":return `Ung\xFCltiger Wert in ${t.origin}`;default:return "Ung\xFCltige Eingabe"}}};function $w(){return {localeError:qA()}}var HA=()=>{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 ${U(t.values[0])}`:`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD \u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin??"\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${i}${t.maximum.toString()} ${s.unit??"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1"}`:`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin??"\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${i}${t.minimum.toString()} ${s.unit}`:`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AC \u03BC\u03B5 "${i.prefix}"`:i.format==="ends_with"?`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B5\u03BB\u03B5\u03B9\u03CE\u03BD\u03B5\u03B9 \u03BC\u03B5 "${i.suffix}"`:i.format==="includes"?`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 "${i.includes}"`:i.format==="regex"?`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B1\u03B9\u03C1\u03B9\u03AC\u03B6\u03B5\u03B9 \u03BC\u03B5 \u03C4\u03BF \u03BC\u03BF\u03C4\u03AF\u03B2\u03BF ${i.pattern}`:`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF: ${r[i.format]??t.format}`}case "not_multiple_of":return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BF\u03BB\u03BB\u03B1\u03C0\u03BB\u03AC\u03C3\u03B9\u03BF \u03C4\u03BF\u03C5 ${t.divisor}`;case "unrecognized_keys":return `\u0386\u03B3\u03BD\u03C9\u03C3\u03C4${t.keys.length>1?"\u03B1":"\u03BF"} \u03BA\u03BB\u03B5\u03B9\u03B4${t.keys.length>1?"\u03B9\u03AC":"\u03AF"}: ${R(t.keys,", ")}`;case "invalid_key":return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF \u03BA\u03BB\u03B5\u03B9\u03B4\u03AF \u03C3\u03C4\u03BF ${t.origin}`;case "invalid_union":return "\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2";case "invalid_element":return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C4\u03B9\u03BC\u03AE \u03C3\u03C4\u03BF ${t.origin}`;default:return "\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"}}};function ww(){return {localeError:HA()}}var KA=()=>{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 ${U(t.values[0])}`:`Invalid option: expected one of ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Too big: expected ${t.origin??"value"} to have ${i}${t.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${t.origin??"value"} to be ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Too small: expected ${t.origin} to have ${i}${t.minimum.toString()} ${s.unit}`:`Too small: expected ${t.origin} to be ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.format]??t.format}`}case "not_multiple_of":return `Invalid number: must be a multiple of ${t.divisor}`;case "unrecognized_keys":return `Unrecognized key${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Invalid key in ${t.origin}`;case "invalid_union":return t.options&&Array.isArray(t.options)&&t.options.length>0?`Invalid discriminator value. Expected ${t.options.map(s=>`'${s}'`).join(" | ")}`:"Invalid input";case "invalid_element":return `Invalid value in ${t.origin}`;default:return "Invalid input"}}};function jd(){return {localeError:KA()}}var GA=()=>{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 ${U(t.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Tro granda: atendi\u011Dis ke ${t.origin??"valoro"} havu ${i}${t.maximum.toString()} ${s.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${t.origin??"valoro"} havu ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Tro malgranda: atendi\u011Dis ke ${t.origin} havu ${i}${t.minimum.toString()} ${s.unit}`:`Tro malgranda: atendi\u011Dis ke ${t.origin} estu ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${i.prefix}"`:i.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${i.suffix}"`:i.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${i.includes}"`:i.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${i.pattern}`:`Nevalida ${r[i.format]??t.format}`}case "not_multiple_of":return `Nevalida nombro: devas esti oblo de ${t.divisor}`;case "unrecognized_keys":return `Nekonata${t.keys.length>1?"j":""} \u015Dlosilo${t.keys.length>1?"j":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Nevalida \u015Dlosilo en ${t.origin}`;case "invalid_union":return "Nevalida enigo";case "invalid_element":return `Nevalida valoro en ${t.origin}`;default:return "Nevalida enigo"}}};function Rw(){return {localeError:GA()}}var JA=()=>{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 ${U(t.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin),c=o[t.origin]??t.origin;return s?`Demasiado grande: se esperaba que ${c??"valor"} tuviera ${i}${t.maximum.toString()} ${s.unit??"elementos"}`:`Demasiado grande: se esperaba que ${c??"valor"} fuera ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin),c=o[t.origin]??t.origin;return s?`Demasiado peque\xF1o: se esperaba que ${c} tuviera ${i}${t.minimum.toString()} ${s.unit}`:`Demasiado peque\xF1o: se esperaba que ${c} fuera ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${i.prefix}"`:i.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${i.suffix}"`:i.format==="includes"?`Cadena inv\xE1lida: debe incluir "${i.includes}"`:i.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${i.pattern}`:`Inv\xE1lido ${r[i.format]??t.format}`}case "not_multiple_of":return `N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${t.divisor}`;case "unrecognized_keys":return `Llave${t.keys.length>1?"s":""} desconocida${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Llave inv\xE1lida en ${o[t.origin]??t.origin}`;case "invalid_union":return "Entrada inv\xE1lida";case "invalid_element":return `Valor inv\xE1lido en ${o[t.origin]??t.origin}`;default:return "Entrada inv\xE1lida"}}};function Cw(){return {localeError:JA()}}var WA=()=>{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 ${U(t.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${R(t.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${t.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${t.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${t.maximum.toString()} \u0628\u0627\u0634\u062F`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${t.origin} \u0628\u0627\u06CC\u062F ${i}${t.minimum.toString()} ${s.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${t.origin} \u0628\u0627\u06CC\u062F ${i}${t.minimum.toString()} \u0628\u0627\u0634\u062F`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:i.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:i.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${i.includes}" \u0628\u0627\u0634\u062F`:i.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${i.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${r[i.format]??t.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case "not_multiple_of":return `\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${t.divisor} \u0628\u0627\u0634\u062F`;case "unrecognized_keys":return `\u06A9\u0644\u06CC\u062F${t.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${R(t.keys,", ")}`;case "invalid_key":return `\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${t.origin}`;case "invalid_union":return "\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case "invalid_element":return `\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${t.origin}`;default:return "\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function Ew(){return {localeError:WA()}}var XA=()=>{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 ${U(t.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Liian suuri: ${s.subject} t\xE4ytyy olla ${i}${t.maximum.toString()} ${s.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Liian pieni: ${s.subject} t\xE4ytyy olla ${i}${t.minimum.toString()} ${s.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${i.prefix}"`:i.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${i.suffix}"`:i.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${i.includes}"`:i.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${i.pattern}`:`Virheellinen ${r[i.format]??t.format}`}case "not_multiple_of":return `Virheellinen luku: t\xE4ytyy olla luvun ${t.divisor} monikerta`;case "unrecognized_keys":return `${t.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${R(t.keys,", ")}`;case "invalid_key":return "Virheellinen avain tietueessa";case "invalid_union":return "Virheellinen unioni";case "invalid_element":return "Virheellinen arvo joukossa";default:return "Virheellinen sy\xF6te"}}};function zw(){return {localeError:XA()}}var YA=()=>{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 : ${U(t.values[0])} attendu`:`Option invalide : une valeur parmi ${R(t.values,"|")} attendue`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Trop grand : ${o[t.origin]??"valeur"} doit ${s.verb} ${i}${t.maximum.toString()} ${s.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${o[t.origin]??"valeur"} doit \xEAtre ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Trop petit : ${o[t.origin]??"valeur"} doit ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`Trop petit : ${o[t.origin]??"valeur"} doit \xEAtre ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${i.pattern}`:`${r[i.format]??t.format} invalide`}case "not_multiple_of":return `Nombre invalide : doit \xEAtre un multiple de ${t.divisor}`;case "unrecognized_keys":return `Cl\xE9${t.keys.length>1?"s":""} non reconnue${t.keys.length>1?"s":""} : ${R(t.keys,", ")}`;case "invalid_key":return `Cl\xE9 invalide dans ${t.origin}`;case "invalid_union":return "Entr\xE9e invalide";case "invalid_element":return `Valeur invalide dans ${t.origin}`;default:return "Entr\xE9e invalide"}}};function Ow(){return {localeError:YA()}}var QA=()=>{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 ${U(t.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"\u2264":"<",s=n(t.origin);return s?`Trop grand : attendu que ${t.origin??"la valeur"} ait ${i}${t.maximum.toString()} ${s.unit}`:`Trop grand : attendu que ${t.origin??"la valeur"} soit ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?"\u2265":">",s=n(t.origin);return s?`Trop petit : attendu que ${t.origin} ait ${i}${t.minimum.toString()} ${s.unit}`:`Trop petit : attendu que ${t.origin} soit ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${i.pattern}`:`${r[i.format]??t.format} invalide`}case "not_multiple_of":return `Nombre invalide : doit \xEAtre un multiple de ${t.divisor}`;case "unrecognized_keys":return `Cl\xE9${t.keys.length>1?"s":""} non reconnue${t.keys.length>1?"s":""} : ${R(t.keys,", ")}`;case "invalid_key":return `Cl\xE9 invalide dans ${t.origin}`;case "invalid_union":return "Entr\xE9e invalide";case "invalid_element":return `Valeur invalide dans ${t.origin}`;default:return "Entr\xE9e invalide"}}};function jw(){return {localeError:QA()}}var eD=()=>{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 ${U(d.values[0])}`;let m=d.values.map(f=>U(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 h=d.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${d.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${d.maximum}`;return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${h}`}if(d.origin==="array"||d.origin==="set"){let h=d.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",P=d.inclusive?`${d.maximum} ${m?.unit??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${d.maximum} ${m?.unit??""}`;return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} ${h} \u05DC\u05D4\u05DB\u05D9\u05DC ${P}`.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 h=d.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${d.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${d.minimum}`;return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${h}`}if(d.origin==="array"||d.origin==="set"){let h=d.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(d.minimum===1&&d.inclusive){let x=(d.origin==="set","\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3");return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${h} \u05DC\u05D4\u05DB\u05D9\u05DC ${x}`}let P=d.inclusive?`${d.minimum} ${m?.unit??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${d.minimum} ${m?.unit??""}`;return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${h} \u05DC\u05D4\u05DB\u05D9\u05DC ${P}`.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,h=(p?.gender??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return `${g} \u05DC\u05D0 ${h}`}case "not_multiple_of":return `\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${d.divisor}`;case "unrecognized_keys":return `\u05DE\u05E4\u05EA\u05D7${d.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${d.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${R(d.keys,", ")}`;case "invalid_key":return "\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case "invalid_union":return "\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case "invalid_element":return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${t(d.origin??"array")}`;default:return "\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function Uw(){return {localeError:eD()}}var tD=()=>{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 ${U(t.values[0])}`:`Neispravna opcija: o\u010Dekivano jedno od ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin),c=o[t.origin]??t.origin;return s?`Preveliko: o\u010Dekivano da ${c??"vrijednost"} ima ${i}${t.maximum.toString()} ${s.unit??"elemenata"}`:`Preveliko: o\u010Dekivano da ${c??"vrijednost"} bude ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin),c=o[t.origin]??t.origin;return s?`Premalo: o\u010Dekivano da ${c} ima ${i}${t.minimum.toString()} ${s.unit}`:`Premalo: o\u010Dekivano da ${c} bude ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Neispravan tekst: mora zapo\u010Dinjati s "${i.prefix}"`:i.format==="ends_with"?`Neispravan tekst: mora zavr\u0161avati s "${i.suffix}"`:i.format==="includes"?`Neispravan tekst: mora sadr\u017Eavati "${i.includes}"`:i.format==="regex"?`Neispravan tekst: mora odgovarati uzorku ${i.pattern}`:`Neispravna ${r[i.format]??t.format}`}case "not_multiple_of":return `Neispravan broj: mora biti vi\u0161ekratnik od ${t.divisor}`;case "unrecognized_keys":return `Neprepoznat${t.keys.length>1?"i klju\u010Devi":" klju\u010D"}: ${R(t.keys,", ")}`;case "invalid_key":return `Neispravan klju\u010D u ${o[t.origin]??t.origin}`;case "invalid_union":return "Neispravan unos";case "invalid_element":return `Neispravna vrijednost u ${o[t.origin]??t.origin}`;default:return "Neispravan unos"}}};function Aw(){return {localeError:tD()}}var nD=()=>{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 ${U(t.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`T\xFAl nagy: ${t.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${i}${t.maximum.toString()} ${s.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${t.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${t.origin} m\xE9rete t\xFAl kicsi ${i}${t.minimum.toString()} ${s.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${t.origin} t\xFAl kicsi ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\xC9rv\xE9nytelen string: "${i.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:i.format==="ends_with"?`\xC9rv\xE9nytelen string: "${i.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:i.format==="includes"?`\xC9rv\xE9nytelen string: "${i.includes}" \xE9rt\xE9ket kell tartalmaznia`:i.format==="regex"?`\xC9rv\xE9nytelen string: ${i.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${r[i.format]??t.format}`}case "not_multiple_of":return `\xC9rv\xE9nytelen sz\xE1m: ${t.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case "unrecognized_keys":return `Ismeretlen kulcs${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `\xC9rv\xE9nytelen kulcs ${t.origin}`;case "invalid_union":return "\xC9rv\xE9nytelen bemenet";case "invalid_element":return `\xC9rv\xE9nytelen \xE9rt\xE9k: ${t.origin}`;default:return "\xC9rv\xE9nytelen bemenet"}}};function Dw(){return {localeError:nD()}}function Fw(e,n,r){return Math.abs(e)===1?n:r}function ra(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 rD=()=>{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 ${U(t.values[1])}`:`\u054D\u056D\u0561\u056C \u057F\u0561\u0580\u0562\u0565\u0580\u0561\u056F\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 \u0570\u0565\u057F\u0587\u0575\u0561\u056C\u0576\u0565\u0580\u056B\u0581 \u0574\u0565\u056F\u0568\u055D ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);if(s){let c=Number(t.maximum),u=Fw(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 ${ra(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 ${ra(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=Fw(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 ${ra(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 ${ra(t.origin)} \u056C\u056B\u0576\u056B ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057D\u056F\u057D\u057E\u056B "${i.prefix}"-\u0578\u057E`:i.format==="ends_with"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0561\u057E\u0561\u0580\u057F\u057E\u056B "${i.suffix}"-\u0578\u057E`:i.format==="includes"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057A\u0561\u0580\u0578\u0582\u0576\u0561\u056F\u056B "${i.includes}"`:i.format==="regex"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0570\u0561\u0574\u0561\u057A\u0561\u057F\u0561\u057D\u056D\u0561\u0576\u056B ${i.pattern} \u0571\u0587\u0561\u0579\u0561\u0583\u056B\u0576`:`\u054D\u056D\u0561\u056C ${r[i.format]??t.format}`}case "not_multiple_of":return `\u054D\u056D\u0561\u056C \u0569\u056B\u057E\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0562\u0561\u0566\u0574\u0561\u057A\u0561\u057F\u056B\u056F \u056C\u056B\u0576\u056B ${t.divisor}-\u056B`;case "unrecognized_keys":return `\u0549\u0573\u0561\u0576\u0561\u0579\u057E\u0561\u056E \u0562\u0561\u0576\u0561\u056C\u056B${t.keys.length>1?"\u0576\u0565\u0580":""}. ${R(t.keys,", ")}`;case "invalid_key":return `\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${ra(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 ${ra(t.origin)}-\u0578\u0582\u0574`;default:return "\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574"}}};function Nw(){return {localeError:rD()}}var iD=()=>{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 ${U(t.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Terlalu besar: diharapkan ${t.origin??"value"} memiliki ${i}${t.maximum.toString()} ${s.unit??"elemen"}`:`Terlalu besar: diharapkan ${t.origin??"value"} menjadi ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Terlalu kecil: diharapkan ${t.origin} memiliki ${i}${t.minimum.toString()} ${s.unit}`:`Terlalu kecil: diharapkan ${t.origin} menjadi ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`String tidak valid: harus dimulai dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak valid: harus berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak valid: harus menyertakan "${i.includes}"`:i.format==="regex"?`String tidak valid: harus sesuai pola ${i.pattern}`:`${r[i.format]??t.format} tidak valid`}case "not_multiple_of":return `Angka tidak valid: harus kelipatan dari ${t.divisor}`;case "unrecognized_keys":return `Kunci tidak dikenali ${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Kunci tidak valid di ${t.origin}`;case "invalid_union":return "Input tidak valid";case "invalid_element":return `Nilai tidak valid di ${t.origin}`;default:return "Input tidak valid"}}};function Lw(){return {localeError:iD()}}var oD=()=>{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 ${U(t.values[0])}`:`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin??"gildi"} hafi ${i}${t.maximum.toString()} ${s.unit??"hluti"}`:`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin??"gildi"} s\xE9 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin} hafi ${i}${t.minimum.toString()} ${s.unit}`:`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin} s\xE9 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${i.prefix}"`:i.format==="ends_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${i.suffix}"`:i.format==="includes"?`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${i.includes}"`:i.format==="regex"?`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${i.pattern}`:`Rangt ${r[i.format]??t.format}`}case "not_multiple_of":return `R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${t.divisor}`;case "unrecognized_keys":return `\xD3\xFEekkt ${t.keys.length>1?"ir lyklar":"ur lykill"}: ${R(t.keys,", ")}`;case "invalid_key":return `Rangur lykill \xED ${t.origin}`;case "invalid_union":return "Rangt gildi";case "invalid_element":return `Rangt gildi \xED ${t.origin}`;default:return "Rangt gildi"}}};function Bw(){return {localeError:oD()}}var aD=()=>{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 ${U(t.values[0])}`:`Opzione non valida: atteso uno tra ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Troppo grande: ${t.origin??"valore"} deve avere ${i}${t.maximum.toString()} ${s.unit??"elementi"}`:`Troppo grande: ${t.origin??"valore"} deve essere ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Troppo piccolo: ${t.origin} deve avere ${i}${t.minimum.toString()} ${s.unit}`:`Troppo piccolo: ${t.origin} deve essere ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Stringa non valida: deve iniziare con "${i.prefix}"`:i.format==="ends_with"?`Stringa non valida: deve terminare con "${i.suffix}"`:i.format==="includes"?`Stringa non valida: deve includere "${i.includes}"`:i.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${i.pattern}`:`Input non valido: ${r[i.format]??t.format}`}case "not_multiple_of":return `Numero non valido: deve essere un multiplo di ${t.divisor}`;case "unrecognized_keys":return `Chiav${t.keys.length>1?"i":"e"} non riconosciut${t.keys.length>1?"e":"a"}: ${R(t.keys,", ")}`;case "invalid_key":return `Chiave non valida in ${t.origin}`;case "invalid_union":return "Input non valido";case "invalid_element":return `Valore non valido in ${t.origin}`;default:return "Input non valido"}}};function Vw(){return {localeError:aD()}}var sD=()=>{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: ${U(t.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${R(t.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case "too_big":{let i=t.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",s=n(t.origin);return s?`\u5927\u304D\u3059\u304E\u308B\u5024: ${t.origin??"\u5024"}\u306F${t.maximum.toString()}${s.unit??"\u8981\u7D20"}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${t.origin??"\u5024"}\u306F${t.maximum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case "too_small":{let i=t.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",s=n(t.origin);return s?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${t.origin}\u306F${t.minimum.toString()}${s.unit}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${t.origin}\u306F${t.minimum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${i.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${r[i.format]??t.format}`}case "not_multiple_of":return `\u7121\u52B9\u306A\u6570\u5024: ${t.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case "unrecognized_keys":return `\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${t.keys.length>1?"\u7FA4":""}: ${R(t.keys,"\u3001")}`;case "invalid_key":return `${t.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case "invalid_union":return "\u7121\u52B9\u306A\u5165\u529B";case "invalid_element":return `${t.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return "\u7121\u52B9\u306A\u5165\u529B"}}};function Mw(){return {localeError:sD()}}var cD=()=>{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 ${U(t.values[0])}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${R(t.values,"|")}-\u10D3\u10D0\u10DC`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${s.verb} ${i}${t.maximum.toString()} ${s.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin} ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin} \u10D8\u10E7\u10DD\u10E1 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.prefix}"-\u10D8\u10D7`:i.format==="ends_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.suffix}"-\u10D8\u10D7`:i.format==="includes"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${i.includes}"-\u10E1`:i.format==="regex"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${i.pattern}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${t.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case "unrecognized_keys":return `\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${t.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${R(t.keys,", ")}`;case "invalid_key":return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${t.origin}-\u10E8\u10D8`;case "invalid_union":return "\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case "invalid_element":return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${t.origin}-\u10E8\u10D8`;default:return "\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};function Zw(){return {localeError:cD()}}var lD=()=>{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 ${U(t.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${t.maximum.toString()} ${s.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin} ${i} ${t.minimum.toString()} ${s.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin} ${i} ${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${i.prefix}"`:i.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${i.suffix}"`:i.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${i.includes}"`:i.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${i.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${t.divisor}`;case "unrecognized_keys":return `\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${R(t.keys,", ")}`;case "invalid_key":return `\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${t.origin}`;case "invalid_union":return "\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case "invalid_element":return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${t.origin}`;default:return "\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function Ud(){return {localeError:lD()}}function qw(){return Ud()}var uD=()=>{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 ${U(t.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${R(t.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case "too_big":{let i=t.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",s=i==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",c=n(t.origin),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: ${R(t.keys,", ")}`;case "invalid_key":return `\uC798\uBABB\uB41C \uD0A4: ${t.origin}`;case "invalid_union":return "\uC798\uBABB\uB41C \uC785\uB825";case "invalid_element":return `\uC798\uBABB\uB41C \uAC12: ${t.origin}`;default:return "\uC798\uBABB\uB41C \uC785\uB825"}}};function Hw(){return {localeError:uD()}}var jc=e=>e.charAt(0).toUpperCase()+e.slice(1);function Kw(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 dD=()=>{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 ${U(t.values[0])}`:`Privalo b\u016Bti vienas i\u0161 ${R(t.values,"|")} pasirinkim\u0173`;case "too_big":{let i=o[t.origin]??t.origin,s=n(t.origin,Kw(Number(t.maximum)),t.inclusive??false,"smaller");if(s?.verb)return `${jc(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 `${jc(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,Kw(Number(t.minimum)),t.inclusive??false,"bigger");if(s?.verb)return `${jc(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 `${jc(i??t.origin??"reik\u0161m\u0117")} turi b\u016Bti ${c} ${t.minimum.toString()} ${s?.unit}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Eilut\u0117 privalo prasid\u0117ti "${i.prefix}"`:i.format==="ends_with"?`Eilut\u0117 privalo pasibaigti "${i.suffix}"`:i.format==="includes"?`Eilut\u0117 privalo \u012Ftraukti "${i.includes}"`:i.format==="regex"?`Eilut\u0117 privalo atitikti ${i.pattern}`:`Neteisingas ${r[i.format]??t.format}`}case "not_multiple_of":return `Skai\u010Dius privalo b\u016Bti ${t.divisor} kartotinis.`;case "unrecognized_keys":return `Neatpa\u017Eint${t.keys.length>1?"i":"as"} rakt${t.keys.length>1?"ai":"as"}: ${R(t.keys,", ")}`;case "invalid_key":return "Rastas klaidingas raktas";case "invalid_union":return "Klaidinga \u012Fvestis";case "invalid_element":{let i=o[t.origin]??t.origin;return `${jc(i??t.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return "Klaidinga \u012Fvestis"}}};function Gw(){return {localeError:dD()}}var mD=()=>{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 ${U(t.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${i}${t.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin} \u0434\u0430 \u0438\u043C\u0430 ${i}${t.minimum.toString()} ${s.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${i.pattern}`:`Invalid ${r[i.format]??t.format}`}case "not_multiple_of":return `\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${t.divisor}`;case "unrecognized_keys":return `${t.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${R(t.keys,", ")}`;case "invalid_key":return `\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${t.origin}`;case "invalid_union":return "\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case "invalid_element":return `\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${t.origin}`;default:return "\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function Jw(){return {localeError:mD()}}var pD=()=>{let e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function n(t){return e[t]??null}let r={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"},o={nan:"NaN",number:"nombor"};return t=>{switch(t.code){case "invalid_type":{let i=o[t.expected]??t.expected,s=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 ${U(t.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Terlalu besar: dijangka ${t.origin??"nilai"} ${s.verb} ${i}${t.maximum.toString()} ${s.unit??"elemen"}`:`Terlalu besar: dijangka ${t.origin??"nilai"} adalah ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Terlalu kecil: dijangka ${t.origin} ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`Terlalu kecil: dijangka ${t.origin} adalah ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`String tidak sah: mesti bermula dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak sah: mesti mengandungi "${i.includes}"`:i.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${i.pattern}`:`${r[i.format]??t.format} tidak sah`}case "not_multiple_of":return `Nombor tidak sah: perlu gandaan ${t.divisor}`;case "unrecognized_keys":return `Kunci tidak dikenali: ${R(t.keys,", ")}`;case "invalid_key":return `Kunci tidak sah dalam ${t.origin}`;case "invalid_union":return "Input tidak sah";case "invalid_element":return `Nilai tidak sah dalam ${t.origin}`;default:return "Input tidak sah"}}};function Ww(){return {localeError:pD()}}var fD=()=>{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 ${U(t.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin),c=t.origin==="date"?"laat":t.origin==="string"?"lang":"groot";return s?`Te ${c}: verwacht dat ${t.origin??"waarde"} ${i}${t.maximum.toString()} ${s.unit??"elementen"} ${s.verb}`:`Te ${c}: verwacht dat ${t.origin??"waarde"} ${i}${t.maximum.toString()} is`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin),c=t.origin==="date"?"vroeg":t.origin==="string"?"kort":"klein";return s?`Te ${c}: verwacht dat ${t.origin} ${i}${t.minimum.toString()} ${s.unit} ${s.verb}`:`Te ${c}: verwacht dat ${t.origin} ${i}${t.minimum.toString()} is`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ongeldige tekst: moet met "${i.prefix}" beginnen`:i.format==="ends_with"?`Ongeldige tekst: moet op "${i.suffix}" eindigen`:i.format==="includes"?`Ongeldige tekst: moet "${i.includes}" bevatten`:i.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${i.pattern}`:`Ongeldig: ${r[i.format]??t.format}`}case "not_multiple_of":return `Ongeldig getal: moet een veelvoud van ${t.divisor} zijn`;case "unrecognized_keys":return `Onbekende key${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Ongeldige key in ${t.origin}`;case "invalid_union":return "Ongeldige invoer";case "invalid_element":return `Ongeldige waarde in ${t.origin}`;default:return "Ongeldige invoer"}}};function Xw(){return {localeError:fD()}}var gD=()=>{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 ${U(t.values[0])}`:`Ugyldig valg: forventet en av ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`For stor(t): forventet ${t.origin??"value"} til \xE5 ha ${i}${t.maximum.toString()} ${s.unit??"elementer"}`:`For stor(t): forventet ${t.origin??"value"} til \xE5 ha ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`For lite(n): forventet ${t.origin} til \xE5 ha ${i}${t.minimum.toString()} ${s.unit}`:`For lite(n): forventet ${t.origin} til \xE5 ha ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${i.prefix}"`:i.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${i.suffix}"`:i.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${i.includes}"`:i.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${i.pattern}`:`Ugyldig ${r[i.format]??t.format}`}case "not_multiple_of":return `Ugyldig tall: m\xE5 v\xE6re et multiplum av ${t.divisor}`;case "unrecognized_keys":return `${t.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${R(t.keys,", ")}`;case "invalid_key":return `Ugyldig n\xF8kkel i ${t.origin}`;case "invalid_union":return "Ugyldig input";case "invalid_element":return `Ugyldig verdi i ${t.origin}`;default:return "Ugyldig input"}}};function Yw(){return {localeError:gD()}}var hD=()=>{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 ${U(t.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Fazla b\xFCy\xFCk: ${t.origin??"value"}, ${i}${t.maximum.toString()} ${s.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${t.origin??"value"}, ${i}${t.maximum.toString()} olmal\u0131yd\u0131.`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Fazla k\xFC\xE7\xFCk: ${t.origin}, ${i}${t.minimum.toString()} ${s.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${t.origin}, ${i}${t.minimum.toString()} olmal\u0131yd\u0131.`}case "invalid_format":{let i=t;return i.format==="starts_with"?`F\xE2sit metin: "${i.prefix}" ile ba\u015Flamal\u0131.`:i.format==="ends_with"?`F\xE2sit metin: "${i.suffix}" ile bitmeli.`:i.format==="includes"?`F\xE2sit metin: "${i.includes}" ihtiv\xE2 etmeli.`:i.format==="regex"?`F\xE2sit metin: ${i.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${r[i.format]??t.format}`}case "not_multiple_of":return `F\xE2sit say\u0131: ${t.divisor} kat\u0131 olmal\u0131yd\u0131.`;case "unrecognized_keys":return `Tan\u0131nmayan anahtar ${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} i\xE7in tan\u0131nmayan anahtar var.`;case "invalid_union":return "Giren tan\u0131namad\u0131.";case "invalid_element":return `${t.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return "K\u0131ymet tan\u0131namad\u0131."}}};function Qw(){return {localeError:hD()}}var bD=()=>{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 ${U(t.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${R(t.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${t.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${t.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${t.maximum.toString()} \u0648\u064A`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${t.origin} \u0628\u0627\u06CC\u062F ${i}${t.minimum.toString()} ${s.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${t.origin} \u0628\u0627\u06CC\u062F ${i}${t.minimum.toString()} \u0648\u064A`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:i.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:i.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${i.includes}" \u0648\u0644\u0631\u064A`:i.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${i.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${r[i.format]??t.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case "not_multiple_of":return `\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${t.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case "unrecognized_keys":return `\u0646\u0627\u0633\u0645 ${t.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${R(t.keys,", ")}`;case "invalid_key":return `\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${t.origin} \u06A9\u06D0`;case "invalid_union":return "\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case "invalid_element":return `\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${t.origin} \u06A9\u06D0`;default:return "\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function eR(){return {localeError:bD()}}var _D=()=>{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 ${U(t.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${t.maximum.toString()} ${s.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${t.minimum.toString()} ${s.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${i.prefix}"`:i.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${i.suffix}"`:i.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${i.includes}"`:i.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${i.pattern}`:`Nieprawid\u0142ow(y/a/e) ${r[i.format]??t.format}`}case "not_multiple_of":return `Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${t.divisor}`;case "unrecognized_keys":return `Nierozpoznane klucze${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Nieprawid\u0142owy klucz w ${t.origin}`;case "invalid_union":return "Nieprawid\u0142owe dane wej\u015Bciowe";case "invalid_element":return `Nieprawid\u0142owa warto\u015B\u0107 w ${t.origin}`;default:return "Nieprawid\u0142owe dane wej\u015Bciowe"}}};function tR(){return {localeError:_D()}}var vD=()=>{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 ${U(t.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Muito grande: esperado que ${t.origin??"valor"} tivesse ${i}${t.maximum.toString()} ${s.unit??"elementos"}`:`Muito grande: esperado que ${t.origin??"valor"} fosse ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Muito pequeno: esperado que ${t.origin} tivesse ${i}${t.minimum.toString()} ${s.unit}`:`Muito pequeno: esperado que ${t.origin} fosse ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${i.prefix}"`:i.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${i.suffix}"`:i.format==="includes"?`Texto inv\xE1lido: deve incluir "${i.includes}"`:i.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${i.pattern}`:`${r[i.format]??t.format} inv\xE1lido`}case "not_multiple_of":return `N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${t.divisor}`;case "unrecognized_keys":return `Chave${t.keys.length>1?"s":""} desconhecida${t.keys.length>1?"s":""}: ${R(t.keys,", ")}`;case "invalid_key":return `Chave inv\xE1lida em ${t.origin}`;case "invalid_union":return "Entrada inv\xE1lida";case "invalid_element":return `Valor inv\xE1lido em ${t.origin}`;default:return "Campo inv\xE1lido"}}};function nR(){return {localeError:vD()}}var yD=()=>{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 ${U(t.values[0])}`:`Op\u021Biune invalid\u0103: a\u0219teptat una dintre ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Prea mare: a\u0219teptat ca ${t.origin??"valoarea"} ${s.verb} ${i}${t.maximum.toString()} ${s.unit??"elemente"}`:`Prea mare: a\u0219teptat ca ${t.origin??"valoarea"} s\u0103 fie ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Prea mic: a\u0219teptat ca ${t.origin} ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`Prea mic: a\u0219teptat ca ${t.origin} s\u0103 fie ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0218ir invalid: trebuie s\u0103 \xEEnceap\u0103 cu "${i.prefix}"`:i.format==="ends_with"?`\u0218ir invalid: trebuie s\u0103 se termine cu "${i.suffix}"`:i.format==="includes"?`\u0218ir invalid: trebuie s\u0103 includ\u0103 "${i.includes}"`:i.format==="regex"?`\u0218ir invalid: trebuie s\u0103 se potriveasc\u0103 cu modelul ${i.pattern}`:`Format invalid: ${r[i.format]??t.format}`}case "not_multiple_of":return `Num\u0103r invalid: trebuie s\u0103 fie multiplu de ${t.divisor}`;case "unrecognized_keys":return `Chei nerecunoscute: ${R(t.keys,", ")}`;case "invalid_key":return `Cheie invalid\u0103 \xEEn ${t.origin}`;case "invalid_union":return "Intrare invalid\u0103";case "invalid_element":return `Valoare invalid\u0103 \xEEn ${t.origin}`;default:return "Intrare invalid\u0103"}}};function rR(){return {localeError:yD()}}function iR(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 xD=()=>{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 ${U(t.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);if(s){let c=Number(t.maximum),u=iR(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=iR(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":""}: ${R(t.keys,", ")}`;case "invalid_key":return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${t.origin}`;case "invalid_union":return "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case "invalid_element":return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${t.origin}`;default:return "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function oR(){return {localeError:xD()}}var SD=()=>{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 ${U(t.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Preveliko: pri\u010Dakovano, da bo ${t.origin??"vrednost"} imelo ${i}${t.maximum.toString()} ${s.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${t.origin??"vrednost"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Premajhno: pri\u010Dakovano, da bo ${t.origin} imelo ${i}${t.minimum.toString()} ${s.unit}`:`Premajhno: pri\u010Dakovano, da bo ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${i.prefix}"`:i.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${i.suffix}"`:i.format==="includes"?`Neveljaven niz: mora vsebovati "${i.includes}"`:i.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${i.pattern}`:`Neveljaven ${r[i.format]??t.format}`}case "not_multiple_of":return `Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${t.divisor}`;case "unrecognized_keys":return `Neprepoznan${t.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${R(t.keys,", ")}`;case "invalid_key":return `Neveljaven klju\u010D v ${t.origin}`;case "invalid_union":return "Neveljaven vnos";case "invalid_element":return `Neveljavna vrednost v ${t.origin}`;default:return "Neveljaven vnos"}}};function aR(){return {localeError:SD()}}var ID=()=>{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 ${U(t.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`F\xF6r stor(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${i}${t.maximum.toString()} ${s.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${t.origin??"v\xE4rdet"} att ha ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`F\xF6r lite(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${i}${t.minimum.toString()} ${s.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${i.prefix}"`:i.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${i.suffix}"`:i.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${i.includes}"`:i.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${i.pattern}"`:`Ogiltig(t) ${r[i.format]??t.format}`}case "not_multiple_of":return `Ogiltigt tal: m\xE5ste vara en multipel av ${t.divisor}`;case "unrecognized_keys":return `${t.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${R(t.keys,", ")}`;case "invalid_key":return `Ogiltig nyckel i ${t.origin??"v\xE4rdet"}`;case "invalid_union":return "Ogiltig input";case "invalid_element":return `Ogiltigt v\xE4rde i ${t.origin??"v\xE4rdet"}`;default:return "Ogiltig input"}}};function sR(){return {localeError:ID()}}var PD=()=>{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 ${U(t.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${R(t.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${t.maximum.toString()} ${s.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${t.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin} ${i}${t.minimum.toString()} ${s.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin} ${i}${t.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${i.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${t.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case "unrecognized_keys":return `\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${t.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case "invalid_union":return "\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case "invalid_element":return `${t.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return "\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function cR(){return {localeError:PD()}}var kD=()=>{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 ${U(t.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",s=n(t.origin);return s?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${t.maximum.toString()} ${s.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",s=n(t.origin);return s?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${t.minimum.toString()} ${s.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${i.prefix}"`:i.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${i.suffix}"`:i.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${i.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:i.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${i.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${r[i.format]??t.format}`}case "not_multiple_of":return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${t.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case "unrecognized_keys":return `\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${R(t.keys,", ")}`;case "invalid_key":return `\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${t.origin}`;case "invalid_union":return "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case "invalid_element":return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${t.origin}`;default:return "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function lR(){return {localeError:kD()}}var TD=()=>{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 ${U(t.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\xC7ok b\xFCy\xFCk: beklenen ${t.origin??"de\u011Fer"} ${i}${t.maximum.toString()} ${s.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${t.origin??"de\u011Fer"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\xC7ok k\xFC\xE7\xFCk: beklenen ${t.origin} ${i}${t.minimum.toString()} ${s.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Ge\xE7ersiz metin: "${i.prefix}" ile ba\u015Flamal\u0131`:i.format==="ends_with"?`Ge\xE7ersiz metin: "${i.suffix}" ile bitmeli`:i.format==="includes"?`Ge\xE7ersiz metin: "${i.includes}" i\xE7ermeli`:i.format==="regex"?`Ge\xE7ersiz metin: ${i.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${r[i.format]??t.format}`}case "not_multiple_of":return `Ge\xE7ersiz say\u0131: ${t.divisor} ile tam b\xF6l\xFCnebilmeli`;case "unrecognized_keys":return `Tan\u0131nmayan anahtar${t.keys.length>1?"lar":""}: ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} i\xE7inde ge\xE7ersiz anahtar`;case "invalid_union":return "Ge\xE7ersiz de\u011Fer";case "invalid_element":return `${t.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return "Ge\xE7ersiz de\u011Fer"}}};function uR(){return {localeError:TD()}}var $D=()=>{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 ${U(t.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${s.verb} ${i}${t.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin} ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin} \u0431\u0443\u0434\u0435 ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${t.divisor}`;case "unrecognized_keys":return `\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${t.keys.length>1?"\u0456":""}: ${R(t.keys,", ")}`;case "invalid_key":return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${t.origin}`;case "invalid_union":return "\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case "invalid_element":return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${t.origin}`;default:return "\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function Ad(){return {localeError:$D()}}function dR(){return Ad()}var wD=()=>{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: ${U(t.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${R(t.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${t.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${i}${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${t.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${i}${t.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${t.origin} \u06A9\u06D2 ${i}${t.minimum.toString()} ${s.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${t.origin} \u06A9\u0627 ${i}${t.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${i.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${t.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case "unrecognized_keys":return `\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${t.keys.length>1?"\u0632":""}: ${R(t.keys,"\u060C ")}`;case "invalid_key":return `${t.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case "invalid_union":return "\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case "invalid_element":return `${t.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return "\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function mR(){return {localeError:wD()}}var RD=()=>{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 ${U(t.values[0])}`:`Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Juda katta: kutilgan ${t.origin??"qiymat"} ${i}${t.maximum.toString()} ${s.unit} ${s.verb}`:`Juda katta: kutilgan ${t.origin??"qiymat"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Juda kichik: kutilgan ${t.origin} ${i}${t.minimum.toString()} ${s.unit} ${s.verb}`:`Juda kichik: kutilgan ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Noto\u2018g\u2018ri satr: "${i.prefix}" bilan boshlanishi kerak`:i.format==="ends_with"?`Noto\u2018g\u2018ri satr: "${i.suffix}" bilan tugashi kerak`:i.format==="includes"?`Noto\u2018g\u2018ri satr: "${i.includes}" ni o\u2018z ichiga olishi kerak`:i.format==="regex"?`Noto\u2018g\u2018ri satr: ${i.pattern} shabloniga mos kelishi kerak`:`Noto\u2018g\u2018ri ${r[i.format]??t.format}`}case "not_multiple_of":return `Noto\u2018g\u2018ri raqam: ${t.divisor} ning karralisi bo\u2018lishi kerak`;case "unrecognized_keys":return `Noma\u2019lum kalit${t.keys.length>1?"lar":""}: ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} dagi kalit noto\u2018g\u2018ri`;case "invalid_union":return "Noto\u2018g\u2018ri kirish";case "invalid_element":return `${t.origin} da noto\u2018g\u2018ri qiymat`;default:return "Noto\u2018g\u2018ri kirish"}}};function pR(){return {localeError:RD()}}var CD=()=>{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 ${U(t.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${t.origin??"gi\xE1 tr\u1ECB"} ${s.verb} ${i}${t.maximum.toString()} ${s.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${t.origin??"gi\xE1 tr\u1ECB"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${t.origin} ${s.verb} ${i}${t.minimum.toString()} ${s.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${i.prefix}"`:i.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${i.suffix}"`:i.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${i.includes}"`:i.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${i.pattern}`:`${r[i.format]??t.format} kh\xF4ng h\u1EE3p l\u1EC7`}case "not_multiple_of":return `S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${t.divisor}`;case "unrecognized_keys":return `Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${R(t.keys,", ")}`;case "invalid_key":return `Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${t.origin}`;case "invalid_union":return "\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case "invalid_element":return `Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${t.origin}`;default:return "\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function fR(){return {localeError:CD()}}var ED=()=>{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 ${U(t.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${t.origin??"\u503C"} ${i}${t.maximum.toString()} ${s.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${t.origin??"\u503C"} ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${t.origin} ${i}${t.minimum.toString()} ${s.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${t.origin} ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.prefix}" \u5F00\u5934`:i.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.suffix}" \u7ED3\u5C3E`:i.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${i.pattern}`:`\u65E0\u6548${r[i.format]??t.format}`}case "not_multiple_of":return `\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${t.divisor} \u7684\u500D\u6570`;case "unrecognized_keys":return `\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${R(t.keys,", ")}`;case "invalid_key":return `${t.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case "invalid_union":return "\u65E0\u6548\u8F93\u5165";case "invalid_element":return `${t.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return "\u65E0\u6548\u8F93\u5165"}}};function gR(){return {localeError:ED()}}var zD=()=>{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 ${U(t.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${t.origin??"\u503C"} \u61C9\u70BA ${i}${t.maximum.toString()} ${s.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${t.origin??"\u503C"} \u61C9\u70BA ${i}${t.maximum.toString()}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${t.origin} \u61C9\u70BA ${i}${t.minimum.toString()} ${s.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${t.origin} \u61C9\u70BA ${i}${t.minimum.toString()}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.prefix}" \u958B\u982D`:i.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.suffix}" \u7D50\u5C3E`:i.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${i.pattern}`:`\u7121\u6548\u7684 ${r[i.format]??t.format}`}case "not_multiple_of":return `\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${t.divisor} \u7684\u500D\u6578`;case "unrecognized_keys":return `\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${t.keys.length>1?"\u5011":""}\uFF1A${R(t.keys,"\u3001")}`;case "invalid_key":return `${t.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case "invalid_union":return "\u7121\u6548\u7684\u8F38\u5165\u503C";case "invalid_element":return `${t.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return "\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function hR(){return {localeError:zD()}}var OD=()=>{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 ${U(t.values[0])}`:`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${R(t.values,"|")}`;case "too_big":{let i=t.inclusive?"<=":"<",s=n(t.origin);return s?`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${t.origin??"iye"} ${s.verb} ${i}${t.maximum} ${s.unit}`:`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${i}${t.maximum}`}case "too_small":{let i=t.inclusive?">=":">",s=n(t.origin);return s?`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${t.origin} ${s.verb} ${i}${t.minimum} ${s.unit}`:`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${i}${t.minimum}`}case "invalid_format":{let i=t;return i.format==="starts_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${i.prefix}"`:i.format==="ends_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${i.suffix}"`:i.format==="includes"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${i.includes}"`:i.format==="regex"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${i.pattern}`:`A\u1E63\xEC\u1E63e: ${r[i.format]??t.format}`}case "not_multiple_of":return `N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${t.divisor}`;case "unrecognized_keys":return `B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${R(t.keys,", ")}`;case "invalid_key":return `B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${t.origin}`;case "invalid_union":return "\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case "invalid_element":return `Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${t.origin}`;default:return "\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};function bR(){return {localeError:OD()}}var _R,U_=Symbol("ZodOutput"),A_=Symbol("ZodInput"),Dd=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 Fd(){return new Dd}(_R=globalThis).__zod_globalRegistry??(_R.__zod_globalRegistry=Fd());var bn=globalThis.__zod_globalRegistry;function D_(e,n){return new e({type:"string",...H(n)})}function F_(e,n){return new e({type:"string",coerce:true,...H(n)})}function Nd(e,n){return new e({type:"string",format:"email",check:"string_format",abort:false,...H(n)})}function Ac(e,n){return new e({type:"string",format:"guid",check:"string_format",abort:false,...H(n)})}function Ld(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,...H(n)})}function Bd(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,version:"v4",...H(n)})}function Vd(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,version:"v6",...H(n)})}function Md(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:false,version:"v7",...H(n)})}function Dc(e,n){return new e({type:"string",format:"url",check:"string_format",abort:false,...H(n)})}function Zd(e,n){return new e({type:"string",format:"emoji",check:"string_format",abort:false,...H(n)})}function qd(e,n){return new e({type:"string",format:"nanoid",check:"string_format",abort:false,...H(n)})}function Hd(e,n){return new e({type:"string",format:"cuid",check:"string_format",abort:false,...H(n)})}function Kd(e,n){return new e({type:"string",format:"cuid2",check:"string_format",abort:false,...H(n)})}function Gd(e,n){return new e({type:"string",format:"ulid",check:"string_format",abort:false,...H(n)})}function Jd(e,n){return new e({type:"string",format:"xid",check:"string_format",abort:false,...H(n)})}function Wd(e,n){return new e({type:"string",format:"ksuid",check:"string_format",abort:false,...H(n)})}function Xd(e,n){return new e({type:"string",format:"ipv4",check:"string_format",abort:false,...H(n)})}function Yd(e,n){return new e({type:"string",format:"ipv6",check:"string_format",abort:false,...H(n)})}function N_(e,n){return new e({type:"string",format:"mac",check:"string_format",abort:false,...H(n)})}function Qd(e,n){return new e({type:"string",format:"cidrv4",check:"string_format",abort:false,...H(n)})}function em(e,n){return new e({type:"string",format:"cidrv6",check:"string_format",abort:false,...H(n)})}function tm(e,n){return new e({type:"string",format:"base64",check:"string_format",abort:false,...H(n)})}function nm(e,n){return new e({type:"string",format:"base64url",check:"string_format",abort:false,...H(n)})}function rm(e,n){return new e({type:"string",format:"e164",check:"string_format",abort:false,...H(n)})}function im(e,n){return new e({type:"string",format:"jwt",check:"string_format",abort:false,...H(n)})}var L_={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function B_(e,n){return new e({type:"string",format:"datetime",check:"string_format",offset:false,local:false,precision:null,...H(n)})}function V_(e,n){return new e({type:"string",format:"date",check:"string_format",...H(n)})}function M_(e,n){return new e({type:"string",format:"time",check:"string_format",precision:null,...H(n)})}function Z_(e,n){return new e({type:"string",format:"duration",check:"string_format",...H(n)})}function q_(e,n){return new e({type:"number",checks:[],...H(n)})}function H_(e,n){return new e({type:"number",coerce:true,checks:[],...H(n)})}function K_(e,n){return new e({type:"number",check:"number_format",abort:false,format:"safeint",...H(n)})}function G_(e,n){return new e({type:"number",check:"number_format",abort:false,format:"float32",...H(n)})}function J_(e,n){return new e({type:"number",check:"number_format",abort:false,format:"float64",...H(n)})}function W_(e,n){return new e({type:"number",check:"number_format",abort:false,format:"int32",...H(n)})}function X_(e,n){return new e({type:"number",check:"number_format",abort:false,format:"uint32",...H(n)})}function Y_(e,n){return new e({type:"boolean",...H(n)})}function Q_(e,n){return new e({type:"boolean",coerce:true,...H(n)})}function ev(e,n){return new e({type:"bigint",...H(n)})}function tv(e,n){return new e({type:"bigint",coerce:true,...H(n)})}function nv(e,n){return new e({type:"bigint",check:"bigint_format",abort:false,format:"int64",...H(n)})}function rv(e,n){return new e({type:"bigint",check:"bigint_format",abort:false,format:"uint64",...H(n)})}function iv(e,n){return new e({type:"symbol",...H(n)})}function ov(e,n){return new e({type:"undefined",...H(n)})}function av(e,n){return new e({type:"null",...H(n)})}function sv(e){return new e({type:"any"})}function cv(e){return new e({type:"unknown"})}function lv(e,n){return new e({type:"never",...H(n)})}function uv(e,n){return new e({type:"void",...H(n)})}function dv(e,n){return new e({type:"date",...H(n)})}function mv(e,n){return new e({type:"date",coerce:true,...H(n)})}function pv(e,n){return new e({type:"nan",...H(n)})}function Lr(e,n){return new Id({check:"less_than",...H(n),value:e,inclusive:false})}function ir(e,n){return new Id({check:"less_than",...H(n),value:e,inclusive:true})}function Br(e,n){return new Pd({check:"greater_than",...H(n),value:e,inclusive:false})}function Un(e,n){return new Pd({check:"greater_than",...H(n),value:e,inclusive:true})}function om(e){return Br(0,e)}function am(e){return Lr(0,e)}function sm(e){return ir(0,e)}function cm(e){return Un(0,e)}function Ti(e,n){return new ab({check:"multiple_of",...H(n),value:e})}function $i(e,n){return new lb({check:"max_size",...H(n),maximum:e})}function Vr(e,n){return new ub({check:"min_size",...H(n),minimum:e})}function bo(e,n){return new db({check:"size_equals",...H(n),size:e})}function _o(e,n){return new mb({check:"max_length",...H(n),maximum:e})}function ni(e,n){return new pb({check:"min_length",...H(n),minimum:e})}function vo(e,n){return new fb({check:"length_equals",...H(n),length:e})}function ia(e,n){return new gb({check:"string_format",format:"regex",...H(n),pattern:e})}function oa(e){return new hb({check:"string_format",format:"lowercase",...H(e)})}function aa(e){return new bb({check:"string_format",format:"uppercase",...H(e)})}function sa(e,n){return new _b({check:"string_format",format:"includes",...H(n),includes:e})}function ca(e,n){return new vb({check:"string_format",format:"starts_with",...H(n),prefix:e})}function la(e,n){return new yb({check:"string_format",format:"ends_with",...H(n),suffix:e})}function lm(e,n,r){return new xb({check:"property",property:e,schema:n,...H(r)})}function ua(e,n){return new Sb({check:"mime_type",mime:e,...H(n)})}function kr(e){return new Ib({check:"overwrite",tx:e})}function da(e){return kr(n=>n.normalize(e))}function ma(){return kr(e=>e.trim())}function pa(){return kr(e=>e.toLowerCase())}function fa(){return kr(e=>e.toUpperCase())}function ga(){return kr(e=>vh(e))}function fv(e,n,r){return new e({type:"array",element:n,...H(r)})}function UD(e,n,r){return new e({type:"union",options:n,...H(r)})}function AD(e,n,r){return new e({type:"union",options:n,inclusive:false,...H(r)})}function DD(e,n,r,o){return new e({type:"union",options:r,discriminator:n,...H(o)})}function FD(e,n,r){return new e({type:"intersection",left:n,right:r})}function ND(e,n,r,o){let t=r instanceof ke,i=t?o:r,s=t?r:null;return new e({type:"tuple",items:n,rest:s,...H(i)})}function LD(e,n,r,o){return new e({type:"record",keyType:n,valueType:r,...H(o)})}function BD(e,n,r,o){return new e({type:"map",keyType:n,valueType:r,...H(o)})}function VD(e,n,r){return new e({type:"set",valueType:n,...H(r)})}function MD(e,n,r){let o=Array.isArray(n)?Object.fromEntries(n.map(t=>[t,t])):n;return new e({type:"enum",entries:o,...H(r)})}function ZD(e,n,r){return new e({type:"enum",entries:n,...H(r)})}function qD(e,n,r){return new e({type:"literal",values:Array.isArray(n)?n:[n],...H(r)})}function gv(e,n){return new e({type:"file",...H(n)})}function HD(e,n){return new e({type:"transform",transform:n})}function KD(e,n){return new e({type:"optional",innerType:n})}function GD(e,n){return new e({type:"nullable",innerType:n})}function JD(e,n,r){return new e({type:"default",innerType:n,get defaultValue(){return typeof r=="function"?r():xh(r)}})}function WD(e,n,r){return new e({type:"nonoptional",innerType:n,...H(r)})}function XD(e,n){return new e({type:"success",innerType:n})}function YD(e,n,r){return new e({type:"catch",innerType:n,catchValue:typeof r=="function"?r:()=>r})}function QD(e,n,r){return new e({type:"pipe",in:n,out:r})}function eF(e,n){return new e({type:"readonly",innerType:n})}function tF(e,n,r){return new e({type:"template_literal",parts:n,...H(r)})}function nF(e,n){return new e({type:"lazy",getter:n})}function rF(e,n){return new e({type:"promise",innerType:n})}function hv(e,n,r){let o=H(r);return o.abort??(o.abort=true),new e({type:"custom",check:"custom",fn:n,...o})}function bv(e,n,r){return new e({type:"custom",check:"custom",fn:n,...H(r)})}function _v(e,n){let r=vR(o=>(o.addIssue=t=>{if(typeof t=="string")o.issues.push(Xo(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(Xo(i));}},e(o.value,o)),n);return r}function vR(e,n){let r=new $t({check:"custom",...H(n)});return r._zod.check=e,r}function vv(e){let n=new $t({check:"describe"});return n._zod.onattach=[r=>{let o=bn.get(r)??{};bn.add(r,{...o,description:e});}],n._zod.check=()=>{},n}function yv(e){let n=new $t({check:"meta"});return n._zod.onattach=[r=>{let o=bn.get(r)??{};bn.add(r,{...o,...e});}],n._zod.check=()=>{},n}function xv(e,n){let r=H(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??Oc,u=e.Boolean??Ec,d=e.String??ho,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,h)=>{let P=f;return r.case!=="sensitive"&&(P=P.toLowerCase()),i.has(P)?true:s.has(P)?false:(h.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...s],input:h.value,inst:g,continue:false}),{})}),reverseTransform:((f,h)=>f===true?o[0]||"true":t[0]||"false"),error:r.error});return g}function ha(e,n,r,o={}){let t=H(o),i={...H(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 wi(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??bn,target:n,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function pt(e,n,r={path:[],schemaPath:[]}){var o;let t=e._zod.def,i=n.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;let s={schema:{},count:1,cycle:void 0,path:r.path};n.seen.set(e,s);let c=e._zod.toJSONSchema?.();if(c)s.schema=c;else {let m={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(n,s.schema,m);else {let 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),pt(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"&&An(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 Ri(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??(h=>h);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 Ci(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),h=f.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(h)):Object.assign(d,h),Object.assign(d,m),c._zod.parent===p)for(let x in d)x==="$ref"||x==="allOf"||x in m||delete d[x];if(h.$ref&&f.def)for(let x in d)x==="$ref"||x==="allOf"||x in f.def&&JSON.stringify(d[x])===JSON.stringify(f.def[x])&&delete d[x];}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 h in d)h==="$ref"||h==="allOf"||h in f.def&&JSON.stringify(d[h])===JSON.stringify(f.def[h])&&delete d[h];}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:ba(n,"input",e.processors),output:ba(n,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch{throw new Error("Error converting schema to JSON.")}}function An(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 An(o.element,r);if(o.type==="set")return An(o.valueType,r);if(o.type==="lazy")return An(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 An(o.innerType,r);if(o.type==="intersection")return An(o.left,r)||An(o.right,r);if(o.type==="record"||o.type==="map")return An(o.keyType,r)||An(o.valueType,r);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?true:An(o.in,r)||An(o.out,r);if(o.type==="object"){for(let t in o.shape)if(An(o.shape[t],r))return true;return false}if(o.type==="union"){for(let t of o.options)if(An(t,r))return true;return false}if(o.type==="tuple"){for(let t of o.items)if(An(t,r))return true;return !!(o.rest&&An(o.rest,r))}return false}var Sv=(e,n={})=>r=>{let o=wi({...r,processors:n});return pt(e,o),Ri(o,e),Ci(o,e)},ba=(e,n,r={})=>o=>{let{libraryOptions:t,target:i}=o??{},s=wi({...t??{},target:i,io:n,processors:r});return pt(e,s),Ri(s,e),Ci(s,e)};var iF={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Iv=(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=iF[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}))]);}},Pv=(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);},kv=(e,n,r,o)=>{r.type="boolean";},Tv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},$v=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},wv=(e,n,r,o)=>{n.target==="openapi-3.0"?(r.type="string",r.nullable=true,r.enum=[null]):r.type="null";},Rv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Cv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},Ev=(e,n,r,o)=>{r.not={};},zv=(e,n,r,o)=>{},Ov=(e,n,r,o)=>{},jv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},Uv=(e,n,r,o)=>{let t=e._zod.def,i=yc(t.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i;},Av=(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;},Dv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},Fv=(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;},Nv=(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);},Lv=(e,n,r,o)=>{r.type="boolean";},Bv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Vv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Mv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Zv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},qv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Hv=(e,n,r,o)=>{let t=r,i=e._zod.def,{minimum:s,maximum:c}=e._zod.bag;typeof s=="number"&&(t.minItems=s),typeof c=="number"&&(t.maxItems=c),t.type="array",t.items=pt(i.element,n,{...o,path:[...o.path,"items"]});},Kv=(e,n,r,o)=>{let t=r,i=e._zod.def;t.type="object",t.properties={};let s=i.shape;for(let d in s)t.properties[d]=pt(s[d],n,{...o,path:[...o.path,"properties",d]});let c=new Set(Object.keys(s)),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=pt(i.catchall,n,{...o,path:[...o.path,"additionalProperties"]})):n.io==="output"&&(t.additionalProperties=false);},dm=(e,n,r,o)=>{let t=e._zod.def,i=t.inclusive===false,s=t.options.map((c,u)=>pt(c,n,{...o,path:[...o.path,i?"oneOf":"anyOf",u]}));i?r.oneOf=s:r.anyOf=s;},Gv=(e,n,r,o)=>{let t=e._zod.def,i=pt(t.left,n,{...o,path:[...o.path,"allOf",0]}),s=pt(t.right,n,{...o,path:[...o.path,"allOf",1]}),c=d=>"allOf"in d&&Object.keys(d).length===1,u=[...c(i)?i.allOf:[i],...c(s)?s.allOf:[s]];r.allOf=u;},Jv=(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)=>pt(g,n,{...o,path:[...o.path,s,f]})),d=i.rest?pt(i.rest,n,{...o,path:[...o.path,c,...n.target==="openapi-3.0"?[i.items.length]:[]]}):null;n.target==="draft-2020-12"?(t.prefixItems=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);},Wv=(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=pt(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=pt(i.keyType,n,{...o,path:[...o.path,"propertyNames"]})),t.additionalProperties=pt(i.valueType,n,{...o,path:[...o.path,"additionalProperties"]});let d=s._zod.values;if(d){let m=[...d].filter(p=>typeof p=="string"||typeof p=="number");m.length>0&&(t.required=m);}},Xv=(e,n,r,o)=>{let t=e._zod.def,i=pt(t.innerType,n,o),s=n.seen.get(e);n.target==="openapi-3.0"?(s.ref=t.innerType,r.nullable=true):r.anyOf=[i,{type:"null"}];},Yv=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},Qv=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.default=JSON.parse(JSON.stringify(t.defaultValue));},ey=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,n.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(t.defaultValue)));},ty=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;let s;try{s=t.catchValue(void 0);}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s;},ny=(e,n,r,o)=>{let t=e._zod.def,i=t.in._zod.traits.has("$ZodTransform"),s=n.io==="input"?i?t.out:t.in:t.out;pt(s,n,o);let c=n.seen.get(e);c.ref=s;},ry=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.readOnly=true;},iy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},mm=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},oy=(e,n,r,o)=>{let t=e._zod.innerType;pt(t,n,o);let i=n.seen.get(e);i.ref=t;},um={string:Iv,number:Pv,boolean:kv,bigint:Tv,symbol:$v,null:wv,undefined:Rv,void:Cv,never:Ev,any:zv,unknown:Ov,date:jv,enum:Uv,literal:Av,nan:Dv,template_literal:Fv,file:Nv,success:Lv,custom:Bv,function:Vv,transform:Mv,map:Zv,set:qv,array:Hv,object:Kv,union:dm,intersection:Gv,tuple:Jv,record:Wv,nullable:Xv,nonoptional:Yv,default:Qv,prefault:ey,catch:ty,pipe:ny,readonly:ry,promise:iy,optional:mm,lazy:oy};function pm(e,n){if("_idmap"in e){let o=e,t=wi({...n,processors:um}),i={};for(let u of o._idmap.entries()){let[d,m]=u;pt(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;Ri(t,m),s[d]=Ci(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=wi({...n,processors:um});return pt(e,r),Ri(r,e),Ci(r,e)}var fm=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=wi({processors:um,target:r,...n?.metadata&&{metadata:n.metadata},...n?.unrepresentable&&{unrepresentable:n.unrepresentable},...n?.override&&{override:n.override},...n?.io&&{io:n.io}});}process(n,r={path:[],schemaPath:[]}){return pt(n,this.ctx,r)}emit(n,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),Ri(this.ctx,n);let o=Ci(this.ctx,n),{"~standard":t,...i}=o;return i}};var yR={};var Fc={};fn(Fc,{ZodAny:()=>Ry,ZodArray:()=>Oy,ZodBase64:()=>Um,ZodBase64URL:()=>Am,ZodBigInt:()=>ka,ZodBigIntFormat:()=>Nm,ZodBoolean:()=>Pa,ZodCIDRv4:()=>Om,ZodCIDRv6:()=>jm,ZodCUID:()=>Tm,ZodCUID2:()=>$m,ZodCatch:()=>tx,ZodCodec:()=>Wc,ZodCustom:()=>Xc,ZodCustomStringFormat:()=>Sa,ZodDate:()=>qc,ZodDefault:()=>Jy,ZodDiscriminatedUnion:()=>Uy,ZodE164:()=>Dm,ZodEmail:()=>Im,ZodEmoji:()=>Pm,ZodEnum:()=>ya,ZodExactOptional:()=>Hy,ZodFile:()=>Zy,ZodFunction:()=>dx,ZodGUID:()=>Lc,ZodIPv4:()=>Em,ZodIPv6:()=>zm,ZodIntersection:()=>Ay,ZodJWT:()=>Fm,ZodKSUID:()=>Cm,ZodLazy:()=>cx,ZodLiteral:()=>My,ZodMAC:()=>Sy,ZodMap:()=>By,ZodNaN:()=>rx,ZodNanoID:()=>km,ZodNever:()=>Ey,ZodNonOptional:()=>qm,ZodNull:()=>$y,ZodNullable:()=>Gy,ZodNumber:()=>Ia,ZodNumberFormat:()=>xo,ZodObject:()=>Kc,ZodOptional:()=>Zm,ZodPipe:()=>Jc,ZodPrefault:()=>Xy,ZodPreprocess:()=>ix,ZodPromise:()=>ux,ZodReadonly:()=>ox,ZodRecord:()=>va,ZodSet:()=>Vy,ZodString:()=>xa,ZodStringFormat:()=>yt,ZodSuccess:()=>ex,ZodSymbol:()=>ky,ZodTemplateLiteral:()=>sx,ZodTransform:()=>qy,ZodTuple:()=>Fy,ZodType:()=>Ee,ZodULID:()=>wm,ZodURL:()=>Zc,ZodUUID:()=>Mr,ZodUndefined:()=>Ty,ZodUnion:()=>Gc,ZodUnknown:()=>Cy,ZodVoid:()=>zy,ZodXID:()=>Rm,ZodXor:()=>jy,_ZodString:()=>Sm,_default:()=>Wy,_function:()=>RC,any:()=>aC,array:()=>Hc,base64:()=>MR,base64url:()=>ZR,bigint:()=>tC,boolean:()=>Py,catch:()=>nx,check:()=>CC,cidrv4:()=>BR,cidrv6:()=>VR,codec:()=>kC,cuid:()=>OR,cuid2:()=>jR,custom:()=>EC,date:()=>cC,describe:()=>zC,discriminatedUnion:()=>fC,e164:()=>qR,email:()=>IR,emoji:()=>ER,enum:()=>Vm,exactOptional:()=>Ky,file:()=>xC,float32:()=>XR,float64:()=>YR,function:()=>RC,guid:()=>PR,hash:()=>WR,hex:()=>JR,hostname:()=>GR,httpUrl:()=>CR,instanceof:()=>jC,int:()=>ym,int32:()=>QR,int64:()=>nC,intersection:()=>Dy,invertCodec:()=>TC,ipv4:()=>FR,ipv6:()=>LR,json:()=>AC,jwt:()=>HR,keyof:()=>lC,ksuid:()=>DR,lazy:()=>lx,literal:()=>yC,looseObject:()=>mC,looseRecord:()=>hC,mac:()=>NR,map:()=>bC,meta:()=>OC,nan:()=>PC,nanoid:()=>zR,nativeEnum:()=>vC,never:()=>Lm,nonoptional:()=>Qy,null:()=>wy,nullable:()=>Vc,nullish:()=>SC,number:()=>Iy,object:()=>uC,optional:()=>Bc,partialRecord:()=>gC,pipe:()=>xm,prefault:()=>Yy,preprocess:()=>DC,promise:()=>wC,readonly:()=>ax,record:()=>Ly,refine:()=>mx,set:()=>_C,strictObject:()=>dC,string:()=>Nc,stringFormat:()=>KR,stringbool:()=>UC,success:()=>IC,superRefine:()=>px,symbol:()=>iC,templateLiteral:()=>$C,transform:()=>Mm,tuple:()=>Ny,uint32:()=>eC,uint64:()=>rC,ulid:()=>UR,undefined:()=>oC,union:()=>Bm,unknown:()=>yo,url:()=>RR,uuid:()=>kR,uuidv4:()=>TR,uuidv6:()=>$R,uuidv7:()=>wR,void:()=>sC,xid:()=>AR,xor:()=>pC});var gm={};fn(gm,{endsWith:()=>la,gt:()=>Br,gte:()=>Un,includes:()=>sa,length:()=>vo,lowercase:()=>oa,lt:()=>Lr,lte:()=>ir,maxLength:()=>_o,maxSize:()=>$i,mime:()=>ua,minLength:()=>ni,minSize:()=>Vr,multipleOf:()=>Ti,negative:()=>am,nonnegative:()=>cm,nonpositive:()=>sm,normalize:()=>da,overwrite:()=>kr,positive:()=>om,property:()=>lm,regex:()=>ia,size:()=>bo,slugify:()=>ga,startsWith:()=>ca,toLowerCase:()=>pa,toUpperCase:()=>fa,trim:()=>ma,uppercase:()=>aa});var _a={};fn(_a,{ZodISODate:()=>bm,ZodISODateTime:()=>hm,ZodISODuration:()=>vm,ZodISOTime:()=>_m,date:()=>sy,datetime:()=>ay,duration:()=>ly,time:()=>cy});var hm=k("ZodISODateTime",(e,n)=>{Db.init(e,n),yt.init(e,n);});function ay(e){return B_(hm,e)}var bm=k("ZodISODate",(e,n)=>{Fb.init(e,n),yt.init(e,n);});function sy(e){return V_(bm,e)}var _m=k("ZodISOTime",(e,n)=>{Nb.init(e,n),yt.init(e,n);});function cy(e){return M_(_m,e)}var vm=k("ZodISODuration",(e,n)=>{Lb.init(e,n),yt.init(e,n);});function ly(e){return Z_(vm,e)}var xR=(e,n)=>{kc.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>$c(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}}});},aF=k("ZodError",xR),Gn=k("ZodError",xR,{Parent:Error});var uy=Yo(Gn),dy=Qo(Gn),my=ea(Gn),py=ta(Gn),fy=pd(Gn),gy=fd(Gn),hy=gd(Gn),by=hd(Gn),_y=bd(Gn),vy=_d(Gn),yy=vd(Gn),xy=yd(Gn);var SR=new WeakMap;function Mc(e,n,r){let o=Object.getPrototypeOf(e),t=SR.get(o);if(t||(t=new Set,SR.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 Ee=k("ZodType",(e,n)=>(ke.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:ba(e,"input"),output:ba(e,"output")}}),e.toJSONSchema=Sv(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.parse=(r,o)=>uy(e,r,o,{callee:e.parse}),e.safeParse=(r,o)=>my(e,r,o),e.parseAsync=async(r,o)=>dy(e,r,o,{callee:e.parseAsync}),e.safeParseAsync=async(r,o)=>py(e,r,o),e.spa=e.safeParseAsync,e.encode=(r,o)=>fy(e,r,o),e.decode=(r,o)=>gy(e,r,o),e.encodeAsync=async(r,o)=>hy(e,r,o),e.decodeAsync=async(r,o)=>by(e,r,o),e.safeEncode=(r,o)=>_y(e,r,o),e.safeDecode=(r,o)=>vy(e,r,o),e.safeEncodeAsync=async(r,o)=>yy(e,r,o),e.safeDecodeAsync=async(r,o)=>xy(e,r,o),Mc(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 On(this,r,o)},brand(){return this},register(r,o){return r.add(this,o),this},refine(r,o){return this.check(mx(r,o))},superRefine(r,o){return this.check(px(r,o))},overwrite(r){return this.check(kr(r))},optional(){return Bc(this)},exactOptional(){return Ky(this)},nullable(){return Vc(this)},nullish(){return Bc(Vc(this))},nonoptional(r){return Qy(this,r)},array(){return Hc(this)},or(r){return Bm([this,r])},and(r){return Dy(this,r)},transform(r){return xm(this,Mm(r))},default(r){return Wy(this,r)},prefault(r){return Yy(this,r)},catch(r){return nx(this,r)},pipe(r){return xm(this,r)},readonly(){return ax(this)},describe(r){let o=this.clone();return bn.add(o,{description:r}),o},meta(...r){if(r.length===0)return bn.get(this);let o=this.clone();return bn.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 bn.get(e)?.description},configurable:true}),e)),Sm=k("_ZodString",(e,n)=>{ho.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Iv(e,o,t);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,Mc(e,"_ZodString",{regex(...o){return this.check(ia(...o))},includes(...o){return this.check(sa(...o))},startsWith(...o){return this.check(ca(...o))},endsWith(...o){return this.check(la(...o))},min(...o){return this.check(ni(...o))},max(...o){return this.check(_o(...o))},length(...o){return this.check(vo(...o))},nonempty(...o){return this.check(ni(1,...o))},lowercase(o){return this.check(oa(o))},uppercase(o){return this.check(aa(o))},trim(){return this.check(ma())},normalize(...o){return this.check(da(...o))},toLowerCase(){return this.check(pa())},toUpperCase(){return this.check(fa())},slugify(){return this.check(ga())}});}),xa=k("ZodString",(e,n)=>{ho.init(e,n),Sm.init(e,n),e.email=r=>e.check(Nd(Im,r)),e.url=r=>e.check(Dc(Zc,r)),e.jwt=r=>e.check(im(Fm,r)),e.emoji=r=>e.check(Zd(Pm,r)),e.guid=r=>e.check(Ac(Lc,r)),e.uuid=r=>e.check(Ld(Mr,r)),e.uuidv4=r=>e.check(Bd(Mr,r)),e.uuidv6=r=>e.check(Vd(Mr,r)),e.uuidv7=r=>e.check(Md(Mr,r)),e.nanoid=r=>e.check(qd(km,r)),e.guid=r=>e.check(Ac(Lc,r)),e.cuid=r=>e.check(Hd(Tm,r)),e.cuid2=r=>e.check(Kd($m,r)),e.ulid=r=>e.check(Gd(wm,r)),e.base64=r=>e.check(tm(Um,r)),e.base64url=r=>e.check(nm(Am,r)),e.xid=r=>e.check(Jd(Rm,r)),e.ksuid=r=>e.check(Wd(Cm,r)),e.ipv4=r=>e.check(Xd(Em,r)),e.ipv6=r=>e.check(Yd(zm,r)),e.cidrv4=r=>e.check(Qd(Om,r)),e.cidrv6=r=>e.check(em(jm,r)),e.e164=r=>e.check(rm(Dm,r)),e.datetime=r=>e.check(ay(r)),e.date=r=>e.check(sy(r)),e.time=r=>e.check(cy(r)),e.duration=r=>e.check(ly(r));});function Nc(e){return D_(xa,e)}var yt=k("ZodStringFormat",(e,n)=>{vt.init(e,n),Sm.init(e,n);}),Im=k("ZodEmail",(e,n)=>{wb.init(e,n),yt.init(e,n);});function IR(e){return Nd(Im,e)}var Lc=k("ZodGUID",(e,n)=>{Tb.init(e,n),yt.init(e,n);});function PR(e){return Ac(Lc,e)}var Mr=k("ZodUUID",(e,n)=>{$b.init(e,n),yt.init(e,n);});function kR(e){return Ld(Mr,e)}function TR(e){return Bd(Mr,e)}function $R(e){return Vd(Mr,e)}function wR(e){return Md(Mr,e)}var Zc=k("ZodURL",(e,n)=>{Rb.init(e,n),yt.init(e,n);});function RR(e){return Dc(Zc,e)}function CR(e){return Dc(Zc,{protocol:rr.httpProtocol,hostname:rr.domain,...N.normalizeParams(e)})}var Pm=k("ZodEmoji",(e,n)=>{Cb.init(e,n),yt.init(e,n);});function ER(e){return Zd(Pm,e)}var km=k("ZodNanoID",(e,n)=>{Eb.init(e,n),yt.init(e,n);});function zR(e){return qd(km,e)}var Tm=k("ZodCUID",(e,n)=>{zb.init(e,n),yt.init(e,n);});function OR(e){return Hd(Tm,e)}var $m=k("ZodCUID2",(e,n)=>{Ob.init(e,n),yt.init(e,n);});function jR(e){return Kd($m,e)}var wm=k("ZodULID",(e,n)=>{jb.init(e,n),yt.init(e,n);});function UR(e){return Gd(wm,e)}var Rm=k("ZodXID",(e,n)=>{Ub.init(e,n),yt.init(e,n);});function AR(e){return Jd(Rm,e)}var Cm=k("ZodKSUID",(e,n)=>{Ab.init(e,n),yt.init(e,n);});function DR(e){return Wd(Cm,e)}var Em=k("ZodIPv4",(e,n)=>{Bb.init(e,n),yt.init(e,n);});function FR(e){return Xd(Em,e)}var Sy=k("ZodMAC",(e,n)=>{Mb.init(e,n),yt.init(e,n);});function NR(e){return N_(Sy,e)}var zm=k("ZodIPv6",(e,n)=>{Vb.init(e,n),yt.init(e,n);});function LR(e){return Yd(zm,e)}var Om=k("ZodCIDRv4",(e,n)=>{Zb.init(e,n),yt.init(e,n);});function BR(e){return Qd(Om,e)}var jm=k("ZodCIDRv6",(e,n)=>{qb.init(e,n),yt.init(e,n);});function VR(e){return em(jm,e)}var Um=k("ZodBase64",(e,n)=>{Kb.init(e,n),yt.init(e,n);});function MR(e){return tm(Um,e)}var Am=k("ZodBase64URL",(e,n)=>{Gb.init(e,n),yt.init(e,n);});function ZR(e){return nm(Am,e)}var Dm=k("ZodE164",(e,n)=>{Jb.init(e,n),yt.init(e,n);});function qR(e){return rm(Dm,e)}var Fm=k("ZodJWT",(e,n)=>{Wb.init(e,n),yt.init(e,n);});function HR(e){return im(Fm,e)}var Sa=k("ZodCustomStringFormat",(e,n)=>{Xb.init(e,n),yt.init(e,n);});function KR(e,n,r={}){return ha(Sa,e,n,r)}function GR(e){return ha(Sa,"hostname",rr.hostname,e)}function JR(e){return ha(Sa,"hex",rr.hex,e)}function WR(e,n){let r=n?.enc??"hex",o=`${e}_${r}`,t=rr[o];if(!t)throw new Error(`Unrecognized hash format: ${o}`);return ha(Sa,o,t,n)}var Ia=k("ZodNumber",(e,n)=>{Rd.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Pv(e,o,t),Mc(e,"ZodNumber",{gt(o,t){return this.check(Br(o,t))},gte(o,t){return this.check(Un(o,t))},min(o,t){return this.check(Un(o,t))},lt(o,t){return this.check(Lr(o,t))},lte(o,t){return this.check(ir(o,t))},max(o,t){return this.check(ir(o,t))},int(o){return this.check(ym(o))},safe(o){return this.check(ym(o))},positive(o){return this.check(Br(0,o))},nonnegative(o){return this.check(Un(0,o))},negative(o){return this.check(Lr(0,o))},nonpositive(o){return this.check(ir(0,o))},multipleOf(o,t){return this.check(Ti(o,t))},step(o,t){return this.check(Ti(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 Iy(e){return q_(Ia,e)}var xo=k("ZodNumberFormat",(e,n)=>{Yb.init(e,n),Ia.init(e,n);});function ym(e){return K_(xo,e)}function XR(e){return G_(xo,e)}function YR(e){return J_(xo,e)}function QR(e){return W_(xo,e)}function eC(e){return X_(xo,e)}var Pa=k("ZodBoolean",(e,n)=>{Ec.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>kv(e,r,o);});function Py(e){return Y_(Pa,e)}var ka=k("ZodBigInt",(e,n)=>{Cd.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Tv(e,o),e.gte=(o,t)=>e.check(Un(o,t)),e.min=(o,t)=>e.check(Un(o,t)),e.gt=(o,t)=>e.check(Br(o,t)),e.gte=(o,t)=>e.check(Un(o,t)),e.min=(o,t)=>e.check(Un(o,t)),e.lt=(o,t)=>e.check(Lr(o,t)),e.lte=(o,t)=>e.check(ir(o,t)),e.max=(o,t)=>e.check(ir(o,t)),e.positive=o=>e.check(Br(BigInt(0),o)),e.negative=o=>e.check(Lr(BigInt(0),o)),e.nonpositive=o=>e.check(ir(BigInt(0),o)),e.nonnegative=o=>e.check(Un(BigInt(0),o)),e.multipleOf=(o,t)=>e.check(Ti(o,t));let r=e._zod.bag;e.minValue=r.minimum??null,e.maxValue=r.maximum??null,e.format=r.format??null;});function tC(e){return ev(ka,e)}var Nm=k("ZodBigIntFormat",(e,n)=>{Qb.init(e,n),ka.init(e,n);});function nC(e){return nv(Nm,e)}function rC(e){return rv(Nm,e)}var ky=k("ZodSymbol",(e,n)=>{e_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>$v(e,r);});function iC(e){return iv(ky,e)}var Ty=k("ZodUndefined",(e,n)=>{t_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Rv(e,r);});function oC(e){return ov(Ty,e)}var $y=k("ZodNull",(e,n)=>{n_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>wv(e,r,o);});function wy(e){return av($y,e)}var Ry=k("ZodAny",(e,n)=>{r_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>zv();});function aC(){return sv(Ry)}var Cy=k("ZodUnknown",(e,n)=>{i_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Ov();});function yo(){return cv(Cy)}var Ey=k("ZodNever",(e,n)=>{o_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Ev(e,r,o);});function Lm(e){return lv(Ey,e)}var zy=k("ZodVoid",(e,n)=>{a_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Cv(e,r);});function sC(e){return uv(zy,e)}var qc=k("ZodDate",(e,n)=>{s_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(o,t,i)=>jv(e,o),e.min=(o,t)=>e.check(Un(o,t)),e.max=(o,t)=>e.check(ir(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 cC(e){return dv(qc,e)}var Oy=k("ZodArray",(e,n)=>{c_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Hv(e,r,o,t),e.element=n.element,Mc(e,"ZodArray",{min(r,o){return this.check(ni(r,o))},nonempty(r){return this.check(ni(1,r))},max(r,o){return this.check(_o(r,o))},length(r,o){return this.check(vo(r,o))},unwrap(){return this.element}});});function Hc(e,n){return fv(Oy,e,n)}function lC(e){let n=e._zod.def.shape;return Vm(Object.keys(n))}var Kc=k("ZodObject",(e,n)=>{l_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Kv(e,r,o,t),N.defineLazy(e,"shape",()=>n.shape),Mc(e,"ZodObject",{keyof(){return Vm(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:yo()})},loose(){return this.clone({...this._zod.def,catchall:yo()})},strict(){return this.clone({...this._zod.def,catchall:Lm()})},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(Zm,this,r[0])},required(...r){return N.required(qm,this,r[0])}});});function uC(e,n){let r={type:"object",shape:e??{},...N.normalizeParams(n)};return new Kc(r)}function dC(e,n){return new Kc({type:"object",shape:e,catchall:Lm(),...N.normalizeParams(n)})}function mC(e,n){return new Kc({type:"object",shape:e,catchall:yo(),...N.normalizeParams(n)})}var Gc=k("ZodUnion",(e,n)=>{zc.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>dm(e,r,o,t),e.options=n.options;});function Bm(e,n){return new Gc({type:"union",options:e,...N.normalizeParams(n)})}var jy=k("ZodXor",(e,n)=>{Gc.init(e,n),u_.init(e,n),e._zod.processJSONSchema=(r,o,t)=>dm(e,r,o,t),e.options=n.options;});function pC(e,n){return new jy({type:"union",options:e,inclusive:false,...N.normalizeParams(n)})}var Uy=k("ZodDiscriminatedUnion",(e,n)=>{Gc.init(e,n),d_.init(e,n);});function fC(e,n,r){return new Uy({type:"union",options:n,discriminator:e,...N.normalizeParams(r)})}var Ay=k("ZodIntersection",(e,n)=>{m_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Gv(e,r,o,t);});function Dy(e,n){return new Ay({type:"intersection",left:e,right:n})}var Fy=k("ZodTuple",(e,n)=>{Ed.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Jv(e,r,o,t),e.rest=r=>e.clone({...e._zod.def,rest:r});});function Ny(e,n,r){let o=n instanceof ke,t=o?r:n,i=o?n:null;return new Fy({type:"tuple",items:e,rest:i,...N.normalizeParams(t)})}var va=k("ZodRecord",(e,n)=>{p_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Wv(e,r,o,t),e.keyType=n.keyType,e.valueType=n.valueType;});function Ly(e,n,r){return !n||!n._zod?new va({type:"record",keyType:Nc(),valueType:e,...N.normalizeParams(n)}):new va({type:"record",keyType:e,valueType:n,...N.normalizeParams(r)})}function gC(e,n,r){let o=On(e);return o._zod.values=void 0,new va({type:"record",keyType:o,valueType:n,...N.normalizeParams(r)})}function hC(e,n,r){return new va({type:"record",keyType:e,valueType:n,mode:"loose",...N.normalizeParams(r)})}var By=k("ZodMap",(e,n)=>{f_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Zv(e,r),e.keyType=n.keyType,e.valueType=n.valueType,e.min=(...r)=>e.check(Vr(...r)),e.nonempty=r=>e.check(Vr(1,r)),e.max=(...r)=>e.check($i(...r)),e.size=(...r)=>e.check(bo(...r));});function bC(e,n,r){return new By({type:"map",keyType:e,valueType:n,...N.normalizeParams(r)})}var Vy=k("ZodSet",(e,n)=>{g_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>qv(e,r),e.min=(...r)=>e.check(Vr(...r)),e.nonempty=r=>e.check(Vr(1,r)),e.max=(...r)=>e.check($i(...r)),e.size=(...r)=>e.check(bo(...r));});function _C(e,n){return new Vy({type:"set",valueType:e,...N.normalizeParams(n)})}var ya=k("ZodEnum",(e,n)=>{h_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Uv(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 ya({...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 ya({...n,checks:[],...N.normalizeParams(t),entries:i})};});function Vm(e,n){let r=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new ya({type:"enum",entries:r,...N.normalizeParams(n)})}function vC(e,n){return new ya({type:"enum",entries:e,...N.normalizeParams(n)})}var My=k("ZodLiteral",(e,n)=>{b_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Av(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 yC(e,n){return new My({type:"literal",values:Array.isArray(e)?e:[e],...N.normalizeParams(n)})}var Zy=k("ZodFile",(e,n)=>{__.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Nv(e,r,o),e.min=(r,o)=>e.check(Vr(r,o)),e.max=(r,o)=>e.check($i(r,o)),e.mime=(r,o)=>e.check(ua(Array.isArray(r)?r:[r],o));});function xC(e){return gv(Zy,e)}var qy=k("ZodTransform",(e,n)=>{v_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Mv(e,r),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new xi(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 Mm(e){return new qy({type:"transform",transform:e})}var Zm=k("ZodOptional",(e,n)=>{zd.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>mm(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Bc(e){return new Zm({type:"optional",innerType:e})}var Hy=k("ZodExactOptional",(e,n)=>{y_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>mm(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Ky(e){return new Hy({type:"optional",innerType:e})}var Gy=k("ZodNullable",(e,n)=>{x_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Xv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Vc(e){return new Gy({type:"nullable",innerType:e})}function SC(e){return Bc(Vc(e))}var Jy=k("ZodDefault",(e,n)=>{S_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Qv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap;});function Wy(e,n){return new Jy({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():N.shallowClone(n)}})}var Xy=k("ZodPrefault",(e,n)=>{I_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ey(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Yy(e,n){return new Xy({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():N.shallowClone(n)}})}var qm=k("ZodNonOptional",(e,n)=>{P_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Yv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Qy(e,n){return new qm({type:"nonoptional",innerType:e,...N.normalizeParams(n)})}var ex=k("ZodSuccess",(e,n)=>{k_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Lv(e,r,o),e.unwrap=()=>e._zod.def.innerType;});function IC(e){return new ex({type:"success",innerType:e})}var tx=k("ZodCatch",(e,n)=>{T_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ty(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap;});function nx(e,n){return new tx({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}var rx=k("ZodNaN",(e,n)=>{$_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Dv(e,r);});function PC(e){return pv(rx,e)}var Jc=k("ZodPipe",(e,n)=>{Od.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ny(e,r,o,t),e.in=n.in,e.out=n.out;});function xm(e,n){return new Jc({type:"pipe",in:e,out:n})}var Wc=k("ZodCodec",(e,n)=>{Jc.init(e,n),Oc.init(e,n);});function kC(e,n,r){return new Wc({type:"pipe",in:e,out:n,transform:r.decode,reverseTransform:r.encode})}function TC(e){let n=e._zod.def;return new Wc({type:"pipe",in:n.out,out:n.in,transform:n.reverseTransform,reverseTransform:n.transform})}var ix=k("ZodPreprocess",(e,n)=>{Jc.init(e,n),w_.init(e,n);}),ox=k("ZodReadonly",(e,n)=>{R_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ry(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function ax(e){return new ox({type:"readonly",innerType:e})}var sx=k("ZodTemplateLiteral",(e,n)=>{C_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Fv(e,r,o);});function $C(e,n){return new sx({type:"template_literal",parts:e,...N.normalizeParams(n)})}var cx=k("ZodLazy",(e,n)=>{O_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>oy(e,r,o,t),e.unwrap=()=>e._zod.def.getter();});function lx(e){return new cx({type:"lazy",getter:e})}var ux=k("ZodPromise",(e,n)=>{z_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>iy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function wC(e){return new ux({type:"promise",innerType:e})}var dx=k("ZodFunction",(e,n)=>{E_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Vv(e,r);});function RC(e){return new dx({type:"function",input:Array.isArray(e?.input)?Ny(e?.input):e?.input??Hc(yo()),output:e?.output??yo()})}var Xc=k("ZodCustom",(e,n)=>{j_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Bv(e,r);});function CC(e){let n=new $t({check:"custom"});return n._zod.check=e,n}function EC(e,n){return hv(Xc,e??(()=>true),n)}function mx(e,n={}){return bv(Xc,e,n)}function px(e,n){return _v(e,n)}var zC=vv,OC=yv;function jC(e,n={}){let r=new Xc({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 UC=(...e)=>xv({Codec:Wc,Boolean:Pa,String:xa},...e);function AC(e){let n=lx(()=>Bm([Nc(e),Iy(),Py(),wy(),Hc(n),Ly(Nc(),n)]));return n}function DC(e,n){return new ix({type:"pipe",in:Mm(e),out:n})}var cF={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 lF(e){Yt({customError:e});}function uF(){return Yt().customError}var fx;fx||(fx={});var Y={...Fc,...gm,iso:_a},dF=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 mF(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 pF(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 FC(e,n){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return Y.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 Y.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=pF(t,n),s=In(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 Y.null();if(t.length===0)return Y.never();if(t.length===1)return Y.literal(t[0]);if(t.every(s=>typeof s=="string"))return Y.enum(t);let i=t.map(s=>Y.literal(s));return i.length<2?i[0]:Y.union([i[0],i[1],...i.slice(2)])}if(e.const!==void 0)return Y.literal(e.const);let r=e.type;if(Array.isArray(r)){let t=r.map(i=>{let s={...e,type:i};return FC(s,n)});return t.length===0?Y.never():t.length===1?t[0]:Y.union(t)}if(!r)return Y.any();let o;switch(r){case "string":{let t=Y.string();if(e.format){let i=e.format;i==="email"?t=t.check(Y.email()):i==="uri"||i==="uri-reference"?t=t.check(Y.url()):i==="uuid"||i==="guid"?t=t.check(Y.uuid()):i==="date-time"?t=t.check(Y.iso.datetime()):i==="date"?t=t.check(Y.iso.date()):i==="time"?t=t.check(Y.iso.time()):i==="duration"?t=t.check(Y.iso.duration()):i==="ipv4"?t=t.check(Y.ipv4()):i==="ipv6"?t=t.check(Y.ipv6()):i==="mac"?t=t.check(Y.mac()):i==="cidr"?t=t.check(Y.cidrv4()):i==="cidr-v6"?t=t.check(Y.cidrv6()):i==="base64"?t=t.check(Y.base64()):i==="base64url"?t=t.check(Y.base64url()):i==="e164"?t=t.check(Y.e164()):i==="jwt"?t=t.check(Y.jwt()):i==="emoji"?t=t.check(Y.emoji()):i==="nanoid"?t=t.check(Y.nanoid()):i==="cuid"?t=t.check(Y.cuid()):i==="cuid2"?t=t.check(Y.cuid2()):i==="ulid"?t=t.check(Y.ulid()):i==="xid"?t=t.check(Y.xid()):i==="ksuid"&&(t=t.check(Y.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"?Y.number().int():Y.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=Y.boolean();break}case "null":{o=Y.null();break}case "object":{let t={},i=e.properties||{},s=new Set(e.required||[]);for(let[u,d]of Object.entries(i)){let m=In(d,n);t[u]=s.has(u)?m:m.optional();}if(e.propertyNames){let u=In(e.propertyNames,n),d=e.additionalProperties&&typeof e.additionalProperties=="object"?In(e.additionalProperties,n):Y.any();if(Object.keys(t).length===0){o=Y.record(u,d);break}let m=Y.object(t).passthrough(),p=Y.looseRecord(u,d);o=Y.intersection(m,p);break}if(e.patternProperties){let u=e.patternProperties,d=Object.keys(u),m=[];for(let g of d){let f=In(u[g],n),h=Y.string().regex(new RegExp(g));m.push(Y.looseRecord(h,f));}let p=[];if(Object.keys(t).length>0&&p.push(Y.object(t).passthrough()),p.push(...m),p.length===0)o=Y.object({}).passthrough();else if(p.length===1)o=p[0];else {let g=Y.intersection(p[0],p[1]);for(let f=2;f<p.length;f++)g=Y.intersection(g,p[f]);o=g;}break}let c=Y.object(t);e.additionalProperties===false?o=c.strict():typeof e.additionalProperties=="object"?o=c.catchall(In(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=>In(u,n)),c=i&&typeof i=="object"&&!Array.isArray(i)?In(i,n):void 0;c?o=Y.tuple(s).rest(c):o=Y.tuple(s),typeof e.minItems=="number"&&(o=o.check(Y.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(Y.maxLength(e.maxItems)));}else if(Array.isArray(i)){let s=i.map(u=>In(u,n)),c=e.additionalItems&&typeof e.additionalItems=="object"?In(e.additionalItems,n):void 0;c?o=Y.tuple(s).rest(c):o=Y.tuple(s),typeof e.minItems=="number"&&(o=o.check(Y.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(Y.maxLength(e.maxItems)));}else if(i!==void 0){let s=In(i,n),c=Y.array(s);typeof e.minItems=="number"&&(c=c.min(e.minItems)),typeof e.maxItems=="number"&&(c=c.max(e.maxItems)),o=c;}else o=Y.array(Y.any());break}default:throw new Error(`Unsupported type: ${r}`)}return o}function In(e,n){if(typeof e=="boolean")return e?Y.any():Y.never();let r=FC(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=>In(d,n)),u=Y.union(c);r=o?Y.intersection(r,u):u;}if(e.oneOf&&Array.isArray(e.oneOf)){let c=e.oneOf.map(d=>In(d,n)),u=Y.xor(c);r=o?Y.intersection(r,u):u;}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)r=o?r:Y.any();else {let c=o?r:In(e.allOf[0],n),u=o?0:1;for(let d=u;d<e.allOf.length;d++)c=Y.intersection(c,In(e.allOf[d],n));r=c;}e.nullable===true&&n.version==="openapi-3.0"&&(r=Y.nullable(r)),e.readOnly===true&&(r=Y.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))dF.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 NC(e,n){if(typeof e=="boolean")return e?Y.any():Y.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=mF(r,n?.defaultTarget),t=r.$defs||r.definitions||{},i={version:o,defs:t,refs:new Map,processing:new Set,rootSchema:r,registry:n?.registry??bn};return In(r,i)}var gx={};fn(gx,{bigint:()=>bF,boolean:()=>hF,date:()=>_F,number:()=>gF,string:()=>fF});function fF(e){return F_(xa,e)}function gF(e){return H_(Ia,e)}function hF(e){return Q_(Pa,e)}function bF(e){return tv(ka,e)}function _F(e){return mv(qc,e)}Yt(jd());var vF=/^[a-z0-9._]{1,100}$/,Ei={Persisted:"persisted",Transient:"transient"},zi={Internal:"internal",External:"external"},Oi={Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}},yF="readOnly";function Jn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[yF]===true||(n[r]=o);}return a.object(n)}function Pn(e){let n=Jn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(vF)}):n}var {Unrestricted:Dn}=Oi,{Transient:Wn,Persisted:xF}=Ei,{Internal:So,External:ji}=zi;a.object({page:a.coerce.number().int().min(1).default(1).meta(Dn),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(Dn)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji});var Rt=a.object({created_at:a.string().datetime().meta({...Dn,readOnly:true}),updated_at:a.string().datetime().meta({...Dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji}),xt=a.object({id:a.string().min(1).meta({...Dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji}),Ct=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...Dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":So});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji});var hx=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":Wn,"x-revturbine-schema-exposure":ji}),bx=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji}),LC=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":So});var ii=a.string().min(1).max(200),rn=a.string().min(1).max(100),Hm=a.string().max(500).optional(),or=a.record(a.string(),a.unknown()).default({}),Io=a.number().int().min(10).max(100).multipleOf(10),Km=a.string().datetime().nullable().default(null),Qt=a.object({environment_id:a.string().min(1).default("production").meta({...Dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":So}),on=a.object({playbook_version_id:a.string().nullable().default(null).meta(Dn),is_current:a.boolean().default(true).meta({...Dn,readOnly:true}),is_deleted:a.boolean().default(false).meta({...Dn,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...Dn,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...Dn,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...Dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":So}),SF=xt.merge(Rt).merge(Ct).merge(Qt).extend({handle:rn.meta({...Dn,readOnly:true}),active:a.boolean().default(true).meta({...Dn,readOnly:true})});function kn(e){return SF.meta({id:e,"x-revturbine-schema-persistence":xF,"x-revturbine-schema-exposure":So})}a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":So});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":Wn,"x-revturbine-schema-exposure":So});var BC=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":Wn,"x-revturbine-schema-exposure":ji}),IF=new Set(hx.options);function Yc(e,n){if(!re(e))return null;let r=typeof e.output_id=="string"?e.output_id:"";if(!r)return null;let o=re(e.surface)?e.surface:{},t=IF.has(o.type)?o.type:"custom",i=re(e.cta_path)?e.cta_path:re(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:re(e.content)?e.content:{},...re(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 PF="__no_dim__";function ZC(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)??PF,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 kF=999999;function TF(e){return e==null||e==="unlimited"||e===kF}function Qc(e){return TF(e)?Number.POSITIVE_INFINITY:typeof e=="number"&&Number.isFinite(e)?e:void 0}function $F(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 qC(e,n,r){return e.map(o=>{let t=o.targets!=null&&o.targets.length>0?o.targets.some(s=>$F(s,n)):n.currentPlanId!=null&&o.planIds.includes(n.currentPlanId)||n.currentPlanHandle!=null&&o.planIds.includes(n.currentPlanHandle),i=ZC(o.segmentIds,n.segmentIds,s=>r?.[s]);return {rule:o,matchesPlan:t,matchesSegment:i,matched:t&&i}})}function HC(e){let n=e.fields??{};switch(e.kind){case "usage_limit":return Qc(n.limit_value)??0;case "credits":return Qc(n.allowance_value!==void 0?n.allowance_value:n.allowance)??0;case "seat":return Qc(n.included_count)??0;case "feature":return n.enabled===true?1:0;default:return 0}}function KC(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 wF(e){return KC(e,n=>HC(n.rule))?.rule}function _x(e,n,r){let o=e.entitlementRules[n];if(!o||o.length===0)return;let t=qC(o,r,e.segmentDimensions);return wF(t.filter(i=>i.matched))}function RF(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 CF(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 ZC(RF(e),n,t=>o.get(t))}function VC(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 el(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(ie=>typeof ie?.unique_handle=="string"&&ie.unique_handle===n),g=typeof p?.unique_handle=="string"?p.unique_handle:n,f=typeof p?.unique_handle=="string"?p.unique_handle:void 0,h=!!(u&&u.size>0&&(u.has(n)||u.has(g)||f!==void 0&&u.has(f)));if(h&&(d===void 0||d===""))return {status:"allowed",allowed:true,reason:"granted_by_reverse_trial"};let x=String((h&&d?d:t)||"").toLowerCase(),S=(o.plans??[]).find(ie=>typeof ie.unique_handle=="string"&&ie.unique_handle.toLowerCase()===x),E=typeof S?.unique_handle=="string"?S.unique_handle:x||void 0,$=(o.entitlement_rules??[]).filter(ie=>{if((typeof ie.entitlement_id=="string"?ie.entitlement_id:typeof ie.entitlementId=="string"?ie.entitlementId:"")!==g)return false;let Re=Array.isArray(ie.targets)?ie.targets.filter(X=>re(X)&&X.kind==="plan"&&typeof X.id=="string").map(X=>X.id):Array.isArray(ie.plan_ids)?ie.plan_ids.filter(X=>typeof X=="string"):Array.isArray(ie.planIds)?ie.planIds.filter(X=>typeof X=="string"):[];return !(E!==void 0&&!Re.includes(E)||!CF(ie,i,o.segments??[]))});if($.length===0)return {status:"denied",allowed:false,reason:"no_matching_entitlement_rule"};let B=ie=>re(ie.type_fields)?ie.type_fields:re(ie.typeFields)?ie.typeFields:{},ce=KC($,ie=>{let at=B(ie);return HC({kind:typeof at.kind=="string"?at.kind:"",fields:at})})??$[0],me=B(ce);typeof me.kind=="string"?me.kind:void 0;let J=ie=>{let at=c?.[ie];if(re(at)&&typeof at.amount=="number")return at.amount},fe=r?.used??(Number.isFinite(s[n])?s[n]:void 0)??(Number.isFinite(s[g])?s[g]:void 0)??J(n)??J(g)??0;return Gm(me,fe)}function MC(e,n,r){return {...e,limit:n,used:r,remaining:Math.max(0,n-r)}}function GC(e){return e==="feature"||e==="usage_limit"||e==="limit"||e==="credits"||e==="capability_tier"}function Gm(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=Qc(e.limit_value);return o!==void 0&&Number.isFinite(o)&&o>=0?MC(VC(n>=o,e.enforcement,"usage_limit_reached"),o,n):{status:"allowed",allowed:true}}if(r==="credits"){let o=e.allowance===void 0?void 0:Qc(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)?MC(VC(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 vx(e,n){if(!re(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=re(e.placement)?Yc(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 yx(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 EF=0;function zF(){return `core_${Date.now()}_${++EF}`}function JC(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}var xx=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=zF(),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:JC(`${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:JC("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=_x(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(GC(u.kind))return Gm(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 WC(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 tl(e,n){return e.filter(r=>!r.predicates||r.predicates.length===0?false:r.predicates.every(o=>WC(o,n))).map(r=>r.handle)}function Sx(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=WC(e,n);return {field:r,operator:o,expected:t,actual:s,matched:c}}function Jm(e){let n="";return e.forEach(r=>{n+=String.fromCharCode(r);}),btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Wm(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),Jm(r)}async function Ix(e,n){let r=Ko(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 Wm(o).slice(0,22)}function Px(e){return [e.slotId||"",e.surfaceType||"",e.entitlementHandle||"",e.planHandle||"",e.placementHandle||""].join("::")}function kx(e){let n=vi({placementId:e.placementId,userId:e.userId,contextMode:e.contextMode??"auto",overrides:e.overrides??{},traits:e.traits??{},route:Ko(e.route),...e.runtimeContextFingerprint?{runtimeContextFingerprint:e.runtimeContextFingerprint}:{}});return `${e.tenantId}:${e.placementId}:${e.userId}:${Wm(n)}`}function YC(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=mh(o);if(i.length!==0)for(let s of e){if(s.output_id===o.output_id||s.surface.template!==t)continue;let c=dh(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=re(s.content)?s.content:{};return {output:s,order:bt(c.milestone_order)??Number.NEGATIVE_INFINITY}}).filter(s=>Number.isFinite(s.order));if(t.length<=1)continue;let i=t.reduce((s,c)=>c.order>s.order?c:s);for(let s of t)s.output.output_id!==i.output.output_id&&n.add(s.output.output_id);}return e.filter(o=>!n.has(o.output_id))}function XC(e){let r=(re(e.content)?e.content:{}).__trigger_entitlement_handle;return typeof r=="string"&&r.length>0?r:null}function OF(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=XC(e),t=XC(n);if(o&&t)return {leftKey:o,rightKey:t}}return {leftKey:e.surface.type??"",rightKey:n.surface.type??""}}function Xm(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=yi(t.category),c=yi(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}=OF(t,i,s);u===d&&n.add(i.output_id);}}return e.filter(r=>!n.has(r.output_id))}function Tx(e,n=false,r){let o=e;if(r?.fixedOnly&&(o=o.filter(u=>yi(u.category)===1)),o.length===0)return null;let t=YC(o);if(t.length===0)return null;let i=t.some(u=>_c(u)!==null),s=i?t:Xm(t);return s.length===0?null:[...s].sort((u,d)=>{if(i){let P=_c(u),x=_c(d);if(P!==null&&x!==null&&P!==x)return P-x;if(P!==null&&x===null)return -1;if(P===null&&x!==null)return 1}let m=yi(u.category),p=yi(d.category),g=m-p;if(g!==0)return g;if(m===2){let P=uh(u)-uh(d);if(P!==0)return P;let x=lh(d)-lh(u);if(x!==0)return x}let f=bc(d)-bc(u);if(f!==0)return f;let h=cd(d)-cd(u);return h!==0?h:u.output_id.localeCompare(d.output_id)})[0]??null}function jF(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function $x(e,n,r,o){let t=re(o)?o:{},i=re(t.decision)?t.decision:{},s=re(t.content)?t.content:re(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:jF(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 Ym(e){let n=[],r=[e,e.content,re(e.content)?e.content.payload:void 0,re(e.content)?e.content.placement:void 0,re(e.content)?e.content.surface:void 0];for(let o of r){if(!re(o))continue;let t=re(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=nh(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 wx(e,n,r,o,t="impression"){if(yi(e.category)<=1)return {allowed:true};let i=Ym(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=rh(p.period,o),f=s.seenAt.filter(h=>h>=g&&h<=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 Ta(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 nl(e){return e.replace(/_(minutes|minute|credits|credit|seats|seat)$/i,"").replace(/_usage$/i,"").trim()}function UF(e,n){let r=Ta(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 Ta(s)}}function AF(e){let n=Ta(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 $a(e){let n={},r=e.providers;if(e.userId&&(n.user_id=e.userId),e.base)for(let[f,h]of Object.entries(e.base))(typeof h=="string"||typeof h=="number")&&(n[f]=h);let o=r?.plan?.currentPlanHandle,t=r?.plan?.currentPlanName??o;typeof t=="string"&&t.length>0&&(n.plan_name=t);let i=r?.plan?.trialDaysRemaining;i!==void 0&&Number.isFinite(i)&&(n.trial_days_remaining=i);let s=r?.plan?.trialDaysTotal;s!==void 0&&Number.isFinite(s)&&(n.trial_days_total=s);let c=r?.traits?.traits??{};for(let[f,h]of Object.entries(c))(typeof h=="string"||typeof h=="number")&&(n[f]=h);let u=r?.entitlements?.usage??{};for(let[f,h]of Object.entries(u)){let P=nl(f);if(!P)continue;let x=Ta(h.used),w=Ta(h.remaining),S=Ta(h.limit);if(x!==void 0&&(n[`${P}_usage_current`]=x,n.usage_current===void 0&&(n.usage_current=x),n.current_usage===void 0&&(n.current_usage=x)),S!==void 0&&(n[`${P}_usage_limit`]=S,n.usage_limit===void 0&&(n.usage_limit=S),n.current_limit===void 0&&(n.current_limit=S)),w!==void 0)n[`${P}_usage_remaining`]=w,n.usage_remaining===void 0&&(n.usage_remaining=w);else if(x!==void 0&&S!==void 0){let I=Math.max(0,S-x);n[`${P}_usage_remaining`]=I,n.usage_remaining===void 0&&(n.usage_remaining=I);}if(x!==void 0&&S!==void 0&&S>0){let I=Math.min(100,Math.round(x/S*100));n[`${P}_usage_percent`]=I,n.usage_percent===void 0&&(n.usage_percent=I);}let E=h.reset_date;typeof E=="string"&&E.length>0&&(n[`${P}_reset_date`]=E,n.reset_date===void 0&&(n.reset_date=E));}let d=r?.rules?.entitlementRules??{};for(let[f,h]of Object.entries(d)){if(!Array.isArray(h)||h.length===0)continue;let P=h.find(I=>I.kind==="usage_limit"||I.kind==="usage_rate"||I.kind==="credits"||I.kind==="seat");if(!P)continue;let x=nl(f);if(!x)continue;let w=P.fields??{},S=UF(w,o);S!==void 0&&n[`${x}_usage_limit`]===void 0&&(n[`${x}_usage_limit`]=S);let E=AF(w);E!==void 0&&(n[`${x}_usage_warning_threshold_percent`]=E);}e.userName&&e.userName.length>0&&(n.user_name=e.userName);let m=r?.plan?.currentPlanPrice;typeof m=="string"&&m.length>0&&(n.plan_price=m),e.upgradePlan?.name&&(n.upgrade_plan_name=e.upgradePlan.name),e.upgradePlan?.price&&(n.upgrade_plan_price=e.upgradePlan.price),e.trialPlanName&&e.trialPlanName.length>0&&(n.trial_plan_name=e.trialPlanName),e.promoDiscount&&e.promoDiscount.length>0&&(n.promo_discount=e.promoDiscount),e.featuresLostOnDowngrade&&e.featuresLostOnDowngrade.length>0&&(n.features_lost_on_downgrade=e.featuresLostOnDowngrade);let p=e.effectiveGrants;if(p)for(let[f,h]of Object.entries(p)){if(h.allocation==="per_user"||h.allocation==="per_user_pooled"||!h.allocation){let P=nl(f);if(!P)continue;h.used!==void 0&&n[`${P}_usage_current`]===void 0&&(n[`${P}_usage_current`]=h.used),h.limit!==void 0&&n[`${P}_usage_limit`]===void 0&&(n[`${P}_usage_limit`]=h.limit);}if(h.enforcement&&(h.status==="limited"||h.status==="denied")){let P=nl(f);P&&n[`${P}_enforcement`]===void 0&&(n[`${P}_enforcement`]=h.enforcement),n.enforcement_mode===void 0&&(n.enforcement_mode=h.enforcement);}}let g=r?.rules?.entitlementRules??{};for(let[f,h]of Object.entries(g)){if(!Array.isArray(h))continue;let P=nl(f);if(P)for(let x of h){if(x.kind==="credits"){let w=n[`${P}_usage_remaining`];w!==void 0&&n.credits_remaining===void 0&&(n.credits_remaining=w);}if(x.kind==="seat"){let w=n[`${P}_usage_current`],S=n[`${P}_usage_limit`];w!==void 0&&n.seat_count===void 0&&(n.seat_count=w),S!==void 0&&n.seat_limit===void 0&&(n.seat_limit=S);}}}if(e.featureInteractions&&p){let{invokedFeatureHandles:f,interactionCounts:h,topFeaturesByEngagement:P}=e.featureInteractions,x=new Set(f),w=new Set;for(let[I,$]of Object.entries(p))($.status==="denied"||$.status==="limited")&&w.add(I);let S=0,E=0;for(let I of f)w.has(I)&&(S++,h&&(E+=h[I]??0));if(n.gated_features_used_count=S,h&&(n.gated_action_count=E),P){let I=P.find($=>!x.has($)&&w.has($));I&&(n.top_unused_gated_feature=I);}if(r?.plan?.trialActive){let I=0;for(let $ of f)$ in p&&I++;n.trial_features_used=I;}}return n}function Rx(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 Qm(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 ep(e,n,r){let o=mo(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={...ei(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:Qm(i,t,s)}}function Cx(e){let{context:n,exportedConfig:r,usageBalances:o,usageTokenPrefixByEntitlement:t,usageThresholdLookup:i}=e,s={};for(let[w,S]of Object.entries(n.personalization??{}))/^(usage_(current|limit|remaining|percent)|.+_usage_(current|limit|remaining|percent)|plan_name|user_id)$/i.test(w)||(s[w]=S);let c={...s},u=mo(r,n.plan);u?c.plan_name=u:typeof n.plan=="object"&&n.plan?.name&&(c.plan_name=n.plan.name);let d={...ei(n.usage),...o},m=Object.entries(d).filter(([,w])=>Number.isFinite(w)).sort(([w],[S])=>w.localeCompare(S)),p,g,f,h,P=[];for(let[w,S]of m){let E=t.get(w)??Go(w);if(!E)continue;let $=i(w)?.limit,B=$!==void 0?Math.max(0,$-S):void 0,ce=$!==void 0&&$>0?Math.min(100,Math.round(S/$*100)):void 0;c[`${E}_usage_current`]=S,$!==void 0&&(c[`${E}_usage_limit`]=$),B!==void 0&&(c[`${E}_usage_remaining`]=B),ce!==void 0&&(c[`${E}_usage_percent`]=ce),P.push({prefix:E,current:S,...$!==void 0?{limit:$}:{},...B!==void 0?{remaining:B}:{},...ce!==void 0?{percent:ce}:{}}),p===void 0&&(p=S,g=$,f=B,h=ce);}let x=P.find(w=>w.prefix==="core")??P.find(w=>w.limit!==void 0)??P[0];return x&&(p=x.current,g=x.limit,f=x.remaining,h=x.percent),p!==void 0&&(c.usage_current=p),g!==void 0&&(c.usage_limit=g),f!==void 0&&(c.usage_remaining=f),h!==void 0&&(c.usage_percent=h),c}function Ex(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 zx(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 Ox(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 QC={Named:"named",Minted:"minted"},eE="x-revturbine-schema-identity";function Tr(e="handle"){return {[eE]:{kind:QC.Named,handleField:e}}}function pr(e="handle"){return {[eE]:{kind:QC.Minted,handleField:e}}}var ut={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},mr={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},NF="x-revturbine-context",LF="x-revturbine-in-config",BF="x-revturbine-sdk-input",VF="x-revturbine-source",MF="x-revturbine-deprecation",ZF={[ut.Playbook]:mr.Customer,[ut.Branding]:mr.Customer,[ut.Billing]:mr.Stripe,[ut.Metering]:mr.Customer,[ut.CustomerOperations]:mr.Runtime,[ut.EventIngestion]:mr.Runtime};function Dt(e,n){return {[NF]:e,[LF]:n.inConfig??e===ut.Playbook,[BF]:n.sdkInput,[VF]:n.source??ZF[e]}}function rl(e){return {deprecated:true,[MF]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var Ye=e=>a.object({items:a.array(e)}),Zt=a.object({error:a.string(),code:a.string(),request_id:a.string()}),O=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 tp=new Int32Array(2);new Float32Array(tp.buffer);new Float64Array(tp.buffer);new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var np;(function(e){e[e.UTF8_BYTES=1]="UTF8_BYTES",e[e.UTF16_STRING=2]="UTF16_STRING";})(np||(np={}));var HF=4294967295;var KF=HF;function Ux(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 jx(e,n){if(!e)return true;if(!n)return false;switch(e.kind){case "trial_started":{if(n.trialActive!==true)return false;let r=Ux(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 mE(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 pE(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 fE(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 Ra(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 Ca(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 Ax(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 Dx(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=Ax(t,n):r[o]=t;return r}function gE(e,n){return Dx(e,n)}function ip(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=Ca(i,t),p=s?.segmentDimensions;for(let g of c){let f=g.default_message_block_id,h,P=g.ui_path_id,x=g.promotion_id;if(g.segment_content_map){if(p&&Object.keys(p).length>0){let I=new Map;for(let $ of g.segment_content_map){let B=$.dimension;if(!B)continue;let ce=I.get(B)??[];ce.push($),I.set(B,ce);}if(I.size>0){let $=true,B;for(let[,ce]of I){let me=ce.find(W=>d.has(W.segment_id));if(!me){$=false;break}B||(B=me);}if($&&B)f=B.message_block_id,h=B.segment_id,B.ui_path_id&&(P=B.ui_path_id),B.promotion_id&&(x=B.promotion_id);else if(!$)continue}else for(let $ of g.segment_content_map)if(d.has($.segment_id)){f=$.message_block_id,h=$.segment_id,$.ui_path_id&&(P=$.ui_path_id),$.promotion_id&&(x=$.promotion_id);break}}else for(let I of g.segment_content_map)if(d.has(I.segment_id)){f=I.message_block_id,h=I.segment_id,I.ui_path_id&&(P=I.ui_path_id),I.promotion_id&&(x=I.promotion_id);break}}let w=u.get(f);if(!w||w.status!=="active")continue;let S={...w.default_content};if(w.segment_overrides){let I=h?w.segment_overrides.find($=>$.segment_value_id===h):w.segment_overrides.find($=>d.has($.segment_value_id));I&&(S={...S,...I.content},h=I.segment_value_id);}let E=gE(S,m);return {payload:g,messageBlock:w,resolvedContent:E,matchedSegmentId:h,uiPathId:P,promotionId:x}}return null}async function ol(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=Ca(o,u);for(let m of s){let p=m.default_message_block_id,g,f=m.ui_path_id,h=m.promotion_id;if(m.segment_content_map){for(let I of m.segment_content_map)if(c.has(I.segment_id)){p=I.message_block_id,g=I.segment_id,I.ui_path_id&&(f=I.ui_path_id),I.promotion_id&&(h=I.promotion_id);break}}let P=await Promise.resolve(r.getMessageBlockById(p));if(!P||P.status!=="active")continue;let x={...P.default_content};if(P.segment_overrides){let I=g?P.segment_overrides.find($=>$.segment_value_id===g):P.segment_overrides.find($=>c.has($.segment_value_id));I&&(x={...x,...I.content},g=I.segment_value_id);}let w=gE(x,d),S;f&&r.getUiPathById&&(S=await Promise.resolve(r.getUiPathById(f)));let E;return h&&r.getPromotionById&&(E=await Promise.resolve(r.getPromotionById(h))),{payload:m,messageBlock:P,resolvedContent:w,matchedSegmentId:g,uiPathId:f,promotionId:h,uiPath:S??void 0,promotion:E??void 0}}return null}function GF(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 JF(e,n){let r=GF(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 WF(e,n){if(!n)return null;let r=JF(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 sE(e,n){if(!e)return true;let r=WF(e,n);return r===null?false:r>=e.thresholdPercent}var{Unrestricted:le}=Oi,{Persisted:al,Transient:Ui}=Ei,{External:fr,Internal:XF}=zi,hE=Dt(ut.Playbook,{sdkInput:true}),YF=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),QF=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),e6=Dt(ut.Playbook,{inConfig:false,sdkInput:false,source:mr.Runtime}),t6=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]),n6={other_conversion:["none_always_on","overage_vs_upgrade","time_bound"],retention:["payment_failed","payment_at_risk"]};function r6(e){return n6[e]??[]}function i6(e,n){return r6(n).includes(e)}var bE=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),_E=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),o6=a.object({count:a.number().int().positive().meta(le),period:_E.meta(le)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr});a.object({surface_type:a.string().min(1).meta(le),rules:a.array(o6).meta(le),cooldown_ms:a.number().int().nonnegative().optional().meta(le)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":al,"x-revturbine-schema-exposure":fr,"x-revturbine-data-classification":"operational",...QF});var a6=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":Ui,"x-revturbine-schema-exposure":fr}),wa=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true}),name:ii.meta(le),handle:rn.meta(le),description:Hm.meta(le),category:bE.meta(le),drag_order_in_category:a.number().int().default(0).meta(le),surface_slot_id:a.string().optional().meta(le),entitlement_id:a.string().optional().meta(le),tier_threshold:a.string().optional().meta(le),threshold_percent:Io.optional().meta(le),trial_type:a.enum(["free","reverse"]).optional().meta(le),trigger_type:a.string().optional().meta(le),trial_progress_percent:a.number().min(0).max(100).optional().meta(le),days_before_end:a.number().int().min(0).optional().meta(le),qualifier:t6.optional().meta(le),activation_window_start:a.string().datetime().optional().meta(le),activation_window_end:a.string().datetime().optional().meta(le),metadata:or.meta(le)}).meta({id:"Placement","x-revturbine-schema-persistence":al,"x-revturbine-schema-exposure":fr,...hE,...Tr()}),s6=kn("PlacementAnchor"),c6=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),l6=a.object({code:c6.meta(le),message:a.string().min(1).meta(le),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(le)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),cE=wa.extend({warnings:a.array(l6).optional().meta(le)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),u6=a.object({label:a.string().min(1).max(200).meta(le),cta_path_type:a6.meta(le),config_fields:a.record(a.string(),a.unknown()).default({}).meta(le)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),il=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true}),handle:rn.meta({...le,readOnly:true}),placement_id:a.string().min(1).meta(le),drag_order:a.number().int().default(0).meta(le),target_plan_ids:a.array(a.string()).default([]).meta(le),target_plan_billing_cadences:a.array(a.string()).default([]).meta(le),target_segments:a.array(a.string()).default([]).meta(le),surface_slot_ids:a.array(a.string()).default([]).meta(le),surface_template_id:a.string().min(1).meta(le),content_fields:a.record(a.string(),a.unknown()).default({}).meta(le),cta_list:a.array(u6).default([]).meta(le),max_per_period:a.number().int().min(0).nullable().default(null).meta(le),max_period_unit:_E.default("session").meta(le),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(le),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(le),recommendation_plan_override:a.string().optional().meta(le)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":al,"x-revturbine-schema-exposure":fr,...hE,...pr()}),d6=kn("PlacementPayloadAnchor");xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({handle:rn.meta({...le,readOnly:true}),placement_payload_id:a.string().min(1).meta(le),experiment_id:a.string().min(1).meta(le),variant_name:a.string().min(1).max(200).meta(le),is_control:a.boolean().default(false).meta(le),traffic_allocation_percent:a.number().min(0).max(100).meta(le),override_fields:a.record(a.string(),a.unknown()).default({}).meta(le),status:a.enum(["active","paused","complete"]).default("active").meta(le)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":al,"x-revturbine-schema-exposure":XF,...YF,...pr()});var m6=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({surface_slot_handle:a.string().min(1).max(200).meta(le),surface_type:hx.meta(le),surface_template_ids:a.array(a.string()).default([]).meta(le),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(le),first_seen:a.string().datetime().meta({...le,readOnly:true}),last_seen:a.string().datetime().meta({...le,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(le),placement_count:a.number().int().min(0).default(0).meta({...le,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":al,"x-revturbine-schema-exposure":fr,...e6,...Tr("surface_slot_handle")}),p6=Jn(wa),f6=Jn(il);({"/api/placement-anchors":{get:O({operationId:"listPlacementAnchors",requestParams:{query:Qe},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:Ye(s6)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:O({operationId:"listPlacements",requestParams:{query:Qe},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:Ye(wa)}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"list"}}}),post:O({operationId:"createPlacement",summary:"Create placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:Pn(wa)}}},responses:{201:{description:"Created",content:{"application/json":{schema:cE}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"create"}}})},"/api/placements/{placementId}":{get:O({operationId:"getPlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Get placement",tags:["placements"],responses:{200:{description:"Placement detail",content:{"application/json":{schema:wa}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"get"}}}),patch:O({operationId:"updatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Update placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:p6}}},responses:{200:{description:"Updated",content:{"application/json":{schema:cE}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"update"}}}),delete:O({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:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"delete"}}})},"/api/placements/{placementId}/duplicate":{post:O({operationId:"duplicatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Duplicate placement",tags:["placements"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:wa}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"duplicate"}}})},"/api/placements/reorder":{post:O({operationId:"reorderPlacements",summary:"Reorder placements within category",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:a.object({category:bE,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:O({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:Ye(d6)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-payload-anchors",persistence:{table:"placementPayloads",mode:"list"}}})},"/api/placements/{placementId}/payloads":{get:O({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:Ye(il)}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"list"}}}),post:O({operationId:"createPlacementPayload",requestParams:{path:a.object({placementId:a.string()})},summary:"Create placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:Pn(il)}}},responses:{201:{description:"Created",content:{"application/json":{schema:il}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"create"}}})},"/api/placement-payloads/{payloadId}":{patch:O({operationId:"updatePlacementPayload",requestParams:{path:a.object({payloadId:a.string()})},summary:"Update placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:f6}}},responses:{200:{description:"Updated",content:{"application/json":{schema:il}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"update"}}}),delete:O({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:O({operationId:"listSurfaceSlots",requestParams:{query:Qe},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:Ye(m6)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});function lE(e,n,r){if(!e)return true;if(!i6(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 uE(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 vE={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 g6(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 h6(e){let n={};for(let[r,o]of Object.entries(e)){if(typeof o=="string"){n[r]=g6(o,e);continue}n[r]=o;}return n}function yE(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 xE(e,n){if(e==="qualifier"&&!(typeof n!="string"||n.length===0))return {kind:"qualifier",qualifier:n}}function b6(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 xE(n,r)}function _6(e){if(e)return xE(e.kind,e.qualifier)}function SE(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 v6(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 SE(r,n,o)}function y6(e,n){if(e)return SE(e.kind,n,e.thresholdPercent)}function IE(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 x6(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 IE(r,n,o)}function S6(e,n){if(e)return IE(e.kind,n,e.tierThreshold)}function I6(e){if(!e||typeof e!="object"||!("entitlement_handle"in e))return;let n=e.entitlement_handle;return typeof n=="string"?n:void 0}function P6(e){if(!e||typeof e!="object"||!("slot_id"in e))return;let n=e.slot_id;return typeof n=="string"?n:void 0}function k6(e,n){let r={...vE};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=yE(d.ctas?.[0]),h=Array.isArray(u.target?.plan_ids)?u.target.plan_ids:[],P=I6(c.trigger),x=P6(c.trigger),w=fE(c.trigger),S=v6(c.trigger,P),E=b6(c.trigger),I=x6(c.trigger,P),$={output_id:u.id,category:c.category,surface:{template:m,type:p,slot_id:c.id},content:{...g,__target_plan_ids:h,...P?{__trigger_entitlement_handle:P}:{},...w?{__trigger_kind:w.kind}:{}},cta_path:f,rule_id:c.id,decision_id:u.id,config_version:e.version,present_upsell:true},B=i.get(m)??[];B.push({output:$,entryOrder:c.order??0,entryCategory:c.category,triggerEntitlementHandle:P,triggerSlotId:x,trialTrigger:w,thresholdTrigger:S,qualifierTrigger:E,entitlementGateTrigger:I}),i.set(m,B);let ce=c.id.replace(/^pl_/,"");s.set(ce,$),s.set(c.id,$);}for(let c of i.values())c.sort((u,d)=>u.entryOrder-d.entryOrder);return {outputsByTemplate:i,outputsByName:s,planHandleToId:o,tierLaddersByHandle:t}}function T6(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 $6(e,n){return n.trigger.kind!=="surface_render"?void 0:e.getSlot(n.trigger.slotIdx)?.sourceId}function w6(e){let n={...vE};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 h=yE(m.ctas[0]),P=[];for(let W of d.target.planIdxs){let J=e.getPlan(W);J&&P.push(J.sourceId);}let x=T6(e,u),w=$6(e,u),S=pE(u.trigger),E=y6(u.trigger,x),I=_6(u.trigger),$=S6(u.trigger,x),B={output_id:d.sourceId,category:u.category,surface:{template:p,type:g,slot_id:u.sourceId},content:{...f,__target_plan_ids:P,...x?{__trigger_entitlement_handle:x}:{},...S?{__trigger_kind:S.kind}:{}},cta_path:h,rule_id:u.sourceId,decision_id:d.sourceId,config_version:s,present_upsell:true},ce=t.get(p)??[];ce.push({output:B,entryOrder:u.order,entryCategory:u.category,triggerEntitlementHandle:x,triggerSlotId:w,trialTrigger:S,thresholdTrigger:E,qualifierTrigger:I,entitlementGateTrigger:$}),t.set(p,ce);let me=u.sourceId.replace(/^pl_/,"");i.set(me,B),i.set(u.sourceId,B);}for(let c of t.values())c.sort((u,d)=>u.entryOrder-d.entryOrder);return {outputsByTemplate:t,outputsByName:i,planHandleToId:r,tierLaddersByHandle:o}}function R6(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 Ra({payloads:i,messageBlocks:r,uiPaths:e.content_ui_paths,promotions:e.content_promotions,tokens:e.personalization_tokens})}function C6(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===KF)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 Ra({payloads:s,messageBlocks:t})}function PE(e){let{source:n,impressionHistory:r}=e,{outputsByTemplate:o,outputsByName:t,planHandleToId:i,tierLaddersByHandle:s}=n.format==="flatbuffer"?w6(n.handle):k6(n.exportedConfig,n.placements),c=n.format==="json"?R6(n.exportedConfig,n.placements):C6(n.handle);function u(d,m,p,g){let f=Array.isArray(d.content.__target_plan_ids)?d.content.__target_plan_ids.filter(P=>typeof P=="string"):[],h=Array.isArray(d.content.__target_billing_periods)?d.content.__target_billing_periods.filter(P=>typeof P=="string"):[];return Ox({target_plan_ids:f,target_billing_periods:h,category:d.category},{currentPlanId:m,planHandle:p,billingPeriod:g}).eligible}return async(d,m,p)=>{let g=p?.__providers,f=g?.plan?.currentPlanHandle,h=g?.plan?.billingPeriod,P=f?i.get(f):void 0,x=Re=>typeof Re=="string"?Re:"",w=Array.isArray(m?.metadata?.surface_template_ids)?m.metadata.surface_template_ids:void 0,S,E=[];if(w&&w.length>0){let Re=[];for(let se of w){let Tt=o.get(se);Tt&&Re.push(...Tt);}if(Re.length===0)return dE(d,"no_candidates_for_template","No placements configured for this surface template");Re.sort((se,Tt)=>se.entryOrder-Tt.entryOrder);let X=m?.metadata?.entitlement_handle,_t=m?.metadata?.surface_slot_category,Ke=_t?{gated:["gated"],fixed:["fixed"],triggered:["usage_credit_seat","trials","other_conversion","retention"]}[_t]:void 0,ge=Re;if(X){let se=Re.filter(Tt=>Tt.triggerEntitlementHandle===X);se.length>0&&(ge=se);}let ot=m?.metadata?.surface_slot_id;if(ot){let se=ge.filter(Tt=>Tt.triggerSlotId===ot);se.length>0&&(ge=se);}if(Ke&&_t!=="fixed"&&ge.length>1){let se=ge.filter(Tt=>Ke.includes(Tt.entryCategory));se.length>0&&(ge=se);}r&&(ge=ge.filter(se=>!r.isHiddenSync(se.output.rule_id??""))),ge=ge.filter(se=>jx(se.trialTrigger,g?.plan)),ge=ge.filter(se=>sE(se.thresholdTrigger,g?.entitlements)),ge=ge.filter(se=>lE(se.qualifierTrigger,se.entryCategory,g?.plan)),ge=ge.filter(se=>uE(se.entitlementGateTrigger,s,g?.entitlements));let un,G=[],ee=Ux(g?.plan);if(ee!==null&&ge.length>1){let se=ge.map(pn=>({ruleId:pn.output.rule_id??void 0,entryOrder:pn.entryOrder,trialTrigger:pn.trialTrigger,output:pn.output})),Tt=mE(se,ee);if(Tt){un=Tt.winner,G=Tt.supersededIds;let pn=Tt.winner.ruleId;ge=ge.filter(Ho=>Ho.trialTrigger?.kind!=="trial_progress"||(Ho.output.rule_id??void 0)===pn);}}let Ae;for(let se of ge)if(u(se.output,P,f,h)){S=se.output,Ae=se;break}Ae&&un&&un.ruleId===(Ae.output.rule_id??void 0)&&G.length>0&&(S={...S,content:{...S.content,__superseded_placement_ids:G}}),S||(E=["no_eligible_candidate"]);}else {let Re=m?.name,X=(Re?t.get(Re):void 0)??t.get(d.placementId),_t;if(X)for(let st of o.values()){let Ke=st.find(ge=>ge.output===X);if(Ke){_t=Ke;break}}X&&r?.isHiddenSync(X.rule_id??"")?E=["placement_retired"]:X&&!jx(_t?.trialTrigger,g?.plan)?E=["trial_trigger_unmet"]:X&&!sE(_t?.thresholdTrigger,g?.entitlements)?E=["threshold_trigger_unmet"]:X&&!lE(_t?.qualifierTrigger,_t?.entryCategory??X.category,g?.plan)?E=["qualifier_trigger_unmet"]:X&&!uE(_t?.entitlementGateTrigger,s,g?.entitlements)?E=["entitlement_gate_unmet"]:X&&u(X,P,f,h)?S=X:X?E=["plan_target_mismatch"]:E=["placement_not_found"];}if(!S){let Re=E[0]??"placement_not_found";return dE(d,Re,"Placement not configured")}let I=S.content,$=S.surface.template;if(c&&$){let Re={userId:typeof d.userId=="string"?d.userId:"",segmentIds:g?.segments?.segmentIds??[]},X=await ol($,Re,c,{});X&&(I={...S.content,...X.resolvedContent});}let B={...I},ce=typeof B.entitlement=="string"?B.entitlement:typeof B.__trigger_entitlement_handle=="string"?B.__trigger_entitlement_handle:void 0,me=ce?g?.entitlements?.usage?.[ce]:void 0;if(me){B.usage_remaining=Number.isFinite(me.remaining)?me.remaining:0,B.usage_limit=Number.isFinite(me.limit)?me.limit:0,B.usage_current=Number.isFinite(me.used)?me.used:0,B.usage_percent=me.limit>0?Math.min(100,Math.round(me.used/me.limit*100)):0;let Re=me.reset_date;typeof Re=="string"&&Re.length>0&&(B.reset_date=Re);}let W=h6(B),J={...S,content:W},at=!((S.category==="upsell"||S.category==="trial_conversion")&&f==="enterprise");return {placementId:d.placementId,requestId:`local_${Date.now()}`,visible:at,decisionSource:"fallback",reasonCodes:at?[]:["plan_tier_suppressed"],content:{header:x(J.content.header),body:x(J.content.body),cta_label:x(J.content.cta_label),title:x(J.content.header),cta:x(J.content.cta_label)},output:J}}}function dE(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 Po(e){return PE({source:{format:"json",exportedConfig:e.exportedConfig,placements:e.placements},impressionHistory:e.impressionHistory})}var kE=a.enum(["session","day","week","month"]),TE=a.object({kind:a.enum(["template","slot"]),id:a.string(),label:a.string().optional()});a.object({id:a.string(),group:a.array(TE),cap:a.object({count:a.number().int().min(1),period:kE})});var wE=a.enum(["trial_started","trial_ending","trial_ended","trial_converted"]);a.object({stages:a.array(wE).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}=Oi,{Persisted:Zx,Transient:qt}=Ei,{Internal:EE,External:Ft}=zi,zE=Dt(ut.Playbook,{sdkInput:true}),j6=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),Va=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":qt,"x-revturbine-schema-exposure":Ft}),qx=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),U6=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),A6=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),sp=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Fx=a.object({entitlement_id:a.string().min(1).meta(V),entitlement_handle:a.string().min(1).meta(V),status:U6.meta(V),limit:a.number().optional().meta(V),used:a.number().optional().meta(V),allocation:qx.optional().meta(V),enforcement:sp.optional().meta(V),source:A6.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":qt,"x-revturbine-schema-exposure":Ft,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),Fx).optional().meta(V),instance:a.record(a.string(),Fx).optional().meta(V),user:a.record(a.string(),Fx).optional().meta(V)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft,"x-revturbine-data-classification":"operational"});var D6=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),F6=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),OE=a.object({kind:F6.meta(V),id:a.string().min(1).meta(V)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),jE=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Mx=a.union([a.number(),a.literal("unlimited")]).nullable().optional(),N6=a.looseObject({kind:a.literal("feature").meta(V),enabled:a.boolean().optional().meta(V)}).meta({id:"EntitlementTypeFieldsFeature","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),L6=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":qt,"x-revturbine-schema-exposure":Ft}),B6=a.looseObject({kind:a.literal("usage_limit").meta(V),limit_value:Mx.meta(V),unit:a.string().optional().meta(V),period:Va.optional().meta(V),enforcement:sp.optional().meta(V)}).meta({id:"EntitlementTypeFieldsUsageLimit","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),V6=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:Va.optional().meta(V)}).meta({id:"EntitlementTypeFieldsPricePerUnit","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),M6=a.looseObject({kind:a.literal("rate_limit").meta(V),rate_value:a.number().optional().meta(V),period_scope:Va.optional().meta(V),enforcement:sp.optional().meta(V)}).meta({id:"EntitlementTypeFieldsRateLimit","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Z6=a.looseObject({kind:a.literal("credits").meta(V),allowance:Mx.meta(V),initial_grant:a.number().optional().meta(V),unit:a.string().optional().meta(V),period:Va.optional().meta(V),reset_period:jE.optional().meta(V),rollover:a.boolean().optional().meta(V),max_balance:Mx.meta(V),top_up_available:a.boolean().optional().meta(V)}).meta({id:"EntitlementTypeFieldsCredits","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),q6=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":qt,"x-revturbine-schema-exposure":Ft}),H6=a.looseObject({}).meta({id:"EntitlementTypeFieldsUntyped","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),K6=[N6,L6,B6,V6,M6,Z6,q6],G6=a.union([...K6,H6]).meta({id:"EntitlementTypeFields","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Ua=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...V,readOnly:true}),name:ii.meta(V),handle:rn.meta(V),customer_facing_description:a.string().max(500).optional().meta(V),type:bx.meta(V),unit:a.string().max(100).optional().meta(V),period_scope:Va.optional().meta(V),allocation:qx.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:or.meta(V)}).meta({id:"Entitlement","x-revturbine-schema-persistence":Zx,"x-revturbine-schema-exposure":Ft,...zE,...Tr()}),J6=kn("EntitlementAnchor"),pl=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...V,readOnly:true}),handle:rn.meta({...V,readOnly:true}),entitlement_id:a.string().min(1).meta(V),targets:a.array(OE).min(1).meta(V),segment_ids:a.array(a.string()).default([]).meta(V),visibility:D6.default("public").meta(V),period_scope:Va.optional().meta(V),instance:a.string().max(100).optional().meta(V),reset_period:jE.optional().meta(V),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(V),enforcement:sp.optional().meta(V),warning_threshold_percent:Io.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":Zx,"x-revturbine-schema-exposure":EE,...zE,...pr()}),W6=kn("EntitlementRuleAnchor");pl.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 X6=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Y6=a.object({code:X6.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":qt,"x-revturbine-schema-exposure":Ft}),Nx=pl.extend({warnings:a.array(Y6).optional().meta(V)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Lx=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({handle:rn.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":Zx,"x-revturbine-schema-exposure":EE,...j6,...pr()}),Q6=Jn(Ua),eN=Jn(pl);({"/api/entitlement-anchors":{get:O({operationId:"listEntitlementAnchors",requestParams:{query:Qe},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:Ye(J6)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:O({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:Ye(W6)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:O({operationId:"listEntitlements",requestParams:{query:Qe},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:Ye(Ua)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"list"}}}),post:O({operationId:"createEntitlement",summary:"Create entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:Pn(Ua)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Ua}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"create"}}})},"/api/entitlements/{entitlementId}":{get:O({operationId:"getEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Get entitlement",tags:["entitlements"],responses:{200:{description:"Entitlement detail",content:{"application/json":{schema:Ua}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"get"}}}),patch:O({operationId:"updateEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Update entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:Q6}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ua}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"update"}}}),delete:O({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:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"delete"}}})},"/api/entitlements/{entitlementId}/rules":{get:O({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:Ye(pl)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"list"}}}),post:O({operationId:"createEntitlementRule",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Create entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:Pn(pl)}}},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:O({operationId:"updateEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:eN}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Nx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"update"}}}),delete:O({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:O({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:O({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:Ye(Lx)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"list"}}}),post:O({operationId:"createEntitlementRuleVariant",requestParams:{path:a.object({ruleId:a.string()})},summary:"Create rule A/B variant",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:Pn(Lx)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Lx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:_e}=Oi,{Persisted:fl,Transient:gl}=Ei,{Internal:Zr}=zi,UE=Dt(ut.Playbook,{sdkInput:true}),AE=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),tN=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":gl,"x-revturbine-schema-exposure":Zr}),Hx=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":gl,"x-revturbine-schema-exposure":Zr}),DE=a.object({name:ii.meta(_e),handle:rn.meta(_e),plan_id:a.string().nullable().optional().meta(_e),segment_id:a.string().nullable().optional().meta(_e),trial_limit_type:Hx.default("time").meta(_e),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(_e),grace_period_days:a.number().int().min(0).default(0).meta(_e),usage_entitlement_handle:a.string().min(1).optional().meta(_e),usage_limit_value:a.number().int().min(1).optional().meta(_e),require_payment_method:a.boolean().default(false).meta(_e),auto_convert:a.boolean().default(true).meta(_e),convert_to_plan_id:a.string().optional().meta(_e),fallback_plan_id:a.string().optional().meta(_e),limit_per_customer:a.number().int().min(1).default(1).meta(_e),is_active:a.boolean().default(true).meta(_e),metadata:or.meta(_e)}),Ea=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({..._e,readOnly:true})}).merge(DE).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":Zr,...UE,...Tr()}),nN=kn("FreeTrialRuleAnchor"),rN=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":gl,"x-revturbine-schema-exposure":Zr}),FE=a.object({name:ii.meta(_e),handle:rn.meta(_e),premium_plan_id:a.string().min(1).meta(_e),fallback_plan_id:a.string().min(1).meta(_e),segment_id:a.string().nullable().optional().meta(_e),trial_limit_type:Hx.default("time").meta(_e),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(_e),usage_entitlement_handle:a.string().min(1).optional().meta(_e),usage_limit_value:a.number().int().min(1).optional().meta(_e),start_policy:rN.default("signup").meta(_e),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(_e),entitlements_during_trial:a.array(a.string()).default([]).meta(_e),is_active:a.boolean().default(true).meta(_e),metadata:or.meta(_e)}),za=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({..._e,readOnly:true})}).merge(FE).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":Zr,...UE,...Tr()}),iN=kn("ReverseTrialRuleAnchor"),NE=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":gl,"x-revturbine-schema-exposure":Zr}),LE=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":gl,"x-revturbine-schema-exposure":Zr}),Oa=xt.merge(Rt).merge(Ct).extend({trial_limit_policy:NE.default("1_per_lifetime").meta(_e),eligibility_scope:LE.default("per_customer").meta(_e)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":Zr,...AE}),ja=xt.merge(Rt).merge(Ct).extend({trial_limit_policy:NE.default("1_per_lifetime").meta(_e),eligibility_scope:LE.default("per_customer").meta(_e)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":Zr,...AE}),op=xt.merge(Rt).merge(Ct).extend({customer_id:a.string().min(1).meta(_e),rule_id:a.string().min(1).meta(_e),rule_type:a.enum(["free_trial","reverse_trial"]).meta(_e),plan_id:a.string().min(1).meta(_e),status:tN.default("active").meta(_e),started_at:a.string().datetime().meta({..._e,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(_e),trial_limit_type:Hx.default("time").meta(_e),usage_entitlement_handle:a.string().min(1).optional().meta(_e),usage_limit_value:a.number().int().min(1).optional().meta(_e),converted_at:Km.meta(_e),cancelled_at:Km.meta(_e),metadata:or.meta(_e)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":Zr});({"/api/free-trial-rule-anchors":{get:O({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:Ye(nN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-rule-anchors",persistence:{table:"freeTrialRules",mode:"list"}}})},"/api/trials/free-rules":{get:O({operationId:"listFreeTrialRules",requestParams:{query:Qe},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:Ye(Ea)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"list"}}})},"/api/trials/free-rules/{ruleId}":{get:O({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:Ea}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"get"}}}),patch:O({operationId:"updateFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update free trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Ea.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ea}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"update"}}}),delete:O({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:O({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:Ye(iN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rule-anchors",persistence:{table:"reverseTrialRules",mode:"list"}}})},"/api/trials/reverse-rules":{get:O({operationId:"listReverseTrialRules",requestParams:{query:Qe},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:Ye(za)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"list"}}})},"/api/trials/reverse-rules/{ruleId}":{get:O({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:za}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"get"}}}),patch:O({operationId:"updateReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update reverse trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:za.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:za}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"update"}}}),delete:O({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:O({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:Ye(Oa)}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"list"}}})},"/api/trials/free-settings/{settingsId}":{get:O({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:Oa}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"get"}}}),patch:O({operationId:"updateFreeTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update free 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:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"update"}}})},"/api/trials/reverse-settings":{get:O({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:Ye(ja)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"list"}}})},"/api/trials/reverse-settings/{settingsId}":{get:O({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:ja}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"get"}}}),patch:O({operationId:"updateReverseTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update reverse 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:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:O({operationId:"listTrialInstances",requestParams:{query:Qe},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:Ye(op)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"list"}}})},"/api/trials/instances/{instanceId}":{get:O({operationId:"getTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Get trial instance",tags:["trials"],responses:{200:{description:"Trial instance",content:{"application/json":{schema:op}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"get"}}})},"/api/trials/instances/{instanceId}/cancel":{post:O({operationId:"cancelTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Cancel an active trial",tags:["trials"],responses:{200:{description:"Cancelled",content:{"application/json":{schema:op}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})},"/api/trials/instances/{instanceId}/convert":{post:O({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:op}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:et,Financial:ap}=Oi,{Persisted:hl,Transient:cp}=Ei,{External:oi}=zi,oN=Dt(ut.Playbook,{sdkInput:true}),aN=Dt(ut.Playbook,{sdkInput:false}),Kx=Dt(ut.Billing,{sdkInput:false}),Ma=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":cp,"x-revturbine-schema-exposure":oi}),bl=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":cp,"x-revturbine-schema-exposure":oi}),lp=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":cp,"x-revturbine-schema-exposure":oi}),Aa=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...et,readOnly:true}),name:ii.meta(et),handle:rn.meta(et),tier_position:a.number().int().min(0).default(0).meta(et),sort_order:a.number().int().default(0).meta(et),metadata:or.meta(et)}).meta({id:"Plan","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":oi,...oN,...Tr()}),sN=kn("PlanAnchor"),Da=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...et,readOnly:true}),handle:rn.meta({...et,readOnly:true}),plan_id:a.string().min(1).meta(et),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(et),segment_id:a.string().nullable().default(null).meta(et),price_amount:a.number().min(0).meta(ap),pricing_model:bl.meta(et),visibility:Ma.default("public").meta(et),stripe_price_id:a.string().optional().meta(et),price_source:lp.default("static").meta(et)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":oi,...Kx,...pr()}),cN=kn("PlanVariationAnchor"),Fa=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...et,readOnly:true}),name:ii.meta(et),handle:rn.meta(et),sort_order:a.number().int().default(0).meta(et),metadata:or.meta(et)}).meta({id:"AddOn","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":oi,...aN,...Tr()}),lN=kn("AddOnAnchor"),Na=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...et,readOnly:true}),handle:rn.meta({...et,readOnly:true}),addon_id:a.string().min(1).meta(et),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(et),segment_id:a.string().nullable().default(null).meta(et),price_amount:a.number().min(0).meta(ap),pricing_model:bl.meta(et),visibility:Ma.default("public").meta(et),stripe_price_id:a.string().optional().meta(et),price_source:lp.default("static").meta(et)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":oi,...Kx,...pr()}),uN=kn("AddOnVariationAnchor"),dN=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":cp,"x-revturbine-schema-exposure":oi}),La=xt.merge(Rt).merge(Ct).extend({stripe_price_id:a.string().min(1).meta(et),stripe_product_id:a.string().min(1).meta(et),billing_period:dN.meta(et),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(ap),currency:LC.meta(ap),pricing_model:bl.meta(et),nickname:a.string().nullable().default(null).meta(et),is_mock:a.boolean().default(false).meta(et),last_updated_from_stripe:Km.meta(et)}).meta({id:"StripePrice","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":oi,...Kx}),mN=Jn(Aa),pN=Jn(Da),fN=Jn(Fa),gN=Jn(Na),hN=Jn(La);({"/api/plan-anchors":{get:O({operationId:"listPlanAnchors",requestParams:{query:Qe},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:Ye(sN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:O({operationId:"listPlans",requestParams:{query:Qe},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:Ye(Aa)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"list"}}}),post:O({operationId:"createPlan",summary:"Create plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:Pn(Aa)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:Aa}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"create"}}})},"/api/plans/{planId}":{get:O({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:Aa}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"get"}}}),patch:O({operationId:"updatePlan",requestParams:{path:a.object({planId:a.string()})},summary:"Update plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mN}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:Aa}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"update"}}}),delete:O({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:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"delete"}}})},"/api/plans/reorder":{post:O({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:O({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:Ye(cN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-variation-anchors",persistence:{table:"planVariations",mode:"list"}}})},"/api/plans/{planId}/variations":{get:O({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:Ye(Da)}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"list"}}}),post:O({operationId:"createPlanVariation",requestParams:{path:a.object({planId:a.string()})},summary:"Create plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:Pn(Da)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:Da}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"create"}}})},"/api/plan-variations/{variationId}":{get:O({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:Da}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"get"}}}),patch:O({operationId:"updatePlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:pN}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:Da}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"update"}}}),delete:O({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:O({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:Ye(lN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:O({operationId:"listAddOns",requestParams:{query:Qe},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:Ye(Fa)}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"list"}}}),post:O({operationId:"createAddOn",summary:"Create add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:Pn(Fa)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:Fa}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"create"}}})},"/api/addons/{addonId}":{get:O({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:Fa}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"get"}}}),patch:O({operationId:"updateAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Update add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:fN}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:Fa}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"update"}}}),delete:O({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:O({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:Ye(uN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-variation-anchors",persistence:{table:"addonVariations",mode:"list"}}})},"/api/addons/{addonId}/variations":{get:O({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:Ye(Na)}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"list"}}}),post:O({operationId:"createAddOnVariation",requestParams:{path:a.object({addonId:a.string()})},summary:"Create add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:Pn(Na)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:Na}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"create"}}})},"/api/addon-variations/{variationId}":{get:O({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:Na}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"get"}}}),patch:O({operationId:"updateAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:gN}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:Na}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"update"}}}),delete:O({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:O({operationId:"listStripePrices",requestParams:{query:Qe},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:Ye(La)}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"list"}}}),post:O({operationId:"createStripePrice",summary:"Create Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:Pn(La)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:La}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"create"}}})},"/api/stripe-prices/{id}":{get:O({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:La}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"get"}}}),patch:O({operationId:"updateStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Update Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:hN}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:La}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"update"}}}),delete:O({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}=Oi,{Persisted:Za,Transient:Se}=Ei,{Internal:gr,External:De}=zi,ze=Dt(ut.Playbook,{sdkInput:true}),Ba=Dt(ut.Playbook,{sdkInput:false}),Di=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),BE=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),Ai=Dt(ut.Playbook,{inConfig:false,sdkInput:true,source:mr.CodeConstant}),dl=Dt(ut.Playbook,{inConfig:false,sdkInput:true,source:mr.Runtime}),ml=Dt(ut.Playbook,{inConfig:false,sdkInput:false,source:mr.Runtime}),bN=Dt(ut.Billing,{sdkInput:false}),_N=Dt(ut.Metering,{sdkInput:false}),vN=Dt(ut.Branding,{inConfig:true,sdkInput:true}),yN=Dt(ut.Branding,{sdkInput:false}),xN="1.0.0",sl=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),name:ii.meta(b),handle:rn.meta(b),description:Hm.meta(b),is_default:a.boolean().default(false).meta(b),entitlement_ids:a.array(a.string()).default([]).meta(b),metadata:or.meta(b)}).meta({id:"SeatType","x-revturbine-schema-persistence":Za,"x-revturbine-schema-exposure":gr,...Di,...Tr()}),SN=kn("SeatTypeAnchor"),cl=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:rn.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:or.meta(b)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":Za,"x-revturbine-schema-exposure":gr,...Di,...Tr()}),IN=kn("PersonalizationTokenAnchor"),PN=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":gr}),Bx=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({handle:rn.meta({...b,readOnly:true}),stripe_account_id:a.string().min(1).meta(b),live_mode:a.boolean().default(false).meta(b),onboarding_state:PN.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:or.meta(b)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":Za,"x-revturbine-schema-exposure":gr,...bN,...pr()});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":Se,"x-revturbine-schema-exposure":De,...yN});var ll=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({handle:rn.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:or.meta(b)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":Za,"x-revturbine-schema-exposure":gr,..._N,...pr()}),RE=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":gr}),ul=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:rn.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:RE.default("warn").meta(b),hard_limit_action:RE.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":Za,"x-revturbine-schema-exposure":gr,...BE,...pr()}),kN=kn("UsageEnforcementSettingsAnchor"),TN=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":Se,"x-revturbine-schema-exposure":gr}),$N=a.object({id:a.string().min(1).meta(b),group:a.array(TN).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":Se,"x-revturbine-schema-exposure":gr}),wN=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":gr}),VE=a.object({capRules:a.array($N).default([]).meta(b),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(b),testMode:wN.default("off").meta(b)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":gr}),Vx=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:rn.meta({...b,readOnly:true}),global_frequency_cap:VE.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":Za,"x-revturbine-schema-exposure":gr,...BE,...pr()}),RN=kn("PlacementSettingsAnchor"),CN=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":Se,"x-revturbine-schema-exposure":De}),EN=a.object({name:a.string().min(1).meta(b),handle:a.string().min(1).meta(b),predicates:a.array(CN).optional().meta(b),dimension_id:a.string().optional().meta(b)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze}),zN=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:Ma.default("public").meta(b)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze}),ON=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:Ma.default("public").meta(b)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...Ba}),jN=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:bl.meta(b),visibility:Ma.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:lp.meta(b)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...Di}),UN=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:bl.meta(b),visibility:Ma.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:lp.meta(b)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...Di}),AN=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":Se,"x-revturbine-schema-exposure":De,...ze}),DN=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":Se,"x-revturbine-schema-exposure":De,...ze}),FN=a.object({handle:a.string().min(1).meta(b),global_frequency_cap:VE.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":Se,"x-revturbine-schema-exposure":De,...ze}),NN=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":Se,"x-revturbine-schema-exposure":De,...ze}),LN=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":Se,"x-revturbine-schema-exposure":De,...ze}),BN=a.object({unique_handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),type:bx.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":Se,"x-revturbine-schema-exposure":De,...ze}),VN=a.object({id:a.string().min(1).meta(b),entitlement_id:a.string().min(1).meta(b),targets:a.array(OE).min(1).meta(b),segment_ids:a.array(a.string()).default([]).meta(b),type_fields:G6.default({}).meta(b),current_usage:a.number().default(0).meta(b),allocation:qx.optional().meta(b)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze}),MN=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":Se,"x-revturbine-schema-exposure":De,...ze}),ZN=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":Se,"x-revturbine-schema-exposure":De,...ze}),qN=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":Se,"x-revturbine-schema-exposure":De}),HN=a.object({id:a.string().min(1).meta(b),surface_type:a.string().meta(b),fields:a.array(qN).optional().meta(b)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze}),KN=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":Se,"x-revturbine-schema-exposure":De}),GN=a.object({name:a.string().min(1).meta(b),action_type:KN.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":Se,"x-revturbine-schema-exposure":De,...ze}),JN=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":Se,"x-revturbine-schema-exposure":De,...ze}),WN=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":Se,"x-revturbine-schema-exposure":De,...ze}),CE=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":Se,"x-revturbine-schema-exposure":De}),XN=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:CE.meta(b),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:CE})).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":Se,"x-revturbine-schema-exposure":De,...ze}),YN=a.object({label:a.string().meta(b),path:BC.meta(b),config:a.record(a.string(),a.string()).optional().meta(b)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De}),ME=a.object({template_id:a.string().min(1).meta(b),fields:a.record(a.string(),a.string()).meta(b),ctas:a.array(YN).meta(b)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De}),ZE=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":Se,"x-revturbine-schema-exposure":De}),QN=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":Se,"x-revturbine-schema-exposure":De}),qE=a.object({max_per_period:QN.optional().meta(b),cooldown_days:a.number().int().min(0).optional().meta(b)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De}),eL=a.object({id:a.string().min(1).meta(b),target:ZE.meta(b),surfaces:a.array(ME).meta(b),caps:qE.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":Se,"x-revturbine-schema-exposure":De}),tL=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:Io}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:Io}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:Io}),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":Se,"x-revturbine-schema-exposure":De}),nL=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De}),rL=a.object({id:a.string().min(1).meta(b),name:a.string().min(1).meta(b),category:nL.meta(b),trigger:tL.meta(b),payloads:a.array(eL).meta(b),order:a.number().int().min(0).meta(b)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze}),iL=a.object({payload_id:a.string().min(1).meta(b),placement_id:a.string().min(1).meta(b),target:ZE.meta(b),caps:qE.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(ME).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":Se,"x-revturbine-schema-exposure":De,...ze}),oL=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":Se,"x-revturbine-schema-exposure":De,...ze}),aL=xt.merge(DE).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...Di}),sL=xt.merge(FE).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...Di}),cL=a.object({version:a.string().meta({...b,...Ai}),exported_at:a.string().datetime().optional().meta({...b,...dl,readOnly:true}),schema_version:a.string().optional().meta({...b,...Ai,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({...b,...Ai,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({...b,...dl,readOnly:true}),tenant_id:a.string().optional().meta({...b,...ml,readOnly:true}),environment_id:a.string().optional().meta({...b,...ml,readOnly:true}),plans:a.array(zN).meta({...b,...ze}),addons:a.array(ON).optional().meta({...b,...Ba}),entitlements:a.array(BN).meta({...b,...ze}),entitlement_rules:a.array(VN).meta({...b,...ze}),segments:a.array(EN).meta({...b,...ze}),content_ui_paths:a.array(GN).meta({...b,...ze}),slot_configs:a.array(MN).optional().meta({...b,...ze,...rl({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,...ze,...rl({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,...vN,...rl({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(ZN).optional().meta({...b,...ze}),message_blocks:a.array(XN).optional().meta({...b,...ze}),placement_payloads:a.array(iL).optional().meta({...b,...ze}),placements:a.array(rL).optional().meta({...b,...ze}),content_promotions:a.array(JN).optional().meta({...b,...ze}),personalization_tokens:a.array(WN).optional().meta({...b,...ze}),surface_templates:a.array(HN).optional().meta({...b,...ze}),free_trial_rules:a.array(aL).optional().meta({...b,...Ba}),reverse_trial_rules:a.array(sL).optional().meta({...b,...Ba}),plan_variations:a.array(jN).optional().meta({...b,...Ba}),addon_variations:a.array(UN).optional().meta({...b,...Ba}),extension_rules:a.array(oL).optional().meta({...b,...ze}),seat_types:a.array(AN).optional().meta({...b,...ze}),enforcement_defaults:a.array(DN).optional().meta({...b,...ze}),placement_settings:a.array(FN).optional().meta({...b,...ze}),segment_dimensions:a.array(NN).optional().meta({...b,...ze}),meter_bindings:a.array(LN).optional().meta({...b,...ze})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze,...rl({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),lL=a.object({artifact_type:a.literal("playbook").meta({...b,...Ai,readOnly:true}),format_version:a.literal(xN).meta({...b,...Ai,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({...b,...Ai}),playbook_version_id:a.string().nullable().default(null).meta({...b,...dl,readOnly:true}),tenant_id:a.string().min(1).meta({...b,...ml,readOnly:true}),environment_id:a.string().min(1).meta({...b,...ml,readOnly:true}),project_id:a.string().min(1).optional().meta({...b,...ml,readOnly:true}),exported_at:a.string().datetime().optional().meta({...b,...dl,readOnly:true}),schema_version:a.string().min(1).optional().meta({...b,...Ai,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({...b,...Ai,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...dl}),uL={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},dL=cL.omit(uL).extend({experiments:a.array(a.unknown()).max(0).optional().meta({...b,...Di}),signal_catalog:a.object({}).strict().optional().meta({...b,...Di})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze});lL.extend(dL.shape).meta({id:"Playbook","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze});({"/api/seat-type-anchors":{get:O({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:Ye(SN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:O({operationId:"listSeatTypes",requestParams:{query:Qe},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:Ye(sl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"list"}}}),post:O({operationId:"createSeatType",summary:"Create seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Pn(sl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:sl}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"create"}}})},"/api/config/seat-types/{id}":{patch:O({operationId:"updateSeatType",requestParams:{path:a.object({id:a.string()})},summary:"Update seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:sl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:sl}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"update"}}}),delete:O({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:O({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:Ye(IN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:O({operationId:"listPersonalizationTokens",requestParams:{query:Qe},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:Ye(cl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"list"}}}),post:O({operationId:"createPersonalizationToken",summary:"Create personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Pn(cl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:cl}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"create"}}})},"/api/config/personalization-tokens/{id}":{patch:O({operationId:"updatePersonalizationToken",requestParams:{path:a.object({id:a.string()})},summary:"Update personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:cl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:cl}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"update"}}}),delete:O({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:O({operationId:"upsertStripeIntegrationConfig",summary:"Create or update Stripe integration config",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Jn(Bx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:Bx}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:O({operationId:"listMeteringConfigs",requestParams:{query:Qe},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:Ye(ll)}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"list"}}}),post:O({operationId:"createMeteringConfig",summary:"Create metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Pn(ll)}}},responses:{201:{description:"Created",content:{"application/json":{schema:ll}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"create"}}})},"/api/config/metering/{meteringId}":{patch:O({operationId:"updateMeteringConfig",requestParams:{path:a.object({meteringId:a.string()})},summary:"Update metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:ll.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ll}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"update"}}}),delete:O({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:O({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:Ye(kN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement-setting-anchors",persistence:{table:"usageEnforcementSettings",mode:"list"}}})},"/api/config/usage-enforcement":{get:O({operationId:"listUsageEnforcementSettings",requestParams:{query:Qe},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:Ye(ul)}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"list"}}}),post:O({operationId:"createUsageEnforcementSettings",summary:"Create usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Pn(ul)}}},responses:{201:{description:"Created",content:{"application/json":{schema:ul}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"create"}}})},"/api/config/usage-enforcement/{settingsId}":{patch:O({operationId:"updateUsageEnforcementSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:ul.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ul}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"update"}}}),delete:O({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:O({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:Ye(RN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-setting-anchors",persistence:{table:"placementSettings",mode:"list"}}})},"/api/config/placement-settings":{put:O({operationId:"upsertPlacementSettings",summary:"Create or update global placement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Jn(Vx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:Vx}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});function Ha(){return typeof window>"u"||typeof document>"u"}function Fn(){return !Ha()}var _l=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();}},mL="revturbine:interaction-state",HE=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 `${mL}:${this.tenantId}:${this.userId}`}stateKey(e,n,r){return [this.tenantId,n,e,r||"default"].join(":")}},pL="revturbine:presentation-caps";function qa(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function fL(e){if(!qa(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 gL(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 KE=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=gL(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 `${pL}:${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,qa(e.content)?e.content.payload:void 0,qa(e.content)?e.content.placement:void 0,qa(e.content)?e.content.surface:void 0];for(let o of r){if(!qa(o))continue;let t=qa(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=fL(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}},Ka=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 GE(e){return [e.tenantId,e.userId,e.placementId,e.treatmentId||"default"].join(":")}function JE(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 hL=new Set(["dismissed","clicked_thru"]),bL=1440*60*1e3,Gx=class{constructor(e){this.retiredCache=null,this.suppressedCache=null,this.store=e.store,this.userId=e.userId,this.defaultSuppressionMs=e.defaultSuppressionMs??bL;}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);}},_L=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=WE(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.records.get(e)??[];return XE(n)}getSuppressedPlacements(e){let n=this.records.get(e)??[];return YE(n)}clear(e){this.records.delete(e);}},vL="revturbine:impression-history",up=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=WE(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.load(e);return XE(n)}getSuppressedPlacements(e){let n=this.load(e);return YE(n)}clear(e){this.storage.removeItem(this.key(e));}key(e){return `${vL}:${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 WE(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 XE(e){let n=new Set;for(let r of e)hL.has(r.outcome)&&n.add(r.placementId);return n}function YE(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 yL(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 xL(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 QE=class{constructor(e){this.registeredPlacements=new Map,this.tenantId=e.tenantId,this.userId=e.userId,this.exportedConfig=e.exportedConfig;let n=e.storage??new Ka;this.registry=new _l;for(let o of e.providers)this.registry.register(o);this.interactionTracker=new HE({storage:n,tenantId:e.tenantId,userId:e.userId,...e.interactionOptions}),this.capEnforcer=new KE({storage:n,tenantId:e.tenantId,userId:e.userId}),this.impressionHistory=new Gx({store:e.impressionStore??new _L,userId:e.userId});let r=e.customResolver??this.buildPlacementResolver(e);this.engine=new xx({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 tl(n,e)}buildTargetingState(e,n){return ep(e,this.exportedConfig,n)}async derivePersonalizationTokens(e){let n=await this.registry.resolveAll();return $a({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 Po({placements:n,exportedConfig:e.exportedConfig,impressionHistory:this.impressionHistory})}deriveEntitlementFromConfig(e,n){return el({handle:e,context:n,currentPlanHandle:"",segmentIds:new Set,usageBalances:{},exportedConfig:this.exportedConfig})??{status:"allowed",allowed:true,reason:"local_runtime_default_allow"}}},SL=["web-client","server"],IL=a.enum(SL),PL=["method","meta","component"],kL=a.enum(PL),TL=["ts","python","java","csharp","rust"];a.enum(TL);var $L=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(),wL=a.object({canonical:a.string().min(1),aliases:a.array(a.string().min(1)),kind:kL,appliesTo:a.array(IL).min(1),composes:a.string().min(1).optional(),perLanguage:$L.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"]}),RL=a.object({version:a.number().int().positive(),functions:a.array(wL).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);}});RL.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 Jx={workspace_name:"Your workspace",theme:{}};function ez(e){return !!e&&Object.keys(e).length>0}var tz=false;function Wx(e={}){let n=(r,o)=>({branding:{...Jx,...r,theme:{...Jx.theme,...r?.theme}},source:o});return ez(e.explicit)?n(e.explicit,"explicit"):e.legacyConfigTheme&&Object.keys(e.legacyConfigTheme).length>0?(e.warnOnLegacy!==false&&!tz&&CL()&&(tz=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")):ez(e.apiBranding)?n(e.apiBranding,"branding-api"):n(void 0,"default")}function CL(){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 nz="[REDACTED]",EL=/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g,zL=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,OL=/\d(?:[ -]?\d){12,18}/g;function jL(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 UL(e){let n=0,r=e.replace(EL,()=>(n+=1,nz));return r=r.replace(OL,o=>{let t=o.replace(/[ -]/g,"");return t.length>=13&&t.length<=19&&jL(t)?(n+=1,nz):o}),{value:r,count:n}}function Xx(e){let n=0,r=o=>{if(typeof o=="string"){let t=UL(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 AL(e){return zL.test(e.trim())}function DL(e){let n=e.trim().toLowerCase();return `eml_${LL(n).slice(0,16)}`}function Yx(e){return AL(e)?{value:DL(e),redacted:true}:{value:e,redacted:false}}function rz(e){let n=Yx(e.user_id??""),r=Xx({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 FL=[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 NL(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 qr(e,n){return e>>>n|e<<32-n}function LL(e){let n=NL(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 $=0;$<16;$+=1){let B=g+$*4;p[$]=(n[B]<<24|n[B+1]<<16|n[B+2]<<8|n[B+3])>>>0;}for(let $=16;$<64;$+=1){let B=qr(p[$-15],7)^qr(p[$-15],18)^p[$-15]>>>3,ce=qr(p[$-2],17)^qr(p[$-2],19)^p[$-2]>>>10;p[$]=p[$-16]+B+p[$-7]+ce>>>0;}let f=o,h=t,P=i,x=s,w=c,S=u,E=d,I=m;for(let $=0;$<64;$+=1){let B=qr(w,6)^qr(w,11)^qr(w,25),ce=w&S^~w&E,me=I+B+ce+FL[$]+p[$]>>>0,W=qr(f,2)^qr(f,13)^qr(f,22),J=f&h^f&P^h&P,fe=W+J>>>0;I=E,E=S,S=w,w=x+me>>>0,x=P,P=h,h=f,f=me+fe>>>0;}o=o+f>>>0,t=t+h>>>0,i=i+P>>>0,s=s+x>>>0,c=c+w>>>0,u=u+S>>>0,d=d+E>>>0,m=m+I>>>0;}return [o,t,i,s,c,u,d,m].map(g=>g.toString(16).padStart(8,"0")).join("")}var iz={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"},oz="control_plane_source";function Qx(e,n={}){return {eventName:e,properties:{[oz]:iz[e],...n}}}var vl=class{constructor(n){z(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 Fi(e){if(e)return e;if(Fn())try{return new vl(window.localStorage)}catch{}return new Ka}function eS(e){if(e)return e;if(Fn())try{return new vl(window.sessionStorage)}catch{}return new Ka}var BL=/^[a-z0-9._]{1,100}$/,Ht={Persisted:"persisted",Transient:"transient"},Kt={Internal:"internal",External:"external"},Gt={Pii:{"x-revturbine-data-classification":"pii"},Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}};var VL="readOnly";function vn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[VL]===true||(n[r]=o);}return a.object(n)}function _n(e){let n=vn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(BL)}):n}var {Unrestricted:dn}=Gt,{Transient:Nn,Persisted:ML}=Ht,{Internal:To,External:ci}=Kt;a.object({page:a.coerce.number().int().min(1).default(1).meta(dn),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(dn)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci});var ZL=e=>a.object({items:a.array(e).meta(dn),total:a.number().int().min(0).meta(dn),page:a.number().int().min(1).meta(dn),per_page:a.number().int().min(1).meta(dn),has_more:a.boolean().meta(dn)}).meta({id:"PaginatedResponse","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci}),pe=a.object({created_at:a.string().datetime().meta({...dn,readOnly:true}),updated_at:a.string().datetime().meta({...dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci}),ae=a.object({id:a.string().min(1).meta({...dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci}),be=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":To});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci});var _p=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":Nn,"x-revturbine-schema-exposure":ci}),hz=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci}),qL=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":To});var Nt=a.string().min(1).max(200),ct=a.string().min(1).max(100),$o=a.string().max(500).optional(),Ut=a.record(a.string(),a.unknown()).default({}),$l=a.number().int().min(10).max(100).multipleOf(10),zt=a.string().datetime().nullable().default(null),dt=a.object({environment_id:a.string().min(1).default("production").meta({...dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":To}),ft=a.object({playbook_version_id:a.string().nullable().default(null).meta(dn),is_current:a.boolean().default(true).meta({...dn,readOnly:true}),is_deleted:a.boolean().default(false).meta({...dn,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...dn,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...dn,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":To}),HL=ae.merge(pe).merge(be).merge(dt).extend({handle:ct.meta({...dn,readOnly:true}),active:a.boolean().default(true).meta({...dn,readOnly:true})});function an(e){return HL.meta({id:e,"x-revturbine-schema-persistence":ML,"x-revturbine-schema-exposure":To})}var gS=a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":To}),KL=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":Nn,"x-revturbine-schema-exposure":To}),bz=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":Nn,"x-revturbine-schema-exposure":ci}),Ze={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},$r={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},GL="x-revturbine-context",JL="x-revturbine-in-config",WL="x-revturbine-sdk-input",XL="x-revturbine-source",YL="x-revturbine-deprecation",QL={[Ze.Playbook]:$r.Customer,[Ze.Branding]:$r.Customer,[Ze.Billing]:$r.Stripe,[Ze.Metering]:$r.Customer,[Ze.CustomerOperations]:$r.Runtime,[Ze.EventIngestion]:$r.Runtime};function lt(e,n){return {[GL]:e,[JL]:n.inConfig??e===Ze.Playbook,[WL]:n.sdkInput,[XL]:n.source??QL[e]}}function dp(e){return {deprecated:true,[YL]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var _z={Named:"named",Minted:"minted"},vz="x-revturbine-schema-identity";function yn(e="handle"){return {[vz]:{kind:_z.Named,handleField:e}}}function ar(e="handle"){return {[vz]:{kind:_z.Minted,handleField:e}}}var te=e=>a.object({items:a.array(e)}),we=a.object({error:a.string(),code:a.string(),request_id:a.string()}),y=e=>e,ne=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:tt,Financial:bp}=Gt,{Persisted:Ol,Transient:vp}=Ht,{External:li}=Kt,eB=lt(Ze.Playbook,{sdkInput:true}),tB=lt(Ze.Playbook,{sdkInput:false}),hS=lt(Ze.Billing,{sdkInput:false}),ds=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":vp,"x-revturbine-schema-exposure":li}),jl=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":vp,"x-revturbine-schema-exposure":li}),yp=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":vp,"x-revturbine-schema-exposure":li}),es=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...tt,readOnly:true}),name:Nt.meta(tt),handle:ct.meta(tt),tier_position:a.number().int().min(0).default(0).meta(tt),sort_order:a.number().int().default(0).meta(tt),metadata:Ut.meta(tt)}).meta({id:"Plan","x-revturbine-schema-persistence":Ol,"x-revturbine-schema-exposure":li,...eB,...yn()}),nB=an("PlanAnchor"),ts=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...tt,readOnly:true}),handle:ct.meta({...tt,readOnly:true}),plan_id:a.string().min(1).meta(tt),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(tt),segment_id:a.string().nullable().default(null).meta(tt),price_amount:a.number().min(0).meta(bp),pricing_model:jl.meta(tt),visibility:ds.default("public").meta(tt),stripe_price_id:a.string().optional().meta(tt),price_source:yp.default("static").meta(tt)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":Ol,"x-revturbine-schema-exposure":li,...hS,...ar()}),rB=an("PlanVariationAnchor"),ns=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...tt,readOnly:true}),name:Nt.meta(tt),handle:ct.meta(tt),sort_order:a.number().int().default(0).meta(tt),metadata:Ut.meta(tt)}).meta({id:"AddOn","x-revturbine-schema-persistence":Ol,"x-revturbine-schema-exposure":li,...tB,...yn()}),iB=an("AddOnAnchor"),rs=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...tt,readOnly:true}),handle:ct.meta({...tt,readOnly:true}),addon_id:a.string().min(1).meta(tt),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(tt),segment_id:a.string().nullable().default(null).meta(tt),price_amount:a.number().min(0).meta(bp),pricing_model:jl.meta(tt),visibility:ds.default("public").meta(tt),stripe_price_id:a.string().optional().meta(tt),price_source:yp.default("static").meta(tt)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":Ol,"x-revturbine-schema-exposure":li,...hS,...ar()}),oB=an("AddOnVariationAnchor"),aB=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":vp,"x-revturbine-schema-exposure":li}),is=ae.merge(pe).merge(be).extend({stripe_price_id:a.string().min(1).meta(tt),stripe_product_id:a.string().min(1).meta(tt),billing_period:aB.meta(tt),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(bp),currency:qL.meta(bp),pricing_model:jl.meta(tt),nickname:a.string().nullable().default(null).meta(tt),is_mock:a.boolean().default(false).meta(tt),last_updated_from_stripe:zt.meta(tt)}).meta({id:"StripePrice","x-revturbine-schema-persistence":Ol,"x-revturbine-schema-exposure":li,...hS});var sB=vn(es),cB=vn(ts),lB=vn(ns),uB=vn(rs),dB=vn(is);({"/api/plan-anchors":{get:y({operationId:"listPlanAnchors",requestParams:{query:ne},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:te(nB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:y({operationId:"listPlans",requestParams:{query:ne},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:te(es)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:_n(es)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:es}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:es}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:sB}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:es}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:we}}}},"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:ne},summary:"List plan variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan variation anchor list",content:{"application/json":{schema:te(rB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List plan variations",tags:["plans"],responses:{200:{description:"Plan variations",content:{"application/json":{schema:te(ts)}}}},"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:_n(ts)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:ts}}}},"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:ts}}}},"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:cB}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:ts}}}},"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:ne},summary:"List add-on anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on anchor list",content:{"application/json":{schema:te(iB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:y({operationId:"listAddOns",requestParams:{query:ne},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:te(ns)}}}},"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:_n(ns)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:ns}}}},"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:ns}}}},"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:lB}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:ns}}}},"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:ne},summary:"List add-on variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on variation anchor list",content:{"application/json":{schema:te(oB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List add-on variations",tags:["plans"],responses:{200:{description:"Add-on variations",content:{"application/json":{schema:te(rs)}}}},"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:_n(rs)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:rs}}}},"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:rs}}}},"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:uB}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:rs}}}},"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:ne},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:te(is)}}}},"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:_n(is)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:is}}}},"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:is}}}},"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:dB}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:is}}}},"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:M}=Gt,{Persisted:bS,Transient:Jt}=Ht,{Internal:yz,External:Lt}=Kt,xz=lt(Ze.Playbook,{sdkInput:true}),mB=lt(Ze.Playbook,{inConfig:false,sdkInput:false}),ms=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":Jt,"x-revturbine-schema-exposure":Lt}),_S=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),pB=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),fB=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),xp=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),wl=a.object({entitlement_id:a.string().min(1).meta(M),entitlement_handle:a.string().min(1).meta(M),status:pB.meta(M),limit:a.number().optional().meta(M),used:a.number().optional().meta(M),allocation:_S.optional().meta(M),enforcement:xp.optional().meta(M),source:fB.optional().meta(M),plan_id:a.string().optional().meta(M),segment_id:a.string().optional().meta(M),seat_type_id:a.string().optional().meta(M),rule_id:a.string().optional().meta(M)}).meta({id:"EntitlementGrant","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),wl).optional().meta(M),instance:a.record(a.string(),wl).optional().meta(M),user:a.record(a.string(),wl).optional().meta(M)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt,"x-revturbine-data-classification":"operational"});var gB=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),hB=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),Sz=a.object({kind:hB.meta(M),id:a.string().min(1).meta(M)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),Iz=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),fS=a.union([a.number(),a.literal("unlimited")]).nullable().optional(),bB=a.looseObject({kind:a.literal("feature").meta(M),enabled:a.boolean().optional().meta(M)}).meta({id:"EntitlementTypeFieldsFeature","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),_B=a.looseObject({kind:a.literal("capability_tier").meta(M),tier_name:a.string().optional().meta(M),tier_description:a.string().optional().meta(M)}).meta({id:"EntitlementTypeFieldsCapabilityTier","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),vB=a.looseObject({kind:a.literal("usage_limit").meta(M),limit_value:fS.meta(M),unit:a.string().optional().meta(M),period:ms.optional().meta(M),enforcement:xp.optional().meta(M)}).meta({id:"EntitlementTypeFieldsUsageLimit","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),yB=a.looseObject({kind:a.literal("price_per_unit").meta(M),amount_cents:a.number().optional().meta(M),currency:a.string().optional().meta(M),unit:a.string().optional().meta(M),period:ms.optional().meta(M)}).meta({id:"EntitlementTypeFieldsPricePerUnit","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),xB=a.looseObject({kind:a.literal("rate_limit").meta(M),rate_value:a.number().optional().meta(M),period_scope:ms.optional().meta(M),enforcement:xp.optional().meta(M)}).meta({id:"EntitlementTypeFieldsRateLimit","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),SB=a.looseObject({kind:a.literal("credits").meta(M),allowance:fS.meta(M),initial_grant:a.number().optional().meta(M),unit:a.string().optional().meta(M),period:ms.optional().meta(M),reset_period:Iz.optional().meta(M),rollover:a.boolean().optional().meta(M),max_balance:fS.meta(M),top_up_available:a.boolean().optional().meta(M)}).meta({id:"EntitlementTypeFieldsCredits","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),IB=a.looseObject({kind:a.literal("seat").meta(M),included_seats:a.union([a.number(),a.literal("unlimited")]).optional().meta(M),max_seats:a.union([a.number(),a.literal("unlimited")]).nullable().optional().meta(M),seat_type:a.string().optional().meta(M)}).meta({id:"EntitlementTypeFieldsSeat","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),PB=a.looseObject({}).meta({id:"EntitlementTypeFieldsUntyped","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),kB=[bB,_B,vB,yB,xB,SB,IB],TB=a.union([...kB,PB]).meta({id:"EntitlementTypeFields","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),os=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...M,readOnly:true}),name:Nt.meta(M),handle:ct.meta(M),customer_facing_description:a.string().max(500).optional().meta(M),type:hz.meta(M),unit:a.string().max(100).optional().meta(M),period_scope:ms.optional().meta(M),allocation:_S.optional().meta(M),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(M),sort_order:a.number().int().default(0).meta(M),metadata:Ut.meta(M)}).meta({id:"Entitlement","x-revturbine-schema-persistence":bS,"x-revturbine-schema-exposure":Lt,...xz,...yn()}),$B=an("EntitlementAnchor"),El=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...M,readOnly:true}),handle:ct.meta({...M,readOnly:true}),entitlement_id:a.string().min(1).meta(M),targets:a.array(Sz).min(1).meta(M),segment_ids:a.array(a.string()).default([]).meta(M),visibility:gB.default("public").meta(M),period_scope:ms.optional().meta(M),instance:a.string().max(100).optional().meta(M),reset_period:Iz.optional().meta(M),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(M),enforcement:xp.optional().meta(M),warning_threshold_percent:$l.optional().meta(M),overage_price_ref:a.string().optional().meta(M),grace_period_hours:a.number().int().min(0).optional().meta(M),tier_value:a.string().optional().meta(M),rate_value:a.number().optional().meta(M),initial_grant:a.number().optional().meta(M),allowance_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(M),rollover_enabled:a.boolean().optional().meta(M),max_balance:a.union([a.number(),a.literal("unlimited")]).nullable().default(null).meta(M),seat_type_id:a.string().optional().meta(M),included_count:a.union([a.number().int(),a.literal("unlimited")]).optional().meta(M),at_limit_behavior:a.enum(["hard_cap","auto_upgrade_at_renewal"]).optional().meta(M),stripe_metered_price_id:a.string().optional().meta(M)}).meta({id:"EntitlementRule","x-revturbine-schema-persistence":bS,"x-revturbine-schema-exposure":yz,...xz,...ar()}),wB=an("EntitlementRuleAnchor");El.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 RB=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),CB=a.object({code:RB.meta(M),message:a.string().min(1).meta(M),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(M)}).meta({id:"EntitlementRuleWarning","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),tS=El.extend({warnings:a.array(CB).optional().meta(M)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt});var nS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({...M,readOnly:true}),rule_id:a.string().min(1).meta(M),experiment_id:a.string().min(1).meta(M),variant_name:a.string().min(1).max(200).meta(M),is_control:a.boolean().default(false).meta(M),override_fields:a.record(a.string(),a.unknown()).default({}).meta(M)}).meta({id:"EntitlementRuleVariant","x-revturbine-schema-persistence":bS,"x-revturbine-schema-exposure":yz,...mB,...ar()}),EB=vn(os),zB=vn(El);({"/api/entitlement-anchors":{get:y({operationId:"listEntitlementAnchors",requestParams:{query:ne},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:te($B)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:y({operationId:"listEntitlementRuleAnchors",requestParams:{query:ne},summary:"List entitlement rule anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement rule anchor list",content:{"application/json":{schema:te(wB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:y({operationId:"listEntitlements",requestParams:{query:ne},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:te(os)}}}},"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:_n(os)}}},responses:{201:{description:"Created",content:{"application/json":{schema:os}}}},"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:os}}}},"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:EB}}},responses:{200:{description:"Updated",content:{"application/json":{schema:os}}}},"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:we}}}},"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:ne},summary:"List rules for entitlement",tags:["entitlements"],responses:{200:{description:"Rule list",content:{"application/json":{schema:te(El)}}}},"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:_n(El)}}},responses:{201:{description:"Created",content:{"application/json":{schema:tS}}}},"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:zB}}},responses:{200:{description:"Updated",content:{"application/json":{schema:tS}}}},"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:tS}}}},"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:ne},summary:"List A/B variants for rule",tags:["entitlements"],responses:{200:{description:"Variant list",content:{"application/json":{schema:te(nS)}}}},"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:_n(nS)}}},responses:{201:{description:"Created",content:{"application/json":{schema:nS}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:ue}=Gt,{Persisted:Ul,Transient:Zi}=Ht,{External:br,Internal:OB}=Kt,Pz=lt(Ze.Playbook,{sdkInput:true}),jB=lt(Ze.Playbook,{inConfig:false,sdkInput:false}),UB=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),AB=lt(Ze.Playbook,{inConfig:false,sdkInput:false,source:$r.Runtime}),DB=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]);var kz=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br}),Tz=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br}),FB=a.object({count:a.number().int().positive().meta(ue),period:Tz.meta(ue)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br});a.object({surface_type:a.string().min(1).meta(ue),rules:a.array(FB).meta(ue),cooldown_ms:a.number().int().nonnegative().optional().meta(ue)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":br,"x-revturbine-data-classification":"operational",...UB});var NB=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":Zi,"x-revturbine-schema-exposure":br}),ss=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true}),name:Nt.meta(ue),handle:ct.meta(ue),description:$o.meta(ue),category:kz.meta(ue),drag_order_in_category:a.number().int().default(0).meta(ue),surface_slot_id:a.string().optional().meta(ue),entitlement_id:a.string().optional().meta(ue),tier_threshold:a.string().optional().meta(ue),threshold_percent:$l.optional().meta(ue),trial_type:a.enum(["free","reverse"]).optional().meta(ue),trigger_type:a.string().optional().meta(ue),trial_progress_percent:a.number().min(0).max(100).optional().meta(ue),days_before_end:a.number().int().min(0).optional().meta(ue),qualifier:DB.optional().meta(ue),activation_window_start:a.string().datetime().optional().meta(ue),activation_window_end:a.string().datetime().optional().meta(ue),metadata:Ut.meta(ue)}).meta({id:"Placement","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":br,...Pz,...yn()}),LB=an("PlacementAnchor"),BB=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br}),VB=a.object({code:BB.meta(ue),message:a.string().min(1).meta(ue),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(ue)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br}),az=ss.extend({warnings:a.array(VB).optional().meta(ue)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br});var MB=a.object({label:a.string().min(1).max(200).meta(ue),cta_path_type:NB.meta(ue),config_fields:a.record(a.string(),a.unknown()).default({}).meta(ue)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br}),kl=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true}),handle:ct.meta({...ue,readOnly:true}),placement_id:a.string().min(1).meta(ue),drag_order:a.number().int().default(0).meta(ue),target_plan_ids:a.array(a.string()).default([]).meta(ue),target_plan_billing_cadences:a.array(a.string()).default([]).meta(ue),target_segments:a.array(a.string()).default([]).meta(ue),surface_slot_ids:a.array(a.string()).default([]).meta(ue),surface_template_id:a.string().min(1).meta(ue),content_fields:a.record(a.string(),a.unknown()).default({}).meta(ue),cta_list:a.array(MB).default([]).meta(ue),max_per_period:a.number().int().min(0).nullable().default(null).meta(ue),max_period_unit:Tz.default("session").meta(ue),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(ue),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(ue),recommendation_plan_override:a.string().optional().meta(ue)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":br,...Pz,...ar()}),ZB=an("PlacementPayloadAnchor");ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({...ue,readOnly:true}),placement_payload_id:a.string().min(1).meta(ue),experiment_id:a.string().min(1).meta(ue),variant_name:a.string().min(1).max(200).meta(ue),is_control:a.boolean().default(false).meta(ue),traffic_allocation_percent:a.number().min(0).max(100).meta(ue),override_fields:a.record(a.string(),a.unknown()).default({}).meta(ue),status:a.enum(["active","paused","complete"]).default("active").meta(ue)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":OB,...jB,...ar()});var qB=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({surface_slot_handle:a.string().min(1).max(200).meta(ue),surface_type:_p.meta(ue),surface_template_ids:a.array(a.string()).default([]).meta(ue),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(ue),first_seen:a.string().datetime().meta({...ue,readOnly:true}),last_seen:a.string().datetime().meta({...ue,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(ue),placement_count:a.number().int().min(0).default(0).meta({...ue,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":br,...AB,...yn("surface_slot_handle")}),HB=vn(ss),KB=vn(kl);({"/api/placement-anchors":{get:y({operationId:"listPlacementAnchors",requestParams:{query:ne},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:te(LB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:y({operationId:"listPlacements",requestParams:{query:ne},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:te(ss)}}}},"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:_n(ss)}}},responses:{201:{description:"Created",content:{"application/json":{schema:az}}}},"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:ss}}}},"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:HB}}},responses:{200:{description:"Updated",content:{"application/json":{schema:az}}}},"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:we}}}},"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:ss}}}},"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:kz,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:ne},summary:"List placement payload anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement payload anchor list",content:{"application/json":{schema:te(ZB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List placement payloads",tags:["placements"],responses:{200:{description:"Payload list",content:{"application/json":{schema:te(kl)}}}},"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:_n(kl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:kl}}}},"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:KB}}},responses:{200:{description:"Updated",content:{"application/json":{schema:kl}}}},"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:ne},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:te(qB)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});var {Unrestricted:Me,Pii:Tl}=Gt,{Persisted:$z,Transient:Sp}=Ht,{External:Al}=Kt,vS=a.object({in_trial:a.boolean().meta(Me),trial_type:a.string().optional().meta(Me),plan_handle:a.string().optional().meta(Me),state:a.enum(["active","running_out","expired","converted","none"]).optional().meta(Me),trial_limit_type:a.enum(["time","usage"]).optional().meta(Me),progress_percent:a.number().min(0).max(100).optional().meta(Me),day_number:a.number().int().min(0).optional().meta(Me),days_remaining:a.number().int().min(0).optional().meta(Me),usage_entitlement_handle:a.string().optional().meta(Me),usage_consumed:a.number().int().min(0).optional().meta(Me),usage_remaining:a.number().int().min(0).optional().meta(Me),usage_limit:a.number().int().min(0).optional().meta(Me)}).meta({id:"UserTrialStatus","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":Al}),wz=a.object({entitlement_handle:a.string().min(1).meta(Me),unit:a.string().min(1).meta(Me),amount:a.number().min(0).meta(Me),limit:a.number().min(0).optional().meta(Me),reset_date:a.string().optional().meta(Me)}).meta({id:"UserUsageEntry","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":Al}),Rz=a.object({id:a.string().min(1).meta(Me),name:a.string().min(1).meta(Me),price:a.string().optional().meta(Me),billing_period:a.enum(["monthly","annual","none"]).optional().meta(Me)}).meta({id:"UserPlanContext","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":Al}),GB=a.object({product_instance_id:a.string().min(1).meta(Me),user_id:a.string().min(1).meta(Tl),plan:Rz.optional().meta(Me),usage:a.record(a.string(),wz).default({}).meta(Me),trial:vS.optional().meta(Me),entitlements:a.record(a.string(),a.union([a.boolean(),wl])).default({}).meta(Me)}).meta({id:"UserInstanceContext","x-revturbine-schema-persistence":$z,"x-revturbine-schema-exposure":Al}),Ga=ae.merge(be).merge(pe).extend({user_id:a.string().min(1).meta(Tl),account_id:a.string().min(1).nullable().optional().meta(Tl),email:a.string().email().nullable().optional().meta(Tl),email_type:a.string().optional().meta(Me),plan:Rz.optional().meta(Me),usage:a.record(a.string(),wz).default({}).meta(Me),trial:vS.optional().meta(Me),payment_failed:a.boolean().optional().meta(Me),payment_at_risk:a.boolean().optional().meta(Me),tiers:a.record(a.string(),a.string()).optional().meta(Me),entitlements:a.record(a.string(),a.union([a.boolean(),wl])).default({}).meta(Me),instances:a.array(GB).optional().meta(Me),custom:a.record(a.string(),a.union([a.string(),a.number(),a.boolean(),a.null()])).default({}).meta(Tl),personalization:a.record(a.string(),a.union([a.string(),a.number()])).default({}).meta({...Me,"x-revturbine-schema-persistence":Sp}),derived_config_version:a.string().nullable().optional().meta(Me),context_hash:a.string().nullable().optional().meta(Me),derived_computed_at:zt.meta(Me)}).meta({id:"UserContext","x-revturbine-schema-persistence":$z,"x-revturbine-schema-exposure":Al});({"/api/user-contexts":{get:y({operationId:"listUserContexts",requestParams:{query:ne},summary:"List user contexts",tags:["users"],responses:{200:{description:"User context list",content:{"application/json":{schema:te(Ga)}}}},"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:Ga}}}},"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:Ga.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ga}}}},"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:Tn,Pii:ls}=Gt,{Persisted:yS,Transient:xS}=Ht,{Internal:ps}=Kt,JB=lt(Ze.CustomerOperations,{sdkInput:false}),WB=a.object({external_id:a.string().min(1).meta(ls),traits:a.record(a.string(),a.unknown()).default({}).meta(ls),plan_id:a.string().optional().meta(Tn)}).meta({id:"Identity","x-revturbine-schema-persistence":yS,"x-revturbine-schema-exposure":ps}),sz=ae.merge(pe).merge(be).extend({external_id:a.string().min(1).meta(ls),identity:WB.meta(ls),stripe_customer_id:a.string().optional().meta(Tn),current_plan_id:a.string().optional().meta(Tn),subscription_status:a.enum(["active","past_due","canceled","trialing","unpaid","none"]).default("none").meta(Tn),status:a.enum(["active","churned","trial","suspended"]).default("active").meta(Tn),metadata:Ut.meta(Tn)}).meta({id:"Customer","x-revturbine-schema-persistence":yS,"x-revturbine-schema-exposure":ps}),XB=a.enum(["permanent","for_duration"]).meta({id:"CustomerOverrideDuration","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":ps}),YB=a.enum(["grant_plan","grant_addon","grant_entitlement"]).meta({id:"CustomerOverrideType","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":ps}),QB=a.enum(["active","expired","revoked"]).meta({id:"CustomerOverrideStatus","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":ps}),Ni=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({...Tn,readOnly:true}),customer_id:a.string().min(1).meta(ls),customer_id_list:a.array(a.string()).optional().meta(ls),override_type:YB.meta(Tn),target_id:a.string().min(1).meta(Tn),value:a.record(a.string(),a.unknown()).default({}).meta(Tn),duration_type:XB.default("permanent").meta(Tn),duration_value:a.string().optional().meta(Tn),expiry_date:zt.meta(Tn),status:QB.default("active").meta(Tn),reason:a.string().max(500).optional().meta(Tn),created_by:a.string().optional().meta(Tn)}).meta({id:"CustomerOverride","x-revturbine-schema-persistence":yS,"x-revturbine-schema-exposure":ps,...JB,...ar()});({"/api/customers":{get:y({operationId:"listCustomers",requestParams:{query:ne},summary:"List customers",tags:["customers"],responses:{200:{description:"Customer list",content:{"application/json":{schema:te(sz)}}}},"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:sz}}}},"x-revturbine-operation":{exposure:"internal",resource:"customers",persistence:{table:"customers",mode:"get"}}})},"/api/customer-overrides":{get:y({operationId:"listCustomerOverrides",requestParams:{query:ne},summary:"List customer overrides",tags:["customers"],responses:{200:{description:"Override list",content:{"application/json":{schema:te(Ni)}}}},"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:Ni}}}},"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:Ni.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ni}}}},"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:Ni}}}},"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:Ni}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"create"}}})}});var {Unrestricted:en}=Gt,{Persisted:SS,Transient:Cz}=Ht,{Internal:Dl}=Kt,eV=lt(Ze.Playbook,{sdkInput:true}),Ez=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),tV=a.enum(["default","custom"]).meta({id:"DimensionCategory","x-revturbine-schema-persistence":Cz,"x-revturbine-schema-exposure":Dl}),nV=a.enum(["system","sdk_trait","sdk_trait_enum","cdp_property","manual_list"]).meta({id:"DimensionSourceType","x-revturbine-schema-persistence":Cz,"x-revturbine-schema-exposure":Dl}),rS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...en,readOnly:true}),name:Nt.meta(en),handle:ct.optional().meta(en),category:tV.default("custom").meta(en),visibility_toggle:a.boolean().default(true).meta(en),source_type:nV.default("system").meta(en),estimated_size:a.number().int().min(0).optional().meta(en)}).meta({id:"SegmentDimension","x-revturbine-schema-persistence":SS,"x-revturbine-schema-exposure":Dl,...Ez,...yn()}),rV=an("SegmentDimensionAnchor"),iS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...en,readOnly:true}),dimension_id:a.string().min(1).meta(en),name:Nt.meta(en),handle:ct.meta(en),description:$o.meta(en),definition_rule:a.record(a.string(),a.unknown()).optional().meta(en),used_in_count:a.number().int().min(0).default(0).meta({...en,readOnly:true})}).meta({id:"SegmentValue","x-revturbine-schema-persistence":SS,"x-revturbine-schema-exposure":Dl,...Ez,...yn()}),iV=an("SegmentValueAnchor");ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...en,readOnly:true}),name:Nt.meta(en),handle:ct.meta(en),description:$o.meta(en),rules:a.record(a.string(),a.unknown()).default({}).meta(en),is_active:a.boolean().default(true).meta(en),estimated_size:a.number().int().min(0).nullable().default(null).meta(en),metadata:Ut.meta(en)}).meta({id:"Segment","x-revturbine-schema-persistence":SS,"x-revturbine-schema-exposure":Dl,...eV,...yn()});({"/api/segment-dimension-anchors":{get:y({operationId:"listSegmentDimensionAnchors",requestParams:{query:ne},summary:"List segment dimension anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment dimension anchor list",content:{"application/json":{schema:te(rV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-dimension-anchors",persistence:{table:"segmentDimensions",mode:"list"}}})},"/api/segment-value-anchors":{get:y({operationId:"listSegmentValueAnchors",requestParams:{query:ne},summary:"List segment value anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment value anchor list",content:{"application/json":{schema:te(iV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-value-anchors",persistence:{table:"segmentValues",mode:"list"}}})},"/api/segments":{get:y({operationId:"listSegmentDimensions",requestParams:{query:ne},summary:"List segment dimensions",tags:["segments"],responses:{200:{description:"Dimension list",content:{"application/json":{schema:te(rS)}}}},"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:rS}}}},"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:we}}}},"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:rS}}}},"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:ne},summary:"List segment values for dimension",tags:["segments"],responses:{200:{description:"Value list",content:{"application/json":{schema:te(iS)}}}},"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:iS}}}},"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:iS}}}},"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:$e}=Gt,{Persisted:fs,Transient:zz}=Ht,{External:qi}=Kt,IS=lt(Ze.Playbook,{sdkInput:true}),oV=lt(Ze.Playbook,{inConfig:false,sdkInput:false}),aV=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),sV=lt(Ze.Playbook,{inConfig:false,sdkInput:true,source:$r.CodeConstant});ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...$e,readOnly:true}),handle:ct.meta({...$e,readOnly:true}),name:Nt.meta($e),channel:a.enum(["in_app","email","push","sms","webhook"]).meta($e),subject:a.string().max(500).optional().meta($e),body:a.string().meta($e),template_variables:a.array(a.string()).default([]).meta($e),metadata:Ut.meta($e)}).meta({id:"Message","x-revturbine-schema-persistence":fs,"x-revturbine-schema-exposure":qi,...oV,...ar()});var oS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...$e,readOnly:true}),name:Nt.meta($e),handle:ct.meta($e),action_type:bz.meta($e),target_url:a.string().optional().meta($e),target_plan_id:a.string().optional().meta($e),config_fields:a.record(a.string(),a.unknown()).default({}).meta($e),metadata:Ut.meta($e)}).meta({id:"CtaPath","x-revturbine-schema-persistence":fs,"x-revturbine-schema-exposure":qi,...IS,...yn()}),cV=an("CtaPathAnchor"),lV=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":fs,"x-revturbine-schema-exposure":qi,...sV}),uV=a.object({name:a.string().min(1),field_type:lV,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":fs,"x-revturbine-schema-exposure":qi,...aV}),aS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...$e,readOnly:true}),name:Nt.meta($e),handle:ct.meta($e),surface_type:KL.meta($e),field_definitions:a.array(uV).default([]).meta($e),description:$o.meta($e)}).meta({id:"SurfaceTemplate","x-revturbine-schema-persistence":fs,"x-revturbine-schema-exposure":qi,...IS,...yn()}),dV=an("SurfaceTemplateAnchor"),sS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...$e,readOnly:true}),name:Nt.meta($e),handle:ct.meta($e),content_fields:a.record(a.string(),a.unknown()).default({}).meta($e),variation_dimension_id:a.string().optional().meta($e),variation_values:a.array(a.object({segment_value_id:a.string(),content_fields_override:a.record(a.string(),a.unknown())})).optional().meta($e),notes:a.string().max(1e3).optional().meta($e),used_in_count:a.number().int().min(0).default(0).meta({...$e,readOnly:true})}).meta({id:"MessageBlockRecord","x-revturbine-schema-persistence":fs,"x-revturbine-schema-exposure":qi,...IS,...yn()}),mV=an("MessageBlockRecordAnchor"),pV=a.object({segment_id:a.string().min(1).meta($e),message_block_id:a.string().min(1).meta($e),ui_path_id:a.string().optional().meta($e),promotion_id:a.string().optional().meta($e)}).meta({id:"ContentPayloadSegmentEntry","x-revturbine-schema-persistence":zz,"x-revturbine-schema-exposure":qi});a.object({payload_id:a.string().min(1).meta($e),tenant_id:a.string().min(1).meta($e),name:Nt.meta($e),surface_template_id:a.string().min(1).meta($e),default_message_block_id:a.string().min(1).meta($e),segment_content_map:a.array(pV).optional().meta($e),ui_path_id:a.string().optional().meta($e),promotion_id:a.string().optional().meta($e),status:a.enum(["draft","active","inactive"]).meta($e),created_at:a.string().datetime().optional().meta({...$e,readOnly:true}),updated_at:a.string().datetime().optional().meta({...$e,readOnly:true})}).meta({id:"ContentPlacementPayload","x-revturbine-schema-persistence":zz,"x-revturbine-schema-exposure":qi});({"/api/surface-template-anchors":{get:y({operationId:"listSurfaceTemplateAnchors",requestParams:{query:ne},summary:"List surface template anchors (identity registry)",tags:["content"],responses:{200:{description:"Surface template anchor list",content:{"application/json":{schema:te(dV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"surface-template-anchors",persistence:{table:"surfaceTemplates",mode:"list"}}})},"/api/surface-templates":{get:y({operationId:"listSurfaceTemplates",requestParams:{query:ne},summary:"List surface templates",tags:["content"],responses:{200:{description:"Template list",content:{"application/json":{schema:te(aS)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-templates",persistence:{table:"surfaceTemplateVersions",mode:"list"}}})},"/api/message-block-record-anchors":{get:y({operationId:"listMessageBlockRecordAnchors",requestParams:{query:ne},summary:"List message block anchors (identity registry)",tags:["content"],responses:{200:{description:"Message block anchor list",content:{"application/json":{schema:te(mV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"message-block-record-anchors",persistence:{table:"messageBlocks",mode:"list"}}})},"/api/messages":{get:y({operationId:"listMessageBlocks",requestParams:{query:ne},summary:"List message blocks",tags:["content"],responses:{200:{description:"Message block list",content:{"application/json":{schema:te(sS)}}}},"x-revturbine-operation":{exposure:"external",resource:"message-blocks",persistence:{table:"messageBlockVersions",mode:"list"}}})},"/api/cta-path-anchors":{get:y({operationId:"listCtaPathAnchors",requestParams:{query:ne},summary:"List CTA path anchors (identity registry)",tags:["content"],responses:{200:{description:"CTA path anchor list",content:{"application/json":{schema:te(cV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"cta-path-anchors",persistence:{table:"ctaPaths",mode:"list"}}})},"/api/cta-paths":{get:y({operationId:"listCtaPaths",requestParams:{query:ne},summary:"List CTA paths",tags:["content"],responses:{200:{description:"CTA path list",content:{"application/json":{schema:te(oS)}}}},"x-revturbine-operation":{exposure:"external",resource:"cta-paths",persistence:{table:"ctaPathVersions",mode:"list"}}})}});var {Unrestricted:cs,Pii:fV}=Gt,{Persisted:Oz}=Ht,{Internal:gV,External:hV}=Kt,bV=lt(Ze.Branding,{sdkInput:false});a.object({id:a.string().min(1).meta({...cs,readOnly:true}),name:a.string().min(1).max(120).meta(cs),mode:a.enum(["light","dark","system"]).default("system").meta(cs),tokens:a.record(a.string(),a.string()).default({}).meta(cs)}).meta({id:"Theme","x-revturbine-schema-persistence":Oz,"x-revturbine-schema-exposure":hV,...bV});var cz=ae.merge(pe).extend({user_id:a.string().min(1).meta(fV),scope:a.string().min(1).meta(cs),preferences:a.record(a.string(),a.unknown()).default({}).meta(cs)}).meta({id:"UiPreference","x-revturbine-schema-persistence":Oz,"x-revturbine-schema-exposure":gV});({"/api/ui-preferences":{get:y({operationId:"listUiPreferences",requestParams:{query:ne},summary:"List UI preferences",tags:["ui"],responses:{200:{description:"UI preferences list response",content:{"application/json":{schema:te(cz)}}}},"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(vn(cz))}}},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:Ce,Financial:Hr}=Gt,{Persisted:jz,Transient:Fl}=Ht,{External:Nl,Internal:Uz}=Kt,_V=a.object({month:a.string().meta(Ce),cohort_size:a.number().int().min(0).meta(Ce),retained:a.number().int().min(0).meta(Ce),retention_rate:a.number().min(0).max(1).meta(Ce),revenue_cents:a.number().int().min(0).meta(Hr)}).meta({id:"CohortMonth","x-revturbine-schema-persistence":Fl,"x-revturbine-schema-exposure":Nl}),vV=a.object({step:a.string().meta(Ce),label:a.string().meta(Ce),count:a.number().int().min(0).meta(Ce),conversion_rate:a.number().min(0).max(1).meta(Ce),drop_off_rate:a.number().min(0).max(1).meta(Ce)}).meta({id:"FunnelStep","x-revturbine-schema-persistence":Fl,"x-revturbine-schema-exposure":Nl}),yV=a.object({placement_id:a.string().meta(Ce),placement_name:a.string().meta(Ce),impressions:a.number().int().min(0).meta(Ce),clicks:a.number().int().min(0).meta(Ce),conversions:a.number().int().min(0).meta(Ce),ctr:a.number().min(0).meta(Ce),conversion_rate:a.number().min(0).meta(Ce),revenue_cents:a.number().int().min(0).meta(Hr)}).meta({id:"PlacementPerformanceRow","x-revturbine-schema-persistence":Fl,"x-revturbine-schema-exposure":Nl}),xV=a.object({date:a.string().meta(Ce),mrr_cents:a.number().int().min(0).meta(Hr),arr_cents:a.number().int().min(0).meta(Hr),new_mrr_cents:a.number().int().min(0).meta(Hr),churned_mrr_cents:a.number().int().min(0).meta(Hr),expansion_mrr_cents:a.number().int().min(0).meta(Hr),net_new_mrr_cents:a.number().int().meta(Hr)}).meta({id:"RevenueMetric","x-revturbine-schema-persistence":Fl,"x-revturbine-schema-exposure":Nl}),SV=a.object({metric_key:a.string().min(1).meta(Ce),label:a.string().meta(Ce),current_value:a.number().meta(Hr),previous_value:a.number().nullable().default(null).meta(Hr),change_percent:a.number().nullable().default(null).meta(Ce),period:a.string().meta(Ce),unit:a.enum(["count","cents","percent","ratio","seconds"]).default("count").meta(Ce)}).meta({id:"KpiAggregate","x-revturbine-schema-persistence":Fl,"x-revturbine-schema-exposure":Nl}),lz=ae.merge(pe).merge(be).extend({report_type:a.enum(["plan_drift","entitlement_drift","usage_anomaly","revenue_anomaly"]).meta(Ce),severity:gS.meta(Ce),resource_type:a.string().min(1).meta(Ce),resource_id:a.string().min(1).meta(Ce),summary:a.string().max(1e3).meta(Ce),expected_value:a.unknown().optional().meta(Ce),actual_value:a.unknown().optional().meta(Ce),affected_customer_count:a.number().int().min(0).default(0).meta(Ce),is_resolved:a.boolean().default(false).meta(Ce),resolved_at:zt.meta(Ce),metadata:Ut.meta(Ce)}).meta({id:"DriftReport","x-revturbine-schema-persistence":jz,"x-revturbine-schema-exposure":Uz}),uz=ae.merge(pe).merge(be).extend({alert_type:a.enum(["usage_threshold","revenue_drop","conversion_drop","experiment_significance","drift_detected","custom"]).meta(Ce),severity:gS.meta(Ce),title:a.string().min(1).max(300).meta(Ce),description:a.string().max(2e3).meta(Ce),resource_type:a.string().optional().meta(Ce),resource_id:a.string().optional().meta(Ce),is_acknowledged:a.boolean().default(false).meta(Ce),acknowledged_at:zt.meta(Ce),acknowledged_by:a.string().nullable().default(null).meta(Ce),metadata:Ut.meta(Ce)}).meta({id:"Alert","x-revturbine-schema-persistence":jz,"x-revturbine-schema-exposure":Uz});({"/api/analytics/kpis":{get:y({operationId:"listKpiAggregates",requestParams:{query:ne},summary:"List KPI aggregate metrics",tags:["analytics"],responses:{200:{description:"KPI list",content:{"application/json":{schema:te(SV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"kpiAggregates",mode:"list"}}})},"/api/analytics/placement-performance":{get:y({operationId:"listPlacementPerformance",requestParams:{query:ne},summary:"List placement performance rows",tags:["analytics"],responses:{200:{description:"Performance rows",content:{"application/json":{schema:te(yV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"placementPerformance",mode:"list"}}})},"/api/analytics/revenue":{get:y({operationId:"listRevenueMetrics",requestParams:{query:ne},summary:"List revenue metrics over time",tags:["analytics"],responses:{200:{description:"Revenue metrics",content:{"application/json":{schema:te(xV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"revenueMetrics",mode:"list"}}})},"/api/analytics/cohorts":{get:y({operationId:"listCohortMetrics",requestParams:{query:ne},summary:"List cohort retention metrics",tags:["analytics"],responses:{200:{description:"Cohort metrics",content:{"application/json":{schema:te(_V)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"cohortMetrics",mode:"list"}}})},"/api/analytics/funnels":{get:y({operationId:"listFunnelSteps",requestParams:{query:ne},summary:"List funnel step metrics",tags:["analytics"],responses:{200:{description:"Funnel steps",content:{"application/json":{schema:te(vV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"funnelSteps",mode:"list"}}})},"/api/analytics/drift-reports":{get:y({operationId:"listDriftReports",requestParams:{query:ne},summary:"List drift reports",tags:["analytics"],responses:{200:{description:"Drift reports",content:{"application/json":{schema:te(lz)}}}},"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:lz}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"driftReports",mode:"update"}}})},"/api/analytics/alerts":{get:y({operationId:"listAlerts",requestParams:{query:ne},summary:"List alerts",tags:["analytics"],responses:{200:{description:"Alert list",content:{"application/json":{schema:te(uz)}}}},"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:uz}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"alerts",mode:"update"}}})}});var {Unrestricted:Z,Pii:us}=Gt,{Persisted:Az,Transient:At}=Ht,{Internal:Hi,External:mn}=Kt,Dz=a.enum(["clickstream","telemetry","sdk","workflow","system"]).meta({id:"EventSource","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn}),IV=ae.extend({event_type:a.string().min(1).meta(Z),source:Dz.default("sdk").meta(Z),tenant_id:a.string().min(1).optional().meta(Z),user_id:a.string().min(1).optional().meta(us),session_id:a.string().min(1).optional().meta(us),occurred_at:a.string().datetime().meta(Z),request_id:a.string().min(1).meta(Z),attributes:a.record(a.string(),a.unknown()).default({}).meta(Z),payload:a.record(a.string(),a.unknown()).default({}).meta(Z)}).meta({id:"EventEnvelope","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi}),PV=IV.extend({ingested_at:a.string().datetime().meta(Z)}).meta({id:"IngestedEvent","x-revturbine-schema-persistence":Az,"x-revturbine-schema-exposure":Hi});a.array(a.object({id:a.string().min(1).optional().meta(Z),event_type:a.string().min(1).meta(Z),occurred_at:a.string().datetime().optional().meta(Z),tenant_id:a.string().min(1).optional().meta(Z),user_id:a.string().min(1).optional().meta(us),session_id:a.string().min(1).optional().meta(us),attributes:a.record(a.string(),a.unknown()).optional().meta(Z),payload:a.record(a.string(),a.unknown()).optional().meta(Z),message:a.string().optional().meta(Z),level:a.string().optional().meta(Z),path:a.string().optional().meta(Z)})).meta({id:"EventIngestBatch","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi});var kV=a.enum(["impression","dismiss","remind_me_later","cta_clicked","cta_completed","suppress"]).meta({id:"TreatmentInteractionType","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({user_id:a.string().min(1).meta(us),placement_id:a.string().min(1).meta(Z),treatment_id:a.string().min(1).optional().meta(Z),surface_slot_id:a.string().min(1).optional().meta(Z),surface_template_id:a.string().min(1).optional().meta(Z),payload_id:a.string().min(1).optional().meta(Z),interaction_type:kV.meta(Z),interaction_at:a.string().datetime().optional().meta(Z),metadata:a.record(a.string(),a.unknown()).optional().meta(Z)}).meta({id:"TreatmentInteractionInput","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});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":At,"x-revturbine-schema-exposure":mn});a.object({days_remaining:a.number().int().min(0).optional().meta(Z)}).meta({id:"TrialTriggerPayload","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({entitlement_handle:a.string().optional().meta(Z),current_usage:a.number().min(0).optional().meta(Z),usage_limit:a.number().min(0).optional().meta(Z),usage_percent:a.number().min(0).max(100).optional().meta(Z),threshold:a.number().min(0).optional().meta(Z),balance:a.number().min(0).optional().meta(Z),allocation:a.number().min(0).optional().meta(Z),seats_used:a.number().int().min(0).optional().meta(Z),seats_allowed:a.number().int().min(0).optional().meta(Z)}).meta({id:"UsageTriggerPayload","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({feature:a.string().min(1).meta(Z)}).meta({id:"FeatureGateTriggerPayload","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({retry_count:a.number().int().min(0).optional().meta(Z),renewal_date:a.string().optional().meta(Z)}).meta({id:"PaymentTriggerPayload","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({event_type:a.string().min(1).meta(Z),payload:a.record(a.string(),a.unknown()).default({}).meta(Z)}).meta({id:"SemanticEvent","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});var $V=a.enum(["system","workflow"]).meta({id:"ControlPlaneEventSource","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn}),wV=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":At,"x-revturbine-schema-exposure":mn});a.object({event_type:wV.meta(Z),source:$V.meta(Z),payload:a.record(a.string(),a.unknown()).default({}).meta(Z)}).meta({id:"ControlPlaneSemanticEvent","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({q:a.string().optional().meta(Z),source:Dz.optional().meta(Z),event_type:a.string().optional().meta(Z),from:a.string().datetime().optional().meta(Z),to:a.string().datetime().optional().meta(Z),page:a.coerce.number().int().min(1).default(1).meta(Z),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(Z)}).meta({id:"EventSearchParams","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi});var RV=a.enum(["stripe","apple","google"]).meta({id:"WebhookEventSource","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi}),CV=a.enum(["processed","failed","skipped"]).meta({id:"WebhookEventStatus","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi}),cS=ae.merge(pe).merge(be).extend({event_id:a.string().min(1).meta(Z),event_type:a.string().min(1).meta(Z),source:RV.meta(Z),payload:a.record(a.string(),a.unknown()).default({}).meta(Z),status:CV.default("processed").meta(Z),processed_at:a.string().datetime().optional().meta(Z),error_message:a.string().optional().meta(Z)}).meta({id:"WebhookEventLog","x-revturbine-schema-persistence":Az,"x-revturbine-schema-exposure":Hi});a.object({accepted:a.number().int().min(0).meta(Z)}).meta({id:"null","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi});var EV=500,zV=a.enum(["explicit","automatic","derived","raw"]).meta({id:"EventOrigin","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn}),OV=a.object({environment_id:a.string().min(1).meta(Z),user_id:a.string().min(1).meta(us),account_id:a.string().min(1).meta(Z),event_name:a.string().min(1).max(120).meta(Z),event_ts:a.string().datetime().meta(Z),properties:a.string().optional().meta(Z),surface_slot_id:a.string().nullable().optional().meta(Z),placement_id:a.string().nullable().optional().meta(Z),payload_id:a.string().nullable().optional().meta(Z),request_id:a.string().optional().meta(Z),experiment_id:a.string().nullable().optional().meta(Z),variant_key:a.string().nullable().optional().meta(Z),tenant_id:a.string().optional().meta(Z),event_id:a.string().nullable().optional().meta(Z),origin:zV.nullable().optional().meta(Z),playbook_version:a.string().nullable().optional().meta(Z),decision_id:a.string().nullable().optional().meta(Z)}).meta({id:"TrackEvent","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({events:a.array(OV).min(1).max(EV).meta(Z)}).meta({id:"TrackIngestBatch","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});var UV=10,AV=a.enum(["sdk_init","sdk_error","sdk_validation_warning"]).meta({id:"SdkMetaEventType","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn}),DV=a.object({plans:a.number().int().min(0).meta(Z),entitlements:a.number().int().min(0).meta(Z),entitlement_rules:a.number().int().min(0).meta(Z),segments:a.number().int().min(0).meta(Z),placements:a.number().int().min(0).meta(Z),placement_payloads:a.number().int().min(0).meta(Z),content_ui_paths:a.number().int().min(0).meta(Z),surface_templates:a.number().int().min(0).meta(Z)}).meta({id:"SdkConfigShape","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn}),FV=a.object({event_type:AV.meta(Z),occurred_at:a.string().datetime().meta(Z),request_id:a.string().min(1).optional().meta(Z),config_hash_id:a.string().min(1).max(64).optional().meta(Z),sdk_version:a.string().min(1).max(64).optional().meta(Z),runtime_mode:a.string().min(1).max(64).optional().meta(Z),schema_version:a.string().min(1).max(64).optional().meta(Z),bundle_version:a.string().min(1).max(64).optional().meta(Z),config_shape:DV.optional().meta(Z),message:a.string().max(500).optional().meta(Z)}).meta({id:"SdkMetaEvent","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({events:a.array(FV).min(1).max(UV).meta(Z)}).meta({id:"SdkMetaIngestBatch","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});({"/api/events/search":{get:y({operationId:"searchEvents",summary:"Search ingested events",tags:["events"],responses:{200:{description:"Paginated event results",content:{"application/json":{schema:ZL(PV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"events"}})},"/api/webhook-events":{get:y({operationId:"listWebhookEvents",requestParams:{query:ne},summary:"List webhook event log entries",tags:["events"],responses:{200:{description:"Webhook event list",content:{"application/json":{schema:te(cS)}}}},"x-revturbine-operation":{exposure:"internal",resource:"webhook-events",persistence:{table:"webhookEventLog",mode:"list"}}})}});var {Unrestricted:ve}=Gt,{Persisted:Ll,Transient:Bl}=Ht,{Internal:Kr}=Kt,Fz=lt(Ze.Playbook,{sdkInput:true}),Nz=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),LV=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Kr}),PS=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Kr}),Lz=a.object({name:Nt.meta(ve),handle:ct.meta(ve),plan_id:a.string().nullable().optional().meta(ve),segment_id:a.string().nullable().optional().meta(ve),trial_limit_type:PS.default("time").meta(ve),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ve),grace_period_days:a.number().int().min(0).default(0).meta(ve),usage_entitlement_handle:a.string().min(1).optional().meta(ve),usage_limit_value:a.number().int().min(1).optional().meta(ve),require_payment_method:a.boolean().default(false).meta(ve),auto_convert:a.boolean().default(true).meta(ve),convert_to_plan_id:a.string().optional().meta(ve),fallback_plan_id:a.string().optional().meta(ve),limit_per_customer:a.number().int().min(1).default(1).meta(ve),is_active:a.boolean().default(true).meta(ve),metadata:Ut.meta(ve)}),Ja=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ve,readOnly:true})}).merge(Lz).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Kr,...Fz,...yn()}),BV=an("FreeTrialRuleAnchor"),VV=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Kr}),Bz=a.object({name:Nt.meta(ve),handle:ct.meta(ve),premium_plan_id:a.string().min(1).meta(ve),fallback_plan_id:a.string().min(1).meta(ve),segment_id:a.string().nullable().optional().meta(ve),trial_limit_type:PS.default("time").meta(ve),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ve),usage_entitlement_handle:a.string().min(1).optional().meta(ve),usage_limit_value:a.number().int().min(1).optional().meta(ve),start_policy:VV.default("signup").meta(ve),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(ve),entitlements_during_trial:a.array(a.string()).default([]).meta(ve),is_active:a.boolean().default(true).meta(ve),metadata:Ut.meta(ve)}),Wa=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ve,readOnly:true})}).merge(Bz).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Kr,...Fz,...yn()}),MV=an("ReverseTrialRuleAnchor"),Vz=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Kr}),Mz=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Kr}),Xa=ae.merge(pe).merge(be).extend({trial_limit_policy:Vz.default("1_per_lifetime").meta(ve),eligibility_scope:Mz.default("per_customer").meta(ve)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Kr,...Nz}),Ya=ae.merge(pe).merge(be).extend({trial_limit_policy:Vz.default("1_per_lifetime").meta(ve),eligibility_scope:Mz.default("per_customer").meta(ve)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Kr,...Nz}),mp=ae.merge(pe).merge(be).extend({customer_id:a.string().min(1).meta(ve),rule_id:a.string().min(1).meta(ve),rule_type:a.enum(["free_trial","reverse_trial"]).meta(ve),plan_id:a.string().min(1).meta(ve),status:LV.default("active").meta(ve),started_at:a.string().datetime().meta({...ve,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(ve),trial_limit_type:PS.default("time").meta(ve),usage_entitlement_handle:a.string().min(1).optional().meta(ve),usage_limit_value:a.number().int().min(1).optional().meta(ve),converted_at:zt.meta(ve),cancelled_at:zt.meta(ve),metadata:Ut.meta(ve)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Kr});({"/api/free-trial-rule-anchors":{get:y({operationId:"listFreeTrialRuleAnchors",requestParams:{query:ne},summary:"List free trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Free trial rule anchor list",content:{"application/json":{schema:te(BV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:te(Ja)}}}},"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:Ja}}}},"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:Ja.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ja}}}},"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:ne},summary:"List reverse trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Reverse trial rule anchor list",content:{"application/json":{schema:te(MV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:te(Wa)}}}},"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:Wa}}}},"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:Wa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Wa}}}},"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:ne},summary:"List free trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Free trial settings list",content:{"application/json":{schema:te(Xa)}}}},"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:Xa}}}},"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:Xa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Xa}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"update"}}})},"/api/trials/reverse-settings":{get:y({operationId:"listReverseTrialSettings",requestParams:{query:ne},summary:"List reverse trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Reverse trial settings list",content:{"application/json":{schema:te(Ya)}}}},"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:Ya}}}},"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:Ya.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ya}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:y({operationId:"listTrialInstances",requestParams:{query:ne},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:te(mp)}}}},"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:mp}}}},"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:mp}}}},"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:mp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:St}=Gt,{Persisted:kS,Transient:Zz}=Ht,{Internal:Vl}=Kt,qz=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),ZV=a.enum(["draft","ramping","winning","neutral","needs_attention","paused","complete"]).meta({id:"ExperimentStatus","x-revturbine-schema-persistence":Zz,"x-revturbine-schema-exposure":Vl}),qV=a.enum(["placement_ab","entitlement_ab","plan_ab","pricing_ab","custom"]).meta({id:"ExperimentType","x-revturbine-schema-persistence":Zz,"x-revturbine-schema-exposure":Vl}),HV=a.object({variant_id:a.string().min(1),name:Nt,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":kS,"x-revturbine-schema-exposure":Vl,...qz}),ai=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...St,readOnly:true}),name:Nt.meta(St),handle:ct.meta(St),description:a.string().max(1e3).optional().meta(St),experiment_type:qV.meta(St),status:ZV.default("draft").meta(St),target_resource_id:a.string().optional().meta(St),target_segment_ids:a.array(a.string()).default([]).meta(St),variants:a.array(HV).min(2).meta(St),primary_metric:a.string().min(1).meta(St),metric_threshold:a.number().default(.05).meta(St),secondary_metrics:a.array(a.string()).default([]).meta(St),traffic_allocation:a.number().min(0).max(1).default(1).meta(St),started_at:zt.meta(St),ended_at:zt.meta(St),confidence_threshold:a.number().min(0).max(1).default(.95).meta(St),winning_variant_id:a.string().nullable().default(null).meta(St),metadata:Ut.meta(St)}).meta({id:"Experiment","x-revturbine-schema-persistence":kS,"x-revturbine-schema-exposure":Vl,...qz,...yn()}),KV=an("ExperimentAnchor"),GV=gS,dz=ae.merge(pe).merge(be).extend({experiment_id:a.string().optional().meta(St),resource_type:a.string().min(1).meta(St),resource_id:a.string().min(1).meta(St),severity:GV.default("info").meta(St),title:a.string().min(1).max(300).meta(St),description:a.string().max(2e3).meta(St),suggested_action:a.string().max(1e3).optional().meta(St),estimated_impact:a.number().optional().meta(St),is_dismissed:a.boolean().default(false).meta(St),metadata:Ut.meta(St)}).meta({id:"OptimizationSuggestion","x-revturbine-schema-persistence":kS,"x-revturbine-schema-exposure":Vl});({"/api/experiment-anchors":{get:y({operationId:"listExperimentAnchors",requestParams:{query:ne},summary:"List experiment anchors (identity registry)",tags:["experiments"],responses:{200:{description:"Experiment anchor list",content:{"application/json":{schema:te(KV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiment-anchors",persistence:{table:"experiments",mode:"list"}}})},"/api/experiments":{get:y({operationId:"listExperiments",requestParams:{query:ne},summary:"List experiments",tags:["experiments"],responses:{200:{description:"Experiment list",content:{"application/json":{schema:te(ai)}}}},"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:ai}}}},"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:ai.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ai}}}},"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:ai}}}},"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:ai}}}},"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:ai}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}})},"/api/optimization-suggestions":{get:y({operationId:"listOptimizationSuggestions",requestParams:{query:ne},summary:"List optimization suggestions",tags:["experiments"],responses:{200:{description:"Suggestion list",content:{"application/json":{schema:te(dz)}}}},"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:dz}}}},"x-revturbine-operation":{exposure:"internal",resource:"optimization-suggestions",persistence:{table:"optimizationSuggestions",mode:"update"}}})}});var {Unrestricted:gn,Financial:mz}=Gt,{Persisted:JV,Transient:Hz}=Ht,{Internal:TS}=Kt,WV=lt(Ze.Playbook,{sdkInput:true}),XV=a.enum(["draft","scheduled","live","expired","archived"]).meta({id:"PromotionStatus","x-revturbine-schema-persistence":Hz,"x-revturbine-schema-exposure":TS}),YV=a.enum(["percentage","fixed_amount","free_months"]).meta({id:"DiscountType","x-revturbine-schema-persistence":Hz,"x-revturbine-schema-exposure":TS}),Li=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...gn,readOnly:true}),name:Nt.meta(gn),handle:ct.meta(gn),description:a.string().max(1e3).optional().meta(gn),rt_status:XV.default("draft").meta(gn),discount_type:YV.meta(gn),discount_value:a.number().min(0).meta(mz),currency:a.string().length(3).default("USD").meta(mz),applicable_plan_ids:a.array(a.string()).default([]).meta(gn),applicable_addon_ids:a.array(a.string()).default([]).meta(gn),target_segment_ids:a.array(a.string()).default([]).meta(gn),max_redemptions:a.number().int().min(0).nullable().default(null).meta(gn),current_redemptions:a.number().int().min(0).default(0).meta({...gn,readOnly:true}),coupon_code:a.string().max(100).optional().meta(gn),starts_at:zt.meta(gn),ends_at:zt.meta(gn),stripe_coupon_id:a.string().nullable().default(null).meta(gn),stripe_promotion_code_id:a.string().nullable().default(null).meta(gn),auto_sync_stripe:a.boolean().default(false).meta(gn),metadata:Ut.meta(gn)}).meta({id:"Promotion","x-revturbine-schema-persistence":JV,"x-revturbine-schema-exposure":TS,...WV,...yn()}),QV=an("PromotionAnchor");({"/api/promotion-anchors":{get:y({operationId:"listPromotionAnchors",requestParams:{query:ne},summary:"List promotion anchors (identity registry)",tags:["promotions"],responses:{200:{description:"Promotion anchor list",content:{"application/json":{schema:te(QV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotion-anchors",persistence:{table:"promotions",mode:"list"}}})},"/api/promotions":{get:y({operationId:"listPromotions",requestParams:{query:ne},summary:"List promotions",tags:["promotions"],responses:{200:{description:"Promotion list",content:{"application/json":{schema:te(Li)}}}},"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:Li}}}},"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:Li.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Li}}}},"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:Li}}}},"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:Li}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"create"}}})}});var {Unrestricted:Et,Pii:$S}=Gt,{Persisted:wS}=Ht,{Internal:RS}=Kt,eM=ae.merge(pe).merge(be).extend({customer_id:a.string().min(1).meta($S),placement_id:a.string().min(1).meta(Et),payload_id:a.string().nullable().default(null).meta(Et),variant_id:a.string().nullable().default(null).meta(Et),surface_type:a.string().meta(Et),presented_at:a.string().datetime().meta({...Et,readOnly:true}),dismissed_at:zt.meta(Et),cta_clicked_at:zt.meta(Et),cta_action_type:a.string().nullable().default(null).meta(Et),converted:a.boolean().default(false).meta(Et),session_id:a.string().optional().meta(Et),metadata:Ut.meta(Et)}).meta({id:"PresentationRecord","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":RS}),tM=ae.merge(pe).merge(be).extend({customer_id:a.string().min(1).meta($S),placement_id:a.string().min(1).meta(Et),decision:a.enum(["show","suppress","defer"]).meta(Et),reason:a.string().max(500).meta(Et),matched_rules:a.array(a.object({rule_id:a.string(),rule_type:a.string(),matched:a.boolean()})).default([]).meta(Et),experiment_id:a.string().nullable().default(null).meta(Et),variant_id:a.string().nullable().default(null).meta(Et),latency_ms:a.number().min(0).optional().meta(Et)}).meta({id:"DecisionLog","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":RS}),nM=ae.merge(pe).merge(be).extend({customer_id:a.string().min(1).meta($S),entitlement_handle:a.string().min(1).meta(Et),entitlement_type:a.string().meta(Et),result:a.enum(["granted","denied","limited","metered"]).meta(Et),current_usage:a.number().nullable().default(null).meta(Et),limit:a.number().nullable().default(null).meta(Et),source:a.enum(["plan","addon","override","trial"]).meta(Et),source_id:a.string().min(1).meta(Et),latency_ms:a.number().min(0).optional().meta(Et)}).meta({id:"EntitlementEvalLog","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":RS});({"/api/presentation-records":{get:y({operationId:"listPresentationRecords",requestParams:{query:ne},summary:"List presentation records",tags:["runtime"],responses:{200:{description:"Presentation records",content:{"application/json":{schema:te(eM)}}}},"x-revturbine-operation":{exposure:"internal",resource:"presentation-records",persistence:{table:"presentationRecords",mode:"list"}}})},"/api/decision-logs":{get:y({operationId:"listDecisionLogs",requestParams:{query:ne},summary:"List decision logs",tags:["runtime"],responses:{200:{description:"Decision logs",content:{"application/json":{schema:te(tM)}}}},"x-revturbine-operation":{exposure:"internal",resource:"decision-logs",persistence:{table:"decisionLogs",mode:"list"}}})},"/api/entitlement-eval-logs":{get:y({operationId:"listEntitlementEvalLogs",requestParams:{query:ne},summary:"List entitlement evaluation logs",tags:["runtime"],responses:{200:{description:"Entitlement eval logs",content:{"application/json":{schema:te(nM)}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-eval-logs",persistence:{table:"entitlementEvalLogs",mode:"list"}}})}});var {Unrestricted:_}=Gt,{Persisted:gs,Transient:Ie}=Ht,{Internal:_r,External:Fe}=Kt,Oe=lt(Ze.Playbook,{sdkInput:true}),as=lt(Ze.Playbook,{sdkInput:false}),Mi=lt(Ze.Playbook,{inConfig:false,sdkInput:false}),Kz=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),Vi=lt(Ze.Playbook,{inConfig:false,sdkInput:true,source:$r.CodeConstant}),Rl=lt(Ze.Playbook,{inConfig:false,sdkInput:true,source:$r.Runtime}),Cl=lt(Ze.Playbook,{inConfig:false,sdkInput:false,source:$r.Runtime}),rM=lt(Ze.Billing,{sdkInput:false}),iM=lt(Ze.Metering,{sdkInput:false}),oM=lt(Ze.Branding,{inConfig:true,sdkInput:true}),aM=lt(Ze.Branding,{sdkInput:false}),sM="1.0.0",yl=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),name:Nt.meta(_),handle:ct.meta(_),description:$o.meta(_),is_default:a.boolean().default(false).meta(_),entitlement_ids:a.array(a.string()).default([]).meta(_),metadata:Ut.meta(_)}).meta({id:"SeatType","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...Mi,...yn()}),cM=an("SeatTypeAnchor"),xl=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta(_),label:a.string().min(1).meta(_),description:a.string().nullable().default(null).meta(_),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(_),data_source:a.string().nullable().default(null).meta(_),example_value:a.string().nullable().default(null).meta(_),value_map:a.record(a.string(),a.string()).default({}).meta(_),format:a.enum(["string","number","currency","percentage","date"]).nullable().default(null).meta(_),metadata:Ut.meta(_)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...Mi,...yn()}),lM=an("PersonalizationTokenAnchor"),uM=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),uS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({..._,readOnly:true}),stripe_account_id:a.string().min(1).meta(_),live_mode:a.boolean().default(false).meta(_),onboarding_state:uM.default("not_started").meta({..._,readOnly:true}),onboarding_complete:a.boolean().default(false).meta({..._,readOnly:true}),charges_enabled:a.boolean().default(false).meta({..._,readOnly:true}),details_submitted:a.boolean().default(false).meta({..._,readOnly:true}),payouts_enabled:a.boolean().default(false).meta({..._,readOnly:true}),webhook_secret_set:a.boolean().default(false).meta({..._,readOnly:true}),sync_products:a.boolean().default(true).meta(_),sync_prices:a.boolean().default(true).meta(_),sync_subscriptions:a.boolean().default(true).meta(_),sync_invoices:a.boolean().default(false).meta(_),default_currency:a.string().length(3).default("USD").meta(_),tax_behavior:a.enum(["inclusive","exclusive","unspecified"]).default("unspecified").meta(_),last_sync_at:a.string().optional().meta({..._,readOnly:true}),metadata:Ut.meta(_)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...rM,...ar()});a.object({theme:a.record(a.string(),a.unknown()).optional().meta(_),workspace_name:a.string().optional().meta(_),logo_url:a.string().optional().meta(_),support_email:a.string().optional().meta(_)}).meta({id:"BrandingConfig","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...aM});var Sl=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({..._,readOnly:true}),entitlement_id:a.string().min(1).meta(_),meter_key:a.string().min(1).max(100).meta(_),aggregation_type:a.enum(["sum","count","max","last_value"]).default("sum").meta(_),reset_period:a.enum(["none","daily","weekly","monthly","yearly"]).default("monthly").meta(_),stripe_meter_id:a.string().nullable().default(null).meta(_),is_active:a.boolean().default(true).meta(_),metadata:Ut.meta(_)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...iM,...ar()}),pz=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),Il=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta({..._,readOnly:true}),entitlement_id:a.string().min(1).meta(_),soft_limit_percent:a.number().min(0).max(100).default(80).meta(_),hard_limit_percent:a.number().min(0).max(100).default(100).meta(_),soft_limit_action:pz.default("warn").meta(_),hard_limit_action:pz.default("block").meta(_),grace_period_hours:a.number().int().min(0).default(0).meta(_),notification_channels:a.array(a.enum(["email","in_app","webhook"])).default(["in_app"]).meta(_),is_active:a.boolean().default(true).meta(_)}).meta({id:"UsageEnforcementSettings","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...Kz,...ar()}),dM=an("UsageEnforcementSettingsAnchor"),mM=a.object({kind:a.enum(["template","slot"]).meta(_),id:a.string().min(1).meta(_),label:a.string().min(1).optional().meta(_)}).meta({id:"PlacementSettingsCapRuleGroupItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),pM=a.object({id:a.string().min(1).meta(_),group:a.array(mM).min(1).meta(_),cap:a.object({count:a.number().int().min(1).meta(_),period:a.enum(["session","day","week","month"]).meta(_)}).meta(_)}).meta({id:"PlacementSettingsCapRule","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),fM=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),Gz=a.object({capRules:a.array(pM).default([]).meta(_),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(_),testMode:fM.default("off").meta(_)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),dS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta({..._,readOnly:true}),global_frequency_cap:Gz.nullable().default(null).meta(_),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(_),suppress_for_paid:a.boolean().default(false).meta(_),suppress_for_trial:a.boolean().default(false).meta(_),default_dismiss_cooldown_hours:a.number().int().min(0).default(24).meta(_),allow_stacking:a.boolean().default(false).meta(_),priority_collision_strategy:a.enum(["highest_priority","most_recent","random"]).default("highest_priority").meta(_)}).meta({id:"PlacementSettings","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...Kz,...ar()}),gM=an("PlacementSettingsAnchor"),hM=a.object({field:a.string().min(1).meta(_),operator:a.enum(["eq","neq","gt","lt","gte","lte","contains","in"]).meta(_),value:a.string().meta(_)}).meta({id:"RevTurbineConfigSegmentsItemPredicatesItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),bM=a.object({name:a.string().min(1).meta(_),handle:a.string().min(1).meta(_),predicates:a.array(hM).optional().meta(_),dimension_id:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),_M=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),tier_position:a.number().int().min(0).default(0).meta(_),sort_order:a.number().int().min(0).default(0).meta(_),visibility:ds.default("public").meta(_)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),vM=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),sort_order:a.number().int().min(0).default(0).meta(_),visibility:ds.default("public").meta(_)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...as}),yM=a.object({handle:a.string().min(1).meta(_),plan_handle:a.string().min(1).meta(_),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(_),segment_handle:a.string().nullable().default(null).meta(_),price_amount:a.number().min(0).meta(_),pricing_model:jl.meta(_),visibility:ds.default("public").meta(_),stripe_price_id:a.string().nullable().default(null).meta(_),price_source:yp.meta(_)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Mi}),xM=a.object({handle:a.string().min(1).meta(_),addon_handle:a.string().min(1).meta(_),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(_),segment_handle:a.string().nullable().default(null).meta(_),price_amount:a.number().min(0).meta(_),pricing_model:jl.meta(_),visibility:ds.default("public").meta(_),stripe_price_id:a.string().nullable().default(null).meta(_),price_source:yp.meta(_)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Mi}),SM=a.object({handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),description:a.string().nullable().default(null).meta(_),is_default:a.boolean().default(false).meta(_),entitlement_handles:a.array(a.string()).default([]).meta(_)}).meta({id:"RevTurbineConfigSeatTypesItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),IM=a.object({handle:a.string().min(1).meta(_),entitlement_handle:a.string().nullable().default(null).meta(_),soft_limit_percent:a.number().int().min(0).nullable().default(null).meta(_),hard_limit_percent:a.number().int().min(0).nullable().default(null).meta(_),soft_limit_action:a.string().meta(_),hard_limit_action:a.string().meta(_),grace_period_hours:a.number().int().min(0).nullable().default(null).meta(_),notification_channels:a.array(a.string()).default([]).meta(_),is_active:a.boolean().default(true).meta(_)}).meta({id:"RevTurbineConfigEnforcementDefaultsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),PM=a.object({handle:a.string().min(1).meta(_),global_frequency_cap:Gz.nullable().default(null).meta(_),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(_),suppress_for_paid:a.boolean().default(false).meta(_),suppress_for_trial:a.boolean().default(false).meta(_),default_dismiss_cooldown_hours:a.number().int().min(0).nullable().default(null).meta(_),allow_stacking:a.boolean().default(false).meta(_),priority_collision_strategy:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigPlacementSettingsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),kM=a.object({handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),category:a.string().nullable().default(null).meta(_),visibility_toggle:a.boolean().default(true).meta(_),source_type:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigSegmentDimensionsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),TM=a.object({handle:a.string().min(1).meta(_),entitlement_handle:a.string().min(1).meta(_),meter_handle:a.string().min(1).meta(_),limit:a.number().int().min(0).nullable().default(null).meta(_),reset_period:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigMeterBindingsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),$M=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),type:hz.meta(_),unit:a.string().optional().meta(_),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(_)}).meta({id:"RevTurbineConfigEntitlementsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),wM=a.object({id:a.string().min(1).meta(_),entitlement_id:a.string().min(1).meta(_),targets:a.array(Sz).min(1).meta(_),segment_ids:a.array(a.string()).default([]).meta(_),type_fields:TB.default({}).meta(_),current_usage:a.number().default(0).meta(_),allocation:_S.optional().meta(_)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),RM=a.object({slot_id:a.string().min(1).meta(_),active:a.boolean().meta(_),triggers:a.array(a.string()).meta(_)}).meta({id:"RevTurbineConfigSlotConfigsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),CM=a.object({id:a.string().min(1).meta(_),label:a.string().min(1).meta(_),description:a.string().meta(_),surface_type:a.string().meta(_),placement_handle:a.string().min(1).meta(_),template:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigPlacementSlotsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),EM=a.object({name:a.string().min(1).meta(_),type:a.string().optional().meta(_),required:a.boolean().optional().meta(_)}).meta({id:"RevTurbineConfigSurfaceTemplatesItemFieldsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),zM=a.object({id:a.string().min(1).meta(_),surface_type:a.string().meta(_),fields:a.array(EM).optional().meta(_)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),OM=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":Ie,"x-revturbine-schema-exposure":Fe}),jM=a.object({name:a.string().min(1).meta(_),action_type:OM.meta(_),plan_handle:a.string().optional().meta(_),promotion_id:a.string().optional().meta(_),placement_handle:a.string().optional().meta(_),url:a.string().optional().meta(_),tour_id:a.string().optional().meta(_),target_billing_period:a.enum(["monthly","annual"]).optional().meta(_),description:a.string().optional().meta(_)}).meta({id:"ContentUiPath","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),UM=a.object({id:a.string().meta(_),name:a.string().meta(_),discount:a.string().meta(_),type:a.string().meta(_),status:a.string().meta(_)}).meta({id:"ContentPromotion","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),AM=a.object({token:a.string().regex(/^[a-z][a-z0-9_]*$/).meta(_),label:a.string().min(1).meta(_),description:a.string().optional().meta(_),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(_),data_source:a.string().optional().meta(_),example_value:a.string().optional().meta(_),value_map:a.record(a.string(),a.string()).optional().meta(_),format:a.enum(["string","number","currency","percentage","date"]).optional().meta(_)}).meta({id:"RevTurbineConfigPersonalizationTokensItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),fz=a.object({header:a.string().optional().meta(_),body:a.string().optional().meta(_),cta_label:a.string().optional().meta(_),secondary_cta_label:a.string().optional().meta(_)}).catchall(a.unknown()).meta({id:"MessageBlockContent","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),DM=a.object({block_id:a.string().min(1).meta(_),tenant_id:a.string().min(1).meta(_),name:a.string().min(1).meta(_),surface_template_id:a.string().optional().meta(_),default_content:fz.meta(_),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:fz})).optional().meta(_),child_blocks:a.array(a.object({slot:a.string(),block_id:a.string()})).optional().meta(_),tokens_used:a.array(a.string()).optional().meta(_),status:a.enum(["draft","active","archived"]).meta(_),created_at:a.string().datetime().meta({..._,readOnly:true}),updated_at:a.string().datetime().meta({..._,readOnly:true})}).meta({id:"MessageBlock","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),FM=a.object({label:a.string().meta(_),path:bz.meta(_),config:a.record(a.string(),a.string()).optional().meta(_)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),Jz=a.object({template_id:a.string().min(1).meta(_),fields:a.record(a.string(),a.string()).meta(_),ctas:a.array(FM).meta(_)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),Wz=a.object({plan_ids:a.array(a.string()).meta(_),billing_cadences:a.array(a.string()).optional().meta(_),segment_chips:a.array(a.string()).meta(_)}).meta({id:"RevTurbineConfigStudioPayloadTarget","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),NM=a.object({count:a.number().int().min(1).meta(_),period:a.enum(["session","day","week","month","lifetime"]).meta(_)}).meta({id:"RevTurbineConfigPeriodCap","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),Xz=a.object({max_per_period:NM.optional().meta(_),cooldown_days:a.number().int().min(0).optional().meta(_)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),LM=a.object({id:a.string().min(1).meta(_),target:Wz.meta(_),surfaces:a.array(Jz).meta(_),caps:Xz.optional().meta(_),surface_slot_ids:a.array(a.string()).optional().meta(_),created_at:a.string().optional().meta({..._,readOnly:true}),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(_),recommendation_plan_override:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigStudioPayload","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),BM=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:$l}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:$l}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:$l}),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":Ie,"x-revturbine-schema-exposure":Fe}),VM=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),MM=a.object({id:a.string().min(1).meta(_),name:a.string().min(1).meta(_),category:VM.meta(_),trigger:BM.meta(_),payloads:a.array(LM).meta(_),order:a.number().int().min(0).meta(_)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),ZM=a.object({payload_id:a.string().min(1).meta(_),placement_id:a.string().min(1).meta(_),target:Wz.meta(_),caps:Xz.optional().meta(_),created_at:a.string().meta({..._,readOnly:true}),updated_at:a.string().datetime().optional().meta({..._,readOnly:true}),source_mode:a.enum(["inline","content_linked"]).meta(_),surfaces:a.array(Jz).optional().meta(_),surface_slot_ids:a.array(a.string()).optional().meta(_),content_link:a.object({message_block_id:a.string().optional(),ui_path_id:a.string().optional(),promotion_id:a.string().optional(),content_payload_id:a.string().optional()}).optional().meta(_)}).meta({id:"RevTurbineConfigPlacementPayloadItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),qM=a.object({kind:a.string().min(1).meta(_),schema_version:a.number().int().nonnegative().meta(_),config:a.unknown().meta(_)}).meta({id:"RevTurbineConfigExtensionRulesItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),HM=ae.merge(Lz).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Mi}),KM=ae.merge(Bz).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Mi}),GM=a.object({version:a.string().meta({..._,...Vi}),exported_at:a.string().datetime().optional().meta({..._,...Rl,readOnly:true}),schema_version:a.string().optional().meta({..._,...Vi,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({..._,...Vi,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({..._,...Rl,readOnly:true}),tenant_id:a.string().optional().meta({..._,...Cl,readOnly:true}),environment_id:a.string().optional().meta({..._,...Cl,readOnly:true}),plans:a.array(_M).meta({..._,...Oe}),addons:a.array(vM).optional().meta({..._,...as}),entitlements:a.array($M).meta({..._,...Oe}),entitlement_rules:a.array(wM).meta({..._,...Oe}),segments:a.array(bM).meta({..._,...Oe}),content_ui_paths:a.array(jM).meta({..._,...Oe}),slot_configs:a.array(RM).optional().meta({..._,...Oe,...dp({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({..._,...Oe,...dp({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({..._,...oM,...dp({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(CM).optional().meta({..._,...Oe}),message_blocks:a.array(DM).optional().meta({..._,...Oe}),placement_payloads:a.array(ZM).optional().meta({..._,...Oe}),placements:a.array(MM).optional().meta({..._,...Oe}),content_promotions:a.array(UM).optional().meta({..._,...Oe}),personalization_tokens:a.array(AM).optional().meta({..._,...Oe}),surface_templates:a.array(zM).optional().meta({..._,...Oe}),free_trial_rules:a.array(HM).optional().meta({..._,...as}),reverse_trial_rules:a.array(KM).optional().meta({..._,...as}),plan_variations:a.array(yM).optional().meta({..._,...as}),addon_variations:a.array(xM).optional().meta({..._,...as}),extension_rules:a.array(qM).optional().meta({..._,...Oe}),seat_types:a.array(SM).optional().meta({..._,...Oe}),enforcement_defaults:a.array(IM).optional().meta({..._,...Oe}),placement_settings:a.array(PM).optional().meta({..._,...Oe}),segment_dimensions:a.array(kM).optional().meta({..._,...Oe}),meter_bindings:a.array(TM).optional().meta({..._,...Oe})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe,...dp({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),JM=a.object({artifact_type:a.literal("playbook").meta({..._,...Vi,readOnly:true}),format_version:a.literal(sM).meta({..._,...Vi,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({..._,...Vi}),playbook_version_id:a.string().nullable().default(null).meta({..._,...Rl,readOnly:true}),tenant_id:a.string().min(1).meta({..._,...Cl,readOnly:true}),environment_id:a.string().min(1).meta({..._,...Cl,readOnly:true}),project_id:a.string().min(1).optional().meta({..._,...Cl,readOnly:true}),exported_at:a.string().datetime().optional().meta({..._,...Rl,readOnly:true}),schema_version:a.string().min(1).optional().meta({..._,...Vi,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({..._,...Vi,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Rl}),WM={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},XM=GM.omit(WM).extend({experiments:a.array(a.unknown()).max(0).optional().meta({..._,...Mi}),signal_catalog:a.object({}).strict().optional().meta({..._,...Mi})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe});JM.extend(XM.shape).meta({id:"Playbook","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe});({"/api/seat-type-anchors":{get:y({operationId:"listSeatTypeAnchors",requestParams:{query:ne},summary:"List seat type anchors (identity registry)",tags:["config"],responses:{200:{description:"Seat type anchor list",content:{"application/json":{schema:te(cM)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:y({operationId:"listSeatTypes",requestParams:{query:ne},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:te(yl)}}}},"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:_n(yl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:yl}}}},"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:yl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:yl}}}},"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:ne},summary:"List personalization token anchors (identity registry)",tags:["config"],responses:{200:{description:"Personalization token anchor list",content:{"application/json":{schema:te(lM)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:y({operationId:"listPersonalizationTokens",requestParams:{query:ne},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:te(xl)}}}},"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:_n(xl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:xl}}}},"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:xl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:xl}}}},"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:vn(uS)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:uS}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:y({operationId:"listMeteringConfigs",requestParams:{query:ne},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:te(Sl)}}}},"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:_n(Sl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Sl}}}},"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:Sl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Sl}}}},"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:ne},summary:"List usage enforcement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Usage enforcement setting anchor list",content:{"application/json":{schema:te(dM)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:te(Il)}}}},"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:_n(Il)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Il}}}},"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:Il.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Il}}}},"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:ne},summary:"List placement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Placement setting anchor list",content:{"application/json":{schema:te(gM)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:vn(dS)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:dS}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});var {Unrestricted:si}=Gt,{Persisted:Yz}=Ht,{Internal:Qz}=Kt,YM=a.enum(["create","update","delete","archive","restore","reorder","duplicate","sync","publish"]).meta({id:"ChangeLogAction","x-revturbine-schema-persistence":Yz,"x-revturbine-schema-exposure":Qz}),gz=ae.merge(pe).merge(be).extend({action:YM.meta(si),resource_type:a.string().min(1).max(100).meta(si),resource_id:a.string().min(1).meta(si),resource_name:a.string().max(200).optional().meta(si),actor_id:a.string().min(1).meta(si),actor_email:a.string().email().optional().meta(si),diff:a.object({before:a.record(a.string(),a.unknown()).optional(),after:a.record(a.string(),a.unknown()).optional()}).optional().meta(si),summary:a.string().max(1e3).optional().meta(si),metadata:Ut.meta(si)}).meta({id:"ChangeLogEntry","x-revturbine-schema-persistence":Yz,"x-revturbine-schema-exposure":Qz});({"/api/changelog":{get:y({operationId:"listChangeLogEntries",requestParams:{query:ne},summary:"List change log entries",tags:["changelog"],responses:{200:{description:"Change log entries",content:{"application/json":{schema:te(gz)}}}},"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:gz}}}},"x-revturbine-operation":{exposure:"internal",resource:"changelog",persistence:{table:"changeLogEntries",mode:"get"}}})}});var {Unrestricted:pp}=Gt,{Persisted:QM,Transient:e3}=Ht,{Internal:eO}=Kt,t3=a.enum(["active","suspended","archived"]).meta({id:"TenantStatus","x-revturbine-schema-persistence":e3,"x-revturbine-schema-exposure":eO}),Bi=ae.merge(pe).extend({name:Nt.meta(pp),handle:ct.meta(pp),status:t3.default("active").meta(pp),metadata:Ut.meta(pp)}).meta({id:"Tenant","x-revturbine-schema-persistence":QM,"x-revturbine-schema-exposure":eO});({"/api/tenants":{get:y({operationId:"listTenants",requestParams:{query:ne},summary:"List tenants",tags:["tenants"],responses:{200:{description:"Tenant list",content:{"application/json":{schema:te(Bi)}}}},"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:Bi}}}},"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:Bi.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Bi}}}},"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:Bi}}}},"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:Bi}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"update"}}})}});var {Unrestricted:hr}=Gt,{Persisted:n3,Transient:tO}=Ht,{Internal:CS}=Kt,r3=a.enum(["active","archived","locked"]).meta({id:"EnvironmentStatus","x-revturbine-schema-persistence":tO,"x-revturbine-schema-exposure":CS}),Qa=ae.merge(pe).merge(be).extend({name:Nt.meta(hr),handle:ct.meta(hr),description:$o.meta(hr),is_production:a.boolean().default(false).meta({...hr,readOnly:true}),status:r3.default("active").meta(hr),cloned_from_environment_id:a.string().nullable().default(null).meta({...hr,readOnly:true}),cloned_at:zt.meta({...hr,readOnly:true}),cloned_at_sequence:a.number().int().min(0).nullable().default(null).meta({...hr,readOnly:true}),requires_approval:a.boolean().default(false).meta(hr),auto_deploy_on_approval:a.boolean().default(false).meta(hr),created_by:a.string().optional().meta(hr),metadata:Ut.meta(hr)}).meta({id:"Environment","x-revturbine-schema-persistence":n3,"x-revturbine-schema-exposure":CS}),i3=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":tO,"x-revturbine-schema-exposure":CS});({"/api/environments":{get:y({operationId:"listEnvironments",requestParams:{query:ne},summary:"List environments",tags:["environments"],responses:{200:{description:"Environment list",content:{"application/json":{schema:te(Qa)}}}},"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:Qa}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:Qa}}}},"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:Qa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Qa}}}},"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:Qa}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:i3}}},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:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"promote"}}})}});var {Unrestricted:ye,Pii:zl}=Gt,{Transient:Gr,Persisted:o3}=Ht,{External:wr}=Kt,a3=a.enum(["milestone_version","milestone_order"]).meta({id:"SupersessionReason","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr});a.object({superseded_output_id:a.string().min(1).meta(ye),superseded_by:a.string().min(1).meta(ye),reason:a3.meta(ye)}).meta({id:"SupersessionRecord","x-revturbine-schema-persistence":o3,"x-revturbine-schema-exposure":wr,"x-revturbine-data-classification":"operational"});var s3=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementStatus","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr}),nO=a.object({output_id:a.string().meta(ye),category:a.string().meta(ye),surface:a.object({template:a.string().optional().meta(ye),type:_p.meta(ye),slot_id:a.string().optional().meta(ye)}).meta(ye),content:a.record(a.string(),a.unknown()).meta(ye),promotion:a.record(a.string(),a.unknown()).optional().meta(ye),cta_path:a.record(a.string(),a.unknown()).optional().meta(ye),ui_path:a.record(a.string(),a.unknown()).optional().meta(ye),rule_id:a.string().meta(ye),decision_id:a.string().meta(ye),config_version:a.string().meta(ye),present_upsell:a.boolean().meta(ye)}).meta({id:"PlacementDecisionOutput","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr}),c3=a.object({status:s3.meta(ye),allowed:a.boolean().meta(ye),reason:a.string().optional().meta(ye),current_tier:a.string().optional().meta(ye),limit:a.number().optional().meta(ye),used:a.number().optional().meta(ye),remaining:a.number().optional().meta(ye),placement:nO.optional().meta(ye)}).meta({id:"EntitlementCheckResult","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr});a.object({id:a.string().meta(ye),name:a.string().optional().meta(ye),discount:a.string().optional().meta(ye),type:a.string().optional().meta(ye),status:a.string().optional().meta(ye)}).meta({id:"RuntimePromotionSnapshot","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr});var l3=a.object({id:a.string().meta(zl),anonymous_id:a.string().optional().meta(ye),traits:a.record(a.string(),a.unknown()).optional().meta(zl)}).meta({id:"ServerEvaluationPayloadUser","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr}),u3=a.object({slot_id:a.string().optional().meta(ye),entitlement_handle:a.string().optional().meta(ye),plan_handle:a.string().optional().meta(ye),placement_handle:a.string().optional().meta(ye),visible:a.boolean().meta(ye),output:nO.optional().meta(ye),reason_codes:a.array(a.string()).optional().meta(ye)}).meta({id:"ServerEvaluationPayloadDecisionsItem","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr}),d3=c3,m3=vS.meta({id:"ServerEvaluationPayloadTrialStatus","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr}),p3=a.object({segments:a.array(a.string()).optional().meta(ye),traits:a.record(a.string(),a.unknown()).optional().meta(zl),usage_balances:a.record(a.string(),a.number()).optional().meta(ye)}).meta({id:"ServerEvaluationPayloadUserContext","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr});a.object({version:a.literal("1.0.0").meta(ye),request_id:a.string().meta(ye),tenant_id:a.string().meta(ye),evaluated_at:a.string().datetime().meta(ye),ttl_seconds:a.number().int().min(0).max(86400).meta(ye),user:l3.meta(zl),decisions:a.array(u3).meta(ye),entitlements:a.record(a.string(),d3).optional().meta(ye),theme:a.record(a.string(),a.unknown()).optional().meta(ye),trial_status:m3.optional().meta(ye),user_context:p3.optional().meta(zl)}).meta({id:"ServerEvaluationPayload","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr});var {Unrestricted:We}=Gt,{Persisted:f3,Transient:Ip}=Ht,{Internal:Ml}=Kt,g3=a.enum(["draft","awaiting_approval","approved","deploying","deployed","rejected","archived"]).meta({id:"PlaybookVersionStatus","x-revturbine-schema-persistence":Ip,"x-revturbine-schema-exposure":Ml}),Pl=ae.merge(pe).merge(be).extend({environment_id:a.string().min(1).meta(We),name:Nt.meta(We),description:a.string().max(2e3).optional().meta(We),status:g3.default("draft").meta(We),labels:a.array(a.string()).default([]).meta(We),created_by:a.string().min(1).meta(We),submitted_by:a.string().nullable().default(null).meta({...We,readOnly:true}),reviewed_by:a.string().nullable().default(null).meta({...We,readOnly:true}),deployed_by:a.string().nullable().default(null).meta({...We,readOnly:true}),submitted_at:zt.meta({...We,readOnly:true}),reviewed_at:zt.meta({...We,readOnly:true}),deployed_at:zt.meta({...We,readOnly:true}),base_snapshot_sequence:a.number().int().min(0).default(0).meta({...We,readOnly:true}),entry_count:a.number().int().min(0).default(0).meta({...We,readOnly:true}),conflict_count:a.number().int().min(0).default(0).meta({...We,readOnly:true}),rollback_of_playbook_version_id:a.string().nullable().default(null).meta(We),cherry_picked_from_playbook_version_id:a.string().nullable().default(null).meta(We),review_notes:a.string().max(2e3).optional().meta(We),rejection_reason:a.string().max(2e3).optional().meta(We),snapshot:a.record(a.string(),a.unknown()).nullable().default(null).meta({...We,readOnly:true}),bundle:a.string().nullable().default(null).meta({...We,readOnly:true}),metadata:Ut.meta(We)}).meta({id:"PlaybookVersion","x-revturbine-schema-persistence":f3,"x-revturbine-schema-exposure":Ml}),rO=a.object({handle:a.string().meta(We),resource_type:a.string().meta(We),resource_name:a.string().optional().meta(We),action:a.enum(["create","update","delete"]).meta(We),has_conflict:a.boolean().meta(We)}).meta({id:"PlaybookVersionEntrySummary","x-revturbine-schema-persistence":Ip,"x-revturbine-schema-exposure":Ml}),h3=a.object({playbook_version_id:a.string().meta(We),entries:a.array(rO).meta(We),total_entries:a.number().int().min(0).meta(We),total_conflicts:a.number().int().min(0).meta(We),deployable:a.boolean().meta(We)}).meta({id:"PlaybookVersionDiff","x-revturbine-schema-persistence":Ip,"x-revturbine-schema-exposure":Ml}),b3=a.object({playbook_version_id:a.string().meta(We),deployed_count:a.number().int().min(0).meta(We),superseded_count:a.number().int().min(0).meta(We),skipped_conflicts:a.number().int().min(0).meta(We),deployed_at:a.string().datetime().meta(We)}).meta({id:"PlaybookVersionDeployResult","x-revturbine-schema-persistence":Ip,"x-revturbine-schema-exposure":Ml});({"/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:Pl}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:Pl}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:Pl}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:b3}}},default:{description:"Error (conflicts exist)",content:{"application/json":{schema:we}}}},"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:Pl}}}},"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:h3}}}},"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:ne},summary:"List entries with sequence conflicts (base_sequence \u2260 current)",tags:["playbook-versions"],responses:{200:{description:"Conflict list",content:{"application/json":{schema:te(rO)}}}},"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:Pl}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})}});var {Unrestricted:Ge,Pii:_3}=Gt,{Persisted:Rr}=Ht,{Internal:Cr}=Kt,v3=a.enum(["active","revoked","rotating"]).meta({id:"ApiKeyStatus","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),fp=ae.merge(pe).merge(be).extend({name:Nt.meta(Ge),key_hash:a.string().min(1).meta({..._3,readOnly:true}),key_prefix:a.string().min(1).max(20).meta({...Ge,readOnly:true}),key_last4:a.string().length(4).meta({...Ge,readOnly:true}),status:v3.default("active").meta(Ge),last_used_at:zt.meta({...Ge,readOnly:true}),expires_at:zt.meta(Ge)}).meta({id:"ApiKey","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),y3=a.enum(["boolean","string","number","json"]).meta({id:"FlagValueType","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),ko=ae.merge(pe).merge(be).extend({key:a.string().min(1).max(100).meta(Ge),value_type:y3.default("boolean").meta(Ge),value:a.string().max(4e3).default("false").meta(Ge),description:$o.meta(Ge),enabled:a.boolean().default(true).meta(Ge)}).meta({id:"FeatureFlag","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),mS=ae.merge(pe).merge(be).extend({workspace_name:a.string().min(1).max(200).meta(Ge),support_email:a.string().email().nullable().default(null).meta(Ge),timezone:a.string().max(50).default("UTC").meta(Ge),default_currency:a.string().length(3).default("USD").meta(Ge),logo_url:a.string().url().nullable().default(null).meta(Ge)}).meta({id:"TenantConfig","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),pS=ae.merge(pe).merge(be).extend({server_url:a.string().url().max(500).meta(Ge),api_token_hint:a.string().max(50).nullable().default(null).meta(Ge),allow_write_actions:a.boolean().default(false).meta(Ge),enabled_tools:a.array(a.string().max(100)).default([]).meta(Ge),enabled:a.boolean().default(false).meta(Ge)}).meta({id:"McpConfig","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),gp=ae.merge(pe).merge(be).extend({step_key:a.string().min(1).max(100).meta(Ge),label:a.string().min(1).max(200).meta(Ge),done:a.boolean().default(false).meta(Ge),completed_at:zt.meta({...Ge,readOnly:true})}).meta({id:"OnboardingChecklist","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),x3=a.enum(["user","agent","system","webhook"]).meta({id:"AuditActorType","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),S3=ae.merge(be).extend({environment_id:a.string().min(1).default("production").meta(Ge),actor_type:x3.meta(Ge),actor_id:a.string().nullable().default(null).meta(Ge),action:a.string().min(1).max(120).meta(Ge),object_type:a.string().max(120).nullable().default(null).meta(Ge),object_id:a.string().max(200).nullable().default(null).meta(Ge),payload:a.record(a.string(),a.unknown()).nullable().default(null).meta(Ge),occurred_at:a.string().datetime().meta({...Ge,readOnly:true})}).meta({id:"AuditEvent","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),I3=a.enum(["user_id","account_id","email"]).meta({id:"PlacementTestUserIdentifierType","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),hp=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({...Ge,readOnly:true}),identifier:a.string().min(1).max(200).meta(Ge),identifier_type:I3.default("user_id").meta(Ge),note:a.string().max(500).nullable().default(null).meta(Ge),added_by:a.string().meta(Ge)}).meta({id:"PlacementTestUser","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr,...ar()});({"/api/settings/api-keys":{get:y({operationId:"listApiKeys",requestParams:{query:ne},summary:"List API keys for the tenant",tags:["settings"],responses:{200:{description:"API keys",content:{"application/json":{schema:te(fp)}}}},"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:_n(fp)}}},responses:{201:{description:"API key created",content:{"application/json":{schema:fp}}}},"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:fp}}}},"x-revturbine-operation":{exposure:"internal",resource:"api-keys",persistence:{table:"apiKeys",mode:"delete"}}})},"/api/flags":{get:y({operationId:"listFeatureFlags",requestParams:{query:ne},summary:"List feature flags for the tenant",tags:["settings"],responses:{200:{description:"Feature flags",content:{"application/json":{schema:te(ko)}}}},"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:_n(ko)}}},responses:{201:{description:"Feature flag created",content:{"application/json":{schema:ko}}}},"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:ko}}}},"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:vn(ko).partial()}}},responses:{200:{description:"Feature flag updated",content:{"application/json":{schema:ko}}}},"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:ko}}}},"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:vn(mS).partial()}}},responses:{200:{description:"Tenant config updated",content:{"application/json":{schema:mS}}}},"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:vn(pS).partial()}}},responses:{200:{description:"MCP config updated",content:{"application/json":{schema:pS}}}},"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:ne},summary:"List onboarding checklist steps",tags:["settings"],responses:{200:{description:"Onboarding steps",content:{"application/json":{schema:te(gp)}}}},"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:gp}}}},"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:vn(gp).partial()}}},responses:{200:{description:"Onboarding step updated",content:{"application/json":{schema:gp}}}},"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:ne},summary:"List audit events for the tenant",tags:["settings"],responses:{200:{description:"Audit events",content:{"application/json":{schema:te(S3)}}}},"x-revturbine-operation":{exposure:"internal",resource:"audit-events",persistence:{table:"auditEvents",mode:"list"}}})},"/api/config/placement-test-users":{get:y({operationId:"listPlacementTestUsers",requestParams:{query:ne},summary:"List placement test users for the tenant",tags:["settings"],responses:{200:{description:"Placement test users",content:{"application/json":{schema:te(hp)}}}},"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:_n(hp)}}},responses:{201:{description:"Placement test user created",content:{"application/json":{schema:hp}}}},"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:hp}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-test-users",persistence:{table:"placementTestUsers",mode:"delete"}}})}});var {Unrestricted:oe,Pii:$n}=Gt,{Persisted:Ln,Transient:ES}=Ht,{Internal:hn}=Kt,P3=a.enum(["user","admin"]).meta({id:"UserRole","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.merge(pe).extend({name:Nt.meta(oe),email:a.string().email().meta($n),email_verified:a.boolean().default(false).meta(oe),image:a.string().url().nullable().default(null).meta($n),role:P3.default("user").meta(oe),banned:a.boolean().default(false).meta({...oe,readOnly:true}),ban_reason:a.string().nullable().default(null).meta({...oe,readOnly:true}),ban_expires:zt.meta({...oe,readOnly:true}),two_factor_enabled:a.boolean().default(false).meta({...oe,readOnly:true})}).meta({id:"AuthUser","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.merge(pe).extend({expires_at:a.string().datetime().meta(oe),token:a.string().min(1).meta({...$n,readOnly:true}),ip_address:a.string().nullable().default(null).meta($n),user_agent:a.string().nullable().default(null).meta($n),user_id:a.string().min(1).meta({...oe,readOnly:true}),active_organization_id:a.string().nullable().default(null).meta(oe),impersonated_by:a.string().nullable().default(null).meta({...oe,readOnly:true})}).meta({id:"AuthSession","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.merge(pe).extend({account_id:a.string().min(1).meta(oe),provider_id:a.string().min(1).meta(oe),user_id:a.string().min(1).meta({...oe,readOnly:true}),access_token:a.string().nullable().default(null).meta({...$n,readOnly:true}),refresh_token:a.string().nullable().default(null).meta({...$n,readOnly:true}),id_token:a.string().nullable().default(null).meta({...$n,readOnly:true}),access_token_expires_at:zt.meta({...oe,readOnly:true}),refresh_token_expires_at:zt.meta({...oe,readOnly:true}),scope:a.string().nullable().default(null).meta(oe),password:a.string().nullable().default(null).meta({...$n,readOnly:true})}).meta({id:"AuthAccount","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.merge(pe).extend({identifier:a.string().min(1).meta($n),value:a.string().min(1).meta({...$n,readOnly:true}),expires_at:a.string().datetime().meta(oe)}).meta({id:"AuthVerification","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({secret:a.string().min(1).meta({...$n,readOnly:true}),backup_codes:a.string().min(1).meta({...$n,readOnly:true}),user_id:a.string().min(1).meta({...oe,readOnly:true}),verified:a.boolean().default(false).meta({...oe,readOnly:true})}).meta({id:"AuthTwoFactor","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({name:Nt.meta(oe),slug:a.string().min(1).max(100).nullable().default(null).meta(oe),logo:a.string().url().nullable().default(null).meta(oe),created_at:a.string().datetime().meta({...oe,readOnly:true}),metadata:a.string().nullable().default(null).meta(oe)}).meta({id:"AuthOrganization","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});var iO=a.enum(["viewer","collaborator","approver","admin"]).meta({id:"Role","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});var oO=a.enum(["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"]).meta({id:"PermissionResource","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":hn}),aO=a.enum(["read","create","update","delete","publish","approve","invite","manage_roles"]).meta({id:"PermissionAction","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":hn});a.object({resource:oO,action:aO}).meta({id:"Permission","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":hn});var k3=["tenant","plans","entitlements","placements","targeting","content","experiments","audit","settings"],T3=["plans","entitlements","placements","targeting","content","experiments"],$3=["plans","entitlements","placements","targeting","content","experiments"],w3=["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"],R3=["read","create","update","delete","publish","approve","invite","manage_roles"];function Pp(e,n){return e.flatMap(r=>n.map(o=>({resource:r,action:o})))}var C3=Pp(k3,["read"]),E3=[...C3,...Pp(T3,["create","update"])];[...E3,...Pp($3,["publish","approve","delete"])];Pp(w3,R3);var z3=oO.options.flatMap(e=>aO.options.map(n=>`${e}:${n}`));a.enum(z3).meta({id:"McpTokenScope","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({organization_id:a.string().min(1).meta({...oe,readOnly:true}),user_id:a.string().min(1).meta({...oe,readOnly:true}),role:iO.default("viewer").meta(oe),created_at:a.string().datetime().meta({...oe,readOnly:true})}).meta({id:"AuthMember","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});var O3=a.enum(["pending","accepted","rejected","canceled","expired"]).meta({id:"InvitationStatus","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({organization_id:a.string().min(1).meta({...oe,readOnly:true}),email:a.string().email().meta($n),role:iO.nullable().default(null).meta(oe),status:O3.default("pending").meta(oe),expires_at:a.string().datetime().meta(oe),created_at:a.string().datetime().meta({...oe,readOnly:true}),inviter_id:a.string().min(1).meta({...oe,readOnly:true})}).meta({id:"AuthInvitation","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({name:a.string().max(200).nullable().default(null).meta(oe),public_key:a.string().min(1).meta({...$n,readOnly:true}),user_id:a.string().min(1).meta({...oe,readOnly:true}),credential_id:a.string().min(1).meta({...oe,readOnly:true}),counter:a.number().int().default(0).meta({...oe,readOnly:true}),device_type:a.string().min(1).meta(oe),backed_up:a.boolean().default(false).meta(oe),transports:a.string().nullable().default(null).meta(oe),created_at:a.string().datetime().meta({...oe,readOnly:true}),aaguid:a.string().nullable().default(null).meta(oe)}).meta({id:"AuthPasskey","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.merge(pe).extend({config_id:a.string().min(1).meta(oe),name:a.string().max(200).nullable().default(null).meta(oe),start:a.string().nullable().default(null).meta(oe),reference_id:a.string().min(1).meta(oe),prefix:a.string().nullable().default(null).meta(oe),key:a.string().min(1).meta({...$n,readOnly:true}),refill_interval:a.number().int().nullable().default(null).meta(oe),refill_amount:a.number().int().nullable().default(null).meta(oe),last_refill_at:zt.meta({...oe,readOnly:true}),enabled:a.boolean().default(true).meta(oe),rate_limit_enabled:a.boolean().default(false).meta(oe),rate_limit_time_window:a.number().int().nullable().default(null).meta(oe),rate_limit_max:a.number().int().nullable().default(null).meta(oe),request_count:a.number().int().default(0).meta({...oe,readOnly:true}),remaining:a.number().int().nullable().default(null).meta({...oe,readOnly:true}),last_request:zt.meta({...oe,readOnly:true}),expires_at:zt.meta(oe),permissions:a.string().nullable().default(null).meta(oe),metadata:a.string().nullable().default(null).meta(oe)}).meta({id:"AuthApiKey","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({issuer:a.string().min(1).meta(oe),oidc_config:a.string().nullable().default(null).meta(oe),saml_config:a.string().nullable().default(null).meta(oe),user_id:a.string().min(1).meta({...oe,readOnly:true}),provider_id:a.string().min(1).meta(oe),organization_id:a.string().nullable().default(null).meta(oe),domain:a.string().min(1).meta(oe)}).meta({id:"AuthSsoProvider","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});var sO="0.2.34";var wn=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 ui(e){return e?{id:e.id??wn.id,name:e.name??wn.name,version:e.version??wn.version,colors:{...wn.colors,...e.colors},typography:{...wn.typography,...e.typography},shape:{...wn.shape,...e.shape},shadows:{...wn.shadows,...e.shadows}}:{...wn}}var cO=createContext(wn);function zS({theme:e,children:n}){return jsx(cO.Provider,{value:e,children:n})}function gt(){return useContext(cO)}var L3={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 24px",lineHeight:"1.5",zIndex:9990,width:"100%",boxSizing:"border-box"},B3={display:"flex",flexDirection:"column",gap:"2px",flex:1},V3={display:"flex",alignItems:"center",gap:"8px",marginLeft:"16px",flexShrink:0};function wo({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[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]),h=useMemo(()=>{let{colors:P,typography:x,shape:w}=s;return {banner:{...L3,backgroundColor:P.primary,color:P.primaryText,fontFamily:x.fontFamily,fontSize:x.fontSize,position:"sticky",...p==="bottom"?{bottom:0}:{top:0}},header:{fontWeight:600,fontSize:"15px"},body:{opacity:.9},cta:{padding:"6px 16px",backgroundColor:P.primaryText,color:P.primary,border:"none",borderRadius:w.borderRadiusSmall,fontWeight:600,fontSize:x.fontSizeSmall,cursor:"pointer",whiteSpace:"nowrap"},dismiss:{padding:"4px 8px",background:"transparent",border:"none",color:P.primaryText,fontSize:"18px",cursor:"pointer",opacity:.7,lineHeight:1}}},[s,p]);return !o||c?null:jsxs("div",{className:t,style:{...h.banner,...i},role:"banner","data-rt-placement":"banner",children:[jsxs("div",{style:B3,children:[e.header&&jsx("div",{style:h.header,children:e.header}),(e.body||e.message)&&jsx("div",{style:h.body,children:e.body||e.message})]}),jsxs("div",{style:V3,children:[e.cta_label&&jsx("button",{type:"button",style:h.cta,onClick:n,children:e.cta_label}),g&&jsx("button",{type:"button",style:h.dismiss,onClick:f,"aria-label":"Dismiss",children:"\xD7"})]})]})}wo.displayName="BannerSlot";var q3={position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999},H3={width:"100%",maxHeight:"200px",objectFit:"cover",marginBottom:"16px"},K3={display:"flex",gap:"12px",justifyContent:"flex-end"};function Co({content:e,onCtaClick:n,onSecondaryCtaClick:r,onDismiss:o,visible:t,className:i,style:s}){let c=gt(),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]),h=useCallback(w=>{d==="optional"&&w.target===w.currentTarget&&f();},[d,f]),P=useCallback(w=>{w.key==="Escape"&&d==="optional"&&f();},[d,f]);useEffect(()=>{if(t)return document.addEventListener("keydown",P),u.current?.focus(),()=>document.removeEventListener("keydown",P)},[t,P]);let x=useMemo(()=>{let{colors:w,typography:S,shape:E,shadows:I}=c;return {overlay:{...q3,backgroundColor:w.overlay,fontFamily:S.fontFamily},dialog:{position:"relative",maxWidth:"480px",width:"90%",backgroundColor:w.background,borderRadius:E.borderRadiusLarge,boxShadow:I.large,padding:"32px",boxSizing:"border-box"},close:{position:"absolute",top:"12px",right:"12px",background:"transparent",border:"none",fontSize:"20px",color:w.textMuted,cursor:"pointer",padding:"4px 8px",lineHeight:1},image:{...H3,borderRadius:E.borderRadius},header:{fontSize:S.fontSizeHeader,fontWeight:700,color:w.text,marginBottom:"8px",lineHeight:1.3},body:{fontSize:"15px",color:w.textSecondary,lineHeight:1.6,marginBottom:"24px"},primaryBtn:{padding:"10px 24px",backgroundColor:w.primary,color:w.primaryText,border:"none",borderRadius:E.borderRadius,fontWeight:600,fontSize:S.fontSize,cursor:"pointer"},secondaryBtn:{padding:"10px 24px",backgroundColor:"transparent",color:w.textSecondary,border:`1px solid ${w.surfaceBorder}`,borderRadius:E.borderRadius,fontWeight:500,fontSize:S.fontSize,cursor:"pointer"}}},[c]);return !t||m?null:jsx("div",{style:x.overlay,onClick:h,role:"dialog","aria-modal":"true","aria-label":typeof e.header=="string"?e.header:"Placement","data-rt-placement":"modal",children:jsxs("div",{ref:u,className:i,style:{...x.dialog,...s},tabIndex:-1,children:[d==="optional"&&jsx("button",{type:"button",style:x.close,onClick:f,"aria-label":"Close",children:"\xD7"}),e.image_url&&jsx("img",{src:e.image_url,alt:"",style:x.image}),e.header&&jsx("div",{style:x.header,children:e.header}),e.body&&jsx("div",{style:x.body,children:e.body}),jsxs("div",{style:K3,children:[e.secondary_cta_label&&r&&jsx("button",{type:"button",style:x.secondaryBtn,onClick:r,children:e.secondary_cta_label}),e.cta_label&&jsx("button",{type:"button",style:x.primaryBtn,onClick:n,children:e.cta_label})]})]})})}Co.displayName="ModalSlot";var J3={width:"100%",maxHeight:"180px",objectFit:"cover",marginBottom:"12px"};function Zl({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt(),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:{...J3,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}Zl.displayName="InlineEmbedSlot";function di(e){return jsx(Zl,{...e})}di.displayName="InPageSlot";var fO={"top-right":{top:"16px",right:"16px"},"bottom-right":{bottom:"16px",right:"16px"},"bottom-center":{bottom:"16px",left:"50%",transform:"translateX(-50%)"}},tZ={position:"absolute",zIndex:9995,maxWidth:"380px",width:"90%",lineHeight:1.5,display:"flex",alignItems:"center",gap:"12px",boxSizing:"border-box"},nZ={flex:1};function Eo({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[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 x=setTimeout(()=>{f();},g*1e3);return ()=>clearTimeout(x)},[c,g,f]);let h=useMemo(()=>{let{colors:x,typography:w,shape:S,shadows:E}=s;return {container:{...tZ,backgroundColor:x.toastBackground,color:x.toastText,borderRadius:S.borderRadius,boxShadow:E.medium,padding:"14px 18px",fontFamily:w.fontFamily,fontSize:w.fontSize},cta:{color:x.info,background:"transparent",border:"none",fontWeight:600,fontSize:w.fontSizeSmall,cursor:"pointer",whiteSpace:"nowrap",textDecoration:"underline",padding:0},close:{background:"transparent",border:"none",color:x.textMuted,fontSize:"16px",cursor:"pointer",padding:"2px 4px",lineHeight:1,flexShrink:0}}},[s]);if(!c)return null;let P=fO[p]??fO["bottom-right"];return jsxs("div",{className:t,style:{...h.container,...P,...i},role:"status","aria-live":"polite","data-rt-placement":"toast",children:[jsx("div",{style:nZ,children:e.message||e.body||e.header}),e.cta_label&&jsx("button",{type:"button",style:h.cta,onClick:n,children:e.cta_label}),jsx("button",{type:"button",style:h.close,onClick:f,"aria-label":"Close",children:"\xD7"})]})}Eo.displayName="ToastSlot";function zo({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt();if(!r)return null;let s=e.style||"primary",c={padding:"8px 20px",border:"none",borderRadius:i.shape.borderRadiusSmall,fontWeight:600,fontSize:i.typography.fontSize,cursor:"pointer",fontFamily:i.typography.fontFamily,whiteSpace:"nowrap",lineHeight:1.4},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"})}zo.displayName="ButtonSlot";function NS(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 gO(e,n){return e>=90?n.colors.danger:e>=70?n.colors.warning:n.colors.primary}function oZ({content:e,theme:n}){let r=NS(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:gO(r,n)}})})]})}function aZ({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 Er=80,DS=8,FS=(Er-DS)/2,AS=2*Math.PI*FS;function sZ({content:e,theme:n}){let r=NS(e),o=e.usage_current??r,t=e.usage_limit??100,i=AS-r/100*AS,s=gO(r,n);return jsxs("div",{style:{display:"flex",alignItems:"center",gap:"16px",marginBottom:"12px"},children:[jsxs("svg",{width:Er,height:Er,style:{flexShrink:0},children:[jsx("circle",{cx:Er/2,cy:Er/2,r:FS,fill:"none",stroke:n.colors.track,strokeWidth:DS}),jsx("circle",{cx:Er/2,cy:Er/2,r:FS,fill:"none",stroke:s,strokeWidth:DS,strokeLinecap:"round",strokeDasharray:AS,strokeDashoffset:i,transform:`rotate(-90 ${Er/2} ${Er/2})`,style:{transition:"stroke-dashoffset 0.3s ease"}}),jsxs("text",{x:Er/2,y:Er/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 hs({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt();if(!r)return null;let s=e.display_style||"progress_bar",c=typeof e.show_at=="number"?e.show_at:0,u=NS(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(aZ,{content:e,theme:i}):s==="circular_gauge"?jsx(sZ,{content:e,theme:i}):jsx(oZ,{content:e,theme:i}),e.cta_label&&jsx("button",{type:"button",style:m,onClick:n,children:e.cta_label})]})}hs.displayName="QuotaMeterSlot";var cZ={maxWidth:"800px",margin:"0 auto",padding:"40px 24px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},lZ={fontSize:"28px",fontWeight:700,color:"#111827",textAlign:"center",marginBottom:"12px",lineHeight:1.3},uZ={fontSize:"16px",color:"#4b5563",textAlign:"center",lineHeight:1.6,marginBottom:"32px",maxWidth:"600px",marginLeft:"auto",marginRight:"auto"},dZ={display:"flex",justifyContent:"center",gap:"16px"},mZ={padding:"12px 32px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"8px",fontWeight:600,fontSize:"16px",cursor:"pointer"},pZ={padding:"12px 32px",backgroundColor:"transparent",color:"#4b5563",border:"1px solid #d1d5db",borderRadius:"8px",fontWeight:500,fontSize:"16px",cursor:"pointer"};function bs({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){return o?jsxs("div",{className:t,style:{...cZ,...i},"data-rt-placement":"full-page",children:[e.header&&jsx("h1",{style:lZ,children:e.header}),e.body&&jsx("p",{style:uZ,children:e.body}),jsxs("div",{style:dZ,children:[e.cta_label&&jsx("button",{type:"button",style:mZ,onClick:n,children:e.cta_label}),e.secondary_cta_label&&r&&jsx("button",{type:"button",style:pZ,onClick:r,children:e.secondary_cta_label})]})]}):null}bs.displayName="FullPageSlot";var fZ={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"},gZ={whiteSpace:"pre-wrap",marginBottom:"12px"},hZ={display:"flex",gap:"16px"},_O={color:"#569cd6",background:"transparent",border:"none",cursor:"pointer",fontFamily:"inherit",fontSize:"inherit",padding:0,textDecoration:"underline"};function ql({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:{...fZ,...t},"data-rt-placement":"cli",children:[i&&jsx("div",{style:gZ,children:i}),(c.length>0||e.cta_label)&&jsxs("div",{style:hZ,children:[e.cta_label&&jsx("button",{type:"button",style:_O,onClick:n,children:e.cta_label}),c.map(u=>jsx("button",{type:"button",style:_O,onClick:n,children:u},u))]})]})}ql.displayName="CliSlot";var bZ={backgroundColor:"#ffffff",border:"1px solid #e2e8f0",borderRadius:"8px",padding:"16px 20px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},_Z={display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:"4px"},vZ={fontSize:"13px",color:"#6b7280"},yZ={fontSize:"28px",fontWeight:700,color:"#111827"},xZ={fontSize:"12px",color:"#9ca3af",marginBottom:"12px"},SZ={width:"100%",height:"6px",backgroundColor:"#e5e7eb",borderRadius:"3px",overflow:"hidden",marginBottom:"12px"},IZ={height:"100%",borderRadius:"3px",transition:"width 0.3s ease"},PZ={display:"flex",gap:"8px"},kZ={padding:"6px 16px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"6px",fontWeight:600,fontSize:"13px",cursor:"pointer"};function TZ(e,n){if(n<=0)return "#1e40af";let r=e/n*100;return r<=10?"#dc2626":r<=25?"#f59e0b":"#1e40af"}function Hl({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:{...bZ,...t},"data-rt-placement":"credit-balance",children:[jsxs("div",{style:_Z,children:[jsx("span",{style:vZ,children:typeof e.header=="string"?e.header:"Credits Remaining"}),jsx("span",{style:yZ,children:String(i)})]}),u&&typeof e.burn_rate_label=="string"&&jsx("div",{style:xZ,children:e.burn_rate_label}),(d==="balance_bar"||d==="balance_burn_rate")&&s>0&&jsx("div",{style:SZ,children:jsx("div",{style:{...IZ,width:`${Math.min(100,m)}%`,backgroundColor:TZ(i,s)}})}),jsx("div",{style:PZ,children:e.cta_label&&jsx("button",{type:"button",style:kZ,onClick:n,children:e.cta_label})})]})}Hl.displayName="CreditBalanceSlot";var wZ={position:"absolute",top:"16px",right:"16px"};function RZ(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 Kl({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[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,h=useCallback(()=>{if(!p||typeof window>"u"){m(null);return}let S=window.document.querySelector(p);if(!S){m(null);return}let E=S.getBoundingClientRect();m({top:E.top,left:E.left,width:E.width,height:E.height});},[p]);useEffect(()=>{o&&u(false);},[o]),useEffect(()=>{if(!o||(h(),typeof window>"u"))return;let S=()=>h();return window.addEventListener("resize",S),window.addEventListener("scroll",S,true),()=>{window.removeEventListener("resize",S),window.removeEventListener("scroll",S,true);}},[o,h]);let P=useCallback(()=>{u(true),r();},[r]),x=useMemo(()=>{let{colors:S,typography:E,shape:I,shadows:$}=s;return {container:{zIndex:9996,maxWidth:"320px",width:"max-content",lineHeight:1.45,display:"flex",flexDirection:"column",gap:"10px",boxSizing:"border-box",backgroundColor:S.toastBackground,color:S.toastText,borderRadius:I.borderRadius,boxShadow:$.medium,padding:"12px 14px",fontFamily:E.fontFamily,fontSize:E.fontSizeSmall},body:{margin:0},actions:{display:"flex",alignItems:"center",gap:"10px"},cta:{color:S.info,background:"transparent",border:"none",fontWeight:600,fontSize:E.fontSizeSmall,cursor:"pointer",textDecoration:"underline",padding:0},close:{marginLeft:"auto",background:"transparent",border:"none",color:S.textMuted,fontSize:"14px",cursor:"pointer",lineHeight:1,padding:"2px 4px"}}},[s]);if(!o||c)return null;let w=d?RZ(d,g,f):wZ;return jsxs("div",{className:t,style:{...x.container,...w,...i},role:"status","aria-live":"polite","data-rt-placement":"tooltip",children:[jsx("p",{style:x.body,children:e.message||e.body||e.header}),jsxs("div",{style:x.actions,children:[e.cta_label&&jsx("button",{type:"button",style:x.cta,onClick:n,children:e.cta_label}),jsx("button",{type:"button",style:x.close,onClick:P,"aria-label":"Close tooltip",children:"\xD7"})]})]})}Kl.displayName="TooltipSlot";function EZ(e){return e==="connected"?"#22c55e":e==="pending"?"#f59e0b":"#ef4444"}function zZ(e){return e==="connected"?"Connected":e==="pending"?"Pending":"Disconnected"}function Gl({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt(),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:EZ(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}),zZ(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}Gl.displayName="AgentConnectorSlot";var Wl=(e,n="")=>e==null||e===""?n:String(e);function jZ(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 MS={fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.05em",color:"#94a3b8"};function ZS({content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:o,accentText:t}){let i=jZ(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 qS(){let e=gt();return useMemo(()=>({accent:e.colors.primary,accentText:e.colors.primaryText}),[e])}function Rp({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=qS();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:{...MS,margin:0},children:"Email preview"}),jsx("p",{style:{margin:"2px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Wl(e.subject,"(no subject)")})]}),jsxs("div",{style:{padding:"8px 12px",fontSize:"12px",color:"#475569",whiteSpace:"pre-wrap"},children:[Wl(e.body,"(empty body)"),jsx(ZS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]})]}):null}Rp.displayName="EmailPreviewSlot";function Cp({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=qS();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:{...MS,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:Wl(e.body??e.message,"(empty message)")}),jsx(ZS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}Cp.displayName="SmsPreviewSlot";function Ep({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=qS();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:{...MS,margin:0},children:"Push preview"}),jsx("p",{style:{margin:"4px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Wl(e.header??e.title,"(no title)")}),jsx("p",{style:{margin:0,fontSize:"12px",color:"#475569"},children:Wl(e.body,"(empty body)")}),jsx(ZS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}Ep.displayName="PushPreviewSlot";function _s(e){e.register({id:"banner",label:"Banner",description:"Full-width banner placement at the top or bottom of the page.",surfaceType:"banner",component:wo,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:Co}),e.register({id:"in_page",label:"Inline Embed",description:"Content card or message embedded in the page flow.",surfaceType:"in_page",component:di}),e.register({id:"plans_cta",label:"Plans CTA",description:"Pricing page CTA-focused module with concise upgrade actions.",surfaceType:"in_page",component:di,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:bs,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:di,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:Kl,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:Eo,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:zo,defaultProps:{content:{style:"primary"}}}),e.register({id:"full_page",label:"Full Page",description:"Dedicated managed page (e.g. plans & pricing).",surfaceType:"full_page",component:bs}),e.register({id:"quota_meter",label:"Quota Meter",description:"Visual usage meter with upgrade CTA. Triggers at configurable threshold.",surfaceType:"in_page",component:hs,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:hs,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:ql}),e.register({id:"email",label:"Email Preview",description:"Static email channel preview (subject + body + CTAs).",surfaceType:"email",component:Rp}),e.register({id:"sms",label:"SMS Preview",description:"Static SMS channel preview (message bubble + CTAs).",surfaceType:"sms",component:Cp}),e.register({id:"push",label:"Push Preview",description:"Static push-notification channel preview (title + body + CTAs).",surfaceType:"push",component:Ep}),e.register({id:"agent_connector",label:"Agent Connector",description:"Agent-surface placement for assistant/connector experiences.",surfaceType:"agent",component:Gl,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:Hl,accepts:n=>n.surface.type==="in_page"&&(n.surface.template==="credit_balance_counter"||n.surface.template==="credit_balance")});}var UZ=new Set(["type","plan_handle","promotion_id","placement_handle","url","tour_id"]),jo=class{constructor(){z(this,"types",new Map);z(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 HS(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 vs(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=HS(t,n):r[o]=t;return r}function zp(e){let n=typeof e.type=="string"&&e.type.length>0?e.type:"dismiss",r={};for(let[o,t]of Object.entries(e))UZ.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 Op(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 Xl=null;function jp(){return Xl||(Xl=new jo,_s(Xl)),Xl}function kO(){Xl=null;}var Yl={recommended_plan_handle:"",recommended_plan_name:""};function TO(e){let{strategy:n,planOverride:r,currentPlanHandle:o,plans:t}=e;if(t.length===0)return Yl;if(n==="custom"){let c=r??"";if(c===""||c===o)return Yl;let u=t.find(d=>d.unique_handle===c);return u?{recommended_plan_handle:u.unique_handle,recommended_plan_name:u.name}:Yl}if(o==="")return Yl;let i=ah(o,t);if(i===null)return Yl;let s=t.find(c=>c.unique_handle===i);return {recommended_plan_handle:i,recommended_plan_name:s?.name??i}}var KS="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Ap=KS.length,AZ=Ap-1,DZ=10,Up=16;function FZ(e){let n=e,r="";for(let o=0;o<DZ;o+=1){let t=n%Ap;r=KS[t]+r,n=Math.floor(n/Ap);}return r}function $O(){let e=new Uint8Array(Up);crypto.getRandomValues(e);let n=new Array(Up);for(let r=0;r<Up;r+=1)n[r]=e[r]%Ap;return n}function NZ(e){for(let n=e.length-1;n>=0;n-=1){if(e[n]<AZ)return e[n]+=1,true;e[n]=0;}return false}function wO(){let e=-1,n=[];return {next(r=Date.now()){r<=e&&n.length===Up?NZ(n)||(e+=1,n=$O()):(e=r,n=$O());let o=FZ(e);for(let t=0;t<n.length;t+=1)o+=KS[n[t]];return o}}}var GS=wO();var LZ=new Set([408,429,500,502,503,504]);function BZ(e){return new Promise(n=>setTimeout(n,e))}async function JS(e,n={}){let r=n.retries??2,o=n.baseDelayMs??200,t=n.sleep??BZ,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(!LZ.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 WS(){return {created:0,dropped:0,redacted:0,sampled:0,deduped:0,queued:0,sent:0,failed:0}}function RO(){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 h=u.get(f.target);!h||h.fired||(f.isIntersecting?h.minVisibleMs<=0?r(g,f.target,h,"viewport"):h.timer===null&&(h.timer=setTimeout(()=>r(g,f.target,h,"viewport"),h.minVisibleMs)):h.timer!==null&&(clearTimeout(h.timer),h.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 XS=RO();var jO=new Set(_p.options);function vre(e,n){return Np(n,"defineUiPathResolvers(resolvers)")}function Np(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 ys(e){return e?.playbook??e?.exportedConfig}function yre(e){return {...e,runtimeMode:"revturbine_server"}}function xre(e){return {...e,runtimeMode:"custom_endpoints",endpointOverrides:e.endpointOverrides}}function VZ(e){let n=Np(e.uiPathResolvers,"createLocalRuntimeConfig(uiPathResolvers)");return {...e,runtimeMode:"local_only",localRuntime:e.localRuntime,uiPathResolvers:n}}function Sre(e){return VZ(e)}function Ire(e,n,r={}){return {slotId:e,surfaceType:n,entitlementHandle:r.entitlementHandle,planHandle:r.planHandle,placementHandle:r.placementHandle}}function Pre(e,n={}){return {entitlementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,planHandle:n.planHandle,placementHandle:n.placementHandle}}function kre(e,n={}){return {placementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,entitlementHandle:n.entitlementHandle,planHandle:n.planHandle}}function Ki(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function Tre(e,n,r,o={}){return {userId:e,placementId:n,interactionType:r,treatmentId:o.treatmentId,interactionAt:o.interactionAt,metadata:o.metadata}}function $re(e,n,r){return {eventType:e,payload:n,options:r}}var CO="revturbine:sdk-route-change",YS="sdk_validation_warning",MZ="revturbine:decision-cache",ZZ="revturbine:interaction-state",qZ="revturbine:presentation-caps",HZ="/api/track",KZ="/api/sdk/meta",GZ="/api/events/interactions",JZ="/api/placements/interactions",WZ="revturbine-web-sdk",EO="user_context_observed",XZ=20,YZ=5e3;function QZ(e,n){let r=e[n];if(typeof r=="string"&&r.trim().length>0)return r;let o=UO(e);if(o){let t=o[n];if(typeof t=="string"&&t.trim().length>0)return t}return null}function UO(e){return re(e.payload)?e.payload:null}var eq=["surface_slot_id","placement_id","payload_id","experiment_id","variant_key"];function tq(e){let n={};for(let r of eq)n[r]=QZ(e,r);return n}function nq(e){return th(e,iI(8))}async function zO(e){let n=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Jm(new Uint8Array(n))}function iI(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 sn(){return typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${iI(16)}`}function Dp(){return Ha()?{}:{url:window.location.href,title:document.title,referrer:document.referrer||void 0}}function OO(){return {id:void 0,custom:{},entitlements:{},usage:{},personalization:{}}}function rq(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 Sx(e,r)}function iq(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 eI=class{constructor(n){z(this,"exportedConfig");this.exportedConfig=n;}getExportedConfig(){return this.exportedConfig}},tI=class{constructor(n,r,o){z(this,"cached");z(this,"resolver");z(this,"legacyTargetDefaults");this.resolver=n,this.cached=o,this.legacyTargetDefaults=r;}getExportedConfig(){return this.cached}async refresh(){let n=_i(await this.resolver(),"localRuntime.resolvers.resolveExportedConfig()",this.legacyTargetDefaults);return n&&(this.cached=n),this.cached}},nI=class{constructor(n,r){z(this,"source");z(this,"legacyTargetDefaults");this.source=n,this.legacyTargetDefaults=r;}getExportedConfig(){return _i(this.source.getExportedConfig(),"configProvider.getExportedConfig()",this.legacyTargetDefaults)}async refresh(){let n=await this.source.refresh?.();return _i(n??this.source.getExportedConfig(),"configProvider.refresh()",this.legacyTargetDefaults)}},rI=class{constructor(n){z(this,"tenantId");z(this,"apiKey");z(this,"ingestPublicKey");z(this,"environmentId");z(this,"analyticsEnabled");z(this,"anonymousTelemetryEnabled");z(this,"telemetryConsent");z(this,"telemetryCounters",WS());z(this,"maxBatchSize");z(this,"flushIntervalMs");z(this,"flushTimer");z(this,"batchingTeardown",[]);z(this,"anonTelemetryNoticeShown",false);z(this,"piiRedactionWarned",false);z(this,"endpoint");z(this,"runtimeMode");z(this,"endpointOverrides");z(this,"localRuntime");z(this,"localStorageKey");z(this,"mode");z(this,"policy");z(this,"extensionEnabled");z(this,"placementBehavior");z(this,"providerFailureSlotBehavior");z(this,"uiPathResolvers");z(this,"persistentStore");z(this,"sessionStore");z(this,"anonymousId");z(this,"sessionId");z(this,"decisionCache",new Map);z(this,"interactionState",new Map);z(this,"interactionQueue",[]);z(this,"defaultDecisionTtlMs",6e4);z(this,"defaultDismissCooldownMs",1440*60*1e3);z(this,"defaultRemindLaterMs",3600*1e3);z(this,"defaultUsageWarningPercent",80);z(this,"defaultTrialExpiringDays",3);z(this,"events",[]);z(this,"placements",new Map);z(this,"syncedSurfaceSlotIds",new Set);z(this,"userContext");z(this,"pageContext");z(this,"usageBalances",{});z(this,"localDecisionsByPlacementId",new Map);z(this,"localPlacementsByLookupKey",new Map);z(this,"localEntitlementsByHandle",new Map);z(this,"localUserContextsByUserId",new Map);z(this,"localTrialStatus",{in_trial:false});z(this,"presentationCapsByKey",new Map);z(this,"usageLimitByEntitlement",new Map);z(this,"usageTokenPrefixByEntitlement",new Map);z(this,"segmentIdsByPredicateField",new Map);z(this,"configuredSegmentsById",new Map);z(this,"dirtySegmentIds",new Set);z(this,"segmentMembershipBySegmentId",new Map);z(this,"segmentMembershipUserId");z(this,"lastTrialTriggerStage","none");z(this,"configProvider");z(this,"branding");z(this,"apiBranding");z(this,"defaultLocalPlacementDecisionResolver");z(this,"sdkDisabledByProviderFailure",false);z(this,"sdkDisabledReason");z(this,"providerRegistry");z(this,"placementTypeRegistry");z(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??XZ),this.flushIntervalMs=Math.max(0,n.eventBatching?.flushIntervalMs??YZ),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=Np(n.uiPathResolvers,"RevTurbineInitOptions.uiPathResolvers"),this.persistentStore=Fi(n.persistentStorage),this.sessionStore=eS(n.sessionStorage),this.userContext={usage:{},...this.policy.inferUser?OO():{},...n.user||{}},this.pageContext={...this.policy.inferPage?Dp():{},...n.page||{},tags:hc(n.page?.tags)},this.anonymousId=this.resolveAnonymousId(),this.sessionId=sn(),this.providerRegistry=new _l,this.placementTypeRegistry=new jo,this.impressionHistory=new Gx({store:new up({storage:this.persistentStore,tenantId:this.tenantId}),userId:this.userContext.id??this.anonymousId}),_s(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(),Fn()&&this.policy.routerAutoTrack&&this.installRouteTracking(),Fn()&&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 nI(n.configProvider,r);let o=_i(ys(n.localRuntime),"localRuntime.playbook",r),t=n.localRuntime?.resolvers?.resolveExportedConfig;if(t)return new tI(t,r,o);if(o)return new eI(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 Po({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=ei(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,h=typeof g.limit=="number"?g.limit:0,P=h>0?Math.max(0,h-f):0;u[p]={used:f,limit:h,remaining:P,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 Qm(n,r,o)}buildTargetingState(n){return ep(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 Fn()?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:sn(),visible:o,decisionSource:"fallback",reasonCodes:["sdk_disabled_provider_failure"],suppressionReason:o?void 0:"sdk_disabled_provider_failure",content:Ki(t,i,o?"Retry later":"Continue")}}disabledPlacementOutputForConfig(n){if(this.providerFailureSlotBehavior!=="placeholder")return null;let r=`disabled_output_${sn()}`,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 Px(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 oh(n,r.planHandle)}applyCategoryConflictSuppression(n){return Xm(n)}resolveLocalPlacementFromCandidates(n,r){return Tx(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=ih(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 `${MZ}:${this.tenantId}:${this.anonymousId}`}interactionStateStorageKey(){return `${ZZ}:${this.tenantId}:${this.anonymousId}`}presentationCapsStorageKey(){return `${qZ}:${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=re(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=>re(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(!re(s))continue;let c=typeof s.entitlement_id=="string"?s.entitlement_id:typeof s.entitlementId=="string"?s.entitlementId:"";if(!c)continue;let u=re(s.type_fields)?s.type_fields:re(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=sh(g),h=f&&!ch(f)?f:Go(p||c);h&&(this.usageTokenPrefixByEntitlement.set(c,h),p&&this.usageTokenPrefixByEntitlement.set(p,h));let P=Number(u.limit_value??u.allowance??u.limit);if(!Number.isFinite(P)||P<=0||!this.ruleTargetsActivePlan(s,r))continue;let x=Number(s.warning_threshold_percent??s.warning_percentage??u.warning_threshold_percent??u.warning_percentage),w=Number.isFinite(x)&&x>0?Math.min(100,x):this.defaultUsageWarningPercent;this.usageLimitByEntitlement.set(c,{limit:P,warningPercent:w}),p&&this.usageLimitByEntitlement.set(p,{limit:P,warningPercent:w});}}recalculateDerivedUsageTraits(){let n=this.getConfiguredExportedConfig();this.hydrateUsageLimitRulesFromExportedConfig();let r=Cx({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 TO({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=mo(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={...ei(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)??Go(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 Wx({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 el({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=mo(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??{},...ei(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(P=>P.handle===g);if(!f){this.segmentMembershipBySegmentId.delete(g);continue}let h=tl([f],m).length>0;this.segmentMembershipBySegmentId.set(g,h);}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(W=>{let J=Array.isArray(W.predicates)?W.predicates.map(ie=>rq(ie,o.traits)):[],fe=J.length>0?J.every(ie=>ie.matched):c.has(W.handle);return {segmentId:W.handle,...W.name?{segmentName:W.name}:{},matched:fe,predicates:J}}),d=new Map,m=new Map;if(Array.isArray(s?.entitlements))for(let W of s.entitlements){let J=Mt(W.unique_handle),fe=J;fe&&J&&d.set(fe,J);let ie=Mt(W.type);fe&&ie&&m.set(fe,ie);}let p=new Map;if(Array.isArray(s?.plans))for(let W of s.plans){let J=Mt(W.unique_handle),fe=J;fe&&J&&p.set(fe,J);}let f=(Mt(o.plan,o.traits.plan,o.traits.plan_handle,o.traits.plan_id)??"").toLowerCase(),h=new Map;if(Array.isArray(s?.segments))for(let W of s.segments){let J=Mt(W.handle),fe=Mt(W.dimension_id);J&&fe&&h.set(J,fe);}let P=Array.isArray(s?.entitlement_rules)?s.entitlement_rules.map((W,J)=>{let fe=Mt(W.id)??`entitlement_rule_${J}`,ie=Mt(W.entitlement_id),at=ie?d.get(ie):void 0,Re=Array.isArray(W.targets)?W.targets.filter(se=>se.kind==="plan").map(se=>se.id):[],X=Re.map(se=>p.get(se)??se),_t=Array.isArray(W.segment_ids)?W.segment_ids.filter(se=>typeof se=="string"):[],st=re(W.type_fields)?W.type_fields:{},Ke=Mt(st.kind),ge=!f||Re.some(se=>se.toLowerCase()===f),ot=iq(_t,c,h),un=ge&&ot,G=at?t[at]:ie?t[ie]:void 0,ee=un?G?.status??"unknown":"unknown",Ae;if(un)switch(Ke){case "feature":Ae=st.enabled===false?"disables feature":"grants access";break;case "capability_tier":{let se=Mt(st.tier_name);Ae=se?`unlocks ${se} tier`:"unlocks capability tier";break}case "usage_limit":{let se=typeof st.limit_value=="number"?st.limit_value:void 0,Tt=Mt(st.unit)??"",pn=Mt(st.period)??"",Ho=pn?` / ${pn.replace("per_","")}`:"";Ae=se!=null?`sets limit to ${se.toLocaleString()}${Tt?` ${Tt}`:""}${Ho}`:"sets usage limit";break}case "credits":{let se=typeof st.allowance=="number"?st.allowance:void 0,Tt=Mt(st.unit)??"credits",pn=Mt(st.period)??"",Ho=pn?` / ${pn.replace("per_","")}`:"";Ae=se!=null?`grants ${se.toLocaleString()} ${Tt}${Ho}`:"grants credit allowance";break}case "seat":{let se=typeof st.included_seats=="number"?st.included_seats:void 0;Ae=se!=null?`includes ${se} seat${se===1?"":"s"}`:"includes seats";break}default:if(ie){let se=m.get(ie);se==="feature"?Ae="grants access":se&&(Ae=`${se.replace(/_/g," ")} entitlement`);}break}return {ruleId:fe,...ie?{entitlementId:ie}:{},...at?{entitlementHandle:at}:{},...Ke?{kind:Ke}:{},planScopes:X,planIds:Re,..._t.length>0?{segmentIds:_t}:{},matchesPlan:ge,matchesSegment:ot,matched:un,outcome:ee,...Ae?{outcomeDescription:Ae}:{},...G?.reason?{reason:G.reason}:{}}}):[],x=Mt(r.output?.output_id),w=this.placements.get(n.placementId),S=Mt(w?.name)??"",E=Array.isArray(w?.metadata?.surface_template_ids)?w.metadata.surface_template_ids:[],I=[],$=new Set;if(Array.isArray(s?.placements))for(let W of s.placements){if(!W||typeof W!="object")continue;let J=Mt(W.id)??"",fe=Mt(W.name)??"";if($.has(J))continue;let ie=Mt(r.output?.rule_id);if(ie&&J===ie){$.add(J),I.push(W);continue}if(S&&(J===S||fe===S||J===`pl_${S}`||fe===`pl_${S}`)){$.add(J),I.push(W);continue}E.length>0&&(W.payloads??[]).some(X=>(X.surfaces??[]).some(st=>{let Ke=Mt(st.template_id);return Ke?E.includes(Ke):false}))&&($.add(J),I.push(W));}let B=I.flatMap(W=>(W.payloads??[]).map(fe=>{let ie=fe.target,at=ie?.plan_ids??[],Re=at.map(G=>p.get(G)??G),X=ie?.segment_chips??[],st=(fe.surfaces??[]).map(G=>Mt(G.template_id)).filter(G=>typeof G=="string"),Ke=at.length===0||!f||at.some(G=>G.toLowerCase()===f),ge=X.length===0||X.some(G=>c.has(G)),ot="active",un=ot==="active"&&Ke&≥return {payloadId:String(fe.id??""),placementId:String(W.id??""),placementName:String(W.name??""),status:ot,planIds:at,planScopes:Re,segmentChips:X,surfaceTemplateIds:st,matchesPlan:Ke,matchesSegment:ge,eligible:un,selected:!!x&&x===String(fe.id??"")}})),ce=r.output?this.extractPlacementCapPolicies(r.output).flatMap(W=>W.rules.length===0&&W.cooldownMs===void 0?[]:W.rules.length===0?[{count:0,period:"session",cooldownMs:W.cooldownMs}]:W.rules.map(J=>({count:J.count,period:J.period,...W.cooldownMs!==void 0?{cooldownMs:W.cooldownMs}:{}}))):[],me={ruleId:r.output?.rule_id,decisionId:r.output?.decision_id,category:r.output?.category,suppressionReason:r.suppressionReason,reasonCodes:r.reasonCodes,capPolicies:ce};return {generatedAt:new Date().toISOString(),input:n,decision:r,targeting:o,policy:i,entitlements:t,segments:u,entitlementRules:P,eligiblePayloads:B,placementRules:me}}usageThresholdForEntitlement(n){return yx(n,this.usageLimitByEntitlement,this.localEntitlementsByHandle,this.usageBalances,this.defaultUsageWarningPercent)}evaluateUsageThresholdCrossings(n,r){return Ex(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 zx(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=sn();return this.persistentStore.setItem(n,o),o}catch{return sn()}}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(Ha())return;let n=window.history;if(n.__rtPatched)return;let r=()=>{window.dispatchEvent(new CustomEvent(CO,{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(CO,i=>{let s=i.detail;this.onRouteChange({path:s.path,title:s.title,tags:s.tags});}),n.__rtPatched=true;}mergeUserContext(n){return Rx(this.userContext,n)}mergePageContext(n){return {...this.pageContext,...n,tags:hc(n.tags||this.pageContext.tags)}}collectPageContextIssues(){let n=[],r={...this.policy.inferPage?Dp():{},...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(!re(n))return r.push({code:"invalid_event_payload",reason:"Event payload must be a plain object."}),r;let o=UO(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(YS,{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:re(o)?o:null})}toEventEnvelope(n,r){let o={...this.policy.inferPage?Dp():{},...this.pageContext},t=o.url||(Fn()?window.location.href:""),i=(()=>{try{return new URL(t).pathname}catch{return Fn()?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||(Fn()?document.title:""),event_time:new Date().toISOString(),anonymous_id:this.anonymousId,user_id:this.userContext.id||null,session_id:this.sessionId,tags:hc(o.tags),identity:{tenant_id:this.tenantId,user_id:this.userContext.id||null,anonymous_id:this.anonymousId,traits:n===EO?{}:{...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()&&Fn()}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 zO(i)).slice(0,64),u={events:[{event_type:n,occurred_at:new Date().toISOString(),request_id:sn(),config_hash_id:s,sdk_version:sO,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",KZ),{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=rz(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=sn(),s=o.map(m=>{let p=m.user_id||m.anonymous_id,g=Yx(this.userContext.account_id||p),f=Xx({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:WZ});return r+=f.redactions+(g.redacted?1:0),{environment_id:this.environmentId,user_id:p,account_id:g.value,event_name:sd(m.type).slice(0,120),event_ts:m.event_time,properties:JSON.stringify(f.value),...tq(m.properties),event_id:GS.next(),request_id:sn(),tenant_id:m.tenant_id}});r>0&&this.warnPiiRedactedOnce();let c=this.endpointFor("ingestEvents",HZ),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 JS(()=>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=sd(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}=Qx(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(!Fn()||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=re(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(EO,{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(Dp());}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=re(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:Ki(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 Ix({tenantId:this.tenantId,placementName:n.placementName,placementScopeKey:n.placementScopeKey,pageRoute:n.normalizedPageRoute||this.currentPathname()},{sha256Base64Url:zO,randomHex:iI})}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:re(n.metadata)?n.metadata:void 0})}async upsertSurfaceSlot(n){if(this.isLocalOnlyMode())return;let r=sn(),o=this.endpointFor("surfaceSlots","/api/placements").replace(/\/+$/,""),t=nq(n.placementScopeKey||n.id||n.name),i={...re(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=Ko(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&&!re(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:{...re(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=>aq(i)).filter(i=>i!==null);if(r.length===0)return;let o=sn(),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 vi(n)}decisionCacheKey(n,r){return kx({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 GE({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 JE(n)}placementCapKey(n){return [this.tenantId,this.userContext.id||this.anonymousId,n.surface.type,n.output_id].join(":")}extractPlacementCapPolicies(n){return Ym(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=wx(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 $x(n,r,o,t)}async getPlacementDecision(n){let r=this.placements.get(n.placementId),o=sn();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:Ki("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:Ki(`${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}:{}},h=this.gateDecisionByCaps(await p(n,r,f));return this.localDecisionsByPlacementId.set(n.placementId,h),this.writeDecisionCache(d,h,n.ttlMs),this.persistLocalRuntimeState(),h}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(h=>({entitlement_id:h.entitlementId,meter_id:h.meterId,used:h.used}))}:void 0,traits:n.traits,context:{user:this.userContext,page:this.pageContext,placement:r}})});if(!p.ok)throw new Error(`decide-context failed: ${p.status}`);let 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=sn();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=re(s)&&Array.isArray(s.decisions)?s.decisions:[];for(let u of c){if(!re(u))continue;let d=typeof u.placement_id=="string"?u.placement_id:"",m=re(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",GZ),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":sn()},body:JSON.stringify(r.length===1?r[0]:r)})).ok||(await fetch(this.endpointFor("legacyInteractions",JZ),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":sn()},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=sn();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:Ki(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:Ki("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:Ki(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:Ki(`${o.name} treatment`,"Fallback treatment active while decision endpoint is unavailable.","Continue")}}}normalizePlacementOutput(n){let r=Yc(n,sn);return r&&re(n)&&typeof n.decision_id!="string"&&this.capture(YS,{reason:"placement response missing decision_id; generated synthetic",output_id:r.output_id,synthetic_decision_id:r.decision_id}),r}normalizeEntitlementResult(n){return vx(n,sn)}validateTrialStatusShape(n){return ph(n)}async getPlacement(n){if(this.isDisabledByProviderFailure())return this.disabledPlacementOutputForConfig(n);let r=n.slotId,o=n.surfaceType;if(o&&!jO.has(o))return this.capture(YS,{reason:`getPlacement called with unknown surfaceType: ${String(o)}`,slot_id:r??null}),null;let t=sn();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=sn();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=sn();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:re(t.traits)?t.traits:{},plan:typeof t.plan=="string"?t.plan:void 0,usage:re(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=sn();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}=ad({...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:re(r)&&Array.isArray(r.content_ui_paths)?r.content_ui_paths:[],t=n.includeProviderHandlers??true,i=Np(n.resolvers,"validateUiPathResolvers(options.resolvers)"),s={...this.uiPathResolvers,...i};if(t&&this.providerRegistry.has("cta"))try{let m=await this.providerRegistry.resolveAll();re(m.cta)&&re(m.cta.handlers)&&Object.assign(s,m.cta.handlers);}catch{}let c=[],u=0;for(let m of o){let p=re(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=re(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=(re(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_dismissed",{output_id:n,user_id:this.userContext.id??null,dismissed_at:new Date().toISOString()},{immediate:false});}async snooze(n,r=3600){await this.emitSemantic("placement_snoozed",{output_id:n,user_id:this.userContext.id??null,snoozed_at:new Date().toISOString(),remind_after_seconds:r},{immediate:false});}async convert(n){await this.emitSemantic("placement_converted",{output_id:n,user_id:this.userContext.id??null,converted_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,...ei(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?OO():{},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:`${Fn()?window.location.origin:""}${n.path}`,title:n.title,tags:n.tags}),this.capture("page_view",{source:"router_auto_track",path:n.path});}};function Ql(e){let n=oq(e),r=new rI(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 h=0;h<t.length;h+=1){let x=t[h][m];if(x){f.push(h);try{return await x(...p)}catch(w){let S=t.slice(h+1).some(E=>typeof E[m]=="function");console.warn(h===0&&S?`[RevTurbine] Primary provider ${m} failed; trying configured fallbacks.`:`[RevTurbine] Provider ${m} failed at chain index ${h}.`,w);}}}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 h=t[f];if(h.identify){g+=1;try{h.identify(m,p);return}catch(P){let x=t.slice(f+1).some(w=>typeof w.identify=="function");console.warn(f===0&&x?"[RevTurbine] Primary provider identify failed; trying configured fallbacks.":`[RevTurbine] Provider identify failed at chain index ${f}.`,P);}}}if(g>0){r.disableForProviderFailure("provider_identify_chain_failed"),d(m,p);return}d(m,p);},r}var Fp={tenantId:"local",apiKey:"local-only",endpoint:"https://api.revturbine.local",mode:"react"};function QS(e){return typeof e=="string"&&e.trim().length>0}function oq(e){return ys(e.localRuntime)!==void 0?{...e,tenantId:QS(e.tenantId)?e.tenantId:Fp.tenantId,apiKey:QS(e.apiKey)?e.apiKey:Fp.apiKey,endpoint:QS(e.endpoint)?e.endpoint:Fp.endpoint,mode:e.mode??Fp.mode,runtimeMode:e.runtimeMode??"local_only"}:e}function aq(e){if(!re(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||!jO.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:Ql});var sq="revturbine:theme";function oI(e){return `${sq}:${e}`}function cq(e,n){try{let r=n.getItem(oI(e));if(!r)return null;let o=JSON.parse(r);return typeof o!="object"||o===null?null:o}catch{return null}}function lq(e,n,r){try{r.setItem(oI(e),JSON.stringify(n));}catch{}}function AO(e,n){let r=n??Fi();try{r.removeItem(oI(e));}catch{}}async function xs(e,n){let{tenantId:r,endpoint:o,apiKey:t}=e,i=e.storage??Fi(),s=cq(r,i),c=ui(s);return uq(o,r,t).then(u=>{u&&(s?.version&&u.version===s.version||(lq(r,u,i),n?.(ui(u))));}).catch(()=>{}),c}async function uq(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 Ss=class{constructor(n,r){z(this,"sdk");z(this,"options");z(this,"listeners",new Set);z(this,"_placementId","");z(this,"_decision",null);z(this,"_isLoading",false);z(this,"_error","");z(this,"_impressionTracked",false);z(this,"_loadSeq",0);z(this,"_exposed",false);z(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}}markVisible(n="viewport"){this._exposed||(this._exposed=true,this._exposureBasis=n,this.notify());}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});return o!==this._loadSeq?this._decision:(this._decision=t,t.visible&&!this._impressionTracked&&(n.autoTrackImpression??!0)&&(this._impressionTracked=!0,await this.sdk.trackTreatmentInteraction({userId:r,placementId:this._placementId,interactionType:"impression",surfaceSlotId:t.output?.surface?.slot_id,surfaceTemplateId:t.output?.surface?.template,payloadId:t.output?.output_id,metadata:{decision_source:t.decisionSource}})),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._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._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();}},Is=class{constructor(n,r){z(this,"sdk");z(this,"options");z(this,"listeners",new Set);z(this,"_isLoading",false);z(this,"_error",null);z(this,"_result",null);z(this,"_gatedPlacement",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,!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()}onChange(n){return this.listeners.add(n),()=>{this.listeners.delete(n);}}notify(){for(let n of this.listeners)n();}},Lp=class{constructor(n,r){z(this,"sdk");z(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 Ss(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 Is(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 dq(e){let{bootstrapPlacements:n,...r}=e,o=r,t=Ql(o),i=o.user;i&&typeof i=="object"&&i.id&&t.identify(i.id,i);let s=wn,u=ys(o.localRuntime)?.theme;if(u&&typeof u=="object"?s=ui(u):s=await xs({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 Lp(t,s)}var mq=/\{[^{}]+\}/g,pq=()=>typeof process=="object"&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function fq(){return Math.random().toString(36).slice(2,11)}function LO(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=pq()?u:void 0,n=NO(n);let m=[];async function p(g,f){let{baseUrl:h,fetch:P=o,Request:x=r,headers:w,params:S={},parseAs:E="json",querySerializer:I,bodySerializer:$=i??hq,pathSerializer:B,body:ce,middleware:me=[],...W}=f||{},J=n;h&&(J=NO(h)??n);let fe=typeof t=="function"?t:DO(t);I&&(fe=typeof I=="function"?I:DO({...typeof t=="object"?t:{},...I}));let ie=B||s||gq,at=ce===void 0?void 0:$(ce,FO(c,w,S.header)),Re=FO(at===void 0||at instanceof FormData?{}:{"Content-Type":"application/json"},c,w,S.header),X=[...m,...me],_t={redirect:"follow",...d,...W,body:at,headers:Re},st,Ke,ge=new x(bq(g,{baseUrl:J,params:S,querySerializer:fe,pathSerializer:ie}),_t),ot;for(let ee in W)ee in ge||(ge[ee]=W[ee]);if(X.length){st=fq(),Ke=Object.freeze({baseUrl:J,fetch:P,parseAs:E,querySerializer:fe,bodySerializer:$,pathSerializer:ie});for(let ee of X)if(ee&&typeof ee=="object"&&typeof ee.onRequest=="function"){let Ae=await ee.onRequest({request:ge,schemaPath:g,params:S,options:Ke,id:st});if(Ae)if(Ae instanceof x)ge=Ae;else if(Ae instanceof Response){ot=Ae;break}else throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}if(!ot){try{ot=await P(ge,u);}catch(ee){let Ae=ee;if(X.length)for(let se=X.length-1;se>=0;se--){let Tt=X[se];if(Tt&&typeof Tt=="object"&&typeof Tt.onError=="function"){let pn=await Tt.onError({request:ge,error:Ae,schemaPath:g,params:S,options:Ke,id:st});if(pn){if(pn instanceof Response){Ae=void 0,ot=pn;break}if(pn instanceof Error){Ae=pn;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(Ae)throw Ae}if(X.length)for(let ee=X.length-1;ee>=0;ee--){let Ae=X[ee];if(Ae&&typeof Ae=="object"&&typeof Ae.onResponse=="function"){let se=await Ae.onResponse({request:ge,response:ot,schemaPath:g,params:S,options:Ke,id:st});if(se){if(!(se instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");ot=se;}}}}let un=ot.headers.get("Content-Length");if(ot.status===204||ge.method==="HEAD"||un==="0"&&!ot.headers.get("Transfer-Encoding")?.includes("chunked"))return ot.ok?{data:void 0,response:ot}:{error:void 0,response:ot};if(ot.ok)return {data:await(async()=>{if(E==="stream")return ot.body;if(E==="json"&&!un){let Ae=await ot.text();return Ae?JSON.parse(Ae):void 0}return await ot[E]()})(),response:ot};let G=await ot.text();try{G=JSON.parse(G);}catch{}return {error:G,response:ot}}return {request(g,f,h){return p(f,{...h,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 h=m.indexOf(f);h!==-1&&m.splice(h,1);}}}}function Bp(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 BO(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(Bp(c,n[s],r));}let i=o.join(t);return r.style==="label"||r.style==="matrix"?`${t}${i}`:i}function VO(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(Bp(e,i,r));return r.style==="label"||r.style==="matrix"?`${o}${t.join(o)}`:t.join(o)}function DO(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(VO(t,i,{style:"form",explode:true,...e?.array,allowReserved:e?.allowReserved||false}));continue}if(typeof i=="object"){o.push(BO(t,i,{style:"deepObject",explode:true,...e?.object,allowReserved:e?.allowReserved||false}));continue}o.push(Bp(t,i,e));}}return o.join("&")}}function gq(e,n){let r=e;for(let o of e.match(mq)??[]){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,VO(t,c,{style:s,explode:i}));continue}if(typeof c=="object"){r=r.replace(o,BO(t,c,{style:s,explode:i}));continue}if(s==="matrix"){r=r.replace(o,`;${Bp(t,c)}`);continue}r=r.replace(o,s==="label"?`.${encodeURIComponent(c)}`:encodeURIComponent(c));}return r}function hq(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 bq(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 FO(...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 NO(e){return e.endsWith("/")?e.substring(0,e.length-1):e}function _q(e){let n={...e.headers};return e.tenantId&&(n["x-rt-tenant-id"]=e.tenantId),e.token&&(n.Authorization=`Bearer ${e.token}`),LO({baseUrl:e.baseUrl,headers:n})}var aI=class extends Error{constructor(r,o){super(o);z(this,"status",r);this.name="ApiError";}};var sI=class extends QE{constructor(r){let{exportedConfig:o,environmentId:t,...i}=r,s=_i(o,"BrowserRuntime.exportedConfig",{tenantId:r.tenantId,environmentId:t??"default"});if(!s)throw new Error("BrowserRuntime requires exportedConfig");let c=Fi(r.storage),u=new up({storage:c,tenantId:r.tenantId,maxRecords:r.maxImpressionRecords});super({...i,exportedConfig:s,storage:c,impressionStore:u});z(this,"_hydratePromise");let d=r.autoHydrate??true;this._hydratePromise=d?this.hydrate():null;}async ready(){this._hydratePromise&&await this._hydratePromise;}};var vq=new Set(["tenant_id","user_id","anonymous_id","session_id","url","path","page_title","event_time"]);function yq(e){let n={};for(let[r,o]of Object.entries(e.properties))n[vq.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 cI=class{constructor(n){z(this,"name");z(this,"handler");z(this,"transform");z(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=yq(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 MO(e){let n=new cI(e);return {domain:"events",resolve:()=>({consumers:[n]})}}function xq(e){let{posthog:n,filter:r,transform:o,name:t}=e;return MO({name:t??"posthog",filter:r,transform:o,handler:(i,s)=>{n.capture(i,s);}})}var ZO=["banner_placement"],qO=["banner_placement","in_page_card"],HO=["toast_message"],KO=["modal_overlay"];var eu=["banner_placement","in_page_card","usage_counter","button"],tu=["modal_overlay","inline_gate_message"],nu=["toast_message","modal_overlay","banner_placement"];function ru(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}var Vp=class{constructor(n){z(this,"tenantId");z(this,"apiKey");z(this,"endpoint");z(this,"defaultTtlSeconds");z(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=ru(),o=n.anonymousId??ru(),[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=ru(),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=ru(),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=ru();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={};fn(l,{$brand:()=>uI,$input:()=>Ek,$output:()=>Ck,NEVER:()=>lI,TimePrecision:()=>Uk,ZodAny:()=>PT,ZodArray:()=>wT,ZodBase64:()=>hg,ZodBase64URL:()=>bg,ZodBigInt:()=>ec,ZodBigIntFormat:()=>yg,ZodBoolean:()=>Qs,ZodCIDRv4:()=>fg,ZodCIDRv6:()=>gg,ZodCUID:()=>sg,ZodCUID2:()=>cg,ZodCatch:()=>WT,ZodCodec:()=>Uu,ZodCustom:()=>Au,ZodCustomStringFormat:()=>Xs,ZodDate:()=>Cu,ZodDefault:()=>ZT,ZodDiscriminatedUnion:()=>CT,ZodE164:()=>_g,ZodEmail:()=>ig,ZodEmoji:()=>og,ZodEnum:()=>Js,ZodError:()=>Y8,ZodExactOptional:()=>BT,ZodFile:()=>NT,ZodFirstPartyTypeKind:()=>l$,ZodFunction:()=>a$,ZodGUID:()=>ku,ZodIPv4:()=>mg,ZodIPv6:()=>pg,ZodISODate:()=>Yf,ZodISODateTime:()=>Xf,ZodISODuration:()=>eg,ZodISOTime:()=>Qf,ZodIntersection:()=>ET,ZodIssueCode:()=>eK,ZodJWT:()=>vg,ZodKSUID:()=>dg,ZodLazy:()=>r$,ZodLiteral:()=>FT,ZodMAC:()=>bT,ZodMap:()=>AT,ZodNaN:()=>YT,ZodNanoID:()=>ag,ZodNever:()=>TT,ZodNonOptional:()=>Tg,ZodNull:()=>ST,ZodNullable:()=>MT,ZodNumber:()=>Ys,ZodNumberFormat:()=>Mo,ZodObject:()=>zu,ZodOptional:()=>kg,ZodPipe:()=>ju,ZodPrefault:()=>HT,ZodPreprocess:()=>QT,ZodPromise:()=>o$,ZodReadonly:()=>e$,ZodRealError:()=>Qn,ZodRecord:()=>Gs,ZodSet:()=>DT,ZodString:()=>Ws,ZodStringFormat:()=>Pt,ZodSuccess:()=>JT,ZodSymbol:()=>yT,ZodTemplateLiteral:()=>n$,ZodTransform:()=>LT,ZodTuple:()=>OT,ZodType:()=>je,ZodULID:()=>lg,ZodURL:()=>Ru,ZodUUID:()=>Yr,ZodUndefined:()=>xT,ZodUnion:()=>Ou,ZodUnknown:()=>kT,ZodVoid:()=>$T,ZodXID:()=>ug,ZodXor:()=>RT,_ZodString:()=>rg,_default:()=>qT,_function:()=>UU,any:()=>mU,array:()=>Eu,base64:()=>J1,base64url:()=>W1,bigint:()=>sU,boolean:()=>vT,catch:()=>XT,check:()=>AU,cidrv4:()=>K1,cidrv6:()=>G1,clone:()=>Bn,codec:()=>EU,coerce:()=>u$,config:()=>tn,core:()=>fi,cuid:()=>N1,cuid2:()=>L1,custom:()=>DU,date:()=>fU,decode:()=>uT,decodeAsync:()=>mT,describe:()=>FU,discriminatedUnion:()=>yU,e164:()=>X1,email:()=>R1,emoji:()=>D1,encode:()=>lT,encodeAsync:()=>dT,endsWith:()=>Fs,enum:()=>Ig,exactOptional:()=>VT,file:()=>$U,flattenError:()=>du,float32:()=>rU,float64:()=>iU,formatError:()=>mu,fromJSONSchema:()=>qU,function:()=>UU,getErrorMap:()=>nK,globalRegistry:()=>xn,gt:()=>Wr,gte:()=>Mn,guid:()=>C1,hash:()=>nU,hex:()=>tU,hostname:()=>eU,httpUrl:()=>A1,includes:()=>As,instanceof:()=>LU,int:()=>tg,int32:()=>oU,int64:()=>cU,intersection:()=>zT,invertCodec:()=>zU,ipv4:()=>Z1,ipv6:()=>H1,iso:()=>Ks,json:()=>VU,jwt:()=>Y1,keyof:()=>gU,ksuid:()=>M1,lazy:()=>i$,length:()=>Bo,literal:()=>TU,locales:()=>yu,looseObject:()=>_U,looseRecord:()=>SU,lowercase:()=>js,lt:()=>Jr,lte:()=>lr,mac:()=>q1,map:()=>IU,maxLength:()=>Lo,maxSize:()=>eo,meta:()=>NU,mime:()=>Ns,minLength:()=>pi,minSize:()=>Xr,multipleOf:()=>Qi,nan:()=>CU,nanoid:()=>F1,nativeEnum:()=>kU,negative:()=>Bf,never:()=>xg,nonnegative:()=>Mf,nonoptional:()=>GT,nonpositive:()=>Vf,normalize:()=>Ls,null:()=>IT,nullable:()=>$u,nullish:()=>wU,number:()=>_T,object:()=>hU,optional:()=>Tu,overwrite:()=>Ur,parse:()=>oT,parseAsync:()=>aT,partialRecord:()=>xU,pipe:()=>ng,positive:()=>Lf,prefault:()=>KT,preprocess:()=>MU,prettifyError:()=>II,promise:()=>jU,property:()=>Zf,readonly:()=>t$,record:()=>UT,refine:()=>s$,regex:()=>Os,regexes:()=>cr,registry:()=>vf,safeDecode:()=>fT,safeDecodeAsync:()=>hT,safeEncode:()=>pT,safeEncodeAsync:()=>gT,safeParse:()=>sT,safeParseAsync:()=>cT,set:()=>PU,setErrorMap:()=>tK,size:()=>No,slugify:()=>Zs,startsWith:()=>Ds,strictObject:()=>bU,string:()=>Pu,stringFormat:()=>Q1,stringbool:()=>BU,success:()=>RU,superRefine:()=>c$,symbol:()=>uU,templateLiteral:()=>OU,toJSONSchema:()=>Gf,toLowerCase:()=>Vs,toUpperCase:()=>Ms,transform:()=>Pg,treeifyError:()=>SI,trim:()=>Bs,tuple:()=>jT,uint32:()=>aU,uint64:()=>lU,ulid:()=>B1,undefined:()=>dU,union:()=>Sg,unknown:()=>Vo,uppercase:()=>Us,url:()=>U1,util:()=>L,uuid:()=>E1,uuidv4:()=>z1,uuidv6:()=>O1,uuidv7:()=>j1,void:()=>pU,xid:()=>V1,xor:()=>vU});var fi={};fn(fi,{$ZodAny:()=>YP,$ZodArray:()=>rk,$ZodAsyncError:()=>jr,$ZodBase64:()=>VP,$ZodBase64URL:()=>MP,$ZodBigInt:()=>df,$ZodBigIntFormat:()=>GP,$ZodBoolean:()=>hu,$ZodCIDRv4:()=>NP,$ZodCIDRv6:()=>LP,$ZodCUID:()=>$P,$ZodCUID2:()=>wP,$ZodCatch:()=>xk,$ZodCheck:()=>wt,$ZodCheckBigIntFormat:()=>rP,$ZodCheckEndsWith:()=>gP,$ZodCheckGreaterThan:()=>of,$ZodCheckIncludes:()=>pP,$ZodCheckLengthEquals:()=>lP,$ZodCheckLessThan:()=>rf,$ZodCheckLowerCase:()=>dP,$ZodCheckMaxLength:()=>sP,$ZodCheckMaxSize:()=>iP,$ZodCheckMimeType:()=>bP,$ZodCheckMinLength:()=>cP,$ZodCheckMinSize:()=>oP,$ZodCheckMultipleOf:()=>tP,$ZodCheckNumberFormat:()=>nP,$ZodCheckOverwrite:()=>_P,$ZodCheckProperty:()=>hP,$ZodCheckRegex:()=>uP,$ZodCheckSizeEquals:()=>aP,$ZodCheckStartsWith:()=>fP,$ZodCheckStringFormat:()=>Es,$ZodCheckUpperCase:()=>mP,$ZodCodec:()=>_u,$ZodCustom:()=>Rk,$ZodCustomStringFormat:()=>HP,$ZodDate:()=>nk,$ZodDefault:()=>bk,$ZodDiscriminatedUnion:()=>ak,$ZodE164:()=>ZP,$ZodEmail:()=>IP,$ZodEmoji:()=>kP,$ZodEncodeError:()=>Gi,$ZodEnum:()=>dk,$ZodError:()=>uu,$ZodExactOptional:()=>gk,$ZodFile:()=>pk,$ZodFunction:()=>Tk,$ZodGUID:()=>xP,$ZodIPv4:()=>AP,$ZodIPv6:()=>DP,$ZodISODate:()=>OP,$ZodISODateTime:()=>zP,$ZodISODuration:()=>UP,$ZodISOTime:()=>jP,$ZodIntersection:()=>sk,$ZodJWT:()=>qP,$ZodKSUID:()=>EP,$ZodLazy:()=>wk,$ZodLiteral:()=>mk,$ZodMAC:()=>FP,$ZodMap:()=>lk,$ZodNaN:()=>Sk,$ZodNanoID:()=>TP,$ZodNever:()=>ek,$ZodNonOptional:()=>vk,$ZodNull:()=>XP,$ZodNullable:()=>hk,$ZodNumber:()=>uf,$ZodNumberFormat:()=>KP,$ZodObject:()=>Pj,$ZodObjectJIT:()=>ik,$ZodOptional:()=>pf,$ZodPipe:()=>ff,$ZodPrefault:()=>_k,$ZodPreprocess:()=>Ik,$ZodPromise:()=>$k,$ZodReadonly:()=>Pk,$ZodRealError:()=>Yn,$ZodRecord:()=>ck,$ZodRegistry:()=>_f,$ZodSet:()=>uk,$ZodString:()=>Fo,$ZodStringFormat:()=>It,$ZodSuccess:()=>yk,$ZodSymbol:()=>JP,$ZodTemplateLiteral:()=>kk,$ZodTransform:()=>fk,$ZodTuple:()=>mf,$ZodType:()=>Te,$ZodULID:()=>RP,$ZodURL:()=>PP,$ZodUUID:()=>SP,$ZodUndefined:()=>WP,$ZodUnion:()=>bu,$ZodUnknown:()=>QP,$ZodVoid:()=>tk,$ZodXID:()=>CP,$ZodXor:()=>ok,$brand:()=>uI,$constructor:()=>T,$input:()=>Ek,$output:()=>Ck,Doc:()=>gu,JSONSchema:()=>T1,JSONSchemaGenerator:()=>Jf,NEVER:()=>lI,TimePrecision:()=>Uk,_any:()=>n0,_array:()=>l0,_base64:()=>Af,_base64url:()=>Df,_bigint:()=>Jk,_boolean:()=>Kk,_catch:()=>Z8,_check:()=>k1,_cidrv4:()=>jf,_cidrv6:()=>Uf,_coercedBigint:()=>Wk,_coercedBoolean:()=>Gk,_coercedDate:()=>s0,_coercedNumber:()=>Bk,_coercedString:()=>Ok,_cuid:()=>$f,_cuid2:()=>wf,_custom:()=>d0,_date:()=>a0,_decode:()=>Gp,_decodeAsync:()=>Wp,_default:()=>B8,_discriminatedUnion:()=>R8,_e164:()=>Ff,_email:()=>yf,_emoji:()=>kf,_encode:()=>Kp,_encodeAsync:()=>Jp,_endsWith:()=>Fs,_enum:()=>U8,_file:()=>u0,_float32:()=>Mk,_float64:()=>Zk,_gt:()=>Wr,_gte:()=>Mn,_guid:()=>xu,_includes:()=>As,_int:()=>Vk,_int32:()=>qk,_int64:()=>Xk,_intersection:()=>C8,_ipv4:()=>zf,_ipv6:()=>Of,_isoDate:()=>Dk,_isoDateTime:()=>Ak,_isoDuration:()=>Nk,_isoTime:()=>Fk,_jwt:()=>Nf,_ksuid:()=>Ef,_lazy:()=>G8,_length:()=>Bo,_literal:()=>D8,_lowercase:()=>js,_lt:()=>Jr,_lte:()=>lr,_mac:()=>jk,_map:()=>O8,_max:()=>lr,_maxLength:()=>Lo,_maxSize:()=>eo,_mime:()=>Ns,_min:()=>Mn,_minLength:()=>pi,_minSize:()=>Xr,_multipleOf:()=>Qi,_nan:()=>c0,_nanoid:()=>Tf,_nativeEnum:()=>A8,_negative:()=>Bf,_never:()=>i0,_nonnegative:()=>Mf,_nonoptional:()=>V8,_nonpositive:()=>Vf,_normalize:()=>Ls,_null:()=>t0,_nullable:()=>L8,_number:()=>Lk,_optional:()=>N8,_overwrite:()=>Ur,_parse:()=>$s,_parseAsync:()=>ws,_pipe:()=>q8,_positive:()=>Lf,_promise:()=>J8,_property:()=>Zf,_readonly:()=>H8,_record:()=>z8,_refine:()=>m0,_regex:()=>Os,_safeDecode:()=>Yp,_safeDecodeAsync:()=>ef,_safeEncode:()=>Xp,_safeEncodeAsync:()=>Qp,_safeParse:()=>Rs,_safeParseAsync:()=>Cs,_set:()=>j8,_size:()=>No,_slugify:()=>Zs,_startsWith:()=>Ds,_string:()=>zk,_stringFormat:()=>qs,_stringbool:()=>h0,_success:()=>M8,_superRefine:()=>p0,_symbol:()=>Qk,_templateLiteral:()=>K8,_toLowerCase:()=>Vs,_toUpperCase:()=>Ms,_transform:()=>F8,_trim:()=>Bs,_tuple:()=>E8,_uint32:()=>Hk,_uint64:()=>Yk,_ulid:()=>Rf,_undefined:()=>e0,_union:()=>$8,_unknown:()=>r0,_uppercase:()=>Us,_url:()=>Su,_uuid:()=>xf,_uuidv4:()=>Sf,_uuidv6:()=>If,_uuidv7:()=>Pf,_void:()=>o0,_xid:()=>Cf,_xor:()=>w8,clone:()=>Bn,config:()=>tn,createStandardJSONSchemaMethod:()=>Hs,createToJSONSchemaMethod:()=>b0,decode:()=>Jq,decodeAsync:()=>Xq,describe:()=>f0,encode:()=>Gq,encodeAsync:()=>Wq,extractDefs:()=>no,finalize:()=>ro,flattenError:()=>du,formatError:()=>mu,globalConfig:()=>Uo,globalRegistry:()=>xn,initializeContext:()=>to,isValidBase64:()=>BP,isValidBase64URL:()=>yj,isValidJWT:()=>xj,locales:()=>yu,meta:()=>g0,parse:()=>qp,parseAsync:()=>Hp,prettifyError:()=>II,process:()=>ht,regexes:()=>cr,registry:()=>vf,safeDecode:()=>Qq,safeDecodeAsync:()=>tH,safeEncode:()=>Yq,safeEncodeAsync:()=>eH,safeParse:()=>PI,safeParseAsync:()=>kI,toDotPath:()=>QO,toJSONSchema:()=>Gf,treeifyError:()=>SI,util:()=>L,version:()=>vP});var GO,lI=Object.freeze({status:"aborted"});function T(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 uI=Symbol("zod_brand"),jr=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.");}},Gi=class extends Error{constructor(n){super(`Encountered unidirectional transform during encode: ${n}`),this.name="ZodEncodeError";}};(GO=globalThis).__zod_globalConfig??(GO.__zod_globalConfig={});var Uo=globalThis.__zod_globalConfig;function tn(e){return e&&Object.assign(Uo,e),Uo}var L={};fn(L,{BIGINT_FORMAT_RANGES:()=>yI,Class:()=>mI,NUMBER_FORMAT_RANGES:()=>vI,aborted:()=>Yi,allowsEval:()=>gI,assert:()=>Tq,assertEqual:()=>Sq,assertIs:()=>Pq,assertNever:()=>kq,assertNotEqual:()=>Iq,assignProp:()=>Wi,base64ToUint8Array:()=>WO,base64urlToUint8Array:()=>Mq,cached:()=>ks,captureStackTrace:()=>Zp,cleanEnum:()=>Vq,cleanRegex:()=>au,clone:()=>Bn,cloneDef:()=>wq,createTransparentProxy:()=>jq,defineLazy:()=>qe,esc:()=>Mp,escapeRegex:()=>vr,explicitlyAborted:()=>xI,extend:()=>Dq,finalizeIssue:()=>Vn,floatSafeRemainder:()=>pI,getElementAtPath:()=>Rq,getEnumValues:()=>ou,getLengthableOrigin:()=>lu,getParsedType:()=>Oq,getSizableOrigin:()=>cu,hexToUint8Array:()=>qq,isObject:()=>Ao,isPlainObject:()=>Xi,issue:()=>Ts,joinValues:()=>C,jsonStringifyReplacer:()=>Ps,merge:()=>Nq,mergeDefs:()=>mi,normalizeParams:()=>K,nullish:()=>Ji,numKeys:()=>zq,objectClone:()=>$q,omit:()=>Aq,optionalKeys:()=>_I,parsedType:()=>F,partial:()=>Lq,pick:()=>Uq,prefixIssues:()=>Xn,primitiveTypes:()=>bI,promiseAllObject:()=>Cq,propertyKeyTypes:()=>su,randomString:()=>Eq,required:()=>Bq,safeExtend:()=>Fq,shallowClone:()=>hI,slugify:()=>fI,stringifyPrimitive:()=>A,uint8ArrayToBase64:()=>XO,uint8ArrayToBase64url:()=>Zq,uint8ArrayToHex:()=>Hq,unwrapMessage:()=>iu});function Sq(e){return e}function Iq(e){return e}function Pq(e){}function kq(e){throw new Error("Unexpected value in exhaustive check")}function Tq(e){}function ou(e){let n=Object.values(e).filter(o=>typeof o=="number");return Object.entries(e).filter(([o,t])=>n.indexOf(+o)===-1).map(([o,t])=>t)}function C(e,n="|"){return e.map(r=>A(r)).join(n)}function Ps(e,n){return typeof n=="bigint"?n.toString():n}function ks(e){return {get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}}}}function Ji(e){return e==null}function au(e){let n=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(n,r)}function pI(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 JO=Symbol("evaluating");function qe(e,n,r){let o;Object.defineProperty(e,n,{get(){if(o!==JO)return o===void 0&&(o=JO,o=r()),o},set(t){Object.defineProperty(e,n,{value:t});},configurable:true});}function $q(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Wi(e,n,r){Object.defineProperty(e,n,{value:r,writable:true,enumerable:true,configurable:true});}function mi(...e){let n={};for(let r of e){let o=Object.getOwnPropertyDescriptors(r);Object.assign(n,o);}return Object.defineProperties({},n)}function wq(e){return mi(e._zod.def)}function Rq(e,n){return n?n.reduce((r,o)=>r?.[o],e):e}function Cq(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 Eq(e=10){let n="abcdefghijklmnopqrstuvwxyz",r="";for(let o=0;o<e;o++)r+=n[Math.floor(Math.random()*n.length)];return r}function Mp(e){return JSON.stringify(e)}function fI(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Zp="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Ao(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var gI=ks(()=>{if(Uo.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return false;try{let e=Function;return new e(""),!0}catch{return false}});function Xi(e){if(Ao(e)===false)return false;let n=e.constructor;if(n===void 0||typeof n!="function")return true;let r=n.prototype;return !(Ao(r)===false||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===false)}function hI(e){return Xi(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function zq(e){let n=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&n++;return n}var Oq=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}`)}},su=new Set(["string","number","symbol"]),bI=new Set(["string","number","bigint","boolean","symbol","undefined"]);function vr(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Bn(e,n,r){let o=new e._zod.constr(n??e._zod.def);return (!n||r?.parent)&&(o._zod.parent=e),o}function K(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 jq(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 A(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function _I(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}var vI={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]},yI={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Uq(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=mi(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 Wi(this,"shape",s),s},checks:[]});return Bn(e,i)}function Aq(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=mi(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 Wi(this,"shape",s),s},checks:[]});return Bn(e,i)}function Dq(e,n){if(!Xi(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=mi(e._zod.def,{get shape(){let i={...e._zod.def.shape,...n};return Wi(this,"shape",i),i}});return Bn(e,t)}function Fq(e,n){if(!Xi(n))throw new Error("Invalid input to safeExtend: expected a plain object");let r=mi(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n};return Wi(this,"shape",o),o}});return Bn(e,r)}function Nq(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=mi(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n._zod.def.shape};return Wi(this,"shape",o),o},get catchall(){return n._zod.def.catchall},checks:n._zod.def.checks??[]});return Bn(e,r)}function Lq(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=mi(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 Wi(this,"shape",u),u},checks:[]});return Bn(n,s)}function Bq(e,n,r){let o=mi(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 Wi(this,"shape",i),i}});return Bn(n,o)}function Yi(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 xI(e,n=0){if(e.aborted===true)return true;for(let r=n;r<e.issues.length;r++)if(e.issues[r]?.continue===false)return true;return false}function Xn(e,n){return n.map(r=>{var o;return (o=r).path??(o.path=[]),r.path.unshift(e),r})}function iu(e){return typeof e=="string"?e:e?.message}function Vn(e,n,r){let o=e.message?e.message:iu(e.inst?._zod.def?.error?.(e))??iu(n?.error?.(e))??iu(r.customError?.(e))??iu(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 cu(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function lu(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 Vq(e){return Object.entries(e).filter(([n,r])=>Number.isNaN(Number.parseInt(n,10))).map(n=>n[1])}function WO(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 XO(e){let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}function Mq(e){let n=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-n.length%4)%4);return WO(n+r)}function Zq(e){return XO(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function qq(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 Hq(e){return Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}var mI=class{constructor(...n){}};var YO=(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,Ps,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:false});},uu=T("$ZodError",YO),Yn=T("$ZodError",YO,{Parent:Error});function du(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 mu(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 SI(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 QO(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 II(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 ${QO(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 Ci(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),h=f.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(h)):Object.assign(d,h),Object.assign(d,m),c._zod.parent===p)for(let x in d)x==="$ref"||x==="allOf"||x in m||delete d[x];if(h.$ref&&f.def)for(let x in d)x==="$ref"||x==="allOf"||x in f.def&&JSON.stringify(d[x])===JSON.stringify(f.def[x])&&delete d[x];}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 h in d)h==="$ref"||h==="allOf"||h in f.def&&JSON.stringify(d[h])===JSON.stringify(f.def[h])&&delete d[h];}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:ba(n,"input",e.processors),output:ba(n,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch{throw new Error("Error converting schema to JSON.")}}function An(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 An(o.element,r);if(o.type==="set")return An(o.valueType,r);if(o.type==="lazy")return An(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 An(o.innerType,r);if(o.type==="intersection")return An(o.left,r)||An(o.right,r);if(o.type==="record"||o.type==="map")return An(o.keyType,r)||An(o.valueType,r);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?true:An(o.in,r)||An(o.out,r);if(o.type==="object"){for(let t in o.shape)if(An(o.shape[t],r))return true;return false}if(o.type==="union"){for(let t of o.options)if(An(t,r))return true;return false}if(o.type==="tuple"){for(let t of o.items)if(An(t,r))return true;return !!(o.rest&&An(o.rest,r))}return false}var Sv=(e,n={})=>r=>{let o=wi({...r,processors:n});return pt(e,o),Ri(o,e),Ci(o,e)},ba=(e,n,r={})=>o=>{let{libraryOptions:t,target:i}=o??{},s=wi({...t??{},target:i,io:n,processors:r});return pt(e,s),Ri(s,e),Ci(s,e)};var iF={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Iv=(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=iF[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}))]);}},Pv=(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);},kv=(e,n,r,o)=>{r.type="boolean";},Tv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},$v=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},wv=(e,n,r,o)=>{n.target==="openapi-3.0"?(r.type="string",r.nullable=true,r.enum=[null]):r.type="null";},Rv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Cv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},Ev=(e,n,r,o)=>{r.not={};},zv=(e,n,r,o)=>{},Ov=(e,n,r,o)=>{},jv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},Uv=(e,n,r,o)=>{let t=e._zod.def,i=yc(t.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i;},Av=(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;},Dv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},Fv=(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;},Nv=(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);},Lv=(e,n,r,o)=>{r.type="boolean";},Bv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Vv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Mv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Zv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},qv=(e,n,r,o)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Hv=(e,n,r,o)=>{let t=r,i=e._zod.def,{minimum:s,maximum:c}=e._zod.bag;typeof s=="number"&&(t.minItems=s),typeof c=="number"&&(t.maxItems=c),t.type="array",t.items=pt(i.element,n,{...o,path:[...o.path,"items"]});},Kv=(e,n,r,o)=>{let t=r,i=e._zod.def;t.type="object",t.properties={};let s=i.shape;for(let d in s)t.properties[d]=pt(s[d],n,{...o,path:[...o.path,"properties",d]});let c=new Set(Object.keys(s)),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=pt(i.catchall,n,{...o,path:[...o.path,"additionalProperties"]})):n.io==="output"&&(t.additionalProperties=false);},dm=(e,n,r,o)=>{let t=e._zod.def,i=t.inclusive===false,s=t.options.map((c,u)=>pt(c,n,{...o,path:[...o.path,i?"oneOf":"anyOf",u]}));i?r.oneOf=s:r.anyOf=s;},Gv=(e,n,r,o)=>{let t=e._zod.def,i=pt(t.left,n,{...o,path:[...o.path,"allOf",0]}),s=pt(t.right,n,{...o,path:[...o.path,"allOf",1]}),c=d=>"allOf"in d&&Object.keys(d).length===1,u=[...c(i)?i.allOf:[i],...c(s)?s.allOf:[s]];r.allOf=u;},Jv=(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)=>pt(g,n,{...o,path:[...o.path,s,f]})),d=i.rest?pt(i.rest,n,{...o,path:[...o.path,c,...n.target==="openapi-3.0"?[i.items.length]:[]]}):null;n.target==="draft-2020-12"?(t.prefixItems=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);},Wv=(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=pt(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=pt(i.keyType,n,{...o,path:[...o.path,"propertyNames"]})),t.additionalProperties=pt(i.valueType,n,{...o,path:[...o.path,"additionalProperties"]});let d=s._zod.values;if(d){let m=[...d].filter(p=>typeof p=="string"||typeof p=="number");m.length>0&&(t.required=m);}},Xv=(e,n,r,o)=>{let t=e._zod.def,i=pt(t.innerType,n,o),s=n.seen.get(e);n.target==="openapi-3.0"?(s.ref=t.innerType,r.nullable=true):r.anyOf=[i,{type:"null"}];},Yv=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},Qv=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.default=JSON.parse(JSON.stringify(t.defaultValue));},ey=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,n.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(t.defaultValue)));},ty=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;let s;try{s=t.catchValue(void 0);}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s;},ny=(e,n,r,o)=>{let t=e._zod.def,i=t.in._zod.traits.has("$ZodTransform"),s=n.io==="input"?i?t.out:t.in:t.out;pt(s,n,o);let c=n.seen.get(e);c.ref=s;},ry=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType,r.readOnly=true;},iy=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},mm=(e,n,r,o)=>{let t=e._zod.def;pt(t.innerType,n,o);let i=n.seen.get(e);i.ref=t.innerType;},oy=(e,n,r,o)=>{let t=e._zod.innerType;pt(t,n,o);let i=n.seen.get(e);i.ref=t;},um={string:Iv,number:Pv,boolean:kv,bigint:Tv,symbol:$v,null:wv,undefined:Rv,void:Cv,never:Ev,any:zv,unknown:Ov,date:jv,enum:Uv,literal:Av,nan:Dv,template_literal:Fv,file:Nv,success:Lv,custom:Bv,function:Vv,transform:Mv,map:Zv,set:qv,array:Hv,object:Kv,union:dm,intersection:Gv,tuple:Jv,record:Wv,nullable:Xv,nonoptional:Yv,default:Qv,prefault:ey,catch:ty,pipe:ny,readonly:ry,promise:iy,optional:mm,lazy:oy};function pm(e,n){if("_idmap"in e){let o=e,t=wi({...n,processors:um}),i={};for(let u of o._idmap.entries()){let[d,m]=u;pt(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;Ri(t,m),s[d]=Ci(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=wi({...n,processors:um});return pt(e,r),Ri(r,e),Ci(r,e)}var fm=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=wi({processors:um,target:r,...n?.metadata&&{metadata:n.metadata},...n?.unrepresentable&&{unrepresentable:n.unrepresentable},...n?.override&&{override:n.override},...n?.io&&{io:n.io}});}process(n,r={path:[],schemaPath:[]}){return pt(n,this.ctx,r)}emit(n,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),Ri(this.ctx,n);let o=Ci(this.ctx,n),{"~standard":t,...i}=o;return i}};var yR={};var Fc={};fn(Fc,{ZodAny:()=>Ry,ZodArray:()=>Oy,ZodBase64:()=>Um,ZodBase64URL:()=>Am,ZodBigInt:()=>ka,ZodBigIntFormat:()=>Nm,ZodBoolean:()=>Pa,ZodCIDRv4:()=>Om,ZodCIDRv6:()=>jm,ZodCUID:()=>Tm,ZodCUID2:()=>$m,ZodCatch:()=>tx,ZodCodec:()=>Wc,ZodCustom:()=>Xc,ZodCustomStringFormat:()=>Sa,ZodDate:()=>qc,ZodDefault:()=>Jy,ZodDiscriminatedUnion:()=>Uy,ZodE164:()=>Dm,ZodEmail:()=>Im,ZodEmoji:()=>Pm,ZodEnum:()=>ya,ZodExactOptional:()=>Hy,ZodFile:()=>Zy,ZodFunction:()=>dx,ZodGUID:()=>Lc,ZodIPv4:()=>Em,ZodIPv6:()=>zm,ZodIntersection:()=>Ay,ZodJWT:()=>Fm,ZodKSUID:()=>Cm,ZodLazy:()=>cx,ZodLiteral:()=>My,ZodMAC:()=>Sy,ZodMap:()=>By,ZodNaN:()=>rx,ZodNanoID:()=>km,ZodNever:()=>Ey,ZodNonOptional:()=>qm,ZodNull:()=>$y,ZodNullable:()=>Gy,ZodNumber:()=>Ia,ZodNumberFormat:()=>xo,ZodObject:()=>Kc,ZodOptional:()=>Zm,ZodPipe:()=>Jc,ZodPrefault:()=>Xy,ZodPreprocess:()=>ix,ZodPromise:()=>ux,ZodReadonly:()=>ox,ZodRecord:()=>va,ZodSet:()=>Vy,ZodString:()=>xa,ZodStringFormat:()=>yt,ZodSuccess:()=>ex,ZodSymbol:()=>ky,ZodTemplateLiteral:()=>sx,ZodTransform:()=>qy,ZodTuple:()=>Fy,ZodType:()=>Ee,ZodULID:()=>wm,ZodURL:()=>Zc,ZodUUID:()=>Mr,ZodUndefined:()=>Ty,ZodUnion:()=>Gc,ZodUnknown:()=>Cy,ZodVoid:()=>zy,ZodXID:()=>Rm,ZodXor:()=>jy,_ZodString:()=>Sm,_default:()=>Wy,_function:()=>RC,any:()=>aC,array:()=>Hc,base64:()=>MR,base64url:()=>ZR,bigint:()=>tC,boolean:()=>Py,catch:()=>nx,check:()=>CC,cidrv4:()=>BR,cidrv6:()=>VR,codec:()=>kC,cuid:()=>OR,cuid2:()=>jR,custom:()=>EC,date:()=>cC,describe:()=>zC,discriminatedUnion:()=>fC,e164:()=>qR,email:()=>IR,emoji:()=>ER,enum:()=>Vm,exactOptional:()=>Ky,file:()=>xC,float32:()=>XR,float64:()=>YR,function:()=>RC,guid:()=>PR,hash:()=>WR,hex:()=>JR,hostname:()=>GR,httpUrl:()=>CR,instanceof:()=>jC,int:()=>ym,int32:()=>QR,int64:()=>nC,intersection:()=>Dy,invertCodec:()=>TC,ipv4:()=>FR,ipv6:()=>LR,json:()=>AC,jwt:()=>HR,keyof:()=>lC,ksuid:()=>DR,lazy:()=>lx,literal:()=>yC,looseObject:()=>mC,looseRecord:()=>hC,mac:()=>NR,map:()=>bC,meta:()=>OC,nan:()=>PC,nanoid:()=>zR,nativeEnum:()=>vC,never:()=>Lm,nonoptional:()=>Qy,null:()=>wy,nullable:()=>Vc,nullish:()=>SC,number:()=>Iy,object:()=>uC,optional:()=>Bc,partialRecord:()=>gC,pipe:()=>xm,prefault:()=>Yy,preprocess:()=>DC,promise:()=>wC,readonly:()=>ax,record:()=>Ly,refine:()=>mx,set:()=>_C,strictObject:()=>dC,string:()=>Nc,stringFormat:()=>KR,stringbool:()=>UC,success:()=>IC,superRefine:()=>px,symbol:()=>iC,templateLiteral:()=>$C,transform:()=>Mm,tuple:()=>Ny,uint32:()=>eC,uint64:()=>rC,ulid:()=>UR,undefined:()=>oC,union:()=>Bm,unknown:()=>yo,url:()=>RR,uuid:()=>kR,uuidv4:()=>TR,uuidv6:()=>$R,uuidv7:()=>wR,void:()=>sC,xid:()=>AR,xor:()=>pC});var gm={};fn(gm,{endsWith:()=>la,gt:()=>Br,gte:()=>Un,includes:()=>sa,length:()=>vo,lowercase:()=>oa,lt:()=>Lr,lte:()=>ir,maxLength:()=>_o,maxSize:()=>$i,mime:()=>ua,minLength:()=>ni,minSize:()=>Vr,multipleOf:()=>Ti,negative:()=>am,nonnegative:()=>cm,nonpositive:()=>sm,normalize:()=>da,overwrite:()=>kr,positive:()=>om,property:()=>lm,regex:()=>ia,size:()=>bo,slugify:()=>ga,startsWith:()=>ca,toLowerCase:()=>pa,toUpperCase:()=>fa,trim:()=>ma,uppercase:()=>aa});var _a={};fn(_a,{ZodISODate:()=>bm,ZodISODateTime:()=>hm,ZodISODuration:()=>vm,ZodISOTime:()=>_m,date:()=>sy,datetime:()=>ay,duration:()=>ly,time:()=>cy});var hm=k("ZodISODateTime",(e,n)=>{Db.init(e,n),yt.init(e,n);});function ay(e){return B_(hm,e)}var bm=k("ZodISODate",(e,n)=>{Fb.init(e,n),yt.init(e,n);});function sy(e){return V_(bm,e)}var _m=k("ZodISOTime",(e,n)=>{Nb.init(e,n),yt.init(e,n);});function cy(e){return M_(_m,e)}var vm=k("ZodISODuration",(e,n)=>{Lb.init(e,n),yt.init(e,n);});function ly(e){return Z_(vm,e)}var xR=(e,n)=>{kc.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>$c(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}}});},aF=k("ZodError",xR),Gn=k("ZodError",xR,{Parent:Error});var uy=Yo(Gn),dy=Qo(Gn),my=ea(Gn),py=ta(Gn),fy=pd(Gn),gy=fd(Gn),hy=gd(Gn),by=hd(Gn),_y=bd(Gn),vy=_d(Gn),yy=vd(Gn),xy=yd(Gn);var SR=new WeakMap;function Mc(e,n,r){let o=Object.getPrototypeOf(e),t=SR.get(o);if(t||(t=new Set,SR.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 Ee=k("ZodType",(e,n)=>(ke.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:ba(e,"input"),output:ba(e,"output")}}),e.toJSONSchema=Sv(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.parse=(r,o)=>uy(e,r,o,{callee:e.parse}),e.safeParse=(r,o)=>my(e,r,o),e.parseAsync=async(r,o)=>dy(e,r,o,{callee:e.parseAsync}),e.safeParseAsync=async(r,o)=>py(e,r,o),e.spa=e.safeParseAsync,e.encode=(r,o)=>fy(e,r,o),e.decode=(r,o)=>gy(e,r,o),e.encodeAsync=async(r,o)=>hy(e,r,o),e.decodeAsync=async(r,o)=>by(e,r,o),e.safeEncode=(r,o)=>_y(e,r,o),e.safeDecode=(r,o)=>vy(e,r,o),e.safeEncodeAsync=async(r,o)=>yy(e,r,o),e.safeDecodeAsync=async(r,o)=>xy(e,r,o),Mc(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 On(this,r,o)},brand(){return this},register(r,o){return r.add(this,o),this},refine(r,o){return this.check(mx(r,o))},superRefine(r,o){return this.check(px(r,o))},overwrite(r){return this.check(kr(r))},optional(){return Bc(this)},exactOptional(){return Ky(this)},nullable(){return Vc(this)},nullish(){return Bc(Vc(this))},nonoptional(r){return Qy(this,r)},array(){return Hc(this)},or(r){return Bm([this,r])},and(r){return Dy(this,r)},transform(r){return xm(this,Mm(r))},default(r){return Wy(this,r)},prefault(r){return Yy(this,r)},catch(r){return nx(this,r)},pipe(r){return xm(this,r)},readonly(){return ax(this)},describe(r){let o=this.clone();return bn.add(o,{description:r}),o},meta(...r){if(r.length===0)return bn.get(this);let o=this.clone();return bn.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 bn.get(e)?.description},configurable:true}),e)),Sm=k("_ZodString",(e,n)=>{ho.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Iv(e,o,t);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,Mc(e,"_ZodString",{regex(...o){return this.check(ia(...o))},includes(...o){return this.check(sa(...o))},startsWith(...o){return this.check(ca(...o))},endsWith(...o){return this.check(la(...o))},min(...o){return this.check(ni(...o))},max(...o){return this.check(_o(...o))},length(...o){return this.check(vo(...o))},nonempty(...o){return this.check(ni(1,...o))},lowercase(o){return this.check(oa(o))},uppercase(o){return this.check(aa(o))},trim(){return this.check(ma())},normalize(...o){return this.check(da(...o))},toLowerCase(){return this.check(pa())},toUpperCase(){return this.check(fa())},slugify(){return this.check(ga())}});}),xa=k("ZodString",(e,n)=>{ho.init(e,n),Sm.init(e,n),e.email=r=>e.check(Nd(Im,r)),e.url=r=>e.check(Dc(Zc,r)),e.jwt=r=>e.check(im(Fm,r)),e.emoji=r=>e.check(Zd(Pm,r)),e.guid=r=>e.check(Ac(Lc,r)),e.uuid=r=>e.check(Ld(Mr,r)),e.uuidv4=r=>e.check(Bd(Mr,r)),e.uuidv6=r=>e.check(Vd(Mr,r)),e.uuidv7=r=>e.check(Md(Mr,r)),e.nanoid=r=>e.check(qd(km,r)),e.guid=r=>e.check(Ac(Lc,r)),e.cuid=r=>e.check(Hd(Tm,r)),e.cuid2=r=>e.check(Kd($m,r)),e.ulid=r=>e.check(Gd(wm,r)),e.base64=r=>e.check(tm(Um,r)),e.base64url=r=>e.check(nm(Am,r)),e.xid=r=>e.check(Jd(Rm,r)),e.ksuid=r=>e.check(Wd(Cm,r)),e.ipv4=r=>e.check(Xd(Em,r)),e.ipv6=r=>e.check(Yd(zm,r)),e.cidrv4=r=>e.check(Qd(Om,r)),e.cidrv6=r=>e.check(em(jm,r)),e.e164=r=>e.check(rm(Dm,r)),e.datetime=r=>e.check(ay(r)),e.date=r=>e.check(sy(r)),e.time=r=>e.check(cy(r)),e.duration=r=>e.check(ly(r));});function Nc(e){return D_(xa,e)}var yt=k("ZodStringFormat",(e,n)=>{vt.init(e,n),Sm.init(e,n);}),Im=k("ZodEmail",(e,n)=>{wb.init(e,n),yt.init(e,n);});function IR(e){return Nd(Im,e)}var Lc=k("ZodGUID",(e,n)=>{Tb.init(e,n),yt.init(e,n);});function PR(e){return Ac(Lc,e)}var Mr=k("ZodUUID",(e,n)=>{$b.init(e,n),yt.init(e,n);});function kR(e){return Ld(Mr,e)}function TR(e){return Bd(Mr,e)}function $R(e){return Vd(Mr,e)}function wR(e){return Md(Mr,e)}var Zc=k("ZodURL",(e,n)=>{Rb.init(e,n),yt.init(e,n);});function RR(e){return Dc(Zc,e)}function CR(e){return Dc(Zc,{protocol:rr.httpProtocol,hostname:rr.domain,...N.normalizeParams(e)})}var Pm=k("ZodEmoji",(e,n)=>{Cb.init(e,n),yt.init(e,n);});function ER(e){return Zd(Pm,e)}var km=k("ZodNanoID",(e,n)=>{Eb.init(e,n),yt.init(e,n);});function zR(e){return qd(km,e)}var Tm=k("ZodCUID",(e,n)=>{zb.init(e,n),yt.init(e,n);});function OR(e){return Hd(Tm,e)}var $m=k("ZodCUID2",(e,n)=>{Ob.init(e,n),yt.init(e,n);});function jR(e){return Kd($m,e)}var wm=k("ZodULID",(e,n)=>{jb.init(e,n),yt.init(e,n);});function UR(e){return Gd(wm,e)}var Rm=k("ZodXID",(e,n)=>{Ub.init(e,n),yt.init(e,n);});function AR(e){return Jd(Rm,e)}var Cm=k("ZodKSUID",(e,n)=>{Ab.init(e,n),yt.init(e,n);});function DR(e){return Wd(Cm,e)}var Em=k("ZodIPv4",(e,n)=>{Bb.init(e,n),yt.init(e,n);});function FR(e){return Xd(Em,e)}var Sy=k("ZodMAC",(e,n)=>{Mb.init(e,n),yt.init(e,n);});function NR(e){return N_(Sy,e)}var zm=k("ZodIPv6",(e,n)=>{Vb.init(e,n),yt.init(e,n);});function LR(e){return Yd(zm,e)}var Om=k("ZodCIDRv4",(e,n)=>{Zb.init(e,n),yt.init(e,n);});function BR(e){return Qd(Om,e)}var jm=k("ZodCIDRv6",(e,n)=>{qb.init(e,n),yt.init(e,n);});function VR(e){return em(jm,e)}var Um=k("ZodBase64",(e,n)=>{Kb.init(e,n),yt.init(e,n);});function MR(e){return tm(Um,e)}var Am=k("ZodBase64URL",(e,n)=>{Gb.init(e,n),yt.init(e,n);});function ZR(e){return nm(Am,e)}var Dm=k("ZodE164",(e,n)=>{Jb.init(e,n),yt.init(e,n);});function qR(e){return rm(Dm,e)}var Fm=k("ZodJWT",(e,n)=>{Wb.init(e,n),yt.init(e,n);});function HR(e){return im(Fm,e)}var Sa=k("ZodCustomStringFormat",(e,n)=>{Xb.init(e,n),yt.init(e,n);});function KR(e,n,r={}){return ha(Sa,e,n,r)}function GR(e){return ha(Sa,"hostname",rr.hostname,e)}function JR(e){return ha(Sa,"hex",rr.hex,e)}function WR(e,n){let r=n?.enc??"hex",o=`${e}_${r}`,t=rr[o];if(!t)throw new Error(`Unrecognized hash format: ${o}`);return ha(Sa,o,t,n)}var Ia=k("ZodNumber",(e,n)=>{Rd.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Pv(e,o,t),Mc(e,"ZodNumber",{gt(o,t){return this.check(Br(o,t))},gte(o,t){return this.check(Un(o,t))},min(o,t){return this.check(Un(o,t))},lt(o,t){return this.check(Lr(o,t))},lte(o,t){return this.check(ir(o,t))},max(o,t){return this.check(ir(o,t))},int(o){return this.check(ym(o))},safe(o){return this.check(ym(o))},positive(o){return this.check(Br(0,o))},nonnegative(o){return this.check(Un(0,o))},negative(o){return this.check(Lr(0,o))},nonpositive(o){return this.check(ir(0,o))},multipleOf(o,t){return this.check(Ti(o,t))},step(o,t){return this.check(Ti(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 Iy(e){return q_(Ia,e)}var xo=k("ZodNumberFormat",(e,n)=>{Yb.init(e,n),Ia.init(e,n);});function ym(e){return K_(xo,e)}function XR(e){return G_(xo,e)}function YR(e){return J_(xo,e)}function QR(e){return W_(xo,e)}function eC(e){return X_(xo,e)}var Pa=k("ZodBoolean",(e,n)=>{Ec.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>kv(e,r,o);});function Py(e){return Y_(Pa,e)}var ka=k("ZodBigInt",(e,n)=>{Cd.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Tv(e,o),e.gte=(o,t)=>e.check(Un(o,t)),e.min=(o,t)=>e.check(Un(o,t)),e.gt=(o,t)=>e.check(Br(o,t)),e.gte=(o,t)=>e.check(Un(o,t)),e.min=(o,t)=>e.check(Un(o,t)),e.lt=(o,t)=>e.check(Lr(o,t)),e.lte=(o,t)=>e.check(ir(o,t)),e.max=(o,t)=>e.check(ir(o,t)),e.positive=o=>e.check(Br(BigInt(0),o)),e.negative=o=>e.check(Lr(BigInt(0),o)),e.nonpositive=o=>e.check(ir(BigInt(0),o)),e.nonnegative=o=>e.check(Un(BigInt(0),o)),e.multipleOf=(o,t)=>e.check(Ti(o,t));let r=e._zod.bag;e.minValue=r.minimum??null,e.maxValue=r.maximum??null,e.format=r.format??null;});function tC(e){return ev(ka,e)}var Nm=k("ZodBigIntFormat",(e,n)=>{Qb.init(e,n),ka.init(e,n);});function nC(e){return nv(Nm,e)}function rC(e){return rv(Nm,e)}var ky=k("ZodSymbol",(e,n)=>{e_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>$v(e,r);});function iC(e){return iv(ky,e)}var Ty=k("ZodUndefined",(e,n)=>{t_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Rv(e,r);});function oC(e){return ov(Ty,e)}var $y=k("ZodNull",(e,n)=>{n_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>wv(e,r,o);});function wy(e){return av($y,e)}var Ry=k("ZodAny",(e,n)=>{r_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>zv();});function aC(){return sv(Ry)}var Cy=k("ZodUnknown",(e,n)=>{i_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Ov();});function yo(){return cv(Cy)}var Ey=k("ZodNever",(e,n)=>{o_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Ev(e,r,o);});function Lm(e){return lv(Ey,e)}var zy=k("ZodVoid",(e,n)=>{a_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Cv(e,r);});function sC(e){return uv(zy,e)}var qc=k("ZodDate",(e,n)=>{s_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(o,t,i)=>jv(e,o),e.min=(o,t)=>e.check(Un(o,t)),e.max=(o,t)=>e.check(ir(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 cC(e){return dv(qc,e)}var Oy=k("ZodArray",(e,n)=>{c_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Hv(e,r,o,t),e.element=n.element,Mc(e,"ZodArray",{min(r,o){return this.check(ni(r,o))},nonempty(r){return this.check(ni(1,r))},max(r,o){return this.check(_o(r,o))},length(r,o){return this.check(vo(r,o))},unwrap(){return this.element}});});function Hc(e,n){return fv(Oy,e,n)}function lC(e){let n=e._zod.def.shape;return Vm(Object.keys(n))}var Kc=k("ZodObject",(e,n)=>{l_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Kv(e,r,o,t),N.defineLazy(e,"shape",()=>n.shape),Mc(e,"ZodObject",{keyof(){return Vm(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:yo()})},loose(){return this.clone({...this._zod.def,catchall:yo()})},strict(){return this.clone({...this._zod.def,catchall:Lm()})},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(Zm,this,r[0])},required(...r){return N.required(qm,this,r[0])}});});function uC(e,n){let r={type:"object",shape:e??{},...N.normalizeParams(n)};return new Kc(r)}function dC(e,n){return new Kc({type:"object",shape:e,catchall:Lm(),...N.normalizeParams(n)})}function mC(e,n){return new Kc({type:"object",shape:e,catchall:yo(),...N.normalizeParams(n)})}var Gc=k("ZodUnion",(e,n)=>{zc.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>dm(e,r,o,t),e.options=n.options;});function Bm(e,n){return new Gc({type:"union",options:e,...N.normalizeParams(n)})}var jy=k("ZodXor",(e,n)=>{Gc.init(e,n),u_.init(e,n),e._zod.processJSONSchema=(r,o,t)=>dm(e,r,o,t),e.options=n.options;});function pC(e,n){return new jy({type:"union",options:e,inclusive:false,...N.normalizeParams(n)})}var Uy=k("ZodDiscriminatedUnion",(e,n)=>{Gc.init(e,n),d_.init(e,n);});function fC(e,n,r){return new Uy({type:"union",options:n,discriminator:e,...N.normalizeParams(r)})}var Ay=k("ZodIntersection",(e,n)=>{m_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Gv(e,r,o,t);});function Dy(e,n){return new Ay({type:"intersection",left:e,right:n})}var Fy=k("ZodTuple",(e,n)=>{Ed.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Jv(e,r,o,t),e.rest=r=>e.clone({...e._zod.def,rest:r});});function Ny(e,n,r){let o=n instanceof ke,t=o?r:n,i=o?n:null;return new Fy({type:"tuple",items:e,rest:i,...N.normalizeParams(t)})}var va=k("ZodRecord",(e,n)=>{p_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Wv(e,r,o,t),e.keyType=n.keyType,e.valueType=n.valueType;});function Ly(e,n,r){return !n||!n._zod?new va({type:"record",keyType:Nc(),valueType:e,...N.normalizeParams(n)}):new va({type:"record",keyType:e,valueType:n,...N.normalizeParams(r)})}function gC(e,n,r){let o=On(e);return o._zod.values=void 0,new va({type:"record",keyType:o,valueType:n,...N.normalizeParams(r)})}function hC(e,n,r){return new va({type:"record",keyType:e,valueType:n,mode:"loose",...N.normalizeParams(r)})}var By=k("ZodMap",(e,n)=>{f_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Zv(e,r),e.keyType=n.keyType,e.valueType=n.valueType,e.min=(...r)=>e.check(Vr(...r)),e.nonempty=r=>e.check(Vr(1,r)),e.max=(...r)=>e.check($i(...r)),e.size=(...r)=>e.check(bo(...r));});function bC(e,n,r){return new By({type:"map",keyType:e,valueType:n,...N.normalizeParams(r)})}var Vy=k("ZodSet",(e,n)=>{g_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>qv(e,r),e.min=(...r)=>e.check(Vr(...r)),e.nonempty=r=>e.check(Vr(1,r)),e.max=(...r)=>e.check($i(...r)),e.size=(...r)=>e.check(bo(...r));});function _C(e,n){return new Vy({type:"set",valueType:e,...N.normalizeParams(n)})}var ya=k("ZodEnum",(e,n)=>{h_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(o,t,i)=>Uv(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 ya({...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 ya({...n,checks:[],...N.normalizeParams(t),entries:i})};});function Vm(e,n){let r=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new ya({type:"enum",entries:r,...N.normalizeParams(n)})}function vC(e,n){return new ya({type:"enum",entries:e,...N.normalizeParams(n)})}var My=k("ZodLiteral",(e,n)=>{b_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Av(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 yC(e,n){return new My({type:"literal",values:Array.isArray(e)?e:[e],...N.normalizeParams(n)})}var Zy=k("ZodFile",(e,n)=>{__.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Nv(e,r,o),e.min=(r,o)=>e.check(Vr(r,o)),e.max=(r,o)=>e.check($i(r,o)),e.mime=(r,o)=>e.check(ua(Array.isArray(r)?r:[r],o));});function xC(e){return gv(Zy,e)}var qy=k("ZodTransform",(e,n)=>{v_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Mv(e,r),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new xi(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 Mm(e){return new qy({type:"transform",transform:e})}var Zm=k("ZodOptional",(e,n)=>{zd.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>mm(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Bc(e){return new Zm({type:"optional",innerType:e})}var Hy=k("ZodExactOptional",(e,n)=>{y_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>mm(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Ky(e){return new Hy({type:"optional",innerType:e})}var Gy=k("ZodNullable",(e,n)=>{x_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Xv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Vc(e){return new Gy({type:"nullable",innerType:e})}function SC(e){return Bc(Vc(e))}var Jy=k("ZodDefault",(e,n)=>{S_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Qv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap;});function Wy(e,n){return new Jy({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():N.shallowClone(n)}})}var Xy=k("ZodPrefault",(e,n)=>{I_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ey(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Yy(e,n){return new Xy({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():N.shallowClone(n)}})}var qm=k("ZodNonOptional",(e,n)=>{P_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Yv(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function Qy(e,n){return new qm({type:"nonoptional",innerType:e,...N.normalizeParams(n)})}var ex=k("ZodSuccess",(e,n)=>{k_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Lv(e,r,o),e.unwrap=()=>e._zod.def.innerType;});function IC(e){return new ex({type:"success",innerType:e})}var tx=k("ZodCatch",(e,n)=>{T_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ty(e,r,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap;});function nx(e,n){return new tx({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}var rx=k("ZodNaN",(e,n)=>{$_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Dv(e,r);});function PC(e){return pv(rx,e)}var Jc=k("ZodPipe",(e,n)=>{Od.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ny(e,r,o,t),e.in=n.in,e.out=n.out;});function xm(e,n){return new Jc({type:"pipe",in:e,out:n})}var Wc=k("ZodCodec",(e,n)=>{Jc.init(e,n),Oc.init(e,n);});function kC(e,n,r){return new Wc({type:"pipe",in:e,out:n,transform:r.decode,reverseTransform:r.encode})}function TC(e){let n=e._zod.def;return new Wc({type:"pipe",in:n.out,out:n.in,transform:n.reverseTransform,reverseTransform:n.transform})}var ix=k("ZodPreprocess",(e,n)=>{Jc.init(e,n),w_.init(e,n);}),ox=k("ZodReadonly",(e,n)=>{R_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>ry(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function ax(e){return new ox({type:"readonly",innerType:e})}var sx=k("ZodTemplateLiteral",(e,n)=>{C_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Fv(e,r,o);});function $C(e,n){return new sx({type:"template_literal",parts:e,...N.normalizeParams(n)})}var cx=k("ZodLazy",(e,n)=>{O_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>oy(e,r,o,t),e.unwrap=()=>e._zod.def.getter();});function lx(e){return new cx({type:"lazy",getter:e})}var ux=k("ZodPromise",(e,n)=>{z_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>iy(e,r,o,t),e.unwrap=()=>e._zod.def.innerType;});function wC(e){return new ux({type:"promise",innerType:e})}var dx=k("ZodFunction",(e,n)=>{E_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Vv(e,r);});function RC(e){return new dx({type:"function",input:Array.isArray(e?.input)?Ny(e?.input):e?.input??Hc(yo()),output:e?.output??yo()})}var Xc=k("ZodCustom",(e,n)=>{j_.init(e,n),Ee.init(e,n),e._zod.processJSONSchema=(r,o,t)=>Bv(e,r);});function CC(e){let n=new $t({check:"custom"});return n._zod.check=e,n}function EC(e,n){return hv(Xc,e??(()=>true),n)}function mx(e,n={}){return bv(Xc,e,n)}function px(e,n){return _v(e,n)}var zC=vv,OC=yv;function jC(e,n={}){let r=new Xc({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 UC=(...e)=>xv({Codec:Wc,Boolean:Pa,String:xa},...e);function AC(e){let n=lx(()=>Bm([Nc(e),Iy(),Py(),wy(),Hc(n),Ly(Nc(),n)]));return n}function DC(e,n){return new ix({type:"pipe",in:Mm(e),out:n})}var cF={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 lF(e){Yt({customError:e});}function uF(){return Yt().customError}var fx;fx||(fx={});var Y={...Fc,...gm,iso:_a},dF=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 mF(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 pF(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 FC(e,n){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return Y.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 Y.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=pF(t,n),s=In(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 Y.null();if(t.length===0)return Y.never();if(t.length===1)return Y.literal(t[0]);if(t.every(s=>typeof s=="string"))return Y.enum(t);let i=t.map(s=>Y.literal(s));return i.length<2?i[0]:Y.union([i[0],i[1],...i.slice(2)])}if(e.const!==void 0)return Y.literal(e.const);let r=e.type;if(Array.isArray(r)){let t=r.map(i=>{let s={...e,type:i};return FC(s,n)});return t.length===0?Y.never():t.length===1?t[0]:Y.union(t)}if(!r)return Y.any();let o;switch(r){case "string":{let t=Y.string();if(e.format){let i=e.format;i==="email"?t=t.check(Y.email()):i==="uri"||i==="uri-reference"?t=t.check(Y.url()):i==="uuid"||i==="guid"?t=t.check(Y.uuid()):i==="date-time"?t=t.check(Y.iso.datetime()):i==="date"?t=t.check(Y.iso.date()):i==="time"?t=t.check(Y.iso.time()):i==="duration"?t=t.check(Y.iso.duration()):i==="ipv4"?t=t.check(Y.ipv4()):i==="ipv6"?t=t.check(Y.ipv6()):i==="mac"?t=t.check(Y.mac()):i==="cidr"?t=t.check(Y.cidrv4()):i==="cidr-v6"?t=t.check(Y.cidrv6()):i==="base64"?t=t.check(Y.base64()):i==="base64url"?t=t.check(Y.base64url()):i==="e164"?t=t.check(Y.e164()):i==="jwt"?t=t.check(Y.jwt()):i==="emoji"?t=t.check(Y.emoji()):i==="nanoid"?t=t.check(Y.nanoid()):i==="cuid"?t=t.check(Y.cuid()):i==="cuid2"?t=t.check(Y.cuid2()):i==="ulid"?t=t.check(Y.ulid()):i==="xid"?t=t.check(Y.xid()):i==="ksuid"&&(t=t.check(Y.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"?Y.number().int():Y.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=Y.boolean();break}case "null":{o=Y.null();break}case "object":{let t={},i=e.properties||{},s=new Set(e.required||[]);for(let[u,d]of Object.entries(i)){let m=In(d,n);t[u]=s.has(u)?m:m.optional();}if(e.propertyNames){let u=In(e.propertyNames,n),d=e.additionalProperties&&typeof e.additionalProperties=="object"?In(e.additionalProperties,n):Y.any();if(Object.keys(t).length===0){o=Y.record(u,d);break}let m=Y.object(t).passthrough(),p=Y.looseRecord(u,d);o=Y.intersection(m,p);break}if(e.patternProperties){let u=e.patternProperties,d=Object.keys(u),m=[];for(let g of d){let f=In(u[g],n),h=Y.string().regex(new RegExp(g));m.push(Y.looseRecord(h,f));}let p=[];if(Object.keys(t).length>0&&p.push(Y.object(t).passthrough()),p.push(...m),p.length===0)o=Y.object({}).passthrough();else if(p.length===1)o=p[0];else {let g=Y.intersection(p[0],p[1]);for(let f=2;f<p.length;f++)g=Y.intersection(g,p[f]);o=g;}break}let c=Y.object(t);e.additionalProperties===false?o=c.strict():typeof e.additionalProperties=="object"?o=c.catchall(In(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=>In(u,n)),c=i&&typeof i=="object"&&!Array.isArray(i)?In(i,n):void 0;c?o=Y.tuple(s).rest(c):o=Y.tuple(s),typeof e.minItems=="number"&&(o=o.check(Y.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(Y.maxLength(e.maxItems)));}else if(Array.isArray(i)){let s=i.map(u=>In(u,n)),c=e.additionalItems&&typeof e.additionalItems=="object"?In(e.additionalItems,n):void 0;c?o=Y.tuple(s).rest(c):o=Y.tuple(s),typeof e.minItems=="number"&&(o=o.check(Y.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(Y.maxLength(e.maxItems)));}else if(i!==void 0){let s=In(i,n),c=Y.array(s);typeof e.minItems=="number"&&(c=c.min(e.minItems)),typeof e.maxItems=="number"&&(c=c.max(e.maxItems)),o=c;}else o=Y.array(Y.any());break}default:throw new Error(`Unsupported type: ${r}`)}return o}function In(e,n){if(typeof e=="boolean")return e?Y.any():Y.never();let r=FC(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=>In(d,n)),u=Y.union(c);r=o?Y.intersection(r,u):u;}if(e.oneOf&&Array.isArray(e.oneOf)){let c=e.oneOf.map(d=>In(d,n)),u=Y.xor(c);r=o?Y.intersection(r,u):u;}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)r=o?r:Y.any();else {let c=o?r:In(e.allOf[0],n),u=o?0:1;for(let d=u;d<e.allOf.length;d++)c=Y.intersection(c,In(e.allOf[d],n));r=c;}e.nullable===true&&n.version==="openapi-3.0"&&(r=Y.nullable(r)),e.readOnly===true&&(r=Y.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))dF.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 NC(e,n){if(typeof e=="boolean")return e?Y.any():Y.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=mF(r,n?.defaultTarget),t=r.$defs||r.definitions||{},i={version:o,defs:t,refs:new Map,processing:new Set,rootSchema:r,registry:n?.registry??bn};return In(r,i)}var gx={};fn(gx,{bigint:()=>bF,boolean:()=>hF,date:()=>_F,number:()=>gF,string:()=>fF});function fF(e){return F_(xa,e)}function gF(e){return H_(Ia,e)}function hF(e){return Q_(Pa,e)}function bF(e){return tv(ka,e)}function _F(e){return mv(qc,e)}Yt(jd());var vF=/^[a-z0-9._]{1,100}$/,Ei={Persisted:"persisted",Transient:"transient"},zi={Internal:"internal",External:"external"},Oi={Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}},yF="readOnly";function Jn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[yF]===true||(n[r]=o);}return a.object(n)}function Pn(e){let n=Jn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(vF)}):n}var {Unrestricted:Dn}=Oi,{Transient:Wn,Persisted:xF}=Ei,{Internal:So,External:ji}=zi;a.object({page:a.coerce.number().int().min(1).default(1).meta(Dn),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(Dn)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji});var Rt=a.object({created_at:a.string().datetime().meta({...Dn,readOnly:true}),updated_at:a.string().datetime().meta({...Dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji}),xt=a.object({id:a.string().min(1).meta({...Dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji}),Ct=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...Dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":So});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji});var hx=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":Wn,"x-revturbine-schema-exposure":ji}),bx=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji}),LC=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":ji});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":So});var ii=a.string().min(1).max(200),rn=a.string().min(1).max(100),Hm=a.string().max(500).optional(),or=a.record(a.string(),a.unknown()).default({}),Io=a.number().int().min(10).max(100).multipleOf(10),Km=a.string().datetime().nullable().default(null),Qt=a.object({environment_id:a.string().min(1).default("production").meta({...Dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":So}),on=a.object({playbook_version_id:a.string().nullable().default(null).meta(Dn),is_current:a.boolean().default(true).meta({...Dn,readOnly:true}),is_deleted:a.boolean().default(false).meta({...Dn,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...Dn,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...Dn,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...Dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":So}),SF=xt.merge(Rt).merge(Ct).merge(Qt).extend({handle:rn.meta({...Dn,readOnly:true}),active:a.boolean().default(true).meta({...Dn,readOnly:true})});function kn(e){return SF.meta({id:e,"x-revturbine-schema-persistence":xF,"x-revturbine-schema-exposure":So})}a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":Wn,"x-revturbine-schema-exposure":So});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":Wn,"x-revturbine-schema-exposure":So});var BC=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":Wn,"x-revturbine-schema-exposure":ji}),IF=new Set(hx.options);function Yc(e,n){if(!re(e))return null;let r=typeof e.output_id=="string"?e.output_id:"";if(!r)return null;let o=re(e.surface)?e.surface:{},t=IF.has(o.type)?o.type:"custom",i=re(e.cta_path)?e.cta_path:re(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:re(e.content)?e.content:{},...re(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 PF="__no_dim__";function ZC(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)??PF,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 kF=999999;function TF(e){return e==null||e==="unlimited"||e===kF}function Qc(e){return TF(e)?Number.POSITIVE_INFINITY:typeof e=="number"&&Number.isFinite(e)?e:void 0}function $F(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 qC(e,n,r){return e.map(o=>{let t=o.targets!=null&&o.targets.length>0?o.targets.some(s=>$F(s,n)):n.currentPlanId!=null&&o.planIds.includes(n.currentPlanId)||n.currentPlanHandle!=null&&o.planIds.includes(n.currentPlanHandle),i=ZC(o.segmentIds,n.segmentIds,s=>r?.[s]);return {rule:o,matchesPlan:t,matchesSegment:i,matched:t&&i}})}function HC(e){let n=e.fields??{};switch(e.kind){case "usage_limit":return Qc(n.limit_value)??0;case "credits":return Qc(n.allowance_value!==void 0?n.allowance_value:n.allowance)??0;case "seat":return Qc(n.included_count)??0;case "feature":return n.enabled===true?1:0;default:return 0}}function KC(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 wF(e){return KC(e,n=>HC(n.rule))?.rule}function _x(e,n,r){let o=e.entitlementRules[n];if(!o||o.length===0)return;let t=qC(o,r,e.segmentDimensions);return wF(t.filter(i=>i.matched))}function RF(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 CF(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 ZC(RF(e),n,t=>o.get(t))}function VC(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 el(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(ie=>typeof ie?.unique_handle=="string"&&ie.unique_handle===n),g=typeof p?.unique_handle=="string"?p.unique_handle:n,f=typeof p?.unique_handle=="string"?p.unique_handle:void 0,h=!!(u&&u.size>0&&(u.has(n)||u.has(g)||f!==void 0&&u.has(f)));if(h&&(d===void 0||d===""))return {status:"allowed",allowed:true,reason:"granted_by_reverse_trial"};let x=String((h&&d?d:t)||"").toLowerCase(),S=(o.plans??[]).find(ie=>typeof ie.unique_handle=="string"&&ie.unique_handle.toLowerCase()===x),E=typeof S?.unique_handle=="string"?S.unique_handle:x||void 0,$=(o.entitlement_rules??[]).filter(ie=>{if((typeof ie.entitlement_id=="string"?ie.entitlement_id:typeof ie.entitlementId=="string"?ie.entitlementId:"")!==g)return false;let Re=Array.isArray(ie.targets)?ie.targets.filter(X=>re(X)&&X.kind==="plan"&&typeof X.id=="string").map(X=>X.id):Array.isArray(ie.plan_ids)?ie.plan_ids.filter(X=>typeof X=="string"):Array.isArray(ie.planIds)?ie.planIds.filter(X=>typeof X=="string"):[];return !(E!==void 0&&!Re.includes(E)||!CF(ie,i,o.segments??[]))});if($.length===0)return {status:"denied",allowed:false,reason:"no_matching_entitlement_rule"};let B=ie=>re(ie.type_fields)?ie.type_fields:re(ie.typeFields)?ie.typeFields:{},ce=KC($,ie=>{let at=B(ie);return HC({kind:typeof at.kind=="string"?at.kind:"",fields:at})})??$[0],me=B(ce);typeof me.kind=="string"?me.kind:void 0;let J=ie=>{let at=c?.[ie];if(re(at)&&typeof at.amount=="number")return at.amount},fe=r?.used??(Number.isFinite(s[n])?s[n]:void 0)??(Number.isFinite(s[g])?s[g]:void 0)??J(n)??J(g)??0;return Gm(me,fe)}function MC(e,n,r){return {...e,limit:n,used:r,remaining:Math.max(0,n-r)}}function GC(e){return e==="feature"||e==="usage_limit"||e==="limit"||e==="credits"||e==="capability_tier"}function Gm(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=Qc(e.limit_value);return o!==void 0&&Number.isFinite(o)&&o>=0?MC(VC(n>=o,e.enforcement,"usage_limit_reached"),o,n):{status:"allowed",allowed:true}}if(r==="credits"){let o=e.allowance===void 0?void 0:Qc(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)?MC(VC(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 vx(e,n){if(!re(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=re(e.placement)?Yc(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 yx(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 EF=0;function zF(){return `core_${Date.now()}_${++EF}`}function JC(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}var xx=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=zF(),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:JC(`${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:JC("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=_x(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(GC(u.kind))return Gm(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 WC(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 tl(e,n){return e.filter(r=>!r.predicates||r.predicates.length===0?false:r.predicates.every(o=>WC(o,n))).map(r=>r.handle)}function Sx(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=WC(e,n);return {field:r,operator:o,expected:t,actual:s,matched:c}}function Jm(e){let n="";return e.forEach(r=>{n+=String.fromCharCode(r);}),btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Wm(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),Jm(r)}async function Ix(e,n){let r=Ko(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 Wm(o).slice(0,22)}function Px(e){return [e.slotId||"",e.surfaceType||"",e.entitlementHandle||"",e.planHandle||"",e.placementHandle||""].join("::")}function kx(e){let n=vi({placementId:e.placementId,userId:e.userId,contextMode:e.contextMode??"auto",overrides:e.overrides??{},traits:e.traits??{},route:Ko(e.route),...e.runtimeContextFingerprint?{runtimeContextFingerprint:e.runtimeContextFingerprint}:{}});return `${e.tenantId}:${e.placementId}:${e.userId}:${Wm(n)}`}function YC(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=mh(o);if(i.length!==0)for(let s of e){if(s.output_id===o.output_id||s.surface.template!==t)continue;let c=dh(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=re(s.content)?s.content:{};return {output:s,order:bt(c.milestone_order)??Number.NEGATIVE_INFINITY}}).filter(s=>Number.isFinite(s.order));if(t.length<=1)continue;let i=t.reduce((s,c)=>c.order>s.order?c:s);for(let s of t)s.output.output_id!==i.output.output_id&&n.add(s.output.output_id);}return e.filter(o=>!n.has(o.output_id))}function XC(e){let r=(re(e.content)?e.content:{}).__trigger_entitlement_handle;return typeof r=="string"&&r.length>0?r:null}function OF(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=XC(e),t=XC(n);if(o&&t)return {leftKey:o,rightKey:t}}return {leftKey:e.surface.type??"",rightKey:n.surface.type??""}}function Xm(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=yi(t.category),c=yi(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}=OF(t,i,s);u===d&&n.add(i.output_id);}}return e.filter(r=>!n.has(r.output_id))}function Tx(e,n=false,r){let o=e;if(r?.fixedOnly&&(o=o.filter(u=>yi(u.category)===1)),o.length===0)return null;let t=YC(o);if(t.length===0)return null;let i=t.some(u=>_c(u)!==null),s=i?t:Xm(t);return s.length===0?null:[...s].sort((u,d)=>{if(i){let P=_c(u),x=_c(d);if(P!==null&&x!==null&&P!==x)return P-x;if(P!==null&&x===null)return -1;if(P===null&&x!==null)return 1}let m=yi(u.category),p=yi(d.category),g=m-p;if(g!==0)return g;if(m===2){let P=uh(u)-uh(d);if(P!==0)return P;let x=lh(d)-lh(u);if(x!==0)return x}let f=bc(d)-bc(u);if(f!==0)return f;let h=cd(d)-cd(u);return h!==0?h:u.output_id.localeCompare(d.output_id)})[0]??null}function jF(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function $x(e,n,r,o){let t=re(o)?o:{},i=re(t.decision)?t.decision:{},s=re(t.content)?t.content:re(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:jF(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 Ym(e){let n=[],r=[e,e.content,re(e.content)?e.content.payload:void 0,re(e.content)?e.content.placement:void 0,re(e.content)?e.content.surface:void 0];for(let o of r){if(!re(o))continue;let t=re(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=nh(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 wx(e,n,r,o,t="impression"){if(yi(e.category)<=1)return {allowed:true};let i=Ym(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=rh(p.period,o),f=s.seenAt.filter(h=>h>=g&&h<=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 Ta(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 nl(e){return e.replace(/_(minutes|minute|credits|credit|seats|seat)$/i,"").replace(/_usage$/i,"").trim()}function UF(e,n){let r=Ta(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 Ta(s)}}function AF(e){let n=Ta(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 $a(e){let n={},r=e.providers;if(e.userId&&(n.user_id=e.userId),e.base)for(let[f,h]of Object.entries(e.base))(typeof h=="string"||typeof h=="number")&&(n[f]=h);let o=r?.plan?.currentPlanHandle,t=r?.plan?.currentPlanName??o;typeof t=="string"&&t.length>0&&(n.plan_name=t);let i=r?.plan?.trialDaysRemaining;i!==void 0&&Number.isFinite(i)&&(n.trial_days_remaining=i);let s=r?.plan?.trialDaysTotal;s!==void 0&&Number.isFinite(s)&&(n.trial_days_total=s);let c=r?.traits?.traits??{};for(let[f,h]of Object.entries(c))(typeof h=="string"||typeof h=="number")&&(n[f]=h);let u=r?.entitlements?.usage??{};for(let[f,h]of Object.entries(u)){let P=nl(f);if(!P)continue;let x=Ta(h.used),w=Ta(h.remaining),S=Ta(h.limit);if(x!==void 0&&(n[`${P}_usage_current`]=x,n.usage_current===void 0&&(n.usage_current=x),n.current_usage===void 0&&(n.current_usage=x)),S!==void 0&&(n[`${P}_usage_limit`]=S,n.usage_limit===void 0&&(n.usage_limit=S),n.current_limit===void 0&&(n.current_limit=S)),w!==void 0)n[`${P}_usage_remaining`]=w,n.usage_remaining===void 0&&(n.usage_remaining=w);else if(x!==void 0&&S!==void 0){let I=Math.max(0,S-x);n[`${P}_usage_remaining`]=I,n.usage_remaining===void 0&&(n.usage_remaining=I);}if(x!==void 0&&S!==void 0&&S>0){let I=Math.min(100,Math.round(x/S*100));n[`${P}_usage_percent`]=I,n.usage_percent===void 0&&(n.usage_percent=I);}let E=h.reset_date;typeof E=="string"&&E.length>0&&(n[`${P}_reset_date`]=E,n.reset_date===void 0&&(n.reset_date=E));}let d=r?.rules?.entitlementRules??{};for(let[f,h]of Object.entries(d)){if(!Array.isArray(h)||h.length===0)continue;let P=h.find(I=>I.kind==="usage_limit"||I.kind==="usage_rate"||I.kind==="credits"||I.kind==="seat");if(!P)continue;let x=nl(f);if(!x)continue;let w=P.fields??{},S=UF(w,o);S!==void 0&&n[`${x}_usage_limit`]===void 0&&(n[`${x}_usage_limit`]=S);let E=AF(w);E!==void 0&&(n[`${x}_usage_warning_threshold_percent`]=E);}e.userName&&e.userName.length>0&&(n.user_name=e.userName);let m=r?.plan?.currentPlanPrice;typeof m=="string"&&m.length>0&&(n.plan_price=m),e.upgradePlan?.name&&(n.upgrade_plan_name=e.upgradePlan.name),e.upgradePlan?.price&&(n.upgrade_plan_price=e.upgradePlan.price),e.trialPlanName&&e.trialPlanName.length>0&&(n.trial_plan_name=e.trialPlanName),e.promoDiscount&&e.promoDiscount.length>0&&(n.promo_discount=e.promoDiscount),e.featuresLostOnDowngrade&&e.featuresLostOnDowngrade.length>0&&(n.features_lost_on_downgrade=e.featuresLostOnDowngrade);let p=e.effectiveGrants;if(p)for(let[f,h]of Object.entries(p)){if(h.allocation==="per_user"||h.allocation==="per_user_pooled"||!h.allocation){let P=nl(f);if(!P)continue;h.used!==void 0&&n[`${P}_usage_current`]===void 0&&(n[`${P}_usage_current`]=h.used),h.limit!==void 0&&n[`${P}_usage_limit`]===void 0&&(n[`${P}_usage_limit`]=h.limit);}if(h.enforcement&&(h.status==="limited"||h.status==="denied")){let P=nl(f);P&&n[`${P}_enforcement`]===void 0&&(n[`${P}_enforcement`]=h.enforcement),n.enforcement_mode===void 0&&(n.enforcement_mode=h.enforcement);}}let g=r?.rules?.entitlementRules??{};for(let[f,h]of Object.entries(g)){if(!Array.isArray(h))continue;let P=nl(f);if(P)for(let x of h){if(x.kind==="credits"){let w=n[`${P}_usage_remaining`];w!==void 0&&n.credits_remaining===void 0&&(n.credits_remaining=w);}if(x.kind==="seat"){let w=n[`${P}_usage_current`],S=n[`${P}_usage_limit`];w!==void 0&&n.seat_count===void 0&&(n.seat_count=w),S!==void 0&&n.seat_limit===void 0&&(n.seat_limit=S);}}}if(e.featureInteractions&&p){let{invokedFeatureHandles:f,interactionCounts:h,topFeaturesByEngagement:P}=e.featureInteractions,x=new Set(f),w=new Set;for(let[I,$]of Object.entries(p))($.status==="denied"||$.status==="limited")&&w.add(I);let S=0,E=0;for(let I of f)w.has(I)&&(S++,h&&(E+=h[I]??0));if(n.gated_features_used_count=S,h&&(n.gated_action_count=E),P){let I=P.find($=>!x.has($)&&w.has($));I&&(n.top_unused_gated_feature=I);}if(r?.plan?.trialActive){let I=0;for(let $ of f)$ in p&&I++;n.trial_features_used=I;}}return n}function Rx(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 Qm(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 ep(e,n,r){let o=mo(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={...ei(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:Qm(i,t,s)}}function Cx(e){let{context:n,exportedConfig:r,usageBalances:o,usageTokenPrefixByEntitlement:t,usageThresholdLookup:i}=e,s={};for(let[w,S]of Object.entries(n.personalization??{}))/^(usage_(current|limit|remaining|percent)|.+_usage_(current|limit|remaining|percent)|plan_name|user_id)$/i.test(w)||(s[w]=S);let c={...s},u=mo(r,n.plan);u?c.plan_name=u:typeof n.plan=="object"&&n.plan?.name&&(c.plan_name=n.plan.name);let d={...ei(n.usage),...o},m=Object.entries(d).filter(([,w])=>Number.isFinite(w)).sort(([w],[S])=>w.localeCompare(S)),p,g,f,h,P=[];for(let[w,S]of m){let E=t.get(w)??Go(w);if(!E)continue;let $=i(w)?.limit,B=$!==void 0?Math.max(0,$-S):void 0,ce=$!==void 0&&$>0?Math.min(100,Math.round(S/$*100)):void 0;c[`${E}_usage_current`]=S,$!==void 0&&(c[`${E}_usage_limit`]=$),B!==void 0&&(c[`${E}_usage_remaining`]=B),ce!==void 0&&(c[`${E}_usage_percent`]=ce),P.push({prefix:E,current:S,...$!==void 0?{limit:$}:{},...B!==void 0?{remaining:B}:{},...ce!==void 0?{percent:ce}:{}}),p===void 0&&(p=S,g=$,f=B,h=ce);}let x=P.find(w=>w.prefix==="core")??P.find(w=>w.limit!==void 0)??P[0];return x&&(p=x.current,g=x.limit,f=x.remaining,h=x.percent),p!==void 0&&(c.usage_current=p),g!==void 0&&(c.usage_limit=g),f!==void 0&&(c.usage_remaining=f),h!==void 0&&(c.usage_percent=h),c}function Ex(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 zx(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 Ox(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 QC={Named:"named",Minted:"minted"},eE="x-revturbine-schema-identity";function Tr(e="handle"){return {[eE]:{kind:QC.Named,handleField:e}}}function pr(e="handle"){return {[eE]:{kind:QC.Minted,handleField:e}}}var ut={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},mr={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},NF="x-revturbine-context",LF="x-revturbine-in-config",BF="x-revturbine-sdk-input",VF="x-revturbine-source",MF="x-revturbine-deprecation",ZF={[ut.Playbook]:mr.Customer,[ut.Branding]:mr.Customer,[ut.Billing]:mr.Stripe,[ut.Metering]:mr.Customer,[ut.CustomerOperations]:mr.Runtime,[ut.EventIngestion]:mr.Runtime};function Dt(e,n){return {[NF]:e,[LF]:n.inConfig??e===ut.Playbook,[BF]:n.sdkInput,[VF]:n.source??ZF[e]}}function rl(e){return {deprecated:true,[MF]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var Ye=e=>a.object({items:a.array(e)}),Zt=a.object({error:a.string(),code:a.string(),request_id:a.string()}),O=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 tp=new Int32Array(2);new Float32Array(tp.buffer);new Float64Array(tp.buffer);new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var np;(function(e){e[e.UTF8_BYTES=1]="UTF8_BYTES",e[e.UTF16_STRING=2]="UTF16_STRING";})(np||(np={}));var HF=4294967295;var KF=HF;function Ux(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 jx(e,n){if(!e)return true;if(!n)return false;switch(e.kind){case "trial_started":{if(n.trialActive!==true)return false;let r=Ux(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 mE(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 pE(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 fE(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 Ra(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 Ca(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 Ax(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 Dx(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=Ax(t,n):r[o]=t;return r}function gE(e,n){return Dx(e,n)}function ip(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=Ca(i,t),p=s?.segmentDimensions;for(let g of c){let f=g.default_message_block_id,h,P=g.ui_path_id,x=g.promotion_id;if(g.segment_content_map){if(p&&Object.keys(p).length>0){let I=new Map;for(let $ of g.segment_content_map){let B=$.dimension;if(!B)continue;let ce=I.get(B)??[];ce.push($),I.set(B,ce);}if(I.size>0){let $=true,B;for(let[,ce]of I){let me=ce.find(W=>d.has(W.segment_id));if(!me){$=false;break}B||(B=me);}if($&&B)f=B.message_block_id,h=B.segment_id,B.ui_path_id&&(P=B.ui_path_id),B.promotion_id&&(x=B.promotion_id);else if(!$)continue}else for(let $ of g.segment_content_map)if(d.has($.segment_id)){f=$.message_block_id,h=$.segment_id,$.ui_path_id&&(P=$.ui_path_id),$.promotion_id&&(x=$.promotion_id);break}}else for(let I of g.segment_content_map)if(d.has(I.segment_id)){f=I.message_block_id,h=I.segment_id,I.ui_path_id&&(P=I.ui_path_id),I.promotion_id&&(x=I.promotion_id);break}}let w=u.get(f);if(!w||w.status!=="active")continue;let S={...w.default_content};if(w.segment_overrides){let I=h?w.segment_overrides.find($=>$.segment_value_id===h):w.segment_overrides.find($=>d.has($.segment_value_id));I&&(S={...S,...I.content},h=I.segment_value_id);}let E=gE(S,m);return {payload:g,messageBlock:w,resolvedContent:E,matchedSegmentId:h,uiPathId:P,promotionId:x}}return null}async function ol(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=Ca(o,u);for(let m of s){let p=m.default_message_block_id,g,f=m.ui_path_id,h=m.promotion_id;if(m.segment_content_map){for(let I of m.segment_content_map)if(c.has(I.segment_id)){p=I.message_block_id,g=I.segment_id,I.ui_path_id&&(f=I.ui_path_id),I.promotion_id&&(h=I.promotion_id);break}}let P=await Promise.resolve(r.getMessageBlockById(p));if(!P||P.status!=="active")continue;let x={...P.default_content};if(P.segment_overrides){let I=g?P.segment_overrides.find($=>$.segment_value_id===g):P.segment_overrides.find($=>c.has($.segment_value_id));I&&(x={...x,...I.content},g=I.segment_value_id);}let w=gE(x,d),S;f&&r.getUiPathById&&(S=await Promise.resolve(r.getUiPathById(f)));let E;return h&&r.getPromotionById&&(E=await Promise.resolve(r.getPromotionById(h))),{payload:m,messageBlock:P,resolvedContent:w,matchedSegmentId:g,uiPathId:f,promotionId:h,uiPath:S??void 0,promotion:E??void 0}}return null}function GF(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 JF(e,n){let r=GF(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 WF(e,n){if(!n)return null;let r=JF(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 sE(e,n){if(!e)return true;let r=WF(e,n);return r===null?false:r>=e.thresholdPercent}var{Unrestricted:le}=Oi,{Persisted:al,Transient:Ui}=Ei,{External:fr,Internal:XF}=zi,hE=Dt(ut.Playbook,{sdkInput:true}),YF=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),QF=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),e6=Dt(ut.Playbook,{inConfig:false,sdkInput:false,source:mr.Runtime}),t6=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]),n6={other_conversion:["none_always_on","overage_vs_upgrade","time_bound"],retention:["payment_failed","payment_at_risk"]};function r6(e){return n6[e]??[]}function i6(e,n){return r6(n).includes(e)}var bE=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),_E=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),o6=a.object({count:a.number().int().positive().meta(le),period:_E.meta(le)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr});a.object({surface_type:a.string().min(1).meta(le),rules:a.array(o6).meta(le),cooldown_ms:a.number().int().nonnegative().optional().meta(le)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":al,"x-revturbine-schema-exposure":fr,"x-revturbine-data-classification":"operational",...QF});var a6=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":Ui,"x-revturbine-schema-exposure":fr}),wa=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true}),name:ii.meta(le),handle:rn.meta(le),description:Hm.meta(le),category:bE.meta(le),drag_order_in_category:a.number().int().default(0).meta(le),surface_slot_id:a.string().optional().meta(le),entitlement_id:a.string().optional().meta(le),tier_threshold:a.string().optional().meta(le),threshold_percent:Io.optional().meta(le),trial_type:a.enum(["free","reverse"]).optional().meta(le),trigger_type:a.string().optional().meta(le),trial_progress_percent:a.number().min(0).max(100).optional().meta(le),days_before_end:a.number().int().min(0).optional().meta(le),qualifier:t6.optional().meta(le),activation_window_start:a.string().datetime().optional().meta(le),activation_window_end:a.string().datetime().optional().meta(le),metadata:or.meta(le)}).meta({id:"Placement","x-revturbine-schema-persistence":al,"x-revturbine-schema-exposure":fr,...hE,...Tr()}),s6=kn("PlacementAnchor"),c6=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),l6=a.object({code:c6.meta(le),message:a.string().min(1).meta(le),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(le)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),cE=wa.extend({warnings:a.array(l6).optional().meta(le)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),u6=a.object({label:a.string().min(1).max(200).meta(le),cta_path_type:a6.meta(le),config_fields:a.record(a.string(),a.unknown()).default({}).meta(le)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Ui,"x-revturbine-schema-exposure":fr}),il=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...le,readOnly:true}),handle:rn.meta({...le,readOnly:true}),placement_id:a.string().min(1).meta(le),drag_order:a.number().int().default(0).meta(le),target_plan_ids:a.array(a.string()).default([]).meta(le),target_plan_billing_cadences:a.array(a.string()).default([]).meta(le),target_segments:a.array(a.string()).default([]).meta(le),surface_slot_ids:a.array(a.string()).default([]).meta(le),surface_template_id:a.string().min(1).meta(le),content_fields:a.record(a.string(),a.unknown()).default({}).meta(le),cta_list:a.array(u6).default([]).meta(le),max_per_period:a.number().int().min(0).nullable().default(null).meta(le),max_period_unit:_E.default("session").meta(le),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(le),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(le),recommendation_plan_override:a.string().optional().meta(le)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":al,"x-revturbine-schema-exposure":fr,...hE,...pr()}),d6=kn("PlacementPayloadAnchor");xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({handle:rn.meta({...le,readOnly:true}),placement_payload_id:a.string().min(1).meta(le),experiment_id:a.string().min(1).meta(le),variant_name:a.string().min(1).max(200).meta(le),is_control:a.boolean().default(false).meta(le),traffic_allocation_percent:a.number().min(0).max(100).meta(le),override_fields:a.record(a.string(),a.unknown()).default({}).meta(le),status:a.enum(["active","paused","complete"]).default("active").meta(le)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":al,"x-revturbine-schema-exposure":XF,...YF,...pr()});var m6=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({surface_slot_handle:a.string().min(1).max(200).meta(le),surface_type:hx.meta(le),surface_template_ids:a.array(a.string()).default([]).meta(le),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(le),first_seen:a.string().datetime().meta({...le,readOnly:true}),last_seen:a.string().datetime().meta({...le,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(le),placement_count:a.number().int().min(0).default(0).meta({...le,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":al,"x-revturbine-schema-exposure":fr,...e6,...Tr("surface_slot_handle")}),p6=Jn(wa),f6=Jn(il);({"/api/placement-anchors":{get:O({operationId:"listPlacementAnchors",requestParams:{query:Qe},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:Ye(s6)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:O({operationId:"listPlacements",requestParams:{query:Qe},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:Ye(wa)}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"list"}}}),post:O({operationId:"createPlacement",summary:"Create placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:Pn(wa)}}},responses:{201:{description:"Created",content:{"application/json":{schema:cE}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"create"}}})},"/api/placements/{placementId}":{get:O({operationId:"getPlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Get placement",tags:["placements"],responses:{200:{description:"Placement detail",content:{"application/json":{schema:wa}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"get"}}}),patch:O({operationId:"updatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Update placement",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:p6}}},responses:{200:{description:"Updated",content:{"application/json":{schema:cE}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"update"}}}),delete:O({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:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"delete"}}})},"/api/placements/{placementId}/duplicate":{post:O({operationId:"duplicatePlacement",requestParams:{path:a.object({placementId:a.string()})},summary:"Duplicate placement",tags:["placements"],responses:{201:{description:"Duplicated",content:{"application/json":{schema:wa}}}},"x-revturbine-operation":{exposure:"external",resource:"placements",persistence:{table:"placementVersions",mode:"duplicate"}}})},"/api/placements/reorder":{post:O({operationId:"reorderPlacements",summary:"Reorder placements within category",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:a.object({category:bE,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:O({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:Ye(d6)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-payload-anchors",persistence:{table:"placementPayloads",mode:"list"}}})},"/api/placements/{placementId}/payloads":{get:O({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:Ye(il)}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"list"}}}),post:O({operationId:"createPlacementPayload",requestParams:{path:a.object({placementId:a.string()})},summary:"Create placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:Pn(il)}}},responses:{201:{description:"Created",content:{"application/json":{schema:il}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"create"}}})},"/api/placement-payloads/{payloadId}":{patch:O({operationId:"updatePlacementPayload",requestParams:{path:a.object({payloadId:a.string()})},summary:"Update placement payload",tags:["placements"],requestBody:{required:true,content:{"application/json":{schema:f6}}},responses:{200:{description:"Updated",content:{"application/json":{schema:il}}}},"x-revturbine-operation":{exposure:"external",resource:"placement-payloads",persistence:{table:"placementPayloadVersions",mode:"update"}}}),delete:O({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:O({operationId:"listSurfaceSlots",requestParams:{query:Qe},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:Ye(m6)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});function lE(e,n,r){if(!e)return true;if(!i6(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 uE(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 vE={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 g6(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 h6(e){let n={};for(let[r,o]of Object.entries(e)){if(typeof o=="string"){n[r]=g6(o,e);continue}n[r]=o;}return n}function yE(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 xE(e,n){if(e==="qualifier"&&!(typeof n!="string"||n.length===0))return {kind:"qualifier",qualifier:n}}function b6(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 xE(n,r)}function _6(e){if(e)return xE(e.kind,e.qualifier)}function SE(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 v6(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 SE(r,n,o)}function y6(e,n){if(e)return SE(e.kind,n,e.thresholdPercent)}function IE(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 x6(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 IE(r,n,o)}function S6(e,n){if(e)return IE(e.kind,n,e.tierThreshold)}function I6(e){if(!e||typeof e!="object"||!("entitlement_handle"in e))return;let n=e.entitlement_handle;return typeof n=="string"?n:void 0}function P6(e){if(!e||typeof e!="object"||!("slot_id"in e))return;let n=e.slot_id;return typeof n=="string"?n:void 0}function k6(e,n){let r={...vE};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=yE(d.ctas?.[0]),h=Array.isArray(u.target?.plan_ids)?u.target.plan_ids:[],P=I6(c.trigger),x=P6(c.trigger),w=fE(c.trigger),S=v6(c.trigger,P),E=b6(c.trigger),I=x6(c.trigger,P),$={output_id:u.id,category:c.category,surface:{template:m,type:p,slot_id:c.id},content:{...g,__target_plan_ids:h,...P?{__trigger_entitlement_handle:P}:{},...w?{__trigger_kind:w.kind}:{}},cta_path:f,rule_id:c.id,decision_id:u.id,config_version:e.version,present_upsell:true},B=i.get(m)??[];B.push({output:$,entryOrder:c.order??0,entryCategory:c.category,triggerEntitlementHandle:P,triggerSlotId:x,trialTrigger:w,thresholdTrigger:S,qualifierTrigger:E,entitlementGateTrigger:I}),i.set(m,B);let ce=c.id.replace(/^pl_/,"");s.set(ce,$),s.set(c.id,$);}for(let c of i.values())c.sort((u,d)=>u.entryOrder-d.entryOrder);return {outputsByTemplate:i,outputsByName:s,planHandleToId:o,tierLaddersByHandle:t}}function T6(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 $6(e,n){return n.trigger.kind!=="surface_render"?void 0:e.getSlot(n.trigger.slotIdx)?.sourceId}function w6(e){let n={...vE};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 h=yE(m.ctas[0]),P=[];for(let W of d.target.planIdxs){let J=e.getPlan(W);J&&P.push(J.sourceId);}let x=T6(e,u),w=$6(e,u),S=pE(u.trigger),E=y6(u.trigger,x),I=_6(u.trigger),$=S6(u.trigger,x),B={output_id:d.sourceId,category:u.category,surface:{template:p,type:g,slot_id:u.sourceId},content:{...f,__target_plan_ids:P,...x?{__trigger_entitlement_handle:x}:{},...S?{__trigger_kind:S.kind}:{}},cta_path:h,rule_id:u.sourceId,decision_id:d.sourceId,config_version:s,present_upsell:true},ce=t.get(p)??[];ce.push({output:B,entryOrder:u.order,entryCategory:u.category,triggerEntitlementHandle:x,triggerSlotId:w,trialTrigger:S,thresholdTrigger:E,qualifierTrigger:I,entitlementGateTrigger:$}),t.set(p,ce);let me=u.sourceId.replace(/^pl_/,"");i.set(me,B),i.set(u.sourceId,B);}for(let c of t.values())c.sort((u,d)=>u.entryOrder-d.entryOrder);return {outputsByTemplate:t,outputsByName:i,planHandleToId:r,tierLaddersByHandle:o}}function R6(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 Ra({payloads:i,messageBlocks:r,uiPaths:e.content_ui_paths,promotions:e.content_promotions,tokens:e.personalization_tokens})}function C6(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===KF)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 Ra({payloads:s,messageBlocks:t})}function PE(e){let{source:n,impressionHistory:r}=e,{outputsByTemplate:o,outputsByName:t,planHandleToId:i,tierLaddersByHandle:s}=n.format==="flatbuffer"?w6(n.handle):k6(n.exportedConfig,n.placements),c=n.format==="json"?R6(n.exportedConfig,n.placements):C6(n.handle);function u(d,m,p,g){let f=Array.isArray(d.content.__target_plan_ids)?d.content.__target_plan_ids.filter(P=>typeof P=="string"):[],h=Array.isArray(d.content.__target_billing_periods)?d.content.__target_billing_periods.filter(P=>typeof P=="string"):[];return Ox({target_plan_ids:f,target_billing_periods:h,category:d.category},{currentPlanId:m,planHandle:p,billingPeriod:g}).eligible}return async(d,m,p)=>{let g=p?.__providers,f=g?.plan?.currentPlanHandle,h=g?.plan?.billingPeriod,P=f?i.get(f):void 0,x=Re=>typeof Re=="string"?Re:"",w=Array.isArray(m?.metadata?.surface_template_ids)?m.metadata.surface_template_ids:void 0,S,E=[];if(w&&w.length>0){let Re=[];for(let se of w){let Tt=o.get(se);Tt&&Re.push(...Tt);}if(Re.length===0)return dE(d,"no_candidates_for_template","No placements configured for this surface template");Re.sort((se,Tt)=>se.entryOrder-Tt.entryOrder);let X=m?.metadata?.entitlement_handle,_t=m?.metadata?.surface_slot_category,Ke=_t?{gated:["gated"],fixed:["fixed"],triggered:["usage_credit_seat","trials","other_conversion","retention"]}[_t]:void 0,ge=Re;if(X){let se=Re.filter(Tt=>Tt.triggerEntitlementHandle===X);se.length>0&&(ge=se);}let ot=m?.metadata?.surface_slot_id;if(ot){let se=ge.filter(Tt=>Tt.triggerSlotId===ot);se.length>0&&(ge=se);}if(Ke&&_t!=="fixed"&&ge.length>1){let se=ge.filter(Tt=>Ke.includes(Tt.entryCategory));se.length>0&&(ge=se);}r&&(ge=ge.filter(se=>!r.isHiddenSync(se.output.rule_id??""))),ge=ge.filter(se=>jx(se.trialTrigger,g?.plan)),ge=ge.filter(se=>sE(se.thresholdTrigger,g?.entitlements)),ge=ge.filter(se=>lE(se.qualifierTrigger,se.entryCategory,g?.plan)),ge=ge.filter(se=>uE(se.entitlementGateTrigger,s,g?.entitlements));let un,G=[],ee=Ux(g?.plan);if(ee!==null&&ge.length>1){let se=ge.map(pn=>({ruleId:pn.output.rule_id??void 0,entryOrder:pn.entryOrder,trialTrigger:pn.trialTrigger,output:pn.output})),Tt=mE(se,ee);if(Tt){un=Tt.winner,G=Tt.supersededIds;let pn=Tt.winner.ruleId;ge=ge.filter(Ho=>Ho.trialTrigger?.kind!=="trial_progress"||(Ho.output.rule_id??void 0)===pn);}}let Ae;for(let se of ge)if(u(se.output,P,f,h)){S=se.output,Ae=se;break}Ae&&un&&un.ruleId===(Ae.output.rule_id??void 0)&&G.length>0&&(S={...S,content:{...S.content,__superseded_placement_ids:G}}),S||(E=["no_eligible_candidate"]);}else {let Re=m?.name,X=(Re?t.get(Re):void 0)??t.get(d.placementId),_t;if(X)for(let st of o.values()){let Ke=st.find(ge=>ge.output===X);if(Ke){_t=Ke;break}}X&&r?.isHiddenSync(X.rule_id??"")?E=["placement_retired"]:X&&!jx(_t?.trialTrigger,g?.plan)?E=["trial_trigger_unmet"]:X&&!sE(_t?.thresholdTrigger,g?.entitlements)?E=["threshold_trigger_unmet"]:X&&!lE(_t?.qualifierTrigger,_t?.entryCategory??X.category,g?.plan)?E=["qualifier_trigger_unmet"]:X&&!uE(_t?.entitlementGateTrigger,s,g?.entitlements)?E=["entitlement_gate_unmet"]:X&&u(X,P,f,h)?S=X:X?E=["plan_target_mismatch"]:E=["placement_not_found"];}if(!S){let Re=E[0]??"placement_not_found";return dE(d,Re,"Placement not configured")}let I=S.content,$=S.surface.template;if(c&&$){let Re={userId:typeof d.userId=="string"?d.userId:"",segmentIds:g?.segments?.segmentIds??[]},X=await ol($,Re,c,{});X&&(I={...S.content,...X.resolvedContent});}let B={...I},ce=typeof B.entitlement=="string"?B.entitlement:typeof B.__trigger_entitlement_handle=="string"?B.__trigger_entitlement_handle:void 0,me=ce?g?.entitlements?.usage?.[ce]:void 0;if(me){B.usage_remaining=Number.isFinite(me.remaining)?me.remaining:0,B.usage_limit=Number.isFinite(me.limit)?me.limit:0,B.usage_current=Number.isFinite(me.used)?me.used:0,B.usage_percent=me.limit>0?Math.min(100,Math.round(me.used/me.limit*100)):0;let Re=me.reset_date;typeof Re=="string"&&Re.length>0&&(B.reset_date=Re);}let W=h6(B),J={...S,content:W},at=!((S.category==="upsell"||S.category==="trial_conversion")&&f==="enterprise");return {placementId:d.placementId,requestId:`local_${Date.now()}`,visible:at,decisionSource:"fallback",reasonCodes:at?[]:["plan_tier_suppressed"],content:{header:x(J.content.header),body:x(J.content.body),cta_label:x(J.content.cta_label),title:x(J.content.header),cta:x(J.content.cta_label)},output:J}}}function dE(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 Po(e){return PE({source:{format:"json",exportedConfig:e.exportedConfig,placements:e.placements},impressionHistory:e.impressionHistory})}var kE=a.enum(["session","day","week","month"]),TE=a.object({kind:a.enum(["template","slot"]),id:a.string(),label:a.string().optional()});a.object({id:a.string(),group:a.array(TE),cap:a.object({count:a.number().int().min(1),period:kE})});var wE=a.enum(["trial_started","trial_ending","trial_ended","trial_converted"]);a.object({stages:a.array(wE).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}=Oi,{Persisted:Zx,Transient:qt}=Ei,{Internal:EE,External:Ft}=zi,zE=Dt(ut.Playbook,{sdkInput:true}),j6=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),Va=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":qt,"x-revturbine-schema-exposure":Ft}),qx=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),U6=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),A6=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),sp=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Fx=a.object({entitlement_id:a.string().min(1).meta(V),entitlement_handle:a.string().min(1).meta(V),status:U6.meta(V),limit:a.number().optional().meta(V),used:a.number().optional().meta(V),allocation:qx.optional().meta(V),enforcement:sp.optional().meta(V),source:A6.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":qt,"x-revturbine-schema-exposure":Ft,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),Fx).optional().meta(V),instance:a.record(a.string(),Fx).optional().meta(V),user:a.record(a.string(),Fx).optional().meta(V)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft,"x-revturbine-data-classification":"operational"});var D6=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),F6=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),OE=a.object({kind:F6.meta(V),id:a.string().min(1).meta(V)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),jE=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Mx=a.union([a.number(),a.literal("unlimited")]).nullable().optional(),N6=a.looseObject({kind:a.literal("feature").meta(V),enabled:a.boolean().optional().meta(V)}).meta({id:"EntitlementTypeFieldsFeature","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),L6=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":qt,"x-revturbine-schema-exposure":Ft}),B6=a.looseObject({kind:a.literal("usage_limit").meta(V),limit_value:Mx.meta(V),unit:a.string().optional().meta(V),period:Va.optional().meta(V),enforcement:sp.optional().meta(V)}).meta({id:"EntitlementTypeFieldsUsageLimit","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),V6=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:Va.optional().meta(V)}).meta({id:"EntitlementTypeFieldsPricePerUnit","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),M6=a.looseObject({kind:a.literal("rate_limit").meta(V),rate_value:a.number().optional().meta(V),period_scope:Va.optional().meta(V),enforcement:sp.optional().meta(V)}).meta({id:"EntitlementTypeFieldsRateLimit","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Z6=a.looseObject({kind:a.literal("credits").meta(V),allowance:Mx.meta(V),initial_grant:a.number().optional().meta(V),unit:a.string().optional().meta(V),period:Va.optional().meta(V),reset_period:jE.optional().meta(V),rollover:a.boolean().optional().meta(V),max_balance:Mx.meta(V),top_up_available:a.boolean().optional().meta(V)}).meta({id:"EntitlementTypeFieldsCredits","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),q6=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":qt,"x-revturbine-schema-exposure":Ft}),H6=a.looseObject({}).meta({id:"EntitlementTypeFieldsUntyped","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),K6=[N6,L6,B6,V6,M6,Z6,q6],G6=a.union([...K6,H6]).meta({id:"EntitlementTypeFields","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Ua=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...V,readOnly:true}),name:ii.meta(V),handle:rn.meta(V),customer_facing_description:a.string().max(500).optional().meta(V),type:bx.meta(V),unit:a.string().max(100).optional().meta(V),period_scope:Va.optional().meta(V),allocation:qx.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:or.meta(V)}).meta({id:"Entitlement","x-revturbine-schema-persistence":Zx,"x-revturbine-schema-exposure":Ft,...zE,...Tr()}),J6=kn("EntitlementAnchor"),pl=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...V,readOnly:true}),handle:rn.meta({...V,readOnly:true}),entitlement_id:a.string().min(1).meta(V),targets:a.array(OE).min(1).meta(V),segment_ids:a.array(a.string()).default([]).meta(V),visibility:D6.default("public").meta(V),period_scope:Va.optional().meta(V),instance:a.string().max(100).optional().meta(V),reset_period:jE.optional().meta(V),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(V),enforcement:sp.optional().meta(V),warning_threshold_percent:Io.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":Zx,"x-revturbine-schema-exposure":EE,...zE,...pr()}),W6=kn("EntitlementRuleAnchor");pl.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 X6=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Y6=a.object({code:X6.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":qt,"x-revturbine-schema-exposure":Ft}),Nx=pl.extend({warnings:a.array(Y6).optional().meta(V)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":qt,"x-revturbine-schema-exposure":Ft}),Lx=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({handle:rn.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":Zx,"x-revturbine-schema-exposure":EE,...j6,...pr()}),Q6=Jn(Ua),eN=Jn(pl);({"/api/entitlement-anchors":{get:O({operationId:"listEntitlementAnchors",requestParams:{query:Qe},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:Ye(J6)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:O({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:Ye(W6)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:O({operationId:"listEntitlements",requestParams:{query:Qe},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:Ye(Ua)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"list"}}}),post:O({operationId:"createEntitlement",summary:"Create entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:Pn(Ua)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Ua}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"create"}}})},"/api/entitlements/{entitlementId}":{get:O({operationId:"getEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Get entitlement",tags:["entitlements"],responses:{200:{description:"Entitlement detail",content:{"application/json":{schema:Ua}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"get"}}}),patch:O({operationId:"updateEntitlement",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Update entitlement",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:Q6}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ua}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"update"}}}),delete:O({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:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlements",persistence:{table:"entitlementVersions",mode:"delete"}}})},"/api/entitlements/{entitlementId}/rules":{get:O({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:Ye(pl)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"list"}}}),post:O({operationId:"createEntitlementRule",requestParams:{path:a.object({entitlementId:a.string()})},summary:"Create entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:Pn(pl)}}},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:O({operationId:"updateEntitlementRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update entitlement rule",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:eN}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Nx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rules",persistence:{table:"entitlementRuleVersions",mode:"update"}}}),delete:O({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:O({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:O({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:Ye(Lx)}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"list"}}}),post:O({operationId:"createEntitlementRuleVariant",requestParams:{path:a.object({ruleId:a.string()})},summary:"Create rule A/B variant",tags:["entitlements"],requestBody:{required:true,content:{"application/json":{schema:Pn(Lx)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Lx}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:_e}=Oi,{Persisted:fl,Transient:gl}=Ei,{Internal:Zr}=zi,UE=Dt(ut.Playbook,{sdkInput:true}),AE=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),tN=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":gl,"x-revturbine-schema-exposure":Zr}),Hx=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":gl,"x-revturbine-schema-exposure":Zr}),DE=a.object({name:ii.meta(_e),handle:rn.meta(_e),plan_id:a.string().nullable().optional().meta(_e),segment_id:a.string().nullable().optional().meta(_e),trial_limit_type:Hx.default("time").meta(_e),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(_e),grace_period_days:a.number().int().min(0).default(0).meta(_e),usage_entitlement_handle:a.string().min(1).optional().meta(_e),usage_limit_value:a.number().int().min(1).optional().meta(_e),require_payment_method:a.boolean().default(false).meta(_e),auto_convert:a.boolean().default(true).meta(_e),convert_to_plan_id:a.string().optional().meta(_e),fallback_plan_id:a.string().optional().meta(_e),limit_per_customer:a.number().int().min(1).default(1).meta(_e),is_active:a.boolean().default(true).meta(_e),metadata:or.meta(_e)}),Ea=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({..._e,readOnly:true})}).merge(DE).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":Zr,...UE,...Tr()}),nN=kn("FreeTrialRuleAnchor"),rN=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":gl,"x-revturbine-schema-exposure":Zr}),FE=a.object({name:ii.meta(_e),handle:rn.meta(_e),premium_plan_id:a.string().min(1).meta(_e),fallback_plan_id:a.string().min(1).meta(_e),segment_id:a.string().nullable().optional().meta(_e),trial_limit_type:Hx.default("time").meta(_e),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(_e),usage_entitlement_handle:a.string().min(1).optional().meta(_e),usage_limit_value:a.number().int().min(1).optional().meta(_e),start_policy:rN.default("signup").meta(_e),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(_e),entitlements_during_trial:a.array(a.string()).default([]).meta(_e),is_active:a.boolean().default(true).meta(_e),metadata:or.meta(_e)}),za=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({..._e,readOnly:true})}).merge(FE).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":Zr,...UE,...Tr()}),iN=kn("ReverseTrialRuleAnchor"),NE=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":gl,"x-revturbine-schema-exposure":Zr}),LE=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":gl,"x-revturbine-schema-exposure":Zr}),Oa=xt.merge(Rt).merge(Ct).extend({trial_limit_policy:NE.default("1_per_lifetime").meta(_e),eligibility_scope:LE.default("per_customer").meta(_e)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":Zr,...AE}),ja=xt.merge(Rt).merge(Ct).extend({trial_limit_policy:NE.default("1_per_lifetime").meta(_e),eligibility_scope:LE.default("per_customer").meta(_e)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":Zr,...AE}),op=xt.merge(Rt).merge(Ct).extend({customer_id:a.string().min(1).meta(_e),rule_id:a.string().min(1).meta(_e),rule_type:a.enum(["free_trial","reverse_trial"]).meta(_e),plan_id:a.string().min(1).meta(_e),status:tN.default("active").meta(_e),started_at:a.string().datetime().meta({..._e,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(_e),trial_limit_type:Hx.default("time").meta(_e),usage_entitlement_handle:a.string().min(1).optional().meta(_e),usage_limit_value:a.number().int().min(1).optional().meta(_e),converted_at:Km.meta(_e),cancelled_at:Km.meta(_e),metadata:or.meta(_e)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":fl,"x-revturbine-schema-exposure":Zr});({"/api/free-trial-rule-anchors":{get:O({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:Ye(nN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-rule-anchors",persistence:{table:"freeTrialRules",mode:"list"}}})},"/api/trials/free-rules":{get:O({operationId:"listFreeTrialRules",requestParams:{query:Qe},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:Ye(Ea)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"list"}}})},"/api/trials/free-rules/{ruleId}":{get:O({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:Ea}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"get"}}}),patch:O({operationId:"updateFreeTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update free trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:Ea.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ea}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-rules",persistence:{table:"freeTrialRuleVersions",mode:"update"}}}),delete:O({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:O({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:Ye(iN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rule-anchors",persistence:{table:"reverseTrialRules",mode:"list"}}})},"/api/trials/reverse-rules":{get:O({operationId:"listReverseTrialRules",requestParams:{query:Qe},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:Ye(za)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"list"}}})},"/api/trials/reverse-rules/{ruleId}":{get:O({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:za}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"get"}}}),patch:O({operationId:"updateReverseTrialRule",requestParams:{path:a.object({ruleId:a.string()})},summary:"Update reverse trial rule",tags:["trials"],requestBody:{required:true,content:{"application/json":{schema:za.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:za}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-rules",persistence:{table:"reverseTrialRuleVersions",mode:"update"}}}),delete:O({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:O({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:Ye(Oa)}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"list"}}})},"/api/trials/free-settings/{settingsId}":{get:O({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:Oa}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"get"}}}),patch:O({operationId:"updateFreeTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update free 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:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"update"}}})},"/api/trials/reverse-settings":{get:O({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:Ye(ja)}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"list"}}})},"/api/trials/reverse-settings/{settingsId}":{get:O({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:ja}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"get"}}}),patch:O({operationId:"updateReverseTrialSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update reverse 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:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:O({operationId:"listTrialInstances",requestParams:{query:Qe},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:Ye(op)}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"list"}}})},"/api/trials/instances/{instanceId}":{get:O({operationId:"getTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Get trial instance",tags:["trials"],responses:{200:{description:"Trial instance",content:{"application/json":{schema:op}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"get"}}})},"/api/trials/instances/{instanceId}/cancel":{post:O({operationId:"cancelTrialInstance",requestParams:{path:a.object({instanceId:a.string()})},summary:"Cancel an active trial",tags:["trials"],responses:{200:{description:"Cancelled",content:{"application/json":{schema:op}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})},"/api/trials/instances/{instanceId}/convert":{post:O({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:op}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:et,Financial:ap}=Oi,{Persisted:hl,Transient:cp}=Ei,{External:oi}=zi,oN=Dt(ut.Playbook,{sdkInput:true}),aN=Dt(ut.Playbook,{sdkInput:false}),Kx=Dt(ut.Billing,{sdkInput:false}),Ma=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":cp,"x-revturbine-schema-exposure":oi}),bl=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":cp,"x-revturbine-schema-exposure":oi}),lp=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":cp,"x-revturbine-schema-exposure":oi}),Aa=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...et,readOnly:true}),name:ii.meta(et),handle:rn.meta(et),tier_position:a.number().int().min(0).default(0).meta(et),sort_order:a.number().int().default(0).meta(et),metadata:or.meta(et)}).meta({id:"Plan","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":oi,...oN,...Tr()}),sN=kn("PlanAnchor"),Da=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...et,readOnly:true}),handle:rn.meta({...et,readOnly:true}),plan_id:a.string().min(1).meta(et),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(et),segment_id:a.string().nullable().default(null).meta(et),price_amount:a.number().min(0).meta(ap),pricing_model:bl.meta(et),visibility:Ma.default("public").meta(et),stripe_price_id:a.string().optional().meta(et),price_source:lp.default("static").meta(et)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":oi,...Kx,...pr()}),cN=kn("PlanVariationAnchor"),Fa=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...et,readOnly:true}),name:ii.meta(et),handle:rn.meta(et),sort_order:a.number().int().default(0).meta(et),metadata:or.meta(et)}).meta({id:"AddOn","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":oi,...aN,...Tr()}),lN=kn("AddOnAnchor"),Na=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...et,readOnly:true}),handle:rn.meta({...et,readOnly:true}),addon_id:a.string().min(1).meta(et),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(et),segment_id:a.string().nullable().default(null).meta(et),price_amount:a.number().min(0).meta(ap),pricing_model:bl.meta(et),visibility:Ma.default("public").meta(et),stripe_price_id:a.string().optional().meta(et),price_source:lp.default("static").meta(et)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":oi,...Kx,...pr()}),uN=kn("AddOnVariationAnchor"),dN=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":cp,"x-revturbine-schema-exposure":oi}),La=xt.merge(Rt).merge(Ct).extend({stripe_price_id:a.string().min(1).meta(et),stripe_product_id:a.string().min(1).meta(et),billing_period:dN.meta(et),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(ap),currency:LC.meta(ap),pricing_model:bl.meta(et),nickname:a.string().nullable().default(null).meta(et),is_mock:a.boolean().default(false).meta(et),last_updated_from_stripe:Km.meta(et)}).meta({id:"StripePrice","x-revturbine-schema-persistence":hl,"x-revturbine-schema-exposure":oi,...Kx}),mN=Jn(Aa),pN=Jn(Da),fN=Jn(Fa),gN=Jn(Na),hN=Jn(La);({"/api/plan-anchors":{get:O({operationId:"listPlanAnchors",requestParams:{query:Qe},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:Ye(sN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:O({operationId:"listPlans",requestParams:{query:Qe},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:Ye(Aa)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"list"}}}),post:O({operationId:"createPlan",summary:"Create plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:Pn(Aa)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:Aa}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"create"}}})},"/api/plans/{planId}":{get:O({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:Aa}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"get"}}}),patch:O({operationId:"updatePlan",requestParams:{path:a.object({planId:a.string()})},summary:"Update plan",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:mN}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:Aa}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"update"}}}),delete:O({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:Zt}}}},"x-revturbine-operation":{exposure:"external",resource:"plans",persistence:{table:"planVersions",mode:"delete"}}})},"/api/plans/reorder":{post:O({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:O({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:Ye(cN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-variation-anchors",persistence:{table:"planVariations",mode:"list"}}})},"/api/plans/{planId}/variations":{get:O({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:Ye(Da)}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"list"}}}),post:O({operationId:"createPlanVariation",requestParams:{path:a.object({planId:a.string()})},summary:"Create plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:Pn(Da)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:Da}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"create"}}})},"/api/plan-variations/{variationId}":{get:O({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:Da}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"get"}}}),patch:O({operationId:"updatePlanVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update plan variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:pN}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:Da}}}},"x-revturbine-operation":{exposure:"external",resource:"plan-variations",persistence:{table:"planVariationVersions",mode:"update"}}}),delete:O({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:O({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:Ye(lN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:O({operationId:"listAddOns",requestParams:{query:Qe},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:Ye(Fa)}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"list"}}}),post:O({operationId:"createAddOn",summary:"Create add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:Pn(Fa)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:Fa}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"create"}}})},"/api/addons/{addonId}":{get:O({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:Fa}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"get"}}}),patch:O({operationId:"updateAddOn",requestParams:{path:a.object({addonId:a.string()})},summary:"Update add-on",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:fN}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:Fa}}}},"x-revturbine-operation":{exposure:"external",resource:"addons",persistence:{table:"addonVersions",mode:"update"}}}),delete:O({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:O({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:Ye(uN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-variation-anchors",persistence:{table:"addonVariations",mode:"list"}}})},"/api/addons/{addonId}/variations":{get:O({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:Ye(Na)}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"list"}}}),post:O({operationId:"createAddOnVariation",requestParams:{path:a.object({addonId:a.string()})},summary:"Create add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:Pn(Na)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:Na}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"create"}}})},"/api/addon-variations/{variationId}":{get:O({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:Na}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"get"}}}),patch:O({operationId:"updateAddOnVariation",requestParams:{path:a.object({variationId:a.string()})},summary:"Update add-on variation",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:gN}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:Na}}}},"x-revturbine-operation":{exposure:"external",resource:"addon-variations",persistence:{table:"addonVariationVersions",mode:"update"}}}),delete:O({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:O({operationId:"listStripePrices",requestParams:{query:Qe},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:Ye(La)}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"list"}}}),post:O({operationId:"createStripePrice",summary:"Create Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:Pn(La)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:La}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"create"}}})},"/api/stripe-prices/{id}":{get:O({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:La}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"get"}}}),patch:O({operationId:"updateStripePrice",requestParams:{path:a.object({id:a.string()})},summary:"Update Stripe price",tags:["plans"],requestBody:{required:true,content:{"application/json":{schema:hN}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:La}}}},"x-revturbine-operation":{exposure:"external",resource:"stripe-prices",persistence:{table:"stripePrices",mode:"update"}}}),delete:O({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}=Oi,{Persisted:Za,Transient:Se}=Ei,{Internal:gr,External:De}=zi,ze=Dt(ut.Playbook,{sdkInput:true}),Ba=Dt(ut.Playbook,{sdkInput:false}),Di=Dt(ut.Playbook,{inConfig:false,sdkInput:false}),BE=Dt(ut.Playbook,{inConfig:false,sdkInput:true}),Ai=Dt(ut.Playbook,{inConfig:false,sdkInput:true,source:mr.CodeConstant}),dl=Dt(ut.Playbook,{inConfig:false,sdkInput:true,source:mr.Runtime}),ml=Dt(ut.Playbook,{inConfig:false,sdkInput:false,source:mr.Runtime}),bN=Dt(ut.Billing,{sdkInput:false}),_N=Dt(ut.Metering,{sdkInput:false}),vN=Dt(ut.Branding,{inConfig:true,sdkInput:true}),yN=Dt(ut.Branding,{sdkInput:false}),xN="1.0.0",sl=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),name:ii.meta(b),handle:rn.meta(b),description:Hm.meta(b),is_default:a.boolean().default(false).meta(b),entitlement_ids:a.array(a.string()).default([]).meta(b),metadata:or.meta(b)}).meta({id:"SeatType","x-revturbine-schema-persistence":Za,"x-revturbine-schema-exposure":gr,...Di,...Tr()}),SN=kn("SeatTypeAnchor"),cl=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:rn.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:or.meta(b)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":Za,"x-revturbine-schema-exposure":gr,...Di,...Tr()}),IN=kn("PersonalizationTokenAnchor"),PN=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":gr}),Bx=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({handle:rn.meta({...b,readOnly:true}),stripe_account_id:a.string().min(1).meta(b),live_mode:a.boolean().default(false).meta(b),onboarding_state:PN.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:or.meta(b)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":Za,"x-revturbine-schema-exposure":gr,...bN,...pr()});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":Se,"x-revturbine-schema-exposure":De,...yN});var ll=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({handle:rn.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:or.meta(b)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":Za,"x-revturbine-schema-exposure":gr,..._N,...pr()}),RE=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":gr}),ul=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:rn.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:RE.default("warn").meta(b),hard_limit_action:RE.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":Za,"x-revturbine-schema-exposure":gr,...BE,...pr()}),kN=kn("UsageEnforcementSettingsAnchor"),TN=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":Se,"x-revturbine-schema-exposure":gr}),$N=a.object({id:a.string().min(1).meta(b),group:a.array(TN).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":Se,"x-revturbine-schema-exposure":gr}),wN=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":gr}),VE=a.object({capRules:a.array($N).default([]).meta(b),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(b),testMode:wN.default("off").meta(b)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":gr}),Vx=xt.merge(Rt).merge(Ct).merge(Qt).merge(on).extend({anchor_id:a.string().min(1).meta({...b,readOnly:true}),handle:rn.meta({...b,readOnly:true}),global_frequency_cap:VE.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":Za,"x-revturbine-schema-exposure":gr,...BE,...pr()}),RN=kn("PlacementSettingsAnchor"),CN=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":Se,"x-revturbine-schema-exposure":De}),EN=a.object({name:a.string().min(1).meta(b),handle:a.string().min(1).meta(b),predicates:a.array(CN).optional().meta(b),dimension_id:a.string().optional().meta(b)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze}),zN=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:Ma.default("public").meta(b)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze}),ON=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:Ma.default("public").meta(b)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...Ba}),jN=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:bl.meta(b),visibility:Ma.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:lp.meta(b)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...Di}),UN=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:bl.meta(b),visibility:Ma.default("public").meta(b),stripe_price_id:a.string().nullable().default(null).meta(b),price_source:lp.meta(b)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...Di}),AN=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":Se,"x-revturbine-schema-exposure":De,...ze}),DN=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":Se,"x-revturbine-schema-exposure":De,...ze}),FN=a.object({handle:a.string().min(1).meta(b),global_frequency_cap:VE.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":Se,"x-revturbine-schema-exposure":De,...ze}),NN=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":Se,"x-revturbine-schema-exposure":De,...ze}),LN=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":Se,"x-revturbine-schema-exposure":De,...ze}),BN=a.object({unique_handle:a.string().min(1).meta(b),name:a.string().min(1).meta(b),type:bx.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":Se,"x-revturbine-schema-exposure":De,...ze}),VN=a.object({id:a.string().min(1).meta(b),entitlement_id:a.string().min(1).meta(b),targets:a.array(OE).min(1).meta(b),segment_ids:a.array(a.string()).default([]).meta(b),type_fields:G6.default({}).meta(b),current_usage:a.number().default(0).meta(b),allocation:qx.optional().meta(b)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze}),MN=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":Se,"x-revturbine-schema-exposure":De,...ze}),ZN=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":Se,"x-revturbine-schema-exposure":De,...ze}),qN=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":Se,"x-revturbine-schema-exposure":De}),HN=a.object({id:a.string().min(1).meta(b),surface_type:a.string().meta(b),fields:a.array(qN).optional().meta(b)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze}),KN=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":Se,"x-revturbine-schema-exposure":De}),GN=a.object({name:a.string().min(1).meta(b),action_type:KN.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":Se,"x-revturbine-schema-exposure":De,...ze}),JN=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":Se,"x-revturbine-schema-exposure":De,...ze}),WN=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":Se,"x-revturbine-schema-exposure":De,...ze}),CE=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":Se,"x-revturbine-schema-exposure":De}),XN=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:CE.meta(b),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:CE})).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":Se,"x-revturbine-schema-exposure":De,...ze}),YN=a.object({label:a.string().meta(b),path:BC.meta(b),config:a.record(a.string(),a.string()).optional().meta(b)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De}),ME=a.object({template_id:a.string().min(1).meta(b),fields:a.record(a.string(),a.string()).meta(b),ctas:a.array(YN).meta(b)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De}),ZE=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":Se,"x-revturbine-schema-exposure":De}),QN=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":Se,"x-revturbine-schema-exposure":De}),qE=a.object({max_per_period:QN.optional().meta(b),cooldown_days:a.number().int().min(0).optional().meta(b)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De}),eL=a.object({id:a.string().min(1).meta(b),target:ZE.meta(b),surfaces:a.array(ME).meta(b),caps:qE.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":Se,"x-revturbine-schema-exposure":De}),tL=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:Io}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:Io}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:Io}),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":Se,"x-revturbine-schema-exposure":De}),nL=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De}),rL=a.object({id:a.string().min(1).meta(b),name:a.string().min(1).meta(b),category:nL.meta(b),trigger:tL.meta(b),payloads:a.array(eL).meta(b),order:a.number().int().min(0).meta(b)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze}),iL=a.object({payload_id:a.string().min(1).meta(b),placement_id:a.string().min(1).meta(b),target:ZE.meta(b),caps:qE.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(ME).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":Se,"x-revturbine-schema-exposure":De,...ze}),oL=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":Se,"x-revturbine-schema-exposure":De,...ze}),aL=xt.merge(DE).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...Di}),sL=xt.merge(FE).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...Di}),cL=a.object({version:a.string().meta({...b,...Ai}),exported_at:a.string().datetime().optional().meta({...b,...dl,readOnly:true}),schema_version:a.string().optional().meta({...b,...Ai,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({...b,...Ai,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({...b,...dl,readOnly:true}),tenant_id:a.string().optional().meta({...b,...ml,readOnly:true}),environment_id:a.string().optional().meta({...b,...ml,readOnly:true}),plans:a.array(zN).meta({...b,...ze}),addons:a.array(ON).optional().meta({...b,...Ba}),entitlements:a.array(BN).meta({...b,...ze}),entitlement_rules:a.array(VN).meta({...b,...ze}),segments:a.array(EN).meta({...b,...ze}),content_ui_paths:a.array(GN).meta({...b,...ze}),slot_configs:a.array(MN).optional().meta({...b,...ze,...rl({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,...ze,...rl({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,...vN,...rl({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(ZN).optional().meta({...b,...ze}),message_blocks:a.array(XN).optional().meta({...b,...ze}),placement_payloads:a.array(iL).optional().meta({...b,...ze}),placements:a.array(rL).optional().meta({...b,...ze}),content_promotions:a.array(JN).optional().meta({...b,...ze}),personalization_tokens:a.array(WN).optional().meta({...b,...ze}),surface_templates:a.array(HN).optional().meta({...b,...ze}),free_trial_rules:a.array(aL).optional().meta({...b,...Ba}),reverse_trial_rules:a.array(sL).optional().meta({...b,...Ba}),plan_variations:a.array(jN).optional().meta({...b,...Ba}),addon_variations:a.array(UN).optional().meta({...b,...Ba}),extension_rules:a.array(oL).optional().meta({...b,...ze}),seat_types:a.array(AN).optional().meta({...b,...ze}),enforcement_defaults:a.array(DN).optional().meta({...b,...ze}),placement_settings:a.array(FN).optional().meta({...b,...ze}),segment_dimensions:a.array(NN).optional().meta({...b,...ze}),meter_bindings:a.array(LN).optional().meta({...b,...ze})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze,...rl({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),lL=a.object({artifact_type:a.literal("playbook").meta({...b,...Ai,readOnly:true}),format_version:a.literal(xN).meta({...b,...Ai,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({...b,...Ai}),playbook_version_id:a.string().nullable().default(null).meta({...b,...dl,readOnly:true}),tenant_id:a.string().min(1).meta({...b,...ml,readOnly:true}),environment_id:a.string().min(1).meta({...b,...ml,readOnly:true}),project_id:a.string().min(1).optional().meta({...b,...ml,readOnly:true}),exported_at:a.string().datetime().optional().meta({...b,...dl,readOnly:true}),schema_version:a.string().min(1).optional().meta({...b,...Ai,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({...b,...Ai,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...dl}),uL={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},dL=cL.omit(uL).extend({experiments:a.array(a.unknown()).max(0).optional().meta({...b,...Di}),signal_catalog:a.object({}).strict().optional().meta({...b,...Di})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze});lL.extend(dL.shape).meta({id:"Playbook","x-revturbine-schema-persistence":Se,"x-revturbine-schema-exposure":De,...ze});({"/api/seat-type-anchors":{get:O({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:Ye(SN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:O({operationId:"listSeatTypes",requestParams:{query:Qe},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:Ye(sl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"list"}}}),post:O({operationId:"createSeatType",summary:"Create seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Pn(sl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:sl}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"create"}}})},"/api/config/seat-types/{id}":{patch:O({operationId:"updateSeatType",requestParams:{path:a.object({id:a.string()})},summary:"Update seat type",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:sl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:sl}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-types",persistence:{table:"seatTypeVersions",mode:"update"}}}),delete:O({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:O({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:Ye(IN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:O({operationId:"listPersonalizationTokens",requestParams:{query:Qe},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:Ye(cl)}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"list"}}}),post:O({operationId:"createPersonalizationToken",summary:"Create personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Pn(cl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:cl}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"create"}}})},"/api/config/personalization-tokens/{id}":{patch:O({operationId:"updatePersonalizationToken",requestParams:{path:a.object({id:a.string()})},summary:"Update personalization token",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:cl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:cl}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-tokens",persistence:{table:"personalizationTokenVersions",mode:"update"}}}),delete:O({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:O({operationId:"upsertStripeIntegrationConfig",summary:"Create or update Stripe integration config",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Jn(Bx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:Bx}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:O({operationId:"listMeteringConfigs",requestParams:{query:Qe},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:Ye(ll)}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"list"}}}),post:O({operationId:"createMeteringConfig",summary:"Create metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Pn(ll)}}},responses:{201:{description:"Created",content:{"application/json":{schema:ll}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"create"}}})},"/api/config/metering/{meteringId}":{patch:O({operationId:"updateMeteringConfig",requestParams:{path:a.object({meteringId:a.string()})},summary:"Update metering configuration",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:ll.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ll}}}},"x-revturbine-operation":{exposure:"internal",resource:"metering-config",persistence:{table:"meteringConfigs",mode:"update"}}}),delete:O({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:O({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:Ye(kN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement-setting-anchors",persistence:{table:"usageEnforcementSettings",mode:"list"}}})},"/api/config/usage-enforcement":{get:O({operationId:"listUsageEnforcementSettings",requestParams:{query:Qe},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:Ye(ul)}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"list"}}}),post:O({operationId:"createUsageEnforcementSettings",summary:"Create usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Pn(ul)}}},responses:{201:{description:"Created",content:{"application/json":{schema:ul}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"create"}}})},"/api/config/usage-enforcement/{settingsId}":{patch:O({operationId:"updateUsageEnforcementSettings",requestParams:{path:a.object({settingsId:a.string()})},summary:"Update usage enforcement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:ul.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ul}}}},"x-revturbine-operation":{exposure:"internal",resource:"usage-enforcement",persistence:{table:"usageEnforcementSettingVersions",mode:"update"}}}),delete:O({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:O({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:Ye(RN)}}},default:{description:"Error response",content:{"application/json":{schema:Zt}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-setting-anchors",persistence:{table:"placementSettings",mode:"list"}}})},"/api/config/placement-settings":{put:O({operationId:"upsertPlacementSettings",summary:"Create or update global placement settings",tags:["config"],requestBody:{required:true,content:{"application/json":{schema:Jn(Vx)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:Vx}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});function Ha(){return typeof window>"u"||typeof document>"u"}function Fn(){return !Ha()}var _l=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();}},mL="revturbine:interaction-state",HE=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 `${mL}:${this.tenantId}:${this.userId}`}stateKey(e,n,r){return [this.tenantId,n,e,r||"default"].join(":")}},pL="revturbine:presentation-caps";function qa(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function fL(e){if(!qa(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 gL(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 KE=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=gL(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 `${pL}:${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,qa(e.content)?e.content.payload:void 0,qa(e.content)?e.content.placement:void 0,qa(e.content)?e.content.surface:void 0];for(let o of r){if(!qa(o))continue;let t=qa(o.caps)?o.caps:void 0;if(!t)continue;let i=[],s=fL(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}},Ka=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 GE(e){return [e.tenantId,e.userId,e.placementId,e.treatmentId||"default"].join(":")}function JE(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 hL=new Set(["dismissed","clicked_thru"]),bL=1440*60*1e3,Gx=class{constructor(e){this.retiredCache=null,this.suppressedCache=null,this.store=e.store,this.userId=e.userId,this.defaultSuppressionMs=e.defaultSuppressionMs??bL;}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);}},_L=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=WE(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.records.get(e)??[];return XE(n)}getSuppressedPlacements(e){let n=this.records.get(e)??[];return YE(n)}clear(e){this.records.delete(e);}},vL="revturbine:impression-history",up=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=WE(r,n)),r.slice().reverse()}getRetiredPlacementIds(e){let n=this.load(e);return XE(n)}getSuppressedPlacements(e){let n=this.load(e);return YE(n)}clear(e){this.storage.removeItem(this.key(e));}key(e){return `${vL}:${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 WE(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 XE(e){let n=new Set;for(let r of e)hL.has(r.outcome)&&n.add(r.placementId);return n}function YE(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 yL(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 xL(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 QE=class{constructor(e){this.registeredPlacements=new Map,this.tenantId=e.tenantId,this.userId=e.userId,this.exportedConfig=e.exportedConfig;let n=e.storage??new Ka;this.registry=new _l;for(let o of e.providers)this.registry.register(o);this.interactionTracker=new HE({storage:n,tenantId:e.tenantId,userId:e.userId,...e.interactionOptions}),this.capEnforcer=new KE({storage:n,tenantId:e.tenantId,userId:e.userId}),this.impressionHistory=new Gx({store:e.impressionStore??new _L,userId:e.userId});let r=e.customResolver??this.buildPlacementResolver(e);this.engine=new xx({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 tl(n,e)}buildTargetingState(e,n){return ep(e,this.exportedConfig,n)}async derivePersonalizationTokens(e){let n=await this.registry.resolveAll();return $a({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 Po({placements:n,exportedConfig:e.exportedConfig,impressionHistory:this.impressionHistory})}deriveEntitlementFromConfig(e,n){return el({handle:e,context:n,currentPlanHandle:"",segmentIds:new Set,usageBalances:{},exportedConfig:this.exportedConfig})??{status:"allowed",allowed:true,reason:"local_runtime_default_allow"}}},SL=["web-client","server"],IL=a.enum(SL),PL=["method","meta","component"],kL=a.enum(PL),TL=["ts","python","java","csharp","rust"];a.enum(TL);var $L=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(),wL=a.object({canonical:a.string().min(1),aliases:a.array(a.string().min(1)),kind:kL,appliesTo:a.array(IL).min(1),composes:a.string().min(1).optional(),perLanguage:$L.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"]}),RL=a.object({version:a.number().int().positive(),functions:a.array(wL).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);}});RL.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 Jx={workspace_name:"Your workspace",theme:{}};function ez(e){return !!e&&Object.keys(e).length>0}var tz=false;function Wx(e={}){let n=(r,o)=>({branding:{...Jx,...r,theme:{...Jx.theme,...r?.theme}},source:o});return ez(e.explicit)?n(e.explicit,"explicit"):e.legacyConfigTheme&&Object.keys(e.legacyConfigTheme).length>0?(e.warnOnLegacy!==false&&!tz&&CL()&&(tz=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")):ez(e.apiBranding)?n(e.apiBranding,"branding-api"):n(void 0,"default")}function CL(){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 nz="[REDACTED]",EL=/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g,zL=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,OL=/\d(?:[ -]?\d){12,18}/g;function jL(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 UL(e){let n=0,r=e.replace(EL,()=>(n+=1,nz));return r=r.replace(OL,o=>{let t=o.replace(/[ -]/g,"");return t.length>=13&&t.length<=19&&jL(t)?(n+=1,nz):o}),{value:r,count:n}}function Xx(e){let n=0,r=o=>{if(typeof o=="string"){let t=UL(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 AL(e){return zL.test(e.trim())}function DL(e){let n=e.trim().toLowerCase();return `eml_${LL(n).slice(0,16)}`}function Yx(e){return AL(e)?{value:DL(e),redacted:true}:{value:e,redacted:false}}function rz(e){let n=Yx(e.user_id??""),r=Xx({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 FL=[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 NL(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 qr(e,n){return e>>>n|e<<32-n}function LL(e){let n=NL(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 $=0;$<16;$+=1){let B=g+$*4;p[$]=(n[B]<<24|n[B+1]<<16|n[B+2]<<8|n[B+3])>>>0;}for(let $=16;$<64;$+=1){let B=qr(p[$-15],7)^qr(p[$-15],18)^p[$-15]>>>3,ce=qr(p[$-2],17)^qr(p[$-2],19)^p[$-2]>>>10;p[$]=p[$-16]+B+p[$-7]+ce>>>0;}let f=o,h=t,P=i,x=s,w=c,S=u,E=d,I=m;for(let $=0;$<64;$+=1){let B=qr(w,6)^qr(w,11)^qr(w,25),ce=w&S^~w&E,me=I+B+ce+FL[$]+p[$]>>>0,W=qr(f,2)^qr(f,13)^qr(f,22),J=f&h^f&P^h&P,fe=W+J>>>0;I=E,E=S,S=w,w=x+me>>>0,x=P,P=h,h=f,f=me+fe>>>0;}o=o+f>>>0,t=t+h>>>0,i=i+P>>>0,s=s+x>>>0,c=c+w>>>0,u=u+S>>>0,d=d+E>>>0,m=m+I>>>0;}return [o,t,i,s,c,u,d,m].map(g=>g.toString(16).padStart(8,"0")).join("")}var iz={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"},oz="control_plane_source";function Qx(e,n={}){return {eventName:e,properties:{[oz]:iz[e],...n}}}var vl=class{constructor(n){z(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 Fi(e){if(e)return e;if(Fn())try{return new vl(window.localStorage)}catch{}return new Ka}function eS(e){if(e)return e;if(Fn())try{return new vl(window.sessionStorage)}catch{}return new Ka}var BL=/^[a-z0-9._]{1,100}$/,Ht={Persisted:"persisted",Transient:"transient"},Kt={Internal:"internal",External:"external"},Gt={Pii:{"x-revturbine-data-classification":"pii"},Financial:{"x-revturbine-data-classification":"financial"},Unrestricted:{"x-revturbine-data-classification":"unrestricted"}};var VL="readOnly";function vn(e){let n={};for(let[r,o]of Object.entries(e.shape)){if(typeof o!="object"||o===null)continue;o.meta()?.[VL]===true||(n[r]=o);}return a.object(n)}function _n(e){let n=vn(e),r=n.shape.handle;return r&&typeof r.regex=="function"?n.extend({handle:r.regex(BL)}):n}var {Unrestricted:dn}=Gt,{Transient:Nn,Persisted:ML}=Ht,{Internal:To,External:ci}=Kt;a.object({page:a.coerce.number().int().min(1).default(1).meta(dn),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(dn)}).meta({id:"PaginationParams","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci});var ZL=e=>a.object({items:a.array(e).meta(dn),total:a.number().int().min(0).meta(dn),page:a.number().int().min(1).meta(dn),per_page:a.number().int().min(1).meta(dn),has_more:a.boolean().meta(dn)}).meta({id:"PaginatedResponse","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci}),pe=a.object({created_at:a.string().datetime().meta({...dn,readOnly:true}),updated_at:a.string().datetime().meta({...dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci}),ae=a.object({id:a.string().min(1).meta({...dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci}),be=a.object({tenant_id:a.string().min(1,"tenant_id is required").meta({...dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":To});a.enum(["monthly","annual","quarterly","one_time","usage_based"]).meta({id:"BillingCadence","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci});var _p=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":Nn,"x-revturbine-schema-exposure":ci}),hz=a.enum(["feature","capability_tier","usage_limit","price_per_unit","rate_limit","credits","seat"]).meta({id:"EntitlementType","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci}),qL=a.enum(["usd","eur","gbp"]).default("usd").meta({id:"Currency","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":ci});a.union([a.boolean(),a.number(),a.string()]).meta({id:"FeatureFlagValue","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":To});var Nt=a.string().min(1).max(200),ct=a.string().min(1).max(100),$o=a.string().max(500).optional(),Ut=a.record(a.string(),a.unknown()).default({}),$l=a.number().int().min(10).max(100).multipleOf(10),zt=a.string().datetime().nullable().default(null),dt=a.object({environment_id:a.string().min(1).default("production").meta({...dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":To}),ft=a.object({playbook_version_id:a.string().nullable().default(null).meta(dn),is_current:a.boolean().default(true).meta({...dn,readOnly:true}),is_deleted:a.boolean().default(false).meta({...dn,readOnly:true}),delete_date:a.string().datetime().nullable().default(null).meta({...dn,readOnly:true}),sequence:a.number().int().min(1).default(1).meta({...dn,readOnly:true}),base_sequence:a.number().int().nullable().default(null).meta({...dn,readOnly:true})}).meta({id:"null","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":To}),HL=ae.merge(pe).merge(be).merge(dt).extend({handle:ct.meta({...dn,readOnly:true}),active:a.boolean().default(true).meta({...dn,readOnly:true})});function an(e){return HL.meta({id:e,"x-revturbine-schema-persistence":ML,"x-revturbine-schema-exposure":To})}var gS=a.enum(["info","warning","critical"]).meta({id:"Severity","x-revturbine-schema-persistence":Nn,"x-revturbine-schema-exposure":To}),KL=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":Nn,"x-revturbine-schema-exposure":To}),bz=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":Nn,"x-revturbine-schema-exposure":ci}),Ze={Playbook:"playbook",Branding:"branding",Billing:"billing",Metering:"metering",CustomerOperations:"customer_operations",EventIngestion:"event_ingestion"},$r={Customer:"customer",Stripe:"stripe",CodeConstant:"code-constant",Runtime:"runtime"},GL="x-revturbine-context",JL="x-revturbine-in-config",WL="x-revturbine-sdk-input",XL="x-revturbine-source",YL="x-revturbine-deprecation",QL={[Ze.Playbook]:$r.Customer,[Ze.Branding]:$r.Customer,[Ze.Billing]:$r.Stripe,[Ze.Metering]:$r.Customer,[Ze.CustomerOperations]:$r.Runtime,[Ze.EventIngestion]:$r.Runtime};function lt(e,n){return {[GL]:e,[JL]:n.inConfig??e===Ze.Playbook,[WL]:n.sdkInput,[XL]:n.source??QL[e]}}function dp(e){return {deprecated:true,[YL]:{since:e.since,replacement:e.replacement,remove_after:e.removeAfter,reason:e.reason}}}var _z={Named:"named",Minted:"minted"},vz="x-revturbine-schema-identity";function yn(e="handle"){return {[vz]:{kind:_z.Named,handleField:e}}}function ar(e="handle"){return {[vz]:{kind:_z.Minted,handleField:e}}}var te=e=>a.object({items:a.array(e)}),we=a.object({error:a.string(),code:a.string(),request_id:a.string()}),y=e=>e,ne=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:tt,Financial:bp}=Gt,{Persisted:Ol,Transient:vp}=Ht,{External:li}=Kt,eB=lt(Ze.Playbook,{sdkInput:true}),tB=lt(Ze.Playbook,{sdkInput:false}),hS=lt(Ze.Billing,{sdkInput:false}),ds=a.enum(["public","unlisted","legacy"]).meta({id:"PlanVisibility","x-revturbine-schema-persistence":vp,"x-revturbine-schema-exposure":li}),jl=a.enum(["flat","per_unit","tiered","metered"]).meta({id:"PricingModel","x-revturbine-schema-persistence":vp,"x-revturbine-schema-exposure":li}),yp=a.enum(["stripe","static"]).meta({id:"PriceSource","x-revturbine-schema-persistence":vp,"x-revturbine-schema-exposure":li}),es=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...tt,readOnly:true}),name:Nt.meta(tt),handle:ct.meta(tt),tier_position:a.number().int().min(0).default(0).meta(tt),sort_order:a.number().int().default(0).meta(tt),metadata:Ut.meta(tt)}).meta({id:"Plan","x-revturbine-schema-persistence":Ol,"x-revturbine-schema-exposure":li,...eB,...yn()}),nB=an("PlanAnchor"),ts=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...tt,readOnly:true}),handle:ct.meta({...tt,readOnly:true}),plan_id:a.string().min(1).meta(tt),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(tt),segment_id:a.string().nullable().default(null).meta(tt),price_amount:a.number().min(0).meta(bp),pricing_model:jl.meta(tt),visibility:ds.default("public").meta(tt),stripe_price_id:a.string().optional().meta(tt),price_source:yp.default("static").meta(tt)}).meta({id:"PlanVariation","x-revturbine-schema-persistence":Ol,"x-revturbine-schema-exposure":li,...hS,...ar()}),rB=an("PlanVariationAnchor"),ns=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...tt,readOnly:true}),name:Nt.meta(tt),handle:ct.meta(tt),sort_order:a.number().int().default(0).meta(tt),metadata:Ut.meta(tt)}).meta({id:"AddOn","x-revturbine-schema-persistence":Ol,"x-revturbine-schema-exposure":li,...tB,...yn()}),iB=an("AddOnAnchor"),rs=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...tt,readOnly:true}),handle:ct.meta({...tt,readOnly:true}),addon_id:a.string().min(1).meta(tt),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(tt),segment_id:a.string().nullable().default(null).meta(tt),price_amount:a.number().min(0).meta(bp),pricing_model:jl.meta(tt),visibility:ds.default("public").meta(tt),stripe_price_id:a.string().optional().meta(tt),price_source:yp.default("static").meta(tt)}).meta({id:"AddOnVariation","x-revturbine-schema-persistence":Ol,"x-revturbine-schema-exposure":li,...hS,...ar()}),oB=an("AddOnVariationAnchor"),aB=a.enum(["monthly","annual","one_time","custom"]).meta({id:"StripePriceBillingPeriod","x-revturbine-schema-persistence":vp,"x-revturbine-schema-exposure":li}),is=ae.merge(pe).merge(be).extend({stripe_price_id:a.string().min(1).meta(tt),stripe_product_id:a.string().min(1).meta(tt),billing_period:aB.meta(tt),unit_amount_cents:a.number().int().min(0).nullable().default(null).meta(bp),currency:qL.meta(bp),pricing_model:jl.meta(tt),nickname:a.string().nullable().default(null).meta(tt),is_mock:a.boolean().default(false).meta(tt),last_updated_from_stripe:zt.meta(tt)}).meta({id:"StripePrice","x-revturbine-schema-persistence":Ol,"x-revturbine-schema-exposure":li,...hS});var sB=vn(es),cB=vn(ts),lB=vn(ns),uB=vn(rs),dB=vn(is);({"/api/plan-anchors":{get:y({operationId:"listPlanAnchors",requestParams:{query:ne},summary:"List plan anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan anchor list",content:{"application/json":{schema:te(nB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"plan-anchors",persistence:{table:"plans",mode:"list"}}})},"/api/plans":{get:y({operationId:"listPlans",requestParams:{query:ne},summary:"List plans",tags:["plans"],responses:{200:{description:"Plan list response",content:{"application/json":{schema:te(es)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:_n(es)}}},responses:{201:{description:"Created plan",content:{"application/json":{schema:es}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:es}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:sB}}},responses:{200:{description:"Updated plan",content:{"application/json":{schema:es}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:we}}}},"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:ne},summary:"List plan variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Plan variation anchor list",content:{"application/json":{schema:te(rB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List plan variations",tags:["plans"],responses:{200:{description:"Plan variations",content:{"application/json":{schema:te(ts)}}}},"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:_n(ts)}}},responses:{201:{description:"Created plan variation",content:{"application/json":{schema:ts}}}},"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:ts}}}},"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:cB}}},responses:{200:{description:"Updated plan variation",content:{"application/json":{schema:ts}}}},"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:ne},summary:"List add-on anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on anchor list",content:{"application/json":{schema:te(iB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"addon-anchors",persistence:{table:"addons",mode:"list"}}})},"/api/addons":{get:y({operationId:"listAddOns",requestParams:{query:ne},summary:"List add-ons",tags:["plans"],responses:{200:{description:"Add-on list",content:{"application/json":{schema:te(ns)}}}},"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:_n(ns)}}},responses:{201:{description:"Created add-on",content:{"application/json":{schema:ns}}}},"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:ns}}}},"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:lB}}},responses:{200:{description:"Updated add-on",content:{"application/json":{schema:ns}}}},"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:ne},summary:"List add-on variation anchors (identity registry)",tags:["plans"],responses:{200:{description:"Add-on variation anchor list",content:{"application/json":{schema:te(oB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List add-on variations",tags:["plans"],responses:{200:{description:"Add-on variations",content:{"application/json":{schema:te(rs)}}}},"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:_n(rs)}}},responses:{201:{description:"Created variation",content:{"application/json":{schema:rs}}}},"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:rs}}}},"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:uB}}},responses:{200:{description:"Updated variation",content:{"application/json":{schema:rs}}}},"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:ne},summary:"List Stripe prices",tags:["plans"],responses:{200:{description:"Stripe price list",content:{"application/json":{schema:te(is)}}}},"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:_n(is)}}},responses:{201:{description:"Created Stripe price",content:{"application/json":{schema:is}}}},"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:is}}}},"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:dB}}},responses:{200:{description:"Updated Stripe price",content:{"application/json":{schema:is}}}},"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:M}=Gt,{Persisted:bS,Transient:Jt}=Ht,{Internal:yz,External:Lt}=Kt,xz=lt(Ze.Playbook,{sdkInput:true}),mB=lt(Ze.Playbook,{inConfig:false,sdkInput:false}),ms=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":Jt,"x-revturbine-schema-exposure":Lt}),_S=a.enum(["account_pool","per_instance","per_user","per_user_pooled"]).meta({id:"UsageAllocation","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),pB=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementGrantStatus","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),fB=a.enum(["rule","user_context","override"]).meta({id:"EntitlementGrantSource","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),xp=a.enum(["hard_block","soft_block","degrade","allow_overage"]).meta({id:"EnforcementMode","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),wl=a.object({entitlement_id:a.string().min(1).meta(M),entitlement_handle:a.string().min(1).meta(M),status:pB.meta(M),limit:a.number().optional().meta(M),used:a.number().optional().meta(M),allocation:_S.optional().meta(M),enforcement:xp.optional().meta(M),source:fB.optional().meta(M),plan_id:a.string().optional().meta(M),segment_id:a.string().optional().meta(M),seat_type_id:a.string().optional().meta(M),rule_id:a.string().optional().meta(M)}).meta({id:"EntitlementGrant","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt,"x-revturbine-data-classification":"operational"});a.object({account:a.record(a.string(),wl).optional().meta(M),instance:a.record(a.string(),wl).optional().meta(M),user:a.record(a.string(),wl).optional().meta(M)}).meta({id:"EntitlementGrantSet","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt,"x-revturbine-data-classification":"operational"});var gB=a.enum(["public","non_public"]).meta({id:"RuleVisibility","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),hB=a.enum(["plan","plan_variation","addon","addon_variation"]).meta({id:"EntitlementRuleTargetKind","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),Sz=a.object({kind:hB.meta(M),id:a.string().min(1).meta(M)}).meta({id:"EntitlementRuleTarget","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),Iz=a.enum(["month","day","week","quarter","year","billing_period","on_purchase","hour","six_hours"]).meta({id:"EntitlementRulePeriodUnit","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),fS=a.union([a.number(),a.literal("unlimited")]).nullable().optional(),bB=a.looseObject({kind:a.literal("feature").meta(M),enabled:a.boolean().optional().meta(M)}).meta({id:"EntitlementTypeFieldsFeature","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),_B=a.looseObject({kind:a.literal("capability_tier").meta(M),tier_name:a.string().optional().meta(M),tier_description:a.string().optional().meta(M)}).meta({id:"EntitlementTypeFieldsCapabilityTier","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),vB=a.looseObject({kind:a.literal("usage_limit").meta(M),limit_value:fS.meta(M),unit:a.string().optional().meta(M),period:ms.optional().meta(M),enforcement:xp.optional().meta(M)}).meta({id:"EntitlementTypeFieldsUsageLimit","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),yB=a.looseObject({kind:a.literal("price_per_unit").meta(M),amount_cents:a.number().optional().meta(M),currency:a.string().optional().meta(M),unit:a.string().optional().meta(M),period:ms.optional().meta(M)}).meta({id:"EntitlementTypeFieldsPricePerUnit","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),xB=a.looseObject({kind:a.literal("rate_limit").meta(M),rate_value:a.number().optional().meta(M),period_scope:ms.optional().meta(M),enforcement:xp.optional().meta(M)}).meta({id:"EntitlementTypeFieldsRateLimit","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),SB=a.looseObject({kind:a.literal("credits").meta(M),allowance:fS.meta(M),initial_grant:a.number().optional().meta(M),unit:a.string().optional().meta(M),period:ms.optional().meta(M),reset_period:Iz.optional().meta(M),rollover:a.boolean().optional().meta(M),max_balance:fS.meta(M),top_up_available:a.boolean().optional().meta(M)}).meta({id:"EntitlementTypeFieldsCredits","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),IB=a.looseObject({kind:a.literal("seat").meta(M),included_seats:a.union([a.number(),a.literal("unlimited")]).optional().meta(M),max_seats:a.union([a.number(),a.literal("unlimited")]).nullable().optional().meta(M),seat_type:a.string().optional().meta(M)}).meta({id:"EntitlementTypeFieldsSeat","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),PB=a.looseObject({}).meta({id:"EntitlementTypeFieldsUntyped","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),kB=[bB,_B,vB,yB,xB,SB,IB],TB=a.union([...kB,PB]).meta({id:"EntitlementTypeFields","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),os=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...M,readOnly:true}),name:Nt.meta(M),handle:ct.meta(M),customer_facing_description:a.string().max(500).optional().meta(M),type:hz.meta(M),unit:a.string().max(100).optional().meta(M),period_scope:ms.optional().meta(M),allocation:_S.optional().meta(M),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(M),sort_order:a.number().int().default(0).meta(M),metadata:Ut.meta(M)}).meta({id:"Entitlement","x-revturbine-schema-persistence":bS,"x-revturbine-schema-exposure":Lt,...xz,...yn()}),$B=an("EntitlementAnchor"),El=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...M,readOnly:true}),handle:ct.meta({...M,readOnly:true}),entitlement_id:a.string().min(1).meta(M),targets:a.array(Sz).min(1).meta(M),segment_ids:a.array(a.string()).default([]).meta(M),visibility:gB.default("public").meta(M),period_scope:ms.optional().meta(M),instance:a.string().max(100).optional().meta(M),reset_period:Iz.optional().meta(M),limit_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(M),enforcement:xp.optional().meta(M),warning_threshold_percent:$l.optional().meta(M),overage_price_ref:a.string().optional().meta(M),grace_period_hours:a.number().int().min(0).optional().meta(M),tier_value:a.string().optional().meta(M),rate_value:a.number().optional().meta(M),initial_grant:a.number().optional().meta(M),allowance_value:a.union([a.number(),a.literal("unlimited")]).optional().meta(M),rollover_enabled:a.boolean().optional().meta(M),max_balance:a.union([a.number(),a.literal("unlimited")]).nullable().default(null).meta(M),seat_type_id:a.string().optional().meta(M),included_count:a.union([a.number().int(),a.literal("unlimited")]).optional().meta(M),at_limit_behavior:a.enum(["hard_cap","auto_upgrade_at_renewal"]).optional().meta(M),stripe_metered_price_id:a.string().optional().meta(M)}).meta({id:"EntitlementRule","x-revturbine-schema-persistence":bS,"x-revturbine-schema-exposure":yz,...xz,...ar()}),wB=an("EntitlementRuleAnchor");El.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 RB=a.enum(["one_time_period_mismatch"]).meta({id:"EntitlementRuleWarningCode","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),CB=a.object({code:RB.meta(M),message:a.string().min(1).meta(M),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(M)}).meta({id:"EntitlementRuleWarning","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt}),tS=El.extend({warnings:a.array(CB).optional().meta(M)}).meta({id:"EntitlementRuleWriteResponse","x-revturbine-schema-persistence":Jt,"x-revturbine-schema-exposure":Lt});var nS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({...M,readOnly:true}),rule_id:a.string().min(1).meta(M),experiment_id:a.string().min(1).meta(M),variant_name:a.string().min(1).max(200).meta(M),is_control:a.boolean().default(false).meta(M),override_fields:a.record(a.string(),a.unknown()).default({}).meta(M)}).meta({id:"EntitlementRuleVariant","x-revturbine-schema-persistence":bS,"x-revturbine-schema-exposure":yz,...mB,...ar()}),EB=vn(os),zB=vn(El);({"/api/entitlement-anchors":{get:y({operationId:"listEntitlementAnchors",requestParams:{query:ne},summary:"List entitlement anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement anchor list",content:{"application/json":{schema:te($B)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-anchors",persistence:{table:"entitlements",mode:"list"}}})},"/api/entitlement-rule-anchors":{get:y({operationId:"listEntitlementRuleAnchors",requestParams:{query:ne},summary:"List entitlement rule anchors (identity registry)",tags:["entitlements"],responses:{200:{description:"Entitlement rule anchor list",content:{"application/json":{schema:te(wB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-rule-anchors",persistence:{table:"entitlementRules",mode:"list"}}})},"/api/entitlements":{get:y({operationId:"listEntitlements",requestParams:{query:ne},summary:"List entitlements",tags:["entitlements"],responses:{200:{description:"Entitlement list",content:{"application/json":{schema:te(os)}}}},"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:_n(os)}}},responses:{201:{description:"Created",content:{"application/json":{schema:os}}}},"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:os}}}},"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:EB}}},responses:{200:{description:"Updated",content:{"application/json":{schema:os}}}},"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:we}}}},"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:ne},summary:"List rules for entitlement",tags:["entitlements"],responses:{200:{description:"Rule list",content:{"application/json":{schema:te(El)}}}},"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:_n(El)}}},responses:{201:{description:"Created",content:{"application/json":{schema:tS}}}},"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:zB}}},responses:{200:{description:"Updated",content:{"application/json":{schema:tS}}}},"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:tS}}}},"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:ne},summary:"List A/B variants for rule",tags:["entitlements"],responses:{200:{description:"Variant list",content:{"application/json":{schema:te(nS)}}}},"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:_n(nS)}}},responses:{201:{description:"Created",content:{"application/json":{schema:nS}}}},"x-revturbine-operation":{exposure:"external",resource:"entitlement-rule-variants",persistence:{table:"entitlementRuleVariants",mode:"create"}}})}});var {Unrestricted:ue}=Gt,{Persisted:Ul,Transient:Zi}=Ht,{External:br,Internal:OB}=Kt,Pz=lt(Ze.Playbook,{sdkInput:true}),jB=lt(Ze.Playbook,{inConfig:false,sdkInput:false}),UB=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),AB=lt(Ze.Playbook,{inConfig:false,sdkInput:false,source:$r.Runtime}),DB=a.enum(["none_always_on","overage_vs_upgrade","time_bound","payment_failed","payment_at_risk"]);var kz=a.enum(["fixed","gated_feature","usage_limit","trial","other_conversion","retention"]).meta({id:"PlacementCategory","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br}),Tz=a.enum(["session","day","week","month","lifetime"]).meta({id:"CapPeriod","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br}),FB=a.object({count:a.number().int().positive().meta(ue),period:Tz.meta(ue)}).meta({id:"PlacementCapRule","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br});a.object({surface_type:a.string().min(1).meta(ue),rules:a.array(FB).meta(ue),cooldown_ms:a.number().int().nonnegative().optional().meta(ue)}).meta({id:"SurfaceTypeCapRule","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":br,"x-revturbine-data-classification":"operational",...UB});var NB=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":Zi,"x-revturbine-schema-exposure":br}),ss=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true}),name:Nt.meta(ue),handle:ct.meta(ue),description:$o.meta(ue),category:kz.meta(ue),drag_order_in_category:a.number().int().default(0).meta(ue),surface_slot_id:a.string().optional().meta(ue),entitlement_id:a.string().optional().meta(ue),tier_threshold:a.string().optional().meta(ue),threshold_percent:$l.optional().meta(ue),trial_type:a.enum(["free","reverse"]).optional().meta(ue),trigger_type:a.string().optional().meta(ue),trial_progress_percent:a.number().min(0).max(100).optional().meta(ue),days_before_end:a.number().int().min(0).optional().meta(ue),qualifier:DB.optional().meta(ue),activation_window_start:a.string().datetime().optional().meta(ue),activation_window_end:a.string().datetime().optional().meta(ue),metadata:Ut.meta(ue)}).meta({id:"Placement","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":br,...Pz,...yn()}),LB=an("PlacementAnchor"),BB=a.enum(["threshold_not_emitted"]).meta({id:"PlacementWarningCode","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br}),VB=a.object({code:BB.meta(ue),message:a.string().min(1).meta(ue),path:a.array(a.union([a.string(),a.number().int()])).optional().meta(ue)}).meta({id:"PlacementWarning","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br}),az=ss.extend({warnings:a.array(VB).optional().meta(ue)}).meta({id:"PlacementWriteResponse","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br});var MB=a.object({label:a.string().min(1).max(200).meta(ue),cta_path_type:NB.meta(ue),config_fields:a.record(a.string(),a.unknown()).default({}).meta(ue)}).meta({id:"CtaObject","x-revturbine-schema-persistence":Zi,"x-revturbine-schema-exposure":br}),kl=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ue,readOnly:true}),handle:ct.meta({...ue,readOnly:true}),placement_id:a.string().min(1).meta(ue),drag_order:a.number().int().default(0).meta(ue),target_plan_ids:a.array(a.string()).default([]).meta(ue),target_plan_billing_cadences:a.array(a.string()).default([]).meta(ue),target_segments:a.array(a.string()).default([]).meta(ue),surface_slot_ids:a.array(a.string()).default([]).meta(ue),surface_template_id:a.string().min(1).meta(ue),content_fields:a.record(a.string(),a.unknown()).default({}).meta(ue),cta_list:a.array(MB).default([]).meta(ue),max_per_period:a.number().int().min(0).nullable().default(null).meta(ue),max_period_unit:Tz.default("session").meta(ue),cooldown_after_dismiss_days:a.number().int().min(0).default(7).meta(ue),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(ue),recommendation_plan_override:a.string().optional().meta(ue)}).meta({id:"PlacementPayload","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":br,...Pz,...ar()}),ZB=an("PlacementPayloadAnchor");ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({...ue,readOnly:true}),placement_payload_id:a.string().min(1).meta(ue),experiment_id:a.string().min(1).meta(ue),variant_name:a.string().min(1).max(200).meta(ue),is_control:a.boolean().default(false).meta(ue),traffic_allocation_percent:a.number().min(0).max(100).meta(ue),override_fields:a.record(a.string(),a.unknown()).default({}).meta(ue),status:a.enum(["active","paused","complete"]).default("active").meta(ue)}).meta({id:"PlacementVariant","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":OB,...jB,...ar()});var qB=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({surface_slot_handle:a.string().min(1).max(200).meta(ue),surface_type:_p.meta(ue),surface_template_ids:a.array(a.string()).default([]).meta(ue),surface_slot_category:a.enum(["fixed","gated","triggered"]).default("fixed").meta(ue),first_seen:a.string().datetime().meta({...ue,readOnly:true}),last_seen:a.string().datetime().meta({...ue,readOnly:true}),status:a.enum(["active","inactive","new"]).default("new").meta(ue),placement_count:a.number().int().min(0).default(0).meta({...ue,readOnly:true})}).meta({id:"SurfaceSlot","x-revturbine-schema-persistence":Ul,"x-revturbine-schema-exposure":br,...AB,...yn("surface_slot_handle")}),HB=vn(ss),KB=vn(kl);({"/api/placement-anchors":{get:y({operationId:"listPlacementAnchors",requestParams:{query:ne},summary:"List placement anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement anchor list",content:{"application/json":{schema:te(LB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-anchors",persistence:{table:"placements",mode:"list"}}})},"/api/placements":{get:y({operationId:"listPlacements",requestParams:{query:ne},summary:"List placements",tags:["placements"],responses:{200:{description:"Placement list",content:{"application/json":{schema:te(ss)}}}},"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:_n(ss)}}},responses:{201:{description:"Created",content:{"application/json":{schema:az}}}},"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:ss}}}},"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:HB}}},responses:{200:{description:"Updated",content:{"application/json":{schema:az}}}},"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:we}}}},"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:ss}}}},"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:kz,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:ne},summary:"List placement payload anchors (identity registry)",tags:["placements"],responses:{200:{description:"Placement payload anchor list",content:{"application/json":{schema:te(ZB)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List placement payloads",tags:["placements"],responses:{200:{description:"Payload list",content:{"application/json":{schema:te(kl)}}}},"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:_n(kl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:kl}}}},"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:KB}}},responses:{200:{description:"Updated",content:{"application/json":{schema:kl}}}},"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:ne},summary:"List auto-discovered surface slots",tags:["placements"],responses:{200:{description:"Surface slot list",content:{"application/json":{schema:te(qB)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-slots",persistence:{table:"surfaceSlots",mode:"list"}}})}});var {Unrestricted:Me,Pii:Tl}=Gt,{Persisted:$z,Transient:Sp}=Ht,{External:Al}=Kt,vS=a.object({in_trial:a.boolean().meta(Me),trial_type:a.string().optional().meta(Me),plan_handle:a.string().optional().meta(Me),state:a.enum(["active","running_out","expired","converted","none"]).optional().meta(Me),trial_limit_type:a.enum(["time","usage"]).optional().meta(Me),progress_percent:a.number().min(0).max(100).optional().meta(Me),day_number:a.number().int().min(0).optional().meta(Me),days_remaining:a.number().int().min(0).optional().meta(Me),usage_entitlement_handle:a.string().optional().meta(Me),usage_consumed:a.number().int().min(0).optional().meta(Me),usage_remaining:a.number().int().min(0).optional().meta(Me),usage_limit:a.number().int().min(0).optional().meta(Me)}).meta({id:"UserTrialStatus","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":Al}),wz=a.object({entitlement_handle:a.string().min(1).meta(Me),unit:a.string().min(1).meta(Me),amount:a.number().min(0).meta(Me),limit:a.number().min(0).optional().meta(Me),reset_date:a.string().optional().meta(Me)}).meta({id:"UserUsageEntry","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":Al}),Rz=a.object({id:a.string().min(1).meta(Me),name:a.string().min(1).meta(Me),price:a.string().optional().meta(Me),billing_period:a.enum(["monthly","annual","none"]).optional().meta(Me)}).meta({id:"UserPlanContext","x-revturbine-schema-persistence":Sp,"x-revturbine-schema-exposure":Al}),GB=a.object({product_instance_id:a.string().min(1).meta(Me),user_id:a.string().min(1).meta(Tl),plan:Rz.optional().meta(Me),usage:a.record(a.string(),wz).default({}).meta(Me),trial:vS.optional().meta(Me),entitlements:a.record(a.string(),a.union([a.boolean(),wl])).default({}).meta(Me)}).meta({id:"UserInstanceContext","x-revturbine-schema-persistence":$z,"x-revturbine-schema-exposure":Al}),Ga=ae.merge(be).merge(pe).extend({user_id:a.string().min(1).meta(Tl),account_id:a.string().min(1).nullable().optional().meta(Tl),email:a.string().email().nullable().optional().meta(Tl),email_type:a.string().optional().meta(Me),plan:Rz.optional().meta(Me),usage:a.record(a.string(),wz).default({}).meta(Me),trial:vS.optional().meta(Me),payment_failed:a.boolean().optional().meta(Me),payment_at_risk:a.boolean().optional().meta(Me),tiers:a.record(a.string(),a.string()).optional().meta(Me),entitlements:a.record(a.string(),a.union([a.boolean(),wl])).default({}).meta(Me),instances:a.array(GB).optional().meta(Me),custom:a.record(a.string(),a.union([a.string(),a.number(),a.boolean(),a.null()])).default({}).meta(Tl),personalization:a.record(a.string(),a.union([a.string(),a.number()])).default({}).meta({...Me,"x-revturbine-schema-persistence":Sp}),derived_config_version:a.string().nullable().optional().meta(Me),context_hash:a.string().nullable().optional().meta(Me),derived_computed_at:zt.meta(Me)}).meta({id:"UserContext","x-revturbine-schema-persistence":$z,"x-revturbine-schema-exposure":Al});({"/api/user-contexts":{get:y({operationId:"listUserContexts",requestParams:{query:ne},summary:"List user contexts",tags:["users"],responses:{200:{description:"User context list",content:{"application/json":{schema:te(Ga)}}}},"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:Ga}}}},"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:Ga.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ga}}}},"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:Tn,Pii:ls}=Gt,{Persisted:yS,Transient:xS}=Ht,{Internal:ps}=Kt,JB=lt(Ze.CustomerOperations,{sdkInput:false}),WB=a.object({external_id:a.string().min(1).meta(ls),traits:a.record(a.string(),a.unknown()).default({}).meta(ls),plan_id:a.string().optional().meta(Tn)}).meta({id:"Identity","x-revturbine-schema-persistence":yS,"x-revturbine-schema-exposure":ps}),sz=ae.merge(pe).merge(be).extend({external_id:a.string().min(1).meta(ls),identity:WB.meta(ls),stripe_customer_id:a.string().optional().meta(Tn),current_plan_id:a.string().optional().meta(Tn),subscription_status:a.enum(["active","past_due","canceled","trialing","unpaid","none"]).default("none").meta(Tn),status:a.enum(["active","churned","trial","suspended"]).default("active").meta(Tn),metadata:Ut.meta(Tn)}).meta({id:"Customer","x-revturbine-schema-persistence":yS,"x-revturbine-schema-exposure":ps}),XB=a.enum(["permanent","for_duration"]).meta({id:"CustomerOverrideDuration","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":ps}),YB=a.enum(["grant_plan","grant_addon","grant_entitlement"]).meta({id:"CustomerOverrideType","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":ps}),QB=a.enum(["active","expired","revoked"]).meta({id:"CustomerOverrideStatus","x-revturbine-schema-persistence":xS,"x-revturbine-schema-exposure":ps}),Ni=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({...Tn,readOnly:true}),customer_id:a.string().min(1).meta(ls),customer_id_list:a.array(a.string()).optional().meta(ls),override_type:YB.meta(Tn),target_id:a.string().min(1).meta(Tn),value:a.record(a.string(),a.unknown()).default({}).meta(Tn),duration_type:XB.default("permanent").meta(Tn),duration_value:a.string().optional().meta(Tn),expiry_date:zt.meta(Tn),status:QB.default("active").meta(Tn),reason:a.string().max(500).optional().meta(Tn),created_by:a.string().optional().meta(Tn)}).meta({id:"CustomerOverride","x-revturbine-schema-persistence":yS,"x-revturbine-schema-exposure":ps,...JB,...ar()});({"/api/customers":{get:y({operationId:"listCustomers",requestParams:{query:ne},summary:"List customers",tags:["customers"],responses:{200:{description:"Customer list",content:{"application/json":{schema:te(sz)}}}},"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:sz}}}},"x-revturbine-operation":{exposure:"internal",resource:"customers",persistence:{table:"customers",mode:"get"}}})},"/api/customer-overrides":{get:y({operationId:"listCustomerOverrides",requestParams:{query:ne},summary:"List customer overrides",tags:["customers"],responses:{200:{description:"Override list",content:{"application/json":{schema:te(Ni)}}}},"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:Ni}}}},"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:Ni.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ni}}}},"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:Ni}}}},"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:Ni}}}},"x-revturbine-operation":{exposure:"internal",resource:"customer-overrides",persistence:{table:"customerOverrides",mode:"create"}}})}});var {Unrestricted:en}=Gt,{Persisted:SS,Transient:Cz}=Ht,{Internal:Dl}=Kt,eV=lt(Ze.Playbook,{sdkInput:true}),Ez=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),tV=a.enum(["default","custom"]).meta({id:"DimensionCategory","x-revturbine-schema-persistence":Cz,"x-revturbine-schema-exposure":Dl}),nV=a.enum(["system","sdk_trait","sdk_trait_enum","cdp_property","manual_list"]).meta({id:"DimensionSourceType","x-revturbine-schema-persistence":Cz,"x-revturbine-schema-exposure":Dl}),rS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...en,readOnly:true}),name:Nt.meta(en),handle:ct.optional().meta(en),category:tV.default("custom").meta(en),visibility_toggle:a.boolean().default(true).meta(en),source_type:nV.default("system").meta(en),estimated_size:a.number().int().min(0).optional().meta(en)}).meta({id:"SegmentDimension","x-revturbine-schema-persistence":SS,"x-revturbine-schema-exposure":Dl,...Ez,...yn()}),rV=an("SegmentDimensionAnchor"),iS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...en,readOnly:true}),dimension_id:a.string().min(1).meta(en),name:Nt.meta(en),handle:ct.meta(en),description:$o.meta(en),definition_rule:a.record(a.string(),a.unknown()).optional().meta(en),used_in_count:a.number().int().min(0).default(0).meta({...en,readOnly:true})}).meta({id:"SegmentValue","x-revturbine-schema-persistence":SS,"x-revturbine-schema-exposure":Dl,...Ez,...yn()}),iV=an("SegmentValueAnchor");ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...en,readOnly:true}),name:Nt.meta(en),handle:ct.meta(en),description:$o.meta(en),rules:a.record(a.string(),a.unknown()).default({}).meta(en),is_active:a.boolean().default(true).meta(en),estimated_size:a.number().int().min(0).nullable().default(null).meta(en),metadata:Ut.meta(en)}).meta({id:"Segment","x-revturbine-schema-persistence":SS,"x-revturbine-schema-exposure":Dl,...eV,...yn()});({"/api/segment-dimension-anchors":{get:y({operationId:"listSegmentDimensionAnchors",requestParams:{query:ne},summary:"List segment dimension anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment dimension anchor list",content:{"application/json":{schema:te(rV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-dimension-anchors",persistence:{table:"segmentDimensions",mode:"list"}}})},"/api/segment-value-anchors":{get:y({operationId:"listSegmentValueAnchors",requestParams:{query:ne},summary:"List segment value anchors (identity registry)",tags:["segments"],responses:{200:{description:"Segment value anchor list",content:{"application/json":{schema:te(iV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"segment-value-anchors",persistence:{table:"segmentValues",mode:"list"}}})},"/api/segments":{get:y({operationId:"listSegmentDimensions",requestParams:{query:ne},summary:"List segment dimensions",tags:["segments"],responses:{200:{description:"Dimension list",content:{"application/json":{schema:te(rS)}}}},"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:rS}}}},"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:we}}}},"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:rS}}}},"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:ne},summary:"List segment values for dimension",tags:["segments"],responses:{200:{description:"Value list",content:{"application/json":{schema:te(iS)}}}},"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:iS}}}},"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:iS}}}},"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:$e}=Gt,{Persisted:fs,Transient:zz}=Ht,{External:qi}=Kt,IS=lt(Ze.Playbook,{sdkInput:true}),oV=lt(Ze.Playbook,{inConfig:false,sdkInput:false}),aV=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),sV=lt(Ze.Playbook,{inConfig:false,sdkInput:true,source:$r.CodeConstant});ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...$e,readOnly:true}),handle:ct.meta({...$e,readOnly:true}),name:Nt.meta($e),channel:a.enum(["in_app","email","push","sms","webhook"]).meta($e),subject:a.string().max(500).optional().meta($e),body:a.string().meta($e),template_variables:a.array(a.string()).default([]).meta($e),metadata:Ut.meta($e)}).meta({id:"Message","x-revturbine-schema-persistence":fs,"x-revturbine-schema-exposure":qi,...oV,...ar()});var oS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...$e,readOnly:true}),name:Nt.meta($e),handle:ct.meta($e),action_type:bz.meta($e),target_url:a.string().optional().meta($e),target_plan_id:a.string().optional().meta($e),config_fields:a.record(a.string(),a.unknown()).default({}).meta($e),metadata:Ut.meta($e)}).meta({id:"CtaPath","x-revturbine-schema-persistence":fs,"x-revturbine-schema-exposure":qi,...IS,...yn()}),cV=an("CtaPathAnchor"),lV=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":fs,"x-revturbine-schema-exposure":qi,...sV}),uV=a.object({name:a.string().min(1),field_type:lV,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":fs,"x-revturbine-schema-exposure":qi,...aV}),aS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...$e,readOnly:true}),name:Nt.meta($e),handle:ct.meta($e),surface_type:KL.meta($e),field_definitions:a.array(uV).default([]).meta($e),description:$o.meta($e)}).meta({id:"SurfaceTemplate","x-revturbine-schema-persistence":fs,"x-revturbine-schema-exposure":qi,...IS,...yn()}),dV=an("SurfaceTemplateAnchor"),sS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...$e,readOnly:true}),name:Nt.meta($e),handle:ct.meta($e),content_fields:a.record(a.string(),a.unknown()).default({}).meta($e),variation_dimension_id:a.string().optional().meta($e),variation_values:a.array(a.object({segment_value_id:a.string(),content_fields_override:a.record(a.string(),a.unknown())})).optional().meta($e),notes:a.string().max(1e3).optional().meta($e),used_in_count:a.number().int().min(0).default(0).meta({...$e,readOnly:true})}).meta({id:"MessageBlockRecord","x-revturbine-schema-persistence":fs,"x-revturbine-schema-exposure":qi,...IS,...yn()}),mV=an("MessageBlockRecordAnchor"),pV=a.object({segment_id:a.string().min(1).meta($e),message_block_id:a.string().min(1).meta($e),ui_path_id:a.string().optional().meta($e),promotion_id:a.string().optional().meta($e)}).meta({id:"ContentPayloadSegmentEntry","x-revturbine-schema-persistence":zz,"x-revturbine-schema-exposure":qi});a.object({payload_id:a.string().min(1).meta($e),tenant_id:a.string().min(1).meta($e),name:Nt.meta($e),surface_template_id:a.string().min(1).meta($e),default_message_block_id:a.string().min(1).meta($e),segment_content_map:a.array(pV).optional().meta($e),ui_path_id:a.string().optional().meta($e),promotion_id:a.string().optional().meta($e),status:a.enum(["draft","active","inactive"]).meta($e),created_at:a.string().datetime().optional().meta({...$e,readOnly:true}),updated_at:a.string().datetime().optional().meta({...$e,readOnly:true})}).meta({id:"ContentPlacementPayload","x-revturbine-schema-persistence":zz,"x-revturbine-schema-exposure":qi});({"/api/surface-template-anchors":{get:y({operationId:"listSurfaceTemplateAnchors",requestParams:{query:ne},summary:"List surface template anchors (identity registry)",tags:["content"],responses:{200:{description:"Surface template anchor list",content:{"application/json":{schema:te(dV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"surface-template-anchors",persistence:{table:"surfaceTemplates",mode:"list"}}})},"/api/surface-templates":{get:y({operationId:"listSurfaceTemplates",requestParams:{query:ne},summary:"List surface templates",tags:["content"],responses:{200:{description:"Template list",content:{"application/json":{schema:te(aS)}}}},"x-revturbine-operation":{exposure:"external",resource:"surface-templates",persistence:{table:"surfaceTemplateVersions",mode:"list"}}})},"/api/message-block-record-anchors":{get:y({operationId:"listMessageBlockRecordAnchors",requestParams:{query:ne},summary:"List message block anchors (identity registry)",tags:["content"],responses:{200:{description:"Message block anchor list",content:{"application/json":{schema:te(mV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"message-block-record-anchors",persistence:{table:"messageBlocks",mode:"list"}}})},"/api/messages":{get:y({operationId:"listMessageBlocks",requestParams:{query:ne},summary:"List message blocks",tags:["content"],responses:{200:{description:"Message block list",content:{"application/json":{schema:te(sS)}}}},"x-revturbine-operation":{exposure:"external",resource:"message-blocks",persistence:{table:"messageBlockVersions",mode:"list"}}})},"/api/cta-path-anchors":{get:y({operationId:"listCtaPathAnchors",requestParams:{query:ne},summary:"List CTA path anchors (identity registry)",tags:["content"],responses:{200:{description:"CTA path anchor list",content:{"application/json":{schema:te(cV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"cta-path-anchors",persistence:{table:"ctaPaths",mode:"list"}}})},"/api/cta-paths":{get:y({operationId:"listCtaPaths",requestParams:{query:ne},summary:"List CTA paths",tags:["content"],responses:{200:{description:"CTA path list",content:{"application/json":{schema:te(oS)}}}},"x-revturbine-operation":{exposure:"external",resource:"cta-paths",persistence:{table:"ctaPathVersions",mode:"list"}}})}});var {Unrestricted:cs,Pii:fV}=Gt,{Persisted:Oz}=Ht,{Internal:gV,External:hV}=Kt,bV=lt(Ze.Branding,{sdkInput:false});a.object({id:a.string().min(1).meta({...cs,readOnly:true}),name:a.string().min(1).max(120).meta(cs),mode:a.enum(["light","dark","system"]).default("system").meta(cs),tokens:a.record(a.string(),a.string()).default({}).meta(cs)}).meta({id:"Theme","x-revturbine-schema-persistence":Oz,"x-revturbine-schema-exposure":hV,...bV});var cz=ae.merge(pe).extend({user_id:a.string().min(1).meta(fV),scope:a.string().min(1).meta(cs),preferences:a.record(a.string(),a.unknown()).default({}).meta(cs)}).meta({id:"UiPreference","x-revturbine-schema-persistence":Oz,"x-revturbine-schema-exposure":gV});({"/api/ui-preferences":{get:y({operationId:"listUiPreferences",requestParams:{query:ne},summary:"List UI preferences",tags:["ui"],responses:{200:{description:"UI preferences list response",content:{"application/json":{schema:te(cz)}}}},"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(vn(cz))}}},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:Ce,Financial:Hr}=Gt,{Persisted:jz,Transient:Fl}=Ht,{External:Nl,Internal:Uz}=Kt,_V=a.object({month:a.string().meta(Ce),cohort_size:a.number().int().min(0).meta(Ce),retained:a.number().int().min(0).meta(Ce),retention_rate:a.number().min(0).max(1).meta(Ce),revenue_cents:a.number().int().min(0).meta(Hr)}).meta({id:"CohortMonth","x-revturbine-schema-persistence":Fl,"x-revturbine-schema-exposure":Nl}),vV=a.object({step:a.string().meta(Ce),label:a.string().meta(Ce),count:a.number().int().min(0).meta(Ce),conversion_rate:a.number().min(0).max(1).meta(Ce),drop_off_rate:a.number().min(0).max(1).meta(Ce)}).meta({id:"FunnelStep","x-revturbine-schema-persistence":Fl,"x-revturbine-schema-exposure":Nl}),yV=a.object({placement_id:a.string().meta(Ce),placement_name:a.string().meta(Ce),impressions:a.number().int().min(0).meta(Ce),clicks:a.number().int().min(0).meta(Ce),conversions:a.number().int().min(0).meta(Ce),ctr:a.number().min(0).meta(Ce),conversion_rate:a.number().min(0).meta(Ce),revenue_cents:a.number().int().min(0).meta(Hr)}).meta({id:"PlacementPerformanceRow","x-revturbine-schema-persistence":Fl,"x-revturbine-schema-exposure":Nl}),xV=a.object({date:a.string().meta(Ce),mrr_cents:a.number().int().min(0).meta(Hr),arr_cents:a.number().int().min(0).meta(Hr),new_mrr_cents:a.number().int().min(0).meta(Hr),churned_mrr_cents:a.number().int().min(0).meta(Hr),expansion_mrr_cents:a.number().int().min(0).meta(Hr),net_new_mrr_cents:a.number().int().meta(Hr)}).meta({id:"RevenueMetric","x-revturbine-schema-persistence":Fl,"x-revturbine-schema-exposure":Nl}),SV=a.object({metric_key:a.string().min(1).meta(Ce),label:a.string().meta(Ce),current_value:a.number().meta(Hr),previous_value:a.number().nullable().default(null).meta(Hr),change_percent:a.number().nullable().default(null).meta(Ce),period:a.string().meta(Ce),unit:a.enum(["count","cents","percent","ratio","seconds"]).default("count").meta(Ce)}).meta({id:"KpiAggregate","x-revturbine-schema-persistence":Fl,"x-revturbine-schema-exposure":Nl}),lz=ae.merge(pe).merge(be).extend({report_type:a.enum(["plan_drift","entitlement_drift","usage_anomaly","revenue_anomaly"]).meta(Ce),severity:gS.meta(Ce),resource_type:a.string().min(1).meta(Ce),resource_id:a.string().min(1).meta(Ce),summary:a.string().max(1e3).meta(Ce),expected_value:a.unknown().optional().meta(Ce),actual_value:a.unknown().optional().meta(Ce),affected_customer_count:a.number().int().min(0).default(0).meta(Ce),is_resolved:a.boolean().default(false).meta(Ce),resolved_at:zt.meta(Ce),metadata:Ut.meta(Ce)}).meta({id:"DriftReport","x-revturbine-schema-persistence":jz,"x-revturbine-schema-exposure":Uz}),uz=ae.merge(pe).merge(be).extend({alert_type:a.enum(["usage_threshold","revenue_drop","conversion_drop","experiment_significance","drift_detected","custom"]).meta(Ce),severity:gS.meta(Ce),title:a.string().min(1).max(300).meta(Ce),description:a.string().max(2e3).meta(Ce),resource_type:a.string().optional().meta(Ce),resource_id:a.string().optional().meta(Ce),is_acknowledged:a.boolean().default(false).meta(Ce),acknowledged_at:zt.meta(Ce),acknowledged_by:a.string().nullable().default(null).meta(Ce),metadata:Ut.meta(Ce)}).meta({id:"Alert","x-revturbine-schema-persistence":jz,"x-revturbine-schema-exposure":Uz});({"/api/analytics/kpis":{get:y({operationId:"listKpiAggregates",requestParams:{query:ne},summary:"List KPI aggregate metrics",tags:["analytics"],responses:{200:{description:"KPI list",content:{"application/json":{schema:te(SV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"kpiAggregates",mode:"list"}}})},"/api/analytics/placement-performance":{get:y({operationId:"listPlacementPerformance",requestParams:{query:ne},summary:"List placement performance rows",tags:["analytics"],responses:{200:{description:"Performance rows",content:{"application/json":{schema:te(yV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"placementPerformance",mode:"list"}}})},"/api/analytics/revenue":{get:y({operationId:"listRevenueMetrics",requestParams:{query:ne},summary:"List revenue metrics over time",tags:["analytics"],responses:{200:{description:"Revenue metrics",content:{"application/json":{schema:te(xV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"revenueMetrics",mode:"list"}}})},"/api/analytics/cohorts":{get:y({operationId:"listCohortMetrics",requestParams:{query:ne},summary:"List cohort retention metrics",tags:["analytics"],responses:{200:{description:"Cohort metrics",content:{"application/json":{schema:te(_V)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"cohortMetrics",mode:"list"}}})},"/api/analytics/funnels":{get:y({operationId:"listFunnelSteps",requestParams:{query:ne},summary:"List funnel step metrics",tags:["analytics"],responses:{200:{description:"Funnel steps",content:{"application/json":{schema:te(vV)}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"funnelSteps",mode:"list"}}})},"/api/analytics/drift-reports":{get:y({operationId:"listDriftReports",requestParams:{query:ne},summary:"List drift reports",tags:["analytics"],responses:{200:{description:"Drift reports",content:{"application/json":{schema:te(lz)}}}},"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:lz}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"driftReports",mode:"update"}}})},"/api/analytics/alerts":{get:y({operationId:"listAlerts",requestParams:{query:ne},summary:"List alerts",tags:["analytics"],responses:{200:{description:"Alert list",content:{"application/json":{schema:te(uz)}}}},"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:uz}}}},"x-revturbine-operation":{exposure:"internal",resource:"analytics",persistence:{table:"alerts",mode:"update"}}})}});var {Unrestricted:Z,Pii:us}=Gt,{Persisted:Az,Transient:At}=Ht,{Internal:Hi,External:mn}=Kt,Dz=a.enum(["clickstream","telemetry","sdk","workflow","system"]).meta({id:"EventSource","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn}),IV=ae.extend({event_type:a.string().min(1).meta(Z),source:Dz.default("sdk").meta(Z),tenant_id:a.string().min(1).optional().meta(Z),user_id:a.string().min(1).optional().meta(us),session_id:a.string().min(1).optional().meta(us),occurred_at:a.string().datetime().meta(Z),request_id:a.string().min(1).meta(Z),attributes:a.record(a.string(),a.unknown()).default({}).meta(Z),payload:a.record(a.string(),a.unknown()).default({}).meta(Z)}).meta({id:"EventEnvelope","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi}),PV=IV.extend({ingested_at:a.string().datetime().meta(Z)}).meta({id:"IngestedEvent","x-revturbine-schema-persistence":Az,"x-revturbine-schema-exposure":Hi});a.array(a.object({id:a.string().min(1).optional().meta(Z),event_type:a.string().min(1).meta(Z),occurred_at:a.string().datetime().optional().meta(Z),tenant_id:a.string().min(1).optional().meta(Z),user_id:a.string().min(1).optional().meta(us),session_id:a.string().min(1).optional().meta(us),attributes:a.record(a.string(),a.unknown()).optional().meta(Z),payload:a.record(a.string(),a.unknown()).optional().meta(Z),message:a.string().optional().meta(Z),level:a.string().optional().meta(Z),path:a.string().optional().meta(Z)})).meta({id:"EventIngestBatch","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi});var kV=a.enum(["impression","dismiss","remind_me_later","cta_clicked","cta_completed","suppress"]).meta({id:"TreatmentInteractionType","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({user_id:a.string().min(1).meta(us),placement_id:a.string().min(1).meta(Z),treatment_id:a.string().min(1).optional().meta(Z),surface_slot_id:a.string().min(1).optional().meta(Z),surface_template_id:a.string().min(1).optional().meta(Z),payload_id:a.string().min(1).optional().meta(Z),interaction_type:kV.meta(Z),interaction_at:a.string().datetime().optional().meta(Z),metadata:a.record(a.string(),a.unknown()).optional().meta(Z)}).meta({id:"TreatmentInteractionInput","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});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":At,"x-revturbine-schema-exposure":mn});a.object({days_remaining:a.number().int().min(0).optional().meta(Z)}).meta({id:"TrialTriggerPayload","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({entitlement_handle:a.string().optional().meta(Z),current_usage:a.number().min(0).optional().meta(Z),usage_limit:a.number().min(0).optional().meta(Z),usage_percent:a.number().min(0).max(100).optional().meta(Z),threshold:a.number().min(0).optional().meta(Z),balance:a.number().min(0).optional().meta(Z),allocation:a.number().min(0).optional().meta(Z),seats_used:a.number().int().min(0).optional().meta(Z),seats_allowed:a.number().int().min(0).optional().meta(Z)}).meta({id:"UsageTriggerPayload","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({feature:a.string().min(1).meta(Z)}).meta({id:"FeatureGateTriggerPayload","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({retry_count:a.number().int().min(0).optional().meta(Z),renewal_date:a.string().optional().meta(Z)}).meta({id:"PaymentTriggerPayload","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({event_type:a.string().min(1).meta(Z),payload:a.record(a.string(),a.unknown()).default({}).meta(Z)}).meta({id:"SemanticEvent","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});var $V=a.enum(["system","workflow"]).meta({id:"ControlPlaneEventSource","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn}),wV=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":At,"x-revturbine-schema-exposure":mn});a.object({event_type:wV.meta(Z),source:$V.meta(Z),payload:a.record(a.string(),a.unknown()).default({}).meta(Z)}).meta({id:"ControlPlaneSemanticEvent","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({q:a.string().optional().meta(Z),source:Dz.optional().meta(Z),event_type:a.string().optional().meta(Z),from:a.string().datetime().optional().meta(Z),to:a.string().datetime().optional().meta(Z),page:a.coerce.number().int().min(1).default(1).meta(Z),per_page:a.coerce.number().int().min(1).max(100).default(25).meta(Z)}).meta({id:"EventSearchParams","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi});var RV=a.enum(["stripe","apple","google"]).meta({id:"WebhookEventSource","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi}),CV=a.enum(["processed","failed","skipped"]).meta({id:"WebhookEventStatus","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi}),cS=ae.merge(pe).merge(be).extend({event_id:a.string().min(1).meta(Z),event_type:a.string().min(1).meta(Z),source:RV.meta(Z),payload:a.record(a.string(),a.unknown()).default({}).meta(Z),status:CV.default("processed").meta(Z),processed_at:a.string().datetime().optional().meta(Z),error_message:a.string().optional().meta(Z)}).meta({id:"WebhookEventLog","x-revturbine-schema-persistence":Az,"x-revturbine-schema-exposure":Hi});a.object({accepted:a.number().int().min(0).meta(Z)}).meta({id:"null","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":Hi});var EV=500,zV=a.enum(["explicit","automatic","derived","raw"]).meta({id:"EventOrigin","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn}),OV=a.object({environment_id:a.string().min(1).meta(Z),user_id:a.string().min(1).meta(us),account_id:a.string().min(1).meta(Z),event_name:a.string().min(1).max(120).meta(Z),event_ts:a.string().datetime().meta(Z),properties:a.string().optional().meta(Z),surface_slot_id:a.string().nullable().optional().meta(Z),placement_id:a.string().nullable().optional().meta(Z),payload_id:a.string().nullable().optional().meta(Z),request_id:a.string().optional().meta(Z),experiment_id:a.string().nullable().optional().meta(Z),variant_key:a.string().nullable().optional().meta(Z),tenant_id:a.string().optional().meta(Z),event_id:a.string().nullable().optional().meta(Z),origin:zV.nullable().optional().meta(Z),playbook_version:a.string().nullable().optional().meta(Z),decision_id:a.string().nullable().optional().meta(Z)}).meta({id:"TrackEvent","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({events:a.array(OV).min(1).max(EV).meta(Z)}).meta({id:"TrackIngestBatch","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});var UV=10,AV=a.enum(["sdk_init","sdk_error","sdk_validation_warning"]).meta({id:"SdkMetaEventType","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn}),DV=a.object({plans:a.number().int().min(0).meta(Z),entitlements:a.number().int().min(0).meta(Z),entitlement_rules:a.number().int().min(0).meta(Z),segments:a.number().int().min(0).meta(Z),placements:a.number().int().min(0).meta(Z),placement_payloads:a.number().int().min(0).meta(Z),content_ui_paths:a.number().int().min(0).meta(Z),surface_templates:a.number().int().min(0).meta(Z)}).meta({id:"SdkConfigShape","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn}),FV=a.object({event_type:AV.meta(Z),occurred_at:a.string().datetime().meta(Z),request_id:a.string().min(1).optional().meta(Z),config_hash_id:a.string().min(1).max(64).optional().meta(Z),sdk_version:a.string().min(1).max(64).optional().meta(Z),runtime_mode:a.string().min(1).max(64).optional().meta(Z),schema_version:a.string().min(1).max(64).optional().meta(Z),bundle_version:a.string().min(1).max(64).optional().meta(Z),config_shape:DV.optional().meta(Z),message:a.string().max(500).optional().meta(Z)}).meta({id:"SdkMetaEvent","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});a.object({events:a.array(FV).min(1).max(UV).meta(Z)}).meta({id:"SdkMetaIngestBatch","x-revturbine-schema-persistence":At,"x-revturbine-schema-exposure":mn});({"/api/events/search":{get:y({operationId:"searchEvents",summary:"Search ingested events",tags:["events"],responses:{200:{description:"Paginated event results",content:{"application/json":{schema:ZL(PV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"events"}})},"/api/webhook-events":{get:y({operationId:"listWebhookEvents",requestParams:{query:ne},summary:"List webhook event log entries",tags:["events"],responses:{200:{description:"Webhook event list",content:{"application/json":{schema:te(cS)}}}},"x-revturbine-operation":{exposure:"internal",resource:"webhook-events",persistence:{table:"webhookEventLog",mode:"list"}}})}});var {Unrestricted:ve}=Gt,{Persisted:Ll,Transient:Bl}=Ht,{Internal:Kr}=Kt,Fz=lt(Ze.Playbook,{sdkInput:true}),Nz=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),LV=a.enum(["not_started","active","expired","converted","cancelled"]).meta({id:"TrialStatus","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Kr}),PS=a.enum(["time","usage"]).meta({id:"TrialLimitType","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Kr}),Lz=a.object({name:Nt.meta(ve),handle:ct.meta(ve),plan_id:a.string().nullable().optional().meta(ve),segment_id:a.string().nullable().optional().meta(ve),trial_limit_type:PS.default("time").meta(ve),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ve),grace_period_days:a.number().int().min(0).default(0).meta(ve),usage_entitlement_handle:a.string().min(1).optional().meta(ve),usage_limit_value:a.number().int().min(1).optional().meta(ve),require_payment_method:a.boolean().default(false).meta(ve),auto_convert:a.boolean().default(true).meta(ve),convert_to_plan_id:a.string().optional().meta(ve),fallback_plan_id:a.string().optional().meta(ve),limit_per_customer:a.number().int().min(1).default(1).meta(ve),is_active:a.boolean().default(true).meta(ve),metadata:Ut.meta(ve)}),Ja=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ve,readOnly:true})}).merge(Lz).meta({id:"FreeTrialRule","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Kr,...Fz,...yn()}),BV=an("FreeTrialRuleAnchor"),VV=a.enum(["signup","first_premium_access","manual"]).meta({id:"ReverseTrialStartPolicy","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Kr}),Bz=a.object({name:Nt.meta(ve),handle:ct.meta(ve),premium_plan_id:a.string().min(1).meta(ve),fallback_plan_id:a.string().min(1).meta(ve),segment_id:a.string().nullable().optional().meta(ve),trial_limit_type:PS.default("time").meta(ve),duration_days:a.number().int().min(1).max(365).nullable().optional().meta(ve),usage_entitlement_handle:a.string().min(1).optional().meta(ve),usage_limit_value:a.number().int().min(1).optional().meta(ve),start_policy:VV.default("signup").meta(ve),show_upgrade_prompt_at_day:a.number().int().min(0).optional().meta(ve),entitlements_during_trial:a.array(a.string()).default([]).meta(ve),is_active:a.boolean().default(true).meta(ve),metadata:Ut.meta(ve)}),Wa=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...ve,readOnly:true})}).merge(Bz).meta({id:"ReverseTrialRule","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Kr,...Fz,...yn()}),MV=an("ReverseTrialRuleAnchor"),Vz=a.enum(["1_per_lifetime","1_per_plan","1_per_year","unlimited"]).meta({id:"TrialLimitPolicy","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Kr}),Mz=a.enum(["per_customer","per_email_domain"]).meta({id:"TrialEligibilityScope","x-revturbine-schema-persistence":Bl,"x-revturbine-schema-exposure":Kr}),Xa=ae.merge(pe).merge(be).extend({trial_limit_policy:Vz.default("1_per_lifetime").meta(ve),eligibility_scope:Mz.default("per_customer").meta(ve)}).meta({id:"FreeTrialSettings","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Kr,...Nz}),Ya=ae.merge(pe).merge(be).extend({trial_limit_policy:Vz.default("1_per_lifetime").meta(ve),eligibility_scope:Mz.default("per_customer").meta(ve)}).meta({id:"ReverseTrialSettings","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Kr,...Nz}),mp=ae.merge(pe).merge(be).extend({customer_id:a.string().min(1).meta(ve),rule_id:a.string().min(1).meta(ve),rule_type:a.enum(["free_trial","reverse_trial"]).meta(ve),plan_id:a.string().min(1).meta(ve),status:LV.default("active").meta(ve),started_at:a.string().datetime().meta({...ve,readOnly:true}),expires_at:a.string().datetime().nullable().optional().meta(ve),trial_limit_type:PS.default("time").meta(ve),usage_entitlement_handle:a.string().min(1).optional().meta(ve),usage_limit_value:a.number().int().min(1).optional().meta(ve),converted_at:zt.meta(ve),cancelled_at:zt.meta(ve),metadata:Ut.meta(ve)}).meta({id:"TrialInstance","x-revturbine-schema-persistence":Ll,"x-revturbine-schema-exposure":Kr});({"/api/free-trial-rule-anchors":{get:y({operationId:"listFreeTrialRuleAnchors",requestParams:{query:ne},summary:"List free trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Free trial rule anchor list",content:{"application/json":{schema:te(BV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List free trial rules",tags:["trials"],responses:{200:{description:"Free trial rule list",content:{"application/json":{schema:te(Ja)}}}},"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:Ja}}}},"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:Ja.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ja}}}},"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:ne},summary:"List reverse trial rule anchors (identity registry)",tags:["trials"],responses:{200:{description:"Reverse trial rule anchor list",content:{"application/json":{schema:te(MV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List reverse trial rules",tags:["trials"],responses:{200:{description:"Reverse trial rule list",content:{"application/json":{schema:te(Wa)}}}},"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:Wa}}}},"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:Wa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Wa}}}},"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:ne},summary:"List free trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Free trial settings list",content:{"application/json":{schema:te(Xa)}}}},"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:Xa}}}},"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:Xa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Xa}}}},"x-revturbine-operation":{exposure:"internal",resource:"free-trial-settings",persistence:{table:"freeTrialSettings",mode:"update"}}})},"/api/trials/reverse-settings":{get:y({operationId:"listReverseTrialSettings",requestParams:{query:ne},summary:"List reverse trial settings (one row per tenant)",tags:["trials"],responses:{200:{description:"Reverse trial settings list",content:{"application/json":{schema:te(Ya)}}}},"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:Ya}}}},"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:Ya.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Ya}}}},"x-revturbine-operation":{exposure:"internal",resource:"reverse-trial-settings",persistence:{table:"reverseTrialSettings",mode:"update"}}})},"/api/trials/instances":{get:y({operationId:"listTrialInstances",requestParams:{query:ne},summary:"List trial instances",tags:["trials"],responses:{200:{description:"Trial instance list",content:{"application/json":{schema:te(mp)}}}},"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:mp}}}},"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:mp}}}},"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:mp}}}},"x-revturbine-operation":{exposure:"internal",resource:"trial-instances",persistence:{table:"trialInstances",mode:"update"}}})}});var {Unrestricted:St}=Gt,{Persisted:kS,Transient:Zz}=Ht,{Internal:Vl}=Kt,qz=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),ZV=a.enum(["draft","ramping","winning","neutral","needs_attention","paused","complete"]).meta({id:"ExperimentStatus","x-revturbine-schema-persistence":Zz,"x-revturbine-schema-exposure":Vl}),qV=a.enum(["placement_ab","entitlement_ab","plan_ab","pricing_ab","custom"]).meta({id:"ExperimentType","x-revturbine-schema-persistence":Zz,"x-revturbine-schema-exposure":Vl}),HV=a.object({variant_id:a.string().min(1),name:Nt,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":kS,"x-revturbine-schema-exposure":Vl,...qz}),ai=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...St,readOnly:true}),name:Nt.meta(St),handle:ct.meta(St),description:a.string().max(1e3).optional().meta(St),experiment_type:qV.meta(St),status:ZV.default("draft").meta(St),target_resource_id:a.string().optional().meta(St),target_segment_ids:a.array(a.string()).default([]).meta(St),variants:a.array(HV).min(2).meta(St),primary_metric:a.string().min(1).meta(St),metric_threshold:a.number().default(.05).meta(St),secondary_metrics:a.array(a.string()).default([]).meta(St),traffic_allocation:a.number().min(0).max(1).default(1).meta(St),started_at:zt.meta(St),ended_at:zt.meta(St),confidence_threshold:a.number().min(0).max(1).default(.95).meta(St),winning_variant_id:a.string().nullable().default(null).meta(St),metadata:Ut.meta(St)}).meta({id:"Experiment","x-revturbine-schema-persistence":kS,"x-revturbine-schema-exposure":Vl,...qz,...yn()}),KV=an("ExperimentAnchor"),GV=gS,dz=ae.merge(pe).merge(be).extend({experiment_id:a.string().optional().meta(St),resource_type:a.string().min(1).meta(St),resource_id:a.string().min(1).meta(St),severity:GV.default("info").meta(St),title:a.string().min(1).max(300).meta(St),description:a.string().max(2e3).meta(St),suggested_action:a.string().max(1e3).optional().meta(St),estimated_impact:a.number().optional().meta(St),is_dismissed:a.boolean().default(false).meta(St),metadata:Ut.meta(St)}).meta({id:"OptimizationSuggestion","x-revturbine-schema-persistence":kS,"x-revturbine-schema-exposure":Vl});({"/api/experiment-anchors":{get:y({operationId:"listExperimentAnchors",requestParams:{query:ne},summary:"List experiment anchors (identity registry)",tags:["experiments"],responses:{200:{description:"Experiment anchor list",content:{"application/json":{schema:te(KV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiment-anchors",persistence:{table:"experiments",mode:"list"}}})},"/api/experiments":{get:y({operationId:"listExperiments",requestParams:{query:ne},summary:"List experiments",tags:["experiments"],responses:{200:{description:"Experiment list",content:{"application/json":{schema:te(ai)}}}},"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:ai}}}},"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:ai.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:ai}}}},"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:ai}}}},"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:ai}}}},"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:ai}}}},"x-revturbine-operation":{exposure:"internal",resource:"experiments",persistence:{table:"experimentVersions",mode:"update"}}})},"/api/optimization-suggestions":{get:y({operationId:"listOptimizationSuggestions",requestParams:{query:ne},summary:"List optimization suggestions",tags:["experiments"],responses:{200:{description:"Suggestion list",content:{"application/json":{schema:te(dz)}}}},"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:dz}}}},"x-revturbine-operation":{exposure:"internal",resource:"optimization-suggestions",persistence:{table:"optimizationSuggestions",mode:"update"}}})}});var {Unrestricted:gn,Financial:mz}=Gt,{Persisted:JV,Transient:Hz}=Ht,{Internal:TS}=Kt,WV=lt(Ze.Playbook,{sdkInput:true}),XV=a.enum(["draft","scheduled","live","expired","archived"]).meta({id:"PromotionStatus","x-revturbine-schema-persistence":Hz,"x-revturbine-schema-exposure":TS}),YV=a.enum(["percentage","fixed_amount","free_months"]).meta({id:"DiscountType","x-revturbine-schema-persistence":Hz,"x-revturbine-schema-exposure":TS}),Li=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({...gn,readOnly:true}),name:Nt.meta(gn),handle:ct.meta(gn),description:a.string().max(1e3).optional().meta(gn),rt_status:XV.default("draft").meta(gn),discount_type:YV.meta(gn),discount_value:a.number().min(0).meta(mz),currency:a.string().length(3).default("USD").meta(mz),applicable_plan_ids:a.array(a.string()).default([]).meta(gn),applicable_addon_ids:a.array(a.string()).default([]).meta(gn),target_segment_ids:a.array(a.string()).default([]).meta(gn),max_redemptions:a.number().int().min(0).nullable().default(null).meta(gn),current_redemptions:a.number().int().min(0).default(0).meta({...gn,readOnly:true}),coupon_code:a.string().max(100).optional().meta(gn),starts_at:zt.meta(gn),ends_at:zt.meta(gn),stripe_coupon_id:a.string().nullable().default(null).meta(gn),stripe_promotion_code_id:a.string().nullable().default(null).meta(gn),auto_sync_stripe:a.boolean().default(false).meta(gn),metadata:Ut.meta(gn)}).meta({id:"Promotion","x-revturbine-schema-persistence":JV,"x-revturbine-schema-exposure":TS,...WV,...yn()}),QV=an("PromotionAnchor");({"/api/promotion-anchors":{get:y({operationId:"listPromotionAnchors",requestParams:{query:ne},summary:"List promotion anchors (identity registry)",tags:["promotions"],responses:{200:{description:"Promotion anchor list",content:{"application/json":{schema:te(QV)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotion-anchors",persistence:{table:"promotions",mode:"list"}}})},"/api/promotions":{get:y({operationId:"listPromotions",requestParams:{query:ne},summary:"List promotions",tags:["promotions"],responses:{200:{description:"Promotion list",content:{"application/json":{schema:te(Li)}}}},"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:Li}}}},"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:Li.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Li}}}},"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:Li}}}},"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:Li}}}},"x-revturbine-operation":{exposure:"internal",resource:"promotions",persistence:{table:"promotionVersions",mode:"create"}}})}});var {Unrestricted:Et,Pii:$S}=Gt,{Persisted:wS}=Ht,{Internal:RS}=Kt,eM=ae.merge(pe).merge(be).extend({customer_id:a.string().min(1).meta($S),placement_id:a.string().min(1).meta(Et),payload_id:a.string().nullable().default(null).meta(Et),variant_id:a.string().nullable().default(null).meta(Et),surface_type:a.string().meta(Et),presented_at:a.string().datetime().meta({...Et,readOnly:true}),dismissed_at:zt.meta(Et),cta_clicked_at:zt.meta(Et),cta_action_type:a.string().nullable().default(null).meta(Et),converted:a.boolean().default(false).meta(Et),session_id:a.string().optional().meta(Et),metadata:Ut.meta(Et)}).meta({id:"PresentationRecord","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":RS}),tM=ae.merge(pe).merge(be).extend({customer_id:a.string().min(1).meta($S),placement_id:a.string().min(1).meta(Et),decision:a.enum(["show","suppress","defer"]).meta(Et),reason:a.string().max(500).meta(Et),matched_rules:a.array(a.object({rule_id:a.string(),rule_type:a.string(),matched:a.boolean()})).default([]).meta(Et),experiment_id:a.string().nullable().default(null).meta(Et),variant_id:a.string().nullable().default(null).meta(Et),latency_ms:a.number().min(0).optional().meta(Et)}).meta({id:"DecisionLog","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":RS}),nM=ae.merge(pe).merge(be).extend({customer_id:a.string().min(1).meta($S),entitlement_handle:a.string().min(1).meta(Et),entitlement_type:a.string().meta(Et),result:a.enum(["granted","denied","limited","metered"]).meta(Et),current_usage:a.number().nullable().default(null).meta(Et),limit:a.number().nullable().default(null).meta(Et),source:a.enum(["plan","addon","override","trial"]).meta(Et),source_id:a.string().min(1).meta(Et),latency_ms:a.number().min(0).optional().meta(Et)}).meta({id:"EntitlementEvalLog","x-revturbine-schema-persistence":wS,"x-revturbine-schema-exposure":RS});({"/api/presentation-records":{get:y({operationId:"listPresentationRecords",requestParams:{query:ne},summary:"List presentation records",tags:["runtime"],responses:{200:{description:"Presentation records",content:{"application/json":{schema:te(eM)}}}},"x-revturbine-operation":{exposure:"internal",resource:"presentation-records",persistence:{table:"presentationRecords",mode:"list"}}})},"/api/decision-logs":{get:y({operationId:"listDecisionLogs",requestParams:{query:ne},summary:"List decision logs",tags:["runtime"],responses:{200:{description:"Decision logs",content:{"application/json":{schema:te(tM)}}}},"x-revturbine-operation":{exposure:"internal",resource:"decision-logs",persistence:{table:"decisionLogs",mode:"list"}}})},"/api/entitlement-eval-logs":{get:y({operationId:"listEntitlementEvalLogs",requestParams:{query:ne},summary:"List entitlement evaluation logs",tags:["runtime"],responses:{200:{description:"Entitlement eval logs",content:{"application/json":{schema:te(nM)}}}},"x-revturbine-operation":{exposure:"internal",resource:"entitlement-eval-logs",persistence:{table:"entitlementEvalLogs",mode:"list"}}})}});var {Unrestricted:_}=Gt,{Persisted:gs,Transient:Ie}=Ht,{Internal:_r,External:Fe}=Kt,Oe=lt(Ze.Playbook,{sdkInput:true}),as=lt(Ze.Playbook,{sdkInput:false}),Mi=lt(Ze.Playbook,{inConfig:false,sdkInput:false}),Kz=lt(Ze.Playbook,{inConfig:false,sdkInput:true}),Vi=lt(Ze.Playbook,{inConfig:false,sdkInput:true,source:$r.CodeConstant}),Rl=lt(Ze.Playbook,{inConfig:false,sdkInput:true,source:$r.Runtime}),Cl=lt(Ze.Playbook,{inConfig:false,sdkInput:false,source:$r.Runtime}),rM=lt(Ze.Billing,{sdkInput:false}),iM=lt(Ze.Metering,{sdkInput:false}),oM=lt(Ze.Branding,{inConfig:true,sdkInput:true}),aM=lt(Ze.Branding,{sdkInput:false}),sM="1.0.0",yl=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),name:Nt.meta(_),handle:ct.meta(_),description:$o.meta(_),is_default:a.boolean().default(false).meta(_),entitlement_ids:a.array(a.string()).default([]).meta(_),metadata:Ut.meta(_)}).meta({id:"SeatType","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...Mi,...yn()}),cM=an("SeatTypeAnchor"),xl=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta(_),label:a.string().min(1).meta(_),description:a.string().nullable().default(null).meta(_),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(_),data_source:a.string().nullable().default(null).meta(_),example_value:a.string().nullable().default(null).meta(_),value_map:a.record(a.string(),a.string()).default({}).meta(_),format:a.enum(["string","number","currency","percentage","date"]).nullable().default(null).meta(_),metadata:Ut.meta(_)}).meta({id:"PersonalizationToken","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...Mi,...yn()}),lM=an("PersonalizationTokenAnchor"),uM=a.enum(["not_started","started","details_submitted","charges_enabled","activated","deauthorized"]).meta({id:"OnboardingState","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),uS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({..._,readOnly:true}),stripe_account_id:a.string().min(1).meta(_),live_mode:a.boolean().default(false).meta(_),onboarding_state:uM.default("not_started").meta({..._,readOnly:true}),onboarding_complete:a.boolean().default(false).meta({..._,readOnly:true}),charges_enabled:a.boolean().default(false).meta({..._,readOnly:true}),details_submitted:a.boolean().default(false).meta({..._,readOnly:true}),payouts_enabled:a.boolean().default(false).meta({..._,readOnly:true}),webhook_secret_set:a.boolean().default(false).meta({..._,readOnly:true}),sync_products:a.boolean().default(true).meta(_),sync_prices:a.boolean().default(true).meta(_),sync_subscriptions:a.boolean().default(true).meta(_),sync_invoices:a.boolean().default(false).meta(_),default_currency:a.string().length(3).default("USD").meta(_),tax_behavior:a.enum(["inclusive","exclusive","unspecified"]).default("unspecified").meta(_),last_sync_at:a.string().optional().meta({..._,readOnly:true}),metadata:Ut.meta(_)}).meta({id:"StripeIntegrationConfig","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...rM,...ar()});a.object({theme:a.record(a.string(),a.unknown()).optional().meta(_),workspace_name:a.string().optional().meta(_),logo_url:a.string().optional().meta(_),support_email:a.string().optional().meta(_)}).meta({id:"BrandingConfig","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...aM});var Sl=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({..._,readOnly:true}),entitlement_id:a.string().min(1).meta(_),meter_key:a.string().min(1).max(100).meta(_),aggregation_type:a.enum(["sum","count","max","last_value"]).default("sum").meta(_),reset_period:a.enum(["none","daily","weekly","monthly","yearly"]).default("monthly").meta(_),stripe_meter_id:a.string().nullable().default(null).meta(_),is_active:a.boolean().default(true).meta(_),metadata:Ut.meta(_)}).meta({id:"MeteringConfig","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...iM,...ar()}),pz=a.enum(["block","warn","downgrade","throttle","notify_admin","custom"]).meta({id:"EnforcementAction","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),Il=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta({..._,readOnly:true}),entitlement_id:a.string().min(1).meta(_),soft_limit_percent:a.number().min(0).max(100).default(80).meta(_),hard_limit_percent:a.number().min(0).max(100).default(100).meta(_),soft_limit_action:pz.default("warn").meta(_),hard_limit_action:pz.default("block").meta(_),grace_period_hours:a.number().int().min(0).default(0).meta(_),notification_channels:a.array(a.enum(["email","in_app","webhook"])).default(["in_app"]).meta(_),is_active:a.boolean().default(true).meta(_)}).meta({id:"UsageEnforcementSettings","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...Kz,...ar()}),dM=an("UsageEnforcementSettingsAnchor"),mM=a.object({kind:a.enum(["template","slot"]).meta(_),id:a.string().min(1).meta(_),label:a.string().min(1).optional().meta(_)}).meta({id:"PlacementSettingsCapRuleGroupItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),pM=a.object({id:a.string().min(1).meta(_),group:a.array(mM).min(1).meta(_),cap:a.object({count:a.number().int().min(1).meta(_),period:a.enum(["session","day","week","month"]).meta(_)}).meta(_)}).meta({id:"PlacementSettingsCapRule","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),fM=a.enum(["off","test_users","all_traffic"]).meta({id:"PlacementTestMode","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),Gz=a.object({capRules:a.array(pM).default([]).meta(_),sessionCooldownMinutes:a.number().int().min(0).default(30).meta(_),testMode:fM.default("off").meta(_)}).meta({id:"PlacementSettingsCapState","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":_r}),dS=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({anchor_id:a.string().min(1).meta({..._,readOnly:true}),handle:ct.meta({..._,readOnly:true}),global_frequency_cap:Gz.nullable().default(null).meta(_),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(_),suppress_for_paid:a.boolean().default(false).meta(_),suppress_for_trial:a.boolean().default(false).meta(_),default_dismiss_cooldown_hours:a.number().int().min(0).default(24).meta(_),allow_stacking:a.boolean().default(false).meta(_),priority_collision_strategy:a.enum(["highest_priority","most_recent","random"]).default("highest_priority").meta(_)}).meta({id:"PlacementSettings","x-revturbine-schema-persistence":gs,"x-revturbine-schema-exposure":_r,...Kz,...ar()}),gM=an("PlacementSettingsAnchor"),hM=a.object({field:a.string().min(1).meta(_),operator:a.enum(["eq","neq","gt","lt","gte","lte","contains","in"]).meta(_),value:a.string().meta(_)}).meta({id:"RevTurbineConfigSegmentsItemPredicatesItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),bM=a.object({name:a.string().min(1).meta(_),handle:a.string().min(1).meta(_),predicates:a.array(hM).optional().meta(_),dimension_id:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigSegmentsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),_M=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),tier_position:a.number().int().min(0).default(0).meta(_),sort_order:a.number().int().min(0).default(0).meta(_),visibility:ds.default("public").meta(_)}).meta({id:"RevTurbineConfigPlansItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),vM=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),sort_order:a.number().int().min(0).default(0).meta(_),visibility:ds.default("public").meta(_)}).meta({id:"RevTurbineConfigAddonsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...as}),yM=a.object({handle:a.string().min(1).meta(_),plan_handle:a.string().min(1).meta(_),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(_),segment_handle:a.string().nullable().default(null).meta(_),price_amount:a.number().min(0).meta(_),pricing_model:jl.meta(_),visibility:ds.default("public").meta(_),stripe_price_id:a.string().nullable().default(null).meta(_),price_source:yp.meta(_)}).meta({id:"RevTurbineConfigPlanVariationsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Mi}),xM=a.object({handle:a.string().min(1).meta(_),addon_handle:a.string().min(1).meta(_),billing_period:a.enum(["monthly","annual","one_time","custom"]).meta(_),segment_handle:a.string().nullable().default(null).meta(_),price_amount:a.number().min(0).meta(_),pricing_model:jl.meta(_),visibility:ds.default("public").meta(_),stripe_price_id:a.string().nullable().default(null).meta(_),price_source:yp.meta(_)}).meta({id:"RevTurbineConfigAddonVariationsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Mi}),SM=a.object({handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),description:a.string().nullable().default(null).meta(_),is_default:a.boolean().default(false).meta(_),entitlement_handles:a.array(a.string()).default([]).meta(_)}).meta({id:"RevTurbineConfigSeatTypesItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),IM=a.object({handle:a.string().min(1).meta(_),entitlement_handle:a.string().nullable().default(null).meta(_),soft_limit_percent:a.number().int().min(0).nullable().default(null).meta(_),hard_limit_percent:a.number().int().min(0).nullable().default(null).meta(_),soft_limit_action:a.string().meta(_),hard_limit_action:a.string().meta(_),grace_period_hours:a.number().int().min(0).nullable().default(null).meta(_),notification_channels:a.array(a.string()).default([]).meta(_),is_active:a.boolean().default(true).meta(_)}).meta({id:"RevTurbineConfigEnforcementDefaultsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),PM=a.object({handle:a.string().min(1).meta(_),global_frequency_cap:Gz.nullable().default(null).meta(_),global_frequency_cap_period:a.enum(["hour","day","week","month","session"]).nullable().default(null).meta(_),suppress_for_paid:a.boolean().default(false).meta(_),suppress_for_trial:a.boolean().default(false).meta(_),default_dismiss_cooldown_hours:a.number().int().min(0).nullable().default(null).meta(_),allow_stacking:a.boolean().default(false).meta(_),priority_collision_strategy:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigPlacementSettingsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),kM=a.object({handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),category:a.string().nullable().default(null).meta(_),visibility_toggle:a.boolean().default(true).meta(_),source_type:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigSegmentDimensionsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),TM=a.object({handle:a.string().min(1).meta(_),entitlement_handle:a.string().min(1).meta(_),meter_handle:a.string().min(1).meta(_),limit:a.number().int().min(0).nullable().default(null).meta(_),reset_period:a.string().nullable().default(null).meta(_)}).meta({id:"RevTurbineConfigMeterBindingsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),$M=a.object({unique_handle:a.string().min(1).meta(_),name:a.string().min(1).meta(_),type:hz.meta(_),unit:a.string().optional().meta(_),tier_definitions:a.array(a.object({name:a.string(),handle:a.string(),description:a.string().optional()})).optional().meta(_)}).meta({id:"RevTurbineConfigEntitlementsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),wM=a.object({id:a.string().min(1).meta(_),entitlement_id:a.string().min(1).meta(_),targets:a.array(Sz).min(1).meta(_),segment_ids:a.array(a.string()).default([]).meta(_),type_fields:TB.default({}).meta(_),current_usage:a.number().default(0).meta(_),allocation:_S.optional().meta(_)}).meta({id:"RevTurbineConfigEntitlementRulesItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),RM=a.object({slot_id:a.string().min(1).meta(_),active:a.boolean().meta(_),triggers:a.array(a.string()).meta(_)}).meta({id:"RevTurbineConfigSlotConfigsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),CM=a.object({id:a.string().min(1).meta(_),label:a.string().min(1).meta(_),description:a.string().meta(_),surface_type:a.string().meta(_),placement_handle:a.string().min(1).meta(_),template:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigPlacementSlotsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),EM=a.object({name:a.string().min(1).meta(_),type:a.string().optional().meta(_),required:a.boolean().optional().meta(_)}).meta({id:"RevTurbineConfigSurfaceTemplatesItemFieldsItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),zM=a.object({id:a.string().min(1).meta(_),surface_type:a.string().meta(_),fields:a.array(EM).optional().meta(_)}).meta({id:"RevTurbineConfigSurfaceTemplatesItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),OM=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":Ie,"x-revturbine-schema-exposure":Fe}),jM=a.object({name:a.string().min(1).meta(_),action_type:OM.meta(_),plan_handle:a.string().optional().meta(_),promotion_id:a.string().optional().meta(_),placement_handle:a.string().optional().meta(_),url:a.string().optional().meta(_),tour_id:a.string().optional().meta(_),target_billing_period:a.enum(["monthly","annual"]).optional().meta(_),description:a.string().optional().meta(_)}).meta({id:"ContentUiPath","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),UM=a.object({id:a.string().meta(_),name:a.string().meta(_),discount:a.string().meta(_),type:a.string().meta(_),status:a.string().meta(_)}).meta({id:"ContentPromotion","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),AM=a.object({token:a.string().regex(/^[a-z][a-z0-9_]*$/).meta(_),label:a.string().min(1).meta(_),description:a.string().optional().meta(_),category:a.enum(["user","plan","usage","trial","billing","promotion","custom"]).meta(_),data_source:a.string().optional().meta(_),example_value:a.string().optional().meta(_),value_map:a.record(a.string(),a.string()).optional().meta(_),format:a.enum(["string","number","currency","percentage","date"]).optional().meta(_)}).meta({id:"RevTurbineConfigPersonalizationTokensItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),fz=a.object({header:a.string().optional().meta(_),body:a.string().optional().meta(_),cta_label:a.string().optional().meta(_),secondary_cta_label:a.string().optional().meta(_)}).catchall(a.unknown()).meta({id:"MessageBlockContent","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),DM=a.object({block_id:a.string().min(1).meta(_),tenant_id:a.string().min(1).meta(_),name:a.string().min(1).meta(_),surface_template_id:a.string().optional().meta(_),default_content:fz.meta(_),segment_overrides:a.array(a.object({segment_value_id:a.string(),content:fz})).optional().meta(_),child_blocks:a.array(a.object({slot:a.string(),block_id:a.string()})).optional().meta(_),tokens_used:a.array(a.string()).optional().meta(_),status:a.enum(["draft","active","archived"]).meta(_),created_at:a.string().datetime().meta({..._,readOnly:true}),updated_at:a.string().datetime().meta({..._,readOnly:true})}).meta({id:"MessageBlock","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),FM=a.object({label:a.string().meta(_),path:bz.meta(_),config:a.record(a.string(),a.string()).optional().meta(_)}).meta({id:"RevTurbineConfigStudioCtaConfig","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),Jz=a.object({template_id:a.string().min(1).meta(_),fields:a.record(a.string(),a.string()).meta(_),ctas:a.array(FM).meta(_)}).meta({id:"RevTurbineConfigStudioPayloadSurface","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),Wz=a.object({plan_ids:a.array(a.string()).meta(_),billing_cadences:a.array(a.string()).optional().meta(_),segment_chips:a.array(a.string()).meta(_)}).meta({id:"RevTurbineConfigStudioPayloadTarget","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),NM=a.object({count:a.number().int().min(1).meta(_),period:a.enum(["session","day","week","month","lifetime"]).meta(_)}).meta({id:"RevTurbineConfigPeriodCap","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),Xz=a.object({max_per_period:NM.optional().meta(_),cooldown_days:a.number().int().min(0).optional().meta(_)}).meta({id:"RevTurbineConfigStudioPayloadCaps","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),LM=a.object({id:a.string().min(1).meta(_),target:Wz.meta(_),surfaces:a.array(Jz).meta(_),caps:Xz.optional().meta(_),surface_slot_ids:a.array(a.string()).optional().meta(_),created_at:a.string().optional().meta({..._,readOnly:true}),recommendation_strategy:a.enum(["next_tier_up","best_value","custom"]).optional().default("next_tier_up").meta(_),recommendation_plan_override:a.string().optional().meta(_)}).meta({id:"RevTurbineConfigStudioPayload","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),BM=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:$l}),a.object({type:a.literal("credit_threshold"),entitlement_handle:a.string().min(1),threshold_percent:$l}),a.object({type:a.literal("seat_threshold"),entitlement_handle:a.string().min(1),threshold_percent:$l}),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":Ie,"x-revturbine-schema-exposure":Fe}),VM=a.enum(["fixed","gated","usage_credit_seat","trials","other_conversion","retention"]).meta({id:"RevTurbineConfigPlacementCategory","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe}),MM=a.object({id:a.string().min(1).meta(_),name:a.string().min(1).meta(_),category:VM.meta(_),trigger:BM.meta(_),payloads:a.array(LM).meta(_),order:a.number().int().min(0).meta(_)}).meta({id:"RevTurbineConfigPlacementItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),ZM=a.object({payload_id:a.string().min(1).meta(_),placement_id:a.string().min(1).meta(_),target:Wz.meta(_),caps:Xz.optional().meta(_),created_at:a.string().meta({..._,readOnly:true}),updated_at:a.string().datetime().optional().meta({..._,readOnly:true}),source_mode:a.enum(["inline","content_linked"]).meta(_),surfaces:a.array(Jz).optional().meta(_),surface_slot_ids:a.array(a.string()).optional().meta(_),content_link:a.object({message_block_id:a.string().optional(),ui_path_id:a.string().optional(),promotion_id:a.string().optional(),content_payload_id:a.string().optional()}).optional().meta(_)}).meta({id:"RevTurbineConfigPlacementPayloadItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),qM=a.object({kind:a.string().min(1).meta(_),schema_version:a.number().int().nonnegative().meta(_),config:a.unknown().meta(_)}).meta({id:"RevTurbineConfigExtensionRulesItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe}),HM=ae.merge(Lz).meta({id:"RevTurbineConfigFreeTrialRuleItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Mi}),KM=ae.merge(Bz).meta({id:"RevTurbineConfigReverseTrialRuleItem","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Mi}),GM=a.object({version:a.string().meta({..._,...Vi}),exported_at:a.string().datetime().optional().meta({..._,...Rl,readOnly:true}),schema_version:a.string().optional().meta({..._,...Vi,readOnly:true}),bundle_schema_version:a.number().int().optional().meta({..._,...Vi,readOnly:true}),change_set_id:a.string().nullable().default(null).meta({..._,...Rl,readOnly:true}),tenant_id:a.string().optional().meta({..._,...Cl,readOnly:true}),environment_id:a.string().optional().meta({..._,...Cl,readOnly:true}),plans:a.array(_M).meta({..._,...Oe}),addons:a.array(vM).optional().meta({..._,...as}),entitlements:a.array($M).meta({..._,...Oe}),entitlement_rules:a.array(wM).meta({..._,...Oe}),segments:a.array(bM).meta({..._,...Oe}),content_ui_paths:a.array(jM).meta({..._,...Oe}),slot_configs:a.array(RM).optional().meta({..._,...Oe,...dp({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({..._,...Oe,...dp({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({..._,...oM,...dp({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(CM).optional().meta({..._,...Oe}),message_blocks:a.array(DM).optional().meta({..._,...Oe}),placement_payloads:a.array(ZM).optional().meta({..._,...Oe}),placements:a.array(MM).optional().meta({..._,...Oe}),content_promotions:a.array(UM).optional().meta({..._,...Oe}),personalization_tokens:a.array(AM).optional().meta({..._,...Oe}),surface_templates:a.array(zM).optional().meta({..._,...Oe}),free_trial_rules:a.array(HM).optional().meta({..._,...as}),reverse_trial_rules:a.array(KM).optional().meta({..._,...as}),plan_variations:a.array(yM).optional().meta({..._,...as}),addon_variations:a.array(xM).optional().meta({..._,...as}),extension_rules:a.array(qM).optional().meta({..._,...Oe}),seat_types:a.array(SM).optional().meta({..._,...Oe}),enforcement_defaults:a.array(IM).optional().meta({..._,...Oe}),placement_settings:a.array(PM).optional().meta({..._,...Oe}),segment_dimensions:a.array(kM).optional().meta({..._,...Oe}),meter_bindings:a.array(TM).optional().meta({..._,...Oe})}).meta({id:"RevTurbineConfig","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe,...dp({since:"0.1.111",replacement:"PlaybookSchema",removeAfter:"one compatibility window",reason:"The legacy wire conflates format and provenance under version and change_set_id."})}),JM=a.object({artifact_type:a.literal("playbook").meta({..._,...Vi,readOnly:true}),format_version:a.literal(sM).meta({..._,...Vi,readOnly:true}),playbook_handle:a.string().min(1).default("default").meta({..._,...Vi}),playbook_version_id:a.string().nullable().default(null).meta({..._,...Rl,readOnly:true}),tenant_id:a.string().min(1).meta({..._,...Cl,readOnly:true}),environment_id:a.string().min(1).meta({..._,...Cl,readOnly:true}),project_id:a.string().min(1).optional().meta({..._,...Cl,readOnly:true}),exported_at:a.string().datetime().optional().meta({..._,...Rl,readOnly:true}),schema_version:a.string().min(1).optional().meta({..._,...Vi,readOnly:true}),bundle_schema_version:a.number().int().nonnegative().optional().meta({..._,...Vi,readOnly:true})}).meta({id:"PlaybookHeader","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Rl}),WM={version:true,exported_at:true,schema_version:true,bundle_schema_version:true,change_set_id:true,tenant_id:true,environment_id:true},XM=GM.omit(WM).extend({experiments:a.array(a.unknown()).max(0).optional().meta({..._,...Mi}),signal_catalog:a.object({}).strict().optional().meta({..._,...Mi})}).meta({id:"PlaybookBody","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe});JM.extend(XM.shape).meta({id:"Playbook","x-revturbine-schema-persistence":Ie,"x-revturbine-schema-exposure":Fe,...Oe});({"/api/seat-type-anchors":{get:y({operationId:"listSeatTypeAnchors",requestParams:{query:ne},summary:"List seat type anchors (identity registry)",tags:["config"],responses:{200:{description:"Seat type anchor list",content:{"application/json":{schema:te(cM)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"seat-type-anchors",persistence:{table:"seatTypes",mode:"list"}}})},"/api/config/seat-types":{get:y({operationId:"listSeatTypes",requestParams:{query:ne},summary:"List seat types",tags:["config"],responses:{200:{description:"Seat type list",content:{"application/json":{schema:te(yl)}}}},"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:_n(yl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:yl}}}},"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:yl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:yl}}}},"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:ne},summary:"List personalization token anchors (identity registry)",tags:["config"],responses:{200:{description:"Personalization token anchor list",content:{"application/json":{schema:te(lM)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"personalization-token-anchors",persistence:{table:"personalizationTokens",mode:"list"}}})},"/api/config/personalization-tokens":{get:y({operationId:"listPersonalizationTokens",requestParams:{query:ne},summary:"List personalization tokens",tags:["config"],responses:{200:{description:"Personalization token list",content:{"application/json":{schema:te(xl)}}}},"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:_n(xl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:xl}}}},"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:xl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:xl}}}},"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:vn(uS)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:uS}}}},"x-revturbine-operation":{exposure:"internal",resource:"stripe-config",persistence:{table:"stripeIntegrationConfig",mode:"upsert"}}})},"/api/config/metering":{get:y({operationId:"listMeteringConfigs",requestParams:{query:ne},summary:"List metering configurations",tags:["config"],responses:{200:{description:"Metering config list",content:{"application/json":{schema:te(Sl)}}}},"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:_n(Sl)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Sl}}}},"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:Sl.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Sl}}}},"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:ne},summary:"List usage enforcement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Usage enforcement setting anchor list",content:{"application/json":{schema:te(dM)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:ne},summary:"List usage enforcement settings",tags:["config"],responses:{200:{description:"Enforcement settings",content:{"application/json":{schema:te(Il)}}}},"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:_n(Il)}}},responses:{201:{description:"Created",content:{"application/json":{schema:Il}}}},"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:Il.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Il}}}},"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:ne},summary:"List placement setting anchors (identity registry)",tags:["config"],responses:{200:{description:"Placement setting anchor list",content:{"application/json":{schema:te(gM)}}},default:{description:"Error response",content:{"application/json":{schema:we}}}},"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:vn(dS)}}},responses:{200:{description:"Saved",content:{"application/json":{schema:dS}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-settings",persistence:{table:"placementSettingVersions",mode:"upsert"}}})}});var {Unrestricted:si}=Gt,{Persisted:Yz}=Ht,{Internal:Qz}=Kt,YM=a.enum(["create","update","delete","archive","restore","reorder","duplicate","sync","publish"]).meta({id:"ChangeLogAction","x-revturbine-schema-persistence":Yz,"x-revturbine-schema-exposure":Qz}),gz=ae.merge(pe).merge(be).extend({action:YM.meta(si),resource_type:a.string().min(1).max(100).meta(si),resource_id:a.string().min(1).meta(si),resource_name:a.string().max(200).optional().meta(si),actor_id:a.string().min(1).meta(si),actor_email:a.string().email().optional().meta(si),diff:a.object({before:a.record(a.string(),a.unknown()).optional(),after:a.record(a.string(),a.unknown()).optional()}).optional().meta(si),summary:a.string().max(1e3).optional().meta(si),metadata:Ut.meta(si)}).meta({id:"ChangeLogEntry","x-revturbine-schema-persistence":Yz,"x-revturbine-schema-exposure":Qz});({"/api/changelog":{get:y({operationId:"listChangeLogEntries",requestParams:{query:ne},summary:"List change log entries",tags:["changelog"],responses:{200:{description:"Change log entries",content:{"application/json":{schema:te(gz)}}}},"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:gz}}}},"x-revturbine-operation":{exposure:"internal",resource:"changelog",persistence:{table:"changeLogEntries",mode:"get"}}})}});var {Unrestricted:pp}=Gt,{Persisted:QM,Transient:e3}=Ht,{Internal:eO}=Kt,t3=a.enum(["active","suspended","archived"]).meta({id:"TenantStatus","x-revturbine-schema-persistence":e3,"x-revturbine-schema-exposure":eO}),Bi=ae.merge(pe).extend({name:Nt.meta(pp),handle:ct.meta(pp),status:t3.default("active").meta(pp),metadata:Ut.meta(pp)}).meta({id:"Tenant","x-revturbine-schema-persistence":QM,"x-revturbine-schema-exposure":eO});({"/api/tenants":{get:y({operationId:"listTenants",requestParams:{query:ne},summary:"List tenants",tags:["tenants"],responses:{200:{description:"Tenant list",content:{"application/json":{schema:te(Bi)}}}},"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:Bi}}}},"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:Bi.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Bi}}}},"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:Bi}}}},"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:Bi}}}},"x-revturbine-operation":{exposure:"internal",resource:"tenants",persistence:{table:"tenants",mode:"update"}}})}});var {Unrestricted:hr}=Gt,{Persisted:n3,Transient:tO}=Ht,{Internal:CS}=Kt,r3=a.enum(["active","archived","locked"]).meta({id:"EnvironmentStatus","x-revturbine-schema-persistence":tO,"x-revturbine-schema-exposure":CS}),Qa=ae.merge(pe).merge(be).extend({name:Nt.meta(hr),handle:ct.meta(hr),description:$o.meta(hr),is_production:a.boolean().default(false).meta({...hr,readOnly:true}),status:r3.default("active").meta(hr),cloned_from_environment_id:a.string().nullable().default(null).meta({...hr,readOnly:true}),cloned_at:zt.meta({...hr,readOnly:true}),cloned_at_sequence:a.number().int().min(0).nullable().default(null).meta({...hr,readOnly:true}),requires_approval:a.boolean().default(false).meta(hr),auto_deploy_on_approval:a.boolean().default(false).meta(hr),created_by:a.string().optional().meta(hr),metadata:Ut.meta(hr)}).meta({id:"Environment","x-revturbine-schema-persistence":n3,"x-revturbine-schema-exposure":CS}),i3=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":tO,"x-revturbine-schema-exposure":CS});({"/api/environments":{get:y({operationId:"listEnvironments",requestParams:{query:ne},summary:"List environments",tags:["environments"],responses:{200:{description:"Environment list",content:{"application/json":{schema:te(Qa)}}}},"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:Qa}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:Qa}}}},"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:Qa.partial()}}},responses:{200:{description:"Updated",content:{"application/json":{schema:Qa}}}},"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:Qa}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:i3}}},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:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"environments",persistence:{table:"environments",mode:"promote"}}})}});var {Unrestricted:ye,Pii:zl}=Gt,{Transient:Gr,Persisted:o3}=Ht,{External:wr}=Kt,a3=a.enum(["milestone_version","milestone_order"]).meta({id:"SupersessionReason","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr});a.object({superseded_output_id:a.string().min(1).meta(ye),superseded_by:a.string().min(1).meta(ye),reason:a3.meta(ye)}).meta({id:"SupersessionRecord","x-revturbine-schema-persistence":o3,"x-revturbine-schema-exposure":wr,"x-revturbine-data-classification":"operational"});var s3=a.enum(["allowed","limited","denied"]).meta({id:"EntitlementStatus","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr}),nO=a.object({output_id:a.string().meta(ye),category:a.string().meta(ye),surface:a.object({template:a.string().optional().meta(ye),type:_p.meta(ye),slot_id:a.string().optional().meta(ye)}).meta(ye),content:a.record(a.string(),a.unknown()).meta(ye),promotion:a.record(a.string(),a.unknown()).optional().meta(ye),cta_path:a.record(a.string(),a.unknown()).optional().meta(ye),ui_path:a.record(a.string(),a.unknown()).optional().meta(ye),rule_id:a.string().meta(ye),decision_id:a.string().meta(ye),config_version:a.string().meta(ye),present_upsell:a.boolean().meta(ye)}).meta({id:"PlacementDecisionOutput","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr}),c3=a.object({status:s3.meta(ye),allowed:a.boolean().meta(ye),reason:a.string().optional().meta(ye),current_tier:a.string().optional().meta(ye),limit:a.number().optional().meta(ye),used:a.number().optional().meta(ye),remaining:a.number().optional().meta(ye),placement:nO.optional().meta(ye)}).meta({id:"EntitlementCheckResult","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr});a.object({id:a.string().meta(ye),name:a.string().optional().meta(ye),discount:a.string().optional().meta(ye),type:a.string().optional().meta(ye),status:a.string().optional().meta(ye)}).meta({id:"RuntimePromotionSnapshot","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr});var l3=a.object({id:a.string().meta(zl),anonymous_id:a.string().optional().meta(ye),traits:a.record(a.string(),a.unknown()).optional().meta(zl)}).meta({id:"ServerEvaluationPayloadUser","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr}),u3=a.object({slot_id:a.string().optional().meta(ye),entitlement_handle:a.string().optional().meta(ye),plan_handle:a.string().optional().meta(ye),placement_handle:a.string().optional().meta(ye),visible:a.boolean().meta(ye),output:nO.optional().meta(ye),reason_codes:a.array(a.string()).optional().meta(ye)}).meta({id:"ServerEvaluationPayloadDecisionsItem","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr}),d3=c3,m3=vS.meta({id:"ServerEvaluationPayloadTrialStatus","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr}),p3=a.object({segments:a.array(a.string()).optional().meta(ye),traits:a.record(a.string(),a.unknown()).optional().meta(zl),usage_balances:a.record(a.string(),a.number()).optional().meta(ye)}).meta({id:"ServerEvaluationPayloadUserContext","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr});a.object({version:a.literal("1.0.0").meta(ye),request_id:a.string().meta(ye),tenant_id:a.string().meta(ye),evaluated_at:a.string().datetime().meta(ye),ttl_seconds:a.number().int().min(0).max(86400).meta(ye),user:l3.meta(zl),decisions:a.array(u3).meta(ye),entitlements:a.record(a.string(),d3).optional().meta(ye),theme:a.record(a.string(),a.unknown()).optional().meta(ye),trial_status:m3.optional().meta(ye),user_context:p3.optional().meta(zl)}).meta({id:"ServerEvaluationPayload","x-revturbine-schema-persistence":Gr,"x-revturbine-schema-exposure":wr});var {Unrestricted:We}=Gt,{Persisted:f3,Transient:Ip}=Ht,{Internal:Ml}=Kt,g3=a.enum(["draft","awaiting_approval","approved","deploying","deployed","rejected","archived"]).meta({id:"PlaybookVersionStatus","x-revturbine-schema-persistence":Ip,"x-revturbine-schema-exposure":Ml}),Pl=ae.merge(pe).merge(be).extend({environment_id:a.string().min(1).meta(We),name:Nt.meta(We),description:a.string().max(2e3).optional().meta(We),status:g3.default("draft").meta(We),labels:a.array(a.string()).default([]).meta(We),created_by:a.string().min(1).meta(We),submitted_by:a.string().nullable().default(null).meta({...We,readOnly:true}),reviewed_by:a.string().nullable().default(null).meta({...We,readOnly:true}),deployed_by:a.string().nullable().default(null).meta({...We,readOnly:true}),submitted_at:zt.meta({...We,readOnly:true}),reviewed_at:zt.meta({...We,readOnly:true}),deployed_at:zt.meta({...We,readOnly:true}),base_snapshot_sequence:a.number().int().min(0).default(0).meta({...We,readOnly:true}),entry_count:a.number().int().min(0).default(0).meta({...We,readOnly:true}),conflict_count:a.number().int().min(0).default(0).meta({...We,readOnly:true}),rollback_of_playbook_version_id:a.string().nullable().default(null).meta(We),cherry_picked_from_playbook_version_id:a.string().nullable().default(null).meta(We),review_notes:a.string().max(2e3).optional().meta(We),rejection_reason:a.string().max(2e3).optional().meta(We),snapshot:a.record(a.string(),a.unknown()).nullable().default(null).meta({...We,readOnly:true}),bundle:a.string().nullable().default(null).meta({...We,readOnly:true}),metadata:Ut.meta(We)}).meta({id:"PlaybookVersion","x-revturbine-schema-persistence":f3,"x-revturbine-schema-exposure":Ml}),rO=a.object({handle:a.string().meta(We),resource_type:a.string().meta(We),resource_name:a.string().optional().meta(We),action:a.enum(["create","update","delete"]).meta(We),has_conflict:a.boolean().meta(We)}).meta({id:"PlaybookVersionEntrySummary","x-revturbine-schema-persistence":Ip,"x-revturbine-schema-exposure":Ml}),h3=a.object({playbook_version_id:a.string().meta(We),entries:a.array(rO).meta(We),total_entries:a.number().int().min(0).meta(We),total_conflicts:a.number().int().min(0).meta(We),deployable:a.boolean().meta(We)}).meta({id:"PlaybookVersionDiff","x-revturbine-schema-persistence":Ip,"x-revturbine-schema-exposure":Ml}),b3=a.object({playbook_version_id:a.string().meta(We),deployed_count:a.number().int().min(0).meta(We),superseded_count:a.number().int().min(0).meta(We),skipped_conflicts:a.number().int().min(0).meta(We),deployed_at:a.string().datetime().meta(We)}).meta({id:"PlaybookVersionDeployResult","x-revturbine-schema-persistence":Ip,"x-revturbine-schema-exposure":Ml});({"/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:Pl}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:Pl}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:Pl}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:b3}}},default:{description:"Error (conflicts exist)",content:{"application/json":{schema:we}}}},"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:Pl}}}},"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:h3}}}},"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:ne},summary:"List entries with sequence conflicts (base_sequence \u2260 current)",tags:["playbook-versions"],responses:{200:{description:"Conflict list",content:{"application/json":{schema:te(rO)}}}},"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:Pl}}},default:{description:"Error",content:{"application/json":{schema:we}}}},"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:we}}}},"x-revturbine-operation":{exposure:"internal",resource:"playbook-versions",persistence:{table:"playbookVersions",mode:"update"}}})}});var {Unrestricted:Ge,Pii:_3}=Gt,{Persisted:Rr}=Ht,{Internal:Cr}=Kt,v3=a.enum(["active","revoked","rotating"]).meta({id:"ApiKeyStatus","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),fp=ae.merge(pe).merge(be).extend({name:Nt.meta(Ge),key_hash:a.string().min(1).meta({..._3,readOnly:true}),key_prefix:a.string().min(1).max(20).meta({...Ge,readOnly:true}),key_last4:a.string().length(4).meta({...Ge,readOnly:true}),status:v3.default("active").meta(Ge),last_used_at:zt.meta({...Ge,readOnly:true}),expires_at:zt.meta(Ge)}).meta({id:"ApiKey","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),y3=a.enum(["boolean","string","number","json"]).meta({id:"FlagValueType","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),ko=ae.merge(pe).merge(be).extend({key:a.string().min(1).max(100).meta(Ge),value_type:y3.default("boolean").meta(Ge),value:a.string().max(4e3).default("false").meta(Ge),description:$o.meta(Ge),enabled:a.boolean().default(true).meta(Ge)}).meta({id:"FeatureFlag","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),mS=ae.merge(pe).merge(be).extend({workspace_name:a.string().min(1).max(200).meta(Ge),support_email:a.string().email().nullable().default(null).meta(Ge),timezone:a.string().max(50).default("UTC").meta(Ge),default_currency:a.string().length(3).default("USD").meta(Ge),logo_url:a.string().url().nullable().default(null).meta(Ge)}).meta({id:"TenantConfig","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),pS=ae.merge(pe).merge(be).extend({server_url:a.string().url().max(500).meta(Ge),api_token_hint:a.string().max(50).nullable().default(null).meta(Ge),allow_write_actions:a.boolean().default(false).meta(Ge),enabled_tools:a.array(a.string().max(100)).default([]).meta(Ge),enabled:a.boolean().default(false).meta(Ge)}).meta({id:"McpConfig","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),gp=ae.merge(pe).merge(be).extend({step_key:a.string().min(1).max(100).meta(Ge),label:a.string().min(1).max(200).meta(Ge),done:a.boolean().default(false).meta(Ge),completed_at:zt.meta({...Ge,readOnly:true})}).meta({id:"OnboardingChecklist","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),x3=a.enum(["user","agent","system","webhook"]).meta({id:"AuditActorType","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),S3=ae.merge(be).extend({environment_id:a.string().min(1).default("production").meta(Ge),actor_type:x3.meta(Ge),actor_id:a.string().nullable().default(null).meta(Ge),action:a.string().min(1).max(120).meta(Ge),object_type:a.string().max(120).nullable().default(null).meta(Ge),object_id:a.string().max(200).nullable().default(null).meta(Ge),payload:a.record(a.string(),a.unknown()).nullable().default(null).meta(Ge),occurred_at:a.string().datetime().meta({...Ge,readOnly:true})}).meta({id:"AuditEvent","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),I3=a.enum(["user_id","account_id","email"]).meta({id:"PlacementTestUserIdentifierType","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr}),hp=ae.merge(pe).merge(be).merge(dt).merge(ft).extend({handle:ct.meta({...Ge,readOnly:true}),identifier:a.string().min(1).max(200).meta(Ge),identifier_type:I3.default("user_id").meta(Ge),note:a.string().max(500).nullable().default(null).meta(Ge),added_by:a.string().meta(Ge)}).meta({id:"PlacementTestUser","x-revturbine-schema-persistence":Rr,"x-revturbine-schema-exposure":Cr,...ar()});({"/api/settings/api-keys":{get:y({operationId:"listApiKeys",requestParams:{query:ne},summary:"List API keys for the tenant",tags:["settings"],responses:{200:{description:"API keys",content:{"application/json":{schema:te(fp)}}}},"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:_n(fp)}}},responses:{201:{description:"API key created",content:{"application/json":{schema:fp}}}},"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:fp}}}},"x-revturbine-operation":{exposure:"internal",resource:"api-keys",persistence:{table:"apiKeys",mode:"delete"}}})},"/api/flags":{get:y({operationId:"listFeatureFlags",requestParams:{query:ne},summary:"List feature flags for the tenant",tags:["settings"],responses:{200:{description:"Feature flags",content:{"application/json":{schema:te(ko)}}}},"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:_n(ko)}}},responses:{201:{description:"Feature flag created",content:{"application/json":{schema:ko}}}},"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:ko}}}},"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:vn(ko).partial()}}},responses:{200:{description:"Feature flag updated",content:{"application/json":{schema:ko}}}},"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:ko}}}},"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:vn(mS).partial()}}},responses:{200:{description:"Tenant config updated",content:{"application/json":{schema:mS}}}},"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:vn(pS).partial()}}},responses:{200:{description:"MCP config updated",content:{"application/json":{schema:pS}}}},"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:ne},summary:"List onboarding checklist steps",tags:["settings"],responses:{200:{description:"Onboarding steps",content:{"application/json":{schema:te(gp)}}}},"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:gp}}}},"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:vn(gp).partial()}}},responses:{200:{description:"Onboarding step updated",content:{"application/json":{schema:gp}}}},"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:ne},summary:"List audit events for the tenant",tags:["settings"],responses:{200:{description:"Audit events",content:{"application/json":{schema:te(S3)}}}},"x-revturbine-operation":{exposure:"internal",resource:"audit-events",persistence:{table:"auditEvents",mode:"list"}}})},"/api/config/placement-test-users":{get:y({operationId:"listPlacementTestUsers",requestParams:{query:ne},summary:"List placement test users for the tenant",tags:["settings"],responses:{200:{description:"Placement test users",content:{"application/json":{schema:te(hp)}}}},"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:_n(hp)}}},responses:{201:{description:"Placement test user created",content:{"application/json":{schema:hp}}}},"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:hp}}}},"x-revturbine-operation":{exposure:"internal",resource:"placement-test-users",persistence:{table:"placementTestUsers",mode:"delete"}}})}});var {Unrestricted:oe,Pii:$n}=Gt,{Persisted:Ln,Transient:ES}=Ht,{Internal:hn}=Kt,P3=a.enum(["user","admin"]).meta({id:"UserRole","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.merge(pe).extend({name:Nt.meta(oe),email:a.string().email().meta($n),email_verified:a.boolean().default(false).meta(oe),image:a.string().url().nullable().default(null).meta($n),role:P3.default("user").meta(oe),banned:a.boolean().default(false).meta({...oe,readOnly:true}),ban_reason:a.string().nullable().default(null).meta({...oe,readOnly:true}),ban_expires:zt.meta({...oe,readOnly:true}),two_factor_enabled:a.boolean().default(false).meta({...oe,readOnly:true})}).meta({id:"AuthUser","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.merge(pe).extend({expires_at:a.string().datetime().meta(oe),token:a.string().min(1).meta({...$n,readOnly:true}),ip_address:a.string().nullable().default(null).meta($n),user_agent:a.string().nullable().default(null).meta($n),user_id:a.string().min(1).meta({...oe,readOnly:true}),active_organization_id:a.string().nullable().default(null).meta(oe),impersonated_by:a.string().nullable().default(null).meta({...oe,readOnly:true})}).meta({id:"AuthSession","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.merge(pe).extend({account_id:a.string().min(1).meta(oe),provider_id:a.string().min(1).meta(oe),user_id:a.string().min(1).meta({...oe,readOnly:true}),access_token:a.string().nullable().default(null).meta({...$n,readOnly:true}),refresh_token:a.string().nullable().default(null).meta({...$n,readOnly:true}),id_token:a.string().nullable().default(null).meta({...$n,readOnly:true}),access_token_expires_at:zt.meta({...oe,readOnly:true}),refresh_token_expires_at:zt.meta({...oe,readOnly:true}),scope:a.string().nullable().default(null).meta(oe),password:a.string().nullable().default(null).meta({...$n,readOnly:true})}).meta({id:"AuthAccount","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.merge(pe).extend({identifier:a.string().min(1).meta($n),value:a.string().min(1).meta({...$n,readOnly:true}),expires_at:a.string().datetime().meta(oe)}).meta({id:"AuthVerification","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({secret:a.string().min(1).meta({...$n,readOnly:true}),backup_codes:a.string().min(1).meta({...$n,readOnly:true}),user_id:a.string().min(1).meta({...oe,readOnly:true}),verified:a.boolean().default(false).meta({...oe,readOnly:true})}).meta({id:"AuthTwoFactor","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({name:Nt.meta(oe),slug:a.string().min(1).max(100).nullable().default(null).meta(oe),logo:a.string().url().nullable().default(null).meta(oe),created_at:a.string().datetime().meta({...oe,readOnly:true}),metadata:a.string().nullable().default(null).meta(oe)}).meta({id:"AuthOrganization","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});var iO=a.enum(["viewer","collaborator","approver","admin"]).meta({id:"Role","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});var oO=a.enum(["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"]).meta({id:"PermissionResource","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":hn}),aO=a.enum(["read","create","update","delete","publish","approve","invite","manage_roles"]).meta({id:"PermissionAction","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":hn});a.object({resource:oO,action:aO}).meta({id:"Permission","x-revturbine-schema-persistence":ES,"x-revturbine-schema-exposure":hn});var k3=["tenant","plans","entitlements","placements","targeting","content","experiments","audit","settings"],T3=["plans","entitlements","placements","targeting","content","experiments"],$3=["plans","entitlements","placements","targeting","content","experiments"],w3=["tenant","users","plans","entitlements","placements","targeting","content","experiments","billing","audit","mcp","api_tokens","settings"],R3=["read","create","update","delete","publish","approve","invite","manage_roles"];function Pp(e,n){return e.flatMap(r=>n.map(o=>({resource:r,action:o})))}var C3=Pp(k3,["read"]),E3=[...C3,...Pp(T3,["create","update"])];[...E3,...Pp($3,["publish","approve","delete"])];Pp(w3,R3);var z3=oO.options.flatMap(e=>aO.options.map(n=>`${e}:${n}`));a.enum(z3).meta({id:"McpTokenScope","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({organization_id:a.string().min(1).meta({...oe,readOnly:true}),user_id:a.string().min(1).meta({...oe,readOnly:true}),role:iO.default("viewer").meta(oe),created_at:a.string().datetime().meta({...oe,readOnly:true})}).meta({id:"AuthMember","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});var O3=a.enum(["pending","accepted","rejected","canceled","expired"]).meta({id:"InvitationStatus","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({organization_id:a.string().min(1).meta({...oe,readOnly:true}),email:a.string().email().meta($n),role:iO.nullable().default(null).meta(oe),status:O3.default("pending").meta(oe),expires_at:a.string().datetime().meta(oe),created_at:a.string().datetime().meta({...oe,readOnly:true}),inviter_id:a.string().min(1).meta({...oe,readOnly:true})}).meta({id:"AuthInvitation","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({name:a.string().max(200).nullable().default(null).meta(oe),public_key:a.string().min(1).meta({...$n,readOnly:true}),user_id:a.string().min(1).meta({...oe,readOnly:true}),credential_id:a.string().min(1).meta({...oe,readOnly:true}),counter:a.number().int().default(0).meta({...oe,readOnly:true}),device_type:a.string().min(1).meta(oe),backed_up:a.boolean().default(false).meta(oe),transports:a.string().nullable().default(null).meta(oe),created_at:a.string().datetime().meta({...oe,readOnly:true}),aaguid:a.string().nullable().default(null).meta(oe)}).meta({id:"AuthPasskey","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.merge(pe).extend({config_id:a.string().min(1).meta(oe),name:a.string().max(200).nullable().default(null).meta(oe),start:a.string().nullable().default(null).meta(oe),reference_id:a.string().min(1).meta(oe),prefix:a.string().nullable().default(null).meta(oe),key:a.string().min(1).meta({...$n,readOnly:true}),refill_interval:a.number().int().nullable().default(null).meta(oe),refill_amount:a.number().int().nullable().default(null).meta(oe),last_refill_at:zt.meta({...oe,readOnly:true}),enabled:a.boolean().default(true).meta(oe),rate_limit_enabled:a.boolean().default(false).meta(oe),rate_limit_time_window:a.number().int().nullable().default(null).meta(oe),rate_limit_max:a.number().int().nullable().default(null).meta(oe),request_count:a.number().int().default(0).meta({...oe,readOnly:true}),remaining:a.number().int().nullable().default(null).meta({...oe,readOnly:true}),last_request:zt.meta({...oe,readOnly:true}),expires_at:zt.meta(oe),permissions:a.string().nullable().default(null).meta(oe),metadata:a.string().nullable().default(null).meta(oe)}).meta({id:"AuthApiKey","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});ae.extend({issuer:a.string().min(1).meta(oe),oidc_config:a.string().nullable().default(null).meta(oe),saml_config:a.string().nullable().default(null).meta(oe),user_id:a.string().min(1).meta({...oe,readOnly:true}),provider_id:a.string().min(1).meta(oe),organization_id:a.string().nullable().default(null).meta(oe),domain:a.string().min(1).meta(oe)}).meta({id:"AuthSsoProvider","x-revturbine-schema-persistence":Ln,"x-revturbine-schema-exposure":hn});var sO="0.2.35";var wn=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 ui(e){return e?{id:e.id??wn.id,name:e.name??wn.name,version:e.version??wn.version,colors:{...wn.colors,...e.colors},typography:{...wn.typography,...e.typography},shape:{...wn.shape,...e.shape},shadows:{...wn.shadows,...e.shadows}}:{...wn}}var cO=createContext(wn);function zS({theme:e,children:n}){return jsx(cO.Provider,{value:e,children:n})}function gt(){return useContext(cO)}var L3={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 24px",lineHeight:"1.5",zIndex:9990,width:"100%",boxSizing:"border-box"},B3={display:"flex",flexDirection:"column",gap:"2px",flex:1},V3={display:"flex",alignItems:"center",gap:"8px",marginLeft:"16px",flexShrink:0};function wo({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[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]),h=useMemo(()=>{let{colors:P,typography:x,shape:w}=s;return {banner:{...L3,backgroundColor:P.primary,color:P.primaryText,fontFamily:x.fontFamily,fontSize:x.fontSize,position:"sticky",...p==="bottom"?{bottom:0}:{top:0}},header:{fontWeight:600,fontSize:"15px"},body:{opacity:.9},cta:{padding:"6px 16px",backgroundColor:P.primaryText,color:P.primary,border:"none",borderRadius:w.borderRadiusSmall,fontWeight:600,fontSize:x.fontSizeSmall,cursor:"pointer",whiteSpace:"nowrap"},dismiss:{padding:"4px 8px",background:"transparent",border:"none",color:P.primaryText,fontSize:"18px",cursor:"pointer",opacity:.7,lineHeight:1}}},[s,p]);return !o||c?null:jsxs("div",{className:t,style:{...h.banner,...i},role:"banner","data-rt-placement":"banner",children:[jsxs("div",{style:B3,children:[e.header&&jsx("div",{style:h.header,children:e.header}),(e.body||e.message)&&jsx("div",{style:h.body,children:e.body||e.message})]}),jsxs("div",{style:V3,children:[e.cta_label&&jsx("button",{type:"button",style:h.cta,onClick:n,children:e.cta_label}),g&&jsx("button",{type:"button",style:h.dismiss,onClick:f,"aria-label":"Dismiss",children:"\xD7"})]})]})}wo.displayName="BannerSlot";var q3={position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999},H3={width:"100%",maxHeight:"200px",objectFit:"cover",marginBottom:"16px"},K3={display:"flex",gap:"12px",justifyContent:"flex-end"};function Co({content:e,onCtaClick:n,onSecondaryCtaClick:r,onDismiss:o,visible:t,className:i,style:s}){let c=gt(),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]),h=useCallback(w=>{d==="optional"&&w.target===w.currentTarget&&f();},[d,f]),P=useCallback(w=>{w.key==="Escape"&&d==="optional"&&f();},[d,f]);useEffect(()=>{if(t)return document.addEventListener("keydown",P),u.current?.focus(),()=>document.removeEventListener("keydown",P)},[t,P]);let x=useMemo(()=>{let{colors:w,typography:S,shape:E,shadows:I}=c;return {overlay:{...q3,backgroundColor:w.overlay,fontFamily:S.fontFamily},dialog:{position:"relative",maxWidth:"480px",width:"90%",backgroundColor:w.background,borderRadius:E.borderRadiusLarge,boxShadow:I.large,padding:"32px",boxSizing:"border-box"},close:{position:"absolute",top:"12px",right:"12px",background:"transparent",border:"none",fontSize:"20px",color:w.textMuted,cursor:"pointer",padding:"4px 8px",lineHeight:1},image:{...H3,borderRadius:E.borderRadius},header:{fontSize:S.fontSizeHeader,fontWeight:700,color:w.text,marginBottom:"8px",lineHeight:1.3},body:{fontSize:"15px",color:w.textSecondary,lineHeight:1.6,marginBottom:"24px"},primaryBtn:{padding:"10px 24px",backgroundColor:w.primary,color:w.primaryText,border:"none",borderRadius:E.borderRadius,fontWeight:600,fontSize:S.fontSize,cursor:"pointer"},secondaryBtn:{padding:"10px 24px",backgroundColor:"transparent",color:w.textSecondary,border:`1px solid ${w.surfaceBorder}`,borderRadius:E.borderRadius,fontWeight:500,fontSize:S.fontSize,cursor:"pointer"}}},[c]);return !t||m?null:jsx("div",{style:x.overlay,onClick:h,role:"dialog","aria-modal":"true","aria-label":typeof e.header=="string"?e.header:"Placement","data-rt-placement":"modal",children:jsxs("div",{ref:u,className:i,style:{...x.dialog,...s},tabIndex:-1,children:[d==="optional"&&jsx("button",{type:"button",style:x.close,onClick:f,"aria-label":"Close",children:"\xD7"}),e.image_url&&jsx("img",{src:e.image_url,alt:"",style:x.image}),e.header&&jsx("div",{style:x.header,children:e.header}),e.body&&jsx("div",{style:x.body,children:e.body}),jsxs("div",{style:K3,children:[e.secondary_cta_label&&r&&jsx("button",{type:"button",style:x.secondaryBtn,onClick:r,children:e.secondary_cta_label}),e.cta_label&&jsx("button",{type:"button",style:x.primaryBtn,onClick:n,children:e.cta_label})]})]})})}Co.displayName="ModalSlot";var J3={width:"100%",maxHeight:"180px",objectFit:"cover",marginBottom:"12px"};function Zl({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt(),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:{...J3,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}Zl.displayName="InlineEmbedSlot";function di(e){return jsx(Zl,{...e})}di.displayName="InPageSlot";var fO={"top-right":{top:"16px",right:"16px"},"bottom-right":{bottom:"16px",right:"16px"},"bottom-center":{bottom:"16px",left:"50%",transform:"translateX(-50%)"}},tZ={position:"absolute",zIndex:9995,maxWidth:"380px",width:"90%",lineHeight:1.5,display:"flex",alignItems:"center",gap:"12px",boxSizing:"border-box"},nZ={flex:1};function Eo({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[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 x=setTimeout(()=>{f();},g*1e3);return ()=>clearTimeout(x)},[c,g,f]);let h=useMemo(()=>{let{colors:x,typography:w,shape:S,shadows:E}=s;return {container:{...tZ,backgroundColor:x.toastBackground,color:x.toastText,borderRadius:S.borderRadius,boxShadow:E.medium,padding:"14px 18px",fontFamily:w.fontFamily,fontSize:w.fontSize},cta:{color:x.info,background:"transparent",border:"none",fontWeight:600,fontSize:w.fontSizeSmall,cursor:"pointer",whiteSpace:"nowrap",textDecoration:"underline",padding:0},close:{background:"transparent",border:"none",color:x.textMuted,fontSize:"16px",cursor:"pointer",padding:"2px 4px",lineHeight:1,flexShrink:0}}},[s]);if(!c)return null;let P=fO[p]??fO["bottom-right"];return jsxs("div",{className:t,style:{...h.container,...P,...i},role:"status","aria-live":"polite","data-rt-placement":"toast",children:[jsx("div",{style:nZ,children:e.message||e.body||e.header}),e.cta_label&&jsx("button",{type:"button",style:h.cta,onClick:n,children:e.cta_label}),jsx("button",{type:"button",style:h.close,onClick:f,"aria-label":"Close",children:"\xD7"})]})}Eo.displayName="ToastSlot";function zo({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt();if(!r)return null;let s=e.style||"primary",c={padding:"8px 20px",border:"none",borderRadius:i.shape.borderRadiusSmall,fontWeight:600,fontSize:i.typography.fontSize,cursor:"pointer",fontFamily:i.typography.fontFamily,whiteSpace:"nowrap",lineHeight:1.4},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"})}zo.displayName="ButtonSlot";function NS(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 gO(e,n){return e>=90?n.colors.danger:e>=70?n.colors.warning:n.colors.primary}function oZ({content:e,theme:n}){let r=NS(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:gO(r,n)}})})]})}function aZ({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 Er=80,DS=8,FS=(Er-DS)/2,AS=2*Math.PI*FS;function sZ({content:e,theme:n}){let r=NS(e),o=e.usage_current??r,t=e.usage_limit??100,i=AS-r/100*AS,s=gO(r,n);return jsxs("div",{style:{display:"flex",alignItems:"center",gap:"16px",marginBottom:"12px"},children:[jsxs("svg",{width:Er,height:Er,style:{flexShrink:0},children:[jsx("circle",{cx:Er/2,cy:Er/2,r:FS,fill:"none",stroke:n.colors.track,strokeWidth:DS}),jsx("circle",{cx:Er/2,cy:Er/2,r:FS,fill:"none",stroke:s,strokeWidth:DS,strokeLinecap:"round",strokeDasharray:AS,strokeDashoffset:i,transform:`rotate(-90 ${Er/2} ${Er/2})`,style:{transition:"stroke-dashoffset 0.3s ease"}}),jsxs("text",{x:Er/2,y:Er/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 hs({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt();if(!r)return null;let s=e.display_style||"progress_bar",c=typeof e.show_at=="number"?e.show_at:0,u=NS(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(aZ,{content:e,theme:i}):s==="circular_gauge"?jsx(sZ,{content:e,theme:i}):jsx(oZ,{content:e,theme:i}),e.cta_label&&jsx("button",{type:"button",style:m,onClick:n,children:e.cta_label})]})}hs.displayName="QuotaMeterSlot";var cZ={maxWidth:"800px",margin:"0 auto",padding:"40px 24px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},lZ={fontSize:"28px",fontWeight:700,color:"#111827",textAlign:"center",marginBottom:"12px",lineHeight:1.3},uZ={fontSize:"16px",color:"#4b5563",textAlign:"center",lineHeight:1.6,marginBottom:"32px",maxWidth:"600px",marginLeft:"auto",marginRight:"auto"},dZ={display:"flex",justifyContent:"center",gap:"16px"},mZ={padding:"12px 32px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"8px",fontWeight:600,fontSize:"16px",cursor:"pointer"},pZ={padding:"12px 32px",backgroundColor:"transparent",color:"#4b5563",border:"1px solid #d1d5db",borderRadius:"8px",fontWeight:500,fontSize:"16px",cursor:"pointer"};function bs({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){return o?jsxs("div",{className:t,style:{...cZ,...i},"data-rt-placement":"full-page",children:[e.header&&jsx("h1",{style:lZ,children:e.header}),e.body&&jsx("p",{style:uZ,children:e.body}),jsxs("div",{style:dZ,children:[e.cta_label&&jsx("button",{type:"button",style:mZ,onClick:n,children:e.cta_label}),e.secondary_cta_label&&r&&jsx("button",{type:"button",style:pZ,onClick:r,children:e.secondary_cta_label})]})]}):null}bs.displayName="FullPageSlot";var fZ={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"},gZ={whiteSpace:"pre-wrap",marginBottom:"12px"},hZ={display:"flex",gap:"16px"},_O={color:"#569cd6",background:"transparent",border:"none",cursor:"pointer",fontFamily:"inherit",fontSize:"inherit",padding:0,textDecoration:"underline"};function ql({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:{...fZ,...t},"data-rt-placement":"cli",children:[i&&jsx("div",{style:gZ,children:i}),(c.length>0||e.cta_label)&&jsxs("div",{style:hZ,children:[e.cta_label&&jsx("button",{type:"button",style:_O,onClick:n,children:e.cta_label}),c.map(u=>jsx("button",{type:"button",style:_O,onClick:n,children:u},u))]})]})}ql.displayName="CliSlot";var bZ={backgroundColor:"#ffffff",border:"1px solid #e2e8f0",borderRadius:"8px",padding:"16px 20px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},_Z={display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:"4px"},vZ={fontSize:"13px",color:"#6b7280"},yZ={fontSize:"28px",fontWeight:700,color:"#111827"},xZ={fontSize:"12px",color:"#9ca3af",marginBottom:"12px"},SZ={width:"100%",height:"6px",backgroundColor:"#e5e7eb",borderRadius:"3px",overflow:"hidden",marginBottom:"12px"},IZ={height:"100%",borderRadius:"3px",transition:"width 0.3s ease"},PZ={display:"flex",gap:"8px"},kZ={padding:"6px 16px",backgroundColor:"#1e40af",color:"#ffffff",border:"none",borderRadius:"6px",fontWeight:600,fontSize:"13px",cursor:"pointer"};function TZ(e,n){if(n<=0)return "#1e40af";let r=e/n*100;return r<=10?"#dc2626":r<=25?"#f59e0b":"#1e40af"}function Hl({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:{...bZ,...t},"data-rt-placement":"credit-balance",children:[jsxs("div",{style:_Z,children:[jsx("span",{style:vZ,children:typeof e.header=="string"?e.header:"Credits Remaining"}),jsx("span",{style:yZ,children:String(i)})]}),u&&typeof e.burn_rate_label=="string"&&jsx("div",{style:xZ,children:e.burn_rate_label}),(d==="balance_bar"||d==="balance_burn_rate")&&s>0&&jsx("div",{style:SZ,children:jsx("div",{style:{...IZ,width:`${Math.min(100,m)}%`,backgroundColor:TZ(i,s)}})}),jsx("div",{style:PZ,children:e.cta_label&&jsx("button",{type:"button",style:kZ,onClick:n,children:e.cta_label})})]})}Hl.displayName="CreditBalanceSlot";var wZ={position:"absolute",top:"16px",right:"16px"};function RZ(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 Kl({content:e,onCtaClick:n,onDismiss:r,visible:o,className:t,style:i}){let s=gt(),[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,h=useCallback(()=>{if(!p||typeof window>"u"){m(null);return}let S=window.document.querySelector(p);if(!S){m(null);return}let E=S.getBoundingClientRect();m({top:E.top,left:E.left,width:E.width,height:E.height});},[p]);useEffect(()=>{o&&u(false);},[o]),useEffect(()=>{if(!o||(h(),typeof window>"u"))return;let S=()=>h();return window.addEventListener("resize",S),window.addEventListener("scroll",S,true),()=>{window.removeEventListener("resize",S),window.removeEventListener("scroll",S,true);}},[o,h]);let P=useCallback(()=>{u(true),r();},[r]),x=useMemo(()=>{let{colors:S,typography:E,shape:I,shadows:$}=s;return {container:{zIndex:9996,maxWidth:"320px",width:"max-content",lineHeight:1.45,display:"flex",flexDirection:"column",gap:"10px",boxSizing:"border-box",backgroundColor:S.toastBackground,color:S.toastText,borderRadius:I.borderRadius,boxShadow:$.medium,padding:"12px 14px",fontFamily:E.fontFamily,fontSize:E.fontSizeSmall},body:{margin:0},actions:{display:"flex",alignItems:"center",gap:"10px"},cta:{color:S.info,background:"transparent",border:"none",fontWeight:600,fontSize:E.fontSizeSmall,cursor:"pointer",textDecoration:"underline",padding:0},close:{marginLeft:"auto",background:"transparent",border:"none",color:S.textMuted,fontSize:"14px",cursor:"pointer",lineHeight:1,padding:"2px 4px"}}},[s]);if(!o||c)return null;let w=d?RZ(d,g,f):wZ;return jsxs("div",{className:t,style:{...x.container,...w,...i},role:"status","aria-live":"polite","data-rt-placement":"tooltip",children:[jsx("p",{style:x.body,children:e.message||e.body||e.header}),jsxs("div",{style:x.actions,children:[e.cta_label&&jsx("button",{type:"button",style:x.cta,onClick:n,children:e.cta_label}),jsx("button",{type:"button",style:x.close,onClick:P,"aria-label":"Close tooltip",children:"\xD7"})]})]})}Kl.displayName="TooltipSlot";function EZ(e){return e==="connected"?"#22c55e":e==="pending"?"#f59e0b":"#ef4444"}function zZ(e){return e==="connected"?"Connected":e==="pending"?"Pending":"Disconnected"}function Gl({content:e,onCtaClick:n,visible:r,className:o,style:t}){let i=gt(),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:EZ(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}),zZ(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}Gl.displayName="AgentConnectorSlot";var Wl=(e,n="")=>e==null||e===""?n:String(e);function jZ(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 MS={fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.05em",color:"#94a3b8"};function ZS({content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:o,accentText:t}){let i=jZ(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 qS(){let e=gt();return useMemo(()=>({accent:e.colors.primary,accentText:e.colors.primaryText}),[e])}function Rp({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=qS();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:{...MS,margin:0},children:"Email preview"}),jsx("p",{style:{margin:"2px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Wl(e.subject,"(no subject)")})]}),jsxs("div",{style:{padding:"8px 12px",fontSize:"12px",color:"#475569",whiteSpace:"pre-wrap"},children:[Wl(e.body,"(empty body)"),jsx(ZS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]})]}):null}Rp.displayName="EmailPreviewSlot";function Cp({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=qS();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:{...MS,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:Wl(e.body??e.message,"(empty message)")}),jsx(ZS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}Cp.displayName="SmsPreviewSlot";function Ep({content:e,onCtaClick:n,onSecondaryCtaClick:r,visible:o,className:t,style:i}){let{accent:s,accentText:c}=qS();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:{...MS,margin:0},children:"Push preview"}),jsx("p",{style:{margin:"4px 0 0",fontSize:"14px",fontWeight:600,color:"#1e293b"},children:Wl(e.header??e.title,"(no title)")}),jsx("p",{style:{margin:0,fontSize:"12px",color:"#475569"},children:Wl(e.body,"(empty body)")}),jsx(ZS,{content:e,onCtaClick:n,onSecondaryCtaClick:r,accent:s,accentText:c})]}):null}Ep.displayName="PushPreviewSlot";function _s(e){e.register({id:"banner",label:"Banner",description:"Full-width banner placement at the top or bottom of the page.",surfaceType:"banner",component:wo,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:Co}),e.register({id:"in_page",label:"Inline Embed",description:"Content card or message embedded in the page flow.",surfaceType:"in_page",component:di}),e.register({id:"plans_cta",label:"Plans CTA",description:"Pricing page CTA-focused module with concise upgrade actions.",surfaceType:"in_page",component:di,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:bs,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:di,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:Kl,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:Eo,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:zo,defaultProps:{content:{style:"primary"}}}),e.register({id:"full_page",label:"Full Page",description:"Dedicated managed page (e.g. plans & pricing).",surfaceType:"full_page",component:bs}),e.register({id:"quota_meter",label:"Quota Meter",description:"Visual usage meter with upgrade CTA. Triggers at configurable threshold.",surfaceType:"in_page",component:hs,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:hs,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:ql}),e.register({id:"email",label:"Email Preview",description:"Static email channel preview (subject + body + CTAs).",surfaceType:"email",component:Rp}),e.register({id:"sms",label:"SMS Preview",description:"Static SMS channel preview (message bubble + CTAs).",surfaceType:"sms",component:Cp}),e.register({id:"push",label:"Push Preview",description:"Static push-notification channel preview (title + body + CTAs).",surfaceType:"push",component:Ep}),e.register({id:"agent_connector",label:"Agent Connector",description:"Agent-surface placement for assistant/connector experiences.",surfaceType:"agent",component:Gl,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:Hl,accepts:n=>n.surface.type==="in_page"&&(n.surface.template==="credit_balance_counter"||n.surface.template==="credit_balance")});}var UZ=new Set(["type","plan_handle","promotion_id","placement_handle","url","tour_id"]),jo=class{constructor(){z(this,"types",new Map);z(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 HS(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 vs(e,n){let r={};for(let[o,t]of Object.entries(e))typeof t=="string"?r[o]=HS(t,n):r[o]=t;return r}function zp(e){let n=typeof e.type=="string"&&e.type.length>0?e.type:"dismiss",r={};for(let[o,t]of Object.entries(e))UZ.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 Op(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 Xl=null;function jp(){return Xl||(Xl=new jo,_s(Xl)),Xl}function kO(){Xl=null;}var Yl={recommended_plan_handle:"",recommended_plan_name:""};function TO(e){let{strategy:n,planOverride:r,currentPlanHandle:o,plans:t}=e;if(t.length===0)return Yl;if(n==="custom"){let c=r??"";if(c===""||c===o)return Yl;let u=t.find(d=>d.unique_handle===c);return u?{recommended_plan_handle:u.unique_handle,recommended_plan_name:u.name}:Yl}if(o==="")return Yl;let i=ah(o,t);if(i===null)return Yl;let s=t.find(c=>c.unique_handle===i);return {recommended_plan_handle:i,recommended_plan_name:s?.name??i}}var KS="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Ap=KS.length,AZ=Ap-1,DZ=10,Up=16;function FZ(e){let n=e,r="";for(let o=0;o<DZ;o+=1){let t=n%Ap;r=KS[t]+r,n=Math.floor(n/Ap);}return r}function $O(){let e=new Uint8Array(Up);crypto.getRandomValues(e);let n=new Array(Up);for(let r=0;r<Up;r+=1)n[r]=e[r]%Ap;return n}function NZ(e){for(let n=e.length-1;n>=0;n-=1){if(e[n]<AZ)return e[n]+=1,true;e[n]=0;}return false}function wO(){let e=-1,n=[];return {next(r=Date.now()){r<=e&&n.length===Up?NZ(n)||(e+=1,n=$O()):(e=r,n=$O());let o=FZ(e);for(let t=0;t<n.length;t+=1)o+=KS[n[t]];return o}}}var GS=wO();var LZ=new Set([408,429,500,502,503,504]);function BZ(e){return new Promise(n=>setTimeout(n,e))}async function JS(e,n={}){let r=n.retries??2,o=n.baseDelayMs??200,t=n.sleep??BZ,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(!LZ.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 WS(){return {created:0,dropped:0,redacted:0,sampled:0,deduped:0,queued:0,sent:0,failed:0}}function RO(){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 h=u.get(f.target);!h||h.fired||(f.isIntersecting?h.minVisibleMs<=0?r(g,f.target,h,"viewport"):h.timer===null&&(h.timer=setTimeout(()=>r(g,f.target,h,"viewport"),h.minVisibleMs)):h.timer!==null&&(clearTimeout(h.timer),h.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 XS=RO();var jO=new Set(_p.options);function vre(e,n){return Np(n,"defineUiPathResolvers(resolvers)")}function Np(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 ys(e){return e?.playbook??e?.exportedConfig}function yre(e){return {...e,runtimeMode:"revturbine_server"}}function xre(e){return {...e,runtimeMode:"custom_endpoints",endpointOverrides:e.endpointOverrides}}function VZ(e){let n=Np(e.uiPathResolvers,"createLocalRuntimeConfig(uiPathResolvers)");return {...e,runtimeMode:"local_only",localRuntime:e.localRuntime,uiPathResolvers:n}}function Sre(e){return VZ(e)}function Ire(e,n,r={}){return {slotId:e,surfaceType:n,entitlementHandle:r.entitlementHandle,planHandle:r.planHandle,placementHandle:r.placementHandle}}function Pre(e,n={}){return {entitlementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,planHandle:n.planHandle,placementHandle:n.placementHandle}}function kre(e,n={}){return {placementHandle:e,slotId:n.slotId,surfaceType:n.surfaceType,entitlementHandle:n.entitlementHandle,planHandle:n.planHandle}}function Ki(e,n,r){return {header:e,body:n,cta_label:r,title:e,cta:r}}function Tre(e,n,r,o={}){return {userId:e,placementId:n,interactionType:r,treatmentId:o.treatmentId,interactionAt:o.interactionAt,metadata:o.metadata}}function $re(e,n,r){return {eventType:e,payload:n,options:r}}var CO="revturbine:sdk-route-change",YS="sdk_validation_warning",MZ="revturbine:decision-cache",ZZ="revturbine:interaction-state",qZ="revturbine:presentation-caps",HZ="/api/track",KZ="/api/sdk/meta",GZ="/api/events/interactions",JZ="/api/placements/interactions",WZ="revturbine-web-sdk",EO="user_context_observed",XZ=20,YZ=5e3;function QZ(e,n){let r=e[n];if(typeof r=="string"&&r.trim().length>0)return r;let o=UO(e);if(o){let t=o[n];if(typeof t=="string"&&t.trim().length>0)return t}return null}function UO(e){return re(e.payload)?e.payload:null}var eq=["surface_slot_id","placement_id","payload_id","experiment_id","variant_key"];function tq(e){let n={};for(let r of eq)n[r]=QZ(e,r);return n}function nq(e){return th(e,iI(8))}async function zO(e){let n=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Jm(new Uint8Array(n))}function iI(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 sn(){return typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${iI(16)}`}function Dp(){return Ha()?{}:{url:window.location.href,title:document.title,referrer:document.referrer||void 0}}function OO(){return {id:void 0,custom:{},entitlements:{},usage:{},personalization:{}}}function rq(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 Sx(e,r)}function iq(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 eI=class{constructor(n){z(this,"exportedConfig");this.exportedConfig=n;}getExportedConfig(){return this.exportedConfig}},tI=class{constructor(n,r,o){z(this,"cached");z(this,"resolver");z(this,"legacyTargetDefaults");this.resolver=n,this.cached=o,this.legacyTargetDefaults=r;}getExportedConfig(){return this.cached}async refresh(){let n=_i(await this.resolver(),"localRuntime.resolvers.resolveExportedConfig()",this.legacyTargetDefaults);return n&&(this.cached=n),this.cached}},nI=class{constructor(n,r){z(this,"source");z(this,"legacyTargetDefaults");this.source=n,this.legacyTargetDefaults=r;}getExportedConfig(){return _i(this.source.getExportedConfig(),"configProvider.getExportedConfig()",this.legacyTargetDefaults)}async refresh(){let n=await this.source.refresh?.();return _i(n??this.source.getExportedConfig(),"configProvider.refresh()",this.legacyTargetDefaults)}},rI=class{constructor(n){z(this,"tenantId");z(this,"apiKey");z(this,"ingestPublicKey");z(this,"environmentId");z(this,"analyticsEnabled");z(this,"anonymousTelemetryEnabled");z(this,"telemetryConsent");z(this,"telemetryCounters",WS());z(this,"maxBatchSize");z(this,"flushIntervalMs");z(this,"flushTimer");z(this,"batchingTeardown",[]);z(this,"anonTelemetryNoticeShown",false);z(this,"piiRedactionWarned",false);z(this,"endpoint");z(this,"runtimeMode");z(this,"endpointOverrides");z(this,"localRuntime");z(this,"localStorageKey");z(this,"mode");z(this,"policy");z(this,"extensionEnabled");z(this,"placementBehavior");z(this,"providerFailureSlotBehavior");z(this,"uiPathResolvers");z(this,"persistentStore");z(this,"sessionStore");z(this,"anonymousId");z(this,"sessionId");z(this,"decisionCache",new Map);z(this,"interactionState",new Map);z(this,"interactionQueue",[]);z(this,"defaultDecisionTtlMs",6e4);z(this,"defaultDismissCooldownMs",1440*60*1e3);z(this,"defaultRemindLaterMs",3600*1e3);z(this,"defaultUsageWarningPercent",80);z(this,"defaultTrialExpiringDays",3);z(this,"events",[]);z(this,"placements",new Map);z(this,"syncedSurfaceSlotIds",new Set);z(this,"userContext");z(this,"pageContext");z(this,"usageBalances",{});z(this,"localDecisionsByPlacementId",new Map);z(this,"localPlacementsByLookupKey",new Map);z(this,"localEntitlementsByHandle",new Map);z(this,"localUserContextsByUserId",new Map);z(this,"localTrialStatus",{in_trial:false});z(this,"presentationCapsByKey",new Map);z(this,"usageLimitByEntitlement",new Map);z(this,"usageTokenPrefixByEntitlement",new Map);z(this,"segmentIdsByPredicateField",new Map);z(this,"configuredSegmentsById",new Map);z(this,"dirtySegmentIds",new Set);z(this,"segmentMembershipBySegmentId",new Map);z(this,"segmentMembershipUserId");z(this,"lastTrialTriggerStage","none");z(this,"configProvider");z(this,"branding");z(this,"apiBranding");z(this,"defaultLocalPlacementDecisionResolver");z(this,"sdkDisabledByProviderFailure",false);z(this,"sdkDisabledReason");z(this,"providerRegistry");z(this,"placementTypeRegistry");z(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??XZ),this.flushIntervalMs=Math.max(0,n.eventBatching?.flushIntervalMs??YZ),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=Np(n.uiPathResolvers,"RevTurbineInitOptions.uiPathResolvers"),this.persistentStore=Fi(n.persistentStorage),this.sessionStore=eS(n.sessionStorage),this.userContext={usage:{},...this.policy.inferUser?OO():{},...n.user||{}},this.pageContext={...this.policy.inferPage?Dp():{},...n.page||{},tags:hc(n.page?.tags)},this.anonymousId=this.resolveAnonymousId(),this.sessionId=sn(),this.providerRegistry=new _l,this.placementTypeRegistry=new jo,this.impressionHistory=new Gx({store:new up({storage:this.persistentStore,tenantId:this.tenantId}),userId:this.userContext.id??this.anonymousId}),_s(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(),Fn()&&this.policy.routerAutoTrack&&this.installRouteTracking(),Fn()&&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 nI(n.configProvider,r);let o=_i(ys(n.localRuntime),"localRuntime.playbook",r),t=n.localRuntime?.resolvers?.resolveExportedConfig;if(t)return new tI(t,r,o);if(o)return new eI(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 Po({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=ei(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,h=typeof g.limit=="number"?g.limit:0,P=h>0?Math.max(0,h-f):0;u[p]={used:f,limit:h,remaining:P,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 Qm(n,r,o)}buildTargetingState(n){return ep(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 Fn()?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:sn(),visible:o,decisionSource:"fallback",reasonCodes:["sdk_disabled_provider_failure"],suppressionReason:o?void 0:"sdk_disabled_provider_failure",content:Ki(t,i,o?"Retry later":"Continue")}}disabledPlacementOutputForConfig(n){if(this.providerFailureSlotBehavior!=="placeholder")return null;let r=`disabled_output_${sn()}`,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 Px(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 oh(n,r.planHandle)}applyCategoryConflictSuppression(n){return Xm(n)}resolveLocalPlacementFromCandidates(n,r){return Tx(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=ih(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 `${MZ}:${this.tenantId}:${this.anonymousId}`}interactionStateStorageKey(){return `${ZZ}:${this.tenantId}:${this.anonymousId}`}presentationCapsStorageKey(){return `${qZ}:${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=re(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=>re(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(!re(s))continue;let c=typeof s.entitlement_id=="string"?s.entitlement_id:typeof s.entitlementId=="string"?s.entitlementId:"";if(!c)continue;let u=re(s.type_fields)?s.type_fields:re(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=sh(g),h=f&&!ch(f)?f:Go(p||c);h&&(this.usageTokenPrefixByEntitlement.set(c,h),p&&this.usageTokenPrefixByEntitlement.set(p,h));let P=Number(u.limit_value??u.allowance??u.limit);if(!Number.isFinite(P)||P<=0||!this.ruleTargetsActivePlan(s,r))continue;let x=Number(s.warning_threshold_percent??s.warning_percentage??u.warning_threshold_percent??u.warning_percentage),w=Number.isFinite(x)&&x>0?Math.min(100,x):this.defaultUsageWarningPercent;this.usageLimitByEntitlement.set(c,{limit:P,warningPercent:w}),p&&this.usageLimitByEntitlement.set(p,{limit:P,warningPercent:w});}}recalculateDerivedUsageTraits(){let n=this.getConfiguredExportedConfig();this.hydrateUsageLimitRulesFromExportedConfig();let r=Cx({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 TO({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=mo(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={...ei(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)??Go(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 Wx({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 el({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=mo(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??{},...ei(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(P=>P.handle===g);if(!f){this.segmentMembershipBySegmentId.delete(g);continue}let h=tl([f],m).length>0;this.segmentMembershipBySegmentId.set(g,h);}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(W=>{let J=Array.isArray(W.predicates)?W.predicates.map(ie=>rq(ie,o.traits)):[],fe=J.length>0?J.every(ie=>ie.matched):c.has(W.handle);return {segmentId:W.handle,...W.name?{segmentName:W.name}:{},matched:fe,predicates:J}}),d=new Map,m=new Map;if(Array.isArray(s?.entitlements))for(let W of s.entitlements){let J=Mt(W.unique_handle),fe=J;fe&&J&&d.set(fe,J);let ie=Mt(W.type);fe&&ie&&m.set(fe,ie);}let p=new Map;if(Array.isArray(s?.plans))for(let W of s.plans){let J=Mt(W.unique_handle),fe=J;fe&&J&&p.set(fe,J);}let f=(Mt(o.plan,o.traits.plan,o.traits.plan_handle,o.traits.plan_id)??"").toLowerCase(),h=new Map;if(Array.isArray(s?.segments))for(let W of s.segments){let J=Mt(W.handle),fe=Mt(W.dimension_id);J&&fe&&h.set(J,fe);}let P=Array.isArray(s?.entitlement_rules)?s.entitlement_rules.map((W,J)=>{let fe=Mt(W.id)??`entitlement_rule_${J}`,ie=Mt(W.entitlement_id),at=ie?d.get(ie):void 0,Re=Array.isArray(W.targets)?W.targets.filter(se=>se.kind==="plan").map(se=>se.id):[],X=Re.map(se=>p.get(se)??se),_t=Array.isArray(W.segment_ids)?W.segment_ids.filter(se=>typeof se=="string"):[],st=re(W.type_fields)?W.type_fields:{},Ke=Mt(st.kind),ge=!f||Re.some(se=>se.toLowerCase()===f),ot=iq(_t,c,h),un=ge&&ot,G=at?t[at]:ie?t[ie]:void 0,ee=un?G?.status??"unknown":"unknown",Ae;if(un)switch(Ke){case "feature":Ae=st.enabled===false?"disables feature":"grants access";break;case "capability_tier":{let se=Mt(st.tier_name);Ae=se?`unlocks ${se} tier`:"unlocks capability tier";break}case "usage_limit":{let se=typeof st.limit_value=="number"?st.limit_value:void 0,Tt=Mt(st.unit)??"",pn=Mt(st.period)??"",Ho=pn?` / ${pn.replace("per_","")}`:"";Ae=se!=null?`sets limit to ${se.toLocaleString()}${Tt?` ${Tt}`:""}${Ho}`:"sets usage limit";break}case "credits":{let se=typeof st.allowance=="number"?st.allowance:void 0,Tt=Mt(st.unit)??"credits",pn=Mt(st.period)??"",Ho=pn?` / ${pn.replace("per_","")}`:"";Ae=se!=null?`grants ${se.toLocaleString()} ${Tt}${Ho}`:"grants credit allowance";break}case "seat":{let se=typeof st.included_seats=="number"?st.included_seats:void 0;Ae=se!=null?`includes ${se} seat${se===1?"":"s"}`:"includes seats";break}default:if(ie){let se=m.get(ie);se==="feature"?Ae="grants access":se&&(Ae=`${se.replace(/_/g," ")} entitlement`);}break}return {ruleId:fe,...ie?{entitlementId:ie}:{},...at?{entitlementHandle:at}:{},...Ke?{kind:Ke}:{},planScopes:X,planIds:Re,..._t.length>0?{segmentIds:_t}:{},matchesPlan:ge,matchesSegment:ot,matched:un,outcome:ee,...Ae?{outcomeDescription:Ae}:{},...G?.reason?{reason:G.reason}:{}}}):[],x=Mt(r.output?.output_id),w=this.placements.get(n.placementId),S=Mt(w?.name)??"",E=Array.isArray(w?.metadata?.surface_template_ids)?w.metadata.surface_template_ids:[],I=[],$=new Set;if(Array.isArray(s?.placements))for(let W of s.placements){if(!W||typeof W!="object")continue;let J=Mt(W.id)??"",fe=Mt(W.name)??"";if($.has(J))continue;let ie=Mt(r.output?.rule_id);if(ie&&J===ie){$.add(J),I.push(W);continue}if(S&&(J===S||fe===S||J===`pl_${S}`||fe===`pl_${S}`)){$.add(J),I.push(W);continue}E.length>0&&(W.payloads??[]).some(X=>(X.surfaces??[]).some(st=>{let Ke=Mt(st.template_id);return Ke?E.includes(Ke):false}))&&($.add(J),I.push(W));}let B=I.flatMap(W=>(W.payloads??[]).map(fe=>{let ie=fe.target,at=ie?.plan_ids??[],Re=at.map(G=>p.get(G)??G),X=ie?.segment_chips??[],st=(fe.surfaces??[]).map(G=>Mt(G.template_id)).filter(G=>typeof G=="string"),Ke=at.length===0||!f||at.some(G=>G.toLowerCase()===f),ge=X.length===0||X.some(G=>c.has(G)),ot="active",un=ot==="active"&&Ke&≥return {payloadId:String(fe.id??""),placementId:String(W.id??""),placementName:String(W.name??""),status:ot,planIds:at,planScopes:Re,segmentChips:X,surfaceTemplateIds:st,matchesPlan:Ke,matchesSegment:ge,eligible:un,selected:!!x&&x===String(fe.id??"")}})),ce=r.output?this.extractPlacementCapPolicies(r.output).flatMap(W=>W.rules.length===0&&W.cooldownMs===void 0?[]:W.rules.length===0?[{count:0,period:"session",cooldownMs:W.cooldownMs}]:W.rules.map(J=>({count:J.count,period:J.period,...W.cooldownMs!==void 0?{cooldownMs:W.cooldownMs}:{}}))):[],me={ruleId:r.output?.rule_id,decisionId:r.output?.decision_id,category:r.output?.category,suppressionReason:r.suppressionReason,reasonCodes:r.reasonCodes,capPolicies:ce};return {generatedAt:new Date().toISOString(),input:n,decision:r,targeting:o,policy:i,entitlements:t,segments:u,entitlementRules:P,eligiblePayloads:B,placementRules:me}}usageThresholdForEntitlement(n){return yx(n,this.usageLimitByEntitlement,this.localEntitlementsByHandle,this.usageBalances,this.defaultUsageWarningPercent)}evaluateUsageThresholdCrossings(n,r){return Ex(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 zx(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=sn();return this.persistentStore.setItem(n,o),o}catch{return sn()}}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(Ha())return;let n=window.history;if(n.__rtPatched)return;let r=()=>{window.dispatchEvent(new CustomEvent(CO,{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(CO,i=>{let s=i.detail;this.onRouteChange({path:s.path,title:s.title,tags:s.tags});}),n.__rtPatched=true;}mergeUserContext(n){return Rx(this.userContext,n)}mergePageContext(n){return {...this.pageContext,...n,tags:hc(n.tags||this.pageContext.tags)}}collectPageContextIssues(){let n=[],r={...this.policy.inferPage?Dp():{},...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(!re(n))return r.push({code:"invalid_event_payload",reason:"Event payload must be a plain object."}),r;let o=UO(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(YS,{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:re(o)?o:null})}toEventEnvelope(n,r){let o={...this.policy.inferPage?Dp():{},...this.pageContext},t=o.url||(Fn()?window.location.href:""),i=(()=>{try{return new URL(t).pathname}catch{return Fn()?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||(Fn()?document.title:""),event_time:new Date().toISOString(),anonymous_id:this.anonymousId,user_id:this.userContext.id||null,session_id:this.sessionId,tags:hc(o.tags),identity:{tenant_id:this.tenantId,user_id:this.userContext.id||null,anonymous_id:this.anonymousId,traits:n===EO?{}:{...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()&&Fn()}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 zO(i)).slice(0,64),u={events:[{event_type:n,occurred_at:new Date().toISOString(),request_id:sn(),config_hash_id:s,sdk_version:sO,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",KZ),{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=rz(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=sn(),s=o.map(m=>{let p=m.user_id||m.anonymous_id,g=Yx(this.userContext.account_id||p),f=Xx({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:WZ});return r+=f.redactions+(g.redacted?1:0),{environment_id:this.environmentId,user_id:p,account_id:g.value,event_name:sd(m.type).slice(0,120),event_ts:m.event_time,properties:JSON.stringify(f.value),...tq(m.properties),event_id:GS.next(),request_id:sn(),tenant_id:m.tenant_id}});r>0&&this.warnPiiRedactedOnce();let c=this.endpointFor("ingestEvents",HZ),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 JS(()=>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=sd(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}=Qx(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(!Fn()||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=re(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(EO,{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(Dp());}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=re(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:Ki(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 Ix({tenantId:this.tenantId,placementName:n.placementName,placementScopeKey:n.placementScopeKey,pageRoute:n.normalizedPageRoute||this.currentPathname()},{sha256Base64Url:zO,randomHex:iI})}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:re(n.metadata)?n.metadata:void 0})}async upsertSurfaceSlot(n){if(this.isLocalOnlyMode())return;let r=sn(),o=this.endpointFor("surfaceSlots","/api/placements").replace(/\/+$/,""),t=nq(n.placementScopeKey||n.id||n.name),i={...re(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=Ko(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&&!re(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:{...re(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=>aq(i)).filter(i=>i!==null);if(r.length===0)return;let o=sn(),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 vi(n)}decisionCacheKey(n,r){return kx({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 GE({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 JE(n)}placementCapKey(n){return [this.tenantId,this.userContext.id||this.anonymousId,n.surface.type,n.output_id].join(":")}extractPlacementCapPolicies(n){return Ym(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=wx(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 $x(n,r,o,t)}async getPlacementDecision(n){let r=this.placements.get(n.placementId),o=sn();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:Ki("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:Ki(`${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}:{}},h=this.gateDecisionByCaps(await p(n,r,f));return this.localDecisionsByPlacementId.set(n.placementId,h),this.writeDecisionCache(d,h,n.ttlMs),this.persistLocalRuntimeState(),h}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(h=>({entitlement_id:h.entitlementId,meter_id:h.meterId,used:h.used}))}:void 0,traits:n.traits,context:{user:this.userContext,page:this.pageContext,placement:r}})});if(!p.ok)throw new Error(`decide-context failed: ${p.status}`);let 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=sn();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=re(s)&&Array.isArray(s.decisions)?s.decisions:[];for(let u of c){if(!re(u))continue;let d=typeof u.placement_id=="string"?u.placement_id:"",m=re(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",GZ),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":sn()},body:JSON.stringify(r.length===1?r[0]:r)})).ok||(await fetch(this.endpointFor("legacyInteractions",JZ),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.apiKey}`,"x-tenant-id":this.tenantId,"x-request-id":sn()},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=sn();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:Ki(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:Ki("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:Ki(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:Ki(`${o.name} treatment`,"Fallback treatment active while decision endpoint is unavailable.","Continue")}}}normalizePlacementOutput(n){let r=Yc(n,sn);return r&&re(n)&&typeof n.decision_id!="string"&&this.capture(YS,{reason:"placement response missing decision_id; generated synthetic",output_id:r.output_id,synthetic_decision_id:r.decision_id}),r}normalizeEntitlementResult(n){return vx(n,sn)}validateTrialStatusShape(n){return ph(n)}async getPlacement(n){if(this.isDisabledByProviderFailure())return this.disabledPlacementOutputForConfig(n);let r=n.slotId,o=n.surfaceType;if(o&&!jO.has(o))return this.capture(YS,{reason:`getPlacement called with unknown surfaceType: ${String(o)}`,slot_id:r??null}),null;let t=sn();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=sn();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=sn();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:re(t.traits)?t.traits:{},plan:typeof t.plan=="string"?t.plan:void 0,usage:re(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=sn();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}=ad({...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:re(r)&&Array.isArray(r.content_ui_paths)?r.content_ui_paths:[],t=n.includeProviderHandlers??true,i=Np(n.resolvers,"validateUiPathResolvers(options.resolvers)"),s={...this.uiPathResolvers,...i};if(t&&this.providerRegistry.has("cta"))try{let m=await this.providerRegistry.resolveAll();re(m.cta)&&re(m.cta.handlers)&&Object.assign(s,m.cta.handlers);}catch{}let c=[],u=0;for(let m of o){let p=re(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=re(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=(re(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,...ei(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?OO():{},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:`${Fn()?window.location.origin:""}${n.path}`,title:n.title,tags:n.tags}),this.capture("page_view",{source:"router_auto_track",path:n.path});}};function Ql(e){let n=oq(e),r=new rI(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 h=0;h<t.length;h+=1){let x=t[h][m];if(x){f.push(h);try{return await x(...p)}catch(w){let S=t.slice(h+1).some(E=>typeof E[m]=="function");console.warn(h===0&&S?`[RevTurbine] Primary provider ${m} failed; trying configured fallbacks.`:`[RevTurbine] Provider ${m} failed at chain index ${h}.`,w);}}}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 h=t[f];if(h.identify){g+=1;try{h.identify(m,p);return}catch(P){let x=t.slice(f+1).some(w=>typeof w.identify=="function");console.warn(f===0&&x?"[RevTurbine] Primary provider identify failed; trying configured fallbacks.":`[RevTurbine] Provider identify failed at chain index ${f}.`,P);}}}if(g>0){r.disableForProviderFailure("provider_identify_chain_failed"),d(m,p);return}d(m,p);},r}var Fp={tenantId:"local",apiKey:"local-only",endpoint:"https://api.revturbine.local",mode:"react"};function QS(e){return typeof e=="string"&&e.trim().length>0}function oq(e){return ys(e.localRuntime)!==void 0?{...e,tenantId:QS(e.tenantId)?e.tenantId:Fp.tenantId,apiKey:QS(e.apiKey)?e.apiKey:Fp.apiKey,endpoint:QS(e.endpoint)?e.endpoint:Fp.endpoint,mode:e.mode??Fp.mode,runtimeMode:e.runtimeMode??"local_only"}:e}function aq(e){if(!re(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||!jO.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:Ql});var sq="revturbine:theme";function oI(e){return `${sq}:${e}`}function cq(e,n){try{let r=n.getItem(oI(e));if(!r)return null;let o=JSON.parse(r);return typeof o!="object"||o===null?null:o}catch{return null}}function lq(e,n,r){try{r.setItem(oI(e),JSON.stringify(n));}catch{}}function AO(e,n){let r=n??Fi();try{r.removeItem(oI(e));}catch{}}async function xs(e,n){let{tenantId:r,endpoint:o,apiKey:t}=e,i=e.storage??Fi(),s=cq(r,i),c=ui(s);return uq(o,r,t).then(u=>{u&&(s?.version&&u.version===s.version||(lq(r,u,i),n?.(ui(u))));}).catch(()=>{}),c}async function uq(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 Ss=class{constructor(n,r){z(this,"sdk");z(this,"options");z(this,"listeners",new Set);z(this,"_placementId","");z(this,"_decision",null);z(this,"_isLoading",false);z(this,"_error","");z(this,"_impressionTracked",false);z(this,"_loadSeq",0);z(this,"_exposed",false);z(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}}markVisible(n="viewport"){this._exposed||(this._exposed=true,this._exposureBasis=n,this.notify());}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});return o!==this._loadSeq?this._decision:(this._decision=t,t.visible&&!this._impressionTracked&&(n.autoTrackImpression??!0)&&(this._impressionTracked=!0,await this.sdk.trackTreatmentInteraction({userId:r,placementId:this._placementId,interactionType:"impression",surfaceSlotId:t.output?.surface?.slot_id,surfaceTemplateId:t.output?.surface?.template,payloadId:t.output?.output_id,metadata:{decision_source:t.decisionSource}})),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._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._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();}},Is=class{constructor(n,r){z(this,"sdk");z(this,"options");z(this,"listeners",new Set);z(this,"_isLoading",false);z(this,"_error",null);z(this,"_result",null);z(this,"_gatedPlacement",null);z(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();}},Lp=class{constructor(n,r){z(this,"sdk");z(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 Ss(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 Is(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 dq(e){let{bootstrapPlacements:n,...r}=e,o=r,t=Ql(o),i=o.user;i&&typeof i=="object"&&i.id&&t.identify(i.id,i);let s=wn,u=ys(o.localRuntime)?.theme;if(u&&typeof u=="object"?s=ui(u):s=await xs({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 Lp(t,s)}var mq=/\{[^{}]+\}/g,pq=()=>typeof process=="object"&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function fq(){return Math.random().toString(36).slice(2,11)}function LO(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=pq()?u:void 0,n=NO(n);let m=[];async function p(g,f){let{baseUrl:h,fetch:P=o,Request:x=r,headers:w,params:S={},parseAs:E="json",querySerializer:I,bodySerializer:$=i??hq,pathSerializer:B,body:ce,middleware:me=[],...W}=f||{},J=n;h&&(J=NO(h)??n);let fe=typeof t=="function"?t:DO(t);I&&(fe=typeof I=="function"?I:DO({...typeof t=="object"?t:{},...I}));let ie=B||s||gq,at=ce===void 0?void 0:$(ce,FO(c,w,S.header)),Re=FO(at===void 0||at instanceof FormData?{}:{"Content-Type":"application/json"},c,w,S.header),X=[...m,...me],_t={redirect:"follow",...d,...W,body:at,headers:Re},st,Ke,ge=new x(bq(g,{baseUrl:J,params:S,querySerializer:fe,pathSerializer:ie}),_t),ot;for(let ee in W)ee in ge||(ge[ee]=W[ee]);if(X.length){st=fq(),Ke=Object.freeze({baseUrl:J,fetch:P,parseAs:E,querySerializer:fe,bodySerializer:$,pathSerializer:ie});for(let ee of X)if(ee&&typeof ee=="object"&&typeof ee.onRequest=="function"){let Ae=await ee.onRequest({request:ge,schemaPath:g,params:S,options:Ke,id:st});if(Ae)if(Ae instanceof x)ge=Ae;else if(Ae instanceof Response){ot=Ae;break}else throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}if(!ot){try{ot=await P(ge,u);}catch(ee){let Ae=ee;if(X.length)for(let se=X.length-1;se>=0;se--){let Tt=X[se];if(Tt&&typeof Tt=="object"&&typeof Tt.onError=="function"){let pn=await Tt.onError({request:ge,error:Ae,schemaPath:g,params:S,options:Ke,id:st});if(pn){if(pn instanceof Response){Ae=void 0,ot=pn;break}if(pn instanceof Error){Ae=pn;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(Ae)throw Ae}if(X.length)for(let ee=X.length-1;ee>=0;ee--){let Ae=X[ee];if(Ae&&typeof Ae=="object"&&typeof Ae.onResponse=="function"){let se=await Ae.onResponse({request:ge,response:ot,schemaPath:g,params:S,options:Ke,id:st});if(se){if(!(se instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");ot=se;}}}}let un=ot.headers.get("Content-Length");if(ot.status===204||ge.method==="HEAD"||un==="0"&&!ot.headers.get("Transfer-Encoding")?.includes("chunked"))return ot.ok?{data:void 0,response:ot}:{error:void 0,response:ot};if(ot.ok)return {data:await(async()=>{if(E==="stream")return ot.body;if(E==="json"&&!un){let Ae=await ot.text();return Ae?JSON.parse(Ae):void 0}return await ot[E]()})(),response:ot};let G=await ot.text();try{G=JSON.parse(G);}catch{}return {error:G,response:ot}}return {request(g,f,h){return p(f,{...h,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 h=m.indexOf(f);h!==-1&&m.splice(h,1);}}}}function Bp(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 BO(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(Bp(c,n[s],r));}let i=o.join(t);return r.style==="label"||r.style==="matrix"?`${t}${i}`:i}function VO(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(Bp(e,i,r));return r.style==="label"||r.style==="matrix"?`${o}${t.join(o)}`:t.join(o)}function DO(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(VO(t,i,{style:"form",explode:true,...e?.array,allowReserved:e?.allowReserved||false}));continue}if(typeof i=="object"){o.push(BO(t,i,{style:"deepObject",explode:true,...e?.object,allowReserved:e?.allowReserved||false}));continue}o.push(Bp(t,i,e));}}return o.join("&")}}function gq(e,n){let r=e;for(let o of e.match(mq)??[]){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,VO(t,c,{style:s,explode:i}));continue}if(typeof c=="object"){r=r.replace(o,BO(t,c,{style:s,explode:i}));continue}if(s==="matrix"){r=r.replace(o,`;${Bp(t,c)}`);continue}r=r.replace(o,s==="label"?`.${encodeURIComponent(c)}`:encodeURIComponent(c));}return r}function hq(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 bq(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 FO(...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 NO(e){return e.endsWith("/")?e.substring(0,e.length-1):e}function _q(e){let n={...e.headers};return e.tenantId&&(n["x-rt-tenant-id"]=e.tenantId),e.token&&(n.Authorization=`Bearer ${e.token}`),LO({baseUrl:e.baseUrl,headers:n})}var aI=class extends Error{constructor(r,o){super(o);z(this,"status",r);this.name="ApiError";}};var sI=class extends QE{constructor(r){let{exportedConfig:o,environmentId:t,...i}=r,s=_i(o,"BrowserRuntime.exportedConfig",{tenantId:r.tenantId,environmentId:t??"default"});if(!s)throw new Error("BrowserRuntime requires exportedConfig");let c=Fi(r.storage),u=new up({storage:c,tenantId:r.tenantId,maxRecords:r.maxImpressionRecords});super({...i,exportedConfig:s,storage:c,impressionStore:u});z(this,"_hydratePromise");let d=r.autoHydrate??true;this._hydratePromise=d?this.hydrate():null;}async ready(){this._hydratePromise&&await this._hydratePromise;}};var vq=new Set(["tenant_id","user_id","anonymous_id","session_id","url","path","page_title","event_time"]);function yq(e){let n={};for(let[r,o]of Object.entries(e.properties))n[vq.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 cI=class{constructor(n){z(this,"name");z(this,"handler");z(this,"transform");z(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=yq(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 MO(e){let n=new cI(e);return {domain:"events",resolve:()=>({consumers:[n]})}}function xq(e){let{posthog:n,filter:r,transform:o,name:t}=e;return MO({name:t??"posthog",filter:r,transform:o,handler:(i,s)=>{n.capture(i,s);}})}var ZO=["banner_placement"],qO=["banner_placement","in_page_card"],HO=["toast_message"],KO=["modal_overlay"];var eu=["banner_placement","in_page_card","usage_counter","button"],tu=["modal_overlay","inline_gate_message"],nu=["toast_message","modal_overlay","banner_placement"];function ru(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}var Vp=class{constructor(n){z(this,"tenantId");z(this,"apiKey");z(this,"endpoint");z(this,"defaultTtlSeconds");z(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=ru(),o=n.anonymousId??ru(),[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=ru(),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=ru(),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=ru();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={};fn(l,{$brand:()=>uI,$input:()=>Ek,$output:()=>Ck,NEVER:()=>lI,TimePrecision:()=>Uk,ZodAny:()=>PT,ZodArray:()=>wT,ZodBase64:()=>hg,ZodBase64URL:()=>bg,ZodBigInt:()=>ec,ZodBigIntFormat:()=>yg,ZodBoolean:()=>Qs,ZodCIDRv4:()=>fg,ZodCIDRv6:()=>gg,ZodCUID:()=>sg,ZodCUID2:()=>cg,ZodCatch:()=>WT,ZodCodec:()=>Uu,ZodCustom:()=>Au,ZodCustomStringFormat:()=>Xs,ZodDate:()=>Cu,ZodDefault:()=>ZT,ZodDiscriminatedUnion:()=>CT,ZodE164:()=>_g,ZodEmail:()=>ig,ZodEmoji:()=>og,ZodEnum:()=>Js,ZodError:()=>Y8,ZodExactOptional:()=>BT,ZodFile:()=>NT,ZodFirstPartyTypeKind:()=>l$,ZodFunction:()=>a$,ZodGUID:()=>ku,ZodIPv4:()=>mg,ZodIPv6:()=>pg,ZodISODate:()=>Yf,ZodISODateTime:()=>Xf,ZodISODuration:()=>eg,ZodISOTime:()=>Qf,ZodIntersection:()=>ET,ZodIssueCode:()=>eK,ZodJWT:()=>vg,ZodKSUID:()=>dg,ZodLazy:()=>r$,ZodLiteral:()=>FT,ZodMAC:()=>bT,ZodMap:()=>AT,ZodNaN:()=>YT,ZodNanoID:()=>ag,ZodNever:()=>TT,ZodNonOptional:()=>Tg,ZodNull:()=>ST,ZodNullable:()=>MT,ZodNumber:()=>Ys,ZodNumberFormat:()=>Mo,ZodObject:()=>zu,ZodOptional:()=>kg,ZodPipe:()=>ju,ZodPrefault:()=>HT,ZodPreprocess:()=>QT,ZodPromise:()=>o$,ZodReadonly:()=>e$,ZodRealError:()=>Qn,ZodRecord:()=>Gs,ZodSet:()=>DT,ZodString:()=>Ws,ZodStringFormat:()=>Pt,ZodSuccess:()=>JT,ZodSymbol:()=>yT,ZodTemplateLiteral:()=>n$,ZodTransform:()=>LT,ZodTuple:()=>OT,ZodType:()=>je,ZodULID:()=>lg,ZodURL:()=>Ru,ZodUUID:()=>Yr,ZodUndefined:()=>xT,ZodUnion:()=>Ou,ZodUnknown:()=>kT,ZodVoid:()=>$T,ZodXID:()=>ug,ZodXor:()=>RT,_ZodString:()=>rg,_default:()=>qT,_function:()=>UU,any:()=>mU,array:()=>Eu,base64:()=>J1,base64url:()=>W1,bigint:()=>sU,boolean:()=>vT,catch:()=>XT,check:()=>AU,cidrv4:()=>K1,cidrv6:()=>G1,clone:()=>Bn,codec:()=>EU,coerce:()=>u$,config:()=>tn,core:()=>fi,cuid:()=>N1,cuid2:()=>L1,custom:()=>DU,date:()=>fU,decode:()=>uT,decodeAsync:()=>mT,describe:()=>FU,discriminatedUnion:()=>yU,e164:()=>X1,email:()=>R1,emoji:()=>D1,encode:()=>lT,encodeAsync:()=>dT,endsWith:()=>Fs,enum:()=>Ig,exactOptional:()=>VT,file:()=>$U,flattenError:()=>du,float32:()=>rU,float64:()=>iU,formatError:()=>mu,fromJSONSchema:()=>qU,function:()=>UU,getErrorMap:()=>nK,globalRegistry:()=>xn,gt:()=>Wr,gte:()=>Mn,guid:()=>C1,hash:()=>nU,hex:()=>tU,hostname:()=>eU,httpUrl:()=>A1,includes:()=>As,instanceof:()=>LU,int:()=>tg,int32:()=>oU,int64:()=>cU,intersection:()=>zT,invertCodec:()=>zU,ipv4:()=>Z1,ipv6:()=>H1,iso:()=>Ks,json:()=>VU,jwt:()=>Y1,keyof:()=>gU,ksuid:()=>M1,lazy:()=>i$,length:()=>Bo,literal:()=>TU,locales:()=>yu,looseObject:()=>_U,looseRecord:()=>SU,lowercase:()=>js,lt:()=>Jr,lte:()=>lr,mac:()=>q1,map:()=>IU,maxLength:()=>Lo,maxSize:()=>eo,meta:()=>NU,mime:()=>Ns,minLength:()=>pi,minSize:()=>Xr,multipleOf:()=>Qi,nan:()=>CU,nanoid:()=>F1,nativeEnum:()=>kU,negative:()=>Bf,never:()=>xg,nonnegative:()=>Mf,nonoptional:()=>GT,nonpositive:()=>Vf,normalize:()=>Ls,null:()=>IT,nullable:()=>$u,nullish:()=>wU,number:()=>_T,object:()=>hU,optional:()=>Tu,overwrite:()=>Ur,parse:()=>oT,parseAsync:()=>aT,partialRecord:()=>xU,pipe:()=>ng,positive:()=>Lf,prefault:()=>KT,preprocess:()=>MU,prettifyError:()=>II,promise:()=>jU,property:()=>Zf,readonly:()=>t$,record:()=>UT,refine:()=>s$,regex:()=>Os,regexes:()=>cr,registry:()=>vf,safeDecode:()=>fT,safeDecodeAsync:()=>hT,safeEncode:()=>pT,safeEncodeAsync:()=>gT,safeParse:()=>sT,safeParseAsync:()=>cT,set:()=>PU,setErrorMap:()=>tK,size:()=>No,slugify:()=>Zs,startsWith:()=>Ds,strictObject:()=>bU,string:()=>Pu,stringFormat:()=>Q1,stringbool:()=>BU,success:()=>RU,superRefine:()=>c$,symbol:()=>uU,templateLiteral:()=>OU,toJSONSchema:()=>Gf,toLowerCase:()=>Vs,toUpperCase:()=>Ms,transform:()=>Pg,treeifyError:()=>SI,trim:()=>Bs,tuple:()=>jT,uint32:()=>aU,uint64:()=>lU,ulid:()=>B1,undefined:()=>dU,union:()=>Sg,unknown:()=>Vo,uppercase:()=>Us,url:()=>U1,util:()=>L,uuid:()=>E1,uuidv4:()=>z1,uuidv6:()=>O1,uuidv7:()=>j1,void:()=>pU,xid:()=>V1,xor:()=>vU});var fi={};fn(fi,{$ZodAny:()=>YP,$ZodArray:()=>rk,$ZodAsyncError:()=>jr,$ZodBase64:()=>VP,$ZodBase64URL:()=>MP,$ZodBigInt:()=>df,$ZodBigIntFormat:()=>GP,$ZodBoolean:()=>hu,$ZodCIDRv4:()=>NP,$ZodCIDRv6:()=>LP,$ZodCUID:()=>$P,$ZodCUID2:()=>wP,$ZodCatch:()=>xk,$ZodCheck:()=>wt,$ZodCheckBigIntFormat:()=>rP,$ZodCheckEndsWith:()=>gP,$ZodCheckGreaterThan:()=>of,$ZodCheckIncludes:()=>pP,$ZodCheckLengthEquals:()=>lP,$ZodCheckLessThan:()=>rf,$ZodCheckLowerCase:()=>dP,$ZodCheckMaxLength:()=>sP,$ZodCheckMaxSize:()=>iP,$ZodCheckMimeType:()=>bP,$ZodCheckMinLength:()=>cP,$ZodCheckMinSize:()=>oP,$ZodCheckMultipleOf:()=>tP,$ZodCheckNumberFormat:()=>nP,$ZodCheckOverwrite:()=>_P,$ZodCheckProperty:()=>hP,$ZodCheckRegex:()=>uP,$ZodCheckSizeEquals:()=>aP,$ZodCheckStartsWith:()=>fP,$ZodCheckStringFormat:()=>Es,$ZodCheckUpperCase:()=>mP,$ZodCodec:()=>_u,$ZodCustom:()=>Rk,$ZodCustomStringFormat:()=>HP,$ZodDate:()=>nk,$ZodDefault:()=>bk,$ZodDiscriminatedUnion:()=>ak,$ZodE164:()=>ZP,$ZodEmail:()=>IP,$ZodEmoji:()=>kP,$ZodEncodeError:()=>Gi,$ZodEnum:()=>dk,$ZodError:()=>uu,$ZodExactOptional:()=>gk,$ZodFile:()=>pk,$ZodFunction:()=>Tk,$ZodGUID:()=>xP,$ZodIPv4:()=>AP,$ZodIPv6:()=>DP,$ZodISODate:()=>OP,$ZodISODateTime:()=>zP,$ZodISODuration:()=>UP,$ZodISOTime:()=>jP,$ZodIntersection:()=>sk,$ZodJWT:()=>qP,$ZodKSUID:()=>EP,$ZodLazy:()=>wk,$ZodLiteral:()=>mk,$ZodMAC:()=>FP,$ZodMap:()=>lk,$ZodNaN:()=>Sk,$ZodNanoID:()=>TP,$ZodNever:()=>ek,$ZodNonOptional:()=>vk,$ZodNull:()=>XP,$ZodNullable:()=>hk,$ZodNumber:()=>uf,$ZodNumberFormat:()=>KP,$ZodObject:()=>Pj,$ZodObjectJIT:()=>ik,$ZodOptional:()=>pf,$ZodPipe:()=>ff,$ZodPrefault:()=>_k,$ZodPreprocess:()=>Ik,$ZodPromise:()=>$k,$ZodReadonly:()=>Pk,$ZodRealError:()=>Yn,$ZodRecord:()=>ck,$ZodRegistry:()=>_f,$ZodSet:()=>uk,$ZodString:()=>Fo,$ZodStringFormat:()=>It,$ZodSuccess:()=>yk,$ZodSymbol:()=>JP,$ZodTemplateLiteral:()=>kk,$ZodTransform:()=>fk,$ZodTuple:()=>mf,$ZodType:()=>Te,$ZodULID:()=>RP,$ZodURL:()=>PP,$ZodUUID:()=>SP,$ZodUndefined:()=>WP,$ZodUnion:()=>bu,$ZodUnknown:()=>QP,$ZodVoid:()=>tk,$ZodXID:()=>CP,$ZodXor:()=>ok,$brand:()=>uI,$constructor:()=>T,$input:()=>Ek,$output:()=>Ck,Doc:()=>gu,JSONSchema:()=>T1,JSONSchemaGenerator:()=>Jf,NEVER:()=>lI,TimePrecision:()=>Uk,_any:()=>n0,_array:()=>l0,_base64:()=>Af,_base64url:()=>Df,_bigint:()=>Jk,_boolean:()=>Kk,_catch:()=>Z8,_check:()=>k1,_cidrv4:()=>jf,_cidrv6:()=>Uf,_coercedBigint:()=>Wk,_coercedBoolean:()=>Gk,_coercedDate:()=>s0,_coercedNumber:()=>Bk,_coercedString:()=>Ok,_cuid:()=>$f,_cuid2:()=>wf,_custom:()=>d0,_date:()=>a0,_decode:()=>Gp,_decodeAsync:()=>Wp,_default:()=>B8,_discriminatedUnion:()=>R8,_e164:()=>Ff,_email:()=>yf,_emoji:()=>kf,_encode:()=>Kp,_encodeAsync:()=>Jp,_endsWith:()=>Fs,_enum:()=>U8,_file:()=>u0,_float32:()=>Mk,_float64:()=>Zk,_gt:()=>Wr,_gte:()=>Mn,_guid:()=>xu,_includes:()=>As,_int:()=>Vk,_int32:()=>qk,_int64:()=>Xk,_intersection:()=>C8,_ipv4:()=>zf,_ipv6:()=>Of,_isoDate:()=>Dk,_isoDateTime:()=>Ak,_isoDuration:()=>Nk,_isoTime:()=>Fk,_jwt:()=>Nf,_ksuid:()=>Ef,_lazy:()=>G8,_length:()=>Bo,_literal:()=>D8,_lowercase:()=>js,_lt:()=>Jr,_lte:()=>lr,_mac:()=>jk,_map:()=>O8,_max:()=>lr,_maxLength:()=>Lo,_maxSize:()=>eo,_mime:()=>Ns,_min:()=>Mn,_minLength:()=>pi,_minSize:()=>Xr,_multipleOf:()=>Qi,_nan:()=>c0,_nanoid:()=>Tf,_nativeEnum:()=>A8,_negative:()=>Bf,_never:()=>i0,_nonnegative:()=>Mf,_nonoptional:()=>V8,_nonpositive:()=>Vf,_normalize:()=>Ls,_null:()=>t0,_nullable:()=>L8,_number:()=>Lk,_optional:()=>N8,_overwrite:()=>Ur,_parse:()=>$s,_parseAsync:()=>ws,_pipe:()=>q8,_positive:()=>Lf,_promise:()=>J8,_property:()=>Zf,_readonly:()=>H8,_record:()=>z8,_refine:()=>m0,_regex:()=>Os,_safeDecode:()=>Yp,_safeDecodeAsync:()=>ef,_safeEncode:()=>Xp,_safeEncodeAsync:()=>Qp,_safeParse:()=>Rs,_safeParseAsync:()=>Cs,_set:()=>j8,_size:()=>No,_slugify:()=>Zs,_startsWith:()=>Ds,_string:()=>zk,_stringFormat:()=>qs,_stringbool:()=>h0,_success:()=>M8,_superRefine:()=>p0,_symbol:()=>Qk,_templateLiteral:()=>K8,_toLowerCase:()=>Vs,_toUpperCase:()=>Ms,_transform:()=>F8,_trim:()=>Bs,_tuple:()=>E8,_uint32:()=>Hk,_uint64:()=>Yk,_ulid:()=>Rf,_undefined:()=>e0,_union:()=>$8,_unknown:()=>r0,_uppercase:()=>Us,_url:()=>Su,_uuid:()=>xf,_uuidv4:()=>Sf,_uuidv6:()=>If,_uuidv7:()=>Pf,_void:()=>o0,_xid:()=>Cf,_xor:()=>w8,clone:()=>Bn,config:()=>tn,createStandardJSONSchemaMethod:()=>Hs,createToJSONSchemaMethod:()=>b0,decode:()=>Jq,decodeAsync:()=>Xq,describe:()=>f0,encode:()=>Gq,encodeAsync:()=>Wq,extractDefs:()=>no,finalize:()=>ro,flattenError:()=>du,formatError:()=>mu,globalConfig:()=>Uo,globalRegistry:()=>xn,initializeContext:()=>to,isValidBase64:()=>BP,isValidBase64URL:()=>yj,isValidJWT:()=>xj,locales:()=>yu,meta:()=>g0,parse:()=>qp,parseAsync:()=>Hp,prettifyError:()=>II,process:()=>ht,regexes:()=>cr,registry:()=>vf,safeDecode:()=>Qq,safeDecodeAsync:()=>tH,safeEncode:()=>Yq,safeEncodeAsync:()=>eH,safeParse:()=>PI,safeParseAsync:()=>kI,toDotPath:()=>QO,toJSONSchema:()=>Gf,treeifyError:()=>SI,util:()=>L,version:()=>vP});var GO,lI=Object.freeze({status:"aborted"});function T(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 uI=Symbol("zod_brand"),jr=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.");}},Gi=class extends Error{constructor(n){super(`Encountered unidirectional transform during encode: ${n}`),this.name="ZodEncodeError";}};(GO=globalThis).__zod_globalConfig??(GO.__zod_globalConfig={});var Uo=globalThis.__zod_globalConfig;function tn(e){return e&&Object.assign(Uo,e),Uo}var L={};fn(L,{BIGINT_FORMAT_RANGES:()=>yI,Class:()=>mI,NUMBER_FORMAT_RANGES:()=>vI,aborted:()=>Yi,allowsEval:()=>gI,assert:()=>Tq,assertEqual:()=>Sq,assertIs:()=>Pq,assertNever:()=>kq,assertNotEqual:()=>Iq,assignProp:()=>Wi,base64ToUint8Array:()=>WO,base64urlToUint8Array:()=>Mq,cached:()=>ks,captureStackTrace:()=>Zp,cleanEnum:()=>Vq,cleanRegex:()=>au,clone:()=>Bn,cloneDef:()=>wq,createTransparentProxy:()=>jq,defineLazy:()=>qe,esc:()=>Mp,escapeRegex:()=>vr,explicitlyAborted:()=>xI,extend:()=>Dq,finalizeIssue:()=>Vn,floatSafeRemainder:()=>pI,getElementAtPath:()=>Rq,getEnumValues:()=>ou,getLengthableOrigin:()=>lu,getParsedType:()=>Oq,getSizableOrigin:()=>cu,hexToUint8Array:()=>qq,isObject:()=>Ao,isPlainObject:()=>Xi,issue:()=>Ts,joinValues:()=>C,jsonStringifyReplacer:()=>Ps,merge:()=>Nq,mergeDefs:()=>mi,normalizeParams:()=>K,nullish:()=>Ji,numKeys:()=>zq,objectClone:()=>$q,omit:()=>Aq,optionalKeys:()=>_I,parsedType:()=>F,partial:()=>Lq,pick:()=>Uq,prefixIssues:()=>Xn,primitiveTypes:()=>bI,promiseAllObject:()=>Cq,propertyKeyTypes:()=>su,randomString:()=>Eq,required:()=>Bq,safeExtend:()=>Fq,shallowClone:()=>hI,slugify:()=>fI,stringifyPrimitive:()=>A,uint8ArrayToBase64:()=>XO,uint8ArrayToBase64url:()=>Zq,uint8ArrayToHex:()=>Hq,unwrapMessage:()=>iu});function Sq(e){return e}function Iq(e){return e}function Pq(e){}function kq(e){throw new Error("Unexpected value in exhaustive check")}function Tq(e){}function ou(e){let n=Object.values(e).filter(o=>typeof o=="number");return Object.entries(e).filter(([o,t])=>n.indexOf(+o)===-1).map(([o,t])=>t)}function C(e,n="|"){return e.map(r=>A(r)).join(n)}function Ps(e,n){return typeof n=="bigint"?n.toString():n}function ks(e){return {get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}}}}function Ji(e){return e==null}function au(e){let n=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(n,r)}function pI(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 JO=Symbol("evaluating");function qe(e,n,r){let o;Object.defineProperty(e,n,{get(){if(o!==JO)return o===void 0&&(o=JO,o=r()),o},set(t){Object.defineProperty(e,n,{value:t});},configurable:true});}function $q(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Wi(e,n,r){Object.defineProperty(e,n,{value:r,writable:true,enumerable:true,configurable:true});}function mi(...e){let n={};for(let r of e){let o=Object.getOwnPropertyDescriptors(r);Object.assign(n,o);}return Object.defineProperties({},n)}function wq(e){return mi(e._zod.def)}function Rq(e,n){return n?n.reduce((r,o)=>r?.[o],e):e}function Cq(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 Eq(e=10){let n="abcdefghijklmnopqrstuvwxyz",r="";for(let o=0;o<e;o++)r+=n[Math.floor(Math.random()*n.length)];return r}function Mp(e){return JSON.stringify(e)}function fI(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Zp="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Ao(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var gI=ks(()=>{if(Uo.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return false;try{let e=Function;return new e(""),!0}catch{return false}});function Xi(e){if(Ao(e)===false)return false;let n=e.constructor;if(n===void 0||typeof n!="function")return true;let r=n.prototype;return !(Ao(r)===false||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===false)}function hI(e){return Xi(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function zq(e){let n=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&n++;return n}var Oq=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}`)}},su=new Set(["string","number","symbol"]),bI=new Set(["string","number","bigint","boolean","symbol","undefined"]);function vr(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Bn(e,n,r){let o=new e._zod.constr(n??e._zod.def);return (!n||r?.parent)&&(o._zod.parent=e),o}function K(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 jq(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 A(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function _I(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}var vI={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]},yI={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Uq(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=mi(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 Wi(this,"shape",s),s},checks:[]});return Bn(e,i)}function Aq(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=mi(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 Wi(this,"shape",s),s},checks:[]});return Bn(e,i)}function Dq(e,n){if(!Xi(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=mi(e._zod.def,{get shape(){let i={...e._zod.def.shape,...n};return Wi(this,"shape",i),i}});return Bn(e,t)}function Fq(e,n){if(!Xi(n))throw new Error("Invalid input to safeExtend: expected a plain object");let r=mi(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n};return Wi(this,"shape",o),o}});return Bn(e,r)}function Nq(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=mi(e._zod.def,{get shape(){let o={...e._zod.def.shape,...n._zod.def.shape};return Wi(this,"shape",o),o},get catchall(){return n._zod.def.catchall},checks:n._zod.def.checks??[]});return Bn(e,r)}function Lq(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=mi(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 Wi(this,"shape",u),u},checks:[]});return Bn(n,s)}function Bq(e,n,r){let o=mi(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 Wi(this,"shape",i),i}});return Bn(n,o)}function Yi(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 xI(e,n=0){if(e.aborted===true)return true;for(let r=n;r<e.issues.length;r++)if(e.issues[r]?.continue===false)return true;return false}function Xn(e,n){return n.map(r=>{var o;return (o=r).path??(o.path=[]),r.path.unshift(e),r})}function iu(e){return typeof e=="string"?e:e?.message}function Vn(e,n,r){let o=e.message?e.message:iu(e.inst?._zod.def?.error?.(e))??iu(n?.error?.(e))??iu(r.customError?.(e))??iu(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 cu(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function lu(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 Vq(e){return Object.entries(e).filter(([n,r])=>Number.isNaN(Number.parseInt(n,10))).map(n=>n[1])}function WO(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 XO(e){let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}function Mq(e){let n=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-n.length%4)%4);return WO(n+r)}function Zq(e){return XO(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function qq(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 Hq(e){return Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}var mI=class{constructor(...n){}};var YO=(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,Ps,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:false});},uu=T("$ZodError",YO),Yn=T("$ZodError",YO,{Parent:Error});function du(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 mu(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 SI(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 QO(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 II(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 ${QO(o.path)}`);return n.join(`
|
|
66
66
|
`)}var $s=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 jr;if(s.issues.length){let c=new(t?.Err??e)(s.issues.map(u=>Vn(u,i,tn())));throw Zp(c,t?.callee),c}return s.value},qp=$s(Yn),ws=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=>Vn(u,i,tn())));throw Zp(c,t?.callee),c}return s.value},Hp=ws(Yn),Rs=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 jr;return i.issues.length?{success:false,error:new(e??uu)(i.issues.map(s=>Vn(s,t,tn())))}:{success:true,data:i.value}},PI=Rs(Yn),Cs=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=>Vn(s,t,tn())))}:{success:true,data:i.value}},kI=Cs(Yn),Kp=e=>(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return $s(e)(n,r,t)},Gq=Kp(Yn),Gp=e=>(n,r,o)=>$s(e)(n,r,o),Jq=Gp(Yn),Jp=e=>async(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return ws(e)(n,r,t)},Wq=Jp(Yn),Wp=e=>async(n,r,o)=>ws(e)(n,r,o),Xq=Wp(Yn),Xp=e=>(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return Rs(e)(n,r,t)},Yq=Xp(Yn),Yp=e=>(n,r,o)=>Rs(e)(n,r,o),Qq=Yp(Yn),Qp=e=>async(n,r,o)=>{let t=o?{...o,direction:"backward"}:{direction:"backward"};return Cs(e)(n,r,t)},eH=Qp(Yn),ef=e=>async(n,r,o)=>Cs(e)(n,r,o),tH=ef(Yn);var cr={};fn(cr,{base64:()=>BI,base64url:()=>tf,bigint:()=>GI,boolean:()=>WI,browserEmail:()=>lH,cidrv4:()=>NI,cidrv6:()=>LI,cuid:()=>TI,cuid2:()=>$I,date:()=>ZI,datetime:()=>HI,domain:()=>mH,duration:()=>zI,e164:()=>MI,email:()=>jI,emoji:()=>UI,extendedDuration:()=>nH,guid:()=>OI,hex:()=>pH,hostname:()=>dH,html5Email:()=>aH,httpProtocol:()=>VI,idnEmail:()=>cH,integer:()=>JI,ipv4:()=>AI,ipv6:()=>DI,ksuid:()=>CI,lowercase:()=>QI,mac:()=>FI,md5_base64:()=>gH,md5_base64url:()=>hH,md5_hex:()=>fH,nanoid:()=>EI,null:()=>XI,number:()=>nf,rfc5322Email:()=>sH,sha1_base64:()=>_H,sha1_base64url:()=>vH,sha1_hex:()=>bH,sha256_base64:()=>xH,sha256_base64url:()=>SH,sha256_hex:()=>yH,sha384_base64:()=>PH,sha384_base64url:()=>kH,sha384_hex:()=>IH,sha512_base64:()=>$H,sha512_base64url:()=>wH,sha512_hex:()=>TH,string:()=>KI,time:()=>qI,ulid:()=>wI,undefined:()=>YI,unicodeEmail:()=>ej,uppercase:()=>eP,uuid:()=>Do,uuid4:()=>rH,uuid6:()=>iH,uuid7:()=>oH,xid:()=>RI});var TI=/^[cC][0-9a-z]{6,}$/,$I=/^[0-9a-z]+$/,wI=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,RI=/^[0-9a-vA-V]{20}$/,CI=/^[A-Za-z0-9]{27}$/,EI=/^[a-zA-Z0-9_-]{21}$/,zI=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,nH=/^[-+]?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)?)??$/,OI=/^([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})$/,Do=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)$/,rH=Do(4),iH=Do(6),oH=Do(7),jI=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,aH=/^[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])?)*$/,sH=/^(([^<>()\[\]\\.,;:\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,}))$/,ej=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,cH=ej,lH=/^[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])?)*$/,uH="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function UI(){return new RegExp(uH,"u")}var AI=/^(?:(?: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])$/,DI=/^(([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}|:))$/,FI=e=>{let n=vr(e??":");return new RegExp(`^(?:[0-9A-F]{2}${n}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${n}){5}[0-9a-f]{2}$`)},NI=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,LI=/^(([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])$/,BI=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,tf=/^[A-Za-z0-9_-]*$/,dH=/^(?=.{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])?)*\.?$/,mH=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,VI=/^https?$/,MI=/^\+[1-9]\d{6,14}$/,tj="(?:(?:\\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])))",ZI=new RegExp(`^${tj}$`);function nj(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 qI(e){return new RegExp(`^${nj(e)}$`)}function HI(e){let n=nj({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(`^${tj}T(?:${o})$`)}var KI=e=>{let n=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${n}$`)},GI=/^-?\d+n?$/,JI=/^-?\d+$/,nf=/^-?\d+(?:\.\d+)?$/,WI=/^(?:true|false)$/i,XI=/^null$/i;var YI=/^undefined$/i;var QI=/^[^A-Z]*$/,eP=/^[^a-z]*$/,pH=/^[0-9a-fA-F]*$/;function pu(e,n){return new RegExp(`^[A-Za-z0-9+/]{${e}}${n}$`)}function fu(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var fH=/^[0-9a-fA-F]{32}$/,gH=pu(22,"=="),hH=fu(22),bH=/^[0-9a-fA-F]{40}$/,_H=pu(27,"="),vH=fu(27),yH=/^[0-9a-fA-F]{64}$/,xH=pu(43,"="),SH=fu(43),IH=/^[0-9a-fA-F]{96}$/,PH=pu(64,""),kH=fu(64),TH=/^[0-9a-fA-F]{128}$/,$H=pu(86,"=="),wH=fu(86);var wt=T("$ZodCheck",(e,n)=>{var r;e._zod??(e._zod={}),e._zod.def=n,(r=e._zod).onattach??(r.onattach=[]);}),ij={number:"number",bigint:"bigint",object:"date"},rf=T("$ZodCheckLessThan",(e,n)=>{wt.init(e,n);let r=ij[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});};}),of=T("$ZodCheckGreaterThan",(e,n)=>{wt.init(e,n);let r=ij[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});};}),tP=T("$ZodCheckMultipleOf",(e,n)=>{wt.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):pI(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});};}),nP=T("$ZodCheckNumberFormat",(e,n)=>{wt.init(e,n),n.format=n.format||"float64";let r=n.format?.includes("int"),o=r?"int":"number",[t,i]=vI[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=JI);}),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});};}),rP=T("$ZodCheckBigIntFormat",(e,n)=>{wt.init(e,n);let[r,o]=yI[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});};}),iP=T("$ZodCheckMaxSize",(e,n)=>{var r;wt.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Ji(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:cu(t),code:"too_big",maximum:n.maximum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),oP=T("$ZodCheckMinSize",(e,n)=>{var r;wt.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Ji(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:cu(t),code:"too_small",minimum:n.minimum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),aP=T("$ZodCheckSizeEquals",(e,n)=>{var r;wt.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Ji(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:cu(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});};}),sP=T("$ZodCheckMaxLength",(e,n)=>{var r;wt.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Ji(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=lu(t);o.issues.push({origin:s,code:"too_big",maximum:n.maximum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),cP=T("$ZodCheckMinLength",(e,n)=>{var r;wt.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Ji(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=lu(t);o.issues.push({origin:s,code:"too_small",minimum:n.minimum,inclusive:true,input:t,inst:e,continue:!n.abort});};}),lP=T("$ZodCheckLengthEquals",(e,n)=>{var r;wt.init(e,n),(r=e._zod.def).when??(r.when=o=>{let t=o.value;return !Ji(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=lu(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});};}),Es=T("$ZodCheckStringFormat",(e,n)=>{var r,o;wt.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=()=>{});}),uP=T("$ZodCheckRegex",(e,n)=>{Es.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});};}),dP=T("$ZodCheckLowerCase",(e,n)=>{n.pattern??(n.pattern=QI),Es.init(e,n);}),mP=T("$ZodCheckUpperCase",(e,n)=>{n.pattern??(n.pattern=eP),Es.init(e,n);}),pP=T("$ZodCheckIncludes",(e,n)=>{wt.init(e,n);let r=vr(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});};}),fP=T("$ZodCheckStartsWith",(e,n)=>{wt.init(e,n);let r=new RegExp(`^${vr(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});};}),gP=T("$ZodCheckEndsWith",(e,n)=>{wt.init(e,n);let r=new RegExp(`.*${vr(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 rj(e,n,r){e.issues.length&&n.issues.push(...Xn(r,e.issues));}var hP=T("$ZodCheckProperty",(e,n)=>{wt.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=>rj(t,r,n.property));rj(o,r,n.property);};}),bP=T("$ZodCheckMimeType",(e,n)=>{wt.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});};}),_P=T("$ZodCheckOverwrite",(e,n)=>{wt.init(e,n),e._zod.check=r=>{r.value=n.tx(r.value);};});var gu=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 vP={major:4,minor:4,patch:3};var Te=T("$ZodType",(e,n)=>{var r;e??(e={}),e._zod.def=n,e._zod.bag=e._zod.bag||{},e._zod.version=vP;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=Yi(s),m;for(let p of c){if(p._zod.def.when){if(xI(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 jr;if(m||f instanceof Promise)m=(m??Promise.resolve()).then(async()=>{await f,s.issues.length!==g&&(d||(d=Yi(s,g)));});else {if(s.issues.length===g)continue;d||(d=Yi(s,g));}}return m?m.then(()=>s):s},i=(s,c,u)=>{if(Yi(s))return s.aborted=true,s;let d=t(c,o,u);if(d instanceof Promise){if(u.async===false)throw new jr;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 jr;return u.then(d=>t(d,o,c))}return t(u,o,c)};}qe(e,"~standard",()=>({validate:t=>{try{let i=PI(e,t);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return kI(e,t).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}));}),Fo=T("$ZodString",(e,n)=>{Te.init(e,n),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??KI(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};}),It=T("$ZodStringFormat",(e,n)=>{Es.init(e,n),Fo.init(e,n);}),xP=T("$ZodGUID",(e,n)=>{n.pattern??(n.pattern=OI),It.init(e,n);}),SP=T("$ZodUUID",(e,n)=>{if(n.version){let o={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[n.version];if(o===void 0)throw new Error(`Invalid UUID version: "${n.version}"`);n.pattern??(n.pattern=Do(o));}else n.pattern??(n.pattern=Do());It.init(e,n);}),IP=T("$ZodEmail",(e,n)=>{n.pattern??(n.pattern=jI),It.init(e,n);}),PP=T("$ZodURL",(e,n)=>{It.init(e,n),e._zod.check=r=>{try{let o=r.value.trim();if(!n.normalize&&n.protocol?.source===VI.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});}};}),kP=T("$ZodEmoji",(e,n)=>{n.pattern??(n.pattern=UI()),It.init(e,n);}),TP=T("$ZodNanoID",(e,n)=>{n.pattern??(n.pattern=EI),It.init(e,n);}),$P=T("$ZodCUID",(e,n)=>{n.pattern??(n.pattern=TI),It.init(e,n);}),wP=T("$ZodCUID2",(e,n)=>{n.pattern??(n.pattern=$I),It.init(e,n);}),RP=T("$ZodULID",(e,n)=>{n.pattern??(n.pattern=wI),It.init(e,n);}),CP=T("$ZodXID",(e,n)=>{n.pattern??(n.pattern=RI),It.init(e,n);}),EP=T("$ZodKSUID",(e,n)=>{n.pattern??(n.pattern=CI),It.init(e,n);}),zP=T("$ZodISODateTime",(e,n)=>{n.pattern??(n.pattern=HI(n)),It.init(e,n);}),OP=T("$ZodISODate",(e,n)=>{n.pattern??(n.pattern=ZI),It.init(e,n);}),jP=T("$ZodISOTime",(e,n)=>{n.pattern??(n.pattern=qI(n)),It.init(e,n);}),UP=T("$ZodISODuration",(e,n)=>{n.pattern??(n.pattern=zI),It.init(e,n);}),AP=T("$ZodIPv4",(e,n)=>{n.pattern??(n.pattern=AI),It.init(e,n),e._zod.bag.format="ipv4";}),DP=T("$ZodIPv6",(e,n)=>{n.pattern??(n.pattern=DI),It.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});}};}),FP=T("$ZodMAC",(e,n)=>{n.pattern??(n.pattern=FI(n.delimiter)),It.init(e,n),e._zod.bag.format="mac";}),NP=T("$ZodCIDRv4",(e,n)=>{n.pattern??(n.pattern=NI),It.init(e,n);}),LP=T("$ZodCIDRv6",(e,n)=>{n.pattern??(n.pattern=LI),It.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 BP(e){if(e==="")return true;if(/\s/.test(e)||e.length%4!==0)return false;try{return atob(e),!0}catch{return false}}var VP=T("$ZodBase64",(e,n)=>{n.pattern??(n.pattern=BI),It.init(e,n),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{BP(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!n.abort});};});function yj(e){if(!tf.test(e))return false;let n=e.replace(/[-_]/g,o=>o==="-"?"+":"/"),r=n.padEnd(Math.ceil(n.length/4)*4,"=");return BP(r)}var MP=T("$ZodBase64URL",(e,n)=>{n.pattern??(n.pattern=tf),It.init(e,n),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{yj(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!n.abort});};}),ZP=T("$ZodE164",(e,n)=>{n.pattern??(n.pattern=MI),It.init(e,n);});function xj(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 qP=T("$ZodJWT",(e,n)=>{It.init(e,n),e._zod.check=r=>{xj(r.value,n.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!n.abort});};}),HP=T("$ZodCustomStringFormat",(e,n)=>{It.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});};}),uf=T("$ZodNumber",(e,n)=>{Te.init(e,n),e._zod.pattern=e._zod.bag.pattern??nf,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};}),KP=T("$ZodNumberFormat",(e,n)=>{nP.init(e,n),uf.init(e,n);}),hu=T("$ZodBoolean",(e,n)=>{Te.init(e,n),e._zod.pattern=WI,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};}),df=T("$ZodBigInt",(e,n)=>{Te.init(e,n),e._zod.pattern=GI,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};}),GP=T("$ZodBigIntFormat",(e,n)=>{rP.init(e,n),df.init(e,n);}),JP=T("$ZodSymbol",(e,n)=>{Te.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};}),WP=T("$ZodUndefined",(e,n)=>{Te.init(e,n),e._zod.pattern=YI,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};}),XP=T("$ZodNull",(e,n)=>{Te.init(e,n),e._zod.pattern=XI,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};}),YP=T("$ZodAny",(e,n)=>{Te.init(e,n),e._zod.parse=r=>r;}),QP=T("$ZodUnknown",(e,n)=>{Te.init(e,n),e._zod.parse=r=>r;}),ek=T("$ZodNever",(e,n)=>{Te.init(e,n),e._zod.parse=(r,o)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r);}),tk=T("$ZodVoid",(e,n)=>{Te.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};}),nk=T("$ZodDate",(e,n)=>{Te.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 aj(e,n,r){e.issues.length&&n.issues.push(...Xn(r,e.issues)),n.value[r]=e.value;}var rk=T("$ZodArray",(e,n)=>{Te.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=>aj(d,r,s))):aj(u,r,s);}return i.length?Promise.all(i).then(()=>r):r};});function lf(e,n,r,o,t,i){let s=r in o;if(e.issues.length){if(t&&i&&!s)return;n.issues.push(...Xn(r,e.issues));}if(!s&&!t){e.issues.length||n.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?s&&(n.value[r]=void 0):n.value[r]=e.value;}function Sj(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=_I(e.shape);return {...e,keys:n,keySet:new Set(n),numKeys:n.length,optionalKeys:new Set(r)}}function Ij(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(h=>lf(h,r,g,n,m,p))):lf(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 Pj=T("$ZodObject",(e,n)=>{if(Te.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=ks(()=>Sj(n));qe(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=Ao,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],h=f._zod.optin==="optional",P=f._zod.optout==="optional",x=f._zod.run({value:d[g],issues:[]},u);x instanceof Promise?m.push(x.then(w=>lf(w,c,g,d,h,P))):lf(x,c,g,d,h,P);}return i?Ij(m,d,c,u,o.value,e):m.length?Promise.all(m).then(()=>c):c};}),ik=T("$ZodObjectJIT",(e,n)=>{Pj.init(e,n);let r=e._zod.parse,o=ks(()=>Sj(n)),t=g=>{let f=new gu(["shape","payload","ctx"]),h=o.value,P=E=>{let I=Mp(E);return `shape[${I}]._zod.run({ value: input[${I}], issues: [] }, ctx)`};f.write("const input = payload.value;");let x=Object.create(null),w=0;for(let E of h.keys)x[E]=`key_${w++}`;f.write("const newResult = {};");for(let E of h.keys){let I=x[E],$=Mp(E),B=g[E],ce=B?._zod?.optin==="optional",me=B?._zod?.optout==="optional";f.write(`const ${I} = ${P(E)};`),ce&&me?f.write(`
|