@lssm/lib.support-bot 0.4.1 → 1.41.0

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.
Files changed (43) hide show
  1. package/README.md +1 -1
  2. package/dist/bot/tools.js +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/node_modules/zod/v4/classic/errors.js +1 -0
  5. package/dist/node_modules/zod/v4/classic/iso.js +1 -0
  6. package/dist/node_modules/zod/v4/classic/parse.js +1 -0
  7. package/dist/node_modules/zod/v4/classic/schemas.js +1 -0
  8. package/dist/node_modules/zod/v4/core/api.js +1 -0
  9. package/dist/node_modules/zod/v4/core/checks.js +1 -0
  10. package/dist/node_modules/zod/v4/core/core.js +1 -0
  11. package/dist/node_modules/zod/v4/core/doc.js +3 -0
  12. package/dist/node_modules/zod/v4/core/errors.js +1 -0
  13. package/dist/node_modules/zod/v4/core/json-schema-processors.js +1 -0
  14. package/dist/node_modules/zod/v4/core/parse.js +1 -0
  15. package/dist/node_modules/zod/v4/core/regexes.js +1 -0
  16. package/dist/node_modules/zod/v4/core/registries.js +1 -0
  17. package/dist/node_modules/zod/v4/core/schemas.js +18 -0
  18. package/dist/node_modules/zod/v4/core/to-json-schema.js +3 -0
  19. package/dist/node_modules/zod/v4/core/util.js +1 -0
  20. package/dist/node_modules/zod/v4/core/versions.js +1 -0
  21. package/dist/spec.js +1 -1
  22. package/package.json +32 -18
  23. package/dist/ai-agent/dist/approval/index.js +0 -1
  24. package/dist/ai-agent/dist/approval/workflow.js +0 -1
  25. package/dist/ai-agent/dist/index.js +0 -1
  26. package/dist/ai-agent/dist/memory/in-memory.js +0 -1
  27. package/dist/ai-agent/dist/memory/index.js +0 -1
  28. package/dist/ai-agent/dist/memory/manager.js +0 -1
  29. package/dist/ai-agent/dist/runner.js +0 -1
  30. package/dist/ai-agent/dist/spec.js +0 -1
  31. package/dist/ai-agent/dist/tools/executor.js +0 -1
  32. package/dist/ai-agent/dist/tools/index.js +0 -1
  33. package/dist/bot/auto-responder.d.ts +0 -25
  34. package/dist/bot/feedback-loop.d.ts +0 -19
  35. package/dist/bot/index.d.ts +0 -4
  36. package/dist/bot/tools.d.ts +0 -14
  37. package/dist/index.d.ts +0 -8
  38. package/dist/rag/index.d.ts +0 -2
  39. package/dist/rag/ticket-resolver.d.ts +0 -24
  40. package/dist/spec.d.ts +0 -12
  41. package/dist/tickets/classifier.d.ts +0 -24
  42. package/dist/tickets/index.d.ts +0 -2
  43. package/dist/types.d.ts +0 -75
package/README.md CHANGED
@@ -43,4 +43,4 @@ const outcome = await runner.run({
43
43
  });
44
44
  ```
45
45
 
46
- See `/packages/contractspec/examples/ai-support-bot` for an end-to-end integration with ticket ingestion, review queues, and analytics.
46
+ See `/packages/examples/ai-support-bot` for an end-to-end integration with ticket ingestion, review queues, and analytics.
package/dist/bot/tools.js CHANGED
@@ -1 +1 @@
1
- function e(e){return[{definition:{name:`support_classify_ticket`,description:`Classify a ticket for priority, sentiment, and category`,inputSchema:{type:`object`,required:[`ticket`],properties:{ticket:t}}},handler:async t=>{let r=n(t),i=await e.classifier.classify(r);return{content:JSON.stringify(i),metadata:{ticketId:r.id}}}},{definition:{name:`support_resolve_ticket`,description:`Generate a knowledge-grounded resolution for a ticket`,inputSchema:{type:`object`,required:[`ticket`],properties:{ticket:t}}},handler:async t=>{let r=n(t),i=await e.resolver.resolve(r);return{content:JSON.stringify(i),metadata:{ticketId:r.id}}}},{definition:{name:`support_draft_response`,description:`Draft a user-facing reply based on resolution + classification`,inputSchema:{type:`object`,required:[`ticket`,`resolution`,`classification`],properties:{ticket:t,resolution:{type:`object`},classification:{type:`object`}}}},handler:async t=>{let a=n(t),o=r(t),s=i(t);if(!o||!s)throw Error(`resolution and classification are required`);let c=await e.responder.draft(a,o,s);return{content:JSON.stringify(c),metadata:{ticketId:a.id}}}}]}const t={type:`object`,required:[`id`,`subject`,`body`,`channel`],properties:{id:{type:`string`},subject:{type:`string`},body:{type:`string`},channel:{type:`string`,enum:[`email`,`chat`,`phone`,`portal`]},customerName:{type:`string`},customerEmail:{type:`string`},metadata:{type:`object`}}};function n(e){if(!e||typeof e!=`object`||!(`ticket`in e))throw Error(`Input must include ticket`);let t=e.ticket;if(!t?.id)throw Error(`Ticket is missing id`);return t}function r(e){if(!(!e||typeof e!=`object`||!(`resolution`in e)))return e.resolution}function i(e){if(!(!e||typeof e!=`object`||!(`classification`in e)))return e.classification}export{e as createSupportTools};
1
+ import{_enum as e,array as t,boolean as n,number as r,object as i,record as a,string as o}from"../node_modules/zod/v4/classic/schemas.js";const s=i({id:o(),subject:o(),body:o(),channel:e([`email`,`chat`,`phone`,`portal`]),customerName:o().optional(),customerEmail:o().optional(),metadata:i().optional()}),c=i({label:o(),url:o().optional(),snippet:o().optional(),score:r().optional()}),l=i({type:e([`respond`,`escalate`,`refund`,`manual`]),label:o(),payload:a(o(),o())}),u=i({ticketId:o(),answer:o(),confidence:r(),citations:c.array(),actions:l.array(),escalationReason:o().optional(),knowledgeUpdates:t(o()).optional()}),d=i({ticketId:o(),category:e([`billing`,`technical`,`product`,`account`,`compliance`,`other`]),priority:e([`urgent`,`high`,`medium`,`low`]),sentiment:e([`positive`,`neutral`,`negative`,`frustrated`]),intents:t(o()),tags:t(o()),confidence:r(),escalationRequired:n().optional()});function f(e){if(!e||typeof e!=`object`||!(`ticket`in e))throw Error(`Input must include ticket`);let t=e.ticket;if(!t?.id)throw Error(`Ticket is missing id`);return t}function p(e){if(!(!e||typeof e!=`object`||!(`resolution`in e)))return e.resolution}function m(e){if(!(!e||typeof e!=`object`||!(`classification`in e)))return e.classification}function h(e){return[{title:`support_classify_ticket`,description:`Classify a ticket for priority, sentiment, and category`,inputSchema:i({ticket:s}),execute:async t=>{let n=f(t),r=await e.classifier.classify(n);return{content:JSON.stringify(r),metadata:{ticketId:n.id}}}},{title:`support_resolve_ticket`,description:`Generate a knowledge-grounded resolution for a ticket`,inputSchema:i({ticket:s}),execute:async t=>{let n=f(t),r=await e.resolver.resolve(n);return{content:JSON.stringify(r),metadata:{ticketId:n.id}}}},{title:`support_draft_response`,description:`Draft a user-facing reply based on resolution + classification`,inputSchema:i({ticket:s,resolution:u,classification:d}),execute:async t=>{let n=f(t),r=p(t),i=m(t);if(!r||!i)throw Error(`resolution and classification are required`);let a=await e.responder.draft(n,r,i);return{content:JSON.stringify(a),metadata:{ticketId:n.id}}}}]}export{h as createSupportTools};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{defineSupportBot as e}from"./spec.js";import{TicketResolver as t}from"./rag/ticket-resolver.js";import{TicketClassifier as n}from"./tickets/classifier.js";import{AutoResponder as r}from"./bot/auto-responder.js";import{SupportFeedbackLoop as i}from"./bot/feedback-loop.js";import{createSupportTools as a}from"./bot/tools.js";export{r as AutoResponder,i as SupportFeedbackLoop,n as TicketClassifier,t as TicketResolver,a as createSupportTools,e as defineSupportBot};
1
+ import{defineSupportBot as e}from"./spec.js";import{TicketResolver as t}from"./rag/ticket-resolver.js";import{TicketClassifier as n}from"./tickets/classifier.js";import{AutoResponder as r}from"./bot/auto-responder.js";import{SupportFeedbackLoop as i}from"./bot/feedback-loop.js";import{createSupportTools as a}from"./bot/tools.js";import"./bot/index.js";export{r as AutoResponder,i as SupportFeedbackLoop,n as TicketClassifier,t as TicketResolver,a as createSupportTools,e as defineSupportBot};
@@ -0,0 +1 @@
1
+ import{$constructor as e}from"../core/core.js";import{jsonStringifyReplacer as t}from"../core/util.js";import{$ZodError as n,flattenError as r,formatError as i}from"../core/errors.js";const a=(e,a)=>{n.init(e,a),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>i(e,t)},flatten:{value:t=>r(e,t)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,t,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,t,2)}},isEmpty:{get(){return e.issues.length===0}}})};e(`ZodError`,a);const o=e(`ZodError`,a,{Parent:Error});export{o as ZodRealError};
@@ -0,0 +1 @@
1
+ import{$constructor as e}from"../core/core.js";import{$ZodISODate as t,$ZodISODateTime as n,$ZodISODuration as r,$ZodISOTime as i}from"../core/schemas.js";import{_isoDate as a,_isoDateTime as o,_isoDuration as s,_isoTime as c}from"../core/api.js";import{ZodStringFormat as l}from"./schemas.js";const u=e(`ZodISODateTime`,(e,t)=>{n.init(e,t),l.init(e,t)});function d(e){return o(u,e)}const f=e(`ZodISODate`,(e,n)=>{t.init(e,n),l.init(e,n)});function p(e){return a(f,e)}const m=e(`ZodISOTime`,(e,t)=>{i.init(e,t),l.init(e,t)});function h(e){return c(m,e)}const g=e(`ZodISODuration`,(e,t)=>{r.init(e,t),l.init(e,t)});function _(e){return s(g,e)}export{p as date,d as datetime,_ as duration,h as time};
@@ -0,0 +1 @@
1
+ import{_decode as e,_decodeAsync as t,_encode as n,_encodeAsync as r,_parse as i,_parseAsync as a,_safeDecode as o,_safeDecodeAsync as s,_safeEncode as c,_safeEncodeAsync as l,_safeParse as u,_safeParseAsync as d}from"../core/parse.js";import{ZodRealError as f}from"./errors.js";const p=i(f),m=a(f),h=u(f),g=d(f),_=n(f),v=e(f),y=r(f),b=t(f),x=c(f),S=o(f),C=l(f),w=s(f);export{v as decode,b as decodeAsync,_ as encode,y as encodeAsync,p as parse,m as parseAsync,S as safeDecode,w as safeDecodeAsync,x as safeEncode,C as safeEncodeAsync,h as safeParse,g as safeParseAsync};
@@ -0,0 +1 @@
1
+ import{$ZodEncodeError as e,$constructor as t}from"../core/core.js";import{clone as n,defineLazy as r,extend as i,issue as a,merge as o,mergeDefs as ee,normalizeParams as s,omit as c,partial as te,pick as ne,required as re,safeExtend as ie,shallowClone as l}from"../core/util.js";import{$ZodArray as ae,$ZodBase64 as oe,$ZodBase64URL as se,$ZodBoolean as ce,$ZodCIDRv4 as le,$ZodCIDRv6 as ue,$ZodCUID as de,$ZodCUID2 as fe,$ZodCatch as pe,$ZodCustom as me,$ZodDefault as he,$ZodE164 as ge,$ZodEmail as _e,$ZodEmoji as ve,$ZodEnum as ye,$ZodGUID as be,$ZodIPv4 as xe,$ZodIPv6 as Se,$ZodIntersection as Ce,$ZodJWT as we,$ZodKSUID as Te,$ZodNanoID as Ee,$ZodNever as De,$ZodNonOptional as Oe,$ZodNullable as u,$ZodNumber as d,$ZodNumberFormat as f,$ZodObjectJIT as p,$ZodOptional as m,$ZodPipe as h,$ZodPrefault as g,$ZodReadonly as _,$ZodRecord as v,$ZodString as y,$ZodStringFormat as b,$ZodTransform as x,$ZodType as S,$ZodULID as C,$ZodURL as w,$ZodUUID as T,$ZodUnion as ke,$ZodUnknown as Ae,$ZodXID as je}from"../core/schemas.js";import{globalRegistry as E}from"../core/registries.js";import{_array as Me,_base64 as Ne,_base64url as Pe,_boolean as Fe,_cidrv4 as Ie,_cidrv6 as Le,_cuid as Re,_cuid2 as ze,_e164 as Be,_email as Ve,_emoji as He,_endsWith as Ue,_gt as D,_gte as O,_guid as k,_includes as We,_int as Ge,_ipv4 as Ke,_ipv6 as qe,_jwt as Je,_ksuid as Ye,_length as A,_lowercase as Xe,_lt as j,_lte as M,_maxLength as N,_minLength as P,_multipleOf as F,_nanoid as Ze,_never as Qe,_normalize as $e,_number as et,_overwrite as tt,_refine as nt,_regex as rt,_slugify as it,_startsWith as at,_string as ot,_superRefine as st,_toLowerCase as ct,_toUpperCase as lt,_trim as ut,_ulid as dt,_unknown as ft,_uppercase as pt,_url as mt,_uuid as ht,_uuidv4 as gt,_uuidv6 as _t,_uuidv7 as vt,_xid as yt,describe as bt,meta as xt}from"../core/api.js";import{createStandardJSONSchemaMethod as I,createToJSONSchemaMethod as St}from"../core/to-json-schema.js";import{arrayProcessor as Ct,booleanProcessor as wt,catchProcessor as Tt,customProcessor as Et,defaultProcessor as Dt,enumProcessor as Ot,intersectionProcessor as L,neverProcessor as kt,nonoptionalProcessor as At,nullableProcessor as jt,numberProcessor as Mt,objectProcessor as Nt,optionalProcessor as Pt,pipeProcessor as Ft,prefaultProcessor as It,readonlyProcessor as Lt,recordProcessor as Rt,stringProcessor as zt,transformProcessor as Bt,unionProcessor as Vt,unknownProcessor as Ht}from"../core/json-schema-processors.js";import{date as Ut,datetime as Wt,duration as Gt,time as Kt}from"./iso.js";import{decode as qt,decodeAsync as Jt,encode as Yt,encodeAsync as Xt,parse as Zt,parseAsync as Qt,safeDecode as $t,safeDecodeAsync as en,safeEncode as tn,safeEncodeAsync as nn,safeParse as rn,safeParseAsync as an}from"./parse.js";const R=t(`ZodType`,(e,t)=>(S.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:I(e,`input`),output:I(e,`output`)}}),e.toJSONSchema=St(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(ee(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]})),e.clone=(t,r)=>n(e,t,r),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>Zt(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>rn(e,t,n),e.parseAsync=async(t,n)=>Qt(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>an(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Yt(e,t,n),e.decode=(t,n)=>qt(e,t,n),e.encodeAsync=async(t,n)=>Xt(e,t,n),e.decodeAsync=async(t,n)=>Jt(e,t,n),e.safeEncode=(t,n)=>tn(e,t,n),e.safeDecode=(t,n)=>$t(e,t,n),e.safeEncodeAsync=async(t,n)=>nn(e,t,n),e.safeDecodeAsync=async(t,n)=>en(e,t,n),e.refine=(t,n)=>e.check(tr(t,n)),e.superRefine=t=>e.check(nr(t)),e.overwrite=t=>e.check(tt(t)),e.optional=()=>X(e),e.nullable=()=>Z(e),e.nullish=()=>X(Z(e)),e.nonoptional=t=>Jn(e,t),e.array=()=>K(e),e.or=t=>In([e,t]),e.and=t=>Rn(e,t),e.transform=t=>$(e,Hn(t)),e.default=t=>Gn(e,t),e.prefault=t=>qn(e,t),e.catch=t=>Xn(e,t),e.pipe=t=>$(e,t),e.readonly=()=>$n(e),e.describe=t=>{let n=e.clone();return E.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return E.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return E.get(e);let n=e.clone();return E.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),z=t(`_ZodString`,(e,t)=>{y.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>zt(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(rt(...t)),e.includes=(...t)=>e.check(We(...t)),e.startsWith=(...t)=>e.check(at(...t)),e.endsWith=(...t)=>e.check(Ue(...t)),e.min=(...t)=>e.check(P(...t)),e.max=(...t)=>e.check(N(...t)),e.length=(...t)=>e.check(A(...t)),e.nonempty=(...t)=>e.check(P(1,...t)),e.lowercase=t=>e.check(Xe(t)),e.uppercase=t=>e.check(pt(t)),e.trim=()=>e.check(ut()),e.normalize=(...t)=>e.check($e(...t)),e.toLowerCase=()=>e.check(ct()),e.toUpperCase=()=>e.check(lt()),e.slugify=()=>e.check(it())}),on=t(`ZodString`,(e,t)=>{y.init(e,t),z.init(e,t),e.email=t=>e.check(Ve(cn,t)),e.url=t=>e.check(mt(ln,t)),e.jwt=t=>e.check(Je(wn,t)),e.emoji=t=>e.check(He(un,t)),e.guid=t=>e.check(k(V,t)),e.uuid=t=>e.check(ht(H,t)),e.uuidv4=t=>e.check(gt(H,t)),e.uuidv6=t=>e.check(_t(H,t)),e.uuidv7=t=>e.check(vt(H,t)),e.nanoid=t=>e.check(Ze(dn,t)),e.guid=t=>e.check(k(V,t)),e.cuid=t=>e.check(Re(fn,t)),e.cuid2=t=>e.check(ze(pn,t)),e.ulid=t=>e.check(dt(mn,t)),e.base64=t=>e.check(Ne(xn,t)),e.base64url=t=>e.check(Pe(Sn,t)),e.xid=t=>e.check(yt(hn,t)),e.ksuid=t=>e.check(Ye(gn,t)),e.ipv4=t=>e.check(Ke(_n,t)),e.ipv6=t=>e.check(qe(vn,t)),e.cidrv4=t=>e.check(Ie(yn,t)),e.cidrv6=t=>e.check(Le(bn,t)),e.e164=t=>e.check(Be(Cn,t)),e.datetime=t=>e.check(Wt(t)),e.date=t=>e.check(Ut(t)),e.time=t=>e.check(Kt(t)),e.duration=t=>e.check(Gt(t))});function sn(e){return ot(on,e)}const B=t(`ZodStringFormat`,(e,t)=>{b.init(e,t),z.init(e,t)}),cn=t(`ZodEmail`,(e,t)=>{_e.init(e,t),B.init(e,t)}),V=t(`ZodGUID`,(e,t)=>{be.init(e,t),B.init(e,t)}),H=t(`ZodUUID`,(e,t)=>{T.init(e,t),B.init(e,t)}),ln=t(`ZodURL`,(e,t)=>{w.init(e,t),B.init(e,t)}),un=t(`ZodEmoji`,(e,t)=>{ve.init(e,t),B.init(e,t)}),dn=t(`ZodNanoID`,(e,t)=>{Ee.init(e,t),B.init(e,t)}),fn=t(`ZodCUID`,(e,t)=>{de.init(e,t),B.init(e,t)}),pn=t(`ZodCUID2`,(e,t)=>{fe.init(e,t),B.init(e,t)}),mn=t(`ZodULID`,(e,t)=>{C.init(e,t),B.init(e,t)}),hn=t(`ZodXID`,(e,t)=>{je.init(e,t),B.init(e,t)}),gn=t(`ZodKSUID`,(e,t)=>{Te.init(e,t),B.init(e,t)}),_n=t(`ZodIPv4`,(e,t)=>{xe.init(e,t),B.init(e,t)}),vn=t(`ZodIPv6`,(e,t)=>{Se.init(e,t),B.init(e,t)}),yn=t(`ZodCIDRv4`,(e,t)=>{le.init(e,t),B.init(e,t)}),bn=t(`ZodCIDRv6`,(e,t)=>{ue.init(e,t),B.init(e,t)}),xn=t(`ZodBase64`,(e,t)=>{oe.init(e,t),B.init(e,t)}),Sn=t(`ZodBase64URL`,(e,t)=>{se.init(e,t),B.init(e,t)}),Cn=t(`ZodE164`,(e,t)=>{ge.init(e,t),B.init(e,t)}),wn=t(`ZodJWT`,(e,t)=>{we.init(e,t),B.init(e,t)}),U=t(`ZodNumber`,(e,t)=>{d.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Mt(e,t,n,r),e.gt=(t,n)=>e.check(D(t,n)),e.gte=(t,n)=>e.check(O(t,n)),e.min=(t,n)=>e.check(O(t,n)),e.lt=(t,n)=>e.check(j(t,n)),e.lte=(t,n)=>e.check(M(t,n)),e.max=(t,n)=>e.check(M(t,n)),e.int=t=>e.check(W(t)),e.safe=t=>e.check(W(t)),e.positive=t=>e.check(D(0,t)),e.nonnegative=t=>e.check(O(0,t)),e.negative=t=>e.check(j(0,t)),e.nonpositive=t=>e.check(M(0,t)),e.multipleOf=(t,n)=>e.check(F(t,n)),e.step=(t,n)=>e.check(F(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function Tn(e){return et(U,e)}const En=t(`ZodNumberFormat`,(e,t)=>{f.init(e,t),U.init(e,t)});function W(e){return Ge(En,e)}const Dn=t(`ZodBoolean`,(e,t)=>{ce.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wt(e,t,n,r)});function On(e){return Fe(Dn,e)}const kn=t(`ZodUnknown`,(e,t)=>{Ae.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ht(e,t,n,r)});function G(){return ft(kn)}const An=t(`ZodNever`,(e,t)=>{De.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>kt(e,t,n,r)});function jn(e){return Qe(An,e)}const Mn=t(`ZodArray`,(e,t)=>{ae.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ct(e,t,n,r),e.element=t.element,e.min=(t,n)=>e.check(P(t,n)),e.nonempty=t=>e.check(P(1,t)),e.max=(t,n)=>e.check(N(t,n)),e.length=(t,n)=>e.check(A(t,n)),e.unwrap=()=>e.element});function K(e,t){return Me(Mn,e,t)}const Nn=t(`ZodObject`,(e,t)=>{p.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Nt(e,t,n,r),r(e,`shape`,()=>t.shape),e.keyof=()=>J(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:G()}),e.loose=()=>e.clone({...e._zod.def,catchall:G()}),e.strict=()=>e.clone({...e._zod.def,catchall:jn()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>i(e,t),e.safeExtend=t=>ie(e,t),e.merge=t=>o(e,t),e.pick=t=>ne(e,t),e.omit=t=>c(e,t),e.partial=(...t)=>te(Y,e,t[0]),e.required=(...t)=>re(Q,e,t[0])});function Pn(e,t){return new Nn({type:`object`,shape:e??{},...s(t)})}const Fn=t(`ZodUnion`,(e,t)=>{ke.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Vt(e,t,n,r),e.options=t.options});function In(e,t){return new Fn({type:`union`,options:e,...s(t)})}const Ln=t(`ZodIntersection`,(e,t)=>{Ce.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>L(e,t,n,r)});function Rn(e,t){return new Ln({type:`intersection`,left:e,right:t})}const zn=t(`ZodRecord`,(e,t)=>{v.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Rt(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function Bn(e,t,n){return new zn({type:`record`,keyType:e,valueType:t,...s(n)})}const q=t(`ZodEnum`,(e,t)=>{ye.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ot(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new q({...t,checks:[],...s(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new q({...t,checks:[],...s(r),entries:i})}});function J(e,t){return new q({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...s(t)})}const Vn=t(`ZodTransform`,(t,n)=>{x.init(t,n),R.init(t,n),t._zod.processJSONSchema=(e,n,r)=>Bt(t,e,n,r),t._zod.parse=(r,i)=>{if(i.direction===`backward`)throw new e(t.constructor.name);r.addIssue=e=>{if(typeof e==`string`)r.issues.push(a(e,r.value,n));else{let n=e;n.fatal&&(n.continue=!1),n.code??=`custom`,n.input??=r.value,n.inst??=t,r.issues.push(a(n))}};let o=n.transform(r.value,r);return o instanceof Promise?o.then(e=>(r.value=e,r)):(r.value=o,r)}});function Hn(e){return new Vn({type:`transform`,transform:e})}const Y=t(`ZodOptional`,(e,t)=>{m.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Pt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function X(e){return new Y({type:`optional`,innerType:e})}const Un=t(`ZodNullable`,(e,t)=>{u.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>jt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Z(e){return new Un({type:`nullable`,innerType:e})}const Wn=t(`ZodDefault`,(e,t)=>{he.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Dt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Gn(e,t){return new Wn({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():l(t)}})}const Kn=t(`ZodPrefault`,(e,t)=>{g.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>It(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function qn(e,t){return new Kn({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():l(t)}})}const Q=t(`ZodNonOptional`,(e,t)=>{Oe.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>At(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Jn(e,t){return new Q({type:`nonoptional`,innerType:e,...s(t)})}const Yn=t(`ZodCatch`,(e,t)=>{pe.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Tt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Xn(e,t){return new Yn({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}const Zn=t(`ZodPipe`,(e,t)=>{h.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ft(e,t,n,r),e.in=t.in,e.out=t.out});function $(e,t){return new Zn({type:`pipe`,in:e,out:t})}const Qn=t(`ZodReadonly`,(e,t)=>{_.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Lt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function $n(e){return new Qn({type:`readonly`,innerType:e})}const er=t(`ZodCustom`,(e,t)=>{me.init(e,t),R.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Et(e,t,n,r)});function tr(e,t={}){return nt(er,e,t)}function nr(e){return st(e)}export{B as ZodStringFormat,J as _enum,K as array,On as boolean,Tn as number,Pn as object,Bn as record,sn as string};
@@ -0,0 +1 @@
1
+ import{issue as e,normalizeParams as t,slugify as n}from"./util.js";import{$ZodCheck as r,$ZodCheckEndsWith as i,$ZodCheckGreaterThan as a,$ZodCheckIncludes as ee,$ZodCheckLengthEquals as o,$ZodCheckLessThan as s,$ZodCheckLowerCase as te,$ZodCheckMaxLength as c,$ZodCheckMinLength as l,$ZodCheckMultipleOf as u,$ZodCheckOverwrite as d,$ZodCheckRegex as f,$ZodCheckStartsWith as p,$ZodCheckUpperCase as m}from"./checks.js";import{globalRegistry as h}from"./registries.js";function g(e,n){return new e({type:`string`,...t(n)})}function _(e,n){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...t(n)})}function v(e,n){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...t(n)})}function y(e,n){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...t(n)})}function b(e,n){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...t(n)})}function x(e,n){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...t(n)})}function S(e,n){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...t(n)})}function C(e,n){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...t(n)})}function w(e,n){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...t(n)})}function T(e,n){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...t(n)})}function E(e,n){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...t(n)})}function D(e,n){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...t(n)})}function O(e,n){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...t(n)})}function k(e,n){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...t(n)})}function A(e,n){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...t(n)})}function j(e,n){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...t(n)})}function M(e,n){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...t(n)})}function N(e,n){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...t(n)})}function P(e,n){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...t(n)})}function F(e,n){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...t(n)})}function I(e,n){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...t(n)})}function L(e,n){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...t(n)})}function R(e,n){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...t(n)})}function z(e,n){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...t(n)})}function B(e,n){return new e({type:`string`,format:`date`,check:`string_format`,...t(n)})}function V(e,n){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...t(n)})}function H(e,n){return new e({type:`string`,format:`duration`,check:`string_format`,...t(n)})}function U(e,n){return new e({type:`number`,checks:[],...t(n)})}function ne(e,n){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...t(n)})}function W(e,n){return new e({type:`boolean`,...t(n)})}function G(e){return new e({type:`unknown`})}function K(e,n){return new e({type:`never`,...t(n)})}function q(e,n){return new s({check:`less_than`,...t(n),value:e,inclusive:!1})}function J(e,n){return new s({check:`less_than`,...t(n),value:e,inclusive:!0})}function Y(e,n){return new a({check:`greater_than`,...t(n),value:e,inclusive:!1})}function X(e,n){return new a({check:`greater_than`,...t(n),value:e,inclusive:!0})}function Z(e,n){return new u({check:`multiple_of`,...t(n),value:e})}function re(e,n){return new c({check:`max_length`,...t(n),maximum:e})}function ie(e,n){return new l({check:`min_length`,...t(n),minimum:e})}function ae(e,n){return new o({check:`length_equals`,...t(n),length:e})}function oe(e,n){return new f({check:`string_format`,format:`regex`,...t(n),pattern:e})}function se(e){return new te({check:`string_format`,format:`lowercase`,...t(e)})}function ce(e){return new m({check:`string_format`,format:`uppercase`,...t(e)})}function le(e,n){return new ee({check:`string_format`,format:`includes`,...t(n),includes:e})}function ue(e,n){return new p({check:`string_format`,format:`starts_with`,...t(n),prefix:e})}function de(e,n){return new i({check:`string_format`,format:`ends_with`,...t(n),suffix:e})}function Q(e){return new d({check:`overwrite`,tx:e})}function fe(e){return Q(t=>t.normalize(e))}function pe(){return Q(e=>e.trim())}function $(){return Q(e=>e.toLowerCase())}function me(){return Q(e=>e.toUpperCase())}function he(){return Q(e=>n(e))}function ge(e,n,r){return new e({type:`array`,element:n,...t(r)})}function _e(e,n,r){return new e({type:`custom`,check:`custom`,fn:n,...t(r)})}function ve(t){let n=ye(r=>(r.addIssue=t=>{if(typeof t==`string`)r.issues.push(e(t,r.value,n._zod.def));else{let i=t;i.fatal&&(i.continue=!1),i.code??=`custom`,i.input??=r.value,i.inst??=n,i.continue??=!n._zod.def.abort,r.issues.push(e(i))}},t(r.value,r)));return n}function ye(e,n){let i=new r({check:`custom`,...t(n)});return i._zod.check=e,i}function be(e){let t=new r({check:`describe`});return t._zod.onattach=[t=>{let n=h.get(t)??{};h.add(t,{...n,description:e})}],t._zod.check=()=>{},t}function xe(e){let t=new r({check:`meta`});return t._zod.onattach=[t=>{let n=h.get(t)??{};h.add(t,{...n,...e})}],t._zod.check=()=>{},t}export{ge as _array,F as _base64,I as _base64url,W as _boolean,N as _cidrv4,P as _cidrv6,E as _cuid,D as _cuid2,L as _e164,_ as _email,w as _emoji,de as _endsWith,Y as _gt,X as _gte,v as _guid,le as _includes,ne as _int,j as _ipv4,M as _ipv6,B as _isoDate,z as _isoDateTime,H as _isoDuration,V as _isoTime,R as _jwt,A as _ksuid,ae as _length,se as _lowercase,q as _lt,J as _lte,re as _maxLength,ie as _minLength,Z as _multipleOf,T as _nanoid,K as _never,fe as _normalize,U as _number,Q as _overwrite,_e as _refine,oe as _regex,he as _slugify,ue as _startsWith,g as _string,ve as _superRefine,$ as _toLowerCase,me as _toUpperCase,pe as _trim,O as _ulid,G as _unknown,ce as _uppercase,C as _url,y as _uuid,b as _uuidv4,x as _uuidv6,S as _uuidv7,k as _xid,be as describe,xe as meta};
@@ -0,0 +1 @@
1
+ import{$constructor as e}from"./core.js";import{NUMBER_FORMAT_RANGES as t,escapeRegex as n,floatSafeRemainder as r,getLengthableOrigin as i,nullish as a}from"./util.js";import{integer as o,lowercase as s,uppercase as c}from"./regexes.js";const l=e(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),u={number:`number`,bigint:`bigint`,object:`date`},d=e(`$ZodCheckLessThan`,(e,t)=>{l.init(e,t);let n=u[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),f=e(`$ZodCheckGreaterThan`,(e,t)=>{l.init(e,t);let n=u[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),p=e(`$ZodCheckMultipleOf`,(e,t)=>{l.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):r(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),m=e(`$ZodCheckNumberFormat`,(e,n)=>{l.init(e,n),n.format=n.format||`float64`;let r=n.format?.includes(`int`),i=r?`int`:`number`,[a,s]=t[n.format];e._zod.onattach.push(e=>{let t=e._zod.bag;t.format=n.format,t.minimum=a,t.maximum=s,r&&(t.pattern=o)}),e._zod.check=t=>{let o=t.value;if(r){if(!Number.isInteger(o)){t.issues.push({expected:i,format:n.format,code:`invalid_type`,continue:!1,input:o,inst:e});return}if(!Number.isSafeInteger(o)){o>0?t.issues.push({input:o,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:i,continue:!n.abort}):t.issues.push({input:o,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:i,continue:!n.abort});return}}o<a&&t.issues.push({origin:`number`,input:o,code:`too_small`,minimum:a,inclusive:!0,inst:e,continue:!n.abort}),o>s&&t.issues.push({origin:`number`,input:o,code:`too_big`,maximum:s,inst:e})}}),h=e(`$ZodCheckMaxLength`,(e,t)=>{var n;l.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!a(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let a=i(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),g=e(`$ZodCheckMinLength`,(e,t)=>{var n;l.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!a(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let a=i(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),_=e(`$ZodCheckLengthEquals`,(e,t)=>{var n;l.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!a(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,a=r.length;if(a===t.length)return;let o=i(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),v=e(`$ZodCheckStringFormat`,(e,t)=>{var n,r;l.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),y=e(`$ZodCheckRegex`,(e,t)=>{v.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),b=e(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=s,v.init(e,t)}),x=e(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=c,v.init(e,t)}),S=e(`$ZodCheckIncludes`,(e,t)=>{l.init(e,t);let r=n(t.includes),i=new RegExp(typeof t.position==`number`?`^.{${t.position}}${r}`:r);t.pattern=i,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(i)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),C=e(`$ZodCheckStartsWith`,(e,t)=>{l.init(e,t);let r=RegExp(`^${n(t.prefix)}.*`);t.pattern??=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.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})}}),w=e(`$ZodCheckEndsWith`,(e,t)=>{l.init(e,t);let r=RegExp(`.*${n(t.suffix)}$`);t.pattern??=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.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})}}),T=e(`$ZodCheckOverwrite`,(e,t)=>{l.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});export{l as $ZodCheck,w as $ZodCheckEndsWith,f as $ZodCheckGreaterThan,S as $ZodCheckIncludes,_ as $ZodCheckLengthEquals,d as $ZodCheckLessThan,b as $ZodCheckLowerCase,h as $ZodCheckMaxLength,g as $ZodCheckMinLength,p as $ZodCheckMultipleOf,m as $ZodCheckNumberFormat,T as $ZodCheckOverwrite,y as $ZodCheckRegex,C as $ZodCheckStartsWith,v as $ZodCheckStringFormat,x as $ZodCheckUpperCase};
@@ -0,0 +1 @@
1
+ Object.freeze({status:`aborted`});function e(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,`_zod`,{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var t=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},n=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};const r={};function i(e){return e&&Object.assign(r,e),r}export{t as $ZodAsyncError,n as $ZodEncodeError,e as $constructor,i as config,r as globalConfig};
@@ -0,0 +1,3 @@
1
+ var e=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
2
+ `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
3
+ `))}};export{e as Doc};
@@ -0,0 +1 @@
1
+ import{$constructor as e}from"./core.js";import{jsonStringifyReplacer as t}from"./util.js";const n=(e,n)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:n,enumerable:!1}),e.message=JSON.stringify(n,t,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},r=e(`$ZodError`,n),i=e(`$ZodError`,n,{Parent:Error});function a(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function o(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}export{r as $ZodError,i as $ZodRealError,a as flattenError,o as formatError};
@@ -0,0 +1 @@
1
+ import{getEnumValues as e}from"./util.js";import{process as t}from"./to-json-schema.js";const n={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},r=(e,t,r,i)=>{let a=r;a.type=`string`;let{minimum:o,maximum:s,format:c,patterns:l,contentEncoding:u}=e._zod.bag;if(typeof o==`number`&&(a.minLength=o),typeof s==`number`&&(a.maxLength=s),c&&(a.format=n[c]??c,a.format===``&&delete a.format),u&&(a.contentEncoding=u),l&&l.size>0){let e=[...l];e.length===1?a.pattern=e[0].source:e.length>1&&(a.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},i=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;typeof s==`string`&&s.includes(`int`)?i.type=`integer`:i.type=`number`,typeof u==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u),typeof a==`number`&&(i.minimum=a,typeof u==`number`&&t.target!==`draft-04`&&(u>=a?delete i.minimum:delete i.exclusiveMinimum)),typeof l==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l),typeof o==`number`&&(i.maximum=o,typeof l==`number`&&t.target!==`draft-04`&&(l<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof c==`number`&&(i.multipleOf=c)},a=(e,t,n,r)=>{n.type=`boolean`},o=(e,t,n,r)=>{n.not={}},s=(e,t,n,r)=>{},c=(t,n,r,i)=>{let a=t._zod.def,o=e(a.entries);o.every(e=>typeof e==`number`)&&(r.type=`number`),o.every(e=>typeof e==`string`)&&(r.type=`string`),r.enum=o},l=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},u=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},d=(e,n,r,i)=>{let a=r,o=e._zod.def,{minimum:s,maximum:c}=e._zod.bag;typeof s==`number`&&(a.minItems=s),typeof c==`number`&&(a.maxItems=c),a.type=`array`,a.items=t(o.element,n,{...i,path:[...i.path,`items`]})},f=(e,n,r,i)=>{let a=r,o=e._zod.def;a.type=`object`,a.properties={};let s=o.shape;for(let e in s)a.properties[e]=t(s[e],n,{...i,path:[...i.path,`properties`,e]});let c=new Set(Object.keys(s)),l=new Set([...c].filter(e=>{let t=o.shape[e]._zod;return n.io===`input`?t.optin===void 0:t.optout===void 0}));l.size>0&&(a.required=Array.from(l)),o.catchall?._zod.def.type===`never`?a.additionalProperties=!1:o.catchall?o.catchall&&(a.additionalProperties=t(o.catchall,n,{...i,path:[...i.path,`additionalProperties`]})):n.io===`output`&&(a.additionalProperties=!1)},p=(e,n,r,i)=>{let a=e._zod.def,o=a.inclusive===!1,s=a.options.map((e,r)=>t(e,n,{...i,path:[...i.path,o?`oneOf`:`anyOf`,r]}));o?r.oneOf=s:r.anyOf=s},m=(e,n,r,i)=>{let a=e._zod.def,o=t(a.left,n,{...i,path:[...i.path,`allOf`,0]}),s=t(a.right,n,{...i,path:[...i.path,`allOf`,1]}),c=e=>`allOf`in e&&Object.keys(e).length===1;r.allOf=[...c(o)?o.allOf:[o],...c(s)?s.allOf:[s]]},h=(e,n,r,i)=>{let a=r,o=e._zod.def;a.type=`object`,(n.target===`draft-07`||n.target===`draft-2020-12`)&&(a.propertyNames=t(o.keyType,n,{...i,path:[...i.path,`propertyNames`]})),a.additionalProperties=t(o.valueType,n,{...i,path:[...i.path,`additionalProperties`]})},g=(e,n,r,i)=>{let a=e._zod.def,o=t(a.innerType,n,i),s=n.seen.get(e);n.target===`openapi-3.0`?(s.ref=a.innerType,r.nullable=!0):r.anyOf=[o,{type:`null`}]},_=(e,n,r,i)=>{let a=e._zod.def;t(a.innerType,n,i);let o=n.seen.get(e);o.ref=a.innerType},v=(e,n,r,i)=>{let a=e._zod.def;t(a.innerType,n,i);let o=n.seen.get(e);o.ref=a.innerType,r.default=JSON.parse(JSON.stringify(a.defaultValue))},y=(e,n,r,i)=>{let a=e._zod.def;t(a.innerType,n,i);let o=n.seen.get(e);o.ref=a.innerType,n.io===`input`&&(r._prefault=JSON.parse(JSON.stringify(a.defaultValue)))},b=(e,n,r,i)=>{let a=e._zod.def;t(a.innerType,n,i);let o=n.seen.get(e);o.ref=a.innerType;let s;try{s=a.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}r.default=s},x=(e,n,r,i)=>{let a=e._zod.def,o=n.io===`input`?a.in._zod.def.type===`transform`?a.out:a.in:a.out;t(o,n,i);let s=n.seen.get(e);s.ref=o},S=(e,n,r,i)=>{let a=e._zod.def;t(a.innerType,n,i);let o=n.seen.get(e);o.ref=a.innerType,r.readOnly=!0},C=(e,n,r,i)=>{let a=e._zod.def;t(a.innerType,n,i);let o=n.seen.get(e);o.ref=a.innerType};export{d as arrayProcessor,a as booleanProcessor,b as catchProcessor,l as customProcessor,v as defaultProcessor,c as enumProcessor,m as intersectionProcessor,o as neverProcessor,_ as nonoptionalProcessor,g as nullableProcessor,i as numberProcessor,f as objectProcessor,C as optionalProcessor,x as pipeProcessor,y as prefaultProcessor,S as readonlyProcessor,h as recordProcessor,r as stringProcessor,u as transformProcessor,p as unionProcessor,s as unknownProcessor};
@@ -0,0 +1 @@
1
+ import{$ZodAsyncError as e,config as t}from"./core.js";import{captureStackTrace as n,finalizeIssue as r}from"./util.js";import{$ZodError as i,$ZodRealError as a}from"./errors.js";const o=i=>(a,o,s,c)=>{let l=s?Object.assign(s,{async:!1}):{async:!1},u=a._zod.run({value:o,issues:[]},l);if(u instanceof Promise)throw new e;if(u.issues.length){let e=new(c?.Err??i)(u.issues.map(e=>r(e,l,t())));throw n(e,c?.callee),e}return u.value},s=e=>async(i,a,o,s)=>{let c=o?Object.assign(o,{async:!0}):{async:!0},l=i._zod.run({value:a,issues:[]},c);if(l instanceof Promise&&(l=await l),l.issues.length){let i=new(s?.Err??e)(l.issues.map(e=>r(e,c,t())));throw n(i,s?.callee),i}return l.value},c=n=>(a,o,s)=>{let c=s?{...s,async:!1}:{async:!1},l=a._zod.run({value:o,issues:[]},c);if(l instanceof Promise)throw new e;return l.issues.length?{success:!1,error:new(n??i)(l.issues.map(e=>r(e,c,t())))}:{success:!0,data:l.value}},l=c(a),u=e=>async(n,i,a)=>{let o=a?Object.assign(a,{async:!0}):{async:!0},s=n._zod.run({value:i,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(e=>r(e,o,t())))}:{success:!0,data:s.value}},d=u(a),f=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return o(e)(t,n,i)},p=e=>(t,n,r)=>o(e)(t,n,r),m=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return s(e)(t,n,i)},h=e=>async(t,n,r)=>s(e)(t,n,r),g=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return c(e)(t,n,i)},_=e=>(t,n,r)=>c(e)(t,n,r),v=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return u(e)(t,n,i)},y=e=>async(t,n,r)=>u(e)(t,n,r);export{p as _decode,h as _decodeAsync,f as _encode,m as _encodeAsync,o as _parse,s as _parseAsync,_ as _safeDecode,y as _safeDecodeAsync,g as _safeEncode,v as _safeEncodeAsync,c as _safeParse,u as _safeParseAsync,l as safeParse,d as safeParseAsync};
@@ -0,0 +1 @@
1
+ const e=/^[cC][^\s-]{8,}$/,t=/^[0-9a-z]+$/,n=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,r=/^[0-9a-vA-V]{20}$/,i=/^[A-Za-z0-9]{27}$/,a=/^[a-zA-Z0-9_-]{21}$/,o=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,s=/^([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})$/,c=e=>e?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)$/,l=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function u(){return RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)}const d=/^(?:(?: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])$/,f=/^(([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}|:))$/,p=/^((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])$/,m=/^(([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])$/,h=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,g=/^[A-Za-z0-9_-]*$/,_=/^\+(?:[0-9]){6,14}[0-9]$/,v=`(?:(?:\\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])))`,y=RegExp(`^${v}$`);function b(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 x(e){return RegExp(`^${b(e)}$`)}function S(e){let t=b({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${v}T(?:${r})$`)}const C=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},w=/^-?\d+$/,T=/^-?\d+(?:\.\d+)?/,E=/^(?:true|false)$/i,D=/^[^A-Z]*$/,O=/^[^a-z]*$/;export{h as base64,g as base64url,E as boolean,p as cidrv4,m as cidrv6,e as cuid,t as cuid2,y as date,S as datetime,o as duration,_ as e164,l as email,u as emoji,s as guid,w as integer,d as ipv4,f as ipv6,i as ksuid,D as lowercase,a as nanoid,T as number,C as string,x as time,n as ulid,O as uppercase,c as uuid,r as xid};
@@ -0,0 +1 @@
1
+ var e,t=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function n(){return new t}(e=globalThis).__zod_globalRegistry??(e.__zod_globalRegistry=n());const r=globalThis.__zod_globalRegistry;export{r as globalRegistry};
@@ -0,0 +1,18 @@
1
+ import{$ZodAsyncError as e,$ZodEncodeError as t,$constructor as n,config as r,globalConfig as i}from"./core.js";import{aborted as a,allowsEval as o,cached as s,cleanRegex as c,clone as l,defineLazy as u,esc as d,escapeRegex as f,finalizeIssue as p,getEnumValues as m,isObject as h,isPlainObject as g,issue as _,optionalKeys as ee,prefixIssues as v,propertyKeyTypes as y}from"./util.js";import{safeParse as b,safeParseAsync as x}from"./parse.js";import{base64 as te,base64url as S,boolean as ne,cidrv4 as re,cidrv6 as ie,cuid as ae,cuid2 as oe,date as se,datetime as ce,duration as le,e164 as ue,email as de,emoji as fe,guid as pe,ipv4 as me,ipv6 as he,ksuid as ge,nanoid as C,number as w,string as T,time as E,ulid as D,uuid as O,xid as k}from"./regexes.js";import{$ZodCheck as A,$ZodCheckNumberFormat as j,$ZodCheckStringFormat as M}from"./checks.js";import{Doc as N}from"./doc.js";import{version as P}from"./versions.js";const F=n(`$ZodType`,(t,n)=>{var r;t??={},t._zod.def=n,t._zod.bag=t._zod.bag||{},t._zod.version=P;let i=[...t._zod.def.checks??[]];t._zod.traits.has(`$ZodCheck`)&&i.unshift(t);for(let e of i)for(let n of e._zod.onattach)n(t);if(i.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let n=(t,n,r)=>{let i=a(t),o;for(let s of n){if(s._zod.def.when){if(!s._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,c=s._zod.check(t);if(c instanceof Promise&&r?.async===!1)throw new e;if(o||c instanceof Promise)o=(o??Promise.resolve()).then(async()=>{await c,t.issues.length!==n&&(i||=a(t,n))});else{if(t.issues.length===n)continue;i||=a(t,n)}}return o?o.then(()=>t):t},r=(r,o,s)=>{if(a(r))return r.aborted=!0,r;let c=n(o,i,s);if(c instanceof Promise){if(s.async===!1)throw new e;return c.then(e=>t._zod.parse(e,s))}return t._zod.parse(c,s)};t._zod.run=(a,o)=>{if(o.skipChecks)return t._zod.parse(a,o);if(o.direction===`backward`){let e=t._zod.parse({value:a.value,issues:[]},{...o,skipChecks:!0});return e instanceof Promise?e.then(e=>r(e,a,o)):r(e,a,o)}let s=t._zod.parse(a,o);if(s instanceof Promise){if(o.async===!1)throw new e;return s.then(e=>n(e,i,o))}return n(s,i,o)}}t[`~standard`]={validate:e=>{try{let n=b(t,e);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return x(t,e).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}}),I=n(`$ZodString`,(e,t)=>{F.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??T(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),L=n(`$ZodStringFormat`,(e,t)=>{M.init(e,t),I.init(e,t)}),_e=n(`$ZodGUID`,(e,t)=>{t.pattern??=pe,L.init(e,t)}),ve=n(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=O(e)}else t.pattern??=O();L.init(e,t)}),ye=n(`$ZodEmail`,(e,t)=>{t.pattern??=de,L.init(e,t)}),be=n(`$ZodURL`,(e,t)=>{L.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),xe=n(`$ZodEmoji`,(e,t)=>{t.pattern??=fe(),L.init(e,t)}),Se=n(`$ZodNanoID`,(e,t)=>{t.pattern??=C,L.init(e,t)}),Ce=n(`$ZodCUID`,(e,t)=>{t.pattern??=ae,L.init(e,t)}),we=n(`$ZodCUID2`,(e,t)=>{t.pattern??=oe,L.init(e,t)}),Te=n(`$ZodULID`,(e,t)=>{t.pattern??=D,L.init(e,t)}),Ee=n(`$ZodXID`,(e,t)=>{t.pattern??=k,L.init(e,t)}),De=n(`$ZodKSUID`,(e,t)=>{t.pattern??=ge,L.init(e,t)}),Oe=n(`$ZodISODateTime`,(e,t)=>{t.pattern??=ce(t),L.init(e,t)}),ke=n(`$ZodISODate`,(e,t)=>{t.pattern??=se,L.init(e,t)}),Ae=n(`$ZodISOTime`,(e,t)=>{t.pattern??=E(t),L.init(e,t)}),je=n(`$ZodISODuration`,(e,t)=>{t.pattern??=le,L.init(e,t)}),Me=n(`$ZodIPv4`,(e,t)=>{t.pattern??=me,L.init(e,t),e._zod.bag.format=`ipv4`}),Ne=n(`$ZodIPv6`,(e,t)=>{t.pattern??=he,L.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),Pe=n(`$ZodCIDRv4`,(e,t)=>{t.pattern??=re,L.init(e,t)}),Fe=n(`$ZodCIDRv6`,(e,t)=>{t.pattern??=ie,L.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function R(e){if(e===``)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const Ie=n(`$ZodBase64`,(e,t)=>{t.pattern??=te,L.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{R(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function Le(e){if(!S.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return R(t.padEnd(Math.ceil(t.length/4)*4,`=`))}const Re=n(`$ZodBase64URL`,(e,t)=>{t.pattern??=S,L.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{Le(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),ze=n(`$ZodE164`,(e,t)=>{t.pattern??=ue,L.init(e,t)});function Be(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}const Ve=n(`$ZodJWT`,(e,t)=>{L.init(e,t),e._zod.check=n=>{Be(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),z=n(`$ZodNumber`,(e,t)=>{F.init(e,t),e._zod.pattern=e._zod.bag.pattern??w,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),He=n(`$ZodNumberFormat`,(e,t)=>{j.init(e,t),z.init(e,t)}),Ue=n(`$ZodBoolean`,(e,t)=>{F.init(e,t),e._zod.pattern=ne,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),We=n(`$ZodUnknown`,(e,t)=>{F.init(e,t),e._zod.parse=e=>e}),Ge=n(`$ZodNever`,(e,t)=>{F.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function B(e,t,n){e.issues.length&&t.issues.push(...v(n,e.issues)),t.value[n]=e.value}const Ke=n(`$ZodArray`,(e,t)=>{F.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>B(t,n,e))):B(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function V(e,t,n,r){e.issues.length&&t.issues.push(...v(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function H(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=ee(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function U(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type;for(let i in t){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>V(e,n,i,t))):V(a,n,i,t)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}const qe=n(`$ZodObject`,(e,t)=>{if(F.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,`shape`,{get:()=>{let n={...e};return Object.defineProperty(t,`shape`,{value:n}),n}})}let n=s(()=>H(t));u(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=h,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e]._zod.run({value:s[e],issues:[]},o);n instanceof Promise?c.push(n.then(n=>V(n,t,e,s))):V(n,t,e,s)}return i?U(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),Je=n(`$ZodObjectJIT`,(e,t)=>{qe.init(e,t);let n=e._zod.parse,r=s(()=>H(t)),a=e=>{let t=new N([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=d(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let e of n.keys){let n=a[e],r=d(e);t.write(`const ${n} = ${i(e)};`),t.write(`
2
+ if (${n}.issues.length) {
3
+ payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
4
+ ...iss,
5
+ path: iss.path ? [${r}, ...iss.path] : [${r}]
6
+ })));
7
+ }
8
+
9
+
10
+ if (${n}.value === undefined) {
11
+ if (${r} in input) {
12
+ newResult[${r}] = undefined;
13
+ }
14
+ } else {
15
+ newResult[${r}] = ${n}.value;
16
+ }
17
+
18
+ `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},c,l=h,u=!i.jitless,f=u&&o.value,p=t.catchall,m;e._zod.parse=(i,o)=>{m??=r.value;let s=i.value;return l(s)?u&&f&&o?.async===!1&&o.jitless!==!0?(c||=a(t.shape),i=c(i,o),p?U([],s,i,o,m,e):i):n(i,o):(i.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),i)}});function W(e,t,n,i){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let o=e.filter(e=>!a(e));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>p(e,i,r())))}),t)}const Ye=n(`$ZodUnion`,(e,t)=>{F.init(e,t),u(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),u(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),u(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),u(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>c(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>W(t,i,e,a)):W(s,i,e,a)}}),Xe=n(`$ZodIntersection`,(e,t)=>{F.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>K(e,t,n)):K(e,i,a)}});function G(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(g(e)&&g(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=G(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=G(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function K(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),a(e))return e;let r=G(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const Ze=n(`$ZodRecord`,(e,t)=>{F.init(e,t),e._zod.parse=(n,i)=>{let a=n.value;if(!g(a))return n.issues.push({expected:`record`,code:`invalid_type`,input:a,inst:e}),n;let o=[],s=t.keyType._zod.values;if(s){n.value={};let r=new Set;for(let e of s)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){r.add(typeof e==`number`?e.toString():e);let s=t.valueType._zod.run({value:a[e],issues:[]},i);s instanceof Promise?o.push(s.then(t=>{t.issues.length&&n.issues.push(...v(e,t.issues)),n.value[e]=t.value})):(s.issues.length&&n.issues.push(...v(e,s.issues)),n.value[e]=s.value)}let c;for(let e in a)r.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:c})}else{n.value={};for(let s of Reflect.ownKeys(a)){if(s===`__proto__`)continue;let c=t.keyType._zod.run({value:s,issues:[]},i);if(c instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(c.issues.length){t.mode===`loose`?n.value[s]=a[s]:n.issues.push({code:`invalid_key`,origin:`record`,issues:c.issues.map(e=>p(e,i,r())),input:s,path:[s],inst:e});continue}let l=t.valueType._zod.run({value:a[s],issues:[]},i);l instanceof Promise?o.push(l.then(e=>{e.issues.length&&n.issues.push(...v(s,e.issues)),n.value[c.value]=e.value})):(l.issues.length&&n.issues.push(...v(s,l.issues)),n.value[c.value]=l.value)}}return o.length?Promise.all(o).then(()=>n):n}}),Qe=n(`$ZodEnum`,(e,t)=>{F.init(e,t);let n=m(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>y.has(typeof e)).map(e=>typeof e==`string`?f(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),$e=n(`$ZodTransform`,(n,r)=>{F.init(n,r),n._zod.parse=(i,a)=>{if(a.direction===`backward`)throw new t(n.constructor.name);let o=r.transform(i.value,i);if(a.async)return(o instanceof Promise?o:Promise.resolve(o)).then(e=>(i.value=e,i));if(o instanceof Promise)throw new e;return i.value=o,i}});function q(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const J=n(`$ZodOptional`,(e,t)=>{F.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,u(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),u(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${c(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>q(t,e.value)):q(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),et=n(`$ZodNullable`,(e,t)=>{F.init(e,t),u(e._zod,`optin`,()=>t.innerType._zod.optin),u(e._zod,`optout`,()=>t.innerType._zod.optout),u(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${c(e.source)}|null)$`):void 0}),u(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),tt=n(`$ZodDefault`,(e,t)=>{F.init(e,t),e._zod.optin=`optional`,u(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Y(e,t)):Y(r,t)}});function Y(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const nt=n(`$ZodPrefault`,(e,t)=>{F.init(e,t),e._zod.optin=`optional`,u(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),rt=n(`$ZodNonOptional`,(e,t)=>{F.init(e,t),u(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>X(t,e)):X(i,e)}});function X(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}const it=n(`$ZodCatch`,(e,t)=>{F.init(e,t),u(e._zod,`optin`,()=>t.innerType._zod.optin),u(e._zod,`optout`,()=>t.innerType._zod.optout),u(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(i=>(e.value=i.value,i.issues.length&&(e.value=t.catchValue({...e,error:{issues:i.issues.map(e=>p(e,n,r()))},input:e.value}),e.issues=[]),e)):(e.value=i.value,i.issues.length&&(e.value=t.catchValue({...e,error:{issues:i.issues.map(e=>p(e,n,r()))},input:e.value}),e.issues=[]),e)}}),at=n(`$ZodPipe`,(e,t)=>{F.init(e,t),u(e._zod,`values`,()=>t.in._zod.values),u(e._zod,`optin`,()=>t.in._zod.optin),u(e._zod,`optout`,()=>t.out._zod.optout),u(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Z(e,t.in,n)):Z(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Z(e,t.out,n)):Z(r,t.out,n)}});function Z(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const ot=n(`$ZodReadonly`,(e,t)=>{F.init(e,t),u(e._zod,`propValues`,()=>t.innerType._zod.propValues),u(e._zod,`values`,()=>t.innerType._zod.values),u(e._zod,`optin`,()=>t.innerType?._zod?.optin),u(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Q):Q(r)}});function Q(e){return e.value=Object.freeze(e.value),e}const st=n(`$ZodCustom`,(e,t)=>{A.init(e,t),F.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>$(t,n,r,e));$(i,n,r,e)}});function $(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(_(e))}}export{Ke as $ZodArray,Ie as $ZodBase64,Re as $ZodBase64URL,Ue as $ZodBoolean,Pe as $ZodCIDRv4,Fe as $ZodCIDRv6,Ce as $ZodCUID,we as $ZodCUID2,it as $ZodCatch,st as $ZodCustom,tt as $ZodDefault,ze as $ZodE164,ye as $ZodEmail,xe as $ZodEmoji,Qe as $ZodEnum,_e as $ZodGUID,Me as $ZodIPv4,Ne as $ZodIPv6,ke as $ZodISODate,Oe as $ZodISODateTime,je as $ZodISODuration,Ae as $ZodISOTime,Xe as $ZodIntersection,Ve as $ZodJWT,De as $ZodKSUID,Se as $ZodNanoID,Ge as $ZodNever,rt as $ZodNonOptional,et as $ZodNullable,z as $ZodNumber,He as $ZodNumberFormat,Je as $ZodObjectJIT,J as $ZodOptional,at as $ZodPipe,nt as $ZodPrefault,ot as $ZodReadonly,Ze as $ZodRecord,I as $ZodString,L as $ZodStringFormat,$e as $ZodTransform,F as $ZodType,Te as $ZodULID,be as $ZodURL,ve as $ZodUUID,Ye as $ZodUnion,We as $ZodUnknown,Ee as $ZodXID};
@@ -0,0 +1,3 @@
1
+ import{globalRegistry as e}from"./registries.js";function t(t){let n=t?.target??`draft-2020-12`;return n===`draft-4`&&(n=`draft-04`),n===`draft-7`&&(n=`draft-07`),{processors:t.processors??{},metadataRegistry:t?.metadata??e,target:n,unrepresentable:t?.unrepresentable??`throw`,override:t?.override??(()=>{}),io:t?.io??`output`,counter:0,seen:new Map,cycles:t?.cycles??`ref`,reused:t?.reused??`inline`,external:t?.external??void 0}}function n(e,t,r={path:[],schemaPath:[]}){var i;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 c={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,c);let l=e._zod.toJSONSchema?.();if(l)c.schema=l;else{let i={...r,schemaPath:[...r.schemaPath,e],path:r.path},a=e._zod.parent;if(a)c.ref=a,n(a,t,i),t.seen.get(a).isParent=!0;else if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,c.schema,i);else{let n=c.schema,r=t.processors[o.type];if(!r)throw Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);r(e,t,n,i)}}let u=t.metadataRegistry.get(e);return u&&Object.assign(c.schema,u),t.io===`input`&&a(e)&&(delete c.schema.examples,delete c.schema.default),t.io===`input`&&c.schema._prefault&&((i=c.schema).default??(i.default=c.schema._prefault)),delete c.schema._prefault,t.seen.get(e).schema}function r(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},i=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:i}=r(e);t.def={...t.schema},i&&(t.defId=i);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
2
+
3
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){i(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){i(n);continue}}if(e.metadataRegistry.get(n[0])?.id){i(n);continue}if(r.cycle){i(n);continue}if(r.count>1&&e.reused===`ref`){i(n);continue}}}function i(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t),i=n.def??n.schema,a={...i};if(n.ref===null)return;let o=n.ref;if(n.ref=null,o){r(o);let t=e.seen.get(o).schema;t.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(t)):(Object.assign(i,t),Object.assign(i,a))}n.isParent||e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&(e.target===`draft-2020-12`?i.$defs=a:i.definitions=a);try{let e=JSON.parse(JSON.stringify(i));return Object.defineProperty(e,`~standard`,{value:{...t[`~standard`],jsonSchema:{input:s(t,`input`),output:s(t,`output`)}},enumerable:!1,writable:!1}),e}catch{throw Error(`Error converting schema to JSON.`)}}function a(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return a(r.element,n);if(r.type===`set`)return a(r.valueType,n);if(r.type===`lazy`)return a(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type===`default`||r.type===`prefault`)return a(r.innerType,n);if(r.type===`intersection`)return a(r.left,n)||a(r.right,n);if(r.type===`record`||r.type===`map`)return a(r.keyType,n)||a(r.valueType,n);if(r.type===`pipe`)return a(r.in,n)||a(r.out,n);if(r.type===`object`){for(let e in r.shape)if(a(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(a(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(a(e,n))return!0;return!!(r.rest&&a(r.rest,n))}return!1}const o=(e,a={})=>o=>{let s=t({...o,processors:a});return n(e,s),r(s,e),i(s,e)},s=(e,a)=>o=>{let{libraryOptions:s,target:c}=o??{},l=t({...s??{},target:c,io:a,processors:{}});return n(e,l),r(l,e),i(l,e)};export{s as createStandardJSONSchemaMethod,o as createToJSONSchemaMethod,n as process};
@@ -0,0 +1 @@
1
+ function e(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function t(e,t){return typeof t==`bigint`?t.toString():t}function n(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function r(e){return e==null}function i(e){let t=e.startsWith(`^`)?1:0,n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function a(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}const o=Symbol(`evaluating`);function s(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==o)return r===void 0&&(r=o,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function c(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function l(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function u(e){return JSON.stringify(e)}function d(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}const f=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function p(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const m=n(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function h(e){if(p(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(p(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function g(e){return h(e)?{...e}:Array.isArray(e)?[...e]:e}const _=new Set([`string`,`number`,`symbol`]);function v(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function y(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function b(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 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 x(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}const S={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function C(e,t){let n=e._zod.def;return y(e,l(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return c(this,`shape`,e),e},checks:[]}))}function w(e,t){let n=e._zod.def;return y(e,l(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return c(this,`shape`,r),r},checks:[]}))}function T(e,t){if(!h(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0)throw Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");return y(e,l(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return c(this,`shape`,n),n},checks:[]}))}function E(e,t){if(!h(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return y(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t};return c(this,`shape`,n),n},checks:e._zod.def.checks})}function D(e,t){return y(e,l(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return c(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function O(e,t,n){return y(t,l(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return c(this,`shape`,i),i},checks:[]}))}function k(e,t,n){return y(t,l(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return c(this,`shape`,i),i},checks:[]}))}function A(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function j(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function M(e){return typeof e==`string`?e:e?.message}function N(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=M(e.inst?._zod.def?.error?.(e))??M(t?.error?.(e))??M(n.customError?.(e))??M(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function P(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function F(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}export{S as NUMBER_FORMAT_RANGES,A as aborted,m as allowsEval,n as cached,f as captureStackTrace,i as cleanRegex,y as clone,s as defineLazy,u as esc,v as escapeRegex,T as extend,N as finalizeIssue,a as floatSafeRemainder,e as getEnumValues,P as getLengthableOrigin,p as isObject,h as isPlainObject,F as issue,t as jsonStringifyReplacer,D as merge,l as mergeDefs,b as normalizeParams,r as nullish,w as omit,x as optionalKeys,O as partial,C as pick,j as prefixIssues,_ as propertyKeyTypes,k as required,E as safeExtend,g as shallowClone,d as slugify};
@@ -0,0 +1 @@
1
+ const e={major:4,minor:2,patch:1};export{e as version};
package/dist/spec.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./ai-agent/dist/spec.js";import"./ai-agent/dist/index.js";function t(t){return{...e({...t.base,policy:{...t.base.policy,confidence:{min:t.base.policy?.confidence?.min??.7,default:t.base.policy?.confidence?.default??.6},escalation:{confidenceThreshold:t.autoEscalateThreshold??t.base.policy?.escalation?.confidenceThreshold??t.base.policy?.confidence?.min??.7,...t.base.policy?.escalation}},memory:t.base.memory??{maxEntries:120,ttlMinutes:120},tools:t.tools??t.base.tools,instructions:`${t.base.instructions}\n\nAlways cite support knowledge sources and flag compliance/billing issues for human review when unsure.`}),thresholds:{autoResolveMinConfidence:t.autoEscalateThreshold??.75,maxIterations:6}}}export{t as defineSupportBot};
1
+ import{defineAgent as e}from"@lssm/lib.ai-agent";function t(t){return{...e({...t.base,policy:{...t.base.policy,confidence:{min:t.base.policy?.confidence?.min??.7,default:t.base.policy?.confidence?.default??.6},escalation:{confidenceThreshold:t.autoEscalateThreshold??t.base.policy?.escalation?.confidenceThreshold??t.base.policy?.confidence?.min??.7,...t.base.policy?.escalation}},memory:t.base.memory??{maxEntries:120,ttlMinutes:120},tools:t.tools??t.base.tools,instructions:`${t.base.instructions}\n\nAlways cite support knowledge sources and flag compliance/billing issues for human review when unsure.`}),thresholds:{autoResolveMinConfidence:t.autoEscalateThreshold??.75,maxIterations:6}}}export{t as defineSupportBot};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/lib.support-bot",
3
- "version": "0.4.1",
3
+ "version": "1.41.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -22,30 +22,44 @@
22
22
  "test": "bun run"
23
23
  },
24
24
  "dependencies": {
25
- "@lssm/lib.ai-agent": "^0.4.1",
26
- "@lssm/lib.contracts": "^1.11.1"
25
+ "@lssm/lib.ai-agent": "workspace:*",
26
+ "@lssm/lib.contracts": "workspace:*"
27
27
  },
28
28
  "devDependencies": {
29
- "@lssm/tool.tsdown": "0.12.1",
30
- "@lssm/tool.typescript": "0.11.1",
31
- "tsdown": "^0.16.6",
29
+ "@lssm/tool.tsdown": "workspace:*",
30
+ "@lssm/tool.typescript": "workspace:*",
31
+ "tsdown": "^0.17.4",
32
32
  "typescript": "^5.9.3"
33
33
  },
34
34
  "exports": {
35
- ".": "./dist/index.js",
36
- "./bot": "./dist/bot/index.js",
37
- "./bot/auto-responder": "./dist/bot/auto-responder.js",
38
- "./bot/feedback-loop": "./dist/bot/feedback-loop.js",
39
- "./bot/tools": "./dist/bot/tools.js",
40
- "./rag": "./dist/rag/index.js",
41
- "./rag/ticket-resolver": "./dist/rag/ticket-resolver.js",
42
- "./spec": "./dist/spec.js",
43
- "./tickets": "./dist/tickets/index.js",
44
- "./tickets/classifier": "./dist/tickets/classifier.js",
45
- "./types": "./dist/types.js",
35
+ ".": "./src/index.ts",
36
+ "./bot": "./src/bot/index.ts",
37
+ "./bot/auto-responder": "./src/bot/auto-responder.ts",
38
+ "./bot/feedback-loop": "./src/bot/feedback-loop.ts",
39
+ "./bot/tools": "./src/bot/tools.ts",
40
+ "./rag": "./src/rag/index.ts",
41
+ "./rag/ticket-resolver": "./src/rag/ticket-resolver.ts",
42
+ "./spec": "./src/spec.ts",
43
+ "./tickets": "./src/tickets/index.ts",
44
+ "./tickets/classifier": "./src/tickets/classifier.ts",
45
+ "./types": "./src/types.ts",
46
46
  "./*": "./*"
47
47
  },
48
48
  "publishConfig": {
49
- "access": "public"
49
+ "access": "public",
50
+ "exports": {
51
+ ".": "./dist/index.js",
52
+ "./bot": "./dist/bot/index.js",
53
+ "./bot/auto-responder": "./dist/bot/auto-responder.js",
54
+ "./bot/feedback-loop": "./dist/bot/feedback-loop.js",
55
+ "./bot/tools": "./dist/bot/tools.js",
56
+ "./rag": "./dist/rag/index.js",
57
+ "./rag/ticket-resolver": "./dist/rag/ticket-resolver.js",
58
+ "./spec": "./dist/spec.js",
59
+ "./tickets": "./dist/tickets/index.js",
60
+ "./tickets/classifier": "./dist/tickets/classifier.js",
61
+ "./types": "./dist/types.js",
62
+ "./*": "./*"
63
+ }
50
64
  }
51
65
  }
@@ -1 +0,0 @@
1
- import"./workflow.js";
@@ -1 +0,0 @@
1
- import"node:crypto";
@@ -1 +0,0 @@
1
- import{t as e}from"./spec.js";import"./tools/executor.js";import"./memory/manager.js";import"./runner.js";import"./memory/in-memory.js";import"./memory/index.js";import"./tools/index.js";import"./approval/workflow.js";import"./approval/index.js";
@@ -1 +0,0 @@
1
- import"./manager.js";
@@ -1 +0,0 @@
1
- import"./manager.js";import"./in-memory.js";
@@ -1 +0,0 @@
1
- import"node:crypto";
@@ -1 +0,0 @@
1
- import"./tools/executor.js";import"./memory/manager.js";import"node:crypto";
@@ -1 +0,0 @@
1
- function e(e){if(!e.meta?.name)throw Error(`Agent name is required`);if(!Number.isFinite(e.meta.version))throw Error(`Agent ${e.meta.name} is missing a numeric version`);if(!e.instructions?.trim())throw Error(`Agent ${e.meta.name} requires instructions`);if(!e.tools?.length)throw Error(`Agent ${e.meta.name} must expose at least one tool`);return Object.freeze(e)}export{e as t};
@@ -1 +0,0 @@
1
- import"node:timers/promises";
@@ -1 +0,0 @@
1
- import"./executor.js";
@@ -1,25 +0,0 @@
1
- import { SupportResolution, SupportResponseDraft, SupportTicket, TicketClassification } from "../types.js";
2
- import { LLMProvider } from "@lssm/lib.contracts/integrations/providers/llm";
3
-
4
- //#region src/bot/auto-responder.d.ts
5
- interface AutoResponderOptions {
6
- llm?: LLMProvider;
7
- model?: string;
8
- tone?: 'friendly' | 'formal';
9
- closing?: string;
10
- }
11
- declare class AutoResponder {
12
- private readonly llm?;
13
- private readonly model?;
14
- private readonly tone;
15
- private readonly closing;
16
- constructor(options?: AutoResponderOptions);
17
- draft(ticket: SupportTicket, resolution: SupportResolution, classification: TicketClassification): Promise<SupportResponseDraft>;
18
- private generateWithLLM;
19
- private generateTemplate;
20
- private buildDraft;
21
- private renderCategoryIntro;
22
- private renderCitations;
23
- }
24
- //#endregion
25
- export { AutoResponder, AutoResponderOptions };
@@ -1,19 +0,0 @@
1
- import { ResolutionResultPayload } from "../types.js";
2
-
3
- //#region src/bot/feedback-loop.d.ts
4
- interface FeedbackMetrics {
5
- totalTickets: number;
6
- autoResolved: number;
7
- escalated: number;
8
- avgConfidence: number;
9
- avgResponseTimeMs: number;
10
- }
11
- declare class SupportFeedbackLoop {
12
- private readonly history;
13
- private readonly responseTimes;
14
- recordResolution(payload: ResolutionResultPayload, responseTimeMs?: number): void;
15
- metrics(): FeedbackMetrics;
16
- feedbackSummary(limit?: number): string;
17
- }
18
- //#endregion
19
- export { FeedbackMetrics, SupportFeedbackLoop };
@@ -1,4 +0,0 @@
1
- import { AutoResponder, AutoResponderOptions } from "./auto-responder.js";
2
- import { FeedbackMetrics, SupportFeedbackLoop } from "./feedback-loop.js";
3
- import { SupportToolsetOptions, createSupportTools } from "./tools.js";
4
- export { AutoResponder, AutoResponderOptions, FeedbackMetrics, SupportFeedbackLoop, SupportToolsetOptions, createSupportTools };
@@ -1,14 +0,0 @@
1
- import { AutoResponder } from "./auto-responder.js";
2
- import { TicketResolver } from "../rag/ticket-resolver.js";
3
- import { TicketClassifier } from "../tickets/classifier.js";
4
- import { AgentToolDefinitionWithHandler } from "@lssm/lib.ai-agent";
5
-
6
- //#region src/bot/tools.d.ts
7
- interface SupportToolsetOptions {
8
- resolver: TicketResolver;
9
- classifier: TicketClassifier;
10
- responder: AutoResponder;
11
- }
12
- declare function createSupportTools(options: SupportToolsetOptions): AgentToolDefinitionWithHandler[];
13
- //#endregion
14
- export { SupportToolsetOptions, createSupportTools };
package/dist/index.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import { ClassificationResultPayload, ResolutionResultPayload, SupportAction, SupportBotSpec, SupportCitation, SupportResolution, SupportResponseDraft, SupportTicket, TicketCategory, TicketChannel, TicketClassification, TicketPriority, TicketSentiment } from "./types.js";
2
- import { AutoResponder, AutoResponderOptions } from "./bot/auto-responder.js";
3
- import { FeedbackMetrics, SupportFeedbackLoop } from "./bot/feedback-loop.js";
4
- import { KnowledgeRetriever, TicketResolver, TicketResolverOptions } from "./rag/ticket-resolver.js";
5
- import { TicketClassifier, TicketClassifierOptions } from "./tickets/classifier.js";
6
- import { SupportToolsetOptions, createSupportTools } from "./bot/tools.js";
7
- import { SupportBotDefinition, defineSupportBot } from "./spec.js";
8
- export { AutoResponder, AutoResponderOptions, ClassificationResultPayload, FeedbackMetrics, KnowledgeRetriever, ResolutionResultPayload, SupportAction, SupportBotDefinition, SupportBotSpec, SupportCitation, SupportFeedbackLoop, SupportResolution, SupportResponseDraft, SupportTicket, SupportToolsetOptions, TicketCategory, TicketChannel, TicketClassification, TicketClassifier, TicketClassifierOptions, TicketPriority, TicketResolver, TicketResolverOptions, TicketSentiment, createSupportTools, defineSupportBot };
@@ -1,2 +0,0 @@
1
- import { KnowledgeRetriever, TicketResolver, TicketResolverOptions } from "./ticket-resolver.js";
2
- export { KnowledgeRetriever, TicketResolver, TicketResolverOptions };
@@ -1,24 +0,0 @@
1
- import { SupportResolution, SupportTicket } from "../types.js";
2
- import { KnowledgeAnswer } from "@lssm/lib.contracts/knowledge/query/service";
3
-
4
- //#region src/rag/ticket-resolver.d.ts
5
- interface KnowledgeRetriever {
6
- query(question: string): Promise<KnowledgeAnswer>;
7
- }
8
- interface TicketResolverOptions {
9
- knowledge: KnowledgeRetriever;
10
- minConfidence?: number;
11
- prependPrompt?: string;
12
- }
13
- declare class TicketResolver {
14
- private readonly knowledge;
15
- private readonly minConfidence;
16
- private readonly prependPrompt?;
17
- constructor(options: TicketResolverOptions);
18
- resolve(ticket: SupportTicket): Promise<SupportResolution>;
19
- private buildQuestion;
20
- private toResolution;
21
- private deriveConfidence;
22
- }
23
- //#endregion
24
- export { KnowledgeRetriever, TicketResolver, TicketResolverOptions };
package/dist/spec.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import { SupportBotSpec } from "./types.js";
2
- import { AgentSpec, AgentToolConfig } from "@lssm/lib.ai-agent";
3
-
4
- //#region src/spec.d.ts
5
- interface SupportBotDefinition {
6
- base: AgentSpec;
7
- tools?: AgentToolConfig[];
8
- autoEscalateThreshold?: number;
9
- }
10
- declare function defineSupportBot(definition: SupportBotDefinition): SupportBotSpec;
11
- //#endregion
12
- export { SupportBotDefinition, defineSupportBot };
@@ -1,24 +0,0 @@
1
- import { SupportTicket, TicketCategory, TicketClassification } from "../types.js";
2
- import { LLMProvider } from "@lssm/lib.contracts/integrations/providers/llm";
3
-
4
- //#region src/tickets/classifier.d.ts
5
- interface TicketClassifierOptions {
6
- keywords?: Partial<Record<TicketCategory, string[]>>;
7
- llm?: LLMProvider;
8
- llmModel?: string;
9
- }
10
- declare class TicketClassifier {
11
- private readonly keywords;
12
- private readonly llm?;
13
- private readonly llmModel?;
14
- constructor(options?: TicketClassifierOptions);
15
- classify(ticket: SupportTicket): Promise<TicketClassification>;
16
- private heuristicClassification;
17
- private detectCategory;
18
- private detectPriority;
19
- private detectSentiment;
20
- private extractIntents;
21
- private estimateConfidence;
22
- }
23
- //#endregion
24
- export { TicketClassifier, TicketClassifierOptions };
@@ -1,2 +0,0 @@
1
- import { TicketClassifier, TicketClassifierOptions } from "./classifier.js";
2
- export { TicketClassifier, TicketClassifierOptions };
package/dist/types.d.ts DELETED
@@ -1,75 +0,0 @@
1
- import { AgentSpec } from "@lssm/lib.ai-agent";
2
-
3
- //#region src/types.d.ts
4
- type TicketPriority = 'low' | 'medium' | 'high' | 'urgent';
5
- type TicketCategory = 'billing' | 'technical' | 'product' | 'account' | 'compliance' | 'other';
6
- type TicketChannel = 'email' | 'chat' | 'phone' | 'portal';
7
- type TicketSentiment = 'positive' | 'neutral' | 'negative' | 'frustrated';
8
- interface SupportTicket {
9
- id: string;
10
- subject: string;
11
- body: string;
12
- channel: TicketChannel;
13
- locale?: string;
14
- customerEmail?: string;
15
- customerName?: string;
16
- metadata?: Record<string, string>;
17
- }
18
- interface TicketClassification {
19
- ticketId: string;
20
- category: TicketCategory;
21
- priority: TicketPriority;
22
- sentiment: TicketSentiment;
23
- intents: string[];
24
- tags: string[];
25
- confidence: number;
26
- escalationRequired?: boolean;
27
- }
28
- interface SupportCitation {
29
- label: string;
30
- url?: string;
31
- snippet?: string;
32
- score?: number;
33
- }
34
- interface SupportAction {
35
- type: 'respond' | 'escalate' | 'refund' | 'manual';
36
- label: string;
37
- payload?: Record<string, string>;
38
- }
39
- interface SupportResolution {
40
- ticketId: string;
41
- answer: string;
42
- confidence: number;
43
- citations: SupportCitation[];
44
- actions: SupportAction[];
45
- escalationReason?: string;
46
- knowledgeUpdates?: string[];
47
- }
48
- interface SupportResponseDraft {
49
- ticketId: string;
50
- subject: string;
51
- body: string;
52
- confidence: number;
53
- requiresEscalation: boolean;
54
- citations: SupportCitation[];
55
- }
56
- interface SupportBotSpec extends AgentSpec {
57
- thresholds?: {
58
- autoResolveMinConfidence?: number;
59
- maxIterations?: number;
60
- };
61
- review?: {
62
- queueName?: string;
63
- approvalWorkflow?: string;
64
- };
65
- }
66
- interface ClassificationResultPayload {
67
- ticket: SupportTicket;
68
- classification: TicketClassification;
69
- }
70
- interface ResolutionResultPayload extends ClassificationResultPayload {
71
- resolution: SupportResolution;
72
- draft: SupportResponseDraft;
73
- }
74
- //#endregion
75
- export { ClassificationResultPayload, ResolutionResultPayload, SupportAction, SupportBotSpec, SupportCitation, SupportResolution, SupportResponseDraft, SupportTicket, TicketCategory, TicketChannel, TicketClassification, TicketPriority, TicketSentiment };