@ably/ai-transport 0.0.1 → 0.1.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 (110) hide show
  1. package/README.md +54 -47
  2. package/dist/ably-ai-transport.js +1006 -539
  3. package/dist/ably-ai-transport.js.map +1 -1
  4. package/dist/ably-ai-transport.umd.cjs +1 -1
  5. package/dist/ably-ai-transport.umd.cjs.map +1 -1
  6. package/dist/constants.d.ts +4 -0
  7. package/dist/core/codec/types.d.ts +19 -2
  8. package/dist/core/transport/decode-history.d.ts +8 -6
  9. package/dist/core/transport/headers.d.ts +4 -2
  10. package/dist/core/transport/index.d.ts +4 -1
  11. package/dist/core/transport/pipe-stream.d.ts +3 -2
  12. package/dist/core/transport/stream-router.d.ts +11 -1
  13. package/dist/core/transport/tree.d.ts +171 -0
  14. package/dist/core/transport/turn-manager.d.ts +4 -1
  15. package/dist/core/transport/types.d.ts +270 -119
  16. package/dist/core/transport/view.d.ts +166 -0
  17. package/dist/errors.d.ts +19 -2
  18. package/dist/index.d.ts +3 -1
  19. package/dist/react/ably-ai-transport-react.js +1019 -486
  20. package/dist/react/ably-ai-transport-react.js.map +1 -1
  21. package/dist/react/ably-ai-transport-react.umd.cjs +1 -1
  22. package/dist/react/ably-ai-transport-react.umd.cjs.map +1 -1
  23. package/dist/react/contexts/transport-context.d.ts +31 -0
  24. package/dist/react/contexts/transport-provider.d.ts +49 -0
  25. package/dist/react/create-transport-hooks.d.ts +124 -0
  26. package/dist/react/index.d.ts +14 -8
  27. package/dist/react/use-ably-messages.d.ts +14 -8
  28. package/dist/react/use-active-turns.d.ts +7 -3
  29. package/dist/react/use-client-transport.d.ts +78 -5
  30. package/dist/react/use-create-view.d.ts +22 -0
  31. package/dist/react/use-tree.d.ts +20 -0
  32. package/dist/react/use-view.d.ts +79 -0
  33. package/dist/vercel/ably-ai-transport-vercel.js +1478 -842
  34. package/dist/vercel/ably-ai-transport-vercel.js.map +1 -1
  35. package/dist/vercel/ably-ai-transport-vercel.umd.cjs +1 -1
  36. package/dist/vercel/ably-ai-transport-vercel.umd.cjs.map +1 -1
  37. package/dist/vercel/codec/tool-transitions.d.ts +50 -0
  38. package/dist/vercel/index.d.ts +3 -0
  39. package/dist/vercel/react/ably-ai-transport-vercel-react.js +9099 -852
  40. package/dist/vercel/react/ably-ai-transport-vercel-react.js.map +1 -1
  41. package/dist/vercel/react/ably-ai-transport-vercel-react.umd.cjs +45 -1
  42. package/dist/vercel/react/ably-ai-transport-vercel-react.umd.cjs.map +1 -1
  43. package/dist/vercel/react/contexts/chat-transport-context.d.ts +32 -0
  44. package/dist/vercel/react/contexts/chat-transport-provider.d.ts +84 -0
  45. package/dist/vercel/react/index.d.ts +5 -0
  46. package/dist/vercel/react/use-chat-transport.d.ts +61 -20
  47. package/dist/vercel/react/use-message-sync.d.ts +41 -9
  48. package/dist/vercel/react/use-staged-add-tool-approval-response.d.ts +30 -0
  49. package/dist/vercel/tool-approvals.d.ts +124 -0
  50. package/dist/vercel/tool-events.d.ts +26 -0
  51. package/dist/vercel/transport/chat-transport.d.ts +33 -11
  52. package/dist/vercel/transport/index.d.ts +5 -2
  53. package/package.json +23 -17
  54. package/src/constants.ts +6 -0
  55. package/src/core/codec/encoder.ts +10 -1
  56. package/src/core/codec/types.ts +19 -3
  57. package/src/core/transport/client-transport.ts +382 -364
  58. package/src/core/transport/decode-history.ts +229 -81
  59. package/src/core/transport/headers.ts +6 -2
  60. package/src/core/transport/index.ts +13 -5
  61. package/src/core/transport/pipe-stream.ts +8 -5
  62. package/src/core/transport/server-transport.ts +212 -58
  63. package/src/core/transport/stream-router.ts +21 -3
  64. package/src/core/transport/{conversation-tree.ts → tree.ts} +192 -77
  65. package/src/core/transport/turn-manager.ts +28 -10
  66. package/src/core/transport/types.ts +318 -139
  67. package/src/core/transport/view.ts +840 -0
  68. package/src/errors.ts +21 -1
  69. package/src/index.ts +10 -5
  70. package/src/react/contexts/transport-context.ts +37 -0
  71. package/src/react/contexts/transport-provider.tsx +164 -0
  72. package/src/react/create-transport-hooks.ts +144 -0
  73. package/src/react/index.ts +15 -8
  74. package/src/react/use-ably-messages.ts +34 -16
  75. package/src/react/use-active-turns.ts +28 -17
  76. package/src/react/use-client-transport.ts +184 -24
  77. package/src/react/use-create-view.ts +68 -0
  78. package/src/react/use-tree.ts +53 -0
  79. package/src/react/use-view.ts +233 -0
  80. package/src/react/vite.config.ts +4 -1
  81. package/src/vercel/codec/accumulator.ts +64 -79
  82. package/src/vercel/codec/decoder.ts +11 -8
  83. package/src/vercel/codec/encoder.ts +68 -54
  84. package/src/vercel/codec/index.ts +0 -2
  85. package/src/vercel/codec/tool-transitions.ts +122 -0
  86. package/src/vercel/index.ts +17 -0
  87. package/src/vercel/react/contexts/chat-transport-context.ts +40 -0
  88. package/src/vercel/react/contexts/chat-transport-provider.tsx +122 -0
  89. package/src/vercel/react/index.ts +14 -0
  90. package/src/vercel/react/use-chat-transport.ts +164 -42
  91. package/src/vercel/react/use-message-sync.ts +77 -19
  92. package/src/vercel/react/use-staged-add-tool-approval-response.ts +87 -0
  93. package/src/vercel/react/vite.config.ts +4 -2
  94. package/src/vercel/tool-approvals.ts +380 -0
  95. package/src/vercel/tool-events.ts +53 -0
  96. package/src/vercel/transport/chat-transport.ts +225 -79
  97. package/src/vercel/transport/index.ts +14 -3
  98. package/dist/core/transport/conversation-tree.d.ts +0 -9
  99. package/dist/react/use-conversation-tree.d.ts +0 -20
  100. package/dist/react/use-edit.d.ts +0 -7
  101. package/dist/react/use-history.d.ts +0 -19
  102. package/dist/react/use-messages.d.ts +0 -7
  103. package/dist/react/use-regenerate.d.ts +0 -7
  104. package/dist/react/use-send.d.ts +0 -7
  105. package/src/react/use-conversation-tree.ts +0 -71
  106. package/src/react/use-edit.ts +0 -24
  107. package/src/react/use-history.ts +0 -111
  108. package/src/react/use-messages.ts +0 -32
  109. package/src/react/use-regenerate.ts +0 -24
  110. package/src/react/use-send.ts +0 -25
@@ -1,2 +1,46 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react`),require(`ably`),require(`ai`)):typeof define==`function`&&define.amd?define([`exports`,`react`,`ably`,`ai`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.AblyAiTransportVercelReact={},e.React,e.Ably,e.AI))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var i=Object.create,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=s(t),c=0,u=i.length,d;c<u;c++)d=i[c],!l.call(e,d)&&d!==n&&a(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=o(t,d))||r.enumerable});return e};n=((e,t,n)=>(n=e==null?{}:i(c(e)),u(t||!e||!e.__esModule?a(n,`default`,{value:e,enumerable:!0}):n,e)))(n);var d=function(e){return e[e.BadRequest=4e4]=`BadRequest`,e[e.InvalidArgument=40003]=`InvalidArgument`,e[e.EncoderRecoveryFailed=104e3]=`EncoderRecoveryFailed`,e[e.TransportSubscriptionError=104001]=`TransportSubscriptionError`,e[e.CancelListenerError=104002]=`CancelListenerError`,e[e.TurnLifecycleError=104003]=`TurnLifecycleError`,e[e.TransportClosed=104004]=`TransportClosed`,e[e.TransportSendFailed=104005]=`TransportSendFailed`,e}({}),f=(e,t)=>e.code===t,p=(e,t)=>({sendMessages:async r=>{let{messages:i,abortSignal:a,trigger:o,messageId:s}=r,c,l;if(o===`regenerate-message`)c=[],l=i;else{if(i.length===0)throw new n.ErrorInfo(`unable to send messages; messages array is empty for submit-message trigger`,d.InvalidArgument,400);c=[i.at(-1)],l=i.slice(0,-1)}let u,f;if(o===`regenerate-message`&&s){u=s;let t=e.getTree().getNodeByKey(s);t&&(u=t.msgId,f=t.parentId)}let p,m;if(t?.prepareSendMessagesRequest){let e=t.prepareSendMessagesRequest({id:r.chatId,trigger:o,messageId:s,history:l,messages:c,forkOf:u,parent:f});p=e.body??{},m=e.headers}else p={history:l.map(t=>({message:t,headers:e.getMessageHeaders(t)})),id:r.chatId,trigger:o,...s!==void 0&&{messageId:s},...u!==void 0&&{forkOf:u},...f!==void 0&&{parent:f}},m=void 0;let h={body:p,headers:m};u!==void 0&&(h.forkOf=u),f!==void 0&&(h.parent=f);let g=await e.send(c,h);a&&a.addEventListener(`abort`,()=>void e.cancel({all:!0}),{once:!0});let{readable:_,writable:v}=new TransformStream,y=v.getWriter();return g.stream.pipeTo(new WritableStream({close:()=>{y.close().catch(()=>{})},abort:()=>{y.close().catch(()=>{})}})).catch(()=>{y.close().catch(()=>{})}),_},reconnectToStream:()=>Promise.resolve(null),close:async t=>e.close(t)}),m=`x-ably-stream`,h=`x-ably-status`,g=`x-ably-stream-id`,_=`x-ably-turn-id`,v=`x-ably-msg-id`,y=`x-ably-turn-client-id`,b=`x-ably-role`,ee=`x-ably-cancel-turn-id`,x=`x-ably-cancel-own`,te=`x-ably-cancel-all`,ne=`x-ably-cancel-client-id`,S=`x-ably-parent`,re=`x-ably-fork-of`,C=`x-ably-cancel`,w=`x-ably-turn-start`,T=`x-ably-turn-end`,E=`x-domain-`,D=e=>({logAction:(t,n,r)=>{e.error(n,{detail:r})},shouldLog:()=>!0}),O=n.Realtime.EventEmitter,k=class extends O{constructor(e){super(D(e))}},A=function(e){return e.Trace=`trace`,e.Debug=`debug`,e.Info=`info`,e.Warn=`warn`,e.Error=`error`,e.Silent=`silent`,e}({}),ie=(e,t,n)=>{let r=n?`, context: ${JSON.stringify(n)}`:``,i=`[${new Date().toISOString()}] ${t.valueOf().toUpperCase()} ably-ai-transport: ${e}${r}`;switch(t){case A.Trace:case A.Debug:console.log(i);break;case A.Info:console.info(i);break;case A.Warn:console.warn(i);break;case A.Error:console.error(i);break;case A.Silent:break}},ae=e=>new oe(e.logHandler??ie,e.logLevel),j=function(e){return e[e.Trace=0]=`Trace`,e[e.Debug=1]=`Debug`,e[e.Info=2]=`Info`,e[e.Warn=3]=`Warn`,e[e.Error=4]=`Error`,e[e.Silent=5]=`Silent`,e}(j||{}),M=new Map([[A.Trace,j.Trace],[A.Debug,j.Debug],[A.Info,j.Info],[A.Warn,j.Warn],[A.Error,j.Error],[A.Silent,j.Silent]]),oe=class e{constructor(e,t,r){this._handler=e,this._context=r;let i=M.get(t);if(i===void 0)throw new n.ErrorInfo(`unable to create logger; invalid log level: ${t}`,d.InvalidArgument,400);this._levelNumber=i}trace(e,t){this._write(e,A.Trace,j.Trace,t)}debug(e,t){this._write(e,A.Debug,j.Debug,t)}info(e,t){this._write(e,A.Info,j.Info,t)}warn(e,t){this._write(e,A.Warn,j.Warn,t)}error(e,t){this._write(e,A.Error,j.Error,t)}withContext(t){let n=[...M.entries()].find(([,e])=>e===this._levelNumber)?.[0]??A.Error;return new e(this._handler,n,this._mergeContext(t))}_write(e,t,n,r){n>=this._levelNumber&&this._handler(e,t,this._mergeContext(r))}_mergeContext(e){return this._context?e?{...this._context,...e}:this._context:e??void 0}},N=e=>{let t=e.extras;if(!t||typeof t!=`object`)return{};let n=t.headers;return!n||typeof n!=`object`?{}:n},se=e=>{if(e!==void 0)try{return JSON.parse(e)}catch{return}},P=(e,t)=>({...e,...t}),F=e=>{if(e!==void 0)return e===`true`},I=(e,t)=>e[E+t],L=e=>{let t={};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&e[n]!==void 0&&(t[n]=e[n]);return t},R=e=>({str:t=>I(e,t),strOr:(t,n)=>I(e,t)??n,bool:t=>F(I(e,t)),json:t=>se(I(e,t))}),z=()=>{let e={},t={str:(n,r)=>(r!==void 0&&(e[E+n]=r),t),bool:(n,r)=>(r!==void 0&&(e[E+n]=String(r)),t),json:(n,r)=>(r!=null&&(e[E+n]=JSON.stringify(r)),t),build:()=>e};return t},B=class{constructor(e,t){this._nodeIndex=new Map,this._codecKeyIndex=new Map,this._sortedList=[],this._parentIndex=new Map,this._selections=new Map,this._seqCounter=0,this._getKey=e,this._logger=t}_compareNodes(e,t){let n=e.node.serial,r=t.node.serial;return n===void 0&&r===void 0?e.insertSeq-t.insertSeq:n===void 0?1:r===void 0||n<r?-1:n>r?1:e.insertSeq-t.insertSeq}_insertSorted(e){if(e.node.serial===void 0){this._sortedList.push(e);return}let t=0,n=this._sortedList.length;for(;t<n;){let r=t+n>>>1,i=this._sortedList[r];if(!i)break;this._compareNodes(i,e)<=0?t=r+1:n=r}this._sortedList.splice(t,0,e)}_removeSorted(e){let t=this._sortedList.indexOf(e);t!==-1&&this._sortedList.splice(t,1)}_addToParentIndex(e,t){let n=this._parentIndex.get(e);n||(n=new Set,this._parentIndex.set(e,n)),n.add(t)}_removeFromParentIndex(e,t){let n=this._parentIndex.get(e);n&&(n.delete(t),n.size===0&&this._parentIndex.delete(e))}_getSiblingGroup(e){let t=this._nodeIndex.get(e);if(!t)return[];let n=t.node,r=new Set([n.msgId]);for(;n.forkOf&&!r.has(n.forkOf);){let e=this._nodeIndex.get(n.forkOf);if(!e||e.node.parentId!==n.parentId)break;n=e.node,r.add(n.msgId)}let i=n.parentId,a=n.msgId,o=[],s=this._parentIndex.get(i);if(s)for(let e of s){let t=this._nodeIndex.get(e);t&&this._isSiblingOf(t.node,a)&&o.push(t)}return o.sort((e,t)=>this._compareNodes(e,t)),o.map(e=>e.node)}_isSiblingOf(e,t){if(e.msgId===t)return!0;let n=e,r=new Set([n.msgId]);for(;n.forkOf;){if(n.forkOf===t)return!0;if(r.has(n.forkOf))break;let e=this._nodeIndex.get(n.forkOf);if(!e)break;n=e.node,r.add(n.msgId)}return!1}_getGroupRoot(e){let t=this._nodeIndex.get(e);if(!t)return e;let n=t.node,r=new Set([n.msgId]);for(;n.forkOf&&!r.has(n.forkOf);){let e=this._nodeIndex.get(n.forkOf);if(!e||e.node.parentId!==n.parentId)break;n=e.node,r.add(n.msgId)}return n.msgId}flatten(){let e=[],t=new Set,n=new Map;for(let r of this._sortedList){let i=r.node,{msgId:a,parentId:o}=i;if(o!==void 0&&!t.has(o))continue;let s=this._getSiblingGroup(a);if(s.length>1){let e=this._getGroupRoot(a),t=n.get(e);if(t===void 0){let r=this._selections.get(e)??s.length-1,i=s[Math.max(0,Math.min(r,s.length-1))];if(!i)break;t=i.msgId,n.set(e,t)}if(a!==t)continue}t.add(a),e.push(i.message)}return e}getSiblings(e){return this._getSiblingGroup(e).map(e=>e.message)}hasSiblings(e){return this._getSiblingGroup(e).length>1}getSelectedIndex(e){let t=this._getSiblingGroup(e);if(t.length<=1)return 0;let n=this._getGroupRoot(e),r=this._selections.get(n);return r===void 0?t.length-1:Math.max(0,Math.min(r,t.length-1))}select(e,t){this._logger.debug(`ConversationTree.select();`,{msgId:e,index:t});let n=this._getSiblingGroup(e);if(n.length<=1)return;let r=this._getGroupRoot(e);this._selections.set(r,Math.max(0,Math.min(t,n.length-1)))}getNode(e){return this._nodeIndex.get(e)?.node}getNodeByKey(e){let t=this._codecKeyIndex.get(e);if(t)return this._nodeIndex.get(t)?.node}getHeaders(e){return this._nodeIndex.get(e)?.node.headers}upsert(e,t,n,r){let i=n[`x-ably-parent`]??void 0,a=n[`x-ably-fork-of`]??void 0;this._codecKeyIndex.set(this._getKey(t),e);let o=this._nodeIndex.get(e);if(o){o.node.message=t,Object.keys(n).length>0&&(o.node.headers={...n}),r&&!o.node.serial&&(this._logger.debug(`ConversationTree.upsert(); promoting serial`,{msgId:e,serial:r}),o.node.serial=r,this._removeSorted(o),this._insertSorted(o));return}this._logger.trace(`ConversationTree.upsert(); inserting new node`,{msgId:e,parentId:i,forkOf:a});let s={node:{message:t,msgId:e,parentId:i,forkOf:a,headers:{...n},serial:r},insertSeq:this._seqCounter++};this._nodeIndex.set(e,s),this._addToParentIndex(i,e),this._insertSorted(s)}delete(e){let t=this._nodeIndex.get(e);if(!t)return;this._logger.debug(`ConversationTree.delete();`,{msgId:e});let{node:n}=t,r=this._getKey(n.message);this._codecKeyIndex.get(r)===e&&this._codecKeyIndex.delete(r),this._removeFromParentIndex(n.parentId,e),this._removeSorted(t),this._nodeIndex.delete(e),this._selections.delete(e)}},V=(e,t)=>new B(e,t),H=e=>{let t=[...e.rawMessages].toReversed(),n=e.codec.createDecoder(),r=new Map,i=e.codec.createAccumulator(),a=0,o=new Map,s=new Map;for(let c of t){let t=n.decode(c),l=N(c),u=l[_],d=l[v],f=c.serial;if(u){let n=r.get(u);if(n||(n={accumulator:e.codec.createAccumulator(),firstSeen:a++,msgHeaders:new Map,msgSerials:new Map},r.set(u,n)),d){let e=n.msgHeaders.get(d);e?Object.keys(l).length>0&&Object.assign(e,l):(n.msgHeaders.set(d,{...l}),f&&n.msgSerials.set(d,f))}n.accumulator.processOutputs(t)}else i.processOutputs(t);for(let n of t)if(n.kind===`message`){let t=e.getMessageKey(n.message),r=o.get(t);r?Object.keys(l).length>0&&Object.assign(r,l):(o.set(t,{...l}),f&&s.set(t,f))}}let c=[];for(let t of i.completedMessages){let n=e.getMessageKey(t);c.push({message:t,headers:o.get(n)??{},serial:s.get(n)??``})}let l=[...r.values()].toSorted((e,t)=>e.firstSeen-t.firstSeen);for(let t of l){let n=new Set,r=new Map,i=new Map;for(let a of t.accumulator.completedMessages){let t=e.getMessageKey(a),c=o.get(t);if(c){r.set(t,c);let e=s.get(t);e&&i.set(t,e);let a=c[v];a&&n.add(a)}}let a=[...t.msgHeaders.entries()].filter(([e])=>!n.has(e)),l=0;for(let n of t.accumulator.completedMessages){let o=e.getMessageKey(n),s=a[l];if(!r.has(o)&&s){let[e,n]=s;r.set(o,n);let a=t.msgSerials.get(e);a&&i.set(o,a),l++}}for(let n of t.accumulator.completedMessages){let t=e.getMessageKey(n);c.push({message:n,headers:r.get(t)??{},serial:i.get(t)??``})}}return c.toReversed()},U=async(e,t,n)=>{e.rawMessages.push(...t.items),e.lastAblyPage=t;let r=H(e).length;for(;r<e.returnedCount+n&&t.hasNext();){e.logger.debug(`decodeHistory.fetchUntilLimit(); fetching next page`,{collected:e.rawMessages.length,decoded:r});let n=await t.next();if(!n)break;t=n,e.rawMessages.push(...n.items),e.lastAblyPage=n,r=H(e).length}},W=(e,t)=>{let n=H(e),r=n.slice(e.returnedCount,e.returnedCount+t),i=[...r].toReversed();e.returnedCount+=r.length;let a=n.length>e.returnedCount,o=e.lastAblyPage?.hasNext()??!1,s=e.rawMessages.length-e.returnedRawCount>0?e.rawMessages.slice(e.returnedRawCount).toReversed():[];return e.returnedRawCount=e.rawMessages.length,{items:i.map(e=>e.message),itemHeaders:i.map(e=>e.headers),itemSerials:i.map(e=>e.serial),rawMessages:s,hasNext:()=>a||o,next:async()=>{if(a)return W(e,t);if(!o||!e.lastAblyPage)return;let n=await e.lastAblyPage.next();if(n)return await U(e,n,t),W(e,t)}}},G=async(e,t,n,r)=>{let i=n?.limit??100,a={codec:t,rawMessages:[],returnedCount:0,returnedRawCount:0,lastAblyPage:void 0,getMessageKey:t.getMessageKey.bind(t),logger:r};r.trace(`decodeHistory();`,{limit:i});let o=i*10;return await e.attach(),await U(a,await e.history({untilAttach:!0,limit:o}),i),W(a,i)},K=e=>{let t={[b]:e.role,[_]:e.turnId,[v]:e.msgId};return e.turnClientId!==void 0&&(t[y]=e.turnClientId),e.parent&&(t[S]=e.parent),e.forkOf&&(t[re]=e.forkOf),t},ce=class{constructor(e,t){this._turns=new Map,this._isTerminal=e,this._logger=t}createStream(e){this._logger.trace(`StreamRouter.createStream();`,{turnId:e});let t={},r=new ReadableStream({start(e){t.controller=e}});if(!t.controller)throw new n.ErrorInfo(`unable to create stream; ReadableStream start() was not called synchronously`,d.TransportSubscriptionError,500);return this._turns.set(e,{controller:t.controller,turnId:e}),r}closeStream(e){let t=this._turns.get(e);if(!t)return!1;this._logger.debug(`StreamRouter.closeStream(); closing stream`,{turnId:e});try{t.controller.close()}catch{}return this._turns.delete(e),!0}route(e,t){let n=this._turns.get(e);if(!n)return!1;try{n.controller.enqueue(t)}catch{return this._turns.delete(e),!1}return this._isTerminal(t)&&this.closeStream(e),!0}has(e){return this._turns.has(e)}},le=(e,t)=>new ce(e,t),ue=()=>{},de=class{constructor(e){if(this._ownMsgIds=new Set,this._ownTurnIds=new Set,this._turnClientIds=new Map,this._turnMsgIds=new Map,this._turnObservers=new Map,this._ablyMessages=[],this._withheldKeys=new Set,this._closed=!1,this._channel=e.channel,this._codec=e.codec,this._clientId=e.clientId,this._api=e.api??`/api/chat`,this._credentials=e.credentials,this._headersFn=typeof e.headers==`function`?e.headers:e.headers?()=>e.headers:void 0,this._bodyFn=typeof e.body==`function`?e.body:e.body?()=>e.body:void 0,this._fetchFn=e.fetch??globalThis.fetch.bind(globalThis),this._logger=(e.logger??ae({logLevel:A.Silent})).withContext({component:`ClientTransport`}),this._emitter=new k(this._logger),this._tree=V(this._codec.getMessageKey.bind(this._codec),this._logger),this._router=le(this._codec.isTerminal.bind(this._codec),this._logger),this._decoder=this._codec.createDecoder(),e.messages){let t;for(let n of e.messages){let e=this._codec.getMessageKey(n),r={};t&&(r[S]=t),this._tree.upsert(e,n,r),t=e}this._emitter.emit(`message`)}this._onMessage=e=>{this._handleMessage(e)},this._attachPromise=this._channel.subscribe(this._onMessage)}_handleMessage(e){if(!this._closed){this._ablyMessages.push(e),this._emitter.emit(`ably-message`);try{if(e.name===`x-ably-turn-start`){let t=N(e),n=t[_],r=t[`x-ably-turn-client-id`]??``;n&&(this._turnClientIds.set(n,r),this._emitter.emit(`turn`,{type:w,turnId:n,clientId:r}));return}if(e.name===`x-ably-turn-end`){let t=N(e),n=t[_],r=t[`x-ably-turn-client-id`]??``,i=t[`x-ably-turn-reason`]??`complete`;if(n){this._router.closeStream(n),this._turnObservers.delete(n),this._turnClientIds.delete(n);let e=this._turnMsgIds.get(n);if(e){for(let t of e)this._ownMsgIds.delete(t);this._turnMsgIds.delete(n)}this._ownTurnIds.delete(n),this._emitter.emit(`turn`,{type:T,turnId:n,clientId:r,reason:i})}return}let t=this._decoder.decode(e),n=N(e),r=e.serial,i=n[_];i&&this._updateTurnObserverHeaders(i,n,r);for(let i of t)i.kind===`message`?this._handleMessageOutput(i.message,n,r,e.action):this._handleEventOutput(i,n)}catch(e){let t=e instanceof n.ErrorInfo?e:void 0;this._emitter.emit(`error`,new n.ErrorInfo(`unable to process channel message; ${e instanceof Error?e.message:String(e)}`,d.TransportSubscriptionError,500,t))}}}_handleMessageOutput(e,t,n,r){let i=t[v];if(i&&this._ownMsgIds.has(i)){this._upsertAndNotify(e,t,n);return}r===`message.create`&&this._upsertAndNotify(e,t,n)}_handleEventOutput(e,t){if(e.kind!==`event`)return;let n=e.event,r=t[_];if(r){if(this._router.route(r,n)){this._accumulateAndEmit(r,e),this._codec.isTerminal(n)&&this._turnObservers.delete(r);return}this._ownTurnIds.has(r)&&!this._turnObservers.has(r)||(this._accumulateAndEmit(r,e),this._codec.isTerminal(n)&&this._turnObservers.delete(r))}}_upsertAndNotify(e,t,n){let r=this._codec.getMessageKey(e),i=t[`x-ably-msg-id`]??r;this._tree.upsert(i,e,t,n),this._emitter.emit(`message`)}_updateTurnObserverHeaders(e,t,n){let r=this._turnObservers.get(e);r?(Object.keys(t).length>0&&Object.assign(r.headers,t),n!==void 0&&(r.serial=n)):this._turnObservers.set(e,{headers:{...t},serial:n,accumulator:this._codec.createAccumulator()})}_accumulateAndEmit(e,t){let n=this._turnObservers.get(e);if(!n)return;n.accumulator.processOutputs([t]);let r=n.accumulator.messages;if(r.length===0)return;let i;try{i=structuredClone(r.at(-1))}catch{i=r.at(-1)}i&&(this._tree.upsert(n.headers[`x-ably-msg-id`]??this._codec.getMessageKey(i),i,{...n.headers},n.serial),this._emitter.emit(`message`))}async _publishCancel(e){this._logger.trace(`ClientTransport._publishCancel();`,{filter:e});let t={};e.turnId?t[ee]=e.turnId:e.own?t[x]=`true`:e.clientId?t[ne]=e.clientId:e.all&&(t[te]=`true`),await this._channel.publish({name:C,extras:{headers:t}})}_closeMatchingTurnStreams(e){if(e.all)for(let e of this._ownTurnIds)this._router.closeStream(e);else if(e.own)for(let e of this._ownTurnIds)this._router.closeStream(e);else if(e.clientId)for(let[t,n]of this._turnClientIds)n===e.clientId&&this._router.closeStream(t);else e.turnId&&this._router.closeStream(e.turnId)}_getMatchingTurnIds(e){let t=new Set;if(e.all)for(let e of this._turnClientIds.keys())t.add(e);else if(e.own)for(let[e,n]of this._turnClientIds)n===this._clientId&&t.add(e);else if(e.clientId)for(let[n,r]of this._turnClientIds)r===e.clientId&&t.add(n);else e.turnId&&this._turnClientIds.has(e.turnId)&&t.add(e.turnId);return t}_getMessagesWithHeaders(){return this._tree.flatten().map(e=>({message:e,headers:this.getMessageHeaders(e)}))}_getHistoryBefore(e){let t=this._getMessagesWithHeaders(),n=t.findIndex(t=>t.headers?.[v]===e);return n===-1?t:t.slice(0,n)}_processHistoryPage(e){for(let[t,n]of e.items.entries()){let r=e.itemHeaders?.[t]??{},i=e.itemSerials?.[t],a=this._codec.getMessageKey(n),o=r[`x-ably-msg-id`]??a;this._tree.upsert(o,n,r,i)}this._emitter.emit(`message`),e.rawMessages&&e.rawMessages.length>0&&(this._ablyMessages.unshift(...e.rawMessages),this._emitter.emit(`ably-message`))}async _loadUntilVisible(e,t,n){this._processHistoryPage(e);let r=e,i=()=>{let e=0;for(let t of this._tree.flatten())n.has(this._codec.getMessageKey(t))||e++;return e};for(;i()<t&&r.hasNext();){let e=await r.next();if(!e)break;this._processHistoryPage(e),r=e}return{newVisible:this._tree.flatten().filter(e=>!n.has(this._codec.getMessageKey(e))),lastPage:r}}_releaseWithheld(e){for(let t of e)this._withheldKeys.delete(this._codec.getMessageKey(t));e.length>0&&this._emitter.emit(`message`)}async send(e,t){if(this._closed||(await this._attachPromise,this._closed))throw new n.ErrorInfo(`unable to send; transport is closed`,d.TransportClosed,400);this._logger.trace(`ClientTransport.send();`);let r=Array.isArray(e)?e:[e],i=crypto.randomUUID();this._ownTurnIds.add(i);let a=new Set,o=[],s=this._getMessagesWithHeaders(),c;if(t?.parent===void 0&&!t?.forkOf){let e=this._tree.flatten();if(e.length>0){let t=e.at(-1);if(t){let e=this._codec.getMessageKey(t);c=this._tree.getNodeByKey(e)?.msgId??e}}}let l=t?.parent===void 0?c:t.parent;for(let e of r){let n=crypto.randomUUID();this._ownMsgIds.add(n),a.add(n);let r=t?.parent===void 0?c:t.parent??void 0,s=K({role:`user`,turnId:i,msgId:n,turnClientId:this._clientId,parent:r,forkOf:t?.forkOf});this._upsertAndNotify(e,s);let l={[v]:n,[b]:`user`};r&&(l[S]=r),o.push({message:e,headers:l}),t?.parent===void 0&&!t?.forkOf&&(c=n)}this._turnMsgIds.set(i,a);let u=this._router.createStream(i),f=this._headersFn?.()??{},p={...this._bodyFn?.()??{},history:s,...t?.body,turnId:i,clientId:this._clientId,messages:o,...t?.forkOf!==void 0&&{forkOf:t.forkOf},...l!==void 0&&{parent:l}},m={...f,...t?.headers};return this._fetchFn(this._api,{method:`POST`,headers:{"Content-Type":`application/json`,...m},body:JSON.stringify(p),...this._credentials?{credentials:this._credentials}:{}}).then(e=>{e.ok||(this._emitter.emit(`error`,new n.ErrorInfo(`unable to send; HTTP POST to ${this._api} returned ${String(e.status)} ${e.statusText}`,d.TransportSendFailed,e.status)),this._router.closeStream(i))}).catch(e=>{let t=e instanceof n.ErrorInfo?e:void 0;this._emitter.emit(`error`,new n.ErrorInfo(`unable to send; HTTP POST to ${this._api} failed: ${e instanceof Error?e.message:String(e)}`,d.TransportSendFailed,500,t)),this._router.closeStream(i)}),{stream:u,turnId:i,cancel:async()=>this.cancel({turnId:i})}}async regenerate(e,t){this._logger.trace(`ClientTransport.regenerate();`,{messageId:e});let n=this._tree.getNode(e)?.parentId;return this.send([],{...t,body:{history:this._getHistoryBefore(e),...t?.body},forkOf:e,parent:n})}async edit(e,t,n){this._logger.trace(`ClientTransport.edit();`,{messageId:e});let r=this._tree.getNode(e)?.parentId;return this.send(t,{...n,body:{history:this._getHistoryBefore(e),...n?.body},forkOf:e,parent:r})}async cancel(e){if(this._closed)return;let t=e??{own:!0};this._logger.debug(`ClientTransport.cancel();`,{filter:t}),await this._publishCancel(t),this._closeMatchingTurnStreams(t)}async waitForTurn(e){if(this._closed)return;let t=e??{own:!0},n=this._getMatchingTurnIds(t);if(n.size!==0)return this._logger.debug(`ClientTransport.waitForTurn();`,{turnIds:[...n]}),new Promise(e=>{let t=r=>{r.type===`x-ably-turn-end`&&(n.delete(r.turnId),n.size===0&&(this._emitter.off(`turn`,t),e()))};this._emitter.on(`turn`,t)})}on(e,t){if(this._closed)return ue;let n=t;return this._emitter.on(e,n),()=>{this._emitter.off(e,n)}}getTree(){return this._tree}getActiveTurnIds(){let e=new Map;for(let[t,n]of this._turnClientIds){let r=e.get(n);r||(r=new Set,e.set(n,r)),r.add(t)}return e}getMessageHeaders(e){let t=this._codec.getMessageKey(e);return this._tree.getNodeByKey(t)?.headers}getMessages(){return this._withheldKeys.size===0?this._tree.flatten():this._tree.flatten().filter(e=>!this._withheldKeys.has(this._codec.getMessageKey(e)))}getMessagesWithHeaders(){return this._getMessagesWithHeaders()}getAblyMessages(){return[...this._ablyMessages]}async history(e){if(this._closed)throw new n.ErrorInfo(`unable to load history; transport is closed`,d.TransportClosed,400);this._logger.trace(`ClientTransport.history();`,{limit:e?.limit});let t=e?.limit??100,r=new Set(this._tree.flatten().map(e=>this._codec.getMessageKey(e))),i=await G(this._channel,this._codec,e,this._logger),a=await this._loadUntilVisible(i,t,r);i=a.lastPage;let o=a.newVisible;for(let e of o)this._withheldKeys.add(this._codec.getMessageKey(e));let s=o.slice(-t),c=o.slice(0,-t);this._releaseWithheld(s);let l=e=>({items:e,hasNext:()=>c.length>0||i.hasNext(),next:async()=>{if(c.length>0){let e=c.splice(-t,t);return this._releaseWithheld(e),l(e)}if(!i.hasNext())return;let e=await i.next();if(!e)return;let n=new Set(r);for(let e of this._tree.flatten())n.add(this._codec.getMessageKey(e));let a=await this._loadUntilVisible(e,t,n);i=a.lastPage;let o=a.newVisible;for(let e of o)this._withheldKeys.add(this._codec.getMessageKey(e));let s=o.splice(-t,t);if(c.push(...o),this._releaseWithheld(s),s.length!==0)return l(s)}});return l(s)}async close(e){if(!this._closed){if(this._closed=!0,this._logger.info(`ClientTransport.close();`),e?.cancel){try{await this._publishCancel(e.cancel)}catch{}this._closeMatchingTurnStreams(e.cancel)}this._channel.unsubscribe(this._onMessage);for(let e of this._ownTurnIds)this._router.closeStream(e);this._turnObservers.clear(),this._emitter.off(),this._ownTurnIds.clear(),this._ownMsgIds.clear(),this._turnMsgIds.clear(),this._turnClientIds.clear(),this._withheldKeys.clear(),this._ablyMessages.length=0}}},fe=e=>new de(e),q=e=>L({type:`dynamic-tool`,toolCallId:e.toolCallId,toolName:e.toolName,title:e.title,providerExecuted:e.providerExecuted}),J=class{constructor(e){this._activeIndex=new Map,this._partType=e}start(e,t,n){this._activeIndex.set(e,t.parts.length),t.parts.push({type:this._partType,text:``}),n.set(e,`streaming`)}delta(e,t,n){let r=this._activeIndex.get(e);if(r===void 0)return;let i=t.parts[r];i?.type===this._partType&&(i.text+=n)}end(e,t){t.set(e,`finished`),this._activeIndex.delete(e)}reset(){this._activeIndex=new Map}},pe=class{constructor(){this._messageList=[],this._activeMessages=new Map}get messages(){return this._messageList}get completedMessages(){let e=new Set;for(let t of this._activeMessages.values())e.add(t.message);return this._messageList.filter(t=>!e.has(t))}get hasActiveStream(){for(let e of this._activeMessages.values())for(let t of e.streamStatus.values())if(t===`streaming`)return!0;return!1}processOutputs(e){for(let t of e)t.kind===`message`?this._messageList.push(t.message):t.messageId!==void 0&&this._processEvent(t.event,t.messageId)}updateMessage(e){let t=this._messageList.findIndex(t=>t.id===e.id);t!==-1&&(this._messageList[t]=e)}_ensureActiveMessage(e){let t=this._activeMessages.get(e);if(t)return t;let n={message:{id:e,role:`assistant`,parts:[]},textStreams:new J(`text`),reasoningStreams:new J(`reasoning`),toolTrackers:{},streamStatus:new Map};return this._activeMessages.set(e,n),this._messageList.push(n.message),n}_getToolPart(e,t){let n=t.toolTrackers[e];if(!n)return;let r=t.message.parts[n.partIndex];if(r?.type===`dynamic-tool`)return{tracker:n,part:r}}_processEvent(e,t){switch(e.type){case`start`:case`start-step`:case`finish-step`:case`finish`:case`abort`:case`error`:case`message-metadata`:this._processLifecycle(e,t);break;case`text-start`:case`text-delta`:case`text-end`:case`reasoning-start`:case`reasoning-delta`:case`reasoning-end`:this._processTextOrReasoning(e,t);break;case`tool-input-start`:case`tool-input-delta`:case`tool-input-available`:case`tool-input-error`:this._processToolInput(e,t);break;case`tool-output-available`:case`tool-output-error`:case`tool-output-denied`:case`tool-approval-request`:this._processToolOutput(e,t);break;case`file`:case`source-url`:case`source-document`:this._processContentPart(e,t);break;default:if(e.type.startsWith(`data-`)){if(e.transient)break;let n=this._ensureActiveMessage(t),r=L({type:e.type,id:e.id,data:e.data});if(e.id!==void 0){let t=n.message.parts.findIndex(t=>t.type===e.type&&`id`in t&&t.id===e.id);if(t!==-1){n.message.parts[t]=r;break}}n.message.parts.push(r)}break}}_processLifecycle(e,t){switch(e.type){case`start`:{let n=this._ensureActiveMessage(t);e.messageId&&(n.message.id=e.messageId),e.messageMetadata!==void 0&&(n.message.metadata=e.messageMetadata);break}case`start-step`:this._ensureActiveMessage(t).message.parts.push({type:`step-start`});break;case`finish-step`:{let e=this._activeMessages.get(t);e&&(e.textStreams.reset(),e.reasoningStreams.reset());break}case`finish`:{let n=this._activeMessages.get(t);n&&e.messageMetadata!==void 0&&(n.message.metadata=e.messageMetadata),this._activeMessages.delete(t);break}case`abort`:{let e=this._activeMessages.get(t);if(e)for(let[t,n]of e.streamStatus)n===`streaming`&&e.streamStatus.set(t,`aborted`);this._activeMessages.delete(t);break}case`error`:break;case`message-metadata`:{let n=this._activeMessages.get(t);n&&e.messageMetadata!==void 0&&(n.message.metadata=e.messageMetadata);break}}}_processTextOrReasoning(e,t){let n=this._ensureActiveMessage(t);switch(e.type){case`text-start`:n.textStreams.start(e.id,n.message,n.streamStatus);break;case`text-delta`:n.textStreams.delta(e.id,n.message,e.delta);break;case`text-end`:n.textStreams.end(e.id,n.streamStatus);break;case`reasoning-start`:n.reasoningStreams.start(e.id,n.message,n.streamStatus);break;case`reasoning-delta`:n.reasoningStreams.delta(e.id,n.message,e.delta);break;case`reasoning-end`:n.reasoningStreams.end(e.id,n.streamStatus);break}}_processToolInput(e,t){switch(e.type){case`tool-input-start`:{let n=this._ensureActiveMessage(t),r=n.message.parts.length;n.message.parts.push({...q(e),state:`input-streaming`,input:void 0}),n.toolTrackers[e.toolCallId]={partIndex:r,inputText:``},n.streamStatus.set(e.toolCallId,`streaming`);break}case`tool-input-delta`:{let n=this._ensureActiveMessage(t),r=n.toolTrackers[e.toolCallId];if(!r)break;r.inputText+=e.inputTextDelta;let i;try{i=JSON.parse(r.inputText)}catch{i=void 0}let a=this._getToolPart(e.toolCallId,n);if(!a)break;n.message.parts[a.tracker.partIndex]={...q(a.part),state:`input-streaming`,input:i};break}case`tool-input-available`:{let n=this._ensureActiveMessage(t),r=this._getToolPart(e.toolCallId,n);if(!r)break;n.message.parts[r.tracker.partIndex]={...q(r.part),state:`input-available`,input:e.input},n.streamStatus.set(e.toolCallId,`finished`);break}case`tool-input-error`:{let n=this._ensureActiveMessage(t),r=this._getToolPart(e.toolCallId,n);if(r)n.message.parts[r.tracker.partIndex]={...q(r.part),state:`output-error`,input:e.input,errorText:e.errorText};else{let t=n.message.parts.length;n.message.parts.push({...q(e),state:`output-error`,input:e.input,errorText:e.errorText}),n.toolTrackers[e.toolCallId]={partIndex:t,inputText:``}}n.streamStatus.set(e.toolCallId,`finished`);break}}}_processToolOutput(e,t){let n=this._ensureActiveMessage(t),r=this._getToolPart(e.toolCallId,n);if(r)switch(e.type){case`tool-output-available`:n.message.parts[r.tracker.partIndex]=L({...q(r.part),state:`output-available`,input:r.part.input,output:e.output,preliminary:e.preliminary});break;case`tool-output-error`:n.message.parts[r.tracker.partIndex]={...q(r.part),state:`output-error`,input:r.part.input,errorText:e.errorText};break;case`tool-output-denied`:n.message.parts[r.tracker.partIndex]={...q(r.part),state:`output-denied`,input:r.part.input,approval:{id:``,approved:!1}};break;case`tool-approval-request`:n.message.parts[r.tracker.partIndex]={...q(r.part),state:`approval-requested`,input:r.part.input,approval:{id:e.approvalId}};break}}_processContentPart(e,t){let n=this._ensureActiveMessage(t);switch(e.type){case`file`:n.message.parts.push({type:`file`,mediaType:e.mediaType,url:e.url});break;case`source-url`:n.message.parts.push(L({type:`source-url`,sourceId:e.sourceId,url:e.url,title:e.title}));break;case`source-document`:n.message.parts.push(L({type:`source-document`,sourceId:e.sourceId,mediaType:e.mediaType,title:e.title,filename:e.filename}));break}}},me=()=>new pe,he=e=>[{kind:`event`,event:e}],ge=class{constructor(e,t={}){this._serialState=new Map,this._hooks=e,this._onStreamUpdate=t.onStreamUpdate,this._onStreamDelete=t.onStreamDelete,this._logger=t.logger?.withContext({component:`DecoderCore`})}decode(e){let t=e.action;this._logger?.trace(`DefaultDecoderCore.decode();`,{action:t,serial:e.serial,name:e.name});let n;switch(t){case`message.create`:{let t=this._toPayload(e);n=t.headers?.[`x-ably-stream`]===`true`?this._decodeStreamedCreate(t,e.serial):this._hooks.decodeDiscrete(t);break}case`message.append`:n=this._decodeAppend(e);break;case`message.update`:n=this._decodeUpdate(e);break;case`message.delete`:n=this._decodeDelete(e);break;default:return[]}let r=N(e)[v];if(r)for(let e of n)e.kind===`event`&&(e.messageId=r);return n}_toPayload(e){return{name:e.name??``,data:e.data,headers:N(e)}}_stringData(e){return typeof e.data==`string`?e.data:``}_invokeOnStreamUpdate(e){if(this._onStreamUpdate)try{this._onStreamUpdate(e)}catch(e){this._logger?.error(`DefaultDecoderCore._invokeOnStreamUpdate(); callback threw`,{error:e})}}_invokeOnStreamDelete(e,t){if(this._onStreamDelete)try{this._onStreamDelete(e,t)}catch(e){this._logger?.error(`DefaultDecoderCore._invokeOnStreamDelete(); callback threw`,{error:e})}}_decodeStreamedCreate(e,t){if(!t)return[];let n=e.headers?.[`x-ably-stream-id`]??``,r=e.headers??{},i={name:e.name,streamId:n,accumulated:``,headers:{...r},closed:!1};return this._serialState.set(t,i),this._logger?.debug(`DefaultDecoderCore._decodeStreamedCreate(); new stream`,{name:e.name,streamId:n,serial:t}),this._hooks.buildStartEvents(i)}_decodeAppend(e){let t=e.serial;if(!t)return[];let n=this._serialState.get(t);if(!n)return this._decodeUpdate(e);let r=N(e),i=typeof e.data==`string`?e.data:``,a=r[h],o=[];return i.length>0&&(n.accumulated+=i,o.push(...this._hooks.buildDeltaEvents(n,i))),a===`finished`&&!n.closed?(n.closed=!0,o.push(...this._hooks.buildEndEvents(n,r)),this._logger?.debug(`DefaultDecoderCore._decodeAppend(); stream finished`,{streamId:n.streamId})):a===`aborted`&&!n.closed&&(n.closed=!0,this._logger?.debug(`DefaultDecoderCore._decodeAppend(); stream aborted`,{streamId:n.streamId})),o}_decodeUpdate(e){let t=e.serial;if(!t)return[];let n=this._toPayload(e),r=n.headers??{},i=r[m]===`true`,a=r[h],o=this._serialState.get(t);if(!o)return this._decodeFirstContact(n,i,a,t);let s=this._stringData(e);if(s.startsWith(o.accumulated)){let e=s.slice(o.accumulated.length),t=[];return e.length>0&&(o.accumulated=s,t.push(...this._hooks.buildDeltaEvents(o,e))),a===`finished`&&!o.closed?(o.closed=!0,t.push(...this._hooks.buildEndEvents(o,r))):a===`aborted`&&!o.closed&&(o.closed=!0),t}return o.accumulated=s,o.headers={...r},this._invokeOnStreamUpdate(o),[]}_decodeFirstContact(e,t,n,r){if(!t)return this._hooks.decodeDiscrete(e);let i=e.headers?.[`x-ably-stream-id`]??``,a=e.headers??{},o=typeof e.data==`string`?e.data:``;this._logger?.debug(`DefaultDecoderCore._decodeFirstContact(); first-contact stream`,{name:e.name,streamId:i,serial:r});let s={name:e.name,streamId:i,accumulated:o,headers:{...a},closed:n===`finished`||n===`aborted`};this._serialState.set(r,s);let c=this._hooks.buildStartEvents(s);return o.length>0&&c.push(...this._hooks.buildDeltaEvents(s,o)),n===`finished`&&c.push(...this._hooks.buildEndEvents(s,a)),c}_decodeDelete(e){let t=e.serial;if(!t)return[];let n=this._serialState.get(t);return this._invokeOnStreamDelete(t,n),n&&(n.accumulated=``,n.closed=!0),this._logger?.debug(`DefaultDecoderCore._decodeDelete();`,{serial:t}),[]}},_e=(e,t={})=>new ge(e,t),ve=class{constructor(e){this._emitted=new Map,this._phases=e}ensurePhases(e,t){let n=this._getOrCreate(e),r=[];for(let e of this._phases)n.has(e.key)||(n.add(e.key),r.push(...e.build(t)));return r}markEmitted(e,t){this._getOrCreate(e).add(t)}resetPhase(e,t){this._emitted.get(e)?.delete(t)}clearScope(e){this._emitted.delete(e)}_getOrCreate(e){let t=this._emitted.get(e);return t||(t=new Set,this._emitted.set(e,t)),t}},ye=e=>new ve(e),Y=e=>{let t=R(e);return{...t,providerMetadata:()=>t.json(`providerMetadata`)}},X=e=>he(e),be=(e,t)=>e===`stop`||e===`length`||e===`content-filter`||e===`tool-calls`||e===`error`||e===`other`?e:t,Z=e=>e.startsWith(`data-`),xe=e=>{if(e)try{return JSON.parse(e)}catch{return e}},Se=e=>{let t=Y(e.headers);switch(e.name){case`text`:return L({type:`text-start`,id:e.streamId,providerMetadata:t.providerMetadata()});case`reasoning`:return L({type:`reasoning-start`,id:e.streamId,providerMetadata:t.providerMetadata()});case`tool-input`:return L({type:`tool-input-start`,toolCallId:e.streamId,toolName:t.strOr(`toolName`,``),dynamic:t.bool(`dynamic`),title:t.str(`title`),providerExecuted:t.bool(`providerExecuted`),providerMetadata:t.providerMetadata()});default:return{type:`text-start`,id:e.streamId}}},Ce=(e,t)=>{switch(e.name){case`text`:return{type:`text-delta`,id:e.streamId,delta:t};case`reasoning`:return{type:`reasoning-delta`,id:e.streamId,delta:t};case`tool-input`:return{type:`tool-input-delta`,toolCallId:e.streamId,inputTextDelta:t};default:return{type:`text-delta`,id:e.streamId,delta:t}}},we=(e,t)=>{let n=Y(t);switch(e.name){case`text`:return L({type:`text-end`,id:e.streamId,providerMetadata:n.providerMetadata()});case`reasoning`:return L({type:`reasoning-end`,id:e.streamId,providerMetadata:n.providerMetadata()});case`tool-input`:return L({type:`tool-input-available`,toolCallId:e.streamId,toolName:n.strOr(`toolName`,Y(e.headers).strOr(`toolName`,``)),input:xe(e.accumulated),providerMetadata:n.providerMetadata()});default:return{type:`text-end`,id:e.streamId}}},Te=()=>ye([{key:`start`,build:e=>[L({type:`start`,messageId:e.messageId})]},{key:`start-step`,build:()=>[{type:`start-step`}]}]),Q=(e,t,n)=>e.ensurePhases(t,n).map(e=>({kind:`event`,event:e})),Ee=(e,t,n)=>(n.markEmitted(t,`start`),X(L({type:`start`,messageId:e.str(`messageId`),messageMetadata:e.json(`messageMetadata`)}))),De=(e,t)=>(t.markEmitted(e,`start-step`),X({type:`start-step`})),Oe=(e,t)=>(t.resetPhase(e,`start-step`),X({type:`finish-step`})),ke=(e,t,n)=>(n.clearScope(t),X(L({type:`finish`,finishReason:be(e.str(`finishReason`),`stop`),messageMetadata:e.json(`messageMetadata`)}))),Ae=e=>X({type:`error`,errorText:typeof e==`string`?e:``}),je=(e,t,n)=>(n.clearScope(t),X(L({type:`abort`,reason:typeof e==`string`&&e?e:void 0}))),Me=e=>X({type:`message-metadata`,messageMetadata:e.json(`messageMetadata`)}),Ne=(e,t)=>X(L({type:`file`,url:typeof t==`string`?t:``,mediaType:e.strOr(`mediaType`,``),providerMetadata:e.providerMetadata()})),Pe=(e,t)=>X(L({type:`source-url`,sourceId:e.strOr(`sourceId`,``),url:typeof t==`string`?t:``,title:e.str(`title`),providerMetadata:e.providerMetadata()})),Fe=e=>X(L({type:`source-document`,sourceId:e.strOr(`sourceId`,``),mediaType:e.strOr(`mediaType`,``),title:e.strOr(`title`,``),filename:e.str(`filename`),providerMetadata:e.providerMetadata()})),Ie=(e,t)=>{let n=t;return X(L({type:`tool-input-error`,toolCallId:e.strOr(`toolCallId`,``),toolName:e.strOr(`toolName`,``),errorText:n?.errorText??``,input:n?.input,dynamic:e.bool(`dynamic`),title:e.str(`title`),providerExecuted:e.bool(`providerExecuted`),providerMetadata:e.providerMetadata()}))},Le=(e,t)=>{let n=t;return X(L({type:`tool-output-available`,toolCallId:e.strOr(`toolCallId`,``),output:n?.output,dynamic:e.bool(`dynamic`),providerExecuted:e.bool(`providerExecuted`),preliminary:e.bool(`preliminary`)}))},Re=(e,t)=>{let n=t;return X(L({type:`tool-output-error`,toolCallId:e.strOr(`toolCallId`,``),errorText:n?.errorText??``,dynamic:e.bool(`dynamic`),providerExecuted:e.bool(`providerExecuted`)}))},ze=e=>X({type:`tool-approval-request`,toolCallId:e.strOr(`toolCallId`,``),approvalId:e.strOr(`approvalId`,``)}),Be=e=>X({type:`tool-output-denied`,toolCallId:e.strOr(`toolCallId`,``)}),Ve=(e,t,n)=>X(L({type:e,data:n,id:t.str(`id`),transient:t.bool(`transient`)})),$=(e,t,n,r)=>{let i=Q(r,n,{messageId:e.str(`messageId`)});return i.push({kind:`event`,event:L({type:`tool-input-start`,toolCallId:e.strOr(`toolCallId`,``),toolName:e.strOr(`toolName`,``),dynamic:e.bool(`dynamic`),title:e.str(`title`),providerExecuted:e.bool(`providerExecuted`),providerMetadata:e.providerMetadata()})},{kind:`event`,event:L({type:`tool-input-available`,toolCallId:e.strOr(`toolCallId`,``),toolName:e.strOr(`toolName`,``),input:t,providerMetadata:e.providerMetadata()})}),i},He=e=>{let t=e.headers??{},n=Y(t),r=t[`x-ably-role`]??`user`,i=n.str(`messageId`)??``,a;switch(e.name){case`text`:a={type:`text`,text:typeof e.data==`string`?e.data:``};break;case`file`:a={type:`file`,mediaType:n.strOr(`mediaType`,``),url:typeof e.data==`string`?e.data:``};break;default:Z(e.name)&&(a=L({type:e.name,id:n.str(`id`),data:e.data}));break}return a?[{kind:`message`,message:{id:i,role:r,parts:[a]}}]:[]},Ue=(e,t)=>(e===`text`||e===`file`||Z(e))&&`x-ably-role`in t,We=(e,t)=>{let n=e.headers??{},r=Y(n),i=n[`x-ably-turn-id`]??``;if(Ue(e.name,n))return He(e);if(e.name===`tool-input`)return $(r,e.data,i,t);switch(e.name){case`start`:return Ee(r,i,t);case`start-step`:return De(i,t);case`finish-step`:return Oe(i,t);case`finish`:return ke(r,i,t);case`error`:return Ae(e.data);case`abort`:return je(e.data,i,t);case`message-metadata`:return Me(r);case`file`:return Ne(r,e.data);case`source-url`:return Pe(r,e.data);case`source-document`:return Fe(r);case`tool-input-error`:return Ie(r,e.data);case`tool-output-available`:return Le(r,e.data);case`tool-output-error`:return Re(r,e.data);case`tool-approval-request`:return ze(r);case`tool-output-denied`:return Be(r);default:return Z(e.name)?Ve(e.name,r,e.data):[]}},Ge=e=>({buildStartEvents:t=>{let n=Q(e,t.headers[`x-ably-turn-id`]??``,{messageId:Y(t.headers).str(`messageId`)});return n.push({kind:`event`,event:Se(t)}),n},buildDeltaEvents:(e,t)=>X(Ce(e,t)),buildEndEvents:(e,t)=>X(we(e,t)),decodeDiscrete:t=>We(t,e)}),Ke=class{constructor(e={}){this._core=_e(Ge(Te()),e)}decode(e){return this._core.decode(e)}},qe=(e={})=>new Ke(e),Je=class{constructor(e,t={}){this._trackers=new Map,this._pending=[],this._closed=!1,this._writer=e,this._defaultClientId=t.clientId,this._defaultExtras=t.extras,this._onMessageHook=t.onMessage??(()=>{}),this._logger=t.logger?.withContext({component:`EncoderCore`})}async publishDiscrete(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.publishDiscrete();`,{name:e.name});let n=this._buildDiscreteMessage(e,t);return this._writer.publish(n)}async publishDiscreteBatch(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.publishDiscreteBatch();`,{count:e.length});let n=e.map(e=>this._buildDiscreteMessage(e,t));return this._writer.publish(n)}async startStream(e,t,r){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.startStream();`,{name:t.name,streamId:e});let i=this._buildHeaders(t.headers??{},r);i[m]=`true`,i[h]=`streaming`,i[g]=e;let a=this._resolveClientId(r),o={name:t.name,data:t.data,extras:{headers:i},...a?{clientId:a}:{}};this._invokeOnMessage(o);let s=(await this._writer.publish(o)).serials[0];if(!s)throw new n.ErrorInfo(`unable to start stream; no serial returned for stream '${t.name}' (streamId: ${e})`,d.BadRequest,400);this._trackers.set(e,{serial:s,name:t.name,streamId:e,accumulated:t.data,persistentHeaders:i,aborted:!1}),this._logger?.debug(`DefaultEncoderCore.startStream(); stream started`,{name:t.name,streamId:e,serial:s})}appendStream(e,t){this._assertNotClosed();let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to append to stream; no active stream for streamId '${e}'`,d.InvalidArgument,400);r.accumulated+=t;let i={serial:r.serial,data:t,extras:{headers:{...r.persistentHeaders}}};this._invokeOnMessage(i);let a=this._writer.appendMessage(i);this._pending.push({promise:a,streamId:e})}async closeStream(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.closeStream();`,{streamId:e});let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to close stream; no active stream for streamId '${e}'`,d.InvalidArgument,400);r.accumulated+=t.data;let i=this._buildClosingHeaders(r,t.headers??{});i[h]=`finished`;let a={serial:r.serial,data:t.data,extras:{headers:i}};this._invokeOnMessage(a);let o=this._writer.appendMessage(a);this._pending.push({promise:o,streamId:e}),await this._flushPending(),this._logger?.debug(`DefaultEncoderCore.closeStream(); stream closed`,{streamId:e})}async abortStream(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.abortStream();`,{streamId:e});let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to abort stream; no active stream for streamId '${e}'`,d.InvalidArgument,400);r.aborted=!0;let i=this._buildClosingHeaders(r,{},t);i[h]=`aborted`;let a={serial:r.serial,data:``,extras:{headers:i}};this._invokeOnMessage(a);let o=this._writer.appendMessage(a);this._pending.push({promise:o,streamId:e}),await this._flushPending(),this._logger?.debug(`DefaultEncoderCore.abortStream(); stream aborted`,{streamId:e})}async abortAllStreams(e){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.abortAllStreams();`,{streamCount:this._trackers.size});for(let t of this._trackers.values()){t.aborted=!0;let n=this._buildClosingHeaders(t,{},e);n[h]=`aborted`;let r={serial:t.serial,data:``,extras:{headers:n}};this._invokeOnMessage(r);let i=this._writer.appendMessage(r);this._pending.push({promise:i,streamId:t.streamId})}await this._flushPending()}async _flushPending(){if(this._flushPromise)return this._flushPromise;let e=this._pending;if(this._pending=[],e.length!==0){this._logger?.trace(`DefaultEncoderCore._flushPending();`,{count:e.length}),this._flushPromise=this._doFlush(e);try{await this._flushPromise}finally{this._flushPromise=void 0}}}async _doFlush(e){let t=await Promise.allSettled(e.map(async e=>e.promise)),r=new Set;for(let[n,i]of t.entries()){let t=e[n];t&&i.status===`rejected`&&r.add(t.streamId)}if(r.size===0){this._logger?.debug(`DefaultEncoderCore._flushPending(); all appends succeeded`);return}this._logger?.warn(`DefaultEncoderCore._flushPending(); recovering failed appends`,{failedStreams:[...r]});let i=[];for(let e of r){let t=this._trackers.get(e);if(!t)continue;let n=t.aborted?`aborted`:`finished`,r={serial:t.serial,data:t.accumulated,extras:{headers:{...t.persistentHeaders,[h]:n}}};try{await this._writer.updateMessage(r)}catch(t){i.push({streamId:e,error:t})}}if(i.length>0){let e=i.map(e=>e.streamId).join(`, `);throw this._logger?.error(`DefaultEncoderCore._flushPending(); recovery failed`,{failedStreams:e}),new n.ErrorInfo(`unable to flush pending appends; recovery failed for stream(s): ${e}`,d.EncoderRecoveryFailed,500)}}async close(){if(!this._closed){this._logger?.trace(`DefaultEncoderCore.close();`),this._closed=!0;try{await this._flushPending()}finally{this._trackers.clear()}this._logger?.debug(`DefaultEncoderCore.close(); encoder closed`)}}_invokeOnMessage(e){try{this._onMessageHook(e)}catch(e){this._logger?.error(`DefaultEncoderCore._invokeOnMessage(); hook threw`,{error:e})}}_assertNotClosed(){if(this._closed)throw new n.ErrorInfo(`unable to write to encoder; encoder has been closed`,d.InvalidArgument,400)}_resolveClientId(e){return e?.clientId??this._defaultClientId}_buildHeaders(e,t){let n={...P(this._defaultExtras?.headers,t?.extras?.headers),...e};return t?.messageId!==void 0&&(n[v]=t.messageId),n}_buildDiscreteMessage(e,t){let n=this._buildHeaders(e.headers??{},t);n[m]=`false`;let r=this._resolveClientId(t),i={name:e.name,data:e.data,extras:{headers:n,...e.ephemeral?{ephemeral:!0}:{}},...r?{clientId:r}:{}};return this._invokeOnMessage(i),i}_buildClosingHeaders(e,t,n){let r={...e.persistentHeaders},i=P(this._defaultExtras?.headers,n?.extras?.headers);return Object.assign(r,i),Object.assign(r,t),r}},Ye=(e,t={})=>new Je(e,t),Xe=class{constructor(e,t={}){this._aborted=!1,this._core=Ye(e,t)}async appendEvent(e,t){switch(e.type){case`text-start`:{let n=z().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.startStream(e.id,{name:`text`,data:``,headers:n},t);break}case`reasoning-start`:{let n=z().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.startStream(e.id,{name:`reasoning`,data:``,headers:n},t);break}case`tool-input-start`:{let n=z().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).bool(`dynamic`,e.dynamic).str(`title`,e.title).bool(`providerExecuted`,e.providerExecuted).json(`providerMetadata`,e.providerMetadata).build();await this._core.startStream(e.toolCallId,{name:`tool-input`,data:``,headers:n},t);break}case`text-delta`:this._core.appendStream(e.id,e.delta);break;case`reasoning-delta`:this._core.appendStream(e.id,e.delta);break;case`tool-input-delta`:this._core.appendStream(e.toolCallId,e.inputTextDelta);break;case`text-end`:{let t=z().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.closeStream(e.id,{name:`text`,data:``,headers:t});break}case`reasoning-end`:{let t=z().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.closeStream(e.id,{name:`reasoning`,data:``,headers:t});break}case`tool-input-available`:try{let t=z().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).json(`providerMetadata`,e.providerMetadata).build();await this._core.closeStream(e.toolCallId,{name:`tool-input`,data:``,headers:t})}catch(t){if(!(t instanceof n.ErrorInfo&&f(t,d.InvalidArgument)))throw t;let r=z().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).bool(`dynamic`,e.dynamic).str(`title`,e.title).bool(`providerExecuted`,e.providerExecuted).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`tool-input`,data:e.input,headers:r})}break;case`start`:{let n=z().str(`messageId`,e.messageId).json(`messageMetadata`,e.messageMetadata).build();await this._core.publishDiscrete({name:`start`,data:``,headers:n},t);break}case`start-step`:await this._core.publishDiscrete({name:`start-step`,data:``},t);break;case`finish-step`:await this._core.publishDiscrete({name:`finish-step`,data:``},t);break;case`finish`:{let n=z().str(`finishReason`,e.finishReason).json(`messageMetadata`,e.messageMetadata).build();await this._core.publishDiscrete({name:`finish`,data:``,headers:n},t);break}case`error`:await this._core.publishDiscrete({name:`error`,data:e.errorText},t);break;case`abort`:this._aborted=!0,await this._core.abortAllStreams(t),await this._core.publishDiscrete({name:`abort`,data:e.reason??``,headers:{[h]:`aborted`}},t);break;case`tool-input-error`:{let t=z().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).bool(`dynamic`,e.dynamic).str(`title`,e.title).bool(`providerExecuted`,e.providerExecuted).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`tool-input-error`,data:{errorText:e.errorText,input:e.input},headers:t});break}case`tool-output-available`:{let t=z().str(`toolCallId`,e.toolCallId).bool(`dynamic`,e.dynamic).bool(`providerExecuted`,e.providerExecuted).bool(`preliminary`,e.preliminary).build();await this._core.publishDiscrete({name:`tool-output-available`,data:{output:e.output},headers:t});break}case`tool-output-error`:{let t=z().str(`toolCallId`,e.toolCallId).bool(`dynamic`,e.dynamic).bool(`providerExecuted`,e.providerExecuted).build();await this._core.publishDiscrete({name:`tool-output-error`,data:{errorText:e.errorText},headers:t});break}case`tool-approval-request`:{let n=z().str(`toolCallId`,e.toolCallId).str(`approvalId`,e.approvalId).build();await this._core.publishDiscrete({name:`tool-approval-request`,data:``,headers:n},t);break}case`tool-output-denied`:{let n=z().str(`toolCallId`,e.toolCallId).build();await this._core.publishDiscrete({name:`tool-output-denied`,data:``,headers:n},t);break}case`file`:{let n=z().str(`mediaType`,e.mediaType).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`file`,data:e.url,headers:n},t);break}case`source-url`:{let n=z().str(`sourceId`,e.sourceId).str(`title`,e.title).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`source-url`,data:e.url,headers:n},t);break}case`source-document`:{let n=z().str(`sourceId`,e.sourceId).str(`mediaType`,e.mediaType).str(`title`,e.title).str(`filename`,e.filename).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`source-document`,data:``,headers:n},t);break}case`message-metadata`:{let n=z().json(`messageMetadata`,e.messageMetadata).build();await this._core.publishDiscrete({name:`message-metadata`,data:``,headers:n},t);break}default:if(e.type.startsWith(`data-`)){let n=z().str(`id`,e.id).bool(`transient`,e.transient).build(),r=e.transient===!0;await this._core.publishDiscrete({name:e.type,data:e.data,headers:n,ephemeral:r},t)}break}}async writeEvent(e,t){if(!e.type.startsWith(`data-`))throw new n.ErrorInfo(`unable to write event; only data-* chunk types are supported, got '${e.type}'`,d.InvalidArgument,400);let r=z().str(`id`,`id`in e?e.id:void 0).bool(`transient`,`transient`in e?e.transient:void 0).build(),i=`transient`in e&&e.transient===!0;return this._core.publishDiscrete({name:e.type,data:`data`in e?e.data:void 0,headers:r,ephemeral:i},t)}async writeMessages(e,t){let n=e.flatMap(e=>Ze(e));return this._core.publishDiscreteBatch(n,t)}async abort(e){this._aborted||(this._aborted=!0,await this._core.abortAllStreams(),await this._core.publishDiscrete({name:`abort`,data:e??``,headers:{[h]:`aborted`}}))}async close(){await this._core.close()}},Ze=e=>{let t=e.id,n=[];for(let i of e.parts)switch(i.type){case`text`:n.push({name:`text`,data:i.text,headers:z().str(`messageId`,t).build()});break;case`file`:n.push({name:`file`,data:i.url,headers:z().str(`messageId`,t).str(`mediaType`,i.mediaType).build()});break;default:(0,r.isDataUIPart)(i)&&n.push({name:i.type,data:i.data,headers:z().str(`messageId`,t).str(`id`,i.id).build()});break}return n.length===0&&n.push({name:`text`,data:``,headers:z().str(`messageId`,t).build()}),n},Qe={createEncoder:(e,t={})=>new Xe(e,t),createDecoder:qe,createAccumulator:me,getMessageKey:e=>e.id,isTerminal:e=>e.type===`finish`||e.type===`error`||e.type===`abort`},$e=e=>fe({...e,codec:Qe}),et=e=>`send`in e&&typeof e.send==`function`;e.useChatTransport=(e,n)=>{let r=(0,t.useRef)(null);return r.current===null&&(et(e)?r.current=p(e,n):r.current=p($e(e),n)),r.current},e.useMessageSync=(e,n)=>{(0,t.useEffect)(()=>{if(e)return e.on(`message`,()=>{n(()=>e.getMessages())})},[e,n])}});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react`),require(`ably`),require(`ably/react`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`react`,`ably`,`ably/react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.AblyAiTransportVercelReact={},e.React,e.Ably,e.AblyReact,e.ReactJsxRuntime))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var a=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,l=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,d=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=c(t),a=0,l=i.length,d;a<l;a++)d=i[a],!u.call(e,d)&&d!==n&&o(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=s(t,d))||r.enumerable});return e};n=((e,t,n)=>(n=e==null?{}:a(l(e)),d(t||!e||!e.__esModule?o(n,`default`,{value:e,enumerable:!0}):n,e)))(n,1);var f=(0,t.createContext)({}),p=(0,t.createContext)(void 0),m=`x-ably-stream`,h=`x-ably-status`,ee=`x-ably-stream-id`,g=`x-ably-discrete`,_=`x-ably-turn-id`,v=`x-ably-msg-id`,te=`x-ably-turn-client-id`,ne=`x-ably-role`,re=`x-ably-amend`,ie=`x-ably-cancel-turn-id`,ae=`x-ably-cancel-own`,oe=`x-ably-cancel-all`,se=`x-ably-cancel-client-id`,ce=`x-ably-parent`,le=`x-ably-fork-of`,ue=`x-ably-cancel`,de=`x-ably-turn-start`,fe=`x-ably-turn-end`,pe=`x-domain-`,y=function(e){return e[e.BadRequest=4e4]=`BadRequest`,e[e.InvalidArgument=40003]=`InvalidArgument`,e[e.EncoderRecoveryFailed=104e3]=`EncoderRecoveryFailed`,e[e.TransportSubscriptionError=104001]=`TransportSubscriptionError`,e[e.CancelListenerError=104002]=`CancelListenerError`,e[e.TurnLifecycleError=104003]=`TurnLifecycleError`,e[e.TransportClosed=104004]=`TransportClosed`,e[e.TransportSendFailed=104005]=`TransportSendFailed`,e[e.ChannelContinuityLost=104006]=`ChannelContinuityLost`,e[e.ChannelNotReady=104007]=`ChannelNotReady`,e[e.StreamError=104008]=`StreamError`,e}({}),me=(e,t)=>e.code===t,he=e=>({logAction:(t,n,r)=>{e.error(n,{detail:r})},shouldLog:()=>!0}),ge=n.Realtime.EventEmitter,_e=class extends ge{constructor(e){super(he(e))}},b=function(e){return e.Trace=`trace`,e.Debug=`debug`,e.Info=`info`,e.Warn=`warn`,e.Error=`error`,e.Silent=`silent`,e}({}),ve=(e,t,n)=>{let r=n?`, context: ${JSON.stringify(n)}`:``,i=`[${new Date().toISOString()}] ${t.valueOf().toUpperCase()} ably-ai-transport: ${e}${r}`;switch(t){case b.Trace:case b.Debug:console.log(i);break;case b.Info:console.info(i);break;case b.Warn:console.warn(i);break;case b.Error:console.error(i);break;case b.Silent:break}},ye=e=>new Se(e.logHandler??ve,e.logLevel),be=function(e){return e[e.Trace=0]=`Trace`,e[e.Debug=1]=`Debug`,e[e.Info=2]=`Info`,e[e.Warn=3]=`Warn`,e[e.Error=4]=`Error`,e[e.Silent=5]=`Silent`,e}(be||{}),xe=new Map([[b.Trace,be.Trace],[b.Debug,be.Debug],[b.Info,be.Info],[b.Warn,be.Warn],[b.Error,be.Error],[b.Silent,be.Silent]]),Se=class e{constructor(e,t,r){this._handler=e,this._context=r;let i=xe.get(t);if(i===void 0)throw new n.ErrorInfo(`unable to create logger; invalid log level: ${t}`,y.InvalidArgument,400);this._levelNumber=i}trace(e,t){this._write(e,b.Trace,be.Trace,t)}debug(e,t){this._write(e,b.Debug,be.Debug,t)}info(e,t){this._write(e,b.Info,be.Info,t)}warn(e,t){this._write(e,b.Warn,be.Warn,t)}error(e,t){this._write(e,b.Error,be.Error,t)}withContext(t){let n=[...xe.entries()].find(([,e])=>e===this._levelNumber)?.[0]??b.Error;return new e(this._handler,n,this._mergeContext(t))}_write(e,t,n,r){n>=this._levelNumber&&this._handler(e,t,this._mergeContext(r))}_mergeContext(e){return this._context?e?{...this._context,...e}:this._context:e??void 0}},Ce=e=>{let t=e.extras;if(!t||typeof t!=`object`)return{};let n=t.headers;return!n||typeof n!=`object`?{}:n},we=e=>{if(e!==void 0)try{return JSON.parse(e)}catch{return}},Te=(e,t)=>({...e,...t}),Ee=e=>{if(e!==void 0)return e===`true`},De=(e,t)=>e[pe+t],x=e=>{let t={};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&e[n]!==void 0&&(t[n]=e[n]);return t},Oe=e=>({str:t=>De(e,t),strOr:(t,n)=>De(e,t)??n,bool:t=>Ee(De(e,t)),json:t=>we(De(e,t))}),S=()=>{let e={},t={str:(n,r)=>(r!==void 0&&(e[pe+n]=r),t),bool:(n,r)=>(r!==void 0&&(e[pe+n]=String(r)),t),json:(n,r)=>(r!=null&&(e[pe+n]=JSON.stringify(r)),t),build:()=>e};return t},ke=e=>{let t={[ne]:e.role,[_]:e.turnId,[v]:e.msgId};return e.turnClientId!==void 0&&(t[te]=e.turnClientId),e.parent&&(t[ce]=e.parent),e.forkOf&&(t[le]=e.forkOf),e.amend&&(t[re]=e.amend),t},Ae=class{constructor(e,t){this._turns=new Map,this._isTerminal=e,this._logger=t}createStream(e){this._logger.trace(`StreamRouter.createStream();`,{turnId:e});let t={},r=new ReadableStream({start(e){t.controller=e}});if(!t.controller)throw new n.ErrorInfo(`unable to create stream; ReadableStream start() was not called synchronously`,y.TransportSubscriptionError,500);return this._turns.set(e,{controller:t.controller,turnId:e}),r}closeStream(e){let t=this._turns.get(e);if(!t)return!1;this._logger.debug(`StreamRouter.closeStream(); closing stream`,{turnId:e});try{t.controller.close()}catch{}return this._turns.delete(e),!0}errorStream(e,t){let n=this._turns.get(e);if(!n)return!1;this._logger.debug(`StreamRouter.errorStream(); erroring stream`,{turnId:e});try{n.controller.error(t)}catch{}return this._turns.delete(e),!0}route(e,t){let n=this._turns.get(e);if(!n)return!1;try{n.controller.enqueue(t)}catch{return this._turns.delete(e),!1}return this._isTerminal(t)&&this.closeStream(e),!0}has(e){return this._turns.has(e)}},je=(e,t)=>new Ae(e,t),Me=class{get structuralVersion(){return this._structuralVersion}constructor(e){this._nodeIndex=new Map,this._sortedList=[],this._parentIndex=new Map,this._turnClientIds=new Map,this._seqCounter=0,this._structuralVersion=0,this._logger=e,this._emitter=new _e(e)}_compareNodes(e,t){let n=e.node.serial,r=t.node.serial;return n===void 0&&r===void 0?e.insertSeq-t.insertSeq:n===void 0?1:r===void 0||n<r?-1:n>r?1:e.insertSeq-t.insertSeq}_insertSorted(e){if(e.node.serial===void 0){this._sortedList.push(e);return}let t=0,n=this._sortedList.length;for(;t<n;){let r=t+n>>>1,i=this._sortedList[r];if(!i)break;this._compareNodes(i,e)<=0?t=r+1:n=r}this._sortedList.splice(t,0,e)}_removeSorted(e){let t=this._sortedList.indexOf(e);t!==-1&&this._sortedList.splice(t,1)}_addToParentIndex(e,t){let n=this._parentIndex.get(e);n||(n=new Set,this._parentIndex.set(e,n)),n.add(t)}_removeFromParentIndex(e,t){let n=this._parentIndex.get(e);n&&(n.delete(t),n.size===0&&this._parentIndex.delete(e))}_getSiblingGroup(e){let t=this._nodeIndex.get(e);if(!t)return[];let n=t.node,r=new Set([n.msgId]);for(;n.forkOf&&!r.has(n.forkOf);){let e=this._nodeIndex.get(n.forkOf);if(!e||e.node.parentId!==n.parentId)break;n=e.node,r.add(n.msgId)}let i=n.parentId,a=n.msgId,o=[],s=this._parentIndex.get(i);if(s)for(let e of s){let t=this._nodeIndex.get(e);t&&this._isSiblingOf(t.node,a)&&o.push(t)}return o.sort((e,t)=>this._compareNodes(e,t)),o.map(e=>e.node)}_isSiblingOf(e,t){if(e.msgId===t)return!0;let n=e,r=new Set([n.msgId]);for(;n.forkOf;){if(n.forkOf===t)return!0;if(r.has(n.forkOf))break;let e=this._nodeIndex.get(n.forkOf);if(!e)break;n=e.node,r.add(n.msgId)}return!1}getGroupRoot(e){let t=this._nodeIndex.get(e);if(!t)return e;let n=t.node,r=new Set([n.msgId]);for(;n.forkOf&&!r.has(n.forkOf);){let e=this._nodeIndex.get(n.forkOf);if(!e||e.node.parentId!==n.parentId)break;n=e.node,r.add(n.msgId)}return n.msgId}flattenNodes(e){this._logger.trace(`DefaultTree.flattenNodes();`);let t=[],n=new Set,r=new Map;for(let i of this._sortedList){let a=i.node,{msgId:o,parentId:s}=a;if(s!==void 0&&!n.has(s))continue;let c=this._getSiblingGroup(o);if(c.length>1){let t=this.getGroupRoot(o),n=r.get(t);if(n===void 0){let i=e.get(t);if(i&&c.some(e=>e.msgId===i))n=i;else{let e=c.at(-1);if(!e)break;n=e.msgId}r.set(t,n)}if(o!==n)continue}n.add(o),t.push(a)}return t}getSiblings(e){return this._logger.trace(`DefaultTree.getSiblings();`,{msgId:e}),this._getSiblingGroup(e).map(e=>e.message)}getSiblingNodes(e){return this._getSiblingGroup(e)}hasSiblings(e){return this._getSiblingGroup(e).length>1}getNode(e){return this._logger.trace(`DefaultTree.getNode();`,{msgId:e}),this._nodeIndex.get(e)?.node}getHeaders(e){return this._logger.trace(`DefaultTree.getHeaders();`,{msgId:e}),this._nodeIndex.get(e)?.node.headers}upsert(e,t,n,r){let i=n[`x-ably-parent`]??void 0,a=n[`x-ably-fork-of`]??void 0,o=this._nodeIndex.get(e);if(o){o.node.message=t,Object.keys(n).length>0&&(o.node.headers={...n}),r&&!o.node.serial&&(this._logger.debug(`Tree.upsert(); promoting serial`,{msgId:e,serial:r}),o.node.serial=r,this._removeSorted(o),this._insertSorted(o),this._structuralVersion++),this._emitter.emit(`update`);return}this._logger.trace(`Tree.upsert(); inserting new node`,{msgId:e,parentId:i,forkOf:a});let s={node:{kind:`message`,message:t,msgId:e,parentId:i,forkOf:a,headers:{...n},serial:r},insertSeq:this._seqCounter++};this._nodeIndex.set(e,s),this._addToParentIndex(i,e),this._insertSorted(s),this._structuralVersion++,this._emitter.emit(`update`)}delete(e){let t=this._nodeIndex.get(e);if(!t)return;this._logger.debug(`Tree.delete();`,{msgId:e});let{node:n}=t;this._removeFromParentIndex(n.parentId,e),this._removeSorted(t),this._nodeIndex.delete(e),this._structuralVersion++,this._emitter.emit(`update`)}getActiveTurnIds(){this._logger.trace(`DefaultTree.getActiveTurnIds();`);let e=new Map;for(let[t,n]of this._turnClientIds){let r=e.get(n);r||(r=new Set,e.set(n,r)),r.add(t)}return e}on(e,t){let n=t;return this._emitter.on(e,n),()=>{this._emitter.off(e,n)}}emitAblyMessage(e){this._logger.trace(`DefaultTree.emitAblyMessage();`),this._emitter.emit(`ably-message`,e)}emitTurn(e){this._logger.trace(`DefaultTree.emitTurn();`,{turnId:e.turnId}),this._emitter.emit(`turn`,e)}trackTurn(e,t){this._logger.trace(`DefaultTree.trackTurn();`,{turnId:e,clientId:t}),this._turnClientIds.set(e,t)}untrackTurn(e){this._logger.trace(`DefaultTree.untrackTurn();`,{turnId:e}),this._turnClientIds.delete(e)}},Ne=e=>new Me(e),Pe=e=>{let t=[...e.rawMessages].toReversed(),n=e.codec.createDecoder(),r=new Map,i=e.codec.createAccumulator(),a=0,o=new Map,s=new Map,c=[],l=[];for(let u of t){let t=n.decode(u),d=Ce(u),f=d[_],p=d[v],m=u.serial,h=d[re];if(h){for(let e of r.values())if(e.msgHeaders.has(h)){let n=[...e.msgHeaders.keys()].indexOf(h),r=n===-1?void 0:e.accumulator.messages[n];r&&e.accumulator.initMessage(h,r),e.accumulator.processOutputs(t),l.push({accumulator:e.accumulator,messageId:h});break}continue}if(f){let n=r.get(f);if(n||(n={accumulator:e.codec.createAccumulator(),firstSeen:a++,msgHeaders:new Map,msgSerials:new Map},r.set(f,n)),p){let e=n.msgHeaders.get(p);e?Object.keys(d).length>0&&Object.assign(e,d):(n.msgHeaders.set(p,{...d}),m&&n.msgSerials.set(p,m))}n.accumulator.processOutputs(t)}else{i.processOutputs(t);for(let e of t)if(e.kind===`message`&&p){c.push(p);let e=o.get(p);e?Object.keys(d).length>0&&Object.assign(e,d):(o.set(p,{...d}),m&&s.set(p,m))}}}for(let{accumulator:e,messageId:t}of l)e.completeMessage(t);let u=[];for(let[e,t]of i.completedMessages.entries()){let n=c[e];u.push({message:t,headers:n?o.get(n)??{}:{},serial:n?s.get(n)??``:``})}let d=[...r.values()].toSorted((e,t)=>e.firstSeen-t.firstSeen);for(let e of d){let t=[...e.msgHeaders.entries()],n=0;for(let r of e.accumulator.completedMessages){let i=t[n];if(i){let[t,a]=i;u.push({message:r,headers:a,serial:e.msgSerials.get(t)??``}),n++}else u.push({message:r,headers:{},serial:``})}}return u.toReversed()},Fe=e=>{if(e.cachedDecode&&e.cachedAtRawLength===e.rawMessages.length)return e.cachedDecode;let t=Pe(e);return e.cachedDecode=t,e.cachedAtRawLength=e.rawMessages.length,t},Ie=(e,t)=>{for(let n of t){let t=Ce(n),r=t[v];if(!r||t[`x-ably-amend`])continue;let i=n.action,a=i===`message.create`&&`x-ably-discrete`in t,o=t[`x-ably-stream`]===`true`&&(i===`message.create`||i===`message.update`||i===`message.append`),s=t[h],c=s===`finished`||s===`aborted`;(a||o)&&e.startedMsgIds.add(r),(a||c)&&e.terminatedMsgIds.add(r),e.startedMsgIds.has(r)&&e.terminatedMsgIds.has(r)&&e.completedMsgIds.add(r)}},Le=async(e,t,n)=>{e.rawMessages.push(...t.items),e.lastAblyPage=t,Ie(e,t.items);let r=e.returnedCount+n;for(;e.completedMsgIds.size<r&&t.hasNext();){e.logger.debug(`decodeHistory.fetchUntilLimit(); fetching next page`,{collected:e.rawMessages.length,completed:e.completedMsgIds.size});let n=await t.next();if(!n)break;t=n,e.rawMessages.push(...n.items),e.lastAblyPage=n,Ie(e,n.items)}},Re=(e,t)=>{let n=Fe(e),r=n.slice(e.returnedCount,e.returnedCount+t),i=[...r].toReversed();e.returnedCount+=r.length;let a=n.length>e.returnedCount,o=e.lastAblyPage?.hasNext()??!1,s=e.rawMessages.length-e.returnedRawCount>0?e.rawMessages.slice(e.returnedRawCount).toReversed():[];return e.returnedRawCount=e.rawMessages.length,{items:i.map(e=>({message:e.message,headers:e.headers,serial:e.serial})),rawMessages:s,hasNext:()=>a||o,next:async()=>{if(a)return Re(e,t);if(!o||!e.lastAblyPage)return;let n=await e.lastAblyPage.next();if(n)return await Le(e,n,t),Re(e,t)}}},ze=async(e,t,n,r)=>{let i=n?.limit??100,a={codec:t,rawMessages:[],returnedCount:0,returnedRawCount:0,lastAblyPage:void 0,cachedDecode:void 0,cachedAtRawLength:0,startedMsgIds:new Set,terminatedMsgIds:new Set,completedMsgIds:new Set,logger:r};r.trace(`decodeHistory();`,{limit:i});let o=i*10;return await e.attach(),await Le(a,await e.history({untilAttach:!0,limit:o}),i),Re(a,i)},Be=class{constructor(e){this._branchSelections=new Map,this._withheldMsgIds=new Set,this._lastVisibleIds=[],this._lastVisibleMessages=[],this._lastVisibleTurnIds=new Set,this._hasMoreHistory=!1,this._withheldBuffer=[],this._unsubs=[],this._cachedNodes=[],this._lastStructuralVersion=-1,this._loadingOlder=!1,this._processingHistory=!1,this._closed=!1,this._tree=e.tree,this._channel=e.channel,this._codec=e.codec,this._sendDelegate=e.sendDelegate,this._onClose=e.onClose,this._logger=e.logger.withContext({component:`View`}),this._logger.trace(`DefaultView();`),this._emitter=new _e(this._logger),this._cachedNodes=this._computeFlatNodes(),this._lastStructuralVersion=this._tree.structuralVersion,this._updateVisibleSnapshot(this._cachedNodes),this._unsubs.push(this._tree.on(`update`,()=>{this._onTreeUpdate()}),this._tree.on(`ably-message`,e=>{this._onTreeAblyMessage(e)}),this._tree.on(`turn`,e=>{this._onTreeTurn(e)}))}getMessages(){return this.flattenNodes().map(e=>e.message)}flattenNodes(){return this._cachedNodes}_computeFlatNodes(){let e=this._tree.flattenNodes(this._resolveSelections());return this._withheldMsgIds.size===0?e:e.filter(e=>!this._withheldMsgIds.has(e.msgId))}hasOlder(){return this._withheldBuffer.length>0||this._hasMoreHistory}async loadOlder(e=100){if(!(this._closed||this._loadingOlder)){this._loadingOlder=!0,this._logger.trace(`DefaultView.loadOlder();`,{limit:e});try{if(this._withheldBuffer.length>0){let t=this._withheldBuffer.splice(-e,e);this._releaseWithheld(t);return}if(!this._hasMoreHistory&&!this._lastHistoryPage){await this._loadFirstPage(e);return}if(!this._hasMoreHistory)return;if(!this._lastHistoryPage?.hasNext()){this._hasMoreHistory=!1;return}let t=await this._lastHistoryPage.next();if(this._closed||!t){t||(this._hasMoreHistory=!1);return}await this._loadAndReveal(t,e)}catch(e){throw this._logger.error(`DefaultView.loadOlder(); failed`,{error:e}),e}finally{this._loadingOlder=!1}}}select(e,t){this._logger.trace(`DefaultView.select();`,{msgId:e,index:t});let n=this._tree.getSiblingNodes(e);if(n.length<=1)return;let r=this._tree.getGroupRoot(e),i=Math.max(0,Math.min(t,n.length-1)),a=n[i];a&&(this._branchSelections.set(r,{kind:`user`,selectedId:a.msgId}),this._logger.debug(`DefaultView.select();`,{msgId:e,index:i,selectedId:a.msgId}),this._cachedNodes=this._computeFlatNodes(),this._updateVisibleSnapshot(this._cachedNodes),this._emitter.emit(`update`))}getSelectedIndex(e){this._logger.trace(`DefaultView.getSelectedIndex();`,{msgId:e});let t=this._tree.getSiblingNodes(e);if(t.length<=1)return 0;let n=this._tree.getGroupRoot(e),r=this._branchSelections.get(n);if(!r||r.kind===`pending`)return t.length-1;let i=t.findIndex(e=>e.msgId===r.selectedId);return i===-1?t.length-1:i}getSiblings(e){return this._tree.getSiblings(e)}hasSiblings(e){return this._tree.hasSiblings(e)}getNode(e){return this._tree.getNode(e)}async send(e,t){if(this._logger.trace(`DefaultView.send();`),this._closed)throw new n.ErrorInfo(`unable to send; view is closed`,y.InvalidArgument,400);let r=this.flattenNodes(),i=await this._sendDelegate(e,t,r);if(t?.forkOf){let e=this._tree.getGroupRoot(t.forkOf);if(i.optimisticMsgIds.length>0){let t=i.optimisticMsgIds.at(-1);t&&(this._branchSelections.set(e,{kind:`auto`,selectedId:t}),this._cachedNodes=this._computeFlatNodes(),this._updateVisibleSnapshot(this._cachedNodes),this._emitter.emit(`update`))}else{this._branchSelections.set(e,{kind:`pending`,turnId:i.turnId}),this._logger.debug(`DefaultView.send(); deferring fork auto-selection`,{forkOf:t.forkOf,groupRoot:e,turnId:i.turnId});let n=this._tree.on(`turn`,t=>{if(t.type!==`x-ably-turn-end`||t.turnId!==i.turnId)return;let r=this._branchSelections.get(e);r?.kind===`pending`&&r.turnId===i.turnId&&this._branchSelections.delete(e),n();let a=this._unsubs.indexOf(n);a!==-1&&this._unsubs.splice(a,1)});this._unsubs.push(n)}}return i}async regenerate(e,t){this._logger.trace(`DefaultView.regenerate();`,{messageId:e});let r=this._tree.getNode(e);if(!r)throw new n.ErrorInfo(`unable to regenerate; message not found in tree: ${e}`,y.InvalidArgument,400);let i=r.parentId;return this.send([],{...t,body:{history:this._getHistoryBefore(e),...t?.body},forkOf:e,parent:i})}async edit(e,t,r){this._logger.trace(`DefaultView.edit();`,{messageId:e});let i=this._tree.getNode(e);if(!i)throw new n.ErrorInfo(`unable to edit; message not found in tree: ${e}`,y.InvalidArgument,400);let a=i.parentId;return this.send(t,{...r,body:{history:this._getHistoryBefore(e),...r?.body},forkOf:e,parent:a})}async update(e,t,r){if(this._closed)throw new n.ErrorInfo(`unable to update; view is closed`,y.InvalidArgument,400);this._logger.trace(`DefaultView.update();`,{msgId:e,eventCount:t.length});let i=[{kind:`event`,msgId:e,events:t}];return this._sendDelegate([],r,this.flattenNodes(),i)}_getHistoryBefore(e){this._logger.trace(`DefaultView._getHistoryBefore();`,{messageId:e});let t=this.flattenNodes(),n=t.findIndex(t=>t.msgId===e);return n===-1?(this._logger.warn(`DefaultView._getHistoryBefore(); target not in visible nodes, returning full list`,{messageId:e}),t):t.slice(0,n)}getActiveTurnIds(){this._logger.trace(`DefaultView.getActiveTurnIds();`);let e=this._tree.getActiveTurnIds();if(this._withheldMsgIds.size===0)return e;let t=new Map;for(let[n,r]of e){let e=new Set;for(let t of r)this._lastVisibleTurnIds.has(t)&&e.add(t);e.size>0&&t.set(n,e)}return t}on(e,t){let n=t;return this._emitter.on(e,n),()=>{this._emitter.off(e,n)}}close(){this._logger.info(`DefaultView.close();`),this._closed=!0,this._loadingOlder=!1;for(let e of this._unsubs)e();this._unsubs.length=0,this._emitter.off(),this._branchSelections.clear(),this._withheldMsgIds.clear(),this._withheldBuffer.length=0,this._onClose?.()}async _loadFirstPage(e){let t=new Set(this._tree.flattenNodes(this._resolveSelections()).map(e=>e.msgId)),n=await ze(this._channel,this._codec,{limit:e},this._logger);if(this._closed)return;let{newVisible:r,lastPage:i}=await this._loadUntilVisible(n,e,t);if(this._closed)return;this._lastHistoryPage=i,this._hasMoreHistory=i.hasNext();let a=r.slice(-e),o=r.slice(0,-e);for(let e of o)this._withheldMsgIds.add(e.msgId);this._withheldBuffer.push(...o),this._releaseWithheld(a)}async _loadAndReveal(e,t){let n=new Set(this._tree.flattenNodes(this._resolveSelections()).map(e=>e.msgId)),{newVisible:r,lastPage:i}=await this._loadUntilVisible(e,t,n);if(this._closed)return;this._lastHistoryPage=i,this._hasMoreHistory=i.hasNext();let a=r.slice(-t),o=r.slice(0,-t);for(let e of o)this._withheldMsgIds.add(e.msgId);this._withheldBuffer.push(...o),this._releaseWithheld(a)}_processHistoryPage(e){this._processingHistory=!0;try{for(let t of e.items){let e=t.headers[v];e&&this._tree.upsert(e,t.message,t.headers,t.serial)}for(let t of e.rawMessages)this._tree.emitAblyMessage(t)}finally{this._processingHistory=!1}}async _loadUntilVisible(e,t,n){this._processHistoryPage(e);let r=e,i=()=>{let e=0;for(let t of this._tree.flattenNodes(this._resolveSelections()))n.has(t.msgId)||e++;return e};for(;i()<t&&r.hasNext();){let e=await r.next();if(!e||this._closed)break;this._processHistoryPage(e),r=e}return{newVisible:this._tree.flattenNodes(this._resolveSelections()).filter(e=>!n.has(e.msgId)),lastPage:r}}_releaseWithheld(e){for(let t of e)this._withheldMsgIds.delete(t.msgId);e.length>0&&(this._cachedNodes=this._computeFlatNodes(),this._updateVisibleSnapshot(this._cachedNodes),this._emitter.emit(`update`))}_updateVisibleSnapshot(e){let t=e??this.flattenNodes();this._lastVisibleIds=t.map(e=>e.msgId),this._lastVisibleMessages=t.map(e=>e.message),this._lastVisibleTurnIds=new Set;for(let e of t){let t=e.headers[_];t&&this._lastVisibleTurnIds.add(t)}}_onTreeUpdate(){if(this._processingHistory)return;let e=this._tree.structuralVersion;if(e===this._lastStructuralVersion){this._cachedNodes.some((e,t)=>e.message!==this._lastVisibleMessages[t])&&(this._lastVisibleMessages=this._cachedNodes.map(e=>e.message),this._cachedNodes=[...this._cachedNodes],this._emitter.emit(`update`));return}this._lastStructuralVersion=e,this._pinBranchSelections(),this._resolvePendingSelections();let t=this._computeFlatNodes(),n=t.map(e=>e.msgId),r=t.map(e=>e.message);this._visibleChanged(n,r)&&(this._cachedNodes=t,this._updateVisibleSnapshot(t),this._emitter.emit(`update`))}_resolveSelections(){let e=new Map;for(let[t,n]of this._branchSelections)n.kind!==`pending`&&e.set(t,n.selectedId);return e}_pinBranchSelections(){for(let e of this._lastVisibleIds){if(!this._tree.hasSiblings(e))continue;let t=this._tree.getGroupRoot(e),n=this._branchSelections.get(t);if(n?.kind===`pending`){let r=this._tree.getSiblingNodes(e).at(-1);r&&r.msgId!==e&&r.headers[`x-ably-turn-id`]===n.turnId&&(this._logger.debug(`DefaultView._pinBranchSelections(); auto-selecting pending fork`,{msgId:e,newestId:r.msgId,turnId:n.turnId}),this._branchSelections.set(t,{kind:`auto`,selectedId:r.msgId}));continue}n||this._branchSelections.set(t,{kind:`pinned`,selectedId:e})}}_resolvePendingSelections(){for(let[e,t]of this._branchSelections){if(t.kind!==`pending`)continue;let n=this._tree.getSiblingNodes(e);if(n.length<=1)continue;let r=n.at(-1);!r||r.msgId===e||r.headers[`x-ably-turn-id`]===t.turnId&&(this._logger.debug(`DefaultView._resolvePendingSelections(); resolving off-branch pending`,{groupRoot:e,newestId:r.msgId,turnId:t.turnId}),this._branchSelections.set(e,{kind:`auto`,selectedId:r.msgId}))}}_onTreeAblyMessage(e){let t=Ce(e)[v];if(!t){this._emitter.emit(`ably-message`,e);return}this._lastVisibleIds.includes(t)&&this._emitter.emit(`ably-message`,e)}_onTreeTurn(e){if(this._lastVisibleTurnIds.has(e.turnId)){this._emitter.emit(`turn`,e);return}e.type===`x-ably-turn-start`&&this._isTurnStartVisible(e)&&(this._lastVisibleTurnIds.add(e.turnId),this._emitter.emit(`turn`,e))}_isTurnStartVisible(e){let{parent:t}=e;return t===void 0?!0:this._lastVisibleIds.includes(t)}_visibleChanged(e,t){if(e.length!==this._lastVisibleIds.length)return!0;for(let[t,n]of e.entries())if(n!==this._lastVisibleIds[t])return!0;for(let[e,n]of t.entries())if(n!==this._lastVisibleMessages[e])return!0;return!1}},Ve=e=>new Be(e),He=()=>{},C=function(e){return e.READY=`ready`,e.CLOSED=`closed`,e}(C||{}),Ue=class{constructor(e){if(this._ownMsgIds=new Set,this._ownTurnIds=new Set,this._turnMsgIds=new Map,this._turnObservers=new Map,this._closeResolvers=[],this._views=new Set,this._state=C.READY,this._pendingLocalEvents=[],this._channel=e.channel,this._codec=e.codec,this._clientId=e.clientId,this._api=e.api,this._credentials=e.credentials,this._headersFn=typeof e.headers==`function`?e.headers:e.headers?()=>e.headers:void 0,this._bodyFn=typeof e.body==`function`?e.body:e.body?()=>e.body:void 0,this._fetchFn=e.fetch??globalThis.fetch.bind(globalThis),this._logger=(e.logger??ye({logLevel:b.Silent})).withContext({component:`ClientTransport`}),this._emitter=new _e(this._logger),this._hasAttachedOnce=this._channel.state===`attached`,this._tree=Ne(this._logger),this._view=Ve({tree:this._tree,channel:this._channel,codec:this._codec,sendDelegate:this._internalSend.bind(this),logger:this._logger,onClose:()=>this._views.delete(this._view)}),this._router=je(this._codec.isTerminal.bind(this._codec),this._logger),this._decoder=this._codec.createDecoder(),this._views.add(this._view),this.tree=this._tree,this.view=this._view,e.messages){let t;for(let n of e.messages){let e=crypto.randomUUID(),r={[v]:e};t&&(r[ce]=t),this._tree.upsert(e,n,r),t=e}}this._onMessage=e=>{this._handleMessage(e)},this._attachPromise=this._channel.subscribe(this._onMessage),this._onChannelStateChange=e=>{this._handleChannelStateChange(e)},this._channel.on(this._onChannelStateChange)}_handleMessage(e){if(this._state!==C.CLOSED)try{if(e.name===`x-ably-turn-start`){let t=Ce(e),n=t[_],r=t[`x-ably-turn-client-id`]??``;if(n){this._tree.trackTurn(n,r);let e=t[ce],i=t[le];this._tree.emitTurn({type:de,turnId:n,clientId:r,...e!==void 0&&{parent:e},...i!==void 0&&{forkOf:i}})}this._tree.emitAblyMessage(e);return}if(e.name===`x-ably-turn-end`){let t=Ce(e),n=t[_],r=t[`x-ably-turn-client-id`]??``,i=t[`x-ably-turn-reason`]??`complete`;if(n){this._router.closeStream(n),this._turnObservers.delete(n),this._tree.untrackTurn(n);let e=this._turnMsgIds.get(n);if(e){for(let t of e)this._ownMsgIds.delete(t);this._turnMsgIds.delete(n)}this._ownTurnIds.delete(n),this._tree.emitTurn({type:fe,turnId:n,clientId:r,reason:i})}this._tree.emitAblyMessage(e);return}let t=this._decoder.decode(e),n=Ce(e),r=e.serial,i=n[re];if(i){for(let e of t)e.kind===`event`&&this._handleAmendmentEvent(i,e);return}let a=n[_];a&&this._updateTurnObserverHeaders(a,n,r);for(let i of t)i.kind===`message`?this._handleMessageOutput(i.message,n,r,e.action):this._handleEventOutput(i,n);this._tree.emitAblyMessage(e)}catch(e){let t=e instanceof n.ErrorInfo?e:void 0;this._emitter.emit(`error`,new n.ErrorInfo(`unable to process channel message; ${e instanceof Error?e.message:String(e)}`,y.TransportSubscriptionError,500,t))}}_handleMessageOutput(e,t,n,r){let i=t[v];if(i&&this._ownMsgIds.has(i)){this._upsertAndNotify(e,t,n);return}r===`message.create`&&this._upsertAndNotify(e,t,n)}_handleEventOutput(e,t){if(e.kind!==`event`)return;let n=e.event,r=t[_];if(r){if(this._router.route(r,n)){this._accumulateAndEmit(r,e),this._codec.isTerminal(n)&&this._turnObservers.delete(r);return}this._ownTurnIds.has(r)&&!this._turnObservers.has(r)||(this._accumulateAndEmit(r,e),this._codec.isTerminal(n)&&this._turnObservers.delete(r))}}_handleAmendmentEvent(e,t){this._logger.trace(`ClientTransport._handleAmendmentEvent();`,{targetMsgId:e});let n=this._tree.getNode(e);if(!n){this._logger.debug(`ClientTransport._handleAmendmentEvent(); target not found, dropping`,{targetMsgId:e});return}let r=this._codec.createAccumulator();r.initMessage(e,n.message),r.processOutputs([t]);let i=r.messages.at(-1);i&&this._tree.upsert(e,i,n.headers,n.serial)}_handleChannelStateChange(e){if(this._state===C.CLOSED)return;let{current:t,resumed:r}=e;if(t===`attached`&&!this._hasAttachedOnce){this._hasAttachedOnce=!0;return}if(!(t===`failed`||t===`suspended`||t===`detached`||t===`attached`&&!r))return;this._logger.error(`ClientTransport._handleChannelStateChange(); channel continuity lost`,{current:t,resumed:r,previous:e.previous});let i=new n.ErrorInfo(`unable to deliver events; channel continuity lost (${t}${t===`attached`?`, resumed: false`:``})`,y.ChannelContinuityLost,500,e.reason);for(let e of this._ownTurnIds)this._router.errorStream(e,i);this._emitter.emit(`error`,i)}_upsertAndNotify(e,t,n){let r=t[v];r&&this._tree.upsert(r,e,t,n)}_updateTurnObserverHeaders(e,t,n){let r=this._turnObservers.get(e);r?(Object.keys(t).length>0&&Object.assign(r.headers,t),n!==void 0&&(r.serial=n)):this._turnObservers.set(e,{headers:{...t},serial:n,accumulator:this._codec.createAccumulator()})}_accumulateAndEmit(e,t){let n=this._turnObservers.get(e);if(!n)return;let r=n.headers[v];if(r){let e=this._tree.getNode(r);e&&n.accumulator.initMessage(r,e.message)}n.accumulator.processOutputs([t]);let i=n.accumulator.messages;if(i.length===0)return;let a;try{a=structuredClone(i.at(-1))}catch{a=i.at(-1)}if(a){let e=n.headers[v];e&&this._tree.upsert(e,a,{...n.headers},n.serial)}}async _publishCancel(e){this._logger.trace(`ClientTransport._publishCancel();`,{filter:e});let t={};e.turnId?t[ie]=e.turnId:e.own?t[ae]=`true`:e.clientId?t[se]=e.clientId:e.all&&(t[oe]=`true`),await this._channel.publish({name:ue,extras:{headers:t}})}_closeMatchingTurnStreams(e){for(let t of this._getMatchingTurnIds(e))this._router.closeStream(t)}_getMatchingTurnIds(e){let t=new Set,n=this._tree.getActiveTurnIds();if(e.all)for(let e of n.values())for(let n of e)t.add(n);else if(e.own){let e=n.get(this._clientId??``);if(e)for(let n of e)t.add(n)}else if(e.clientId){let r=n.get(e.clientId);if(r)for(let e of r)t.add(e)}else if(e.turnId){for(let r of n.values())if(r.has(e.turnId)){t.add(e.turnId);break}}return t}createView(){if(this._state===C.CLOSED)throw new n.ErrorInfo(`unable to create view; transport is closed`,y.TransportClosed,400);this._logger.trace(`DefaultClientTransport.createView();`);let e=Ve({tree:this._tree,channel:this._channel,codec:this._codec,sendDelegate:this._internalSend.bind(this),logger:this._logger,onClose:()=>this._views.delete(e)});return this._views.add(e),e}async _internalSend(e,t,r,i){if(this._state===C.CLOSED||(await this._attachPromise,this._state===C.CLOSED))throw new n.ErrorInfo(`unable to send; transport is closed`,y.TransportClosed,400);let a=this._channel.state;if(a!==`attached`&&a!==`attaching`)throw new n.ErrorInfo(`unable to send; channel is ${a}`,y.ChannelNotReady,400);this._logger.trace(`ClientTransport._internalSend();`);let o=Array.isArray(e)?e:[e],s=crypto.randomUUID();this._ownTurnIds.add(s),this._tree.trackTurn(s,this._clientId??``);let c=this._pendingLocalEvents;this._pendingLocalEvents=[],i&&i.length>0&&this._applyEventsToTree(i);let l=[...c,...i??[]],u=new Set,d=[],f=r,p;if(t?.parent===void 0&&!t?.forkOf){let e=f.at(-1);e&&(p=e.msgId)}let m=t?.parent===void 0?p:t.parent;for(let e of o){let n=crypto.randomUUID();this._ownMsgIds.add(n),u.add(n);let r=t?.parent===void 0?p:t.parent,i=ke({role:`user`,turnId:s,msgId:n,turnClientId:this._clientId,parent:r,forkOf:t?.forkOf});this._upsertAndNotify(e,i),d.push({kind:`message`,message:e,msgId:n,parentId:r,forkOf:t?.forkOf,headers:i,serial:void 0}),t?.parent===void 0&&!t?.forkOf&&(p=n)}this._turnMsgIds.set(s,u);let h=this._router.createStream(s),ee=this._headersFn?.()??{},g={...this._bodyFn?.()??{},history:f,...t?.body,turnId:s,clientId:this._clientId,messages:d,...t?.forkOf!==void 0&&{forkOf:t.forkOf},...m!==void 0&&{parent:m},...l.length>0&&{events:l}},_={...ee,...t?.headers};return this._fetchFn(this._api,{method:`POST`,headers:{"Content-Type":`application/json`,..._},body:JSON.stringify(g),...this._credentials?{credentials:this._credentials}:{}}).then(e=>{if(!e.ok){let t=new n.ErrorInfo(`unable to send; HTTP POST to ${this._api} returned ${String(e.status)} ${e.statusText}`,y.TransportSendFailed,e.status);this._emitter.emit(`error`,t),this._router.errorStream(s,t)}}).catch(e=>{let t=e instanceof n.ErrorInfo?e:void 0,r=new n.ErrorInfo(`unable to send; HTTP POST to ${this._api} failed: ${e instanceof Error?e.message:String(e)}`,y.TransportSendFailed,500,t);this._emitter.emit(`error`,r),this._router.errorStream(s,r)}),{stream:h,turnId:s,cancel:async()=>this.cancel({turnId:s}),optimisticMsgIds:[...u]}}async cancel(e){if(this._state===C.CLOSED)return;let t=e??{own:!0};this._logger.debug(`ClientTransport.cancel();`,{filter:t}),await this._publishCancel(t),this._closeMatchingTurnStreams(t)}stageEvents(e,t){if(this._logger.trace(`ClientTransport.stageEvents();`,{msgId:e,eventCount:t.length}),this._state===C.CLOSED){this._logger.warn(`ClientTransport.stageEvents(); transport is closed`,{msgId:e});return}if(!this._tree.getNode(e)){this._logger.warn(`ClientTransport.stageEvents(); msgId not found in tree`,{msgId:e});return}if(t.length===0)return;let n={kind:`event`,msgId:e,events:t};this._applyEventsToTree([n]),this._pendingLocalEvents.push(n)}stageMessage(e,t){if(this._logger.trace(`ClientTransport.stageMessage();`,{msgId:e}),this._state===C.CLOSED){this._logger.warn(`ClientTransport.stageMessage(); transport is closed`,{msgId:e});return}let n=this._tree.getNode(e);if(!n){this._logger.warn(`ClientTransport.stageMessage(); msgId not found in tree`,{msgId:e});return}this._tree.upsert(e,t,n.headers,n.serial)}_applyEventsToTree(e){for(let t of e){let e=this._tree.getNode(t.msgId);if(!e)continue;let n=t.events.map(e=>({kind:`event`,event:e,messageId:t.msgId})),r=this._codec.createAccumulator();r.initMessage(t.msgId,e.message),r.processOutputs(n);let i=r.messages.at(-1);i&&this._tree.upsert(t.msgId,i,e.headers,e.serial)}}async waitForTurn(e){if(this._state===C.CLOSED)return;let t=e??{own:!0},n=this._getMatchingTurnIds(t);if(n.size!==0)return this._logger.debug(`ClientTransport.waitForTurn();`,{turnIds:[...n]}),new Promise(e=>{let t=!1,r=()=>{if(t)return;t=!0,i();let n=this._closeResolvers.indexOf(r);n!==-1&&this._closeResolvers.splice(n,1),e()},i=this._tree.on(`turn`,e=>{e.type===`x-ably-turn-end`&&(n.delete(e.turnId),n.size===0&&r())});this._closeResolvers.push(r)})}on(e,t){if(this._state===C.CLOSED)return He;let n=t;return this._emitter.on(e,n),()=>{this._emitter.off(e,n)}}async close(e){if(this._state!==C.CLOSED){if(this._state=C.CLOSED,this._logger.info(`ClientTransport.close();`),e?.cancel){try{await this._publishCancel(e.cancel)}catch{}this._closeMatchingTurnStreams(e.cancel)}this._channel.unsubscribe(this._onMessage),this._channel.off(this._onChannelStateChange);for(let e of this._ownTurnIds)this._router.closeStream(e);this._turnObservers.clear(),this._emitter.off();for(let e of this._views)e.close();this._views.clear();for(let e of this._closeResolvers)e();this._closeResolvers.length=0,this._ownTurnIds.clear(),this._ownMsgIds.clear(),this._turnMsgIds.clear()}}},We=e=>new Ue(e),Ge=({channelName:e,children:a,...o})=>{let{channel:s}=(0,r.useChannel)({channelName:e}),c=(0,t.useRef)(void 0),l=(0,t.useRef)(e),u=(0,t.useRef)([]),d=(0,t.useRef)(!1),m=(0,t.useRef)(void 0);if(!(c.current||m.current)||l.current!==e){l.current=e,c.current&&u.current.push(c.current);try{c.current=We({...o,channel:s}),m.current=void 0}catch(e){c.current=void 0,m.current=e instanceof n.ErrorInfo?e:new n.ErrorInfo(`Unknown error while creating transport`,y.BadRequest,400)}}let h=(0,t.useContext)(f),ee=c.current,g=m.current,_=(0,t.useMemo)(()=>({transport:ee,error:g}),[ee,g]),v=(0,t.useMemo)(()=>({...h,[e]:_}),[e,h,_]);return(0,t.useEffect)(()=>()=>{for(let e of u.current)e.close()},[e]),(0,t.useEffect)(()=>(d.current=!1,()=>{d.current=!0,Promise.resolve().then(()=>{d.current&&c.current?.close()})}),[]),(0,i.jsx)(f.Provider,{value:v,children:(0,i.jsx)(p.Provider,{value:_,children:a})})},Ke=e=>(0,i.jsx)(r.ChannelProvider,{channelName:e.channelName,children:(0,i.jsx)(Ge,{...e})}),qe=({transport:e,skip:n}={})=>{let r=(0,t.useContext)(p),i=n?void 0:e??r?.transport,[a,o]=(0,t.useState)([]),s=(0,t.useRef)([]);return(0,t.useEffect)(()=>{if(s.current=[],o([]),i)return i.tree.on(`ably-message`,e=>{let t=[...s.current,e];s.current=t,o(t)})},[i]),a},Je=({transport:e}={})=>{let n=(0,t.useContext)(p),r=e??n?.transport,[i,a]=(0,t.useState)(()=>new Map);return(0,t.useEffect)(()=>{if(r)return a(r.tree.getActiveTurnIds()),r.tree.on(`turn`,e=>{a(t=>{let n=new Map(t);if(e.type===`x-ably-turn-start`){let t=new Set(n.get(e.clientId));t.add(e.turnId),n.set(e.clientId,t)}else{let t=n.get(e.clientId);if(t){let r=new Set(t);r.delete(e.turnId),r.size===0?n.delete(e.clientId):n.set(e.clientId,r)}}return n})})},[r]),i},Ye={get tree(){throw new n.ErrorInfo(`unable to access tree; hook is skipped`,y.InvalidArgument,400)},get view(){throw new n.ErrorInfo(`unable to access view; hook is skipped`,y.InvalidArgument,400)},createView:()=>{throw new n.ErrorInfo(`unable to create view; hook is skipped`,y.InvalidArgument,400)},cancel:()=>{throw new n.ErrorInfo(`unable to cancel; hook is skipped`,y.InvalidArgument,400)},stageEvents:()=>{throw new n.ErrorInfo(`unable to stage events; hook is skipped`,y.InvalidArgument,400)},stageMessage:()=>{throw new n.ErrorInfo(`unable to stage message; hook is skipped`,y.InvalidArgument,400)},waitForTurn:()=>{throw new n.ErrorInfo(`unable to wait for turn; hook is skipped`,y.InvalidArgument,400)},on:()=>{throw new n.ErrorInfo(`unable to subscribe; hook is skipped`,y.InvalidArgument,400)},close:()=>{throw new n.ErrorInfo(`unable to close; hook is skipped`,y.InvalidArgument,400)}},Xe=({channelName:e,skip:r,onError:i}={})=>{let a=(0,t.useContext)(f),o=(0,t.useContext)(p),s=(0,t.useRef)(i);s.current=i;let c=r?void 0:e===void 0?o?.transport:a[e]?.transport;if((0,t.useEffect)(()=>{if(c)return c.on(`error`,e=>{s.current?.(e)})},[c]),r)return{transport:Ye};if(e!==void 0){let t=a[e];return t?t.transport?{transport:t.transport}:{transport:Ye,transportError:t.error}:{transport:Ye,transportError:new n.ErrorInfo(`unable to use transport; no TransportProvider found for channelName "${e}"`,y.BadRequest,400)}}return o?o.transport?{transport:o.transport}:{transport:Ye,transportError:o.error}:{transport:Ye,transportError:new n.ErrorInfo(`unable to use transport; no TransportProvider found in the tree`,y.BadRequest,400)}},Ze=({transport:e,view:r,limit:i,skip:a}={})=>{let o=(0,t.useContext)(p),s=a?void 0:e??o?.transport,c=a?void 0:r??s?.view,[l,u]=(0,t.useState)(()=>c?.flattenNodes()??[]),[d,f]=(0,t.useState)(()=>c?.hasOlder()??!1),[m,h]=(0,t.useState)(!1),[ee,g]=(0,t.useState)(),_=(0,t.useRef)(!1),v=i!==void 0,te=(0,t.useRef)(!1);(0,t.useEffect)(()=>{if(!c){u([]),f(!1),g(void 0);return}return te.current=!1,u(c.flattenNodes()),f(c.hasOlder()),g(void 0),c.on(`update`,()=>{u(c.flattenNodes()),f(c.hasOlder())})},[c]);let ne=(0,t.useCallback)(async()=>{if(!(!c||_.current)){_.current=!0,h(!0);try{await c.loadOlder(i),g(void 0)}catch(e){e instanceof n.ErrorInfo?g(e):g(new n.ErrorInfo(`Unknown error loading older messages`,y.BadRequest,400))}finally{_.current=!1,h(!1)}}},[c,i]);return(0,t.useEffect)(()=>{!v||te.current||!c||(te.current=!0,ne())},[v,c,ne]),{messages:(0,t.useMemo)(()=>l.map(e=>e.message),[l]),nodes:l,hasOlder:d,loading:m,loadError:ee,loadOlder:ne,select:(0,t.useCallback)((e,t)=>{c?.select(e,t)},[c]),getSelectedIndex:(0,t.useCallback)(e=>c?.getSelectedIndex(e)??0,[c]),getSiblings:(0,t.useCallback)(e=>c?.getSiblings(e)??[],[c]),hasSiblings:(0,t.useCallback)(e=>c?.hasSiblings(e)??!1,[c]),getNode:(0,t.useCallback)(e=>c?.getNode(e),[c]),send:(0,t.useCallback)(async(e,t)=>{if(!c)throw new n.ErrorInfo(`unable to send; view is not available`,y.InvalidArgument,400);return c.send(e,t)},[c]),regenerate:(0,t.useCallback)(async(e,t)=>{if(!c)throw new n.ErrorInfo(`unable to regenerate; view is not available`,y.InvalidArgument,400);return c.regenerate(e,t)},[c]),edit:(0,t.useCallback)(async(e,t,r)=>{if(!c)throw new n.ErrorInfo(`unable to edit; view is not available`,y.InvalidArgument,400);return c.edit(e,t,r)},[c]),update:(0,t.useCallback)(async(e,t,r)=>{if(!c)throw new n.ErrorInfo(`unable to update; view is not available`,y.InvalidArgument,400);return c.update(e,t,r)},[c])}},Qe=({transport:e,limit:n,skip:r}={})=>{let i=(0,t.useContext)(p),a=r?void 0:e??i?.transport,[o,s]=(0,t.useState)();return(0,t.useEffect)(()=>{if(!a){s(void 0);return}let e=a.createView();return s(e),()=>{e.close()}},[a]),Ze({view:o,limit:n,skip:r})},$e=({transport:e}={})=>{let n=(0,t.useContext)(p),r=e??n?.transport;return{getSiblings:(0,t.useCallback)(e=>r?.tree.getSiblings(e)??[],[r]),hasSiblings:(0,t.useCallback)(e=>r?.tree.hasSiblings(e)??!1,[r]),getNode:(0,t.useCallback)(e=>r?.tree.getNode(e),[r])}},et=()=>({TransportProvider:Ke,useClientTransport:e=>Xe(e??{}),useView:e=>Ze(e??{}),useActiveTurns:e=>Je(e??{}),useTree:e=>$e(e??{}),useAblyMessages:e=>qe(e??{}),useCreateView:e=>Qe(e??{})}),tt=e=>x({type:`dynamic-tool`,toolCallId:e.toolCallId,toolName:e.toolName,title:e.title,providerExecuted:e.providerExecuted}),nt=(e,t)=>{let n=tt(e);switch(t.type){case`tool-output-available`:return x({...n,state:`output-available`,input:e.input,output:t.output,preliminary:t.preliminary});case`tool-output-error`:return{...n,state:`output-error`,input:e.input,errorText:t.errorText};case`tool-output-denied`:return{...n,state:`output-denied`,input:e.input,approval:{id:``,approved:!1}};case`tool-approval-request`:return{...n,state:`approval-requested`,input:e.input,approval:{id:t.approvalId}}}},rt=class{constructor(e){this._activeIndex=new Map,this._partType=e}start(e,t,n){this._activeIndex.set(e,t.parts.length),t.parts.push({type:this._partType,text:``}),n.set(e,`streaming`)}delta(e,t,n){let r=this._activeIndex.get(e);if(r===void 0)return;let i=t.parts[r];i?.type===this._partType&&(i.text+=n)}end(e,t){t.set(e,`finished`),this._activeIndex.delete(e)}reset(){this._activeIndex=new Map}},it=class{constructor(){this._messageList=[],this._activeMessages=new Map}get messages(){return this._messageList}get completedMessages(){let e=new Set;for(let t of this._activeMessages.values())e.add(t.message);return this._messageList.filter(t=>!e.has(t))}get hasActiveStream(){for(let e of this._activeMessages.values())for(let t of e.streamStatus.values())if(t===`streaming`)return!0;return!1}processOutputs(e){for(let t of e)t.kind===`message`?this._messageList.push(t.message):t.messageId!==void 0&&this._processEvent(t.event,t.messageId)}updateMessage(e){let t=this._messageList.findIndex(t=>t.id===e.id);t!==-1&&(this._messageList[t]=e)}initMessage(e,t){let n=this._activeMessages.get(e);if(n){let e=structuredClone(t),r=this._messageList.indexOf(n.message);n.message=e,r!==-1&&(this._messageList[r]=e),n.toolTrackers={};for(let t=0;t<e.parts.length;t++){let r=e.parts[t];r?.type===`dynamic-tool`&&(n.toolTrackers[r.toolCallId]={partIndex:t,inputText:``},n.streamStatus.set(r.toolCallId,`finished`))}return}let r=structuredClone(t),i={},a=new Map;for(let e=0;e<r.parts.length;e++){let t=r.parts[e];t?.type===`dynamic-tool`&&(i[t.toolCallId]={partIndex:e,inputText:``},a.set(t.toolCallId,`finished`))}let o={message:r,textStreams:new rt(`text`),reasoningStreams:new rt(`reasoning`),toolTrackers:i,streamStatus:a};this._activeMessages.set(e,o);let s=this._messageList.findIndex(e=>e.id===t.id);s===-1?this._messageList.push(o.message):this._messageList[s]=o.message}completeMessage(e){this._activeMessages.delete(e)}_ensureActiveMessage(e){let t=this._activeMessages.get(e);if(t)return t;let n={message:{id:e,role:`assistant`,parts:[]},textStreams:new rt(`text`),reasoningStreams:new rt(`reasoning`),toolTrackers:{},streamStatus:new Map};return this._activeMessages.set(e,n),this._messageList.push(n.message),n}_getToolPart(e,t){let n=t.toolTrackers[e];if(!n)return;let r=t.message.parts[n.partIndex];if(r?.type===`dynamic-tool`)return{tracker:n,part:r}}_processEvent(e,t){switch(e.type){case`start`:case`start-step`:case`finish-step`:case`finish`:case`abort`:case`error`:case`message-metadata`:this._processLifecycle(e,t);break;case`text-start`:case`text-delta`:case`text-end`:case`reasoning-start`:case`reasoning-delta`:case`reasoning-end`:this._processTextOrReasoning(e,t);break;case`tool-input-start`:case`tool-input-delta`:case`tool-input-available`:case`tool-input-error`:this._processToolInput(e,t);break;case`tool-output-available`:case`tool-output-error`:case`tool-output-denied`:case`tool-approval-request`:this._processToolOutput(e,t);break;case`file`:case`source-url`:case`source-document`:this._processContentPart(e,t);break;default:if(e.type.startsWith(`data-`)){if(e.transient)break;let n=this._ensureActiveMessage(t),r=x({type:e.type,id:e.id,data:e.data});if(e.id!==void 0){let t=n.message.parts.findIndex(t=>t.type===e.type&&`id`in t&&t.id===e.id);if(t!==-1){n.message.parts[t]=r;break}}n.message.parts.push(r)}break}}_processLifecycle(e,t){switch(e.type){case`start`:{let n=this._ensureActiveMessage(t);e.messageId&&(n.message.id=e.messageId),e.messageMetadata!==void 0&&(n.message.metadata=e.messageMetadata);break}case`start-step`:this._ensureActiveMessage(t).message.parts.push({type:`step-start`});break;case`finish-step`:{let e=this._activeMessages.get(t);e&&(e.textStreams.reset(),e.reasoningStreams.reset());break}case`finish`:{let n=this._activeMessages.get(t);n&&e.messageMetadata!==void 0&&(n.message.metadata=e.messageMetadata),this._activeMessages.delete(t);break}case`abort`:{let e=this._activeMessages.get(t);if(e)for(let[t,n]of e.streamStatus)n===`streaming`&&e.streamStatus.set(t,`aborted`);this._activeMessages.delete(t);break}case`error`:break;case`message-metadata`:{let n=this._activeMessages.get(t);n&&e.messageMetadata!==void 0&&(n.message.metadata=e.messageMetadata);break}}}_processTextOrReasoning(e,t){let n=this._ensureActiveMessage(t);switch(e.type){case`text-start`:n.textStreams.start(e.id,n.message,n.streamStatus);break;case`text-delta`:n.textStreams.delta(e.id,n.message,e.delta);break;case`text-end`:n.textStreams.end(e.id,n.streamStatus);break;case`reasoning-start`:n.reasoningStreams.start(e.id,n.message,n.streamStatus);break;case`reasoning-delta`:n.reasoningStreams.delta(e.id,n.message,e.delta);break;case`reasoning-end`:n.reasoningStreams.end(e.id,n.streamStatus);break}}_processToolInput(e,t){switch(e.type){case`tool-input-start`:{let n=this._ensureActiveMessage(t),r=n.message.parts.length;n.message.parts.push({...tt(e),state:`input-streaming`,input:void 0}),n.toolTrackers[e.toolCallId]={partIndex:r,inputText:``},n.streamStatus.set(e.toolCallId,`streaming`);break}case`tool-input-delta`:{let n=this._ensureActiveMessage(t),r=n.toolTrackers[e.toolCallId];if(!r)break;r.inputText+=e.inputTextDelta;let i;try{i=JSON.parse(r.inputText)}catch{i=void 0}let a=this._getToolPart(e.toolCallId,n);if(!a)break;n.message.parts[a.tracker.partIndex]={...tt(a.part),state:`input-streaming`,input:i};break}case`tool-input-available`:{let n=this._ensureActiveMessage(t),r=this._getToolPart(e.toolCallId,n);if(!r)break;n.message.parts[r.tracker.partIndex]={...tt(r.part),state:`input-available`,input:e.input},n.streamStatus.set(e.toolCallId,`finished`);break}case`tool-input-error`:{let n=this._ensureActiveMessage(t),r=this._getToolPart(e.toolCallId,n);if(r)n.message.parts[r.tracker.partIndex]={...tt(r.part),state:`output-error`,input:e.input,errorText:e.errorText};else{let t=n.message.parts.length;n.message.parts.push({...tt(e),state:`output-error`,input:e.input,errorText:e.errorText}),n.toolTrackers[e.toolCallId]={partIndex:t,inputText:``}}n.streamStatus.set(e.toolCallId,`finished`);break}}}_processToolOutput(e,t){let n=this._ensureActiveMessage(t),r=this._getToolPart(e.toolCallId,n);r&&(n.message.parts[r.tracker.partIndex]=nt(r.part,e))}_processContentPart(e,t){let n=this._ensureActiveMessage(t);switch(e.type){case`file`:n.message.parts.push({type:`file`,mediaType:e.mediaType,url:e.url});break;case`source-url`:n.message.parts.push(x({type:`source-url`,sourceId:e.sourceId,url:e.url,title:e.title}));break;case`source-document`:n.message.parts.push(x({type:`source-document`,sourceId:e.sourceId,mediaType:e.mediaType,title:e.title,filename:e.filename}));break}}},at=()=>new it,ot=e=>[{kind:`event`,event:e}],st=class{constructor(e,t={}){this._serialState=new Map,this._hooks=e,this._onStreamUpdate=t.onStreamUpdate,this._onStreamDelete=t.onStreamDelete,this._logger=t.logger?.withContext({component:`DecoderCore`})}decode(e){let t=e.action;this._logger?.trace(`DefaultDecoderCore.decode();`,{action:t,serial:e.serial,name:e.name});let n;switch(t){case`message.create`:{let t=this._toPayload(e);n=t.headers?.[`x-ably-stream`]===`true`?this._decodeStreamedCreate(t,e.serial):this._hooks.decodeDiscrete(t);break}case`message.append`:n=this._decodeAppend(e);break;case`message.update`:n=this._decodeUpdate(e);break;case`message.delete`:n=this._decodeDelete(e);break;default:return[]}let r=Ce(e)[v];if(r)for(let e of n)e.kind===`event`&&(e.messageId=r);return n}_toPayload(e){return{name:e.name??``,data:e.data,headers:Ce(e)}}_stringData(e){return typeof e.data==`string`?e.data:``}_invokeOnStreamUpdate(e){if(this._onStreamUpdate)try{this._onStreamUpdate(e)}catch(e){this._logger?.error(`DefaultDecoderCore._invokeOnStreamUpdate(); callback threw`,{error:e})}}_invokeOnStreamDelete(e,t){if(this._onStreamDelete)try{this._onStreamDelete(e,t)}catch(e){this._logger?.error(`DefaultDecoderCore._invokeOnStreamDelete(); callback threw`,{error:e})}}_decodeStreamedCreate(e,t){if(!t)return[];let n=e.headers?.[`x-ably-stream-id`]??``,r=e.headers??{},i={name:e.name,streamId:n,accumulated:``,headers:{...r},closed:!1};return this._serialState.set(t,i),this._logger?.debug(`DefaultDecoderCore._decodeStreamedCreate(); new stream`,{name:e.name,streamId:n,serial:t}),this._hooks.buildStartEvents(i)}_decodeAppend(e){let t=e.serial;if(!t)return[];let n=this._serialState.get(t);if(!n)return this._decodeUpdate(e);let r=Ce(e),i=typeof e.data==`string`?e.data:``,a=r[h],o=[];return i.length>0&&(n.accumulated+=i,o.push(...this._hooks.buildDeltaEvents(n,i))),a===`finished`&&!n.closed?(n.closed=!0,o.push(...this._hooks.buildEndEvents(n,r)),this._logger?.debug(`DefaultDecoderCore._decodeAppend(); stream finished`,{streamId:n.streamId})):a===`aborted`&&!n.closed&&(n.closed=!0,this._logger?.debug(`DefaultDecoderCore._decodeAppend(); stream aborted`,{streamId:n.streamId})),o}_decodeUpdate(e){let t=e.serial;if(!t)return[];let n=this._toPayload(e),r=n.headers??{},i=r[m]===`true`,a=r[h],o=this._serialState.get(t);if(!o)return this._decodeFirstContact(n,i,a,t);let s=this._stringData(e);if(s.startsWith(o.accumulated)){let e=s.slice(o.accumulated.length),t=[];return e.length>0&&(o.accumulated=s,t.push(...this._hooks.buildDeltaEvents(o,e))),a===`finished`&&!o.closed?(o.closed=!0,t.push(...this._hooks.buildEndEvents(o,r))):a===`aborted`&&!o.closed&&(o.closed=!0),t}return o.accumulated=s,o.headers={...r},this._invokeOnStreamUpdate(o),[]}_decodeFirstContact(e,t,n,r){if(!t)return this._hooks.decodeDiscrete(e);let i=e.headers?.[`x-ably-stream-id`]??``,a=e.headers??{},o=typeof e.data==`string`?e.data:``;this._logger?.debug(`DefaultDecoderCore._decodeFirstContact(); first-contact stream`,{name:e.name,streamId:i,serial:r});let s={name:e.name,streamId:i,accumulated:o,headers:{...a},closed:n===`finished`||n===`aborted`};this._serialState.set(r,s);let c=this._hooks.buildStartEvents(s);return o.length>0&&c.push(...this._hooks.buildDeltaEvents(s,o)),n===`finished`&&c.push(...this._hooks.buildEndEvents(s,a)),c}_decodeDelete(e){let t=e.serial;if(!t)return[];let n=this._serialState.get(t);return this._invokeOnStreamDelete(t,n),n&&(n.accumulated=``,n.closed=!0),this._logger?.debug(`DefaultDecoderCore._decodeDelete();`,{serial:t}),[]}},ct=(e,t={})=>new st(e,t),lt=class{constructor(e){this._emitted=new Map,this._phases=e}ensurePhases(e,t){let n=this._getOrCreate(e),r=[];for(let e of this._phases)n.has(e.key)||(n.add(e.key),r.push(...e.build(t)));return r}markEmitted(e,t){this._getOrCreate(e).add(t)}resetPhase(e,t){this._emitted.get(e)?.delete(t)}clearScope(e){this._emitted.delete(e)}_getOrCreate(e){let t=this._emitted.get(e);return t||(t=new Set,this._emitted.set(e,t)),t}},ut=e=>new lt(e),dt=e=>{let t=Oe(e);return{...t,providerMetadata:()=>t.json(`providerMetadata`)}},w=e=>ot(e),ft=(e,t)=>e===`stop`||e===`length`||e===`content-filter`||e===`tool-calls`||e===`error`||e===`other`?e:t,pt=e=>e.startsWith(`data-`),mt=e=>{if(e)try{return JSON.parse(e)}catch{return e}},ht=e=>{let t=dt(e.headers);switch(e.name){case`text`:return x({type:`text-start`,id:e.streamId,providerMetadata:t.providerMetadata()});case`reasoning`:return x({type:`reasoning-start`,id:e.streamId,providerMetadata:t.providerMetadata()});case`tool-input`:return x({type:`tool-input-start`,toolCallId:e.streamId,toolName:t.strOr(`toolName`,``),dynamic:t.bool(`dynamic`),title:t.str(`title`),providerExecuted:t.bool(`providerExecuted`),providerMetadata:t.providerMetadata()});default:return{type:`text-start`,id:e.streamId}}},gt=(e,t)=>{switch(e.name){case`text`:return{type:`text-delta`,id:e.streamId,delta:t};case`reasoning`:return{type:`reasoning-delta`,id:e.streamId,delta:t};case`tool-input`:return{type:`tool-input-delta`,toolCallId:e.streamId,inputTextDelta:t};default:return{type:`text-delta`,id:e.streamId,delta:t}}},_t=(e,t)=>{let n=dt(t);switch(e.name){case`text`:return x({type:`text-end`,id:e.streamId,providerMetadata:n.providerMetadata()});case`reasoning`:return x({type:`reasoning-end`,id:e.streamId,providerMetadata:n.providerMetadata()});case`tool-input`:return x({type:`tool-input-available`,toolCallId:e.streamId,toolName:n.strOr(`toolName`,dt(e.headers).strOr(`toolName`,``)),input:mt(e.accumulated),providerMetadata:n.providerMetadata()});default:return{type:`text-end`,id:e.streamId}}},vt=()=>ut([{key:`start`,build:e=>[x({type:`start`,messageId:e.messageId})]},{key:`start-step`,build:()=>[{type:`start-step`}]}]),yt=(e,t,n)=>e.ensurePhases(t,n).map(e=>({kind:`event`,event:e})),bt=(e,t,n)=>(n.markEmitted(t,`start`),w(x({type:`start`,messageId:e.str(`messageId`),messageMetadata:e.json(`messageMetadata`)}))),xt=(e,t)=>(t.markEmitted(e,`start-step`),w({type:`start-step`})),St=(e,t)=>(t.resetPhase(e,`start-step`),w({type:`finish-step`})),Ct=(e,t,n)=>(n.clearScope(t),w(x({type:`finish`,finishReason:ft(e.str(`finishReason`),`stop`),messageMetadata:e.json(`messageMetadata`)}))),wt=(e,t,n)=>(n.clearScope(t),w({type:`error`,errorText:typeof e==`string`?e:``})),Tt=(e,t,n)=>(n.clearScope(t),w(x({type:`abort`,reason:typeof e==`string`&&e?e:void 0}))),Et=e=>w({type:`message-metadata`,messageMetadata:e.json(`messageMetadata`)}),Dt=(e,t)=>w(x({type:`file`,url:typeof t==`string`?t:``,mediaType:e.strOr(`mediaType`,``),providerMetadata:e.providerMetadata()})),Ot=(e,t)=>w(x({type:`source-url`,sourceId:e.strOr(`sourceId`,``),url:typeof t==`string`?t:``,title:e.str(`title`),providerMetadata:e.providerMetadata()})),kt=e=>w(x({type:`source-document`,sourceId:e.strOr(`sourceId`,``),mediaType:e.strOr(`mediaType`,``),title:e.strOr(`title`,``),filename:e.str(`filename`),providerMetadata:e.providerMetadata()})),At=(e,t)=>{let n=t;return w(x({type:`tool-input-error`,toolCallId:e.strOr(`toolCallId`,``),toolName:e.strOr(`toolName`,``),errorText:n?.errorText??``,input:n?.input,dynamic:e.bool(`dynamic`),title:e.str(`title`),providerExecuted:e.bool(`providerExecuted`),providerMetadata:e.providerMetadata()}))},jt=(e,t)=>{let n=t;return w(x({type:`tool-output-available`,toolCallId:e.strOr(`toolCallId`,``),output:n?.output,dynamic:e.bool(`dynamic`),providerExecuted:e.bool(`providerExecuted`),preliminary:e.bool(`preliminary`)}))},Mt=(e,t)=>{let n=t;return w(x({type:`tool-output-error`,toolCallId:e.strOr(`toolCallId`,``),errorText:n?.errorText??``,dynamic:e.bool(`dynamic`),providerExecuted:e.bool(`providerExecuted`)}))},Nt=e=>w({type:`tool-approval-request`,toolCallId:e.strOr(`toolCallId`,``),approvalId:e.strOr(`approvalId`,``)}),Pt=e=>w({type:`tool-output-denied`,toolCallId:e.strOr(`toolCallId`,``)}),Ft=(e,t,n)=>w(x({type:e,data:n,id:t.str(`id`),transient:t.bool(`transient`)})),It=(e,t,n,r)=>{let i=yt(r,n,{messageId:e.str(`messageId`)});return i.push({kind:`event`,event:x({type:`tool-input-start`,toolCallId:e.strOr(`toolCallId`,``),toolName:e.strOr(`toolName`,``),dynamic:e.bool(`dynamic`),title:e.str(`title`),providerExecuted:e.bool(`providerExecuted`),providerMetadata:e.providerMetadata()})},{kind:`event`,event:x({type:`tool-input-available`,toolCallId:e.strOr(`toolCallId`,``),toolName:e.strOr(`toolName`,``),input:t,providerMetadata:e.providerMetadata()})}),i},Lt=e=>{let t=e.headers??{},n=dt(t),r=t[`x-ably-role`]??`user`,i=n.str(`messageId`)??``,a;switch(e.name){case`text`:a={type:`text`,text:typeof e.data==`string`?e.data:``};break;case`file`:a={type:`file`,mediaType:n.strOr(`mediaType`,``),url:typeof e.data==`string`?e.data:``};break;default:pt(e.name)&&(a=x({type:e.name,id:n.str(`id`),data:e.data}));break}return a?[{kind:`message`,message:{id:i,role:r,parts:[a]}}]:[]},Rt=(e,t)=>(e===`text`||e===`file`||pt(e))&&`x-ably-discrete`in t,zt=(e,t)=>{let n=e.headers??{},r=dt(n),i=n[`x-ably-turn-id`]??``;if(Rt(e.name,n))return Lt(e);if(e.name===`tool-input`)return It(r,e.data,i,t);switch(e.name){case`start`:return bt(r,i,t);case`start-step`:return xt(i,t);case`finish-step`:return St(i,t);case`finish`:return Ct(r,i,t);case`error`:return wt(e.data,i,t);case`abort`:return Tt(e.data,i,t);case`message-metadata`:return Et(r);case`file`:return Dt(r,e.data);case`source-url`:return Ot(r,e.data);case`source-document`:return kt(r);case`tool-input-error`:return At(r,e.data);case`tool-output-available`:return jt(r,e.data);case`tool-output-error`:return Mt(r,e.data);case`tool-approval-request`:return Nt(r);case`tool-output-denied`:return Pt(r);default:return pt(e.name)?Ft(e.name,r,e.data):[]}},Bt=e=>({buildStartEvents:t=>{let n=yt(e,t.headers[`x-ably-turn-id`]??``,{messageId:dt(t.headers).str(`messageId`)});return n.push({kind:`event`,event:ht(t)}),n},buildDeltaEvents:(e,t)=>w(gt(e,t)),buildEndEvents:(e,t)=>w(_t(e,t)),decodeDiscrete:t=>zt(t,e)}),Vt=class{constructor(e={}){this._core=ct(Bt(vt()),e)}decode(e){return this._core.decode(e)}},Ht=(e={})=>new Vt(e),Ut=`vercel.ai.error`,Wt=Symbol.for(Ut),Gt,Kt,qt=class e extends (Kt=Error,Gt=Wt,Kt){constructor({name:e,message:t,cause:n}){super(t),this[Gt]=!0,this.name=e,this.cause=n}static isInstance(t){return e.hasMarker(t,Ut)}static hasMarker(e,t){let n=Symbol.for(t);return typeof e==`object`&&!!e&&n in e&&typeof e[n]==`boolean`&&e[n]===!0}};function Jt(e){return e==null?`unknown error`:typeof e==`string`?e:e instanceof Error?e.message:JSON.stringify(e)}var Yt=`AI_InvalidArgumentError`,Xt=`vercel.ai.error.${Yt}`,Zt=Symbol.for(Xt),Qt,$t,en=class extends ($t=qt,Qt=Zt,$t){constructor({message:e,cause:t,argument:n}){super({name:Yt,message:e,cause:t}),this[Qt]=!0,this.argument=n}static isInstance(e){return qt.hasMarker(e,Xt)}},tn=`AI_JSONParseError`,nn=`vercel.ai.error.${tn}`,rn=Symbol.for(nn),an,on,sn=class extends (on=qt,an=rn,on){constructor({text:e,cause:t}){super({name:tn,message:`JSON parsing failed: Text: ${e}.
2
+ Error message: ${Jt(t)}`,cause:t}),this[an]=!0,this.text=e}static isInstance(e){return qt.hasMarker(e,nn)}},cn=`AI_TypeValidationError`,ln=`vercel.ai.error.${cn}`,un=Symbol.for(ln),dn,fn,pn=class e extends (fn=qt,dn=un,fn){constructor({value:e,cause:t,context:n}){let r=`Type validation failed`;if(n?.field&&(r+=` for ${n.field}`),n?.entityName||n?.entityId){r+=` (`;let e=[];n.entityName&&e.push(n.entityName),n.entityId&&e.push(`id: "${n.entityId}"`),r+=e.join(`, `),r+=`)`}super({name:cn,message:`${r}: Value: ${JSON.stringify(e)}.
3
+ Error message: ${Jt(t)}`,cause:t}),this[dn]=!0,this.value=e,this.context=n}static isInstance(e){return qt.hasMarker(e,ln)}static wrap({value:t,cause:n,context:r}){return e.isInstance(n)&&n.value===t&&n.context?.field===r?.field&&n.context?.entityName===r?.entityName&&n.context?.entityId===r?.entityId?n:new e({value:t,cause:n,context:r})}};Object.freeze({status:`aborted`});function T(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 mn=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},hn=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},gn={};function _n(e){return e&&Object.assign(gn,e),gn}function vn(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 yn(e,t){return typeof t==`bigint`?t.toString():t}function bn(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function xn(e){return e==null}function Sn(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Cn(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}var wn=Symbol(`evaluating`);function E(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==wn)return r===void 0&&(r=wn,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Tn(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function En(...e){let t={};for(let n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function Dn(e){return JSON.stringify(e)}function On(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var kn=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function An(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var jn=bn(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Mn(e){if(An(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(An(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function Nn(e){return Mn(e)?{...e}:Array.isArray(e)?[...e]:e}var Pn=new Set([`string`,`number`,`symbol`]);function Fn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function In(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function D(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 Ln(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var Rn={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function zn(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return In(e,En(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 Tn(this,`shape`,e),e},checks:[]}))}function Bn(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return In(e,En(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 Tn(this,`shape`,r),r},checks:[]}))}function Vn(e,t){if(!Mn(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return In(e,En(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Tn(this,`shape`,n),n}}))}function Hn(e,t){if(!Mn(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return In(e,En(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Tn(this,`shape`,n),n}}))}function Un(e,t){return In(e,En(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Tn(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function Wn(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return In(t,En(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 Tn(this,`shape`,i),i},checks:[]}))}function Gn(e,t,n){return In(t,En(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 Tn(this,`shape`,i),i}}))}function Kn(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 qn(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function Jn(e){return typeof e==`string`?e:e?.message}function Yn(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=Jn(e.inst?._zod.def?.error?.(e))??Jn(t?.error?.(e))??Jn(n.customError?.(e))??Jn(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Xn(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Zn(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var Qn=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:t,enumerable:!1}),e.message=JSON.stringify(t,yn,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},$n=T(`$ZodError`,Qn),er=T(`$ZodError`,Qn,{Parent:Error});function tr(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 nr(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}var rr=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new mn;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>Yn(e,a,_n())));throw kn(t,i?.callee),t}return o.value},ir=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>Yn(e,a,_n())));throw kn(t,i?.callee),t}return o.value},ar=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new mn;return a.issues.length?{success:!1,error:new(e??$n)(a.issues.map(e=>Yn(e,i,_n())))}:{success:!0,data:a.value}},or=ar(er),sr=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>Yn(e,i,_n())))}:{success:!0,data:a.value}},cr=sr(er),lr=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return rr(e)(t,n,i)},ur=e=>(t,n,r)=>rr(e)(t,n,r),dr=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return ir(e)(t,n,i)},fr=e=>async(t,n,r)=>ir(e)(t,n,r),pr=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return ar(e)(t,n,i)},mr=e=>(t,n,r)=>ar(e)(t,n,r),hr=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return sr(e)(t,n,i)},gr=e=>async(t,n,r)=>sr(e)(t,n,r),_r=/^[cC][^\s-]{8,}$/,vr=/^[0-9a-z]+$/,yr=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,br=/^[0-9a-vA-V]{20}$/,xr=/^[A-Za-z0-9]{27}$/,Sr=/^[a-zA-Z0-9_-]{21}$/,Cr=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,wr=/^([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})$/,Tr=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)$/,Er=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Dr=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function Or(){return new RegExp(Dr,`u`)}var kr=/^(?:(?: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])$/,Ar=/^(([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}|:))$/,jr=/^((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])$/,Mr=/^(([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])$/,Nr=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Pr=/^[A-Za-z0-9_-]*$/,Fr=/^\+[1-9]\d{6,14}$/,Ir=`(?:(?:\\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])))`,Lr=RegExp(`^${Ir}$`);function Rr(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 zr(e){return RegExp(`^${Rr(e)}$`)}function Br(e){let t=Rr({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(`^${Ir}T(?:${r})$`)}var Vr=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},Hr=/^-?\d+$/,Ur=/^-?\d+(?:\.\d+)?$/,Wr=/^(?:true|false)$/i,Gr=/^null$/i,Kr=/^[^A-Z]*$/,qr=/^[^a-z]*$/,O=T(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Jr={number:`number`,bigint:`bigint`,object:`date`},Yr=T(`$ZodCheckLessThan`,(e,t)=>{O.init(e,t);let n=Jr[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:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Xr=T(`$ZodCheckGreaterThan`,(e,t)=>{O.init(e,t);let n=Jr[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:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Zr=T(`$ZodCheckMultipleOf`,(e,t)=>{O.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):Cn(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})}}),Qr=T(`$ZodCheckNumberFormat`,(e,t)=>{O.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Rn[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=Hr)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),$r=T(`$ZodCheckMaxLength`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xn(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 i=Xn(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),ei=T(`$ZodCheckMinLength`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xn(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 i=Xn(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),ti=T(`$ZodCheckLengthEquals`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xn(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,i=r.length;if(i===t.length)return;let a=Xn(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),ni=T(`$ZodCheckStringFormat`,(e,t)=>{var n,r;O.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=()=>{})}),ri=T(`$ZodCheckRegex`,(e,t)=>{ni.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})}}),ii=T(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Kr,ni.init(e,t)}),ai=T(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=qr,ni.init(e,t)}),oi=T(`$ZodCheckIncludes`,(e,t)=>{O.init(e,t);let n=Fn(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);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.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})}}),si=T(`$ZodCheckStartsWith`,(e,t)=>{O.init(e,t);let n=RegExp(`^${Fn(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),ci=T(`$ZodCheckEndsWith`,(e,t)=>{O.init(e,t);let n=RegExp(`.*${Fn(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),li=T(`$ZodCheckOverwrite`,(e,t)=>{O.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),ui=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(`
4
+ `).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(`
5
+ `))}},di={major:4,minor:3,patch:6},k=T(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=di;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=Kn(e),i;for(let a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new mn;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=Kn(e,t))});else{if(e.issues.length===t)continue;r||=Kn(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(Kn(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new mn;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new mn;return o.then(e=>t(e,r,a))}return t(o,r,a)}}E(e,`~standard`,()=>({validate:t=>{try{let n=or(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return cr(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),fi=T(`$ZodString`,(e,t)=>{k.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Vr(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}}),A=T(`$ZodStringFormat`,(e,t)=>{ni.init(e,t),fi.init(e,t)}),pi=T(`$ZodGUID`,(e,t)=>{t.pattern??=wr,A.init(e,t)}),mi=T(`$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??=Tr(e)}else t.pattern??=Tr();A.init(e,t)}),hi=T(`$ZodEmail`,(e,t)=>{t.pattern??=Er,A.init(e,t)}),gi=T(`$ZodURL`,(e,t)=>{A.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})}}}),_i=T(`$ZodEmoji`,(e,t)=>{t.pattern??=Or(),A.init(e,t)}),vi=T(`$ZodNanoID`,(e,t)=>{t.pattern??=Sr,A.init(e,t)}),yi=T(`$ZodCUID`,(e,t)=>{t.pattern??=_r,A.init(e,t)}),bi=T(`$ZodCUID2`,(e,t)=>{t.pattern??=vr,A.init(e,t)}),xi=T(`$ZodULID`,(e,t)=>{t.pattern??=yr,A.init(e,t)}),Si=T(`$ZodXID`,(e,t)=>{t.pattern??=br,A.init(e,t)}),Ci=T(`$ZodKSUID`,(e,t)=>{t.pattern??=xr,A.init(e,t)}),wi=T(`$ZodISODateTime`,(e,t)=>{t.pattern??=Br(t),A.init(e,t)}),Ti=T(`$ZodISODate`,(e,t)=>{t.pattern??=Lr,A.init(e,t)}),Ei=T(`$ZodISOTime`,(e,t)=>{t.pattern??=zr(t),A.init(e,t)}),Di=T(`$ZodISODuration`,(e,t)=>{t.pattern??=Cr,A.init(e,t)}),Oi=T(`$ZodIPv4`,(e,t)=>{t.pattern??=kr,A.init(e,t),e._zod.bag.format=`ipv4`}),ki=T(`$ZodIPv6`,(e,t)=>{t.pattern??=Ar,A.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})}}}),Ai=T(`$ZodCIDRv4`,(e,t)=>{t.pattern??=jr,A.init(e,t)}),ji=T(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Mr,A.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 Mi(e){if(e===``)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Ni=T(`$ZodBase64`,(e,t)=>{t.pattern??=Nr,A.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{Mi(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function Pi(e){if(!Pr.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Mi(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var Fi=T(`$ZodBase64URL`,(e,t)=>{t.pattern??=Pr,A.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{Pi(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),Ii=T(`$ZodE164`,(e,t)=>{t.pattern??=Fr,A.init(e,t)});function Li(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}}var Ri=T(`$ZodJWT`,(e,t)=>{A.init(e,t),e._zod.check=n=>{Li(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),zi=T(`$ZodNumber`,(e,t)=>{k.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ur,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}}),Bi=T(`$ZodNumberFormat`,(e,t)=>{Qr.init(e,t),zi.init(e,t)}),Vi=T(`$ZodBoolean`,(e,t)=>{k.init(e,t),e._zod.pattern=Wr,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}}),Hi=T(`$ZodNull`,(e,t)=>{k.init(e,t),e._zod.pattern=Gr,e._zod.values=new Set([null]),e._zod.parse=(t,n)=>{let r=t.value;return r===null||t.issues.push({expected:`null`,code:`invalid_type`,input:r,inst:e}),t}}),Ui=T(`$ZodUnknown`,(e,t)=>{k.init(e,t),e._zod.parse=e=>e}),Wi=T(`$ZodNever`,(e,t)=>{k.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function Gi(e,t,n){e.issues.length&&t.issues.push(...qn(n,e.issues)),t.value[n]=e.value}var Ki=T(`$ZodArray`,(e,t)=>{k.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=>Gi(t,n,e))):Gi(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function qi(e,t,n,r,i){if(e.issues.length){if(i&&!(n in r))return;t.issues.push(...qn(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function Ji(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=Ln(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Yi(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optout===`optional`;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=>qi(e,n,i,t,u))):qi(a,n,i,t,u)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var Xi=T(`$ZodObject`,(e,t)=>{if(k.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=bn(()=>Ji(t));E(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=An,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],r=n._zod.optout===`optional`,i=n._zod.run({value:s[e],issues:[]},o);i instanceof Promise?c.push(i.then(n=>qi(n,t,e,s,r))):qi(i,t,e,s,r)}return i?Yi(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),Zi=T(`$ZodObjectJIT`,(e,t)=>{Xi.init(e,t);let n=e._zod.parse,r=bn(()=>Ji(t)),i=e=>{let t=new ui([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Dn(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 r of n.keys){let n=a[r],o=Dn(r),s=e[r]?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),s?t.write(`
6
+ if (${n}.issues.length) {
7
+ if (${o} in input) {
8
+ payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
9
+ ...iss,
10
+ path: iss.path ? [${o}, ...iss.path] : [${o}]
11
+ })));
12
+ }
13
+ }
14
+
15
+ if (${n}.value === undefined) {
16
+ if (${o} in input) {
17
+ newResult[${o}] = undefined;
18
+ }
19
+ } else {
20
+ newResult[${o}] = ${n}.value;
21
+ }
22
+
23
+ `):t.write(`
24
+ if (${n}.issues.length) {
25
+ payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
26
+ ...iss,
27
+ path: iss.path ? [${o}, ...iss.path] : [${o}]
28
+ })));
29
+ }
30
+
31
+ if (${n}.value === undefined) {
32
+ if (${o} in input) {
33
+ newResult[${o}] = undefined;
34
+ }
35
+ } else {
36
+ newResult[${o}] = ${n}.value;
37
+ }
38
+
39
+ `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=An,s=!gn.jitless,c=s&&jn.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?Yi([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function Qi(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!Kn(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Yn(e,r,_n())))}),t)}var $i=T(`$ZodUnion`,(e,t)=>{k.init(e,t),E(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),E(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),E(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),E(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=>Sn(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=>Qi(t,i,e,a)):Qi(s,i,e,a)}}),ea=T(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,$i.init(e,t);let n=e._zod.parse;E(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=bn(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!An(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),ta=T(`$ZodIntersection`,(e,t)=>{k.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])=>ra(e,t,n)):ra(e,i,a)}});function na(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Mn(e)&&Mn(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=na(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=na(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 ra(e,t,n){let r=new Map,i;for(let n of t.issues)if(n.code===`unrecognized_keys`){i??=n;for(let e of n.keys)r.has(e)||r.set(e,{}),r.get(e).l=!0}else e.issues.push(n);for(let t of n.issues)if(t.code===`unrecognized_keys`)for(let e of t.keys)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(t);let a=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),Kn(e))return e;let o=na(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var ia=T(`$ZodRecord`,(e,t)=>{k.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Mn(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let e of o)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){s.add(typeof e==`number`?e.toString():e);let o=t.valueType._zod.run({value:i[e],issues:[]},r);o instanceof Promise?a.push(o.then(t=>{t.issues.length&&n.issues.push(...qn(e,t.issues)),n.value[e]=t.value})):(o.issues.length&&n.issues.push(...qn(e,o.issues)),n.value[e]=o.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`)continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof o==`string`&&Ur.test(o)&&s.issues.length){let e=t.keyType._zod.run({value:Number(o),issues:[]},r);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(s=e)}if(s.issues.length){t.mode===`loose`?n.value[o]=i[o]:n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>Yn(e,r,_n())),input:o,path:[o],inst:e});continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...qn(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...qn(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),aa=T(`$ZodEnum`,(e,t)=>{k.init(e,t);let n=vn(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>Pn.has(typeof e)).map(e=>typeof e==`string`?Fn(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}}),oa=T(`$ZodLiteral`,(e,t)=>{if(k.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?Fn(e):e?Fn(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),sa=T(`$ZodTransform`,(e,t)=>{k.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hn(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new mn;return n.value=i,n}});function ca(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var la=T(`$ZodOptional`,(e,t)=>{k.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,E(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),E(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Sn(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=>ca(t,e.value)):ca(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),ua=T(`$ZodExactOptional`,(e,t)=>{la.init(e,t),E(e._zod,`values`,()=>t.innerType._zod.values),E(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),da=T(`$ZodNullable`,(e,t)=>{k.init(e,t),E(e._zod,`optin`,()=>t.innerType._zod.optin),E(e._zod,`optout`,()=>t.innerType._zod.optout),E(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Sn(e.source)}|null)$`):void 0}),E(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)}),fa=T(`$ZodDefault`,(e,t)=>{k.init(e,t),e._zod.optin=`optional`,E(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=>pa(e,t)):pa(r,t)}});function pa(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var ma=T(`$ZodPrefault`,(e,t)=>{k.init(e,t),e._zod.optin=`optional`,E(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))}),ha=T(`$ZodNonOptional`,(e,t)=>{k.init(e,t),E(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=>ga(t,e)):ga(i,e)}});function ga(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var _a=T(`$ZodCatch`,(e,t)=>{k.init(e,t),E(e._zod,`optin`,()=>t.innerType._zod.optin),E(e._zod,`optout`,()=>t.innerType._zod.optout),E(e._zod,`values`,()=>t.innerType._zod.values),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(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Yn(e,n,_n()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Yn(e,n,_n()))},input:e.value}),e.issues=[]),e)}}),va=T(`$ZodPipe`,(e,t)=>{k.init(e,t),E(e._zod,`values`,()=>t.in._zod.values),E(e._zod,`optin`,()=>t.in._zod.optin),E(e._zod,`optout`,()=>t.out._zod.optout),E(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=>ya(e,t.in,n)):ya(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>ya(e,t.out,n)):ya(r,t.out,n)}});function ya(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var ba=T(`$ZodReadonly`,(e,t)=>{k.init(e,t),E(e._zod,`propValues`,()=>t.innerType._zod.propValues),E(e._zod,`values`,()=>t.innerType._zod.values),E(e._zod,`optin`,()=>t.innerType?._zod?.optin),E(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(xa):xa(r)}});function xa(e){return e.value=Object.freeze(e.value),e}var Sa=T(`$ZodLazy`,(e,t)=>{k.init(e,t),E(e._zod,`innerType`,()=>t.getter()),E(e._zod,`pattern`,()=>e._zod.innerType?._zod?.pattern),E(e._zod,`propValues`,()=>e._zod.innerType?._zod?.propValues),E(e._zod,`optin`,()=>e._zod.innerType?._zod?.optin??void 0),E(e._zod,`optout`,()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(t,n)=>e._zod.innerType._zod.run(t,n)}),Ca=T(`$ZodCustom`,(e,t)=>{O.init(e,t),k.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=>wa(t,n,r,e));wa(i,n,r,e)}});function wa(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(Zn(e))}}var Ta,Ea=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),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 Da(){return new Ea}(Ta=globalThis).__zod_globalRegistry??(Ta.__zod_globalRegistry=Da());var Oa=globalThis.__zod_globalRegistry;function ka(e,t){return new e({type:`string`,...D(t)})}function Aa(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...D(t)})}function ja(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...D(t)})}function Ma(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...D(t)})}function Na(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...D(t)})}function Pa(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...D(t)})}function Fa(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...D(t)})}function Ia(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...D(t)})}function La(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...D(t)})}function Ra(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...D(t)})}function za(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...D(t)})}function Ba(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...D(t)})}function Va(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...D(t)})}function Ha(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...D(t)})}function Ua(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...D(t)})}function Wa(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...D(t)})}function Ga(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...D(t)})}function Ka(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...D(t)})}function qa(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...D(t)})}function Ja(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...D(t)})}function Ya(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...D(t)})}function Xa(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...D(t)})}function Za(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...D(t)})}function Qa(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...D(t)})}function $a(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...D(t)})}function eo(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...D(t)})}function to(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...D(t)})}function no(e,t){return new e({type:`number`,checks:[],...D(t)})}function ro(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...D(t)})}function io(e,t){return new e({type:`boolean`,...D(t)})}function ao(e,t){return new e({type:`null`,...D(t)})}function oo(e){return new e({type:`unknown`})}function so(e,t){return new e({type:`never`,...D(t)})}function co(e,t){return new Yr({check:`less_than`,...D(t),value:e,inclusive:!1})}function lo(e,t){return new Yr({check:`less_than`,...D(t),value:e,inclusive:!0})}function uo(e,t){return new Xr({check:`greater_than`,...D(t),value:e,inclusive:!1})}function fo(e,t){return new Xr({check:`greater_than`,...D(t),value:e,inclusive:!0})}function po(e,t){return new Zr({check:`multiple_of`,...D(t),value:e})}function mo(e,t){return new $r({check:`max_length`,...D(t),maximum:e})}function ho(e,t){return new ei({check:`min_length`,...D(t),minimum:e})}function go(e,t){return new ti({check:`length_equals`,...D(t),length:e})}function _o(e,t){return new ri({check:`string_format`,format:`regex`,...D(t),pattern:e})}function vo(e){return new ii({check:`string_format`,format:`lowercase`,...D(e)})}function yo(e){return new ai({check:`string_format`,format:`uppercase`,...D(e)})}function bo(e,t){return new oi({check:`string_format`,format:`includes`,...D(t),includes:e})}function xo(e,t){return new si({check:`string_format`,format:`starts_with`,...D(t),prefix:e})}function So(e,t){return new ci({check:`string_format`,format:`ends_with`,...D(t),suffix:e})}function Co(e){return new li({check:`overwrite`,tx:e})}function wo(e){return Co(t=>t.normalize(e))}function To(){return Co(e=>e.trim())}function Eo(){return Co(e=>e.toLowerCase())}function Do(){return Co(e=>e.toUpperCase())}function Oo(){return Co(e=>On(e))}function ko(e,t,n){return new e({type:`array`,element:t,...D(n)})}function Ao(e,t,n){let r=D(n);return r.abort??=!0,new e({type:`custom`,check:`custom`,fn:t,...r})}function jo(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...D(n)})}function Mo(e){let t=No(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(Zn(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(Zn(r))}},e(n.value,n)));return t}function No(e,t){let n=new O({check:`custom`,...D(t)});return n._zod.check=e,n}function Po(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??Oa,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function j(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,j(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&M(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&o.schema._prefault&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Fo(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=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}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);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>
40
+
41
+ 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]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function Io(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);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e===`$ref`||e===`allOf`||e in a||delete i[e];if(s.$ref&&n.def)for(let e in i)e===`$ref`||e===`allOf`||e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e===`$ref`||e===`allOf`||e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}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 n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,`~standard`,{value:{...t[`~standard`],jsonSchema:{input:Ro(t,`input`,e.processors),output:Ro(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function M(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 M(r.element,n);if(r.type===`set`)return M(r.valueType,n);if(r.type===`lazy`)return M(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 M(r.innerType,n);if(r.type===`intersection`)return M(r.left,n)||M(r.right,n);if(r.type===`record`||r.type===`map`)return M(r.keyType,n)||M(r.valueType,n);if(r.type===`pipe`)return M(r.in,n)||M(r.out,n);if(r.type===`object`){for(let e in r.shape)if(M(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(M(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(M(e,n))return!0;return!!(r.rest&&M(r.rest,n))}return!1}var Lo=(e,t={})=>n=>{let r=Po({...n,processors:t});return j(e,r),Fo(r,e),Io(r,e)},Ro=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Po({...i??{},target:a,io:t,processors:n});return j(e,o),Fo(o,e),Io(o,e)},zo={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},Bo=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=zo[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Vo=(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)},Ho=(e,t,n,r)=>{n.type=`boolean`},Uo=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`BigInt cannot be represented in JSON Schema`)},Wo=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Symbols cannot be represented in JSON Schema`)},Go=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},Ko=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Undefined cannot be represented in JSON Schema`)},qo=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Void cannot be represented in JSON Schema`)},Jo=(e,t,n,r)=>{n.not={}},Yo=(e,t,n,r)=>{},Xo=(e,t,n,r)=>{},Zo=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Date cannot be represented in JSON Schema`)},Qo=(e,t,n,r)=>{let i=e._zod.def,a=vn(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},$o=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0)if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a},es=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`NaN cannot be represented in JSON Schema`)},ts=(e,t,n,r)=>{let i=n,a=e._zod.pattern;if(!a)throw Error(`Pattern not found in template literal`);i.type=`string`,i.pattern=a.source},ns=(e,t,n,r)=>{let i=n,a={type:`string`,format:`binary`,contentEncoding:`binary`},{minimum:o,maximum:s,mime:c}=e._zod.bag;o!==void 0&&(a.minLength=o),s!==void 0&&(a.maxLength=s),c?c.length===1?(a.contentMediaType=c[0],Object.assign(i,a)):(Object.assign(i,a),i.anyOf=c.map(e=>({contentMediaType:e}))):Object.assign(i,a)},rs=(e,t,n,r)=>{n.type=`boolean`},is=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},as=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Function types cannot be represented in JSON Schema`)},os=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},ss=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Map cannot be represented in JSON Schema`)},cs=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Set cannot be represented in JSON Schema`)},ls=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=j(a.element,t,{...r,path:[...r.path,`items`]})},us=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=j(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=j(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},ds=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>j(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},fs=(e,t,n,r)=>{let i=e._zod.def,a=j(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=j(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},ps=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>j(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?j(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null;t.target===`draft-2020-12`?(i.prefixItems=c,l&&(i.items=l)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),i.minItems=c.length,l||(i.maxItems=c.length)):(i.items=c,l&&(i.additionalItems=l));let{minimum:u,maximum:d}=e._zod.bag;typeof u==`number`&&(i.minItems=u),typeof d==`number`&&(i.maxItems=d)},ms=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=j(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else (t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=j(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=j(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},hs=(e,t,n,r)=>{let i=e._zod.def,a=j(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},gs=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},_s=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},vs=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},ys=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},bs=(e,t,n,r)=>{let i=e._zod.def,a=t.io===`input`?i.in._zod.def.type===`transform`?i.out:i.in:i.out;j(a,t,r);let o=t.seen.get(e);o.ref=a},xs=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},Ss=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Cs=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},ws=(e,t,n,r)=>{let i=e._zod.innerType;j(i,t,r);let a=t.seen.get(e);a.ref=i},Ts={string:Bo,number:Vo,boolean:Ho,bigint:Uo,symbol:Wo,null:Go,undefined:Ko,void:qo,never:Jo,any:Yo,unknown:Xo,date:Zo,enum:Qo,literal:$o,nan:es,template_literal:ts,file:ns,success:rs,custom:is,function:as,transform:os,map:ss,set:cs,array:ls,object:us,union:ds,intersection:fs,tuple:ps,record:ms,nullable:hs,nonoptional:gs,default:_s,prefault:vs,catch:ys,pipe:bs,readonly:xs,promise:Ss,optional:Cs,lazy:ws};function Es(e,t){if(`_idmap`in e){let n=e,r=Po({...t,processors:Ts}),i={};for(let e of n._idmap.entries()){let[t,n]=e;j(n,r)}let a={};r.external={registry:n,uri:t?.uri,defs:i};for(let e of n._idmap.entries()){let[t,n]=e;Fo(r,n),a[t]=Io(r,n)}return Object.keys(i).length>0&&(a.__shared={[r.target===`draft-2020-12`?`$defs`:`definitions`]:i}),{schemas:a}}let n=Po({...t,processors:Ts});return j(e,n),Fo(n,e),Io(n,e)}var Ds=T(`ZodISODateTime`,(e,t)=>{wi.init(e,t),F.init(e,t)});function Os(e){return Qa(Ds,e)}var ks=T(`ZodISODate`,(e,t)=>{Ti.init(e,t),F.init(e,t)});function As(e){return $a(ks,e)}var js=T(`ZodISOTime`,(e,t)=>{Ei.init(e,t),F.init(e,t)});function Ms(e){return eo(js,e)}var Ns=T(`ZodISODuration`,(e,t)=>{Di.init(e,t),F.init(e,t)});function Ps(e){return to(Ns,e)}var Fs=(e,t)=>{$n.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>nr(e,t)},flatten:{value:t=>tr(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,yn,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,yn,2)}},isEmpty:{get(){return e.issues.length===0}}})};T(`ZodError`,Fs);var Is=T(`ZodError`,Fs,{Parent:Error}),Ls=rr(Is),Rs=ir(Is),zs=ar(Is),Bs=sr(Is),Vs=lr(Is),Hs=ur(Is),Us=dr(Is),Ws=fr(Is),Gs=pr(Is),Ks=mr(Is),qs=hr(Is),Js=gr(Is),N=T(`ZodType`,(e,t)=>(k.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:Ro(e,`input`),output:Ro(e,`output`)}}),e.toJSONSchema=Lo(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(En(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0}),e.with=e.check,e.clone=(t,n)=>In(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>Ls(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>zs(e,t,n),e.parseAsync=async(t,n)=>Rs(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Bs(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Vs(e,t,n),e.decode=(t,n)=>Hs(e,t,n),e.encodeAsync=async(t,n)=>Us(e,t,n),e.decodeAsync=async(t,n)=>Ws(e,t,n),e.safeEncode=(t,n)=>Gs(e,t,n),e.safeDecode=(t,n)=>Ks(e,t,n),e.safeEncodeAsync=async(t,n)=>qs(e,t,n),e.safeDecodeAsync=async(t,n)=>Js(e,t,n),e.refine=(t,n)=>e.check(dl(t,n)),e.superRefine=t=>e.check(fl(t)),e.overwrite=t=>e.check(Co(t)),e.optional=()=>Wc(e),e.exactOptional=()=>Kc(e),e.nullable=()=>Jc(e),e.nullish=()=>Wc(Jc(e)),e.nonoptional=t=>el(e,t),e.array=()=>kc(e),e.or=t=>L([e,t]),e.and=t=>Fc(e,t),e.transform=t=>il(e,Hc(t)),e.default=t=>Xc(e,t),e.prefault=t=>Qc(e,t),e.catch=t=>nl(e,t),e.pipe=t=>il(e,t),e.readonly=()=>ol(e),e.describe=t=>{let n=e.clone();return Oa.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return Oa.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return Oa.get(e);let n=e.clone();return Oa.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=t=>t(e),e)),Ys=T(`_ZodString`,(e,t)=>{fi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bo(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(_o(...t)),e.includes=(...t)=>e.check(bo(...t)),e.startsWith=(...t)=>e.check(xo(...t)),e.endsWith=(...t)=>e.check(So(...t)),e.min=(...t)=>e.check(ho(...t)),e.max=(...t)=>e.check(mo(...t)),e.length=(...t)=>e.check(go(...t)),e.nonempty=(...t)=>e.check(ho(1,...t)),e.lowercase=t=>e.check(vo(t)),e.uppercase=t=>e.check(yo(t)),e.trim=()=>e.check(To()),e.normalize=(...t)=>e.check(wo(...t)),e.toLowerCase=()=>e.check(Eo()),e.toUpperCase=()=>e.check(Do()),e.slugify=()=>e.check(Oo())}),Xs=T(`ZodString`,(e,t)=>{fi.init(e,t),Ys.init(e,t),e.email=t=>e.check(Aa(Zs,t)),e.url=t=>e.check(Ia(ec,t)),e.jwt=t=>e.check(Za(hc,t)),e.emoji=t=>e.check(La(tc,t)),e.guid=t=>e.check(ja(Qs,t)),e.uuid=t=>e.check(Ma($s,t)),e.uuidv4=t=>e.check(Na($s,t)),e.uuidv6=t=>e.check(Pa($s,t)),e.uuidv7=t=>e.check(Fa($s,t)),e.nanoid=t=>e.check(Ra(nc,t)),e.guid=t=>e.check(ja(Qs,t)),e.cuid=t=>e.check(za(rc,t)),e.cuid2=t=>e.check(Ba(ic,t)),e.ulid=t=>e.check(Va(ac,t)),e.base64=t=>e.check(Ja(fc,t)),e.base64url=t=>e.check(Ya(pc,t)),e.xid=t=>e.check(Ha(oc,t)),e.ksuid=t=>e.check(Ua(sc,t)),e.ipv4=t=>e.check(Wa(cc,t)),e.ipv6=t=>e.check(Ga(lc,t)),e.cidrv4=t=>e.check(Ka(uc,t)),e.cidrv6=t=>e.check(qa(dc,t)),e.e164=t=>e.check(Xa(mc,t)),e.datetime=t=>e.check(Os(t)),e.date=t=>e.check(As(t)),e.time=t=>e.check(Ms(t)),e.duration=t=>e.check(Ps(t))});function P(e){return ka(Xs,e)}var F=T(`ZodStringFormat`,(e,t)=>{A.init(e,t),Ys.init(e,t)}),Zs=T(`ZodEmail`,(e,t)=>{hi.init(e,t),F.init(e,t)}),Qs=T(`ZodGUID`,(e,t)=>{pi.init(e,t),F.init(e,t)}),$s=T(`ZodUUID`,(e,t)=>{mi.init(e,t),F.init(e,t)}),ec=T(`ZodURL`,(e,t)=>{gi.init(e,t),F.init(e,t)}),tc=T(`ZodEmoji`,(e,t)=>{_i.init(e,t),F.init(e,t)}),nc=T(`ZodNanoID`,(e,t)=>{vi.init(e,t),F.init(e,t)}),rc=T(`ZodCUID`,(e,t)=>{yi.init(e,t),F.init(e,t)}),ic=T(`ZodCUID2`,(e,t)=>{bi.init(e,t),F.init(e,t)}),ac=T(`ZodULID`,(e,t)=>{xi.init(e,t),F.init(e,t)}),oc=T(`ZodXID`,(e,t)=>{Si.init(e,t),F.init(e,t)}),sc=T(`ZodKSUID`,(e,t)=>{Ci.init(e,t),F.init(e,t)}),cc=T(`ZodIPv4`,(e,t)=>{Oi.init(e,t),F.init(e,t)}),lc=T(`ZodIPv6`,(e,t)=>{ki.init(e,t),F.init(e,t)}),uc=T(`ZodCIDRv4`,(e,t)=>{Ai.init(e,t),F.init(e,t)}),dc=T(`ZodCIDRv6`,(e,t)=>{ji.init(e,t),F.init(e,t)}),fc=T(`ZodBase64`,(e,t)=>{Ni.init(e,t),F.init(e,t)}),pc=T(`ZodBase64URL`,(e,t)=>{Fi.init(e,t),F.init(e,t)}),mc=T(`ZodE164`,(e,t)=>{Ii.init(e,t),F.init(e,t)}),hc=T(`ZodJWT`,(e,t)=>{Ri.init(e,t),F.init(e,t)}),gc=T(`ZodNumber`,(e,t)=>{zi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Vo(e,t,n,r),e.gt=(t,n)=>e.check(uo(t,n)),e.gte=(t,n)=>e.check(fo(t,n)),e.min=(t,n)=>e.check(fo(t,n)),e.lt=(t,n)=>e.check(co(t,n)),e.lte=(t,n)=>e.check(lo(t,n)),e.max=(t,n)=>e.check(lo(t,n)),e.int=t=>e.check(yc(t)),e.safe=t=>e.check(yc(t)),e.positive=t=>e.check(uo(0,t)),e.nonnegative=t=>e.check(fo(0,t)),e.negative=t=>e.check(co(0,t)),e.nonpositive=t=>e.check(lo(0,t)),e.multipleOf=(t,n)=>e.check(po(t,n)),e.step=(t,n)=>e.check(po(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 _c(e){return no(gc,e)}var vc=T(`ZodNumberFormat`,(e,t)=>{Bi.init(e,t),gc.init(e,t)});function yc(e){return ro(vc,e)}var bc=T(`ZodBoolean`,(e,t)=>{Vi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ho(e,t,n,r)});function xc(e){return io(bc,e)}var Sc=T(`ZodNull`,(e,t)=>{Hi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Go(e,t,n,r)});function Cc(e){return ao(Sc,e)}var wc=T(`ZodUnknown`,(e,t)=>{Ui.init(e,t),N.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function Tc(){return oo(wc)}var Ec=T(`ZodNever`,(e,t)=>{Wi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jo(e,t,n,r)});function Dc(e){return so(Ec,e)}var Oc=T(`ZodArray`,(e,t)=>{Ki.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ls(e,t,n,r),e.element=t.element,e.min=(t,n)=>e.check(ho(t,n)),e.nonempty=t=>e.check(ho(1,t)),e.max=(t,n)=>e.check(mo(t,n)),e.length=(t,n)=>e.check(go(t,n)),e.unwrap=()=>e.element});function kc(e,t){return ko(Oc,e,t)}var Ac=T(`ZodObject`,(e,t)=>{Zi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>us(e,t,n,r),E(e,`shape`,()=>t.shape),e.keyof=()=>zc(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Tc()}),e.loose=()=>e.clone({...e._zod.def,catchall:Tc()}),e.strict=()=>e.clone({...e._zod.def,catchall:Dc()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>Vn(e,t),e.safeExtend=t=>Hn(e,t),e.merge=t=>Un(e,t),e.pick=t=>zn(e,t),e.omit=t=>Bn(e,t),e.partial=(...t)=>Wn(Uc,e,t[0]),e.required=(...t)=>Gn($c,e,t[0])});function I(e,t){return new Ac({type:`object`,shape:e??{},...D(t)})}var jc=T(`ZodUnion`,(e,t)=>{$i.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ds(e,t,n,r),e.options=t.options});function L(e,t){return new jc({type:`union`,options:e,...D(t)})}var Mc=T(`ZodDiscriminatedUnion`,(e,t)=>{jc.init(e,t),ea.init(e,t)});function Nc(e,t,n){return new Mc({type:`union`,options:t,discriminator:e,...D(n)})}var Pc=T(`ZodIntersection`,(e,t)=>{ta.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fs(e,t,n,r)});function Fc(e,t){return new Pc({type:`intersection`,left:e,right:t})}var Ic=T(`ZodRecord`,(e,t)=>{ia.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ms(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function Lc(e,t,n){return new Ic({type:`record`,keyType:e,valueType:t,...D(n)})}var Rc=T(`ZodEnum`,(e,t)=>{aa.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qo(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 Rc({...t,checks:[],...D(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 Rc({...t,checks:[],...D(r),entries:i})}});function zc(e,t){return new Rc({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...D(t)})}var Bc=T(`ZodLiteral`,(e,t)=>{oa.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$o(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,`value`,{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function R(e,t){return new Bc({type:`literal`,values:Array.isArray(e)?e:[e],...D(t)})}var Vc=T(`ZodTransform`,(e,t)=>{sa.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>os(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hn(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Zn(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(Zn(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Hc(e){return new Vc({type:`transform`,transform:e})}var Uc=T(`ZodOptional`,(e,t)=>{la.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Cs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Wc(e){return new Uc({type:`optional`,innerType:e})}var Gc=T(`ZodExactOptional`,(e,t)=>{ua.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Cs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Kc(e){return new Gc({type:`optional`,innerType:e})}var qc=T(`ZodNullable`,(e,t)=>{da.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>hs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Jc(e){return new qc({type:`nullable`,innerType:e})}var Yc=T(`ZodDefault`,(e,t)=>{fa.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_s(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Xc(e,t){return new Yc({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Nn(t)}})}var Zc=T(`ZodPrefault`,(e,t)=>{ma.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Qc(e,t){return new Zc({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Nn(t)}})}var $c=T(`ZodNonOptional`,(e,t)=>{ha.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>gs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function el(e,t){return new $c({type:`nonoptional`,innerType:e,...D(t)})}var tl=T(`ZodCatch`,(e,t)=>{_a.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ys(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function nl(e,t){return new tl({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var rl=T(`ZodPipe`,(e,t)=>{va.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>bs(e,t,n,r),e.in=t.in,e.out=t.out});function il(e,t){return new rl({type:`pipe`,in:e,out:t})}var al=T(`ZodReadonly`,(e,t)=>{ba.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>xs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ol(e){return new al({type:`readonly`,innerType:e})}var sl=T(`ZodLazy`,(e,t)=>{Sa.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ws(e,t,n,r),e.unwrap=()=>e._zod.def.getter()});function cl(e){return new sl({type:`lazy`,getter:e})}var ll=T(`ZodCustom`,(e,t)=>{Ca.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>is(e,t,n,r)});function ul(e,t){return Ao(ll,e??(()=>!0),t)}function dl(e,t={}){return jo(ll,e,t)}function fl(e){return Mo(e)}function pl(e,t={}){let n=new ll({type:`custom`,check:`custom`,fn:t=>t instanceof e,abort:!0,...D(t)});return n._zod.bag.Class=e,n._zod.check=t=>{t.value instanceof e||t.issues.push({code:`invalid_type`,expected:e.name,input:t.value,inst:n,path:[...n._zod.def.path??[]]})},n}var z;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(z||={});var ml;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(ml||={});var B=z.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),hl=e=>{switch(typeof e){case`undefined`:return B.undefined;case`string`:return B.string;case`number`:return Number.isNaN(e)?B.nan:B.number;case`boolean`:return B.boolean;case`function`:return B.function;case`bigint`:return B.bigint;case`symbol`:return B.symbol;case`object`:return Array.isArray(e)?B.array:e===null?B.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?B.promise:typeof Map<`u`&&e instanceof Map?B.map:typeof Set<`u`&&e instanceof Set?B.set:typeof Date<`u`&&e instanceof Date?B.date:B.object;default:return B.unknown}},V=z.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]),gl=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);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(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,z.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t=Object.create(null),n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};gl.create=e=>new gl(e);var _l=(e,t)=>{let n;switch(e.code){case V.invalid_type:n=e.received===B.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case V.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,z.jsonStringifyReplacer)}`;break;case V.unrecognized_keys:n=`Unrecognized key(s) in object: ${z.joinValues(e.keys,`, `)}`;break;case V.invalid_union:n=`Invalid input`;break;case V.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${z.joinValues(e.options)}`;break;case V.invalid_enum_value:n=`Invalid enum value. Expected ${z.joinValues(e.options)}, received '${e.received}'`;break;case V.invalid_arguments:n=`Invalid function arguments`;break;case V.invalid_return_type:n=`Invalid function return type`;break;case V.invalid_date:n=`Invalid date`;break;case V.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:z.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case V.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case V.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case V.custom:n=`Invalid input`;break;case V.invalid_intersection_types:n=`Intersection results could not be merged`;break;case V.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case V.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,z.assertNever(e)}return{message:n}},vl=_l;function yl(){return vl}var bl=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function H(e,t){let n=yl(),r=bl({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===_l?void 0:_l].filter(e=>!!e)});e.common.issues.push(r)}var U=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return W;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return W;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}},W=Object.freeze({status:`aborted`}),xl=e=>({status:`dirty`,value:e}),G=e=>({status:`valid`,value:e}),Sl=e=>e.status===`aborted`,Cl=e=>e.status===`dirty`,wl=e=>e.status===`valid`,Tl=e=>typeof Promise<`u`&&e instanceof Promise,K;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(K||={});var El=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Dl=(e,t)=>{if(wl(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){return this._error||=new gl(e.common.issues),this._error}}};function q(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var J=class{get description(){return this._def.description}_getType(e){return hl(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:hl(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new U,ctx:{common:e.parent.common,data:e.data,parsedType:hl(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(Tl(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:hl(e)};return Dl(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:hl(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return wl(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>wl(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:hl(e)},r=this._parse({data:e,path:n.path,parent:n});return Dl(n,await(Tl(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:V.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new Au({schema:this,typeName:Y.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return ju.create(this,this._def)}nullable(){return Mu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return du.create(this)}promise(){return ku.create(this,this._def)}or(e){return mu.create([this,e],this._def)}and(e){return vu.create(this,e,this._def)}transform(e){return new Au({...q(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new Nu({...q(this._def),innerType:this,defaultValue:t,typeName:Y.ZodDefault})}brand(){return new Iu({typeName:Y.ZodBranded,type:this,...q(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new Pu({...q(this._def),innerType:this,catchValue:t,typeName:Y.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return Lu.create(this,e)}readonly(){return Ru.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Ol=/^c[^\s-]{8,}$/i,kl=/^[0-9a-z]+$/,Al=/^[0-9A-HJKMNP-TV-Z]{26}$/i,jl=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ml=/^[a-z0-9_-]{21}$/i,Nl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Pl=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Fl=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Il=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,Ll,Rl=/^(?:(?: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])$/,zl=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,Bl=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Vl=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Hl=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ul=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Wl=`((\\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])))`,Gl=RegExp(`^${Wl}$`);function Kl(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function ql(e){return RegExp(`^${Kl(e)}$`)}function Jl(e){let t=`${Wl}T${Kl(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function Yl(e,t){return!!((t===`v4`||!t)&&Rl.test(e)||(t===`v6`||!t)&&Bl.test(e))}function Xl(e,t){if(!Nl.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function Zl(e,t){return!!((t===`v4`||!t)&&zl.test(e)||(t===`v6`||!t)&&Vl.test(e))}var Ql=class e extends J{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==B.string){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.string,received:t.parsedType}),W}let t=new U,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),H(n,{code:V.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),H(n,{code:V.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?H(n,{code:V.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&H(n,{code:V.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)Fl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`email`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)Ll||=new RegExp(Il,`u`),Ll.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`emoji`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)jl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`uuid`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)Ml.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`nanoid`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)Ol.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`cuid`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)kl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`cuid2`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Al.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`ulid`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),H(n,{validation:`url`,code:V.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`regex`,code:V.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Jl(r).test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Gl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?ql(r).test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Pl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`duration`,code:V.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?Yl(e.data,r.version)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`ip`,code:V.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Xl(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`jwt`,code:V.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Zl(e.data,r.version)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`cidr`,code:V.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Hl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`base64`,code:V.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Ul.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`base64url`,code:V.invalid_string,message:r.message}),t.dirty()):z.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:V.invalid_string,...K.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...K.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...K.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...K.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...K.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...K.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...K.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...K.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...K.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...K.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...K.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...K.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...K.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...K.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...K.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...K.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...K.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...K.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...K.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...K.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...K.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...K.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...K.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...K.errToObj(t)})}nonempty(e){return this.min(1,K.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};Ql.create=e=>new Ql({checks:[],typeName:Y.ZodString,coerce:e?.coerce??!1,...q(e)});function $l(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var eu=class e extends J{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==B.number){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.number,received:t.parsedType}),W}let t,n=new U;for(let r of this._def.checks)r.kind===`int`?z.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),H(t,{code:V.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?$l(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),H(t,{code:V.not_finite,message:r.message}),n.dirty()):z.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,K.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,K.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,K.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,K.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:K.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:K.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:K.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:K.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:K.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:K.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:K.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:K.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:K.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:K.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&z.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};eu.create=e=>new eu({checks:[],typeName:Y.ZodNumber,coerce:e?.coerce||!1,...q(e)});var tu=class e extends J{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==B.bigint)return this._getInvalidInput(e);let t,n=new U;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):z.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.bigint,received:t.parsedType}),W}gte(e,t){return this.setLimit(`min`,e,!0,K.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,K.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,K.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,K.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:K.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:K.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:K.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:K.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:K.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:K.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};tu.create=e=>new tu({checks:[],typeName:Y.ZodBigInt,coerce:e?.coerce??!1,...q(e)});var nu=class extends J{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==B.boolean){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.boolean,received:t.parsedType}),W}return G(e.data)}};nu.create=e=>new nu({typeName:Y.ZodBoolean,coerce:e?.coerce||!1,...q(e)});var ru=class e extends J{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==B.date){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.date,received:t.parsedType}),W}if(Number.isNaN(e.data.getTime()))return H(this._getOrReturnCtx(e),{code:V.invalid_date}),W;let t=new U,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),H(n,{code:V.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),H(n,{code:V.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):z.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:K.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:K.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};ru.create=e=>new ru({checks:[],coerce:e?.coerce||!1,typeName:Y.ZodDate,...q(e)});var iu=class extends J{_parse(e){if(this._getType(e)!==B.symbol){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.symbol,received:t.parsedType}),W}return G(e.data)}};iu.create=e=>new iu({typeName:Y.ZodSymbol,...q(e)});var au=class extends J{_parse(e){if(this._getType(e)!==B.undefined){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.undefined,received:t.parsedType}),W}return G(e.data)}};au.create=e=>new au({typeName:Y.ZodUndefined,...q(e)});var ou=class extends J{_parse(e){if(this._getType(e)!==B.null){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.null,received:t.parsedType}),W}return G(e.data)}};ou.create=e=>new ou({typeName:Y.ZodNull,...q(e)});var su=class extends J{constructor(){super(...arguments),this._any=!0}_parse(e){return G(e.data)}};su.create=e=>new su({typeName:Y.ZodAny,...q(e)});var cu=class extends J{constructor(){super(...arguments),this._unknown=!0}_parse(e){return G(e.data)}};cu.create=e=>new cu({typeName:Y.ZodUnknown,...q(e)});var lu=class extends J{_parse(e){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.never,received:t.parsedType}),W}};lu.create=e=>new lu({typeName:Y.ZodNever,...q(e)});var uu=class extends J{_parse(e){if(this._getType(e)!==B.undefined){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.void,received:t.parsedType}),W}return G(e.data)}};uu.create=e=>new uu({typeName:Y.ZodVoid,...q(e)});var du=class e extends J{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==B.array)return H(t,{code:V.invalid_type,expected:B.array,received:t.parsedType}),W;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(H(t,{code:e?V.too_big:V.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(H(t,{code:V.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(H(t,{code:V.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new El(t,e,t.path,n)))).then(e=>U.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new El(t,e,t.path,n)));return U.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:K.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:K.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:K.toString(n)}})}nonempty(e){return this.min(1,e)}};du.create=(e,t)=>new du({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...q(t)});function fu(e){if(e instanceof pu){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ju.create(fu(r))}return new pu({...e._def,shape:()=>t})}else if(e instanceof du)return new du({...e._def,type:fu(e.element)});else if(e instanceof ju)return ju.create(fu(e.unwrap()));else if(e instanceof Mu)return Mu.create(fu(e.unwrap()));else if(e instanceof yu)return yu.create(e.items.map(e=>fu(e)));else return e}var pu=class e extends J{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape();return this._cached={shape:e,keys:z.objectKeys(e)},this._cached}_parse(e){if(this._getType(e)!==B.object){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.object,received:t.parsedType}),W}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof lu&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new El(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof lu){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(H(n,{code:V.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new El(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>U.mergeObjectSync(t,e)):U.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return K.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:K.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Y.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of z.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of z.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return fu(this)}partial(t){let n={};for(let e of z.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of z.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof ju;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return Eu(z.objectKeys(this.shape))}};pu.create=(e,t)=>new pu({shape:()=>e,unknownKeys:`strip`,catchall:lu.create(),typeName:Y.ZodObject,...q(t)}),pu.strictCreate=(e,t)=>new pu({shape:()=>e,unknownKeys:`strict`,catchall:lu.create(),typeName:Y.ZodObject,...q(t)}),pu.lazycreate=(e,t)=>new pu({shape:e,unknownKeys:`strip`,catchall:lu.create(),typeName:Y.ZodObject,...q(t)});var mu=class extends J{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new gl(e.ctx.common.issues));return H(t,{code:V.invalid_union,unionErrors:n}),W}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new gl(e));return H(t,{code:V.invalid_union,unionErrors:i}),W}}get options(){return this._def.options}};mu.create=(e,t)=>new mu({options:e,typeName:Y.ZodUnion,...q(t)});var hu=e=>e instanceof wu?hu(e.schema):e instanceof Au?hu(e.innerType()):e instanceof Tu?[e.value]:e instanceof Du?e.options:e instanceof Ou?z.objectValues(e.enum):e instanceof Nu?hu(e._def.innerType):e instanceof au?[void 0]:e instanceof ou?[null]:e instanceof ju?[void 0,...hu(e.unwrap())]:e instanceof Mu?[null,...hu(e.unwrap())]:e instanceof Iu||e instanceof Ru?hu(e.unwrap()):e instanceof Pu?hu(e._def.innerType):[],gu=class e extends J{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==B.object)return H(t,{code:V.invalid_type,expected:B.object,received:t.parsedType}),W;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(H(t,{code:V.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),W)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=hu(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:Y.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...q(r)})}};function _u(e,t){let n=hl(e),r=hl(t);if(e===t)return{valid:!0,data:e};if(n===B.object&&r===B.object){let n=z.objectKeys(t),r=z.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=_u(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===B.array&&r===B.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=_u(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===B.date&&r===B.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var vu=class extends J{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(Sl(e)||Sl(r))return W;let i=_u(e.value,r.value);return i.valid?((Cl(e)||Cl(r))&&t.dirty(),{status:t.value,value:i.data}):(H(n,{code:V.invalid_intersection_types}),W)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};vu.create=(e,t,n)=>new vu({left:e,right:t,typeName:Y.ZodIntersection,...q(n)});var yu=class e extends J{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==B.array)return H(n,{code:V.invalid_type,expected:B.array,received:n.parsedType}),W;if(n.data.length<this._def.items.length)return H(n,{code:V.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),W;!this._def.rest&&n.data.length>this._def.items.length&&(H(n,{code:V.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new El(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>U.mergeArray(t,e)):U.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};yu.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new yu({items:e,typeName:Y.ZodTuple,rest:null,...q(t)})};var bu=class e extends J{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==B.object)return H(n,{code:V.invalid_type,expected:B.object,received:n.parsedType}),W;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new El(n,e,n.path,e)),value:a._parse(new El(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?U.mergeObjectAsync(t,r):U.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof J?new e({keyType:t,valueType:n,typeName:Y.ZodRecord,...q(r)}):new e({keyType:Ql.create(),valueType:t,typeName:Y.ZodRecord,...q(n)})}},xu=class extends J{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==B.map)return H(n,{code:V.invalid_type,expected:B.map,received:n.parsedType}),W;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new El(n,e,n.path,[a,`key`])),value:i._parse(new El(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return W;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return W;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};xu.create=(e,t,n)=>new xu({valueType:t,keyType:e,typeName:Y.ZodMap,...q(n)});var Su=class e extends J{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==B.set)return H(n,{code:V.invalid_type,expected:B.set,received:n.parsedType}),W;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(H(n,{code:V.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(H(n,{code:V.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return W;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new El(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:K.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:K.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Su.create=(e,t)=>new Su({valueType:e,minSize:null,maxSize:null,typeName:Y.ZodSet,...q(t)});var Cu=class e extends J{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==B.function)return H(t,{code:V.invalid_type,expected:B.function,received:t.parsedType}),W;function n(e,n){return bl({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,yl(),_l].filter(e=>!!e),issueData:{code:V.invalid_arguments,argumentsError:n}})}function r(e,n){return bl({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,yl(),_l].filter(e=>!!e),issueData:{code:V.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof ku){let e=this;return G(async function(...t){let o=new gl([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return G(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new gl([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new gl([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:yu.create(t).rest(cu.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||yu.create([]).rest(cu.create()),returns:n||cu.create(),typeName:Y.ZodFunction,...q(r)})}},wu=class extends J{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};wu.create=(e,t)=>new wu({getter:e,typeName:Y.ZodLazy,...q(t)});var Tu=class extends J{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return H(t,{received:t.data,code:V.invalid_literal,expected:this._def.value}),W}return{status:`valid`,value:e.data}}get value(){return this._def.value}};Tu.create=(e,t)=>new Tu({value:e,typeName:Y.ZodLiteral,...q(t)});function Eu(e,t){return new Du({values:e,typeName:Y.ZodEnum,...q(t)})}var Du=class e extends J{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return H(t,{expected:z.joinValues(n),received:t.parsedType,code:V.invalid_type}),W}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return H(t,{received:t.data,code:V.invalid_enum_value,options:n}),W}return G(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};Du.create=Eu;var Ou=class extends J{_parse(e){let t=z.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==B.string&&n.parsedType!==B.number){let e=z.objectValues(t);return H(n,{expected:z.joinValues(e),received:n.parsedType,code:V.invalid_type}),W}if(this._cache||=new Set(z.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=z.objectValues(t);return H(n,{received:n.data,code:V.invalid_enum_value,options:e}),W}return G(e.data)}get enum(){return this._def.values}};Ou.create=(e,t)=>new Ou({values:e,typeName:Y.ZodNativeEnum,...q(t)});var ku=class extends J{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==B.promise&&t.common.async===!1?(H(t,{code:V.invalid_type,expected:B.promise,received:t.parsedType}),W):G((t.parsedType===B.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};ku.create=(e,t)=>new ku({type:e,typeName:Y.ZodPromise,...q(t)});var Au=class extends J{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{H(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return W;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?W:r.status===`dirty`||t.value===`dirty`?xl(r.value):r});{if(t.value===`aborted`)return W;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?W:r.status===`dirty`||t.value===`dirty`?xl(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?W:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?W:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!wl(e))return W;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>wl(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):W);z.assertNever(r)}};Au.create=(e,t,n)=>new Au({schema:e,typeName:Y.ZodEffects,effect:t,...q(n)}),Au.createWithPreprocess=(e,t,n)=>new Au({schema:t,effect:{type:`preprocess`,transform:e},typeName:Y.ZodEffects,...q(n)});var ju=class extends J{_parse(e){return this._getType(e)===B.undefined?G(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ju.create=(e,t)=>new ju({innerType:e,typeName:Y.ZodOptional,...q(t)});var Mu=class extends J{_parse(e){return this._getType(e)===B.null?G(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Mu.create=(e,t)=>new Mu({innerType:e,typeName:Y.ZodNullable,...q(t)});var Nu=class extends J{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===B.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Nu.create=(e,t)=>new Nu({innerType:e,typeName:Y.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...q(t)});var Pu=class extends J{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Tl(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new gl(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new gl(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Pu.create=(e,t)=>new Pu({innerType:e,typeName:Y.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...q(t)});var Fu=class extends J{_parse(e){if(this._getType(e)!==B.nan){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.nan,received:t.parsedType}),W}return{status:`valid`,value:e.data}}};Fu.create=e=>new Fu({typeName:Y.ZodNaN,...q(e)});var Iu=class extends J{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},Lu=class e extends J{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?W:e.status===`dirty`?(t.dirty(),xl(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?W:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:Y.ZodPipeline})}},Ru=class extends J{_parse(e){let t=this._def.innerType._parse(e),n=e=>(wl(e)&&(e.value=Object.freeze(e.value)),e);return Tl(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};Ru.create=(e,t)=>new Ru({innerType:e,typeName:Y.ZodReadonly,...q(t)}),pu.lazycreate;var Y;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(Y||={}),Ql.create,eu.create,Fu.create,tu.create,nu.create,ru.create,iu.create,au.create,ou.create,su.create,cu.create,lu.create,uu.create,du.create,pu.create,pu.strictCreate,mu.create,gu.create,vu.create,yu.create,bu.create,xu.create,Su.create,Cu.create,wu.create,Tu.create,Du.create,Ou.create,ku.create,Au.create,ju.create,Mu.create,Au.createWithPreprocess,Lu.create;var{btoa:zu,atob:Bu}=globalThis,Vu=({prefix:e,size:t=16,alphabet:n=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,separator:r=`-`}={})=>{let i=()=>{let e=n.length,r=Array(t);for(let i=0;i<t;i++)r[i]=n[Math.random()*e|0];return r.join(``)};if(e==null)return i;if(n.includes(r))throw new en({argument:`separator`,message:`The separator "${r}" must not be part of the alphabet "${n}".`});return()=>`${e}${r}${i()}`};Vu();var Hu=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Uu=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function Wu(e){let t=JSON.parse(e);return typeof t!=`object`||!t||Hu.test(e)===!1&&Uu.test(e)===!1?t:Gu(t)}function Gu(e){let t=[e];for(;t.length;){let e=t;t=[];for(let n of e){if(Object.prototype.hasOwnProperty.call(n,`__proto__`)||Object.prototype.hasOwnProperty.call(n,`constructor`)&&n.constructor!==null&&typeof n.constructor==`object`&&Object.prototype.hasOwnProperty.call(n.constructor,`prototype`))throw SyntaxError(`Object contains forbidden prototype property`);for(let e in n){let r=n[e];r&&typeof r==`object`&&t.push(r)}}}return e}function Ku(e){let{stackTraceLimit:t}=Error;try{Error.stackTraceLimit=0}catch{return Wu(e)}try{return Wu(e)}finally{Error.stackTraceLimit=t}}function qu(e){if(e.type===`object`||Array.isArray(e.type)&&e.type.includes(`object`)){e.additionalProperties=!1;let{properties:t}=e;if(t!=null)for(let e of Object.keys(t))t[e]=Ju(t[e])}e.items!=null&&(e.items=Array.isArray(e.items)?e.items.map(Ju):Ju(e.items)),e.anyOf!=null&&(e.anyOf=e.anyOf.map(Ju)),e.allOf!=null&&(e.allOf=e.allOf.map(Ju)),e.oneOf!=null&&(e.oneOf=e.oneOf.map(Ju));let{definitions:t}=e;if(t!=null)for(let e of Object.keys(t))t[e]=Ju(t[e]);return e}function Ju(e){return typeof e==`boolean`?e:qu(e)}var Yu=Symbol(`Let zodToJsonSchema decide on which parser to use`),Xu={name:void 0,$refStrategy:`root`,basePath:[`#`],effectStrategy:`input`,pipeStrategy:`all`,dateStrategy:`format:date-time`,mapStrategy:`entries`,removeAdditionalStrategy:`passthrough`,allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:`definitions`,strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:`escape`,applyRegexFlags:!1,emailStrategy:`format:email`,base64Strategy:`contentEncoding:base64`,nameStrategy:`ref`},Zu=e=>typeof e==`string`?{...Xu,name:e}:{...Xu,...e};function X(){return{}}function Qu(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==Y.ZodAny&&(n.items=Q(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&(n.minItems=e.minLength.value),e.maxLength&&(n.maxItems=e.maxLength.value),e.exactLength&&(n.minItems=e.exactLength.value,n.maxItems=e.exactLength.value),n}function $u(e){let t={type:`integer`,format:`int64`};if(!e.checks)return t;for(let n of e.checks)switch(n.kind){case`min`:n.inclusive?t.minimum=n.value:t.exclusiveMinimum=n.value;break;case`max`:n.inclusive?t.maximum=n.value:t.exclusiveMaximum=n.value;break;case`multipleOf`:t.multipleOf=n.value;break}return t}function ed(){return{type:`boolean`}}function td(e,t){return Q(e.type._def,t)}var nd=(e,t)=>Q(e.innerType._def,t);function rd(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>rd(e,t,n))};switch(r){case`string`:case`format:date-time`:return{type:`string`,format:`date-time`};case`format:date`:return{type:`string`,format:`date`};case`integer`:return id(e)}}var id=e=>{let t={type:`integer`,format:`unix-time`};for(let n of e.checks)switch(n.kind){case`min`:t.minimum=n.value;break;case`max`:t.maximum=n.value;break}return t};function ad(e,t){return{...Q(e.innerType._def,t),default:e.defaultValue()}}function od(e,t){return t.effectStrategy===`input`?Q(e.schema._def,t):X()}function sd(e){return{type:`string`,enum:Array.from(e.values)}}var cd=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function ld(e,t){let n=[Q(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),Q(e.right._def,{...t,currentPath:[...t.currentPath,`allOf`,`1`]})].filter(e=>!!e),r=[];return n.forEach(e=>{if(cd(e))r.push(...e.allOf);else{let t=e;if(`additionalProperties`in e&&e.additionalProperties===!1){let{additionalProperties:n,...r}=e;t=r}r.push(t)}}),r.length?{allOf:r}:void 0}function ud(e){let t=typeof e.value;return t!==`bigint`&&t!==`number`&&t!==`boolean`&&t!==`string`?{type:Array.isArray(e.value)?`array`:`object`}:{type:t===`bigint`?`integer`:t,const:e.value}}var dd=void 0,fd={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(dd===void 0&&(dd=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),dd),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function pd(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:n.minLength=typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value;break;case`max`:n.maxLength=typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value;break;case`email`:switch(t.emailStrategy){case`format:email`:_d(n,`email`,r.message,t);break;case`format:idn-email`:_d(n,`idn-email`,r.message,t);break;case`pattern:zod`:Z(n,fd.email,r.message,t);break}break;case`url`:_d(n,`uri`,r.message,t);break;case`uuid`:_d(n,`uuid`,r.message,t);break;case`regex`:Z(n,r.regex,r.message,t);break;case`cuid`:Z(n,fd.cuid,r.message,t);break;case`cuid2`:Z(n,fd.cuid2,r.message,t);break;case`startsWith`:Z(n,RegExp(`^${md(r.value,t)}`),r.message,t);break;case`endsWith`:Z(n,RegExp(`${md(r.value,t)}$`),r.message,t);break;case`datetime`:_d(n,`date-time`,r.message,t);break;case`date`:_d(n,`date`,r.message,t);break;case`time`:_d(n,`time`,r.message,t);break;case`duration`:_d(n,`duration`,r.message,t);break;case`length`:n.minLength=typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,n.maxLength=typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value;break;case`includes`:Z(n,RegExp(md(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&_d(n,`ipv4`,r.message,t),r.version!==`v4`&&_d(n,`ipv6`,r.message,t);break;case`base64url`:Z(n,fd.base64url,r.message,t);break;case`jwt`:Z(n,fd.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&Z(n,fd.ipv4Cidr,r.message,t),r.version!==`v4`&&Z(n,fd.ipv6Cidr,r.message,t);break;case`emoji`:Z(n,fd.emoji(),r.message,t);break;case`ulid`:Z(n,fd.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:_d(n,`binary`,r.message,t);break;case`contentEncoding:base64`:n.contentEncoding=`base64`;break;case`pattern:zod`:Z(n,fd.base64,r.message,t);break}break;case`nanoid`:Z(n,fd.nanoid,r.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:}return n}function md(e,t){return t.patternStrategy===`escape`?gd(e):e}var hd=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function gd(e){let t=``;for(let n=0;n<e.length;n++)hd.has(e[n])||(t+=`\\`),t+=e[n];return t}function _d(e,t,n,r){e.format||e.anyOf?.some(e=>e.format)?(e.anyOf||=[],e.format&&(e.anyOf.push({format:e.format}),delete e.format),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):e.format=t}function Z(e,t,n,r){e.pattern||e.allOf?.some(e=>e.pattern)?(e.allOf||=[],e.pattern&&(e.allOf.push({pattern:e.pattern}),delete e.pattern),e.allOf.push({pattern:vd(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):e.pattern=vd(t,r)}function vd(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes(`i`),m:e.flags.includes(`m`),s:e.flags.includes(`s`)},r=n.i?e.source.toLowerCase():e.source,i=``,a=!1,o=!1,s=!1;for(let e=0;e<r.length;e++){if(a){i+=r[e],a=!1;continue}if(n.i){if(o){if(r[e].match(/[a-z]/)){s?(i+=r[e],i+=`${r[e-2]}-${r[e]}`.toUpperCase(),s=!1):r[e+1]===`-`&&r[e+2]?.match(/[a-z]/)?(i+=r[e],s=!0):i+=`${r[e]}${r[e].toUpperCase()}`;continue}}else if(r[e].match(/[a-z]/)){i+=`[${r[e]}${r[e].toUpperCase()}]`;continue}}if(n.m){if(r[e]===`^`){i+=`(^|(?<=[\r
42
+ ]))`;continue}else if(r[e]===`$`){i+=`($|(?=[\r
43
+ ]))`;continue}}if(n.s&&r[e]===`.`){i+=o?`${r[e]}\r
44
+ `:`[${r[e]}\r
45
+ ]`;continue}i+=r[e],r[e]===`\\`?a=!0:o&&r[e]===`]`?o=!1:!o&&r[e]===`[`&&(o=!0)}try{new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join(`/`)} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return i}function yd(e,t){let n={type:`object`,additionalProperties:Q(e.valueType._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??t.allowedAdditionalProperties};if(e.keyType?._def.typeName===Y.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=pd(e.keyType._def,t);return{...n,propertyNames:i}}else if(e.keyType?._def.typeName===Y.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};else if(e.keyType?._def.typeName===Y.ZodBranded&&e.keyType._def.type._def.typeName===Y.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...i}=td(e.keyType._def,t);return{...n,propertyNames:i}}return n}function bd(e,t){return t.mapStrategy===`record`?yd(e,t):{type:`array`,maxItems:125,items:{type:`array`,items:[Q(e.keyType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`0`]})||X(),Q(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`1`]})||X()],minItems:2,maxItems:2}}}function xd(e){let t=e.values,n=Object.keys(e.values).filter(e=>typeof t[t[e]]!=`number`).map(e=>t[e]),r=Array.from(new Set(n.map(e=>typeof e)));return{type:r.length===1?r[0]===`string`?`string`:`number`:[`string`,`number`],enum:n}}function Sd(){return{not:X()}}function Cd(){return{type:`null`}}var wd={ZodString:`string`,ZodNumber:`number`,ZodBigInt:`integer`,ZodBoolean:`boolean`,ZodNull:`null`};function Td(e,t){let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(e=>e._def.typeName in wd&&(!e._def.checks||!e._def.checks.length))){let e=n.reduce((e,t)=>{let n=wd[t._def.typeName];return n&&!e.includes(n)?[...e,n]:e},[]);return{type:e.length>1?e:e[0]}}else if(n.every(e=>e._def.typeName===`ZodLiteral`&&!e.description)){let e=n.reduce((e,t)=>{let n=typeof t._def.value;switch(n){case`string`:case`number`:case`boolean`:return[...e,n];case`bigint`:return[...e,`integer`];case`object`:if(t._def.value===null)return[...e,`null`];default:return e}},[]);if(e.length===n.length){let t=e.filter((e,t,n)=>n.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:n.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(n.every(e=>e._def.typeName===`ZodEnum`))return{type:`string`,enum:n.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return Ed(e,t)}var Ed=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,n)=>Q(e._def,{...t,currentPath:[...t.currentPath,`anyOf`,`${n}`]})).filter(e=>!!e&&(!t.strictUnions||typeof e==`object`&&Object.keys(e).length>0));return n.length?{anyOf:n}:void 0};function Dd(e,t){if([`ZodString`,`ZodNumber`,`ZodBigInt`,`ZodBoolean`,`ZodNull`].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return{type:[wd[e.innerType._def.typeName],`null`]};let n=Q(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`0`]});return n&&{anyOf:[n,{type:`null`}]}}function Od(e){let t={type:`number`};if(!e.checks)return t;for(let n of e.checks)switch(n.kind){case`int`:t.type=`integer`;break;case`min`:n.inclusive?t.minimum=n.value:t.exclusiveMinimum=n.value;break;case`max`:n.inclusive?t.maximum=n.value:t.exclusiveMaximum=n.value;break;case`multipleOf`:t.multipleOf=n.value;break}return t}function kd(e,t){let n={type:`object`,properties:{}},r=[],i=e.shape();for(let e in i){let a=i[e];if(a===void 0||a._def===void 0)continue;let o=jd(a),s=Q(a._def,{...t,currentPath:[...t.currentPath,`properties`,e],propertyPath:[...t.currentPath,`properties`,e]});s!==void 0&&(n.properties[e]=s,o||r.push(e))}r.length&&(n.required=r);let a=Ad(e,t);return a!==void 0&&(n.additionalProperties=a),n}function Ad(e,t){if(e.catchall._def.typeName!==`ZodNever`)return Q(e.catchall._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]});switch(e.unknownKeys){case`passthrough`:return t.allowedAdditionalProperties;case`strict`:return t.rejectedAdditionalProperties;case`strip`:return t.removeAdditionalStrategy===`strict`?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function jd(e){try{return e.isOptional()}catch{return!0}}var Md=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return Q(e.innerType._def,t);let n=Q(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`1`]});return n?{anyOf:[{not:X()},n]}:X()},Nd=(e,t)=>{if(t.pipeStrategy===`input`)return Q(e.in._def,t);if(t.pipeStrategy===`output`)return Q(e.out._def,t);let n=Q(e.in._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]});return{allOf:[n,Q(e.out._def,{...t,currentPath:[...t.currentPath,`allOf`,n?`1`:`0`]})].filter(e=>e!==void 0)}};function Pd(e,t){return Q(e.type._def,t)}function Fd(e,t){let n={type:`array`,uniqueItems:!0,items:Q(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`]})};return e.minSize&&(n.minItems=e.minSize.value),e.maxSize&&(n.maxItems=e.maxSize.value),n}function Id(e,t){return e.rest?{type:`array`,minItems:e.items.length,items:e.items.map((e,n)=>Q(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[]),additionalItems:Q(e.rest._def,{...t,currentPath:[...t.currentPath,`additionalItems`]})}:{type:`array`,minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,n)=>Q(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[])}}function Ld(){return{not:X()}}function Rd(){return X()}var zd=(e,t)=>Q(e.innerType._def,t),Bd=(e,t,n)=>{switch(t){case Y.ZodString:return pd(e,n);case Y.ZodNumber:return Od(e);case Y.ZodObject:return kd(e,n);case Y.ZodBigInt:return $u(e);case Y.ZodBoolean:return ed();case Y.ZodDate:return rd(e,n);case Y.ZodUndefined:return Ld();case Y.ZodNull:return Cd();case Y.ZodArray:return Qu(e,n);case Y.ZodUnion:case Y.ZodDiscriminatedUnion:return Td(e,n);case Y.ZodIntersection:return ld(e,n);case Y.ZodTuple:return Id(e,n);case Y.ZodRecord:return yd(e,n);case Y.ZodLiteral:return ud(e);case Y.ZodEnum:return sd(e);case Y.ZodNativeEnum:return xd(e);case Y.ZodNullable:return Dd(e,n);case Y.ZodOptional:return Md(e,n);case Y.ZodMap:return bd(e,n);case Y.ZodSet:return Fd(e,n);case Y.ZodLazy:return()=>e.getter()._def;case Y.ZodPromise:return Pd(e,n);case Y.ZodNaN:case Y.ZodNever:return Sd();case Y.ZodEffects:return od(e,n);case Y.ZodAny:return X();case Y.ZodUnknown:return Rd();case Y.ZodDefault:return ad(e,n);case Y.ZodBranded:return td(e,n);case Y.ZodReadonly:return zd(e,n);case Y.ZodCatch:return nd(e,n);case Y.ZodPipeline:return Nd(e,n);case Y.ZodFunction:case Y.ZodVoid:case Y.ZodSymbol:return;default:return(e=>void 0)(t)}},Vd=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];n++);return[(e.length-n).toString(),...t.slice(n)].join(`/`)};function Q(e,t,n=!1){let r=t.seen.get(e);if(t.override){let i=t.override?.call(t,e,t,r,n);if(i!==Yu)return i}if(r&&!n){let e=Hd(r,t);if(e!==void 0)return e}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);let a=Bd(e,e.typeName,t),o=typeof a==`function`?Q(a(),t):a;if(o&&Ud(e,t,o),t.postProcess){let n=t.postProcess(o,e,t);return i.jsonSchema=o,n}return i.jsonSchema=o,o}var Hd=(e,t)=>{switch(t.$refStrategy){case`root`:return{$ref:e.path.join(`/`)};case`relative`:return{$ref:Vd(t.currentPath,e.path)};case`none`:case`seen`:return e.path.length<t.currentPath.length&&e.path.every((e,n)=>t.currentPath[n]===e)?(console.warn(`Recursive reference detected at ${t.currentPath.join(`/`)}! Defaulting to any`),X()):t.$refStrategy===`seen`?X():void 0}},Ud=(e,t,n)=>(e.description&&(n.description=e.description),n),Wd=e=>{let t=Zu(e),n=t.name===void 0?t.basePath:[...t.basePath,t.definitionPath,t.name];return{...t,currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([e,n])=>[n._def,{def:n._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}},Gd=(e,t)=>{let n=Wd(t),r=typeof t==`object`&&t.definitions?Object.entries(t.definitions).reduce((e,[t,r])=>({...e,[t]:Q(r._def,{...n,currentPath:[...n.basePath,n.definitionPath,t]},!0)??X()}),{}):void 0,i=typeof t==`string`?t:t?.nameStrategy===`title`?void 0:t?.name,a=Q(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??X(),o=typeof t==`object`&&t.name!==void 0&&t.nameStrategy===`title`?t.name:void 0;o!==void 0&&(a.title=o);let s=i===void 0?r?{...a,[n.definitionPath]:r}:a:{$ref:[...n.$refStrategy===`relative`?[]:n.basePath,n.definitionPath,i].join(`/`),[n.definitionPath]:{...r,[i]:a}};return s.$schema=`http://json-schema.org/draft-07/schema#`,s},Kd=Symbol.for(`vercel.ai.schema`);function qd(e,{validate:t}={}){return{[Kd]:!0,_type:void 0,get jsonSchema(){return typeof e==`function`&&(e=e()),e},validate:t}}function Jd(e){return typeof e==`object`&&!!e&&Kd in e&&e[Kd]===!0&&`jsonSchema`in e&&`validate`in e}function Yd(e){return e==null?qd({properties:{},additionalProperties:!1}):Jd(e)?e:`~standard`in e?e[`~standard`].vendor===`zod`?ef(e):Xd(e):e()}function Xd(e){return qd(()=>qu(e[`~standard`].jsonSchema.input({target:`draft-07`})),{validate:async t=>{let n=await e[`~standard`].validate(t);return`value`in n?{success:!0,value:n.value}:{success:!1,error:new pn({value:t,cause:n.issues})}}})}function Zd(e,t){let n=t?.useReferences??!1;return qd(()=>Gd(e,{$refStrategy:n?`root`:`none`}),{validate:async t=>{let n=await e.safeParseAsync(t);return n.success?{success:!0,value:n.data}:{success:!1,error:n.error}}})}function Qd(e,t){let n=t?.useReferences??!1;return qd(()=>qu(Es(e,{target:`draft-7`,io:`input`,reused:n?`ref`:`inline`})),{validate:async t=>{let n=await Bs(e,t);return n.success?{success:!0,value:n.data}:{success:!1,error:n.error}}})}function $d(e){return`_zod`in e}function ef(e,t){return $d(e)?Qd(e,t):Zd(e,t)}async function tf({value:e,schema:t,context:n}){let r=Yd(t);try{if(r.validate==null)return{success:!0,value:e,rawValue:e};let t=await r.validate(e);return t.success?{success:!0,value:t.value,rawValue:e}:{success:!1,error:pn.wrap({value:e,cause:t.error,context:n}),rawValue:e}}catch(t){return{success:!1,error:pn.wrap({value:e,cause:t,context:n}),rawValue:e}}}async function nf({text:e,schema:t}){try{let n=Ku(e);return t==null?{success:!0,value:n,rawValue:n}:await tf({value:n,schema:t})}catch(t){return{success:!1,error:sn.isInstance(t)?t:new sn({text:e,cause:t}),rawValue:void 0}}}async function rf(e){return typeof e==`function`&&(e=e()),Promise.resolve(e)}var af=Object.defineProperty,of=(e,t)=>{for(var n in t)af(e,n,{get:t[n],enumerable:!0})},sf=`AI_NoObjectGeneratedError`,cf=`vercel.ai.error.${sf}`,lf=Symbol.for(cf),uf,df=class extends qt{constructor({message:e=`No object generated.`,cause:t,text:n,response:r,usage:i,finishReason:a}){super({name:sf,message:e,cause:t}),this[uf]=!0,this.text=n,this.response=r,this.usage=i,this.finishReason=a}static isInstance(e){return qt.hasMarker(e,cf)}};uf=lf;var ff=L([P(),pl(Uint8Array),pl(ArrayBuffer),ul(e=>globalThis.Buffer?.isBuffer(e)??!1,{message:`Must be a Buffer`})]),pf=cl(()=>L([Cc(),P(),_c(),xc(),Lc(P(),pf.optional()),kc(pf)])),$=Lc(P(),Lc(P(),pf.optional())),mf=I({type:R(`text`),text:P(),providerOptions:$.optional()}),hf=I({type:R(`image`),image:L([ff,pl(URL)]),mediaType:P().optional(),providerOptions:$.optional()}),gf=I({type:R(`file`),data:L([ff,pl(URL)]),filename:P().optional(),mediaType:P(),providerOptions:$.optional()}),_f=I({type:R(`reasoning`),text:P(),providerOptions:$.optional()}),vf=I({type:R(`tool-call`),toolCallId:P(),toolName:P(),input:Tc(),providerOptions:$.optional(),providerExecuted:xc().optional()}),yf=Nc(`type`,[I({type:R(`text`),value:P(),providerOptions:$.optional()}),I({type:R(`json`),value:pf,providerOptions:$.optional()}),I({type:R(`execution-denied`),reason:P().optional(),providerOptions:$.optional()}),I({type:R(`error-text`),value:P(),providerOptions:$.optional()}),I({type:R(`error-json`),value:pf,providerOptions:$.optional()}),I({type:R(`content`),value:kc(L([I({type:R(`text`),text:P(),providerOptions:$.optional()}),I({type:R(`media`),data:P(),mediaType:P()}),I({type:R(`file-data`),data:P(),mediaType:P(),filename:P().optional(),providerOptions:$.optional()}),I({type:R(`file-url`),url:P(),providerOptions:$.optional()}),I({type:R(`file-id`),fileId:L([P(),Lc(P(),P())]),providerOptions:$.optional()}),I({type:R(`image-data`),data:P(),mediaType:P(),providerOptions:$.optional()}),I({type:R(`image-url`),url:P(),providerOptions:$.optional()}),I({type:R(`image-file-id`),fileId:L([P(),Lc(P(),P())]),providerOptions:$.optional()}),I({type:R(`custom`),providerOptions:$.optional()})]))})]),bf=I({type:R(`tool-result`),toolCallId:P(),toolName:P(),output:yf,providerOptions:$.optional()}),xf=I({type:R(`tool-approval-request`),approvalId:P(),toolCallId:P()}),Sf=I({type:R(`tool-approval-response`),approvalId:P(),approved:xc(),reason:P().optional()});L([I({role:R(`system`),content:P(),providerOptions:$.optional()}),I({role:R(`user`),content:L([P(),kc(L([mf,hf,gf]))]),providerOptions:$.optional()}),I({role:R(`assistant`),content:L([P(),kc(L([mf,gf,_f,vf,bf,xf]))]),providerOptions:$.optional()}),I({role:R(`tool`),content:kc(L([bf,Sf])),providerOptions:$.optional()})]),of({},{array:()=>Df,choice:()=>Of,json:()=>kf,object:()=>Ef,text:()=>Tf});function Cf(e){let t=[`ROOT`],n=-1,r=null;function i(e,i,a){switch(e){case`"`:n=i,t.pop(),t.push(a),t.push(`INSIDE_STRING`);break;case`f`:case`t`:case`n`:n=i,r=i,t.pop(),t.push(a),t.push(`INSIDE_LITERAL`);break;case`-`:t.pop(),t.push(a),t.push(`INSIDE_NUMBER`);break;case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:n=i,t.pop(),t.push(a),t.push(`INSIDE_NUMBER`);break;case`{`:n=i,t.pop(),t.push(a),t.push(`INSIDE_OBJECT_START`);break;case`[`:n=i,t.pop(),t.push(a),t.push(`INSIDE_ARRAY_START`);break}}function a(e,r){switch(e){case`,`:t.pop(),t.push(`INSIDE_OBJECT_AFTER_COMMA`);break;case`}`:n=r,t.pop();break}}function o(e,r){switch(e){case`,`:t.pop(),t.push(`INSIDE_ARRAY_AFTER_COMMA`);break;case`]`:n=r,t.pop();break}}for(let s=0;s<e.length;s++){let c=e[s];switch(t[t.length-1]){case`ROOT`:i(c,s,`FINISH`);break;case`INSIDE_OBJECT_START`:switch(c){case`"`:t.pop(),t.push(`INSIDE_OBJECT_KEY`);break;case`}`:n=s,t.pop();break}break;case`INSIDE_OBJECT_AFTER_COMMA`:switch(c){case`"`:t.pop(),t.push(`INSIDE_OBJECT_KEY`);break}break;case`INSIDE_OBJECT_KEY`:switch(c){case`"`:t.pop(),t.push(`INSIDE_OBJECT_AFTER_KEY`);break}break;case`INSIDE_OBJECT_AFTER_KEY`:switch(c){case`:`:t.pop(),t.push(`INSIDE_OBJECT_BEFORE_VALUE`);break}break;case`INSIDE_OBJECT_BEFORE_VALUE`:i(c,s,`INSIDE_OBJECT_AFTER_VALUE`);break;case`INSIDE_OBJECT_AFTER_VALUE`:a(c,s);break;case`INSIDE_STRING`:switch(c){case`"`:t.pop(),n=s;break;case`\\`:t.push(`INSIDE_STRING_ESCAPE`);break;default:n=s}break;case`INSIDE_ARRAY_START`:switch(c){case`]`:n=s,t.pop();break;default:n=s,i(c,s,`INSIDE_ARRAY_AFTER_VALUE`);break}break;case`INSIDE_ARRAY_AFTER_VALUE`:switch(c){case`,`:t.pop(),t.push(`INSIDE_ARRAY_AFTER_COMMA`);break;case`]`:n=s,t.pop();break;default:n=s;break}break;case`INSIDE_ARRAY_AFTER_COMMA`:i(c,s,`INSIDE_ARRAY_AFTER_VALUE`);break;case`INSIDE_STRING_ESCAPE`:t.pop(),n=s;break;case`INSIDE_NUMBER`:switch(c){case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:n=s;break;case`e`:case`E`:case`-`:case`.`:break;case`,`:t.pop(),t[t.length-1]===`INSIDE_ARRAY_AFTER_VALUE`&&o(c,s),t[t.length-1]===`INSIDE_OBJECT_AFTER_VALUE`&&a(c,s);break;case`}`:t.pop(),t[t.length-1]===`INSIDE_OBJECT_AFTER_VALUE`&&a(c,s);break;case`]`:t.pop(),t[t.length-1]===`INSIDE_ARRAY_AFTER_VALUE`&&o(c,s);break;default:t.pop();break}break;case`INSIDE_LITERAL`:{let i=e.substring(r,s+1);!`false`.startsWith(i)&&!`true`.startsWith(i)&&!`null`.startsWith(i)?(t.pop(),t[t.length-1]===`INSIDE_OBJECT_AFTER_VALUE`?a(c,s):t[t.length-1]===`INSIDE_ARRAY_AFTER_VALUE`&&o(c,s)):n=s;break}}}let s=e.slice(0,n+1);for(let n=t.length-1;n>=0;n--)switch(t[n]){case`INSIDE_STRING`:s+=`"`;break;case`INSIDE_OBJECT_KEY`:case`INSIDE_OBJECT_AFTER_KEY`:case`INSIDE_OBJECT_AFTER_COMMA`:case`INSIDE_OBJECT_START`:case`INSIDE_OBJECT_BEFORE_VALUE`:case`INSIDE_OBJECT_AFTER_VALUE`:s+=`}`;break;case`INSIDE_ARRAY_START`:case`INSIDE_ARRAY_AFTER_COMMA`:case`INSIDE_ARRAY_AFTER_VALUE`:s+=`]`;break;case`INSIDE_LITERAL`:{let t=e.substring(r,e.length);`true`.startsWith(t)?s+=`true`.slice(t.length):`false`.startsWith(t)?s+=`false`.slice(t.length):`null`.startsWith(t)&&(s+=`null`.slice(t.length))}}return s}async function wf(e){if(e===void 0)return{value:void 0,state:`undefined-input`};let t=await nf({text:e});return t.success?{value:t.value,state:`successful-parse`}:(t=await nf({text:Cf(e)}),t.success?{value:t.value,state:`repaired-parse`}:{value:void 0,state:`failed-parse`})}var Tf=()=>({name:`text`,responseFormat:Promise.resolve({type:`text`}),async parseCompleteOutput({text:e}){return e},async parsePartialOutput({text:e}){return{partial:e}},createElementStreamTransform(){}}),Ef=({schema:e,name:t,description:n})=>{let r=Yd(e);return{name:`object`,responseFormat:rf(r.jsonSchema).then(e=>({type:`json`,schema:e,...t!=null&&{name:t},...n!=null&&{description:n}})),async parseCompleteOutput({text:e},t){let n=await nf({text:e});if(!n.success)throw new df({message:`No object generated: could not parse the response.`,cause:n.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});let i=await tf({value:n.value,schema:r});if(!i.success)throw new df({message:`No object generated: response did not match schema.`,cause:i.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return i.value},async parsePartialOutput({text:e}){let t=await wf(e);switch(t.state){case`failed-parse`:case`undefined-input`:return;case`repaired-parse`:case`successful-parse`:return{partial:t.value}}},createElementStreamTransform(){}}},Df=({element:e,name:t,description:n})=>{let r=Yd(e);return{name:`array`,responseFormat:rf(r.jsonSchema).then(e=>{let{$schema:r,...i}=e;return{type:`json`,schema:{$schema:`http://json-schema.org/draft-07/schema#`,type:`object`,properties:{elements:{type:`array`,items:i}},required:[`elements`],additionalProperties:!1},...t!=null&&{name:t},...n!=null&&{description:n}}}),async parseCompleteOutput({text:e},t){let n=await nf({text:e});if(!n.success)throw new df({message:`No object generated: could not parse the response.`,cause:n.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});let i=n.value;if(typeof i!=`object`||!i||!(`elements`in i)||!Array.isArray(i.elements))throw new df({message:`No object generated: response did not match schema.`,cause:new pn({value:i,cause:`response must be an object with an elements array`}),text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});for(let n of i.elements){let i=await tf({value:n,schema:r});if(!i.success)throw new df({message:`No object generated: response did not match schema.`,cause:i.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason})}return i.elements},async parsePartialOutput({text:e}){let t=await wf(e);switch(t.state){case`failed-parse`:case`undefined-input`:return;case`repaired-parse`:case`successful-parse`:{let e=t.value;if(typeof e!=`object`||!e||!(`elements`in e)||!Array.isArray(e.elements))return;let n=t.state===`repaired-parse`&&e.elements.length>0?e.elements.slice(0,-1):e.elements,i=[];for(let e of n){let t=await tf({value:e,schema:r});t.success&&i.push(t.value)}return{partial:i}}}},createElementStreamTransform(){let e=0;return new TransformStream({transform({partialOutput:t},n){if(t!=null)for(;e<t.length;e++)n.enqueue(t[e])}})}}},Of=({options:e,name:t,description:n})=>({name:`choice`,responseFormat:Promise.resolve({type:`json`,schema:{$schema:`http://json-schema.org/draft-07/schema#`,type:`object`,properties:{result:{type:`string`,enum:e}},required:[`result`],additionalProperties:!1},...t!=null&&{name:t},...n!=null&&{description:n}}),async parseCompleteOutput({text:t},n){let r=await nf({text:t});if(!r.success)throw new df({message:`No object generated: could not parse the response.`,cause:r.error,text:t,response:n.response,usage:n.usage,finishReason:n.finishReason});let i=r.value;if(typeof i!=`object`||!i||!(`result`in i)||typeof i.result!=`string`||!e.includes(i.result))throw new df({message:`No object generated: response did not match schema.`,cause:new pn({value:i,cause:`response must be an object that contains a choice value.`}),text:t,response:n.response,usage:n.usage,finishReason:n.finishReason});return i.result},async parsePartialOutput({text:t}){let n=await wf(t);switch(n.state){case`failed-parse`:case`undefined-input`:return;case`repaired-parse`:case`successful-parse`:{let t=n.value;if(typeof t!=`object`||!t||!(`result`in t)||typeof t.result!=`string`)return;let r=e.filter(e=>e.startsWith(t.result));return n.state===`successful-parse`?r.includes(t.result)?{partial:t.result}:void 0:r.length===1?{partial:r[0]}:void 0}}},createElementStreamTransform(){}}),kf=({name:e,description:t}={})=>({name:`json`,responseFormat:Promise.resolve({type:`json`,...e!=null&&{name:e},...t!=null&&{description:t}}),async parseCompleteOutput({text:e},t){let n=await nf({text:e});if(!n.success)throw new df({message:`No object generated: could not parse the response.`,cause:n.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return n.value},async parsePartialOutput({text:e}){let t=await wf(e);switch(t.state){case`failed-parse`:case`undefined-input`:return;case`repaired-parse`:case`successful-parse`:return t.value===void 0?void 0:{partial:t.value}}},createElementStreamTransform(){}});Vu({prefix:`aitxt`,size:24}),TransformStream;function Af(e){return e.type.startsWith(`data-`)}Vu({prefix:`aitxt`,size:24}),Vu({prefix:`aiobj`,size:24}),Vu({prefix:`aiobj`,size:24});var jf=class{constructor(e,t={}){this._trackers=new Map,this._pending=[],this._closed=!1,this._writer=e,this._defaultClientId=t.clientId,this._defaultExtras=t.extras,this._onMessageHook=t.onMessage??(()=>{}),this._logger=t.logger?.withContext({component:`EncoderCore`})}async publishDiscrete(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.publishDiscrete();`,{name:e.name});let n=this._buildDiscreteMessage(e,t);return this._writer.publish(n)}async publishDiscreteBatch(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.publishDiscreteBatch();`,{count:e.length});let n=e.map(e=>this._buildDiscreteMessage(e,t));for(let e of n)e.extras.headers[g]=`true`;return this._writer.publish(n)}async startStream(e,t,r){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.startStream();`,{name:t.name,streamId:e});let i=this._buildHeaders(t.headers??{},r);i[m]=`true`,i[h]=`streaming`,i[ee]=e;let a=this._resolveClientId(r),o={name:t.name,data:t.data,extras:{headers:i},...a?{clientId:a}:{}};this._invokeOnMessage(o);let s=(await this._writer.publish(o)).serials[0];if(!s)throw new n.ErrorInfo(`unable to start stream; no serial returned for stream '${t.name}' (streamId: ${e})`,y.BadRequest,400);this._trackers.set(e,{serial:s,name:t.name,streamId:e,accumulated:t.data,persistentHeaders:i,aborted:!1}),this._logger?.debug(`DefaultEncoderCore.startStream(); stream started`,{name:t.name,streamId:e,serial:s})}appendStream(e,t){this._assertNotClosed();let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to append to stream; no active stream for streamId '${e}'`,y.InvalidArgument,400);r.accumulated+=t;let i={serial:r.serial,data:t,extras:{headers:{...r.persistentHeaders}}};this._invokeOnMessage(i);let a=this._writer.appendMessage(i);this._pending.push({promise:a,streamId:e})}async closeStream(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.closeStream();`,{streamId:e});let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to close stream; no active stream for streamId '${e}'`,y.InvalidArgument,400);r.accumulated+=t.data;let i=this._buildClosingHeaders(r,t.headers??{});i[h]=`finished`;let a={serial:r.serial,data:t.data,extras:{headers:i}};this._invokeOnMessage(a);let o=this._writer.appendMessage(a);this._pending.push({promise:o,streamId:e}),await this._flushPending(),this._logger?.debug(`DefaultEncoderCore.closeStream(); stream closed`,{streamId:e})}async abortStream(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.abortStream();`,{streamId:e});let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to abort stream; no active stream for streamId '${e}'`,y.InvalidArgument,400);r.aborted=!0;let i=this._buildClosingHeaders(r,{},t);i[h]=`aborted`;let a={serial:r.serial,data:``,extras:{headers:i}};this._invokeOnMessage(a);let o=this._writer.appendMessage(a);this._pending.push({promise:o,streamId:e}),await this._flushPending(),this._logger?.debug(`DefaultEncoderCore.abortStream(); stream aborted`,{streamId:e})}async abortAllStreams(e){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.abortAllStreams();`,{streamCount:this._trackers.size});for(let t of this._trackers.values()){t.aborted=!0;let n=this._buildClosingHeaders(t,{},e);n[h]=`aborted`;let r={serial:t.serial,data:``,extras:{headers:n}};this._invokeOnMessage(r);let i=this._writer.appendMessage(r);this._pending.push({promise:i,streamId:t.streamId})}await this._flushPending()}async _flushPending(){if(this._flushPromise)return this._flushPromise;let e=this._pending;if(this._pending=[],e.length!==0){this._logger?.trace(`DefaultEncoderCore._flushPending();`,{count:e.length}),this._flushPromise=this._doFlush(e);try{await this._flushPromise}finally{this._flushPromise=void 0}}}async _doFlush(e){let t=await Promise.allSettled(e.map(async e=>e.promise)),r=new Set;for(let[n,i]of t.entries()){let t=e[n];t&&i.status===`rejected`&&r.add(t.streamId)}if(r.size===0){this._logger?.debug(`DefaultEncoderCore._flushPending(); all appends succeeded`);return}this._logger?.warn(`DefaultEncoderCore._flushPending(); recovering failed appends`,{failedStreams:[...r]});let i=[];for(let e of r){let t=this._trackers.get(e);if(!t)continue;let n=t.aborted?`aborted`:`finished`,r={serial:t.serial,data:t.accumulated,extras:{headers:{...t.persistentHeaders,[h]:n}}};try{await this._writer.updateMessage(r)}catch(t){i.push({streamId:e,error:t})}}if(i.length>0){let e=i.map(e=>e.streamId).join(`, `);throw this._logger?.error(`DefaultEncoderCore._flushPending(); recovery failed`,{failedStreams:e}),new n.ErrorInfo(`unable to flush pending appends; recovery failed for stream(s): ${e}`,y.EncoderRecoveryFailed,500)}}async close(){if(!this._closed){this._logger?.trace(`DefaultEncoderCore.close();`),this._closed=!0;try{await this._flushPending()}finally{this._trackers.clear()}this._logger?.debug(`DefaultEncoderCore.close(); encoder closed`)}}_invokeOnMessage(e){try{this._onMessageHook(e)}catch(e){this._logger?.error(`DefaultEncoderCore._invokeOnMessage(); hook threw`,{error:e})}}_assertNotClosed(){if(this._closed)throw new n.ErrorInfo(`unable to write to encoder; encoder has been closed`,y.InvalidArgument,400)}_resolveClientId(e){return e?.clientId??this._defaultClientId}_buildHeaders(e,t){let n={...Te(this._defaultExtras?.headers,t?.extras?.headers),...e};return t?.messageId!==void 0&&(n[v]=t.messageId),n}_buildDiscreteMessage(e,t){let n=this._buildHeaders(e.headers??{},t);n[m]=`false`;let r=this._resolveClientId(t),i={name:e.name,data:e.data,extras:{headers:n,...e.ephemeral?{ephemeral:!0}:{}},...r?{clientId:r}:{}};return this._invokeOnMessage(i),i}_buildClosingHeaders(e,t,n){let r={...e.persistentHeaders},i=Te(this._defaultExtras?.headers,n?.extras?.headers);return Object.assign(r,i),Object.assign(r,t),r}},Mf=(e,t={})=>new jf(e,t),Nf=e=>{switch(e.type){case`tool-output-available`:{let t=S().str(`toolCallId`,e.toolCallId).bool(`dynamic`,e.dynamic).bool(`providerExecuted`,e.providerExecuted).bool(`preliminary`,e.preliminary).build();return{name:`tool-output-available`,data:{output:e.output},headers:t}}case`tool-output-error`:{let t=S().str(`toolCallId`,e.toolCallId).bool(`dynamic`,e.dynamic).bool(`providerExecuted`,e.providerExecuted).build();return{name:`tool-output-error`,data:{errorText:e.errorText},headers:t}}case`tool-approval-request`:return{name:`tool-approval-request`,data:``,headers:S().str(`toolCallId`,e.toolCallId).str(`approvalId`,e.approvalId).build()};case`tool-output-denied`:return{name:`tool-output-denied`,data:``,headers:S().str(`toolCallId`,e.toolCallId).build()};default:if(e.type.startsWith(`data-`)){let t=e,n=S().str(`id`,t.id).bool(`transient`,t.transient).build(),r=t.transient===!0;return{name:e.type,data:t.data,headers:n,ephemeral:r}}throw new n.ErrorInfo(`unable to write event; unsupported chunk type '${e.type}'`,y.InvalidArgument,400)}},Pf=class{constructor(e,t={}){this._aborted=!1,this._core=Mf(e,t),this._messageId=t.messageId}async appendEvent(e,t){switch(e.type){case`text-start`:{let n=S().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.startStream(e.id,{name:`text`,data:``,headers:n},t);break}case`reasoning-start`:{let n=S().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.startStream(e.id,{name:`reasoning`,data:``,headers:n},t);break}case`tool-input-start`:{let n=S().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).bool(`dynamic`,e.dynamic).str(`title`,e.title).bool(`providerExecuted`,e.providerExecuted).json(`providerMetadata`,e.providerMetadata).build();await this._core.startStream(e.toolCallId,{name:`tool-input`,data:``,headers:n},t);break}case`text-delta`:this._core.appendStream(e.id,e.delta);break;case`reasoning-delta`:this._core.appendStream(e.id,e.delta);break;case`tool-input-delta`:this._core.appendStream(e.toolCallId,e.inputTextDelta);break;case`text-end`:{let t=S().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.closeStream(e.id,{name:`text`,data:``,headers:t});break}case`reasoning-end`:{let t=S().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.closeStream(e.id,{name:`reasoning`,data:``,headers:t});break}case`tool-input-available`:try{let t=S().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).json(`providerMetadata`,e.providerMetadata).build();await this._core.closeStream(e.toolCallId,{name:`tool-input`,data:``,headers:t})}catch(t){if(!(t instanceof n.ErrorInfo&&me(t,y.InvalidArgument)))throw t;let r=S().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).bool(`dynamic`,e.dynamic).str(`title`,e.title).bool(`providerExecuted`,e.providerExecuted).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`tool-input`,data:e.input,headers:r})}break;case`start`:{let n=S().str(`messageId`,e.messageId??this._messageId).json(`messageMetadata`,e.messageMetadata).build();await this._core.publishDiscrete({name:`start`,data:``,headers:n},t);break}case`start-step`:await this._core.publishDiscrete({name:`start-step`,data:``},t);break;case`finish-step`:await this._core.publishDiscrete({name:`finish-step`,data:``},t);break;case`finish`:{let n=S().str(`finishReason`,e.finishReason).json(`messageMetadata`,e.messageMetadata).build();await this._core.publishDiscrete({name:`finish`,data:``,headers:n},t);break}case`error`:await this._core.publishDiscrete({name:`error`,data:e.errorText},t);break;case`abort`:this._aborted=!0,await this._core.abortAllStreams(t),await this._core.publishDiscrete({name:`abort`,data:e.reason??``,headers:{[h]:`aborted`}},t);break;case`tool-input-error`:{let t=S().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).bool(`dynamic`,e.dynamic).str(`title`,e.title).bool(`providerExecuted`,e.providerExecuted).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`tool-input-error`,data:{errorText:e.errorText,input:e.input},headers:t});break}case`tool-output-available`:case`tool-output-error`:case`tool-approval-request`:case`tool-output-denied`:await this._core.publishDiscrete(Nf(e),t);break;case`file`:{let n=S().str(`mediaType`,e.mediaType).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`file`,data:e.url,headers:n},t);break}case`source-url`:{let n=S().str(`sourceId`,e.sourceId).str(`title`,e.title).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`source-url`,data:e.url,headers:n},t);break}case`source-document`:{let n=S().str(`sourceId`,e.sourceId).str(`mediaType`,e.mediaType).str(`title`,e.title).str(`filename`,e.filename).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`source-document`,data:``,headers:n},t);break}case`message-metadata`:{let n=S().json(`messageMetadata`,e.messageMetadata).build();await this._core.publishDiscrete({name:`message-metadata`,data:``,headers:n},t);break}default:if(e.type.startsWith(`data-`)){let n=S().str(`id`,e.id).bool(`transient`,e.transient).build(),r=e.transient===!0;await this._core.publishDiscrete({name:e.type,data:e.data,headers:n,ephemeral:r},t)}break}}async writeEvent(e,t){return this._core.publishDiscrete(Nf(e),t)}async writeMessages(e,t){let n=e.flatMap(e=>Ff(e));return this._core.publishDiscreteBatch(n,t)}async abort(e){this._aborted||(this._aborted=!0,await this._core.abortAllStreams(),await this._core.publishDiscrete({name:`abort`,data:e??``,headers:{[h]:`aborted`}}))}async close(){await this._core.close()}},Ff=e=>{let t=e.id,n=[];for(let r of e.parts)switch(r.type){case`text`:n.push({name:`text`,data:r.text,headers:S().str(`messageId`,t).build()});break;case`file`:n.push({name:`file`,data:r.url,headers:S().str(`messageId`,t).str(`mediaType`,r.mediaType).build()});break;default:Af(r)&&n.push({name:r.type,data:r.data,headers:S().str(`messageId`,t).str(`id`,r.id).build()});break}return n.length===0&&n.push({name:`text`,data:``,headers:S().str(`messageId`,t).build()}),n},If={createEncoder:(e,t={})=>new Pf(e,t),createDecoder:Ht,createAccumulator:at,isTerminal:e=>e.type===`finish`||e.type===`error`||e.type===`abort`},Lf=e=>{let t,n=new Promise(e=>{t=e}),r=new TransformStream({flush:()=>{t()}});return e.pipeTo(r.writable).catch(()=>{t()}),{stream:r.readable,done:n}},Rf=e=>e.role===`assistant`&&e.parts.some(e=>e.type===`dynamic-tool`&&(e.state===`input-streaming`||e.state===`input-available`||e.state===`approval-requested`)),zf=(e,t)=>{let r=!1,i=new Set,a=e=>{r=e;for(let t of i)try{t(e)}catch{}};return{sendMessages:async r=>{let{messages:i,abortSignal:o,trigger:s,messageId:c}=r,l=e.view.flattenNodes(),u=i.at(-1),d=u?l.find(e=>e.message.id===u.id):void 0,f=s===`submit-message`&&u?.role===`assistant`&&!!d,p=s===`submit-message`&&!c&&u?.role===`user`?i.at(-2):void 0,m=p&&Rf(p)?l.find(e=>e.message.id===p.id):void 0,h,ee;if(s===`regenerate-message`||f)h=[],ee=i;else{if(i.length===0)throw new n.ErrorInfo(`unable to send messages; messages array is empty for submit-message trigger`,y.InvalidArgument,400);h=[i.at(-1)],ee=m?i.slice(0,-2):i.slice(0,-1)}let g,_;if(c&&!f){g=c;let e=l.find(e=>e.message.id===c);e&&(g=e.msgId,_=e.parentId)}else f?_=d.msgId:m&&(g=m.msgId,_=m.parentId);let v,te;if(t?.prepareSendMessagesRequest){let e=t.prepareSendMessagesRequest({chatId:r.chatId,trigger:s,messageId:c,history:ee,messages:h,forkOf:g,parent:_});v=e.body??{},te=e.headers}else{let e=new Set(ee.map(e=>e.id));v={history:l.filter(t=>e.has(t.message.id)),chatId:r.chatId,trigger:s,...c!==void 0&&{messageId:c},...g!==void 0&&{forkOf:g},..._!==void 0&&{parent:_}},te=void 0}let ne={body:v,headers:te};g!==void 0&&(ne.forkOf=g),_!==void 0&&(ne.parent=_);let re=await e.view.send(h,ne);o&&o.addEventListener(`abort`,()=>void e.cancel({all:!0}),{once:!0});let{stream:ie,done:ae}=Lf(re.stream);return a(!0),ae.then(()=>{a(!1)}),ie},reconnectToStream:()=>Promise.resolve(null),close:async t=>e.close(t),get streaming(){return r},onStreamingChange:e=>(i.add(e),()=>{i.delete(e)})}},Bf=(0,t.createContext)({nearest:void 0,providers:{}}),{TransportProvider:Vf,useAblyMessages:Hf,useActiveTurns:Uf,useClientTransport:Wf,useCreateView:Gf,useTree:Kf,useView:qf}=et(),Jf=({channelName:e,chatOptions:n,children:r})=>{let{transport:a,transportError:o}=Wf(),{providers:s}=(0,t.useContext)(Bf),c=(0,t.useMemo)(()=>zf(a,n),[a,n]),l=(0,t.useMemo)(()=>{let t={transport:a,transportError:o,chatTransport:c};return{nearest:t,providers:{...s,[e]:t}}},[e,s,c,a,o]);return(0,i.jsx)(Bf.Provider,{value:l,children:r})},Yf=({chatOptions:e,children:t,...n})=>(0,i.jsx)(Vf,{...n,api:n.api??`/api/chat`,codec:If,children:(0,i.jsx)(Jf,{channelName:n.channelName,chatOptions:e,children:t})}),Xf={get tree(){throw new n.ErrorInfo(`unable to access tree; hook is skipped`,y.InvalidArgument,400)},get view(){throw new n.ErrorInfo(`unable to access view; hook is skipped`,y.InvalidArgument,400)},createView:()=>{throw new n.ErrorInfo(`unable to create view; hook is skipped`,y.InvalidArgument,400)},cancel:()=>{throw new n.ErrorInfo(`unable to cancel; hook is skipped`,y.InvalidArgument,400)},stageEvents:()=>{throw new n.ErrorInfo(`unable to stage events; hook is skipped`,y.InvalidArgument,400)},stageMessage:()=>{throw new n.ErrorInfo(`unable to stage message; hook is skipped`,y.InvalidArgument,400)},waitForTurn:()=>{throw new n.ErrorInfo(`unable to wait for turn; hook is skipped`,y.InvalidArgument,400)},on:()=>{throw new n.ErrorInfo(`unable to subscribe; hook is skipped`,y.InvalidArgument,400)},close:()=>{throw new n.ErrorInfo(`unable to close; hook is skipped`,y.InvalidArgument,400)}},Zf={sendMessages:()=>{throw new n.ErrorInfo(`unable to send messages; hook is skipped`,y.InvalidArgument,400)},reconnectToStream:()=>{throw new n.ErrorInfo(`unable to reconnect to stream; hook is skipped`,y.InvalidArgument,400)},close:()=>{throw new n.ErrorInfo(`unable to close; hook is skipped`,y.InvalidArgument,400)},get streaming(){throw new n.ErrorInfo(`unable to access streaming; hook is skipped`,y.InvalidArgument,400)},onStreamingChange:()=>{throw new n.ErrorInfo(`unable to subscribe to streaming changes; hook is skipped`,y.InvalidArgument,400)}},Qf=({channelName:e,skip:r}={})=>{let{nearest:i,providers:a}=(0,t.useContext)(Bf);if(r)return{transport:Xf,chatTransport:Zf};if(e!==void 0){let t=a[e];return t?{transport:t.transport,chatTransport:t.chatTransport,transportError:t.transportError}:{transport:Xf,chatTransport:Zf,transportError:new n.ErrorInfo(`unable to use client transport; no TransportProvider found for channelName "${e}"`,y.BadRequest,400),chatTransportError:new n.ErrorInfo(`unable to use chat transport; no ChatTransportProvider found for channelName "${e}"`,y.BadRequest,400)}}return i?{transport:i.transport,chatTransport:i.chatTransport,transportError:i.transportError}:{transport:Xf,chatTransport:Zf,transportError:new n.ErrorInfo(`unable to use transport; no TransportProvider found in the tree`,y.BadRequest,400),chatTransportError:new n.ErrorInfo(`unable to use chat transport; no ChatTransportProvider found in the tree`,y.BadRequest,400)}},$f=({setMessages:e,channelName:n,skip:r})=>{let{transport:i,chatTransport:a,chatTransportError:o}=Qf({channelName:n,skip:r}),s=!r&&!o,c=s?i.view:void 0,l=s?a:void 0,[u,d]=(0,t.useState)(!1);(0,t.useEffect)(()=>{if(!l){d(!1);return}return d(l.streaming),l.onStreamingChange(d)},[l]),(0,t.useEffect)(()=>{if(!c||u)return;let t=()=>{e(()=>c.flattenNodes().map(e=>e.message))};return t(),c.on(`update`,t)},[c,e,u])},ep=(e,n)=>(0,t.useCallback)(t=>(tp(e,t),n(t)),[e,n]),tp=(e,t)=>{let n=e.view.flattenNodes();for(let r of n){let n=r.message.parts.findIndex(e=>e.type===`dynamic-tool`&&e.approval?.id===t.id);if(n===-1)continue;let i=r.message.parts[n],a={type:`dynamic-tool`,toolName:i.toolName,toolCallId:i.toolCallId,state:`approval-responded`,input:i.input,approval:{id:t.id,approved:t.approved,reason:t.reason}},o=[...r.message.parts];o[n]=a,e.stageMessage(r.msgId,{...r.message,parts:o});return}};e.ChatTransportProvider=Yf,e.TransportProvider=Vf,e.useAblyMessages=Hf,e.useActiveTurns=Uf,e.useChatTransport=Qf,e.useClientTransport=Wf,e.useCreateView=Gf,e.useMessageSync=$f,e.useStagedAddToolApprovalResponse=ep,e.useTree=Kf,e.useView=qf});
2
46
  //# sourceMappingURL=ably-ai-transport-vercel-react.umd.cjs.map