chief-clancy 0.8.19 → 0.8.20
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 +1 -1
- package/dist/bundle/clancy-once.js +19 -19
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Autonomous, board-driven development for Claude Code.**
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/chief-clancy) [](./LICENSE) [](https://www.npmjs.com/package/chief-clancy) [](./LICENSE) [](docs/TESTING.md) [](https://github.com/Pushedskydiver/clancy/stargazers)
|
|
6
6
|
|
|
7
7
|
> [!WARNING]
|
|
8
8
|
> Clancy is in early development. Expect bugs, breaking changes, and rough edges. If you hit an issue, please [open a bug report](https://github.com/Pushedskydiver/clancy/issues/new).
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
var xf=Object.defineProperty;var ve=(e,t)=>{for(var r in t)xf(e,r,{get:t[r],enumerable:!0})};import{resolve as x_}from"node:path";import{fileURLToPath as k_}from"node:url";function Ce(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return n>0?`${r}m ${n}s`:`${r}m`;let o=Math.floor(r/60),s=r%60;return s>0?`${o}h ${s}m`:`${o}h`}import{execFileSync as pe}from"node:child_process";function
|
|
2
|
-
... (truncated)`:r:void 0}catch{return}}function et(e){try{return pe("git",["push","-u","origin",e],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}var $=e=>`\x1B[2m${e}\x1B[0m`,Ne=e=>`\x1B[1m${e}\x1B[0m`;var N=e=>`\x1B[32m${e}\x1B[0m`,Oe=e=>`\x1B[31m${e}\x1B[0m`,v=e=>`\x1B[33m${e}\x1B[0m`;function Ja(e){return{argv:e,dryRun:e.includes("--dry-run"),skipFeasibility:e.includes("--skip-feasibility"),startTime:Date.now(),cwd:process.cwd(),isAfk:process.env.CLANCY_AFK_MODE==="1"}}import{mkdirSync as kf,readFileSync as Sf,unlinkSync as Ka,writeFileSync as vf}from"node:fs";import{dirname as zf,join as Bt}from"node:path";function Ya(e,t){let r=Bt(e,".clancy","lock.json");kf(zf(r),{recursive:!0}),vf(r,JSON.stringify(t,null,2),"utf8")}function Ut(e){let t=Bt(e,".clancy","lock.json");try{let r=Sf(t,"utf8");return JSON.parse(r)}catch{return}}function Ft(e){let t=Bt(e,".clancy","lock.json");try{Ka(t)}catch{}}function Ht(e){let t=Bt(e,".clancy","verify-attempt.txt");try{Ka(t)}catch{}}function Tf(e){try{return process.kill(e,0),!0}catch(t){return t instanceof Error&&"code"in t&&t.code==="EPERM"}}function Ga(e){if(!Tf(e.pid))return!0;let t=Date.now()-new Date(e.startedAt).getTime();if(Number.isNaN(t))return!0;let r=1440*60*1e3;return t>r}import{execFileSync as _l}from"node:child_process";import{readFileSync as Yg}from"node:fs";import{join as Gg}from"node:path";var c={};ve(c,{$brand:()=>Wr,$input:()=>Es,$output:()=>Ps,NEVER:()=>Gr,TimePrecision:()=>ti,ZodMiniAny:()=>ru,ZodMiniArray:()=>au,ZodMiniBase64:()=>Yc,ZodMiniBase64URL:()=>Gc,ZodMiniBigInt:()=>kt,ZodMiniBigIntFormat:()=>sa,ZodMiniBoolean:()=>xt,ZodMiniCIDRv4:()=>qc,ZodMiniCIDRv6:()=>Jc,ZodMiniCUID:()=>jc,ZodMiniCUID2:()=>Dc,ZodMiniCatch:()=>zu,ZodMiniCodec:()=>pa,ZodMiniCustom:()=>fa,ZodMiniCustomStringFormat:()=>wt,ZodMiniDate:()=>$r,ZodMiniDefault:()=>ku,ZodMiniDiscriminatedUnion:()=>lu,ZodMiniE164:()=>Wc,ZodMiniEmail:()=>Nc,ZodMiniEmoji:()=>Lc,ZodMiniEnum:()=>aa,ZodMiniExactOptional:()=>$u,ZodMiniFile:()=>bu,ZodMiniFunction:()=>Nu,ZodMiniGUID:()=>Oc,ZodMiniIPv4:()=>Fc,ZodMiniIPv6:()=>Hc,ZodMiniISODate:()=>zr,ZodMiniISODateTime:()=>vr,ZodMiniISODuration:()=>Ir,ZodMiniISOTime:()=>Tr,ZodMiniIntersection:()=>pu,ZodMiniJWT:()=>Vc,ZodMiniKSUID:()=>Uc,ZodMiniLazy:()=>Eu,ZodMiniLiteral:()=>_u,ZodMiniMAC:()=>Kc,ZodMiniMap:()=>hu,ZodMiniNaN:()=>Tu,ZodMiniNanoID:()=>Zc,ZodMiniNever:()=>ou,ZodMiniNonOptional:()=>ua,ZodMiniNull:()=>eu,ZodMiniNullable:()=>xu,ZodMiniNumber:()=>$t,ZodMiniNumberFormat:()=>qe,ZodMiniObject:()=>xr,ZodMiniOptional:()=>ca,ZodMiniPipe:()=>la,ZodMiniPrefault:()=>Su,ZodMiniPromise:()=>Ru,ZodMiniReadonly:()=>Iu,ZodMiniRecord:()=>kr,ZodMiniSet:()=>gu,ZodMiniString:()=>He,ZodMiniStringFormat:()=>A,ZodMiniSuccess:()=>vu,ZodMiniSymbol:()=>Qc,ZodMiniTemplateLiteral:()=>Pu,ZodMiniTransform:()=>wu,ZodMiniTuple:()=>fu,ZodMiniType:()=>S,ZodMiniULID:()=>Mc,ZodMiniURL:()=>oa,ZodMiniUUID:()=>bt,ZodMiniUndefined:()=>Xc,ZodMiniUnion:()=>ia,ZodMiniUnknown:()=>nu,ZodMiniVoid:()=>iu,ZodMiniXID:()=>Bc,ZodMiniXor:()=>uu,_default:()=>Wh,_function:()=>hg,any:()=>Sh,array:()=>K,base64:()=>ih,base64url:()=>ah,bigint:()=>bh,boolean:()=>Je,catch:()=>eg,catchall:()=>Lh,check:()=>ag,cidrv4:()=>nh,cidrv6:()=>oh,clone:()=>q,codec:()=>ng,coerce:()=>ma,config:()=>B,core:()=>Fe,cuid:()=>Wm,cuid2:()=>Vm,custom:()=>Cu,date:()=>zh,decode:()=>bn,decodeAsync:()=>$n,describe:()=>lg,discriminatedUnion:()=>jh,e164:()=>ch,email:()=>Mm,emoji:()=>Ym,encode:()=>_n,encodeAsync:()=>wn,endsWith:()=>Fi,enum:()=>yu,exactOptional:()=>Yh,extend:()=>ke,file:()=>Jh,flattenError:()=>mn,float32:()=>hh,float64:()=>gh,formatError:()=>hn,function:()=>hg,globalRegistry:()=>ae,gt:()=>gr,gte:()=>gt,guid:()=>Bm,hash:()=>dh,hex:()=>fh,hostname:()=>ph,httpUrl:()=>Km,includes:()=>Bi,instanceof:()=>fg,int:()=>mh,int32:()=>yh,int64:()=>wh,intersection:()=>Dh,ipv4:()=>th,ipv6:()=>rh,iso:()=>da,json:()=>mg,jwt:()=>uh,keyof:()=>Th,ksuid:()=>eh,lazy:()=>Au,length:()=>ji,literal:()=>qh,locales:()=>mt,looseObject:()=>Ph,looseRecord:()=>Bh,lowercase:()=>Di,lt:()=>hr,lte:()=>ht,mac:()=>sh,map:()=>Uh,maxLength:()=>Zi,maxSize:()=>Ni,maximum:()=>ht,merge:()=>Ah,meta:()=>pg,mime:()=>qi,minLength:()=>yt,minSize:()=>Oi,minimum:()=>gt,multipleOf:()=>Ci,nan:()=>tg,nanoid:()=>Gm,nativeEnum:()=>Hh,negative:()=>Ei,never:()=>su,nonnegative:()=>Ri,nonoptional:()=>Qh,nonpositive:()=>Ai,normalize:()=>Ji,null:()=>tu,nullable:()=>Sr,nullish:()=>Gh,number:()=>xe,object:()=>I,omit:()=>Ch,optional:()=>w,overwrite:()=>_e,parse:()=>ge,parseAsync:()=>ye,partial:()=>Nh,partialRecord:()=>Mh,pick:()=>Rh,pipe:()=>rg,positive:()=>Pi,prefault:()=>Vh,prettifyError:()=>yn,promise:()=>ig,property:()=>Hi,readonly:()=>og,record:()=>mu,refine:()=>cg,regex:()=>_t,regexes:()=>re,registry:()=>dr,required:()=>Oh,safeDecode:()=>kn,safeDecodeAsync:()=>vn,safeEncode:()=>xn,safeEncodeAsync:()=>Sn,safeExtend:()=>Eh,safeParse:()=>Te,safeParseAsync:()=>Ie,set:()=>Fh,size:()=>Li,startsWith:()=>Ui,strictObject:()=>Ih,string:()=>b,stringFormat:()=>lh,stringbool:()=>dg,success:()=>Xh,superRefine:()=>ug,symbol:()=>xh,templateLiteral:()=>sg,toJSONSchema:()=>_r,toLowerCase:()=>Yi,toUpperCase:()=>Gi,transform:()=>Kh,treeifyError:()=>gn,trim:()=>Ki,tuple:()=>du,uint32:()=>_h,uint64:()=>$h,ulid:()=>Qm,undefined:()=>kh,union:()=>cu,unknown:()=>wr,uppercase:()=>Mi,url:()=>Jm,util:()=>te,uuid:()=>Um,uuidv4:()=>Fm,uuidv6:()=>Hm,uuidv7:()=>qm,void:()=>vh,xid:()=>Xm,xor:()=>Zh});var Fe={};ve(Fe,{$ZodAny:()=>Qo,$ZodArray:()=>ns,$ZodAsyncError:()=>se,$ZodBase64:()=>Uo,$ZodBase64URL:()=>Fo,$ZodBigInt:()=>cr,$ZodBigIntFormat:()=>Yo,$ZodBoolean:()=>pt,$ZodCIDRv4:()=>Do,$ZodCIDRv6:()=>Mo,$ZodCUID:()=>To,$ZodCUID2:()=>Io,$ZodCatch:()=>ws,$ZodCheck:()=>E,$ZodCheckBigIntFormat:()=>ro,$ZodCheckEndsWith:()=>ho,$ZodCheckGreaterThan:()=>tr,$ZodCheckIncludes:()=>fo,$ZodCheckLengthEquals:()=>co,$ZodCheckLessThan:()=>er,$ZodCheckLowerCase:()=>lo,$ZodCheckMaxLength:()=>io,$ZodCheckMaxSize:()=>no,$ZodCheckMimeType:()=>yo,$ZodCheckMinLength:()=>ao,$ZodCheckMinSize:()=>oo,$ZodCheckMultipleOf:()=>eo,$ZodCheckNumberFormat:()=>to,$ZodCheckOverwrite:()=>_o,$ZodCheckProperty:()=>go,$ZodCheckRegex:()=>uo,$ZodCheckSizeEquals:()=>so,$ZodCheckStartsWith:()=>mo,$ZodCheckStringFormat:()=>Me,$ZodCheckUpperCase:()=>po,$ZodCodec:()=>dt,$ZodCustom:()=>Is,$ZodCustomStringFormat:()=>Jo,$ZodDate:()=>rs,$ZodDefault:()=>gs,$ZodDiscriminatedUnion:()=>ss,$ZodE164:()=>Ho,$ZodEmail:()=>ko,$ZodEmoji:()=>vo,$ZodEncodeError:()=>Le,$ZodEnum:()=>ls,$ZodError:()=>dn,$ZodExactOptional:()=>ms,$ZodFile:()=>fs,$ZodFunction:()=>vs,$ZodGUID:()=>$o,$ZodIPv4:()=>Lo,$ZodIPv6:()=>Zo,$ZodISODate:()=>Co,$ZodISODateTime:()=>Ro,$ZodISODuration:()=>Oo,$ZodISOTime:()=>No,$ZodIntersection:()=>is,$ZodJWT:()=>qo,$ZodKSUID:()=>Ao,$ZodLazy:()=>Ts,$ZodLiteral:()=>ps,$ZodMAC:()=>jo,$ZodMap:()=>cs,$ZodNaN:()=>$s,$ZodNanoID:()=>zo,$ZodNever:()=>es,$ZodNonOptional:()=>_s,$ZodNull:()=>Vo,$ZodNullable:()=>hs,$ZodNumber:()=>ar,$ZodNumberFormat:()=>Ko,$ZodObject:()=>ur,$ZodObjectJIT:()=>kd,$ZodOptional:()=>pr,$ZodPipe:()=>xs,$ZodPrefault:()=>ys,$ZodPromise:()=>zs,$ZodReadonly:()=>ks,$ZodRealError:()=>W,$ZodRecord:()=>as,$ZodRegistry:()=>fr,$ZodSet:()=>us,$ZodString:()=>Be,$ZodStringFormat:()=>P,$ZodSuccess:()=>bs,$ZodSymbol:()=>Go,$ZodTemplateLiteral:()=>Ss,$ZodTransform:()=>ds,$ZodTuple:()=>lr,$ZodType:()=>x,$ZodULID:()=>Po,$ZodURL:()=>So,$ZodUUID:()=>xo,$ZodUndefined:()=>Wo,$ZodUnion:()=>ft,$ZodUnknown:()=>Xo,$ZodVoid:()=>ts,$ZodXID:()=>Eo,$ZodXor:()=>os,$brand:()=>Wr,$constructor:()=>d,$input:()=>Es,$output:()=>Ps,Doc:()=>lt,JSONSchema:()=>Cc,JSONSchemaGenerator:()=>br,NEVER:()=>Gr,TimePrecision:()=>ti,_any:()=>xi,_array:()=>Id,_base64:()=>Vs,_base64url:()=>Qs,_bigint:()=>hi,_boolean:()=>di,_catch:()=>Jd,_check:()=>Rc,_cidrv4:()=>Gs,_cidrv6:()=>Ws,_coercedBigint:()=>gi,_coercedBoolean:()=>mi,_coercedDate:()=>Ti,_coercedNumber:()=>ai,_coercedString:()=>Rs,_cuid:()=>Bs,_cuid2:()=>Us,_custom:()=>Vi,_date:()=>zi,_decode:()=>nc,_decodeAsync:()=>sc,_default:()=>Fd,_discriminatedUnion:()=>Ad,_e164:()=>Xs,_email:()=>Cs,_emoji:()=>Ds,_encode:()=>rc,_encodeAsync:()=>oc,_endsWith:()=>Fi,_enum:()=>Zd,_file:()=>Wi,_float32:()=>ui,_float64:()=>li,_gt:()=>gr,_gte:()=>gt,_guid:()=>Ns,_includes:()=>Bi,_int:()=>ci,_int32:()=>pi,_int64:()=>yi,_intersection:()=>Rd,_ipv4:()=>Js,_ipv6:()=>Ks,_isoDate:()=>ni,_isoDateTime:()=>ri,_isoDuration:()=>si,_isoTime:()=>oi,_jwt:()=>ei,_ksuid:()=>qs,_lazy:()=>Wd,_length:()=>ji,_literal:()=>Dd,_lowercase:()=>Di,_lt:()=>hr,_lte:()=>ht,_mac:()=>Ys,_map:()=>Od,_max:()=>ht,_maxLength:()=>Zi,_maxSize:()=>Ni,_mime:()=>qi,_min:()=>gt,_minLength:()=>yt,_minSize:()=>Oi,_multipleOf:()=>Ci,_nan:()=>Ii,_nanoid:()=>Ms,_nativeEnum:()=>jd,_negative:()=>Ei,_never:()=>Si,_nonnegative:()=>Ri,_nonoptional:()=>Hd,_nonpositive:()=>Ai,_normalize:()=>Ji,_null:()=>$i,_nullable:()=>Ud,_number:()=>ii,_optional:()=>Bd,_overwrite:()=>_e,_parse:()=>Yt,_parseAsync:()=>Gt,_pipe:()=>Kd,_positive:()=>Pi,_promise:()=>Vd,_property:()=>Hi,_readonly:()=>Yd,_record:()=>Nd,_refine:()=>Qi,_regex:()=>_t,_safeDecode:()=>ac,_safeDecodeAsync:()=>uc,_safeEncode:()=>ic,_safeEncodeAsync:()=>cc,_safeParse:()=>Wt,_safeParseAsync:()=>Vt,_set:()=>Ld,_size:()=>Li,_slugify:()=>Td,_startsWith:()=>Ui,_string:()=>As,_stringFormat:()=>Ue,_stringbool:()=>ra,_success:()=>qd,_superRefine:()=>Xi,_symbol:()=>bi,_templateLiteral:()=>Gd,_toLowerCase:()=>Yi,_toUpperCase:()=>Gi,_transform:()=>Md,_trim:()=>Ki,_tuple:()=>Cd,_uint32:()=>fi,_uint64:()=>_i,_ulid:()=>Fs,_undefined:()=>wi,_union:()=>Pd,_unknown:()=>ki,_uppercase:()=>Mi,_url:()=>mr,_uuid:()=>Os,_uuidv4:()=>Ls,_uuidv6:()=>Zs,_uuidv7:()=>js,_void:()=>vi,_xid:()=>Hs,_xor:()=>Ed,clone:()=>q,config:()=>B,createStandardJSONSchemaMethod:()=>na,createToJSONSchemaMethod:()=>Qd,decode:()=>bn,decodeAsync:()=>$n,describe:()=>ea,encode:()=>_n,encodeAsync:()=>wn,extractDefs:()=>we,finalize:()=>$e,flattenError:()=>mn,formatError:()=>hn,globalConfig:()=>tt,globalRegistry:()=>ae,initializeContext:()=>be,isValidBase64:()=>Bo,isValidBase64URL:()=>Tc,isValidJWT:()=>Ic,locales:()=>mt,meta:()=>ta,parse:()=>ge,parseAsync:()=>ye,prettifyError:()=>yn,process:()=>T,regexes:()=>re,registry:()=>dr,safeDecode:()=>kn,safeDecodeAsync:()=>vn,safeEncode:()=>xn,safeEncodeAsync:()=>Sn,safeParse:()=>Te,safeParseAsync:()=>Ie,toDotPath:()=>tc,toJSONSchema:()=>_r,treeifyError:()=>gn,util:()=>te,version:()=>bo});var Gr=Object.freeze({status:"aborted"});function d(e,t,r){function n(a,u){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:u,constr:i,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,u);let l=i.prototype,p=Object.keys(l);for(let f=0;f<p.length;f++){let m=p[f];m in a||(a[m]=l[m].bind(a))}}let o=r?.Parent??Object;class s extends o{}Object.defineProperty(s,"name",{value:e});function i(a){var u;let l=r?.Parent?new s:this;n(l,a),(u=l._zod).deferred??(u.deferred=[]);for(let p of l._zod.deferred)p();return l}return Object.defineProperty(i,"init",{value:n}),Object.defineProperty(i,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}var Wr=Symbol("zod_brand"),se=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Le=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},tt={};function B(e){return e&&Object.assign(tt,e),tt}var te={};ve(te,{BIGINT_FORMAT_RANGES:()=>an,Class:()=>Qr,NUMBER_FORMAT_RANGES:()=>sn,aborted:()=>he,allowsEval:()=>rn,assert:()=>Rf,assertEqual:()=>If,assertIs:()=>Ef,assertNever:()=>Af,assertNotEqual:()=>Pf,assignProp:()=>de,base64ToUint8Array:()=>Qa,base64urlToUint8Array:()=>qf,cached:()=>Ze,captureStackTrace:()=>Jt,cleanEnum:()=>Hf,cleanRegex:()=>ot,clone:()=>q,cloneDef:()=>Of,createTransparentProxy:()=>Bf,defineLazy:()=>k,esc:()=>qt,escapeRegex:()=>ee,extend:()=>Kt,finalizeIssue:()=>G,floatSafeRemainder:()=>en,getElementAtPath:()=>Lf,getEnumValues:()=>nt,getLengthableOrigin:()=>at,getParsedType:()=>Mf,getSizableOrigin:()=>it,hexToUint8Array:()=>Kf,isObject:()=>ze,isPlainObject:()=>me,issue:()=>De,joinValues:()=>Cf,jsonStringifyReplacer:()=>Xr,merge:()=>Uf,mergeDefs:()=>ue,normalizeParams:()=>g,nullish:()=>fe,numKeys:()=>Df,objectClone:()=>Nf,omit:()=>un,optionalKeys:()=>on,parsedType:()=>Ff,partial:()=>pn,pick:()=>cn,prefixIssues:()=>Q,primitiveTypes:()=>nn,promiseAllObject:()=>Zf,propertyKeyTypes:()=>st,randomString:()=>jf,required:()=>fn,safeExtend:()=>ln,shallowClone:()=>je,slugify:()=>tn,stringifyPrimitive:()=>Va,uint8ArrayToBase64:()=>Xa,uint8ArrayToBase64url:()=>Jf,uint8ArrayToHex:()=>Yf,unwrapMessage:()=>rt});function If(e){return e}function Pf(e){return e}function Ef(e){}function Af(e){throw new Error("Unexpected value in exhaustive check")}function Rf(e){}function nt(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function Cf(e,t="|"){return e.map(r=>Va(r)).join(t)}function Xr(e,t){return typeof t=="bigint"?t.toString():t}function Ze(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function fe(e){return e==null}function ot(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function en(e,t){let r=(e.toString().split(".")[1]||"").length,n=t.toString(),o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){let u=n.match(/\d?e-(\d?)/);u?.[1]&&(o=Number.parseInt(u[1]))}let s=r>o?r:o,i=Number.parseInt(e.toFixed(s).replace(".","")),a=Number.parseInt(t.toFixed(s).replace(".",""));return i%a/10**s}var Wa=Symbol("evaluating");function k(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==Wa)return n===void 0&&(n=Wa,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Nf(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function de(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ue(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Of(e){return ue(e._zod.def)}function Lf(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function Zf(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let s=0;s<t.length;s++)o[t[s]]=n[s];return o})}function jf(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function qt(e){return JSON.stringify(e)}function tn(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Jt="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ze(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var rn=Ze(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function me(e){if(ze(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(ze(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function je(e){return me(e)?{...e}:Array.isArray(e)?[...e]:e}function Df(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var Mf=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},st=new Set(["string","number","symbol"]),nn=new Set(["string","number","bigint","boolean","symbol","undefined"]);function ee(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function q(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function g(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Bf(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,s){return t??(t=e()),Reflect.set(t,n,o,s)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function Va(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function on(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var sn={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},an={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function cn(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let s=ue(e._zod.def,{get shape(){let i={};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(i[a]=r.shape[a])}return de(this,"shape",i),i},checks:[]});return q(e,s)}function un(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let s=ue(e._zod.def,{get shape(){let i={...e._zod.def.shape};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete i[a]}return de(this,"shape",i),i},checks:[]});return q(e,s)}function Kt(e,t){if(!me(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let s=e._zod.def.shape;for(let i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ue(e._zod.def,{get shape(){let s={...e._zod.def.shape,...t};return de(this,"shape",s),s}});return q(e,o)}function ln(e,t){if(!me(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ue(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return de(this,"shape",n),n}});return q(e,r)}function Uf(e,t){let r=ue(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return de(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return q(e,r)}function pn(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let i=ue(t._zod.def,{get shape(){let a=t._zod.def.shape,u={...a};if(r)for(let l in r){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);r[l]&&(u[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(let l in a)u[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return de(this,"shape",u),u},checks:[]});return q(t,i)}function fn(e,t,r){let n=ue(t._zod.def,{get shape(){let o=t._zod.def.shape,s={...o};if(r)for(let i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(let i in o)s[i]=new e({type:"nonoptional",innerType:o[i]});return de(this,"shape",s),s}});return q(t,n)}function he(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function Q(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function rt(e){return typeof e=="string"?e:e?.message}function G(e,t,r){let n={...e,path:e.path??[]};if(!e.message){let o=rt(e.inst?._zod.def?.error?.(e))??rt(t?.error?.(e))??rt(r.customError?.(e))??rt(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function it(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function at(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Ff(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function De(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function Hf(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Qa(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function Xa(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function qf(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return Qa(t+r)}function Jf(e){return Xa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Kf(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=Number.parseInt(t.slice(n,n+2),16);return r}function Yf(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var Qr=class{constructor(...t){}};var ec=(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,Xr,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},dn=d("$ZodError",ec),W=d("$ZodError",ec,{Parent:Error});function mn(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function hn(e,t=r=>r.message){let r={_errors:[]},n=o=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(i=>n({issues:i}));else if(s.code==="invalid_key")n({issues:s.issues});else if(s.code==="invalid_element")n({issues:s.issues});else if(s.path.length===0)r._errors.push(t(s));else{let i=r,a=0;for(;a<s.path.length;){let u=s.path[a];a===s.path.length-1?(i[u]=i[u]||{_errors:[]},i[u]._errors.push(t(s))):i[u]=i[u]||{_errors:[]},i=i[u],a++}}};return n(e),r}function gn(e,t=r=>r.message){let r={errors:[]},n=(o,s=[])=>{var i,a;for(let u of o.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map(l=>n({issues:l},u.path));else if(u.code==="invalid_key")n({issues:u.issues},u.path);else if(u.code==="invalid_element")n({issues:u.issues},u.path);else{let l=[...s,...u.path];if(l.length===0){r.errors.push(t(u));continue}let p=r,f=0;for(;f<l.length;){let m=l[f],h=f===l.length-1;typeof m=="string"?(p.properties??(p.properties={}),(i=p.properties)[m]??(i[m]={errors:[]}),p=p.properties[m]):(p.items??(p.items=[]),(a=p.items)[m]??(a[m]={errors:[]}),p=p.items[m]),h&&p.errors.push(t(u)),f++}}};return n(e),r}function tc(e){let t=[],r=e.map(n=>typeof n=="object"?n.key:n);for(let n of r)typeof n=="number"?t.push(`[${n}]`):typeof n=="symbol"?t.push(`[${JSON.stringify(String(n))}]`):/[^\w$]/.test(n)?t.push(`[${JSON.stringify(n)}]`):(t.length&&t.push("."),t.push(n));return t.join("")}function yn(e){let t=[],r=[...e.issues].sort((n,o)=>(n.path??[]).length-(o.path??[]).length);for(let n of r)t.push(`\u2716 ${n.message}`),n.path?.length&&t.push(` \u2192 at ${tc(n.path)}`);return t.join(`
|
|
3
|
-
`)}var Yt=e=>(t,r,n,o)=>{let s=n?Object.assign(n,{async:!1}):{async:!1},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new se;if(i.issues.length){let a=new(o?.Err??e)(i.issues.map(u=>G(u,s,B())));throw Jt(a,o?.callee),a}return i.value},ge=Yt(W),Gt=e=>async(t,r,n,o)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){let a=new(o?.Err??e)(i.issues.map(u=>G(u,s,B())));throw Jt(a,o?.callee),a}return i.value},ye=Gt(W),Wt=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new se;return s.issues.length?{success:!1,error:new(e??dn)(s.issues.map(i=>G(i,o,B())))}:{success:!0,data:s.value}},Te=Wt(W),Vt=e=>async(t,r,n)=>{let o=n?Object.assign(n,{async:!0}):{async:!0},s=t._zod.run({value:r,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>G(i,o,B())))}:{success:!0,data:s.value}},Ie=Vt(W),rc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Yt(e)(t,r,o)},_n=rc(W),nc=e=>(t,r,n)=>Yt(e)(t,r,n),bn=nc(W),oc=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Gt(e)(t,r,o)},wn=oc(W),sc=e=>async(t,r,n)=>Gt(e)(t,r,n),$n=sc(W),ic=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Wt(e)(t,r,o)},xn=ic(W),ac=e=>(t,r,n)=>Wt(e)(t,r,n),kn=ac(W),cc=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Vt(e)(t,r,o)},Sn=cc(W),uc=e=>async(t,r,n)=>Vt(e)(t,r,n),vn=uc(W);var re={};ve(re,{base64:()=>Bn,base64url:()=>Qt,bigint:()=>Kn,boolean:()=>Gn,browserEmail:()=>nd,cidrv4:()=>Dn,cidrv6:()=>Mn,cuid:()=>zn,cuid2:()=>Tn,date:()=>Fn,datetime:()=>qn,domain:()=>id,duration:()=>Rn,e164:()=>Un,email:()=>Nn,emoji:()=>On,extendedDuration:()=>Wf,guid:()=>Cn,hex:()=>ad,hostname:()=>sd,html5Email:()=>ed,idnEmail:()=>rd,integer:()=>Yn,ipv4:()=>Ln,ipv6:()=>Zn,ksuid:()=>En,lowercase:()=>Qn,mac:()=>jn,md5_base64:()=>ud,md5_base64url:()=>ld,md5_hex:()=>cd,nanoid:()=>An,null:()=>Wn,number:()=>Xt,rfc5322Email:()=>td,sha1_base64:()=>fd,sha1_base64url:()=>dd,sha1_hex:()=>pd,sha256_base64:()=>hd,sha256_base64url:()=>gd,sha256_hex:()=>md,sha384_base64:()=>_d,sha384_base64url:()=>bd,sha384_hex:()=>yd,sha512_base64:()=>$d,sha512_base64url:()=>xd,sha512_hex:()=>wd,string:()=>Jn,time:()=>Hn,ulid:()=>In,undefined:()=>Vn,unicodeEmail:()=>lc,uppercase:()=>Xn,uuid:()=>Pe,uuid4:()=>Vf,uuid6:()=>Qf,uuid7:()=>Xf,xid:()=>Pn});var zn=/^[cC][^\s-]{8,}$/,Tn=/^[0-9a-z]+$/,In=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Pn=/^[0-9a-vA-V]{20}$/,En=/^[A-Za-z0-9]{27}$/,An=/^[a-zA-Z0-9_-]{21}$/,Rn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Wf=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Cn=/^([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})$/,Pe=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)$/,Vf=Pe(4),Qf=Pe(6),Xf=Pe(7),Nn=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,ed=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,td=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,lc=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,rd=lc,nd=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,od="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function On(){return new RegExp(od,"u")}var Ln=/^(?:(?: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])$/,Zn=/^(([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}|:))$/,jn=e=>{let t=ee(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},Dn=/^((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])$/,Mn=/^(([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])$/,Bn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Qt=/^[A-Za-z0-9_-]*$/,sd=/^(?=.{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])?)*\.?$/,id=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,Un=/^\+[1-9]\d{6,14}$/,pc="(?:(?:\\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])))",Fn=new RegExp(`^${pc}$`);function fc(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Hn(e){return new RegExp(`^${fc(e)}$`)}function qn(e){let t=fc({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${t}(?:${r.join("|")})`;return new RegExp(`^${pc}T(?:${n})$`)}var Jn=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Kn=/^-?\d+n?$/,Yn=/^-?\d+$/,Xt=/^-?\d+(?:\.\d+)?$/,Gn=/^(?:true|false)$/i,Wn=/^null$/i;var Vn=/^undefined$/i;var Qn=/^[^A-Z]*$/,Xn=/^[^a-z]*$/,ad=/^[0-9a-fA-F]*$/;function ct(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function ut(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var cd=/^[0-9a-fA-F]{32}$/,ud=ct(22,"=="),ld=ut(22),pd=/^[0-9a-fA-F]{40}$/,fd=ct(27,"="),dd=ut(27),md=/^[0-9a-fA-F]{64}$/,hd=ct(43,"="),gd=ut(43),yd=/^[0-9a-fA-F]{96}$/,_d=ct(64,""),bd=ut(64),wd=/^[0-9a-fA-F]{128}$/,$d=ct(86,"=="),xd=ut(86);var E=d("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),mc={number:"number",bigint:"bigint",object:"date"},er=d("$ZodCheckLessThan",(e,t)=>{E.init(e,t);let r=mc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,s=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<s&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),tr=d("$ZodCheckGreaterThan",(e,t)=>{E.init(e,t);let r=mc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,s=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),eo=d("$ZodCheckMultipleOf",(e,t)=>{E.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):en(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),to=d("$ZodCheckNumberFormat",(e,t)=>{E.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,s]=sn[t.format];e._zod.onattach.push(i=>{let a=i._zod.bag;a.format=t.format,a.minimum=o,a.maximum=s,r&&(a.pattern=Yn)}),e._zod.check=i=>{let a=i.value;if(r){if(!Number.isInteger(a)){i.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?i.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):i.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}a<o&&i.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),a>s&&i.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}}),ro=d("$ZodCheckBigIntFormat",(e,t)=>{E.init(e,t);let[r,n]=an[t.format];e._zod.onattach.push(o=>{let s=o._zod.bag;s.format=t.format,s.minimum=r,s.maximum=n}),e._zod.check=o=>{let s=o.value;s<r&&o.issues.push({origin:"bigint",input:s,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),s>n&&o.issues.push({origin:"bigint",input:s,code:"too_big",maximum:n,inclusive:!0,inst:e,continue:!t.abort})}}),no=d("$ZodCheckMaxSize",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;o.size<=t.maximum||n.issues.push({origin:it(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),oo=d("$ZodCheckMinSize",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;o.size>=t.minimum||n.issues.push({origin:it(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),so=d("$ZodCheckSizeEquals",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=n=>{let o=n.value,s=o.size;if(s===t.size)return;let i=s>t.size;n.issues.push({origin:it(o),...i?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),io=d("$ZodCheckMaxLength",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;if(o.length<=t.maximum)return;let i=at(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),ao=d("$ZodCheckMinLength",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let i=at(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),co=d("$ZodCheckLengthEquals",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{let o=n.value,s=o.length;if(s===t.length)return;let i=at(o),a=s>t.length;n.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Me=d("$ZodCheckStringFormat",(e,t)=>{var r,n;E.init(e,t),e._zod.onattach.push(o=>{let s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),uo=d("$ZodCheckRegex",(e,t)=>{Me.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),lo=d("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Qn),Me.init(e,t)}),po=d("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Xn),Me.init(e,t)}),fo=d("$ZodCheckIncludes",(e,t)=>{E.init(e,t);let r=ee(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{let s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),mo=d("$ZodCheckStartsWith",(e,t)=>{E.init(e,t);let r=new RegExp(`^${ee(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),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})}}),ho=d("$ZodCheckEndsWith",(e,t)=>{E.init(e,t);let r=new RegExp(`.*${ee(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),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})}});function dc(e,t,r){e.issues.length&&t.issues.push(...Q(r,e.issues))}var go=d("$ZodCheckProperty",(e,t)=>{E.init(e,t),e._zod.check=r=>{let n=t.schema._zod.run({value:r.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(o=>dc(o,r,t.property));dc(n,r,t.property)}}),yo=d("$ZodCheckMimeType",(e,t)=>{E.init(e,t);let r=new Set(t.mime);e._zod.onattach.push(n=>{n._zod.bag.mime=t.mime}),e._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:t.mime,input:n.value.type,inst:e,continue:!t.abort})}}),_o=d("$ZodCheckOverwrite",(e,t)=>{E.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var lt=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let n=t.split(`
|
|
1
|
+
var xf=Object.defineProperty;var ve=(e,t)=>{for(var r in t)xf(e,r,{get:t[r],enumerable:!0})};import{resolve as x_}from"node:path";import{fileURLToPath as k_}from"node:url";function Ce(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return n>0?`${r}m ${n}s`:`${r}m`;let o=Math.floor(r/60),s=r%60;return s>0?`${o}h ${s}m`:`${o}h`}import{execFileSync as pe}from"node:child_process";function Yr(...e){return pe("git",e,{encoding:"utf8"}).trim()}function Fa(){return Yr("rev-parse","--abbrev-ref","HEAD")}function Dt(){try{return pe("git",["diff","--quiet"],{stdio:"ignore"}),pe("git",["diff","--cached","--quiet"],{stdio:"ignore"}),!1}catch{return!0}}function Xe(e){try{return pe("git",["show-ref","--verify","--quiet",`refs/heads/${e}`],{stdio:"ignore"}),!0}catch{return!1}}function Gr(e,t){Xe(e)||Yr("checkout","-b",e,t)}function L(e,t=!1){Yr("checkout",...t?["-B"]:[],e)}function Ha(e){try{return pe("git",["ls-remote","--heads","origin",e],{encoding:"utf8",timeout:15e3}).trim().length>0}catch{return!1}}function Mt(e){try{return pe("git",["fetch","origin",`${e}:${e}`],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function qa(e,t=8e3){try{let r=pe("git",["diff",`${e}...HEAD`,"--stat"],{encoding:"utf8",timeout:1e4}).trim();return r?r.length>t?r.slice(0,t)+`
|
|
2
|
+
... (truncated)`:r:void 0}catch{return}}function et(e){try{return pe("git",["push","-u","origin",e],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}var $=e=>`\x1B[2m${e}\x1B[0m`,Ne=e=>`\x1B[1m${e}\x1B[0m`;var N=e=>`\x1B[32m${e}\x1B[0m`,Oe=e=>`\x1B[31m${e}\x1B[0m`,v=e=>`\x1B[33m${e}\x1B[0m`;function Ja(e){return{argv:e,dryRun:e.includes("--dry-run"),skipFeasibility:e.includes("--skip-feasibility"),startTime:Date.now(),cwd:process.cwd(),isAfk:process.env.CLANCY_AFK_MODE==="1"}}import{mkdirSync as kf,readFileSync as Sf,unlinkSync as Ka,writeFileSync as vf}from"node:fs";import{dirname as zf,join as Bt}from"node:path";function Ya(e,t){let r=Bt(e,".clancy","lock.json");kf(zf(r),{recursive:!0}),vf(r,JSON.stringify(t,null,2),"utf8")}function Ut(e){let t=Bt(e,".clancy","lock.json");try{let r=Sf(t,"utf8");return JSON.parse(r)}catch{return}}function Ft(e){let t=Bt(e,".clancy","lock.json");try{Ka(t)}catch{}}function Ht(e){let t=Bt(e,".clancy","verify-attempt.txt");try{Ka(t)}catch{}}function Tf(e){try{return process.kill(e,0),!0}catch(t){return t instanceof Error&&"code"in t&&t.code==="EPERM"}}function Ga(e){if(!Tf(e.pid))return!0;let t=Date.now()-new Date(e.startedAt).getTime();if(Number.isNaN(t))return!0;let r=1440*60*1e3;return t>r}import{execFileSync as _l}from"node:child_process";import{readFileSync as Yg}from"node:fs";import{join as Gg}from"node:path";var c={};ve(c,{$brand:()=>Vr,$input:()=>As,$output:()=>Es,NEVER:()=>Wr,TimePrecision:()=>ri,ZodMiniAny:()=>ru,ZodMiniArray:()=>au,ZodMiniBase64:()=>Yc,ZodMiniBase64URL:()=>Gc,ZodMiniBigInt:()=>kt,ZodMiniBigIntFormat:()=>ia,ZodMiniBoolean:()=>xt,ZodMiniCIDRv4:()=>qc,ZodMiniCIDRv6:()=>Jc,ZodMiniCUID:()=>jc,ZodMiniCUID2:()=>Dc,ZodMiniCatch:()=>zu,ZodMiniCodec:()=>fa,ZodMiniCustom:()=>da,ZodMiniCustomStringFormat:()=>wt,ZodMiniDate:()=>$r,ZodMiniDefault:()=>ku,ZodMiniDiscriminatedUnion:()=>lu,ZodMiniE164:()=>Wc,ZodMiniEmail:()=>Nc,ZodMiniEmoji:()=>Lc,ZodMiniEnum:()=>ca,ZodMiniExactOptional:()=>$u,ZodMiniFile:()=>bu,ZodMiniFunction:()=>Nu,ZodMiniGUID:()=>Oc,ZodMiniIPv4:()=>Fc,ZodMiniIPv6:()=>Hc,ZodMiniISODate:()=>zr,ZodMiniISODateTime:()=>vr,ZodMiniISODuration:()=>Ir,ZodMiniISOTime:()=>Tr,ZodMiniIntersection:()=>pu,ZodMiniJWT:()=>Vc,ZodMiniKSUID:()=>Uc,ZodMiniLazy:()=>Eu,ZodMiniLiteral:()=>_u,ZodMiniMAC:()=>Kc,ZodMiniMap:()=>hu,ZodMiniNaN:()=>Tu,ZodMiniNanoID:()=>Zc,ZodMiniNever:()=>ou,ZodMiniNonOptional:()=>la,ZodMiniNull:()=>eu,ZodMiniNullable:()=>xu,ZodMiniNumber:()=>$t,ZodMiniNumberFormat:()=>qe,ZodMiniObject:()=>xr,ZodMiniOptional:()=>ua,ZodMiniPipe:()=>pa,ZodMiniPrefault:()=>Su,ZodMiniPromise:()=>Ru,ZodMiniReadonly:()=>Iu,ZodMiniRecord:()=>kr,ZodMiniSet:()=>gu,ZodMiniString:()=>He,ZodMiniStringFormat:()=>A,ZodMiniSuccess:()=>vu,ZodMiniSymbol:()=>Qc,ZodMiniTemplateLiteral:()=>Pu,ZodMiniTransform:()=>wu,ZodMiniTuple:()=>fu,ZodMiniType:()=>S,ZodMiniULID:()=>Mc,ZodMiniURL:()=>sa,ZodMiniUUID:()=>bt,ZodMiniUndefined:()=>Xc,ZodMiniUnion:()=>aa,ZodMiniUnknown:()=>nu,ZodMiniVoid:()=>iu,ZodMiniXID:()=>Bc,ZodMiniXor:()=>uu,_default:()=>Wh,_function:()=>hg,any:()=>Sh,array:()=>K,base64:()=>ih,base64url:()=>ah,bigint:()=>bh,boolean:()=>Je,catch:()=>eg,catchall:()=>Lh,check:()=>ag,cidrv4:()=>nh,cidrv6:()=>oh,clone:()=>q,codec:()=>ng,coerce:()=>ha,config:()=>B,core:()=>Fe,cuid:()=>Wm,cuid2:()=>Vm,custom:()=>Cu,date:()=>zh,decode:()=>wn,decodeAsync:()=>xn,describe:()=>lg,discriminatedUnion:()=>jh,e164:()=>ch,email:()=>Mm,emoji:()=>Ym,encode:()=>bn,encodeAsync:()=>$n,endsWith:()=>Hi,enum:()=>yu,exactOptional:()=>Yh,extend:()=>ke,file:()=>Jh,flattenError:()=>hn,float32:()=>hh,float64:()=>gh,formatError:()=>gn,function:()=>hg,globalRegistry:()=>ae,gt:()=>gr,gte:()=>gt,guid:()=>Bm,hash:()=>dh,hex:()=>fh,hostname:()=>ph,httpUrl:()=>Km,includes:()=>Ui,instanceof:()=>fg,int:()=>mh,int32:()=>yh,int64:()=>wh,intersection:()=>Dh,ipv4:()=>th,ipv6:()=>rh,iso:()=>ma,json:()=>mg,jwt:()=>uh,keyof:()=>Th,ksuid:()=>eh,lazy:()=>Au,length:()=>Di,literal:()=>qh,locales:()=>mt,looseObject:()=>Ph,looseRecord:()=>Bh,lowercase:()=>Mi,lt:()=>hr,lte:()=>ht,mac:()=>sh,map:()=>Uh,maxLength:()=>ji,maxSize:()=>Oi,maximum:()=>ht,merge:()=>Ah,meta:()=>pg,mime:()=>Ji,minLength:()=>yt,minSize:()=>Li,minimum:()=>gt,multipleOf:()=>Ni,nan:()=>tg,nanoid:()=>Gm,nativeEnum:()=>Hh,negative:()=>Ai,never:()=>su,nonnegative:()=>Ci,nonoptional:()=>Qh,nonpositive:()=>Ri,normalize:()=>Ki,null:()=>tu,nullable:()=>Sr,nullish:()=>Gh,number:()=>xe,object:()=>I,omit:()=>Ch,optional:()=>w,overwrite:()=>_e,parse:()=>ge,parseAsync:()=>ye,partial:()=>Nh,partialRecord:()=>Mh,pick:()=>Rh,pipe:()=>rg,positive:()=>Ei,prefault:()=>Vh,prettifyError:()=>_n,promise:()=>ig,property:()=>qi,readonly:()=>og,record:()=>mu,refine:()=>cg,regex:()=>_t,regexes:()=>oe,registry:()=>dr,required:()=>Oh,safeDecode:()=>Sn,safeDecodeAsync:()=>zn,safeEncode:()=>kn,safeEncodeAsync:()=>vn,safeExtend:()=>Eh,safeParse:()=>Te,safeParseAsync:()=>Ie,set:()=>Fh,size:()=>Zi,startsWith:()=>Fi,strictObject:()=>Ih,string:()=>b,stringFormat:()=>lh,stringbool:()=>dg,success:()=>Xh,superRefine:()=>ug,symbol:()=>xh,templateLiteral:()=>sg,toJSONSchema:()=>_r,toLowerCase:()=>Gi,toUpperCase:()=>Wi,transform:()=>Kh,treeifyError:()=>yn,trim:()=>Yi,tuple:()=>du,uint32:()=>_h,uint64:()=>$h,ulid:()=>Qm,undefined:()=>kh,union:()=>cu,unknown:()=>wr,uppercase:()=>Bi,url:()=>Jm,util:()=>ne,uuid:()=>Um,uuidv4:()=>Fm,uuidv6:()=>Hm,uuidv7:()=>qm,void:()=>vh,xid:()=>Xm,xor:()=>Zh});var Fe={};ve(Fe,{$ZodAny:()=>Xo,$ZodArray:()=>os,$ZodAsyncError:()=>se,$ZodBase64:()=>Fo,$ZodBase64URL:()=>Ho,$ZodBigInt:()=>cr,$ZodBigIntFormat:()=>Go,$ZodBoolean:()=>pt,$ZodCIDRv4:()=>Mo,$ZodCIDRv6:()=>Bo,$ZodCUID:()=>Io,$ZodCUID2:()=>Po,$ZodCatch:()=>$s,$ZodCheck:()=>E,$ZodCheckBigIntFormat:()=>no,$ZodCheckEndsWith:()=>go,$ZodCheckGreaterThan:()=>tr,$ZodCheckIncludes:()=>mo,$ZodCheckLengthEquals:()=>uo,$ZodCheckLessThan:()=>er,$ZodCheckLowerCase:()=>po,$ZodCheckMaxLength:()=>ao,$ZodCheckMaxSize:()=>oo,$ZodCheckMimeType:()=>_o,$ZodCheckMinLength:()=>co,$ZodCheckMinSize:()=>so,$ZodCheckMultipleOf:()=>to,$ZodCheckNumberFormat:()=>ro,$ZodCheckOverwrite:()=>bo,$ZodCheckProperty:()=>yo,$ZodCheckRegex:()=>lo,$ZodCheckSizeEquals:()=>io,$ZodCheckStartsWith:()=>ho,$ZodCheckStringFormat:()=>Me,$ZodCheckUpperCase:()=>fo,$ZodCodec:()=>dt,$ZodCustom:()=>Ps,$ZodCustomStringFormat:()=>Ko,$ZodDate:()=>ns,$ZodDefault:()=>ys,$ZodDiscriminatedUnion:()=>is,$ZodE164:()=>qo,$ZodEmail:()=>So,$ZodEmoji:()=>zo,$ZodEncodeError:()=>Le,$ZodEnum:()=>ps,$ZodError:()=>mn,$ZodExactOptional:()=>hs,$ZodFile:()=>ds,$ZodFunction:()=>zs,$ZodGUID:()=>xo,$ZodIPv4:()=>Zo,$ZodIPv6:()=>jo,$ZodISODate:()=>No,$ZodISODateTime:()=>Co,$ZodISODuration:()=>Lo,$ZodISOTime:()=>Oo,$ZodIntersection:()=>as,$ZodJWT:()=>Jo,$ZodKSUID:()=>Ro,$ZodLazy:()=>Is,$ZodLiteral:()=>fs,$ZodMAC:()=>Do,$ZodMap:()=>us,$ZodNaN:()=>xs,$ZodNanoID:()=>To,$ZodNever:()=>ts,$ZodNonOptional:()=>bs,$ZodNull:()=>Qo,$ZodNullable:()=>gs,$ZodNumber:()=>ar,$ZodNumberFormat:()=>Yo,$ZodObject:()=>ur,$ZodObjectJIT:()=>kd,$ZodOptional:()=>pr,$ZodPipe:()=>ks,$ZodPrefault:()=>_s,$ZodPromise:()=>Ts,$ZodReadonly:()=>Ss,$ZodRealError:()=>W,$ZodRecord:()=>cs,$ZodRegistry:()=>fr,$ZodSet:()=>ls,$ZodString:()=>Be,$ZodStringFormat:()=>P,$ZodSuccess:()=>ws,$ZodSymbol:()=>Wo,$ZodTemplateLiteral:()=>vs,$ZodTransform:()=>ms,$ZodTuple:()=>lr,$ZodType:()=>x,$ZodULID:()=>Eo,$ZodURL:()=>vo,$ZodUUID:()=>ko,$ZodUndefined:()=>Vo,$ZodUnion:()=>ft,$ZodUnknown:()=>es,$ZodVoid:()=>rs,$ZodXID:()=>Ao,$ZodXor:()=>ss,$brand:()=>Vr,$constructor:()=>d,$input:()=>As,$output:()=>Es,Doc:()=>lt,JSONSchema:()=>Cc,JSONSchemaGenerator:()=>br,NEVER:()=>Wr,TimePrecision:()=>ri,_any:()=>ki,_array:()=>Id,_base64:()=>Qs,_base64url:()=>Xs,_bigint:()=>gi,_boolean:()=>mi,_catch:()=>Jd,_check:()=>Rc,_cidrv4:()=>Ws,_cidrv6:()=>Vs,_coercedBigint:()=>yi,_coercedBoolean:()=>hi,_coercedDate:()=>Ii,_coercedNumber:()=>ci,_coercedString:()=>Cs,_cuid:()=>Us,_cuid2:()=>Fs,_custom:()=>Qi,_date:()=>Ti,_decode:()=>nc,_decodeAsync:()=>sc,_default:()=>Fd,_discriminatedUnion:()=>Ad,_e164:()=>ei,_email:()=>Ns,_emoji:()=>Ms,_encode:()=>rc,_encodeAsync:()=>oc,_endsWith:()=>Hi,_enum:()=>Zd,_file:()=>Vi,_float32:()=>li,_float64:()=>pi,_gt:()=>gr,_gte:()=>gt,_guid:()=>Os,_includes:()=>Ui,_int:()=>ui,_int32:()=>fi,_int64:()=>_i,_intersection:()=>Rd,_ipv4:()=>Ks,_ipv6:()=>Ys,_isoDate:()=>oi,_isoDateTime:()=>ni,_isoDuration:()=>ii,_isoTime:()=>si,_jwt:()=>ti,_ksuid:()=>Js,_lazy:()=>Wd,_length:()=>Di,_literal:()=>Dd,_lowercase:()=>Mi,_lt:()=>hr,_lte:()=>ht,_mac:()=>Gs,_map:()=>Od,_max:()=>ht,_maxLength:()=>ji,_maxSize:()=>Oi,_mime:()=>Ji,_min:()=>gt,_minLength:()=>yt,_minSize:()=>Li,_multipleOf:()=>Ni,_nan:()=>Pi,_nanoid:()=>Bs,_nativeEnum:()=>jd,_negative:()=>Ai,_never:()=>vi,_nonnegative:()=>Ci,_nonoptional:()=>Hd,_nonpositive:()=>Ri,_normalize:()=>Ki,_null:()=>xi,_nullable:()=>Ud,_number:()=>ai,_optional:()=>Bd,_overwrite:()=>_e,_parse:()=>Yt,_parseAsync:()=>Gt,_pipe:()=>Kd,_positive:()=>Ei,_promise:()=>Vd,_property:()=>qi,_readonly:()=>Yd,_record:()=>Nd,_refine:()=>Xi,_regex:()=>_t,_safeDecode:()=>ac,_safeDecodeAsync:()=>uc,_safeEncode:()=>ic,_safeEncodeAsync:()=>cc,_safeParse:()=>Wt,_safeParseAsync:()=>Vt,_set:()=>Ld,_size:()=>Zi,_slugify:()=>Td,_startsWith:()=>Fi,_string:()=>Rs,_stringFormat:()=>Ue,_stringbool:()=>na,_success:()=>qd,_superRefine:()=>ea,_symbol:()=>wi,_templateLiteral:()=>Gd,_toLowerCase:()=>Gi,_toUpperCase:()=>Wi,_transform:()=>Md,_trim:()=>Yi,_tuple:()=>Cd,_uint32:()=>di,_uint64:()=>bi,_ulid:()=>Hs,_undefined:()=>$i,_union:()=>Pd,_unknown:()=>Si,_uppercase:()=>Bi,_url:()=>mr,_uuid:()=>Ls,_uuidv4:()=>Zs,_uuidv6:()=>js,_uuidv7:()=>Ds,_void:()=>zi,_xid:()=>qs,_xor:()=>Ed,clone:()=>q,config:()=>B,createStandardJSONSchemaMethod:()=>oa,createToJSONSchemaMethod:()=>Qd,decode:()=>wn,decodeAsync:()=>xn,describe:()=>ta,encode:()=>bn,encodeAsync:()=>$n,extractDefs:()=>we,finalize:()=>$e,flattenError:()=>hn,formatError:()=>gn,globalConfig:()=>tt,globalRegistry:()=>ae,initializeContext:()=>be,isValidBase64:()=>Uo,isValidBase64URL:()=>Tc,isValidJWT:()=>Ic,locales:()=>mt,meta:()=>ra,parse:()=>ge,parseAsync:()=>ye,prettifyError:()=>_n,process:()=>T,regexes:()=>oe,registry:()=>dr,safeDecode:()=>Sn,safeDecodeAsync:()=>zn,safeEncode:()=>kn,safeEncodeAsync:()=>vn,safeParse:()=>Te,safeParseAsync:()=>Ie,toDotPath:()=>tc,toJSONSchema:()=>_r,treeifyError:()=>yn,util:()=>ne,version:()=>wo});var Wr=Object.freeze({status:"aborted"});function d(e,t,r){function n(a,u){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:u,constr:i,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,u);let l=i.prototype,p=Object.keys(l);for(let f=0;f<p.length;f++){let m=p[f];m in a||(a[m]=l[m].bind(a))}}let o=r?.Parent??Object;class s extends o{}Object.defineProperty(s,"name",{value:e});function i(a){var u;let l=r?.Parent?new s:this;n(l,a),(u=l._zod).deferred??(u.deferred=[]);for(let p of l._zod.deferred)p();return l}return Object.defineProperty(i,"init",{value:n}),Object.defineProperty(i,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}var Vr=Symbol("zod_brand"),se=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Le=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},tt={};function B(e){return e&&Object.assign(tt,e),tt}var ne={};ve(ne,{BIGINT_FORMAT_RANGES:()=>cn,Class:()=>Xr,NUMBER_FORMAT_RANGES:()=>an,aborted:()=>he,allowsEval:()=>nn,assert:()=>Rf,assertEqual:()=>If,assertIs:()=>Ef,assertNever:()=>Af,assertNotEqual:()=>Pf,assignProp:()=>de,base64ToUint8Array:()=>Qa,base64urlToUint8Array:()=>qf,cached:()=>Ze,captureStackTrace:()=>Jt,cleanEnum:()=>Hf,cleanRegex:()=>ot,clone:()=>q,cloneDef:()=>Of,createTransparentProxy:()=>Bf,defineLazy:()=>k,esc:()=>qt,escapeRegex:()=>re,extend:()=>Kt,finalizeIssue:()=>G,floatSafeRemainder:()=>tn,getElementAtPath:()=>Lf,getEnumValues:()=>nt,getLengthableOrigin:()=>at,getParsedType:()=>Mf,getSizableOrigin:()=>it,hexToUint8Array:()=>Kf,isObject:()=>ze,isPlainObject:()=>me,issue:()=>De,joinValues:()=>Cf,jsonStringifyReplacer:()=>en,merge:()=>Uf,mergeDefs:()=>ue,normalizeParams:()=>g,nullish:()=>fe,numKeys:()=>Df,objectClone:()=>Nf,omit:()=>ln,optionalKeys:()=>sn,parsedType:()=>Ff,partial:()=>fn,pick:()=>un,prefixIssues:()=>Q,primitiveTypes:()=>on,promiseAllObject:()=>Zf,propertyKeyTypes:()=>st,randomString:()=>jf,required:()=>dn,safeExtend:()=>pn,shallowClone:()=>je,slugify:()=>rn,stringifyPrimitive:()=>Va,uint8ArrayToBase64:()=>Xa,uint8ArrayToBase64url:()=>Jf,uint8ArrayToHex:()=>Yf,unwrapMessage:()=>rt});function If(e){return e}function Pf(e){return e}function Ef(e){}function Af(e){throw new Error("Unexpected value in exhaustive check")}function Rf(e){}function nt(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function Cf(e,t="|"){return e.map(r=>Va(r)).join(t)}function en(e,t){return typeof t=="bigint"?t.toString():t}function Ze(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function fe(e){return e==null}function ot(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function tn(e,t){let r=(e.toString().split(".")[1]||"").length,n=t.toString(),o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){let u=n.match(/\d?e-(\d?)/);u?.[1]&&(o=Number.parseInt(u[1]))}let s=r>o?r:o,i=Number.parseInt(e.toFixed(s).replace(".","")),a=Number.parseInt(t.toFixed(s).replace(".",""));return i%a/10**s}var Wa=Symbol("evaluating");function k(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==Wa)return n===void 0&&(n=Wa,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Nf(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function de(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ue(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Of(e){return ue(e._zod.def)}function Lf(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function Zf(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let s=0;s<t.length;s++)o[t[s]]=n[s];return o})}function jf(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function qt(e){return JSON.stringify(e)}function rn(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Jt="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ze(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var nn=Ze(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function me(e){if(ze(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(ze(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function je(e){return me(e)?{...e}:Array.isArray(e)?[...e]:e}function Df(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var Mf=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},st=new Set(["string","number","symbol"]),on=new Set(["string","number","bigint","boolean","symbol","undefined"]);function re(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function q(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function g(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Bf(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,s){return t??(t=e()),Reflect.set(t,n,o,s)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function Va(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function sn(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var an={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},cn={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function un(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let s=ue(e._zod.def,{get shape(){let i={};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(i[a]=r.shape[a])}return de(this,"shape",i),i},checks:[]});return q(e,s)}function ln(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let s=ue(e._zod.def,{get shape(){let i={...e._zod.def.shape};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete i[a]}return de(this,"shape",i),i},checks:[]});return q(e,s)}function Kt(e,t){if(!me(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let s=e._zod.def.shape;for(let i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ue(e._zod.def,{get shape(){let s={...e._zod.def.shape,...t};return de(this,"shape",s),s}});return q(e,o)}function pn(e,t){if(!me(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ue(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return de(this,"shape",n),n}});return q(e,r)}function Uf(e,t){let r=ue(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return de(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return q(e,r)}function fn(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let i=ue(t._zod.def,{get shape(){let a=t._zod.def.shape,u={...a};if(r)for(let l in r){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);r[l]&&(u[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(let l in a)u[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return de(this,"shape",u),u},checks:[]});return q(t,i)}function dn(e,t,r){let n=ue(t._zod.def,{get shape(){let o=t._zod.def.shape,s={...o};if(r)for(let i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(let i in o)s[i]=new e({type:"nonoptional",innerType:o[i]});return de(this,"shape",s),s}});return q(t,n)}function he(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function Q(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function rt(e){return typeof e=="string"?e:e?.message}function G(e,t,r){let n={...e,path:e.path??[]};if(!e.message){let o=rt(e.inst?._zod.def?.error?.(e))??rt(t?.error?.(e))??rt(r.customError?.(e))??rt(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function it(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function at(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Ff(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function De(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function Hf(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Qa(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function Xa(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function qf(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return Qa(t+r)}function Jf(e){return Xa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Kf(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=Number.parseInt(t.slice(n,n+2),16);return r}function Yf(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var Xr=class{constructor(...t){}};var ec=(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,en,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},mn=d("$ZodError",ec),W=d("$ZodError",ec,{Parent:Error});function hn(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function gn(e,t=r=>r.message){let r={_errors:[]},n=o=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(i=>n({issues:i}));else if(s.code==="invalid_key")n({issues:s.issues});else if(s.code==="invalid_element")n({issues:s.issues});else if(s.path.length===0)r._errors.push(t(s));else{let i=r,a=0;for(;a<s.path.length;){let u=s.path[a];a===s.path.length-1?(i[u]=i[u]||{_errors:[]},i[u]._errors.push(t(s))):i[u]=i[u]||{_errors:[]},i=i[u],a++}}};return n(e),r}function yn(e,t=r=>r.message){let r={errors:[]},n=(o,s=[])=>{var i,a;for(let u of o.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map(l=>n({issues:l},u.path));else if(u.code==="invalid_key")n({issues:u.issues},u.path);else if(u.code==="invalid_element")n({issues:u.issues},u.path);else{let l=[...s,...u.path];if(l.length===0){r.errors.push(t(u));continue}let p=r,f=0;for(;f<l.length;){let m=l[f],h=f===l.length-1;typeof m=="string"?(p.properties??(p.properties={}),(i=p.properties)[m]??(i[m]={errors:[]}),p=p.properties[m]):(p.items??(p.items=[]),(a=p.items)[m]??(a[m]={errors:[]}),p=p.items[m]),h&&p.errors.push(t(u)),f++}}};return n(e),r}function tc(e){let t=[],r=e.map(n=>typeof n=="object"?n.key:n);for(let n of r)typeof n=="number"?t.push(`[${n}]`):typeof n=="symbol"?t.push(`[${JSON.stringify(String(n))}]`):/[^\w$]/.test(n)?t.push(`[${JSON.stringify(n)}]`):(t.length&&t.push("."),t.push(n));return t.join("")}function _n(e){let t=[],r=[...e.issues].sort((n,o)=>(n.path??[]).length-(o.path??[]).length);for(let n of r)t.push(`\u2716 ${n.message}`),n.path?.length&&t.push(` \u2192 at ${tc(n.path)}`);return t.join(`
|
|
3
|
+
`)}var Yt=e=>(t,r,n,o)=>{let s=n?Object.assign(n,{async:!1}):{async:!1},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new se;if(i.issues.length){let a=new(o?.Err??e)(i.issues.map(u=>G(u,s,B())));throw Jt(a,o?.callee),a}return i.value},ge=Yt(W),Gt=e=>async(t,r,n,o)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){let a=new(o?.Err??e)(i.issues.map(u=>G(u,s,B())));throw Jt(a,o?.callee),a}return i.value},ye=Gt(W),Wt=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new se;return s.issues.length?{success:!1,error:new(e??mn)(s.issues.map(i=>G(i,o,B())))}:{success:!0,data:s.value}},Te=Wt(W),Vt=e=>async(t,r,n)=>{let o=n?Object.assign(n,{async:!0}):{async:!0},s=t._zod.run({value:r,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>G(i,o,B())))}:{success:!0,data:s.value}},Ie=Vt(W),rc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Yt(e)(t,r,o)},bn=rc(W),nc=e=>(t,r,n)=>Yt(e)(t,r,n),wn=nc(W),oc=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Gt(e)(t,r,o)},$n=oc(W),sc=e=>async(t,r,n)=>Gt(e)(t,r,n),xn=sc(W),ic=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Wt(e)(t,r,o)},kn=ic(W),ac=e=>(t,r,n)=>Wt(e)(t,r,n),Sn=ac(W),cc=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Vt(e)(t,r,o)},vn=cc(W),uc=e=>async(t,r,n)=>Vt(e)(t,r,n),zn=uc(W);var oe={};ve(oe,{base64:()=>Un,base64url:()=>Qt,bigint:()=>Yn,boolean:()=>Wn,browserEmail:()=>nd,cidrv4:()=>Mn,cidrv6:()=>Bn,cuid:()=>Tn,cuid2:()=>In,date:()=>Hn,datetime:()=>Jn,domain:()=>id,duration:()=>Cn,e164:()=>Fn,email:()=>On,emoji:()=>Ln,extendedDuration:()=>Wf,guid:()=>Nn,hex:()=>ad,hostname:()=>sd,html5Email:()=>ed,idnEmail:()=>rd,integer:()=>Gn,ipv4:()=>Zn,ipv6:()=>jn,ksuid:()=>An,lowercase:()=>Xn,mac:()=>Dn,md5_base64:()=>ud,md5_base64url:()=>ld,md5_hex:()=>cd,nanoid:()=>Rn,null:()=>Vn,number:()=>Xt,rfc5322Email:()=>td,sha1_base64:()=>fd,sha1_base64url:()=>dd,sha1_hex:()=>pd,sha256_base64:()=>hd,sha256_base64url:()=>gd,sha256_hex:()=>md,sha384_base64:()=>_d,sha384_base64url:()=>bd,sha384_hex:()=>yd,sha512_base64:()=>$d,sha512_base64url:()=>xd,sha512_hex:()=>wd,string:()=>Kn,time:()=>qn,ulid:()=>Pn,undefined:()=>Qn,unicodeEmail:()=>lc,uppercase:()=>eo,uuid:()=>Pe,uuid4:()=>Vf,uuid6:()=>Qf,uuid7:()=>Xf,xid:()=>En});var Tn=/^[cC][^\s-]{8,}$/,In=/^[0-9a-z]+$/,Pn=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,En=/^[0-9a-vA-V]{20}$/,An=/^[A-Za-z0-9]{27}$/,Rn=/^[a-zA-Z0-9_-]{21}$/,Cn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Wf=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Nn=/^([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})$/,Pe=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)$/,Vf=Pe(4),Qf=Pe(6),Xf=Pe(7),On=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,ed=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,td=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,lc=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,rd=lc,nd=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,od="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Ln(){return new RegExp(od,"u")}var Zn=/^(?:(?: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])$/,jn=/^(([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}|:))$/,Dn=e=>{let t=re(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},Mn=/^((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])$/,Bn=/^(([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])$/,Un=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Qt=/^[A-Za-z0-9_-]*$/,sd=/^(?=.{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])?)*\.?$/,id=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,Fn=/^\+[1-9]\d{6,14}$/,pc="(?:(?:\\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])))",Hn=new RegExp(`^${pc}$`);function fc(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function qn(e){return new RegExp(`^${fc(e)}$`)}function Jn(e){let t=fc({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${t}(?:${r.join("|")})`;return new RegExp(`^${pc}T(?:${n})$`)}var Kn=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Yn=/^-?\d+n?$/,Gn=/^-?\d+$/,Xt=/^-?\d+(?:\.\d+)?$/,Wn=/^(?:true|false)$/i,Vn=/^null$/i;var Qn=/^undefined$/i;var Xn=/^[^A-Z]*$/,eo=/^[^a-z]*$/,ad=/^[0-9a-fA-F]*$/;function ct(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function ut(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var cd=/^[0-9a-fA-F]{32}$/,ud=ct(22,"=="),ld=ut(22),pd=/^[0-9a-fA-F]{40}$/,fd=ct(27,"="),dd=ut(27),md=/^[0-9a-fA-F]{64}$/,hd=ct(43,"="),gd=ut(43),yd=/^[0-9a-fA-F]{96}$/,_d=ct(64,""),bd=ut(64),wd=/^[0-9a-fA-F]{128}$/,$d=ct(86,"=="),xd=ut(86);var E=d("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),mc={number:"number",bigint:"bigint",object:"date"},er=d("$ZodCheckLessThan",(e,t)=>{E.init(e,t);let r=mc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,s=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<s&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),tr=d("$ZodCheckGreaterThan",(e,t)=>{E.init(e,t);let r=mc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,s=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),to=d("$ZodCheckMultipleOf",(e,t)=>{E.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):tn(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),ro=d("$ZodCheckNumberFormat",(e,t)=>{E.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,s]=an[t.format];e._zod.onattach.push(i=>{let a=i._zod.bag;a.format=t.format,a.minimum=o,a.maximum=s,r&&(a.pattern=Gn)}),e._zod.check=i=>{let a=i.value;if(r){if(!Number.isInteger(a)){i.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?i.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):i.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}a<o&&i.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),a>s&&i.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}}),no=d("$ZodCheckBigIntFormat",(e,t)=>{E.init(e,t);let[r,n]=cn[t.format];e._zod.onattach.push(o=>{let s=o._zod.bag;s.format=t.format,s.minimum=r,s.maximum=n}),e._zod.check=o=>{let s=o.value;s<r&&o.issues.push({origin:"bigint",input:s,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),s>n&&o.issues.push({origin:"bigint",input:s,code:"too_big",maximum:n,inclusive:!0,inst:e,continue:!t.abort})}}),oo=d("$ZodCheckMaxSize",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;o.size<=t.maximum||n.issues.push({origin:it(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),so=d("$ZodCheckMinSize",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;o.size>=t.minimum||n.issues.push({origin:it(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),io=d("$ZodCheckSizeEquals",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=n=>{let o=n.value,s=o.size;if(s===t.size)return;let i=s>t.size;n.issues.push({origin:it(o),...i?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),ao=d("$ZodCheckMaxLength",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;if(o.length<=t.maximum)return;let i=at(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),co=d("$ZodCheckMinLength",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let i=at(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),uo=d("$ZodCheckLengthEquals",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{let o=n.value,s=o.length;if(s===t.length)return;let i=at(o),a=s>t.length;n.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Me=d("$ZodCheckStringFormat",(e,t)=>{var r,n;E.init(e,t),e._zod.onattach.push(o=>{let s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),lo=d("$ZodCheckRegex",(e,t)=>{Me.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),po=d("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Xn),Me.init(e,t)}),fo=d("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=eo),Me.init(e,t)}),mo=d("$ZodCheckIncludes",(e,t)=>{E.init(e,t);let r=re(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{let s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),ho=d("$ZodCheckStartsWith",(e,t)=>{E.init(e,t);let r=new RegExp(`^${re(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),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})}}),go=d("$ZodCheckEndsWith",(e,t)=>{E.init(e,t);let r=new RegExp(`.*${re(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),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})}});function dc(e,t,r){e.issues.length&&t.issues.push(...Q(r,e.issues))}var yo=d("$ZodCheckProperty",(e,t)=>{E.init(e,t),e._zod.check=r=>{let n=t.schema._zod.run({value:r.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(o=>dc(o,r,t.property));dc(n,r,t.property)}}),_o=d("$ZodCheckMimeType",(e,t)=>{E.init(e,t);let r=new Set(t.mime);e._zod.onattach.push(n=>{n._zod.bag.mime=t.mime}),e._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:t.mime,input:n.value.type,inst:e,continue:!t.abort})}}),bo=d("$ZodCheckOverwrite",(e,t)=>{E.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var lt=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let n=t.split(`
|
|
4
4
|
`).filter(i=>i),o=Math.min(...n.map(i=>i.length-i.trimStart().length)),s=n.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(let i of s)this.content.push(i)}compile(){let t=Function,r=this?.args,o=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...r,o.join(`
|
|
5
|
-
`))}};var bo={major:4,minor:3,patch:6};var x=d("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=bo;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let s of o._zod.onattach)s(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(i,a,u)=>{let l=he(i),p;for(let f of a){if(f._zod.def.when){if(!f._zod.def.when(i))continue}else if(l)continue;let m=i.issues.length,h=f._zod.check(i);if(h instanceof Promise&&u?.async===!1)throw new se;if(p||h instanceof Promise)p=(p??Promise.resolve()).then(async()=>{await h,i.issues.length!==m&&(l||(l=he(i,m)))});else{if(i.issues.length===m)continue;l||(l=he(i,m))}}return p?p.then(()=>i):i},s=(i,a,u)=>{if(he(i))return i.aborted=!0,i;let l=o(a,n,u);if(l instanceof Promise){if(u.async===!1)throw new se;return l.then(p=>e._zod.parse(p,u))}return e._zod.parse(l,u)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction==="backward"){let l=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return l instanceof Promise?l.then(p=>s(p,i,a)):s(l,i,a)}let u=e._zod.parse(i,a);if(u instanceof Promise){if(a.async===!1)throw new se;return u.then(l=>o(l,n,a))}return o(u,n,a)}}k(e,"~standard",()=>({validate:o=>{try{let s=Te(e,o);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Ie(e,o).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),Be=d("$ZodString",(e,t)=>{x.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Jn(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),P=d("$ZodStringFormat",(e,t)=>{Me.init(e,t),Be.init(e,t)}),$o=d("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Cn),P.init(e,t)}),xo=d("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Pe(n))}else t.pattern??(t.pattern=Pe());P.init(e,t)}),ko=d("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Nn),P.init(e,t)}),So=d("$ZodURL",(e,t)=>{P.init(e,t),e._zod.check=r=>{try{let n=r.value.trim(),o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.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)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),vo=d("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=On()),P.init(e,t)}),zo=d("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=An),P.init(e,t)}),To=d("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=zn),P.init(e,t)}),Io=d("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Tn),P.init(e,t)}),Po=d("$ZodULID",(e,t)=>{t.pattern??(t.pattern=In),P.init(e,t)}),Eo=d("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Pn),P.init(e,t)}),Ao=d("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=En),P.init(e,t)}),Ro=d("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=qn(t)),P.init(e,t)}),Co=d("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Fn),P.init(e,t)}),No=d("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Hn(t)),P.init(e,t)}),Oo=d("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Rn),P.init(e,t)}),Lo=d("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Ln),P.init(e,t),e._zod.bag.format="ipv4"}),Zo=d("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Zn),P.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),jo=d("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=jn(t.delimiter)),P.init(e,t),e._zod.bag.format="mac"}),Do=d("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Dn),P.init(e,t)}),Mo=d("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Mn),P.init(e,t),e._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,s]=n;if(!s)throw new Error;let i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function Bo(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Uo=d("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Bn),P.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Bo(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Tc(e){if(!Qt.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Bo(r)}var Fo=d("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Qt),P.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Tc(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Ho=d("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Un),P.init(e,t)});function Ic(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var qo=d("$ZodJWT",(e,t)=>{P.init(e,t),e._zod.check=r=>{Ic(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),Jo=d("$ZodCustomStringFormat",(e,t)=>{P.init(e,t),e._zod.check=r=>{t.fn(r.value)||r.issues.push({code:"invalid_format",format:t.format,input:r.value,inst:e,continue:!t.abort})}}),ar=d("$ZodNumber",(e,t)=>{x.init(e,t),e._zod.pattern=e._zod.bag.pattern??Xt,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let s=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...s?{received:s}:{}}),r}}),Ko=d("$ZodNumberFormat",(e,t)=>{to.init(e,t),ar.init(e,t)}),pt=d("$ZodBoolean",(e,t)=>{x.init(e,t),e._zod.pattern=Gn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}}),cr=d("$ZodBigInt",(e,t)=>{x.init(e,t),e._zod.pattern=Kn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:e}),r}}),Yo=d("$ZodBigIntFormat",(e,t)=>{ro.init(e,t),cr.init(e,t)}),Go=d("$ZodSymbol",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),r}}),Wo=d("$ZodUndefined",(e,t)=>{x.init(e,t),e._zod.pattern=Vn,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),r}}),Vo=d("$ZodNull",(e,t)=>{x.init(e,t),e._zod.pattern=Wn,e._zod.values=new Set([null]),e._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),r}}),Qo=d("$ZodAny",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),Xo=d("$ZodUnknown",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),es=d("$ZodNever",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),ts=d("$ZodVoid",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),rs=d("$ZodDate",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,s=o instanceof Date;return s&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...s?{received:"Invalid Date"}:{},inst:e}),r}});function gc(e,t,r){e.issues.length&&t.issues.push(...Q(r,e.issues)),t.value[r]=e.value}var ns=d("$ZodArray",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let s=[];for(let i=0;i<o.length;i++){let a=o[i],u=t.element._zod.run({value:a,issues:[]},n);u instanceof Promise?s.push(u.then(l=>gc(l,r,i))):gc(u,r,i)}return s.length?Promise.all(s).then(()=>r):r}});function ir(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...Q(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Pc(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=on(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function Ec(e,t,r,n,o,s){let i=[],a=o.keySet,u=o.catchall._zod,l=u.def.type,p=u.optout==="optional";for(let f in t){if(a.has(f))continue;if(l==="never"){i.push(f);continue}let m=u.run({value:t[f],issues:[]},n);m instanceof Promise?e.push(m.then(h=>ir(h,r,f,t,p))):ir(m,r,f,t,p)}return i.length&&r.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:s}),e.length?Promise.all(e).then(()=>r):r}var ur=d("$ZodObject",(e,t)=>{if(x.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let a=t.shape;Object.defineProperty(t,"shape",{get:()=>{let u={...a};return Object.defineProperty(t,"shape",{value:u}),u}})}let n=Ze(()=>Pc(t));k(e._zod,"propValues",()=>{let a=t.shape,u={};for(let l in a){let p=a[l]._zod;if(p.values){u[l]??(u[l]=new Set);for(let f of p.values)u[l].add(f)}}return u});let o=ze,s=t.catchall,i;e._zod.parse=(a,u)=>{i??(i=n.value);let l=a.value;if(!o(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),a;a.value={};let p=[],f=i.shape;for(let m of i.keys){let h=f[m],_=h._zod.optout==="optional",y=h._zod.run({value:l[m],issues:[]},u);y instanceof Promise?p.push(y.then(z=>ir(z,a,m,l,_))):ir(y,a,m,l,_)}return s?Ec(p,l,a,u,n.value,e):p.length?Promise.all(p).then(()=>a):a}}),kd=d("$ZodObjectJIT",(e,t)=>{ur.init(e,t);let r=e._zod.parse,n=Ze(()=>Pc(t)),o=m=>{let h=new lt(["shape","payload","ctx"]),_=n.value,y=C=>{let M=qt(C);return`shape[${M}]._zod.run({ value: input[${M}], issues: [] }, ctx)`};h.write("const input = payload.value;");let z=Object.create(null),H=0;for(let C of _.keys)z[C]=`key_${H++}`;h.write("const newResult = {};");for(let C of _.keys){let M=z[C],O=qt(C),jt=m[C]?._zod?.optout==="optional";h.write(`const ${M} = ${y(C)};`),jt?h.write(`
|
|
5
|
+
`))}};var wo={major:4,minor:3,patch:6};var x=d("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=wo;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let s of o._zod.onattach)s(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(i,a,u)=>{let l=he(i),p;for(let f of a){if(f._zod.def.when){if(!f._zod.def.when(i))continue}else if(l)continue;let m=i.issues.length,h=f._zod.check(i);if(h instanceof Promise&&u?.async===!1)throw new se;if(p||h instanceof Promise)p=(p??Promise.resolve()).then(async()=>{await h,i.issues.length!==m&&(l||(l=he(i,m)))});else{if(i.issues.length===m)continue;l||(l=he(i,m))}}return p?p.then(()=>i):i},s=(i,a,u)=>{if(he(i))return i.aborted=!0,i;let l=o(a,n,u);if(l instanceof Promise){if(u.async===!1)throw new se;return l.then(p=>e._zod.parse(p,u))}return e._zod.parse(l,u)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction==="backward"){let l=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return l instanceof Promise?l.then(p=>s(p,i,a)):s(l,i,a)}let u=e._zod.parse(i,a);if(u instanceof Promise){if(a.async===!1)throw new se;return u.then(l=>o(l,n,a))}return o(u,n,a)}}k(e,"~standard",()=>({validate:o=>{try{let s=Te(e,o);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Ie(e,o).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),Be=d("$ZodString",(e,t)=>{x.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Kn(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),P=d("$ZodStringFormat",(e,t)=>{Me.init(e,t),Be.init(e,t)}),xo=d("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Nn),P.init(e,t)}),ko=d("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Pe(n))}else t.pattern??(t.pattern=Pe());P.init(e,t)}),So=d("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=On),P.init(e,t)}),vo=d("$ZodURL",(e,t)=>{P.init(e,t),e._zod.check=r=>{try{let n=r.value.trim(),o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.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)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),zo=d("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Ln()),P.init(e,t)}),To=d("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Rn),P.init(e,t)}),Io=d("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Tn),P.init(e,t)}),Po=d("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=In),P.init(e,t)}),Eo=d("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Pn),P.init(e,t)}),Ao=d("$ZodXID",(e,t)=>{t.pattern??(t.pattern=En),P.init(e,t)}),Ro=d("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=An),P.init(e,t)}),Co=d("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Jn(t)),P.init(e,t)}),No=d("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Hn),P.init(e,t)}),Oo=d("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=qn(t)),P.init(e,t)}),Lo=d("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Cn),P.init(e,t)}),Zo=d("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Zn),P.init(e,t),e._zod.bag.format="ipv4"}),jo=d("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=jn),P.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Do=d("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=Dn(t.delimiter)),P.init(e,t),e._zod.bag.format="mac"}),Mo=d("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Mn),P.init(e,t)}),Bo=d("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Bn),P.init(e,t),e._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,s]=n;if(!s)throw new Error;let i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function Uo(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Fo=d("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Un),P.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Uo(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Tc(e){if(!Qt.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Uo(r)}var Ho=d("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Qt),P.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Tc(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),qo=d("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Fn),P.init(e,t)});function Ic(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Jo=d("$ZodJWT",(e,t)=>{P.init(e,t),e._zod.check=r=>{Ic(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),Ko=d("$ZodCustomStringFormat",(e,t)=>{P.init(e,t),e._zod.check=r=>{t.fn(r.value)||r.issues.push({code:"invalid_format",format:t.format,input:r.value,inst:e,continue:!t.abort})}}),ar=d("$ZodNumber",(e,t)=>{x.init(e,t),e._zod.pattern=e._zod.bag.pattern??Xt,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let s=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...s?{received:s}:{}}),r}}),Yo=d("$ZodNumberFormat",(e,t)=>{ro.init(e,t),ar.init(e,t)}),pt=d("$ZodBoolean",(e,t)=>{x.init(e,t),e._zod.pattern=Wn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}}),cr=d("$ZodBigInt",(e,t)=>{x.init(e,t),e._zod.pattern=Yn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:e}),r}}),Go=d("$ZodBigIntFormat",(e,t)=>{no.init(e,t),cr.init(e,t)}),Wo=d("$ZodSymbol",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),r}}),Vo=d("$ZodUndefined",(e,t)=>{x.init(e,t),e._zod.pattern=Qn,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),r}}),Qo=d("$ZodNull",(e,t)=>{x.init(e,t),e._zod.pattern=Vn,e._zod.values=new Set([null]),e._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),r}}),Xo=d("$ZodAny",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),es=d("$ZodUnknown",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),ts=d("$ZodNever",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),rs=d("$ZodVoid",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),ns=d("$ZodDate",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,s=o instanceof Date;return s&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...s?{received:"Invalid Date"}:{},inst:e}),r}});function gc(e,t,r){e.issues.length&&t.issues.push(...Q(r,e.issues)),t.value[r]=e.value}var os=d("$ZodArray",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let s=[];for(let i=0;i<o.length;i++){let a=o[i],u=t.element._zod.run({value:a,issues:[]},n);u instanceof Promise?s.push(u.then(l=>gc(l,r,i))):gc(u,r,i)}return s.length?Promise.all(s).then(()=>r):r}});function ir(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...Q(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Pc(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=sn(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function Ec(e,t,r,n,o,s){let i=[],a=o.keySet,u=o.catchall._zod,l=u.def.type,p=u.optout==="optional";for(let f in t){if(a.has(f))continue;if(l==="never"){i.push(f);continue}let m=u.run({value:t[f],issues:[]},n);m instanceof Promise?e.push(m.then(h=>ir(h,r,f,t,p))):ir(m,r,f,t,p)}return i.length&&r.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:s}),e.length?Promise.all(e).then(()=>r):r}var ur=d("$ZodObject",(e,t)=>{if(x.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let a=t.shape;Object.defineProperty(t,"shape",{get:()=>{let u={...a};return Object.defineProperty(t,"shape",{value:u}),u}})}let n=Ze(()=>Pc(t));k(e._zod,"propValues",()=>{let a=t.shape,u={};for(let l in a){let p=a[l]._zod;if(p.values){u[l]??(u[l]=new Set);for(let f of p.values)u[l].add(f)}}return u});let o=ze,s=t.catchall,i;e._zod.parse=(a,u)=>{i??(i=n.value);let l=a.value;if(!o(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),a;a.value={};let p=[],f=i.shape;for(let m of i.keys){let h=f[m],_=h._zod.optout==="optional",y=h._zod.run({value:l[m],issues:[]},u);y instanceof Promise?p.push(y.then(z=>ir(z,a,m,l,_))):ir(y,a,m,l,_)}return s?Ec(p,l,a,u,n.value,e):p.length?Promise.all(p).then(()=>a):a}}),kd=d("$ZodObjectJIT",(e,t)=>{ur.init(e,t);let r=e._zod.parse,n=Ze(()=>Pc(t)),o=m=>{let h=new lt(["shape","payload","ctx"]),_=n.value,y=C=>{let M=qt(C);return`shape[${M}]._zod.run({ value: input[${M}], issues: [] }, ctx)`};h.write("const input = payload.value;");let z=Object.create(null),H=0;for(let C of _.keys)z[C]=`key_${H++}`;h.write("const newResult = {};");for(let C of _.keys){let M=z[C],O=qt(C),jt=m[C]?._zod?.optout==="optional";h.write(`const ${M} = ${y(C)};`),jt?h.write(`
|
|
6
6
|
if (${M}.issues.length) {
|
|
7
7
|
if (${O} in input) {
|
|
8
8
|
payload.issues = payload.issues.concat(${M}.issues.map(iss => ({
|
|
@@ -36,20 +36,20 @@ var xf=Object.defineProperty;var ve=(e,t)=>{for(var r in t)xf(e,r,{get:t[r],enum
|
|
|
36
36
|
newResult[${O}] = ${M}.value;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
`)}h.write("payload.value = newResult;"),h.write("return payload;");let Y=h.compile();return(C,M)=>Y(m,C,M)},s,i=ze,a=!tt.jitless,l=a&&rn.value,p=t.catchall,f;e._zod.parse=(m,h)=>{f??(f=n.value);let _=m.value;return i(_)?a&&l&&h?.async===!1&&h.jitless!==!0?(s||(s=o(t.shape)),m=s(m,h),p?Ec([],_,m,h,f,e):m):r(m,h):(m.issues.push({expected:"object",code:"invalid_type",input:_,inst:e}),m)}});function yc(e,t,r,n){for(let s of e)if(s.issues.length===0)return t.value=s.value,t;let o=e.filter(s=>!he(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>G(i,n,B())))}),t)}var ft=d("$ZodUnion",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),k(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),k(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),k(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){let o=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>ot(s.source)).join("|")})$`)}});let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(r)return n(o,s);let i=!1,a=[];for(let u of t.options){let l=u._zod.run({value:o.value,issues:[]},s);if(l instanceof Promise)a.push(l),i=!0;else{if(l.issues.length===0)return l;a.push(l)}}return i?Promise.all(a).then(u=>yc(u,o,e,s)):yc(a,o,e,s)}});function _c(e,t,r,n){let o=e.filter(s=>s.issues.length===0);return o.length===1?(t.value=o[0].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>G(i,n,B())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}var os=d("$ZodXor",(e,t)=>{ft.init(e,t),t.inclusive=!1;let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(r)return n(o,s);let i=!1,a=[];for(let u of t.options){let l=u._zod.run({value:o.value,issues:[]},s);l instanceof Promise?(a.push(l),i=!0):a.push(l)}return i?Promise.all(a).then(u=>_c(u,o,e,s)):_c(a,o,e,s)}}),ss=d("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,ft.init(e,t);let r=e._zod.parse;k(e._zod,"propValues",()=>{let o={};for(let s of t.options){let i=s._zod.propValues;if(!i||Object.keys(i).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,u]of Object.entries(i)){o[a]||(o[a]=new Set);for(let l of u)o[a].add(l)}}return o});let n=Ze(()=>{let o=t.options,s=new Map;for(let i of o){let a=i._zod.propValues?.[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(let u of a){if(s.has(u))throw new Error(`Duplicate discriminator value "${String(u)}"`);s.set(u,i)}}return s});e._zod.parse=(o,s)=>{let i=o.value;if(!ze(i))return o.issues.push({code:"invalid_type",expected:"object",input:i,inst:e}),o;let a=n.value.get(i?.[t.discriminator]);return a?a._zod.run(o,s):t.unionFallback?r(o,s):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:i,path:[t.discriminator],inst:e}),o)}}),is=d("$ZodIntersection",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value,s=t.left._zod.run({value:o,issues:[]},n),i=t.right._zod.run({value:o,issues:[]},n);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([u,l])=>bc(r,u,l)):bc(r,s,i)}});function wo(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(me(e)&&me(t)){let r=Object.keys(t),n=Object.keys(e).filter(s=>r.indexOf(s)!==-1),o={...e,...t};for(let s of n){let i=wo(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<e.length;n++){let o=e[n],s=t[n],i=wo(o,s);if(!i.valid)return{valid:!1,mergeErrorPath:[n,...i.mergeErrorPath]};r.push(i.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function bc(e,t,r){let n=new Map,o;for(let a of t.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let u of a.keys)n.has(u)||n.set(u,{}),n.get(u).l=!0}else e.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let u of a.keys)n.has(u)||n.set(u,{}),n.get(u).r=!0;else e.issues.push(a);let s=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(s.length&&o&&e.issues.push({...o,keys:s}),he(e))return e;let i=wo(t.value,r.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}var lr=d("$ZodTuple",(e,t)=>{x.init(e,t);let r=t.items;e._zod.parse=(n,o)=>{let s=n.value;if(!Array.isArray(s))return n.issues.push({input:s,inst:e,expected:"tuple",code:"invalid_type"}),n;n.value=[];let i=[],a=[...r].reverse().findIndex(p=>p._zod.optin!=="optional"),u=a===-1?0:r.length-a;if(!t.rest){let p=s.length>r.length,f=s.length<u-1;if(p||f)return n.issues.push({...p?{code:"too_big",maximum:r.length,inclusive:!0}:{code:"too_small",minimum:r.length},input:s,inst:e,origin:"array"}),n}let l=-1;for(let p of r){if(l++,l>=s.length&&l>=u)continue;let f=p._zod.run({value:s[l],issues:[]},o);f instanceof Promise?i.push(f.then(m=>rr(m,n,l))):rr(f,n,l)}if(t.rest){let p=s.slice(r.length);for(let f of p){l++;let m=t.rest._zod.run({value:f,issues:[]},o);m instanceof Promise?i.push(m.then(h=>rr(h,n,l))):rr(m,n,l)}}return i.length?Promise.all(i).then(()=>n):n}});function rr(e,t,r){e.issues.length&&t.issues.push(...Q(r,e.issues)),t.value[r]=e.value}var as=d("$ZodRecord",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!me(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;let s=[],i=t.keyType._zod.values;if(i){r.value={};let a=new Set;for(let l of i)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){a.add(typeof l=="number"?l.toString():l);let p=t.valueType._zod.run({value:o[l],issues:[]},n);p instanceof Promise?s.push(p.then(f=>{f.issues.length&&r.issues.push(...Q(l,f.issues)),r.value[l]=f.value})):(p.issues.length&&r.issues.push(...Q(l,p.issues)),r.value[l]=p.value)}let u;for(let l in o)a.has(l)||(u=u??[],u.push(l));u&&u.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:u})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__")continue;let u=t.keyType._zod.run({value:a,issues:[]},n);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&Xt.test(a)&&u.issues.length){let f=t.keyType._zod.run({value:Number(a),issues:[]},n);if(f instanceof Promise)throw new Error("Async schemas not supported in object keys currently");f.issues.length===0&&(u=f)}if(u.issues.length){t.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:u.issues.map(f=>G(f,n,B())),input:a,path:[a],inst:e});continue}let p=t.valueType._zod.run({value:o[a],issues:[]},n);p instanceof Promise?s.push(p.then(f=>{f.issues.length&&r.issues.push(...Q(a,f.issues)),r.value[u.value]=f.value})):(p.issues.length&&r.issues.push(...Q(a,p.issues)),r.value[u.value]=p.value)}}return s.length?Promise.all(s).then(()=>r):r}}),cs=d("$ZodMap",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),r;let s=[];r.value=new Map;for(let[i,a]of o){let u=t.keyType._zod.run({value:i,issues:[]},n),l=t.valueType._zod.run({value:a,issues:[]},n);u instanceof Promise||l instanceof Promise?s.push(Promise.all([u,l]).then(([p,f])=>{wc(p,f,r,i,o,e,n)})):wc(u,l,r,i,o,e,n)}return s.length?Promise.all(s).then(()=>r):r}});function wc(e,t,r,n,o,s,i){e.issues.length&&(st.has(typeof n)?r.issues.push(...Q(n,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:s,issues:e.issues.map(a=>G(a,i,B()))})),t.issues.length&&(st.has(typeof n)?r.issues.push(...Q(n,t.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:s,key:n,issues:t.issues.map(a=>G(a,i,B()))})),r.value.set(e.value,t.value)}var us=d("$ZodSet",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),r;let s=[];r.value=new Set;for(let i of o){let a=t.valueType._zod.run({value:i,issues:[]},n);a instanceof Promise?s.push(a.then(u=>$c(u,r))):$c(a,r)}return s.length?Promise.all(s).then(()=>r):r}});function $c(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var ls=d("$ZodEnum",(e,t)=>{x.init(e,t);let r=nt(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>st.has(typeof o)).map(o=>typeof o=="string"?ee(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{let i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:r,input:i,inst:e}),o}}),ps=d("$ZodLiteral",(e,t)=>{if(x.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?ee(n):n?ee(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{let s=n.value;return r.has(s)||n.issues.push({code:"invalid_value",values:t.values,input:s,inst:e}),n}}),fs=d("$ZodFile",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return o instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:o,inst:e}),r}}),ds=d("$ZodTransform",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Le(e.constructor.name);let o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r));if(o instanceof Promise)throw new se;return r.value=o,r}});function xc(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var pr=d("$ZodOptional",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.optout="optional",k(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),k(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${ot(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>xc(s,r.value)):xc(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),ms=d("$ZodExactOptional",(e,t)=>{pr.init(e,t),k(e._zod,"values",()=>t.innerType._zod.values),k(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),hs=d("$ZodNullable",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.innerType._zod.optin),k(e._zod,"optout",()=>t.innerType._zod.optout),k(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${ot(r.source)}|null)$`):void 0}),k(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),gs=d("$ZodDefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>kc(s,t)):kc(o,t)}});function kc(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var ys=d("$ZodPrefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),_s=d("$ZodNonOptional",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>{let r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>Sc(s,e)):Sc(o,e)}});function Sc(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var bs=d("$ZodSuccess",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Le("ZodSuccess");let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>(r.value=s.issues.length===0,r)):(r.value=o.issues.length===0,r)}}),ws=d("$ZodCatch",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.innerType._zod.optin),k(e._zod,"optout",()=>t.innerType._zod.optout),k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>(r.value=s.value,s.issues.length&&(r.value=t.catchValue({...r,error:{issues:s.issues.map(i=>G(i,n,B()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(s=>G(s,n,B()))},input:r.value}),r.issues=[]),r)}}),$s=d("$ZodNaN",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:e,expected:"nan",code:"invalid_type"}),r)}),xs=d("$ZodPipe",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>t.in._zod.values),k(e._zod,"optin",()=>t.in._zod.optin),k(e._zod,"optout",()=>t.out._zod.optout),k(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){let s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>nr(i,t.in,n)):nr(s,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(s=>nr(s,t.out,n)):nr(o,t.out,n)}});function nr(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var dt=d("$ZodCodec",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>t.in._zod.values),k(e._zod,"optin",()=>t.in._zod.optin),k(e._zod,"optout",()=>t.out._zod.optout),k(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let s=t.in._zod.run(r,n);return s instanceof Promise?s.then(i=>or(i,t,n)):or(s,t,n)}else{let s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>or(i,t,n)):or(s,t,n)}}});function or(e,t,r){if(e.issues.length)return e.aborted=!0,e;if((r.direction||"forward")==="forward"){let o=t.transform(e.value,e);return o instanceof Promise?o.then(s=>sr(e,s,t.out,r)):sr(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(s=>sr(e,s,t.in,r)):sr(e,o,t.in,r)}}function sr(e,t,r,n){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:t,issues:e.issues},n)}var ks=d("$ZodReadonly",(e,t)=>{x.init(e,t),k(e._zod,"propValues",()=>t.innerType._zod.propValues),k(e._zod,"values",()=>t.innerType._zod.values),k(e._zod,"optin",()=>t.innerType?._zod?.optin),k(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(vc):vc(o)}});function vc(e){return e.value=Object.freeze(e.value),e}var Ss=d("$ZodTemplateLiteral",(e,t)=>{x.init(e,t);let r=[];for(let n of t.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let o=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let s=o.startsWith("^")?1:0,i=o.endsWith("$")?o.length-1:o.length;r.push(o.slice(s,i))}else if(n===null||nn.has(typeof n))r.push(ee(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);e._zod.pattern=new RegExp(`^${r.join("")}$`),e._zod.parse=(n,o)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:e,expected:"string",code:"invalid_type"}),n):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),n)}),vs=d("$ZodFunction",(e,t)=>(x.init(e,t),e._def=t,e._zod.def=t,e.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let o=e._def.input?ge(e._def.input,n):n,s=Reflect.apply(r,this,o);return e._def.output?ge(e._def.output,s):s}},e.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let o=e._def.input?await ye(e._def.input,n):n,s=await Reflect.apply(r,this,o);return e._def.output?await ye(e._def.output,s):s}},e._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:e}),r):(e._def.output&&e._def.output._zod.def.type==="promise"?r.value=e.implementAsync(r.value):r.value=e.implement(r.value),r),e.input=(...r)=>{let n=e.constructor;return Array.isArray(r[0])?new n({type:"function",input:new lr({type:"tuple",items:r[0],rest:r[1]}),output:e._def.output}):new n({type:"function",input:r[0],output:e._def.output})},e.output=r=>{let n=e.constructor;return new n({type:"function",input:e._def.input,output:r})},e)),zs=d("$ZodPromise",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>Promise.resolve(r.value).then(o=>t.innerType._zod.run({value:o,issues:[]},n))}),Ts=d("$ZodLazy",(e,t)=>{x.init(e,t),k(e._zod,"innerType",()=>t.getter()),k(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),k(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),k(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),k(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,n)=>e._zod.innerType._zod.run(r,n)}),Is=d("$ZodCustom",(e,t)=>{E.init(e,t),x.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{let n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(s=>zc(s,r,n,e));zc(o,r,n,e)}});function zc(e,t,r,n){if(!e){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(De(o))}}var mt={};ve(mt,{default:()=>vd});var vd={};var Ac,Ps=Symbol("ZodOutput"),Es=Symbol("ZodInput"),fr=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){let n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){let r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){let r=t._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}};function dr(){return new fr}(Ac=globalThis).__zod_globalRegistry??(Ac.__zod_globalRegistry=dr());var ae=globalThis.__zod_globalRegistry;function As(e,t){return new e({type:"string",...g(t)})}function Rs(e,t){return new e({type:"string",coerce:!0,...g(t)})}function Cs(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...g(t)})}function Ns(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...g(t)})}function Os(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...g(t)})}function Ls(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...g(t)})}function Zs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...g(t)})}function js(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...g(t)})}function mr(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...g(t)})}function Ds(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...g(t)})}function Ms(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...g(t)})}function Bs(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...g(t)})}function Us(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...g(t)})}function Fs(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...g(t)})}function Hs(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...g(t)})}function qs(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...g(t)})}function Js(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...g(t)})}function Ks(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...g(t)})}function Ys(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...g(t)})}function Gs(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...g(t)})}function Ws(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...g(t)})}function Vs(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...g(t)})}function Qs(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...g(t)})}function Xs(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...g(t)})}function ei(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...g(t)})}var ti={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function ri(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...g(t)})}function ni(e,t){return new e({type:"string",format:"date",check:"string_format",...g(t)})}function oi(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...g(t)})}function si(e,t){return new e({type:"string",format:"duration",check:"string_format",...g(t)})}function ii(e,t){return new e({type:"number",checks:[],...g(t)})}function ai(e,t){return new e({type:"number",coerce:!0,checks:[],...g(t)})}function ci(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...g(t)})}function ui(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...g(t)})}function li(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...g(t)})}function pi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...g(t)})}function fi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...g(t)})}function di(e,t){return new e({type:"boolean",...g(t)})}function mi(e,t){return new e({type:"boolean",coerce:!0,...g(t)})}function hi(e,t){return new e({type:"bigint",...g(t)})}function gi(e,t){return new e({type:"bigint",coerce:!0,...g(t)})}function yi(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...g(t)})}function _i(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...g(t)})}function bi(e,t){return new e({type:"symbol",...g(t)})}function wi(e,t){return new e({type:"undefined",...g(t)})}function $i(e,t){return new e({type:"null",...g(t)})}function xi(e){return new e({type:"any"})}function ki(e){return new e({type:"unknown"})}function Si(e,t){return new e({type:"never",...g(t)})}function vi(e,t){return new e({type:"void",...g(t)})}function zi(e,t){return new e({type:"date",...g(t)})}function Ti(e,t){return new e({type:"date",coerce:!0,...g(t)})}function Ii(e,t){return new e({type:"nan",...g(t)})}function hr(e,t){return new er({check:"less_than",...g(t),value:e,inclusive:!1})}function ht(e,t){return new er({check:"less_than",...g(t),value:e,inclusive:!0})}function gr(e,t){return new tr({check:"greater_than",...g(t),value:e,inclusive:!1})}function gt(e,t){return new tr({check:"greater_than",...g(t),value:e,inclusive:!0})}function Pi(e){return gr(0,e)}function Ei(e){return hr(0,e)}function Ai(e){return ht(0,e)}function Ri(e){return gt(0,e)}function Ci(e,t){return new eo({check:"multiple_of",...g(t),value:e})}function Ni(e,t){return new no({check:"max_size",...g(t),maximum:e})}function Oi(e,t){return new oo({check:"min_size",...g(t),minimum:e})}function Li(e,t){return new so({check:"size_equals",...g(t),size:e})}function Zi(e,t){return new io({check:"max_length",...g(t),maximum:e})}function yt(e,t){return new ao({check:"min_length",...g(t),minimum:e})}function ji(e,t){return new co({check:"length_equals",...g(t),length:e})}function _t(e,t){return new uo({check:"string_format",format:"regex",...g(t),pattern:e})}function Di(e){return new lo({check:"string_format",format:"lowercase",...g(e)})}function Mi(e){return new po({check:"string_format",format:"uppercase",...g(e)})}function Bi(e,t){return new fo({check:"string_format",format:"includes",...g(t),includes:e})}function Ui(e,t){return new mo({check:"string_format",format:"starts_with",...g(t),prefix:e})}function Fi(e,t){return new ho({check:"string_format",format:"ends_with",...g(t),suffix:e})}function Hi(e,t,r){return new go({check:"property",property:e,schema:t,...g(r)})}function qi(e,t){return new yo({check:"mime_type",mime:e,...g(t)})}function _e(e){return new _o({check:"overwrite",tx:e})}function Ji(e){return _e(t=>t.normalize(e))}function Ki(){return _e(e=>e.trim())}function Yi(){return _e(e=>e.toLowerCase())}function Gi(){return _e(e=>e.toUpperCase())}function Td(){return _e(e=>tn(e))}function Id(e,t,r){return new e({type:"array",element:t,...g(r)})}function Pd(e,t,r){return new e({type:"union",options:t,...g(r)})}function Ed(e,t,r){return new e({type:"union",options:t,inclusive:!1,...g(r)})}function Ad(e,t,r,n){return new e({type:"union",options:r,discriminator:t,...g(n)})}function Rd(e,t,r){return new e({type:"intersection",left:t,right:r})}function Cd(e,t,r,n){let o=r instanceof x,s=o?n:r,i=o?r:null;return new e({type:"tuple",items:t,rest:i,...g(s)})}function Nd(e,t,r,n){return new e({type:"record",keyType:t,valueType:r,...g(n)})}function Od(e,t,r,n){return new e({type:"map",keyType:t,valueType:r,...g(n)})}function Ld(e,t,r){return new e({type:"set",valueType:t,...g(r)})}function Zd(e,t,r){let n=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new e({type:"enum",entries:n,...g(r)})}function jd(e,t,r){return new e({type:"enum",entries:t,...g(r)})}function Dd(e,t,r){return new e({type:"literal",values:Array.isArray(t)?t:[t],...g(r)})}function Wi(e,t){return new e({type:"file",...g(t)})}function Md(e,t){return new e({type:"transform",transform:t})}function Bd(e,t){return new e({type:"optional",innerType:t})}function Ud(e,t){return new e({type:"nullable",innerType:t})}function Fd(e,t,r){return new e({type:"default",innerType:t,get defaultValue(){return typeof r=="function"?r():je(r)}})}function Hd(e,t,r){return new e({type:"nonoptional",innerType:t,...g(r)})}function qd(e,t){return new e({type:"success",innerType:t})}function Jd(e,t,r){return new e({type:"catch",innerType:t,catchValue:typeof r=="function"?r:()=>r})}function Kd(e,t,r){return new e({type:"pipe",in:t,out:r})}function Yd(e,t){return new e({type:"readonly",innerType:t})}function Gd(e,t,r){return new e({type:"template_literal",parts:t,...g(r)})}function Wd(e,t){return new e({type:"lazy",getter:t})}function Vd(e,t){return new e({type:"promise",innerType:t})}function Vi(e,t,r){let n=g(r);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function Qi(e,t,r){return new e({type:"custom",check:"custom",fn:t,...g(r)})}function Xi(e){let t=Rc(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(De(n,r.value,t._zod.def));else{let o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),r.issues.push(De(o))}},e(r.value,r)));return t}function Rc(e,t){let r=new E({check:"custom",...g(t)});return r._zod.check=e,r}function ea(e){let t=new E({check:"describe"});return t._zod.onattach=[r=>{let n=ae.get(r)??{};ae.add(r,{...n,description:e})}],t._zod.check=()=>{},t}function ta(e){let t=new E({check:"meta"});return t._zod.onattach=[r=>{let n=ae.get(r)??{};ae.add(r,{...n,...e})}],t._zod.check=()=>{},t}function ra(e,t){let r=g(t),n=r.truthy??["true","1","yes","on","y","enabled"],o=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(h=>typeof h=="string"?h.toLowerCase():h),o=o.map(h=>typeof h=="string"?h.toLowerCase():h));let s=new Set(n),i=new Set(o),a=e.Codec??dt,u=e.Boolean??pt,l=e.String??Be,p=new l({type:"string",error:r.error}),f=new u({type:"boolean",error:r.error}),m=new a({type:"pipe",in:p,out:f,transform:((h,_)=>{let y=h;return r.case!=="sensitive"&&(y=y.toLowerCase()),s.has(y)?!0:i.has(y)?!1:(_.issues.push({code:"invalid_value",expected:"stringbool",values:[...s,...i],input:_.value,inst:m,continue:!1}),{})}),reverseTransform:((h,_)=>h===!0?n[0]||"true":o[0]||"false"),error:r.error});return m}function Ue(e,t,r,n={}){let o=g(n),s={...g(n),check:"string_format",type:"string",format:t,fn:typeof r=="function"?r:a=>r.test(a),...o};return r instanceof RegExp&&(s.pattern=r),new e(s)}function be(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??ae,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function T(e,t,r={path:[],schemaPath:[]}){var n;let o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,r.schemaPath.includes(e)&&(s.cycle=r.path),s.schema;let i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i);let a=e._zod.toJSONSchema?.();if(a)i.schema=a;else{let p={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,p);else{let m=i.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,m,p)}let f=e._zod.parent;f&&(i.ref||(i.ref=f),T(f,t,p),t.seen.get(f).isParent=!0)}let u=t.metadataRegistry.get(e);return u&&Object.assign(i.schema,u),t.io==="input"&&J(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&i.schema._prefault&&((n=i.schema).default??(n.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function we(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let i of e.seen.entries()){let a=e.metadataRegistry.get(i[0])?.id;if(a){let u=n.get(a);if(u&&u!==i[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,i[0])}}let o=i=>{let a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let f=e.external.registry.get(i[0])?.id,m=e.external.uri??(_=>_);if(f)return{ref:m(f)};let h=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=h,{defId:h,ref:`${m("__shared")}#/${a}/${h}`}}if(i[1]===r)return{ref:"#"};let l=`#/${a}/`,p=i[1].schema.id??`__schema${e.counter++}`;return{defId:p,ref:l+p}},s=i=>{if(i[1].schema.$ref)return;let a=i[1],{ref:u,defId:l}=o(i);a.def={...a.schema},l&&(a.defId=l);let p=a.schema;for(let f in p)delete p[f];p.$ref=u};if(e.cycles==="throw")for(let i of e.seen.entries()){let a=i[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
|
|
39
|
+
`)}h.write("payload.value = newResult;"),h.write("return payload;");let Y=h.compile();return(C,M)=>Y(m,C,M)},s,i=ze,a=!tt.jitless,l=a&&nn.value,p=t.catchall,f;e._zod.parse=(m,h)=>{f??(f=n.value);let _=m.value;return i(_)?a&&l&&h?.async===!1&&h.jitless!==!0?(s||(s=o(t.shape)),m=s(m,h),p?Ec([],_,m,h,f,e):m):r(m,h):(m.issues.push({expected:"object",code:"invalid_type",input:_,inst:e}),m)}});function yc(e,t,r,n){for(let s of e)if(s.issues.length===0)return t.value=s.value,t;let o=e.filter(s=>!he(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>G(i,n,B())))}),t)}var ft=d("$ZodUnion",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),k(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),k(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),k(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){let o=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>ot(s.source)).join("|")})$`)}});let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(r)return n(o,s);let i=!1,a=[];for(let u of t.options){let l=u._zod.run({value:o.value,issues:[]},s);if(l instanceof Promise)a.push(l),i=!0;else{if(l.issues.length===0)return l;a.push(l)}}return i?Promise.all(a).then(u=>yc(u,o,e,s)):yc(a,o,e,s)}});function _c(e,t,r,n){let o=e.filter(s=>s.issues.length===0);return o.length===1?(t.value=o[0].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>G(i,n,B())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}var ss=d("$ZodXor",(e,t)=>{ft.init(e,t),t.inclusive=!1;let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(r)return n(o,s);let i=!1,a=[];for(let u of t.options){let l=u._zod.run({value:o.value,issues:[]},s);l instanceof Promise?(a.push(l),i=!0):a.push(l)}return i?Promise.all(a).then(u=>_c(u,o,e,s)):_c(a,o,e,s)}}),is=d("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,ft.init(e,t);let r=e._zod.parse;k(e._zod,"propValues",()=>{let o={};for(let s of t.options){let i=s._zod.propValues;if(!i||Object.keys(i).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,u]of Object.entries(i)){o[a]||(o[a]=new Set);for(let l of u)o[a].add(l)}}return o});let n=Ze(()=>{let o=t.options,s=new Map;for(let i of o){let a=i._zod.propValues?.[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(let u of a){if(s.has(u))throw new Error(`Duplicate discriminator value "${String(u)}"`);s.set(u,i)}}return s});e._zod.parse=(o,s)=>{let i=o.value;if(!ze(i))return o.issues.push({code:"invalid_type",expected:"object",input:i,inst:e}),o;let a=n.value.get(i?.[t.discriminator]);return a?a._zod.run(o,s):t.unionFallback?r(o,s):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:i,path:[t.discriminator],inst:e}),o)}}),as=d("$ZodIntersection",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value,s=t.left._zod.run({value:o,issues:[]},n),i=t.right._zod.run({value:o,issues:[]},n);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([u,l])=>bc(r,u,l)):bc(r,s,i)}});function $o(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(me(e)&&me(t)){let r=Object.keys(t),n=Object.keys(e).filter(s=>r.indexOf(s)!==-1),o={...e,...t};for(let s of n){let i=$o(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<e.length;n++){let o=e[n],s=t[n],i=$o(o,s);if(!i.valid)return{valid:!1,mergeErrorPath:[n,...i.mergeErrorPath]};r.push(i.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function bc(e,t,r){let n=new Map,o;for(let a of t.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let u of a.keys)n.has(u)||n.set(u,{}),n.get(u).l=!0}else e.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let u of a.keys)n.has(u)||n.set(u,{}),n.get(u).r=!0;else e.issues.push(a);let s=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(s.length&&o&&e.issues.push({...o,keys:s}),he(e))return e;let i=$o(t.value,r.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}var lr=d("$ZodTuple",(e,t)=>{x.init(e,t);let r=t.items;e._zod.parse=(n,o)=>{let s=n.value;if(!Array.isArray(s))return n.issues.push({input:s,inst:e,expected:"tuple",code:"invalid_type"}),n;n.value=[];let i=[],a=[...r].reverse().findIndex(p=>p._zod.optin!=="optional"),u=a===-1?0:r.length-a;if(!t.rest){let p=s.length>r.length,f=s.length<u-1;if(p||f)return n.issues.push({...p?{code:"too_big",maximum:r.length,inclusive:!0}:{code:"too_small",minimum:r.length},input:s,inst:e,origin:"array"}),n}let l=-1;for(let p of r){if(l++,l>=s.length&&l>=u)continue;let f=p._zod.run({value:s[l],issues:[]},o);f instanceof Promise?i.push(f.then(m=>rr(m,n,l))):rr(f,n,l)}if(t.rest){let p=s.slice(r.length);for(let f of p){l++;let m=t.rest._zod.run({value:f,issues:[]},o);m instanceof Promise?i.push(m.then(h=>rr(h,n,l))):rr(m,n,l)}}return i.length?Promise.all(i).then(()=>n):n}});function rr(e,t,r){e.issues.length&&t.issues.push(...Q(r,e.issues)),t.value[r]=e.value}var cs=d("$ZodRecord",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!me(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;let s=[],i=t.keyType._zod.values;if(i){r.value={};let a=new Set;for(let l of i)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){a.add(typeof l=="number"?l.toString():l);let p=t.valueType._zod.run({value:o[l],issues:[]},n);p instanceof Promise?s.push(p.then(f=>{f.issues.length&&r.issues.push(...Q(l,f.issues)),r.value[l]=f.value})):(p.issues.length&&r.issues.push(...Q(l,p.issues)),r.value[l]=p.value)}let u;for(let l in o)a.has(l)||(u=u??[],u.push(l));u&&u.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:u})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__")continue;let u=t.keyType._zod.run({value:a,issues:[]},n);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&Xt.test(a)&&u.issues.length){let f=t.keyType._zod.run({value:Number(a),issues:[]},n);if(f instanceof Promise)throw new Error("Async schemas not supported in object keys currently");f.issues.length===0&&(u=f)}if(u.issues.length){t.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:u.issues.map(f=>G(f,n,B())),input:a,path:[a],inst:e});continue}let p=t.valueType._zod.run({value:o[a],issues:[]},n);p instanceof Promise?s.push(p.then(f=>{f.issues.length&&r.issues.push(...Q(a,f.issues)),r.value[u.value]=f.value})):(p.issues.length&&r.issues.push(...Q(a,p.issues)),r.value[u.value]=p.value)}}return s.length?Promise.all(s).then(()=>r):r}}),us=d("$ZodMap",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),r;let s=[];r.value=new Map;for(let[i,a]of o){let u=t.keyType._zod.run({value:i,issues:[]},n),l=t.valueType._zod.run({value:a,issues:[]},n);u instanceof Promise||l instanceof Promise?s.push(Promise.all([u,l]).then(([p,f])=>{wc(p,f,r,i,o,e,n)})):wc(u,l,r,i,o,e,n)}return s.length?Promise.all(s).then(()=>r):r}});function wc(e,t,r,n,o,s,i){e.issues.length&&(st.has(typeof n)?r.issues.push(...Q(n,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:s,issues:e.issues.map(a=>G(a,i,B()))})),t.issues.length&&(st.has(typeof n)?r.issues.push(...Q(n,t.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:s,key:n,issues:t.issues.map(a=>G(a,i,B()))})),r.value.set(e.value,t.value)}var ls=d("$ZodSet",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),r;let s=[];r.value=new Set;for(let i of o){let a=t.valueType._zod.run({value:i,issues:[]},n);a instanceof Promise?s.push(a.then(u=>$c(u,r))):$c(a,r)}return s.length?Promise.all(s).then(()=>r):r}});function $c(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var ps=d("$ZodEnum",(e,t)=>{x.init(e,t);let r=nt(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>st.has(typeof o)).map(o=>typeof o=="string"?re(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{let i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:r,input:i,inst:e}),o}}),fs=d("$ZodLiteral",(e,t)=>{if(x.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?re(n):n?re(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{let s=n.value;return r.has(s)||n.issues.push({code:"invalid_value",values:t.values,input:s,inst:e}),n}}),ds=d("$ZodFile",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return o instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:o,inst:e}),r}}),ms=d("$ZodTransform",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Le(e.constructor.name);let o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r));if(o instanceof Promise)throw new se;return r.value=o,r}});function xc(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var pr=d("$ZodOptional",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.optout="optional",k(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),k(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${ot(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>xc(s,r.value)):xc(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),hs=d("$ZodExactOptional",(e,t)=>{pr.init(e,t),k(e._zod,"values",()=>t.innerType._zod.values),k(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),gs=d("$ZodNullable",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.innerType._zod.optin),k(e._zod,"optout",()=>t.innerType._zod.optout),k(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${ot(r.source)}|null)$`):void 0}),k(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),ys=d("$ZodDefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>kc(s,t)):kc(o,t)}});function kc(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var _s=d("$ZodPrefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),bs=d("$ZodNonOptional",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>{let r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>Sc(s,e)):Sc(o,e)}});function Sc(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var ws=d("$ZodSuccess",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Le("ZodSuccess");let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>(r.value=s.issues.length===0,r)):(r.value=o.issues.length===0,r)}}),$s=d("$ZodCatch",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.innerType._zod.optin),k(e._zod,"optout",()=>t.innerType._zod.optout),k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>(r.value=s.value,s.issues.length&&(r.value=t.catchValue({...r,error:{issues:s.issues.map(i=>G(i,n,B()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(s=>G(s,n,B()))},input:r.value}),r.issues=[]),r)}}),xs=d("$ZodNaN",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:e,expected:"nan",code:"invalid_type"}),r)}),ks=d("$ZodPipe",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>t.in._zod.values),k(e._zod,"optin",()=>t.in._zod.optin),k(e._zod,"optout",()=>t.out._zod.optout),k(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){let s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>nr(i,t.in,n)):nr(s,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(s=>nr(s,t.out,n)):nr(o,t.out,n)}});function nr(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var dt=d("$ZodCodec",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>t.in._zod.values),k(e._zod,"optin",()=>t.in._zod.optin),k(e._zod,"optout",()=>t.out._zod.optout),k(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let s=t.in._zod.run(r,n);return s instanceof Promise?s.then(i=>or(i,t,n)):or(s,t,n)}else{let s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>or(i,t,n)):or(s,t,n)}}});function or(e,t,r){if(e.issues.length)return e.aborted=!0,e;if((r.direction||"forward")==="forward"){let o=t.transform(e.value,e);return o instanceof Promise?o.then(s=>sr(e,s,t.out,r)):sr(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(s=>sr(e,s,t.in,r)):sr(e,o,t.in,r)}}function sr(e,t,r,n){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:t,issues:e.issues},n)}var Ss=d("$ZodReadonly",(e,t)=>{x.init(e,t),k(e._zod,"propValues",()=>t.innerType._zod.propValues),k(e._zod,"values",()=>t.innerType._zod.values),k(e._zod,"optin",()=>t.innerType?._zod?.optin),k(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(vc):vc(o)}});function vc(e){return e.value=Object.freeze(e.value),e}var vs=d("$ZodTemplateLiteral",(e,t)=>{x.init(e,t);let r=[];for(let n of t.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let o=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let s=o.startsWith("^")?1:0,i=o.endsWith("$")?o.length-1:o.length;r.push(o.slice(s,i))}else if(n===null||on.has(typeof n))r.push(re(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);e._zod.pattern=new RegExp(`^${r.join("")}$`),e._zod.parse=(n,o)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:e,expected:"string",code:"invalid_type"}),n):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),n)}),zs=d("$ZodFunction",(e,t)=>(x.init(e,t),e._def=t,e._zod.def=t,e.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let o=e._def.input?ge(e._def.input,n):n,s=Reflect.apply(r,this,o);return e._def.output?ge(e._def.output,s):s}},e.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let o=e._def.input?await ye(e._def.input,n):n,s=await Reflect.apply(r,this,o);return e._def.output?await ye(e._def.output,s):s}},e._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:e}),r):(e._def.output&&e._def.output._zod.def.type==="promise"?r.value=e.implementAsync(r.value):r.value=e.implement(r.value),r),e.input=(...r)=>{let n=e.constructor;return Array.isArray(r[0])?new n({type:"function",input:new lr({type:"tuple",items:r[0],rest:r[1]}),output:e._def.output}):new n({type:"function",input:r[0],output:e._def.output})},e.output=r=>{let n=e.constructor;return new n({type:"function",input:e._def.input,output:r})},e)),Ts=d("$ZodPromise",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>Promise.resolve(r.value).then(o=>t.innerType._zod.run({value:o,issues:[]},n))}),Is=d("$ZodLazy",(e,t)=>{x.init(e,t),k(e._zod,"innerType",()=>t.getter()),k(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),k(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),k(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),k(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,n)=>e._zod.innerType._zod.run(r,n)}),Ps=d("$ZodCustom",(e,t)=>{E.init(e,t),x.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{let n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(s=>zc(s,r,n,e));zc(o,r,n,e)}});function zc(e,t,r,n){if(!e){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(De(o))}}var mt={};ve(mt,{default:()=>vd});var vd={};var Ac,Es=Symbol("ZodOutput"),As=Symbol("ZodInput"),fr=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){let n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){let r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){let r=t._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}};function dr(){return new fr}(Ac=globalThis).__zod_globalRegistry??(Ac.__zod_globalRegistry=dr());var ae=globalThis.__zod_globalRegistry;function Rs(e,t){return new e({type:"string",...g(t)})}function Cs(e,t){return new e({type:"string",coerce:!0,...g(t)})}function Ns(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...g(t)})}function Os(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...g(t)})}function Ls(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...g(t)})}function Zs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...g(t)})}function js(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...g(t)})}function Ds(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...g(t)})}function mr(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...g(t)})}function Ms(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...g(t)})}function Bs(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...g(t)})}function Us(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...g(t)})}function Fs(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...g(t)})}function Hs(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...g(t)})}function qs(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...g(t)})}function Js(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...g(t)})}function Ks(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...g(t)})}function Ys(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...g(t)})}function Gs(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...g(t)})}function Ws(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...g(t)})}function Vs(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...g(t)})}function Qs(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...g(t)})}function Xs(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...g(t)})}function ei(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...g(t)})}function ti(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...g(t)})}var ri={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function ni(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...g(t)})}function oi(e,t){return new e({type:"string",format:"date",check:"string_format",...g(t)})}function si(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...g(t)})}function ii(e,t){return new e({type:"string",format:"duration",check:"string_format",...g(t)})}function ai(e,t){return new e({type:"number",checks:[],...g(t)})}function ci(e,t){return new e({type:"number",coerce:!0,checks:[],...g(t)})}function ui(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...g(t)})}function li(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...g(t)})}function pi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...g(t)})}function fi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...g(t)})}function di(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...g(t)})}function mi(e,t){return new e({type:"boolean",...g(t)})}function hi(e,t){return new e({type:"boolean",coerce:!0,...g(t)})}function gi(e,t){return new e({type:"bigint",...g(t)})}function yi(e,t){return new e({type:"bigint",coerce:!0,...g(t)})}function _i(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...g(t)})}function bi(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...g(t)})}function wi(e,t){return new e({type:"symbol",...g(t)})}function $i(e,t){return new e({type:"undefined",...g(t)})}function xi(e,t){return new e({type:"null",...g(t)})}function ki(e){return new e({type:"any"})}function Si(e){return new e({type:"unknown"})}function vi(e,t){return new e({type:"never",...g(t)})}function zi(e,t){return new e({type:"void",...g(t)})}function Ti(e,t){return new e({type:"date",...g(t)})}function Ii(e,t){return new e({type:"date",coerce:!0,...g(t)})}function Pi(e,t){return new e({type:"nan",...g(t)})}function hr(e,t){return new er({check:"less_than",...g(t),value:e,inclusive:!1})}function ht(e,t){return new er({check:"less_than",...g(t),value:e,inclusive:!0})}function gr(e,t){return new tr({check:"greater_than",...g(t),value:e,inclusive:!1})}function gt(e,t){return new tr({check:"greater_than",...g(t),value:e,inclusive:!0})}function Ei(e){return gr(0,e)}function Ai(e){return hr(0,e)}function Ri(e){return ht(0,e)}function Ci(e){return gt(0,e)}function Ni(e,t){return new to({check:"multiple_of",...g(t),value:e})}function Oi(e,t){return new oo({check:"max_size",...g(t),maximum:e})}function Li(e,t){return new so({check:"min_size",...g(t),minimum:e})}function Zi(e,t){return new io({check:"size_equals",...g(t),size:e})}function ji(e,t){return new ao({check:"max_length",...g(t),maximum:e})}function yt(e,t){return new co({check:"min_length",...g(t),minimum:e})}function Di(e,t){return new uo({check:"length_equals",...g(t),length:e})}function _t(e,t){return new lo({check:"string_format",format:"regex",...g(t),pattern:e})}function Mi(e){return new po({check:"string_format",format:"lowercase",...g(e)})}function Bi(e){return new fo({check:"string_format",format:"uppercase",...g(e)})}function Ui(e,t){return new mo({check:"string_format",format:"includes",...g(t),includes:e})}function Fi(e,t){return new ho({check:"string_format",format:"starts_with",...g(t),prefix:e})}function Hi(e,t){return new go({check:"string_format",format:"ends_with",...g(t),suffix:e})}function qi(e,t,r){return new yo({check:"property",property:e,schema:t,...g(r)})}function Ji(e,t){return new _o({check:"mime_type",mime:e,...g(t)})}function _e(e){return new bo({check:"overwrite",tx:e})}function Ki(e){return _e(t=>t.normalize(e))}function Yi(){return _e(e=>e.trim())}function Gi(){return _e(e=>e.toLowerCase())}function Wi(){return _e(e=>e.toUpperCase())}function Td(){return _e(e=>rn(e))}function Id(e,t,r){return new e({type:"array",element:t,...g(r)})}function Pd(e,t,r){return new e({type:"union",options:t,...g(r)})}function Ed(e,t,r){return new e({type:"union",options:t,inclusive:!1,...g(r)})}function Ad(e,t,r,n){return new e({type:"union",options:r,discriminator:t,...g(n)})}function Rd(e,t,r){return new e({type:"intersection",left:t,right:r})}function Cd(e,t,r,n){let o=r instanceof x,s=o?n:r,i=o?r:null;return new e({type:"tuple",items:t,rest:i,...g(s)})}function Nd(e,t,r,n){return new e({type:"record",keyType:t,valueType:r,...g(n)})}function Od(e,t,r,n){return new e({type:"map",keyType:t,valueType:r,...g(n)})}function Ld(e,t,r){return new e({type:"set",valueType:t,...g(r)})}function Zd(e,t,r){let n=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new e({type:"enum",entries:n,...g(r)})}function jd(e,t,r){return new e({type:"enum",entries:t,...g(r)})}function Dd(e,t,r){return new e({type:"literal",values:Array.isArray(t)?t:[t],...g(r)})}function Vi(e,t){return new e({type:"file",...g(t)})}function Md(e,t){return new e({type:"transform",transform:t})}function Bd(e,t){return new e({type:"optional",innerType:t})}function Ud(e,t){return new e({type:"nullable",innerType:t})}function Fd(e,t,r){return new e({type:"default",innerType:t,get defaultValue(){return typeof r=="function"?r():je(r)}})}function Hd(e,t,r){return new e({type:"nonoptional",innerType:t,...g(r)})}function qd(e,t){return new e({type:"success",innerType:t})}function Jd(e,t,r){return new e({type:"catch",innerType:t,catchValue:typeof r=="function"?r:()=>r})}function Kd(e,t,r){return new e({type:"pipe",in:t,out:r})}function Yd(e,t){return new e({type:"readonly",innerType:t})}function Gd(e,t,r){return new e({type:"template_literal",parts:t,...g(r)})}function Wd(e,t){return new e({type:"lazy",getter:t})}function Vd(e,t){return new e({type:"promise",innerType:t})}function Qi(e,t,r){let n=g(r);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function Xi(e,t,r){return new e({type:"custom",check:"custom",fn:t,...g(r)})}function ea(e){let t=Rc(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(De(n,r.value,t._zod.def));else{let o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),r.issues.push(De(o))}},e(r.value,r)));return t}function Rc(e,t){let r=new E({check:"custom",...g(t)});return r._zod.check=e,r}function ta(e){let t=new E({check:"describe"});return t._zod.onattach=[r=>{let n=ae.get(r)??{};ae.add(r,{...n,description:e})}],t._zod.check=()=>{},t}function ra(e){let t=new E({check:"meta"});return t._zod.onattach=[r=>{let n=ae.get(r)??{};ae.add(r,{...n,...e})}],t._zod.check=()=>{},t}function na(e,t){let r=g(t),n=r.truthy??["true","1","yes","on","y","enabled"],o=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(h=>typeof h=="string"?h.toLowerCase():h),o=o.map(h=>typeof h=="string"?h.toLowerCase():h));let s=new Set(n),i=new Set(o),a=e.Codec??dt,u=e.Boolean??pt,l=e.String??Be,p=new l({type:"string",error:r.error}),f=new u({type:"boolean",error:r.error}),m=new a({type:"pipe",in:p,out:f,transform:((h,_)=>{let y=h;return r.case!=="sensitive"&&(y=y.toLowerCase()),s.has(y)?!0:i.has(y)?!1:(_.issues.push({code:"invalid_value",expected:"stringbool",values:[...s,...i],input:_.value,inst:m,continue:!1}),{})}),reverseTransform:((h,_)=>h===!0?n[0]||"true":o[0]||"false"),error:r.error});return m}function Ue(e,t,r,n={}){let o=g(n),s={...g(n),check:"string_format",type:"string",format:t,fn:typeof r=="function"?r:a=>r.test(a),...o};return r instanceof RegExp&&(s.pattern=r),new e(s)}function be(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??ae,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function T(e,t,r={path:[],schemaPath:[]}){var n;let o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,r.schemaPath.includes(e)&&(s.cycle=r.path),s.schema;let i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i);let a=e._zod.toJSONSchema?.();if(a)i.schema=a;else{let p={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,p);else{let m=i.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,m,p)}let f=e._zod.parent;f&&(i.ref||(i.ref=f),T(f,t,p),t.seen.get(f).isParent=!0)}let u=t.metadataRegistry.get(e);return u&&Object.assign(i.schema,u),t.io==="input"&&J(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&i.schema._prefault&&((n=i.schema).default??(n.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function we(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let i of e.seen.entries()){let a=e.metadataRegistry.get(i[0])?.id;if(a){let u=n.get(a);if(u&&u!==i[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,i[0])}}let o=i=>{let a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let f=e.external.registry.get(i[0])?.id,m=e.external.uri??(_=>_);if(f)return{ref:m(f)};let h=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=h,{defId:h,ref:`${m("__shared")}#/${a}/${h}`}}if(i[1]===r)return{ref:"#"};let l=`#/${a}/`,p=i[1].schema.id??`__schema${e.counter++}`;return{defId:p,ref:l+p}},s=i=>{if(i[1].schema.$ref)return;let a=i[1],{ref:u,defId:l}=o(i);a.def={...a.schema},l&&(a.defId=l);let p=a.schema;for(let f in p)delete p[f];p.$ref=u};if(e.cycles==="throw")for(let i of e.seen.entries()){let a=i[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
|
|
40
40
|
|
|
41
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let i of e.seen.entries()){let a=i[1];if(t===i[0]){s(i);continue}if(e.external){let l=e.external.registry.get(i[0])?.id;if(t!==i[0]&&l){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(a.cycle){s(i);continue}if(a.count>1&&e.reused==="ref"){s(i);continue}}}function $e(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=i=>{let a=e.seen.get(i);if(a.ref===null)return;let u=a.def??a.schema,l={...u},p=a.ref;if(a.ref=null,p){n(p);let m=e.seen.get(p),h=m.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,l),i._zod.parent===p)for(let y in u)y==="$ref"||y==="allOf"||y in l||delete u[y];if(h.$ref&&m.def)for(let y in u)y==="$ref"||y==="allOf"||y in m.def&&JSON.stringify(u[y])===JSON.stringify(m.def[y])&&delete u[y]}let f=i._zod.parent;if(f&&f!==p){n(f);let m=e.seen.get(f);if(m?.schema.$ref&&(u.$ref=m.schema.$ref,m.def))for(let h in u)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(u[h])===JSON.stringify(m.def[h])&&delete u[h]}e.override({zodSchema:i,jsonSchema:u,path:a.path??[]})};for(let i of[...e.seen.entries()].reverse())n(i[0]);let o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let i=e.external.registry.get(t)?.id;if(!i)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(i)}Object.assign(o,r.def??r.schema);let s=e.external?.defs??{};for(let i of e.seen.entries()){let a=i[1];a.def&&a.defId&&(s[a.defId]=a.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let i=JSON.parse(JSON.stringify(o));return Object.defineProperty(i,"~standard",{value:{...t["~standard"],jsonSchema:{input:na(t,"input",e.processors),output:na(t,"output",e.processors)}},enumerable:!1,writable:!1}),i}catch{throw new Error("Error converting schema to JSON.")}}function J(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return J(n.element,r);if(n.type==="set")return J(n.valueType,r);if(n.type==="lazy")return J(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return J(n.innerType,r);if(n.type==="intersection")return J(n.left,r)||J(n.right,r);if(n.type==="record"||n.type==="map")return J(n.keyType,r)||J(n.valueType,r);if(n.type==="pipe")return J(n.in,r)||J(n.out,r);if(n.type==="object"){for(let o in n.shape)if(J(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(J(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(J(o,r))return!0;return!!(n.rest&&J(n.rest,r))}return!1}var Qd=(e,t={})=>r=>{let n=be({...r,processors:t});return T(e,n),we(n,e),$e(n,e)},na=(e,t,r={})=>n=>{let{libraryOptions:o,target:s}=n??{},i=be({...o??{},target:s,io:t,processors:r});return T(e,i),we(i,e),$e(i,e)};var Xd={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},em=(e,t,r,n)=>{let o=r;o.type="string";let{minimum:s,maximum:i,format:a,patterns:u,contentEncoding:l}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),a&&(o.format=Xd[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),l&&(o.contentEncoding=l),u&&u.size>0){let p=[...u];p.length===1?o.pattern=p[0].source:p.length>1&&(o.allOf=[...p.map(f=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))])}},tm=(e,t,r,n)=>{let o=r,{minimum:s,maximum:i,format:a,multipleOf:u,exclusiveMaximum:l,exclusiveMinimum:p}=e._zod.bag;typeof a=="string"&&a.includes("int")?o.type="integer":o.type="number",typeof p=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=p,o.exclusiveMinimum=!0):o.exclusiveMinimum=p),typeof s=="number"&&(o.minimum=s,typeof p=="number"&&t.target!=="draft-04"&&(p>=s?delete o.minimum:delete o.exclusiveMinimum)),typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=l,o.exclusiveMaximum=!0):o.exclusiveMaximum=l),typeof i=="number"&&(o.maximum=i,typeof l=="number"&&t.target!=="draft-04"&&(l<=i?delete o.maximum:delete o.exclusiveMaximum)),typeof u=="number"&&(o.multipleOf=u)},rm=(e,t,r,n)=>{r.type="boolean"},nm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},om=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},sm=(e,t,r,n)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},im=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},am=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},cm=(e,t,r,n)=>{r.not={}},um=(e,t,r,n)=>{},lm=(e,t,r,n)=>{},pm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},fm=(e,t,r,n)=>{let o=e._zod.def,s=nt(o.entries);s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),r.enum=s},dm=(e,t,r,n)=>{let o=e._zod.def,s=[];for(let i of o.values)if(i===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof i=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(i))}else s.push(i);if(s.length!==0)if(s.length===1){let i=s[0];r.type=i===null?"null":typeof i,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[i]:r.const=i}else s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),s.every(i=>typeof i=="boolean")&&(r.type="boolean"),s.every(i=>i===null)&&(r.type="null"),r.enum=s},mm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},hm=(e,t,r,n)=>{let o=r,s=e._zod.pattern;if(!s)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=s.source},gm=(e,t,r,n)=>{let o=r,s={type:"string",format:"binary",contentEncoding:"binary"},{minimum:i,maximum:a,mime:u}=e._zod.bag;i!==void 0&&(s.minLength=i),a!==void 0&&(s.maxLength=a),u?u.length===1?(s.contentMediaType=u[0],Object.assign(o,s)):(Object.assign(o,s),o.anyOf=u.map(l=>({contentMediaType:l}))):Object.assign(o,s)},ym=(e,t,r,n)=>{r.type="boolean"},_m=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},bm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},wm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},$m=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},xm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},km=(e,t,r,n)=>{let o=r,s=e._zod.def,{minimum:i,maximum:a}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=T(s.element,t,{...n,path:[...n.path,"items"]})},Sm=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="object",o.properties={};let i=s.shape;for(let l in i)o.properties[l]=T(i[l],t,{...n,path:[...n.path,"properties",l]});let a=new Set(Object.keys(i)),u=new Set([...a].filter(l=>{let p=s.shape[l]._zod;return t.io==="input"?p.optin===void 0:p.optout===void 0}));u.size>0&&(o.required=Array.from(u)),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=T(s.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},vm=(e,t,r,n)=>{let o=e._zod.def,s=o.inclusive===!1,i=o.options.map((a,u)=>T(a,t,{...n,path:[...n.path,s?"oneOf":"anyOf",u]}));s?r.oneOf=i:r.anyOf=i},zm=(e,t,r,n)=>{let o=e._zod.def,s=T(o.left,t,{...n,path:[...n.path,"allOf",0]}),i=T(o.right,t,{...n,path:[...n.path,"allOf",1]}),a=l=>"allOf"in l&&Object.keys(l).length===1,u=[...a(s)?s.allOf:[s],...a(i)?i.allOf:[i]];r.allOf=u},Tm=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="array";let i=t.target==="draft-2020-12"?"prefixItems":"items",a=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",u=s.items.map((m,h)=>T(m,t,{...n,path:[...n.path,i,h]})),l=s.rest?T(s.rest,t,{...n,path:[...n.path,a,...t.target==="openapi-3.0"?[s.items.length]:[]]}):null;t.target==="draft-2020-12"?(o.prefixItems=u,l&&(o.items=l)):t.target==="openapi-3.0"?(o.items={anyOf:u},l&&o.items.anyOf.push(l),o.minItems=u.length,l||(o.maxItems=u.length)):(o.items=u,l&&(o.additionalItems=l));let{minimum:p,maximum:f}=e._zod.bag;typeof p=="number"&&(o.minItems=p),typeof f=="number"&&(o.maxItems=f)},Im=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="object";let i=s.keyType,u=i._zod.bag?.patterns;if(s.mode==="loose"&&u&&u.size>0){let p=T(s.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let f of u)o.patternProperties[f.source]=p}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=T(s.keyType,t,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=T(s.valueType,t,{...n,path:[...n.path,"additionalProperties"]});let l=i._zod.values;if(l){let p=[...l].filter(f=>typeof f=="string"||typeof f=="number");p.length>0&&(o.required=p)}},Pm=(e,t,r,n)=>{let o=e._zod.def,s=T(o.innerType,t,n),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},Em=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Am=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Rm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Cm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=i},Nm=(e,t,r,n)=>{let o=e._zod.def,s=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;T(s,t,n);let i=t.seen.get(e);i.ref=s},Om=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,r.readOnly=!0},Lm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Zm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},jm=(e,t,r,n)=>{let o=e._zod.innerType;T(o,t,n);let s=t.seen.get(e);s.ref=o},yr={string:em,number:tm,boolean:rm,bigint:nm,symbol:om,null:sm,undefined:im,void:am,never:cm,any:um,unknown:lm,date:pm,enum:fm,literal:dm,nan:mm,template_literal:hm,file:gm,success:ym,custom:_m,function:bm,transform:wm,map:$m,set:xm,array:km,object:Sm,union:vm,intersection:zm,tuple:Tm,record:Im,nullable:Pm,nonoptional:Em,default:Am,prefault:Rm,catch:Cm,pipe:Nm,readonly:Om,promise:Lm,optional:Zm,lazy:jm};function _r(e,t){if("_idmap"in e){let n=e,o=be({...t,processors:yr}),s={};for(let u of n._idmap.entries()){let[l,p]=u;T(p,o)}let i={},a={registry:n,uri:t?.uri,defs:s};o.external=a;for(let u of n._idmap.entries()){let[l,p]=u;we(o,p),i[l]=$e(o,p)}if(Object.keys(s).length>0){let u=o.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[u]:s}}return{schemas:i}}let r=be({...t,processors:yr});return T(e,r),we(r,e),$e(r,e)}var br=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(t){this.ctx.counter=t}get seen(){return this.ctx.seen}constructor(t){let r=t?.target??"draft-2020-12";r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),this.ctx=be({processors:yr,target:r,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,r={path:[],schemaPath:[]}){return T(t,this.ctx,r)}emit(t,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),we(this.ctx,t);let n=$e(this.ctx,t),{"~standard":o,...s}=n;return s}};var Cc={};var S=d("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");x.init(e,t),e.def=t,e.type=t.type,e.parse=(r,n)=>ge(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Te(e,r,n),e.parseAsync=async(r,n)=>ye(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>Ie(e,r,n),e.check=(...r)=>e.clone({...t,checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]},{parent:!0}),e.with=e.check,e.clone=(r,n)=>q(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.apply=r=>r(e)}),He=d("ZodMiniString",(e,t)=>{Be.init(e,t),S.init(e,t)});function b(e){return As(He,e)}var A=d("ZodMiniStringFormat",(e,t)=>{P.init(e,t),He.init(e,t)}),Nc=d("ZodMiniEmail",(e,t)=>{ko.init(e,t),A.init(e,t)});function Mm(e){return Cs(Nc,e)}var Oc=d("ZodMiniGUID",(e,t)=>{$o.init(e,t),A.init(e,t)});function Bm(e){return Ns(Oc,e)}var bt=d("ZodMiniUUID",(e,t)=>{xo.init(e,t),A.init(e,t)});function Um(e){return Os(bt,e)}function Fm(e){return Ls(bt,e)}function Hm(e){return Zs(bt,e)}function qm(e){return js(bt,e)}var oa=d("ZodMiniURL",(e,t)=>{So.init(e,t),A.init(e,t)});function Jm(e){return mr(oa,e)}function Km(e){return mr(oa,{protocol:/^https?$/,hostname:re.domain,...g(e)})}var Lc=d("ZodMiniEmoji",(e,t)=>{vo.init(e,t),A.init(e,t)});function Ym(e){return Ds(Lc,e)}var Zc=d("ZodMiniNanoID",(e,t)=>{zo.init(e,t),A.init(e,t)});function Gm(e){return Ms(Zc,e)}var jc=d("ZodMiniCUID",(e,t)=>{To.init(e,t),A.init(e,t)});function Wm(e){return Bs(jc,e)}var Dc=d("ZodMiniCUID2",(e,t)=>{Io.init(e,t),A.init(e,t)});function Vm(e){return Us(Dc,e)}var Mc=d("ZodMiniULID",(e,t)=>{Po.init(e,t),A.init(e,t)});function Qm(e){return Fs(Mc,e)}var Bc=d("ZodMiniXID",(e,t)=>{Eo.init(e,t),A.init(e,t)});function Xm(e){return Hs(Bc,e)}var Uc=d("ZodMiniKSUID",(e,t)=>{Ao.init(e,t),A.init(e,t)});function eh(e){return qs(Uc,e)}var Fc=d("ZodMiniIPv4",(e,t)=>{Lo.init(e,t),A.init(e,t)});function th(e){return Js(Fc,e)}var Hc=d("ZodMiniIPv6",(e,t)=>{Zo.init(e,t),A.init(e,t)});function rh(e){return Ks(Hc,e)}var qc=d("ZodMiniCIDRv4",(e,t)=>{Do.init(e,t),A.init(e,t)});function nh(e){return Gs(qc,e)}var Jc=d("ZodMiniCIDRv6",(e,t)=>{Mo.init(e,t),A.init(e,t)});function oh(e){return Ws(Jc,e)}var Kc=d("ZodMiniMAC",(e,t)=>{jo.init(e,t),A.init(e,t)});function sh(e){return Ys(Kc,e)}var Yc=d("ZodMiniBase64",(e,t)=>{Uo.init(e,t),A.init(e,t)});function ih(e){return Vs(Yc,e)}var Gc=d("ZodMiniBase64URL",(e,t)=>{Fo.init(e,t),A.init(e,t)});function ah(e){return Qs(Gc,e)}var Wc=d("ZodMiniE164",(e,t)=>{Ho.init(e,t),A.init(e,t)});function ch(e){return Xs(Wc,e)}var Vc=d("ZodMiniJWT",(e,t)=>{qo.init(e,t),A.init(e,t)});function uh(e){return ei(Vc,e)}var wt=d("ZodMiniCustomStringFormat",(e,t)=>{Jo.init(e,t),A.init(e,t)});function lh(e,t,r={}){return Ue(wt,e,t,r)}function ph(e){return Ue(wt,"hostname",re.hostname,e)}function fh(e){return Ue(wt,"hex",re.hex,e)}function dh(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,o=re[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return Ue(wt,n,o,t)}var $t=d("ZodMiniNumber",(e,t)=>{ar.init(e,t),S.init(e,t)});function xe(e){return ii($t,e)}var qe=d("ZodMiniNumberFormat",(e,t)=>{Ko.init(e,t),$t.init(e,t)});function mh(e){return ci(qe,e)}function hh(e){return ui(qe,e)}function gh(e){return li(qe,e)}function yh(e){return pi(qe,e)}function _h(e){return fi(qe,e)}var xt=d("ZodMiniBoolean",(e,t)=>{pt.init(e,t),S.init(e,t)});function Je(e){return di(xt,e)}var kt=d("ZodMiniBigInt",(e,t)=>{cr.init(e,t),S.init(e,t)});function bh(e){return hi(kt,e)}var sa=d("ZodMiniBigIntFormat",(e,t)=>{Yo.init(e,t),kt.init(e,t)});function wh(e){return yi(sa,e)}function $h(e){return _i(sa,e)}var Qc=d("ZodMiniSymbol",(e,t)=>{Go.init(e,t),S.init(e,t)});function xh(e){return bi(Qc,e)}var Xc=d("ZodMiniUndefined",(e,t)=>{Wo.init(e,t),S.init(e,t)});function kh(e){return wi(Xc,e)}var eu=d("ZodMiniNull",(e,t)=>{Vo.init(e,t),S.init(e,t)});function tu(e){return $i(eu,e)}var ru=d("ZodMiniAny",(e,t)=>{Qo.init(e,t),S.init(e,t)});function Sh(){return xi(ru)}var nu=d("ZodMiniUnknown",(e,t)=>{Xo.init(e,t),S.init(e,t)});function wr(){return ki(nu)}var ou=d("ZodMiniNever",(e,t)=>{es.init(e,t),S.init(e,t)});function su(e){return Si(ou,e)}var iu=d("ZodMiniVoid",(e,t)=>{ts.init(e,t),S.init(e,t)});function vh(e){return vi(iu,e)}var $r=d("ZodMiniDate",(e,t)=>{rs.init(e,t),S.init(e,t)});function zh(e){return zi($r,e)}var au=d("ZodMiniArray",(e,t)=>{ns.init(e,t),S.init(e,t)});function K(e,t){return new au({type:"array",element:e,...g(t)})}function Th(e){let t=e._zod.def.shape;return yu(Object.keys(t))}var xr=d("ZodMiniObject",(e,t)=>{ur.init(e,t),S.init(e,t),k(e,"shape",()=>t.shape)});function I(e,t){let r={type:"object",shape:e??{},...g(t)};return new xr(r)}function Ih(e,t){return new xr({type:"object",shape:e,catchall:su(),...g(t)})}function Ph(e,t){return new xr({type:"object",shape:e,catchall:wr(),...g(t)})}function ke(e,t){return Kt(e,t)}function Eh(e,t){return ln(e,t)}function Ah(e,t){return Kt(e,t)}function Rh(e,t){return cn(e,t)}function Ch(e,t){return un(e,t)}function Nh(e,t){return pn(ca,e,t)}function Oh(e,t){return fn(ua,e,t)}function Lh(e,t){return e.clone({...e._zod.def,catchall:t})}var ia=d("ZodMiniUnion",(e,t)=>{ft.init(e,t),S.init(e,t)});function cu(e,t){return new ia({type:"union",options:e,...g(t)})}var uu=d("ZodMiniXor",(e,t)=>{ia.init(e,t),os.init(e,t)});function Zh(e,t){return new uu({type:"union",options:e,inclusive:!1,...g(t)})}var lu=d("ZodMiniDiscriminatedUnion",(e,t)=>{ss.init(e,t),S.init(e,t)});function jh(e,t,r){return new lu({type:"union",options:t,discriminator:e,...g(r)})}var pu=d("ZodMiniIntersection",(e,t)=>{is.init(e,t),S.init(e,t)});function Dh(e,t){return new pu({type:"intersection",left:e,right:t})}var fu=d("ZodMiniTuple",(e,t)=>{lr.init(e,t),S.init(e,t)});function du(e,t,r){let n=t instanceof x,o=n?r:t,s=n?t:null;return new fu({type:"tuple",items:e,rest:s,...g(o)})}var kr=d("ZodMiniRecord",(e,t)=>{as.init(e,t),S.init(e,t)});function mu(e,t,r){return new kr({type:"record",keyType:e,valueType:t,...g(r)})}function Mh(e,t,r){let n=q(e);return n._zod.values=void 0,new kr({type:"record",keyType:n,valueType:t,...g(r)})}function Bh(e,t,r){return new kr({type:"record",keyType:e,valueType:t,mode:"loose",...g(r)})}var hu=d("ZodMiniMap",(e,t)=>{cs.init(e,t),S.init(e,t)});function Uh(e,t,r){return new hu({type:"map",keyType:e,valueType:t,...g(r)})}var gu=d("ZodMiniSet",(e,t)=>{us.init(e,t),S.init(e,t)});function Fh(e,t){return new gu({type:"set",valueType:e,...g(t)})}var aa=d("ZodMiniEnum",(e,t)=>{ls.init(e,t),S.init(e,t),e.options=Object.values(t.entries)});function yu(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new aa({type:"enum",entries:r,...g(t)})}function Hh(e,t){return new aa({type:"enum",entries:e,...g(t)})}var _u=d("ZodMiniLiteral",(e,t)=>{ps.init(e,t),S.init(e,t)});function qh(e,t){return new _u({type:"literal",values:Array.isArray(e)?e:[e],...g(t)})}var bu=d("ZodMiniFile",(e,t)=>{fs.init(e,t),S.init(e,t)});function Jh(e){return Wi(bu,e)}var wu=d("ZodMiniTransform",(e,t)=>{ds.init(e,t),S.init(e,t)});function Kh(e){return new wu({type:"transform",transform:e})}var ca=d("ZodMiniOptional",(e,t)=>{pr.init(e,t),S.init(e,t)});function w(e){return new ca({type:"optional",innerType:e})}var $u=d("ZodMiniExactOptional",(e,t)=>{ms.init(e,t),S.init(e,t)});function Yh(e){return new $u({type:"optional",innerType:e})}var xu=d("ZodMiniNullable",(e,t)=>{hs.init(e,t),S.init(e,t)});function Sr(e){return new xu({type:"nullable",innerType:e})}function Gh(e){return w(Sr(e))}var ku=d("ZodMiniDefault",(e,t)=>{gs.init(e,t),S.init(e,t)});function Wh(e,t){return new ku({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():je(t)}})}var Su=d("ZodMiniPrefault",(e,t)=>{ys.init(e,t),S.init(e,t)});function Vh(e,t){return new Su({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():je(t)}})}var ua=d("ZodMiniNonOptional",(e,t)=>{_s.init(e,t),S.init(e,t)});function Qh(e,t){return new ua({type:"nonoptional",innerType:e,...g(t)})}var vu=d("ZodMiniSuccess",(e,t)=>{bs.init(e,t),S.init(e,t)});function Xh(e){return new vu({type:"success",innerType:e})}var zu=d("ZodMiniCatch",(e,t)=>{ws.init(e,t),S.init(e,t)});function eg(e,t){return new zu({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var Tu=d("ZodMiniNaN",(e,t)=>{$s.init(e,t),S.init(e,t)});function tg(e){return Ii(Tu,e)}var la=d("ZodMiniPipe",(e,t)=>{xs.init(e,t),S.init(e,t)});function rg(e,t){return new la({type:"pipe",in:e,out:t})}var pa=d("ZodMiniCodec",(e,t)=>{la.init(e,t),dt.init(e,t)});function ng(e,t,r){return new pa({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var Iu=d("ZodMiniReadonly",(e,t)=>{ks.init(e,t),S.init(e,t)});function og(e){return new Iu({type:"readonly",innerType:e})}var Pu=d("ZodMiniTemplateLiteral",(e,t)=>{Ss.init(e,t),S.init(e,t)});function sg(e,t){return new Pu({type:"template_literal",parts:e,...g(t)})}var Eu=d("ZodMiniLazy",(e,t)=>{Ts.init(e,t),S.init(e,t)});function Au(e){return new Eu({type:"lazy",getter:e})}var Ru=d("ZodMiniPromise",(e,t)=>{zs.init(e,t),S.init(e,t)});function ig(e){return new Ru({type:"promise",innerType:e})}var fa=d("ZodMiniCustom",(e,t)=>{Is.init(e,t),S.init(e,t)});function ag(e,t){let r=new E({check:"custom",...g(t)});return r._zod.check=e,r}function Cu(e,t){return Vi(fa,e??(()=>!0),t)}function cg(e,t={}){return Qi(fa,e,t)}function ug(e){return Xi(e)}var lg=ea,pg=ta;function fg(e,t={}){let r=Cu(n=>n instanceof e,t);return r._zod.bag.Class=e,r._zod.check=n=>{n.value instanceof e||n.issues.push({code:"invalid_type",expected:e.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var dg=(...e)=>ra({Codec:pa,Boolean:xt,String:He},...e);function mg(){let e=Au(()=>cu([b(),xe(),Je(),tu(),K(e),mu(b(),e)]));return e}var Nu=d("ZodMiniFunction",(e,t)=>{vs.init(e,t),S.init(e,t)});function hg(e){return new Nu({type:"function",input:Array.isArray(e?.input)?du(e?.input):e?.input??K(wr()),output:e?.output??wr()})}var da={};ve(da,{ZodMiniISODate:()=>zr,ZodMiniISODateTime:()=>vr,ZodMiniISODuration:()=>Ir,ZodMiniISOTime:()=>Tr,date:()=>yg,datetime:()=>gg,duration:()=>bg,time:()=>_g});var vr=d("ZodMiniISODateTime",(e,t)=>{Ro.init(e,t),A.init(e,t)});function gg(e){return ri(vr,e)}var zr=d("ZodMiniISODate",(e,t)=>{Co.init(e,t),A.init(e,t)});function yg(e){return ni(zr,e)}var Tr=d("ZodMiniISOTime",(e,t)=>{No.init(e,t),A.init(e,t)});function _g(e){return oi(Tr,e)}var Ir=d("ZodMiniISODuration",(e,t)=>{Oo.init(e,t),A.init(e,t)});function bg(e){return si(Ir,e)}var ma={};ve(ma,{bigint:()=>kg,boolean:()=>xg,date:()=>Sg,number:()=>$g,string:()=>wg});function wg(e){return Rs(He,e)}function $g(e){return ai($t,e)}function xg(e){return mi(xt,e)}function kg(e){return gi(kt,e)}function Sg(e){return Ti($r,e)}var X=b().check(yt(1)),vg=b().check(_t(/^https?:\/\/.+/)),Ke=I({CLANCY_BASE_BRANCH:w(b()),CLANCY_LABEL:w(b()),CLANCY_MODEL:w(b()),CLANCY_NOTIFY_WEBHOOK:w(b()),CLANCY_STATUS_IN_PROGRESS:w(b()),CLANCY_STATUS_DONE:w(b()),CLANCY_STATUS_REVIEW:w(b()),MAX_ITERATIONS:w(b()),PLAYWRIGHT_ENABLED:w(b()),PLAYWRIGHT_DEV_PORT:w(b()),CLANCY_ROLES:w(b()),CLANCY_PLAN_STATUS:w(b()),CLANCY_PLAN_LABEL:w(b()),CLANCY_PLAN_STATE_TYPE:w(b()),CLANCY_STATUS_PLANNED:w(b()),CLANCY_SKIP_COMMENTS:w(b()),GITHUB_TOKEN:w(b()),GITLAB_TOKEN:w(b()),BITBUCKET_USER:w(b()),BITBUCKET_TOKEN:w(b()),CLANCY_GIT_PLATFORM:w(b()),CLANCY_GIT_API_URL:w(b()),CLANCY_MAX_REWORK:w(b()),CLANCY_TDD:w(b()),CLANCY_MODE:w(b()),CLANCY_BRIEF_ISSUE_TYPE:w(b()),CLANCY_BRIEF_EPIC:w(b()),CLANCY_COMPONENT:w(b()),CLANCY_FIX_RETRIES:w(b()),CLANCY_VERIFY_COMMANDS:w(b()),CLANCY_TOKEN_RATE:w(b()),CLANCY_TIME_LIMIT:w(b()),CLANCY_BRANCH_GUARD:w(b()),CLANCY_LABEL_BRIEF:w(b()),CLANCY_LABEL_PLAN:w(b()),CLANCY_LABEL_BUILD:w(b())}),Lu=ke(Ke,{JIRA_BASE_URL:vg,JIRA_USER:X,JIRA_API_TOKEN:X,JIRA_PROJECT_KEY:X,CLANCY_JQL_STATUS:w(b()),CLANCY_JQL_SPRINT:w(b())}),Zu=ke(Ke,{GITHUB_TOKEN:X,GITHUB_REPO:X}),ju=ke(Ke,{LINEAR_API_KEY:X,LINEAR_TEAM_ID:X}),Du=ke(Ke,{SHORTCUT_API_TOKEN:X,SHORTCUT_WORKFLOW:w(b())}),Mu=ke(Ke,{NOTION_TOKEN:X,NOTION_DATABASE_ID:X,CLANCY_NOTION_STATUS:w(b()),CLANCY_NOTION_ASSIGNEE:w(b()),CLANCY_NOTION_LABELS:w(b()),CLANCY_NOTION_PARENT:w(b())}),Bu=ke(Ke,{AZDO_ORG:X,AZDO_PROJECT:X,AZDO_PAT:X,CLANCY_AZDO_STATUS:w(b()),CLANCY_AZDO_WIT:w(b())});function Pr(e){if(e.JIRA_BASE_URL){let t=Lu.safeParse(e);return t.success?{provider:"jira",env:t.data}:`\u2717 Jira env validation failed: ${t.error.message}`}if(e.GITHUB_TOKEN&&e.GITHUB_REPO){let t=Zu.safeParse(e);return t.success?{provider:"github",env:t.data}:`\u2717 GitHub env validation failed: ${t.error.message}`}if(e.LINEAR_API_KEY){let t=ju.safeParse(e);return t.success?{provider:"linear",env:t.data}:`\u2717 Linear env validation failed: ${t.error.message}`}if(e.SHORTCUT_API_TOKEN){let t=Du.safeParse(e);return t.success?{provider:"shortcut",env:t.data}:`\u2717 Shortcut env validation failed: ${t.error.message}`}if(e.NOTION_DATABASE_ID){let t=Mu.safeParse(e);return t.success?{provider:"notion",env:t.data}:`\u2717 Notion env validation failed: ${t.error.message}`}if(e.AZDO_ORG){let t=Bu.safeParse(e);return t.success?{provider:"azdo",env:t.data}:`\u2717 Azure DevOps env validation failed: ${t.error.message}`}return"\u2717 No board detected \u2014 set Jira, GitHub, Linear, Shortcut, Notion, or Azure DevOps credentials in .clancy/.env"}function Z(e){return e.env}import{appendFileSync as Uu,mkdirSync as zg,readFileSync as Tg}from"node:fs";import{dirname as Ig,join as Fu}from"node:path";function Pg(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),o=String(e.getUTCHours()).padStart(2,"0"),s=String(e.getUTCMinutes()).padStart(2,"0");return`${t}-${r}-${n} ${o}:${s}`}function R(e,t,r,n,o,s){let i=Fu(e,".clancy","progress.txt");zg(Ig(i),{recursive:!0});let a=Pg(new Date);if(n==="BRIEF"||n==="APPROVE_BRIEF"){let f=`${a} | ${n} | ${t} | ${r}
|
|
41
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let i of e.seen.entries()){let a=i[1];if(t===i[0]){s(i);continue}if(e.external){let l=e.external.registry.get(i[0])?.id;if(t!==i[0]&&l){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(a.cycle){s(i);continue}if(a.count>1&&e.reused==="ref"){s(i);continue}}}function $e(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=i=>{let a=e.seen.get(i);if(a.ref===null)return;let u=a.def??a.schema,l={...u},p=a.ref;if(a.ref=null,p){n(p);let m=e.seen.get(p),h=m.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,l),i._zod.parent===p)for(let y in u)y==="$ref"||y==="allOf"||y in l||delete u[y];if(h.$ref&&m.def)for(let y in u)y==="$ref"||y==="allOf"||y in m.def&&JSON.stringify(u[y])===JSON.stringify(m.def[y])&&delete u[y]}let f=i._zod.parent;if(f&&f!==p){n(f);let m=e.seen.get(f);if(m?.schema.$ref&&(u.$ref=m.schema.$ref,m.def))for(let h in u)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(u[h])===JSON.stringify(m.def[h])&&delete u[h]}e.override({zodSchema:i,jsonSchema:u,path:a.path??[]})};for(let i of[...e.seen.entries()].reverse())n(i[0]);let o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let i=e.external.registry.get(t)?.id;if(!i)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(i)}Object.assign(o,r.def??r.schema);let s=e.external?.defs??{};for(let i of e.seen.entries()){let a=i[1];a.def&&a.defId&&(s[a.defId]=a.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let i=JSON.parse(JSON.stringify(o));return Object.defineProperty(i,"~standard",{value:{...t["~standard"],jsonSchema:{input:oa(t,"input",e.processors),output:oa(t,"output",e.processors)}},enumerable:!1,writable:!1}),i}catch{throw new Error("Error converting schema to JSON.")}}function J(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return J(n.element,r);if(n.type==="set")return J(n.valueType,r);if(n.type==="lazy")return J(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return J(n.innerType,r);if(n.type==="intersection")return J(n.left,r)||J(n.right,r);if(n.type==="record"||n.type==="map")return J(n.keyType,r)||J(n.valueType,r);if(n.type==="pipe")return J(n.in,r)||J(n.out,r);if(n.type==="object"){for(let o in n.shape)if(J(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(J(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(J(o,r))return!0;return!!(n.rest&&J(n.rest,r))}return!1}var Qd=(e,t={})=>r=>{let n=be({...r,processors:t});return T(e,n),we(n,e),$e(n,e)},oa=(e,t,r={})=>n=>{let{libraryOptions:o,target:s}=n??{},i=be({...o??{},target:s,io:t,processors:r});return T(e,i),we(i,e),$e(i,e)};var Xd={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},em=(e,t,r,n)=>{let o=r;o.type="string";let{minimum:s,maximum:i,format:a,patterns:u,contentEncoding:l}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),a&&(o.format=Xd[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),l&&(o.contentEncoding=l),u&&u.size>0){let p=[...u];p.length===1?o.pattern=p[0].source:p.length>1&&(o.allOf=[...p.map(f=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))])}},tm=(e,t,r,n)=>{let o=r,{minimum:s,maximum:i,format:a,multipleOf:u,exclusiveMaximum:l,exclusiveMinimum:p}=e._zod.bag;typeof a=="string"&&a.includes("int")?o.type="integer":o.type="number",typeof p=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=p,o.exclusiveMinimum=!0):o.exclusiveMinimum=p),typeof s=="number"&&(o.minimum=s,typeof p=="number"&&t.target!=="draft-04"&&(p>=s?delete o.minimum:delete o.exclusiveMinimum)),typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=l,o.exclusiveMaximum=!0):o.exclusiveMaximum=l),typeof i=="number"&&(o.maximum=i,typeof l=="number"&&t.target!=="draft-04"&&(l<=i?delete o.maximum:delete o.exclusiveMaximum)),typeof u=="number"&&(o.multipleOf=u)},rm=(e,t,r,n)=>{r.type="boolean"},nm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},om=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},sm=(e,t,r,n)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},im=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},am=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},cm=(e,t,r,n)=>{r.not={}},um=(e,t,r,n)=>{},lm=(e,t,r,n)=>{},pm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},fm=(e,t,r,n)=>{let o=e._zod.def,s=nt(o.entries);s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),r.enum=s},dm=(e,t,r,n)=>{let o=e._zod.def,s=[];for(let i of o.values)if(i===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof i=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(i))}else s.push(i);if(s.length!==0)if(s.length===1){let i=s[0];r.type=i===null?"null":typeof i,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[i]:r.const=i}else s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),s.every(i=>typeof i=="boolean")&&(r.type="boolean"),s.every(i=>i===null)&&(r.type="null"),r.enum=s},mm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},hm=(e,t,r,n)=>{let o=r,s=e._zod.pattern;if(!s)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=s.source},gm=(e,t,r,n)=>{let o=r,s={type:"string",format:"binary",contentEncoding:"binary"},{minimum:i,maximum:a,mime:u}=e._zod.bag;i!==void 0&&(s.minLength=i),a!==void 0&&(s.maxLength=a),u?u.length===1?(s.contentMediaType=u[0],Object.assign(o,s)):(Object.assign(o,s),o.anyOf=u.map(l=>({contentMediaType:l}))):Object.assign(o,s)},ym=(e,t,r,n)=>{r.type="boolean"},_m=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},bm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},wm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},$m=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},xm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},km=(e,t,r,n)=>{let o=r,s=e._zod.def,{minimum:i,maximum:a}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=T(s.element,t,{...n,path:[...n.path,"items"]})},Sm=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="object",o.properties={};let i=s.shape;for(let l in i)o.properties[l]=T(i[l],t,{...n,path:[...n.path,"properties",l]});let a=new Set(Object.keys(i)),u=new Set([...a].filter(l=>{let p=s.shape[l]._zod;return t.io==="input"?p.optin===void 0:p.optout===void 0}));u.size>0&&(o.required=Array.from(u)),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=T(s.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},vm=(e,t,r,n)=>{let o=e._zod.def,s=o.inclusive===!1,i=o.options.map((a,u)=>T(a,t,{...n,path:[...n.path,s?"oneOf":"anyOf",u]}));s?r.oneOf=i:r.anyOf=i},zm=(e,t,r,n)=>{let o=e._zod.def,s=T(o.left,t,{...n,path:[...n.path,"allOf",0]}),i=T(o.right,t,{...n,path:[...n.path,"allOf",1]}),a=l=>"allOf"in l&&Object.keys(l).length===1,u=[...a(s)?s.allOf:[s],...a(i)?i.allOf:[i]];r.allOf=u},Tm=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="array";let i=t.target==="draft-2020-12"?"prefixItems":"items",a=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",u=s.items.map((m,h)=>T(m,t,{...n,path:[...n.path,i,h]})),l=s.rest?T(s.rest,t,{...n,path:[...n.path,a,...t.target==="openapi-3.0"?[s.items.length]:[]]}):null;t.target==="draft-2020-12"?(o.prefixItems=u,l&&(o.items=l)):t.target==="openapi-3.0"?(o.items={anyOf:u},l&&o.items.anyOf.push(l),o.minItems=u.length,l||(o.maxItems=u.length)):(o.items=u,l&&(o.additionalItems=l));let{minimum:p,maximum:f}=e._zod.bag;typeof p=="number"&&(o.minItems=p),typeof f=="number"&&(o.maxItems=f)},Im=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="object";let i=s.keyType,u=i._zod.bag?.patterns;if(s.mode==="loose"&&u&&u.size>0){let p=T(s.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let f of u)o.patternProperties[f.source]=p}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=T(s.keyType,t,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=T(s.valueType,t,{...n,path:[...n.path,"additionalProperties"]});let l=i._zod.values;if(l){let p=[...l].filter(f=>typeof f=="string"||typeof f=="number");p.length>0&&(o.required=p)}},Pm=(e,t,r,n)=>{let o=e._zod.def,s=T(o.innerType,t,n),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},Em=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Am=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Rm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Cm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=i},Nm=(e,t,r,n)=>{let o=e._zod.def,s=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;T(s,t,n);let i=t.seen.get(e);i.ref=s},Om=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,r.readOnly=!0},Lm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Zm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},jm=(e,t,r,n)=>{let o=e._zod.innerType;T(o,t,n);let s=t.seen.get(e);s.ref=o},yr={string:em,number:tm,boolean:rm,bigint:nm,symbol:om,null:sm,undefined:im,void:am,never:cm,any:um,unknown:lm,date:pm,enum:fm,literal:dm,nan:mm,template_literal:hm,file:gm,success:ym,custom:_m,function:bm,transform:wm,map:$m,set:xm,array:km,object:Sm,union:vm,intersection:zm,tuple:Tm,record:Im,nullable:Pm,nonoptional:Em,default:Am,prefault:Rm,catch:Cm,pipe:Nm,readonly:Om,promise:Lm,optional:Zm,lazy:jm};function _r(e,t){if("_idmap"in e){let n=e,o=be({...t,processors:yr}),s={};for(let u of n._idmap.entries()){let[l,p]=u;T(p,o)}let i={},a={registry:n,uri:t?.uri,defs:s};o.external=a;for(let u of n._idmap.entries()){let[l,p]=u;we(o,p),i[l]=$e(o,p)}if(Object.keys(s).length>0){let u=o.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[u]:s}}return{schemas:i}}let r=be({...t,processors:yr});return T(e,r),we(r,e),$e(r,e)}var br=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(t){this.ctx.counter=t}get seen(){return this.ctx.seen}constructor(t){let r=t?.target??"draft-2020-12";r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),this.ctx=be({processors:yr,target:r,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,r={path:[],schemaPath:[]}){return T(t,this.ctx,r)}emit(t,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),we(this.ctx,t);let n=$e(this.ctx,t),{"~standard":o,...s}=n;return s}};var Cc={};var S=d("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");x.init(e,t),e.def=t,e.type=t.type,e.parse=(r,n)=>ge(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Te(e,r,n),e.parseAsync=async(r,n)=>ye(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>Ie(e,r,n),e.check=(...r)=>e.clone({...t,checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]},{parent:!0}),e.with=e.check,e.clone=(r,n)=>q(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.apply=r=>r(e)}),He=d("ZodMiniString",(e,t)=>{Be.init(e,t),S.init(e,t)});function b(e){return Rs(He,e)}var A=d("ZodMiniStringFormat",(e,t)=>{P.init(e,t),He.init(e,t)}),Nc=d("ZodMiniEmail",(e,t)=>{So.init(e,t),A.init(e,t)});function Mm(e){return Ns(Nc,e)}var Oc=d("ZodMiniGUID",(e,t)=>{xo.init(e,t),A.init(e,t)});function Bm(e){return Os(Oc,e)}var bt=d("ZodMiniUUID",(e,t)=>{ko.init(e,t),A.init(e,t)});function Um(e){return Ls(bt,e)}function Fm(e){return Zs(bt,e)}function Hm(e){return js(bt,e)}function qm(e){return Ds(bt,e)}var sa=d("ZodMiniURL",(e,t)=>{vo.init(e,t),A.init(e,t)});function Jm(e){return mr(sa,e)}function Km(e){return mr(sa,{protocol:/^https?$/,hostname:oe.domain,...g(e)})}var Lc=d("ZodMiniEmoji",(e,t)=>{zo.init(e,t),A.init(e,t)});function Ym(e){return Ms(Lc,e)}var Zc=d("ZodMiniNanoID",(e,t)=>{To.init(e,t),A.init(e,t)});function Gm(e){return Bs(Zc,e)}var jc=d("ZodMiniCUID",(e,t)=>{Io.init(e,t),A.init(e,t)});function Wm(e){return Us(jc,e)}var Dc=d("ZodMiniCUID2",(e,t)=>{Po.init(e,t),A.init(e,t)});function Vm(e){return Fs(Dc,e)}var Mc=d("ZodMiniULID",(e,t)=>{Eo.init(e,t),A.init(e,t)});function Qm(e){return Hs(Mc,e)}var Bc=d("ZodMiniXID",(e,t)=>{Ao.init(e,t),A.init(e,t)});function Xm(e){return qs(Bc,e)}var Uc=d("ZodMiniKSUID",(e,t)=>{Ro.init(e,t),A.init(e,t)});function eh(e){return Js(Uc,e)}var Fc=d("ZodMiniIPv4",(e,t)=>{Zo.init(e,t),A.init(e,t)});function th(e){return Ks(Fc,e)}var Hc=d("ZodMiniIPv6",(e,t)=>{jo.init(e,t),A.init(e,t)});function rh(e){return Ys(Hc,e)}var qc=d("ZodMiniCIDRv4",(e,t)=>{Mo.init(e,t),A.init(e,t)});function nh(e){return Ws(qc,e)}var Jc=d("ZodMiniCIDRv6",(e,t)=>{Bo.init(e,t),A.init(e,t)});function oh(e){return Vs(Jc,e)}var Kc=d("ZodMiniMAC",(e,t)=>{Do.init(e,t),A.init(e,t)});function sh(e){return Gs(Kc,e)}var Yc=d("ZodMiniBase64",(e,t)=>{Fo.init(e,t),A.init(e,t)});function ih(e){return Qs(Yc,e)}var Gc=d("ZodMiniBase64URL",(e,t)=>{Ho.init(e,t),A.init(e,t)});function ah(e){return Xs(Gc,e)}var Wc=d("ZodMiniE164",(e,t)=>{qo.init(e,t),A.init(e,t)});function ch(e){return ei(Wc,e)}var Vc=d("ZodMiniJWT",(e,t)=>{Jo.init(e,t),A.init(e,t)});function uh(e){return ti(Vc,e)}var wt=d("ZodMiniCustomStringFormat",(e,t)=>{Ko.init(e,t),A.init(e,t)});function lh(e,t,r={}){return Ue(wt,e,t,r)}function ph(e){return Ue(wt,"hostname",oe.hostname,e)}function fh(e){return Ue(wt,"hex",oe.hex,e)}function dh(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,o=oe[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return Ue(wt,n,o,t)}var $t=d("ZodMiniNumber",(e,t)=>{ar.init(e,t),S.init(e,t)});function xe(e){return ai($t,e)}var qe=d("ZodMiniNumberFormat",(e,t)=>{Yo.init(e,t),$t.init(e,t)});function mh(e){return ui(qe,e)}function hh(e){return li(qe,e)}function gh(e){return pi(qe,e)}function yh(e){return fi(qe,e)}function _h(e){return di(qe,e)}var xt=d("ZodMiniBoolean",(e,t)=>{pt.init(e,t),S.init(e,t)});function Je(e){return mi(xt,e)}var kt=d("ZodMiniBigInt",(e,t)=>{cr.init(e,t),S.init(e,t)});function bh(e){return gi(kt,e)}var ia=d("ZodMiniBigIntFormat",(e,t)=>{Go.init(e,t),kt.init(e,t)});function wh(e){return _i(ia,e)}function $h(e){return bi(ia,e)}var Qc=d("ZodMiniSymbol",(e,t)=>{Wo.init(e,t),S.init(e,t)});function xh(e){return wi(Qc,e)}var Xc=d("ZodMiniUndefined",(e,t)=>{Vo.init(e,t),S.init(e,t)});function kh(e){return $i(Xc,e)}var eu=d("ZodMiniNull",(e,t)=>{Qo.init(e,t),S.init(e,t)});function tu(e){return xi(eu,e)}var ru=d("ZodMiniAny",(e,t)=>{Xo.init(e,t),S.init(e,t)});function Sh(){return ki(ru)}var nu=d("ZodMiniUnknown",(e,t)=>{es.init(e,t),S.init(e,t)});function wr(){return Si(nu)}var ou=d("ZodMiniNever",(e,t)=>{ts.init(e,t),S.init(e,t)});function su(e){return vi(ou,e)}var iu=d("ZodMiniVoid",(e,t)=>{rs.init(e,t),S.init(e,t)});function vh(e){return zi(iu,e)}var $r=d("ZodMiniDate",(e,t)=>{ns.init(e,t),S.init(e,t)});function zh(e){return Ti($r,e)}var au=d("ZodMiniArray",(e,t)=>{os.init(e,t),S.init(e,t)});function K(e,t){return new au({type:"array",element:e,...g(t)})}function Th(e){let t=e._zod.def.shape;return yu(Object.keys(t))}var xr=d("ZodMiniObject",(e,t)=>{ur.init(e,t),S.init(e,t),k(e,"shape",()=>t.shape)});function I(e,t){let r={type:"object",shape:e??{},...g(t)};return new xr(r)}function Ih(e,t){return new xr({type:"object",shape:e,catchall:su(),...g(t)})}function Ph(e,t){return new xr({type:"object",shape:e,catchall:wr(),...g(t)})}function ke(e,t){return Kt(e,t)}function Eh(e,t){return pn(e,t)}function Ah(e,t){return Kt(e,t)}function Rh(e,t){return un(e,t)}function Ch(e,t){return ln(e,t)}function Nh(e,t){return fn(ua,e,t)}function Oh(e,t){return dn(la,e,t)}function Lh(e,t){return e.clone({...e._zod.def,catchall:t})}var aa=d("ZodMiniUnion",(e,t)=>{ft.init(e,t),S.init(e,t)});function cu(e,t){return new aa({type:"union",options:e,...g(t)})}var uu=d("ZodMiniXor",(e,t)=>{aa.init(e,t),ss.init(e,t)});function Zh(e,t){return new uu({type:"union",options:e,inclusive:!1,...g(t)})}var lu=d("ZodMiniDiscriminatedUnion",(e,t)=>{is.init(e,t),S.init(e,t)});function jh(e,t,r){return new lu({type:"union",options:t,discriminator:e,...g(r)})}var pu=d("ZodMiniIntersection",(e,t)=>{as.init(e,t),S.init(e,t)});function Dh(e,t){return new pu({type:"intersection",left:e,right:t})}var fu=d("ZodMiniTuple",(e,t)=>{lr.init(e,t),S.init(e,t)});function du(e,t,r){let n=t instanceof x,o=n?r:t,s=n?t:null;return new fu({type:"tuple",items:e,rest:s,...g(o)})}var kr=d("ZodMiniRecord",(e,t)=>{cs.init(e,t),S.init(e,t)});function mu(e,t,r){return new kr({type:"record",keyType:e,valueType:t,...g(r)})}function Mh(e,t,r){let n=q(e);return n._zod.values=void 0,new kr({type:"record",keyType:n,valueType:t,...g(r)})}function Bh(e,t,r){return new kr({type:"record",keyType:e,valueType:t,mode:"loose",...g(r)})}var hu=d("ZodMiniMap",(e,t)=>{us.init(e,t),S.init(e,t)});function Uh(e,t,r){return new hu({type:"map",keyType:e,valueType:t,...g(r)})}var gu=d("ZodMiniSet",(e,t)=>{ls.init(e,t),S.init(e,t)});function Fh(e,t){return new gu({type:"set",valueType:e,...g(t)})}var ca=d("ZodMiniEnum",(e,t)=>{ps.init(e,t),S.init(e,t),e.options=Object.values(t.entries)});function yu(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new ca({type:"enum",entries:r,...g(t)})}function Hh(e,t){return new ca({type:"enum",entries:e,...g(t)})}var _u=d("ZodMiniLiteral",(e,t)=>{fs.init(e,t),S.init(e,t)});function qh(e,t){return new _u({type:"literal",values:Array.isArray(e)?e:[e],...g(t)})}var bu=d("ZodMiniFile",(e,t)=>{ds.init(e,t),S.init(e,t)});function Jh(e){return Vi(bu,e)}var wu=d("ZodMiniTransform",(e,t)=>{ms.init(e,t),S.init(e,t)});function Kh(e){return new wu({type:"transform",transform:e})}var ua=d("ZodMiniOptional",(e,t)=>{pr.init(e,t),S.init(e,t)});function w(e){return new ua({type:"optional",innerType:e})}var $u=d("ZodMiniExactOptional",(e,t)=>{hs.init(e,t),S.init(e,t)});function Yh(e){return new $u({type:"optional",innerType:e})}var xu=d("ZodMiniNullable",(e,t)=>{gs.init(e,t),S.init(e,t)});function Sr(e){return new xu({type:"nullable",innerType:e})}function Gh(e){return w(Sr(e))}var ku=d("ZodMiniDefault",(e,t)=>{ys.init(e,t),S.init(e,t)});function Wh(e,t){return new ku({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():je(t)}})}var Su=d("ZodMiniPrefault",(e,t)=>{_s.init(e,t),S.init(e,t)});function Vh(e,t){return new Su({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():je(t)}})}var la=d("ZodMiniNonOptional",(e,t)=>{bs.init(e,t),S.init(e,t)});function Qh(e,t){return new la({type:"nonoptional",innerType:e,...g(t)})}var vu=d("ZodMiniSuccess",(e,t)=>{ws.init(e,t),S.init(e,t)});function Xh(e){return new vu({type:"success",innerType:e})}var zu=d("ZodMiniCatch",(e,t)=>{$s.init(e,t),S.init(e,t)});function eg(e,t){return new zu({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var Tu=d("ZodMiniNaN",(e,t)=>{xs.init(e,t),S.init(e,t)});function tg(e){return Pi(Tu,e)}var pa=d("ZodMiniPipe",(e,t)=>{ks.init(e,t),S.init(e,t)});function rg(e,t){return new pa({type:"pipe",in:e,out:t})}var fa=d("ZodMiniCodec",(e,t)=>{pa.init(e,t),dt.init(e,t)});function ng(e,t,r){return new fa({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var Iu=d("ZodMiniReadonly",(e,t)=>{Ss.init(e,t),S.init(e,t)});function og(e){return new Iu({type:"readonly",innerType:e})}var Pu=d("ZodMiniTemplateLiteral",(e,t)=>{vs.init(e,t),S.init(e,t)});function sg(e,t){return new Pu({type:"template_literal",parts:e,...g(t)})}var Eu=d("ZodMiniLazy",(e,t)=>{Is.init(e,t),S.init(e,t)});function Au(e){return new Eu({type:"lazy",getter:e})}var Ru=d("ZodMiniPromise",(e,t)=>{Ts.init(e,t),S.init(e,t)});function ig(e){return new Ru({type:"promise",innerType:e})}var da=d("ZodMiniCustom",(e,t)=>{Ps.init(e,t),S.init(e,t)});function ag(e,t){let r=new E({check:"custom",...g(t)});return r._zod.check=e,r}function Cu(e,t){return Qi(da,e??(()=>!0),t)}function cg(e,t={}){return Xi(da,e,t)}function ug(e){return ea(e)}var lg=ta,pg=ra;function fg(e,t={}){let r=Cu(n=>n instanceof e,t);return r._zod.bag.Class=e,r._zod.check=n=>{n.value instanceof e||n.issues.push({code:"invalid_type",expected:e.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var dg=(...e)=>na({Codec:fa,Boolean:xt,String:He},...e);function mg(){let e=Au(()=>cu([b(),xe(),Je(),tu(),K(e),mu(b(),e)]));return e}var Nu=d("ZodMiniFunction",(e,t)=>{zs.init(e,t),S.init(e,t)});function hg(e){return new Nu({type:"function",input:Array.isArray(e?.input)?du(e?.input):e?.input??K(wr()),output:e?.output??wr()})}var ma={};ve(ma,{ZodMiniISODate:()=>zr,ZodMiniISODateTime:()=>vr,ZodMiniISODuration:()=>Ir,ZodMiniISOTime:()=>Tr,date:()=>yg,datetime:()=>gg,duration:()=>bg,time:()=>_g});var vr=d("ZodMiniISODateTime",(e,t)=>{Co.init(e,t),A.init(e,t)});function gg(e){return ni(vr,e)}var zr=d("ZodMiniISODate",(e,t)=>{No.init(e,t),A.init(e,t)});function yg(e){return oi(zr,e)}var Tr=d("ZodMiniISOTime",(e,t)=>{Oo.init(e,t),A.init(e,t)});function _g(e){return si(Tr,e)}var Ir=d("ZodMiniISODuration",(e,t)=>{Lo.init(e,t),A.init(e,t)});function bg(e){return ii(Ir,e)}var ha={};ve(ha,{bigint:()=>kg,boolean:()=>xg,date:()=>Sg,number:()=>$g,string:()=>wg});function wg(e){return Cs(He,e)}function $g(e){return ci($t,e)}function xg(e){return hi(xt,e)}function kg(e){return yi(kt,e)}function Sg(e){return Ii($r,e)}var X=b().check(yt(1)),vg=b().check(_t(/^https?:\/\/.+/)),Ke=I({CLANCY_BASE_BRANCH:w(b()),CLANCY_LABEL:w(b()),CLANCY_MODEL:w(b()),CLANCY_NOTIFY_WEBHOOK:w(b()),CLANCY_STATUS_IN_PROGRESS:w(b()),CLANCY_STATUS_DONE:w(b()),CLANCY_STATUS_REVIEW:w(b()),MAX_ITERATIONS:w(b()),PLAYWRIGHT_ENABLED:w(b()),PLAYWRIGHT_DEV_PORT:w(b()),CLANCY_ROLES:w(b()),CLANCY_PLAN_STATUS:w(b()),CLANCY_PLAN_LABEL:w(b()),CLANCY_PLAN_STATE_TYPE:w(b()),CLANCY_STATUS_PLANNED:w(b()),CLANCY_SKIP_COMMENTS:w(b()),GITHUB_TOKEN:w(b()),GITLAB_TOKEN:w(b()),BITBUCKET_USER:w(b()),BITBUCKET_TOKEN:w(b()),CLANCY_GIT_PLATFORM:w(b()),CLANCY_GIT_API_URL:w(b()),CLANCY_MAX_REWORK:w(b()),CLANCY_TDD:w(b()),CLANCY_MODE:w(b()),CLANCY_BRIEF_ISSUE_TYPE:w(b()),CLANCY_BRIEF_EPIC:w(b()),CLANCY_COMPONENT:w(b()),CLANCY_FIX_RETRIES:w(b()),CLANCY_VERIFY_COMMANDS:w(b()),CLANCY_TOKEN_RATE:w(b()),CLANCY_TIME_LIMIT:w(b()),CLANCY_BRANCH_GUARD:w(b()),CLANCY_LABEL_BRIEF:w(b()),CLANCY_LABEL_PLAN:w(b()),CLANCY_LABEL_BUILD:w(b())}),Lu=ke(Ke,{JIRA_BASE_URL:vg,JIRA_USER:X,JIRA_API_TOKEN:X,JIRA_PROJECT_KEY:X,CLANCY_JQL_STATUS:w(b()),CLANCY_JQL_SPRINT:w(b())}),Zu=ke(Ke,{GITHUB_TOKEN:X,GITHUB_REPO:X}),ju=ke(Ke,{LINEAR_API_KEY:X,LINEAR_TEAM_ID:X}),Du=ke(Ke,{SHORTCUT_API_TOKEN:X,SHORTCUT_WORKFLOW:w(b())}),Mu=ke(Ke,{NOTION_TOKEN:X,NOTION_DATABASE_ID:X,CLANCY_NOTION_STATUS:w(b()),CLANCY_NOTION_TODO:w(b()),CLANCY_NOTION_ASSIGNEE:w(b()),CLANCY_NOTION_LABELS:w(b()),CLANCY_NOTION_PARENT:w(b())}),Bu=ke(Ke,{AZDO_ORG:X,AZDO_PROJECT:X,AZDO_PAT:X,CLANCY_AZDO_STATUS:w(b()),CLANCY_AZDO_WIT:w(b())});function Pr(e){if(e.JIRA_BASE_URL){let t=Lu.safeParse(e);return t.success?{provider:"jira",env:t.data}:`\u2717 Jira env validation failed: ${t.error.message}`}if(e.GITHUB_TOKEN&&e.GITHUB_REPO){let t=Zu.safeParse(e);return t.success?{provider:"github",env:t.data}:`\u2717 GitHub env validation failed: ${t.error.message}`}if(e.LINEAR_API_KEY){let t=ju.safeParse(e);return t.success?{provider:"linear",env:t.data}:`\u2717 Linear env validation failed: ${t.error.message}`}if(e.SHORTCUT_API_TOKEN){let t=Du.safeParse(e);return t.success?{provider:"shortcut",env:t.data}:`\u2717 Shortcut env validation failed: ${t.error.message}`}if(e.NOTION_DATABASE_ID){let t=Mu.safeParse(e);return t.success?{provider:"notion",env:t.data}:`\u2717 Notion env validation failed: ${t.error.message}`}if(e.AZDO_ORG){let t=Bu.safeParse(e);return t.success?{provider:"azdo",env:t.data}:`\u2717 Azure DevOps env validation failed: ${t.error.message}`}return"\u2717 No board detected \u2014 set Jira, GitHub, Linear, Shortcut, Notion, or Azure DevOps credentials in .clancy/.env"}function Z(e){return e.env}import{appendFileSync as Uu,mkdirSync as zg,readFileSync as Tg}from"node:fs";import{dirname as Ig,join as Fu}from"node:path";function Pg(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),o=String(e.getUTCHours()).padStart(2,"0"),s=String(e.getUTCMinutes()).padStart(2,"0");return`${t}-${r}-${n} ${o}:${s}`}function R(e,t,r,n,o,s){let i=Fu(e,".clancy","progress.txt");zg(Ig(i),{recursive:!0});let a=Pg(new Date);if(n==="BRIEF"||n==="APPROVE_BRIEF"){let f=`${a} | ${n} | ${t} | ${r}
|
|
42
42
|
`;Uu(i,f,"utf8");return}let u=o!=null?` | pr:${o}`:"",l=s?` | parent:${s}`:"",p=`${a} | ${t} | ${r} | ${n}${u}${l}
|
|
43
|
-
`;Uu(i,p,"utf8")}function
|
|
44
|
-
`)){let s=o.trim();if(!s)continue;let i=s.split(" | ");if(i.length<4)continue;let a=i[0];if(i[1]==="BRIEF"||i[1]==="APPROVE_BRIEF"){n.push({timestamp:a,key:i[2],summary:i.slice(3).join(" | "),status:i[1]});continue}let u=i[1],l,p,f,m=[];for(let h=2;h<i.length;h++){let _=i[h],y=_.match(/^pr:(\d+)$/),z=_.match(/^parent:(.+)$/);y?p=parseInt(y[1],10):z?f=z[1]:h>=3&&!l&&_===_.toUpperCase()&&_.length>1?l=_:m.push(_)}l&&(l==="APPROVE"&&(l="APPROVE_PLAN"),n.push({timestamp:a,key:u,summary:m.join(" | "),status:l,...p!=null&&{prNumber:p},...f!=null&&{parent:f}}))}return n}function Hu(e,t){let r=
|
|
43
|
+
`;Uu(i,p,"utf8")}function ya(e){let t=Fu(e,".clancy","progress.txt"),r;try{r=Tg(t,"utf8")}catch{return[]}let n=[];for(let o of r.split(`
|
|
44
|
+
`)){let s=o.trim();if(!s)continue;let i=s.split(" | ");if(i.length<4)continue;let a=i[0];if(i[1]==="BRIEF"||i[1]==="APPROVE_BRIEF"){n.push({timestamp:a,key:i[2],summary:i.slice(3).join(" | "),status:i[1]});continue}let u=i[1],l,p,f,m=[];for(let h=2;h<i.length;h++){let _=i[h],y=_.match(/^pr:(\d+)$/),z=_.match(/^parent:(.+)$/);y?p=parseInt(y[1],10):z?f=z[1]:h>=3&&!l&&_===_.toUpperCase()&&_.length>1?l=_:m.push(_)}l&&(l==="APPROVE"&&(l="APPROVE_PLAN"),n.push({timestamp:a,key:u,summary:m.join(" | "),status:l,...p!=null&&{prNumber:p},...f!=null&&{parent:f}}))}return n}function Hu(e,t){let r=ya(e),n=t.toLowerCase(),o;for(let s of r)s.key.toLowerCase()===n&&(o=s);return o}function qu(e,t){let r=ya(e),n=t.toLowerCase(),o=0;for(let s of r)s.key.toLowerCase()===n&&s.status==="REWORK"&&o++;return o}function j(e,t){let r=ya(e),n=new Map;for(let o of r)n.set(o.key,o);return[...n.values()].filter(o=>o.status===t)}function Eg(e){return e.startsWith("epic/")||e.startsWith("milestone/")}function Ye(e,t,r,n,o){let s=[],i=r?Eg(r):!1;switch(e.provider){case"github":s.push(i?`Part of ${t.key}`:`Closes ${t.key}`),o&&!i&&s.push(`Closes ${o}`);break;case"jira":s.push(`**Jira:** [${t.key}](${e.env.JIRA_BASE_URL}/browse/${t.key})`);break;case"linear":s.push(`**Linear:** ${t.key}`);break}return s.push(""),t.description&&(s.push("## Description"),s.push(""),s.push(t.description),s.push("")),n&&(s.push("## \u26A0 Verification Warning"),s.push(""),s.push(n),s.push(""),s.push("This PR may need manual fixes before merging."),s.push("")),s.push("---"),s.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),s.push(""),s.push("---"),s.push("<details>"),s.push("<summary><strong>Rework instructions</strong> (click to expand)</summary>"),s.push(""),s.push("To request changes:"),s.push("- **Code comments** \u2014 leave inline comments on specific lines. These are always picked up automatically."),s.push("- **General feedback** \u2014 reply with a comment starting with `Rework:` followed by what needs fixing. Comments without the `Rework:` prefix are treated as discussion."),s.push(""),s.push("Example: `Rework: The form validation doesn't handle empty passwords`"),s.push(""),s.push("</details>"),s.join(`
|
|
45
45
|
`)}function Ju(e,t,r,n){let o=[];o.push(`## ${e} \u2014 ${t}`),o.push(""),o.push("### Children"),o.push("");for(let s of r){let i=s.prNumber?` (#${s.prNumber})`:"";o.push(`- ${s.key} \u2014 ${s.summary}${i}`)}if(n==="github"){o.push(""),o.push("### Closes"),o.push("");let s=r.map(i=>i.key).filter(i=>i.startsWith("#"));e.startsWith("#")&&s.unshift(e),s.length>0&&o.push(s.map(i=>`Closes ${i}`).join(", "))}return o.push(""),o.push("---"),o.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),o.join(`
|
|
46
|
-
`)}import{execFileSync as Ag}from"node:child_process";function Ku(e){let t=e.trim().replace(/\.git$/,""),r=t.match(/^git@([^:]+):(.+)$/),n=t.match(/^(?:https?|ssh):\/\/(?:[^@]+@)?([^/:]+)(?::\d+)?\/(.+)$/),o=r?.[1]??n?.[1],s=r?.[2]??n?.[2];if(!(!o||!s))return{hostname:o,path:s}}function Rg(e){let t=Ku(e);if(!t)return{host:"unknown",url:e};let{hostname:r,path:n}=t;switch(Cg(r)){case"github":{let s=n.split("/");return s.length>=2?{host:"github",owner:s[0],repo:s[1],hostname:r}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:n,hostname:r};case"bitbucket":{let s=n.match(/^scm\/([^/]+)\/(.+)$/);if(s)return{host:"bitbucket-server",projectKey:s[1],repoSlug:s[2],hostname:r};let i=n.split("/");return i.length>=2?{host:"bitbucket",workspace:i[0],repoSlug:i[1],hostname:r}:{host:"unknown",url:e}}case"azure":return{host:"azure",url:e};default:return{host:"unknown",url:e}}}function Cg(e){let t=e.toLowerCase();return t==="github.com"||t.includes("github")?"github":t==="gitlab.com"||t.includes("gitlab")?"gitlab":t==="bitbucket.org"||t.includes("bitbucket")?"bitbucket":t.includes("dev.azure")||t.includes("visualstudio")?"azure":"unknown"}function ce(e){let t;try{t=Ag("git",["remote","get-url","origin"],{encoding:"utf8"}).trim()}catch{return{host:"none"}}return t?e?Ng(t,e):Rg(t):{host:"none"}}function Ng(e,t){let r=Ku(e);if(!r)return{host:"unknown",url:e};let{hostname:n,path:o}=r;switch(t.toLowerCase()){case"github":{let s=o.split("/");return s.length>=2?{host:"github",owner:s[0],repo:s[1],hostname:n}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:o,hostname:n};case"bitbucket":{let s=o.split("/");return s.length>=2?{host:"bitbucket",workspace:s[0],repoSlug:s[1],hostname:n}:{host:"unknown",url:e}}case"bitbucket-server":{let s=o.match(/^scm\/([^/]+)\/(.+)$/);if(s)return{host:"bitbucket-server",projectKey:s[1],repoSlug:s[2],hostname:n};let i=o.split("/");return i.length>=2?{host:"bitbucket-server",projectKey:i[0],repoSlug:i[1],hostname:n}:{host:"unknown",url:e}}default:return{host:"unknown",url:e}}}function St(e,t){if(t)return t.replace(/\/$/,"");switch(e.host){case"github":return e.hostname==="github.com"?"https://api.github.com":`https://${e.hostname}/api/v3`;case"gitlab":return`https://${e.hostname}/api/v4`;case"bitbucket":return"https://api.bitbucket.org/2.0";case"bitbucket-server":return`https://${e.hostname}/rest/api/1.0`;default:return}}var Og=I({id:xe(),links:I({html:w(I({href:w(b())}))}),participants:K(I({state:w(b()),role:b()}))}),Yu=I({values:K(Og)}),Lg=I({content:I({raw:b()}),inline:w(I({path:w(b())})),created_on:b(),user:w(I({nickname:w(b())}))}),ya=I({values:K(Lg)}),Zg=I({id:xe(),links:I({self:w(K(I({href:w(b())})))}),reviewers:K(I({status:b()}))}),Gu=I({values:K(Zg)}),jg=I({text:b(),anchor:w(I({path:w(b())})),createdDate:xe(),author:w(I({slug:w(b())}))}),Dg=I({action:b(),comment:w(jg)}),_a=I({values:K(Dg)});async function Ee(e,t,r,n,o){let s=new AbortController,i=setTimeout(()=>s.abort(),3e4);try{let a=await fetch(e,{method:"POST",headers:{...t,"Content-Type":"application/json"},body:JSON.stringify(r),signal:s.signal});if(!a.ok){let p=await a.text().catch(()=>""),f=o?.(a.status,p)??!1;return{ok:!1,error:`HTTP ${a.status}${p?`: ${p.slice(0,200)}`:""}`,alreadyExists:f}}let u=await a.json(),l=n(u);return!l.url&&!l.number?{ok:!1,error:"PR created but response missing URL and number"}:{ok:!0,url:l.url,number:l.number}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}finally{clearTimeout(i)}}function Ge(e,t){return`Basic ${Buffer.from(`${e}:${t}`).toString("base64")}`}function ie(e){return e.trim().toLowerCase().startsWith("rework:")}function Ae(e){return e.trim().replace(/^rework:\s*/i,"").trim()}async function Wu(e,t,r,n,o,s,i,a){return Ee(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests`,{Authorization:Ge(e,t)},{title:i,description:a,source:{branch:{name:o}},destination:{branch:{name:s}},close_source_branch:!0},u=>{let l=u;return{url:l.links?.html?.href??"",number:l.id??0}},(u,l)=>u===409&&l.includes("already exists"))}async function Vu(e,t,r,n,o,s,i,a){return Ee(`${t}/projects/${r}/repos/${n}/pull-requests`,{Authorization:`Bearer ${e}`},{title:i,description:a,fromRef:{id:`refs/heads/${o}`,repository:{slug:n,project:{key:r}}},toRef:{id:`refs/heads/${s}`,repository:{slug:n,project:{key:r}}}},u=>{let l=u;return{url:l.links?.self?.[0]?.href??"",number:l.id??0}},(u,l)=>u===409&&(l.includes("already exists")||l.includes("Only one pull request")))}async function Qu(e,t,r,n,o,s){try{return(await fetch(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments`,{method:"POST",headers:{Authorization:Ge(e,t),"Content-Type":"application/json"},body:JSON.stringify({content:{raw:s}})})).ok}catch{return!1}}async function Xu(e,t,r,n,o,s){try{return(await fetch(`${t}/projects/${r}/repos/${n}/pull-requests/${o}/comments`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({text:s})})).ok}catch{return!1}}async function el(e,t,r,n,o,s){try{let i=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests?q=source.branch.name="${o}"&state=OPEN`,a=await fetch(i,{headers:{Authorization:Ge(e,t)}});if(!a.ok)return;let u=Yu.parse(await a.json());if(u.values.length===0)return;let l=u.values[0],p=l.links.html?.href??"",f=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${l.id}/comments?pagelen=100`,m=await fetch(f,{headers:{Authorization:Ge(e,t)}});if(!m.ok)return;let h=ya.parse(await m.json()),_=s?h.values.filter(Y=>Y.created_on>s):h.values,y=_.some(Y=>Y.inline!=null),z=_.some(Y=>Y.inline==null&&ie(Y.content.raw));return{changesRequested:y||z,prNumber:l.id,prUrl:p}}catch{return}}async function tl(e,t,r,n,o,s){try{let i=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments?pagelen=100`,a=await fetch(i,{headers:{Authorization:Ge(e,t)}});if(!a.ok)return[];let u=ya.parse(await a.json()),l=s?u.values.filter(f=>f.created_on>s):u.values,p=[];for(let f of l)if(f.inline!=null){let m=f.inline.path?`[${f.inline.path}] `:"";p.push(`${m}${f.content.raw}`)}else ie(f.content.raw)&&p.push(Ae(f.content.raw));return p}catch{return[]}}async function rl(e,t,r,n,o,s){try{let i=`${t}/projects/${r}/repos/${n}/pull-requests?state=OPEN&at=refs/heads/${o}`,a=await fetch(i,{headers:{Authorization:`Bearer ${e}`}});if(!a.ok)return;let u=Gu.parse(await a.json());if(u.values.length===0)return;let l=u.values[0],p=l.links.self?.[0]?.href??"",f=`${t}/projects/${r}/repos/${n}/pull-requests/${l.id}/activities?limit=100`,m=await fetch(f,{headers:{Authorization:`Bearer ${e}`}});if(!m.ok)return;let h=_a.parse(await m.json()),_=s?Date.parse(s):void 0,y=h.values.filter(C=>C.action==="COMMENTED"&&C.comment&&(_==null||C.comment.createdDate>_)),z=y.some(C=>C.comment.anchor!=null),H=y.some(C=>C.comment.anchor==null&&ie(C.comment.text));return{changesRequested:z||H,prNumber:l.id,prUrl:p}}catch{return}}async function nl(e,t,r,n,o,s){try{let i=`${t}/projects/${r}/repos/${n}/pull-requests/${o}/activities?limit=100`,a=await fetch(i,{headers:{Authorization:`Bearer ${e}`}});if(!a.ok)return[];let u=_a.parse(await a.json()),l=s?Date.parse(s):void 0,p=[];for(let f of u.values){if(f.action!=="COMMENTED"||!f.comment||l!=null&&f.comment.createdDate<=l)continue;let m=f.comment;if(m.anchor!=null){let h=m.anchor.path?`[${m.anchor.path}] `:"";p.push(`${h}${m.text}`)}else ie(m.text)&&p.push(Ae(m.text))}return p}catch{return[]}}var Mg=c.object({number:c.number(),title:c.string(),body:c.optional(c.nullable(c.string())),pull_request:c.optional(c.unknown()),milestone:c.optional(c.nullable(c.object({title:c.string()}))),labels:c.optional(c.array(c.object({name:c.optional(c.string())})))}),ol=c.array(Mg),Bg=c.object({id:c.number(),body:c.optional(c.nullable(c.string())),created_at:c.string(),user:c.optional(c.object({login:c.string()}))}),ba=c.array(Bg),Ug=c.object({number:c.number(),html_url:c.string(),state:c.string()}),sl=c.array(Ug),Fg=c.object({state:c.string(),user:c.object({login:c.string()}),submitted_at:c.string()}),il=c.array(Fg),Hg=c.object({body:c.optional(c.nullable(c.string())),path:c.optional(c.string()),created_at:c.optional(c.string()),user:c.optional(c.object({login:c.string()}))}),wa=c.array(Hg);var D="https://api.github.com";async function Er(e,t,r,n){try{let o=new AbortController,s=setTimeout(()=>o.abort(),1e4),i=await fetch(e,{headers:t,signal:o.signal});if(clearTimeout(s),i.ok)return{ok:!0};let a=r[i.status];return a?{ok:!1,error:a}:{ok:!1,error:`\u2717 HTTP ${i.status}`}}catch{return{ok:!1,error:n}}}function U(e){return{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}}function Se(e){return{Authorization:`Basic ${e}`,Accept:"application/json"}}function Ar(e){return e?.trimStart().startsWith("[clancy]")??!1}async function al(e,t,r,n,o=D,s){try{let i=U(e),a=await fetch(`${o}/repos/${t}/pulls?head=${n}:${r}&state=open`,{headers:i});if(!a.ok)return;let u=sl.parse(await a.json());if(u.length===0)return;let l=u[0],p=s?`&since=${s}`:"",[f,m]=await Promise.all([fetch(`${o}/repos/${t}/pulls/${l.number}/comments?per_page=100${p}`,{headers:i}),fetch(`${o}/repos/${t}/issues/${l.number}/comments?per_page=100${p}`,{headers:i})]);if(!f.ok||!m.ok)return;let h=wa.parse(await f.json()),_=ba.parse(await m.json()),y=h.filter(O=>!Ar(O.body)),z=_.filter(O=>!Ar(O.body)),H=y.length>0,Y=z.some(O=>O.body&&ie(O.body)),C=H||Y,M;if(!C)try{let O=await fetch(`${o}/repos/${t}/pulls/${l.number}/reviews?per_page=100`,{headers:i});if(O.ok){let Ba=il.parse(await O.json()),jt=new Map;for(let le of Ba)le.state==="PENDING"||le.state==="DISMISSED"||jt.set(le.user.login,le.state);let Ua=[...jt.entries()].filter(([,le])=>le==="CHANGES_REQUESTED");Ua.length>0&&(C=!0,M=Ua.map(([le])=>le))}}catch{}return{changesRequested:C,prNumber:l.number,prUrl:l.html_url,reviewers:M}}catch{return}}async function cl(e,t,r,n=D,o){try{let s=U(e),i=o?`&since=${o}`:"",[a,u]=await Promise.all([fetch(`${n}/repos/${t}/pulls/${r}/comments?per_page=100${i}`,{headers:s}),fetch(`${n}/repos/${t}/issues/${r}/comments?per_page=100${i}`,{headers:s})]);if(!a.ok||!u.ok)return[];let l=wa.parse(await a.json()),p=ba.parse(await u.json()),f=l.filter(_=>!Ar(_.body)),m=p.filter(_=>!Ar(_.body)),h=[];for(let _ of f){if(!_.body)continue;let y=_.path?`[${_.path}] `:"";h.push(`${y}${_.body}`)}for(let _ of m)_.body&&ie(_.body)&&h.push(Ae(_.body));return h}catch{return[]}}async function ul(e,t,r,n,o=D){try{return(await fetch(`${o}/repos/${t}/issues/${r}/comments`,{method:"POST",headers:{...U(e),"Content-Type":"application/json"},body:JSON.stringify({body:n})})).ok}catch{return!1}}async function ll(e,t,r,n,o=D){try{return(await fetch(`${o}/repos/${t}/pulls/${r}/requested_reviewers`,{method:"POST",headers:{...U(e),"Content-Type":"application/json"},body:JSON.stringify({reviewers:n})})).ok}catch{return!1}}async function pl(e,t,r,n,o,s,i=D){return Ee(`${i}/repos/${t}/pulls`,U(e),{title:o,head:r,base:n,body:s},a=>{let u=a;return{url:u.html_url??"",number:u.number??0}},(a,u)=>a===422&&u.includes("already exists"))}var qg=I({iid:xe(),web_url:b(),detailed_merge_status:w(b())}),fl=K(qg),Jg=I({body:b(),resolvable:Je(),resolved:w(Je()),system:Je(),type:w(Sr(b())),created_at:w(b()),position:w(I({new_path:w(b())})),author:w(I({username:b()}))}),Kg=I({id:w(b()),notes:K(Jg)}),$a=K(Kg);async function dl(e,t,r,n,o,s,i){let a=encodeURIComponent(r);return Ee(`${t}/projects/${a}/merge_requests`,{"PRIVATE-TOKEN":e},{source_branch:n,target_branch:o,title:s,description:i,remove_source_branch:!0},u=>{let l=u;return{url:l.web_url??"",number:l.iid??0}},(u,l)=>u===409&&l.includes("already exists"))}async function ml(e,t,r,n,o){try{let s=encodeURIComponent(r);return(await fetch(`${t}/projects/${s}/merge_requests/${n}/notes`,{method:"POST",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({body:o})})).ok}catch{return!1}}async function hl(e,t,r,n,o){let s=encodeURIComponent(r),i=0;for(let a of o)try{(await fetch(`${t}/projects/${s}/merge_requests/${n}/discussions/${a}`,{method:"PUT",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({resolved:!0})})).ok&&i++}catch{}return i}async function gl(e,t,r,n,o){try{let s=encodeURIComponent(r),i=`${t}/projects/${s}/merge_requests?source_branch=${n}&state=opened`,a=await fetch(i,{headers:{"PRIVATE-TOKEN":e}});if(!a.ok)return;let u=fl.parse(await a.json());if(u.length===0)return;let l=u[0],p=`${t}/projects/${s}/merge_requests/${l.iid}/discussions?per_page=100`,f=await fetch(p,{headers:{"PRIVATE-TOKEN":e}});if(!f.ok)return;let m=$a.parse(await f.json()),h=!1;for(let _ of m){for(let y of _.notes)if(!y.system&&!(o&&y.created_at&&y.created_at<=o)){if(y.type==="DiffNote"&&y.resolvable!==!1&&y.resolved!==!0){h=!0;break}if(ie(y.body)){h=!0;break}}if(h)break}return{changesRequested:h,prNumber:l.iid,prUrl:l.web_url}}catch{return}}async function yl(e,t,r,n,o){try{let s=encodeURIComponent(r),i=`${t}/projects/${s}/merge_requests/${n}/discussions?per_page=100`,a=await fetch(i,{headers:{"PRIVATE-TOKEN":e}});if(!a.ok)return{comments:[],discussionIds:[]};let u=$a.parse(await a.json()),l=[],p=[];for(let f of u){let m=!1;for(let h of f.notes)if(!h.system&&!(o&&h.created_at&&h.created_at<=o))if(h.type==="DiffNote"&&h.resolvable!==!1&&h.resolved!==!0){let _=h.position?.new_path?`[${h.position.new_path}] `:"";l.push(`${_}${h.body}`),m=!0}else ie(h.body)&&(l.push(Ae(h.body)),m=!0);m&&f.id&&p.push(f.id)}return{comments:l,discussionIds:p}}catch{return{comments:[],discussionIds:[]}}}function vt(e,t){let r=Z(e);switch(t.host){case"github":if(r.GITHUB_TOKEN)return{token:r.GITHUB_TOKEN};break;case"gitlab":if(r.GITLAB_TOKEN)return{token:r.GITLAB_TOKEN};break;case"bitbucket":if(r.BITBUCKET_USER&&r.BITBUCKET_TOKEN)return{token:r.BITBUCKET_TOKEN,username:r.BITBUCKET_USER};break;case"bitbucket-server":if(r.BITBUCKET_TOKEN)return{token:r.BITBUCKET_TOKEN};break}}async function Re(e,t,r,n,o,s){let i=vt(e,t);if(!i)return;let a=St(t,Z(e).CLANCY_GIT_API_URL);if(a)switch(t.host){case"github":return pl(i.token,`${t.owner}/${t.repo}`,r,n,o,s,a);case"gitlab":return dl(i.token,a,t.projectPath,r,n,o,s);case"bitbucket":return Wu(i.username,i.token,t.workspace,t.repoSlug,r,n,o,s);case"bitbucket-server":return Vu(i.token,a,t.projectKey,t.repoSlug,r,n,o,s);default:return}}function Rr(e,t,r){let n=encodeURIComponent(t),o=encodeURIComponent(r);if(e.host==="github")return`https://${e.hostname}/${e.owner}/${e.repo}/compare/${o}...${n}`;if(e.host==="gitlab")return`https://${e.hostname}/${e.projectPath}/-/merge_requests/new?merge_request[source_branch]=${n}&merge_request[target_branch]=${o}`;if(e.host==="bitbucket")return`https://${e.hostname}/${e.workspace}/${e.repoSlug}/pull-requests/new?source=${n}&dest=${o}`;if(e.host==="bitbucket-server")return`https://${e.hostname}/projects/${e.projectKey}/repos/${e.repoSlug}/pull-requests?create&sourceBranch=refs/heads/${n}&targetBranch=refs/heads/${o}`}function xa(e,t){let r=Ha(e),n=Xe(e);if(r)return Mt(e)?!0:(console.log(v(`\u26A0 Epic branch ${e} exists on remote but could not be fetched.`)),!1);if(n)return console.log(Oe(`\u2717 Epic branch ${e} exists locally but not on remote.`)),console.log(v(" This may contain work from a previous Clancy version that squash-merged locally.")),console.log($(" To preserve this work, push it manually:")),console.log($(` git push -u origin ${e}`)),console.log($(" Then re-run /clancy:once to continue.")),!1;try{if(_l("git",["fetch","origin",t],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}),_l("git",["checkout","-b",e,`origin/${t}`],{encoding:"utf8"}),et(e))console.log(N(` \u2713 Created epic branch ${e}`));else return console.log(v(`\u26A0 Created ${e} locally but could not push to origin.`)),!1;return!0}catch(o){return console.log(Oe(`\u2717 Could not create epic branch: ${o instanceof Error?o.message:String(o)}`)),!1}}async function ka(e,t,r,n,o,s=!1,i,a,u){if(!et(r)){console.log(v(`\u26A0 Could not push ${r} to origin.`)),console.log($(" The branch is still available locally. Push manually:")),console.log($(` git push -u origin ${r}`)),s||R(process.cwd(),t.key,t.title,"PUSH_FAILED",void 0,i),L(n);let y=Ce(Date.now()-o);return console.log(""),console.log(v(`\u26A0 ${t.key} implemented but push failed`)+$(` (${y})`)),!1}console.log(N(` \u2713 Pushed ${r}`));let p;try{let y=Gg(process.cwd(),".clancy","verify-attempt.txt"),z=Yg(y,"utf8").trim(),H=parseInt(z,10);H>0&&(p=`Verification checks did not fully pass (${H} attempt(s)). Review carefully.`)}catch{}let f=Z(e).CLANCY_GIT_PLATFORM,m=ce(f),h=`feat(${t.key}): ${t.title}`,_=Ye(e,{key:t.key,title:t.title,description:t.description,provider:e.provider},n,p,u);if(m.host!=="none"&&m.host!=="unknown"&&m.host!=="azure"){let y=await Re(e,m,r,n,h,_);if(y?.ok)console.log(N(` \u2713 PR created: ${y.url}`)),s||R(process.cwd(),t.key,t.title,"PR_CREATED",y.number,i);else if(y&&!y.ok&&y.alreadyExists)console.log(v(` \u26A0 A PR/MR already exists for ${r}. Branch pushed.`)),s||R(process.cwd(),t.key,t.title,"PUSHED",void 0,i);else if(y&&!y.ok){console.log(v(` \u26A0 PR/MR creation failed: ${y.error}`));let z=Rr(m,r,n);console.log(z?$(` Create one manually: ${z}`):$(" Branch pushed \u2014 create a PR/MR manually.")),s||R(process.cwd(),t.key,t.title,"PUSHED",void 0,i)}else{let z=Rr(m,r,n);console.log(z?$(` Create a PR: ${z}`):$(" Branch pushed to remote. Create a PR/MR manually.")),s||R(process.cwd(),t.key,t.title,"PUSHED",void 0,i)}}else m.host==="none"?(console.log(v(`\u26A0 No git remote configured. Branch available locally: ${r}`)),s||R(process.cwd(),t.key,t.title,"LOCAL",void 0,i)):(console.log($(" Branch pushed to remote. Create a PR/MR manually.")),s||R(process.cwd(),t.key,t.title,"PUSHED",void 0,i));if(e.provider!=="github"&&a){let y=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;y&&await a.transitionTicket(t,y)}return L(n),!0}async function bl(e,t,r,n,o,s){console.log(""),console.log(N(`\u{1F389} All children of ${t} are done!`)),console.log($(` Creating epic PR: ${n} \u2192 ${o}`));let i=j(process.cwd(),"PR_CREATED"),a=j(process.cwd(),"DONE"),u=j(process.cwd(),"REWORK"),l=j(process.cwd(),"PUSHED"),p=[...i,...a,...u,...l].filter(H=>H.parent===t),f=Z(e).CLANCY_GIT_PLATFORM,m=ce(f),h=`feat(${t}): ${r}`,_=Ju(t,r,p,e.provider);if(m.host==="none"||m.host==="unknown"||m.host==="azure")return console.log(v("\u26A0 Cannot create epic PR \u2014 no supported git remote detected.")),console.log($(` Push manually: git push origin ${n}`)),console.log($(` Then create a PR targeting ${o}`)),!1;let y=await Re(e,m,n,o,h,_);if(y?.ok){if(console.log(N(` \u2713 Epic PR created: ${y.url}`)),R(process.cwd(),t,r,"EPIC_PR_CREATED",y.number),e.provider!=="github"&&s){let H=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;H&&await s.transitionTicket({key:t,title:r,description:"",parentInfo:"none",blockers:"None"},H)}return!0}if(y&&!y.ok&&y.alreadyExists)return console.log(v(` \u26A0 An epic PR already exists for ${n}.`)),R(process.cwd(),t,r,"EPIC_PR_CREATED"),!0;console.log(v(`\u26A0 Epic PR creation failed: ${y?.error??"unknown error"}`)),console.log($(" Create it manually:")),console.log($(` Branch: ${n} \u2192 ${o}`));let z=Rr(m,n,o);return z&&console.log($(` ${z}`)),!1}async function wl(e){let t=e.board,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,s=e.baseBranch,i=e.hasParent,a=e.isRework??!1;e.originalBranch=Fa();let u=!1;if(i&&!a){let p=await t.fetchChildrenStatus(r.parentInfo,r.linearIssueId,r.key);p&&p.total===1&&(u=!0)}e.skipEpicBranch=u;let l=i&&!u?o:s;if(e.effectiveTarget=l,a){if(i&&!u){if(!xa(o,s))return e.originalBranch&&L(e.originalBranch),!1}else Yr(l,s);Mt(n)?L(n):(L(l),L(n,!0))}else if(i&&!u){if(!xa(o,s))return e.originalBranch&&L(e.originalBranch),!1;L(o),L(n,!0)}else Yr(s,s),L(s),L(n,!0);try{Ya(e.cwd,{pid:process.pid,ticketKey:r.key,ticketTitle:r.title,ticketBranch:n,targetBranch:l,parentKey:r.parentInfo,description:(r.description??"").slice(0,2e3),startedAt:new Date().toISOString()}),e.lockOwner=!0}catch{console.log($(" (warning: could not write lock file \u2014 crash recovery disabled)"))}return!0}function Wg(e){return e.includes("hooks.slack.com")}function Vg(e){return JSON.stringify({text:e})}function Qg(e){return JSON.stringify({type:"message",attachments:[{contentType:"application/vnd.microsoft.card.adaptive",content:{$schema:"http://adaptivecards.io/schemas/adaptive-card.json",type:"AdaptiveCard",version:"1.4",body:[{type:"TextBlock",text:e,wrap:!0}]}}]})}async function $l(e,t){let r=Wg(e)?Vg(t):Qg(t);try{let n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:r});n.ok||console.warn(`\u26A0 Notification failed: HTTP ${n.status}`)}catch{console.warn("\u26A0 Notification failed: could not reach webhook")}}async function xl(e){let t=e.config,r=e.ticket,n=Ce(Date.now()-e.startTime);console.log(""),console.log(N(`\u{1F3C1} ${r.key} complete`)+$(` (${n})`)),console.log($(` "Bake 'em away, toys."`));let o=t.env.CLANCY_NOTIFY_WEBHOOK;return o&&await $l(o,`\u2713 Clancy completed [${r.key}] ${r.title}`),!0}import{appendFileSync as Xg,mkdirSync as ey}from"node:fs";import{dirname as ty,join as ry}from"node:path";function kl(e,t,r,n=6600){let o=ry(e,".clancy","costs.log");ey(ty(o),{recursive:!0});let s=new Date(r).getTime(),i=Date.now(),a=Number.isNaN(s)?0:Math.max(0,i-s),u=Math.round(a/6e4),l=Math.round(u*n),f=`${new Date().toISOString()} | ${t} | ${u}min | ~${l} tokens (estimated)
|
|
47
|
-
`;Xg(o,f,"utf8")}function Sl(e){let t=e.config,r=e.ticket;try{let n=Ut(e.cwd);if(n){let o=Number(t.env.CLANCY_TOKEN_RATE??"6600");kl(e.cwd,r.key,n.startedAt,Number.isFinite(o)&&o>0?o:6600)}}catch{}return!0}import{mkdirSync as ny,readFileSync as oy,renameSync as sy,writeFileSync as iy}from"node:fs";import{join as vl}from"node:path";function zl(e){return vl(e,".clancy","quality.json")}function Tl(e){try{let t=oy(zl(e),"utf8"),r=JSON.parse(t);if(r&&typeof r.tickets=="object"&&r.tickets!==null&&!Array.isArray(r.tickets))return
|
|
48
|
-
`,"utf8"),sy(n,r)}function Pl(e,t){return e.tickets[t]||(e.tickets[t]={reworkCycles:0,verificationRetries:0}),e.tickets[t]}function El(e,t){try{let r=Tl(e),n=Pl(r,t);n.reworkCycles++,
|
|
46
|
+
`)}import{execFileSync as Ag}from"node:child_process";function Ku(e){let t=e.trim().replace(/\.git$/,""),r=t.match(/^git@([^:]+):(.+)$/),n=t.match(/^(?:https?|ssh):\/\/(?:[^@]+@)?([^/:]+)(?::\d+)?\/(.+)$/),o=r?.[1]??n?.[1],s=r?.[2]??n?.[2];if(!(!o||!s))return{hostname:o,path:s}}function Rg(e){let t=Ku(e);if(!t)return{host:"unknown",url:e};let{hostname:r,path:n}=t;switch(Cg(r)){case"github":{let s=n.split("/");return s.length>=2?{host:"github",owner:s[0],repo:s[1],hostname:r}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:n,hostname:r};case"bitbucket":{let s=n.match(/^scm\/([^/]+)\/(.+)$/);if(s)return{host:"bitbucket-server",projectKey:s[1],repoSlug:s[2],hostname:r};let i=n.split("/");return i.length>=2?{host:"bitbucket",workspace:i[0],repoSlug:i[1],hostname:r}:{host:"unknown",url:e}}case"azure":return{host:"azure",url:e};default:return{host:"unknown",url:e}}}function Cg(e){let t=e.toLowerCase();return t==="github.com"||t.includes("github")?"github":t==="gitlab.com"||t.includes("gitlab")?"gitlab":t==="bitbucket.org"||t.includes("bitbucket")?"bitbucket":t.includes("dev.azure")||t.includes("visualstudio")?"azure":"unknown"}function ce(e){let t;try{t=Ag("git",["remote","get-url","origin"],{encoding:"utf8"}).trim()}catch{return{host:"none"}}return t?e?Ng(t,e):Rg(t):{host:"none"}}function Ng(e,t){let r=Ku(e);if(!r)return{host:"unknown",url:e};let{hostname:n,path:o}=r;switch(t.toLowerCase()){case"github":{let s=o.split("/");return s.length>=2?{host:"github",owner:s[0],repo:s[1],hostname:n}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:o,hostname:n};case"bitbucket":{let s=o.split("/");return s.length>=2?{host:"bitbucket",workspace:s[0],repoSlug:s[1],hostname:n}:{host:"unknown",url:e}}case"bitbucket-server":{let s=o.match(/^scm\/([^/]+)\/(.+)$/);if(s)return{host:"bitbucket-server",projectKey:s[1],repoSlug:s[2],hostname:n};let i=o.split("/");return i.length>=2?{host:"bitbucket-server",projectKey:i[0],repoSlug:i[1],hostname:n}:{host:"unknown",url:e}}default:return{host:"unknown",url:e}}}function St(e,t){if(t)return t.replace(/\/$/,"");switch(e.host){case"github":return e.hostname==="github.com"?"https://api.github.com":`https://${e.hostname}/api/v3`;case"gitlab":return`https://${e.hostname}/api/v4`;case"bitbucket":return"https://api.bitbucket.org/2.0";case"bitbucket-server":return`https://${e.hostname}/rest/api/1.0`;default:return}}var Og=I({id:xe(),links:I({html:w(I({href:w(b())}))}),participants:K(I({state:w(b()),role:b()}))}),Yu=I({values:K(Og)}),Lg=I({content:I({raw:b()}),inline:w(I({path:w(b())})),created_on:b(),user:w(I({nickname:w(b())}))}),_a=I({values:K(Lg)}),Zg=I({id:xe(),links:I({self:w(K(I({href:w(b())})))}),reviewers:K(I({status:b()}))}),Gu=I({values:K(Zg)}),jg=I({text:b(),anchor:w(I({path:w(b())})),createdDate:xe(),author:w(I({slug:w(b())}))}),Dg=I({action:b(),comment:w(jg)}),ba=I({values:K(Dg)});async function Ee(e,t,r,n,o){let s=new AbortController,i=setTimeout(()=>s.abort(),3e4);try{let a=await fetch(e,{method:"POST",headers:{...t,"Content-Type":"application/json"},body:JSON.stringify(r),signal:s.signal});if(!a.ok){let p=await a.text().catch(()=>""),f=o?.(a.status,p)??!1;return{ok:!1,error:`HTTP ${a.status}${p?`: ${p.slice(0,200)}`:""}`,alreadyExists:f}}let u=await a.json(),l=n(u);return!l.url&&!l.number?{ok:!1,error:"PR created but response missing URL and number"}:{ok:!0,url:l.url,number:l.number}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}finally{clearTimeout(i)}}function Ge(e,t){return`Basic ${Buffer.from(`${e}:${t}`).toString("base64")}`}function ie(e){return e.trim().toLowerCase().startsWith("rework:")}function Ae(e){return e.trim().replace(/^rework:\s*/i,"").trim()}async function Wu(e,t,r,n,o,s,i,a){return Ee(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests`,{Authorization:Ge(e,t)},{title:i,description:a,source:{branch:{name:o}},destination:{branch:{name:s}},close_source_branch:!0},u=>{let l=u;return{url:l.links?.html?.href??"",number:l.id??0}},(u,l)=>u===409&&l.includes("already exists"))}async function Vu(e,t,r,n,o,s,i,a){return Ee(`${t}/projects/${r}/repos/${n}/pull-requests`,{Authorization:`Bearer ${e}`},{title:i,description:a,fromRef:{id:`refs/heads/${o}`,repository:{slug:n,project:{key:r}}},toRef:{id:`refs/heads/${s}`,repository:{slug:n,project:{key:r}}}},u=>{let l=u;return{url:l.links?.self?.[0]?.href??"",number:l.id??0}},(u,l)=>u===409&&(l.includes("already exists")||l.includes("Only one pull request")))}async function Qu(e,t,r,n,o,s){try{return(await fetch(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments`,{method:"POST",headers:{Authorization:Ge(e,t),"Content-Type":"application/json"},body:JSON.stringify({content:{raw:s}})})).ok}catch{return!1}}async function Xu(e,t,r,n,o,s){try{return(await fetch(`${t}/projects/${r}/repos/${n}/pull-requests/${o}/comments`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({text:s})})).ok}catch{return!1}}async function el(e,t,r,n,o,s){try{let i=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests?q=source.branch.name="${o}"&state=OPEN`,a=await fetch(i,{headers:{Authorization:Ge(e,t)}});if(!a.ok)return;let u=Yu.parse(await a.json());if(u.values.length===0)return;let l=u.values[0],p=l.links.html?.href??"",f=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${l.id}/comments?pagelen=100`,m=await fetch(f,{headers:{Authorization:Ge(e,t)}});if(!m.ok)return;let h=_a.parse(await m.json()),_=s?h.values.filter(Y=>Y.created_on>s):h.values,y=_.some(Y=>Y.inline!=null),z=_.some(Y=>Y.inline==null&&ie(Y.content.raw));return{changesRequested:y||z,prNumber:l.id,prUrl:p}}catch{return}}async function tl(e,t,r,n,o,s){try{let i=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments?pagelen=100`,a=await fetch(i,{headers:{Authorization:Ge(e,t)}});if(!a.ok)return[];let u=_a.parse(await a.json()),l=s?u.values.filter(f=>f.created_on>s):u.values,p=[];for(let f of l)if(f.inline!=null){let m=f.inline.path?`[${f.inline.path}] `:"";p.push(`${m}${f.content.raw}`)}else ie(f.content.raw)&&p.push(Ae(f.content.raw));return p}catch{return[]}}async function rl(e,t,r,n,o,s){try{let i=`${t}/projects/${r}/repos/${n}/pull-requests?state=OPEN&at=refs/heads/${o}`,a=await fetch(i,{headers:{Authorization:`Bearer ${e}`}});if(!a.ok)return;let u=Gu.parse(await a.json());if(u.values.length===0)return;let l=u.values[0],p=l.links.self?.[0]?.href??"",f=`${t}/projects/${r}/repos/${n}/pull-requests/${l.id}/activities?limit=100`,m=await fetch(f,{headers:{Authorization:`Bearer ${e}`}});if(!m.ok)return;let h=ba.parse(await m.json()),_=s?Date.parse(s):void 0,y=h.values.filter(C=>C.action==="COMMENTED"&&C.comment&&(_==null||C.comment.createdDate>_)),z=y.some(C=>C.comment.anchor!=null),H=y.some(C=>C.comment.anchor==null&&ie(C.comment.text));return{changesRequested:z||H,prNumber:l.id,prUrl:p}}catch{return}}async function nl(e,t,r,n,o,s){try{let i=`${t}/projects/${r}/repos/${n}/pull-requests/${o}/activities?limit=100`,a=await fetch(i,{headers:{Authorization:`Bearer ${e}`}});if(!a.ok)return[];let u=ba.parse(await a.json()),l=s?Date.parse(s):void 0,p=[];for(let f of u.values){if(f.action!=="COMMENTED"||!f.comment||l!=null&&f.comment.createdDate<=l)continue;let m=f.comment;if(m.anchor!=null){let h=m.anchor.path?`[${m.anchor.path}] `:"";p.push(`${h}${m.text}`)}else ie(m.text)&&p.push(Ae(m.text))}return p}catch{return[]}}var Mg=c.object({number:c.number(),title:c.string(),body:c.optional(c.nullable(c.string())),pull_request:c.optional(c.unknown()),milestone:c.optional(c.nullable(c.object({title:c.string()}))),labels:c.optional(c.array(c.object({name:c.optional(c.string())})))}),ol=c.array(Mg),Bg=c.object({id:c.number(),body:c.optional(c.nullable(c.string())),created_at:c.string(),user:c.optional(c.object({login:c.string()}))}),wa=c.array(Bg),Ug=c.object({number:c.number(),html_url:c.string(),state:c.string()}),sl=c.array(Ug),Fg=c.object({state:c.string(),user:c.object({login:c.string()}),submitted_at:c.string()}),il=c.array(Fg),Hg=c.object({body:c.optional(c.nullable(c.string())),path:c.optional(c.string()),created_at:c.optional(c.string()),user:c.optional(c.object({login:c.string()}))}),$a=c.array(Hg);var D="https://api.github.com";async function Er(e,t,r,n){try{let o=new AbortController,s=setTimeout(()=>o.abort(),1e4),i=await fetch(e,{headers:t,signal:o.signal});if(clearTimeout(s),i.ok)return{ok:!0};let a=r[i.status];return a?{ok:!1,error:a}:{ok:!1,error:`\u2717 HTTP ${i.status}`}}catch{return{ok:!1,error:n}}}function U(e){return{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}}function Se(e){return{Authorization:`Basic ${e}`,Accept:"application/json"}}function Ar(e){return e?.trimStart().startsWith("[clancy]")??!1}async function al(e,t,r,n,o=D,s){try{let i=U(e),a=await fetch(`${o}/repos/${t}/pulls?head=${n}:${r}&state=open`,{headers:i});if(!a.ok)return;let u=sl.parse(await a.json());if(u.length===0)return;let l=u[0],p=s?`&since=${s}`:"",[f,m]=await Promise.all([fetch(`${o}/repos/${t}/pulls/${l.number}/comments?per_page=100${p}`,{headers:i}),fetch(`${o}/repos/${t}/issues/${l.number}/comments?per_page=100${p}`,{headers:i})]);if(!f.ok||!m.ok)return;let h=$a.parse(await f.json()),_=wa.parse(await m.json()),y=h.filter(O=>!Ar(O.body)),z=_.filter(O=>!Ar(O.body)),H=y.length>0,Y=z.some(O=>O.body&&ie(O.body)),C=H||Y,M;if(!C)try{let O=await fetch(`${o}/repos/${t}/pulls/${l.number}/reviews?per_page=100`,{headers:i});if(O.ok){let Ba=il.parse(await O.json()),jt=new Map;for(let le of Ba)le.state==="PENDING"||le.state==="DISMISSED"||jt.set(le.user.login,le.state);let Ua=[...jt.entries()].filter(([,le])=>le==="CHANGES_REQUESTED");Ua.length>0&&(C=!0,M=Ua.map(([le])=>le))}}catch{}return{changesRequested:C,prNumber:l.number,prUrl:l.html_url,reviewers:M}}catch{return}}async function cl(e,t,r,n=D,o){try{let s=U(e),i=o?`&since=${o}`:"",[a,u]=await Promise.all([fetch(`${n}/repos/${t}/pulls/${r}/comments?per_page=100${i}`,{headers:s}),fetch(`${n}/repos/${t}/issues/${r}/comments?per_page=100${i}`,{headers:s})]);if(!a.ok||!u.ok)return[];let l=$a.parse(await a.json()),p=wa.parse(await u.json()),f=l.filter(_=>!Ar(_.body)),m=p.filter(_=>!Ar(_.body)),h=[];for(let _ of f){if(!_.body)continue;let y=_.path?`[${_.path}] `:"";h.push(`${y}${_.body}`)}for(let _ of m)_.body&&ie(_.body)&&h.push(Ae(_.body));return h}catch{return[]}}async function ul(e,t,r,n,o=D){try{return(await fetch(`${o}/repos/${t}/issues/${r}/comments`,{method:"POST",headers:{...U(e),"Content-Type":"application/json"},body:JSON.stringify({body:n})})).ok}catch{return!1}}async function ll(e,t,r,n,o=D){try{return(await fetch(`${o}/repos/${t}/pulls/${r}/requested_reviewers`,{method:"POST",headers:{...U(e),"Content-Type":"application/json"},body:JSON.stringify({reviewers:n})})).ok}catch{return!1}}async function pl(e,t,r,n,o,s,i=D){return Ee(`${i}/repos/${t}/pulls`,U(e),{title:o,head:r,base:n,body:s},a=>{let u=a;return{url:u.html_url??"",number:u.number??0}},(a,u)=>a===422&&u.includes("already exists"))}var qg=I({iid:xe(),web_url:b(),detailed_merge_status:w(b())}),fl=K(qg),Jg=I({body:b(),resolvable:Je(),resolved:w(Je()),system:Je(),type:w(Sr(b())),created_at:w(b()),position:w(I({new_path:w(b())})),author:w(I({username:b()}))}),Kg=I({id:w(b()),notes:K(Jg)}),xa=K(Kg);async function dl(e,t,r,n,o,s,i){let a=encodeURIComponent(r);return Ee(`${t}/projects/${a}/merge_requests`,{"PRIVATE-TOKEN":e},{source_branch:n,target_branch:o,title:s,description:i,remove_source_branch:!0},u=>{let l=u;return{url:l.web_url??"",number:l.iid??0}},(u,l)=>u===409&&l.includes("already exists"))}async function ml(e,t,r,n,o){try{let s=encodeURIComponent(r);return(await fetch(`${t}/projects/${s}/merge_requests/${n}/notes`,{method:"POST",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({body:o})})).ok}catch{return!1}}async function hl(e,t,r,n,o){let s=encodeURIComponent(r),i=0;for(let a of o)try{(await fetch(`${t}/projects/${s}/merge_requests/${n}/discussions/${a}`,{method:"PUT",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({resolved:!0})})).ok&&i++}catch{}return i}async function gl(e,t,r,n,o){try{let s=encodeURIComponent(r),i=`${t}/projects/${s}/merge_requests?source_branch=${n}&state=opened`,a=await fetch(i,{headers:{"PRIVATE-TOKEN":e}});if(!a.ok)return;let u=fl.parse(await a.json());if(u.length===0)return;let l=u[0],p=`${t}/projects/${s}/merge_requests/${l.iid}/discussions?per_page=100`,f=await fetch(p,{headers:{"PRIVATE-TOKEN":e}});if(!f.ok)return;let m=xa.parse(await f.json()),h=!1;for(let _ of m){for(let y of _.notes)if(!y.system&&!(o&&y.created_at&&y.created_at<=o)){if(y.type==="DiffNote"&&y.resolvable!==!1&&y.resolved!==!0){h=!0;break}if(ie(y.body)){h=!0;break}}if(h)break}return{changesRequested:h,prNumber:l.iid,prUrl:l.web_url}}catch{return}}async function yl(e,t,r,n,o){try{let s=encodeURIComponent(r),i=`${t}/projects/${s}/merge_requests/${n}/discussions?per_page=100`,a=await fetch(i,{headers:{"PRIVATE-TOKEN":e}});if(!a.ok)return{comments:[],discussionIds:[]};let u=xa.parse(await a.json()),l=[],p=[];for(let f of u){let m=!1;for(let h of f.notes)if(!h.system&&!(o&&h.created_at&&h.created_at<=o))if(h.type==="DiffNote"&&h.resolvable!==!1&&h.resolved!==!0){let _=h.position?.new_path?`[${h.position.new_path}] `:"";l.push(`${_}${h.body}`),m=!0}else ie(h.body)&&(l.push(Ae(h.body)),m=!0);m&&f.id&&p.push(f.id)}return{comments:l,discussionIds:p}}catch{return{comments:[],discussionIds:[]}}}function vt(e,t){let r=Z(e);switch(t.host){case"github":if(r.GITHUB_TOKEN)return{token:r.GITHUB_TOKEN};break;case"gitlab":if(r.GITLAB_TOKEN)return{token:r.GITLAB_TOKEN};break;case"bitbucket":if(r.BITBUCKET_USER&&r.BITBUCKET_TOKEN)return{token:r.BITBUCKET_TOKEN,username:r.BITBUCKET_USER};break;case"bitbucket-server":if(r.BITBUCKET_TOKEN)return{token:r.BITBUCKET_TOKEN};break}}async function Re(e,t,r,n,o,s){let i=vt(e,t);if(!i)return;let a=St(t,Z(e).CLANCY_GIT_API_URL);if(a)switch(t.host){case"github":return pl(i.token,`${t.owner}/${t.repo}`,r,n,o,s,a);case"gitlab":return dl(i.token,a,t.projectPath,r,n,o,s);case"bitbucket":return Wu(i.username,i.token,t.workspace,t.repoSlug,r,n,o,s);case"bitbucket-server":return Vu(i.token,a,t.projectKey,t.repoSlug,r,n,o,s);default:return}}function Rr(e,t,r){let n=encodeURIComponent(t),o=encodeURIComponent(r);if(e.host==="github")return`https://${e.hostname}/${e.owner}/${e.repo}/compare/${o}...${n}`;if(e.host==="gitlab")return`https://${e.hostname}/${e.projectPath}/-/merge_requests/new?merge_request[source_branch]=${n}&merge_request[target_branch]=${o}`;if(e.host==="bitbucket")return`https://${e.hostname}/${e.workspace}/${e.repoSlug}/pull-requests/new?source=${n}&dest=${o}`;if(e.host==="bitbucket-server")return`https://${e.hostname}/projects/${e.projectKey}/repos/${e.repoSlug}/pull-requests?create&sourceBranch=refs/heads/${n}&targetBranch=refs/heads/${o}`}function ka(e,t){let r=Ha(e),n=Xe(e);if(r)return Mt(e)?!0:(console.log(v(`\u26A0 Epic branch ${e} exists on remote but could not be fetched.`)),!1);if(n)return console.log(Oe(`\u2717 Epic branch ${e} exists locally but not on remote.`)),console.log(v(" This may contain work from a previous Clancy version that squash-merged locally.")),console.log($(" To preserve this work, push it manually:")),console.log($(` git push -u origin ${e}`)),console.log($(" Then re-run /clancy:once to continue.")),!1;try{if(_l("git",["fetch","origin",t],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}),_l("git",["checkout","-b",e,`origin/${t}`],{encoding:"utf8"}),et(e))console.log(N(` \u2713 Created epic branch ${e}`));else return console.log(v(`\u26A0 Created ${e} locally but could not push to origin.`)),!1;return!0}catch(o){return console.log(Oe(`\u2717 Could not create epic branch: ${o instanceof Error?o.message:String(o)}`)),!1}}async function Sa(e,t,r,n,o,s=!1,i,a,u){if(!et(r)){console.log(v(`\u26A0 Could not push ${r} to origin.`)),console.log($(" The branch is still available locally. Push manually:")),console.log($(` git push -u origin ${r}`)),s||R(process.cwd(),t.key,t.title,"PUSH_FAILED",void 0,i),L(n);let y=Ce(Date.now()-o);return console.log(""),console.log(v(`\u26A0 ${t.key} implemented but push failed`)+$(` (${y})`)),!1}console.log(N(` \u2713 Pushed ${r}`));let p;try{let y=Gg(process.cwd(),".clancy","verify-attempt.txt"),z=Yg(y,"utf8").trim(),H=parseInt(z,10);H>0&&(p=`Verification checks did not fully pass (${H} attempt(s)). Review carefully.`)}catch{}let f=Z(e).CLANCY_GIT_PLATFORM,m=ce(f),h=`feat(${t.key}): ${t.title}`,_=Ye(e,{key:t.key,title:t.title,description:t.description,provider:e.provider},n,p,u);if(m.host!=="none"&&m.host!=="unknown"&&m.host!=="azure"){let y=await Re(e,m,r,n,h,_);if(y?.ok)console.log(N(` \u2713 PR created: ${y.url}`)),s||R(process.cwd(),t.key,t.title,"PR_CREATED",y.number,i);else if(y&&!y.ok&&y.alreadyExists)console.log(v(` \u26A0 A PR/MR already exists for ${r}. Branch pushed.`)),s||R(process.cwd(),t.key,t.title,"PUSHED",void 0,i);else if(y&&!y.ok){console.log(v(` \u26A0 PR/MR creation failed: ${y.error}`));let z=Rr(m,r,n);console.log(z?$(` Create one manually: ${z}`):$(" Branch pushed \u2014 create a PR/MR manually.")),s||R(process.cwd(),t.key,t.title,"PUSHED",void 0,i)}else{let z=Rr(m,r,n);console.log(z?$(` Create a PR: ${z}`):$(" Branch pushed to remote. Create a PR/MR manually.")),s||R(process.cwd(),t.key,t.title,"PUSHED",void 0,i)}}else m.host==="none"?(console.log(v(`\u26A0 No git remote configured. Branch available locally: ${r}`)),s||R(process.cwd(),t.key,t.title,"LOCAL",void 0,i)):(console.log($(" Branch pushed to remote. Create a PR/MR manually.")),s||R(process.cwd(),t.key,t.title,"PUSHED",void 0,i));if(e.provider!=="github"&&a){let y=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;y&&await a.transitionTicket(t,y)}return L(n),!0}async function bl(e,t,r,n,o,s){console.log(""),console.log(N(`\u{1F389} All children of ${t} are done!`)),console.log($(` Creating epic PR: ${n} \u2192 ${o}`));let i=j(process.cwd(),"PR_CREATED"),a=j(process.cwd(),"DONE"),u=j(process.cwd(),"REWORK"),l=j(process.cwd(),"PUSHED"),p=[...i,...a,...u,...l].filter(H=>H.parent===t),f=Z(e).CLANCY_GIT_PLATFORM,m=ce(f),h=`feat(${t}): ${r}`,_=Ju(t,r,p,e.provider);if(m.host==="none"||m.host==="unknown"||m.host==="azure")return console.log(v("\u26A0 Cannot create epic PR \u2014 no supported git remote detected.")),console.log($(` Push manually: git push origin ${n}`)),console.log($(` Then create a PR targeting ${o}`)),!1;let y=await Re(e,m,n,o,h,_);if(y?.ok){if(console.log(N(` \u2713 Epic PR created: ${y.url}`)),R(process.cwd(),t,r,"EPIC_PR_CREATED",y.number),e.provider!=="github"&&s){let H=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;H&&await s.transitionTicket({key:t,title:r,description:"",parentInfo:"none",blockers:"None"},H)}return!0}if(y&&!y.ok&&y.alreadyExists)return console.log(v(` \u26A0 An epic PR already exists for ${n}.`)),R(process.cwd(),t,r,"EPIC_PR_CREATED"),!0;console.log(v(`\u26A0 Epic PR creation failed: ${y?.error??"unknown error"}`)),console.log($(" Create it manually:")),console.log($(` Branch: ${n} \u2192 ${o}`));let z=Rr(m,n,o);return z&&console.log($(` ${z}`)),!1}async function wl(e){let t=e.board,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,s=e.baseBranch,i=e.hasParent,a=e.isRework??!1;e.originalBranch=Fa();let u=!1;if(i&&!a){let p=await t.fetchChildrenStatus(r.parentInfo,r.linearIssueId,r.key);p&&p.total===1&&(u=!0)}e.skipEpicBranch=u;let l=i&&!u?o:s;if(e.effectiveTarget=l,a){if(i&&!u){if(!ka(o,s))return e.originalBranch&&L(e.originalBranch),!1}else Gr(l,s);Mt(n)?L(n):(L(l),L(n,!0))}else if(i&&!u){if(!ka(o,s))return e.originalBranch&&L(e.originalBranch),!1;L(o),L(n,!0)}else Gr(s,s),L(s),L(n,!0);try{Ya(e.cwd,{pid:process.pid,ticketKey:r.key,ticketTitle:r.title,ticketBranch:n,targetBranch:l,parentKey:r.parentInfo,description:(r.description??"").slice(0,2e3),startedAt:new Date().toISOString()}),e.lockOwner=!0}catch{console.log($(" (warning: could not write lock file \u2014 crash recovery disabled)"))}return!0}function Wg(e){return e.includes("hooks.slack.com")}function Vg(e){return JSON.stringify({text:e})}function Qg(e){return JSON.stringify({type:"message",attachments:[{contentType:"application/vnd.microsoft.card.adaptive",content:{$schema:"http://adaptivecards.io/schemas/adaptive-card.json",type:"AdaptiveCard",version:"1.4",body:[{type:"TextBlock",text:e,wrap:!0}]}}]})}async function $l(e,t){let r=Wg(e)?Vg(t):Qg(t);try{let n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:r});n.ok||console.warn(`\u26A0 Notification failed: HTTP ${n.status}`)}catch{console.warn("\u26A0 Notification failed: could not reach webhook")}}async function xl(e){let t=e.config,r=e.ticket,n=Ce(Date.now()-e.startTime);console.log(""),console.log(N(`\u{1F3C1} ${r.key} complete`)+$(` (${n})`)),console.log($(` "Bake 'em away, toys."`));let o=t.env.CLANCY_NOTIFY_WEBHOOK;return o&&await $l(o,`\u2713 Clancy completed [${r.key}] ${r.title}`),!0}import{appendFileSync as Xg,mkdirSync as ey}from"node:fs";import{dirname as ty,join as ry}from"node:path";function kl(e,t,r,n=6600){let o=ry(e,".clancy","costs.log");ey(ty(o),{recursive:!0});let s=new Date(r).getTime(),i=Date.now(),a=Number.isNaN(s)?0:Math.max(0,i-s),u=Math.round(a/6e4),l=Math.round(u*n),f=`${new Date().toISOString()} | ${t} | ${u}min | ~${l} tokens (estimated)
|
|
47
|
+
`;Xg(o,f,"utf8")}function Sl(e){let t=e.config,r=e.ticket;try{let n=Ut(e.cwd);if(n){let o=Number(t.env.CLANCY_TOKEN_RATE??"6600");kl(e.cwd,r.key,n.startedAt,Number.isFinite(o)&&o>0?o:6600)}}catch{}return!0}import{mkdirSync as ny,readFileSync as oy,renameSync as sy,writeFileSync as iy}from"node:fs";import{join as vl}from"node:path";function zl(e){return vl(e,".clancy","quality.json")}function Tl(e){try{let t=oy(zl(e),"utf8"),r=JSON.parse(t);if(r&&typeof r.tickets=="object"&&r.tickets!==null&&!Array.isArray(r.tickets))return va(r),r}catch{}return{tickets:{},summary:{totalTickets:0,avgReworkCycles:0,avgVerificationRetries:0,avgDuration:0}}}function va(e){let t=Object.values(e.tickets),r=t.length;if(r===0){e.summary={totalTickets:0,avgReworkCycles:0,avgVerificationRetries:0,avgDuration:0};return}let n=0,o=0,s=0,i=0;for(let a of t)n+=a.reworkCycles,o+=a.verificationRetries,a.duration!=null&&(s+=a.duration,i++);e.summary={totalTickets:r,avgReworkCycles:Math.round(n/r*100)/100,avgVerificationRetries:Math.round(o/r*100)/100,avgDuration:i>0?Math.round(s/i*100)/100:0}}function Il(e,t){let r=zl(e),n=r+".tmp";ny(vl(e,".clancy"),{recursive:!0}),iy(n,JSON.stringify(t,null,2)+`
|
|
48
|
+
`,"utf8"),sy(n,r)}function Pl(e,t){return e.tickets[t]||(e.tickets[t]={reworkCycles:0,verificationRetries:0}),e.tickets[t]}function El(e,t){try{let r=Tl(e),n=Pl(r,t);n.reworkCycles++,va(r),Il(e,r)}catch{}}function Al(e,t,r){try{let n=Tl(e),o=Pl(n,t);o.deliveredAt=new Date().toISOString(),o.duration=r,va(n),Il(e,n)}catch{}}function We(e,t){return e==="github"?`feature/issue-${t.replace("#","")}`:`feature/${t.toLowerCase()}`}function Ve(e,t,r){if(!r)return t;if(e==="github"){let n=r.match(/^#(\d+)$/);return n?`epic/${n[1]}`:`milestone/${r.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}`}return`epic/${r.toLowerCase()}`}async function Rl(e){let t=j(process.cwd(),"PR_CREATED"),r=j(process.cwd(),"REWORK"),n=j(process.cwd(),"PUSHED"),o=j(process.cwd(),"PUSH_FAILED"),s=[...t,...r,...n,...o];if(s.length===0)return;let i=Z(e).CLANCY_GIT_PLATFORM,a=ce(i);if(a.host==="none"||a.host==="unknown"||a.host==="azure")return;let u=vt(e,a);if(!u)return;let l=St(a,Z(e).CLANCY_GIT_API_URL);if(!l)return;let p=s.slice(0,5);for(let f of p){let m=We(e.provider,f.key),h;if(f.timestamp){let y=new Date(f.timestamp.replace(" ","T")+"Z");h=Number.isNaN(y.getTime())?void 0:y.toISOString()}let _;switch(a.host){case"github":_=await al(u.token,`${a.owner}/${a.repo}`,m,a.owner,l,h);break;case"gitlab":_=await gl(u.token,l,a.projectPath,m,h);break;case"bitbucket":_=await el(u.username,u.token,a.workspace,a.repoSlug,m,h);break;case"bitbucket-server":_=await rl(u.token,l,a.projectKey,a.repoSlug,m,h);break}if(_?.changesRequested){let y=[],z;switch(a.host){case"github":y=await cl(u.token,`${a.owner}/${a.repo}`,_.prNumber,l,h);break;case"gitlab":{let Y=await yl(u.token,l,a.projectPath,_.prNumber,h);y=Y.comments,z=Y.discussionIds;break}case"bitbucket":y=await tl(u.username,u.token,a.workspace,a.repoSlug,_.prNumber,h);break;case"bitbucket-server":y=await nl(u.token,l,a.projectKey,a.repoSlug,_.prNumber,h);break}return{ticket:{key:f.key,title:f.summary,description:f.summary,parentInfo:f.parent??"none",blockers:"None"},feedback:y,prNumber:_.prNumber,discussionIds:z,reviewers:_.reviewers??[]}}}}function ay(e){if(e.length===0)return"[clancy] Rework pushed addressing reviewer feedback.";let t=e.length,r=e.slice(0,3).map(o=>`- ${o.slice(0,80)}`).join(`
|
|
49
49
|
`),n=e.length>3?`
|
|
50
50
|
- ...`:"";return`[clancy] Rework pushed addressing ${t} feedback item${t!==1?"s":""}.
|
|
51
51
|
|
|
52
|
-
${r}${n}`}async function Cl(e,t,r,n,o){let s=Z(e).CLANCY_GIT_PLATFORM,i=ce(s);if(i.host==="none"||i.host==="unknown"||i.host==="azure")return;let a=vt(e,i);if(!a)return;let u=St(i,Z(e).CLANCY_GIT_API_URL);if(!u)return;let l=ay(r);try{let p=!1;switch(i.host){case"github":p=await ul(a.token,`${i.owner}/${i.repo}`,t,l,u);break;case"gitlab":p=await ml(a.token,u,i.projectPath,t,l);break;case"bitbucket":p=await Qu(a.username,a.token,i.workspace,i.repoSlug,t,l);break;case"bitbucket-server":p=await Xu(a.token,u,i.projectKey,i.repoSlug,t,l);break}p&&console.log($(" \u2713 Posted rework comment"))}catch{}if(i.host==="gitlab"&&n&&n.length>0)try{let p=await hl(a.token,u,i.projectPath,t,n);p>0&&console.log($(` \u2713 Resolved ${p} discussion thread${p!==1?"s":""}`))}catch{}if(i.host==="github"&&o&&o.length>0)try{await ll(a.token,`${i.owner}/${i.repo}`,t,o,u)&&console.log($(` \u2713 Re-requested review from ${o.join(", ")}`))}catch{}}async function Nl(e){let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.effectiveTarget,s=e.hasParent,i=e.skipEpicBranch??!1,a=e.isRework??!1,u=s&&!i?r.parentInfo:void 0,l=s&&i?r.parentInfo:void 0,p=l&&/^#\d+$/.test(l),f=l&&t.provider==="github"&&!p?void 0:l;if(a){if(!await
|
|
52
|
+
${r}${n}`}async function Cl(e,t,r,n,o){let s=Z(e).CLANCY_GIT_PLATFORM,i=ce(s);if(i.host==="none"||i.host==="unknown"||i.host==="azure")return;let a=vt(e,i);if(!a)return;let u=St(i,Z(e).CLANCY_GIT_API_URL);if(!u)return;let l=ay(r);try{let p=!1;switch(i.host){case"github":p=await ul(a.token,`${i.owner}/${i.repo}`,t,l,u);break;case"gitlab":p=await ml(a.token,u,i.projectPath,t,l);break;case"bitbucket":p=await Qu(a.username,a.token,i.workspace,i.repoSlug,t,l);break;case"bitbucket-server":p=await Xu(a.token,u,i.projectKey,i.repoSlug,t,l);break}p&&console.log($(" \u2713 Posted rework comment"))}catch{}if(i.host==="gitlab"&&n&&n.length>0)try{let p=await hl(a.token,u,i.projectPath,t,n);p>0&&console.log($(` \u2713 Resolved ${p} discussion thread${p!==1?"s":""}`))}catch{}if(i.host==="github"&&o&&o.length>0)try{await ll(a.token,`${i.owner}/${i.repo}`,t,o,u)&&console.log($(` \u2713 Re-requested review from ${o.join(", ")}`))}catch{}}async function Nl(e){let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.effectiveTarget,s=e.hasParent,i=e.skipEpicBranch??!1,a=e.isRework??!1,u=s&&!i?r.parentInfo:void 0,l=s&&i?r.parentInfo:void 0,p=l&&/^#\d+$/.test(l),f=l&&t.provider==="github"&&!p?void 0:l;if(a){if(!await Sa(t,r,n,o,e.startTime,!0,u,e.board))return R(e.cwd,r.key,r.title,"PUSH_FAILED",void 0,u),!1;R(e.cwd,r.key,r.title,"REWORK",e.reworkPrNumber,u),El(e.cwd,r.key),e.reworkPrNumber!=null&&await Cl(t,e.reworkPrNumber,e.prFeedback??[],e.reworkDiscussionIds,e.reworkReviewers)}else{if(!await Sa(t,r,n,o,e.startTime,!1,u,e.board,f))return!1;Al(e.cwd,r.key,Date.now()-e.startTime)}return!0}function Ol(e){if(!e.dryRun)return!0;let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,s=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(v("\u2500\u2500 Dry Run \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(` Ticket: ${Ne(`[${r.key}]`)} ${r.title}`),e.isRework&&console.log(" Mode: Rework"),console.log(` ${s}:${" ".repeat(14-s.length)}${r.parentInfo}`),t.provider!=="github"&&console.log(` Blockers: ${r.blockers}`),console.log(` Target branch: ${n} \u2192 ${o}`),r.description&&console.log(` Description: ${r.description}`),console.log(v("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log($(" No changes made. Remove --dry-run to run for real.")),!1}async function Ll(e){let t=e.config,r=e.board;try{let n=j(e.cwd,"PR_CREATED"),o=j(e.cwd,"REWORK"),s=j(e.cwd,"PUSHED"),i=[...n,...o,...s],a=new Set(j(e.cwd,"EPIC_PR_CREATED").map(p=>p.key)),u=new Set(i.map(p=>p.parent).filter(p=>!!p).filter(p=>!a.has(p))),l=t.env.CLANCY_BASE_BRANCH??"main";for(let p of u){let f=await r.fetchChildrenStatus(p);if(f&&f.incomplete===0&&f.total>0){let m=Ve(t.provider,l,p),h=await bl(t,p,p,m,l,r);console.log(h?N(` \u2713 Epic ${p} complete \u2014 PR created`):v(`\u26A0 Epic PR creation failed for ${p}. Create manually:
|
|
53
53
|
git push origin ${m}
|
|
54
54
|
Then create a PR targeting ${l}`))}}}catch{}return!0}import{spawnSync as Zl}from"node:child_process";function jl(e,t){let r=["-p","--dangerously-skip-permissions"];t&&r.push("--model",t);let n=Zl("claude",r,{input:e,stdio:["pipe","pipe","pipe"],encoding:"utf8"});return{stdout:n.stdout??"",ok:n.status===0&&!n.error}}function Dl(e,t){let r=["--dangerously-skip-permissions"];t&&r.push("--model",t);let n=Zl("claude",r,{input:e,stdio:["pipe","inherit","inherit"],encoding:"utf8"});return n.status===0&&!n.error}function cy(e){return["You are evaluating whether a ticket can be implemented as pure code changes in a repository.","",`Ticket: [${e.key}] ${e.title}`,"Description:",e.description,"","Can this ticket be completed entirely through code changes committed to a git repository?","","Answer INFEASIBLE if the ticket requires ANY of:","- Manual testing or configuration in external tools or admin panels","- Access to external services, APIs, or platforms not available in the codebase","- Physical, hardware, or infrastructure changes","- Design assets that do not yet exist","- Deployment or infrastructure changes outside the repository","- Human judgment calls that require stakeholder input","","Answer with exactly one line in this format:","FEASIBLE","or","INFEASIBLE: one-line reason","","Do not include any other text."].join(`
|
|
55
55
|
`)}function uy(e){let t=e.trim().split(`
|
|
@@ -117,9 +117,9 @@ If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.
|
|
|
117
117
|
2. Follow the conventions in GIT.md exactly
|
|
118
118
|
3. Implement the ${e.provider==="github"?"issue":"ticket"} fully
|
|
119
119
|
4. Commit your work following the conventions in GIT.md
|
|
120
|
-
5. When done, confirm you are finished.`}function ql(e){let t=e.config,r=e.ticket,n=e.isRework??!1,o=e.targetBranch,s=t.env.CLANCY_TDD==="true",i;n?i=Fl({key:r.key,title:r.title,description:r.description,provider:t.provider,feedbackComments:e.prFeedback??[],previousContext:qa(o),tdd:s}):i=Hl({provider:t.provider,key:r.key,title:r.title,description:r.description,parentInfo:r.parentInfo,blockers:t.provider!=="github"?r.blockers:void 0,tdd:s}),process.env.CLANCY_ONCE_ACTIVE="1";let a;try{a=Dl(i,t.env.CLANCY_MODEL)}finally{delete process.env.CLANCY_ONCE_ACTIVE}return a?!0:(console.log(v("\u26A0 Claude session exited with an error. Skipping merge.")),!1)}import{execFileSync as
|
|
121
|
-
`)){let n=r.trim();if(!n||n.startsWith("#"))continue;let o=n.indexOf("=");if(o===-1)continue;let s=n.slice(0,o).trim(),i=n.slice(o+1).trim();i.length>=2&&(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),t[s]=i}return t}function Jl(e){let t=my(e,".clancy",".env");if(!fy(t))return;let r=dy(t,"utf8");return hy(r)}function gy(e){try{return
|
|
122
|
-
${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as zt}from"node:child_process";var za=new Set(["PR_CREATED","PUSHED","REWORK","RESUMED"]);function Kl(e){let t=e.ticketBranch;if(!Xe(t))return;let r;try{r=zt("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}).trim()}catch{return}try{L(t)}catch{return}let n=!1,o=!1;try{n=Dt()}catch{}try{o=zt("git",["log",`origin/${t}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{try{o=zt("git",["log",`origin/${e.targetBranch}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{}}try{L(r)}catch{}if(!n&&!o){let s=Hu(process.cwd(),e.ticketKey);return s&&za.has(s.status)?{branch:t,hasUncommitted:!1,hasUnpushed:!1,alreadyDelivered:!0}:void 0}return{branch:t,hasUncommitted:n,hasUnpushed:o,alreadyDelivered:!1}}async function Yl(e,t,r){try{if(L(r.branch),r.hasUncommitted)try{zt("git",["add","-A"],{encoding:"utf8"}),zt("git",["commit","-m",`fix(${t.ticketKey}): resume after crash`],{encoding:"utf8"}),console.log(N(` \u2713 Committed in-progress work for ${t.ticketKey}`))}catch{return console.log(v(` \u26A0 Could not commit changes on ${r.branch}`)),!1}if(!et(r.branch))return console.log(v(` \u26A0 Could not push ${r.branch} to origin`)),!1;console.log(N(` \u2713 Pushed ${r.branch}`));let o=Z(e).CLANCY_GIT_PLATFORM,s=ce(o),i=`feat(${t.ticketKey}): ${t.ticketTitle}`,a=Ye(e,{key:t.ticketKey,title:t.ticketTitle,description:"",provider:e.provider},t.targetBranch);if(s.host!=="none"&&s.host!=="unknown"&&s.host!=="azure"){let u=await Re(e,s,r.branch,t.targetBranch,i,a);u?.ok?(console.log(N(` \u2713 PR created: ${u.url}`)),R(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",u.number,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0)):(console.log($(" Branch pushed \u2014 create a PR manually.")),R(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0))}else R(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0);try{L(t.targetBranch)}catch{}return!0}catch(n){return console.log(v(` \u26A0 Resume failed: ${n instanceof Error?n.message:String(n)}`)),!1}}async function Gl(e){let t=Ut(e.cwd);if(!t)return!0;if(!Ga(t))return console.log(v(`\u26A0 Another Clancy session is running (PID ${t.pid}, ticket ${t.ticketKey}). Aborting.`)),!1;console.log($(` Stale lock found (PID ${t.pid}, ticket ${t.ticketKey}). Cleaning up...`)),Ft(e.cwd),Ht(e.cwd);try{let r=Kl(t);if(r?.alreadyDelivered)return console.log(N(` \u2713 ${t.ticketKey} was already delivered \u2014 skipping.`)),!0;if(r)if(e.isAfk){console.log(v(` \u21BB Resuming crashed session: ${t.ticketKey} on ${r.branch}`));let n=Cr(e.cwd);if(n.ok){let o=Pr(n.env);if(typeof o!="string"&&await Yl(o,t,r))return console.log(N(` \u2713 Resumed ${t.ticketKey}`)),!1}}else console.log(v(` Found in-progress work on ${r.branch}.`+(r.hasUncommitted?" Has uncommitted changes.":"")+(r.hasUnpushed?" Has unpushed commits.":""))),console.log($(" Run in AFK mode (CLANCY_AFK_MODE=1) to auto-resume, or handle manually."))}catch{}return!0}async function Wl(e){let t=e.config;if(!t)return!0;try{let r=j(e.cwd,"PUSHED"),n=j(e.cwd,"PR_CREATED"),o=new Set(n.map(l=>l.key)),s=r.filter(l=>!o.has(l.key));if(!s.length)return!0;let i=Z(t).CLANCY_GIT_PLATFORM,a=ce(i);if(a.host==="none"||a.host==="unknown"||a.host==="azure"){for(let l of s){console.log($(` Skipping PR retry for ${l.key} \u2014 remote host "${a.host}" does not support PR creation`));let p=l.parent&&l.parent!=="none"?l.parent:void 0;R(e.cwd,l.key,l.summary,"PR_CREATED",void 0,p)}return!0}let u=t.env.CLANCY_BASE_BRANCH??"main";for(let l of s){console.log(v(` \u21BB Retrying PR creation for ${l.key} (previously pushed)`));let p=l.parent&&l.parent!=="none"?l.parent:void 0,f=We(t.provider,l.key),m=Ve(t.provider,u,p),h=`feat(${l.key}): ${l.summary}`,_=Ye(t,{key:l.key,title:l.summary,description:l.summary,provider:t.provider},m),y=await Re(t,a,f,m,h,_);y?.ok?(console.log(N(` \u2713 PR created: ${y.url}`)),R(e.cwd,l.key,l.summary,"PR_CREATED",y.number,p)):y&&!y.ok&&y.alreadyExists?(console.log($(` PR already exists for ${l.key}`)),R(e.cwd,l.key,l.summary,"PR_CREATED",void 0,p)):console.log(v(` \u26A0 PR retry failed for ${l.key}${y&&!y.ok?`: ${y.error}`:""} \u2014 create manually`))}}catch{}return!0}var Ta=c.object({id:c.number(),url:c.optional(c.string())}),Vl=c.object({workItems:c.array(Ta)}),_y=c.object({rel:c.string(),url:c.string(),attributes:c.optional(c.object({name:c.optional(c.string())}))}),by=c.object({"System.Title":c.optional(c.string()),"System.Description":c.optional(c.nullable(c.string())),"System.State":c.optional(c.string()),"System.Tags":c.optional(c.nullable(c.string())),"System.AssignedTo":c.optional(c.nullable(c.object({displayName:c.optional(c.string()),uniqueName:c.optional(c.string())}))),"System.WorkItemType":c.optional(c.string())}),Ia=c.object({id:c.number(),fields:by,relations:c.optional(c.nullable(c.array(_y)))}),Ql=c.object({value:c.array(Ia),count:c.optional(c.number())}),Xl=c.object({id:c.string(),name:c.string(),state:c.optional(c.string())}),wy=c.object({source:c.optional(c.nullable(Ta)),target:c.optional(c.nullable(Ta))}),ep=c.object({workItemRelations:c.optional(c.array(wy))});var Qe="7.1";function tp(e){return`Basic ${btoa(`:${e}`)}`}function Pt(e){return!(e.includes("'")||e.includes("\\")||e.includes("--")||e.includes(";")||e.includes("/*")||/[^\x20-\x7E\t\n\r]/.test(e))}function Tt(e){if(!Pt(e))throw new Error(`Unsafe WIQL value: ${e.slice(0,50)}`);return e}function Et(e,t){return`https://dev.azure.com/${encodeURIComponent(e)}/${encodeURIComponent(t)}/_apis`}function At(e){return{Authorization:tp(e),"Content-Type":"application/json"}}function $y(e){return{Authorization:tp(e),"Content-Type":"application/json-patch+json"}}async function rp(e,t,r){let n;try{n=await fetch(`https://dev.azure.com/${encodeURIComponent(e)}/_apis/projects/${encodeURIComponent(t)}?api-version=${Qe}`,{headers:At(r)})}catch{return{ok:!1,error:"\u2717 Could not reach Azure DevOps \u2014 check network"}}if(!n.ok)return n.status===401||n.status===403?{ok:!1,error:"\u2717 Azure DevOps auth failed \u2014 check AZDO_PAT"}:{ok:!1,error:`\u2717 Azure DevOps API returned HTTP ${n.status}`};try{let o=await n.json(),s=Xl.safeParse(o);if(s.success&&s.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Azure DevOps auth failed \u2014 check AZDO_PAT"}}async function np(e,t,r,n){try{let o=await fetch(`${Et(e,t)}/wit/wiql?api-version=${Qe}`,{method:"POST",headers:At(r),body:JSON.stringify({query:n})});if(!o.ok)return console.warn(`\u26A0 Azure DevOps WIQL returned HTTP ${o.status}`),[];let s=await o.json(),i=Vl.safeParse(s);return i.success?i.data.workItems.map(a=>a.id):(console.warn(`\u26A0 Unexpected Azure DevOps WIQL response: ${i.error.message}`),[])}catch(o){return console.warn(`\u26A0 Azure DevOps WIQL request failed: ${o instanceof Error?o.message:String(o)}`),[]}}async function Pa(e,t,r,n){if(!n.length)return[];let o=[];for(let s=0;s<n.length;s+=200){let a=n.slice(s,s+200).join(",");try{let u=await fetch(`${Et(e,t)}/wit/workitems?ids=${a}&$expand=relations&api-version=${Qe}`,{headers:At(r)});if(!u.ok){console.warn(`\u26A0 Azure DevOps work items batch returned HTTP ${u.status}`);continue}let l=await u.json(),p=Ql.safeParse(l);if(!p.success){console.warn(`\u26A0 Unexpected Azure DevOps work items response: ${p.error.message}`);continue}o.push(...p.data.value)}catch(u){console.warn(`\u26A0 Azure DevOps work items fetch failed: ${u instanceof Error?u.message:String(u)}`)}}return o}async function It(e,t,r,n){try{let o=await fetch(`${Et(e,t)}/wit/workitems/${n}?$expand=relations&api-version=${Qe}`,{headers:At(r)});if(!o.ok)return;let s=await o.json(),i=Ia.safeParse(s);return i.success?i.data:void 0}catch{return}}async function Nr(e,t,r,n,o){try{return(await fetch(`${Et(e,t)}/wit/workitems/${n}?api-version=${Qe}`,{method:"PATCH",headers:$y(r),body:JSON.stringify(o)})).ok}catch{return!1}}function Or(e){return e?e.split(";").map(t=>t.trim()).filter(Boolean):[]}function Ea(e){return e.join("; ")}function op(e){let t=e.match(/workItems\/(\d+)/i);if(!t)return;let r=parseInt(t[1],10);return Number.isNaN(r)?void 0:r}async function sp(e,t,r,n,o,s,i=5){let a=`SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${Tt(t)}' AND [System.State] = '${Tt(n)}' AND [System.AssignedTo] = @Me`;o&&(a+=` AND [System.WorkItemType] = '${Tt(o)}'`),a+=" ORDER BY [System.CreatedDate] ASC";let u=await np(e,t,r,a);if(!u.length)return[];let l=u.slice(0,i*2),f=(await Pa(e,t,r,l)).map(m=>xy(m));return s&&(f=f.filter(m=>!m.labels?.some(h=>h==="clancy:hitl"))),f.slice(0,i)}function xy(e){let t=Or(e.fields["System.Tags"]),r;if(e.relations){for(let n of e.relations)if(n.rel==="System.LinkTypes.Hierarchy-Reverse"){r=op(n.url);break}}return{key:`azdo-${e.id}`,title:e.fields["System.Title"]??"",description:e.fields["System.Description"]??"",provider:"azdo",workItemId:e.id,parentId:r,labels:t}}var Aa=new Set(["Done","Closed","Completed","Resolved"]);async function ip(e,t,r,n){try{let o=await It(e,t,r,n);if(!o)return!1;let s=(o.relations??[]).filter(i=>i.rel==="System.LinkTypes.Dependency-Reverse");if(!s.length)return!1;for(let i of s){let a=op(i.url);if(a===void 0)continue;let u=await It(e,t,r,a);if(!u)continue;let l=u.fields["System.State"];if(!l||!Aa.has(l))return!0}return!1}catch{return!1}}async function ap(e,t,r,n,o){try{if(o){let s=`Epic: ${o}`,i=await ky(e,t,r,s);if(i&&i.total>0)return i}return await Sy(e,t,r,n)}catch{return}}async function ky(e,t,r,n){try{let o=`SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${Tt(t)}' AND [System.Description] CONTAINS '${Tt(n)}'`,s=await np(e,t,r,o);if(!s.length)return{total:0,incomplete:0};let i=await Pa(e,t,r,s),a=i.length,u=i.filter(l=>{let p=l.fields["System.State"];return!p||!Aa.has(p)}).length;return{total:a,incomplete:u}}catch{return}}async function Sy(e,t,r,n){try{if(Number.isNaN(n))return;let o=`SELECT [System.Id] FROM WorkItemLinks WHERE [Source].[System.Id] = ${n} AND [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward' MODE (MustContain)`,s=await fetch(`${Et(e,t)}/wit/wiql?api-version=${Qe}`,{method:"POST",headers:At(r),body:JSON.stringify({query:o})});if(!s.ok)return;let i=await s.json(),a=ep.safeParse(i);if(!a.success)return;let l=(a.data.workItemRelations??[]).filter(h=>h.target?.id!==void 0&&h.target.id!==n).map(h=>h.target.id);if(!l.length)return{total:0,incomplete:0};let p=await Pa(e,t,r,l),f=p.length,m=p.filter(h=>{let _=h.fields["System.State"];return!_||!Aa.has(_)}).length;return{total:f,incomplete:m}}catch{return}}function cp(e){let t=e.AZDO_ORG,r=e.AZDO_PROJECT,n=e.AZDO_PAT,o=e.CLANCY_AZDO_STATUS??"New",s=e.CLANCY_AZDO_WIT;return{async ping(){return rp(t,r,n)},validateInputs(){if(!t.trim())return"\u2717 AZDO_ORG must not be empty";if(!r.trim())return"\u2717 AZDO_PROJECT must not be empty";if(!n.trim())return"\u2717 AZDO_PAT must not be empty";if(!Pt(r))return"\u2717 AZDO_PROJECT contains unsafe characters for WIQL queries";if(!Pt(o))return"\u2717 CLANCY_AZDO_STATUS contains unsafe characters for WIQL queries";if(s&&!Pt(s))return"\u2717 CLANCY_AZDO_WIT contains unsafe characters for WIQL queries"},async fetchTicket(i){return(await this.fetchTickets(i))[0]},async fetchTickets(i){let a=await sp(t,r,n,o,s,i.excludeHitl);if(i.buildLabel){let u=i.buildLabel;a=a.filter(l=>l.labels?.includes(u))}return a.map(u=>({key:u.key,title:u.title,description:u.description,parentInfo:u.parentId?`azdo-${u.parentId}`:"none",blockers:"None",issueId:String(u.workItemId),labels:u.labels??[],status:o}))},async fetchBlockerStatus(i){let a=Lr(i.key);return a===void 0?!1:ip(t,r,n,a)},async fetchChildrenStatus(i,a){let u=a??i.replace("azdo-",""),l=parseInt(u,10);if(!Number.isNaN(l))return ap(t,r,n,l,i)},async transitionTicket(i,a){let u=Lr(i.key);if(u===void 0)return!1;let l=await Nr(t,r,n,u,[{op:"replace",path:"/fields/System.State",value:a}]);return l&&console.log(` \u2192 Transitioned to ${a}`),l},async ensureLabel(i){},async addLabel(i,a){try{let u=Lr(i);if(u===void 0)return;let l=await It(t,r,n,u);if(!l)return;let p=Or(l.fields["System.Tags"]);if(p.includes(a))return;let f=[...p,a];await Nr(t,r,n,u,[{op:"replace",path:"/fields/System.Tags",value:Ea(f)}])}catch(u){console.warn(`\u26A0 addLabel failed: ${u instanceof Error?u.message:String(u)}`)}},async removeLabel(i,a){try{let u=Lr(i);if(u===void 0)return;let l=await It(t,r,n,u);if(!l)return;let p=Or(l.fields["System.Tags"]);if(!p.includes(a))return;let f=p.filter(m=>m!==a);await Nr(t,r,n,u,[{op:"replace",path:"/fields/System.Tags",value:Ea(f)}])}catch(u){console.warn(`\u26A0 removeLabel failed: ${u instanceof Error?u.message:String(u)}`)}},sharedEnv(){return e}}}function Lr(e){let t=parseInt(e.replace("azdo-",""),10);return Number.isNaN(t)?void 0:t}var vy=c.object({login:c.string()}),zy=/^[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+$/,Zr;function jr(e){return zy.test(e)}async function lp(e,t){return Er(`${D}/repos/${t}`,U(e),{401:"\u2717 GitHub auth failed \u2014 check GITHUB_TOKEN",403:"\u2717 GitHub permission denied",404:`\u2717 GitHub repo "${t}" not found`},"\u2717 Could not reach GitHub \u2014 check network")}async function pp(e,t){if(Zr)return Zr;try{let r=await fetch(`${t??D}/user`,{headers:U(e)});if(!r.ok){let s=r.status===401||r.status===403?' Fine-grained PATs need "Account permissions \u2192 read" (or classic PATs need read:user scope).':"";return console.warn(`\u26A0 GitHub /user returned HTTP ${r.status} \u2014 falling back to @me.${s}`),"@me"}let n=await r.json(),o=vy.safeParse(n);if(o.success)return Zr=o.data.login,Zr;console.warn("\u26A0 Unexpected GitHub /user response \u2014 falling back to @me")}catch(r){console.warn(`\u26A0 GitHub /user request failed: ${r instanceof Error?r.message:String(r)} \u2014 falling back to @me`)}return"@me"}async function fp(e,t,r,n,o,s=5){let i,a=new URLSearchParams({state:"open",assignee:n??"@me",per_page:"10"});r&&a.set("labels",r);try{i=await fetch(`${D}/repos/${t}/issues?${a}`,{headers:U(e)})}catch(f){return console.warn(`\u26A0 GitHub API request failed: ${f instanceof Error?f.message:String(f)}`),[]}if(!i.ok)return console.warn(`\u26A0 GitHub API returned HTTP ${i.status}`),[];let u;try{u=await i.json()}catch{return console.warn("\u26A0 GitHub API returned invalid JSON"),[]}let l=ol.safeParse(u);if(!l.success)return console.warn(`\u26A0 Unexpected GitHub response shape: ${l.error.message}`),[];let p=l.data.filter(f=>!f.pull_request);return o&&(p=p.filter(f=>!f.labels?.some(m=>m.name==="clancy:hitl"))),p.slice(0,s).map(f=>({key:`#${f.number}`,title:f.title,description:f.body??"",provider:"github",milestone:f.milestone?.title,labels:f.labels?.map(m=>m.name).filter(m=>!!m)}))}async function dp(e,t,r,n){if(!jr(t))return!1;let o=/Blocked by #(\d+)/gi,s=new Set,i;for(;(i=o.exec(n))!==null;){let a=parseInt(i[1],10);!Number.isNaN(a)&&a!==r&&s.add(a)}if(!s.size)return!1;try{for(let a of s){let u=await fetch(`${D}/repos/${t}/issues/${a}`,{headers:U(e)});if(!u.ok)continue;if((await u.json()).state!=="closed")return!0}return!1}catch{return!1}}async function mp(e,t,r,n){if(jr(t))try{let o=await up(e,t,`Epic: #${r}`);if(o&&o.total>0)return o;let s=await up(e,t,`Parent: #${r}`);return s&&s.total>0?s:!o||!s?void 0:n?{total:1,incomplete:1}:s}catch{return}}async function up(e,t,r){let n=U(e),o=`"${r}" repo:${t} is:issue`,s=new URLSearchParams({q:o,per_page:"1"}),i=await fetch(`${D}/search/issues?${s}`,{headers:n});if(!i.ok)return;let u=(await i.json()).total_count??0;if(u===0)return{total:0,incomplete:0};let l=`"${r}" repo:${t} is:issue is:open`,p=new URLSearchParams({q:l,per_page:"1"}),f=await fetch(`${D}/search/issues?${p}`,{headers:n});if(!f.ok)return{total:u,incomplete:u};let h=(await f.json()).total_count??0;return{total:u,incomplete:h}}var Ty=/^(?:Epic|Parent): (#\d+)/m;function Iy(e){return e.match(Ty)?.[1]}function hp(e){return{async ping(){return lp(e.GITHUB_TOKEN,e.GITHUB_REPO)},validateInputs(){if(!jr(e.GITHUB_REPO))return"\u2717 GITHUB_REPO format is invalid \u2014 expected owner/repo"},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){let r=await pp(e.GITHUB_TOKEN);return(await fp(e.GITHUB_TOKEN,e.GITHUB_REPO,t.buildLabel??e.CLANCY_LABEL,r,t.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.milestone??Iy(o.description)??"none",blockers:"None",labels:o.labels??[],status:"open"}))},async fetchBlockerStatus(t){let r=parseInt(t.key.replace("#",""),10);return Number.isNaN(r)?!1:dp(e.GITHUB_TOKEN,e.GITHUB_REPO,r,t.description)},async fetchChildrenStatus(t,r,n){let o=parseInt(t.replace("#",""),10);if(!Number.isNaN(o))return mp(e.GITHUB_TOKEN,e.GITHUB_REPO,o,n)},async transitionTicket(){return!1},async ensureLabel(t){try{let r=U(e.GITHUB_TOKEN),n=await fetch(`${D}/repos/${e.GITHUB_REPO}/labels/${encodeURIComponent(t)}`,{headers:r});if(n.ok)return;if(n.status===404){let o=await fetch(`${D}/repos/${e.GITHUB_REPO}/labels`,{method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify({name:t,color:"0075ca"})});!o.ok&&o.status!==422&&console.warn(`\u26A0 ensureLabel create returned HTTP ${o.status}`)}else console.warn(`\u26A0 ensureLabel GET returned HTTP ${n.status}`)}catch(r){console.warn(`\u26A0 ensureLabel failed: ${r instanceof Error?r.message:String(r)}`)}},async addLabel(t,r){try{await this.ensureLabel(r);let n=parseInt(t.replace("#",""),10);if(Number.isNaN(n))return;let o=U(e.GITHUB_TOKEN),s=await fetch(`${D}/repos/${e.GITHUB_REPO}/issues/${n}/labels`,{method:"POST",headers:{...o,"Content-Type":"application/json"},body:JSON.stringify({labels:[r]})});s.ok||console.warn(`\u26A0 addLabel returned HTTP ${s.status}`)}catch(n){console.warn(`\u26A0 addLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async removeLabel(t,r){try{let n=parseInt(t.replace("#",""),10);if(Number.isNaN(n))return;let o=U(e.GITHUB_TOKEN),s=await fetch(`${D}/repos/${e.GITHUB_REPO}/issues/${n}/labels/${encodeURIComponent(r)}`,{method:"DELETE",headers:o});!s.ok&&s.status!==404&&console.warn(`\u26A0 removeLabel returned HTTP ${s.status}`)}catch(n){console.warn(`\u26A0 removeLabel failed: ${n instanceof Error?n.message:String(n)}`)}},sharedEnv(){return e}}}var Py=c.object({type:c.optional(c.object({name:c.optional(c.string())})),inwardIssue:c.optional(c.object({key:c.optional(c.string())}))}),Ey=c.object({summary:c.string(),description:c.optional(c.unknown()),issuelinks:c.optional(c.array(Py)),parent:c.optional(c.object({key:c.optional(c.string())})),customfield_10014:c.optional(c.nullable(c.string())),labels:c.optional(c.array(c.string()))}),Ay=c.object({key:c.string(),fields:Ey}),gp=c.object({total:c.optional(c.number()),isLast:c.optional(c.boolean()),issues:c.array(Ay)}),Ry=c.object({id:c.string(),name:c.string()}),yp=c.object({transitions:c.array(Ry)}),Cy=c.object({type:c.optional(c.object({name:c.optional(c.string())})),inwardIssue:c.optional(c.object({key:c.optional(c.string()),fields:c.optional(c.object({status:c.optional(c.object({statusCategory:c.optional(c.object({key:c.optional(c.string())}))}))}))}))}),_p=c.object({fields:c.optional(c.object({issuelinks:c.optional(c.array(Cy))}))}),Ra=c.object({fields:c.optional(c.object({labels:c.optional(c.array(c.string()))}))});var Ny=/^[a-zA-Z0-9 _\-'.]+$/,Ca=/^[A-Z][A-Z0-9]+-\d+$/;function wp(e,t){return Buffer.from(`${e}:${t}`).toString("base64")}function Rt(e){return Ny.test(e)}async function $p(e,t,r){return Er(`${e}/rest/api/3/project/${t}`,Se(r),{401:"\u2717 Jira auth failed \u2014 check credentials",403:"\u2717 Jira permission denied for this project",404:`\u2717 Jira project "${t}" not found`},"\u2717 Could not reach Jira \u2014 check network")}function Oy(e,t,r,n,o){let s=[`project="${e}"`];return r&&s.push("sprint in openSprints()"),n&&s.push(`labels = "${n}"`),o&&s.push('labels != "clancy:hitl"'),s.push("assignee=currentUser()"),s.push(`status="${t}"`),s.join(" AND ")+" ORDER BY priority ASC"}function Ly(e){if(!e||typeof e!="object")return"";let t=[];function r(n){if(typeof n=="string"){t.push(n);return}if(Array.isArray(n)){for(let o of n)r(o);return}if(n&&typeof n=="object")for(let o of Object.values(n))r(o)}return r(e),t.join(" ")}async function xp(e,t,r,n,o,s,i,a=5){let u=Oy(r,n,o,s,i),l;try{l=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...Se(t),"Content-Type":"application/json"},body:JSON.stringify({jql:u,maxResults:a,fields:["summary","description","issuelinks","parent","customfield_10014","labels"]})})}catch(m){return console.warn(`\u26A0 Jira API request failed: ${m instanceof Error?m.message:String(m)}`),[]}if(!l.ok)return console.warn(`\u26A0 Jira API returned HTTP ${l.status}`),[];let p;try{p=await l.json()}catch{return console.warn("\u26A0 Jira API returned invalid JSON"),[]}let f=gp.safeParse(p);return f.success?f.data.issues.map(m=>{let h=m.fields,_=(h.issuelinks??[]).filter(z=>z.type?.name==="Blocks"&&z.inwardIssue?.key).map(z=>z.inwardIssue?.key).filter(z=>!!z),y=h.parent?.key??h.customfield_10014??void 0;return{key:m.key,title:h.summary,description:Ly(h.description),provider:"jira",epicKey:y,blockers:_,labels:h.labels}}):(console.warn(`\u26A0 Unexpected Jira response shape: ${f.error.message}`),[])}async function kp(e,t,r){if(!Ca.test(r))return!1;try{let n=await fetch(`${e}/rest/api/3/issue/${r}?fields=issuelinks`,{headers:Se(t)});if(!n.ok)return!1;let o=await n.json(),s=_p.safeParse(o);return s.success?(s.data.fields?.issuelinks??[]).some(a=>{if(a.type?.name!=="Blocks"||!a.inwardIssue?.key)return!1;let u=a.inwardIssue.fields?.status?.statusCategory?.key;return u?u!=="done":!1}):!1}catch{return!1}}async function Sp(e,t,r){if(Ca.test(r))try{let n=r.split("-")[0],o=await bp(e,t,`project = "${n}" AND description ~ "Epic: ${r}"`);return o&&o.total>0?o:await bp(e,t,`parent = ${r}`)}catch{return}}async function bp(e,t,r){let n=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...Se(t),"Content-Type":"application/json"},body:JSON.stringify({jql:r,maxResults:0})});if(!n.ok)return;let s=(await n.json()).total??0;if(s===0)return{total:0,incomplete:0};let i=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...Se(t),"Content-Type":"application/json"},body:JSON.stringify({jql:`${r} AND statusCategory != "done"`,maxResults:0})});if(!i.ok)return;let u=(await i.json()).total??0;return{total:s,incomplete:u}}async function Zy(e,t,r,n){if(!Ca.test(r))return;let o;try{o=await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{headers:Se(t)})}catch(u){console.warn(`\u26A0 Jira transitions request failed: ${u instanceof Error?u.message:String(u)}`);return}if(!o.ok)return;let s;try{s=await o.json()}catch{console.warn("\u26A0 Jira transitions returned invalid JSON");return}let i=yp.safeParse(s);if(!i.success){console.warn(`\u26A0 Unexpected Jira transitions response: ${i.error.message}`);return}return i.data.transitions.find(u=>u.name===n)?.id}async function vp(e,t,r,n){try{let o=await Zy(e,t,r,n);return o?(await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{method:"POST",headers:{...Se(t),"Content-Type":"application/json"},body:JSON.stringify({transition:{id:o}})})).ok:(console.warn(`\u26A0 Jira transition "${n}" not found for ${r}`),!1)}catch{return!1}}function zp(e){let t=wp(e.JIRA_USER,e.JIRA_API_TOKEN);return{async ping(){return $p(e.JIRA_BASE_URL,e.JIRA_PROJECT_KEY,t)},validateInputs(){if(!Rt(e.JIRA_PROJECT_KEY))return"\u2717 JIRA_PROJECT_KEY contains invalid characters";if(e.CLANCY_LABEL_BUILD&&!Rt(e.CLANCY_LABEL_BUILD))return"\u2717 CLANCY_LABEL_BUILD contains invalid characters";if(e.CLANCY_LABEL&&!Rt(e.CLANCY_LABEL))return"\u2717 CLANCY_LABEL contains invalid characters";if(e.CLANCY_JQL_STATUS&&!Rt(e.CLANCY_JQL_STATUS))return"\u2717 CLANCY_JQL_STATUS contains invalid characters"},async fetchTicket(r){return(await this.fetchTickets(r))[0]},async fetchTickets(r){let n=await xp(e.JIRA_BASE_URL,t,e.JIRA_PROJECT_KEY,e.CLANCY_JQL_STATUS??"To Do",e.CLANCY_JQL_SPRINT,r.buildLabel??e.CLANCY_LABEL,r.excludeHitl),o=e.CLANCY_JQL_STATUS??"To Do";return n.map(s=>{let i=s.blockers.length?`Blocked by: ${s.blockers.join(", ")}`:"None";return{key:s.key,title:s.title,description:s.description,parentInfo:s.epicKey??"none",blockers:i,labels:s.labels??[],status:o}})},async fetchBlockerStatus(r){return kp(e.JIRA_BASE_URL,t,r.key)},async fetchChildrenStatus(r){return Sp(e.JIRA_BASE_URL,t,r)},async transitionTicket(r,n){let o=await vp(e.JIRA_BASE_URL,t,r.key,n);return o&&console.log(` \u2192 Transitioned to ${n}`),o},async ensureLabel(r){},async addLabel(r,n){try{if(!/^[A-Z][A-Z0-9]+-\d+$/.test(r))return;let o=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}?fields=labels`,{headers:{Authorization:t,Accept:"application/json"}});if(!o.ok){console.warn(`\u26A0 addLabel GET failed: HTTP ${o.status}`);return}let i=Ra.parse(await o.json()).fields?.labels??[];if(i.includes(n))return;let a=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}`,{method:"PUT",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({fields:{labels:[...i,n]}})});a.ok||console.warn(`\u26A0 addLabel PUT returned HTTP ${a.status}`)}catch(o){console.warn(`\u26A0 addLabel failed: ${o instanceof Error?o.message:String(o)}`)}},async removeLabel(r,n){try{if(!/^[A-Z][A-Z0-9]+-\d+$/.test(r))return;let o=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}?fields=labels`,{headers:{Authorization:t,Accept:"application/json"}});if(!o.ok){console.warn(`\u26A0 removeLabel GET failed: HTTP ${o.status}`);return}let i=Ra.parse(await o.json()).fields?.labels??[];if(!i.includes(n))return;let a=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}`,{method:"PUT",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({fields:{labels:i.filter(u=>u!==n)}})});a.ok||console.warn(`\u26A0 removeLabel PUT returned HTTP ${a.status}`)}catch(o){console.warn(`\u26A0 removeLabel failed: ${o instanceof Error?o.message:String(o)}`)}},sharedEnv(){return e}}}var jy=c.object({id:c.string(),identifier:c.string(),title:c.string(),description:c.optional(c.nullable(c.string())),parent:c.optional(c.nullable(c.object({identifier:c.string(),title:c.optional(c.string())}))),labels:c.optional(c.object({nodes:c.array(c.object({name:c.string()}))}))}),Tp=c.object({data:c.optional(c.object({viewer:c.optional(c.object({assignedIssues:c.optional(c.object({nodes:c.array(jy)}))}))}))}),Ip=c.object({data:c.optional(c.object({viewer:c.optional(c.object({id:c.optional(c.string())}))}))}),Pp=c.object({data:c.optional(c.object({workflowStates:c.optional(c.object({nodes:c.array(c.object({id:c.string()}))}))}))}),Ep=c.object({data:c.optional(c.object({issueUpdate:c.optional(c.object({success:c.optional(c.boolean())}))}))}),Dy=c.object({type:c.string(),relatedIssue:c.optional(c.object({state:c.optional(c.object({type:c.optional(c.string())}))}))}),Ap=c.object({data:c.optional(c.object({issue:c.optional(c.object({relations:c.optional(c.object({nodes:c.array(Dy)}))}))}))}),My=c.object({state:c.optional(c.object({type:c.optional(c.string())}))}),Rp=c.object({data:c.optional(c.object({issueSearch:c.optional(c.object({nodes:c.array(My)}))}))}),Cp=c.object({data:c.optional(c.object({team:c.optional(c.object({labels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.string()}))}))}))}))}),Np=c.object({data:c.optional(c.object({issueLabels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.string()}))}))}))}),Op=c.object({data:c.optional(c.object({issueLabelCreate:c.optional(c.object({issueLabel:c.optional(c.object({id:c.string()})),success:c.optional(c.boolean())}))}))}),Na=c.object({data:c.optional(c.object({issueSearch:c.optional(c.object({nodes:c.array(c.object({id:c.string(),labels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.optional(c.string())}))}))}))}))}))});var By=/^[a-zA-Z0-9_-]+$/,Lp="https://api.linear.app/graphql";function Zp(e){return By.test(e)}async function V(e,t,r){let n;try{n=await fetch(Lp,{method:"POST",headers:{Authorization:e,"Content-Type":"application/json"},body:JSON.stringify({query:t,variables:r})})}catch(o){console.warn(`\u26A0 Linear API request failed: ${o instanceof Error?o.message:String(o)}`);return}if(!n.ok){console.warn(`\u26A0 Linear API returned HTTP ${n.status}`);return}try{return await n.json()}catch{console.warn("\u26A0 Linear API returned invalid JSON");return}}async function jp(e){let t;try{t=await fetch(Lp,{method:"POST",headers:{Authorization:e,"Content-Type":"application/json"},body:JSON.stringify({query:"{ viewer { id } }"})})}catch{return{ok:!1,error:"\u2717 Could not reach Linear \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}:{ok:!1,error:`\u2717 Linear API returned HTTP ${t.status}`};try{let r=await t.json(),n=Ip.safeParse(r);if(n.success&&n.data.data?.viewer?.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}}async function Dp(e,t,r=5){let n=e.CLANCY_LABEL?.trim(),o=!!n,s=o?"labels: { name: { eq: $label } }":"",i=["$teamId: String!",...o?["$label: String!"]:[]],a=['state: { type: { eq: "unstarted" } }',"team: { id: { eq: $teamId } }",s].filter(Boolean),u=`
|
|
120
|
+
5. When done, confirm you are finished.`}function ql(e){let t=e.config,r=e.ticket,n=e.isRework??!1,o=e.targetBranch,s=t.env.CLANCY_TDD==="true",i;n?i=Fl({key:r.key,title:r.title,description:r.description,provider:t.provider,feedbackComments:e.prFeedback??[],previousContext:qa(o),tdd:s}):i=Hl({provider:t.provider,key:r.key,title:r.title,description:r.description,parentInfo:r.parentInfo,blockers:t.provider!=="github"?r.blockers:void 0,tdd:s}),process.env.CLANCY_ONCE_ACTIVE="1";let a;try{a=Dl(i,t.env.CLANCY_MODEL)}finally{delete process.env.CLANCY_ONCE_ACTIVE}return a?!0:(console.log(v("\u26A0 Claude session exited with an error. Skipping merge.")),!1)}import{execFileSync as za}from"node:child_process";import{existsSync as fy,readFileSync as dy}from"node:fs";import{join as my}from"node:path";function hy(e){let t={};for(let r of e.split(`
|
|
121
|
+
`)){let n=r.trim();if(!n||n.startsWith("#"))continue;let o=n.indexOf("=");if(o===-1)continue;let s=n.slice(0,o).trim(),i=n.slice(o+1).trim();i.length>=2&&(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),t[s]=i}return t}function Jl(e){let t=my(e,".clancy",".env");if(!fy(t))return;let r=dy(t,"utf8");return hy(r)}function gy(e){try{return za("which",[e],{stdio:"ignore"}),!0}catch{return!1}}function yy(){try{return za("git",["rev-parse","--git-dir"],{stdio:"ignore"}),!0}catch{return!1}}function Cr(e){for(let n of["claude","git"])if(!gy(n))return{ok:!1,error:`\u2717 ${n} is required but not found`};let t=Jl(e);if(!t)return{ok:!1,error:"\u2717 .clancy/.env not found \u2014 run /clancy:init first"};if(!yy())return{ok:!1,error:"\u2717 Not inside a git repository"};let r;try{za("git",["ls-remote","origin","HEAD"],{encoding:"utf8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{r="\u26A0 Could not reach origin. PR creation and rework detection may not work."}if(Dt()){let n="\u26A0 Working directory has uncommitted changes \u2014 they will be included in the branch";r=r?`${r}
|
|
122
|
+
${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as zt}from"node:child_process";var Ta=new Set(["PR_CREATED","PUSHED","REWORK","RESUMED"]);function Kl(e){let t=e.ticketBranch;if(!Xe(t))return;let r;try{r=zt("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}).trim()}catch{return}try{L(t)}catch{return}let n=!1,o=!1;try{n=Dt()}catch{}try{o=zt("git",["log",`origin/${t}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{try{o=zt("git",["log",`origin/${e.targetBranch}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{}}try{L(r)}catch{}if(!n&&!o){let s=Hu(process.cwd(),e.ticketKey);return s&&Ta.has(s.status)?{branch:t,hasUncommitted:!1,hasUnpushed:!1,alreadyDelivered:!0}:void 0}return{branch:t,hasUncommitted:n,hasUnpushed:o,alreadyDelivered:!1}}async function Yl(e,t,r){try{if(L(r.branch),r.hasUncommitted)try{zt("git",["add","-A"],{encoding:"utf8"}),zt("git",["commit","-m",`fix(${t.ticketKey}): resume after crash`],{encoding:"utf8"}),console.log(N(` \u2713 Committed in-progress work for ${t.ticketKey}`))}catch{return console.log(v(` \u26A0 Could not commit changes on ${r.branch}`)),!1}if(!et(r.branch))return console.log(v(` \u26A0 Could not push ${r.branch} to origin`)),!1;console.log(N(` \u2713 Pushed ${r.branch}`));let o=Z(e).CLANCY_GIT_PLATFORM,s=ce(o),i=`feat(${t.ticketKey}): ${t.ticketTitle}`,a=Ye(e,{key:t.ticketKey,title:t.ticketTitle,description:"",provider:e.provider},t.targetBranch);if(s.host!=="none"&&s.host!=="unknown"&&s.host!=="azure"){let u=await Re(e,s,r.branch,t.targetBranch,i,a);u?.ok?(console.log(N(` \u2713 PR created: ${u.url}`)),R(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",u.number,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0)):(console.log($(" Branch pushed \u2014 create a PR manually.")),R(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0))}else R(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0);try{L(t.targetBranch)}catch{}return!0}catch(n){return console.log(v(` \u26A0 Resume failed: ${n instanceof Error?n.message:String(n)}`)),!1}}async function Gl(e){let t=Ut(e.cwd);if(!t)return!0;if(!Ga(t))return console.log(v(`\u26A0 Another Clancy session is running (PID ${t.pid}, ticket ${t.ticketKey}). Aborting.`)),!1;console.log($(` Stale lock found (PID ${t.pid}, ticket ${t.ticketKey}). Cleaning up...`)),Ft(e.cwd),Ht(e.cwd);try{let r=Kl(t);if(r?.alreadyDelivered)return console.log(N(` \u2713 ${t.ticketKey} was already delivered \u2014 skipping.`)),!0;if(r)if(e.isAfk){console.log(v(` \u21BB Resuming crashed session: ${t.ticketKey} on ${r.branch}`));let n=Cr(e.cwd);if(n.ok){let o=Pr(n.env);if(typeof o!="string"&&await Yl(o,t,r))return console.log(N(` \u2713 Resumed ${t.ticketKey}`)),!1}}else console.log(v(` Found in-progress work on ${r.branch}.`+(r.hasUncommitted?" Has uncommitted changes.":"")+(r.hasUnpushed?" Has unpushed commits.":""))),console.log($(" Run in AFK mode (CLANCY_AFK_MODE=1) to auto-resume, or handle manually."))}catch{}return!0}async function Wl(e){let t=e.config;if(!t)return!0;try{let r=j(e.cwd,"PUSHED"),n=j(e.cwd,"PR_CREATED"),o=new Set(n.map(l=>l.key)),s=r.filter(l=>!o.has(l.key));if(!s.length)return!0;let i=Z(t).CLANCY_GIT_PLATFORM,a=ce(i);if(a.host==="none"||a.host==="unknown"||a.host==="azure"){for(let l of s){console.log($(` Skipping PR retry for ${l.key} \u2014 remote host "${a.host}" does not support PR creation`));let p=l.parent&&l.parent!=="none"?l.parent:void 0;R(e.cwd,l.key,l.summary,"PR_CREATED",void 0,p)}return!0}let u=t.env.CLANCY_BASE_BRANCH??"main";for(let l of s){console.log(v(` \u21BB Retrying PR creation for ${l.key} (previously pushed)`));let p=l.parent&&l.parent!=="none"?l.parent:void 0,f=We(t.provider,l.key),m=Ve(t.provider,u,p),h=`feat(${l.key}): ${l.summary}`,_=Ye(t,{key:l.key,title:l.summary,description:l.summary,provider:t.provider},m),y=await Re(t,a,f,m,h,_);y?.ok?(console.log(N(` \u2713 PR created: ${y.url}`)),R(e.cwd,l.key,l.summary,"PR_CREATED",y.number,p)):y&&!y.ok&&y.alreadyExists?(console.log($(` PR already exists for ${l.key}`)),R(e.cwd,l.key,l.summary,"PR_CREATED",void 0,p)):console.log(v(` \u26A0 PR retry failed for ${l.key}${y&&!y.ok?`: ${y.error}`:""} \u2014 create manually`))}}catch{}return!0}var Ia=c.object({id:c.number(),url:c.optional(c.string())}),Vl=c.object({workItems:c.array(Ia)}),_y=c.object({rel:c.string(),url:c.string(),attributes:c.optional(c.object({name:c.optional(c.string())}))}),by=c.object({"System.Title":c.optional(c.string()),"System.Description":c.optional(c.nullable(c.string())),"System.State":c.optional(c.string()),"System.Tags":c.optional(c.nullable(c.string())),"System.AssignedTo":c.optional(c.nullable(c.object({displayName:c.optional(c.string()),uniqueName:c.optional(c.string())}))),"System.WorkItemType":c.optional(c.string())}),Pa=c.object({id:c.number(),fields:by,relations:c.optional(c.nullable(c.array(_y)))}),Ql=c.object({value:c.array(Pa),count:c.optional(c.number())}),Xl=c.object({id:c.string(),name:c.string(),state:c.optional(c.string())}),wy=c.object({source:c.optional(c.nullable(Ia)),target:c.optional(c.nullable(Ia))}),ep=c.object({workItemRelations:c.optional(c.array(wy))});var Qe="7.1";function tp(e){return`Basic ${btoa(`:${e}`)}`}function Pt(e){return!(e.includes("'")||e.includes("\\")||e.includes("--")||e.includes(";")||e.includes("/*")||/[^\x20-\x7E\t\n\r]/.test(e))}function Tt(e){if(!Pt(e))throw new Error(`Unsafe WIQL value: ${e.slice(0,50)}`);return e}function Et(e,t){return`https://dev.azure.com/${encodeURIComponent(e)}/${encodeURIComponent(t)}/_apis`}function At(e){return{Authorization:tp(e),"Content-Type":"application/json"}}function $y(e){return{Authorization:tp(e),"Content-Type":"application/json-patch+json"}}async function rp(e,t,r){let n;try{n=await fetch(`https://dev.azure.com/${encodeURIComponent(e)}/_apis/projects/${encodeURIComponent(t)}?api-version=${Qe}`,{headers:At(r)})}catch{return{ok:!1,error:"\u2717 Could not reach Azure DevOps \u2014 check network"}}if(!n.ok)return n.status===401||n.status===403?{ok:!1,error:"\u2717 Azure DevOps auth failed \u2014 check AZDO_PAT"}:{ok:!1,error:`\u2717 Azure DevOps API returned HTTP ${n.status}`};try{let o=await n.json(),s=Xl.safeParse(o);if(s.success&&s.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Azure DevOps auth failed \u2014 check AZDO_PAT"}}async function np(e,t,r,n){try{let o=await fetch(`${Et(e,t)}/wit/wiql?api-version=${Qe}`,{method:"POST",headers:At(r),body:JSON.stringify({query:n})});if(!o.ok)return console.warn(`\u26A0 Azure DevOps WIQL returned HTTP ${o.status}`),[];let s=await o.json(),i=Vl.safeParse(s);return i.success?i.data.workItems.map(a=>a.id):(console.warn(`\u26A0 Unexpected Azure DevOps WIQL response: ${i.error.message}`),[])}catch(o){return console.warn(`\u26A0 Azure DevOps WIQL request failed: ${o instanceof Error?o.message:String(o)}`),[]}}async function Ea(e,t,r,n){if(!n.length)return[];let o=[];for(let s=0;s<n.length;s+=200){let a=n.slice(s,s+200).join(",");try{let u=await fetch(`${Et(e,t)}/wit/workitems?ids=${a}&$expand=relations&api-version=${Qe}`,{headers:At(r)});if(!u.ok){console.warn(`\u26A0 Azure DevOps work items batch returned HTTP ${u.status}`);continue}let l=await u.json(),p=Ql.safeParse(l);if(!p.success){console.warn(`\u26A0 Unexpected Azure DevOps work items response: ${p.error.message}`);continue}o.push(...p.data.value)}catch(u){console.warn(`\u26A0 Azure DevOps work items fetch failed: ${u instanceof Error?u.message:String(u)}`)}}return o}async function It(e,t,r,n){try{let o=await fetch(`${Et(e,t)}/wit/workitems/${n}?$expand=relations&api-version=${Qe}`,{headers:At(r)});if(!o.ok)return;let s=await o.json(),i=Pa.safeParse(s);return i.success?i.data:void 0}catch{return}}async function Nr(e,t,r,n,o){try{return(await fetch(`${Et(e,t)}/wit/workitems/${n}?api-version=${Qe}`,{method:"PATCH",headers:$y(r),body:JSON.stringify(o)})).ok}catch{return!1}}function Or(e){return e?e.split(";").map(t=>t.trim()).filter(Boolean):[]}function Aa(e){return e.join("; ")}function op(e){let t=e.match(/workItems\/(\d+)/i);if(!t)return;let r=parseInt(t[1],10);return Number.isNaN(r)?void 0:r}async function sp(e,t,r,n,o,s,i=5){let a=`SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${Tt(t)}' AND [System.State] = '${Tt(n)}' AND [System.AssignedTo] = @Me`;o&&(a+=` AND [System.WorkItemType] = '${Tt(o)}'`),a+=" ORDER BY [System.CreatedDate] ASC";let u=await np(e,t,r,a);if(!u.length)return[];let l=u.slice(0,i*2),f=(await Ea(e,t,r,l)).map(m=>xy(m));return s&&(f=f.filter(m=>!m.labels?.some(h=>h==="clancy:hitl"))),f.slice(0,i)}function xy(e){let t=Or(e.fields["System.Tags"]),r;if(e.relations){for(let n of e.relations)if(n.rel==="System.LinkTypes.Hierarchy-Reverse"){r=op(n.url);break}}return{key:`azdo-${e.id}`,title:e.fields["System.Title"]??"",description:e.fields["System.Description"]??"",provider:"azdo",workItemId:e.id,parentId:r,labels:t}}var Ra=new Set(["Done","Closed","Completed","Resolved"]);async function ip(e,t,r,n){try{let o=await It(e,t,r,n);if(!o)return!1;let s=(o.relations??[]).filter(i=>i.rel==="System.LinkTypes.Dependency-Reverse");if(!s.length)return!1;for(let i of s){let a=op(i.url);if(a===void 0)continue;let u=await It(e,t,r,a);if(!u)continue;let l=u.fields["System.State"];if(!l||!Ra.has(l))return!0}return!1}catch{return!1}}async function ap(e,t,r,n,o){try{if(o){let s=`Epic: ${o}`,i=await ky(e,t,r,s);if(i&&i.total>0)return i}return await Sy(e,t,r,n)}catch{return}}async function ky(e,t,r,n){try{let o=`SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${Tt(t)}' AND [System.Description] CONTAINS '${Tt(n)}'`,s=await np(e,t,r,o);if(!s.length)return{total:0,incomplete:0};let i=await Ea(e,t,r,s),a=i.length,u=i.filter(l=>{let p=l.fields["System.State"];return!p||!Ra.has(p)}).length;return{total:a,incomplete:u}}catch{return}}async function Sy(e,t,r,n){try{if(Number.isNaN(n))return;let o=`SELECT [System.Id] FROM WorkItemLinks WHERE [Source].[System.Id] = ${n} AND [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward' MODE (MustContain)`,s=await fetch(`${Et(e,t)}/wit/wiql?api-version=${Qe}`,{method:"POST",headers:At(r),body:JSON.stringify({query:o})});if(!s.ok)return;let i=await s.json(),a=ep.safeParse(i);if(!a.success)return;let l=(a.data.workItemRelations??[]).filter(h=>h.target?.id!==void 0&&h.target.id!==n).map(h=>h.target.id);if(!l.length)return{total:0,incomplete:0};let p=await Ea(e,t,r,l),f=p.length,m=p.filter(h=>{let _=h.fields["System.State"];return!_||!Ra.has(_)}).length;return{total:f,incomplete:m}}catch{return}}function cp(e){let t=e.AZDO_ORG,r=e.AZDO_PROJECT,n=e.AZDO_PAT,o=e.CLANCY_AZDO_STATUS??"New",s=e.CLANCY_AZDO_WIT;return{async ping(){return rp(t,r,n)},validateInputs(){if(!t.trim())return"\u2717 AZDO_ORG must not be empty";if(!r.trim())return"\u2717 AZDO_PROJECT must not be empty";if(!n.trim())return"\u2717 AZDO_PAT must not be empty";if(!Pt(r))return"\u2717 AZDO_PROJECT contains unsafe characters for WIQL queries";if(!Pt(o))return"\u2717 CLANCY_AZDO_STATUS contains unsafe characters for WIQL queries";if(s&&!Pt(s))return"\u2717 CLANCY_AZDO_WIT contains unsafe characters for WIQL queries"},async fetchTicket(i){return(await this.fetchTickets(i))[0]},async fetchTickets(i){let a=await sp(t,r,n,o,s,i.excludeHitl);if(i.buildLabel){let u=i.buildLabel;a=a.filter(l=>l.labels?.includes(u))}return a.map(u=>({key:u.key,title:u.title,description:u.description,parentInfo:u.parentId?`azdo-${u.parentId}`:"none",blockers:"None",issueId:String(u.workItemId),labels:u.labels??[],status:o}))},async fetchBlockerStatus(i){let a=Lr(i.key);return a===void 0?!1:ip(t,r,n,a)},async fetchChildrenStatus(i,a){let u=a??i.replace("azdo-",""),l=parseInt(u,10);if(!Number.isNaN(l))return ap(t,r,n,l,i)},async transitionTicket(i,a){let u=Lr(i.key);if(u===void 0)return!1;let l=await Nr(t,r,n,u,[{op:"replace",path:"/fields/System.State",value:a}]);return l&&console.log(` \u2192 Transitioned to ${a}`),l},async ensureLabel(i){},async addLabel(i,a){try{let u=Lr(i);if(u===void 0)return;let l=await It(t,r,n,u);if(!l)return;let p=Or(l.fields["System.Tags"]);if(p.includes(a))return;let f=[...p,a];await Nr(t,r,n,u,[{op:"replace",path:"/fields/System.Tags",value:Aa(f)}])}catch(u){console.warn(`\u26A0 addLabel failed: ${u instanceof Error?u.message:String(u)}`)}},async removeLabel(i,a){try{let u=Lr(i);if(u===void 0)return;let l=await It(t,r,n,u);if(!l)return;let p=Or(l.fields["System.Tags"]);if(!p.includes(a))return;let f=p.filter(m=>m!==a);await Nr(t,r,n,u,[{op:"replace",path:"/fields/System.Tags",value:Aa(f)}])}catch(u){console.warn(`\u26A0 removeLabel failed: ${u instanceof Error?u.message:String(u)}`)}},sharedEnv(){return e}}}function Lr(e){let t=parseInt(e.replace("azdo-",""),10);return Number.isNaN(t)?void 0:t}var vy=c.object({login:c.string()}),zy=/^[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+$/,Zr;function jr(e){return zy.test(e)}async function lp(e,t){return Er(`${D}/repos/${t}`,U(e),{401:"\u2717 GitHub auth failed \u2014 check GITHUB_TOKEN",403:"\u2717 GitHub permission denied",404:`\u2717 GitHub repo "${t}" not found`},"\u2717 Could not reach GitHub \u2014 check network")}async function pp(e,t){if(Zr)return Zr;try{let r=await fetch(`${t??D}/user`,{headers:U(e)});if(!r.ok){let s=r.status===401||r.status===403?' Fine-grained PATs need "Account permissions \u2192 read" (or classic PATs need read:user scope).':"";return console.warn(`\u26A0 GitHub /user returned HTTP ${r.status} \u2014 falling back to @me.${s}`),"@me"}let n=await r.json(),o=vy.safeParse(n);if(o.success)return Zr=o.data.login,Zr;console.warn("\u26A0 Unexpected GitHub /user response \u2014 falling back to @me")}catch(r){console.warn(`\u26A0 GitHub /user request failed: ${r instanceof Error?r.message:String(r)} \u2014 falling back to @me`)}return"@me"}async function fp(e,t,r,n,o,s=5){let i,a=new URLSearchParams({state:"open",assignee:n??"@me",per_page:"10"});r&&a.set("labels",r);try{i=await fetch(`${D}/repos/${t}/issues?${a}`,{headers:U(e)})}catch(f){return console.warn(`\u26A0 GitHub API request failed: ${f instanceof Error?f.message:String(f)}`),[]}if(!i.ok)return console.warn(`\u26A0 GitHub API returned HTTP ${i.status}`),[];let u;try{u=await i.json()}catch{return console.warn("\u26A0 GitHub API returned invalid JSON"),[]}let l=ol.safeParse(u);if(!l.success)return console.warn(`\u26A0 Unexpected GitHub response shape: ${l.error.message}`),[];let p=l.data.filter(f=>!f.pull_request);return o&&(p=p.filter(f=>!f.labels?.some(m=>m.name==="clancy:hitl"))),p.slice(0,s).map(f=>({key:`#${f.number}`,title:f.title,description:f.body??"",provider:"github",milestone:f.milestone?.title,labels:f.labels?.map(m=>m.name).filter(m=>!!m)}))}async function dp(e,t,r,n){if(!jr(t))return!1;let o=/Blocked by #(\d+)/gi,s=new Set,i;for(;(i=o.exec(n))!==null;){let a=parseInt(i[1],10);!Number.isNaN(a)&&a!==r&&s.add(a)}if(!s.size)return!1;try{for(let a of s){let u=await fetch(`${D}/repos/${t}/issues/${a}`,{headers:U(e)});if(!u.ok)continue;if((await u.json()).state!=="closed")return!0}return!1}catch{return!1}}async function mp(e,t,r,n){if(jr(t))try{let o=await up(e,t,`Epic: #${r}`);if(o&&o.total>0)return o;let s=await up(e,t,`Parent: #${r}`);return s&&s.total>0?s:!o||!s?void 0:n?{total:1,incomplete:1}:s}catch{return}}async function up(e,t,r){let n=U(e),o=`"${r}" repo:${t} is:issue`,s=new URLSearchParams({q:o,per_page:"1"}),i=await fetch(`${D}/search/issues?${s}`,{headers:n});if(!i.ok)return;let u=(await i.json()).total_count??0;if(u===0)return{total:0,incomplete:0};let l=`"${r}" repo:${t} is:issue is:open`,p=new URLSearchParams({q:l,per_page:"1"}),f=await fetch(`${D}/search/issues?${p}`,{headers:n});if(!f.ok)return{total:u,incomplete:u};let h=(await f.json()).total_count??0;return{total:u,incomplete:h}}var Ty=/^(?:Epic|Parent): (#\d+)/m;function Iy(e){return e.match(Ty)?.[1]}function hp(e){return{async ping(){return lp(e.GITHUB_TOKEN,e.GITHUB_REPO)},validateInputs(){if(!jr(e.GITHUB_REPO))return"\u2717 GITHUB_REPO format is invalid \u2014 expected owner/repo"},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){let r=await pp(e.GITHUB_TOKEN);return(await fp(e.GITHUB_TOKEN,e.GITHUB_REPO,t.buildLabel??e.CLANCY_LABEL,r,t.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.milestone??Iy(o.description)??"none",blockers:"None",labels:o.labels??[],status:"open"}))},async fetchBlockerStatus(t){let r=parseInt(t.key.replace("#",""),10);return Number.isNaN(r)?!1:dp(e.GITHUB_TOKEN,e.GITHUB_REPO,r,t.description)},async fetchChildrenStatus(t,r,n){let o=parseInt(t.replace("#",""),10);if(!Number.isNaN(o))return mp(e.GITHUB_TOKEN,e.GITHUB_REPO,o,n)},async transitionTicket(){return!1},async ensureLabel(t){try{let r=U(e.GITHUB_TOKEN),n=await fetch(`${D}/repos/${e.GITHUB_REPO}/labels/${encodeURIComponent(t)}`,{headers:r});if(n.ok)return;if(n.status===404){let o=await fetch(`${D}/repos/${e.GITHUB_REPO}/labels`,{method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify({name:t,color:"0075ca"})});!o.ok&&o.status!==422&&console.warn(`\u26A0 ensureLabel create returned HTTP ${o.status}`)}else console.warn(`\u26A0 ensureLabel GET returned HTTP ${n.status}`)}catch(r){console.warn(`\u26A0 ensureLabel failed: ${r instanceof Error?r.message:String(r)}`)}},async addLabel(t,r){try{await this.ensureLabel(r);let n=parseInt(t.replace("#",""),10);if(Number.isNaN(n))return;let o=U(e.GITHUB_TOKEN),s=await fetch(`${D}/repos/${e.GITHUB_REPO}/issues/${n}/labels`,{method:"POST",headers:{...o,"Content-Type":"application/json"},body:JSON.stringify({labels:[r]})});s.ok||console.warn(`\u26A0 addLabel returned HTTP ${s.status}`)}catch(n){console.warn(`\u26A0 addLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async removeLabel(t,r){try{let n=parseInt(t.replace("#",""),10);if(Number.isNaN(n))return;let o=U(e.GITHUB_TOKEN),s=await fetch(`${D}/repos/${e.GITHUB_REPO}/issues/${n}/labels/${encodeURIComponent(r)}`,{method:"DELETE",headers:o});!s.ok&&s.status!==404&&console.warn(`\u26A0 removeLabel returned HTTP ${s.status}`)}catch(n){console.warn(`\u26A0 removeLabel failed: ${n instanceof Error?n.message:String(n)}`)}},sharedEnv(){return e}}}var Py=c.object({type:c.optional(c.object({name:c.optional(c.string())})),inwardIssue:c.optional(c.object({key:c.optional(c.string())}))}),Ey=c.object({summary:c.string(),description:c.optional(c.unknown()),issuelinks:c.optional(c.array(Py)),parent:c.optional(c.object({key:c.optional(c.string())})),customfield_10014:c.optional(c.nullable(c.string())),labels:c.optional(c.array(c.string()))}),Ay=c.object({key:c.string(),fields:Ey}),gp=c.object({total:c.optional(c.number()),isLast:c.optional(c.boolean()),issues:c.array(Ay)}),Ry=c.object({id:c.string(),name:c.string()}),yp=c.object({transitions:c.array(Ry)}),Cy=c.object({type:c.optional(c.object({name:c.optional(c.string())})),inwardIssue:c.optional(c.object({key:c.optional(c.string()),fields:c.optional(c.object({status:c.optional(c.object({statusCategory:c.optional(c.object({key:c.optional(c.string())}))}))}))}))}),_p=c.object({fields:c.optional(c.object({issuelinks:c.optional(c.array(Cy))}))}),Ca=c.object({fields:c.optional(c.object({labels:c.optional(c.array(c.string()))}))});var Ny=/^[a-zA-Z0-9 _\-'.]+$/,Na=/^[A-Z][A-Z0-9]+-\d+$/;function wp(e,t){return Buffer.from(`${e}:${t}`).toString("base64")}function Rt(e){return Ny.test(e)}async function $p(e,t,r){return Er(`${e}/rest/api/3/project/${t}`,Se(r),{401:"\u2717 Jira auth failed \u2014 check credentials",403:"\u2717 Jira permission denied for this project",404:`\u2717 Jira project "${t}" not found`},"\u2717 Could not reach Jira \u2014 check network")}function Oy(e,t,r,n,o){let s=[`project="${e}"`];return r&&s.push("sprint in openSprints()"),n&&s.push(`labels = "${n}"`),o&&s.push('labels != "clancy:hitl"'),s.push("assignee=currentUser()"),s.push(`status="${t}"`),s.join(" AND ")+" ORDER BY priority ASC"}function Ly(e){if(!e||typeof e!="object")return"";let t=[];function r(n){if(typeof n=="string"){t.push(n);return}if(Array.isArray(n)){for(let o of n)r(o);return}if(n&&typeof n=="object")for(let o of Object.values(n))r(o)}return r(e),t.join(" ")}async function xp(e,t,r,n,o,s,i,a=5){let u=Oy(r,n,o,s,i),l;try{l=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...Se(t),"Content-Type":"application/json"},body:JSON.stringify({jql:u,maxResults:a,fields:["summary","description","issuelinks","parent","customfield_10014","labels"]})})}catch(m){return console.warn(`\u26A0 Jira API request failed: ${m instanceof Error?m.message:String(m)}`),[]}if(!l.ok)return console.warn(`\u26A0 Jira API returned HTTP ${l.status}`),[];let p;try{p=await l.json()}catch{return console.warn("\u26A0 Jira API returned invalid JSON"),[]}let f=gp.safeParse(p);return f.success?f.data.issues.map(m=>{let h=m.fields,_=(h.issuelinks??[]).filter(z=>z.type?.name==="Blocks"&&z.inwardIssue?.key).map(z=>z.inwardIssue?.key).filter(z=>!!z),y=h.parent?.key??h.customfield_10014??void 0;return{key:m.key,title:h.summary,description:Ly(h.description),provider:"jira",epicKey:y,blockers:_,labels:h.labels}}):(console.warn(`\u26A0 Unexpected Jira response shape: ${f.error.message}`),[])}async function kp(e,t,r){if(!Na.test(r))return!1;try{let n=await fetch(`${e}/rest/api/3/issue/${r}?fields=issuelinks`,{headers:Se(t)});if(!n.ok)return!1;let o=await n.json(),s=_p.safeParse(o);return s.success?(s.data.fields?.issuelinks??[]).some(a=>{if(a.type?.name!=="Blocks"||!a.inwardIssue?.key)return!1;let u=a.inwardIssue.fields?.status?.statusCategory?.key;return u?u!=="done":!1}):!1}catch{return!1}}async function Sp(e,t,r){if(Na.test(r))try{let n=r.split("-")[0],o=await bp(e,t,`project = "${n}" AND description ~ "Epic: ${r}"`);return o&&o.total>0?o:await bp(e,t,`parent = ${r}`)}catch{return}}async function bp(e,t,r){let n=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...Se(t),"Content-Type":"application/json"},body:JSON.stringify({jql:r,maxResults:0})});if(!n.ok)return;let s=(await n.json()).total??0;if(s===0)return{total:0,incomplete:0};let i=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...Se(t),"Content-Type":"application/json"},body:JSON.stringify({jql:`${r} AND statusCategory != "done"`,maxResults:0})});if(!i.ok)return;let u=(await i.json()).total??0;return{total:s,incomplete:u}}async function Zy(e,t,r,n){if(!Na.test(r))return;let o;try{o=await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{headers:Se(t)})}catch(u){console.warn(`\u26A0 Jira transitions request failed: ${u instanceof Error?u.message:String(u)}`);return}if(!o.ok)return;let s;try{s=await o.json()}catch{console.warn("\u26A0 Jira transitions returned invalid JSON");return}let i=yp.safeParse(s);if(!i.success){console.warn(`\u26A0 Unexpected Jira transitions response: ${i.error.message}`);return}return i.data.transitions.find(u=>u.name===n)?.id}async function vp(e,t,r,n){try{let o=await Zy(e,t,r,n);return o?(await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{method:"POST",headers:{...Se(t),"Content-Type":"application/json"},body:JSON.stringify({transition:{id:o}})})).ok:(console.warn(`\u26A0 Jira transition "${n}" not found for ${r}`),!1)}catch{return!1}}function zp(e){let t=wp(e.JIRA_USER,e.JIRA_API_TOKEN);return{async ping(){return $p(e.JIRA_BASE_URL,e.JIRA_PROJECT_KEY,t)},validateInputs(){if(!Rt(e.JIRA_PROJECT_KEY))return"\u2717 JIRA_PROJECT_KEY contains invalid characters";if(e.CLANCY_LABEL_BUILD&&!Rt(e.CLANCY_LABEL_BUILD))return"\u2717 CLANCY_LABEL_BUILD contains invalid characters";if(e.CLANCY_LABEL&&!Rt(e.CLANCY_LABEL))return"\u2717 CLANCY_LABEL contains invalid characters";if(e.CLANCY_JQL_STATUS&&!Rt(e.CLANCY_JQL_STATUS))return"\u2717 CLANCY_JQL_STATUS contains invalid characters"},async fetchTicket(r){return(await this.fetchTickets(r))[0]},async fetchTickets(r){let n=await xp(e.JIRA_BASE_URL,t,e.JIRA_PROJECT_KEY,e.CLANCY_JQL_STATUS??"To Do",e.CLANCY_JQL_SPRINT,r.buildLabel??e.CLANCY_LABEL,r.excludeHitl),o=e.CLANCY_JQL_STATUS??"To Do";return n.map(s=>{let i=s.blockers.length?`Blocked by: ${s.blockers.join(", ")}`:"None";return{key:s.key,title:s.title,description:s.description,parentInfo:s.epicKey??"none",blockers:i,labels:s.labels??[],status:o}})},async fetchBlockerStatus(r){return kp(e.JIRA_BASE_URL,t,r.key)},async fetchChildrenStatus(r){return Sp(e.JIRA_BASE_URL,t,r)},async transitionTicket(r,n){let o=await vp(e.JIRA_BASE_URL,t,r.key,n);return o&&console.log(` \u2192 Transitioned to ${n}`),o},async ensureLabel(r){},async addLabel(r,n){try{if(!/^[A-Z][A-Z0-9]+-\d+$/.test(r))return;let o=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}?fields=labels`,{headers:{Authorization:t,Accept:"application/json"}});if(!o.ok){console.warn(`\u26A0 addLabel GET failed: HTTP ${o.status}`);return}let i=Ca.parse(await o.json()).fields?.labels??[];if(i.includes(n))return;let a=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}`,{method:"PUT",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({fields:{labels:[...i,n]}})});a.ok||console.warn(`\u26A0 addLabel PUT returned HTTP ${a.status}`)}catch(o){console.warn(`\u26A0 addLabel failed: ${o instanceof Error?o.message:String(o)}`)}},async removeLabel(r,n){try{if(!/^[A-Z][A-Z0-9]+-\d+$/.test(r))return;let o=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}?fields=labels`,{headers:{Authorization:t,Accept:"application/json"}});if(!o.ok){console.warn(`\u26A0 removeLabel GET failed: HTTP ${o.status}`);return}let i=Ca.parse(await o.json()).fields?.labels??[];if(!i.includes(n))return;let a=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}`,{method:"PUT",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({fields:{labels:i.filter(u=>u!==n)}})});a.ok||console.warn(`\u26A0 removeLabel PUT returned HTTP ${a.status}`)}catch(o){console.warn(`\u26A0 removeLabel failed: ${o instanceof Error?o.message:String(o)}`)}},sharedEnv(){return e}}}var jy=c.object({id:c.string(),identifier:c.string(),title:c.string(),description:c.optional(c.nullable(c.string())),parent:c.optional(c.nullable(c.object({identifier:c.string(),title:c.optional(c.string())}))),labels:c.optional(c.object({nodes:c.array(c.object({name:c.string()}))}))}),Tp=c.object({data:c.optional(c.object({viewer:c.optional(c.object({assignedIssues:c.optional(c.object({nodes:c.array(jy)}))}))}))}),Ip=c.object({data:c.optional(c.object({viewer:c.optional(c.object({id:c.optional(c.string())}))}))}),Pp=c.object({data:c.optional(c.object({workflowStates:c.optional(c.object({nodes:c.array(c.object({id:c.string()}))}))}))}),Ep=c.object({data:c.optional(c.object({issueUpdate:c.optional(c.object({success:c.optional(c.boolean())}))}))}),Dy=c.object({type:c.string(),relatedIssue:c.optional(c.object({state:c.optional(c.object({type:c.optional(c.string())}))}))}),Ap=c.object({data:c.optional(c.object({issue:c.optional(c.object({relations:c.optional(c.object({nodes:c.array(Dy)}))}))}))}),My=c.object({state:c.optional(c.object({type:c.optional(c.string())}))}),Rp=c.object({data:c.optional(c.object({issueSearch:c.optional(c.object({nodes:c.array(My)}))}))}),Cp=c.object({data:c.optional(c.object({team:c.optional(c.object({labels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.string()}))}))}))}))}),Np=c.object({data:c.optional(c.object({issueLabels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.string()}))}))}))}),Op=c.object({data:c.optional(c.object({issueLabelCreate:c.optional(c.object({issueLabel:c.optional(c.object({id:c.string()})),success:c.optional(c.boolean())}))}))}),Oa=c.object({data:c.optional(c.object({issueSearch:c.optional(c.object({nodes:c.array(c.object({id:c.string(),labels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.optional(c.string())}))}))}))}))}))});var By=/^[a-zA-Z0-9_-]+$/,Lp="https://api.linear.app/graphql";function Zp(e){return By.test(e)}async function V(e,t,r){let n;try{n=await fetch(Lp,{method:"POST",headers:{Authorization:e,"Content-Type":"application/json"},body:JSON.stringify({query:t,variables:r})})}catch(o){console.warn(`\u26A0 Linear API request failed: ${o instanceof Error?o.message:String(o)}`);return}if(!n.ok){console.warn(`\u26A0 Linear API returned HTTP ${n.status}`);return}try{return await n.json()}catch{console.warn("\u26A0 Linear API returned invalid JSON");return}}async function jp(e){let t;try{t=await fetch(Lp,{method:"POST",headers:{Authorization:e,"Content-Type":"application/json"},body:JSON.stringify({query:"{ viewer { id } }"})})}catch{return{ok:!1,error:"\u2717 Could not reach Linear \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}:{ok:!1,error:`\u2717 Linear API returned HTTP ${t.status}`};try{let r=await t.json(),n=Ip.safeParse(r);if(n.success&&n.data.data?.viewer?.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}}async function Dp(e,t,r=5){let n=e.CLANCY_LABEL?.trim(),o=!!n,s=o?"labels: { name: { eq: $label } }":"",i=["$teamId: ID!",...o?["$label: String!"]:[]],a=['state: { type: { eq: "unstarted" } }',"team: { id: { eq: $teamId } }",s].filter(Boolean),u=`
|
|
123
123
|
query(${i.join(", ")}) {
|
|
124
124
|
viewer {
|
|
125
125
|
assignedIssues(
|
|
@@ -128,7 +128,7 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as zt}from"node:child_
|
|
|
128
128
|
`)}
|
|
129
129
|
}
|
|
130
130
|
first: ${t?r*3:r}
|
|
131
|
-
orderBy:
|
|
131
|
+
orderBy: createdAt
|
|
132
132
|
) {
|
|
133
133
|
nodes {
|
|
134
134
|
id
|
|
@@ -215,7 +215,7 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as zt}from"node:child_
|
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
|
-
`,{identifier:r}),u=
|
|
218
|
+
`,{identifier:r}),u=Oa.parse(i)?.data?.issueSearch?.nodes?.[0];if(!u)return;let l=u.labels?.nodes?.map(f=>f.id)??[];if(l.includes(o))return;await V(e.LINEAR_API_KEY,`
|
|
219
219
|
mutation($issueId: String!, $labelIds: [String!]!) {
|
|
220
220
|
issueUpdate(id: $issueId, input: { labelIds: $labelIds }) {
|
|
221
221
|
success
|
|
@@ -230,10 +230,10 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as zt}from"node:child_
|
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
|
-
`,{identifier:r}),u=
|
|
233
|
+
`,{identifier:r}),u=Oa.parse(i)?.data?.issueSearch?.nodes?.[0];if(!u)return;let l=u.labels?.nodes??[],p=o??l.find(h=>h.name===n)?.id;if(!p)return;let f=l.map(h=>h.id).filter(h=>h!==p);if(f.length===l.length)return;await V(e.LINEAR_API_KEY,`
|
|
234
234
|
mutation($issueId: String!, $labelIds: [String!]!) {
|
|
235
235
|
issueUpdate(id: $issueId, input: { labelIds: $labelIds }) {
|
|
236
236
|
success
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
|
-
`,{issueId:u.id,labelIds:f})}catch(o){console.warn(`\u26A0 removeLabel failed: ${o instanceof Error?o.message:String(o)}`)}},sharedEnv(){return e}}}var Hp=c.object({plain_text:c.string()}),Jy=c.object({type:c.literal("status"),status:c.nullable(c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}))}),Ky=c.object({type:c.literal("select"),select:c.nullable(c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}))}),Yy=c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}),Gy=c.object({type:c.literal("multi_select"),multi_select:c.array(Yy)}),Wy=c.object({type:c.literal("people"),people:c.array(c.object({id:c.string(),name:c.optional(c.nullable(c.string()))}))}),Vy=c.object({type:c.literal("relation"),relation:c.array(c.object({id:c.string()}))}),Qy=c.object({type:c.literal("title"),title:c.array(Hp)}),Xy=c.object({type:c.literal("rich_text"),rich_text:c.array(Hp)}),e_=c.union([Jy,Ky,Gy,Wy,Vy,Qy,Xy,c.object({type:c.string()})]),Oa=c.object({id:c.string(),url:c.optional(c.string()),properties:c.record(c.string(),e_)}),qp=c.object({results:c.array(Oa),has_more:c.boolean(),next_cursor:c.nullable(c.optional(c.string()))}),Jp=c.object({id:c.string(),type:c.optional(c.string()),name:c.optional(c.nullable(c.string())),avatar_url:c.optional(c.nullable(c.string()))});function t_(e){if(!e)return;let t=parseInt(e,10);if(!Number.isNaN(t)&&t>=0)return t*1e3;let r=new Date(e);if(!Number.isNaN(r.getTime())){let n=r.getTime()-Date.now();return n>0?n:0}}function La(e,t,r){let n=t*2**e;return Math.min(n,r)}function r_(e){return e===429||e>=500&&e<=599}async function Ct(e,t,r){let n=Math.max(0,r?.maxRetries??3),o=r?.baseDelayMs??1e3,s=r?.maxDelayMs??1e4,i;for(let a=0;a<=n;a++)try{let u=await fetch(e,t);if(!r_(u.status)||a===n)return u;let l;u.status===429?l=t_(u.headers.get("Retry-After"))??La(a,o,s):l=La(a,o,s),await u.arrayBuffer().catch(()=>{}),await new Promise(p=>setTimeout(p,l))}catch(u){if(i=u,a===n)throw i;let l=La(a,o,s);await new Promise(p=>setTimeout(p,l))}throw i}var Mr="https://api.notion.com/v1",n_="2022-06-28";function Br(e){return{Authorization:`Bearer ${e}`,"Notion-Version":n_,"Content-Type":"application/json"}}async function Yp(e){let t;try{t=await Ct(`${Mr}/users/me`,{headers:Br(e)})}catch{return{ok:!1,error:"\u2717 Could not reach Notion \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Notion auth failed \u2014 check NOTION_TOKEN"}:{ok:!1,error:`\u2717 Notion API returned HTTP ${t.status}`};try{let r=await t.json(),n=Jp.safeParse(r);if(n.success&&n.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Notion auth failed \u2014 check NOTION_TOKEN"}}async function Ur(e,t,r,n,o){let s={};r&&(s.filter=r),n&&(s.sorts=n),o&&(s.start_cursor=o);let i;try{i=await Ct(`${Mr}/databases/${t}/query`,{method:"POST",headers:Br(e),body:JSON.stringify(s)})}catch(l){console.warn(`\u26A0 Notion API request failed: ${l instanceof Error?l.message:String(l)}`);return}if(!i.ok){console.warn(`\u26A0 Notion API returned HTTP ${i.status}`);return}let a;try{a=await i.json()}catch{console.warn("\u26A0 Notion API returned invalid JSON");return}let u=qp.safeParse(a);if(!u.success){console.warn(`\u26A0 Unexpected Notion response shape: ${u.error.message}`);return}return u.data}async function Nt(e,t,r){let n=[],o;for(let i=0;i<10;i++){let a=await Ur(e,t,r,void 0,o);if(!a||(n.push(...a.results),!a.has_more||!a.next_cursor))break;o=a.next_cursor}return n}async function Kp(e,t){try{let r=await Ct(`${Mr}/pages/${t}`,{headers:Br(e)});if(!r.ok)return;let n=await r.json(),o=Oa.safeParse(n);return o.success?o.data:void 0}catch{return}}async function Ot(e,t,r){try{return(await Ct(`${Mr}/pages/${t}`,{method:"PATCH",headers:Br(e),body:JSON.stringify({properties:r})})).ok}catch{return!1}}async function Gp(e,t,r,n="Status"){try{let o=await Kp(e,r);if(!o)return!1;let s=o_(o,"Blocked by");if(s?.type==="relation"){let u=s.relation;if(u.length>0){for(let l of u){let p=await Kp(e,l.id);if(!p)continue;let f=F(p,n,"status");if(f&&!Dr(f))return!0}return!1}}let i=r.replace(/-/g,"").slice(0,8),a=Vp(o);if(a){let u=a.match(/Blocked by (notion-[a-f0-9]{8})/gi);if(u){let l=await Nt(e,t);if(!l.length)return!1;for(let p of u){let f=p.replace(/blocked by notion-/i,"").toLowerCase();if(f!==i){for(let m of l)if(m.id.replace(/-/g,"").slice(0,8)===f){let _=F(m,n,"status");if(_&&!Dr(_))return!0}}}}}return!1}catch{return!1}}async function Wp(e,t,r,n="Epic",o="Status"){try{let s=await s_(e,t,`Epic: ${r}`,o);if(s&&s.total>0)return s;let i=await a_(e,t,r);return i?await i_(e,t,i.id,n,o):void 0}catch{return}}function F(e,t,r){let n=e.properties[t];if(!(!n||n.type!==r))switch(r){case"status":return n.status?.name;case"select":return n.select?.name;case"title":return n.title.map(s=>s.plain_text).join("");case"rich_text":return n.rich_text.map(s=>s.plain_text).join("");case"multi_select":return n.multi_select.map(s=>s.name);case"people":return n.people.map(s=>s.id);case"relation":return n.relation.map(s=>s.id);default:return}}function o_(e,t){if(e.properties[t])return e.properties[t];let r=t.toLowerCase();for(let[n,o]of Object.entries(e.properties))if(n.toLowerCase()===r)return o}function Dr(e){let t=e.toLowerCase();return t==="done"||t==="complete"||t==="completed"||t==="closed"}function Vp(e){for(let t of["Description","description","Body","body"]){let r=F(e,t,"rich_text");if(r)return r}}async function s_(e,t,r,n="Status"){let o=await Nt(e,t);if(!o.length)return;let s=o.filter(u=>Vp(u)?.includes(r)),i=s.length;if(i===0)return{total:0,incomplete:0};let a=s.filter(u=>{let l=F(u,n,"status")??F(u,n,"select");return!l||!Dr(l)}).length;return{total:i,incomplete:a}}async function i_(e,t,r,n,o="Status"){let s=await Ur(e,t,{property:n,relation:{contains:r}});if(!s)return;let i=s.results.length;if(i===0)return{total:0,incomplete:0};let a=s.results.filter(u=>{let l=F(u,o,"status")??F(u,o,"select");return!l||!Dr(l)}).length;return{total:i,incomplete:a}}async function a_(e,t,r){let n=r.replace("notion-","");return n?(await Nt(e,t)).find(s=>s.id.replace(/-/g,"").slice(0,8)===n):void 0}var c_="Status",u_="Assignee",l_="Labels",p_="Epic";function Xp(e){let t=e.CLANCY_NOTION_STATUS??c_,r=e.CLANCY_NOTION_ASSIGNEE??u_,n=e.CLANCY_NOTION_LABELS??l_,o=e.CLANCY_NOTION_PARENT??p_;return{async ping(){return Yp(e.NOTION_TOKEN)},validateInputs(){if(!/^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$/i.test(e.NOTION_DATABASE_ID))return"\u2717 NOTION_DATABASE_ID does not look like a valid UUID. Use the database ID from the Notion URL, not the full URL."},async fetchTicket(s){return(await this.fetchTickets(s))[0]},async fetchTickets(s){let i=f_(t,"To-do"),a=await Ur(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,i);if(!a)return[];let u=a.results;s.excludeHitl&&(u=u.filter(p=>!F(p,n,"multi_select")?.includes("clancy:hitl")));let l=s.buildLabel??e.CLANCY_LABEL;return l&&(u=u.filter(p=>F(p,n,"multi_select")?.includes(l))),u.slice(0,5).map(p=>d_(p,{labelsProp:n,parentProp:o,assigneeProp:r}))},async fetchBlockerStatus(s){let i=s.issueId;return i?Gp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,i,t):!1},async fetchChildrenStatus(s){return Wp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s,o,t)},async transitionTicket(s,i){let a=s.issueId;if(!a)return!1;if(await Ot(e.NOTION_TOKEN,a,{[t]:{status:{name:i}}}))return console.log(` \u2192 Transitioned to ${i}`),!0;let l=await Ot(e.NOTION_TOKEN,a,{[t]:{select:{name:i}}});return l&&console.log(` \u2192 Transitioned to ${i}`),l},async ensureLabel(s){},async addLabel(s,i){try{let a=await Qp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s);if(!a)return;let u=F(a,n,"multi_select")??[];if(u.includes(i))return;let l=[...u,i].map(p=>({name:p}));await Ot(e.NOTION_TOKEN,a.id,{[n]:{multi_select:l}})}catch(a){console.warn(`\u26A0 addLabel failed: ${a instanceof Error?a.message:String(a)}`)}},async removeLabel(s,i){try{let a=await Qp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s);if(!a)return;let u=F(a,n,"multi_select")??[];if(!u.includes(i))return;let l=u.filter(p=>p!==i).map(p=>({name:p}));await Ot(e.NOTION_TOKEN,a.id,{[n]:{multi_select:l}})}catch(a){console.warn(`\u26A0 removeLabel failed: ${a instanceof Error?a.message:String(a)}`)}},sharedEnv(){return e}}}function f_(e,t){let r=t??"To-do";return{or:[{property:e,status:{equals:r}},{property:e,select:{equals:r}}]}}function d_(e,t){let n=`notion-${e.id.replace(/-/g,"").slice(0,8)}`,o="";for(let[l,p]of Object.entries(e.properties))if(p.type==="title"){o=F(e,l,"title")??"";break}let s="";for(let l of["Description","description","Body","body"]){let p=F(e,l,"rich_text");if(p){s=p;break}}let i=F(e,t.parentProp,"relation"),a=i&&i.length>0?`notion-${i[0].replace(/-/g,"").slice(0,8)}`:"none",u=F(e,t.labelsProp,"multi_select")??[];return{key:n,title:o,description:s,parentInfo:a,blockers:"None",issueId:e.id,labels:u,status:"To-do"}}async function Qp(e,t,r){let n=r.replace("notion-","");return n?(await Nt(e,t)).find(s=>s.id.replace(/-/g,"").slice(0,8)===n):void 0}var m_=c.object({verb:c.string(),subject_id:c.number(),object_id:c.number()}),Za=c.object({id:c.number(),name:c.string(),description:c.optional(c.nullable(c.string())),story_type:c.optional(c.string()),blocked:c.optional(c.boolean()),story_links:c.optional(c.array(m_)),label_ids:c.optional(c.array(c.number())),labels:c.optional(c.array(c.object({id:c.number(),name:c.string()}))),epic_id:c.optional(c.nullable(c.number())),workflow_state_id:c.optional(c.number()),owner_ids:c.optional(c.array(c.string()))}),ja=c.object({data:c.array(Za),next:c.optional(c.nullable(c.string())),total:c.optional(c.number())}),Fr=Za,h_=c.object({id:c.number(),name:c.string(),type:c.string()}),g_=c.object({id:c.number(),name:c.string(),states:c.array(h_)}),ef=c.array(g_),tf=c.object({id:c.number(),name:c.string()}),rf=c.array(tf),nf=tf,of=c.array(Za),sf=c.object({id:c.string(),mention_name:c.optional(c.string())});var ne="https://api.app.shortcut.com/api/v3";function oe(e){return{"Shortcut-Token":e,"Content-Type":"application/json"}}var Hr;var Lt;async function af(e){let t;try{t=await fetch(`${ne}/member-info`,{headers:oe(e)})}catch{return{ok:!1,error:"\u2717 Could not reach Shortcut \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Shortcut auth failed \u2014 check SHORTCUT_API_TOKEN"}:{ok:!1,error:`\u2717 Shortcut API returned HTTP ${t.status}`};try{let r=await t.json(),n=sf.safeParse(r);if(n.success&&n.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Shortcut auth failed \u2014 check SHORTCUT_API_TOKEN"}}async function Zt(e){if(Hr)return Hr;try{let t=await fetch(`${ne}/workflows`,{headers:oe(e)});if(!t.ok)return console.warn(`\u26A0 Shortcut /workflows returned HTTP ${t.status}`),[];let r=await t.json(),n=ef.safeParse(r);return n.success?(Hr=n.data,Hr):(console.warn(`\u26A0 Unexpected Shortcut workflows response: ${n.error.message}`),[])}catch(t){return console.warn(`\u26A0 Shortcut /workflows request failed: ${t instanceof Error?t.message:String(t)}`),[]}}async function cf(e,t,r){let n=await Zt(e);for(let o of n){if(r&&o.name!==r)continue;let s=o.states.find(i=>i.name.toLowerCase()===t.toLowerCase());if(s)return s.id}}async function uf(e,t,r){let n=await Zt(e),o=[];for(let s of n)if(!(r&&s.name!==r))for(let i of s.states)i.type===t&&o.push(i.id);return o}async function lf(e,t,r,n,o,s=5){if(!t.length)return[];let i,a={};t.length&&(a.workflow_state_ids=t),n&&(a.owner_ids=[n]),r&&(a.label_name=r);try{i=await fetch(`${ne}/stories/search`,{method:"POST",headers:oe(e),body:JSON.stringify(a)})}catch(f){return console.warn(`\u26A0 Shortcut API request failed: ${f instanceof Error?f.message:String(f)}`),[]}if(!i.ok)return console.warn(`\u26A0 Shortcut API returned HTTP ${i.status}`),[];let u;try{u=await i.json()}catch{return console.warn("\u26A0 Shortcut API returned invalid JSON"),[]}let l=ja.safeParse(u);if(!l.success)return console.warn(`\u26A0 Unexpected Shortcut response shape: ${l.error.message}`),[];let p=l.data.data;return o&&(p=p.filter(f=>!f.labels?.some(m=>m.name==="clancy:hitl"))),p.slice(0,s).map(f=>({key:`sc-${f.id}`,title:f.name,description:f.description??"",provider:"shortcut",storyId:f.id,epicId:f.epic_id??void 0,labels:f.labels?.map(m=>m.name).filter(m=>!!m)}))}async function pf(e,t){try{let r=await fetch(`${ne}/stories/${t}`,{headers:oe(e)});if(!r.ok)return!1;let n=await r.json(),o=Fr.safeParse(n);if(!o.success)return!1;let s=o.data;if(!s.blocked)return!1;let i=(s.story_links??[]).filter(l=>l.verb==="is blocked by");if(!i.length)return!1;let a=await Zt(e),u=new Set;for(let l of a)for(let p of l.states)p.type==="done"&&u.add(p.id);for(let l of i){let p=l.object_id,f=await fetch(`${ne}/stories/${p}`,{headers:oe(e)});if(!f.ok)continue;let m=await f.json(),h=Fr.safeParse(m);if(h.success&&h.data.workflow_state_id!==void 0&&!u.has(h.data.workflow_state_id))return!0}return!1}catch{return!1}}async function ff(e,t,r){try{if(r){let n=await y_(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await __(e,t)}catch{return}}async function y_(e,t){try{let r=await fetch(`${ne}/stories/search`,{method:"POST",headers:oe(e),body:JSON.stringify({query:t})});if(!r.ok)return;let n=await r.json(),o=ja.safeParse(n);if(!o.success)return;let s=o.data.data,i=s.length;if(i===0)return{total:0,incomplete:0};let a=await Zt(e),u=new Set;for(let p of a)for(let f of p.states)f.type==="done"&&u.add(f.id);let l=s.filter(p=>p.workflow_state_id===void 0||!u.has(p.workflow_state_id)).length;return{total:i,incomplete:l}}catch{return}}async function __(e,t){try{let r=await fetch(`${ne}/epics/${t}/stories`,{headers:oe(e)});if(!r.ok)return;let n=await r.json(),o=of.safeParse(n);if(!o.success)return;let s=o.data,i=s.length;if(i===0)return{total:0,incomplete:0};let a=await Zt(e),u=new Set;for(let p of a)for(let f of p.states)f.type==="done"&&u.add(f.id);let l=s.filter(p=>p.workflow_state_id===void 0||!u.has(p.workflow_state_id)).length;return{total:i,incomplete:l}}catch{return}}async function df(e,t,r){try{return(await fetch(`${ne}/stories/${t}`,{method:"PUT",headers:oe(e),body:JSON.stringify({workflow_state_id:r})})).ok}catch{return!1}}async function qr(e){if(Lt)return Lt;try{let t=await fetch(`${ne}/labels`,{headers:oe(e)});if(!t.ok)return console.warn(`\u26A0 Shortcut /labels returned HTTP ${t.status}`),[];let r=await t.json(),n=rf.safeParse(r);return n.success?(Lt=n.data,Lt):(console.warn(`\u26A0 Unexpected Shortcut labels response: ${n.error.message}`),[])}catch(t){return console.warn(`\u26A0 Shortcut /labels request failed: ${t instanceof Error?t.message:String(t)}`),[]}}async function mf(e,t){try{let r=await fetch(`${ne}/labels`,{method:"POST",headers:oe(e),body:JSON.stringify({name:t,color:"#0075ca"})});if(!r.ok){console.warn(`\u26A0 Shortcut label create returned HTTP ${r.status}`);return}let n=await r.json(),o=nf.safeParse(n);return o.success?(Lt=void 0,o.data.id):void 0}catch(r){console.warn(`\u26A0 Shortcut label create failed: ${r instanceof Error?r.message:String(r)}`);return}}async function Da(e,t){try{let r=await fetch(`${ne}/stories/${t}`,{headers:oe(e)});if(!r.ok)return;let n=await r.json(),o=Fr.safeParse(n);return o.success?o.data.label_ids??[]:void 0}catch{return}}async function Ma(e,t,r){try{let n=await fetch(`${ne}/stories/${t}`,{method:"PUT",headers:oe(e),body:JSON.stringify({label_ids:r})});return n.ok||console.warn(`\u26A0 Shortcut story label update returned HTTP ${n.status}`),n.ok}catch(n){return console.warn(`\u26A0 Shortcut story label update failed: ${n instanceof Error?n.message:String(n)}`),!1}}function hf(e){return{async ping(){return af(e.SHORTCUT_API_TOKEN)},validateInputs(){},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){let r=await uf(e.SHORTCUT_API_TOKEN,"unstarted",e.SHORTCUT_WORKFLOW);return(await lf(e.SHORTCUT_API_TOKEN,r,t.buildLabel??e.CLANCY_LABEL,void 0,t.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.epicId?`epic-${o.epicId}`:"none",blockers:"None",issueId:String(o.storyId),labels:o.labels??[],status:"unstarted"}))},async fetchBlockerStatus(t){let r=Jr(t.key);return r===void 0?!1:pf(e.SHORTCUT_API_TOKEN,r)},async fetchChildrenStatus(t,r){let n=r??t.replace(/^(sc-|epic-)/,""),o=parseInt(n,10);if(!Number.isNaN(o))return ff(e.SHORTCUT_API_TOKEN,o,t)},async transitionTicket(t,r){let n=Jr(t.key);if(n===void 0)return!1;let o=await cf(e.SHORTCUT_API_TOKEN,r,e.SHORTCUT_WORKFLOW);if(o===void 0)return console.warn(`\u26A0 Shortcut workflow state "${r}" not found \u2014 check workflow configuration`),!1;let s=await df(e.SHORTCUT_API_TOKEN,n,o);return s&&console.log(` \u2192 Transitioned to ${r}`),s},async ensureLabel(t){try{if((await qr(e.SHORTCUT_API_TOKEN)).find(o=>o.name===t))return;await mf(e.SHORTCUT_API_TOKEN,t)}catch(r){console.warn(`\u26A0 ensureLabel failed: ${r instanceof Error?r.message:String(r)}`)}},async addLabel(t,r){try{await this.ensureLabel(r);let n=Jr(t);if(n===void 0)return;let s=(await qr(e.SHORTCUT_API_TOKEN)).find(a=>a.name===r);if(!s)return;let i=await Da(e.SHORTCUT_API_TOKEN,n);if(!i||i.includes(s.id))return;await Ma(e.SHORTCUT_API_TOKEN,n,[...i,s.id])}catch(n){console.warn(`\u26A0 addLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async removeLabel(t,r){try{let n=Jr(t);if(n===void 0)return;let s=(await qr(e.SHORTCUT_API_TOKEN)).find(a=>a.name===r);if(!s)return;let i=await Da(e.SHORTCUT_API_TOKEN,n);if(!i||!i.includes(s.id))return;await Ma(e.SHORTCUT_API_TOKEN,n,i.filter(a=>a!==s.id))}catch(n){console.warn(`\u26A0 removeLabel failed: ${n instanceof Error?n.message:String(n)}`)}},sharedEnv(){return e}}}function Jr(e){let t=parseInt(e.replace("sc-",""),10);return Number.isNaN(t)?void 0:t}function gf(e){switch(e.provider){case"jira":return zp(e.env);case"github":return hp(e.env);case"linear":return Fp(e.env);case"shortcut":return hf(e.env);case"notion":return Xp(e.env);case"azdo":return cp(e.env)}}async function yf(e){console.log($("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510")),console.log($("\u2502")+Ne(" \u{1F916} Clancy \u2014 once mode ")+$("\u2502")),console.log($("\u2502")+$(` "Let's roll." `)+$("\u2502")),console.log($("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518")),console.log("");let t=Cr(e.cwd);if(!t.ok)return console.log(t.error),!1;t.warning&&console.log(t.warning);let r=Pr(t.env);if(typeof r=="string")return console.log(r),!1;let n=r,o=gf(n),s=o.validateInputs();if(s)return console.log(s),!1;let i=await o.ping();return i.ok?(console.log(N("\u2705 Preflight passed")),e.config=n,e.board=o,!0):(console.log(i.error),!1)}async function _f(e){let t=e.config;try{let r=await Rl(t);r&&(e.isRework=!0,e.ticket=r.ticket,e.prFeedback=r.feedback,e.reworkPrNumber=r.prNumber,e.reworkDiscussionIds=r.discussionIds,e.reworkReviewers=r.reviewers,console.log(v(` \u21BB PR rework: [${e.ticket.key}] ${e.ticket.title}`)))}catch{}return!0}function b_(e){return e.CLANCY_LABEL_BUILD||e.CLANCY_LABEL||void 0}function w_(e){return e.CLANCY_LABEL_PLAN||e.CLANCY_PLAN_LABEL||void 0}function $_(e){return e?.isAfk??process.env.CLANCY_AFK_MODE==="1"}async function bf(e,t){let r=$_(t),n=e.sharedEnv(),o=b_(n),s=w_(n),i=await e.fetchTickets({excludeHitl:r,buildLabel:o});if(i.length)for(let a of i){if(s&&a.labels?.includes(s)){console.log(`Skipping ${a.key} \u2014 still has plan label`);continue}if(!await e.fetchBlockerStatus(a))return console.log(`Selected ${a.key}${a.status?` (status: ${a.status})`:""}`),a;console.log(`Skipping ${a.key} \u2014 blocked`)}}async function wf(e){let t=e.config;if(e.ticket||(e.ticket=await bf(e.board)),!e.ticket)return console.log($("No tickets found. All done!")),!1;if(e.isRework){let a=parseInt(Z(t).CLANCY_MAX_REWORK??"3",10),u=Number.isFinite(a)&&a>0?a:3;if(qu(e.cwd,e.ticket.key)>=u)return console.log(v(`\u26A0 ${e.ticket.key} has reached max rework cycles (${u}) \u2014 needs human intervention`)),R(e.cwd,e.ticket.key,e.ticket.title,"SKIPPED"),!1}let r=t.env.CLANCY_BASE_BRANCH??"main",n=e.ticket.parentInfo!=="none"?e.ticket.parentInfo:void 0,o=We(t.provider,e.ticket.key),s=Ve(t.provider,r,n);e.baseBranch=r,e.ticketBranch=o,e.targetBranch=s,e.hasParent=e.ticket.parentInfo!=="none";let i=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(`\u{1F3AB} ${Ne(`[${e.ticket.key}]`)} ${e.ticket.title}`),console.log($(` ${i}: ${e.ticket.parentInfo} | Branch: ${o} \u2192 ${s}`)),t.provider!=="github"&&e.ticket.blockers!=="None"&&console.log(v(` Blockers: ${e.ticket.blockers}`)),console.log(""),!0}async function $f(e){let t=e.config,r=e.board,n=e.ticket,o=t.env.CLANCY_STATUS_IN_PROGRESS;return o&&await r.transitionTicket(n,o),!0}async function S_(e){let t=Ja(e);if(await Gl(t))try{if(!await yf(t)||!await Ll(t)||!await Wl(t)||!await _f(t)||!await wf(t)||!Ol(t)||!Bl(t)||!await wl(t)||!await $f(t)||!ql(t)||!await Nl(t))return;Sl(t),await xl(t)}catch(r){let n=r instanceof Error?r.message:String(r),o=Ce(Date.now()-t.startTime);if(console.error(""),console.error(Oe("\u274C Clancy stopped")+$(` (${o})`)),console.error(Oe(` ${n}`)),console.error($(` "I'd rather let Herman go."`)),t.originalBranch)try{L(t.originalBranch)}catch{}}finally{t.lockOwner&&(Ft(t.cwd),Ht(t.cwd))}}process.argv[1]&&k_(import.meta.url)===x_(process.argv[1])&&S_(process.argv);export{S_ as run};
|
|
239
|
+
`,{issueId:u.id,labelIds:f})}catch(o){console.warn(`\u26A0 removeLabel failed: ${o instanceof Error?o.message:String(o)}`)}},sharedEnv(){return e}}}var Hp=c.object({plain_text:c.string()}),Jy=c.object({type:c.literal("status"),status:c.nullable(c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}))}),Ky=c.object({type:c.literal("select"),select:c.nullable(c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}))}),Yy=c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}),Gy=c.object({type:c.literal("multi_select"),multi_select:c.array(Yy)}),Wy=c.object({type:c.literal("people"),people:c.array(c.object({id:c.string(),name:c.optional(c.nullable(c.string()))}))}),Vy=c.object({type:c.literal("relation"),relation:c.array(c.object({id:c.string()}))}),Qy=c.object({type:c.literal("title"),title:c.array(Hp)}),Xy=c.object({type:c.literal("rich_text"),rich_text:c.array(Hp)}),e_=c.union([Jy,Ky,Gy,Wy,Vy,Qy,Xy,c.object({type:c.string()})]),La=c.object({id:c.string(),url:c.optional(c.string()),properties:c.record(c.string(),e_)}),qp=c.object({results:c.array(La),has_more:c.boolean(),next_cursor:c.nullable(c.optional(c.string()))}),Jp=c.object({id:c.string(),type:c.optional(c.string()),name:c.optional(c.nullable(c.string())),avatar_url:c.optional(c.nullable(c.string()))});function t_(e){if(!e)return;let t=parseInt(e,10);if(!Number.isNaN(t)&&t>=0)return t*1e3;let r=new Date(e);if(!Number.isNaN(r.getTime())){let n=r.getTime()-Date.now();return n>0?n:0}}function Za(e,t,r){let n=t*2**e;return Math.min(n,r)}function r_(e){return e===429||e>=500&&e<=599}async function Ct(e,t,r){let n=Math.max(0,r?.maxRetries??3),o=r?.baseDelayMs??1e3,s=r?.maxDelayMs??1e4,i;for(let a=0;a<=n;a++)try{let u=await fetch(e,t);if(!r_(u.status)||a===n)return u;let l;u.status===429?l=t_(u.headers.get("Retry-After"))??Za(a,o,s):l=Za(a,o,s),await u.arrayBuffer().catch(()=>{}),await new Promise(p=>setTimeout(p,l))}catch(u){if(i=u,a===n)throw i;let l=Za(a,o,s);await new Promise(p=>setTimeout(p,l))}throw i}var Mr="https://api.notion.com/v1",n_="2022-06-28";function Br(e){return{Authorization:`Bearer ${e}`,"Notion-Version":n_,"Content-Type":"application/json"}}async function Yp(e){let t;try{t=await Ct(`${Mr}/users/me`,{headers:Br(e)})}catch{return{ok:!1,error:"\u2717 Could not reach Notion \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Notion auth failed \u2014 check NOTION_TOKEN"}:{ok:!1,error:`\u2717 Notion API returned HTTP ${t.status}`};try{let r=await t.json(),n=Jp.safeParse(r);if(n.success&&n.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Notion auth failed \u2014 check NOTION_TOKEN"}}async function Ur(e,t,r,n,o){let s={};r&&(s.filter=r),n&&(s.sorts=n),o&&(s.start_cursor=o);let i;try{i=await Ct(`${Mr}/databases/${t}/query`,{method:"POST",headers:Br(e),body:JSON.stringify(s)})}catch(l){console.warn(`\u26A0 Notion API request failed: ${l instanceof Error?l.message:String(l)}`);return}if(!i.ok){console.warn(`\u26A0 Notion API returned HTTP ${i.status}`);return}let a;try{a=await i.json()}catch{console.warn("\u26A0 Notion API returned invalid JSON");return}let u=qp.safeParse(a);if(!u.success){console.warn(`\u26A0 Unexpected Notion response shape: ${u.error.message}`);return}return u.data}async function Nt(e,t,r){let n=[],o;for(let i=0;i<10;i++){let a=await Ur(e,t,r,void 0,o);if(!a||(n.push(...a.results),!a.has_more||!a.next_cursor))break;o=a.next_cursor}return n}async function Kp(e,t){try{let r=await Ct(`${Mr}/pages/${t}`,{headers:Br(e)});if(!r.ok)return;let n=await r.json(),o=La.safeParse(n);return o.success?o.data:void 0}catch{return}}async function Ot(e,t,r){try{return(await Ct(`${Mr}/pages/${t}`,{method:"PATCH",headers:Br(e),body:JSON.stringify({properties:r})})).ok}catch{return!1}}async function Gp(e,t,r,n="Status"){try{let o=await Kp(e,r);if(!o)return!1;let s=o_(o,"Blocked by");if(s?.type==="relation"){let u=s.relation;if(u.length>0){for(let l of u){let p=await Kp(e,l.id);if(!p)continue;let f=F(p,n,"status");if(f&&!Dr(f))return!0}return!1}}let i=r.replace(/-/g,"").slice(0,8),a=Vp(o);if(a){let u=a.match(/Blocked by (notion-[a-f0-9]{8})/gi);if(u){let l=await Nt(e,t);if(!l.length)return!1;for(let p of u){let f=p.replace(/blocked by notion-/i,"").toLowerCase();if(f!==i){for(let m of l)if(m.id.replace(/-/g,"").slice(0,8)===f){let _=F(m,n,"status");if(_&&!Dr(_))return!0}}}}}return!1}catch{return!1}}async function Wp(e,t,r,n="Epic",o="Status"){try{let s=await s_(e,t,`Epic: ${r}`,o);if(s&&s.total>0)return s;let i=await a_(e,t,r);return i?await i_(e,t,i.id,n,o):void 0}catch{return}}function F(e,t,r){let n=e.properties[t];if(!(!n||n.type!==r))switch(r){case"status":return n.status?.name;case"select":return n.select?.name;case"title":return n.title.map(s=>s.plain_text).join("");case"rich_text":return n.rich_text.map(s=>s.plain_text).join("");case"multi_select":return n.multi_select.map(s=>s.name);case"people":return n.people.map(s=>s.id);case"relation":return n.relation.map(s=>s.id);default:return}}function o_(e,t){if(e.properties[t])return e.properties[t];let r=t.toLowerCase();for(let[n,o]of Object.entries(e.properties))if(n.toLowerCase()===r)return o}function Dr(e){let t=e.toLowerCase();return t==="done"||t==="complete"||t==="completed"||t==="closed"}function Vp(e){for(let t of["Description","description","Body","body"]){let r=F(e,t,"rich_text");if(r)return r}}async function s_(e,t,r,n="Status"){let o=await Nt(e,t);if(!o.length)return;let s=o.filter(u=>Vp(u)?.includes(r)),i=s.length;if(i===0)return{total:0,incomplete:0};let a=s.filter(u=>{let l=F(u,n,"status")??F(u,n,"select");return!l||!Dr(l)}).length;return{total:i,incomplete:a}}async function i_(e,t,r,n,o="Status"){let s=await Ur(e,t,{property:n,relation:{contains:r}});if(!s)return;let i=s.results.length;if(i===0)return{total:0,incomplete:0};let a=s.results.filter(u=>{let l=F(u,o,"status")??F(u,o,"select");return!l||!Dr(l)}).length;return{total:i,incomplete:a}}async function a_(e,t,r){let n=r.replace("notion-","");return n?(await Nt(e,t)).find(s=>s.id.replace(/-/g,"").slice(0,8)===n):void 0}var c_="Status",u_="Assignee",l_="Labels",p_="Epic";function Xp(e){let t=e.CLANCY_NOTION_STATUS??c_,r=e.CLANCY_NOTION_ASSIGNEE??u_,n=e.CLANCY_NOTION_LABELS??l_,o=e.CLANCY_NOTION_PARENT??p_;return{async ping(){return Yp(e.NOTION_TOKEN)},validateInputs(){if(!/^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$/i.test(e.NOTION_DATABASE_ID))return"\u2717 NOTION_DATABASE_ID does not look like a valid UUID. Use the database ID from the Notion URL, not the full URL."},async fetchTicket(s){return(await this.fetchTickets(s))[0]},async fetchTickets(s){let i=e.CLANCY_NOTION_TODO??"To-do",a=f_(t,i),u=await Ur(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,a);if(!u)return[];let l=u.results;s.excludeHitl&&(l=l.filter(f=>!F(f,n,"multi_select")?.includes("clancy:hitl")));let p=s.buildLabel??e.CLANCY_LABEL;return p&&(l=l.filter(f=>F(f,n,"multi_select")?.includes(p))),l.slice(0,5).map(f=>d_(f,{labelsProp:n,parentProp:o,assigneeProp:r}))},async fetchBlockerStatus(s){let i=s.issueId;return i?Gp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,i,t):!1},async fetchChildrenStatus(s){return Wp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s,o,t)},async transitionTicket(s,i){let a=s.issueId;if(!a)return!1;if(await Ot(e.NOTION_TOKEN,a,{[t]:{status:{name:i}}}))return console.log(` \u2192 Transitioned to ${i}`),!0;let l=await Ot(e.NOTION_TOKEN,a,{[t]:{select:{name:i}}});return l&&console.log(` \u2192 Transitioned to ${i}`),l},async ensureLabel(s){},async addLabel(s,i){try{let a=await Qp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s);if(!a)return;let u=F(a,n,"multi_select")??[];if(u.includes(i))return;let l=[...u,i].map(p=>({name:p}));await Ot(e.NOTION_TOKEN,a.id,{[n]:{multi_select:l}})}catch(a){console.warn(`\u26A0 addLabel failed: ${a instanceof Error?a.message:String(a)}`)}},async removeLabel(s,i){try{let a=await Qp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s);if(!a)return;let u=F(a,n,"multi_select")??[];if(!u.includes(i))return;let l=u.filter(p=>p!==i).map(p=>({name:p}));await Ot(e.NOTION_TOKEN,a.id,{[n]:{multi_select:l}})}catch(a){console.warn(`\u26A0 removeLabel failed: ${a instanceof Error?a.message:String(a)}`)}},sharedEnv(){return e}}}function f_(e,t){return{property:e,status:{equals:t??"To-do"}}}function d_(e,t){let n=`notion-${e.id.replace(/-/g,"").slice(0,8)}`,o="";for(let[l,p]of Object.entries(e.properties))if(p.type==="title"){o=F(e,l,"title")??"";break}let s="";for(let l of["Description","description","Body","body"]){let p=F(e,l,"rich_text");if(p){s=p;break}}let i=F(e,t.parentProp,"relation"),a=i&&i.length>0?`notion-${i[0].replace(/-/g,"").slice(0,8)}`:"none",u=F(e,t.labelsProp,"multi_select")??[];return{key:n,title:o,description:s,parentInfo:a,blockers:"None",issueId:e.id,labels:u,status:"To-do"}}async function Qp(e,t,r){let n=r.replace("notion-","");return n?(await Nt(e,t)).find(s=>s.id.replace(/-/g,"").slice(0,8)===n):void 0}var m_=c.object({verb:c.string(),subject_id:c.number(),object_id:c.number()}),ja=c.object({id:c.number(),name:c.string(),description:c.optional(c.nullable(c.string())),story_type:c.optional(c.string()),blocked:c.optional(c.boolean()),story_links:c.optional(c.array(m_)),label_ids:c.optional(c.array(c.number())),labels:c.optional(c.array(c.object({id:c.number(),name:c.string()}))),epic_id:c.optional(c.nullable(c.number())),workflow_state_id:c.optional(c.number()),owner_ids:c.optional(c.array(c.string()))}),Fr=c.object({data:c.array(ja),next:c.optional(c.nullable(c.string())),total:c.optional(c.number())}),Hr=ja,h_=c.object({id:c.number(),name:c.string(),type:c.string()}),g_=c.object({id:c.number(),name:c.string(),states:c.array(h_)}),ef=c.array(g_),tf=c.object({id:c.number(),name:c.string()}),rf=c.array(tf),nf=tf,of=c.array(ja),sf=c.object({id:c.string(),mention_name:c.optional(c.string())});var ee="https://api.app.shortcut.com/api/v3";function te(e){return{"Shortcut-Token":e,"Content-Type":"application/json"}}var qr;var Lt;async function af(e){let t;try{t=await fetch(`${ee}/member-info`,{headers:te(e)}),t.ok||(t=await fetch(`${ee}/workflows`,{headers:te(e)}))}catch{return{ok:!1,error:"\u2717 Could not reach Shortcut \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Shortcut auth failed \u2014 check SHORTCUT_API_TOKEN"}:{ok:!1,error:`\u2717 Shortcut API returned HTTP ${t.status}`};try{let r=await t.json(),n=sf.safeParse(r);if(n.success&&n.data.id)return{ok:!0};if(Array.isArray(r))return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Shortcut auth failed \u2014 check SHORTCUT_API_TOKEN"}}async function Zt(e){if(qr)return qr;try{let t=await fetch(`${ee}/workflows`,{headers:te(e)});if(!t.ok)return console.warn(`\u26A0 Shortcut /workflows returned HTTP ${t.status}`),[];let r=await t.json(),n=ef.safeParse(r);return n.success?(qr=n.data,qr):(console.warn(`\u26A0 Unexpected Shortcut workflows response: ${n.error.message}`),[])}catch(t){return console.warn(`\u26A0 Shortcut /workflows request failed: ${t instanceof Error?t.message:String(t)}`),[]}}async function cf(e,t,r){let n=await Zt(e);for(let o of n){if(r&&o.name!==r)continue;let s=o.states.find(i=>i.name.toLowerCase()===t.toLowerCase());if(s)return s.id}}async function uf(e,t,r){let n=await Zt(e),o=[];for(let s of n)if(!(r&&s.name!==r))for(let i of s.states)i.type===t&&o.push(i.id);return o}async function lf(e,t,r,n,o,s=5){if(!t.length)return[];let i,a={};(t.length===1||t.length>1)&&(a.workflow_state_id=t[0]),n&&(a.owner_ids=[n]),r&&(a.label_name=r);try{i=await fetch(`${ee}/stories/search`,{method:"POST",headers:te(e),body:JSON.stringify(a)})}catch(f){return console.warn(`\u26A0 Shortcut API request failed: ${f instanceof Error?f.message:String(f)}`),[]}if(!i.ok)return console.warn(`\u26A0 Shortcut API returned HTTP ${i.status}`),[];let u;try{u=await i.json()}catch{return console.warn("\u26A0 Shortcut API returned invalid JSON"),[]}let l=Fr.safeParse(u),p;if(l.success)p=l.data.data;else if(Array.isArray(u)){let f=Fr.safeParse({data:u});if(!f.success)return console.warn(`\u26A0 Unexpected Shortcut response shape: ${f.error.message}`),[];p=f.data.data}else return console.warn(`\u26A0 Unexpected Shortcut response shape: ${l.error.message}`),[];return o&&(p=p.filter(f=>!f.labels?.some(m=>m.name==="clancy:hitl"))),p.slice(0,s).map(f=>({key:`sc-${f.id}`,title:f.name,description:f.description??"",provider:"shortcut",storyId:f.id,epicId:f.epic_id??void 0,labels:f.labels?.map(m=>m.name).filter(m=>!!m)}))}async function pf(e,t){try{let r=await fetch(`${ee}/stories/${t}`,{headers:te(e)});if(!r.ok)return!1;let n=await r.json(),o=Hr.safeParse(n);if(!o.success)return!1;let s=o.data;if(!s.blocked)return!1;let i=(s.story_links??[]).filter(l=>l.verb==="is blocked by");if(!i.length)return!1;let a=await Zt(e),u=new Set;for(let l of a)for(let p of l.states)p.type==="done"&&u.add(p.id);for(let l of i){let p=l.object_id,f=await fetch(`${ee}/stories/${p}`,{headers:te(e)});if(!f.ok)continue;let m=await f.json(),h=Hr.safeParse(m);if(h.success&&h.data.workflow_state_id!==void 0&&!u.has(h.data.workflow_state_id))return!0}return!1}catch{return!1}}async function ff(e,t,r){try{if(r){let n=await y_(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await __(e,t)}catch{return}}async function y_(e,t){try{let r=await fetch(`${ee}/stories/search`,{method:"POST",headers:te(e),body:JSON.stringify({query:t})});if(!r.ok)return;let n=await r.json(),o=Fr.safeParse(n);if(!o.success)return;let s=o.data.data,i=s.length;if(i===0)return{total:0,incomplete:0};let a=await Zt(e),u=new Set;for(let p of a)for(let f of p.states)f.type==="done"&&u.add(f.id);let l=s.filter(p=>p.workflow_state_id===void 0||!u.has(p.workflow_state_id)).length;return{total:i,incomplete:l}}catch{return}}async function __(e,t){try{let r=await fetch(`${ee}/epics/${t}/stories`,{headers:te(e)});if(!r.ok)return;let n=await r.json(),o=of.safeParse(n);if(!o.success)return;let s=o.data,i=s.length;if(i===0)return{total:0,incomplete:0};let a=await Zt(e),u=new Set;for(let p of a)for(let f of p.states)f.type==="done"&&u.add(f.id);let l=s.filter(p=>p.workflow_state_id===void 0||!u.has(p.workflow_state_id)).length;return{total:i,incomplete:l}}catch{return}}async function df(e,t,r){try{return(await fetch(`${ee}/stories/${t}`,{method:"PUT",headers:te(e),body:JSON.stringify({workflow_state_id:r})})).ok}catch{return!1}}async function Jr(e){if(Lt)return Lt;try{let t=await fetch(`${ee}/labels`,{headers:te(e)});if(!t.ok)return console.warn(`\u26A0 Shortcut /labels returned HTTP ${t.status}`),[];let r=await t.json(),n=rf.safeParse(r);return n.success?(Lt=n.data,Lt):(console.warn(`\u26A0 Unexpected Shortcut labels response: ${n.error.message}`),[])}catch(t){return console.warn(`\u26A0 Shortcut /labels request failed: ${t instanceof Error?t.message:String(t)}`),[]}}async function mf(e,t){try{let r=await fetch(`${ee}/labels`,{method:"POST",headers:te(e),body:JSON.stringify({name:t,color:"#0075ca"})});if(!r.ok){console.warn(`\u26A0 Shortcut label create returned HTTP ${r.status}`);return}let n=await r.json(),o=nf.safeParse(n);return o.success?(Lt=void 0,o.data.id):void 0}catch(r){console.warn(`\u26A0 Shortcut label create failed: ${r instanceof Error?r.message:String(r)}`);return}}async function Da(e,t){try{let r=await fetch(`${ee}/stories/${t}`,{headers:te(e)});if(!r.ok)return;let n=await r.json(),o=Hr.safeParse(n);return o.success?o.data.label_ids??[]:void 0}catch{return}}async function Ma(e,t,r){try{let n=await fetch(`${ee}/stories/${t}`,{method:"PUT",headers:te(e),body:JSON.stringify({label_ids:r})});return n.ok||console.warn(`\u26A0 Shortcut story label update returned HTTP ${n.status}`),n.ok}catch(n){return console.warn(`\u26A0 Shortcut story label update failed: ${n instanceof Error?n.message:String(n)}`),!1}}function hf(e){return{async ping(){return af(e.SHORTCUT_API_TOKEN)},validateInputs(){},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){let r=await uf(e.SHORTCUT_API_TOKEN,"unstarted",e.SHORTCUT_WORKFLOW);return(await lf(e.SHORTCUT_API_TOKEN,r,t.buildLabel??e.CLANCY_LABEL,void 0,t.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.epicId?`epic-${o.epicId}`:"none",blockers:"None",issueId:String(o.storyId),labels:o.labels??[],status:"unstarted"}))},async fetchBlockerStatus(t){let r=Kr(t.key);return r===void 0?!1:pf(e.SHORTCUT_API_TOKEN,r)},async fetchChildrenStatus(t,r){let n=r??t.replace(/^(sc-|epic-)/,""),o=parseInt(n,10);if(!Number.isNaN(o))return ff(e.SHORTCUT_API_TOKEN,o,t)},async transitionTicket(t,r){let n=Kr(t.key);if(n===void 0)return!1;let o=await cf(e.SHORTCUT_API_TOKEN,r,e.SHORTCUT_WORKFLOW);if(o===void 0)return console.warn(`\u26A0 Shortcut workflow state "${r}" not found \u2014 check workflow configuration`),!1;let s=await df(e.SHORTCUT_API_TOKEN,n,o);return s&&console.log(` \u2192 Transitioned to ${r}`),s},async ensureLabel(t){try{if((await Jr(e.SHORTCUT_API_TOKEN)).find(o=>o.name===t))return;await mf(e.SHORTCUT_API_TOKEN,t)}catch(r){console.warn(`\u26A0 ensureLabel failed: ${r instanceof Error?r.message:String(r)}`)}},async addLabel(t,r){try{await this.ensureLabel(r);let n=Kr(t);if(n===void 0)return;let s=(await Jr(e.SHORTCUT_API_TOKEN)).find(a=>a.name===r);if(!s)return;let i=await Da(e.SHORTCUT_API_TOKEN,n);if(!i||i.includes(s.id))return;await Ma(e.SHORTCUT_API_TOKEN,n,[...i,s.id])}catch(n){console.warn(`\u26A0 addLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async removeLabel(t,r){try{let n=Kr(t);if(n===void 0)return;let s=(await Jr(e.SHORTCUT_API_TOKEN)).find(a=>a.name===r);if(!s)return;let i=await Da(e.SHORTCUT_API_TOKEN,n);if(!i||!i.includes(s.id))return;await Ma(e.SHORTCUT_API_TOKEN,n,i.filter(a=>a!==s.id))}catch(n){console.warn(`\u26A0 removeLabel failed: ${n instanceof Error?n.message:String(n)}`)}},sharedEnv(){return e}}}function Kr(e){let t=parseInt(e.replace("sc-",""),10);return Number.isNaN(t)?void 0:t}function gf(e){switch(e.provider){case"jira":return zp(e.env);case"github":return hp(e.env);case"linear":return Fp(e.env);case"shortcut":return hf(e.env);case"notion":return Xp(e.env);case"azdo":return cp(e.env)}}async function yf(e){console.log($("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510")),console.log($("\u2502")+Ne(" \u{1F916} Clancy \u2014 once mode ")+$("\u2502")),console.log($("\u2502")+$(` "Let's roll." `)+$("\u2502")),console.log($("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518")),console.log("");let t=Cr(e.cwd);if(!t.ok)return console.log(t.error),!1;t.warning&&console.log(t.warning);let r=Pr(t.env);if(typeof r=="string")return console.log(r),!1;let n=r,o=gf(n),s=o.validateInputs();if(s)return console.log(s),!1;let i=await o.ping();return i.ok?(console.log(N("\u2705 Preflight passed")),e.config=n,e.board=o,!0):(console.log(i.error),!1)}async function _f(e){let t=e.config;try{let r=await Rl(t);r&&(e.isRework=!0,e.ticket=r.ticket,e.prFeedback=r.feedback,e.reworkPrNumber=r.prNumber,e.reworkDiscussionIds=r.discussionIds,e.reworkReviewers=r.reviewers,console.log(v(` \u21BB PR rework: [${e.ticket.key}] ${e.ticket.title}`)))}catch{}return!0}function b_(e){return e.CLANCY_LABEL_BUILD||e.CLANCY_LABEL||void 0}function w_(e){return e.CLANCY_LABEL_PLAN||e.CLANCY_PLAN_LABEL||void 0}function $_(e){return e?.isAfk??process.env.CLANCY_AFK_MODE==="1"}async function bf(e,t){let r=$_(t),n=e.sharedEnv(),o=b_(n),s=w_(n),i=await e.fetchTickets({excludeHitl:r,buildLabel:o});if(i.length)for(let a of i){if(s&&a.labels?.includes(s)){console.log(`Skipping ${a.key} \u2014 still has plan label`);continue}if(!await e.fetchBlockerStatus(a))return console.log(`Selected ${a.key}${a.status?` (status: ${a.status})`:""}`),a;console.log(`Skipping ${a.key} \u2014 blocked`)}}async function wf(e){let t=e.config;if(e.ticket||(e.ticket=await bf(e.board)),!e.ticket)return console.log($("No tickets found. All done!")),!1;if(e.isRework){let a=parseInt(Z(t).CLANCY_MAX_REWORK??"3",10),u=Number.isFinite(a)&&a>0?a:3;if(qu(e.cwd,e.ticket.key)>=u)return console.log(v(`\u26A0 ${e.ticket.key} has reached max rework cycles (${u}) \u2014 needs human intervention`)),R(e.cwd,e.ticket.key,e.ticket.title,"SKIPPED"),!1}let r=t.env.CLANCY_BASE_BRANCH??"main",n=e.ticket.parentInfo!=="none"?e.ticket.parentInfo:void 0,o=We(t.provider,e.ticket.key),s=Ve(t.provider,r,n);e.baseBranch=r,e.ticketBranch=o,e.targetBranch=s,e.hasParent=e.ticket.parentInfo!=="none";let i=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(`\u{1F3AB} ${Ne(`[${e.ticket.key}]`)} ${e.ticket.title}`),console.log($(` ${i}: ${e.ticket.parentInfo} | Branch: ${o} \u2192 ${s}`)),t.provider!=="github"&&e.ticket.blockers!=="None"&&console.log(v(` Blockers: ${e.ticket.blockers}`)),console.log(""),!0}async function $f(e){let t=e.config,r=e.board,n=e.ticket,o=t.env.CLANCY_STATUS_IN_PROGRESS;return o&&await r.transitionTicket(n,o),!0}async function S_(e){let t=Ja(e);if(await Gl(t))try{if(!await yf(t)||!await Ll(t)||!await Wl(t)||!await _f(t)||!await wf(t)||!Ol(t)||!Bl(t)||!await wl(t)||!await $f(t)||!ql(t)||!await Nl(t))return;Sl(t),await xl(t)}catch(r){let n=r instanceof Error?r.message:String(r),o=Ce(Date.now()-t.startTime);if(console.error(""),console.error(Oe("\u274C Clancy stopped")+$(` (${o})`)),console.error(Oe(` ${n}`)),console.error($(` "I'd rather let Herman go."`)),t.originalBranch)try{L(t.originalBranch)}catch{}}finally{t.lockOwner&&(Ft(t.cwd),Ht(t.cwd))}}process.argv[1]&&k_(import.meta.url)===x_(process.argv[1])&&S_(process.argv);export{S_ as run};
|
package/package.json
CHANGED