@botpress/sdk 4.4.2 → 4.6.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.
package/dist/index.mjs CHANGED
@@ -85,7 +85,7 @@ ${T}`.trim();case q.ZodFirstPartyTypeKind.ZodEnum:return a.values.map(jt).join("
85
85
  `))):j=D.stylize("[Circular]","special")),X(k)){if(A&&Te.match(/^\d+$/))return j;k=JSON.stringify(""+Te),k.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(k=k.slice(1,-1),k=D.stylize(k,"name")):(k=k.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),k=D.stylize(k,"string"))}return k+": "+j}function B(D,Z,F){var fe=D.reduce(function(Te,A){return A.indexOf(`
86
86
  `)>=0,Te+A.replace(/\u001b\[\d\d?m/g,"").length+1},0);return fe>60?F[0]+(Z===""?"":Z+`
87
87
  `)+" "+D.join(`,
88
- `)+" "+F[1]:F[0]+Z+" "+D.join(", ")+" "+F[1]}xe.types=Vk();function P(D){return Array.isArray(D)}xe.isArray=P;function T(D){return typeof D=="boolean"}xe.isBoolean=T;function S(D){return D===null}xe.isNull=S;function E(D){return D==null}xe.isNullOrUndefined=E;function M(D){return typeof D=="number"}xe.isNumber=M;function $(D){return typeof D=="string"}xe.isString=$;function oe(D){return typeof D=="symbol"}xe.isSymbol=oe;function X(D){return D===void 0}xe.isUndefined=X;function ue(D){return ee(D)&&Ne(D)==="[object RegExp]"}xe.isRegExp=ue,xe.types.isRegExp=ue;function ee(D){return typeof D=="object"&&D!==null}xe.isObject=ee;function ie(D){return ee(D)&&Ne(D)==="[object Date]"}xe.isDate=ie,xe.types.isDate=ie;function Oe(D){return ee(D)&&(Ne(D)==="[object Error]"||D instanceof Error)}xe.isError=Oe,xe.types.isNativeError=Oe;function Ie(D){return typeof D=="function"}xe.isFunction=Ie;function $e(D){return D===null||typeof D=="boolean"||typeof D=="number"||typeof D=="string"||typeof D=="symbol"||typeof D>"u"}xe.isPrimitive=$e,xe.isBuffer=Jk();function Ne(D){return Object.prototype.toString.call(D)}function Me(D){return D<10?"0"+D.toString(10):D.toString(10)}var Ve=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Ae(){var D=new Date,Z=[Me(D.getHours()),Me(D.getMinutes()),Me(D.getSeconds())].join(":");return[D.getDate(),Ve[D.getMonth()],Z].join(" ")}xe.log=function(){console.log("%s - %s",Ae(),xe.format.apply(xe,arguments))},xe.inherits=Ct(),xe._extend=function(D,Z){if(!Z||!ee(Z))return D;for(var F=Object.keys(Z),fe=F.length;fe--;)D[F[fe]]=Z[F[fe]];return D};function he(D,Z){return Object.prototype.hasOwnProperty.call(D,Z)}var Se=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;xe.promisify=function(Z){if(typeof Z!="function")throw new TypeError('The "original" argument must be of type Function');if(Se&&Z[Se]){if(F=Z[Se],typeof F!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(F,Se,{value:F,enumerable:!1,writable:!1,configurable:!0}),F}function F(){for(var fe,Te,A=new Promise(function(Y,ae){fe=Y,Te=ae}),k=[],j=0;j<arguments.length;j++)k.push(arguments[j]);k.push(function(Y,ae){Y?Te(Y):fe(ae)});try{Z.apply(this||Yr,k)}catch(Y){Te(Y)}return A}return Object.setPrototypeOf(F,Object.getPrototypeOf(Z)),Se&&Object.defineProperty(F,Se,{value:F,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(F,e(Z))},xe.promisify.custom=Se;function ce(D,Z){if(!D){var F=new Error("Promise was rejected with a falsy value");F.reason=D,D=F}return Z(D)}function ve(D){if(typeof D!="function")throw new TypeError('The "original" argument must be of type Function');function Z(){for(var F=[],fe=0;fe<arguments.length;fe++)F.push(arguments[fe]);var Te=F.pop();if(typeof Te!="function")throw new TypeError("The last argument must be of type Function");var A=this||Yr,k=function(){return Te.apply(A,arguments)};D.apply(this||Yr,F).then(function(j){t.nextTick(k.bind(null,null,j))},function(j){t.nextTick(ce.bind(null,j,k))})}return Object.setPrototypeOf(Z,Object.getPrototypeOf(D)),Object.defineProperties(Z,e(D)),Z}return xe.callbackify=ve,xe}var le=Yk();le.format;le.deprecate;le.debuglog;le.inspect;le.types;le.isArray;le.isBoolean;le.isNull;le.isNullOrUndefined;le.isNumber;le.isString;le.isSymbol;le.isUndefined;le.isRegExp;le.isObject;le.isDate;le.isError;le.isFunction;le.isPrimitive;le.isBuffer;le.log;le.inherits;le._extend;le.promisify;le.callbackify;var TR=le._extend,_R=le.callbackify,bR=le.debuglog,wR=le.deprecate,xR=le.format,BR=le.inherits,PR=le.inspect,ER=le.isArray,SR=le.isBoolean,kR=le.isBuffer,IR=le.isDate,AR=le.isError,CR=le.isFunction,RR=le.isNull,OR=le.isNullOrUndefined,MR=le.isNumber,DR=le.isObject,NR=le.isPrimitive,HR=le.isRegExp,UR=le.isString,jR=le.isSymbol,$R=le.isUndefined,ZR=le.log,LR=le.promisify,FR=le.types,KR=le.TextEncoder=globalThis.TextEncoder,WR=le.TextDecoder=globalThis.TextDecoder;var yr=class{defaultOptions;constructor(e){this.defaultOptions=e}info(...e){this._log("info",e)}debug(...e){this._log("debug",e)}warn(...e){this._log("warn",e)}error(...e){this._log("error",e)}_log(e,n){this._getConsoleMethod(e)(this._serializeMessage(n))}_serializeMessage(e){let n=le.format(...e);return J.env.BP_LOG_FORMAT==="json"?this.getJsonMessage(n):n}getJsonMessage(e){return JSON.stringify({msg:e,options:this.defaultOptions})}_getConsoleMethod(e){switch(e){case"debug":return console.debug;case"warn":return console.warn;case"error":return console.error;default:return console.info}}};var Hn=class extends yr{constructor(e){super({visibleToBotOwners:!0,...e})}with(e){return new Hn({...this.defaultOptions,...e})}withUserId(e){return this.with({userId:e})}withConversationId(e){return this.with({conversationId:e})}withVisibleToBotOwners(e){return this.with({visibleToBotOwners:e})}forBot(){return this.withVisibleToBotOwners(!0)}getJsonMessage(e){return JSON.stringify({msg:e,visible_to_bot_owner:this.defaultOptions.visibleToBotOwners,options:this.defaultOptions})}};C();O();R();var eI=t=>["traceparent","tracestate","sentry-trace"].reduce((e,n)=>(t[n]&&(e[n]=t[n]),e),{}),xv=t=>async e=>{let n=$h(e.headers),[,r]=(e.headers.traceparent||"").split("-"),o=new Qk({botId:n.botId,integrationId:n.integrationId,retry:Fo,headers:eI(e.headers)}),s=new Gr(o),i=new Hn({traceId:r}),a={ctx:n,req:e,client:s,logger:i,instance:t};try{let l;switch(n.operation){case"webhook_received":l=await nI(a);break;case"register":l=await rI(a);break;case"unregister":l=await iI(a);break;case"message_created":l=await sI(a);break;case"action_triggered":l=await lI(a);break;case"ping":l=await tI(a);break;case"create_user":l=await oI(a);break;case"create_conversation":l=await aI(a);break;default:throw new Error(`Unknown operation ${n.operation}`)}return l?{...l,status:l.status??200}:{status:200}}catch(l){if(Xk(l)){let d=l.type==="Runtime"?l:new wv(l.message,l);return i.forBot().error(d.message),{status:d.code,body:JSON.stringify(d.toJSON())}}console.error(l);let c=new wv("An unexpected error occurred in the integration. Bot owners: Check logs for more informations. Integration owners: throw a RuntimeError to return a custom error message instead.");return i.forBot().error(c.message),{status:c.code,body:JSON.stringify(c.toJSON())}}},tI=async t=>{},nI=async({client:t,ctx:e,req:n,logger:r,instance:o})=>{let{req:s}=kt(n);return o.webhook({client:t,ctx:e,req:s,logger:r})},rI=async({client:t,ctx:e,req:n,logger:r,instance:o})=>{if(!o.register)return;let{webhookUrl:s}=kt(n);await o.register({client:t,ctx:e,webhookUrl:s,logger:r})},iI=async({client:t,ctx:e,req:n,logger:r,instance:o})=>{if(!o.unregister)return;let{webhookUrl:s}=kt(n);await o.unregister({ctx:e,webhookUrl:s,client:t,logger:r})},oI=async({client:t,ctx:e,req:n,logger:r,instance:o})=>{if(!o.createUser)return;let{tags:s}=kt(n);return await o.createUser({ctx:e,client:t,tags:s,logger:r})},aI=async({client:t,ctx:e,req:n,logger:r,instance:o})=>{if(!o.createConversation)return;let{channel:s,tags:i}=kt(n);return await o.createConversation({ctx:e,client:t,channel:s,tags:i,logger:r})},sI=async({ctx:t,req:e,client:n,logger:r,instance:o})=>{let{conversation:s,user:i,type:a,payload:l,message:c}=kt(e),d=o.channels[s.channel];if(!d)throw new Error(`Channel ${s.channel} not found`);let y=d.messages[a];if(!y)throw new Error(`Message of type ${a} not found in channel ${s.channel}`);await y({ctx:t,conversation:s,message:c,user:i,type:a,client:n,payload:l,ack:async({tags:m})=>{await n.updateMessage({id:c.id,tags:m})},logger:r})},lI=async({req:t,ctx:e,client:n,logger:r,instance:o})=>{let{input:s,type:i}=kt(t);if(!i)throw new Error("Missing action type");let a=o.actions[i];if(!a)throw new Error(`Action ${i} not found`);let l=new Ko,d={output:await a({ctx:e,input:s,client:n,type:i,logger:r,metadata:l}),meta:l.toJSON()};return{body:JSON.stringify(d)}};var Ul=class{constructor(e){this.props=e;this.actions=e.actions,this.channels=e.channels,this.register=e.register,this.unregister=e.unregister,this.createUser=e.createUser,this.createConversation=e.createConversation,this.webhook=e.handler}actions;channels;register;unregister;createUser;createConversation;webhook;handler=xv(this);start=e=>$o(this.handler,e)};C();O();R();C();O();R();C();O();R();C();O();R();C();O();R();var jl=class{constructor(e){this.props=e;this.integrations=e.integrations,this.plugins=e.plugins,this.user=e.user,this.conversation=e.conversation,this.message=e.message,this.states=e.states,this.configuration=e.configuration,this.events=e.events,this.recurringEvents=e.recurringEvents,this.actions=e.actions,this.tables=e.tables,this.workflows=e.workflows}integrations;plugins;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows;addIntegration(e,n){let r=this;return r.integrations||(r.integrations={}),r.integrations[e.name]={enabled:n.enabled,...e,configurationType:n.configurationType,configuration:n.configuration},this}addPlugin(e,n){let r=this;r.plugins||(r.plugins={});let o=n.alias??e.name;return r.plugins[o]={...e,alias:n.alias,configuration:n.configuration,interfaces:n.interfaces},r.user=this._mergeUser(r.user,e.definition.user),r.conversation=this._mergeConversation(r.conversation,e.definition.conversation),r.message=this._mergeMessage(r.message,e.definition.message),r.recurringEvents=this._mergeRecurringEvents(r.recurringEvents,e.definition.recurringEvents),r.tables=this._mergeTables(r.tables,e.definition.tables),r.workflows=this._mergeWorkflows(r.workflows,e.definition.workflows),r.states=this._mergeStates(r.states,this._prefixKeys(e.definition.states,n.alias)),r.events=this._mergeEvents(r.events,this._prefixKeys(e.definition.events,n.alias)),r.actions=this._mergeActions(r.actions,this._prefixKeys(e.definition.actions,n.alias)),this}_mergeUser=(e,n)=>({tags:{...e?.tags,...n?.tags}});_mergeConversation=(e,n)=>({tags:{...e?.tags,...n?.tags}});_mergeMessage=(e,n)=>({tags:{...e?.tags,...n?.tags}});_mergeStates=(e,n)=>({...e,...n});_mergeEvents=(e,n)=>({...e,...n});_mergeRecurringEvents=(e,n)=>({...e,...n});_mergeActions=(e,n)=>({...e,...n});_mergeTables=(e,n)=>({...e,...n});_mergeWorkflows=(e,n)=>({...e,...n});_prefixKeys=(e,n)=>!e||!n?e:qe.mapKeys(e,r=>`${n}${Wo}${r}`)};C();O();R();C();O();R();import{isApiError as yI,Client as mI,RuntimeError as Ev}from"@botpress/client";C();O();R();var Un=class extends yr{constructor(e){super({...e})}with(e){return new Un({...this.defaultOptions,...e})}withUserId(e){return this.with({userId:e})}withConversationId(e){return this.with({conversationId:e})}withWorkflowId(e){return this.with({workflowId:e})}withEventId(e){return this.with({eventId:e})}withMessageId(e){return this.with({messageId:e})}};C();O();R();C();O();R();var Qt=class{constructor(e,n={before:{},after:{}}){this._client=e;this._hooks=n}getConversation=e=>this._run("getConversation",e);listConversations=e=>this._run("listConversations",e);updateConversation=e=>this._run("updateConversation",e);deleteConversation=e=>this._run("deleteConversation",e);listParticipants=e=>this._run("listParticipants",e);addParticipant=e=>this._run("addParticipant",e);getParticipant=e=>this._run("getParticipant",e);removeParticipant=e=>this._run("removeParticipant",e);createEvent=e=>this._run("createEvent",e);getEvent=e=>this._run("getEvent",e);listEvents=e=>this._run("listEvents",e);createMessage=e=>this._run("createMessage",e);getOrCreateMessage=e=>this._run("getOrCreateMessage",e);getMessage=e=>this._run("getMessage",e);updateMessage=e=>this._run("updateMessage",e);listMessages=e=>this._run("listMessages",e);deleteMessage=e=>this._run("deleteMessage",e);getUser=e=>this._run("getUser",e);listUsers=e=>this._run("listUsers",e);updateUser=e=>this._run("updateUser",e);deleteUser=e=>this._run("deleteUser",e);getState=e=>this._run("getState",e);setState=e=>this._run("setState",e);getOrSetState=e=>this._run("getOrSetState",e);patchState=e=>this._run("patchState",e);callAction=e=>this._run("callAction",e);uploadFile=e=>this._run("uploadFile",e);upsertFile=e=>this._run("upsertFile",e);deleteFile=e=>this._run("deleteFile",e);listFiles=e=>this._run("listFiles",e);getFile=e=>this._run("getFile",e);updateFileMetadata=e=>this._run("updateFileMetadata",e);searchFiles=e=>this._run("searchFiles",e);trackAnalytics=e=>this._run("trackAnalytics",e);getTableRow=e=>this._run("getTableRow",e);createTableRows=e=>this._run("createTableRows",e);findTableRows=e=>this._run("findTableRows",e);deleteTableRows=e=>this._run("deleteTableRows",e);updateTableRows=e=>this._run("updateTableRows",e);upsertTableRows=e=>this._run("upsertTableRows",e);createWorkflow=e=>this._run("createWorkflow",e);getWorkflow=e=>this._run("getWorkflow",e);updateWorkflow=e=>this._run("updateWorkflow",e);deleteWorkflow=e=>this._run("deleteWorkflow",e);listWorkflows=e=>this._run("listWorkflows",e);createConversation=e=>this._client.createConversation(e);getOrCreateConversation=e=>this._client.getOrCreateConversation(e);createUser=e=>this._client.createUser(e);getOrCreateUser=e=>this._client.getOrCreateUser(e);_run=async(e,n)=>{let r=this._hooks.before[e];r&&(n=await r(n));let o=await this._client[e](n),s=this._hooks.after[e];return s&&(o=await s(o,n)),o}};C();O();R();C();O();R();var mr=t=>new Proxy({},{get:(e,n)=>({listInstances:{all:r=>un({workflowName:n,client:t,input:r}),running:r=>un({workflowName:n,client:t,input:r,statuses:["in_progress"]}),scheduled:r=>un({workflowName:n,client:t,input:r,statuses:["pending","listening"]}),allFinished:r=>un({workflowName:n,client:t,input:r,statuses:["completed","cancelled","failed","timedout"]}),cancelled:r=>un({workflowName:n,client:t,input:r,statuses:["cancelled"]}),failed:r=>un({workflowName:n,client:t,input:r,statuses:["failed"]}),succeeded:r=>un({workflowName:n,client:t,input:r,statuses:["completed"]}),timedOut:r=>un({workflowName:n,client:t,input:r,statuses:["timedout"]})},startNewInstance:async r=>{let{workflow:o}=await t.createWorkflow({name:n,status:"pending",...r});return{workflow:cn({client:t,workflow:o})}}})}),un=async t=>{let e=await t.client.listWorkflows({name:t.workflowName,statuses:t.statuses,...t.input});return{...e,workflows:e.workflows.map(n=>cn({client:t.client,workflow:n}))}},cn=t=>({...t.workflow,async update(e){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,...e});return{workflow:cn({client:t.client,workflow:n})}},async setFailed({failureReason:e}){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,status:"failed",failureReason:e});return{workflow:cn({client:t.client,workflow:n})}},async setCompleted({output:e}={}){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,status:"completed",output:e});return{workflow:cn({client:t.client,workflow:n})}},async cancel(){let{workflow:e}=await t.client.updateWorkflow({id:t.workflow.id,status:"cancelled"});return{workflow:cn({client:t.client,workflow:e})}}});C();O();R();C();O();R();var uI=re.enum(["event_received","register","unregister","ping","action_triggered"]),Bv=t=>{let e=t[mo],n=t[ho],r=t[Dy],o=uI.parse(t[vo]);if(!e)throw new Error("Missing bot headers");if(!r)throw new Error("Missing type headers");if(!n)throw new Error("Missing configuration headers");if(!o)throw new Error("Missing operation headers");return{botId:e,operation:o,type:r,configuration:n?JSON.parse(z.from(n,"base64").toString("utf-8")):{}}};C();O();R();var lt={status:200};C();O();R();C();O();R();var $l=t=>{switch(t){case"workflow_continued":return"continued";case"workflow_started":return"started";case"workflow_timedout":return"timed_out";default:throw new Error(`Unsupported workflow update type: ${t}`)}};var cI=["child_workflow_deleted","child_workflow_finished","workflow_timedout","workflow_started","workflow_continued"],Pv=async(t,e)=>{if(t.ctx.type!=="workflow_update"||!cI.includes(e.payload.type))throw new Error("Unexpected event type");let n={...t,logger:fI(t,e)};if(!e.payload.workflow.name)return n.logger.warn("Received workflow update event without a workflow name. Assuming this workflow was not defined by the bot.",e.payload.workflow),lt;switch(e.payload.type){case"child_workflow_deleted":case"child_workflow_finished":n.logger.info(`Received child workflow event "${e.payload.type}", but child workflows are not yet supported`);break;case"workflow_timedout":case"workflow_started":case"workflow_continued":return await dI(n,e);default:e.payload.type}return lt},fI=(t,e)=>t.logger.with({eventId:e.id,workflowId:e.payload.workflow.id,conversationId:e.payload.conversation?.id,userId:e.payload.user?.id}),dI=async(t,e)=>{let n=$l(e.payload.type),r=t.self.workflowHandlers[n]?.[e.payload.workflow.name];return!r||r.length===0?(t.logger.warn(`No ${n} handler found for workflow "${e.payload.workflow.name}"`),lt):(await pI(t,e),await gI(t,e),lt)},pI=async(t,e)=>{e.payload.workflow.status==="pending"&&await t.client.updateWorkflow({id:e.payload.workflow.id,status:"in_progress",eventId:e.id})},gI=async(t,e)=>{let n=$l(e.payload.type),r=t.self.workflowHandlers[n]?.[e.payload.workflow.name];for(let o of r)await o({...t,conversation:e.payload.conversation,user:e.payload.user,workflow:cn({...t,workflow:e.payload.workflow}),workflows:mr(t.client)})};C();O();R();var Sv=t=>async e=>{let n=Bv(e.headers),r=new Un,o=new mI({botId:n.botId,retry:Fo}),s=new Qt(o,{before:{createMessage:async a=>{let l=t.hookHandlers.before_outgoing_message[a.type]??[];for(let c of l){let d=new Qt(o);a=(await c({client:d,ctx:n,logger:r.with({conversationId:a.conversationId,userId:a.userId}),data:a,...fn({client:d})}))?.data??a}return a},callAction:async a=>{let l=t.hookHandlers.before_outgoing_call_action[a.type]??[];for(let c of l){let d=new Qt(o);a=(await c({client:d,ctx:n,logger:r,data:a,...fn({client:d})}))?.data??a}return a}},after:{createMessage:async a=>{let l=t.hookHandlers.after_outgoing_message[a.message.type]??[];for(let c of l){let d=new Qt(o);a=(await c({client:d,ctx:n,logger:r.with({messageId:a.message.id,conversationId:a.message.conversationId,userId:a.message.userId}),data:a,...fn({client:d})}))?.data??a}return a},callAction:async(a,l)=>{let{type:c}=l,d=t.hookHandlers.after_outgoing_call_action[c]??[];for(let y of d){let g=new Qt(o);a=(await y({client:g,ctx:n,logger:r,data:{type:c,...a},...fn({client:g})}))?.data??a}return a}}}),i={req:e,ctx:n,logger:r,client:s,self:t};try{switch(n.operation){case"action_triggered":return await bI(i);case"event_received":return await _I(i);case"register":return await vI(i);case"unregister":return await TI(i);case"ping":return await hI(i);default:throw new Error(`Unknown operation ${n.operation}`)}}catch(a){if(yI(a)){let c=a.type==="Runtime"?a:new Ev(a.message,a);return r.error(c.message),{status:c.code,body:JSON.stringify(c.toJSON())}}let l=new Ev("An unexpected error occurred in the bot.");return r.error(l.message),{status:l.code,body:JSON.stringify(l.toJSON())}}},hI=async t=>lt,vI=async t=>lt,TI=async t=>lt,_I=async t=>{let{ctx:e,logger:n,req:r,client:o,self:s}=t,i={client:o,ctx:e,logger:n,...fn({client:o})},a=kt(r);if(i.logger=i.logger.with({eventId:a.event.id,messageId:a.event.messageId,conversationId:a.event.conversationId,userId:a.event.userId}),e.type==="workflow_update")return await Pv(t,a.event);if(e.type==="message_created"){let m=a.event,v=m.payload.message;i.logger=i.logger.with({messageId:v.id,conversationId:v.conversationId,userId:v.userId});let B=s.hookHandlers.before_incoming_message[v.type]??[];for(let E of B){let M=await E({...i,data:v});if(v=M?.data??v,M?.stop)return lt}let P={...i,user:m.payload.user,conversation:m.payload.conversation,message:v,event:m},T=s.messageHandlers[v.type]??[];for(let E of T)await E(P);let S=s.hookHandlers.after_incoming_message[v.type]??[];for(let E of S){let M=await E({...i,data:v});if(v=M?.data??v,M?.stop)return lt}return lt}if(e.type==="state_expired"){let v=a.event.payload.state,B={...i,state:v},P=s.stateExpiredHandlers["*"]??[];for(let T of P)await T(B);return lt}let l=a.event,c=s.hookHandlers.before_incoming_event[l.type]??[];for(let m of c){let v=await m({...i,data:l});if(l=v?.data??l,v?.stop)return lt}let d={...i,event:l},y=s.eventHandlers[l.type]??[];for(let m of y)await m(d);let g=s.hookHandlers.after_incoming_event[l.type]??[];for(let m of g){let v=await m({...i,data:l});if(l=v?.data??l,v?.stop)return lt}return lt},bI=async({ctx:t,logger:e,req:n,client:r,self:o})=>{let{input:s,type:i}=kt(n);if(!i)throw new Error("Missing action type");let a=o.hookHandlers.before_incoming_call_action[i]??[];for(let g of a){let m=await g({ctx:t,logger:e,client:r,data:{type:i,input:s},...fn({client:r})});s=m?.data?.input??s,i=m?.data?.type??i}let l=o.actionHandlers[i];if(!l)throw new Error(`Action ${i} not found`);let c=await l({ctx:t,logger:e,input:s,client:r,type:i,...fn({client:r})}),d=o.hookHandlers.after_incoming_call_action[i]??[];for(let g of d){let m=await g({ctx:t,logger:e,client:r,data:{type:i,output:c},...fn({client:r})});i=m?.data?.type??i,c=m?.data?.output??c}return{status:200,body:JSON.stringify({output:c})}},fn=t=>({workflows:mr(t.client)});var Zl=class{constructor(e){this.props=e;this._actionHandlers=e.actions,this._plugins=e.plugins}_actionHandlers;_messageHandlers={};_eventHandlers={};_stateExpiredHandlers={};_hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},before_incoming_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{},after_incoming_call_action:{}};_workflowHandlers={started:{},continued:{},timed_out:{}};_plugins={};_registerOrder=0;get actionHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._actionHandlers[n];if(r)return r;for(let o of Object.values(this._plugins))if(r=o.actionHandlers[n],r)return r}})}get messageHandlers(){return new Proxy({},{get:(e,n)=>{let r=Object.values(this._plugins).flatMap(a=>a.messageHandlers[n]??[]),o=this._messageHandlers[n]??[],s=this._messageHandlers["*"]??[],i=[...o,...s].sort((a,l)=>a.order-l.order).map(({handler:a})=>a);return ge.unique([...r,...i])}})}get eventHandlers(){return new Proxy({},{get:(e,n)=>{let r=Object.values(this._plugins).flatMap(a=>a.eventHandlers[n]??[]),o=this._eventHandlers[n]??[],s=this._eventHandlers["*"]??[],i=[...o,...s].sort((a,l)=>a.order-l.order).map(({handler:a})=>a);return ge.unique([...r,...i])}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,n)=>{let r=Object.values(this._plugins).flatMap(a=>a.stateExpiredHandlers[n]??[]),o=this._stateExpiredHandlers[n]??[],s=this._stateExpiredHandlers["*"]??[],i=[...o,...s].sort((a,l)=>a.order-l.order).map(({handler:a})=>a);return ge.unique([...r,...i])}})}get hookHandlers(){return new Proxy({},{get:(e,n)=>{if(this._hookHandlers[n])return new Proxy({},{get:(o,s)=>{let i=Object.values(this._plugins).flatMap(y=>y.hookHandlers[n]?.[s]??[]),a=this._hookHandlers[n]??{},l=a[s]??[],c=a["*"]??[],d=[...l,...c].sort((y,g)=>y.order-g.order).map(({handler:y})=>y);return ge.unique([...i,...d])}})}})}get workflowHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._workflowHandlers[n];if(r)return new Proxy({},{get:(o,s)=>{let i=r[s]?.sort((l,c)=>l.order-c.order).map(({handler:l})=>l)??[],a=Object.values(this._plugins).flatMap(l=>l.workflowHandlers[n]?.[s]??[]);return ge.unique([...i,...a])}})}})}on={message:(e,n)=>{this._messageHandlers[e]=ge.safePush(this._messageHandlers[e],{handler:n,order:this._registerOrder++})},event:(e,n)=>{this._eventHandlers[e]=ge.safePush(this._eventHandlers[e],{handler:n,order:this._registerOrder++})},stateExpired:(e,n)=>{this._stateExpiredHandlers[e]=ge.safePush(this._stateExpiredHandlers[e],{handler:n,order:this._registerOrder++})},beforeIncomingEvent:(e,n)=>{this._hookHandlers.before_incoming_event[e]=ge.safePush(this._hookHandlers.before_incoming_event[e],{handler:n,order:this._registerOrder++})},beforeIncomingMessage:(e,n)=>{this._hookHandlers.before_incoming_message[e]=ge.safePush(this._hookHandlers.before_incoming_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingMessage:(e,n)=>{this._hookHandlers.before_outgoing_message[e]=ge.safePush(this._hookHandlers.before_outgoing_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingCallAction:(e,n)=>{this._hookHandlers.before_outgoing_call_action[e]=ge.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},beforeIncomingCallAction:(e,n)=>{this._hookHandlers.before_incoming_call_action[e]=ge.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingEvent:(e,n)=>{this._hookHandlers.after_incoming_event[e]=ge.safePush(this._hookHandlers.after_incoming_event[e],{handler:n,order:this._registerOrder++})},afterIncomingMessage:(e,n)=>{this._hookHandlers.after_incoming_message[e]=ge.safePush(this._hookHandlers.after_incoming_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingMessage:(e,n)=>{this._hookHandlers.after_outgoing_message[e]=ge.safePush(this._hookHandlers.after_outgoing_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingCallAction:(e,n)=>{this._hookHandlers.after_outgoing_call_action[e]=ge.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingCallAction:(e,n)=>{this._hookHandlers.after_incoming_call_action[e]=ge.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:n,order:this._registerOrder++})},workflowStart:(e,n)=>{this._workflowHandlers.started[e]=ge.safePush(this._workflowHandlers.started[e],{handler:n,order:this._registerOrder++})},workflowContinue:(e,n)=>{this._workflowHandlers.continued[e]=ge.safePush(this._workflowHandlers.continued[e],{handler:n,order:this._registerOrder++})},workflowTimeout:(e,n)=>{this._workflowHandlers.timed_out[e]=ge.safePush(this._workflowHandlers.timed_out[e],{handler:n,order:this._registerOrder++})}};handler=Sv(this);start=e=>$o(this.handler,e)};C();O();R();C();O();R();C();O();R();C();O();R();C();O();R();var Ll=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.icon=e.icon,this.title=e.title,this.description=e.description,this.readme=e.readme,this.entities=e.entities??{};let n=this._getEntityReference(this.entities),r=e.events===void 0?{}:qe.mapValues(e.events,i=>({...i,schema:i.schema(n)})),o=e.actions===void 0?{}:qe.mapValues(e.actions,i=>({...i,input:{...i.input,schema:i.input.schema(n)},output:{...i.output,schema:i.output.schema(n)}})),s=e.channels===void 0?{}:qe.mapValues(e.channels,i=>({...i,messages:qe.mapValues(i.messages,a=>({...a,schema:a.schema(n)}))}));this.events=r,this.actions=o,this.channels=s}name;version;title;description;icon;readme;entities;events;actions;channels;_getEntityReference=e=>{let n={};for(let[r,o]of Object.entries(e)){let s=o.schema._def["x-zui"]?.title,i=o.schema._def.description,a=_y.ref(r);s&&a.title(s),i&&a.describe(i),n[r]=a}return n}};C();O();R();C();O();R();C();O();R();C();O();R();var Fl=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.icon=e.icon,this.readme=e.readme,this.title=e.title,this.description=e.description,this.integrations=e.integrations,this.interfaces=e.interfaces,this.user=e.user,this.conversation=e.conversation,this.message=e.message,this.states=e.states,this.configuration=e.configuration,this.events=e.events,this.recurringEvents=e.recurringEvents,this.actions=e.actions,this.tables=e.tables,this.workflows=e.workflows}name;version;title;description;icon;readme;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows};C();O();R();C();O();R();C();O();R();C();O();R();var Kl=":";var kv=t=>{let[e,n]=t.split(Kl);return!e||!n?null:{namespace:e,eventName:n}},Iv=t=>`${t.namespace}${Kl}${t.actionName}`,Av=t=>`${t.namespace}${Kl}${t.eventName}`,Cv=(t,e)=>{let n=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},r=n.name,o=n.actions[t.actionName]?.name??t.actionName;return{namespace:r,actionName:o}},Rv=(t,e)=>{let n=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},r=n.name,o=n.events[t.eventName]?.name??t.eventName;return{namespace:r,eventName:o}};var Ov=(t,e)=>new Proxy({},{get:(n,r)=>new Proxy({},{get:(o,s)=>i=>wI({client:t,interfaces:e.interfaces,integrationOrInterfaceName:r,methodName:s,input:i})})}),wI=async({client:t,interfaces:e,integrationOrInterfaceName:n,methodName:r,input:o})=>{let s=Cv({namespace:n,actionName:r},e),i=Iv(s);return(await t.callAction({type:i,input:o})).output};C();O();R();C();O();R();C();O();R();var Wl=class{constructor(e,n,r){this._client=e;this._stateType=n;this._stateName=r}async get(e){return await this._client.getState({type:this._stateType,name:this._stateName,id:e}).then(n=>n.state.payload)}async set(e,n){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:n})}async getOrSet(e,n){return await this._client.getOrSetState({type:this._stateType,name:this._stateName,id:e,payload:n}).then(r=>r.state.payload)}async delete(e){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:null})}async patch(e,n){await this._client.patchState({type:this._stateType,name:this._stateName,id:e,payload:n})}},Mv=(t,e)=>new Proxy({},{get:(n,r)=>new Proxy({},{get:(o,s)=>{let i=e.alias!==void 0?`${e.alias}${Wo}${s}`:s;return new Wl(t,r,i)}})});C();O();R();var ql=class{constructor(e){this.props=e;this._actionHandlers=e.actions}_runtimeProps;_actionHandlers;_messageHandlers={};_eventHandlers={};_stateExpiredHandlers={};_hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},before_incoming_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{},after_incoming_call_action:{}};_workflowHandlers={started:{},continued:{},timed_out:{}};_registerOrder=0;initialize(e){return this._runtimeProps=e,this}get _runtime(){if(!this._runtimeProps)throw new Error("Plugin not correctly initialized. This is likely because you access your plugin config outside of an handler.");return this._runtimeProps}_getTools(e){let{configuration:n,interfaces:r,alias:o}=this._runtime,s=Ov(e,this._runtime),i=Mv(e,this._runtime),a=mr(e);return{configuration:n,interfaces:r,actions:s,states:i,alias:o,workflows:a}}get actionHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=this._actionHandlers[n];if(r)return Xt.setName(o=>r({...o,...this._getTools(o.client)}),r.name)}})}get messageHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=this._messageHandlers[n]??[],o=this._messageHandlers["*"]??[];return ge.unique([...r,...o]).sort((i,a)=>i.order-a.order).map(({handler:i})=>Xt.setName(a=>i({...a,...this._getTools(a.client)}),i.name))}})}get eventHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=this._eventHandlers[n]??[],o=Object.entries(this._eventHandlers).filter(([a])=>this._eventResolvesTo(a,n)).flatMap(([,a])=>a??[]),s=this._eventHandlers["*"]??[];return ge.unique([...r,...o,...s]).sort((a,l)=>a.order-l.order).map(({handler:a})=>Xt.setName(l=>a({...l,...this._getTools(l.client)}),a.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=this._stateExpiredHandlers[n]??[],o=this._stateExpiredHandlers["*"]??[];return ge.unique([...r,...o]).sort((i,a)=>i.order-a.order).map(({handler:i})=>Xt.setName(a=>i({...a,...this._getTools(a.client)}),i.name))}})}get hookHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._hookHandlers[n];if(r)return new Proxy({},{get:(o,s)=>{s=this._stripAliasPrefix(s);let i=r[s]??[],a=Object.entries(r).filter(([d])=>this._eventResolvesTo(d,s)).flatMap(([,d])=>d??[]),l=r["*"]??[];return ge.unique([...i,...a,...l]).sort((d,y)=>d.order-y.order).map(({handler:d})=>Xt.setName(y=>d({...y,...this._getTools(y.client)}),d.name))}})}})}get workflowHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._workflowHandlers[n];if(r)return new Proxy({},{get:(o,s)=>(r[s]?.sort((a,l)=>a.order-l.order)??[]).map(({handler:a})=>Xt.setName(l=>a({...l,...this._getTools(l.client)}),a.name))})}})}on={message:(e,n)=>{this._messageHandlers[e]=ge.safePush(this._messageHandlers[e],{handler:n,order:this._registerOrder++})},event:(e,n)=>{this._eventHandlers[e]=ge.safePush(this._eventHandlers[e],{handler:n,order:this._registerOrder++})},stateExpired:(e,n)=>{this._stateExpiredHandlers[e]=ge.safePush(this._stateExpiredHandlers[e],{handler:n,order:this._registerOrder++})},beforeIncomingEvent:(e,n)=>{this._hookHandlers.before_incoming_event[e]=ge.safePush(this._hookHandlers.before_incoming_event[e],{handler:n,order:this._registerOrder++})},beforeIncomingMessage:(e,n)=>{this._hookHandlers.before_incoming_message[e]=ge.safePush(this._hookHandlers.before_incoming_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingMessage:(e,n)=>{this._hookHandlers.before_outgoing_message[e]=ge.safePush(this._hookHandlers.before_outgoing_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingCallAction:(e,n)=>{this._hookHandlers.before_outgoing_call_action[e]=ge.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},beforeIncomingCallAction:(e,n)=>{this._hookHandlers.before_incoming_call_action[e]=ge.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingEvent:(e,n)=>{this._hookHandlers.after_incoming_event[e]=ge.safePush(this._hookHandlers.after_incoming_event[e],{handler:n,order:this._registerOrder++})},afterIncomingMessage:(e,n)=>{this._hookHandlers.after_incoming_message[e]=ge.safePush(this._hookHandlers.after_incoming_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingMessage:(e,n)=>{this._hookHandlers.after_outgoing_message[e]=ge.safePush(this._hookHandlers.after_outgoing_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingCallAction:(e,n)=>{this._hookHandlers.after_outgoing_call_action[e]=ge.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingCallAction:(e,n)=>{this._hookHandlers.after_incoming_call_action[e]=ge.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:n,order:this._registerOrder++})},workflowStart:(e,n)=>{this._workflowHandlers.started[e]=ge.safePush(this._workflowHandlers.started[e],{handler:n,order:this._registerOrder++})},workflowContinue:(e,n)=>{this._workflowHandlers.continued[e]=ge.safePush(this._workflowHandlers.continued[e],{handler:n,order:this._registerOrder++})},workflowTimeout:(e,n)=>{this._workflowHandlers.timed_out[e]=ge.safePush(this._workflowHandlers.timed_out[e],{handler:n,order:this._registerOrder++})}};_eventResolvesTo=(e,n)=>{let r=kv(e);if(!r)return!1;let o=Rv(r,this._runtime.interfaces);return Av(o)===n};_stripAliasPrefix=e=>{let{alias:n}=this._runtime;if(!n)return e;let r=`${n}:`;return e.startsWith(r)?e.slice(r.length):e}};C();O();R();C();O();R();C();O();R();C();O();R();C();O();R();C();O();R();export{mx as BRAND,Zl as Bot,jl as BotDefinition,Un as BotLogger,Qt as BotSpecificClient,Vn as DIRTY,gx as EMPTY_PATH,Ar as ErrorBoundary,de as INVALID,Ul as Integration,tl as IntegrationDefinition,Hn as IntegrationLogger,Gr as IntegrationSpecificClient,Ll as InterfaceDefinition,OB as NEVER,ct as OK,Et as ParseInputLazyPath,gt as ParseStatus,ql as Plugin,Fl as PluginDefinition,xH as RuntimeError,me as Schema,MA as WELL_KNOWN_ATTRIBUTES,Pi as ZodAny,Nr as ZodArray,Ua as ZodBigInt,ja as ZodBoolean,$a as ZodBranded,Za as ZodCatch,La as ZodDate,co as ZodDefault,ug as ZodDiscriminatedUnion,wn as ZodEffects,ir as ZodEnum,$t as ZodError,Vp as ZodFirstPartyTypeKind,fg as ZodFunction,Ka as ZodIntersection,G as ZodIssueCode,Wa as ZodLazy,qa as ZodLiteral,gg as ZodMap,mg as ZodNaN,za as ZodNativeEnum,bn as ZodNever,Ga as ZodNull,Yn as ZodNullable,Va as ZodNumber,Xn as ZodObject,nn as ZodOptional,ne as ZodParsedType,Ja as ZodPipeline,po as ZodPromise,go as ZodReadonly,xg as ZodRecord,Pg as ZodRef,me as ZodSchema,Eg as ZodSet,ft as ZodString,Ug as ZodSymbol,wn as ZodTransformer,er as ZodTuple,me as ZodType,Ya as ZodUndefined,Xa as ZodUnion,Ir as ZodUnknown,Lg as ZodVoid,hA as ZuiForm,te as addIssueToContext,Ux as agent,Fx as aimodel,eB as any,iB as array,Vx as bigint,my as boolean,mo as botIdHeader,Cy as botUserIdHeader,RB as coerce,ho as configurationHeader,My as configurationTypeHeader,Dx as conversation,fo as createZodEnum,kg as cuid2Regex,Sg as cuidRegex,sg as custom,Kx as datasource,Jx as date,Dg as datetimeRegex,vA as defaultComponentDefinitions,lB as discriminatedUnion,cf as effect,Cg as emailRegex,TB as enum,se as errorUtil,jx as event,AB as fromJsonSchema,CB as fromObject,mB as function,Mr as getErrorMap,tn as getParsedType,zx as instanceof,Ry as integrationIdHeader,Lx as intent,uB as intersection,Og as ipv4Regex,Mg as ipv6Regex,ya as isAborted,wH as isApiError,xi as isAsync,ma as isDirty,hx as isEmojiRegex,Dr as isValid,yo as jsonSchemaToZui,Wx as knowledgebase,qx as late,hB as lazy,vB as literal,wi as makeIssue,gB as map,jr as mergeObjectSchemas,Hx as message,Ay as messages,Gx as nan,_B as nativeEnum,nB as never,Qx as null,xB as nullable,yy as number,oB as object,Hr as objectToZui,ga as objectUtil,IB as oboolean,kB as onumber,vo as operationHeader,wB as optional,SB as ostring,kt as parseBody,EB as pipeline,PB as preprocess,ye as processCreateParams,bB as promise,px as quotelessJson,pB as readonly,fB as record,dB as ref,$o as serve,yB as set,Xp as setErrorMap,aB as strictObject,gy as string,Yx as symbol,$x as table,Zx as tablerow,cf as transformer,TA as transforms,cB as tuple,Dy as typeHeader,Ig as ulidRegex,Xx as undefined,sB as union,tB as unknown,Nx as user,be as util,Ag as uuidRegex,Mx as variable,rB as void,Oy as webhookIdHeader,rP as withErrorBoundary,re as z,ns as zuiToJsonSchema};
88
+ `)+" "+F[1]:F[0]+Z+" "+D.join(", ")+" "+F[1]}xe.types=Vk();function P(D){return Array.isArray(D)}xe.isArray=P;function T(D){return typeof D=="boolean"}xe.isBoolean=T;function S(D){return D===null}xe.isNull=S;function E(D){return D==null}xe.isNullOrUndefined=E;function M(D){return typeof D=="number"}xe.isNumber=M;function $(D){return typeof D=="string"}xe.isString=$;function oe(D){return typeof D=="symbol"}xe.isSymbol=oe;function X(D){return D===void 0}xe.isUndefined=X;function ue(D){return ee(D)&&Ne(D)==="[object RegExp]"}xe.isRegExp=ue,xe.types.isRegExp=ue;function ee(D){return typeof D=="object"&&D!==null}xe.isObject=ee;function ie(D){return ee(D)&&Ne(D)==="[object Date]"}xe.isDate=ie,xe.types.isDate=ie;function Oe(D){return ee(D)&&(Ne(D)==="[object Error]"||D instanceof Error)}xe.isError=Oe,xe.types.isNativeError=Oe;function Ie(D){return typeof D=="function"}xe.isFunction=Ie;function $e(D){return D===null||typeof D=="boolean"||typeof D=="number"||typeof D=="string"||typeof D=="symbol"||typeof D>"u"}xe.isPrimitive=$e,xe.isBuffer=Jk();function Ne(D){return Object.prototype.toString.call(D)}function Me(D){return D<10?"0"+D.toString(10):D.toString(10)}var Ve=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Ae(){var D=new Date,Z=[Me(D.getHours()),Me(D.getMinutes()),Me(D.getSeconds())].join(":");return[D.getDate(),Ve[D.getMonth()],Z].join(" ")}xe.log=function(){console.log("%s - %s",Ae(),xe.format.apply(xe,arguments))},xe.inherits=Ct(),xe._extend=function(D,Z){if(!Z||!ee(Z))return D;for(var F=Object.keys(Z),fe=F.length;fe--;)D[F[fe]]=Z[F[fe]];return D};function he(D,Z){return Object.prototype.hasOwnProperty.call(D,Z)}var Se=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;xe.promisify=function(Z){if(typeof Z!="function")throw new TypeError('The "original" argument must be of type Function');if(Se&&Z[Se]){if(F=Z[Se],typeof F!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(F,Se,{value:F,enumerable:!1,writable:!1,configurable:!0}),F}function F(){for(var fe,Te,A=new Promise(function(Y,ae){fe=Y,Te=ae}),k=[],j=0;j<arguments.length;j++)k.push(arguments[j]);k.push(function(Y,ae){Y?Te(Y):fe(ae)});try{Z.apply(this||Yr,k)}catch(Y){Te(Y)}return A}return Object.setPrototypeOf(F,Object.getPrototypeOf(Z)),Se&&Object.defineProperty(F,Se,{value:F,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(F,e(Z))},xe.promisify.custom=Se;function ce(D,Z){if(!D){var F=new Error("Promise was rejected with a falsy value");F.reason=D,D=F}return Z(D)}function ve(D){if(typeof D!="function")throw new TypeError('The "original" argument must be of type Function');function Z(){for(var F=[],fe=0;fe<arguments.length;fe++)F.push(arguments[fe]);var Te=F.pop();if(typeof Te!="function")throw new TypeError("The last argument must be of type Function");var A=this||Yr,k=function(){return Te.apply(A,arguments)};D.apply(this||Yr,F).then(function(j){t.nextTick(k.bind(null,null,j))},function(j){t.nextTick(ce.bind(null,j,k))})}return Object.setPrototypeOf(Z,Object.getPrototypeOf(D)),Object.defineProperties(Z,e(D)),Z}return xe.callbackify=ve,xe}var le=Yk();le.format;le.deprecate;le.debuglog;le.inspect;le.types;le.isArray;le.isBoolean;le.isNull;le.isNullOrUndefined;le.isNumber;le.isString;le.isSymbol;le.isUndefined;le.isRegExp;le.isObject;le.isDate;le.isError;le.isFunction;le.isPrimitive;le.isBuffer;le.log;le.inherits;le._extend;le.promisify;le.callbackify;var TR=le._extend,_R=le.callbackify,bR=le.debuglog,wR=le.deprecate,xR=le.format,BR=le.inherits,PR=le.inspect,ER=le.isArray,SR=le.isBoolean,kR=le.isBuffer,IR=le.isDate,AR=le.isError,CR=le.isFunction,RR=le.isNull,OR=le.isNullOrUndefined,MR=le.isNumber,DR=le.isObject,NR=le.isPrimitive,HR=le.isRegExp,UR=le.isString,jR=le.isSymbol,$R=le.isUndefined,ZR=le.log,LR=le.promisify,FR=le.types,KR=le.TextEncoder=globalThis.TextEncoder,WR=le.TextDecoder=globalThis.TextDecoder;var yr=class{defaultOptions;constructor(e){this.defaultOptions=e}info(...e){this._log("info",e)}debug(...e){this._log("debug",e)}warn(...e){this._log("warn",e)}error(...e){this._log("error",e)}_log(e,n){this._getConsoleMethod(e)(this._serializeMessage(n))}_serializeMessage(e){let n=le.format(...e);return J.env.BP_LOG_FORMAT==="json"?this.getJsonMessage(n):n}getJsonMessage(e){return JSON.stringify({msg:e,options:this.defaultOptions})}_getConsoleMethod(e){switch(e){case"debug":return console.debug;case"warn":return console.warn;case"error":return console.error;default:return console.info}}};var Hn=class extends yr{constructor(e){super({visibleToBotOwners:!0,...e})}with(e){return new Hn({...this.defaultOptions,...e})}withUserId(e){return this.with({userId:e})}withConversationId(e){return this.with({conversationId:e})}withVisibleToBotOwners(e){return this.with({visibleToBotOwners:e})}forBot(){return this.withVisibleToBotOwners(!0)}getJsonMessage(e){return JSON.stringify({msg:e,visible_to_bot_owner:this.defaultOptions.visibleToBotOwners,options:this.defaultOptions})}};C();O();R();var eI=t=>["traceparent","tracestate","sentry-trace"].reduce((e,n)=>(t[n]&&(e[n]=t[n]),e),{}),xv=t=>async e=>{let n=$h(e.headers),[,r]=(e.headers.traceparent||"").split("-"),o=new Qk({botId:n.botId,integrationId:n.integrationId,retry:Fo,headers:eI(e.headers)}),s=new Gr(o),i=new Hn({traceId:r}),a={ctx:n,req:e,client:s,logger:i,instance:t};try{let l;switch(n.operation){case"webhook_received":l=await nI(a);break;case"register":l=await rI(a);break;case"unregister":l=await iI(a);break;case"message_created":l=await sI(a);break;case"action_triggered":l=await lI(a);break;case"ping":l=await tI(a);break;case"create_user":l=await oI(a);break;case"create_conversation":l=await aI(a);break;default:throw new Error(`Unknown operation ${n.operation}`)}return l?{...l,status:l.status??200}:{status:200}}catch(l){if(Xk(l)){let d=l.type==="Runtime"?l:new wv(l.message,l);return i.forBot().error(d.message),{status:d.code,body:JSON.stringify(d.toJSON())}}console.error(l);let c=new wv("An unexpected error occurred in the integration. Bot owners: Check logs for more informations. Integration owners: throw a RuntimeError to return a custom error message instead.");return i.forBot().error(c.message),{status:c.code,body:JSON.stringify(c.toJSON())}}},tI=async t=>{},nI=async({client:t,ctx:e,req:n,logger:r,instance:o})=>{let{req:s}=kt(n);return o.webhook({client:t,ctx:e,req:s,logger:r})},rI=async({client:t,ctx:e,req:n,logger:r,instance:o})=>{if(!o.register)return;let{webhookUrl:s}=kt(n);await o.register({client:t,ctx:e,webhookUrl:s,logger:r})},iI=async({client:t,ctx:e,req:n,logger:r,instance:o})=>{if(!o.unregister)return;let{webhookUrl:s}=kt(n);await o.unregister({ctx:e,webhookUrl:s,client:t,logger:r})},oI=async({client:t,ctx:e,req:n,logger:r,instance:o})=>{if(!o.createUser)return;let{tags:s}=kt(n);return await o.createUser({ctx:e,client:t,tags:s,logger:r})},aI=async({client:t,ctx:e,req:n,logger:r,instance:o})=>{if(!o.createConversation)return;let{channel:s,tags:i}=kt(n);return await o.createConversation({ctx:e,client:t,channel:s,tags:i,logger:r})},sI=async({ctx:t,req:e,client:n,logger:r,instance:o})=>{let{conversation:s,user:i,type:a,payload:l,message:c}=kt(e),d=o.channels[s.channel];if(!d)throw new Error(`Channel ${s.channel} not found`);let y=d.messages[a];if(!y)throw new Error(`Message of type ${a} not found in channel ${s.channel}`);await y({ctx:t,conversation:s,message:c,user:i,type:a,client:n,payload:l,ack:async({tags:m})=>{await n.updateMessage({id:c.id,tags:m})},logger:r})},lI=async({req:t,ctx:e,client:n,logger:r,instance:o})=>{let{input:s,type:i}=kt(t);if(!i)throw new Error("Missing action type");let a=o.actions[i];if(!a)throw new Error(`Action ${i} not found`);let l=new Ko,d={output:await a({ctx:e,input:s,client:n,type:i,logger:r,metadata:l}),meta:l.toJSON()};return{body:JSON.stringify(d)}};var Ul=class{constructor(e){this.props=e;this.actions=e.actions,this.channels=e.channels,this.register=e.register,this.unregister=e.unregister,this.createUser=e.createUser,this.createConversation=e.createConversation,this.webhook=e.handler}actions;channels;register;unregister;createUser;createConversation;webhook;handler=xv(this);start=e=>$o(this.handler,e)};C();O();R();C();O();R();C();O();R();C();O();R();C();O();R();var jl=class{constructor(e){this.props=e;this.integrations=e.integrations,this.plugins=e.plugins,this.user=e.user,this.conversation=e.conversation,this.message=e.message,this.states=e.states,this.configuration=e.configuration,this.events=e.events,this.recurringEvents=e.recurringEvents,this.actions=e.actions,this.tables=e.tables,this.workflows=e.workflows}integrations;plugins;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows;addIntegration(e,n){let r=this;return r.integrations||(r.integrations={}),r.integrations[e.name]={enabled:n.enabled,...e,configurationType:n.configurationType,configuration:n.configuration,disabledChannels:n.disabledChannels},this}addPlugin(e,n){let r=this;r.plugins||(r.plugins={});let o=n.alias??e.name;return r.plugins[o]={...e,alias:n.alias,configuration:n.configuration,interfaces:n.interfaces},r.user=this._mergeUser(r.user,e.definition.user),r.conversation=this._mergeConversation(r.conversation,e.definition.conversation),r.message=this._mergeMessage(r.message,e.definition.message),r.recurringEvents=this._mergeRecurringEvents(r.recurringEvents,e.definition.recurringEvents),r.tables=this._mergeTables(r.tables,e.definition.tables),r.workflows=this._mergeWorkflows(r.workflows,e.definition.workflows),r.states=this._mergeStates(r.states,this._prefixKeys(e.definition.states,n.alias)),r.events=this._mergeEvents(r.events,this._prefixKeys(e.definition.events,n.alias)),r.actions=this._mergeActions(r.actions,this._prefixKeys(e.definition.actions,n.alias)),this}_mergeUser=(e,n)=>({tags:{...e?.tags,...n?.tags}});_mergeConversation=(e,n)=>({tags:{...e?.tags,...n?.tags}});_mergeMessage=(e,n)=>({tags:{...e?.tags,...n?.tags}});_mergeStates=(e,n)=>({...e,...n});_mergeEvents=(e,n)=>({...e,...n});_mergeRecurringEvents=(e,n)=>({...e,...n});_mergeActions=(e,n)=>({...e,...n});_mergeTables=(e,n)=>({...e,...n});_mergeWorkflows=(e,n)=>({...e,...n});_prefixKeys=(e,n)=>!e||!n?e:qe.mapKeys(e,r=>`${n}${Wo}${r}`)};C();O();R();C();O();R();import{isApiError as yI,Client as mI,RuntimeError as Ev}from"@botpress/client";C();O();R();var Un=class extends yr{constructor(e){super({...e})}with(e){return new Un({...this.defaultOptions,...e})}withUserId(e){return this.with({userId:e})}withConversationId(e){return this.with({conversationId:e})}withWorkflowId(e){return this.with({workflowId:e})}withEventId(e){return this.with({eventId:e})}withMessageId(e){return this.with({messageId:e})}};C();O();R();C();O();R();var Qt=class{constructor(e,n={before:{},after:{}}){this._client=e;this._hooks=n}getConversation=e=>this._run("getConversation",e);listConversations=e=>this._run("listConversations",e);updateConversation=e=>this._run("updateConversation",e);deleteConversation=e=>this._run("deleteConversation",e);listParticipants=e=>this._run("listParticipants",e);addParticipant=e=>this._run("addParticipant",e);getParticipant=e=>this._run("getParticipant",e);removeParticipant=e=>this._run("removeParticipant",e);createEvent=e=>this._run("createEvent",e);getEvent=e=>this._run("getEvent",e);listEvents=e=>this._run("listEvents",e);createMessage=e=>this._run("createMessage",e);getOrCreateMessage=e=>this._run("getOrCreateMessage",e);getMessage=e=>this._run("getMessage",e);updateMessage=e=>this._run("updateMessage",e);listMessages=e=>this._run("listMessages",e);deleteMessage=e=>this._run("deleteMessage",e);getUser=e=>this._run("getUser",e);listUsers=e=>this._run("listUsers",e);updateUser=e=>this._run("updateUser",e);deleteUser=e=>this._run("deleteUser",e);getState=e=>this._run("getState",e);setState=e=>this._run("setState",e);getOrSetState=e=>this._run("getOrSetState",e);patchState=e=>this._run("patchState",e);callAction=e=>this._run("callAction",e);uploadFile=e=>this._run("uploadFile",e);upsertFile=e=>this._run("upsertFile",e);deleteFile=e=>this._run("deleteFile",e);listFiles=e=>this._run("listFiles",e);getFile=e=>this._run("getFile",e);updateFileMetadata=e=>this._run("updateFileMetadata",e);searchFiles=e=>this._run("searchFiles",e);trackAnalytics=e=>this._run("trackAnalytics",e);getTableRow=e=>this._run("getTableRow",e);createTableRows=e=>this._run("createTableRows",e);findTableRows=e=>this._run("findTableRows",e);deleteTableRows=e=>this._run("deleteTableRows",e);updateTableRows=e=>this._run("updateTableRows",e);upsertTableRows=e=>this._run("upsertTableRows",e);createWorkflow=e=>this._run("createWorkflow",e);getWorkflow=e=>this._run("getWorkflow",e);updateWorkflow=e=>this._run("updateWorkflow",e);deleteWorkflow=e=>this._run("deleteWorkflow",e);listWorkflows=e=>this._run("listWorkflows",e);createConversation=e=>this._client.createConversation(e);getOrCreateConversation=e=>this._client.getOrCreateConversation(e);createUser=e=>this._client.createUser(e);getOrCreateUser=e=>this._client.getOrCreateUser(e);_run=async(e,n)=>{let r=this._hooks.before[e];r&&(n=await r(n));let o=await this._client[e](n),s=this._hooks.after[e];return s&&(o=await s(o,n)),o}};C();O();R();C();O();R();var mr=t=>new Proxy({},{get:(e,n)=>({listInstances:{all:r=>un({workflowName:n,client:t,input:r}),running:r=>un({workflowName:n,client:t,input:r,statuses:["in_progress"]}),scheduled:r=>un({workflowName:n,client:t,input:r,statuses:["pending","listening"]}),allFinished:r=>un({workflowName:n,client:t,input:r,statuses:["completed","cancelled","failed","timedout"]}),cancelled:r=>un({workflowName:n,client:t,input:r,statuses:["cancelled"]}),failed:r=>un({workflowName:n,client:t,input:r,statuses:["failed"]}),succeeded:r=>un({workflowName:n,client:t,input:r,statuses:["completed"]}),timedOut:r=>un({workflowName:n,client:t,input:r,statuses:["timedout"]})},startNewInstance:async r=>{let{workflow:o}=await t.createWorkflow({name:n,status:"pending",...r});return{workflow:cn({client:t,workflow:o})}}})}),un=async t=>{let e=await t.client.listWorkflows({name:t.workflowName,statuses:t.statuses,...t.input});return{...e,workflows:e.workflows.map(n=>cn({client:t.client,workflow:n}))}},cn=t=>({...t.workflow,async update(e){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,...e});return{workflow:cn({client:t.client,workflow:n})}},async setFailed({failureReason:e}){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,status:"failed",failureReason:e});return{workflow:cn({client:t.client,workflow:n})}},async setCompleted({output:e}={}){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,status:"completed",output:e});return{workflow:cn({client:t.client,workflow:n})}},async cancel(){let{workflow:e}=await t.client.updateWorkflow({id:t.workflow.id,status:"cancelled"});return{workflow:cn({client:t.client,workflow:e})}}});C();O();R();C();O();R();var uI=re.enum(["event_received","register","unregister","ping","action_triggered"]),Bv=t=>{let e=t[mo],n=t[ho],r=t[Dy],o=uI.parse(t[vo]);if(!e)throw new Error("Missing bot headers");if(!r)throw new Error("Missing type headers");if(!n)throw new Error("Missing configuration headers");if(!o)throw new Error("Missing operation headers");return{botId:e,operation:o,type:r,configuration:n?JSON.parse(z.from(n,"base64").toString("utf-8")):{}}};C();O();R();var lt={status:200};C();O();R();C();O();R();var $l=t=>{switch(t){case"workflow_continued":return"continued";case"workflow_started":return"started";case"workflow_timedout":return"timed_out";default:throw new Error(`Unsupported workflow update type: ${t}`)}};var cI=["child_workflow_deleted","child_workflow_finished","workflow_timedout","workflow_started","workflow_continued"],Pv=async(t,e)=>{if(t.ctx.type!=="workflow_update"||!cI.includes(e.payload.type))throw new Error("Unexpected event type");let n={...t,logger:fI(t,e)};if(!e.payload.workflow.name)return n.logger.warn("Received workflow update event without a workflow name. Assuming this workflow was not defined by the bot.",e.payload.workflow),lt;switch(e.payload.type){case"child_workflow_deleted":case"child_workflow_finished":n.logger.info(`Received child workflow event "${e.payload.type}", but child workflows are not yet supported`);break;case"workflow_timedout":case"workflow_started":case"workflow_continued":return await dI(n,e);default:e.payload.type}return lt},fI=(t,e)=>t.logger.with({eventId:e.id,workflowId:e.payload.workflow.id,conversationId:e.payload.conversation?.id,userId:e.payload.user?.id}),dI=async(t,e)=>{let n=$l(e.payload.type),r=t.self.workflowHandlers[n]?.[e.payload.workflow.name];return!r||r.length===0?(t.logger.warn(`No ${n} handler found for workflow "${e.payload.workflow.name}"`),lt):(await pI(t,e),await gI(t,e),lt)},pI=async(t,e)=>{e.payload.workflow.status==="pending"&&await t.client.updateWorkflow({id:e.payload.workflow.id,status:"in_progress",eventId:e.id})},gI=async(t,e)=>{let n=$l(e.payload.type),r=t.self.workflowHandlers[n]?.[e.payload.workflow.name];for(let o of r)await o({...t,conversation:e.payload.conversation,user:e.payload.user,workflow:cn({...t,workflow:e.payload.workflow}),workflows:mr(t.client)})};C();O();R();var Sv=t=>async e=>{let n=Bv(e.headers),r=new Un,o=new mI({botId:n.botId,retry:Fo}),s=new Qt(o,{before:{createMessage:async a=>{let l=t.hookHandlers.before_outgoing_message[a.type]??[];for(let c of l){let d=new Qt(o);a=(await c({client:d,ctx:n,logger:r.with({conversationId:a.conversationId,userId:a.userId}),data:a,...fn({client:d})}))?.data??a}return a},callAction:async a=>{let l=t.hookHandlers.before_outgoing_call_action[a.type]??[];for(let c of l){let d=new Qt(o);a=(await c({client:d,ctx:n,logger:r,data:a,...fn({client:d})}))?.data??a}return a}},after:{createMessage:async a=>{let l=t.hookHandlers.after_outgoing_message[a.message.type]??[];for(let c of l){let d=new Qt(o);a=(await c({client:d,ctx:n,logger:r.with({messageId:a.message.id,conversationId:a.message.conversationId,userId:a.message.userId}),data:a,...fn({client:d})}))?.data??a}return a},callAction:async(a,l)=>{let{type:c}=l,d=t.hookHandlers.after_outgoing_call_action[c]??[];for(let y of d){let g=new Qt(o);a=(await y({client:g,ctx:n,logger:r,data:{type:c,...a},...fn({client:g})}))?.data??a}return a}}}),i={req:e,ctx:n,logger:r,client:s,self:t};try{switch(n.operation){case"action_triggered":return await bI(i);case"event_received":return await _I(i);case"register":return await vI(i);case"unregister":return await TI(i);case"ping":return await hI(i);default:throw new Error(`Unknown operation ${n.operation}`)}}catch(a){if(yI(a)){let c=a.type==="Runtime"?a:new Ev(a.message,a);return r.error(c.message),{status:c.code,body:JSON.stringify(c.toJSON())}}let l=new Ev("An unexpected error occurred in the bot.");return r.error(l.message),{status:l.code,body:JSON.stringify(l.toJSON())}}},hI=async t=>lt,vI=async t=>lt,TI=async t=>lt,_I=async t=>{let{ctx:e,logger:n,req:r,client:o,self:s}=t,i={client:o,ctx:e,logger:n,...fn({client:o})},a=kt(r);if(i.logger=i.logger.with({eventId:a.event.id,messageId:a.event.messageId,conversationId:a.event.conversationId,userId:a.event.userId}),e.type==="workflow_update")return await Pv(t,a.event);if(e.type==="message_created"){let m=a.event,v=m.payload.message;i.logger=i.logger.with({messageId:v.id,conversationId:v.conversationId,userId:v.userId});let B=s.hookHandlers.before_incoming_message[v.type]??[];for(let E of B){let M=await E({...i,data:v});if(v=M?.data??v,M?.stop)return lt}let P={...i,user:m.payload.user,conversation:m.payload.conversation,message:v,event:m},T=s.messageHandlers[v.type]??[];for(let E of T)await E(P);let S=s.hookHandlers.after_incoming_message[v.type]??[];for(let E of S){let M=await E({...i,data:v});if(v=M?.data??v,M?.stop)return lt}return lt}if(e.type==="state_expired"){let v=a.event.payload.state,B={...i,state:v},P=s.stateExpiredHandlers["*"]??[];for(let T of P)await T(B);return lt}let l=a.event,c=s.hookHandlers.before_incoming_event[l.type]??[];for(let m of c){let v=await m({...i,data:l});if(l=v?.data??l,v?.stop)return lt}let d={...i,event:l},y=s.eventHandlers[l.type]??[];for(let m of y)await m(d);let g=s.hookHandlers.after_incoming_event[l.type]??[];for(let m of g){let v=await m({...i,data:l});if(l=v?.data??l,v?.stop)return lt}return lt},bI=async({ctx:t,logger:e,req:n,client:r,self:o})=>{let{input:s,type:i}=kt(n);if(!i)throw new Error("Missing action type");let a=o.hookHandlers.before_incoming_call_action[i]??[];for(let g of a){let m=await g({ctx:t,logger:e,client:r,data:{type:i,input:s},...fn({client:r})});s=m?.data?.input??s,i=m?.data?.type??i}let l=o.actionHandlers[i];if(!l)throw new Error(`Action ${i} not found`);let c=await l({ctx:t,logger:e,input:s,client:r,type:i,...fn({client:r})}),d=o.hookHandlers.after_incoming_call_action[i]??[];for(let g of d){let m=await g({ctx:t,logger:e,client:r,data:{type:i,output:c},...fn({client:r})});i=m?.data?.type??i,c=m?.data?.output??c}return{status:200,body:JSON.stringify({output:c})}},fn=t=>({workflows:mr(t.client)});var Zl=class{constructor(e){this.props=e;this._actionHandlers=e.actions,this._plugins=e.plugins}_actionHandlers;_messageHandlers={};_eventHandlers={};_stateExpiredHandlers={};_hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},before_incoming_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{},after_incoming_call_action:{}};_workflowHandlers={started:{},continued:{},timed_out:{}};_plugins={};_registerOrder=0;get actionHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._actionHandlers[n];if(r)return r;for(let o of Object.values(this._plugins))if(r=o.actionHandlers[n],r)return r}})}get messageHandlers(){return new Proxy({},{get:(e,n)=>{let r=Object.values(this._plugins).flatMap(a=>a.messageHandlers[n]??[]),o=this._messageHandlers[n]??[],s=this._messageHandlers["*"]??[],i=[...o,...s].sort((a,l)=>a.order-l.order).map(({handler:a})=>a);return ge.unique([...r,...i])}})}get eventHandlers(){return new Proxy({},{get:(e,n)=>{let r=Object.values(this._plugins).flatMap(a=>a.eventHandlers[n]??[]),o=this._eventHandlers[n]??[],s=this._eventHandlers["*"]??[],i=[...o,...s].sort((a,l)=>a.order-l.order).map(({handler:a})=>a);return ge.unique([...r,...i])}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,n)=>{let r=Object.values(this._plugins).flatMap(a=>a.stateExpiredHandlers[n]??[]),o=this._stateExpiredHandlers[n]??[],s=this._stateExpiredHandlers["*"]??[],i=[...o,...s].sort((a,l)=>a.order-l.order).map(({handler:a})=>a);return ge.unique([...r,...i])}})}get hookHandlers(){return new Proxy({},{get:(e,n)=>{if(this._hookHandlers[n])return new Proxy({},{get:(o,s)=>{let i=Object.values(this._plugins).flatMap(y=>y.hookHandlers[n]?.[s]??[]),a=this._hookHandlers[n]??{},l=a[s]??[],c=a["*"]??[],d=[...l,...c].sort((y,g)=>y.order-g.order).map(({handler:y})=>y);return ge.unique([...i,...d])}})}})}get workflowHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._workflowHandlers[n];if(r)return new Proxy({},{get:(o,s)=>{let i=r[s]?.sort((l,c)=>l.order-c.order).map(({handler:l})=>l)??[],a=Object.values(this._plugins).flatMap(l=>l.workflowHandlers[n]?.[s]??[]);return ge.unique([...i,...a])}})}})}on={message:(e,n)=>{this._messageHandlers[e]=ge.safePush(this._messageHandlers[e],{handler:n,order:this._registerOrder++})},event:(e,n)=>{this._eventHandlers[e]=ge.safePush(this._eventHandlers[e],{handler:n,order:this._registerOrder++})},stateExpired:(e,n)=>{this._stateExpiredHandlers[e]=ge.safePush(this._stateExpiredHandlers[e],{handler:n,order:this._registerOrder++})},beforeIncomingEvent:(e,n)=>{this._hookHandlers.before_incoming_event[e]=ge.safePush(this._hookHandlers.before_incoming_event[e],{handler:n,order:this._registerOrder++})},beforeIncomingMessage:(e,n)=>{this._hookHandlers.before_incoming_message[e]=ge.safePush(this._hookHandlers.before_incoming_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingMessage:(e,n)=>{this._hookHandlers.before_outgoing_message[e]=ge.safePush(this._hookHandlers.before_outgoing_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingCallAction:(e,n)=>{this._hookHandlers.before_outgoing_call_action[e]=ge.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},beforeIncomingCallAction:(e,n)=>{this._hookHandlers.before_incoming_call_action[e]=ge.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingEvent:(e,n)=>{this._hookHandlers.after_incoming_event[e]=ge.safePush(this._hookHandlers.after_incoming_event[e],{handler:n,order:this._registerOrder++})},afterIncomingMessage:(e,n)=>{this._hookHandlers.after_incoming_message[e]=ge.safePush(this._hookHandlers.after_incoming_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingMessage:(e,n)=>{this._hookHandlers.after_outgoing_message[e]=ge.safePush(this._hookHandlers.after_outgoing_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingCallAction:(e,n)=>{this._hookHandlers.after_outgoing_call_action[e]=ge.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingCallAction:(e,n)=>{this._hookHandlers.after_incoming_call_action[e]=ge.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:n,order:this._registerOrder++})},workflowStart:(e,n)=>{this._workflowHandlers.started[e]=ge.safePush(this._workflowHandlers.started[e],{handler:n,order:this._registerOrder++})},workflowContinue:(e,n)=>{this._workflowHandlers.continued[e]=ge.safePush(this._workflowHandlers.continued[e],{handler:n,order:this._registerOrder++})},workflowTimeout:(e,n)=>{this._workflowHandlers.timed_out[e]=ge.safePush(this._workflowHandlers.timed_out[e],{handler:n,order:this._registerOrder++})}};handler=Sv(this);start=e=>$o(this.handler,e)};C();O();R();C();O();R();C();O();R();C();O();R();C();O();R();var Ll=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.icon=e.icon,this.title=e.title,this.description=e.description,this.readme=e.readme,this.entities=e.entities??{};let n=this._getEntityReference(this.entities),r=e.events===void 0?{}:qe.mapValues(e.events,i=>({...i,schema:i.schema(n)})),o=e.actions===void 0?{}:qe.mapValues(e.actions,i=>({...i,input:{...i.input,schema:i.input.schema(n)},output:{...i.output,schema:i.output.schema(n)}})),s=e.channels===void 0?{}:qe.mapValues(e.channels,i=>({...i,messages:qe.mapValues(i.messages,a=>({...a,schema:a.schema(n)}))}));this.events=r,this.actions=o,this.channels=s}name;version;title;description;icon;readme;entities;events;actions;channels;_getEntityReference=e=>{let n={};for(let[r,o]of Object.entries(e)){let s=o.schema._def["x-zui"]?.title,i=o.schema._def.description,a=_y.ref(r);s&&a.title(s),i&&a.describe(i),n[r]=a}return n}};C();O();R();C();O();R();C();O();R();C();O();R();var Fl=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.icon=e.icon,this.readme=e.readme,this.title=e.title,this.description=e.description,this.integrations=e.integrations,this.interfaces=e.interfaces,this.user=e.user,this.conversation=e.conversation,this.message=e.message,this.states=e.states,this.configuration=e.configuration,this.events=e.events,this.recurringEvents=e.recurringEvents,this.actions=e.actions,this.tables=e.tables,this.workflows=e.workflows}name;version;title;description;icon;readme;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows};C();O();R();C();O();R();C();O();R();C();O();R();var Kl=":";var kv=t=>{let[e,n]=t.split(Kl);return!e||!n?null:{namespace:e,eventName:n}},Iv=t=>`${t.namespace}${Kl}${t.actionName}`,Av=t=>`${t.namespace}${Kl}${t.eventName}`,Cv=(t,e)=>{let n=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},r=n.name,o=n.actions[t.actionName]?.name??t.actionName;return{namespace:r,actionName:o}},Rv=(t,e)=>{let n=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},r=n.name,o=n.events[t.eventName]?.name??t.eventName;return{namespace:r,eventName:o}};var Ov=(t,e)=>new Proxy({},{get:(n,r)=>new Proxy({},{get:(o,s)=>i=>wI({client:t,interfaces:e.interfaces,integrationOrInterfaceName:r,methodName:s,input:i})})}),wI=async({client:t,interfaces:e,integrationOrInterfaceName:n,methodName:r,input:o})=>{let s=Cv({namespace:n,actionName:r},e),i=Iv(s);return(await t.callAction({type:i,input:o})).output};C();O();R();C();O();R();C();O();R();var Wl=class{constructor(e,n,r){this._client=e;this._stateType=n;this._stateName=r}async get(e){return await this._client.getState({type:this._stateType,name:this._stateName,id:e}).then(n=>n.state.payload)}async set(e,n){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:n})}async getOrSet(e,n){return await this._client.getOrSetState({type:this._stateType,name:this._stateName,id:e,payload:n}).then(r=>r.state.payload)}async delete(e){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:null})}async patch(e,n){await this._client.patchState({type:this._stateType,name:this._stateName,id:e,payload:n})}},Mv=(t,e)=>new Proxy({},{get:(n,r)=>new Proxy({},{get:(o,s)=>{let i=e.alias!==void 0?`${e.alias}${Wo}${s}`:s;return new Wl(t,r,i)}})});C();O();R();var ql=class{constructor(e){this.props=e;this._actionHandlers=e.actions}_runtimeProps;_actionHandlers;_messageHandlers={};_eventHandlers={};_stateExpiredHandlers={};_hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},before_incoming_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{},after_incoming_call_action:{}};_workflowHandlers={started:{},continued:{},timed_out:{}};_registerOrder=0;initialize(e){return this._runtimeProps=e,this}get _runtime(){if(!this._runtimeProps)throw new Error("Plugin not correctly initialized. This is likely because you access your plugin config outside of an handler.");return this._runtimeProps}_getTools(e){let{configuration:n,interfaces:r,alias:o}=this._runtime,s=Ov(e,this._runtime),i=Mv(e,this._runtime),a=mr(e);return{configuration:n,interfaces:r,actions:s,states:i,alias:o,workflows:a}}get actionHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=this._actionHandlers[n];if(r)return Xt.setName(o=>r({...o,...this._getTools(o.client)}),r.name)}})}get messageHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=this._messageHandlers[n]??[],o=this._messageHandlers["*"]??[];return ge.unique([...r,...o]).sort((i,a)=>i.order-a.order).map(({handler:i})=>Xt.setName(a=>i({...a,...this._getTools(a.client)}),i.name))}})}get eventHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=this._eventHandlers[n]??[],o=Object.entries(this._eventHandlers).filter(([a])=>this._eventResolvesTo(a,n)).flatMap(([,a])=>a??[]),s=this._eventHandlers["*"]??[];return ge.unique([...r,...o,...s]).sort((a,l)=>a.order-l.order).map(({handler:a})=>Xt.setName(l=>a({...l,...this._getTools(l.client)}),a.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=this._stateExpiredHandlers[n]??[],o=this._stateExpiredHandlers["*"]??[];return ge.unique([...r,...o]).sort((i,a)=>i.order-a.order).map(({handler:i})=>Xt.setName(a=>i({...a,...this._getTools(a.client)}),i.name))}})}get hookHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._hookHandlers[n];if(r)return new Proxy({},{get:(o,s)=>{s=this._stripAliasPrefix(s);let i=r[s]??[],a=Object.entries(r).filter(([d])=>this._eventResolvesTo(d,s)).flatMap(([,d])=>d??[]),l=r["*"]??[];return ge.unique([...i,...a,...l]).sort((d,y)=>d.order-y.order).map(({handler:d})=>Xt.setName(y=>d({...y,...this._getTools(y.client)}),d.name))}})}})}get workflowHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._workflowHandlers[n];if(r)return new Proxy({},{get:(o,s)=>(r[s]?.sort((a,l)=>a.order-l.order)??[]).map(({handler:a})=>Xt.setName(l=>a({...l,...this._getTools(l.client)}),a.name))})}})}on={message:(e,n)=>{this._messageHandlers[e]=ge.safePush(this._messageHandlers[e],{handler:n,order:this._registerOrder++})},event:(e,n)=>{this._eventHandlers[e]=ge.safePush(this._eventHandlers[e],{handler:n,order:this._registerOrder++})},stateExpired:(e,n)=>{this._stateExpiredHandlers[e]=ge.safePush(this._stateExpiredHandlers[e],{handler:n,order:this._registerOrder++})},beforeIncomingEvent:(e,n)=>{this._hookHandlers.before_incoming_event[e]=ge.safePush(this._hookHandlers.before_incoming_event[e],{handler:n,order:this._registerOrder++})},beforeIncomingMessage:(e,n)=>{this._hookHandlers.before_incoming_message[e]=ge.safePush(this._hookHandlers.before_incoming_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingMessage:(e,n)=>{this._hookHandlers.before_outgoing_message[e]=ge.safePush(this._hookHandlers.before_outgoing_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingCallAction:(e,n)=>{this._hookHandlers.before_outgoing_call_action[e]=ge.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},beforeIncomingCallAction:(e,n)=>{this._hookHandlers.before_incoming_call_action[e]=ge.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingEvent:(e,n)=>{this._hookHandlers.after_incoming_event[e]=ge.safePush(this._hookHandlers.after_incoming_event[e],{handler:n,order:this._registerOrder++})},afterIncomingMessage:(e,n)=>{this._hookHandlers.after_incoming_message[e]=ge.safePush(this._hookHandlers.after_incoming_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingMessage:(e,n)=>{this._hookHandlers.after_outgoing_message[e]=ge.safePush(this._hookHandlers.after_outgoing_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingCallAction:(e,n)=>{this._hookHandlers.after_outgoing_call_action[e]=ge.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingCallAction:(e,n)=>{this._hookHandlers.after_incoming_call_action[e]=ge.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:n,order:this._registerOrder++})},workflowStart:(e,n)=>{this._workflowHandlers.started[e]=ge.safePush(this._workflowHandlers.started[e],{handler:n,order:this._registerOrder++})},workflowContinue:(e,n)=>{this._workflowHandlers.continued[e]=ge.safePush(this._workflowHandlers.continued[e],{handler:n,order:this._registerOrder++})},workflowTimeout:(e,n)=>{this._workflowHandlers.timed_out[e]=ge.safePush(this._workflowHandlers.timed_out[e],{handler:n,order:this._registerOrder++})}};_eventResolvesTo=(e,n)=>{let r=kv(e);if(!r)return!1;let o=Rv(r,this._runtime.interfaces);return Av(o)===n};_stripAliasPrefix=e=>{let{alias:n}=this._runtime;if(!n)return e;let r=`${n}:`;return e.startsWith(r)?e.slice(r.length):e}};C();O();R();C();O();R();C();O();R();C();O();R();C();O();R();C();O();R();export{mx as BRAND,Zl as Bot,jl as BotDefinition,Un as BotLogger,Qt as BotSpecificClient,Vn as DIRTY,gx as EMPTY_PATH,Ar as ErrorBoundary,de as INVALID,Ul as Integration,tl as IntegrationDefinition,Hn as IntegrationLogger,Gr as IntegrationSpecificClient,Ll as InterfaceDefinition,OB as NEVER,ct as OK,Et as ParseInputLazyPath,gt as ParseStatus,ql as Plugin,Fl as PluginDefinition,xH as RuntimeError,me as Schema,MA as WELL_KNOWN_ATTRIBUTES,Pi as ZodAny,Nr as ZodArray,Ua as ZodBigInt,ja as ZodBoolean,$a as ZodBranded,Za as ZodCatch,La as ZodDate,co as ZodDefault,ug as ZodDiscriminatedUnion,wn as ZodEffects,ir as ZodEnum,$t as ZodError,Vp as ZodFirstPartyTypeKind,fg as ZodFunction,Ka as ZodIntersection,G as ZodIssueCode,Wa as ZodLazy,qa as ZodLiteral,gg as ZodMap,mg as ZodNaN,za as ZodNativeEnum,bn as ZodNever,Ga as ZodNull,Yn as ZodNullable,Va as ZodNumber,Xn as ZodObject,nn as ZodOptional,ne as ZodParsedType,Ja as ZodPipeline,po as ZodPromise,go as ZodReadonly,xg as ZodRecord,Pg as ZodRef,me as ZodSchema,Eg as ZodSet,ft as ZodString,Ug as ZodSymbol,wn as ZodTransformer,er as ZodTuple,me as ZodType,Ya as ZodUndefined,Xa as ZodUnion,Ir as ZodUnknown,Lg as ZodVoid,hA as ZuiForm,te as addIssueToContext,Ux as agent,Fx as aimodel,eB as any,iB as array,Vx as bigint,my as boolean,mo as botIdHeader,Cy as botUserIdHeader,RB as coerce,ho as configurationHeader,My as configurationTypeHeader,Dx as conversation,fo as createZodEnum,kg as cuid2Regex,Sg as cuidRegex,sg as custom,Kx as datasource,Jx as date,Dg as datetimeRegex,vA as defaultComponentDefinitions,lB as discriminatedUnion,cf as effect,Cg as emailRegex,TB as enum,se as errorUtil,jx as event,AB as fromJsonSchema,CB as fromObject,mB as function,Mr as getErrorMap,tn as getParsedType,zx as instanceof,Ry as integrationIdHeader,Lx as intent,uB as intersection,Og as ipv4Regex,Mg as ipv6Regex,ya as isAborted,wH as isApiError,xi as isAsync,ma as isDirty,hx as isEmojiRegex,Dr as isValid,yo as jsonSchemaToZui,Wx as knowledgebase,qx as late,hB as lazy,vB as literal,wi as makeIssue,gB as map,jr as mergeObjectSchemas,Hx as message,Ay as messages,Gx as nan,_B as nativeEnum,nB as never,Qx as null,xB as nullable,yy as number,oB as object,Hr as objectToZui,ga as objectUtil,IB as oboolean,kB as onumber,vo as operationHeader,wB as optional,SB as ostring,kt as parseBody,EB as pipeline,PB as preprocess,ye as processCreateParams,bB as promise,px as quotelessJson,pB as readonly,fB as record,dB as ref,$o as serve,yB as set,Xp as setErrorMap,aB as strictObject,gy as string,Yx as symbol,$x as table,Zx as tablerow,cf as transformer,TA as transforms,cB as tuple,Dy as typeHeader,Ig as ulidRegex,Xx as undefined,sB as union,tB as unknown,Nx as user,be as util,Ag as uuidRegex,Mx as variable,rB as void,Oy as webhookIdHeader,rP as withErrorBoundary,re as z,ns as zuiToJsonSchema};
89
89
  /*! Bundled license information:
90
90
 
91
91
  @jspm/core/nodelibs/browser/chunk-DtuTasat.js: