directus-extension-module-permissions 1.0.0 → 1.0.1
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/README.md +14 -0
- package/dist/api.js +1 -1
- package/dist/app.js +2 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -132,6 +132,20 @@ npm run build
|
|
|
132
132
|
- Export your config before major changes or before uninstalling.
|
|
133
133
|
- Uninstall cleanup only removes this extension’s data — your normal module bar and other project settings stay intact.
|
|
134
134
|
|
|
135
|
+
## Examples
|
|
136
|
+
|
|
137
|
+
<img alt="Insights with modules and navigation hidden" src="https://raw.githubusercontent.com/domdus/directus-extension-module-permissions/main/docs/screenshot_clean_insights.png" width="800" />
|
|
138
|
+
|
|
139
|
+
A focused Insights view: other modules are hidden from the left bar, and the middle Module Navigation column is removed, so the user only sees the dashboard.
|
|
140
|
+
|
|
141
|
+
<img alt="Content item edit with sidebar hidden" src="https://raw.githubusercontent.com/domdus/directus-extension-module-permissions/main/docs/screenshot_collection_no_sidebar.png" width="800" />
|
|
142
|
+
|
|
143
|
+
Editing a Content item with the right sidebar fully hidden — no collapsed rail and no detail panels — so the form uses the full width.
|
|
144
|
+
|
|
145
|
+
<img alt="User Directory without roles navigation" src="https://raw.githubusercontent.com/domdus/directus-extension-module-permissions/main/docs/screenshot_user_no_roles_module.png" width="800" />
|
|
146
|
+
|
|
147
|
+
User Directory for a restricted role: the Users module and its roles tree are not shown in navigation, leaving a simple user detail form without the usual Users chrome.
|
|
148
|
+
|
|
135
149
|
## License
|
|
136
150
|
|
|
137
151
|
MIT
|
package/dist/api.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=["interface","display","layout","module","panel","theme"],t=["hook","endpoint"],n=["operation"];function r(e,t,n){function r(n,r){var o;Object.defineProperty(n,"_zod",{value:n._zod??{},enumerable:!1}),(o=n._zod).traits??(o.traits=new Set),n._zod.traits.add(e),t(n,r);for(const e in s.prototype)e in n||Object.defineProperty(n,e,{value:s.prototype[e].bind(n)});n._zod.constr=s,n._zod.def=r}const o=n?.Parent??Object;class i extends o{}function s(e){var t;const o=n?.Parent?new i:this;r(o,e),(t=o._zod).deferred??(t.deferred=[]);for(const e of o._zod.deferred)e();return o}return Object.defineProperty(i,"name",{value:e}),Object.defineProperty(s,"init",{value:r}),Object.defineProperty(s,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}class o extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class i extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}}const s={};function a(e){return s}function c(e,t){return"bigint"==typeof t?t.toString():t}function u(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function d(e){return null==e}function l(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}const p=Symbol("evaluating");function f(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==p)return void 0===r&&(r=p,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function h(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function m(...e){const t={};for(const n of e){const e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function _(e){return JSON.stringify(e)}const y="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function v(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const g=u(()=>{if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function w(e){if(!1===v(e))return!1;const t=e.constructor;if(void 0===t)return!0;const n=t.prototype;return!1!==v(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function z(e){return w(e)?{...e}:Array.isArray(e)?[...e]:e}const b=new Set(["string","number","symbol"]);function k(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function A(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("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}function Z(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function S(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function P(e){return"string"==typeof e?e:e?.message}function E(e,t,n){const r={...e,path:e.path??[]};if(!e.message){const o=P(e.inst?._zod.def?.error?.(e))??P(t?.error?.(e))??P(n.customError?.(e))??P(n.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function j(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function x(...e){const[t,n,r]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:r}:{...t}}const T=(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,c,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},O=r("$ZodError",T),I=r("$ZodError",T,{Parent:Error});const F=e=>(t,n,r,i)=>{const s=r?Object.assign(r,{async:!1}):{async:!1},c=t._zod.run({value:n,issues:[]},s);if(c instanceof Promise)throw new o;if(c.issues.length){const t=new(i?.Err??e)(c.issues.map(e=>E(e,s,a())));throw y(t,i?.callee),t}return c.value},C=e=>async(t,n,r,o)=>{const i=r?Object.assign(r,{async:!0}):{async:!0};let s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){const t=new(o?.Err??e)(s.issues.map(e=>E(e,i,a())));throw y(t,o?.callee),t}return s.value},D=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new o;return s.issues.length?{success:!1,error:new(e??O)(s.issues.map(e=>E(e,i,a())))}:{success:!0,data:s.value}},R=D(I),U=e=>async(t,n,r)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let i=t._zod.run({value:n,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(e=>E(e,o,a())))}:{success:!0,data:i.value}},N=U(I),L=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return F(e)(t,n,o)},W=e=>(t,n,r)=>F(e)(t,n,r),B=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return C(e)(t,n,o)},M=e=>async(t,n,r)=>C(e)(t,n,r),V=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return D(e)(t,n,o)},J=e=>(t,n,r)=>D(e)(t,n,r),K=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return U(e)(t,n,o)},q=e=>async(t,n,r)=>U(e)(t,n,r),G=/^[cC][^\s-]{8,}$/,H=/^[0-9a-z]+$/,Y=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,X=/^[0-9a-vA-V]{20}$/,Q=/^[A-Za-z0-9]{27}$/,ee=/^[a-zA-Z0-9_-]{21}$/,te=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ne=/^([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})$/,re=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)$/,oe=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;const ie=/^(?:(?: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])$/,se=/^(([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}|:))$/,ae=/^((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])$/,ce=/^(([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])$/,ue=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,de=/^[A-Za-z0-9_-]*$/,le=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,pe=/^\+(?:[0-9]){6,14}[0-9]$/,fe="(?:(?:\\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])))",he=new RegExp(`^${fe}$`);function me(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}const _e=/^(?:true|false)$/i,ye=/^[^A-Z]*$/,ve=/^[^a-z]*$/,ge=r("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),we=r("$ZodCheckMaxLength",(e,t)=>{var n;ge.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!d(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const r=n.value;if(r.length<=t.maximum)return;const o=j(r);n.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),ze=r("$ZodCheckMinLength",(e,t)=>{var n;ge.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!d(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const r=n.value;if(r.length>=t.minimum)return;const o=j(r);n.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),be=r("$ZodCheckLengthEquals",(e,t)=>{var n;ge.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!d(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const r=n.value,o=r.length;if(o===t.length)return;const i=j(r),s=o>t.length;n.issues.push({origin:i,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),ke=r("$ZodCheckStringFormat",(e,t)=>{var n,r;ge.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Ae=r("$ZodCheckRegex",(e,t)=>{ke.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})}}),$e=r("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=ye),ke.init(e,t)}),Ze=r("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ve),ke.init(e,t)}),Se=r("$ZodCheckIncludes",(e,t)=>{ge.init(e,t);const n=k(t.includes),r=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Pe=r("$ZodCheckStartsWith",(e,t)=>{ge.init(e,t);const n=new RegExp(`^${k(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Ee=r("$ZodCheckEndsWith",(e,t)=>{ge.init(e,t);const n=new RegExp(`.*${k(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),je=r("$ZodCheckOverwrite",(e,t)=>{ge.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});class xe{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const e of r)this.content.push(e)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}}const Te={major:4,minor:1,patch:12},Oe=r("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Te;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const t of r)for(const n of t._zod.onattach)n(e);if(0===r.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,n)=>{let r,i=Z(e);for(const s of t){if(s._zod.def.when){if(!s._zod.def.when(e))continue}else if(i)continue;const t=e.issues.length,a=s._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new o;if(r||a instanceof Promise)r=(r??Promise.resolve()).then(async()=>{await a;e.issues.length!==t&&(i||(i=Z(e,t)))});else{if(e.issues.length===t)continue;i||(i=Z(e,t))}}return r?r.then(()=>e):e},n=(n,i,s)=>{if(Z(n))return n.aborted=!0,n;const a=t(i,r,s);if(a instanceof Promise){if(!1===s.async)throw new o;return a.then(t=>e._zod.parse(t,s))}return e._zod.parse(a,s)};e._zod.run=(i,s)=>{if(s.skipChecks)return e._zod.parse(i,s);if("backward"===s.direction){const t=e._zod.parse({value:i.value,issues:[]},{...s,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,s)):n(t,i,s)}const a=e._zod.parse(i,s);if(a instanceof Promise){if(!1===s.async)throw new o;return a.then(e=>t(e,r,s))}return t(a,r,s)}}e["~standard"]={validate:t=>{try{const n=R(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return N(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}}),Ie=r("$ZodString",(e,t)=>{var n;Oe.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch(r){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Fe=r("$ZodStringFormat",(e,t)=>{ke.init(e,t),Ie.init(e,t)}),Ce=r("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=ne),Fe.init(e,t)}),De=r("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=re(e))}else t.pattern??(t.pattern=re());Fe.init(e,t)}),Re=r("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=oe),Fe.init(e,t)}),Ue=r("$ZodURL",(e,t)=>{Fe.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),o=new URL(r);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:le.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})),void(t.normalize?n.value=o.href:n.value=r)}catch(r){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Ne=r("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Fe.init(e,t)}),Le=r("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=ee),Fe.init(e,t)}),We=r("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=G),Fe.init(e,t)}),Be=r("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=H),Fe.init(e,t)}),Me=r("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Y),Fe.init(e,t)}),Ve=r("$ZodXID",(e,t)=>{t.pattern??(t.pattern=X),Fe.init(e,t)}),Je=r("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Q),Fe.init(e,t)}),Ke=r("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=me({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(`^${fe}T(?:${r})$`)}(t)),Fe.init(e,t)}),qe=r("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=he),Fe.init(e,t)}),Ge=r("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${me(t)}$`)),Fe.init(e,t)}),He=r("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=te),Fe.init(e,t)}),Ye=r("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=ie),Fe.init(e,t),e._zod.onattach.push(e=>{e._zod.bag.format="ipv4"})}),Xe=r("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=se),Fe.init(e,t),e._zod.onattach.push(e=>{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})}}}),Qe=r("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ae),Fe.init(e,t)}),et=r("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=ce),Fe.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(2!==r.length)throw new Error;const[e,t]=r;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function tt(e){if(""===e)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const nt=r("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=ue),Fe.init(e,t),e._zod.onattach.push(e=>{e._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{tt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});const rt=r("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=de),Fe.init(e,t),e._zod.onattach.push(e=>{e._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{(function(e){if(!de.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return tt(t.padEnd(4*Math.ceil(t.length/4),"="))})(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),ot=r("$ZodE164",(e,t)=>{t.pattern??(t.pattern=pe),Fe.init(e,t)});const it=r("$ZodJWT",(e,t)=>{Fe.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[r]=n;if(!r)return!1;const o=JSON.parse(atob(r));return!("typ"in o&&"JWT"!==o?.typ||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),st=r("$ZodBoolean",(e,t)=>{Oe.init(e,t),e._zod.pattern=_e,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(e){}const o=n.value;return"boolean"==typeof o||n.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),n}}),at=r("$ZodUnknown",(e,t)=>{Oe.init(e,t),e._zod.parse=e=>e}),ct=r("$ZodNever",(e,t)=>{Oe.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function ut(e,t,n){e.issues.length&&t.issues.push(...S(n,e.issues)),t.value[n]=e.value}const dt=r("$ZodArray",(e,t)=>{Oe.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 i=[];for(let e=0;e<o.length;e++){const s=o[e],a=t.element._zod.run({value:s,issues:[]},r);a instanceof Promise?i.push(a.then(t=>ut(t,n,e))):ut(a,n,e)}return i.length?Promise.all(i).then(()=>n):n}});function lt(e,t,n,r){e.issues.length&&t.issues.push(...S(n,e.issues)),void 0===e.value?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function pt(e){const t=Object.keys(e.shape);for(const n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);const n=(r=e.shape,Object.keys(r).filter(e=>"optional"===r[e]._zod.optin&&"optional"===r[e]._zod.optout));var r;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function ft(e,t,n,r,o,i){const s=[],a=o.keySet,c=o.catchall._zod,u=c.def.type;for(const o of Object.keys(t)){if(a.has(o))continue;if("never"===u){s.push(o);continue}const i=c.run({value:t[o],issues:[]},r);i instanceof Promise?e.push(i.then(e=>lt(e,n,o,t))):lt(i,n,o,t)}return s.length&&n.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>n):n}const ht=r("$ZodObject",(e,t)=>{Oe.init(e,t);const n=Object.getOwnPropertyDescriptor(t,"shape");if(!n?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const r=u(()=>pt(t));f(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(const e of r.values)n[t].add(e)}}return n});const o=v,i=t.catchall;let s;e._zod.parse=(t,n)=>{s??(s=r.value);const a=t.value;if(!o(a))return t.issues.push({expected:"object",code:"invalid_type",input:a,inst:e}),t;t.value={};const c=[],u=s.shape;for(const e of s.keys){const r=u[e]._zod.run({value:a[e],issues:[]},n);r instanceof Promise?c.push(r.then(n=>lt(n,t,e,a))):lt(r,t,e,a)}return i?ft(c,a,t,n,r.value,e):c.length?Promise.all(c).then(()=>t):t}}),mt=r("$ZodObjectJIT",(e,t)=>{ht.init(e,t);const n=e._zod.parse,r=u(()=>pt(t));let o;const i=v,a=!s.jitless,c=a&&g.value,d=t.catchall;let l;e._zod.parse=(s,u)=>{l??(l=r.value);const p=s.value;return i(p)?a&&c&&!1===u?.async&&!0!==u.jitless?(o||(o=(e=>{const t=new xe(["shape","payload","ctx"]),n=r.value,o=e=>{const t=_(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const i=Object.create(null);let s=0;for(const e of n.keys)i[e]="key_"+s++;t.write("const newResult = {};");for(const e of n.keys){const n=i[e],r=_(e);t.write(`const ${n} = ${o(e)};`),t.write(`\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${r}, ...iss.path] : [${r}]\n })));\n }\n \n \n if (${n}.value === undefined) {\n if (${r} in input) {\n newResult[${r}] = undefined;\n }\n } else {\n newResult[${r}] = ${n}.value;\n }\n \n `)}t.write("payload.value = newResult;"),t.write("return payload;");const a=t.compile();return(t,n)=>a(e,t,n)})(t.shape)),s=o(s,u),d?ft([],p,s,u,l,e):s):n(s,u):(s.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),s)}});function _t(e,t,n,r){for(const n of e)if(0===n.issues.length)return t.value=n.value,t;const o=e.filter(e=>!Z(e));return 1===o.length?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>E(e,r,a())))}),t)}const yt=r("$ZodUnion",(e,t)=>{Oe.init(e,t),f(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),f(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),f(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),f(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>l(e.source)).join("|")})$`)}});const n=1===t.options.length,r=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(n)return r(o,i);let s=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:o.value,issues:[]},i);if(t instanceof Promise)a.push(t),s=!0;else{if(0===t.issues.length)return t;a.push(t)}}return s?Promise.all(a).then(t=>_t(t,o,e,i)):_t(a,o,e,i)}}),vt=r("$ZodIntersection",(e,t)=>{Oe.init(e,t),e._zod.parse=(e,n)=>{const r=e.value,o=t.left._zod.run({value:r,issues:[]},n),i=t.right._zod.run({value:r,issues:[]},n);return o instanceof Promise||i instanceof Promise?Promise.all([o,i]).then(([t,n])=>wt(e,t,n)):wt(e,o,i)}});function gt(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(w(e)&&w(t)){const n=Object.keys(t),r=Object.keys(e).filter(e=>-1!==n.indexOf(e)),o={...e,...t};for(const n of r){const r=gt(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};o[n]=r.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=gt(e[r],t[r]);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function wt(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),Z(e))return e;const r=gt(t.value,n.value);if(!r.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const zt=r("$ZodRecord",(e,t)=>{Oe.init(e,t),e._zod.parse=(n,r)=>{const o=n.value;if(!w(o))return n.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),n;const i=[];if(t.keyType._zod.values){const s=t.keyType._zod.values;n.value={};for(const e of s)if("string"==typeof e||"number"==typeof e||"symbol"==typeof e){const s=t.valueType._zod.run({value:o[e],issues:[]},r);s instanceof Promise?i.push(s.then(t=>{t.issues.length&&n.issues.push(...S(e,t.issues)),n.value[e]=t.value})):(s.issues.length&&n.issues.push(...S(e,s.issues)),n.value[e]=s.value)}let a;for(const e in o)s.has(e)||(a=a??[],a.push(e));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:a})}else{n.value={};for(const s of Reflect.ownKeys(o)){if("__proto__"===s)continue;const c=t.keyType._zod.run({value:s,issues:[]},r);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(c.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(e=>E(e,r,a())),input:s,path:[s],inst:e}),n.value[c.value]=c.value;continue}const u=t.valueType._zod.run({value:o[s],issues:[]},r);u instanceof Promise?i.push(u.then(e=>{e.issues.length&&n.issues.push(...S(s,e.issues)),n.value[c.value]=e.value})):(u.issues.length&&n.issues.push(...S(s,u.issues)),n.value[c.value]=u.value)}}return i.length?Promise.all(i).then(()=>n):n}}),bt=r("$ZodEnum",(e,t)=>{Oe.init(e,t);const n=function(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(e=>b.has(typeof e)).map(e=>"string"==typeof e?k(e):e.toString()).join("|")})$`),e._zod.parse=(t,o)=>{const i=t.value;return r.has(i)||t.issues.push({code:"invalid_value",values:n,input:i,inst:e}),t}}),kt=r("$ZodLiteral",(e,t)=>{if(Oe.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(e=>"string"==typeof e?k(e):e?k(e.toString()):String(e)).join("|")})$`),e._zod.parse=(n,r)=>{const o=n.value;return e._zod.values.has(o)||n.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),n}}),At=r("$ZodTransform",(e,t)=>{Oe.init(e,t),e._zod.parse=(n,r)=>{if("backward"===r.direction)throw new i(e.constructor.name);const s=t.transform(n.value,n);if(r.async){return(s instanceof Promise?s:Promise.resolve(s)).then(e=>(n.value=e,n))}if(s instanceof Promise)throw new o;return n.value=s,n}});function $t(e,t){return e.issues.length&&void 0===t?{issues:[],value:void 0}:e}const Zt=r("$ZodOptional",(e,t)=>{Oe.init(e,t),e._zod.optin="optional",e._zod.optout="optional",f(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),f(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${l(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>$t(t,e.value)):$t(r,e.value)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),St=r("$ZodNullable",(e,t)=>{Oe.init(e,t),f(e._zod,"optin",()=>t.innerType._zod.optin),f(e._zod,"optout",()=>t.innerType._zod.optout),f(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${l(e.source)}|null)$`):void 0}),f(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),Pt=r("$ZodDefault",(e,t)=>{Oe.init(e,t),e._zod.optin="optional",f(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Et(e,t)):Et(r,t)}});function Et(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}const jt=r("$ZodPrefault",(e,t)=>{Oe.init(e,t),e._zod.optin="optional",f(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),xt=r("$ZodNonOptional",(e,t)=>{Oe.init(e,t),f(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,r)=>{const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(t=>Tt(t,e)):Tt(o,e)}});function Tt(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const Ot=r("$ZodCatch",(e,t)=>{Oe.init(e,t),f(e._zod,"optin",()=>t.innerType._zod.optin),f(e._zod,"optout",()=>t.innerType._zod.optout),f(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>E(e,n,a()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>E(e,n,a()))},input:e.value}),e.issues=[]),e)}}),It=r("$ZodPipe",(e,t)=>{Oe.init(e,t),f(e._zod,"values",()=>t.in._zod.values),f(e._zod,"optin",()=>t.in._zod.optin),f(e._zod,"optout",()=>t.out._zod.optout),f(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Ft(e,t.in,n)):Ft(r,t.in,n)}const r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Ft(e,t.out,n)):Ft(r,t.out,n)}});function Ft(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const Ct=r("$ZodReadonly",(e,t)=>{Oe.init(e,t),f(e._zod,"propValues",()=>t.innerType._zod.propValues),f(e._zod,"values",()=>t.innerType._zod.values),f(e._zod,"optin",()=>t.innerType._zod.optin),f(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Dt):Dt(r)}});function Dt(e){return e.value=Object.freeze(e.value),e}const Rt=r("$ZodCustom",(e,t)=>{ge.init(e,t),Oe.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then(t=>Ut(t,n,r,e));Ut(o,n,r,e)}});function Ut(e,t,n,r){if(!e){const e={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(x(e))}}class Nt{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];if(this._map.set(e,n),n&&"object"==typeof n&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function Lt(){return new Nt}const Wt=Lt();function Bt(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...$(t)})}function Mt(e,t){return new we({check:"max_length",...$(t),maximum:e})}function Vt(e,t){return new ze({check:"min_length",...$(t),minimum:e})}function Jt(e,t){return new be({check:"length_equals",...$(t),length:e})}function Kt(e){return new je({check:"overwrite",tx:e})}function qt(e){const t=function(e,t){const n=new ge({check:"custom",...$(t)});return n._zod.check=e,n}(n=>(n.addIssue=e=>{if("string"==typeof e)n.issues.push(x(e,n.value,t._zod.def));else{const r=e;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=n.value),r.inst??(r.inst=t),r.continue??(r.continue=!t._zod.def.abort),n.issues.push(x(r))}},e(n.value,n)));return t}const Gt=r("ZodISODateTime",(e,t)=>{Ke.init(e,t),zn.init(e,t)});function Ht(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...$(t)})}(Gt,e)}const Yt=r("ZodISODate",(e,t)=>{qe.init(e,t),zn.init(e,t)});function Xt(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...$(t)})}(Yt,e)}const Qt=r("ZodISOTime",(e,t)=>{Ge.init(e,t),zn.init(e,t)});function en(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...$(t)})}(Qt,e)}const tn=r("ZodISODuration",(e,t)=>{He.init(e,t),zn.init(e,t)});function nn(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...$(t)})}(tn,e)}const rn=r("ZodError",(e,t)=>{O.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},r=e=>{for(const o of e.issues)if("invalid_union"===o.code&&o.errors.length)o.errors.map(e=>r({issues:e}));else if("invalid_key"===o.code)r({issues:o.issues});else if("invalid_element"===o.code)r({issues:o.issues});else if(0===o.path.length)n._errors.push(t(o));else{let e=n,r=0;for(;r<o.path.length;){const n=o.path[r];r===o.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(o))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.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}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,c,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,c,2)}},isEmpty:{get:()=>0===e.issues.length}})},{Parent:Error}),on=F(rn),sn=C(rn),an=D(rn),cn=U(rn),un=L(rn),dn=W(rn),ln=B(rn),pn=M(rn),fn=V(rn),hn=J(rn),mn=K(rn),_n=q(rn),yn=r("ZodType",(e,t)=>(Oe.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(m(t,{checks:[...t.checks??[],...n.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]})),e.clone=(t,n)=>A(e,t,n),e.brand=()=>e,e.register=(t,n)=>(t.add(e,n),e),e.parse=(t,n)=>on(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>an(e,t,n),e.parseAsync=async(t,n)=>sn(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>cn(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>un(e,t,n),e.decode=(t,n)=>dn(e,t,n),e.encodeAsync=async(t,n)=>ln(e,t,n),e.decodeAsync=async(t,n)=>pn(e,t,n),e.safeEncode=(t,n)=>fn(e,t,n),e.safeDecode=(t,n)=>hn(e,t,n),e.safeEncodeAsync=async(t,n)=>mn(e,t,n),e.safeDecodeAsync=async(t,n)=>_n(e,t,n),e.refine=(t,n)=>e.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...$(n)})}(vr,e,t)}(t,n)),e.superRefine=t=>e.check(qt(t)),e.overwrite=t=>e.check(Kt(t)),e.optional=()=>cr(e),e.nullable=()=>dr(e),e.nullish=()=>cr(dr(e)),e.nonoptional=t=>function(e,t){return new fr({type:"nonoptional",innerType:e,...$(t)})}(e,t),e.array=()=>qn(e),e.or=t=>Xn([e,t]),e.and=t=>new Qn({type:"intersection",left:e,right:t}),e.transform=t=>_r(e,new sr({type:"transform",transform:t})),e.default=t=>{return n=t,new lr({type:"default",innerType:e,get defaultValue(){return"function"==typeof n?n():z(n)}});var n},e.prefault=t=>{return n=t,new pr({type:"prefault",innerType:e,get defaultValue(){return"function"==typeof n?n():z(n)}});var n},e.catch=t=>{return new hr({type:"catch",innerType:e,catchValue:"function"==typeof(n=t)?n:()=>n});var n},e.pipe=t=>_r(e,t),e.readonly=()=>new yr({type:"readonly",innerType:e}),e.describe=t=>{const n=e.clone();return Wt.add(n,{description:t}),n},Object.defineProperty(e,"description",{get:()=>Wt.get(e)?.description,configurable:!0}),e.meta=(...t)=>{if(0===t.length)return Wt.get(e);const n=e.clone();return Wt.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),vn=r("_ZodString",(e,t)=>{Ie.init(e,t),yn.init(e,t);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(function(e,t){return new Ae({check:"string_format",format:"regex",...$(t),pattern:e})}(...t)),e.includes=(...t)=>e.check(function(e,t){return new Se({check:"string_format",format:"includes",...$(t),includes:e})}(...t)),e.startsWith=(...t)=>e.check(function(e,t){return new Pe({check:"string_format",format:"starts_with",...$(t),prefix:e})}(...t)),e.endsWith=(...t)=>e.check(function(e,t){return new Ee({check:"string_format",format:"ends_with",...$(t),suffix:e})}(...t)),e.min=(...t)=>e.check(Vt(...t)),e.max=(...t)=>e.check(Mt(...t)),e.length=(...t)=>e.check(Jt(...t)),e.nonempty=(...t)=>e.check(Vt(1,...t)),e.lowercase=t=>e.check(function(e){return new $e({check:"string_format",format:"lowercase",...$(e)})}(t)),e.uppercase=t=>e.check(function(e){return new Ze({check:"string_format",format:"uppercase",...$(e)})}(t)),e.trim=()=>e.check(Kt(e=>e.trim())),e.normalize=(...t)=>e.check(function(e){return Kt(t=>t.normalize(e))}(...t)),e.toLowerCase=()=>e.check(Kt(e=>e.toLowerCase())),e.toUpperCase=()=>e.check(Kt(e=>e.toUpperCase()))}),gn=r("ZodString",(e,t)=>{Ie.init(e,t),vn.init(e,t),e.email=t=>e.check(function(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...$(t)})}(bn,t)),e.url=t=>e.check(function(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...$(t)})}($n,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...$(t)})}(Nn,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...$(t)})}(Zn,t)),e.guid=t=>e.check(Bt(kn,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...$(t)})}(An,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...$(t)})}(An,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...$(t)})}(An,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...$(t)})}(An,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...$(t)})}(Sn,t)),e.guid=t=>e.check(Bt(kn,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...$(t)})}(Pn,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...$(t)})}(En,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...$(t)})}(jn,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...$(t)})}(Dn,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...$(t)})}(Rn,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...$(t)})}(xn,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...$(t)})}(Tn,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...$(t)})}(On,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...$(t)})}(In,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...$(t)})}(Fn,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...$(t)})}(Cn,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...$(t)})}(Un,t)),e.datetime=t=>e.check(Ht(t)),e.date=t=>e.check(Xt(t)),e.time=t=>e.check(en(t)),e.duration=t=>e.check(nn(t))});function wn(e){return function(e,t){return new e({type:"string",...$(t)})}(gn,e)}const zn=r("ZodStringFormat",(e,t)=>{Fe.init(e,t),vn.init(e,t)}),bn=r("ZodEmail",(e,t)=>{Re.init(e,t),zn.init(e,t)}),kn=r("ZodGUID",(e,t)=>{Ce.init(e,t),zn.init(e,t)}),An=r("ZodUUID",(e,t)=>{De.init(e,t),zn.init(e,t)}),$n=r("ZodURL",(e,t)=>{Ue.init(e,t),zn.init(e,t)}),Zn=r("ZodEmoji",(e,t)=>{Ne.init(e,t),zn.init(e,t)}),Sn=r("ZodNanoID",(e,t)=>{Le.init(e,t),zn.init(e,t)}),Pn=r("ZodCUID",(e,t)=>{We.init(e,t),zn.init(e,t)}),En=r("ZodCUID2",(e,t)=>{Be.init(e,t),zn.init(e,t)}),jn=r("ZodULID",(e,t)=>{Me.init(e,t),zn.init(e,t)}),xn=r("ZodXID",(e,t)=>{Ve.init(e,t),zn.init(e,t)}),Tn=r("ZodKSUID",(e,t)=>{Je.init(e,t),zn.init(e,t)}),On=r("ZodIPv4",(e,t)=>{Ye.init(e,t),zn.init(e,t)}),In=r("ZodIPv6",(e,t)=>{Xe.init(e,t),zn.init(e,t)}),Fn=r("ZodCIDRv4",(e,t)=>{Qe.init(e,t),zn.init(e,t)}),Cn=r("ZodCIDRv6",(e,t)=>{et.init(e,t),zn.init(e,t)}),Dn=r("ZodBase64",(e,t)=>{nt.init(e,t),zn.init(e,t)}),Rn=r("ZodBase64URL",(e,t)=>{rt.init(e,t),zn.init(e,t)}),Un=r("ZodE164",(e,t)=>{ot.init(e,t),zn.init(e,t)}),Nn=r("ZodJWT",(e,t)=>{it.init(e,t),zn.init(e,t)}),Ln=r("ZodBoolean",(e,t)=>{st.init(e,t),yn.init(e,t)});function Wn(e){return function(e,t){return new e({type:"boolean",...$(t)})}(Ln,e)}const Bn=r("ZodUnknown",(e,t)=>{at.init(e,t),yn.init(e,t)});function Mn(){return new Bn({type:"unknown"})}const Vn=r("ZodNever",(e,t)=>{ct.init(e,t),yn.init(e,t)});function Jn(e){return function(e,t){return new e({type:"never",...$(t)})}(Vn,e)}const Kn=r("ZodArray",(e,t)=>{dt.init(e,t),yn.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(Vt(t,n)),e.nonempty=t=>e.check(Vt(1,t)),e.max=(t,n)=>e.check(Mt(t,n)),e.length=(t,n)=>e.check(Jt(t,n)),e.unwrap=()=>e.element});function qn(e,t){return function(e,t,n){return new e({type:"array",element:t,...$(n)})}(Kn,e,t)}const Gn=r("ZodObject",(e,t)=>{mt.init(e,t),yn.init(e,t),f(e,"shape",()=>t.shape),e.keyof=()=>rr(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Mn()}),e.loose=()=>e.clone({...e._zod.def,catchall:Mn()}),e.strict=()=>e.clone({...e._zod.def,catchall:Jn()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>function(e,t){if(!w(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0)throw new Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");const r=m(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return h(this,"shape",n),n},checks:[]});return A(e,r)}(e,t),e.safeExtend=t=>function(e,t){if(!w(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n={...e._zod.def,get shape(){const n={...e._zod.def.shape,...t};return h(this,"shape",n),n},checks:e._zod.def.checks};return A(e,n)}(e,t),e.merge=t=>function(e,t){const n=m(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return h(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return A(e,n)}(e,t),e.pick=t=>function(e,t){const n=e._zod.def;return A(e,m(e._zod.def,{get shape(){const e={};for(const r in t){if(!(r in n.shape))throw new Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return h(this,"shape",e),e},checks:[]}))}(e,t),e.omit=t=>function(e,t){const n=e._zod.def,r=m(e._zod.def,{get shape(){const r={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return h(this,"shape",r),r},checks:[]});return A(e,r)}(e,t),e.partial=(...t)=>function(e,t,n){const r=m(t._zod.def,{get shape(){const r=t._zod.def.shape,o={...r};if(n)for(const t in n){if(!(t in r))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(o[t]=e?new e({type:"optional",innerType:r[t]}):r[t])}else for(const t in r)o[t]=e?new e({type:"optional",innerType:r[t]}):r[t];return h(this,"shape",o),o},checks:[]});return A(t,r)}(ar,e,t[0]),e.required=(...t)=>function(e,t,n){const r=m(t._zod.def,{get shape(){const r=t._zod.def.shape,o={...r};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(o[t]=new e({type:"nonoptional",innerType:r[t]}))}else for(const t in r)o[t]=new e({type:"nonoptional",innerType:r[t]});return h(this,"shape",o),o},checks:[]});return A(t,r)}(fr,e,t[0])});function Hn(e,t){const n={type:"object",shape:e??{},...$(t)};return new Gn(n)}const Yn=r("ZodUnion",(e,t)=>{yt.init(e,t),yn.init(e,t),e.options=t.options});function Xn(e,t){return new Yn({type:"union",options:e,...$(t)})}const Qn=r("ZodIntersection",(e,t)=>{vt.init(e,t),yn.init(e,t)});const er=r("ZodRecord",(e,t)=>{zt.init(e,t),yn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function tr(e,t,n){return new er({type:"record",keyType:e,valueType:t,...$(n)})}const nr=r("ZodEnum",(e,t)=>{bt.init(e,t),yn.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{const o={};for(const r of e){if(!n.has(r))throw new Error(`Key ${r} not found in enum`);o[r]=t.entries[r]}return new nr({...t,checks:[],...$(r),entries:o})},e.exclude=(e,r)=>{const o={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete o[t]}return new nr({...t,checks:[],...$(r),entries:o})}});function rr(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new nr({type:"enum",entries:n,...$(t)})}const or=r("ZodLiteral",(e,t)=>{kt.init(e,t),yn.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ir(e,t){return new or({type:"literal",values:Array.isArray(e)?e:[e],...$(t)})}const sr=r("ZodTransform",(e,t)=>{At.init(e,t),yn.init(e,t),e._zod.parse=(n,r)=>{if("backward"===r.direction)throw new i(e.constructor.name);n.addIssue=r=>{if("string"==typeof r)n.issues.push(x(r,n.value,t));else{const t=r;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(x(t))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(e=>(n.value=e,n)):(n.value=o,n)}});const ar=r("ZodOptional",(e,t)=>{Zt.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function cr(e){return new ar({type:"optional",innerType:e})}const ur=r("ZodNullable",(e,t)=>{St.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function dr(e){return new ur({type:"nullable",innerType:e})}const lr=r("ZodDefault",(e,t)=>{Pt.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});const pr=r("ZodPrefault",(e,t)=>{jt.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType});const fr=r("ZodNonOptional",(e,t)=>{xt.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType});const hr=r("ZodCatch",(e,t)=>{Ot.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});const mr=r("ZodPipe",(e,t)=>{It.init(e,t),yn.init(e,t),e.in=t.in,e.out=t.out});function _r(e,t){return new mr({type:"pipe",in:e,out:t})}const yr=r("ZodReadonly",(e,t)=>{Ct.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType});const vr=r("ZodCustom",(e,t)=>{Rt.init(e,t),yn.init(e,t)});const gr="directus:extension",wr=Hn({app:wn(),api:wn()}),zr=Hn({request:cr(Hn({urls:qn(wn()),methods:qn(Xn([ir("GET"),ir("POST"),ir("PATCH"),ir("PUT"),ir("DELETE")]))})),log:cr(Hn({})),sleep:cr(Hn({}))}),br=cr(Hn({enabled:Wn(),requestedScopes:zr})),kr=Xn([Hn({type:rr(t),name:wn(),source:wn()}),Hn({type:rr(e),name:wn(),source:wn()}),Hn({type:rr(n),name:wn(),source:wr})]),Ar=Hn({host:wn(),hidden:Wn().optional()}),$r=Hn({type:rr(e),path:wn(),source:wn()}),Zr=Hn({type:rr(t),path:wn(),source:wn(),sandbox:br}),Sr=Hn({type:rr(n),path:wr,source:wr,sandbox:br}),Pr=Hn({type:ir("bundle"),partial:Wn().optional(),path:wr,entries:qn(kr)});qn(kr);const Er=Ar.and(Xn([$r,Zr,Sr,Pr]));Hn({name:wn(),version:wn(),type:Xn([ir("module"),ir("commonjs")]).optional(),description:wn().optional(),icon:wn().optional(),dependencies:tr(wn(),wn()).optional(),devDependencies:tr(wn(),wn()).optional(),[gr]:Er});const jr="module_permissions",xr={own_role_only:[],roles:[],hide_navigation:[]},Tr={version:1,rules:[],homes:[],collections:[],sidebar_panels:[],sidebar_modes:[],users:{...xr,own_role_only:[],roles:[],hide_navigation:[]}};function Or(e){if("string"!=typeof e)return null;let t=e.trim();return t?/^[a-z][a-z0-9+.-]*:/i.test(t)||t.startsWith("//")?null:(t=t.split("#")[0]??t,t?(t.startsWith("/")||(t=`/${t}`),"/admin"===t?t="/":t.startsWith("/admin/")&&(t=t.slice(6)||"/"),t.includes("..")||t.length>512?null:(t=t.replace(/\/{2,}/g,"/"),t)):null):null}function Ir(e){return{id:String(e.id),visibility:"show"===e.visibility?"show":"hide",roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[],block_routes:!1!==e.block_routes}}function Fr(e){if(!e||"object"!=typeof e)return{...Tr,rules:[],homes:[],collections:[],sidebar_panels:[],sidebar_modes:[],users:{...xr,own_role_only:[],roles:[],hide_navigation:[]}};const t=e,n=Array.isArray(t.rules)?t.rules.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>Ir(e)):[],r=Array.isArray(t.homes)?t.homes.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>({id:String(e.id),path:"string"==typeof e.path?e.path:"",roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[],force:!0===e.force})).filter(e=>function(e){return null!==Or(e)}(e.path)):[],o=Array.isArray(t.collections)?t.collections.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>Ir(e)):[],i=Array.isArray(t.sidebar_panels)?t.sidebar_panels.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>({id:String(e.id),visibility:"show"===e.visibility?"show":"hide",roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[]})):[],s=Array.isArray(t.sidebar_modes)?t.sidebar_modes.filter(e=>Boolean(e&&"object"==typeof e&&e.id&&e.mode)).map(e=>({id:String(e.id),mode:"hidden"===e.mode?"hidden":"collapsed",roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[]})):[],a=function(e){if(!e||"object"!=typeof e)return{own_role_only:[],roles:[],hide_navigation:[]};const t=e;return{own_role_only:Array.isArray(t.own_role_only)?t.own_role_only.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>({id:String(e.id),roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[]})):[],roles:Array.isArray(t.roles)?t.roles.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>Ir(e)):[],hide_navigation:Array.isArray(t.hide_navigation)?t.hide_navigation.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>({id:String(e.id),modules:Array.isArray(e.modules)?e.modules.map(String).filter(Boolean):[],roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[]})).filter(e=>e.modules.length>0):[]}}(t.users),c=Array.isArray(t.blocked_ids)?t.blocked_ids.map(String):void 0,u=Array.isArray(t.blocked_collection_ids)?t.blocked_collection_ids.map(String):void 0,d=null===t.home_path?null:"string"==typeof t.home_path?Or(t.home_path):void 0,l="boolean"==typeof t.home_force?t.home_force:void 0,p=Array.isArray(t.sidebar_hidden_panels)?t.sidebar_hidden_panels.map(String):void 0,f="collapsed"===t.sidebar_mode||"hidden"===t.sidebar_mode||"default"===t.sidebar_mode?t.sidebar_mode:void 0,h="boolean"==typeof t.users_own_role_only?t.users_own_role_only:void 0,m=Array.isArray(t.users_allowed_role_ids)?t.users_allowed_role_ids.map(String):void 0,_=Array.isArray(t.users_hidden_role_ids)?t.users_hidden_role_ids.map(String):void 0,y=Array.isArray(t.users_blocked_role_ids)?t.users_blocked_role_ids.map(String):void 0,v=Array.isArray(t.navigation_hidden_modules)?t.navigation_hidden_modules.map(String):void 0;return{version:1,rules:n,homes:r,collections:o,sidebar_panels:i,sidebar_modes:s,users:a,...c?{blocked_ids:c}:{},...u?{blocked_collection_ids:u}:{},...void 0!==d?{home_path:d}:{},...void 0!==l?{home_force:l}:{},...p?{sidebar_hidden_panels:p}:{},...f?{sidebar_mode:f}:{},...void 0!==h?{users_own_role_only:h}:{},...m?{users_allowed_role_ids:m}:{},..._?{users_hidden_role_ids:_}:{},...y?{users_blocked_role_ids:y}:{},...v?{navigation_hidden_modules:v}:{}}}function Cr(e){return(e.roles?.length??0)>0||(e.policies?.length??0)>0}function Dr(e,t){if(!Cr(e))return!1;const n=new Set(t.roleIds),r=new Set(t.policyIds);return!!(e.roles||[]).some(e=>n.has(e))||!!(e.policies||[]).some(e=>r.has(e))}function Rr(e,t){if(!e||!Cr(e))return!1;const n=Dr(e,t);return!("hide"!==e.visibility||!n)||"show"===e.visibility&&!n}function Ur(e,t,n){if(!Array.isArray(e))return[];const r=Fr(t).rules,o=new Map(r.map(e=>[e.id,e])),i=[];for(const t of e){const e=Rr(o.get(t.id),n);if("link"!==t.type)e?i.push({...t,enabled:!1}):i.push({...t});else{if(!1===t.enabled||e)continue;i.push({...t})}}return i}function Nr(e,t,n){if(!Array.isArray(e))return[];const r=Fr(t).rules,o=new Map(r.map(e=>[e.id,e])),i=[];for(const t of e){const e=o.get(t.id);Rr(e,n)&&(e&&!1===e.block_routes||i.push(t.id))}return i}function Lr(e,t){const n=Fr(e).collections,r=[];for(const e of n)Rr(e,t)&&!1!==e.block_routes&&r.push(e.id);return r}function Wr(e,t){const n=Fr(e).homes;if(!n.length)return null;const r=n.filter(e=>Cr(e)),o=n.filter(e=>!Cr(e));for(const e of r){if(!Dr(e,t))continue;const n=Or(e.path);if(n)return{path:n,force:!0===e.force}}for(const e of o){const t=Or(e.path);if(t)return{path:t,force:!0===e.force}}return null}function Br(e,t){return Wr(e,t)?.path??null}function Mr(e,t){return!0===Wr(e,t)?.force}function Vr(e,t){const n=Fr(e).sidebar_panels,r=[];for(const e of n)Rr(e,t)&&r.push(String(e.id));return r}function Jr(e,t){const n=Fr(e).sidebar_modes;if(!n.length)return"default";const r=n.filter(e=>Cr(e)),o=n.filter(e=>!Cr(e));for(const e of r)if(Dr(e,t))return e.mode;return o[0]?o[0].mode:"default"}function Kr(e,t){const n=Fr(e).users.own_role_only;if(!n.length)return!1;const r=n.filter(e=>Cr(e)),o=n.filter(e=>!Cr(e));for(const e of r)if(Dr(e,t))return!0;return o.length>0}function qr(e){return[...e.roleIds]}function Gr(e,t){const n=Fr(e).users.roles,r=[];for(const e of n)Rr(e,t)&&r.push(String(e.id));return r}function Hr(e,t){const n=Fr(e).users.roles,r=[];for(const e of n)Rr(e,t)&&!1!==e.block_routes&&r.push(String(e.id));return r}function Yr(e,t){const n=Fr(e).users.hide_navigation,r=new Set,o=n.filter(e=>Cr(e)),i=n.filter(e=>!Cr(e));for(const e of o)if(Dr(e,t))for(const t of e.modules)r.add(String(t));for(const e of i)for(const t of e.modules)r.add(String(t));return[...r]}function Xr(e,t,n){if(!Array.isArray(e))return[];const r=Fr(t),o=Kr(r,n),i=(r.users?.roles?.length??0)>0;if(!o&&!i)return e;const s=e.filter(e=>{const t=e?.id;return!t||function(e,t,n){const r=Fr(t),o=Kr(r,n),i=new Set(qr(n));return!(new Set(Gr(r,n)).has(String(e))||o&&!i.has(String(e)))}(String(t),r,n)}),a=new Set(s.map(e=>String(e.id)).filter(Boolean));return s.map(e=>{const t=e?.parent;return null==t||""===t||a.has(String(t))?e:{...e,parent:null}})}async function Qr(e,t){const n=new Set,r=new Set;if(!t?.user&&!t?.role)return{roleIds:[],policyIds:[]};if(t.role&&n.add(t.role),Array.isArray(t.roles))for(const e of t.roles)e&&n.add(String(e));for(const t of[...n]){let r=t;for(let t=0;t<25&&r;t++){const t=await e("directus_roles").select("parent").where({id:r}).first();if(!t?.parent)break;const o=String(t.parent);if(n.has(o))break;n.add(o),r=o}}const o=e("directus_access").select("policy");o.where(e=>{let r=!1;t.user&&(e.where({user:t.user}),r=!0),n.size>0&&(r?e.orWhereIn("role",[...n]):e.whereIn("role",[...n]))});const i=await o;for(const e of i||[])e?.policy&&r.add(String(e.policy));return{roleIds:[...n],policyIds:[...r]}}async function eo(e){try{const t=await e("directus_settings").select(jr).first();return Fr(t?.[jr])}catch{return{...Tr}}}var to=({filter:e,action:t,init:n},{services:r,database:o,getSchema:i,logger:s})=>{let a=null;const c=()=>(a||(a=async function(e,t,n,r){try{const o=await n.schema.hasColumn("directus_settings",jr);if(o&&await n("directus_fields").where({collection:"directus_settings",field:jr}).first())return;const i=await t(),{FieldsService:s}=e,a=new s({schema:i,accountability:{admin:!0}}),c=await a.readAll("directus_settings"),u=c?.some(e=>e.field===jr);if(u&&o)return;o&&u||(await a.createField("directus_settings",{field:jr,type:"json",meta:{collection:"directus_settings",field:jr,special:["cast-json"],interface:"input-code",hidden:!0,readonly:!1,width:"full",note:"Managed by Module Permissions extension. Do not edit manually."},schema:{default_value:JSON.stringify(Tr)}}),r.info(`[module-permissions] Created directus_settings.${jr}`))}catch(e){const t=String(e?.message||e||"");if(/already exists|duplicate|SQLITE_ERROR/i.test(t))return void r.warn(`[module-permissions] Field ensure skipped: ${t}`);r.error(`[module-permissions] Failed to ensure field: ${t}`)}}(r,i,o,s)),a);n("app.before",async()=>{await c()}),t("server.start",async()=>{await c()}),e("settings.read",async(e,t,n)=>{await c();const r=n?.accountability??null;if(r?.admin)return e;const i=function(e){return Array.isArray(e)?e:e&&"object"==typeof e&&Array.isArray(e.data)?e.data:null}(e);if(!i?.length)return e;const s=await Qr(o,r);for(const e of i){if(!e||"object"!=typeof e)continue;const t=Fr(e[jr]),n=e.module_bar;e.module_bar=Ur(n,t,s);const r=Kr(t,s);e[jr]={version:1,rules:[],homes:[],collections:[],sidebar_panels:[],sidebar_modes:[],users:{own_role_only:[],roles:[],hide_navigation:[]},blocked_ids:Nr(n,t,s),blocked_collection_ids:Lr(t,s),home_path:Br(t,s),home_force:Mr(t,s),sidebar_hidden_panels:Vr(t,s),sidebar_mode:Jr(t,s),users_own_role_only:r,...r?{users_allowed_role_ids:qr(s)}:{},users_hidden_role_ids:Gr(t,s),users_blocked_role_ids:Hr(t,s),navigation_hidden_modules:Yr(t,s)}}return e}),e("collections.read",async(e,t,n)=>{await c();const r=n?.accountability??null;if(r?.admin)return e;const i=function(e){return Array.isArray(e)?{list:e,wrap:e=>e}:e&&"object"==typeof e&&Array.isArray(e.data)?{list:e.data,wrap:t=>({...e,data:t})}:null}(e);if(!i?.list?.length)return e;const s=await eo(o);if(!s.collections.length)return e;const a=await Qr(o,r),u=function(e,t,n){if(!Array.isArray(e))return[];const r=Fr(t).collections,o=new Map(r.map(e=>[e.id,e]));return e.map(e=>{const t=e?.collection||e?.meta?.collection;if(!t)return e;if(!Rr(o.get(String(t)),n))return e;const r={...e};return r.meta={...e.meta||{},hidden:!0},"hidden"in r&&(r.hidden=!0),r})}(i.list,s,a);return i.wrap?i.wrap(u):u}),e("roles.read",async(e,t,n)=>{await c();const r=n?.accountability??null;if(!r?.user||r.admin)return e;const i=function(e){return Array.isArray(e)?{list:e,wrap:e=>e}:e&&"object"==typeof e&&Array.isArray(e.data)?{list:e.data,wrap:t=>({...e,data:t})}:null}(e);if(!i?.list?.length)return e;const s=await eo(o),a=await Qr(o,r);if(!(Kr(s,a)||s.users?.roles?.length>0))return e;const u=Xr(i.list,s,a);return i.wrap?i.wrap(u):u}),e("settings.update",async(e,t,n)=>{const r=n?.accountability??null;return r?.admin?e:e&&"object"==typeof e?(jr in e&&delete e[jr],"module_bar"in e&&delete e.module_bar,e):e})};const no=[{name:"module-permissions-hook",config:to}],ro=[],oo=[];export{ro as endpoints,no as hooks,oo as operations};
|
|
1
|
+
const e=["interface","display","layout","module","panel","theme"],t=["hook","endpoint"],n=["operation"];function r(e,t,n){function r(n,r){var o;Object.defineProperty(n,"_zod",{value:n._zod??{},enumerable:!1}),(o=n._zod).traits??(o.traits=new Set),n._zod.traits.add(e),t(n,r);for(const e in s.prototype)e in n||Object.defineProperty(n,e,{value:s.prototype[e].bind(n)});n._zod.constr=s,n._zod.def=r}const o=n?.Parent??Object;class i extends o{}function s(e){var t;const o=n?.Parent?new i:this;r(o,e),(t=o._zod).deferred??(t.deferred=[]);for(const e of o._zod.deferred)e();return o}return Object.defineProperty(i,"name",{value:e}),Object.defineProperty(s,"init",{value:r}),Object.defineProperty(s,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}class o extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class i extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}}const s={};function a(e){return s}function c(e,t){return"bigint"==typeof t?t.toString():t}function u(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function d(e){return null==e}function l(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}const p=Symbol("evaluating");function f(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==p)return void 0===r&&(r=p,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function h(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function m(...e){const t={};for(const n of e){const e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function _(e){return JSON.stringify(e)}const y="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function v(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const g=u(()=>{if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function w(e){if(!1===v(e))return!1;const t=e.constructor;if(void 0===t)return!0;const n=t.prototype;return!1!==v(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function z(e){return w(e)?{...e}:Array.isArray(e)?[...e]:e}const b=new Set(["string","number","symbol"]);function k(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function A(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("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}function Z(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function S(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function P(e){return"string"==typeof e?e:e?.message}function E(e,t,n){const r={...e,path:e.path??[]};if(!e.message){const o=P(e.inst?._zod.def?.error?.(e))??P(t?.error?.(e))??P(n.customError?.(e))??P(n.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function j(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function x(...e){const[t,n,r]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:r}:{...t}}const T=(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,c,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},O=r("$ZodError",T),I=r("$ZodError",T,{Parent:Error});const F=e=>(t,n,r,i)=>{const s=r?Object.assign(r,{async:!1}):{async:!1},c=t._zod.run({value:n,issues:[]},s);if(c instanceof Promise)throw new o;if(c.issues.length){const t=new(i?.Err??e)(c.issues.map(e=>E(e,s,a())));throw y(t,i?.callee),t}return c.value},C=e=>async(t,n,r,o)=>{const i=r?Object.assign(r,{async:!0}):{async:!0};let s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){const t=new(o?.Err??e)(s.issues.map(e=>E(e,i,a())));throw y(t,o?.callee),t}return s.value},D=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new o;return s.issues.length?{success:!1,error:new(e??O)(s.issues.map(e=>E(e,i,a())))}:{success:!0,data:s.value}},R=D(I),U=e=>async(t,n,r)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let i=t._zod.run({value:n,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(e=>E(e,o,a())))}:{success:!0,data:i.value}},N=U(I),L=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return F(e)(t,n,o)},W=e=>(t,n,r)=>F(e)(t,n,r),B=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return C(e)(t,n,o)},M=e=>async(t,n,r)=>C(e)(t,n,r),V=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return D(e)(t,n,o)},J=e=>(t,n,r)=>D(e)(t,n,r),K=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return U(e)(t,n,o)},q=e=>async(t,n,r)=>U(e)(t,n,r),G=/^[cC][^\s-]{8,}$/,H=/^[0-9a-z]+$/,Y=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,X=/^[0-9a-vA-V]{20}$/,Q=/^[A-Za-z0-9]{27}$/,ee=/^[a-zA-Z0-9_-]{21}$/,te=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ne=/^([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})$/,re=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)$/,oe=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;const ie=/^(?:(?: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])$/,se=/^(([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}|:))$/,ae=/^((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])$/,ce=/^(([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])$/,ue=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,de=/^[A-Za-z0-9_-]*$/,le=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,pe=/^\+(?:[0-9]){6,14}[0-9]$/,fe="(?:(?:\\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])))",he=new RegExp(`^${fe}$`);function me(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}const _e=/^(?:true|false)$/i,ye=/^[^A-Z]*$/,ve=/^[^a-z]*$/,ge=r("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),we=r("$ZodCheckMaxLength",(e,t)=>{var n;ge.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!d(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const r=n.value;if(r.length<=t.maximum)return;const o=j(r);n.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),ze=r("$ZodCheckMinLength",(e,t)=>{var n;ge.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!d(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const r=n.value;if(r.length>=t.minimum)return;const o=j(r);n.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),be=r("$ZodCheckLengthEquals",(e,t)=>{var n;ge.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!d(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const r=n.value,o=r.length;if(o===t.length)return;const i=j(r),s=o>t.length;n.issues.push({origin:i,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),ke=r("$ZodCheckStringFormat",(e,t)=>{var n,r;ge.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Ae=r("$ZodCheckRegex",(e,t)=>{ke.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})}}),$e=r("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=ye),ke.init(e,t)}),Ze=r("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ve),ke.init(e,t)}),Se=r("$ZodCheckIncludes",(e,t)=>{ge.init(e,t);const n=k(t.includes),r=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Pe=r("$ZodCheckStartsWith",(e,t)=>{ge.init(e,t);const n=new RegExp(`^${k(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Ee=r("$ZodCheckEndsWith",(e,t)=>{ge.init(e,t);const n=new RegExp(`.*${k(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),je=r("$ZodCheckOverwrite",(e,t)=>{ge.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});class xe{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const e of r)this.content.push(e)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}}const Te={major:4,minor:1,patch:12},Oe=r("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Te;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const t of r)for(const n of t._zod.onattach)n(e);if(0===r.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,n)=>{let r,i=Z(e);for(const s of t){if(s._zod.def.when){if(!s._zod.def.when(e))continue}else if(i)continue;const t=e.issues.length,a=s._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new o;if(r||a instanceof Promise)r=(r??Promise.resolve()).then(async()=>{await a;e.issues.length!==t&&(i||(i=Z(e,t)))});else{if(e.issues.length===t)continue;i||(i=Z(e,t))}}return r?r.then(()=>e):e},n=(n,i,s)=>{if(Z(n))return n.aborted=!0,n;const a=t(i,r,s);if(a instanceof Promise){if(!1===s.async)throw new o;return a.then(t=>e._zod.parse(t,s))}return e._zod.parse(a,s)};e._zod.run=(i,s)=>{if(s.skipChecks)return e._zod.parse(i,s);if("backward"===s.direction){const t=e._zod.parse({value:i.value,issues:[]},{...s,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,s)):n(t,i,s)}const a=e._zod.parse(i,s);if(a instanceof Promise){if(!1===s.async)throw new o;return a.then(e=>t(e,r,s))}return t(a,r,s)}}e["~standard"]={validate:t=>{try{const n=R(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return N(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}}),Ie=r("$ZodString",(e,t)=>{var n;Oe.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch(r){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Fe=r("$ZodStringFormat",(e,t)=>{ke.init(e,t),Ie.init(e,t)}),Ce=r("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=ne),Fe.init(e,t)}),De=r("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=re(e))}else t.pattern??(t.pattern=re());Fe.init(e,t)}),Re=r("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=oe),Fe.init(e,t)}),Ue=r("$ZodURL",(e,t)=>{Fe.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),o=new URL(r);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:le.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})),void(t.normalize?n.value=o.href:n.value=r)}catch(r){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Ne=r("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Fe.init(e,t)}),Le=r("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=ee),Fe.init(e,t)}),We=r("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=G),Fe.init(e,t)}),Be=r("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=H),Fe.init(e,t)}),Me=r("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Y),Fe.init(e,t)}),Ve=r("$ZodXID",(e,t)=>{t.pattern??(t.pattern=X),Fe.init(e,t)}),Je=r("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Q),Fe.init(e,t)}),Ke=r("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=me({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(`^${fe}T(?:${r})$`)}(t)),Fe.init(e,t)}),qe=r("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=he),Fe.init(e,t)}),Ge=r("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${me(t)}$`)),Fe.init(e,t)}),He=r("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=te),Fe.init(e,t)}),Ye=r("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=ie),Fe.init(e,t),e._zod.onattach.push(e=>{e._zod.bag.format="ipv4"})}),Xe=r("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=se),Fe.init(e,t),e._zod.onattach.push(e=>{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})}}}),Qe=r("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ae),Fe.init(e,t)}),et=r("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=ce),Fe.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(2!==r.length)throw new Error;const[e,t]=r;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function tt(e){if(""===e)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const nt=r("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=ue),Fe.init(e,t),e._zod.onattach.push(e=>{e._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{tt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});const rt=r("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=de),Fe.init(e,t),e._zod.onattach.push(e=>{e._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{(function(e){if(!de.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return tt(t.padEnd(4*Math.ceil(t.length/4),"="))})(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),ot=r("$ZodE164",(e,t)=>{t.pattern??(t.pattern=pe),Fe.init(e,t)});const it=r("$ZodJWT",(e,t)=>{Fe.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[r]=n;if(!r)return!1;const o=JSON.parse(atob(r));return!("typ"in o&&"JWT"!==o?.typ||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),st=r("$ZodBoolean",(e,t)=>{Oe.init(e,t),e._zod.pattern=_e,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(e){}const o=n.value;return"boolean"==typeof o||n.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),n}}),at=r("$ZodUnknown",(e,t)=>{Oe.init(e,t),e._zod.parse=e=>e}),ct=r("$ZodNever",(e,t)=>{Oe.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function ut(e,t,n){e.issues.length&&t.issues.push(...S(n,e.issues)),t.value[n]=e.value}const dt=r("$ZodArray",(e,t)=>{Oe.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 i=[];for(let e=0;e<o.length;e++){const s=o[e],a=t.element._zod.run({value:s,issues:[]},r);a instanceof Promise?i.push(a.then(t=>ut(t,n,e))):ut(a,n,e)}return i.length?Promise.all(i).then(()=>n):n}});function lt(e,t,n,r){e.issues.length&&t.issues.push(...S(n,e.issues)),void 0===e.value?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function pt(e){const t=Object.keys(e.shape);for(const n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);const n=(r=e.shape,Object.keys(r).filter(e=>"optional"===r[e]._zod.optin&&"optional"===r[e]._zod.optout));var r;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function ft(e,t,n,r,o,i){const s=[],a=o.keySet,c=o.catchall._zod,u=c.def.type;for(const o of Object.keys(t)){if(a.has(o))continue;if("never"===u){s.push(o);continue}const i=c.run({value:t[o],issues:[]},r);i instanceof Promise?e.push(i.then(e=>lt(e,n,o,t))):lt(i,n,o,t)}return s.length&&n.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>n):n}const ht=r("$ZodObject",(e,t)=>{Oe.init(e,t);const n=Object.getOwnPropertyDescriptor(t,"shape");if(!n?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const r=u(()=>pt(t));f(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(const e of r.values)n[t].add(e)}}return n});const o=v,i=t.catchall;let s;e._zod.parse=(t,n)=>{s??(s=r.value);const a=t.value;if(!o(a))return t.issues.push({expected:"object",code:"invalid_type",input:a,inst:e}),t;t.value={};const c=[],u=s.shape;for(const e of s.keys){const r=u[e]._zod.run({value:a[e],issues:[]},n);r instanceof Promise?c.push(r.then(n=>lt(n,t,e,a))):lt(r,t,e,a)}return i?ft(c,a,t,n,r.value,e):c.length?Promise.all(c).then(()=>t):t}}),mt=r("$ZodObjectJIT",(e,t)=>{ht.init(e,t);const n=e._zod.parse,r=u(()=>pt(t));let o;const i=v,a=!s.jitless,c=a&&g.value,d=t.catchall;let l;e._zod.parse=(s,u)=>{l??(l=r.value);const p=s.value;return i(p)?a&&c&&!1===u?.async&&!0!==u.jitless?(o||(o=(e=>{const t=new xe(["shape","payload","ctx"]),n=r.value,o=e=>{const t=_(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const i=Object.create(null);let s=0;for(const e of n.keys)i[e]="key_"+s++;t.write("const newResult = {};");for(const e of n.keys){const n=i[e],r=_(e);t.write(`const ${n} = ${o(e)};`),t.write(`\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${r}, ...iss.path] : [${r}]\n })));\n }\n \n \n if (${n}.value === undefined) {\n if (${r} in input) {\n newResult[${r}] = undefined;\n }\n } else {\n newResult[${r}] = ${n}.value;\n }\n \n `)}t.write("payload.value = newResult;"),t.write("return payload;");const a=t.compile();return(t,n)=>a(e,t,n)})(t.shape)),s=o(s,u),d?ft([],p,s,u,l,e):s):n(s,u):(s.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),s)}});function _t(e,t,n,r){for(const n of e)if(0===n.issues.length)return t.value=n.value,t;const o=e.filter(e=>!Z(e));return 1===o.length?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>E(e,r,a())))}),t)}const yt=r("$ZodUnion",(e,t)=>{Oe.init(e,t),f(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),f(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),f(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),f(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>l(e.source)).join("|")})$`)}});const n=1===t.options.length,r=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(n)return r(o,i);let s=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:o.value,issues:[]},i);if(t instanceof Promise)a.push(t),s=!0;else{if(0===t.issues.length)return t;a.push(t)}}return s?Promise.all(a).then(t=>_t(t,o,e,i)):_t(a,o,e,i)}}),vt=r("$ZodIntersection",(e,t)=>{Oe.init(e,t),e._zod.parse=(e,n)=>{const r=e.value,o=t.left._zod.run({value:r,issues:[]},n),i=t.right._zod.run({value:r,issues:[]},n);return o instanceof Promise||i instanceof Promise?Promise.all([o,i]).then(([t,n])=>wt(e,t,n)):wt(e,o,i)}});function gt(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(w(e)&&w(t)){const n=Object.keys(t),r=Object.keys(e).filter(e=>-1!==n.indexOf(e)),o={...e,...t};for(const n of r){const r=gt(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};o[n]=r.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=gt(e[r],t[r]);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function wt(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),Z(e))return e;const r=gt(t.value,n.value);if(!r.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const zt=r("$ZodRecord",(e,t)=>{Oe.init(e,t),e._zod.parse=(n,r)=>{const o=n.value;if(!w(o))return n.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),n;const i=[];if(t.keyType._zod.values){const s=t.keyType._zod.values;n.value={};for(const e of s)if("string"==typeof e||"number"==typeof e||"symbol"==typeof e){const s=t.valueType._zod.run({value:o[e],issues:[]},r);s instanceof Promise?i.push(s.then(t=>{t.issues.length&&n.issues.push(...S(e,t.issues)),n.value[e]=t.value})):(s.issues.length&&n.issues.push(...S(e,s.issues)),n.value[e]=s.value)}let a;for(const e in o)s.has(e)||(a=a??[],a.push(e));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:a})}else{n.value={};for(const s of Reflect.ownKeys(o)){if("__proto__"===s)continue;const c=t.keyType._zod.run({value:s,issues:[]},r);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(c.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(e=>E(e,r,a())),input:s,path:[s],inst:e}),n.value[c.value]=c.value;continue}const u=t.valueType._zod.run({value:o[s],issues:[]},r);u instanceof Promise?i.push(u.then(e=>{e.issues.length&&n.issues.push(...S(s,e.issues)),n.value[c.value]=e.value})):(u.issues.length&&n.issues.push(...S(s,u.issues)),n.value[c.value]=u.value)}}return i.length?Promise.all(i).then(()=>n):n}}),bt=r("$ZodEnum",(e,t)=>{Oe.init(e,t);const n=function(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(e=>b.has(typeof e)).map(e=>"string"==typeof e?k(e):e.toString()).join("|")})$`),e._zod.parse=(t,o)=>{const i=t.value;return r.has(i)||t.issues.push({code:"invalid_value",values:n,input:i,inst:e}),t}}),kt=r("$ZodLiteral",(e,t)=>{if(Oe.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(e=>"string"==typeof e?k(e):e?k(e.toString()):String(e)).join("|")})$`),e._zod.parse=(n,r)=>{const o=n.value;return e._zod.values.has(o)||n.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),n}}),At=r("$ZodTransform",(e,t)=>{Oe.init(e,t),e._zod.parse=(n,r)=>{if("backward"===r.direction)throw new i(e.constructor.name);const s=t.transform(n.value,n);if(r.async){return(s instanceof Promise?s:Promise.resolve(s)).then(e=>(n.value=e,n))}if(s instanceof Promise)throw new o;return n.value=s,n}});function $t(e,t){return e.issues.length&&void 0===t?{issues:[],value:void 0}:e}const Zt=r("$ZodOptional",(e,t)=>{Oe.init(e,t),e._zod.optin="optional",e._zod.optout="optional",f(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),f(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${l(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>$t(t,e.value)):$t(r,e.value)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),St=r("$ZodNullable",(e,t)=>{Oe.init(e,t),f(e._zod,"optin",()=>t.innerType._zod.optin),f(e._zod,"optout",()=>t.innerType._zod.optout),f(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${l(e.source)}|null)$`):void 0}),f(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),Pt=r("$ZodDefault",(e,t)=>{Oe.init(e,t),e._zod.optin="optional",f(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Et(e,t)):Et(r,t)}});function Et(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}const jt=r("$ZodPrefault",(e,t)=>{Oe.init(e,t),e._zod.optin="optional",f(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),xt=r("$ZodNonOptional",(e,t)=>{Oe.init(e,t),f(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,r)=>{const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(t=>Tt(t,e)):Tt(o,e)}});function Tt(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const Ot=r("$ZodCatch",(e,t)=>{Oe.init(e,t),f(e._zod,"optin",()=>t.innerType._zod.optin),f(e._zod,"optout",()=>t.innerType._zod.optout),f(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>E(e,n,a()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>E(e,n,a()))},input:e.value}),e.issues=[]),e)}}),It=r("$ZodPipe",(e,t)=>{Oe.init(e,t),f(e._zod,"values",()=>t.in._zod.values),f(e._zod,"optin",()=>t.in._zod.optin),f(e._zod,"optout",()=>t.out._zod.optout),f(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Ft(e,t.in,n)):Ft(r,t.in,n)}const r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Ft(e,t.out,n)):Ft(r,t.out,n)}});function Ft(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const Ct=r("$ZodReadonly",(e,t)=>{Oe.init(e,t),f(e._zod,"propValues",()=>t.innerType._zod.propValues),f(e._zod,"values",()=>t.innerType._zod.values),f(e._zod,"optin",()=>t.innerType._zod.optin),f(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Dt):Dt(r)}});function Dt(e){return e.value=Object.freeze(e.value),e}const Rt=r("$ZodCustom",(e,t)=>{ge.init(e,t),Oe.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then(t=>Ut(t,n,r,e));Ut(o,n,r,e)}});function Ut(e,t,n,r){if(!e){const e={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(x(e))}}class Nt{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];if(this._map.set(e,n),n&&"object"==typeof n&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function Lt(){return new Nt}const Wt=Lt();function Bt(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...$(t)})}function Mt(e,t){return new we({check:"max_length",...$(t),maximum:e})}function Vt(e,t){return new ze({check:"min_length",...$(t),minimum:e})}function Jt(e,t){return new be({check:"length_equals",...$(t),length:e})}function Kt(e){return new je({check:"overwrite",tx:e})}function qt(e){const t=function(e,t){const n=new ge({check:"custom",...$(t)});return n._zod.check=e,n}(n=>(n.addIssue=e=>{if("string"==typeof e)n.issues.push(x(e,n.value,t._zod.def));else{const r=e;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=n.value),r.inst??(r.inst=t),r.continue??(r.continue=!t._zod.def.abort),n.issues.push(x(r))}},e(n.value,n)));return t}const Gt=r("ZodISODateTime",(e,t)=>{Ke.init(e,t),zn.init(e,t)});function Ht(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...$(t)})}(Gt,e)}const Yt=r("ZodISODate",(e,t)=>{qe.init(e,t),zn.init(e,t)});function Xt(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...$(t)})}(Yt,e)}const Qt=r("ZodISOTime",(e,t)=>{Ge.init(e,t),zn.init(e,t)});function en(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...$(t)})}(Qt,e)}const tn=r("ZodISODuration",(e,t)=>{He.init(e,t),zn.init(e,t)});function nn(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...$(t)})}(tn,e)}const rn=r("ZodError",(e,t)=>{O.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},r=e=>{for(const o of e.issues)if("invalid_union"===o.code&&o.errors.length)o.errors.map(e=>r({issues:e}));else if("invalid_key"===o.code)r({issues:o.issues});else if("invalid_element"===o.code)r({issues:o.issues});else if(0===o.path.length)n._errors.push(t(o));else{let e=n,r=0;for(;r<o.path.length;){const n=o.path[r];r===o.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(o))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.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}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,c,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,c,2)}},isEmpty:{get:()=>0===e.issues.length}})},{Parent:Error}),on=F(rn),sn=C(rn),an=D(rn),cn=U(rn),un=L(rn),dn=W(rn),ln=B(rn),pn=M(rn),fn=V(rn),hn=J(rn),mn=K(rn),_n=q(rn),yn=r("ZodType",(e,t)=>(Oe.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(m(t,{checks:[...t.checks??[],...n.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]})),e.clone=(t,n)=>A(e,t,n),e.brand=()=>e,e.register=(t,n)=>(t.add(e,n),e),e.parse=(t,n)=>on(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>an(e,t,n),e.parseAsync=async(t,n)=>sn(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>cn(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>un(e,t,n),e.decode=(t,n)=>dn(e,t,n),e.encodeAsync=async(t,n)=>ln(e,t,n),e.decodeAsync=async(t,n)=>pn(e,t,n),e.safeEncode=(t,n)=>fn(e,t,n),e.safeDecode=(t,n)=>hn(e,t,n),e.safeEncodeAsync=async(t,n)=>mn(e,t,n),e.safeDecodeAsync=async(t,n)=>_n(e,t,n),e.refine=(t,n)=>e.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...$(n)})}(vr,e,t)}(t,n)),e.superRefine=t=>e.check(qt(t)),e.overwrite=t=>e.check(Kt(t)),e.optional=()=>cr(e),e.nullable=()=>dr(e),e.nullish=()=>cr(dr(e)),e.nonoptional=t=>function(e,t){return new fr({type:"nonoptional",innerType:e,...$(t)})}(e,t),e.array=()=>qn(e),e.or=t=>Xn([e,t]),e.and=t=>new Qn({type:"intersection",left:e,right:t}),e.transform=t=>_r(e,new sr({type:"transform",transform:t})),e.default=t=>{return n=t,new lr({type:"default",innerType:e,get defaultValue(){return"function"==typeof n?n():z(n)}});var n},e.prefault=t=>{return n=t,new pr({type:"prefault",innerType:e,get defaultValue(){return"function"==typeof n?n():z(n)}});var n},e.catch=t=>{return new hr({type:"catch",innerType:e,catchValue:"function"==typeof(n=t)?n:()=>n});var n},e.pipe=t=>_r(e,t),e.readonly=()=>new yr({type:"readonly",innerType:e}),e.describe=t=>{const n=e.clone();return Wt.add(n,{description:t}),n},Object.defineProperty(e,"description",{get:()=>Wt.get(e)?.description,configurable:!0}),e.meta=(...t)=>{if(0===t.length)return Wt.get(e);const n=e.clone();return Wt.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),vn=r("_ZodString",(e,t)=>{Ie.init(e,t),yn.init(e,t);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(function(e,t){return new Ae({check:"string_format",format:"regex",...$(t),pattern:e})}(...t)),e.includes=(...t)=>e.check(function(e,t){return new Se({check:"string_format",format:"includes",...$(t),includes:e})}(...t)),e.startsWith=(...t)=>e.check(function(e,t){return new Pe({check:"string_format",format:"starts_with",...$(t),prefix:e})}(...t)),e.endsWith=(...t)=>e.check(function(e,t){return new Ee({check:"string_format",format:"ends_with",...$(t),suffix:e})}(...t)),e.min=(...t)=>e.check(Vt(...t)),e.max=(...t)=>e.check(Mt(...t)),e.length=(...t)=>e.check(Jt(...t)),e.nonempty=(...t)=>e.check(Vt(1,...t)),e.lowercase=t=>e.check(function(e){return new $e({check:"string_format",format:"lowercase",...$(e)})}(t)),e.uppercase=t=>e.check(function(e){return new Ze({check:"string_format",format:"uppercase",...$(e)})}(t)),e.trim=()=>e.check(Kt(e=>e.trim())),e.normalize=(...t)=>e.check(function(e){return Kt(t=>t.normalize(e))}(...t)),e.toLowerCase=()=>e.check(Kt(e=>e.toLowerCase())),e.toUpperCase=()=>e.check(Kt(e=>e.toUpperCase()))}),gn=r("ZodString",(e,t)=>{Ie.init(e,t),vn.init(e,t),e.email=t=>e.check(function(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...$(t)})}(bn,t)),e.url=t=>e.check(function(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...$(t)})}($n,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...$(t)})}(Nn,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...$(t)})}(Zn,t)),e.guid=t=>e.check(Bt(kn,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...$(t)})}(An,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...$(t)})}(An,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...$(t)})}(An,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...$(t)})}(An,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...$(t)})}(Sn,t)),e.guid=t=>e.check(Bt(kn,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...$(t)})}(Pn,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...$(t)})}(En,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...$(t)})}(jn,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...$(t)})}(Dn,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...$(t)})}(Rn,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...$(t)})}(xn,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...$(t)})}(Tn,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...$(t)})}(On,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...$(t)})}(In,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...$(t)})}(Fn,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...$(t)})}(Cn,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...$(t)})}(Un,t)),e.datetime=t=>e.check(Ht(t)),e.date=t=>e.check(Xt(t)),e.time=t=>e.check(en(t)),e.duration=t=>e.check(nn(t))});function wn(e){return function(e,t){return new e({type:"string",...$(t)})}(gn,e)}const zn=r("ZodStringFormat",(e,t)=>{Fe.init(e,t),vn.init(e,t)}),bn=r("ZodEmail",(e,t)=>{Re.init(e,t),zn.init(e,t)}),kn=r("ZodGUID",(e,t)=>{Ce.init(e,t),zn.init(e,t)}),An=r("ZodUUID",(e,t)=>{De.init(e,t),zn.init(e,t)}),$n=r("ZodURL",(e,t)=>{Ue.init(e,t),zn.init(e,t)}),Zn=r("ZodEmoji",(e,t)=>{Ne.init(e,t),zn.init(e,t)}),Sn=r("ZodNanoID",(e,t)=>{Le.init(e,t),zn.init(e,t)}),Pn=r("ZodCUID",(e,t)=>{We.init(e,t),zn.init(e,t)}),En=r("ZodCUID2",(e,t)=>{Be.init(e,t),zn.init(e,t)}),jn=r("ZodULID",(e,t)=>{Me.init(e,t),zn.init(e,t)}),xn=r("ZodXID",(e,t)=>{Ve.init(e,t),zn.init(e,t)}),Tn=r("ZodKSUID",(e,t)=>{Je.init(e,t),zn.init(e,t)}),On=r("ZodIPv4",(e,t)=>{Ye.init(e,t),zn.init(e,t)}),In=r("ZodIPv6",(e,t)=>{Xe.init(e,t),zn.init(e,t)}),Fn=r("ZodCIDRv4",(e,t)=>{Qe.init(e,t),zn.init(e,t)}),Cn=r("ZodCIDRv6",(e,t)=>{et.init(e,t),zn.init(e,t)}),Dn=r("ZodBase64",(e,t)=>{nt.init(e,t),zn.init(e,t)}),Rn=r("ZodBase64URL",(e,t)=>{rt.init(e,t),zn.init(e,t)}),Un=r("ZodE164",(e,t)=>{ot.init(e,t),zn.init(e,t)}),Nn=r("ZodJWT",(e,t)=>{it.init(e,t),zn.init(e,t)}),Ln=r("ZodBoolean",(e,t)=>{st.init(e,t),yn.init(e,t)});function Wn(e){return function(e,t){return new e({type:"boolean",...$(t)})}(Ln,e)}const Bn=r("ZodUnknown",(e,t)=>{at.init(e,t),yn.init(e,t)});function Mn(){return new Bn({type:"unknown"})}const Vn=r("ZodNever",(e,t)=>{ct.init(e,t),yn.init(e,t)});function Jn(e){return function(e,t){return new e({type:"never",...$(t)})}(Vn,e)}const Kn=r("ZodArray",(e,t)=>{dt.init(e,t),yn.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(Vt(t,n)),e.nonempty=t=>e.check(Vt(1,t)),e.max=(t,n)=>e.check(Mt(t,n)),e.length=(t,n)=>e.check(Jt(t,n)),e.unwrap=()=>e.element});function qn(e,t){return function(e,t,n){return new e({type:"array",element:t,...$(n)})}(Kn,e,t)}const Gn=r("ZodObject",(e,t)=>{mt.init(e,t),yn.init(e,t),f(e,"shape",()=>t.shape),e.keyof=()=>rr(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Mn()}),e.loose=()=>e.clone({...e._zod.def,catchall:Mn()}),e.strict=()=>e.clone({...e._zod.def,catchall:Jn()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>function(e,t){if(!w(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0)throw new Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");const r=m(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return h(this,"shape",n),n},checks:[]});return A(e,r)}(e,t),e.safeExtend=t=>function(e,t){if(!w(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n={...e._zod.def,get shape(){const n={...e._zod.def.shape,...t};return h(this,"shape",n),n},checks:e._zod.def.checks};return A(e,n)}(e,t),e.merge=t=>function(e,t){const n=m(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return h(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return A(e,n)}(e,t),e.pick=t=>function(e,t){const n=e._zod.def;return A(e,m(e._zod.def,{get shape(){const e={};for(const r in t){if(!(r in n.shape))throw new Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return h(this,"shape",e),e},checks:[]}))}(e,t),e.omit=t=>function(e,t){const n=e._zod.def,r=m(e._zod.def,{get shape(){const r={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return h(this,"shape",r),r},checks:[]});return A(e,r)}(e,t),e.partial=(...t)=>function(e,t,n){const r=m(t._zod.def,{get shape(){const r=t._zod.def.shape,o={...r};if(n)for(const t in n){if(!(t in r))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(o[t]=e?new e({type:"optional",innerType:r[t]}):r[t])}else for(const t in r)o[t]=e?new e({type:"optional",innerType:r[t]}):r[t];return h(this,"shape",o),o},checks:[]});return A(t,r)}(ar,e,t[0]),e.required=(...t)=>function(e,t,n){const r=m(t._zod.def,{get shape(){const r=t._zod.def.shape,o={...r};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(o[t]=new e({type:"nonoptional",innerType:r[t]}))}else for(const t in r)o[t]=new e({type:"nonoptional",innerType:r[t]});return h(this,"shape",o),o},checks:[]});return A(t,r)}(fr,e,t[0])});function Hn(e,t){const n={type:"object",shape:e??{},...$(t)};return new Gn(n)}const Yn=r("ZodUnion",(e,t)=>{yt.init(e,t),yn.init(e,t),e.options=t.options});function Xn(e,t){return new Yn({type:"union",options:e,...$(t)})}const Qn=r("ZodIntersection",(e,t)=>{vt.init(e,t),yn.init(e,t)});const er=r("ZodRecord",(e,t)=>{zt.init(e,t),yn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function tr(e,t,n){return new er({type:"record",keyType:e,valueType:t,...$(n)})}const nr=r("ZodEnum",(e,t)=>{bt.init(e,t),yn.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{const o={};for(const r of e){if(!n.has(r))throw new Error(`Key ${r} not found in enum`);o[r]=t.entries[r]}return new nr({...t,checks:[],...$(r),entries:o})},e.exclude=(e,r)=>{const o={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete o[t]}return new nr({...t,checks:[],...$(r),entries:o})}});function rr(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new nr({type:"enum",entries:n,...$(t)})}const or=r("ZodLiteral",(e,t)=>{kt.init(e,t),yn.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ir(e,t){return new or({type:"literal",values:Array.isArray(e)?e:[e],...$(t)})}const sr=r("ZodTransform",(e,t)=>{At.init(e,t),yn.init(e,t),e._zod.parse=(n,r)=>{if("backward"===r.direction)throw new i(e.constructor.name);n.addIssue=r=>{if("string"==typeof r)n.issues.push(x(r,n.value,t));else{const t=r;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(x(t))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(e=>(n.value=e,n)):(n.value=o,n)}});const ar=r("ZodOptional",(e,t)=>{Zt.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function cr(e){return new ar({type:"optional",innerType:e})}const ur=r("ZodNullable",(e,t)=>{St.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function dr(e){return new ur({type:"nullable",innerType:e})}const lr=r("ZodDefault",(e,t)=>{Pt.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});const pr=r("ZodPrefault",(e,t)=>{jt.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType});const fr=r("ZodNonOptional",(e,t)=>{xt.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType});const hr=r("ZodCatch",(e,t)=>{Ot.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});const mr=r("ZodPipe",(e,t)=>{It.init(e,t),yn.init(e,t),e.in=t.in,e.out=t.out});function _r(e,t){return new mr({type:"pipe",in:e,out:t})}const yr=r("ZodReadonly",(e,t)=>{Ct.init(e,t),yn.init(e,t),e.unwrap=()=>e._zod.def.innerType});const vr=r("ZodCustom",(e,t)=>{Rt.init(e,t),yn.init(e,t)});const gr="directus:extension",wr=Hn({app:wn(),api:wn()}),zr=Hn({request:cr(Hn({urls:qn(wn()),methods:qn(Xn([ir("GET"),ir("POST"),ir("PATCH"),ir("PUT"),ir("DELETE")]))})),log:cr(Hn({})),sleep:cr(Hn({}))}),br=cr(Hn({enabled:Wn(),requestedScopes:zr})),kr=Xn([Hn({type:rr(t),name:wn(),source:wn()}),Hn({type:rr(e),name:wn(),source:wn()}),Hn({type:rr(n),name:wn(),source:wr})]),Ar=Hn({host:wn(),hidden:Wn().optional()}),$r=Hn({type:rr(e),path:wn(),source:wn()}),Zr=Hn({type:rr(t),path:wn(),source:wn(),sandbox:br}),Sr=Hn({type:rr(n),path:wr,source:wr,sandbox:br}),Pr=Hn({type:ir("bundle"),partial:Wn().optional(),path:wr,entries:qn(kr)});qn(kr);const Er=Ar.and(Xn([$r,Zr,Sr,Pr]));Hn({name:wn(),version:wn(),type:Xn([ir("module"),ir("commonjs")]).optional(),description:wn().optional(),icon:wn().optional(),dependencies:tr(wn(),wn()).optional(),devDependencies:tr(wn(),wn()).optional(),[gr]:Er});const jr="module_permissions",xr={own_role_only:[],roles:[],hide_navigation:[]},Tr={version:1,rules:[],homes:[],collections:[],sidebar_panels:[],sidebar_modes:[],users:{...xr,own_role_only:[],roles:[],hide_navigation:[]}};function Or(e){if("string"!=typeof e)return null;let t=e.trim();return t?/^[a-z][a-z0-9+.-]*:/i.test(t)||t.startsWith("//")?null:(t=t.split("#")[0]??t,t?(t.startsWith("/")||(t=`/${t}`),"/admin"===t?t="/":t.startsWith("/admin/")&&(t=t.slice(6)||"/"),t.includes("..")||t.length>512?null:(t=t.replace(/\/{2,}/g,"/"),t)):null):null}function Ir(e){return{id:String(e.id),visibility:"show"===e.visibility?"show":"hide",roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[],block_routes:!1!==e.block_routes}}function Fr(e){if(!e||"object"!=typeof e)return{...Tr,rules:[],homes:[],collections:[],sidebar_panels:[],sidebar_modes:[],users:{...xr,own_role_only:[],roles:[],hide_navigation:[]}};const t=e,n=Array.isArray(t.rules)?t.rules.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>Ir(e)):[],r=Array.isArray(t.homes)?t.homes.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>({id:String(e.id),path:"string"==typeof e.path?e.path:"",roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[],force:!0===e.force})).filter(e=>function(e){return null!==Or(e)}(e.path)):[],o=Array.isArray(t.collections)?t.collections.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>Ir(e)):[],i=Array.isArray(t.sidebar_panels)?t.sidebar_panels.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>({id:String(e.id),visibility:"show"===e.visibility?"show":"hide",roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[]})):[],s=Array.isArray(t.sidebar_modes)?t.sidebar_modes.filter(e=>Boolean(e&&"object"==typeof e&&e.id&&e.mode)).map(e=>({id:String(e.id),mode:"hidden"===e.mode?"hidden":"collapsed",roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[]})):[],a=function(e){if(!e||"object"!=typeof e)return{own_role_only:[],roles:[],hide_navigation:[]};const t=e;return{own_role_only:Array.isArray(t.own_role_only)?t.own_role_only.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>({id:String(e.id),roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[]})):[],roles:Array.isArray(t.roles)?t.roles.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>Ir(e)):[],hide_navigation:Array.isArray(t.hide_navigation)?t.hide_navigation.filter(e=>Boolean(e&&"object"==typeof e&&e.id)).map(e=>({id:String(e.id),modules:Array.isArray(e.modules)?e.modules.map(String).filter(Boolean):[],roles:Array.isArray(e.roles)?e.roles.map(String):[],policies:Array.isArray(e.policies)?e.policies.map(String):[]})).filter(e=>e.modules.length>0):[]}}(t.users),c=Array.isArray(t.blocked_ids)?t.blocked_ids.map(String):void 0,u=Array.isArray(t.blocked_collection_ids)?t.blocked_collection_ids.map(String):void 0,d=null===t.home_path?null:"string"==typeof t.home_path?Or(t.home_path):void 0,l="boolean"==typeof t.home_force?t.home_force:void 0,p=Array.isArray(t.sidebar_hidden_panels)?t.sidebar_hidden_panels.map(String):void 0,f="collapsed"===t.sidebar_mode||"hidden"===t.sidebar_mode||"default"===t.sidebar_mode?t.sidebar_mode:void 0,h="boolean"==typeof t.users_own_role_only?t.users_own_role_only:void 0,m=Array.isArray(t.users_allowed_role_ids)?t.users_allowed_role_ids.map(String):void 0,_=Array.isArray(t.users_hidden_role_ids)?t.users_hidden_role_ids.map(String):void 0,y=Array.isArray(t.users_blocked_role_ids)?t.users_blocked_role_ids.map(String):void 0,v=Array.isArray(t.navigation_hidden_modules)?t.navigation_hidden_modules.map(String):void 0;return{version:1,rules:n,homes:r,collections:o,sidebar_panels:i,sidebar_modes:s,users:a,...c?{blocked_ids:c}:{},...u?{blocked_collection_ids:u}:{},...void 0!==d?{home_path:d}:{},...void 0!==l?{home_force:l}:{},...p?{sidebar_hidden_panels:p}:{},...f?{sidebar_mode:f}:{},...void 0!==h?{users_own_role_only:h}:{},...m?{users_allowed_role_ids:m}:{},..._?{users_hidden_role_ids:_}:{},...y?{users_blocked_role_ids:y}:{},...v?{navigation_hidden_modules:v}:{}}}function Cr(e){return(e.roles?.length??0)>0||(e.policies?.length??0)>0}function Dr(e,t){if(!Cr(e))return!1;const n=new Set(t.roleIds),r=new Set(t.policyIds);return!!(e.roles||[]).some(e=>n.has(e))||!!(e.policies||[]).some(e=>r.has(e))}function Rr(e,t){if(!e||!Cr(e))return!1;const n=Dr(e,t);return!("hide"!==e.visibility||!n)||"show"===e.visibility&&!n}function Ur(e,t,n){if(!Array.isArray(e))return[];const r=Fr(t).rules,o=new Map(r.map(e=>[e.id,e])),i=[];for(const t of e){const e=Rr(o.get(t.id),n);if("link"!==t.type)e?i.push({...t,enabled:!1}):i.push({...t});else{if(!1===t.enabled||e)continue;i.push({...t})}}return i}function Nr(e,t,n){if(!Array.isArray(e))return[];const r=Fr(t).rules,o=new Map(r.map(e=>[e.id,e])),i=[];for(const t of e){const e=o.get(t.id);Rr(e,n)&&(e&&!1===e.block_routes||i.push(t.id))}return i}function Lr(e,t){const n=Fr(e).collections,r=[];for(const e of n)Rr(e,t)&&!1!==e.block_routes&&r.push(e.id);return r}function Wr(e,t){const n=Fr(e).homes;if(!n.length)return null;const r=n.filter(e=>Cr(e)),o=n.filter(e=>!Cr(e));for(const e of r){if(!Dr(e,t))continue;const n=Or(e.path);if(n)return{path:n,force:!0===e.force}}for(const e of o){const t=Or(e.path);if(t)return{path:t,force:!0===e.force}}return null}function Br(e,t){return Wr(e,t)?.path??null}function Mr(e,t){return!0===Wr(e,t)?.force}function Vr(e,t){const n=Fr(e).sidebar_panels,r=[];for(const e of n)Rr(e,t)&&r.push(String(e.id));return r}function Jr(e,t){const n=Fr(e).sidebar_modes;if(!n.length)return"default";const r=n.filter(e=>Cr(e)),o=n.filter(e=>!Cr(e));for(const e of r)if(Dr(e,t))return e.mode;return o[0]?o[0].mode:"default"}function Kr(e,t){const n=Fr(e).users.own_role_only;if(!n.length)return!1;const r=n.filter(e=>Cr(e)),o=n.filter(e=>!Cr(e));for(const e of r)if(Dr(e,t))return!0;return o.length>0}function qr(e){return[...e.roleIds]}function Gr(e,t){const n=Fr(e).users.roles,r=[];for(const e of n)Rr(e,t)&&r.push(String(e.id));return r}function Hr(e,t){const n=Fr(e).users.roles,r=[];for(const e of n)Rr(e,t)&&!1!==e.block_routes&&r.push(String(e.id));return r}function Yr(e,t){const n=Fr(e).users.hide_navigation,r=new Set,o=n.filter(e=>Cr(e)),i=n.filter(e=>!Cr(e));for(const e of o)if(Dr(e,t))for(const t of e.modules)r.add(String(t));for(const e of i)for(const t of e.modules)r.add(String(t));return[...r]}function Xr(e,t,n){if(!Array.isArray(e))return[];const r=Fr(t),o=Kr(r,n),i=(r.users?.roles?.length??0)>0;if(!o&&!i)return e;const s=e.filter(e=>{const t=e?.id;return!t||function(e,t,n){const r=Fr(t),o=Kr(r,n),i=new Set(qr(n));return!(new Set(Gr(r,n)).has(String(e))||o&&!i.has(String(e)))}(String(t),r,n)}),a=new Set(s.map(e=>String(e.id)).filter(Boolean));return s.map(e=>{const t=e?.parent;return null==t||""===t||a.has(String(t))?e:{...e,parent:null}})}async function Qr(e,t){const n=new Set,r=new Set;if(!t?.user&&!t?.role)return{roleIds:[],policyIds:[]};if(t.role&&n.add(t.role),Array.isArray(t.roles))for(const e of t.roles)e&&n.add(String(e));try{if(await e.schema.hasColumn("directus_roles","parent"))for(const t of[...n]){let r=t;for(let t=0;t<25&&r;t++){const t=await e("directus_roles").select("parent").where({id:r}).first();if(!t?.parent)break;const o=String(t.parent);if(n.has(o))break;n.add(o),r=o}}}catch{}try{if(await e.schema.hasTable("directus_access")){const o=e("directus_access").select("policy");o.where(e=>{let r=!1;t.user&&(e.where({user:t.user}),r=!0),n.size>0&&(r?e.orWhereIn("role",[...n]):e.whereIn("role",[...n]))});const i=await o;for(const e of i||[])e?.policy&&r.add(String(e.policy))}}catch{}return{roleIds:[...n],policyIds:[...r]}}async function eo(e){try{const t=await e("directus_settings").select(jr).first();return Fr(t?.[jr])}catch{return{...Tr}}}var to=({filter:e,action:t,init:n},{services:r,database:o,getSchema:i,logger:s})=>{let a=null;const c=()=>(a||(a=async function(e,t,n,r){try{const o=await n.schema.hasColumn("directus_settings",jr);if(o&&await n("directus_fields").where({collection:"directus_settings",field:jr}).first())return;const i=await t(),{FieldsService:s}=e,a=new s({schema:i,accountability:{admin:!0}}),c=await a.readAll("directus_settings"),u=c?.some(e=>e.field===jr);if(u&&o)return;o&&u||(await a.createField("directus_settings",{field:jr,type:"json",meta:{collection:"directus_settings",field:jr,special:["cast-json"],interface:"input-code",hidden:!0,readonly:!1,width:"full",note:"Managed by Module Permissions extension. Do not edit manually."},schema:{default_value:JSON.stringify(Tr)}}),r.info(`[module-permissions] Created directus_settings.${jr}`))}catch(e){const t=String(e?.message||e||"");if(/already exists|duplicate|SQLITE_ERROR/i.test(t))return void r.warn(`[module-permissions] Field ensure skipped: ${t}`);r.error(`[module-permissions] Failed to ensure field: ${t}`)}}(r,i,o,s)),a);n("app.before",async()=>{await c()}),t("server.start",async()=>{await c()}),e("settings.read",async(e,t,n)=>{await c();const r=n?.accountability??null;if(r?.admin)return e;const i=function(e){return Array.isArray(e)?e:e&&"object"==typeof e&&Array.isArray(e.data)?e.data:null}(e);if(!i?.length)return e;const s=await Qr(o,r);for(const e of i){if(!e||"object"!=typeof e)continue;const t=Fr(e[jr]),n=e.module_bar;e.module_bar=Ur(n,t,s);const r=Kr(t,s);e[jr]={version:1,rules:[],homes:[],collections:[],sidebar_panels:[],sidebar_modes:[],users:{own_role_only:[],roles:[],hide_navigation:[]},blocked_ids:Nr(n,t,s),blocked_collection_ids:Lr(t,s),home_path:Br(t,s),home_force:Mr(t,s),sidebar_hidden_panels:Vr(t,s),sidebar_mode:Jr(t,s),users_own_role_only:r,...r?{users_allowed_role_ids:qr(s)}:{},users_hidden_role_ids:Gr(t,s),users_blocked_role_ids:Hr(t,s),navigation_hidden_modules:Yr(t,s)}}return e}),e("collections.read",async(e,t,n)=>{await c();const r=n?.accountability??null;if(r?.admin)return e;const i=function(e){return Array.isArray(e)?{list:e,wrap:e=>e}:e&&"object"==typeof e&&Array.isArray(e.data)?{list:e.data,wrap:t=>({...e,data:t})}:null}(e);if(!i?.list?.length)return e;const s=await eo(o);if(!s.collections.length)return e;const a=await Qr(o,r),u=function(e,t,n){if(!Array.isArray(e))return[];const r=Fr(t).collections,o=new Map(r.map(e=>[e.id,e]));return e.map(e=>{const t=e?.collection||e?.meta?.collection;if(!t)return e;if(!Rr(o.get(String(t)),n))return e;const r={...e};return r.meta={...e.meta||{},hidden:!0},"hidden"in r&&(r.hidden=!0),r})}(i.list,s,a);return i.wrap?i.wrap(u):u}),e("roles.read",async(e,t,n)=>{await c();const r=n?.accountability??null;if(!r?.user||r.admin)return e;const i=function(e){return Array.isArray(e)?{list:e,wrap:e=>e}:e&&"object"==typeof e&&Array.isArray(e.data)?{list:e.data,wrap:t=>({...e,data:t})}:null}(e);if(!i?.list?.length)return e;const s=await eo(o),a=await Qr(o,r);if(!(Kr(s,a)||s.users?.roles?.length>0))return e;const u=Xr(i.list,s,a);return i.wrap?i.wrap(u):u}),e("settings.update",async(e,t,n)=>{const r=n?.accountability??null;return r?.admin?e:e&&"object"==typeof e?(jr in e&&delete e[jr],"module_bar"in e&&delete e.module_bar,e):e})};const no=[{name:"module-permissions-hook",config:to}],ro=[],oo=[];export{ro as endpoints,no as hooks,oo as operations};
|