linkfeed-pro 1.0.7
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/.claude/settings.local.json +9 -0
- package/.output/chrome-mv3/_locales/de/messages.json +214 -0
- package/.output/chrome-mv3/_locales/en/messages.json +214 -0
- package/.output/chrome-mv3/_locales/es/messages.json +214 -0
- package/.output/chrome-mv3/_locales/fr/messages.json +214 -0
- package/.output/chrome-mv3/_locales/hi/messages.json +214 -0
- package/.output/chrome-mv3/_locales/id/messages.json +214 -0
- package/.output/chrome-mv3/_locales/it/messages.json +214 -0
- package/.output/chrome-mv3/_locales/nl/messages.json +214 -0
- package/.output/chrome-mv3/_locales/pl/messages.json +214 -0
- package/.output/chrome-mv3/_locales/pt_BR/messages.json +214 -0
- package/.output/chrome-mv3/_locales/pt_PT/messages.json +214 -0
- package/.output/chrome-mv3/_locales/tr/messages.json +214 -0
- package/.output/chrome-mv3/assets/popup-Z_g1HFs5.css +1 -0
- package/.output/chrome-mv3/background.js +42 -0
- package/.output/chrome-mv3/chunks/popup-IxiPwS1E.js +42 -0
- package/.output/chrome-mv3/content-scripts/content.js +179 -0
- package/.output/chrome-mv3/icon-128.png +0 -0
- package/.output/chrome-mv3/icon-16.png +0 -0
- package/.output/chrome-mv3/icon-48.png +0 -0
- package/.output/chrome-mv3/icon.svg +9 -0
- package/.output/chrome-mv3/manifest.json +1 -0
- package/.output/chrome-mv3/popup.html +247 -0
- package/.wxt/eslint-auto-imports.mjs +56 -0
- package/.wxt/tsconfig.json +28 -0
- package/.wxt/types/globals.d.ts +15 -0
- package/.wxt/types/i18n.d.ts +593 -0
- package/.wxt/types/imports-module.d.ts +20 -0
- package/.wxt/types/imports.d.ts +50 -0
- package/.wxt/types/paths.d.ts +32 -0
- package/.wxt/wxt.d.ts +7 -0
- package/entrypoints/background.ts +112 -0
- package/entrypoints/content.ts +656 -0
- package/entrypoints/popup/main.ts +452 -0
- package/entrypoints/popup/modules/auth-modal.ts +219 -0
- package/entrypoints/popup/modules/settings.ts +78 -0
- package/entrypoints/popup/modules/ui-state.ts +95 -0
- package/entrypoints/popup/style.css +844 -0
- package/entrypoints/popup.html +261 -0
- package/lib/constants.ts +9 -0
- package/lib/device-meta.ts +173 -0
- package/lib/i18n.ts +201 -0
- package/lib/license.ts +470 -0
- package/lib/selectors.ts +24 -0
- package/lib/storage.ts +95 -0
- package/lib/telemetry.ts +94 -0
- package/package.json +30 -0
- package/public/_locales/de/messages.json +214 -0
- package/public/_locales/en/messages.json +214 -0
- package/public/_locales/es/messages.json +214 -0
- package/public/_locales/fr/messages.json +214 -0
- package/public/_locales/hi/messages.json +214 -0
- package/public/_locales/id/messages.json +214 -0
- package/public/_locales/it/messages.json +214 -0
- package/public/_locales/nl/messages.json +214 -0
- package/public/_locales/pl/messages.json +214 -0
- package/public/_locales/pt_BR/messages.json +214 -0
- package/public/_locales/pt_PT/messages.json +214 -0
- package/public/_locales/tr/messages.json +214 -0
- package/public/icon-128.png +0 -0
- package/public/icon-16.png +0 -0
- package/public/icon-48.png +0 -0
- package/public/icon.svg +9 -0
- package/tsconfig.json +3 -0
- package/wxt.config.ts +50 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var background=(function(){"use strict";function Fn(e){return e==null||typeof e=="function"?{main:e}:e}const pe=globalThis.browser?.runtime?.id?globalThis.browser:globalThis.chrome,ne=pe;var ze="0.0.9";function Nn(e){let t=e?.projectPublicKey?.trim(),n=(e?.apiBaseUrl??"https://extension.report/api").replace(/\/+$/,""),r=e.batching?.maxBatchSize??100,o=e.batching?.maxQueueSize??1e3,s=e.batching?.flushAlarmMinutes??10,i=e.remoteConfig?.enabled??!0,a=e.remoteConfig?.refreshMinutes??60;if(!t)throw new Error("[@extension-report/js] projectPublicKey is required");if(!n)throw new Error("[@extension-report/js] apiBaseUrl is invalid");let c=Yn(),l=Xn(c,t),p=null,y=null,b=0,v=null,R=Promise.resolve(),d=[],m=6e4;function h(u){let g=y;if(!g||typeof g!="object")return null;let z=g[u];return typeof z=="number"&&Number.isFinite(z)?z:null}function _(){let u=h("max_batch_size");return typeof u=="number"?Math.max(1,Math.min(200,Math.floor(u))):r}function w(){let u=h("max_queue_size");return typeof u=="number"?Math.max(1,Math.min(5e4,Math.floor(u))):o}function k(){let u=y;return!u||typeof u!="object"?!0:u.enabled!==!1}function Z(){let u=y;return!u||typeof u!="object"?!1:u.debug===!0}function T(...u){Z()&&console.log("[@extension-report/js]",...u)}function J(){let u=y;if(!u||typeof u!="object")return[];let g=u.blocked_types;return Array.isArray(g)?g.filter(z=>typeof z=="string"):[]}function M(u){return J().includes(u)}function W(){let u=y;if(!u||typeof u!="object")return 600;let g=u.max_events_per_minute;return typeof g=="number"&&Number.isFinite(g)?Math.max(1,Math.floor(g)):600}function q(){let u=Date.now(),g=W();return d=d.filter(z=>u-z<m),d.length>=g?(T(`Rate limited: ${d.length}/${g} events in last minute`),!0):(d.push(u),!1)}function Ve(){let u=y;if(!u||typeof u!="object")return null;let g=u.min_sdk_version;return typeof g=="string"&&g.length>0?g:null}function U(){let u=Ve();if(!u)return!0;let g=Y(ze,u)>=0;return g||T(`SDK version ${ze} is below minimum required ${u}`),g}function Y(u,g){let z=ee=>{let te=ee.replace(/^v/,"").split(".").map(Je=>parseInt(Je,10)||0);return[te[0]??0,te[1]??0,te[2]??0]},[E,O,S]=z(u),[I,B,C]=z(g);return E!==I?E>I?1:-1:O!==B?O>B?1:-1:S!==C?S>C?1:-1:0}function Q(u){let g=R.then(u,u);return R=g.then(()=>{},()=>{}),g}function ie(u){return k()?U()?M(u)?(T(`Event type "${u}" is blocked`),!1):!q():!1:(T("SDK disabled via remote config"),!1)}async function be(){return p||(p=(async()=>{let u=await l;i&&await gt().catch(()=>null),await Q(()=>or(c,t));let g=await c.get(wt(t)),z=g?Number(g):0;if(Number.isFinite(z)&&Date.now()<z)return;let E=await Q(async()=>{let C=await Se(c,t);return C.length===0?[]:C.slice(0,_())});if(E.length===0)return;let O=new Set(E.map(C=>C.event_id)),S=await Vn(e),I=v?{...S,screen:{width:v.width,height:v.height,dpr:v.dpr??S.screen.dpr}}:S,B={schema_version:1,project_public_key:t,installation_id:u.installationId,sdk:{name:"@extension-report/js",version:ze},context:I,events:E};try{let C=await fetch(`${n}/v1/events`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(B),keepalive:!0}),ee=await C.text().catch(()=>"");if(!C.ok){let Pc=sr(C,ee);throw await ir(c,t,Pc),new Error(`[@extension-report/js] ingestion failed (${C.status}): ${ee}`)}let te=me(ee),Je=te&&typeof te.uninstall_token=="string"?te.uninstall_token:null;Je&&await c.set(We(t),Je),await c.set(Be(t),"0")}catch(C){throw C}await Q(async()=>{let C=await Se(c,t);if(C.length===0)return;let ee=C.filter(te=>!O.has(te.event_id));await qe(c,t,ee)})})().finally(()=>{p=null}),p)}async function L(u,g,z){if(!u||typeof u!="string")throw new Error("[@extension-report/js] track(type) requires a non-empty string");if(!ie(u)){T(`Dropping event "${u}" due to remote config guards`);return}T(`Tracking event: ${u}`,g),await Q(async()=>{let E=await Se(c,t);E.push({event_id:Ke(),type:u,ts:Date.now(),payload:g}),await qe(c,t,tr(E,w()))}),(z?.flush??!0)&&await be()}async function ue(u){let g=await l,z=await c.get(We(t));if(!z)throw new Error("[@extension-report/js] uninstall token not available yet (send at least one event first)");let E=n.replace(/\/api$/,""),O=new URL(`${E}/u`);return O.searchParams.set("pk",t),O.searchParams.set("ins",g.installationId),O.searchParams.set("t",z),u?.appVersion&&O.searchParams.set("v",u.appVersion),typeof u?.lastSeenAtMs=="number"&&O.searchParams.set("ls",String(u.lastSeenAtMs)),O.toString()}async function ke(){return c.get(We(t))}async function Mn(u){let g=ge();if(!g?.setUninstallURL)return;let z=await ue(u);await new Promise((E,O)=>{g.setUninstallURL(z,()=>{let S=g.lastError;if(S){O(new Error(S.message));return}E()})})}async function Un(u=Date.now(),g){let z=await c.get(yt(t)),E=z?Number(z):0;return Number.isFinite(E)&&u-E<864e5?!1:(await L("heartbeat",{kind:"daily",...g},{flush:!0}),await c.set(yt(t),String(u)),!0)}async function wc(u){let g=ge();if(!g?.onInstalled)return;g.onInstalled.addListener(E=>{(async()=>{let O=g.getManifest?g.getManifest():null,S=e.app?.version??O?.version??null,I=E?.reason??null;await L(I==="update"||I==="chrome_update"||I==="shared_module_update"?"update":"install",{reason:I,previous_version:E?.previousVersion??null,version:S});try{await Mn({appVersion:S??void 0,lastSeenAtMs:Date.now()})}catch{}})()});let z=nr();if(z?.create&&z?.onAlarm){let E=await gt().catch(()=>null),O=typeof E?.heartbeat_period_minutes=="number"?E.heartbeat_period_minutes:null,S=typeof E?.flush_alarm_minutes=="number"?E.flush_alarm_minutes:null,I=u?.heartbeatPeriodMinutes??O??60,B=S??s;z.create(bt(t),{periodInMinutes:I}),z.create(kt(t),{periodInMinutes:B}),z.onAlarm.addListener(C=>{(async()=>{if(C?.name===bt(t)){let ee=u?.getDailyPayload?await u.getDailyPayload().catch(()=>({})):{};await Un(Date.now(),ee);return}C?.name===kt(t)&&await be().catch(()=>{})})()})}}async function G(u,g=1){if(!u||typeof u!="string")return;let z=$t(Date.now()),E=await c.get($e(t)),O=E?me(E):null,S=O&&typeof O=="object"?{day:typeof O.day=="string"?O.day:z,counters:typeof O.counters=="object"&&O.counters?O.counters:{}}:{day:z,counters:{}};S.day!==z&&(S.day=z,S.counters={});let I=Number(S.counters[u]??0),B=(Number.isFinite(I)?I:0)+g;S.counters[u]=B,await c.set($e(t),JSON.stringify(S))}async function vc(u,g){await L("ui_open",{surface:u,entrypoint:g??null}),await G(`ui_open:${u}`,1)}async function bc(u,g){await L("ui_close",{surface:u,duration_ms:g})}async function kc(u,g,z){await L("ui_action",{surface:u,action:g,value:z??null}),await G(`ui_action:${u}:${g}`,1)}async function zc(u){await L("cs_injected",{frame:u?.frame??"top",host_hash:u?.hostHash??null,match:u?.match??null}),await G("cs_injected",1)}async function $c(u,g){await L("cs_action",{action:u,host_hash:g?.hostHash??null,count:g?.count??null}),await G(`cs_action:${u}`,g?.count??1)}async function Sc(u,g){let z=g instanceof Error?g:new Error(typeof g=="string"?g:"Unknown error");await L("error",{where:u,name:z.name,message:z.message}),await G(`error:${u}:${z.name}`,1)}async function gt(u=!1){if(!i)return null;let g=Date.now(),z=a*60*1e3;if(!u&&y&&g-b<z)return y;let E=new URL(`${n}/v1/config`);E.searchParams.set("pk",t);try{let O=await fetch(E.toString(),{method:"GET",keepalive:!0});if(!O.ok)return T(`Remote config fetch failed: ${O.status}`),y;let S=await O.json().catch(()=>null),I=S?.config&&typeof S.config=="object"?S.config:null;return I&&(y=I,b=g,T("Remote config loaded:",{enabled:I.enabled,max_events_per_minute:I.max_events_per_minute,blocked_types:I.blocked_types,debug:I.debug,min_sdk_version:I.min_sdk_version})),y}catch(O){return T("Remote config fetch error:",O),y}}function Ec(){return ze}function Ln(u){let g=y,z=g&&typeof g.sampling=="object"?g.sampling:null,E=z&&typeof z[u]=="number"?z[u]:1;return E>=1?!0:E<=0?!1:Math.random()<E}async function Oc(u){if(!Ln("bg_wake")){await G(`bg_wake:${u}`,1);return}await L("bg_wake",{reason:u}),await G(`bg_wake:${u}`,1)}async function _t(u){if(!Ln("api_call")){await G(`api_call:${u.method}:${u.route}:${u.status}`,1);return}await L("api_call",{route:u.route,method:u.method,status:u.status,latency_ms:u.latencyMs,ok:u.ok,retry_count:u.retryCount??null}),await G(`api_call:${u.method}:${u.route}:${u.status}`,1)}function Zc(u){return(async(...g)=>{let z=Date.now(),E="GET",O="unknown";try{let S=g[0],I=g[1];I?.method&&typeof I.method=="string"&&(E=I.method.toUpperCase()),typeof S=="string"?O=St(S):S&&typeof S?.url=="string"&&(O=St(S.url))}catch{}try{let S=await u(...g),I=Date.now()-z,B=typeof S?.status=="number"?S.status:0,C=typeof S?.ok=="boolean"?S.ok:B>=200&&B<300;return _t({route:O,method:E,status:B,latencyMs:I,ok:C}).catch(()=>null),S}catch(S){let I=Date.now()-z;throw _t({route:O,method:E,status:0,latencyMs:I,ok:!1}).catch(()=>null),S}})}function Ic(u){v={width:u.width,height:u.height,dpr:u.dpr},c.set(zt(t),JSON.stringify(v))}return c.get(zt(t)).then(u=>{if(u)try{let g=JSON.parse(u);g&&typeof g.width=="number"&&typeof g.height=="number"&&(v=g)}catch{}}),{getInstallationId:async()=>(await l).installationId,track:L,flush:be,getUninstallToken:ke,ensureUninstallUrl:Mn,buildUninstallUrl:ue,sendHeartbeatIfDue:Un,registerExtensionLifecycle:wc,incrementCounter:G,trackUiOpen:vc,trackUiClose:bc,trackUiAction:kc,trackCsInjected:zc,trackCsAction:$c,trackError:Sc,loadRemoteConfig:gt,trackBgWake:Oc,trackApiCall:_t,instrumentFetch:Zc,setScreen:Ic,getSdkVersion:Ec}}async function Vn(e){let t=N(()=>navigator.language)??null,n=new Date().getTimezoneOffset(),r=N(()=>navigator.userAgent)??null,o=N(()=>ge()?.getManifest?.()),s=typeof o?.manifest_version=="number"?o.manifest_version:null,i=typeof o?.version=="string"?o.version:null,a=!!ge(),c=Jn(r),l=await Wn(r,c),p=typeof navigator<"u"?navigator:null,y=p?.connection;return{locale:t,timezone_offset_min:n,platform:{os:Gn(r),arch:N(()=>navigator.userAgentData?.platform)??null},browser:{name:c,version:l,user_agent:r},screen:{width:N(()=>screen.width)??null,height:N(()=>screen.height)??null,dpr:N(()=>devicePixelRatio)??null},app:{type:e.app?.type??(a?"extension":"app"),version:e.app?.version??i,manifest_version:e.app?.manifestVersion??s},device:{languages:N(()=>[...navigator.languages])??null,theme:N(()=>matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")??null,online:N(()=>navigator.onLine)??null,connection_type:N(()=>y?.effectiveType)??null,cpu_cores:N(()=>navigator.hardwareConcurrency)??null,device_memory:N(()=>p?.deviceMemory)??null,touch:N(()=>"ontouchstart"in globalThis||navigator.maxTouchPoints>0)??null}}}function Jn(e){if(!e)return null;let t=e.toLowerCase();return t.includes("firefox/")?"firefox":t.includes("edg/")?"edge":t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("chromium/")?"safari":t.includes("chrome/")||t.includes("chromium/")?"chrome":null}function Kn(e){if(!e)return null;let t=[/chrome\/(\d+(?:\.\d+)*)/i,/firefox\/(\d+(?:\.\d+)*)/i,/version\/(\d+(?:\.\d+)*)/i,/edg\/(\d+(?:\.\d+)*)/i];for(let n of t){let r=e.match(n);if(r?.[1])return r[1]}return null}async function Wn(e,t){let n=Kn(e);return await Bn(t)||(await Hn()??n)}async function Bn(e){let t=N(()=>navigator.userAgentData);if(!t?.getHighEntropyValues)return null;try{let n=await t.getHighEntropyValues(["uaFullVersion","fullVersionList"]);if(typeof n?.uaFullVersion=="string"&&n.uaFullVersion.length>0)return n.uaFullVersion;if(Array.isArray(n?.fullVersionList))return qn(n.fullVersionList,e)}catch{return null}return null}function qn(e,t){let n=e.map(o=>({brand:typeof o.brand=="string"?o.brand:"",version:typeof o.version=="string"?o.version:""})).filter(o=>o.brand&&o.version);if(n.length===0)return null;let r=t?{chrome:["google chrome","chromium"],edge:["microsoft edge","microsoft edge (chromium)"],firefox:["firefox"],safari:["safari"]}[t]:void 0;if(r){let o=n.find(s=>r.includes(s.brand.toLowerCase()));if(o)return o.version}return n.find(o=>!/not.?a.?brand/i.test(o.brand))?.version??null}async function Hn(){let e=ge();if(!e?.getBrowserInfo)return null;try{let t=await e.getBrowserInfo();return typeof t?.version=="string"?t.version:null}catch{return null}}function Gn(e){return e?/Windows/i.test(e)?"windows":/Mac OS X|macOS/i.test(e)?"macos":/CrOS/i.test(e)?"chromeos":/Android/i.test(e)?"android":/iOS|iPhone|iPad/i.test(e)?"ios":/Linux/i.test(e)?"linux":null:null}async function Xn(e,t){let n=Qn(t),r=await e.get(n);if(r)return{installationId:r};let o=Ke();return await e.set(n,o),{installationId:o}}function Yn(){let e=rr();return e?.get&&e?.set?{get:t=>e.get(t),set:(t,n)=>e.set(t,n)}:{get:async t=>{try{return globalThis.localStorage?.getItem(t)??null}catch{return null}},set:async(t,n)=>{try{globalThis.localStorage?.setItem(t,n)}catch{}}}}function Ke(){let e=globalThis.crypto;return e?.randomUUID?e.randomUUID():`id_${Math.random().toString(16).slice(2)}_${Date.now()}`}function N(e){try{return e()}catch{return null}}function me(e){try{return JSON.parse(e)}catch{return null}}function Qn(e){return`er_installation_id:${e}`}function We(e){return`er_uninstall_token:${e}`}function yt(e){return`er_last_hb:${e}`}function wt(e){return`er_backoff_until:${e}`}function Be(e){return`er_retry_count:${e}`}function vt(e){return`er_queue:${e}`}function bt(e){return`er_hb:${e}`}function kt(e){return`er_flush:${e}`}function $e(e){return`er_counters:${e}`}function zt(e){return`er_screen:${e}`}async function Se(e,t){let n=await e.get(vt(t));if(!n)return[];let r=me(n);return Array.isArray(r)?r.filter(er):[]}async function qe(e,t,n){await e.set(vt(t),JSON.stringify(n))}function er(e){return e&&typeof e=="object"&&typeof e.event_id=="string"&&typeof e.type=="string"&&typeof e.ts=="number"}function tr(e,t){return e.length<=t?e:e.slice(e.length-t)}function ge(){return globalThis.chrome?.runtime??globalThis.browser?.runtime??null}function nr(){return globalThis.chrome?.alarms??globalThis.browser?.alarms??null}function rr(){let e=globalThis.chrome?.storage?.local??globalThis.browser?.storage?.local??null;return e?{get:t=>new Promise(n=>{e.get([t],r=>{if(globalThis.chrome?.runtime?.lastError??globalThis.browser?.runtime?.lastError){n(null);return}n(typeof r?.[t]=="string"?r[t]:null)})}),set:(t,n)=>new Promise(r=>{e.set({[t]:n},()=>{r()})})}:null}function $t(e){return new Date(e).toISOString().slice(0,10)}async function or(e,t){let n=await e.get($e(t));if(!n)return;let r=me(n);if(!r||typeof r!="object")return;let o=typeof r.day=="string"?r.day:null,s=r.counters&&typeof r.counters=="object"?r.counters:null;if(!o||!s||Object.keys(s).length===0)return;let i=$t(Date.now());if(o===i)return;let a=await Se(e,t);a.push({event_id:Ke(),type:"usage_agg_daily",ts:Date.now(),payload:{day:o,counters:s}}),await qe(e,t,a),await e.set($e(t),JSON.stringify({day:i,counters:{}}))}async function ir(e,t,n){let r=await e.get(Be(t)),o=r?Number(r):0,s=Number.isFinite(o)?o+1:1,i=Math.min(600*1e3,1e3*2**Math.min(10,s)),a=Math.floor(Math.random()*500),c=Math.min(600*1e3,i+a),l=typeof n=="number"&&n>0?Math.max(n,c):c;await e.set(Be(t),String(s)),await e.set(wt(t),String(Date.now()+l))}function sr(e,t){let n=e.headers.get("retry-after");if(n){let s=Number(n);if(Number.isFinite(s)&&s>0)return Math.ceil(s*1e3)}let r=me(t),o=r&&typeof r.retry_after_ms=="number"?r.retry_after_ms:null;return typeof o=="number"&&Number.isFinite(o)&&o>0?o:null}function St(e){try{return new URL(e,"http://localhost").pathname}catch{return e.split("?")[0]??e}}var Et=Object.prototype.hasOwnProperty;function He(e,t){var n,r;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&He(e[r],t[r]););return r===-1}if(!n||typeof e=="object"){r=0;for(n in e)if(Et.call(e,n)&&++r&&!Et.call(t,n)||!(n in t)||!He(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}const ar=new Error("request for lock canceled");var cr=function(e,t,n,r){function o(s){return s instanceof n?s:new n(function(i){i(s)})}return new(n||(n=Promise))(function(s,i){function a(p){try{l(r.next(p))}catch(y){i(y)}}function c(p){try{l(r.throw(p))}catch(y){i(y)}}function l(p){p.done?s(p.value):o(p.value).then(a,c)}l((r=r.apply(e,t||[])).next())})};class ur{constructor(t,n=ar){this._value=t,this._cancelError=n,this._queue=[],this._weightedWaiters=[]}acquire(t=1,n=0){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);return new Promise((r,o)=>{const s={resolve:r,reject:o,weight:t,priority:n},i=Ot(this._queue,a=>n<=a.priority);i===-1&&t<=this._value?this._dispatchItem(s):this._queue.splice(i+1,0,s)})}runExclusive(t){return cr(this,arguments,void 0,function*(n,r=1,o=0){const[s,i]=yield this.acquire(r,o);try{return yield n(s)}finally{i()}})}waitForUnlock(t=1,n=0){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);return this._couldLockImmediately(t,n)?Promise.resolve():new Promise(r=>{this._weightedWaiters[t-1]||(this._weightedWaiters[t-1]=[]),lr(this._weightedWaiters[t-1],{resolve:r,priority:n})})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(t){this._value=t,this._dispatchQueue()}release(t=1){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);this._value+=t,this._dispatchQueue()}cancel(){this._queue.forEach(t=>t.reject(this._cancelError)),this._queue=[]}_dispatchQueue(){for(this._drainUnlockWaiters();this._queue.length>0&&this._queue[0].weight<=this._value;)this._dispatchItem(this._queue.shift()),this._drainUnlockWaiters()}_dispatchItem(t){const n=this._value;this._value-=t.weight,t.resolve([n,this._newReleaser(t.weight)])}_newReleaser(t){let n=!1;return()=>{n||(n=!0,this.release(t))}}_drainUnlockWaiters(){if(this._queue.length===0)for(let t=this._value;t>0;t--){const n=this._weightedWaiters[t-1];n&&(n.forEach(r=>r.resolve()),this._weightedWaiters[t-1]=[])}else{const t=this._queue[0].priority;for(let n=this._value;n>0;n--){const r=this._weightedWaiters[n-1];if(!r)continue;const o=r.findIndex(s=>s.priority<=t);(o===-1?r:r.splice(0,o)).forEach((s=>s.resolve()))}}}_couldLockImmediately(t,n){return(this._queue.length===0||this._queue[0].priority<n)&&t<=this._value}}function lr(e,t){const n=Ot(e,r=>t.priority<=r.priority);e.splice(n+1,0,t)}function Ot(e,t){for(let n=e.length-1;n>=0;n--)if(t(e[n]))return n;return-1}var fr=function(e,t,n,r){function o(s){return s instanceof n?s:new n(function(i){i(s)})}return new(n||(n=Promise))(function(s,i){function a(p){try{l(r.next(p))}catch(y){i(y)}}function c(p){try{l(r.throw(p))}catch(y){i(y)}}function l(p){p.done?s(p.value):o(p.value).then(a,c)}l((r=r.apply(e,t||[])).next())})};class dr{constructor(t){this._semaphore=new ur(1,t)}acquire(){return fr(this,arguments,void 0,function*(t=0){const[,n]=yield this._semaphore.acquire(1,t);return n})}runExclusive(t,n=0){return this._semaphore.runExclusive(()=>t(),1,n)}isLocked(){return this._semaphore.isLocked()}waitForUnlock(t=0){return this._semaphore.waitForUnlock(1,t)}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}}const X=hr();function hr(){const e={local:Ee("local"),session:Ee("session"),sync:Ee("sync"),managed:Ee("managed")},t=d=>{const m=e[d];if(m==null){const h=Object.keys(e).join(", ");throw Error(`Invalid area "${d}". Options: ${h}`)}return m},n=d=>{const m=d.indexOf(":"),h=d.substring(0,m),_=d.substring(m+1);if(_==null)throw Error(`Storage key should be in the form of "area:key", but received "${d}"`);return{driverArea:h,driverKey:_,driver:t(h)}},r=d=>d+"$",o=(d,m)=>{const h={...d};return Object.entries(m).forEach(([_,w])=>{w==null?delete h[_]:h[_]=w}),h},s=(d,m)=>d??m??null,i=d=>typeof d=="object"&&!Array.isArray(d)?d:{},a=async(d,m,h)=>{const _=await d.getItem(m);return s(_,h?.fallback??h?.defaultValue)},c=async(d,m)=>{const h=r(m),_=await d.getItem(h);return i(_)},l=async(d,m,h)=>{await d.setItem(m,h??null)},p=async(d,m,h)=>{const _=r(m),w=i(await d.getItem(_));await d.setItem(_,o(w,h))},y=async(d,m,h)=>{if(await d.removeItem(m),h?.removeMeta){const _=r(m);await d.removeItem(_)}},b=async(d,m,h)=>{const _=r(m);if(h==null)await d.removeItem(_);else{const w=i(await d.getItem(_));[h].flat().forEach(k=>delete w[k]),await d.setItem(_,w)}},v=(d,m,h)=>d.watch(m,h);return{getItem:async(d,m)=>{const{driver:h,driverKey:_}=n(d);return await a(h,_,m)},getItems:async d=>{const m=new Map,h=new Map,_=[];d.forEach(k=>{let Z,T;typeof k=="string"?Z=k:"getValue"in k?(Z=k.key,T={fallback:k.fallback}):(Z=k.key,T=k.options),_.push(Z);const{driverArea:J,driverKey:M}=n(Z),W=m.get(J)??[];m.set(J,W.concat(M)),h.set(Z,T)});const w=new Map;return await Promise.all(Array.from(m.entries()).map(async([k,Z])=>{(await e[k].getItems(Z)).forEach(J=>{const M=`${k}:${J.key}`,W=h.get(M),q=s(J.value,W?.fallback??W?.defaultValue);w.set(M,q)})})),_.map(k=>({key:k,value:w.get(k)}))},getMeta:async d=>{const{driver:m,driverKey:h}=n(d);return await c(m,h)},getMetas:async d=>{const m=d.map(w=>{const k=typeof w=="string"?w:w.key,{driverArea:Z,driverKey:T}=n(k);return{key:k,driverArea:Z,driverKey:T,driverMetaKey:r(T)}}),h=m.reduce((w,k)=>(w[k.driverArea]??=[],w[k.driverArea].push(k),w),{}),_={};return await Promise.all(Object.entries(h).map(async([w,k])=>{const Z=await pe.storage[w].get(k.map(T=>T.driverMetaKey));k.forEach(T=>{_[T.key]=Z[T.driverMetaKey]??{}})})),m.map(w=>({key:w.key,meta:_[w.key]}))},setItem:async(d,m)=>{const{driver:h,driverKey:_}=n(d);await l(h,_,m)},setItems:async d=>{const m={};d.forEach(h=>{const{driverArea:_,driverKey:w}=n("key"in h?h.key:h.item.key);m[_]??=[],m[_].push({key:w,value:h.value})}),await Promise.all(Object.entries(m).map(async([h,_])=>{await t(h).setItems(_)}))},setMeta:async(d,m)=>{const{driver:h,driverKey:_}=n(d);await p(h,_,m)},setMetas:async d=>{const m={};d.forEach(h=>{const{driverArea:_,driverKey:w}=n("key"in h?h.key:h.item.key);m[_]??=[],m[_].push({key:w,properties:h.meta})}),await Promise.all(Object.entries(m).map(async([h,_])=>{const w=t(h),k=_.map(({key:M})=>r(M)),Z=await w.getItems(k),T=Object.fromEntries(Z.map(({key:M,value:W})=>[M,i(W)])),J=_.map(({key:M,properties:W})=>{const q=r(M);return{key:q,value:o(T[q]??{},W)}});await w.setItems(J)}))},removeItem:async(d,m)=>{const{driver:h,driverKey:_}=n(d);await y(h,_,m)},removeItems:async d=>{const m={};d.forEach(h=>{let _,w;typeof h=="string"?_=h:"getValue"in h?_=h.key:"item"in h?(_=h.item.key,w=h.options):(_=h.key,w=h.options);const{driverArea:k,driverKey:Z}=n(_);m[k]??=[],m[k].push(Z),w?.removeMeta&&m[k].push(r(Z))}),await Promise.all(Object.entries(m).map(async([h,_])=>{await t(h).removeItems(_)}))},clear:async d=>{await t(d).clear()},removeMeta:async(d,m)=>{const{driver:h,driverKey:_}=n(d);await b(h,_,m)},snapshot:async(d,m)=>{const _=await t(d).snapshot();return m?.excludeKeys?.forEach(w=>{delete _[w],delete _[r(w)]}),_},restoreSnapshot:async(d,m)=>{await t(d).restoreSnapshot(m)},watch:(d,m)=>{const{driver:h,driverKey:_}=n(d);return v(h,_,m)},unwatch(){Object.values(e).forEach(d=>{d.unwatch()})},defineItem:(d,m)=>{const{driver:h,driverKey:_}=n(d),{version:w=1,migrations:k={},onMigrationComplete:Z,debug:T=!1}=m??{};if(w<1)throw Error("Storage item version cannot be less than 1. Initial versions should be set to 1, not 0.");const J=async()=>{const U=r(_),[{value:Y},{value:Q}]=await h.getItems([_,U]);if(Y==null)return;const ie=Q?.v??1;if(ie>w)throw Error(`Version downgrade detected (v${ie} -> v${w}) for "${d}"`);if(ie===w)return;T===!0&&console.debug(`[@wxt-dev/storage] Running storage migration for ${d}: v${ie} -> v${w}`);const be=Array.from({length:w-ie},(ue,ke)=>ie+ke+1);let L=Y;for(const ue of be)try{L=await k?.[ue]?.(L)??L,T===!0&&console.debug(`[@wxt-dev/storage] Storage migration processed for version: v${ue}`)}catch(ke){throw new pr(d,ue,{cause:ke})}await h.setItems([{key:_,value:L},{key:U,value:{...Q,v:w}}]),T===!0&&console.debug(`[@wxt-dev/storage] Storage migration completed for ${d} v${w}`,{migratedValue:L}),Z?.(L,w)},M=m?.migrations==null?Promise.resolve():J().catch(U=>{console.error(`[@wxt-dev/storage] Migration failed for ${d}`,U)}),W=new dr,q=()=>m?.fallback??m?.defaultValue??null,Ve=()=>W.runExclusive(async()=>{const U=await h.getItem(_);if(U!=null||m?.init==null)return U;const Y=await m.init();return await h.setItem(_,Y),Y});return M.then(Ve),{key:d,get defaultValue(){return q()},get fallback(){return q()},getValue:async()=>(await M,m?.init?await Ve():await a(h,_,m)),getMeta:async()=>(await M,await c(h,_)),setValue:async U=>(await M,await l(h,_,U)),setMeta:async U=>(await M,await p(h,_,U)),removeValue:async U=>(await M,await y(h,_,U)),removeMeta:async U=>(await M,await b(h,_,U)),watch:U=>v(h,_,(Y,Q)=>U(Y??q(),Q??q())),migrate:J}}}}function Ee(e){const t=()=>{if(pe.runtime==null)throw Error(["'wxt/storage' must be loaded in a web extension environment",`
|
|
2
|
+
- If thrown during a build, see https://github.com/wxt-dev/wxt/issues/371`,` - If thrown during tests, mock 'wxt/browser' correctly. See https://wxt.dev/guide/go-further/testing.html
|
|
3
|
+
`].join(`
|
|
4
|
+
`));if(pe.storage==null)throw Error("You must add the 'storage' permission to your manifest to use 'wxt/storage'");const r=pe.storage[e];if(r==null)throw Error(`"browser.storage.${e}" is undefined`);return r},n=new Set;return{getItem:async r=>(await t().get(r))[r],getItems:async r=>{const o=await t().get(r);return r.map(s=>({key:s,value:o[s]??null}))},setItem:async(r,o)=>{o==null?await t().remove(r):await t().set({[r]:o})},setItems:async r=>{const o=r.reduce((s,{key:i,value:a})=>(s[i]=a,s),{});await t().set(o)},removeItem:async r=>{await t().remove(r)},removeItems:async r=>{await t().remove(r)},clear:async()=>{await t().clear()},snapshot:async()=>await t().get(),restoreSnapshot:async r=>{await t().set(r)},watch(r,o){const s=i=>{const a=i[r];a!=null&&(He(a.newValue,a.oldValue)||o(a.newValue??null,a.oldValue??null))};return t().onChanged.addListener(s),n.add(s),()=>{t().onChanged.removeListener(s),n.delete(s)}},unwatch(){n.forEach(r=>{t().onChanged.removeListener(r)}),n.clear()}}}class pr extends Error{constructor(t,n,r){super(`v${n} migration failed for "${t}"`,r),this.key=t,this.version=n}}const mr={globalEnabled:!0,hideSidebars:!0,hidePromoted:!1,feedWidth:1500,feedSpacing:40,autoExpandPosts:!0,hideRemovedFeedCards:!0,hideStartPost:!1,hideMessenger:!1,hideNavBar:!1,fontSize:20},gr=X.defineItem("local:settings",{fallback:mr}),_r=X.defineItem("local:deviceId",{init:()=>crypto.randomUUID()}),Ge=X.defineItem("local:userEmail",{fallback:null}),Oe=X.defineItem("local:licenseState",{fallback:null}),Zt=X.defineItem("local:deviceToken",{fallback:null}),It=X.defineItem("local:licenseRefresh",{fallback:{failureCount:0,retryAfter:0}}),Pt=X.defineItem("local:telemetry:identitySent",{fallback:{email:null,status:null}});X.defineItem("local:pendingTrial",{fallback:null});const yr=X.defineItem("local:uiLocalePreference",{fallback:"auto"}),Xe=Nn({projectPublicKey:"pk_er_80fa598197dccecd7219fa262c47e6219005",app:{type:"extension"}});async function Tt(e=!1){try{const t=await Ge.getValue(),n=await Oe.getValue();let r="free";n?.status==="active"?r="pro":n?.status==="trial-active"?r="trial":n?.status==="trial-expired"&&(r="expired");const o={email:t,status:r},s=await Pt.getValue(),i=o.email!==s.email||o.status!==s.status;if(!o.email)return;(i||e)&&(await Xe.track("user_identify",{user_id:o.email,email:o.email,status:o.status,traits:{license_status:o.status}}),await Pt.setValue(o))}catch(t){console.warn("[Telemetry] Failed to sync identity",t)}}async function wr(){try{const e=await gr.getValue(),t=await Ge.getValue(),n=await Oe.getValue();let r="free";return n?.status==="active"?r="pro":n?.status==="trial-active"?r="trial":n?.status==="trial-expired"&&(r="expired"),{settings:{hideSidebars:!!(e.hideSidebars??e.removeSidebars),hidePromoted:!!e.hidePromoted,hideStartPost:!!e.hideStartPost,hideMessenger:!!e.hideMessenger,autoExpandPosts:!!e.autoExpandPosts,textSize:Number(e.fontSize||16),feedWidth:Number(e.feedWidth||800),feedSpacing:Number(e.feedSpacing||24)},user:{email:t,status:r}}}catch(e){return console.warn("[Telemetry] Failed to get daily payload",e),{}}}const vr=72,Ye="https://linkfeed.pro",jt=["Microsoft Edge","Brave","Google Chrome","Chrome","Chromium"];function br(e){return/microsoft edge/i.test(e)?"Edge":/brave/i.test(e)?"Brave":/google chrome/i.test(e)||/chromium/i.test(e)||/chrome/i.test(e)?"Chrome":/firefox/i.test(e)?"Firefox":/safari/i.test(e)?"Safari":e}function le(e){return e&&e.split(".")[0]||void 0}function kr(e){if(!e?.length)return{};const t=e.filter(o=>!/not.?a.?brand/i.test(o.brand));if(!t.length)return{};const r=[...t].sort((o,s)=>{const i=jt.findIndex(c=>c.toLowerCase()===o.brand.toLowerCase()),a=jt.findIndex(c=>c.toLowerCase()===s.brand.toLowerCase());return(i===-1?999:i)-(a===-1?999:a)})[0];return r?{name:br(r.brand),version:le(r.version)}:{}}function zr(e){const t=e.match(/Edg\/([\d.]+)/);if(t)return{name:"Edge",version:le(t[1])};const n=e.match(/Chrome\/([\d.]+)/);if(n)return{name:"Chrome",version:le(n[1])};const r=e.match(/Firefox\/([\d.]+)/);if(r)return{name:"Firefox",version:le(r[1])};const o=e.match(/Version\/([\d.]+).*Safari/);return o?{name:"Safari",version:le(o[1])}:{}}function $r(e){return/iPad/i.test(e)?{name:"iOS",device:"iPad"}:/iPhone/i.test(e)?{name:"iOS",device:"iPhone"}:/Android/i.test(e)?{name:"Android"}:/Mac OS X|Macintosh/i.test(e)?{name:"macOS"}:/Windows NT/i.test(e)?{name:"Windows"}:/CrOS/i.test(e)?{name:"ChromeOS"}:/Linux/i.test(e)?{name:"Linux"}:{}}function Sr(e){if(e)return/mac/i.test(e)?"macOS":/windows/i.test(e)?"Windows":/android/i.test(e)?"Android":/ios/i.test(e)?"iOS":/linux/i.test(e)?"Linux":/chrome os/i.test(e)?"ChromeOS":e}function Er(e,t){const n=le(t);if(n)return e==="Windows"?n==="15"?"11":n==="10"?"10":n:n}function Or(e,t){if(t)return t;if(e)return e==="macOS"?"Mac":e==="Windows"?"Windows PC":e==="Linux"?"Linux PC":e==="ChromeOS"?"Chromebook":e==="Android"?"Android":e==="iOS"?"iPhone":e}async function At(){if(typeof navigator>"u")return null;const e=navigator.userAgent||"",t=navigator.userAgentData;let n=t?.platform,r,o;if(t?.getHighEntropyValues)try{const d=await t.getHighEntropyValues(["platform","platformVersion","fullVersionList"]);n=d.platform||n,r=d.platformVersion,o=d.fullVersionList}catch{}const s=$r(e),i=Sr(n||s.name),a=Er(i,r),c=kr(o||t?.brands),l=zr(e),p=c.name||l.name,y=c.version||l.version,v={label:Or(i,s.device),osName:i,osVersion:a,browserName:p,browserVersion:y};return Object.values(v).some(d=>!!d)?v:null}const Zr=["en","fr","de","es","pt-pt","pt-br","it","nl","pl","tr","id","hi"],_e="en",Ct=new Set(Zr);let Dt=!1,Ze=null,Qe=_e,xt={},et={};function Rt(e){if(!e)return null;const t=e.trim().toLowerCase();if(!t)return null;const n=t.replace(/_/g,"-");if(Ct.has(n))return n;const r=n.split("-")[0];return r==="pt"?"pt-pt":r&&Ct.has(r)?r:null}async function Mt(e){try{const t=e==="pt-br"?"pt_BR":e==="pt-pt"?"pt_PT":e,n=ne.runtime.getURL(`/_locales/${t}/messages.json`),r=await fetch(n);return r.ok?await r.json()??{}:{}}catch{return{}}}function Ir(e,t){return e}function Pr(){const e=ne.i18n.getUILanguage?.();return Rt(e)??_e}async function Tr(){const e=await yr.getValue();return e&&e!=="auto"?Rt(e)??_e:Pr()}async function jr(){et=await Mt(_e),Qe=await Tr(),xt=Qe===_e?et:await Mt(Qe),Dt=!0}async function Ar(){Dt||(Ze||(Ze=jr().finally(()=>{Ze=null})),await Ze)}function tt(e,t){const n=xt[e]?.message??et[e]?.message??ne.i18n.getMessage(e,Array.isArray(t)?t.map(r=>String(r)):void 0);return n?Ir(n):e}function f(e,t,n){function r(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:i,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);const l=i.prototype,p=Object.keys(l);for(let y=0;y<p.length;y++){const b=p[y];b in a||(a[b]=l[b].bind(a))}}const o=n?.Parent??Object;class s extends o{}Object.defineProperty(s,"name",{value:e});function i(a){var c;const l=n?.Parent?new s:this;r(l,a),(c=l._zod).deferred??(c.deferred=[]);for(const p of l._zod.deferred)p();return l}return Object.defineProperty(i,"init",{value:r}),Object.defineProperty(i,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}class fe extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Ut extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const Lt={};function se(e){return Lt}function Ft(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,o])=>t.indexOf(+r)===-1).map(([r,o])=>o)}function nt(e,t){return typeof t=="bigint"?t.toString():t}function rt(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function ot(e){return e==null}function it(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}const Nt=Symbol("evaluating");function P(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Nt)return r===void 0&&(r=Nt,r=n()),r},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function ae(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function re(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function Vt(e){return JSON.stringify(e)}function Cr(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const Jt="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Ie(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const Dr=rt(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function ye(e){if(Ie(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(Ie(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function Kt(e){return ye(e)?{...e}:Array.isArray(e)?[...e]:e}const xr=new Set(["string","number","symbol"]);function Pe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function oe(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function $(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Rr(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Mr(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const s=re(e._zod.def,{get shape(){const i={};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(i[a]=n.shape[a])}return ae(this,"shape",i),i},checks:[]});return oe(e,s)}function Ur(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const s=re(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete i[a]}return ae(this,"shape",i),i},checks:[]});return oe(e,s)}function Lr(e,t){if(!ye(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const s=e._zod.def.shape;for(const i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=re(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return ae(this,"shape",s),s}});return oe(e,o)}function Fr(e,t){if(!ye(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n=re(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return ae(this,"shape",r),r}});return oe(e,n)}function Nr(e,t){const n=re(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return ae(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return oe(e,n)}function Vr(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const i=re(t._zod.def,{get shape(){const a=t._zod.def.shape,c={...a};if(n)for(const l in n){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);n[l]&&(c[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(const l in a)c[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return ae(this,"shape",c),c},checks:[]});return oe(t,i)}function Jr(e,t,n){const r=re(t._zod.def,{get shape(){const o=t._zod.def.shape,s={...o};if(n)for(const i in n){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);n[i]&&(s[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(const i in o)s[i]=new e({type:"nonoptional",innerType:o[i]});return ae(this,"shape",s),s}});return oe(t,r)}function de(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function Wt(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Te(e){return typeof e=="string"?e:e?.message}function ce(e,t,n){const r={...e,path:e.path??[]};if(!e.message){const o=Te(e.inst?._zod.def?.error?.(e))??Te(t?.error?.(e))??Te(n.customError?.(e))??Te(n.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function st(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function we(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}const Bt=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,nt,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},qt=f("$ZodError",Bt),Ht=f("$ZodError",Bt,{Parent:Error});function Kr(e,t=n=>n.message){const n={},r=[];for(const o of e.issues)o.path.length>0?(n[o.path[0]]=n[o.path[0]]||[],n[o.path[0]].push(t(o))):r.push(t(o));return{formErrors:r,fieldErrors:n}}function Wr(e,t=n=>n.message){const n={_errors:[]},r=o=>{for(const s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(i=>r({issues:i}));else if(s.code==="invalid_key")r({issues:s.issues});else if(s.code==="invalid_element")r({issues:s.issues});else if(s.path.length===0)n._errors.push(t(s));else{let i=n,a=0;for(;a<s.path.length;){const c=s.path[a];a===s.path.length-1?(i[c]=i[c]||{_errors:[]},i[c]._errors.push(t(s))):i[c]=i[c]||{_errors:[]},i=i[c],a++}}};return r(e),n}const at=e=>(t,n,r,o)=>{const s=r?Object.assign(r,{async:!1}):{async:!1},i=t._zod.run({value:n,issues:[]},s);if(i instanceof Promise)throw new fe;if(i.issues.length){const a=new(o?.Err??e)(i.issues.map(c=>ce(c,s,se())));throw Jt(a,o?.callee),a}return i.value},ct=e=>async(t,n,r,o)=>{const s=r?Object.assign(r,{async:!0}):{async:!0};let i=t._zod.run({value:n,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){const a=new(o?.Err??e)(i.issues.map(c=>ce(c,s,se())));throw Jt(a,o?.callee),a}return i.value},je=e=>(t,n,r)=>{const o=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},o);if(s instanceof Promise)throw new fe;return s.issues.length?{success:!1,error:new(e??qt)(s.issues.map(i=>ce(i,o,se())))}:{success:!0,data:s.value}},Br=je(Ht),Ae=e=>async(t,n,r)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let s=t._zod.run({value:n,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>ce(i,o,se())))}:{success:!0,data:s.value}},qr=Ae(Ht),Hr=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return at(e)(t,n,o)},Gr=e=>(t,n,r)=>at(e)(t,n,r),Xr=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return ct(e)(t,n,o)},Yr=e=>async(t,n,r)=>ct(e)(t,n,r),Qr=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return je(e)(t,n,o)},eo=e=>(t,n,r)=>je(e)(t,n,r),to=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Ae(e)(t,n,o)},no=e=>async(t,n,r)=>Ae(e)(t,n,r),ro=/^[cC][^\s-]{8,}$/,oo=/^[0-9a-z]+$/,io=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,so=/^[0-9a-vA-V]{20}$/,ao=/^[A-Za-z0-9]{27}$/,co=/^[a-zA-Z0-9_-]{21}$/,uo=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,lo=/^([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})$/,Gt=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)$/,fo=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,ho="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function po(){return new RegExp(ho,"u")}const mo=/^(?:(?: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])$/,go=/^(([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}|:))$/,_o=/^((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])$/,yo=/^(([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])$/,wo=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Xt=/^[A-Za-z0-9_-]*$/,vo=/^\+[1-9]\d{6,14}$/,Yt="(?:(?:\\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])))",bo=new RegExp(`^${Yt}$`);function Qt(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function ko(e){return new RegExp(`^${Qt(e)}$`)}function zo(e){const t=Qt({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${Yt}T(?:${r})$`)}const $o=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},So=/^(?:true|false)$/i,Eo=/^[^A-Z]*$/,Oo=/^[^a-z]*$/,H=f("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Zo=f("$ZodCheckMaxLength",(e,t)=>{var n;H.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ot(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(r._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{const o=r.value;if(o.length<=t.maximum)return;const i=st(o);r.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Io=f("$ZodCheckMinLength",(e,t)=>{var n;H.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ot(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const o=r.value;if(o.length>=t.minimum)return;const i=st(o);r.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Po=f("$ZodCheckLengthEquals",(e,t)=>{var n;H.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ot(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=r=>{const o=r.value,s=o.length;if(s===t.length)return;const i=st(o),a=s>t.length;r.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),Ce=f("$ZodCheckStringFormat",(e,t)=>{var n,r;H.init(e,t),e._zod.onattach.push(o=>{const s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),To=f("$ZodCheckRegex",(e,t)=>{Ce.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),jo=f("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Eo),Ce.init(e,t)}),Ao=f("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Oo),Ce.init(e,t)}),Co=f("$ZodCheckIncludes",(e,t)=>{H.init(e,t);const n=Pe(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(o=>{const s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),Do=f("$ZodCheckStartsWith",(e,t)=>{H.init(e,t);const n=new RegExp(`^${Pe(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),xo=f("$ZodCheckEndsWith",(e,t)=>{H.init(e,t);const n=new RegExp(`.*${Pe(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),Ro=f("$ZodCheckOverwrite",(e,t)=>{H.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class Mo{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const r=t.split(`
|
|
5
|
+
`).filter(i=>i),o=Math.min(...r.map(i=>i.length-i.trimStart().length)),s=r.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(const i of s)this.content.push(i)}compile(){const t=Function,n=this?.args,o=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...n,o.join(`
|
|
6
|
+
`))}}const Uo={major:4,minor:3,patch:6},D=f("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Uo;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const s of o._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(i,a,c)=>{let l=de(i),p;for(const y of a){if(y._zod.def.when){if(!y._zod.def.when(i))continue}else if(l)continue;const b=i.issues.length,v=y._zod.check(i);if(v instanceof Promise&&c?.async===!1)throw new fe;if(p||v instanceof Promise)p=(p??Promise.resolve()).then(async()=>{await v,i.issues.length!==b&&(l||(l=de(i,b)))});else{if(i.issues.length===b)continue;l||(l=de(i,b))}}return p?p.then(()=>i):i},s=(i,a,c)=>{if(de(i))return i.aborted=!0,i;const l=o(a,r,c);if(l instanceof Promise){if(c.async===!1)throw new fe;return l.then(p=>e._zod.parse(p,c))}return e._zod.parse(l,c)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction==="backward"){const l=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return l instanceof Promise?l.then(p=>s(p,i,a)):s(l,i,a)}const c=e._zod.parse(i,a);if(c instanceof Promise){if(a.async===!1)throw new fe;return c.then(l=>o(l,r,a))}return o(c,r,a)}}P(e,"~standard",()=>({validate:o=>{try{const s=Br(e,o);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return qr(e,o).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),ut=f("$ZodString",(e,t)=>{D.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??$o(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),j=f("$ZodStringFormat",(e,t)=>{Ce.init(e,t),ut.init(e,t)}),Lo=f("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=lo),j.init(e,t)}),Fo=f("$ZodUUID",(e,t)=>{if(t.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Gt(r))}else t.pattern??(t.pattern=Gt());j.init(e,t)}),No=f("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=fo),j.init(e,t)}),Vo=f("$ZodURL",(e,t)=>{j.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),o=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=o.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Jo=f("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=po()),j.init(e,t)}),Ko=f("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=co),j.init(e,t)}),Wo=f("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=ro),j.init(e,t)}),Bo=f("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=oo),j.init(e,t)}),qo=f("$ZodULID",(e,t)=>{t.pattern??(t.pattern=io),j.init(e,t)}),Ho=f("$ZodXID",(e,t)=>{t.pattern??(t.pattern=so),j.init(e,t)}),Go=f("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=ao),j.init(e,t)}),Xo=f("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=zo(t)),j.init(e,t)}),Yo=f("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=bo),j.init(e,t)}),Qo=f("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=ko(t)),j.init(e,t)}),ei=f("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=uo),j.init(e,t)}),ti=f("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=mo),j.init(e,t),e._zod.bag.format="ipv4"}),ni=f("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=go),j.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),ri=f("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=_o),j.init(e,t)}),oi=f("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=yo),j.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(r.length!==2)throw new Error;const[o,s]=r;if(!s)throw new Error;const i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function en(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const ii=f("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=wo),j.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{en(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function si(e){if(!Xt.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return en(n)}const ai=f("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Xt),j.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{si(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),ci=f("$ZodE164",(e,t)=>{t.pattern??(t.pattern=vo),j.init(e,t)});function ui(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const o=JSON.parse(atob(r));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}const li=f("$ZodJWT",(e,t)=>{j.init(e,t),e._zod.check=n=>{ui(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),fi=f("$ZodBoolean",(e,t)=>{D.init(e,t),e._zod.pattern=So,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}const o=n.value;return typeof o=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),n}}),di=f("$ZodUnknown",(e,t)=>{D.init(e,t),e._zod.parse=n=>n}),hi=f("$ZodNever",(e,t)=>{D.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});function tn(e,t,n){e.issues.length&&t.issues.push(...Wt(n,e.issues)),t.value[n]=e.value}const pi=f("$ZodArray",(e,t)=>{D.init(e,t),e._zod.parse=(n,r)=>{const o=n.value;if(!Array.isArray(o))return n.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),n;n.value=Array(o.length);const s=[];for(let i=0;i<o.length;i++){const a=o[i],c=t.element._zod.run({value:a,issues:[]},r);c instanceof Promise?s.push(c.then(l=>tn(l,n,i))):tn(c,n,i)}return s.length?Promise.all(s).then(()=>n):n}});function De(e,t,n,r,o){if(e.issues.length){if(o&&!(n in r))return;t.issues.push(...Wt(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function nn(e){const t=Object.keys(e.shape);for(const r of t)if(!e.shape?.[r]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${r}": expected a Zod schema`);const n=Rr(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function rn(e,t,n,r,o,s){const i=[],a=o.keySet,c=o.catchall._zod,l=c.def.type,p=c.optout==="optional";for(const y in t){if(a.has(y))continue;if(l==="never"){i.push(y);continue}const b=c.run({value:t[y],issues:[]},r);b instanceof Promise?e.push(b.then(v=>De(v,n,y,t,p))):De(b,n,y,t,p)}return i.length&&n.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:s}),e.length?Promise.all(e).then(()=>n):n}const mi=f("$ZodObject",(e,t)=>{if(D.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const a=t.shape;Object.defineProperty(t,"shape",{get:()=>{const c={...a};return Object.defineProperty(t,"shape",{value:c}),c}})}const r=rt(()=>nn(t));P(e._zod,"propValues",()=>{const a=t.shape,c={};for(const l in a){const p=a[l]._zod;if(p.values){c[l]??(c[l]=new Set);for(const y of p.values)c[l].add(y)}}return c});const o=Ie,s=t.catchall;let i;e._zod.parse=(a,c)=>{i??(i=r.value);const l=a.value;if(!o(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),a;a.value={};const p=[],y=i.shape;for(const b of i.keys){const v=y[b],R=v._zod.optout==="optional",d=v._zod.run({value:l[b],issues:[]},c);d instanceof Promise?p.push(d.then(m=>De(m,a,b,l,R))):De(d,a,b,l,R)}return s?rn(p,l,a,c,r.value,e):p.length?Promise.all(p).then(()=>a):a}}),gi=f("$ZodObjectJIT",(e,t)=>{mi.init(e,t);const n=e._zod.parse,r=rt(()=>nn(t)),o=b=>{const v=new Mo(["shape","payload","ctx"]),R=r.value,d=w=>{const k=Vt(w);return`shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`};v.write("const input = payload.value;");const m=Object.create(null);let h=0;for(const w of R.keys)m[w]=`key_${h++}`;v.write("const newResult = {};");for(const w of R.keys){const k=m[w],Z=Vt(w),J=b[w]?._zod?.optout==="optional";v.write(`const ${k} = ${d(w)};`),J?v.write(`
|
|
7
|
+
if (${k}.issues.length) {
|
|
8
|
+
if (${Z} in input) {
|
|
9
|
+
payload.issues = payload.issues.concat(${k}.issues.map(iss => ({
|
|
10
|
+
...iss,
|
|
11
|
+
path: iss.path ? [${Z}, ...iss.path] : [${Z}]
|
|
12
|
+
})));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (${k}.value === undefined) {
|
|
17
|
+
if (${Z} in input) {
|
|
18
|
+
newResult[${Z}] = undefined;
|
|
19
|
+
}
|
|
20
|
+
} else {
|
|
21
|
+
newResult[${Z}] = ${k}.value;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
`):v.write(`
|
|
25
|
+
if (${k}.issues.length) {
|
|
26
|
+
payload.issues = payload.issues.concat(${k}.issues.map(iss => ({
|
|
27
|
+
...iss,
|
|
28
|
+
path: iss.path ? [${Z}, ...iss.path] : [${Z}]
|
|
29
|
+
})));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (${k}.value === undefined) {
|
|
33
|
+
if (${Z} in input) {
|
|
34
|
+
newResult[${Z}] = undefined;
|
|
35
|
+
}
|
|
36
|
+
} else {
|
|
37
|
+
newResult[${Z}] = ${k}.value;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
`)}v.write("payload.value = newResult;"),v.write("return payload;");const _=v.compile();return(w,k)=>_(b,w,k)};let s;const i=Ie,a=!Lt.jitless,l=a&&Dr.value,p=t.catchall;let y;e._zod.parse=(b,v)=>{y??(y=r.value);const R=b.value;return i(R)?a&&l&&v?.async===!1&&v.jitless!==!0?(s||(s=o(t.shape)),b=s(b,v),p?rn([],R,b,v,y,e):b):n(b,v):(b.issues.push({expected:"object",code:"invalid_type",input:R,inst:e}),b)}});function on(e,t,n,r){for(const s of e)if(s.issues.length===0)return t.value=s.value,t;const o=e.filter(s=>!de(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(s=>s.issues.map(i=>ce(i,r,se())))}),t)}const _i=f("$ZodUnion",(e,t)=>{D.init(e,t),P(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),P(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),P(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),P(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){const o=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>it(s.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(n)return r(o,s);let i=!1;const a=[];for(const c of t.options){const l=c._zod.run({value:o.value,issues:[]},s);if(l instanceof Promise)a.push(l),i=!0;else{if(l.issues.length===0)return l;a.push(l)}}return i?Promise.all(a).then(c=>on(c,o,e,s)):on(a,o,e,s)}}),yi=f("$ZodIntersection",(e,t)=>{D.init(e,t),e._zod.parse=(n,r)=>{const o=n.value,s=t.left._zod.run({value:o,issues:[]},r),i=t.right._zod.run({value:o,issues:[]},r);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([c,l])=>sn(n,c,l)):sn(n,s,i)}});function lt(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ye(e)&&ye(t)){const n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),o={...e,...t};for(const s of r){const i=lt(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r<e.length;r++){const o=e[r],s=t[r],i=lt(o,s);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function sn(e,t,n){const r=new Map;let o;for(const a of t.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(const c of a.keys)r.has(c)||r.set(c,{}),r.get(c).l=!0}else e.issues.push(a);for(const a of n.issues)if(a.code==="unrecognized_keys")for(const c of a.keys)r.has(c)||r.set(c,{}),r.get(c).r=!0;else e.issues.push(a);const s=[...r].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(s.length&&o&&e.issues.push({...o,keys:s}),de(e))return e;const i=lt(t.value,n.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}const wi=f("$ZodEnum",(e,t)=>{D.init(e,t);const n=Ft(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(o=>xr.has(typeof o)).map(o=>typeof o=="string"?Pe(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{const i=o.value;return r.has(i)||o.issues.push({code:"invalid_value",values:n,input:i,inst:e}),o}}),vi=f("$ZodTransform",(e,t)=>{D.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new Ut(e.constructor.name);const o=t.transform(n.value,n);if(r.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(n.value=i,n));if(o instanceof Promise)throw new fe;return n.value=o,n}});function an(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const cn=f("$ZodOptional",(e,t)=>{D.init(e,t),e._zod.optin="optional",e._zod.optout="optional",P(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),P(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${it(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>an(s,n.value)):an(o,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),bi=f("$ZodExactOptional",(e,t)=>{cn.init(e,t),P(e._zod,"values",()=>t.innerType._zod.values),P(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(n,r)=>t.innerType._zod.run(n,r)}),ki=f("$ZodNullable",(e,t)=>{D.init(e,t),P(e._zod,"optin",()=>t.innerType._zod.optin),P(e._zod,"optout",()=>t.innerType._zod.optout),P(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${it(n.source)}|null)$`):void 0}),P(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),zi=f("$ZodDefault",(e,t)=>{D.init(e,t),e._zod.optin="optional",P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>un(s,t)):un(o,t)}});function un(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const $i=f("$ZodPrefault",(e,t)=>{D.init(e,t),e._zod.optin="optional",P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),Si=f("$ZodNonOptional",(e,t)=>{D.init(e,t),P(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>ln(s,e)):ln(o,e)}});function ln(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const Ei=f("$ZodCatch",(e,t)=>{D.init(e,t),P(e._zod,"optin",()=>t.innerType._zod.optin),P(e._zod,"optout",()=>t.innerType._zod.optout),P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(i=>ce(i,r,se()))},input:n.value}),n.issues=[]),n)):(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(s=>ce(s,r,se()))},input:n.value}),n.issues=[]),n)}}),Oi=f("$ZodPipe",(e,t)=>{D.init(e,t),P(e._zod,"values",()=>t.in._zod.values),P(e._zod,"optin",()=>t.in._zod.optin),P(e._zod,"optout",()=>t.out._zod.optout),P(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const s=t.out._zod.run(n,r);return s instanceof Promise?s.then(i=>xe(i,t.in,r)):xe(s,t.in,r)}const o=t.in._zod.run(n,r);return o instanceof Promise?o.then(s=>xe(s,t.out,r)):xe(o,t.out,r)}});function xe(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const Zi=f("$ZodReadonly",(e,t)=>{D.init(e,t),P(e._zod,"propValues",()=>t.innerType._zod.propValues),P(e._zod,"values",()=>t.innerType._zod.values),P(e._zod,"optin",()=>t.innerType?._zod?.optin),P(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(fn):fn(o)}});function fn(e){return e.value=Object.freeze(e.value),e}const Ii=f("$ZodCustom",(e,t)=>{H.init(e,t),D.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then(s=>dn(s,n,r,e));dn(o,n,r,e)}});function dn(e,t,n,r){if(!e){const o={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(o.params=r._zod.def.params),t.issues.push(we(o))}}var hn;class Pi{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];return this._map.set(t,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const o={...r,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function Ti(){return new Pi}(hn=globalThis).__zod_globalRegistry??(hn.__zod_globalRegistry=Ti());const ve=globalThis.__zod_globalRegistry;function ji(e,t){return new e({type:"string",...$(t)})}function Ai(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...$(t)})}function pn(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...$(t)})}function Ci(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...$(t)})}function Di(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...$(t)})}function xi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...$(t)})}function Ri(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...$(t)})}function Mi(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...$(t)})}function Ui(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...$(t)})}function Li(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...$(t)})}function Fi(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...$(t)})}function Ni(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...$(t)})}function Vi(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...$(t)})}function Ji(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...$(t)})}function Ki(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...$(t)})}function Wi(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...$(t)})}function Bi(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...$(t)})}function qi(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...$(t)})}function Hi(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...$(t)})}function Gi(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...$(t)})}function Xi(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...$(t)})}function Yi(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...$(t)})}function Qi(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...$(t)})}function es(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...$(t)})}function ts(e,t){return new e({type:"string",format:"date",check:"string_format",...$(t)})}function ns(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...$(t)})}function rs(e,t){return new e({type:"string",format:"duration",check:"string_format",...$(t)})}function os(e,t){return new e({type:"boolean",...$(t)})}function is(e){return new e({type:"unknown"})}function ss(e,t){return new e({type:"never",...$(t)})}function mn(e,t){return new Zo({check:"max_length",...$(t),maximum:e})}function Re(e,t){return new Io({check:"min_length",...$(t),minimum:e})}function gn(e,t){return new Po({check:"length_equals",...$(t),length:e})}function as(e,t){return new To({check:"string_format",format:"regex",...$(t),pattern:e})}function cs(e){return new jo({check:"string_format",format:"lowercase",...$(e)})}function us(e){return new Ao({check:"string_format",format:"uppercase",...$(e)})}function ls(e,t){return new Co({check:"string_format",format:"includes",...$(t),includes:e})}function fs(e,t){return new Do({check:"string_format",format:"starts_with",...$(t),prefix:e})}function ds(e,t){return new xo({check:"string_format",format:"ends_with",...$(t),suffix:e})}function he(e){return new Ro({check:"overwrite",tx:e})}function hs(e){return he(t=>t.normalize(e))}function ps(){return he(e=>e.trim())}function ms(){return he(e=>e.toLowerCase())}function gs(){return he(e=>e.toUpperCase())}function _s(){return he(e=>Cr(e))}function ys(e,t,n){return new e({type:"array",element:t,...$(n)})}function ws(e,t,n){return new e({type:"custom",check:"custom",fn:t,...$(n)})}function vs(e){const t=bs(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(we(r,n.value,t._zod.def));else{const o=r;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),n.issues.push(we(o))}},e(n.value,n)));return t}function bs(e,t){const n=new H({check:"custom",...$(t)});return n._zod.check=e,n}function _n(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??ve,target:t,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 F(e,t,n={path:[],schemaPath:[]}){var r;const o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,n.schemaPath.includes(e)&&(s.cycle=n.path),s.schema;const i={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,i);const a=e._zod.toJSONSchema?.();if(a)i.schema=a;else{const p={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,p);else{const b=i.schema,v=t.processors[o.type];if(!v)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);v(e,t,b,p)}const y=e._zod.parent;y&&(i.ref||(i.ref=y),F(y,t,p),t.seen.get(y).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(i.schema,c),t.io==="input"&&V(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&i.schema._prefault&&((r=i.schema).default??(r.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function yn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const i of e.seen.entries()){const a=e.metadataRegistry.get(i[0])?.id;if(a){const c=r.get(a);if(c&&c!==i[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(a,i[0])}}const o=i=>{const a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const y=e.external.registry.get(i[0])?.id,b=e.external.uri??(R=>R);if(y)return{ref:b(y)};const v=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=v,{defId:v,ref:`${b("__shared")}#/${a}/${v}`}}if(i[1]===n)return{ref:"#"};const l=`#/${a}/`,p=i[1].schema.id??`__schema${e.counter++}`;return{defId:p,ref:l+p}},s=i=>{if(i[1].schema.$ref)return;const a=i[1],{ref:c,defId:l}=o(i);a.def={...a.schema},l&&(a.defId=l);const p=a.schema;for(const y in p)delete p[y];p.$ref=c};if(e.cycles==="throw")for(const i of e.seen.entries()){const a=i[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
|
|
41
|
+
|
|
42
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const i of e.seen.entries()){const a=i[1];if(t===i[0]){s(i);continue}if(e.external){const l=e.external.registry.get(i[0])?.id;if(t!==i[0]&&l){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(a.cycle){s(i);continue}if(a.count>1&&e.reused==="ref"){s(i);continue}}}function wn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=i=>{const a=e.seen.get(i);if(a.ref===null)return;const c=a.def??a.schema,l={...c},p=a.ref;if(a.ref=null,p){r(p);const b=e.seen.get(p),v=b.schema;if(v.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(v)):Object.assign(c,v),Object.assign(c,l),i._zod.parent===p)for(const d in c)d==="$ref"||d==="allOf"||d in l||delete c[d];if(v.$ref&&b.def)for(const d in c)d==="$ref"||d==="allOf"||d in b.def&&JSON.stringify(c[d])===JSON.stringify(b.def[d])&&delete c[d]}const y=i._zod.parent;if(y&&y!==p){r(y);const b=e.seen.get(y);if(b?.schema.$ref&&(c.$ref=b.schema.$ref,b.def))for(const v in c)v==="$ref"||v==="allOf"||v in b.def&&JSON.stringify(c[v])===JSON.stringify(b.def[v])&&delete c[v]}e.override({zodSchema:i,jsonSchema:c,path:a.path??[]})};for(const i of[...e.seen.entries()].reverse())r(i[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const i=e.external.registry.get(t)?.id;if(!i)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(i)}Object.assign(o,n.def??n.schema);const s=e.external?.defs??{};for(const i of e.seen.entries()){const a=i[1];a.def&&a.defId&&(s[a.defId]=a.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{const i=JSON.parse(JSON.stringify(o));return Object.defineProperty(i,"~standard",{value:{...t["~standard"],jsonSchema:{input:Me(t,"input",e.processors),output:Me(t,"output",e.processors)}},enumerable:!1,writable:!1}),i}catch{throw new Error("Error converting schema to JSON.")}}function V(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return V(r.element,n);if(r.type==="set")return V(r.valueType,n);if(r.type==="lazy")return V(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return V(r.innerType,n);if(r.type==="intersection")return V(r.left,n)||V(r.right,n);if(r.type==="record"||r.type==="map")return V(r.keyType,n)||V(r.valueType,n);if(r.type==="pipe")return V(r.in,n)||V(r.out,n);if(r.type==="object"){for(const o in r.shape)if(V(r.shape[o],n))return!0;return!1}if(r.type==="union"){for(const o of r.options)if(V(o,n))return!0;return!1}if(r.type==="tuple"){for(const o of r.items)if(V(o,n))return!0;return!!(r.rest&&V(r.rest,n))}return!1}const ks=(e,t={})=>n=>{const r=_n({...n,processors:t});return F(e,r),yn(r,e),wn(r,e)},Me=(e,t,n={})=>r=>{const{libraryOptions:o,target:s}=r??{},i=_n({...o??{},target:s,io:t,processors:n});return F(e,i),yn(i,e),wn(i,e)},zs={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},$s=(e,t,n,r)=>{const o=n;o.type="string";const{minimum:s,maximum:i,format:a,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),a&&(o.format=zs[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),l&&(o.contentEncoding=l),c&&c.size>0){const p=[...c];p.length===1?o.pattern=p[0].source:p.length>1&&(o.allOf=[...p.map(y=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:y.source}))])}},Ss=(e,t,n,r)=>{n.type="boolean"},Es=(e,t,n,r)=>{n.not={}},Os=(e,t,n,r)=>{},Zs=(e,t,n,r)=>{const o=e._zod.def,s=Ft(o.entries);s.every(i=>typeof i=="number")&&(n.type="number"),s.every(i=>typeof i=="string")&&(n.type="string"),n.enum=s},Is=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Ps=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Ts=(e,t,n,r)=>{const o=n,s=e._zod.def,{minimum:i,maximum:a}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=F(s.element,t,{...r,path:[...r.path,"items"]})},js=(e,t,n,r)=>{const o=n,s=e._zod.def;o.type="object",o.properties={};const i=s.shape;for(const l in i)o.properties[l]=F(i[l],t,{...r,path:[...r.path,"properties",l]});const a=new Set(Object.keys(i)),c=new Set([...a].filter(l=>{const p=s.shape[l]._zod;return t.io==="input"?p.optin===void 0:p.optout===void 0}));c.size>0&&(o.required=Array.from(c)),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=F(s.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},As=(e,t,n,r)=>{const o=e._zod.def,s=o.inclusive===!1,i=o.options.map((a,c)=>F(a,t,{...r,path:[...r.path,s?"oneOf":"anyOf",c]}));s?n.oneOf=i:n.anyOf=i},Cs=(e,t,n,r)=>{const o=e._zod.def,s=F(o.left,t,{...r,path:[...r.path,"allOf",0]}),i=F(o.right,t,{...r,path:[...r.path,"allOf",1]}),a=l=>"allOf"in l&&Object.keys(l).length===1,c=[...a(s)?s.allOf:[s],...a(i)?i.allOf:[i]];n.allOf=c},Ds=(e,t,n,r)=>{const o=e._zod.def,s=F(o.innerType,t,r),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,n.nullable=!0):n.anyOf=[s,{type:"null"}]},xs=(e,t,n,r)=>{const o=e._zod.def;F(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},Rs=(e,t,n,r)=>{const o=e._zod.def;F(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,n.default=JSON.parse(JSON.stringify(o.defaultValue))},Ms=(e,t,n,r)=>{const o=e._zod.def;F(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Us=(e,t,n,r)=>{const o=e._zod.def;F(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=i},Ls=(e,t,n,r)=>{const o=e._zod.def,s=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;F(s,t,r);const i=t.seen.get(e);i.ref=s},Fs=(e,t,n,r)=>{const o=e._zod.def;F(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,n.readOnly=!0},vn=(e,t,n,r)=>{const o=e._zod.def;F(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},Ns=f("ZodISODateTime",(e,t)=>{Xo.init(e,t),A.init(e,t)});function Vs(e){return es(Ns,e)}const Js=f("ZodISODate",(e,t)=>{Yo.init(e,t),A.init(e,t)});function Ks(e){return ts(Js,e)}const Ws=f("ZodISOTime",(e,t)=>{Qo.init(e,t),A.init(e,t)});function Bs(e){return ns(Ws,e)}const qs=f("ZodISODuration",(e,t)=>{ei.init(e,t),A.init(e,t)});function Hs(e){return rs(qs,e)}const bn=(e,t)=>{qt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Wr(e,n)},flatten:{value:n=>Kr(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,nt,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,nt,2)}},isEmpty:{get(){return e.issues.length===0}}})},Gs=f("ZodError",bn),K=f("ZodError",bn,{Parent:Error}),Xs=at(K),Ys=ct(K),Qs=je(K),ea=Ae(K),ta=Hr(K),na=Gr(K),ra=Xr(K),oa=Yr(K),ia=Qr(K),sa=eo(K),aa=to(K),ca=no(K),x=f("ZodType",(e,t)=>(D.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Me(e,"input"),output:Me(e,"output")}}),e.toJSONSchema=ks(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(re(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(n,r)=>oe(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>Xs(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Qs(e,n,r),e.parseAsync=async(n,r)=>Ys(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>ea(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>ta(e,n,r),e.decode=(n,r)=>na(e,n,r),e.encodeAsync=async(n,r)=>ra(e,n,r),e.decodeAsync=async(n,r)=>oa(e,n,r),e.safeEncode=(n,r)=>ia(e,n,r),e.safeDecode=(n,r)=>sa(e,n,r),e.safeEncodeAsync=async(n,r)=>aa(e,n,r),e.safeDecodeAsync=async(n,r)=>ca(e,n,r),e.refine=(n,r)=>e.check(tc(n,r)),e.superRefine=n=>e.check(nc(n)),e.overwrite=n=>e.check(he(n)),e.optional=()=>Zn(e),e.exactOptional=()=>Na(e),e.nullable=()=>In(e),e.nullish=()=>Zn(In(e)),e.nonoptional=n=>qa(e,n),e.array=()=>Aa(e),e.or=n=>xa([e,n]),e.and=n=>Ma(e,n),e.transform=n=>Tn(e,La(n)),e.default=n=>Ka(e,n),e.prefault=n=>Ba(e,n),e.catch=n=>Ga(e,n),e.pipe=n=>Tn(e,n),e.readonly=()=>Qa(e),e.describe=n=>{const r=e.clone();return ve.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return ve.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return ve.get(e);const r=e.clone();return ve.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),kn=f("_ZodString",(e,t)=>{ut.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,o,s)=>$s(e,r,o);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(as(...r)),e.includes=(...r)=>e.check(ls(...r)),e.startsWith=(...r)=>e.check(fs(...r)),e.endsWith=(...r)=>e.check(ds(...r)),e.min=(...r)=>e.check(Re(...r)),e.max=(...r)=>e.check(mn(...r)),e.length=(...r)=>e.check(gn(...r)),e.nonempty=(...r)=>e.check(Re(1,...r)),e.lowercase=r=>e.check(cs(r)),e.uppercase=r=>e.check(us(r)),e.trim=()=>e.check(ps()),e.normalize=(...r)=>e.check(hs(...r)),e.toLowerCase=()=>e.check(ms()),e.toUpperCase=()=>e.check(gs()),e.slugify=()=>e.check(_s())}),ua=f("ZodString",(e,t)=>{ut.init(e,t),kn.init(e,t),e.email=n=>e.check(Ai(fa,n)),e.url=n=>e.check(Mi(da,n)),e.jwt=n=>e.check(Qi(Oa,n)),e.emoji=n=>e.check(Ui(ha,n)),e.guid=n=>e.check(pn(zn,n)),e.uuid=n=>e.check(Ci(Ue,n)),e.uuidv4=n=>e.check(Di(Ue,n)),e.uuidv6=n=>e.check(xi(Ue,n)),e.uuidv7=n=>e.check(Ri(Ue,n)),e.nanoid=n=>e.check(Li(pa,n)),e.guid=n=>e.check(pn(zn,n)),e.cuid=n=>e.check(Fi(ma,n)),e.cuid2=n=>e.check(Ni(ga,n)),e.ulid=n=>e.check(Vi(_a,n)),e.base64=n=>e.check(Gi($a,n)),e.base64url=n=>e.check(Xi(Sa,n)),e.xid=n=>e.check(Ji(ya,n)),e.ksuid=n=>e.check(Ki(wa,n)),e.ipv4=n=>e.check(Wi(va,n)),e.ipv6=n=>e.check(Bi(ba,n)),e.cidrv4=n=>e.check(qi(ka,n)),e.cidrv6=n=>e.check(Hi(za,n)),e.e164=n=>e.check(Yi(Ea,n)),e.datetime=n=>e.check(Vs(n)),e.date=n=>e.check(Ks(n)),e.time=n=>e.check(Bs(n)),e.duration=n=>e.check(Hs(n))});function la(e){return ji(ua,e)}const A=f("ZodStringFormat",(e,t)=>{j.init(e,t),kn.init(e,t)}),fa=f("ZodEmail",(e,t)=>{No.init(e,t),A.init(e,t)}),zn=f("ZodGUID",(e,t)=>{Lo.init(e,t),A.init(e,t)}),Ue=f("ZodUUID",(e,t)=>{Fo.init(e,t),A.init(e,t)}),da=f("ZodURL",(e,t)=>{Vo.init(e,t),A.init(e,t)}),ha=f("ZodEmoji",(e,t)=>{Jo.init(e,t),A.init(e,t)}),pa=f("ZodNanoID",(e,t)=>{Ko.init(e,t),A.init(e,t)}),ma=f("ZodCUID",(e,t)=>{Wo.init(e,t),A.init(e,t)}),ga=f("ZodCUID2",(e,t)=>{Bo.init(e,t),A.init(e,t)}),_a=f("ZodULID",(e,t)=>{qo.init(e,t),A.init(e,t)}),ya=f("ZodXID",(e,t)=>{Ho.init(e,t),A.init(e,t)}),wa=f("ZodKSUID",(e,t)=>{Go.init(e,t),A.init(e,t)}),va=f("ZodIPv4",(e,t)=>{ti.init(e,t),A.init(e,t)}),ba=f("ZodIPv6",(e,t)=>{ni.init(e,t),A.init(e,t)}),ka=f("ZodCIDRv4",(e,t)=>{ri.init(e,t),A.init(e,t)}),za=f("ZodCIDRv6",(e,t)=>{oi.init(e,t),A.init(e,t)}),$a=f("ZodBase64",(e,t)=>{ii.init(e,t),A.init(e,t)}),Sa=f("ZodBase64URL",(e,t)=>{ai.init(e,t),A.init(e,t)}),Ea=f("ZodE164",(e,t)=>{ci.init(e,t),A.init(e,t)}),Oa=f("ZodJWT",(e,t)=>{li.init(e,t),A.init(e,t)}),Za=f("ZodBoolean",(e,t)=>{fi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ss(e,n,r)});function ft(e){return os(Za,e)}const Ia=f("ZodUnknown",(e,t)=>{di.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Os()});function $n(){return is(Ia)}const Pa=f("ZodNever",(e,t)=>{hi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Es(e,n,r)});function Ta(e){return ss(Pa,e)}const ja=f("ZodArray",(e,t)=>{pi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ts(e,n,r,o),e.element=t.element,e.min=(n,r)=>e.check(Re(n,r)),e.nonempty=n=>e.check(Re(1,n)),e.max=(n,r)=>e.check(mn(n,r)),e.length=(n,r)=>e.check(gn(n,r)),e.unwrap=()=>e.element});function Aa(e,t){return ys(ja,e,t)}const Ca=f("ZodObject",(e,t)=>{gi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>js(e,n,r,o),P(e,"shape",()=>t.shape),e.keyof=()=>En(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:$n()}),e.loose=()=>e.clone({...e._zod.def,catchall:$n()}),e.strict=()=>e.clone({...e._zod.def,catchall:Ta()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>Lr(e,n),e.safeExtend=n=>Fr(e,n),e.merge=n=>Nr(e,n),e.pick=n=>Mr(e,n),e.omit=n=>Ur(e,n),e.partial=(...n)=>Vr(On,e,n[0]),e.required=(...n)=>Jr(Pn,e,n[0])});function Sn(e,t){const n={type:"object",shape:e??{},...$(t)};return new Ca(n)}const Da=f("ZodUnion",(e,t)=>{_i.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>As(e,n,r,o),e.options=t.options});function xa(e,t){return new Da({type:"union",options:e,...$(t)})}const Ra=f("ZodIntersection",(e,t)=>{yi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Cs(e,n,r,o)});function Ma(e,t){return new Ra({type:"intersection",left:e,right:t})}const dt=f("ZodEnum",(e,t)=>{wi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,o,s)=>Zs(e,r,o),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,o)=>{const s={};for(const i of r)if(n.has(i))s[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new dt({...t,checks:[],...$(o),entries:s})},e.exclude=(r,o)=>{const s={...t.entries};for(const i of r)if(n.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new dt({...t,checks:[],...$(o),entries:s})}});function En(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new dt({type:"enum",entries:n,...$(t)})}const Ua=f("ZodTransform",(e,t)=>{vi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ps(e,n),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new Ut(e.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(we(s,n.value,t));else{const i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=e),n.issues.push(we(i))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(s=>(n.value=s,n)):(n.value=o,n)}});function La(e){return new Ua({type:"transform",transform:e})}const On=f("ZodOptional",(e,t)=>{cn.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>vn(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Zn(e){return new On({type:"optional",innerType:e})}const Fa=f("ZodExactOptional",(e,t)=>{bi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>vn(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Na(e){return new Fa({type:"optional",innerType:e})}const Va=f("ZodNullable",(e,t)=>{ki.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ds(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function In(e){return new Va({type:"nullable",innerType:e})}const Ja=f("ZodDefault",(e,t)=>{zi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Rs(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Ka(e,t){return new Ja({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Kt(t)}})}const Wa=f("ZodPrefault",(e,t)=>{$i.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ms(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Ba(e,t){return new Wa({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():Kt(t)}})}const Pn=f("ZodNonOptional",(e,t)=>{Si.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>xs(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function qa(e,t){return new Pn({type:"nonoptional",innerType:e,...$(t)})}const Ha=f("ZodCatch",(e,t)=>{Ei.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Us(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Ga(e,t){return new Ha({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const Xa=f("ZodPipe",(e,t)=>{Oi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ls(e,n,r,o),e.in=t.in,e.out=t.out});function Tn(e,t){return new Xa({type:"pipe",in:e,out:t})}const Ya=f("ZodReadonly",(e,t)=>{Zi.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Fs(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Qa(e){return new Ya({type:"readonly",innerType:e})}const ec=f("ZodCustom",(e,t)=>{Ii.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Is(e,n)});function tc(e,t={}){return ws(ec,e,t)}function nc(e){return vs(e)}const rc=Sn({wideFeed:ft(),fontSize:ft(),autoExpandPosts:ft()}),oc=Sn({status:En(["active","trial-active","trial-expired","revoked"]),features:rc,expiresAt:la().optional()}),Le={wideFeed:!1,fontSize:!1,autoExpandPosts:!1},ic=typeof window>"u",sc=24,ac=1,cc=6,ht=[300*1e3,1800*1e3,360*60*1e3],jn=ht.length;async function An(e,t){const n=`${Ye}${e.startsWith("/")?"":"/"}${e}`,r=new Headers(t?.headers??void 0);if(r.set("x-linkfeed-extension-version",ne.runtime.getManifest().version),ic){const a=await fetch(n,{...t,headers:r}),c=await a.json().catch(()=>null);return{ok:a.ok,status:a.status,data:c}}const o={};r.forEach((a,c)=>{o[c]=a});const s={type:"linkfeed_api_fetch",url:n,method:t?.method||"GET",headers:o,body:typeof t?.body=="string"?t.body:void 0},i=await ne.runtime.sendMessage(s);return i||{ok:!1,status:0,data:null}}async function Cn(){return await _r.getValue()}async function uc(e){await Ge.setValue(e)}async function lc(){return await Oe.getValue()}async function Dn(e){const t={...e,cachedAt:Date.now()};await Oe.setValue(t)}function Fe(e){const t=vr*60*60*1e3;return Date.now()-e.cachedAt<t}function fc(e){return e.status==="trial-active"?ac*60*60*1e3:e.status==="active"?sc*60*60*1e3:cc*60*60*1e3}function dc(e){return Date.now()-e.cachedAt<fc(e)}async function hc(){return await It.getValue()}async function pt(e){await It.setValue(e)}function xn(e){const t=Math.min(Math.max(e-1,0),ht.length-1);return ht[t]}async function Rn(e){const t=await Zt.getValue(),n=await lc(),r=await hc(),o=!!e?.force;if(!t)return{status:"revoked",features:Le};if(!o&&n&&dc(n))return n;if(!o&&r.retryAfter&&Date.now()<r.retryAfter)return n&&Fe(n)?n:{status:"revoked",features:Le};if(typeof navigator<"u"&&!navigator.onLine&&n&&Fe(n))return console.log("Offline: Using cached license"),n;try{new URL(`${Ye}/api/license/status`).searchParams.set("deviceToken",t);const i=await At(),a=await An(`/api/license/status?deviceToken=${encodeURIComponent(t)}`,{method:"GET",headers:{"Content-Type":"application/json",...i?{"X-Linkfeed-Device-Meta":JSON.stringify(i)}:{}}});if(!a.ok||!a.data){const l=Math.min(r.failureCount+1,jn),p=Date.now()+xn(l);return await pt({failureCount:l,retryAfter:p}),n&&Fe(n)?n:{status:"revoked",features:Le}}const c=oc.parse(a.data);return await Dn(c),await pt({failureCount:0,retryAfter:0}),c}catch{const i=Math.min(r.failureCount+1,jn),a=Date.now()+xn(i);return await pt({failureCount:i,retryAfter:a}),n&&Fe(n)?n:{status:"revoked",features:Le}}}async function pc(e){await Zt.setValue(e)}async function mc(e){const t=await Cn();if(typeof navigator<"u"&&!navigator.onLine)return{success:!1,message:tt("errorNoInternet")};try{const n=await At(),o=await An("/api/license/link/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n?{activationToken:e,deviceId:t,deviceMeta:n}:{activationToken:e,deviceId:t})}),s=o.data??{};return o.ok?(s.deviceToken&&await pc(s.deviceToken),s.email&&await uc(s.email),s.license&&await Dn(s.license),{success:!0,message:"License linked",license:s.license,deviceToken:s.deviceToken}):{success:!1,message:s.error||"Failed to activate license",status:s.status}}catch(n){return console.error("Failed to activate license:",n),{success:!1,message:n instanceof Gs?tt("errorServerInvalid"):tt("errorConnectFailed")}}}const gc=Fn(()=>{console.log("LinkFeed BG started");let e=null,t=null;Xe.registerExtensionLifecycle({getDailyPayload:wr}).catch(n=>console.error("Failed to register telemetry lifecycle",n)),Ar().catch(()=>{}),Xe.trackBgWake("startup").catch(()=>{}),Tt(!0).catch(()=>{}),ne.runtime.onMessageExternal.addListener((n,r,o)=>{if(!(!n||n.type!=="linkfeed_pair"||!n.activationToken)&&!(r.origin&&!r.origin.startsWith("https://linkfeed.pro")&&!r.origin.startsWith("http://localhost:3000")))return(async()=>{const s=await mc(n.activationToken);s.success&&await Tt(!0),o(s)})(),!0}),ne.runtime.onMessageExternal.addListener((n,r,o)=>{if(!(!n||n.type!=="linkfeed_get_device_info")&&!(r.origin&&!r.origin.startsWith("https://linkfeed.pro")&&!r.origin.startsWith("http://localhost:3000")))return(async()=>{const s=await Cn();o({deviceId:s})})(),!0}),ne.runtime.onMessage.addListener((n,r,o)=>{if(n){if(n.type==="linkfeed_license_refresh")return n.force?(t||(t=(async()=>{try{return await Rn({force:!0})}finally{t=null}})()),t.then(o),!0):(e||(e=(async()=>{try{return await Rn()}finally{e=null}})()),e.then(o),!0);if(!(n.type!=="linkfeed_api_fetch"||!n.url))return(async()=>{try{const s=n.url;if(!s.startsWith(Ye))return{ok:!1,status:400,data:{error:"Invalid URL"}};const i=await fetch(s,{method:n.method||"GET",headers:n.headers||{},body:n.body}),a=await i.json().catch(()=>null);return{ok:i.ok,status:i.status,data:a}}catch(s){return console.error("Background fetch failed:",s),{ok:!1,status:0,data:null}}})().then(o),!0}})});function jc(){}function Ne(e,...t){}const _c={debug:(...e)=>Ne(console.debug,...e),log:(...e)=>Ne(console.log,...e),warn:(...e)=>Ne(console.warn,...e),error:(...e)=>Ne(console.error,...e)};let mt;try{mt=gc.main(),mt instanceof Promise&&console.warn("The background's main() function return a promise, but it must be synchronous")}catch(e){throw _c.error("The background crashed on startup!"),e}var yc=mt;return yc})();
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();try{}catch(e){console.error("[wxt] Failed to initialize plugins",e)}const de=globalThis.browser?.runtime?.id?globalThis.browser:globalThis.chrome,K=de,Un=72;var _t=Object.prototype.hasOwnProperty;function qe(e,t){var n,r;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&qe(e[r],t[r]););return r===-1}if(!n||typeof e=="object"){r=0;for(n in e)if(_t.call(e,n)&&++r&&!_t.call(t,n)||!(n in t)||!qe(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}const Mn=new Error("request for lock canceled");var Fn=function(e,t,n,r){function o(s){return s instanceof n?s:new n(function(i){i(s)})}return new(n||(n=Promise))(function(s,i){function a(h){try{u(r.next(h))}catch(y){i(y)}}function c(h){try{u(r.throw(h))}catch(y){i(y)}}function u(h){h.done?s(h.value):o(h.value).then(a,c)}u((r=r.apply(e,t||[])).next())})};class Nn{constructor(t,n=Mn){this._value=t,this._cancelError=n,this._queue=[],this._weightedWaiters=[]}acquire(t=1,n=0){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);return new Promise((r,o)=>{const s={resolve:r,reject:o,weight:t,priority:n},i=Jt(this._queue,a=>n<=a.priority);i===-1&&t<=this._value?this._dispatchItem(s):this._queue.splice(i+1,0,s)})}runExclusive(t){return Fn(this,arguments,void 0,function*(n,r=1,o=0){const[s,i]=yield this.acquire(r,o);try{return yield n(s)}finally{i()}})}waitForUnlock(t=1,n=0){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);return this._couldLockImmediately(t,n)?Promise.resolve():new Promise(r=>{this._weightedWaiters[t-1]||(this._weightedWaiters[t-1]=[]),Vn(this._weightedWaiters[t-1],{resolve:r,priority:n})})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(t){this._value=t,this._dispatchQueue()}release(t=1){if(t<=0)throw new Error(`invalid weight ${t}: must be positive`);this._value+=t,this._dispatchQueue()}cancel(){this._queue.forEach(t=>t.reject(this._cancelError)),this._queue=[]}_dispatchQueue(){for(this._drainUnlockWaiters();this._queue.length>0&&this._queue[0].weight<=this._value;)this._dispatchItem(this._queue.shift()),this._drainUnlockWaiters()}_dispatchItem(t){const n=this._value;this._value-=t.weight,t.resolve([n,this._newReleaser(t.weight)])}_newReleaser(t){let n=!1;return()=>{n||(n=!0,this.release(t))}}_drainUnlockWaiters(){if(this._queue.length===0)for(let t=this._value;t>0;t--){const n=this._weightedWaiters[t-1];n&&(n.forEach(r=>r.resolve()),this._weightedWaiters[t-1]=[])}else{const t=this._queue[0].priority;for(let n=this._value;n>0;n--){const r=this._weightedWaiters[n-1];if(!r)continue;const o=r.findIndex(s=>s.priority<=t);(o===-1?r:r.splice(0,o)).forEach((s=>s.resolve()))}}}_couldLockImmediately(t,n){return(this._queue.length===0||this._queue[0].priority<n)&&t<=this._value}}function Vn(e,t){const n=Jt(e,r=>t.priority<=r.priority);e.splice(n+1,0,t)}function Jt(e,t){for(let n=e.length-1;n>=0;n--)if(t(e[n]))return n;return-1}var Jn=function(e,t,n,r){function o(s){return s instanceof n?s:new n(function(i){i(s)})}return new(n||(n=Promise))(function(s,i){function a(h){try{u(r.next(h))}catch(y){i(y)}}function c(h){try{u(r.throw(h))}catch(y){i(y)}}function u(h){h.done?s(h.value):o(h.value).then(a,c)}u((r=r.apply(e,t||[])).next())})};class Kn{constructor(t){this._semaphore=new Nn(1,t)}acquire(){return Jn(this,arguments,void 0,function*(t=0){const[,n]=yield this._semaphore.acquire(1,t);return n})}runExclusive(t,n=0){return this._semaphore.runExclusive(()=>t(),1,n)}isLocked(){return this._semaphore.isLocked()}waitForUnlock(t=0){return this._semaphore.waitForUnlock(1,t)}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}}const N=Wn();function Wn(){const e={local:we("local"),session:we("session"),sync:we("sync"),managed:we("managed")},t=d=>{const p=e[d];if(p==null){const f=Object.keys(e).join(", ");throw Error(`Invalid area "${d}". Options: ${f}`)}return p},n=d=>{const p=d.indexOf(":"),f=d.substring(0,p),m=d.substring(p+1);if(m==null)throw Error(`Storage key should be in the form of "area:key", but received "${d}"`);return{driverArea:f,driverKey:m,driver:t(f)}},r=d=>d+"$",o=(d,p)=>{const f={...d};return Object.entries(p).forEach(([m,g])=>{g==null?delete f[m]:f[m]=g}),f},s=(d,p)=>d??p??null,i=d=>typeof d=="object"&&!Array.isArray(d)?d:{},a=async(d,p,f)=>{const m=await d.getItem(p);return s(m,f?.fallback??f?.defaultValue)},c=async(d,p)=>{const f=r(p),m=await d.getItem(f);return i(m)},u=async(d,p,f)=>{await d.setItem(p,f??null)},h=async(d,p,f)=>{const m=r(p),g=i(await d.getItem(m));await d.setItem(m,o(g,f))},y=async(d,p,f)=>{if(await d.removeItem(p),f?.removeMeta){const m=r(p);await d.removeItem(m)}},_=async(d,p,f)=>{const m=r(p);if(f==null)await d.removeItem(m);else{const g=i(await d.getItem(m));[f].flat().forEach(b=>delete g[b]),await d.setItem(m,g)}},w=(d,p,f)=>d.watch(p,f);return{getItem:async(d,p)=>{const{driver:f,driverKey:m}=n(d);return await a(f,m,p)},getItems:async d=>{const p=new Map,f=new Map,m=[];d.forEach(b=>{let E,$;typeof b=="string"?E=b:"getValue"in b?(E=b.key,$={fallback:b.fallback}):(E=b.key,$=b.options),m.push(E);const{driverArea:x,driverKey:I}=n(E),j=p.get(x)??[];p.set(x,j.concat(I)),f.set(E,$)});const g=new Map;return await Promise.all(Array.from(p.entries()).map(async([b,E])=>{(await e[b].getItems(E)).forEach(x=>{const I=`${b}:${x.key}`,j=f.get(I),F=s(x.value,j?.fallback??j?.defaultValue);g.set(I,F)})})),m.map(b=>({key:b,value:g.get(b)}))},getMeta:async d=>{const{driver:p,driverKey:f}=n(d);return await c(p,f)},getMetas:async d=>{const p=d.map(g=>{const b=typeof g=="string"?g:g.key,{driverArea:E,driverKey:$}=n(b);return{key:b,driverArea:E,driverKey:$,driverMetaKey:r($)}}),f=p.reduce((g,b)=>(g[b.driverArea]??=[],g[b.driverArea].push(b),g),{}),m={};return await Promise.all(Object.entries(f).map(async([g,b])=>{const E=await de.storage[g].get(b.map($=>$.driverMetaKey));b.forEach($=>{m[$.key]=E[$.driverMetaKey]??{}})})),p.map(g=>({key:g.key,meta:m[g.key]}))},setItem:async(d,p)=>{const{driver:f,driverKey:m}=n(d);await u(f,m,p)},setItems:async d=>{const p={};d.forEach(f=>{const{driverArea:m,driverKey:g}=n("key"in f?f.key:f.item.key);p[m]??=[],p[m].push({key:g,value:f.value})}),await Promise.all(Object.entries(p).map(async([f,m])=>{await t(f).setItems(m)}))},setMeta:async(d,p)=>{const{driver:f,driverKey:m}=n(d);await h(f,m,p)},setMetas:async d=>{const p={};d.forEach(f=>{const{driverArea:m,driverKey:g}=n("key"in f?f.key:f.item.key);p[m]??=[],p[m].push({key:g,properties:f.meta})}),await Promise.all(Object.entries(p).map(async([f,m])=>{const g=t(f),b=m.map(({key:I})=>r(I)),E=await g.getItems(b),$=Object.fromEntries(E.map(({key:I,value:j})=>[I,i(j)])),x=m.map(({key:I,properties:j})=>{const F=r(I);return{key:F,value:o($[F]??{},j)}});await g.setItems(x)}))},removeItem:async(d,p)=>{const{driver:f,driverKey:m}=n(d);await y(f,m,p)},removeItems:async d=>{const p={};d.forEach(f=>{let m,g;typeof f=="string"?m=f:"getValue"in f?m=f.key:"item"in f?(m=f.item.key,g=f.options):(m=f.key,g=f.options);const{driverArea:b,driverKey:E}=n(m);p[b]??=[],p[b].push(E),g?.removeMeta&&p[b].push(r(E))}),await Promise.all(Object.entries(p).map(async([f,m])=>{await t(f).removeItems(m)}))},clear:async d=>{await t(d).clear()},removeMeta:async(d,p)=>{const{driver:f,driverKey:m}=n(d);await _(f,m,p)},snapshot:async(d,p)=>{const m=await t(d).snapshot();return p?.excludeKeys?.forEach(g=>{delete m[g],delete m[r(g)]}),m},restoreSnapshot:async(d,p)=>{await t(d).restoreSnapshot(p)},watch:(d,p)=>{const{driver:f,driverKey:m}=n(d);return w(f,m,p)},unwatch(){Object.values(e).forEach(d=>{d.unwatch()})},defineItem:(d,p)=>{const{driver:f,driverKey:m}=n(d),{version:g=1,migrations:b={},onMigrationComplete:E,debug:$=!1}=p??{};if(g<1)throw Error("Storage item version cannot be less than 1. Initial versions should be set to 1, not 0.");const x=async()=>{const L=r(m),[{value:H},{value:ye}]=await f.getItems([m,L]);if(H==null)return;const re=ye?.v??1;if(re>g)throw Error(`Version downgrade detected (v${re} -> v${g}) for "${d}"`);if(re===g)return;$===!0&&console.debug(`[@wxt-dev/storage] Running storage migration for ${d}: v${re} -> v${g}`);const Dn=Array.from({length:g-re},(_e,Fe)=>re+Fe+1);let oe=H;for(const _e of Dn)try{oe=await b?.[_e]?.(oe)??oe,$===!0&&console.debug(`[@wxt-dev/storage] Storage migration processed for version: v${_e}`)}catch(Fe){throw new qn(d,_e,{cause:Fe})}await f.setItems([{key:m,value:oe},{key:L,value:{...ye,v:g}}]),$===!0&&console.debug(`[@wxt-dev/storage] Storage migration completed for ${d} v${g}`,{migratedValue:oe}),E?.(oe,g)},I=p?.migrations==null?Promise.resolve():x().catch(L=>{console.error(`[@wxt-dev/storage] Migration failed for ${d}`,L)}),j=new Kn,F=()=>p?.fallback??p?.defaultValue??null,yt=()=>j.runExclusive(async()=>{const L=await f.getItem(m);if(L!=null||p?.init==null)return L;const H=await p.init();return await f.setItem(m,H),H});return I.then(yt),{key:d,get defaultValue(){return F()},get fallback(){return F()},getValue:async()=>(await I,p?.init?await yt():await a(f,m,p)),getMeta:async()=>(await I,await c(f,m)),setValue:async L=>(await I,await u(f,m,L)),setMeta:async L=>(await I,await h(f,m,L)),removeValue:async L=>(await I,await y(f,m,L)),removeMeta:async L=>(await I,await _(f,m,L)),watch:L=>w(f,m,(H,ye)=>L(H??F(),ye??F())),migrate:x}}}}function we(e){const t=()=>{if(de.runtime==null)throw Error(["'wxt/storage' must be loaded in a web extension environment",`
|
|
2
|
+
- If thrown during a build, see https://github.com/wxt-dev/wxt/issues/371`,` - If thrown during tests, mock 'wxt/browser' correctly. See https://wxt.dev/guide/go-further/testing.html
|
|
3
|
+
`].join(`
|
|
4
|
+
`));if(de.storage==null)throw Error("You must add the 'storage' permission to your manifest to use 'wxt/storage'");const r=de.storage[e];if(r==null)throw Error(`"browser.storage.${e}" is undefined`);return r},n=new Set;return{getItem:async r=>(await t().get(r))[r],getItems:async r=>{const o=await t().get(r);return r.map(s=>({key:s,value:o[s]??null}))},setItem:async(r,o)=>{o==null?await t().remove(r):await t().set({[r]:o})},setItems:async r=>{const o=r.reduce((s,{key:i,value:a})=>(s[i]=a,s),{});await t().set(o)},removeItem:async r=>{await t().remove(r)},removeItems:async r=>{await t().remove(r)},clear:async()=>{await t().clear()},snapshot:async()=>await t().get(),restoreSnapshot:async r=>{await t().set(r)},watch(r,o){const s=i=>{const a=i[r];a!=null&&(qe(a.newValue,a.oldValue)||o(a.newValue??null,a.oldValue??null))};return t().onChanged.addListener(s),n.add(s),()=>{t().onChanged.removeListener(s),n.delete(s)}},unwatch(){n.forEach(r=>{t().onChanged.removeListener(r)}),n.clear()}}}class qn extends Error{constructor(t,n,r){super(`v${n} migration failed for "${t}"`,r),this.key=t,this.version=n}}const Hn={globalEnabled:!0,hideSidebars:!0,hidePromoted:!1,feedWidth:1500,feedSpacing:40,autoExpandPosts:!0,hideRemovedFeedCards:!0,hideStartPost:!1,hideMessenger:!1,hideNavBar:!1,fontSize:20},Kt=N.defineItem("local:settings",{fallback:Hn}),Gn=N.defineItem("local:deviceId",{init:()=>crypto.randomUUID()}),Be=N.defineItem("local:userEmail",{fallback:null}),Wt=N.defineItem("local:licenseState",{fallback:null}),qt=N.defineItem("local:deviceToken",{fallback:null}),Ht=N.defineItem("local:licenseRefresh",{fallback:{failureCount:0,retryAfter:0}});N.defineItem("local:telemetry:identitySent",{fallback:{email:null,status:null}});const Pe=N.defineItem("local:pendingTrial",{fallback:null}),nt=N.defineItem("local:uiLocalePreference",{fallback:"auto"}),Gt="https://linkfeed.pro",X={HOME:"https://linkfeed.pro",AUTH:"https://linkfeed.pro/auth",ACCOUNT:"https://linkfeed.pro/account",PRICING:"https://linkfeed.pro/pricing",UPGRADE:"https://linkfeed.pro/pricing"},wt=["Microsoft Edge","Brave","Google Chrome","Chrome","Chromium"];function Xn(e){return/microsoft edge/i.test(e)?"Edge":/brave/i.test(e)?"Brave":/google chrome/i.test(e)||/chromium/i.test(e)||/chrome/i.test(e)?"Chrome":/firefox/i.test(e)?"Firefox":/safari/i.test(e)?"Safari":e}function se(e){return e&&e.split(".")[0]||void 0}function Yn(e){if(!e?.length)return{};const t=e.filter(o=>!/not.?a.?brand/i.test(o.brand));if(!t.length)return{};const r=[...t].sort((o,s)=>{const i=wt.findIndex(c=>c.toLowerCase()===o.brand.toLowerCase()),a=wt.findIndex(c=>c.toLowerCase()===s.brand.toLowerCase());return(i===-1?999:i)-(a===-1?999:a)})[0];return r?{name:Xn(r.brand),version:se(r.version)}:{}}function Qn(e){const t=e.match(/Edg\/([\d.]+)/);if(t)return{name:"Edge",version:se(t[1])};const n=e.match(/Chrome\/([\d.]+)/);if(n)return{name:"Chrome",version:se(n[1])};const r=e.match(/Firefox\/([\d.]+)/);if(r)return{name:"Firefox",version:se(r[1])};const o=e.match(/Version\/([\d.]+).*Safari/);return o?{name:"Safari",version:se(o[1])}:{}}function er(e){return/iPad/i.test(e)?{name:"iOS",device:"iPad"}:/iPhone/i.test(e)?{name:"iOS",device:"iPhone"}:/Android/i.test(e)?{name:"Android"}:/Mac OS X|Macintosh/i.test(e)?{name:"macOS"}:/Windows NT/i.test(e)?{name:"Windows"}:/CrOS/i.test(e)?{name:"ChromeOS"}:/Linux/i.test(e)?{name:"Linux"}:{}}function tr(e){if(e)return/mac/i.test(e)?"macOS":/windows/i.test(e)?"Windows":/android/i.test(e)?"Android":/ios/i.test(e)?"iOS":/linux/i.test(e)?"Linux":/chrome os/i.test(e)?"ChromeOS":e}function nr(e,t){const n=se(t);if(n)return e==="Windows"?n==="15"?"11":n==="10"?"10":n:n}function rr(e,t){if(t)return t;if(e)return e==="macOS"?"Mac":e==="Windows"?"Windows PC":e==="Linux"?"Linux PC":e==="ChromeOS"?"Chromebook":e==="Android"?"Android":e==="iOS"?"iPhone":e}async function rt(){if(typeof navigator>"u")return null;const e=navigator.userAgent||"",t=navigator.userAgentData;let n=t?.platform,r,o;if(t?.getHighEntropyValues)try{const d=await t.getHighEntropyValues(["platform","platformVersion","fullVersionList"]);n=d.platform||n,r=d.platformVersion,o=d.fullVersionList}catch{}const s=er(e),i=tr(n||s.name),a=nr(i,r),c=Yn(o||t?.brands),u=Qn(e),h=c.name||u.name,y=c.version||u.version,w={label:rr(i,s.device),osName:i,osVersion:a,browserName:h,browserVersion:y};return Object.values(w).some(d=>!!d)?w:null}const or=["en","fr","de","es","pt-pt","pt-br","it","nl","pl","tr","id","hi"],he="en",bt=new Set(or),sr=[{value:"en",flag:"🇬🇧",label:"English (United Kingdom)"},{value:"fr",flag:"🇫🇷",label:"Français (France)"},{value:"de",flag:"🇩🇪",label:"Deutsch (Deutschland)"},{value:"es",flag:"🇪🇸",label:"Español (España)"},{value:"pt-pt",flag:"🇵🇹",label:"Português (Portugal)"},{value:"pt-br",flag:"🇧🇷",label:"Português (Brasil)"},{value:"it",flag:"🇮🇹",label:"Italiano (Italia)"},{value:"nl",flag:"🇳🇱",label:"Nederlands (Nederland)"},{value:"pl",flag:"🇵🇱",label:"Polski (Polska)"},{value:"tr",flag:"🇹🇷",label:"Türkçe (Türkiye)"},{value:"id",flag:"🇮🇩",label:"Bahasa Indonesia"},{value:"hi",flag:"🇮🇳",label:"हिंदी (भारत)"}];let ot=!1,be=null,Ne=he,st={},Te={};function Xt(e){if(!e)return null;const t=e.trim().toLowerCase();if(!t)return null;const n=t.replace(/_/g,"-");if(bt.has(n))return n;const r=n.split("-")[0];return r==="pt"?"pt-pt":r&&bt.has(r)?r:null}async function kt(e){try{const t=e==="pt-br"?"pt_BR":e==="pt-pt"?"pt_PT":e,n=K.runtime.getURL(`/_locales/${t}/messages.json`),r=await fetch(n);return r.ok?await r.json()??{}:{}}catch{return{}}}function ir(e,t){if(t==null)return e;const n=Array.isArray(t)?t:[t];let r=0;return e.replace(/\$[A-Z0-9_]+\$/g,()=>{const o=n[r];return r+=1,o!=null?String(o):""})}function ar(){const e=K.i18n.getUILanguage?.();return Xt(e)??he}async function cr(){const e=await nt.getValue();return e&&e!=="auto"?Xt(e)??he:ar()}async function ur(){Te=await kt(he),Ne=await cr(),st=Ne===he?Te:await kt(Ne),ot=!0}async function Yt(){ot||(be||(be=ur().finally(()=>{be=null})),await be)}async function lr(){ot=!1,st={},Te={},await Yt()}function v(e,t){const n=st[e]?.message??Te[e]?.message??K.i18n.getMessage(e,Array.isArray(t)?t.map(r=>String(r)):t!=null?[String(t)]:void 0);return n?ir(n,t):e}async function dr(){return await nt.getValue()}async function fr(e){await nt.setValue(e),await lr()}function pr(){return sr}function l(e,t,n){function r(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:i,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);const u=i.prototype,h=Object.keys(u);for(let y=0;y<h.length;y++){const _=h[y];_ in a||(a[_]=u[_].bind(a))}}const o=n?.Parent??Object;class s extends o{}Object.defineProperty(s,"name",{value:e});function i(a){var c;const u=n?.Parent?new s:this;r(u,a),(c=u._zod).deferred??(c.deferred=[]);for(const h of u._zod.deferred)h();return u}return Object.defineProperty(i,"init",{value:r}),Object.defineProperty(i,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}class ae extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Qt extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const en={};function ee(e){return en}function tn(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,o])=>t.indexOf(+r)===-1).map(([r,o])=>o)}function He(e,t){return typeof t=="bigint"?t.toString():t}function it(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function at(e){return e==null}function ct(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}const Et=Symbol("evaluating");function S(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Et)return r===void 0&&(r=Et,r=n()),r},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function ne(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function W(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function St(e){return JSON.stringify(e)}function hr(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const nn="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Ce(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const mr=it(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function me(e){if(Ce(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(Ce(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function rn(e){return me(e)?{...e}:Array.isArray(e)?[...e]:e}const gr=new Set(["string","number","symbol"]);function je(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function q(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function k(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function vr(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function yr(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const s=W(e._zod.def,{get shape(){const i={};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(i[a]=n.shape[a])}return ne(this,"shape",i),i},checks:[]});return q(e,s)}function _r(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const s=W(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete i[a]}return ne(this,"shape",i),i},checks:[]});return q(e,s)}function wr(e,t){if(!me(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const s=e._zod.def.shape;for(const i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=W(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return ne(this,"shape",s),s}});return q(e,o)}function br(e,t){if(!me(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n=W(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return ne(this,"shape",r),r}});return q(e,n)}function kr(e,t){const n=W(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return ne(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return q(e,n)}function Er(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const i=W(t._zod.def,{get shape(){const a=t._zod.def.shape,c={...a};if(n)for(const u in n){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);n[u]&&(c[u]=e?new e({type:"optional",innerType:a[u]}):a[u])}else for(const u in a)c[u]=e?new e({type:"optional",innerType:a[u]}):a[u];return ne(this,"shape",c),c},checks:[]});return q(t,i)}function Sr(e,t,n){const r=W(t._zod.def,{get shape(){const o=t._zod.def.shape,s={...o};if(n)for(const i in n){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);n[i]&&(s[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(const i in o)s[i]=new e({type:"nonoptional",innerType:o[i]});return ne(this,"shape",s),s}});return q(t,r)}function ie(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function on(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function ke(e){return typeof e=="string"?e:e?.message}function te(e,t,n){const r={...e,path:e.path??[]};if(!e.message){const o=ke(e.inst?._zod.def?.error?.(e))??ke(t?.error?.(e))??ke(n.customError?.(e))??ke(n.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function ut(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function ge(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}const sn=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,He,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},an=l("$ZodError",sn),cn=l("$ZodError",sn,{Parent:Error});function zr(e,t=n=>n.message){const n={},r=[];for(const o of e.issues)o.path.length>0?(n[o.path[0]]=n[o.path[0]]||[],n[o.path[0]].push(t(o))):r.push(t(o));return{formErrors:r,fieldErrors:n}}function $r(e,t=n=>n.message){const n={_errors:[]},r=o=>{for(const s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(i=>r({issues:i}));else if(s.code==="invalid_key")r({issues:s.issues});else if(s.code==="invalid_element")r({issues:s.issues});else if(s.path.length===0)n._errors.push(t(s));else{let i=n,a=0;for(;a<s.path.length;){const c=s.path[a];a===s.path.length-1?(i[c]=i[c]||{_errors:[]},i[c]._errors.push(t(s))):i[c]=i[c]||{_errors:[]},i=i[c],a++}}};return r(e),n}const lt=e=>(t,n,r,o)=>{const s=r?Object.assign(r,{async:!1}):{async:!1},i=t._zod.run({value:n,issues:[]},s);if(i instanceof Promise)throw new ae;if(i.issues.length){const a=new(o?.Err??e)(i.issues.map(c=>te(c,s,ee())));throw nn(a,o?.callee),a}return i.value},dt=e=>async(t,n,r,o)=>{const s=r?Object.assign(r,{async:!0}):{async:!0};let i=t._zod.run({value:n,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){const a=new(o?.Err??e)(i.issues.map(c=>te(c,s,ee())));throw nn(a,o?.callee),a}return i.value},Re=e=>(t,n,r)=>{const o=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},o);if(s instanceof Promise)throw new ae;return s.issues.length?{success:!1,error:new(e??an)(s.issues.map(i=>te(i,o,ee())))}:{success:!0,data:s.value}},Ir=Re(cn),De=e=>async(t,n,r)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let s=t._zod.run({value:n,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>te(i,o,ee())))}:{success:!0,data:s.value}},Or=De(cn),Zr=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return lt(e)(t,n,o)},Pr=e=>(t,n,r)=>lt(e)(t,n,r),Tr=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return dt(e)(t,n,o)},Cr=e=>async(t,n,r)=>dt(e)(t,n,r),Lr=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Re(e)(t,n,o)},Ar=e=>(t,n,r)=>Re(e)(t,n,r),xr=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return De(e)(t,n,o)},Br=e=>async(t,n,r)=>De(e)(t,n,r),jr=/^[cC][^\s-]{8,}$/,Rr=/^[0-9a-z]+$/,Dr=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Ur=/^[0-9a-vA-V]{20}$/,Mr=/^[A-Za-z0-9]{27}$/,Fr=/^[a-zA-Z0-9_-]{21}$/,Nr=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Vr=/^([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})$/,zt=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)$/,Jr=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Kr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Wr(){return new RegExp(Kr,"u")}const qr=/^(?:(?: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])$/,Hr=/^(([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}|:))$/,Gr=/^((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])$/,Xr=/^(([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])$/,Yr=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,un=/^[A-Za-z0-9_-]*$/,Qr=/^\+[1-9]\d{6,14}$/,ln="(?:(?:\\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])))",eo=new RegExp(`^${ln}$`);function dn(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function to(e){return new RegExp(`^${dn(e)}$`)}function no(e){const t=dn({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${ln}T(?:${r})$`)}const ro=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},oo=/^(?:true|false)$/i,so=/^[^A-Z]*$/,io=/^[^a-z]*$/,M=l("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),ao=l("$ZodCheckMaxLength",(e,t)=>{var n;M.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!at(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(r._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{const o=r.value;if(o.length<=t.maximum)return;const i=ut(o);r.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),co=l("$ZodCheckMinLength",(e,t)=>{var n;M.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!at(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const o=r.value;if(o.length>=t.minimum)return;const i=ut(o);r.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),uo=l("$ZodCheckLengthEquals",(e,t)=>{var n;M.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!at(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=r=>{const o=r.value,s=o.length;if(s===t.length)return;const i=ut(o),a=s>t.length;r.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),Ue=l("$ZodCheckStringFormat",(e,t)=>{var n,r;M.init(e,t),e._zod.onattach.push(o=>{const s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),lo=l("$ZodCheckRegex",(e,t)=>{Ue.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),fo=l("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=so),Ue.init(e,t)}),po=l("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=io),Ue.init(e,t)}),ho=l("$ZodCheckIncludes",(e,t)=>{M.init(e,t);const n=je(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(o=>{const s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),mo=l("$ZodCheckStartsWith",(e,t)=>{M.init(e,t);const n=new RegExp(`^${je(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),go=l("$ZodCheckEndsWith",(e,t)=>{M.init(e,t);const n=new RegExp(`.*${je(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),vo=l("$ZodCheckOverwrite",(e,t)=>{M.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class yo{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const r=t.split(`
|
|
5
|
+
`).filter(i=>i),o=Math.min(...r.map(i=>i.length-i.trimStart().length)),s=r.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(const i of s)this.content.push(i)}compile(){const t=Function,n=this?.args,o=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...n,o.join(`
|
|
6
|
+
`))}}const _o={major:4,minor:3,patch:6},T=l("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=_o;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const s of o._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(i,a,c)=>{let u=ie(i),h;for(const y of a){if(y._zod.def.when){if(!y._zod.def.when(i))continue}else if(u)continue;const _=i.issues.length,w=y._zod.check(i);if(w instanceof Promise&&c?.async===!1)throw new ae;if(h||w instanceof Promise)h=(h??Promise.resolve()).then(async()=>{await w,i.issues.length!==_&&(u||(u=ie(i,_)))});else{if(i.issues.length===_)continue;u||(u=ie(i,_))}}return h?h.then(()=>i):i},s=(i,a,c)=>{if(ie(i))return i.aborted=!0,i;const u=o(a,r,c);if(u instanceof Promise){if(c.async===!1)throw new ae;return u.then(h=>e._zod.parse(h,c))}return e._zod.parse(u,c)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction==="backward"){const u=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(h=>s(h,i,a)):s(u,i,a)}const c=e._zod.parse(i,a);if(c instanceof Promise){if(a.async===!1)throw new ae;return c.then(u=>o(u,r,a))}return o(c,r,a)}}S(e,"~standard",()=>({validate:o=>{try{const s=Ir(e,o);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Or(e,o).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),ft=l("$ZodString",(e,t)=>{T.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??ro(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),z=l("$ZodStringFormat",(e,t)=>{Ue.init(e,t),ft.init(e,t)}),wo=l("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Vr),z.init(e,t)}),bo=l("$ZodUUID",(e,t)=>{if(t.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=zt(r))}else t.pattern??(t.pattern=zt());z.init(e,t)}),ko=l("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Jr),z.init(e,t)}),Eo=l("$ZodURL",(e,t)=>{z.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),o=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=o.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),So=l("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Wr()),z.init(e,t)}),zo=l("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Fr),z.init(e,t)}),$o=l("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=jr),z.init(e,t)}),Io=l("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Rr),z.init(e,t)}),Oo=l("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Dr),z.init(e,t)}),Zo=l("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Ur),z.init(e,t)}),Po=l("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Mr),z.init(e,t)}),To=l("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=no(t)),z.init(e,t)}),Co=l("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=eo),z.init(e,t)}),Lo=l("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=to(t)),z.init(e,t)}),Ao=l("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Nr),z.init(e,t)}),xo=l("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=qr),z.init(e,t),e._zod.bag.format="ipv4"}),Bo=l("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Hr),z.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),jo=l("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Gr),z.init(e,t)}),Ro=l("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Xr),z.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(r.length!==2)throw new Error;const[o,s]=r;if(!s)throw new Error;const i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function fn(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const Do=l("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Yr),z.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{fn(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function Uo(e){if(!un.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return fn(n)}const Mo=l("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=un),z.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{Uo(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Fo=l("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Qr),z.init(e,t)});function No(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const o=JSON.parse(atob(r));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}const Vo=l("$ZodJWT",(e,t)=>{z.init(e,t),e._zod.check=n=>{No(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Jo=l("$ZodBoolean",(e,t)=>{T.init(e,t),e._zod.pattern=oo,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}const o=n.value;return typeof o=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),n}}),Ko=l("$ZodUnknown",(e,t)=>{T.init(e,t),e._zod.parse=n=>n}),Wo=l("$ZodNever",(e,t)=>{T.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});function $t(e,t,n){e.issues.length&&t.issues.push(...on(n,e.issues)),t.value[n]=e.value}const qo=l("$ZodArray",(e,t)=>{T.init(e,t),e._zod.parse=(n,r)=>{const o=n.value;if(!Array.isArray(o))return n.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),n;n.value=Array(o.length);const s=[];for(let i=0;i<o.length;i++){const a=o[i],c=t.element._zod.run({value:a,issues:[]},r);c instanceof Promise?s.push(c.then(u=>$t(u,n,i))):$t(c,n,i)}return s.length?Promise.all(s).then(()=>n):n}});function Le(e,t,n,r,o){if(e.issues.length){if(o&&!(n in r))return;t.issues.push(...on(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function pn(e){const t=Object.keys(e.shape);for(const r of t)if(!e.shape?.[r]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${r}": expected a Zod schema`);const n=vr(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function hn(e,t,n,r,o,s){const i=[],a=o.keySet,c=o.catchall._zod,u=c.def.type,h=c.optout==="optional";for(const y in t){if(a.has(y))continue;if(u==="never"){i.push(y);continue}const _=c.run({value:t[y],issues:[]},r);_ instanceof Promise?e.push(_.then(w=>Le(w,n,y,t,h))):Le(_,n,y,t,h)}return i.length&&n.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:s}),e.length?Promise.all(e).then(()=>n):n}const Ho=l("$ZodObject",(e,t)=>{if(T.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const a=t.shape;Object.defineProperty(t,"shape",{get:()=>{const c={...a};return Object.defineProperty(t,"shape",{value:c}),c}})}const r=it(()=>pn(t));S(e._zod,"propValues",()=>{const a=t.shape,c={};for(const u in a){const h=a[u]._zod;if(h.values){c[u]??(c[u]=new Set);for(const y of h.values)c[u].add(y)}}return c});const o=Ce,s=t.catchall;let i;e._zod.parse=(a,c)=>{i??(i=r.value);const u=a.value;if(!o(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),a;a.value={};const h=[],y=i.shape;for(const _ of i.keys){const w=y[_],P=w._zod.optout==="optional",d=w._zod.run({value:u[_],issues:[]},c);d instanceof Promise?h.push(d.then(p=>Le(p,a,_,u,P))):Le(d,a,_,u,P)}return s?hn(h,u,a,c,r.value,e):h.length?Promise.all(h).then(()=>a):a}}),Go=l("$ZodObjectJIT",(e,t)=>{Ho.init(e,t);const n=e._zod.parse,r=it(()=>pn(t)),o=_=>{const w=new yo(["shape","payload","ctx"]),P=r.value,d=g=>{const b=St(g);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};w.write("const input = payload.value;");const p=Object.create(null);let f=0;for(const g of P.keys)p[g]=`key_${f++}`;w.write("const newResult = {};");for(const g of P.keys){const b=p[g],E=St(g),x=_[g]?._zod?.optout==="optional";w.write(`const ${b} = ${d(g)};`),x?w.write(`
|
|
7
|
+
if (${b}.issues.length) {
|
|
8
|
+
if (${E} in input) {
|
|
9
|
+
payload.issues = payload.issues.concat(${b}.issues.map(iss => ({
|
|
10
|
+
...iss,
|
|
11
|
+
path: iss.path ? [${E}, ...iss.path] : [${E}]
|
|
12
|
+
})));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (${b}.value === undefined) {
|
|
17
|
+
if (${E} in input) {
|
|
18
|
+
newResult[${E}] = undefined;
|
|
19
|
+
}
|
|
20
|
+
} else {
|
|
21
|
+
newResult[${E}] = ${b}.value;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
`):w.write(`
|
|
25
|
+
if (${b}.issues.length) {
|
|
26
|
+
payload.issues = payload.issues.concat(${b}.issues.map(iss => ({
|
|
27
|
+
...iss,
|
|
28
|
+
path: iss.path ? [${E}, ...iss.path] : [${E}]
|
|
29
|
+
})));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (${b}.value === undefined) {
|
|
33
|
+
if (${E} in input) {
|
|
34
|
+
newResult[${E}] = undefined;
|
|
35
|
+
}
|
|
36
|
+
} else {
|
|
37
|
+
newResult[${E}] = ${b}.value;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
`)}w.write("payload.value = newResult;"),w.write("return payload;");const m=w.compile();return(g,b)=>m(_,g,b)};let s;const i=Ce,a=!en.jitless,u=a&&mr.value,h=t.catchall;let y;e._zod.parse=(_,w)=>{y??(y=r.value);const P=_.value;return i(P)?a&&u&&w?.async===!1&&w.jitless!==!0?(s||(s=o(t.shape)),_=s(_,w),h?hn([],P,_,w,y,e):_):n(_,w):(_.issues.push({expected:"object",code:"invalid_type",input:P,inst:e}),_)}});function It(e,t,n,r){for(const s of e)if(s.issues.length===0)return t.value=s.value,t;const o=e.filter(s=>!ie(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(s=>s.issues.map(i=>te(i,r,ee())))}),t)}const Xo=l("$ZodUnion",(e,t)=>{T.init(e,t),S(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),S(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),S(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),S(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){const o=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>ct(s.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(n)return r(o,s);let i=!1;const a=[];for(const c of t.options){const u=c._zod.run({value:o.value,issues:[]},s);if(u instanceof Promise)a.push(u),i=!0;else{if(u.issues.length===0)return u;a.push(u)}}return i?Promise.all(a).then(c=>It(c,o,e,s)):It(a,o,e,s)}}),Yo=l("$ZodIntersection",(e,t)=>{T.init(e,t),e._zod.parse=(n,r)=>{const o=n.value,s=t.left._zod.run({value:o,issues:[]},r),i=t.right._zod.run({value:o,issues:[]},r);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([c,u])=>Ot(n,c,u)):Ot(n,s,i)}});function Ge(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(me(e)&&me(t)){const n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),o={...e,...t};for(const s of r){const i=Ge(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r<e.length;r++){const o=e[r],s=t[r],i=Ge(o,s);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Ot(e,t,n){const r=new Map;let o;for(const a of t.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(const c of a.keys)r.has(c)||r.set(c,{}),r.get(c).l=!0}else e.issues.push(a);for(const a of n.issues)if(a.code==="unrecognized_keys")for(const c of a.keys)r.has(c)||r.set(c,{}),r.get(c).r=!0;else e.issues.push(a);const s=[...r].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(s.length&&o&&e.issues.push({...o,keys:s}),ie(e))return e;const i=Ge(t.value,n.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}const Qo=l("$ZodEnum",(e,t)=>{T.init(e,t);const n=tn(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(o=>gr.has(typeof o)).map(o=>typeof o=="string"?je(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{const i=o.value;return r.has(i)||o.issues.push({code:"invalid_value",values:n,input:i,inst:e}),o}}),es=l("$ZodTransform",(e,t)=>{T.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new Qt(e.constructor.name);const o=t.transform(n.value,n);if(r.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(n.value=i,n));if(o instanceof Promise)throw new ae;return n.value=o,n}});function Zt(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const mn=l("$ZodOptional",(e,t)=>{T.init(e,t),e._zod.optin="optional",e._zod.optout="optional",S(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),S(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${ct(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>Zt(s,n.value)):Zt(o,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),ts=l("$ZodExactOptional",(e,t)=>{mn.init(e,t),S(e._zod,"values",()=>t.innerType._zod.values),S(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(n,r)=>t.innerType._zod.run(n,r)}),ns=l("$ZodNullable",(e,t)=>{T.init(e,t),S(e._zod,"optin",()=>t.innerType._zod.optin),S(e._zod,"optout",()=>t.innerType._zod.optout),S(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${ct(n.source)}|null)$`):void 0}),S(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),rs=l("$ZodDefault",(e,t)=>{T.init(e,t),e._zod.optin="optional",S(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>Pt(s,t)):Pt(o,t)}});function Pt(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const os=l("$ZodPrefault",(e,t)=>{T.init(e,t),e._zod.optin="optional",S(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),ss=l("$ZodNonOptional",(e,t)=>{T.init(e,t),S(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>Tt(s,e)):Tt(o,e)}});function Tt(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const is=l("$ZodCatch",(e,t)=>{T.init(e,t),S(e._zod,"optin",()=>t.innerType._zod.optin),S(e._zod,"optout",()=>t.innerType._zod.optout),S(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(i=>te(i,r,ee()))},input:n.value}),n.issues=[]),n)):(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(s=>te(s,r,ee()))},input:n.value}),n.issues=[]),n)}}),as=l("$ZodPipe",(e,t)=>{T.init(e,t),S(e._zod,"values",()=>t.in._zod.values),S(e._zod,"optin",()=>t.in._zod.optin),S(e._zod,"optout",()=>t.out._zod.optout),S(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const s=t.out._zod.run(n,r);return s instanceof Promise?s.then(i=>Ee(i,t.in,r)):Ee(s,t.in,r)}const o=t.in._zod.run(n,r);return o instanceof Promise?o.then(s=>Ee(s,t.out,r)):Ee(o,t.out,r)}});function Ee(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const cs=l("$ZodReadonly",(e,t)=>{T.init(e,t),S(e._zod,"propValues",()=>t.innerType._zod.propValues),S(e._zod,"values",()=>t.innerType._zod.values),S(e._zod,"optin",()=>t.innerType?._zod?.optin),S(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(Ct):Ct(o)}});function Ct(e){return e.value=Object.freeze(e.value),e}const us=l("$ZodCustom",(e,t)=>{M.init(e,t),T.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then(s=>Lt(s,n,r,e));Lt(o,n,r,e)}});function Lt(e,t,n,r){if(!e){const o={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(o.params=r._zod.def.params),t.issues.push(ge(o))}}var At;class ls{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];return this._map.set(t,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const o={...r,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function ds(){return new ls}(At=globalThis).__zod_globalRegistry??(At.__zod_globalRegistry=ds());const ue=globalThis.__zod_globalRegistry;function fs(e,t){return new e({type:"string",...k(t)})}function ps(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...k(t)})}function xt(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...k(t)})}function hs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...k(t)})}function ms(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...k(t)})}function gs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...k(t)})}function vs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...k(t)})}function ys(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...k(t)})}function _s(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...k(t)})}function ws(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...k(t)})}function bs(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...k(t)})}function ks(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...k(t)})}function Es(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...k(t)})}function Ss(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...k(t)})}function zs(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...k(t)})}function $s(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...k(t)})}function Is(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...k(t)})}function Os(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...k(t)})}function Zs(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...k(t)})}function Ps(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...k(t)})}function Ts(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...k(t)})}function Cs(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...k(t)})}function Ls(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...k(t)})}function As(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...k(t)})}function xs(e,t){return new e({type:"string",format:"date",check:"string_format",...k(t)})}function Bs(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...k(t)})}function js(e,t){return new e({type:"string",format:"duration",check:"string_format",...k(t)})}function Rs(e,t){return new e({type:"boolean",...k(t)})}function Ds(e){return new e({type:"unknown"})}function Us(e,t){return new e({type:"never",...k(t)})}function gn(e,t){return new ao({check:"max_length",...k(t),maximum:e})}function Ae(e,t){return new co({check:"min_length",...k(t),minimum:e})}function vn(e,t){return new uo({check:"length_equals",...k(t),length:e})}function Ms(e,t){return new lo({check:"string_format",format:"regex",...k(t),pattern:e})}function Fs(e){return new fo({check:"string_format",format:"lowercase",...k(e)})}function Ns(e){return new po({check:"string_format",format:"uppercase",...k(e)})}function Vs(e,t){return new ho({check:"string_format",format:"includes",...k(t),includes:e})}function Js(e,t){return new mo({check:"string_format",format:"starts_with",...k(t),prefix:e})}function Ks(e,t){return new go({check:"string_format",format:"ends_with",...k(t),suffix:e})}function ce(e){return new vo({check:"overwrite",tx:e})}function Ws(e){return ce(t=>t.normalize(e))}function qs(){return ce(e=>e.trim())}function Hs(){return ce(e=>e.toLowerCase())}function Gs(){return ce(e=>e.toUpperCase())}function Xs(){return ce(e=>hr(e))}function Ys(e,t,n){return new e({type:"array",element:t,...k(n)})}function Qs(e,t,n){return new e({type:"custom",check:"custom",fn:t,...k(n)})}function ei(e){const t=ti(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(ge(r,n.value,t._zod.def));else{const o=r;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),n.issues.push(ge(o))}},e(n.value,n)));return t}function ti(e,t){const n=new M({check:"custom",...k(t)});return n._zod.check=e,n}function yn(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??ue,target:t,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 A(e,t,n={path:[],schemaPath:[]}){var r;const o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,n.schemaPath.includes(e)&&(s.cycle=n.path),s.schema;const i={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,i);const a=e._zod.toJSONSchema?.();if(a)i.schema=a;else{const h={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,h);else{const _=i.schema,w=t.processors[o.type];if(!w)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);w(e,t,_,h)}const y=e._zod.parent;y&&(i.ref||(i.ref=y),A(y,t,h),t.seen.get(y).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(i.schema,c),t.io==="input"&&B(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&i.schema._prefault&&((r=i.schema).default??(r.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function _n(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const i of e.seen.entries()){const a=e.metadataRegistry.get(i[0])?.id;if(a){const c=r.get(a);if(c&&c!==i[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(a,i[0])}}const o=i=>{const a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const y=e.external.registry.get(i[0])?.id,_=e.external.uri??(P=>P);if(y)return{ref:_(y)};const w=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=w,{defId:w,ref:`${_("__shared")}#/${a}/${w}`}}if(i[1]===n)return{ref:"#"};const u=`#/${a}/`,h=i[1].schema.id??`__schema${e.counter++}`;return{defId:h,ref:u+h}},s=i=>{if(i[1].schema.$ref)return;const a=i[1],{ref:c,defId:u}=o(i);a.def={...a.schema},u&&(a.defId=u);const h=a.schema;for(const y in h)delete h[y];h.$ref=c};if(e.cycles==="throw")for(const i of e.seen.entries()){const a=i[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
|
|
41
|
+
|
|
42
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const i of e.seen.entries()){const a=i[1];if(t===i[0]){s(i);continue}if(e.external){const u=e.external.registry.get(i[0])?.id;if(t!==i[0]&&u){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(a.cycle){s(i);continue}if(a.count>1&&e.reused==="ref"){s(i);continue}}}function wn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=i=>{const a=e.seen.get(i);if(a.ref===null)return;const c=a.def??a.schema,u={...c},h=a.ref;if(a.ref=null,h){r(h);const _=e.seen.get(h),w=_.schema;if(w.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(w)):Object.assign(c,w),Object.assign(c,u),i._zod.parent===h)for(const d in c)d==="$ref"||d==="allOf"||d in u||delete c[d];if(w.$ref&&_.def)for(const d in c)d==="$ref"||d==="allOf"||d in _.def&&JSON.stringify(c[d])===JSON.stringify(_.def[d])&&delete c[d]}const y=i._zod.parent;if(y&&y!==h){r(y);const _=e.seen.get(y);if(_?.schema.$ref&&(c.$ref=_.schema.$ref,_.def))for(const w in c)w==="$ref"||w==="allOf"||w in _.def&&JSON.stringify(c[w])===JSON.stringify(_.def[w])&&delete c[w]}e.override({zodSchema:i,jsonSchema:c,path:a.path??[]})};for(const i of[...e.seen.entries()].reverse())r(i[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const i=e.external.registry.get(t)?.id;if(!i)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(i)}Object.assign(o,n.def??n.schema);const s=e.external?.defs??{};for(const i of e.seen.entries()){const a=i[1];a.def&&a.defId&&(s[a.defId]=a.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{const i=JSON.parse(JSON.stringify(o));return Object.defineProperty(i,"~standard",{value:{...t["~standard"],jsonSchema:{input:xe(t,"input",e.processors),output:xe(t,"output",e.processors)}},enumerable:!1,writable:!1}),i}catch{throw new Error("Error converting schema to JSON.")}}function B(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return B(r.element,n);if(r.type==="set")return B(r.valueType,n);if(r.type==="lazy")return B(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return B(r.innerType,n);if(r.type==="intersection")return B(r.left,n)||B(r.right,n);if(r.type==="record"||r.type==="map")return B(r.keyType,n)||B(r.valueType,n);if(r.type==="pipe")return B(r.in,n)||B(r.out,n);if(r.type==="object"){for(const o in r.shape)if(B(r.shape[o],n))return!0;return!1}if(r.type==="union"){for(const o of r.options)if(B(o,n))return!0;return!1}if(r.type==="tuple"){for(const o of r.items)if(B(o,n))return!0;return!!(r.rest&&B(r.rest,n))}return!1}const ni=(e,t={})=>n=>{const r=yn({...n,processors:t});return A(e,r),_n(r,e),wn(r,e)},xe=(e,t,n={})=>r=>{const{libraryOptions:o,target:s}=r??{},i=yn({...o??{},target:s,io:t,processors:n});return A(e,i),_n(i,e),wn(i,e)},ri={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},oi=(e,t,n,r)=>{const o=n;o.type="string";const{minimum:s,maximum:i,format:a,patterns:c,contentEncoding:u}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),a&&(o.format=ri[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){const h=[...c];h.length===1?o.pattern=h[0].source:h.length>1&&(o.allOf=[...h.map(y=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:y.source}))])}},si=(e,t,n,r)=>{n.type="boolean"},ii=(e,t,n,r)=>{n.not={}},ai=(e,t,n,r)=>{},ci=(e,t,n,r)=>{const o=e._zod.def,s=tn(o.entries);s.every(i=>typeof i=="number")&&(n.type="number"),s.every(i=>typeof i=="string")&&(n.type="string"),n.enum=s},ui=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},li=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},di=(e,t,n,r)=>{const o=n,s=e._zod.def,{minimum:i,maximum:a}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=A(s.element,t,{...r,path:[...r.path,"items"]})},fi=(e,t,n,r)=>{const o=n,s=e._zod.def;o.type="object",o.properties={};const i=s.shape;for(const u in i)o.properties[u]=A(i[u],t,{...r,path:[...r.path,"properties",u]});const a=new Set(Object.keys(i)),c=new Set([...a].filter(u=>{const h=s.shape[u]._zod;return t.io==="input"?h.optin===void 0:h.optout===void 0}));c.size>0&&(o.required=Array.from(c)),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=A(s.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},pi=(e,t,n,r)=>{const o=e._zod.def,s=o.inclusive===!1,i=o.options.map((a,c)=>A(a,t,{...r,path:[...r.path,s?"oneOf":"anyOf",c]}));s?n.oneOf=i:n.anyOf=i},hi=(e,t,n,r)=>{const o=e._zod.def,s=A(o.left,t,{...r,path:[...r.path,"allOf",0]}),i=A(o.right,t,{...r,path:[...r.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(s)?s.allOf:[s],...a(i)?i.allOf:[i]];n.allOf=c},mi=(e,t,n,r)=>{const o=e._zod.def,s=A(o.innerType,t,r),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,n.nullable=!0):n.anyOf=[s,{type:"null"}]},gi=(e,t,n,r)=>{const o=e._zod.def;A(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},vi=(e,t,n,r)=>{const o=e._zod.def;A(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,n.default=JSON.parse(JSON.stringify(o.defaultValue))},yi=(e,t,n,r)=>{const o=e._zod.def;A(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},_i=(e,t,n,r)=>{const o=e._zod.def;A(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=i},wi=(e,t,n,r)=>{const o=e._zod.def,s=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;A(s,t,r);const i=t.seen.get(e);i.ref=s},bi=(e,t,n,r)=>{const o=e._zod.def;A(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,n.readOnly=!0},bn=(e,t,n,r)=>{const o=e._zod.def;A(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},ki=l("ZodISODateTime",(e,t)=>{To.init(e,t),Z.init(e,t)});function Ei(e){return As(ki,e)}const Si=l("ZodISODate",(e,t)=>{Co.init(e,t),Z.init(e,t)});function zi(e){return xs(Si,e)}const $i=l("ZodISOTime",(e,t)=>{Lo.init(e,t),Z.init(e,t)});function Ii(e){return Bs($i,e)}const Oi=l("ZodISODuration",(e,t)=>{Ao.init(e,t),Z.init(e,t)});function Zi(e){return js(Oi,e)}const kn=(e,t)=>{an.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>$r(e,n)},flatten:{value:n=>zr(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,He,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,He,2)}},isEmpty:{get(){return e.issues.length===0}}})},En=l("ZodError",kn),R=l("ZodError",kn,{Parent:Error}),Pi=lt(R),Ti=dt(R),Ci=Re(R),Li=De(R),Ai=Zr(R),xi=Pr(R),Bi=Tr(R),ji=Cr(R),Ri=Lr(R),Di=Ar(R),Ui=xr(R),Mi=Br(R),C=l("ZodType",(e,t)=>(T.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:xe(e,"input"),output:xe(e,"output")}}),e.toJSONSchema=ni(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(W(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(n,r)=>q(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>Pi(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Ci(e,n,r),e.parseAsync=async(n,r)=>Ti(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>Li(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>Ai(e,n,r),e.decode=(n,r)=>xi(e,n,r),e.encodeAsync=async(n,r)=>Bi(e,n,r),e.decodeAsync=async(n,r)=>ji(e,n,r),e.safeEncode=(n,r)=>Ri(e,n,r),e.safeDecode=(n,r)=>Di(e,n,r),e.safeEncodeAsync=async(n,r)=>Ui(e,n,r),e.safeDecodeAsync=async(n,r)=>Mi(e,n,r),e.refine=(n,r)=>e.check(Aa(n,r)),e.superRefine=n=>e.check(xa(n)),e.overwrite=n=>e.check(ce(n)),e.optional=()=>Rt(e),e.exactOptional=()=>ba(e),e.nullable=()=>Dt(e),e.nullish=()=>Rt(Dt(e)),e.nonoptional=n=>Ia(e,n),e.array=()=>fa(e),e.or=n=>ma([e,n]),e.and=n=>va(e,n),e.transform=n=>Ut(e,_a(n)),e.default=n=>Sa(e,n),e.prefault=n=>$a(e,n),e.catch=n=>Za(e,n),e.pipe=n=>Ut(e,n),e.readonly=()=>Ca(e),e.describe=n=>{const r=e.clone();return ue.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return ue.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return ue.get(e);const r=e.clone();return ue.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),Sn=l("_ZodString",(e,t)=>{ft.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,o,s)=>oi(e,r,o);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(Ms(...r)),e.includes=(...r)=>e.check(Vs(...r)),e.startsWith=(...r)=>e.check(Js(...r)),e.endsWith=(...r)=>e.check(Ks(...r)),e.min=(...r)=>e.check(Ae(...r)),e.max=(...r)=>e.check(gn(...r)),e.length=(...r)=>e.check(vn(...r)),e.nonempty=(...r)=>e.check(Ae(1,...r)),e.lowercase=r=>e.check(Fs(r)),e.uppercase=r=>e.check(Ns(r)),e.trim=()=>e.check(qs()),e.normalize=(...r)=>e.check(Ws(...r)),e.toLowerCase=()=>e.check(Hs()),e.toUpperCase=()=>e.check(Gs()),e.slugify=()=>e.check(Xs())}),Fi=l("ZodString",(e,t)=>{ft.init(e,t),Sn.init(e,t),e.email=n=>e.check(ps(Vi,n)),e.url=n=>e.check(ys(Ji,n)),e.jwt=n=>e.check(Ls(ia,n)),e.emoji=n=>e.check(_s(Ki,n)),e.guid=n=>e.check(xt(Bt,n)),e.uuid=n=>e.check(hs(Se,n)),e.uuidv4=n=>e.check(ms(Se,n)),e.uuidv6=n=>e.check(gs(Se,n)),e.uuidv7=n=>e.check(vs(Se,n)),e.nanoid=n=>e.check(ws(Wi,n)),e.guid=n=>e.check(xt(Bt,n)),e.cuid=n=>e.check(bs(qi,n)),e.cuid2=n=>e.check(ks(Hi,n)),e.ulid=n=>e.check(Es(Gi,n)),e.base64=n=>e.check(Ps(ra,n)),e.base64url=n=>e.check(Ts(oa,n)),e.xid=n=>e.check(Ss(Xi,n)),e.ksuid=n=>e.check(zs(Yi,n)),e.ipv4=n=>e.check($s(Qi,n)),e.ipv6=n=>e.check(Is(ea,n)),e.cidrv4=n=>e.check(Os(ta,n)),e.cidrv6=n=>e.check(Zs(na,n)),e.e164=n=>e.check(Cs(sa,n)),e.datetime=n=>e.check(Ei(n)),e.date=n=>e.check(zi(n)),e.time=n=>e.check(Ii(n)),e.duration=n=>e.check(Zi(n))});function Ni(e){return fs(Fi,e)}const Z=l("ZodStringFormat",(e,t)=>{z.init(e,t),Sn.init(e,t)}),Vi=l("ZodEmail",(e,t)=>{ko.init(e,t),Z.init(e,t)}),Bt=l("ZodGUID",(e,t)=>{wo.init(e,t),Z.init(e,t)}),Se=l("ZodUUID",(e,t)=>{bo.init(e,t),Z.init(e,t)}),Ji=l("ZodURL",(e,t)=>{Eo.init(e,t),Z.init(e,t)}),Ki=l("ZodEmoji",(e,t)=>{So.init(e,t),Z.init(e,t)}),Wi=l("ZodNanoID",(e,t)=>{zo.init(e,t),Z.init(e,t)}),qi=l("ZodCUID",(e,t)=>{$o.init(e,t),Z.init(e,t)}),Hi=l("ZodCUID2",(e,t)=>{Io.init(e,t),Z.init(e,t)}),Gi=l("ZodULID",(e,t)=>{Oo.init(e,t),Z.init(e,t)}),Xi=l("ZodXID",(e,t)=>{Zo.init(e,t),Z.init(e,t)}),Yi=l("ZodKSUID",(e,t)=>{Po.init(e,t),Z.init(e,t)}),Qi=l("ZodIPv4",(e,t)=>{xo.init(e,t),Z.init(e,t)}),ea=l("ZodIPv6",(e,t)=>{Bo.init(e,t),Z.init(e,t)}),ta=l("ZodCIDRv4",(e,t)=>{jo.init(e,t),Z.init(e,t)}),na=l("ZodCIDRv6",(e,t)=>{Ro.init(e,t),Z.init(e,t)}),ra=l("ZodBase64",(e,t)=>{Do.init(e,t),Z.init(e,t)}),oa=l("ZodBase64URL",(e,t)=>{Mo.init(e,t),Z.init(e,t)}),sa=l("ZodE164",(e,t)=>{Fo.init(e,t),Z.init(e,t)}),ia=l("ZodJWT",(e,t)=>{Vo.init(e,t),Z.init(e,t)}),aa=l("ZodBoolean",(e,t)=>{Jo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>si(e,n,r)});function Ve(e){return Rs(aa,e)}const ca=l("ZodUnknown",(e,t)=>{Ko.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ai()});function jt(){return Ds(ca)}const ua=l("ZodNever",(e,t)=>{Wo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ii(e,n,r)});function la(e){return Us(ua,e)}const da=l("ZodArray",(e,t)=>{qo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>di(e,n,r,o),e.element=t.element,e.min=(n,r)=>e.check(Ae(n,r)),e.nonempty=n=>e.check(Ae(1,n)),e.max=(n,r)=>e.check(gn(n,r)),e.length=(n,r)=>e.check(vn(n,r)),e.unwrap=()=>e.element});function fa(e,t){return Ys(da,e,t)}const pa=l("ZodObject",(e,t)=>{Go.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>fi(e,n,r,o),S(e,"shape",()=>t.shape),e.keyof=()=>$n(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:jt()}),e.loose=()=>e.clone({...e._zod.def,catchall:jt()}),e.strict=()=>e.clone({...e._zod.def,catchall:la()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>wr(e,n),e.safeExtend=n=>br(e,n),e.merge=n=>kr(e,n),e.pick=n=>yr(e,n),e.omit=n=>_r(e,n),e.partial=(...n)=>Er(In,e,n[0]),e.required=(...n)=>Sr(On,e,n[0])});function zn(e,t){const n={type:"object",shape:e??{},...k(t)};return new pa(n)}const ha=l("ZodUnion",(e,t)=>{Xo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>pi(e,n,r,o),e.options=t.options});function ma(e,t){return new ha({type:"union",options:e,...k(t)})}const ga=l("ZodIntersection",(e,t)=>{Yo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>hi(e,n,r,o)});function va(e,t){return new ga({type:"intersection",left:e,right:t})}const Xe=l("ZodEnum",(e,t)=>{Qo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,o,s)=>ci(e,r,o),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,o)=>{const s={};for(const i of r)if(n.has(i))s[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new Xe({...t,checks:[],...k(o),entries:s})},e.exclude=(r,o)=>{const s={...t.entries};for(const i of r)if(n.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new Xe({...t,checks:[],...k(o),entries:s})}});function $n(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Xe({type:"enum",entries:n,...k(t)})}const ya=l("ZodTransform",(e,t)=>{es.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>li(e,n),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new Qt(e.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(ge(s,n.value,t));else{const i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=e),n.issues.push(ge(i))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(s=>(n.value=s,n)):(n.value=o,n)}});function _a(e){return new ya({type:"transform",transform:e})}const In=l("ZodOptional",(e,t)=>{mn.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>bn(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Rt(e){return new In({type:"optional",innerType:e})}const wa=l("ZodExactOptional",(e,t)=>{ts.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>bn(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function ba(e){return new wa({type:"optional",innerType:e})}const ka=l("ZodNullable",(e,t)=>{ns.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>mi(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Dt(e){return new ka({type:"nullable",innerType:e})}const Ea=l("ZodDefault",(e,t)=>{rs.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>vi(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Sa(e,t){return new Ea({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():rn(t)}})}const za=l("ZodPrefault",(e,t)=>{os.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>yi(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function $a(e,t){return new za({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():rn(t)}})}const On=l("ZodNonOptional",(e,t)=>{ss.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>gi(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Ia(e,t){return new On({type:"nonoptional",innerType:e,...k(t)})}const Oa=l("ZodCatch",(e,t)=>{is.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>_i(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Za(e,t){return new Oa({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const Pa=l("ZodPipe",(e,t)=>{as.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>wi(e,n,r,o),e.in=t.in,e.out=t.out});function Ut(e,t){return new Pa({type:"pipe",in:e,out:t})}const Ta=l("ZodReadonly",(e,t)=>{cs.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>bi(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Ca(e){return new Ta({type:"readonly",innerType:e})}const La=l("ZodCustom",(e,t)=>{us.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ui(e,n)});function Aa(e,t={}){return Qs(La,e,t)}function xa(e){return ei(e)}const Ba=zn({wideFeed:Ve(),fontSize:Ve(),autoExpandPosts:Ve()}),ja=zn({status:$n(["active","trial-active","trial-expired","revoked"]),features:Ba,expiresAt:Ni().optional()}),le={wideFeed:!1,fontSize:!1,autoExpandPosts:!1},Zn=typeof window>"u",Ra=24,Da=1,Ua=6,Ye=[300*1e3,1800*1e3,360*60*1e3],Mt=Ye.length;async function pt(e,t){const n=`${Gt}${e.startsWith("/")?"":"/"}${e}`,r=new Headers(t?.headers??void 0);if(r.set("x-linkfeed-extension-version",K.runtime.getManifest().version),Zn){const a=await fetch(n,{...t,headers:r}),c=await a.json().catch(()=>null);return{ok:a.ok,status:a.status,data:c}}const o={};r.forEach((a,c)=>{o[c]=a});const s={type:"linkfeed_api_fetch",url:n,method:t?.method||"GET",headers:o,body:typeof t?.body=="string"?t.body:void 0},i=await K.runtime.sendMessage(s);return i||{ok:!1,status:0,data:null}}async function Ma(e){try{return await K.runtime.sendMessage({type:"linkfeed_license_refresh",force:!!e?.force})??null}catch{return null}}async function ht(){return await Gn.getValue()}async function Qe(){return await Be.getValue()}async function Fa(e){await Be.setValue(e)}async function mt(){return await Wt.getValue()}async function Pn(e){const t={...e,cachedAt:Date.now()};await Wt.setValue(t)}function ze(e){const t=Un*60*60*1e3;return Date.now()-e.cachedAt<t}function Na(e){return e.status==="trial-active"?Da*60*60*1e3:e.status==="active"?Ra*60*60*1e3:Ua*60*60*1e3}function Va(e){return Date.now()-e.cachedAt<Na(e)}async function Ja(){return await Ht.getValue()}async function Je(e){await Ht.setValue(e)}function Ft(e){const t=Math.min(Math.max(e-1,0),Ye.length-1);return Ye[t]}async function Ka(e){const t=await qt.getValue(),n=await mt(),r=await Ja(),o=!!e?.force;if(!t)return{status:"revoked",features:le};if(!o&&n&&Va(n))return n;if(!o&&r.retryAfter&&Date.now()<r.retryAfter)return n&&ze(n)?n:{status:"revoked",features:le};if(typeof navigator<"u"&&!navigator.onLine&&n&&ze(n))return console.log("Offline: Using cached license"),n;try{new URL(`${Gt}/api/license/status`).searchParams.set("deviceToken",t);const i=await rt(),a=await pt(`/api/license/status?deviceToken=${encodeURIComponent(t)}`,{method:"GET",headers:{"Content-Type":"application/json",...i?{"X-Linkfeed-Device-Meta":JSON.stringify(i)}:{}}});if(!a.ok||!a.data){const u=Math.min(r.failureCount+1,Mt),h=Date.now()+Ft(u);return await Je({failureCount:u,retryAfter:h}),n&&ze(n)?n:{status:"revoked",features:le}}const c=ja.parse(a.data);return await Pn(c),await Je({failureCount:0,retryAfter:0}),c}catch{const i=Math.min(r.failureCount+1,Mt),a=Date.now()+Ft(i);return await Je({failureCount:i,retryAfter:a}),n&&ze(n)?n:{status:"revoked",features:le}}}async function Wa(e){if(Zn)return Ka(e);const t=await Ma(e);if(t)return t;const n=await mt();return n||{status:"revoked",features:le}}async function qa(e){await qt.setValue(e)}async function Ha(e){const t=await ht(),n=await rt();if(typeof navigator<"u"&&!navigator.onLine)return{success:!1,message:v("errorNoInternet")};try{const r=await pt("/api/license/link/request",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,deviceId:t,...n?{deviceMeta:n}:{}})}),o=r.data??{};return r.ok?{success:!0,message:o.message||"Check your email to confirm",activationToken:o.activationToken}:{success:!1,message:o.error||"Failed to send link"}}catch(r){return console.error("Failed to request license link:",r),{success:!1,message:r instanceof En?v("errorServerInvalid"):v("errorConnectFailed")}}}async function Ga(e){const t=await ht();if(typeof navigator<"u"&&!navigator.onLine)return{success:!1,message:v("errorNoInternet")};try{const n=await rt(),o=await pt("/api/license/link/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n?{activationToken:e,deviceId:t,deviceMeta:n}:{activationToken:e,deviceId:t})}),s=o.data??{};return o.ok?(s.deviceToken&&await qa(s.deviceToken),s.email&&await Fa(s.email),s.license&&await Pn(s.license),{success:!0,message:"License linked",license:s.license,deviceToken:s.deviceToken}):{success:!1,message:s.error||"Failed to activate license",status:s.status}}catch(n){return console.error("Failed to activate license:",n),{success:!1,message:n instanceof En?v("errorServerInvalid"):v("errorConnectFailed")}}}function D(e){return e.status==="active"?"pro":e.status==="trial-active"?"trial":e.status==="trial-expired"?"expired":"free"}function $e(e){const t=D(e),n=document.getElementById("status-badge"),r=document.querySelectorAll(".premium-feature");if(r.forEach(o=>{const s=o.querySelector(".pro-badge");s&&s.classList.remove("hidden")}),n)switch(n.className=`status-badge ${t}`,t){case"pro":n.textContent=v("statusPro"),Be.getValue().then(o=>{n.setAttribute("data-title",v("licensedTo",o||v("genericYou")))});break;case"trial":n.textContent=v("statusTrial"),e.expiresAt&&n.setAttribute("data-title",v("trialExpiresIn",Xa(e.expiresAt)));break;case"expired":n.textContent=v("statusFree"),n.className="status-badge free",n.setAttribute("data-title",v("trialExpiredBadge"));break;default:n.textContent=v("statusFree"),n.setAttribute("data-title",v("upgradeToPremium"))}t==="trial"?r.forEach(o=>o.classList.remove("locked")):t==="pro"?r.forEach(o=>{o.classList.remove("locked");const s=o.querySelector(".pro-badge");s&&s.classList.add("hidden")}):t==="expired"?r.forEach(o=>o.classList.add("locked")):r.forEach(o=>o.classList.add("locked"))}function Xa(e){const t=new Date,r=new Date(e).getTime()-t.getTime();if(r<=0)return v("expiredShort");const o=Math.floor(r/(1e3*60*60*24)),s=Math.floor(r%(1e3*60*60*24)/(1e3*60*60));if(o>0){const c=v(o===1?"unitDay":"unitDays");if(s>0){const u=v(s===1?"unitHour":"unitHours");return`${o} ${c} ${s} ${u}`}return`${o} ${c}`}const i=Math.max(s,1),a=v(i===1?"unitHour":"unitHours");return`${i} ${a}`}async function Ya(){const e=await Kt.getValue(),t=e.hideSidebars??e.removeSidebars??!0;V("globalEnabled",e.globalEnabled),V("hideSidebars",t),V("hidePromoted",e.hidePromoted??!1),Ke("feedWidth",e.feedWidth),Ke("feedSpacing",e.feedSpacing??24),V("autoExpandPosts",e.autoExpandPosts),V("hideRemovedFeedCards",e.hideRemovedFeedCards??!0),V("hideStartPost",e.hideStartPost),V("hideMessenger",e.hideMessenger),V("hideNavBar",e.hideNavBar),Ke("fontSize",e.fontSize),Cn(e.globalEnabled)}function V(e,t){const n=document.getElementById(e);n&&(n.checked=t)}function Ke(e,t){const n=document.getElementById(e);n&&(n.value=String(t),Tn(e,t))}function Tn(e,t){const n=document.getElementById(`${e}-value`);n&&(n.textContent=`${t}px`)}async function G(){const e=J("globalEnabled"),t={globalEnabled:e,hideSidebars:J("hideSidebars"),hidePromoted:J("hidePromoted"),feedWidth:Number(document.getElementById("feedWidth").value),feedSpacing:Number(document.getElementById("feedSpacing").value),autoExpandPosts:J("autoExpandPosts"),hideRemovedFeedCards:J("hideRemovedFeedCards"),hideStartPost:J("hideStartPost"),hideMessenger:J("hideMessenger"),hideNavBar:J("hideNavBar"),fontSize:Number(document.getElementById("fontSize").value)};await Kt.setValue(t),Cn(e)}function Cn(e){document.querySelectorAll(".feature-container").forEach(n=>{e?n.classList.remove("disabled"):n.classList.add("disabled")})}function J(e){const t=document.getElementById(e);return t?t.checked:!1}let Q=null,ve=null,et=null,Ie=null;function Oe(e){et=e}function Ln(e){Me(),Ie=window.setInterval(()=>{Bn(e)},4e3)}function Me(){Ie&&(clearInterval(Ie),Ie=null)}function An(){const e=document.getElementById("trial-modal"),t=document.getElementById("modal-email-step"),n=document.getElementById("modal-check-email-step"),r=document.getElementById("modal-expired-step");e?.classList.remove("hidden"),r?.classList.add("hidden"),Q||(t?.classList.remove("hidden"),n?.classList.add("hidden"),document.getElementById("modal-email").value="",document.getElementById("modal-email-error")?.classList.add("hidden"),document.getElementById("modal-check-email-error")?.classList.add("hidden"),setTimeout(()=>document.getElementById("modal-email")?.focus(),100))}function gt(){document.getElementById("trial-modal")?.classList.add("hidden"),Me()}async function vt(){Q=null,ve=null,await Pe.removeValue()}async function Nt(){gt(),await vt(),document.getElementById("modal-email-step")?.classList.remove("hidden"),document.getElementById("modal-check-email-step")?.classList.add("hidden"),document.getElementById("modal-email-error")?.classList.add("hidden"),document.getElementById("modal-check-email-error")?.classList.add("hidden")}function xn(){document.getElementById("modal-email-step")?.classList.add("hidden"),document.getElementById("modal-check-email-step")?.classList.remove("hidden");const e=document.getElementById("modal-email-display");if(e&&Q){e.textContent=Q;const t=document.querySelector("#modal-check-email-step .modal-desc");t&&(t.textContent=v("checkEmailDesc",Q))}}async function Qa(){await vt(),document.getElementById("modal-email-step")?.classList.remove("hidden"),document.getElementById("modal-check-email-step")?.classList.add("hidden"),document.getElementById("modal-email-error")?.classList.add("hidden"),document.getElementById("modal-check-email-error")?.classList.add("hidden")}function tt(){const e=document.getElementById("trial-modal"),t=document.getElementById("modal-email-step"),n=document.getElementById("modal-check-email-step"),r=document.getElementById("modal-expired-step");e?.classList.remove("hidden"),t?.classList.add("hidden"),n?.classList.add("hidden"),r?.classList.remove("hidden"),Me();const o=document.getElementById("modal-upgrade-btn");o&&(o.onclick=()=>{Be.getValue().then(i=>{const a=i?`?email=${encodeURIComponent(i)}`:"";K.tabs.create({url:`${X.UPGRADE}${a}`})})});const s=document.getElementById("modal-close-btn");s&&(s.onclick=gt)}async function Vt(e){const t=document.getElementById("modal-email"),n=document.getElementById("modal-email-error"),r=document.getElementById("modal-send-link-btn"),o=t?.value.trim();if(!o||!o.includes("@")){n&&(n.textContent=v("errorInvalidEmail"),n.classList.remove("hidden"));return}r.disabled=!0,r.textContent=v("sending"),n?.classList.add("hidden");const s=await Ha(o);if(!s.success||!s.activationToken){n&&(n.textContent=s.message,n.classList.remove("hidden")),r.disabled=!1,r.textContent=v("sendLink");return}Q=o,ve=s.activationToken,await Pe.setValue({email:o,activationToken:s.activationToken,timestamp:Date.now()}),xn(),Ln(e),r.disabled=!1,r.textContent=v("sendLink")}async function Bn(e){if(!ve)return;const t=document.getElementById("modal-check-email-error"),n=document.getElementById("modal-verify-btn");n.disabled=!0,n.textContent=v("verifying"),t?.classList.add("hidden");const r=await Ga(ve);if(!r.success){if(r.status==="email_unverified"){n.disabled=!1,n.textContent=v("verifyBtn");return}r.status==="trial_used"?tt():t&&(t.textContent=r.message,t.classList.remove("hidden")),n.disabled=!1,n.textContent=v("verifyBtn");return}await vt(),gt(),await e(),Me()}async function ec(e){try{const t=await Pe.getValue();if(t&&t.email&&t.activationToken&&t.timestamp){const n=Date.now()-t.timestamp<36e5,r=et?D(et):"free";n&&r==="free"?(Q=t.email,ve=t.activationToken,An(),xn(),Ln(e)):n||await Pe.removeValue()}}catch(t){console.error("Failed to restore pending state:",t)}}let O=null,Y=null,U="hides",We="hides";document.addEventListener("DOMContentLoaded",async()=>{await Yt(),jn(),await Ya(),await pe(),await ec(pe),await Rn(),rc(),Ze()});function jn(){document.title=v("extensionName");const e=document.getElementById("global-toggle-label");e&&e.setAttribute("title",v("powerToggleTitle"));const t=document.getElementById("open-settings-btn");t&&(t.setAttribute("title",v("settingsButtonTitle")),t.setAttribute("aria-label",v("settingsButtonTitle")));const n=document.getElementById("open-hide-btn");n&&(n.setAttribute("title",v("hideButtonTitle")),n.setAttribute("aria-label",v("hideButtonTitle")));const r=document.getElementById("open-display-btn");r&&(r.setAttribute("title",v("displayButtonTitle")),r.setAttribute("aria-label",v("displayButtonTitle"))),Object.entries({hideSidebars:"removeSidebars",hidePromoted:"hidePromoted",hideStartPost:"hideStartPost",hideMessenger:"hideMessenger",hideNavBar:"hideNavBar",autoExpandPosts:"autoExpandPosts",hideRemovedFeedCards:"hideRemovedFeedCards"}).forEach(([$,x])=>{const I=document.getElementById($)?.parentElement?.querySelector(".setting-label");I&&(I.textContent=v(x))});const s=document.querySelector("#fontSize")?.parentElement?.querySelector(".section-label");s&&(s.textContent=v("textSize"));const i=document.querySelector("#feedWidth")?.parentElement?.querySelector(".section-label");i&&(i.textContent=v("feedWidth"));const a=document.querySelector("#feedSpacing")?.parentElement?.querySelector(".section-label");a&&(a.textContent=v("postSpacing"));const c=document.getElementById("settings-title");c&&(c.textContent=v("settingsPageTitle"));const u=document.getElementById("settings-language-label");u&&(u.textContent=v("settingsLanguageLabel"));const h=document.getElementById("settings-language-help");h&&(h.textContent=v("settingsLanguageHelp"));const y=document.getElementById("settings-subscription-title");y&&(y.textContent=v("settingsSubscriptionTitle"));const _=document.getElementById("settings-subscription-status-label");_&&(_.textContent=v("settingsSubscriptionStatusLabel"));const w=document.getElementById("settings-account-btn");w&&(w.textContent=v("settingsAccountButton"));const P=document.getElementById("settings-upgrade-btn");P&&(P.textContent=v("settingsUpgradeButton"));const d=document.getElementById("settings-version-label");d&&(d.textContent=v("settingsVersionLabel"));const p=($,x,I)=>{const j=document.querySelector(`#${$} ${x}`);j&&(j.textContent=v(I))};p("modal-email-step","h2","unlockProTitle"),p("modal-email-step",".modal-desc","unlockProDesc");const f=document.getElementById("modal-email");f&&(f.placeholder=v("emailPlaceholder"));const m=document.getElementById("modal-send-link-btn");m&&(m.textContent=v("sendLink")),p("modal-check-email-step","h2","checkEmailTitle");const g=document.getElementById("modal-verify-btn");g&&(g.textContent=v("verifyBtn"));const b=document.getElementById("modal-back-btn");b&&(b.textContent=v("differentEmail")),p("modal-expired-step","h2","expiredTitle"),p("modal-expired-step",".modal-desc","expiredDesc");const E=document.getElementById("modal-upgrade-btn");E&&(E.textContent=v("upgradeBtn")),tc(),fe()}function tc(){const e=document.getElementById("settings-version-value");if(!e)return;const t=K.runtime.getManifest().version;e.textContent=`v${t}`}function nc(e){if(!e)return 0;const t=new Date(e).getTime()-Date.now();return t<=0?0:Math.max(1,Math.ceil(t/(1e3*60*60)))}function fe(e){const t=document.getElementById("settings-subscription-status"),n=document.getElementById("settings-subscription-detail"),r=document.getElementById("settings-upgrade-btn");if(!t||!n||!r)return;const o=O?D(O):"free";let s=v("settingsSubscriptionStatusFree"),i=v("settingsSubscriptionFreeDetail"),a="subscription-status-free",c=!1;if(o==="pro")s=v("settingsSubscriptionStatusLifetime"),a="subscription-status-active";else if(o==="trial"){s=v("settingsSubscriptionStatusTrial"),a="subscription-status-trial";const u=nc(O?.expiresAt);i=v("settingsSubscriptionTrialDetail",String(u)),c=!!Y}else o==="expired"&&(s=v("statusExpired"),a="subscription-status-expired",c=!!Y);Y&&(i=Y),t.textContent=s,t.className=`subscription-status-badge ${a}`,n.textContent=i,r.classList.toggle("hidden",!c)}async function Rn(){const e=document.getElementById("locale-select");if(!e)return;e.innerHTML="";const t=document.createElement("option");t.value="auto",t.textContent=`🌐 ${v("languageAutoOption")}`,e.appendChild(t),pr().forEach(r=>{const o=document.createElement("option");o.value=r.value,o.textContent=`${r.flag} ${r.label}`,e.appendChild(o)});const n=await dr();e.value=n}async function pe(){try{Y=await Qe();const e=await mt();if(e)O=e,Oe(e),$e(e),fe();else{const n={status:"revoked",features:{wideFeed:!1,fontSize:!1,autoExpandPosts:!1}};O=n,$e(n),Oe(n),fe()}const t=await Wa({force:!0});O=t,Oe(t),$e(t),Y=await Qe(),fe()}catch(e){console.error("Failed to load license state:",e)}}function Ze(){const e=document.getElementById("hide-view"),t=document.getElementById("display-view"),n=document.getElementById("settings-view"),r=document.getElementById("open-hide-btn"),o=document.getElementById("open-display-btn"),s=document.getElementById("open-settings-btn");e?.classList.toggle("hidden",U!=="hides"),t?.classList.toggle("hidden",U!=="display"),n?.classList.toggle("hidden",U!=="preferences"),r?.classList.toggle("active",U==="hides"),o?.classList.toggle("active",U==="display"),s?.classList.toggle("active",U==="preferences")}function rc(){document.getElementById("open-hide-btn")?.addEventListener("click",()=>{We="hides",U="hides",Ze()}),document.getElementById("open-display-btn")?.addEventListener("click",()=>{We="display",U="display",Ze()}),document.getElementById("open-settings-btn")?.addEventListener("click",()=>{U=U==="preferences"?We:"preferences",Ze()}),document.getElementById("locale-select")?.addEventListener("change",async n=>{const o=n.target.value;await fr(o),jn(),await Rn(),O&&($e(O),Oe(O)),fe()}),document.getElementById("settings-account-btn")?.addEventListener("click",()=>{const n=`${X.AUTH}?redirect=${encodeURIComponent("/account")}`;window.open(n,"_blank")}),document.getElementById("settings-upgrade-btn")?.addEventListener("click",async()=>{const n=Y??await Qe(),r=n?`${X.PRICING}?email=${encodeURIComponent(n)}`:X.PRICING;window.open(r,"_blank")}),document.getElementById("globalEnabled")?.addEventListener("change",async()=>{await G()}),["hideSidebars","hidePromoted","hideStartPost","hideMessenger","hideNavBar"].forEach(n=>{document.getElementById(n)?.addEventListener("change",G)}),document.getElementById("status-badge")?.addEventListener("click",async()=>{const n=O?D(O):"free";if(n==="expired")tt();else{let r=n==="pro"?X.ACCOUNT:X.HOME;if(n==="pro"){const o=await ht();o&&(r=`${X.ACCOUNT}?deviceId=${encodeURIComponent(o)}`)}window.open(r,"_blank")}}),document.body.addEventListener("click",n=>{const r=O?D(O):"free";n.target.closest(".premium-feature")&&(r==="expired"?(n.preventDefault(),n.stopPropagation(),tt()):r==="free"&&(n.preventDefault(),n.stopPropagation(),An()))},!0);const e=document.getElementById("autoExpandPosts");document.getElementById("autoExpandCard")?.addEventListener("click",n=>{(O?D(O):"free")!=="free"&&n.target!==e&&(e.checked=!e.checked,G())}),e?.addEventListener("change",()=>{(O?D(O):"free")!=="free"&&G()});const t=document.getElementById("hideRemovedFeedCards");document.getElementById("hideRemovedFeedCardsCard")?.addEventListener("click",n=>{(O?D(O):"free")!=="free"&&n.target!==t&&(t.checked=!t.checked,G())}),t?.addEventListener("change",()=>{(O?D(O):"free")!=="free"&&G()}),["fontSize","feedWidth","feedSpacing"].forEach(n=>{const r=document.getElementById(n);r?.addEventListener("input",()=>{(O?D(O):"free")!=="free"&&(Tn(n,Number(r.value)),G())})}),document.getElementById("modal-close-btn")?.addEventListener("click",Nt),document.getElementById("modal-send-link-btn")?.addEventListener("click",()=>Vt(pe)),document.getElementById("modal-verify-btn")?.addEventListener("click",()=>Bn(pe)),document.getElementById("modal-back-btn")?.addEventListener("click",Qa),document.getElementById("modal-email")?.addEventListener("keypress",n=>{n.key==="Enter"&&Vt(pe)}),document.getElementById("trial-modal")?.addEventListener("click",n=>{n.target===n.currentTarget&&Nt()})}
|