@botpress/sdk 4.8.0 → 4.8.2
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/.turbo/turbo-build.log
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
|
|
2
|
-
> @botpress/sdk@4.8.
|
|
2
|
+
> @botpress/sdk@4.8.2 build /home/runner/work/botpress/botpress/packages/sdk
|
|
3
3
|
> pnpm build:type && pnpm build:node && pnpm build:browser
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @botpress/sdk@4.8.
|
|
6
|
+
> @botpress/sdk@4.8.2 build:type /home/runner/work/botpress/botpress/packages/sdk
|
|
7
7
|
> tsc --emitDeclarationOnly --declaration
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
> @botpress/sdk@4.8.
|
|
10
|
+
> @botpress/sdk@4.8.2 build:node /home/runner/work/botpress/botpress/packages/sdk
|
|
11
11
|
> ts-node -T ./build.ts --node
|
|
12
12
|
|
|
13
13
|
Done
|
|
14
14
|
|
|
15
|
-
> @botpress/sdk@4.8.
|
|
15
|
+
> @botpress/sdk@4.8.2 build:browser /home/runner/work/botpress/botpress/packages/sdk
|
|
16
16
|
> ts-node -T ./build.ts --browser
|
|
17
17
|
|
|
18
18
|
Done
|
package/dist/index.cjs
CHANGED
|
@@ -86,7 +86,7 @@ ${re}`.trim();case v.ZodFirstPartyTypeKind.ZodEnum:return o.values.map(Me).join(
|
|
|
86
86
|
`,a+=`}
|
|
87
87
|
`,a+=`}
|
|
88
88
|
`),a+=`}
|
|
89
|
-
`,a+="})"}let s=r?a?r+a:n?n==="z.never()"?r+".strict()":r+`.catchall(${n})`:r:a||(n?`z.record(${n})`:"z.record(z.any())");return ie.an.anyOf(t)&&(s+=`.and(${Cf(h(d({},t),{anyOf:t.anyOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?h(d({},i),{type:"object"}):i)}),e)})`),ie.a.oneOf(t)&&(s+=`.and(${Ys(h(d({},t),{oneOf:t.oneOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?h(d({},i),{type:"object"}):i)}),e)})`),ie.an.allOf(t)&&(s+=`.and(${hr(h(d({},t),{allOf:t.allOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?h(d({},i),{type:"object"}):i)}),e)})`),s}l(If,"parseObject");var w_=l(t=>{var e;let r="z.string()";if((e=t[K])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";r="z.coerce.string()"}return r+=fe(t,"format",({value:n})=>{switch(n){case"email":return[".email(",")"];case"ip":return[".ip(",")"];case"ipv4":return['.ip({ version: "v4"',", message: "," })"];case"ipv6":return['.ip({ version: "v6"',", message: "," })"];case"uri":return[".url(",")"];case"uuid":return[".uuid(",")"];case"date-time":return[".datetime(",")"]}}),r+=fe(t,"pattern",({json:n})=>[`.regex(new RegExp(${n})`,", ",")"]),r+=fe(t,"minLength",({json:n})=>[`.min(${n}`,", ",")"]),r+=fe(t,"maxLength",({json:n})=>[`.max(${n}`,", ",")"]),r},"parseString"),P_=l((t,e)=>`${ce(h_(t,"nullable"),e,!0)}.nullable()`,"parseNullable"),k_=l(t=>`z.ref('${t.$ref}')`,"parseRef"),E_=l((t,e)=>{var r,n;if(t.oneOf.length<=1||!((r=t.discriminator)!=null&&r.propertyName))return Ys(t,e);let a=t.oneOf.map((s,i)=>ce(s,h(d({},e),{path:[...e.path,"oneOf",i]})));return`z.discriminatedUnion("${(n=t.discriminator)==null?void 0:n.propertyName}", [${a.join(", ")}])`},"parseDiscriminator"),ce=l((t,e={seen:new Map,path:[]},r)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let s=e.parserOverride(t,e);if(typeof s=="string")return s}let n=e.seen.get(t);if(n){if(n.r!==void 0)return n.r;if(e.depth===void 0||n.n>=e.depth)return"z.any()";n.n+=1}else n={r:void 0,n:0},e.seen.set(t,n);let a=O_(t,e);return r||(a=x_(t,a),e.withoutDefaults||(a=S_(t,a))),n.r=a,a},"parseSchema"),x_=l((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),S_=l((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),O_=l((t,e)=>ie.a.nullable(t)?P_(t,e):ie.an.object(t)?If(t,e):ie.an.array(t)?y_(t,e):ie.an.anyOf(t)?Cf(t,e):ie.an.allOf(t)?hr(t,e):ie.a.discriminator(t)?E_(t,e):ie.a.oneOf(t)?Ys(t,e):ie.a.not(t)?f_(t,e):ie.an.enum(t)?__(t):ie.a.const(t)?v_(t):ie.a.multipleType(t)?d_(t,e):ie.a.primitive(t,"string")?w_(t):ie.a.primitive(t,"number")||ie.a.primitive(t,"integer")?b_(t):ie.a.primitive(t,"boolean")?u_(t):ie.a.primitive(t,"null")?p_(t):ie.a.conditional(t)?T_(t,e):ie.a.ref(t)?k_(t):c_(t),"selectParser"),ie={an:{object:l(t=>t.type==="object","object"),array:l(t=>t.type==="array","array"),anyOf:l(t=>t.anyOf!==void 0,"anyOf"),allOf:l(t=>t.allOf!==void 0,"allOf"),enum:l(t=>t.enum!==void 0,"enum")},a:{nullable:l(t=>t.nullable===!0,"nullable"),multipleType:l(t=>Array.isArray(t.type),"multipleType"),not:l(t=>t.not!==void 0,"not"),const:l(t=>t.const!==void 0,"const"),primitive:l((t,e)=>t.type===e,"primitive"),conditional:l(t=>Boolean("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),"conditional"),discriminator:l(t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},"discriminator"),oneOf:l(t=>t.oneOf!==void 0,"oneOf"),ref:l(t=>t.$ref!==void 0,"ref")}},C_=l(t=>{let e;try{e=new Function("z",`return ${t}`)(v)}catch(r){return{sucess:!1,error:`Failed to evaluate schema: ${(r instanceof Error?r:new Error(String(r))).message}`}}return e instanceof v.ZodType?{sucess:!0,value:e}:{sucess:!1,error:`String "${t}" does not evaluate to a Zod schema`}},"evalZuiString"),I_=l(t=>ce(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),B_=l(t=>{let e=I_(t);e=e.replaceAll("errors: z.ZodError[]","errors");let r=C_(e);if(!r.sucess)throw new ol(r.error);return r.value},"jsonSchemaToZod"),or=l((t,e)=>{var r,n;if(e[K]&&t._def&&(t._def[K]=e[K]),((r=t._def)==null?void 0:r.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([a,s])=>{let i=typeof t._def.shape=="function"?t._def.shape():t._def.shape;i[a]&&or(i[a],s)}),((n=t._def)==null?void 0:n.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&or(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let a=e.items;if(typeof a=="object"&&!Array.isArray(a)){let s=t._def.type;s&&or(s,a)}else Array.isArray(a)&&a.forEach((s,i)=>{let o=t._def;o.typeName===E.ZodFirstPartyTypeKind.ZodTuple&&or(o.items[i],s)})}},"applyZuiPropsRecursively"),Tr=l(t=>{let e=B_(t);return or(e,t),e},"jsonSchemaToZui"),Bf=class extends Lt.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,r){console.error("Uncaught error:",e,r)}render(){return this.state.hasError&&this.props.fallback?Lt.default.createElement(this.props.fallback,{error:this.state.error,schema:this.props.fieldSchema}):this.props.children}};l(Bf,"ErrorBoundary");var Mt=Bf;function Rf(t,e){return r=>Lt.default.createElement(Mt,{fallback:e,fieldSchema:r.fieldSchema,path:r.path},Lt.default.createElement(t,d({},r)))}l(Rf,"withErrorBoundary");var Jr=l(t=>{var e=t,{components:r,fieldSchema:n,path:a,required:s,fallback:i}=e,o=Lo(e,["components","fieldSchema","path","required","fallback"]),c,p;let{formData:m,disabled:T,hidden:O,handlePropertyChange:w,addArrayItem:S,removeArrayItem:W,formErrors:q,formValid:re}=Vo(n,a),J=(0,be.useMemo)(()=>lt(m,a),[m,a]),j=(0,be.useMemo)(()=>Fg(r,n),[n,r]),{discriminator:F,discriminatedSchema:ue,discriminatorValue:Le}=$g(n,a);if(!j||O===!0)return null;let{Component:rt,type:Ce}=j,we={type:Ce,componentID:j.id,scope:a.join("."),context:{path:a,readonly:!1,formData:m,formErrors:q,formValid:re,updateForm:w,updateFormData:l(Pe=>w([],Pe),"updateFormData")},onChange:l(Pe=>w(a,Pe),"onChange"),disabled:T,errors:q?.filter(Pe=>Pe.path===a)||[],label:((c=n[K])==null?void 0:c.title)||qa(((p=a[a.length-1])==null?void 0:p.toString())||""),params:j.params,schema:n,zuiProps:n[K]};if(n.type==="array"&&Ce==="array"){let Pe=rt,Te=we.schema,ke=Array.isArray(J)||typeof J=="object"?J:[],N=d(h(d({},we),{type:Ce,schema:Te,data:ke,addItem:l(Ie=>S(a,Ie),"addItem"),removeItem:l(Ie=>W(a,Ie),"removeItem")}),o);return Array.isArray(n.items)?null:be.default.createElement(Pe,h(d({key:we.scope},N),{isArrayChild:N.isArrayChild}),Array.isArray(N.data)?N.data.map((Ie,Oe)=>{let ze=[...a,Oe.toString()];return be.default.createElement(Mt,{key:ze.join("."),fallback:i,fieldSchema:n.items,path:ze},be.default.createElement(Jr,{key:ze.join("."),components:r,fieldSchema:n.items,path:ze,required:s,isArrayChild:!0,index:Oe,removeSelf:()=>W(a,Oe),fallback:i}))}):[])}if(n.type==="object"&&Ce==="object"&&n.properties){let Pe=rt,Te=d(h(d({},we),{type:Ce,schema:we.schema,data:J||{}}),o);return be.default.createElement(Pe,h(d({key:we.scope},Te),{isArrayChild:Te.isArrayChild}),Object.entries(n.properties).map(([ke,N])=>{var Ie;let Oe=[...a,ke];return be.default.createElement(Mt,{key:Oe.join("."),fallback:i,fieldSchema:N,path:Oe},be.default.createElement(Jr,{key:Oe.join("."),components:r,fieldSchema:N,path:Oe,required:((Ie=n.required)==null?void 0:Ie.includes(ke))||!1,isArrayChild:!1,fallback:i}))}))}if(Ce==="discriminatedUnion"){let Pe=rt,Te=d(h(d({},we),{type:Ce,schema:we.schema,data:J||{},discriminatorKey:F?.key||null,discriminatorLabel:qa(F?.key||"Unknown"),discriminatorOptions:F?.values||null,discriminatorValue:Le,setDiscriminator:l(ke=>{if(!F?.key){console.warn("No discriminator key found, cannot set discriminator");return}w(a,{[F.key]:ke})},"setDiscriminator")}),o);return be.default.createElement(Pe,h(d({key:we.scope},Te),{isArrayChild:Te.isArrayChild}),ue&&be.default.createElement(Mt,{key:a.join("."),fallback:i,fieldSchema:ue,path:a},be.default.createElement(Jr,{components:r,fieldSchema:ue,path:a,required:s,isArrayChild:!1,fallback:i})))}let va=rt,_a=d(h(d({},we),{type:Ce,schema:we.schema,config:{},required:s,data:J,description:n.description}),o);return be.default.createElement(va,d({},_a))},"FormElementRenderer"),R_=l(({schema:t,components:e,onChange:r,value:n,disableValidation:a,fallback:s,dataTransform:i,onValidation:o})=>{let[c,p]=(0,je.useState)(n);return(0,je.useEffect)(()=>{r(c)},[c]),(0,je.useEffect)(()=>{let m=Dt(t);p(T=>Xr(m,T))},[JSON.stringify(t),p]),je.default.createElement(jg,{formData:c,setFormData:p,formSchema:t,disableValidation:a||!1,dataTransform:i,onValidation:o},je.default.createElement(Mt,{fallback:s,fieldSchema:t,path:[]},je.default.createElement(Jr,{components:e,fieldSchema:t,path:[],fallback:s,required:!0,isArrayChild:!1})))},"ZuiForm"),A_={string:{},number:{slider:{id:"slider",params:v.object({})}},boolean:{switch:{id:"switch",params:v.object({})}},array:{},object:{},discriminatedUnion:{}},Z_={errors:al,jsonSchemaToZui:Tr,zuiToJsonSchema:aa,objectToZui:Ft,toTypescript:Qr,toTypescriptSchema:ws};var Vt=(t,e)=>{let r=t._def,n=e._def;if(r.typeName===E.ZodFirstPartyTypeKind.ZodObject&&n.typeName===E.ZodFirstPartyTypeKind.ZodObject){let a=r.shape(),s=n.shape();return E.object({...a,...s})}if(r.typeName===E.ZodFirstPartyTypeKind.ZodRecord&&n.typeName===E.ZodFirstPartyTypeKind.ZodRecord)return E.record(E.intersection(r.valueType,n.valueType));throw new Error("Cannot merge object schemas with record schemas")},Af=E;var _e=E.string().min(1),Df=E.object({text:_e}),Hf=E.object({markdown:_e}),Mf=E.object({imageUrl:_e}),Nf=E.object({audioUrl:_e}),jf=E.object({videoUrl:_e}),$f=E.object({fileUrl:_e,title:_e.optional()}),Uf=E.object({latitude:E.number(),longitude:E.number(),address:E.string().optional(),title:E.string().optional()}),Kf=E.object({title:_e,subtitle:_e.optional(),imageUrl:_e.optional(),actions:E.array(E.object({action:E.enum(["postback","url","say"]),label:_e,value:_e}))}),Zf=E.object({text:_e,options:E.array(E.object({label:_e,value:_e}))}),D_=E.object({items:E.array(Kf)}),H_=E.union([E.object({type:E.literal("text"),payload:Df}),E.object({type:E.literal("markdown"),payload:Hf}),E.object({type:E.literal("image"),payload:Mf}),E.object({type:E.literal("audio"),payload:Nf}),E.object({type:E.literal("video"),payload:jf}),E.object({type:E.literal("file"),payload:$f}),E.object({type:E.literal("location"),payload:Uf})]),M_=E.object({items:E.array(H_)}),N_={schema:Hf},j_={text:{schema:Df},image:{schema:Mf},audio:{schema:Nf},video:{schema:jf},file:{schema:$f},location:{schema:Uf},carousel:{schema:D_},card:{schema:Kf},dropdown:{schema:Zf},choice:{schema:Zf},bloc:{schema:M_}};var br="x-bot-id",Qs="x-bot-user-id",ei="x-integration-id",ti="x-webhook-id",ri="x-bp-configuration-type",wr="x-bp-configuration",Pr="x-bp-operation",ni="x-bp-type",$_={HIDDEN_IN_STUDIO:{bpActionHiddenInStudio:"true"},AWAIT_RETURN:{bpActionAwaitReturn:"true"}};var Ff=require("browser-or-node");var ai=console;function Se(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function kr(t,e=8072,r=L_){if(!Ff.isNode)throw new Error("This function can only be called in Node.js");let a=require("http").createServer(async(s,i)=>{try{let o=await U_(s);if(o.path==="/health"){i.writeHead(200).end("ok");return}let c=await t(o);i.writeHead(c?.status??200,c?.headers??{}).end(c?.body??"{}")}catch(o){ai.error("Error while handling request",{error:o?.message??"Internal error occured"}),i.writeHead(500).end(JSON.stringify({error:o?.message??"Internal error occured"}))}});return a.listen(e,()=>r(e)),a}async function U_(t){let e=await F_(t),r={};for(let a=0;a<t.rawHeaders.length;a+=2){let s=t.rawHeaders[a].toLowerCase(),i=t.rawHeaders[a+1];r[s]=i}let n=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:n.pathname,query:K_(n.search,"?"),headers:r,method:t.method?.toUpperCase()??"GET"}}function K_(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function F_(t){return new Promise((e,r)=>{if(t.method!=="POST"&&t.method!=="PUT"&&t.method!=="PATCH")return e(void 0);let n="";t.on("data",a=>n+=a.toString()),t.on("error",a=>r(a)),t.on("end",()=>e(n))})}function L_(t){ai.info(`Listening on port ${t}`)}var ya=require("@botpress/client");var te={};er(te,{mapKeys:()=>V_,mapValues:()=>W_,mergeRecords:()=>G_,pairs:()=>sa,stripUndefinedProps:()=>q_,values:()=>z_});var sa=t=>Object.entries(t),z_=t=>Object.values(t),W_=(t,e)=>Object.fromEntries(sa(t).map(([r,n])=>[r,e(n,r)])),V_=(t,e)=>Object.fromEntries(sa(t).map(([r,n])=>[e(r),n])),q_=t=>Object.fromEntries(sa(t).filter(([,e])=>e!==void 0)),G_=(t,e,r)=>{let n=[...Object.keys(t),...Object.keys(e)],a=[...new Set(n)],s={};for(let i of a){let o=t[i],c=e[i];o&&c?s[i]=r(o,c):o?s[i]=o:c&&(s[i]=c)}return s};var Z={};er(Z,{safePush:()=>J_,unique:()=>Y_});var J_=(t,...e)=>t?[...t,...e]:[...e],Y_=t=>Array.from(new Set(t));var Fe={};er(Fe,{setName:()=>X_});var X_=(t,e)=>(Object.defineProperty(t,"name",{value:e}),t);var Lf=t=>{let{name:e,version:r}=t,n={actions:{},events:{},channels:{}},a={name:e,version:r,entities:te.mapValues(t.entities,i=>({name:i.name})),actions:{},events:{},channels:{}},s=te.mapValues(t.entities,i=>i.schema);for(let[i,o]of Object.entries(t.definition.actions??{})){let c=o.input.schema.dereference(s),p=o.output.schema.dereference(s),m=t.actions?.[i]?.name??i;n.actions[m]={...o,...t.actions?.[i]??{},input:{schema:c},output:{schema:p}},a.actions[i]={name:m}}for(let[i,o]of Object.entries(t.definition.events??{})){let c=o.schema.dereference(s),p=t.events?.[i]?.name??i;n.events[p]={...o,...t.events?.[i]??{},schema:c},a.events[i]={name:p}}for(let[i,o]of Object.entries(t.definition.channels??{})){let c={};for(let[m,T]of Object.entries(o.messages)){let O=T.schema.dereference(s);c[m]={...T,schema:O}}let p=t.channels?.[i]?.name??i;n.channels[p]={...o,...t.channels?.[i]??{},message:{...o.message??{},tags:{...o.message?.tags??{},...t.channels?.[i]?.message?.tags??{}}},conversation:{...o.conversation??{},tags:{...o.conversation?.tags??{},...t.channels?.[i]?.conversation?.tags??{}}},messages:c},a.channels[i]={name:p}}return{resolved:n,statement:a}};var ia=Symbol("schemaName"),zf=t=>t?te.mapValues(t,(r,n)=>({...r,[ia]:n})):{},Wf=t=>ia in t&&t[ia]!==void 0,Vf=t=>t[ia];var oa=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.identifier=e.identifier,this.description=e.description,this.configuration=e.configuration,this.configurations=e.configurations,this.events=e.events,this.actions=e.actions,this.channels=e.channels,this.states=e.states,this.user=e.user,this.secrets=e.secrets,this.entities=e.entities,this.interfaces=e.interfaces,this.__advanced=e.__advanced,this.attributes=e.attributes}name;version;title;description;icon;readme;configuration;configurations;events;actions;channels;states;user;secrets;identifier;entities;interfaces;__advanced;attributes;extend(e,r){let{entities:n,actions:a,events:s,channels:i}=this._callBuilder(e,r),o=this;o.interfaces??={};let c=Object.values(n).map(O=>O.name),p=c.length===0?e.name:`${e.name}<${c.join(",")}>`,{resolved:m,statement:T}=Lf({...e,entities:n,actions:te.stripUndefinedProps(a),events:te.stripUndefinedProps(s),channels:te.stripUndefinedProps(i)});return o.actions=te.mergeRecords(o.actions??{},m.actions,this._mergeActions),o.channels=te.mergeRecords(o.channels??{},m.channels,this._mergeChannels),o.events=te.mergeRecords(o.events??{},m.events,this._mergeEvents),o.interfaces[p]={id:e.id,...T},this}_callBuilder(e,r){let a={entities:zf(this.entities)},s=r(a),i=te.pairs(s.entities).find(([c,p])=>!Wf(p));if(i)throw new Error(`Cannot extend interface "${e.name}" with entity "${i[0]}"; the provided schema is not part of the integration's entities.`);return{entities:te.mapValues(s.entities,c=>({name:Vf(c),schema:c.schema})),actions:s.actions??{},events:s.events??{},channels:s.channels??{}}}_mergeActions=(e,r)=>({...e,...r,input:{schema:Vt(e.input.schema,r.input.schema)},output:{schema:Vt(e.output.schema,r.output.schema)}});_mergeEvents=(e,r)=>({...e,...r,schema:Vt(e.schema,r.schema)});_mergeChannels=(e,r)=>{let n=te.mergeRecords(e.messages,r.messages,this._mergeMessage),a;(e.conversation||r.conversation)&&(a={tags:{...e.conversation?.tags,...r.conversation?.tags}});let s;return(e.message||r.message)&&(s={tags:{...e.message?.tags,...r.message?.tags}}),{...e,...r,messages:n,conversation:a,message:s}};_mergeMessage=(e,r)=>({schema:Vt(e.schema,r.schema)})};var Pt=require("@botpress/client");var qf=at(require("@botpress/client")),la={retries:3,retryCondition:t=>qf.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:(t,e)=>(Q_(e.response?.headers??{})??t)*1e3},Q_=t=>{let e=["RateLimit-Reset","X-RateLimit-Reset","Retry-After","ratelimit-reset","x-ratelimit-reset","retry-after"];for(let r of e){let n=t[r];if(n!==void 0)return eT(String(n))}},eT=t=>{let e=tT(t)?rT(t):t.length>0?parseInt(t,10):void 0;return e===void 0||isNaN(e)?void 0:e},tT=t=>t.includes(" "),rT=t=>{let e=nT(t);if(!e)return;let r=new Date;return Math.max(0,Math.floor((e.getTime()-r.getTime())/1e3))},nT=t=>{let e=new Date(t);return isNaN(e.getTime())?void 0:e};var qt=class{constructor(e){this._client=e}createConversation=e=>this._client.createConversation(e);getConversation=e=>this._client.getConversation(e);listConversations=e=>this._client.listConversations(e);getOrCreateConversation=e=>this._client.getOrCreateConversation(e);updateConversation=e=>this._client.updateConversation(e);deleteConversation=e=>this._client.deleteConversation(e);listParticipants=e=>this._client.listParticipants(e);addParticipant=e=>this._client.addParticipant(e);getParticipant=e=>this._client.getParticipant(e);removeParticipant=e=>this._client.removeParticipant(e);createEvent=e=>this._client.createEvent(e);getEvent=e=>this._client.getEvent(e);listEvents=e=>this._client.listEvents(e);createMessage=e=>this._client.createMessage(e);getOrCreateMessage=e=>this._client.getOrCreateMessage(e);getMessage=e=>this._client.getMessage(e);updateMessage=e=>this._client.updateMessage(e);listMessages=e=>this._client.listMessages(e);deleteMessage=e=>this._client.deleteMessage(e);createUser=e=>this._client.createUser(e);getUser=e=>this._client.getUser(e);listUsers=e=>this._client.listUsers(e);getOrCreateUser=e=>this._client.getOrCreateUser(e);updateUser=e=>this._client.updateUser(e);deleteUser=e=>this._client.deleteUser(e);getState=e=>this._client.getState(e);setState=e=>this._client.setState(e);getOrSetState=e=>this._client.getOrSetState(e);patchState=e=>this._client.patchState(e);configureIntegration=e=>this._client.configureIntegration(e);uploadFile=e=>this._client.uploadFile(e);upsertFile=e=>this._client.upsertFile(e);deleteFile=e=>this._client.deleteFile(e);listFiles=e=>this._client.listFiles(e);getFile=e=>this._client.getFile(e);updateFileMetadata=e=>this._client.updateFileMetadata(e)};var ua=class{_cost=0;get cost(){return this._cost}setCost(e){this._cost=e}toJSON(){return{cost:this.cost}}};var ca="#";var aT=E.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),Jf=t=>{let e=t[br],r=t[Qs],n=t[ei],a=t[ti],s=t[ri],i=t[wr],o=aT.parse(t[Pr]);if(!e)throw new Error("Missing bot headers");if(!r)throw new Error("Missing bot user headers");if(!n)throw new Error("Missing integration headers");if(!a)throw new Error("Missing webhook headers");if(!i)throw new Error("Missing configuration headers");if(!o)throw new Error("Missing operation headers");return{botId:e,botUserId:r,integrationId:n,webhookId:a,operation:o,configurationType:s??null,configuration:i?JSON.parse(Buffer.from(i,"base64").toString("utf-8")):{}}};var Yf=at(require("util")),Gt=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,r){this._getConsoleMethod(e)(this._serializeMessage(r))}_serializeMessage(e){let r=Yf.default.format(...e);return process.env.BP_LOG_FORMAT==="json"?this.getJsonMessage(r):r}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 Ye=class extends Gt{constructor(e){super({visibleToBotOwners:!0,...e})}with(e){return new Ye({...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})}};var sT=t=>["traceparent","tracestate","sentry-trace"].reduce((e,r)=>(t[r]&&(e[r]=t[r]),e),{}),Xf=t=>async e=>{let r=Jf(e.headers),[,n]=(e.headers.traceparent||"").split("-"),a=new Pt.Client({botId:r.botId,integrationId:r.integrationId,retry:la,headers:sT(e.headers)}),s=new qt(a),i=new Ye({traceId:n}),o={ctx:r,req:e,client:s,logger:i,instance:t};try{let c;switch(r.operation){case"webhook_received":c=await oT(o);break;case"register":c=await lT(o);break;case"unregister":c=await uT(o);break;case"message_created":c=await fT(o);break;case"action_triggered":c=await pT(o);break;case"ping":c=await iT(o);break;case"create_user":c=await cT(o);break;case"create_conversation":c=await dT(o);break;default:throw new Error(`Unknown operation ${r.operation}`)}return c?{...c,status:c.status??200}:{status:200}}catch(c){if((0,Pt.isApiError)(c)){let m=c.type==="Runtime"?c:new Pt.RuntimeError(c.message,c);return i.forBot().error(m.message),{status:m.code,body:JSON.stringify(m.toJSON())}}console.error(c);let p=new Pt.RuntimeError("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(p.message),{status:p.code,body:JSON.stringify(p.toJSON())}}},iT=async t=>{},oT=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{let{req:s}=Se(r);return a.webhook({client:t,ctx:e,req:s,logger:n})},lT=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.register)return;let{webhookUrl:s}=Se(r);await a.register({client:t,ctx:e,webhookUrl:s,logger:n})},uT=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.unregister)return;let{webhookUrl:s}=Se(r);await a.unregister({ctx:e,webhookUrl:s,client:t,logger:n})},cT=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createUser)return;let{tags:s}=Se(r);return await a.createUser({ctx:e,client:t,tags:s,logger:n})},dT=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createConversation)return;let{channel:s,tags:i}=Se(r);return await a.createConversation({ctx:e,client:t,channel:s,tags:i,logger:n})},fT=async({ctx:t,req:e,client:r,logger:n,instance:a})=>{let{conversation:s,user:i,type:o,payload:c,message:p}=Se(e),m=a.channels[s.channel];if(!m)throw new Error(`Channel ${s.channel} not found`);let T=m.messages[o];if(!T)throw new Error(`Message of type ${o} not found in channel ${s.channel}`);await T({ctx:t,conversation:s,message:p,user:i,type:o,client:r,payload:c,ack:async({tags:w})=>{await r.updateMessage({id:p.id,tags:w})},logger:n})},pT=async({req:t,ctx:e,client:r,logger:n,instance:a})=>{let{input:s,type:i}=Se(t);if(!i)throw new Error("Missing action type");let o=a.actions[i];if(!o)throw new Error(`Action ${i} not found`);let c=new ua,m={output:await o({ctx:e,input:s,client:r,type:i,logger:n,metadata:c}),meta:c.toJSON()};return{body:JSON.stringify(m)}};var da=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=Xf(this);start=e=>kr(this.handler,e)};var fa=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,this.attributes=e.attributes}integrations;plugins;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows;attributes;addIntegration(e,r){let n=this;return n.integrations||(n.integrations={}),n.integrations[e.name]={enabled:r.enabled,...e,configurationType:r.configurationType,configuration:r.configuration,disabledChannels:r.disabledChannels},this}addPlugin(e,r){let n=this;n.plugins||(n.plugins={});let a=r.alias??e.name;return n.plugins[a]={...e,alias:r.alias,configuration:r.configuration,interfaces:r.interfaces},n.user=this._mergeUser(n.user,e.definition.user),n.conversation=this._mergeConversation(n.conversation,e.definition.conversation),n.message=this._mergeMessage(n.message,e.definition.message),n.recurringEvents=this._mergeRecurringEvents(n.recurringEvents,e.definition.recurringEvents),n.tables=this._mergeTables(n.tables,e.definition.tables),n.workflows=this._mergeWorkflows(n.workflows,e.definition.workflows),n.states=this._mergeStates(n.states,this._prefixKeys(e.definition.states,r.alias)),n.events=this._mergeEvents(n.events,this._prefixKeys(e.definition.events,r.alias)),n.actions=this._mergeActions(n.actions,this._prefixKeys(e.definition.actions,r.alias)),this}_mergeUser=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeConversation=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeMessage=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeStates=(e,r)=>({...e,...r});_mergeEvents=(e,r)=>({...e,...r});_mergeRecurringEvents=(e,r)=>({...e,...r});_mergeActions=(e,r)=>({...e,...r});_mergeTables=(e,r)=>({...e,...r});_mergeWorkflows=(e,r)=>({...e,...r});_prefixKeys=(e,r)=>!e||!r?e:te.mapKeys(e,n=>`${r}${ca}${n}`)};var kt=require("@botpress/client");var Xe=class extends Gt{constructor(e){super({...e})}with(e){return new Xe({...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})}};var Re=class{constructor(e,r={before:{},after:{}}){this._client=e;this._hooks=r}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,r)=>{let n=this._hooks.before[e];n&&(r=await n(r));let a=await this._client[e](r),s=this._hooks.after[e];return s&&(a=await s(a,r)),a}};var Jt=t=>new Proxy({},{get:(e,r)=>({listInstances:{all:n=>Qe({workflowName:r,client:t,input:n}),running:n=>Qe({workflowName:r,client:t,input:n,statuses:["in_progress"]}),scheduled:n=>Qe({workflowName:r,client:t,input:n,statuses:["pending","listening"]}),allFinished:n=>Qe({workflowName:r,client:t,input:n,statuses:["completed","cancelled","failed","timedout"]}),cancelled:n=>Qe({workflowName:r,client:t,input:n,statuses:["cancelled"]}),failed:n=>Qe({workflowName:r,client:t,input:n,statuses:["failed"]}),succeeded:n=>Qe({workflowName:r,client:t,input:n,statuses:["completed"]}),timedOut:n=>Qe({workflowName:r,client:t,input:n,statuses:["timedout"]})},startNewInstance:async n=>{let{workflow:a}=await t.createWorkflow({name:r,status:"pending",...n});return{workflow:et({client:t,workflow:a})}}})}),Qe=async t=>{let e=await t.client.listWorkflows({name:t.workflowName,statuses:t.statuses,...t.input});return{...e,workflows:e.workflows.map(r=>et({client:t.client,workflow:r}))}},et=t=>({...t.workflow,async update(e){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,...e});return{workflow:et({client:t.client,workflow:r})}},async setFailed({failureReason:e}){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,status:"failed",failureReason:e});return{workflow:et({client:t.client,workflow:r})}},async setCompleted({output:e}={}){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,status:"completed",output:e});return{workflow:et({client:t.client,workflow:r})}},async cancel(){let{workflow:e}=await t.client.updateWorkflow({id:t.workflow.id,status:"cancelled"});return{workflow:et({client:t.client,workflow:e})}}});var gT=E.enum(["event_received","register","unregister","ping","action_triggered"]),Qf=t=>{let e=t[br],r=t[wr],n=t[ni],a=gT.parse(t[Pr]);if(!e)throw new Error("Missing bot headers");if(!n)throw new Error("Missing type headers");if(!r)throw new Error("Missing configuration headers");if(!a)throw new Error("Missing operation headers");return{botId:e,operation:a,type:n,configuration:r?JSON.parse(Buffer.from(r,"base64").toString("utf-8")):{}}};var he={status:200};var si=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 hT=["child_workflow_deleted","child_workflow_finished","workflow_timedout","workflow_started","workflow_continued"],ep=async(t,e)=>{if(t.ctx.type!=="workflow_update"||!hT.includes(e.payload.type))throw new Error("Unexpected event type");let r={...t,logger:mT(t,e)};if(!e.payload.workflow.name)return r.logger.warn("Received workflow update event without a workflow name. Assuming this workflow was not defined by the bot.",e.payload.workflow),he;switch(e.payload.type){case"child_workflow_deleted":case"child_workflow_finished":r.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 yT(r,e);default:e.payload.type}return he},mT=(t,e)=>t.logger.with({eventId:e.id,workflowId:e.payload.workflow.id,conversationId:e.payload.conversation?.id,userId:e.payload.user?.id}),yT=async(t,e)=>{let r=si(e.payload.type),n=t.self.workflowHandlers[r]?.[e.payload.workflow.name];return!n||n.length===0?(t.logger.warn(`No ${r} handler found for workflow "${e.payload.workflow.name}"`),he):(await vT(t,e),await _T(t,e),he)},vT=async(t,e)=>{e.payload.workflow.status==="pending"&&await t.client.updateWorkflow({id:e.payload.workflow.id,status:"in_progress",eventId:e.id})},_T=async(t,e)=>{let r=si(e.payload.type),n=t.self.workflowHandlers[r]?.[e.payload.workflow.name];for(let a of n)await a({...t,conversation:e.payload.conversation,user:e.payload.user,workflow:et({...t,workflow:e.payload.workflow}),workflows:Jt(t.client)})};var tp=t=>async e=>{let r=Qf(e.headers),n=new Xe,a=new kt.Client({botId:r.botId,retry:la}),s=new Re(a,{before:{createMessage:async o=>{let c=t.hookHandlers.before_outgoing_message[o.type]??[];for(let p of c){let m=new Re(a);o=(await p({client:m,ctx:r,logger:n.with({conversationId:o.conversationId,userId:o.userId}),data:o,...tt({client:m})}))?.data??o}return o},callAction:async o=>{let c=t.hookHandlers.before_outgoing_call_action[o.type]??[];for(let p of c){let m=new Re(a);o=(await p({client:m,ctx:r,logger:n,data:o,...tt({client:m})}))?.data??o}return o}},after:{createMessage:async o=>{let c=t.hookHandlers.after_outgoing_message[o.message.type]??[];for(let p of c){let m=new Re(a);o=(await p({client:m,ctx:r,logger:n.with({messageId:o.message.id,conversationId:o.message.conversationId,userId:o.message.userId}),data:o,...tt({client:m})}))?.data??o}return o},callAction:async(o,c)=>{let{type:p}=c,m=t.hookHandlers.after_outgoing_call_action[p]??[];for(let T of m){let O=new Re(a);o=(await T({client:O,ctx:r,logger:n,data:{type:p,...o},...tt({client:O})}))?.data??o}return o}}}),i={req:e,ctx:r,logger:n,client:s,self:t};try{switch(r.operation){case"action_triggered":return await kT(i);case"event_received":return await PT(i);case"register":return await bT(i);case"unregister":return await wT(i);case"ping":return await TT(i);default:throw new Error(`Unknown operation ${r.operation}`)}}catch(o){if((0,kt.isApiError)(o)){let p=o.type==="Runtime"?o:new kt.RuntimeError(o.message,o);return n.error(p.message),{status:p.code,body:JSON.stringify(p.toJSON())}}let c=new kt.RuntimeError("An unexpected error occurred in the bot.");return n.error(c.message),{status:c.code,body:JSON.stringify(c.toJSON())}}},TT=async t=>he,bT=async t=>he,wT=async t=>he,PT=async t=>{let{ctx:e,logger:r,req:n,client:a,self:s}=t,i={client:a,ctx:e,logger:r,...tt({client:a})},o=Se(n);if(i.logger=i.logger.with({eventId:o.event.id,messageId:o.event.messageId,conversationId:o.event.conversationId,userId:o.event.userId}),e.type==="workflow_update")return await ep(t,o.event);if(e.type==="message_created"){let w=o.event,S=w.payload.message;i.logger=i.logger.with({messageId:S.id,conversationId:S.conversationId,userId:S.userId});let W=s.hookHandlers.before_incoming_message[S.type]??[];for(let j of W){let F=await j({...i,data:S});if(S=F?.data??S,F?.stop)return he}let q={...i,user:w.payload.user,conversation:w.payload.conversation,message:S,event:w},re=s.messageHandlers[S.type]??[];for(let j of re)await j(q);let J=s.hookHandlers.after_incoming_message[S.type]??[];for(let j of J){let F=await j({...i,data:S});if(S=F?.data??S,F?.stop)return he}return he}if(e.type==="state_expired"){let S=o.event.payload.state,W={...i,state:S},q=s.stateExpiredHandlers["*"]??[];for(let re of q)await re(W);return he}let c=o.event,p=s.hookHandlers.before_incoming_event[c.type]??[];for(let w of p){let S=await w({...i,data:c});if(c=S?.data??c,S?.stop)return he}let m={...i,event:c},T=s.eventHandlers[c.type]??[];for(let w of T)await w(m);let O=s.hookHandlers.after_incoming_event[c.type]??[];for(let w of O){let S=await w({...i,data:c});if(c=S?.data??c,S?.stop)return he}return he},kT=async({ctx:t,logger:e,req:r,client:n,self:a})=>{let{input:s,type:i}=Se(r);if(!i)throw new Error("Missing action type");let o=a.hookHandlers.before_incoming_call_action[i]??[];for(let O of o){let w=await O({ctx:t,logger:e,client:n,data:{type:i,input:s},...tt({client:n})});s=w?.data?.input??s,i=w?.data?.type??i}let c=a.actionHandlers[i];if(!c)throw new Error(`Action ${i} not found`);let p=await c({ctx:t,logger:e,input:s,client:n,type:i,...tt({client:n})}),m=a.hookHandlers.after_incoming_call_action[i]??[];for(let O of m){let w=await O({ctx:t,logger:e,client:n,data:{type:i,output:p},...tt({client:n})});i=w?.data?.type??i,p=w?.data?.output??p}return{status:200,body:JSON.stringify({output:p})}},tt=t=>({workflows:Jt(t.client)});var pa=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,r)=>{let n=this._actionHandlers[r];if(n)return n;for(let a of Object.values(this._plugins))if(n=a.actionHandlers[r],n)return n}})}get messageHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(o=>o.messageHandlers[r]??[]),a=this._messageHandlers[r]??[],s=this._messageHandlers["*"]??[],i=[...a,...s].sort((o,c)=>o.order-c.order).map(({handler:o})=>o);return Z.unique([...n,...i])}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(o=>o.eventHandlers[r]??[]),a=this._eventHandlers[r]??[],s=this._eventHandlers["*"]??[],i=[...a,...s].sort((o,c)=>o.order-c.order).map(({handler:o})=>o);return Z.unique([...n,...i])}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(o=>o.stateExpiredHandlers[r]??[]),a=this._stateExpiredHandlers[r]??[],s=this._stateExpiredHandlers["*"]??[],i=[...a,...s].sort((o,c)=>o.order-c.order).map(({handler:o})=>o);return Z.unique([...n,...i])}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{if(this._hookHandlers[r])return new Proxy({},{get:(a,s)=>{let i=Object.values(this._plugins).flatMap(T=>T.hookHandlers[r]?.[s]??[]),o=this._hookHandlers[r]??{},c=o[s]??[],p=o["*"]??[],m=[...c,...p].sort((T,O)=>T.order-O.order).map(({handler:T})=>T);return Z.unique([...i,...m])}})}})}get workflowHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._workflowHandlers[r];if(n)return new Proxy({},{get:(a,s)=>{let i=n[s]?.sort((c,p)=>c.order-p.order).map(({handler:c})=>c)??[],o=Object.values(this._plugins).flatMap(c=>c.workflowHandlers[r]?.[s]??[]);return Z.unique([...i,...o])}})}})}on={message:(e,r)=>{this._messageHandlers[e]=Z.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=Z.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=Z.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=Z.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=Z.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=Z.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=Z.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=Z.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=Z.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=Z.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=Z.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=Z.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=Z.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=Z.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=Z.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=Z.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};handler=tp(this);start=e=>kr(this.handler,e)};var ga=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??{},this.attributes=e.attributes;let r=this._getEntityReference(this.entities),n=e.events===void 0?{}:te.mapValues(e.events,i=>({...i,schema:i.schema(r)})),a=e.actions===void 0?{}:te.mapValues(e.actions,i=>({...i,input:{...i.input,schema:i.input.schema(r)},output:{...i.output,schema:i.output.schema(r)}})),s=e.channels===void 0?{}:te.mapValues(e.channels,i=>({...i,messages:te.mapValues(i.messages,o=>({...o,schema:o.schema(r)}))}));this.events=n,this.actions=a,this.channels=s}name;version;title;description;icon;readme;attributes;entities;events;actions;channels;_getEntityReference=e=>{let r={};for(let[n,a]of Object.entries(e)){let s=a.schema._def["x-zui"]?.title,i=a.schema._def.description,o=Af.ref(n);s&&o.title(s),i&&o.describe(i),r[n]=o}return r}};var ha=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,this.attributes=e.attributes}name;version;title;description;icon;readme;attributes;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows};var ii=":";var rp=t=>{let[e,r]=t.split(ii);return!e||!r?null:{namespace:e,eventName:r}},np=t=>`${t.namespace}${ii}${t.actionName}`,ap=t=>`${t.namespace}${ii}${t.eventName}`,sp=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,a=r.actions[t.actionName]?.name??t.actionName;return{namespace:n,actionName:a}},ip=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,a=r.events[t.eventName]?.name??t.eventName;return{namespace:n,eventName:a}};var op=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(a,s)=>i=>ET({client:t,interfaces:e.interfaces,integrationOrInterfaceName:n,methodName:s,input:i})})}),ET=async({client:t,interfaces:e,integrationOrInterfaceName:r,methodName:n,input:a})=>{let s=sp({namespace:r,actionName:n},e),i=np(s);return(await t.callAction({type:i,input:a})).output};var oi=class{constructor(e,r,n){this._client=e;this._stateType=r;this._stateName=n}async get(e){return await this._client.getState({type:this._stateType,name:this._stateName,id:e}).then(r=>r.state.payload)}async set(e,r){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:r})}async getOrSet(e,r){return await this._client.getOrSetState({type:this._stateType,name:this._stateName,id:e,payload:r}).then(n=>n.state.payload)}async delete(e){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:null})}async patch(e,r){await this._client.patchState({type:this._stateType,name:this._stateName,id:e,payload:r})}},lp=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(a,s)=>{let i=e.alias!==void 0?`${e.alias}${ca}${s}`:s;return new oi(t,n,i)}})});var ma=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:r,interfaces:n,alias:a}=this._runtime,s=op(e,this._runtime),i=lp(e,this._runtime),o=Jt(e);return{configuration:r,interfaces:n,actions:s,states:i,alias:a,workflows:o}}get actionHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._actionHandlers[r];if(n)return Fe.setName(a=>n({...a,...this._getTools(a.client)}),n.name)}})}get messageHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._messageHandlers[r]??[],a=this._messageHandlers["*"]??[];return Z.unique([...n,...a]).sort((i,o)=>i.order-o.order).map(({handler:i})=>Fe.setName(o=>i({...o,...this._getTools(o.client)}),i.name))}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._eventHandlers[r]??[],a=Object.entries(this._eventHandlers).filter(([o])=>this._eventResolvesTo(o,r)).flatMap(([,o])=>o??[]),s=this._eventHandlers["*"]??[];return Z.unique([...n,...a,...s]).sort((o,c)=>o.order-c.order).map(({handler:o})=>Fe.setName(c=>o({...c,...this._getTools(c.client)}),o.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._stateExpiredHandlers[r]??[],a=this._stateExpiredHandlers["*"]??[];return Z.unique([...n,...a]).sort((i,o)=>i.order-o.order).map(({handler:i})=>Fe.setName(o=>i({...o,...this._getTools(o.client)}),i.name))}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._hookHandlers[r];if(n)return new Proxy({},{get:(a,s)=>{s=this._stripAliasPrefix(s);let i=n[s]??[],o=Object.entries(n).filter(([m])=>this._eventResolvesTo(m,s)).flatMap(([,m])=>m??[]),c=n["*"]??[];return Z.unique([...i,...o,...c]).sort((m,T)=>m.order-T.order).map(({handler:m})=>Fe.setName(T=>m({...T,...this._getTools(T.client)}),m.name))}})}})}get workflowHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._workflowHandlers[r];if(n)return new Proxy({},{get:(a,s)=>(n[s]?.sort((o,c)=>o.order-c.order)??[]).map(({handler:o})=>Fe.setName(c=>o({...c,...this._getTools(c.client)}),o.name))})}})}on={message:(e,r)=>{this._messageHandlers[e]=Z.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=Z.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=Z.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=Z.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=Z.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=Z.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=Z.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=Z.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=Z.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=Z.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=Z.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=Z.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=Z.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=Z.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=Z.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=Z.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};_eventResolvesTo=(e,r)=>{let n=rp(e);if(!n)return!1;let a=ip(n,this._runtime.interfaces);return ap(a)===r};_stripAliasPrefix=e=>{let{alias:r}=this._runtime;if(!r)return e;let n=`${r}:`;return e.startsWith(n)?e.slice(n.length):e}};0&&(module.exports={BRAND,Bot,BotDefinition,BotLogger,BotSpecificClient,DIRTY,EMPTY_PATH,ErrorBoundary,INVALID,Integration,IntegrationDefinition,IntegrationLogger,IntegrationSpecificClient,InterfaceDefinition,NEVER,OK,ParseInputLazyPath,ParseStatus,Plugin,PluginDefinition,RuntimeError,Schema,WELL_KNOWN_ATTRIBUTES,ZodAny,ZodArray,ZodBigInt,ZodBoolean,ZodBranded,ZodCatch,ZodDate,ZodDefault,ZodDiscriminatedUnion,ZodEffects,ZodEnum,ZodError,ZodFirstPartyTypeKind,ZodFunction,ZodIntersection,ZodIssueCode,ZodLazy,ZodLiteral,ZodMap,ZodNaN,ZodNativeEnum,ZodNever,ZodNull,ZodNullable,ZodNumber,ZodObject,ZodOptional,ZodParsedType,ZodPipeline,ZodPromise,ZodReadonly,ZodRecord,ZodRef,ZodSchema,ZodSet,ZodString,ZodSymbol,ZodTransformer,ZodTuple,ZodType,ZodUndefined,ZodUnion,ZodUnknown,ZodVoid,ZuiForm,addIssueToContext,agent,aimodel,any,array,bigint,boolean,botIdHeader,botUserIdHeader,coerce,configurationHeader,configurationTypeHeader,conversation,createZodEnum,cuid2Regex,cuidRegex,custom,datasource,date,datetimeRegex,defaultComponentDefinitions,discriminatedUnion,effect,emailRegex,enum:null,errorUtil,event,fromJsonSchema,fromObject,function:null,getErrorMap,getParsedType,instanceof:null,integrationIdHeader,intent,intersection,ipv4Regex,ipv6Regex,isAborted,isApiError,isAsync,isDirty,isEmojiRegex,isValid,jsonSchemaToZui,knowledgebase,late,lazy,literal,makeIssue,map,mergeObjectSchemas,message,messages,nan,nativeEnum,never,null:null,nullable,number,object,objectToZui,objectUtil,oboolean,onumber,operationHeader,optional,ostring,parseBody,pipeline,preprocess,processCreateParams,promise,quotelessJson,readonly,record,ref,serve,set,setErrorMap,strictObject,string,symbol,table,tablerow,transformer,transforms,tuple,typeHeader,ulidRegex,undefined,union,unknown,user,util,uuidRegex,variable,void:null,webhookIdHeader,withErrorBoundary,z,zuiToJsonSchema});
|
|
89
|
+
`,a+="})"}let s=r?a?r+a:n?n==="z.never()"?r+".strict()":r+`.catchall(${n})`:r:a||(n?`z.record(${n})`:"z.record(z.any())");return ie.an.anyOf(t)&&(s+=`.and(${Cf(h(d({},t),{anyOf:t.anyOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?h(d({},i),{type:"object"}):i)}),e)})`),ie.a.oneOf(t)&&(s+=`.and(${Ys(h(d({},t),{oneOf:t.oneOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?h(d({},i),{type:"object"}):i)}),e)})`),ie.an.allOf(t)&&(s+=`.and(${hr(h(d({},t),{allOf:t.allOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?h(d({},i),{type:"object"}):i)}),e)})`),s}l(If,"parseObject");var w_=l(t=>{var e;let r="z.string()";if((e=t[K])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";r="z.coerce.string()"}return r+=fe(t,"format",({value:n})=>{switch(n){case"email":return[".email(",")"];case"ip":return[".ip(",")"];case"ipv4":return['.ip({ version: "v4"',", message: "," })"];case"ipv6":return['.ip({ version: "v6"',", message: "," })"];case"uri":return[".url(",")"];case"uuid":return[".uuid(",")"];case"date-time":return[".datetime(",")"]}}),r+=fe(t,"pattern",({json:n})=>[`.regex(new RegExp(${n})`,", ",")"]),r+=fe(t,"minLength",({json:n})=>[`.min(${n}`,", ",")"]),r+=fe(t,"maxLength",({json:n})=>[`.max(${n}`,", ",")"]),r},"parseString"),P_=l((t,e)=>`${ce(h_(t,"nullable"),e,!0)}.nullable()`,"parseNullable"),k_=l(t=>`z.ref('${t.$ref}')`,"parseRef"),E_=l((t,e)=>{var r,n;if(t.oneOf.length<=1||!((r=t.discriminator)!=null&&r.propertyName))return Ys(t,e);let a=t.oneOf.map((s,i)=>ce(s,h(d({},e),{path:[...e.path,"oneOf",i]})));return`z.discriminatedUnion("${(n=t.discriminator)==null?void 0:n.propertyName}", [${a.join(", ")}])`},"parseDiscriminator"),ce=l((t,e={seen:new Map,path:[]},r)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let s=e.parserOverride(t,e);if(typeof s=="string")return s}let n=e.seen.get(t);if(n){if(n.r!==void 0)return n.r;if(e.depth===void 0||n.n>=e.depth)return"z.any()";n.n+=1}else n={r:void 0,n:0},e.seen.set(t,n);let a=O_(t,e);return r||(a=x_(t,a),e.withoutDefaults||(a=S_(t,a))),n.r=a,a},"parseSchema"),x_=l((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),S_=l((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),O_=l((t,e)=>ie.a.nullable(t)?P_(t,e):ie.an.object(t)?If(t,e):ie.an.array(t)?y_(t,e):ie.an.anyOf(t)?Cf(t,e):ie.an.allOf(t)?hr(t,e):ie.a.discriminator(t)?E_(t,e):ie.a.oneOf(t)?Ys(t,e):ie.a.not(t)?f_(t,e):ie.an.enum(t)?__(t):ie.a.const(t)?v_(t):ie.a.multipleType(t)?d_(t,e):ie.a.primitive(t,"string")?w_(t):ie.a.primitive(t,"number")||ie.a.primitive(t,"integer")?b_(t):ie.a.primitive(t,"boolean")?u_(t):ie.a.primitive(t,"null")?p_(t):ie.a.conditional(t)?T_(t,e):ie.a.ref(t)?k_(t):c_(t),"selectParser"),ie={an:{object:l(t=>t.type==="object","object"),array:l(t=>t.type==="array","array"),anyOf:l(t=>t.anyOf!==void 0,"anyOf"),allOf:l(t=>t.allOf!==void 0,"allOf"),enum:l(t=>t.enum!==void 0,"enum")},a:{nullable:l(t=>t.nullable===!0,"nullable"),multipleType:l(t=>Array.isArray(t.type),"multipleType"),not:l(t=>t.not!==void 0,"not"),const:l(t=>t.const!==void 0,"const"),primitive:l((t,e)=>t.type===e,"primitive"),conditional:l(t=>Boolean("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),"conditional"),discriminator:l(t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},"discriminator"),oneOf:l(t=>t.oneOf!==void 0,"oneOf"),ref:l(t=>t.$ref!==void 0,"ref")}},C_=l(t=>{let e;try{e=new Function("z",`return ${t}`)(v)}catch(r){return{sucess:!1,error:`Failed to evaluate schema: ${(r instanceof Error?r:new Error(String(r))).message}`}}return e instanceof v.ZodType?{sucess:!0,value:e}:{sucess:!1,error:`String "${t}" does not evaluate to a Zod schema`}},"evalZuiString"),I_=l(t=>ce(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),B_=l(t=>{let e=I_(t);e=e.replaceAll("errors: z.ZodError[]","errors");let r=C_(e);if(!r.sucess)throw new ol(r.error);return r.value},"jsonSchemaToZod"),or=l((t,e)=>{var r,n;if(e[K]&&t._def&&(t._def[K]=e[K]),((r=t._def)==null?void 0:r.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([a,s])=>{let i=typeof t._def.shape=="function"?t._def.shape():t._def.shape;i[a]&&or(i[a],s)}),((n=t._def)==null?void 0:n.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&or(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let a=e.items;if(typeof a=="object"&&!Array.isArray(a)){let s=t._def.type;s&&or(s,a)}else Array.isArray(a)&&a.forEach((s,i)=>{let o=t._def;o.typeName===E.ZodFirstPartyTypeKind.ZodTuple&&or(o.items[i],s)})}},"applyZuiPropsRecursively"),Tr=l(t=>{let e=B_(t);return or(e,t),e},"jsonSchemaToZui"),Bf=class extends Lt.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,r){console.error("Uncaught error:",e,r)}render(){return this.state.hasError&&this.props.fallback?Lt.default.createElement(this.props.fallback,{error:this.state.error,schema:this.props.fieldSchema}):this.props.children}};l(Bf,"ErrorBoundary");var Mt=Bf;function Rf(t,e){return r=>Lt.default.createElement(Mt,{fallback:e,fieldSchema:r.fieldSchema,path:r.path},Lt.default.createElement(t,d({},r)))}l(Rf,"withErrorBoundary");var Jr=l(t=>{var e=t,{components:r,fieldSchema:n,path:a,required:s,fallback:i}=e,o=Lo(e,["components","fieldSchema","path","required","fallback"]),c,p;let{formData:m,disabled:T,hidden:O,handlePropertyChange:w,addArrayItem:S,removeArrayItem:W,formErrors:q,formValid:re}=Vo(n,a),J=(0,be.useMemo)(()=>lt(m,a),[m,a]),j=(0,be.useMemo)(()=>Fg(r,n),[n,r]),{discriminator:F,discriminatedSchema:ue,discriminatorValue:Le}=$g(n,a);if(!j||O===!0)return null;let{Component:rt,type:Ce}=j,we={type:Ce,componentID:j.id,scope:a.join("."),context:{path:a,readonly:!1,formData:m,formErrors:q,formValid:re,updateForm:w,updateFormData:l(Pe=>w([],Pe),"updateFormData")},onChange:l(Pe=>w(a,Pe),"onChange"),disabled:T,errors:q?.filter(Pe=>Pe.path===a)||[],label:((c=n[K])==null?void 0:c.title)||qa(((p=a[a.length-1])==null?void 0:p.toString())||""),params:j.params,schema:n,zuiProps:n[K]};if(n.type==="array"&&Ce==="array"){let Pe=rt,Te=we.schema,ke=Array.isArray(J)||typeof J=="object"?J:[],N=d(h(d({},we),{type:Ce,schema:Te,data:ke,addItem:l(Ie=>S(a,Ie),"addItem"),removeItem:l(Ie=>W(a,Ie),"removeItem")}),o);return Array.isArray(n.items)?null:be.default.createElement(Pe,h(d({key:we.scope},N),{isArrayChild:N.isArrayChild}),Array.isArray(N.data)?N.data.map((Ie,Oe)=>{let ze=[...a,Oe.toString()];return be.default.createElement(Mt,{key:ze.join("."),fallback:i,fieldSchema:n.items,path:ze},be.default.createElement(Jr,{key:ze.join("."),components:r,fieldSchema:n.items,path:ze,required:s,isArrayChild:!0,index:Oe,removeSelf:()=>W(a,Oe),fallback:i}))}):[])}if(n.type==="object"&&Ce==="object"&&n.properties){let Pe=rt,Te=d(h(d({},we),{type:Ce,schema:we.schema,data:J||{}}),o);return be.default.createElement(Pe,h(d({key:we.scope},Te),{isArrayChild:Te.isArrayChild}),Object.entries(n.properties).map(([ke,N])=>{var Ie;let Oe=[...a,ke];return be.default.createElement(Mt,{key:Oe.join("."),fallback:i,fieldSchema:N,path:Oe},be.default.createElement(Jr,{key:Oe.join("."),components:r,fieldSchema:N,path:Oe,required:((Ie=n.required)==null?void 0:Ie.includes(ke))||!1,isArrayChild:!1,fallback:i}))}))}if(Ce==="discriminatedUnion"){let Pe=rt,Te=d(h(d({},we),{type:Ce,schema:we.schema,data:J||{},discriminatorKey:F?.key||null,discriminatorLabel:qa(F?.key||"Unknown"),discriminatorOptions:F?.values||null,discriminatorValue:Le,setDiscriminator:l(ke=>{if(!F?.key){console.warn("No discriminator key found, cannot set discriminator");return}w(a,{[F.key]:ke})},"setDiscriminator")}),o);return be.default.createElement(Pe,h(d({key:we.scope},Te),{isArrayChild:Te.isArrayChild}),ue&&be.default.createElement(Mt,{key:a.join("."),fallback:i,fieldSchema:ue,path:a},be.default.createElement(Jr,{components:r,fieldSchema:ue,path:a,required:s,isArrayChild:!1,fallback:i})))}let va=rt,_a=d(h(d({},we),{type:Ce,schema:we.schema,config:{},required:s,data:J,description:n.description}),o);return be.default.createElement(va,d({},_a))},"FormElementRenderer"),R_=l(({schema:t,components:e,onChange:r,value:n,disableValidation:a,fallback:s,dataTransform:i,onValidation:o})=>{let[c,p]=(0,je.useState)(n);return(0,je.useEffect)(()=>{r(c)},[c]),(0,je.useEffect)(()=>{let m=Dt(t);p(T=>Xr(m,T))},[JSON.stringify(t),p]),je.default.createElement(jg,{formData:c,setFormData:p,formSchema:t,disableValidation:a||!1,dataTransform:i,onValidation:o},je.default.createElement(Mt,{fallback:s,fieldSchema:t,path:[]},je.default.createElement(Jr,{components:e,fieldSchema:t,path:[],fallback:s,required:!0,isArrayChild:!1})))},"ZuiForm"),A_={string:{},number:{slider:{id:"slider",params:v.object({})}},boolean:{switch:{id:"switch",params:v.object({})}},array:{},object:{},discriminatedUnion:{}},Z_={errors:al,jsonSchemaToZui:Tr,zuiToJsonSchema:aa,objectToZui:Ft,toTypescript:Qr,toTypescriptSchema:ws};var Vt=(t,e)=>{let r=t._def,n=e._def;if(r.typeName===E.ZodFirstPartyTypeKind.ZodObject&&n.typeName===E.ZodFirstPartyTypeKind.ZodObject){let a=r.shape(),s=n.shape();return E.object({...a,...s})}if(r.typeName===E.ZodFirstPartyTypeKind.ZodRecord&&n.typeName===E.ZodFirstPartyTypeKind.ZodRecord)return E.record(E.intersection(r.valueType,n.valueType));throw new Error("Cannot merge object schemas with record schemas")},Af=E;var _e=E.string().min(1),Df=E.object({text:_e}),Hf=E.object({markdown:_e}),Mf=E.object({imageUrl:_e}),Nf=E.object({audioUrl:_e}),jf=E.object({videoUrl:_e}),$f=E.object({fileUrl:_e,title:_e.optional()}),Uf=E.object({latitude:E.number(),longitude:E.number(),address:E.string().optional(),title:E.string().optional()}),Kf=E.object({title:_e,subtitle:_e.optional(),imageUrl:_e.optional(),actions:E.array(E.object({action:E.enum(["postback","url","say"]),label:_e,value:_e}))}),Zf=E.object({text:_e,options:E.array(E.object({label:_e,value:_e}))}),D_=E.object({items:E.array(Kf)}),H_=E.union([E.object({type:E.literal("text"),payload:Df}),E.object({type:E.literal("markdown"),payload:Hf}),E.object({type:E.literal("image"),payload:Mf}),E.object({type:E.literal("audio"),payload:Nf}),E.object({type:E.literal("video"),payload:jf}),E.object({type:E.literal("file"),payload:$f}),E.object({type:E.literal("location"),payload:Uf})]),M_=E.object({items:E.array(H_)}),N_={schema:Hf},j_={text:{schema:Df},image:{schema:Mf},audio:{schema:Nf},video:{schema:jf},file:{schema:$f},location:{schema:Uf},carousel:{schema:D_},card:{schema:Kf},dropdown:{schema:Zf},choice:{schema:Zf},bloc:{schema:M_}};var br="x-bot-id",Qs="x-bot-user-id",ei="x-integration-id",ti="x-webhook-id",ri="x-bp-configuration-type",wr="x-bp-configuration",Pr="x-bp-operation",ni="x-bp-type",$_={HIDDEN_IN_STUDIO:{bpActionHiddenInStudio:"true"},AWAIT_RETURN:{bpActionAwaitReturn:"true"}};var Ff=require("browser-or-node");var ai=console;function Se(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function kr(t,e=8072,r=L_){if(!Ff.isNode)throw new Error("This function can only be called in Node.js");let a=require("http").createServer(async(s,i)=>{try{let o=await U_(s);if(o.path==="/health"){i.writeHead(200).end("ok");return}let c=await t(o);i.writeHead(c?.status??200,c?.headers??{}).end(c?.body??"{}")}catch(o){ai.error("Error while handling request",{error:o?.message??"Internal error occured"}),i.writeHead(500).end(JSON.stringify({error:o?.message??"Internal error occured"}))}});return a.listen(e,()=>r(e)),a}async function U_(t){let e=await F_(t),r={};for(let a=0;a<t.rawHeaders.length;a+=2){let s=t.rawHeaders[a].toLowerCase(),i=t.rawHeaders[a+1];r[s]=i}let n=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:n.pathname,query:K_(n.search,"?"),headers:r,method:t.method?.toUpperCase()??"GET"}}function K_(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function F_(t){return new Promise((e,r)=>{if(t.method!=="POST"&&t.method!=="PUT"&&t.method!=="PATCH")return e(void 0);let n="";t.on("data",a=>n+=a.toString()),t.on("error",a=>r(a)),t.on("end",()=>e(n))})}function L_(t){ai.info(`Listening on port ${t}`)}var ya=require("@botpress/client");var te={};er(te,{mapKeys:()=>V_,mapValues:()=>W_,mergeRecords:()=>G_,pairs:()=>sa,stripUndefinedProps:()=>q_,values:()=>z_});var sa=t=>Object.entries(t),z_=t=>Object.values(t),W_=(t,e)=>Object.fromEntries(sa(t).map(([r,n])=>[r,e(n,r)])),V_=(t,e)=>Object.fromEntries(sa(t).map(([r,n])=>[e(r),n])),q_=t=>Object.fromEntries(sa(t).filter(([,e])=>e!==void 0)),G_=(t,e,r)=>{let n=[...Object.keys(t),...Object.keys(e)],a=[...new Set(n)],s={};for(let i of a){let o=t[i],c=e[i];o&&c?s[i]=r(o,c):o?s[i]=o:c&&(s[i]=c)}return s};var Z={};er(Z,{safePush:()=>J_,unique:()=>Y_});var J_=(t,...e)=>t?[...t,...e]:[...e],Y_=t=>Array.from(new Set(t));var Fe={};er(Fe,{setName:()=>X_});var X_=(t,e)=>(Object.defineProperty(t,"name",{value:e}),t);var Lf=t=>{let{name:e,version:r}=t,n={actions:{},events:{},channels:{}},a={name:e,version:r,entities:te.mapValues(t.entities,i=>({name:i.name})),actions:{},events:{},channels:{}},s=te.mapValues(t.entities,i=>i.schema);for(let[i,o]of Object.entries(t.definition.actions??{})){let c=o.input.schema.dereference(s),p=o.output.schema.dereference(s),m=t.actions?.[i]?.name??i;n.actions[m]={...o,...t.actions?.[i]??{},input:{schema:c},output:{schema:p}},a.actions[i]={name:m}}for(let[i,o]of Object.entries(t.definition.events??{})){let c=o.schema.dereference(s),p=t.events?.[i]?.name??i;n.events[p]={...o,...t.events?.[i]??{},schema:c},a.events[i]={name:p}}for(let[i,o]of Object.entries(t.definition.channels??{})){let c={};for(let[m,T]of Object.entries(o.messages)){let O=T.schema.dereference(s);c[m]={...T,schema:O}}let p=t.channels?.[i]?.name??i;n.channels[p]={...o,...t.channels?.[i]??{},message:{...o.message??{},tags:{...o.message?.tags??{},...t.channels?.[i]?.message?.tags??{}}},conversation:{...o.conversation??{},tags:{...o.conversation?.tags??{},...t.channels?.[i]?.conversation?.tags??{}}},messages:c},a.channels[i]={name:p}}return{resolved:n,statement:a}};var ia=Symbol("schemaName"),zf=t=>t?te.mapValues(t,(r,n)=>({...r,[ia]:n})):{},Wf=t=>ia in t&&t[ia]!==void 0,Vf=t=>t[ia];var oa=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.identifier=e.identifier,this.description=e.description,this.configuration=e.configuration,this.configurations=e.configurations,this.events=e.events,this.actions=e.actions,this.channels=e.channels,this.states=e.states,this.user=e.user,this.secrets=e.secrets,this.entities=e.entities,this.interfaces=e.interfaces,this.__advanced=e.__advanced,this.attributes=e.attributes}name;version;title;description;icon;readme;configuration;configurations;events;actions;channels;states;user;secrets;identifier;entities;interfaces;__advanced;attributes;extend(e,r){let{entities:n,actions:a,events:s,channels:i}=this._callBuilder(e,r),o=this;o.interfaces??={};let c=Object.values(n).map(O=>O.name),p=c.length===0?e.name:`${e.name}<${c.join(",")}>`,{resolved:m,statement:T}=Lf({...e,entities:n,actions:te.stripUndefinedProps(a),events:te.stripUndefinedProps(s),channels:te.stripUndefinedProps(i)});return o.actions=te.mergeRecords(o.actions??{},m.actions,this._mergeActions),o.channels=te.mergeRecords(o.channels??{},m.channels,this._mergeChannels),o.events=te.mergeRecords(o.events??{},m.events,this._mergeEvents),o.interfaces[p]={id:e.id,...T},this}_callBuilder(e,r){let a={entities:zf(this.entities)},s=r(a),i=te.pairs(s.entities).find(([c,p])=>!Wf(p));if(i)throw new Error(`Cannot extend interface "${e.name}" with entity "${i[0]}"; the provided schema is not part of the integration's entities.`);return{entities:te.mapValues(s.entities,c=>({name:Vf(c),schema:c.schema})),actions:s.actions??{},events:s.events??{},channels:s.channels??{}}}_mergeActions=(e,r)=>({...e,...r,input:{schema:Vt(e.input.schema,r.input.schema)},output:{schema:Vt(e.output.schema,r.output.schema)}});_mergeEvents=(e,r)=>({...e,...r,schema:Vt(e.schema,r.schema)});_mergeChannels=(e,r)=>{let n=te.mergeRecords(e.messages,r.messages,this._mergeMessage),a;(e.conversation||r.conversation)&&(a={tags:{...e.conversation?.tags,...r.conversation?.tags}});let s;return(e.message||r.message)&&(s={tags:{...e.message?.tags,...r.message?.tags}}),{...e,...r,messages:n,conversation:a,message:s}};_mergeMessage=(e,r)=>({schema:Vt(e.schema,r.schema)})};var Pt=require("@botpress/client");var qf=at(require("@botpress/client")),la={retries:3,retryCondition:t=>qf.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:(t,e)=>(Q_(e.response?.headers??{})??t)*1e3},Q_=t=>{let e=["RateLimit-Reset","X-RateLimit-Reset","Retry-After","ratelimit-reset","x-ratelimit-reset","retry-after"];for(let r of e){let n=t[r];if(n!==void 0)return eT(String(n))}},eT=t=>{let e=tT(t)?rT(t):t.length>0?parseInt(t,10):void 0;return e===void 0||isNaN(e)?void 0:e},tT=t=>t.includes(" "),rT=t=>{let e=nT(t);if(!e)return;let r=new Date;return Math.max(0,Math.floor((e.getTime()-r.getTime())/1e3))},nT=t=>{let e=new Date(t);return isNaN(e.getTime())?void 0:e};var qt=class{constructor(e){this._client=e}createConversation=e=>this._client.createConversation(e);getConversation=e=>this._client.getConversation(e);listConversations=e=>this._client.listConversations(e);getOrCreateConversation=e=>this._client.getOrCreateConversation(e);updateConversation=e=>this._client.updateConversation(e);deleteConversation=e=>this._client.deleteConversation(e);listParticipants=e=>this._client.listParticipants(e);addParticipant=e=>this._client.addParticipant(e);getParticipant=e=>this._client.getParticipant(e);removeParticipant=e=>this._client.removeParticipant(e);createEvent=e=>this._client.createEvent(e);getEvent=e=>this._client.getEvent(e);listEvents=e=>this._client.listEvents(e);createMessage=e=>this._client.createMessage(e);getOrCreateMessage=e=>this._client.getOrCreateMessage(e);getMessage=e=>this._client.getMessage(e);updateMessage=e=>this._client.updateMessage(e);listMessages=e=>this._client.listMessages(e);deleteMessage=e=>this._client.deleteMessage(e);createUser=e=>this._client.createUser(e);getUser=e=>this._client.getUser(e);listUsers=e=>this._client.listUsers(e);getOrCreateUser=e=>this._client.getOrCreateUser(e);updateUser=e=>this._client.updateUser(e);deleteUser=e=>this._client.deleteUser(e);getState=e=>this._client.getState(e);setState=e=>this._client.setState(e);getOrSetState=e=>this._client.getOrSetState(e);patchState=e=>this._client.patchState(e);configureIntegration=e=>this._client.configureIntegration(e);uploadFile=e=>this._client.uploadFile(e);upsertFile=e=>this._client.upsertFile(e);deleteFile=e=>this._client.deleteFile(e);listFiles=e=>this._client.listFiles(e);getFile=e=>this._client.getFile(e);updateFileMetadata=e=>this._client.updateFileMetadata(e);trackAnalytics=e=>this._client.trackAnalytics(e)};var ua=class{_cost=0;get cost(){return this._cost}setCost(e){this._cost=e}toJSON(){return{cost:this.cost}}};var ca="#";var aT=E.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),Jf=t=>{let e=t[br],r=t[Qs],n=t[ei],a=t[ti],s=t[ri],i=t[wr],o=aT.parse(t[Pr]);if(!e)throw new Error("Missing bot headers");if(!r)throw new Error("Missing bot user headers");if(!n)throw new Error("Missing integration headers");if(!a)throw new Error("Missing webhook headers");if(!i)throw new Error("Missing configuration headers");if(!o)throw new Error("Missing operation headers");return{botId:e,botUserId:r,integrationId:n,webhookId:a,operation:o,configurationType:s??null,configuration:i?JSON.parse(Buffer.from(i,"base64").toString("utf-8")):{}}};var Yf=at(require("util")),Gt=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,r){this._getConsoleMethod(e)(this._serializeMessage(r))}_serializeMessage(e){let r=Yf.default.format(...e);return process.env.BP_LOG_FORMAT==="json"?this.getJsonMessage(r):r}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 Ye=class extends Gt{constructor(e){super({visibleToBotOwners:!0,...e})}with(e){return new Ye({...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})}};var sT=t=>["traceparent","tracestate","sentry-trace"].reduce((e,r)=>(t[r]&&(e[r]=t[r]),e),{}),Xf=t=>async e=>{let r=Jf(e.headers),[,n]=(e.headers.traceparent||"").split("-"),a=new Pt.Client({botId:r.botId,integrationId:r.integrationId,retry:la,headers:sT(e.headers)}),s=new qt(a),i=new Ye({traceId:n}),o={ctx:r,req:e,client:s,logger:i,instance:t};try{let c;switch(r.operation){case"webhook_received":c=await oT(o);break;case"register":c=await lT(o);break;case"unregister":c=await uT(o);break;case"message_created":c=await fT(o);break;case"action_triggered":c=await pT(o);break;case"ping":c=await iT(o);break;case"create_user":c=await cT(o);break;case"create_conversation":c=await dT(o);break;default:throw new Error(`Unknown operation ${r.operation}`)}return c?{...c,status:c.status??200}:{status:200}}catch(c){if((0,Pt.isApiError)(c)){let m=c.type==="Runtime"?c:new Pt.RuntimeError(c.message,c);return i.forBot().error(m.message),{status:m.code,body:JSON.stringify(m.toJSON())}}console.error(c);let p=new Pt.RuntimeError("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(p.message),{status:p.code,body:JSON.stringify(p.toJSON())}}},iT=async t=>{},oT=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{let{req:s}=Se(r);return a.webhook({client:t,ctx:e,req:s,logger:n})},lT=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.register)return;let{webhookUrl:s}=Se(r);await a.register({client:t,ctx:e,webhookUrl:s,logger:n})},uT=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.unregister)return;let{webhookUrl:s}=Se(r);await a.unregister({ctx:e,webhookUrl:s,client:t,logger:n})},cT=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createUser)return;let{tags:s}=Se(r);return await a.createUser({ctx:e,client:t,tags:s,logger:n})},dT=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createConversation)return;let{channel:s,tags:i}=Se(r);return await a.createConversation({ctx:e,client:t,channel:s,tags:i,logger:n})},fT=async({ctx:t,req:e,client:r,logger:n,instance:a})=>{let{conversation:s,user:i,type:o,payload:c,message:p}=Se(e),m=a.channels[s.channel];if(!m)throw new Error(`Channel ${s.channel} not found`);let T=m.messages[o];if(!T)throw new Error(`Message of type ${o} not found in channel ${s.channel}`);await T({ctx:t,conversation:s,message:p,user:i,type:o,client:r,payload:c,ack:async({tags:w})=>{await r.updateMessage({id:p.id,tags:w})},logger:n})},pT=async({req:t,ctx:e,client:r,logger:n,instance:a})=>{let{input:s,type:i}=Se(t);if(!i)throw new Error("Missing action type");let o=a.actions[i];if(!o)throw new Error(`Action ${i} not found`);let c=new ua,m={output:await o({ctx:e,input:s,client:r,type:i,logger:n,metadata:c}),meta:c.toJSON()};return{body:JSON.stringify(m)}};var da=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=Xf(this);start=e=>kr(this.handler,e)};var fa=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,this.attributes=e.attributes}integrations;plugins;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows;attributes;addIntegration(e,r){let n=this;return n.integrations||(n.integrations={}),n.integrations[e.name]={enabled:r.enabled,...e,configurationType:r.configurationType,configuration:r.configuration,disabledChannels:r.disabledChannels},this}addPlugin(e,r){let n=this;n.plugins||(n.plugins={});let a=r.alias??e.name;return n.plugins[a]={...e,alias:r.alias,configuration:r.configuration,interfaces:r.interfaces},n.user=this._mergeUser(n.user,e.definition.user),n.conversation=this._mergeConversation(n.conversation,e.definition.conversation),n.message=this._mergeMessage(n.message,e.definition.message),n.recurringEvents=this._mergeRecurringEvents(n.recurringEvents,e.definition.recurringEvents),n.tables=this._mergeTables(n.tables,e.definition.tables),n.workflows=this._mergeWorkflows(n.workflows,e.definition.workflows),n.states=this._mergeStates(n.states,this._prefixKeys(e.definition.states,r.alias)),n.events=this._mergeEvents(n.events,this._prefixKeys(e.definition.events,r.alias)),n.actions=this._mergeActions(n.actions,this._prefixKeys(e.definition.actions,r.alias)),this}_mergeUser=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeConversation=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeMessage=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeStates=(e,r)=>({...e,...r});_mergeEvents=(e,r)=>({...e,...r});_mergeRecurringEvents=(e,r)=>({...e,...r});_mergeActions=(e,r)=>({...e,...r});_mergeTables=(e,r)=>({...e,...r});_mergeWorkflows=(e,r)=>({...e,...r});_prefixKeys=(e,r)=>!e||!r?e:te.mapKeys(e,n=>`${r}${ca}${n}`)};var kt=require("@botpress/client");var Xe=class extends Gt{constructor(e){super({...e})}with(e){return new Xe({...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})}};var Re=class{constructor(e,r={before:{},after:{}}){this._client=e;this._hooks=r}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,r)=>{let n=this._hooks.before[e];n&&(r=await n(r));let a=await this._client[e](r),s=this._hooks.after[e];return s&&(a=await s(a,r)),a}};var Jt=t=>new Proxy({},{get:(e,r)=>({listInstances:{all:n=>Qe({workflowName:r,client:t,input:n}),running:n=>Qe({workflowName:r,client:t,input:n,statuses:["in_progress"]}),scheduled:n=>Qe({workflowName:r,client:t,input:n,statuses:["pending","listening"]}),allFinished:n=>Qe({workflowName:r,client:t,input:n,statuses:["completed","cancelled","failed","timedout"]}),cancelled:n=>Qe({workflowName:r,client:t,input:n,statuses:["cancelled"]}),failed:n=>Qe({workflowName:r,client:t,input:n,statuses:["failed"]}),succeeded:n=>Qe({workflowName:r,client:t,input:n,statuses:["completed"]}),timedOut:n=>Qe({workflowName:r,client:t,input:n,statuses:["timedout"]})},startNewInstance:async n=>{let{workflow:a}=await t.createWorkflow({name:r,status:"pending",...n});return{workflow:et({client:t,workflow:a})}}})}),Qe=async t=>{let e=await t.client.listWorkflows({name:t.workflowName,statuses:t.statuses,...t.input});return{...e,workflows:e.workflows.map(r=>et({client:t.client,workflow:r}))}},et=t=>({...t.workflow,async update(e){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,...e});return{workflow:et({client:t.client,workflow:r})}},async setFailed({failureReason:e}){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,status:"failed",failureReason:e});return{workflow:et({client:t.client,workflow:r})}},async setCompleted({output:e}={}){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,status:"completed",output:e});return{workflow:et({client:t.client,workflow:r})}},async cancel(){let{workflow:e}=await t.client.updateWorkflow({id:t.workflow.id,status:"cancelled"});return{workflow:et({client:t.client,workflow:e})}}});var gT=E.enum(["event_received","register","unregister","ping","action_triggered"]),Qf=t=>{let e=t[br],r=t[wr],n=t[ni],a=gT.parse(t[Pr]);if(!e)throw new Error("Missing bot headers");if(!n)throw new Error("Missing type headers");if(!r)throw new Error("Missing configuration headers");if(!a)throw new Error("Missing operation headers");return{botId:e,operation:a,type:n,configuration:r?JSON.parse(Buffer.from(r,"base64").toString("utf-8")):{}}};var he={status:200};var si=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 hT=["child_workflow_deleted","child_workflow_finished","workflow_timedout","workflow_started","workflow_continued"],ep=async(t,e)=>{if(t.ctx.type!=="workflow_update"||!hT.includes(e.payload.type))throw new Error("Unexpected event type");let r={...t,logger:mT(t,e)};if(!e.payload.workflow.name)return r.logger.warn("Received workflow update event without a workflow name. Assuming this workflow was not defined by the bot.",e.payload.workflow),he;switch(e.payload.type){case"child_workflow_deleted":case"child_workflow_finished":r.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 yT(r,e);default:e.payload.type}return he},mT=(t,e)=>t.logger.with({eventId:e.id,workflowId:e.payload.workflow.id,conversationId:e.payload.conversation?.id,userId:e.payload.user?.id}),yT=async(t,e)=>{let r=si(e.payload.type),n=t.self.workflowHandlers[r]?.[e.payload.workflow.name];return!n||n.length===0?(t.logger.warn(`No ${r} handler found for workflow "${e.payload.workflow.name}"`),he):(await vT(t,e),await _T(t,e),he)},vT=async(t,e)=>{e.payload.workflow.status==="pending"&&await t.client.updateWorkflow({id:e.payload.workflow.id,status:"in_progress",eventId:e.id})},_T=async(t,e)=>{let r=si(e.payload.type),n=t.self.workflowHandlers[r]?.[e.payload.workflow.name];for(let a of n)await a({...t,conversation:e.payload.conversation,user:e.payload.user,workflow:et({...t,workflow:e.payload.workflow}),workflows:Jt(t.client)})};var tp=t=>async e=>{let r=Qf(e.headers),n=new Xe,a=new kt.Client({botId:r.botId,retry:la}),s=new Re(a,{before:{createMessage:async o=>{let c=t.hookHandlers.before_outgoing_message[o.type]??[];for(let p of c){let m=new Re(a);o=(await p({client:m,ctx:r,logger:n.with({conversationId:o.conversationId,userId:o.userId}),data:o,...tt({client:m})}))?.data??o}return o},callAction:async o=>{let c=t.hookHandlers.before_outgoing_call_action[o.type]??[];for(let p of c){let m=new Re(a);o=(await p({client:m,ctx:r,logger:n,data:o,...tt({client:m})}))?.data??o}return o}},after:{createMessage:async o=>{let c=t.hookHandlers.after_outgoing_message[o.message.type]??[];for(let p of c){let m=new Re(a);o=(await p({client:m,ctx:r,logger:n.with({messageId:o.message.id,conversationId:o.message.conversationId,userId:o.message.userId}),data:o,...tt({client:m})}))?.data??o}return o},callAction:async(o,c)=>{let{type:p}=c,m=t.hookHandlers.after_outgoing_call_action[p]??[];for(let T of m){let O=new Re(a);o=(await T({client:O,ctx:r,logger:n,data:{type:p,...o},...tt({client:O})}))?.data??o}return o}}}),i={req:e,ctx:r,logger:n,client:s,self:t};try{switch(r.operation){case"action_triggered":return await kT(i);case"event_received":return await PT(i);case"register":return await bT(i);case"unregister":return await wT(i);case"ping":return await TT(i);default:throw new Error(`Unknown operation ${r.operation}`)}}catch(o){if((0,kt.isApiError)(o)){let p=o.type==="Runtime"?o:new kt.RuntimeError(o.message,o);return n.error(p.message),{status:p.code,body:JSON.stringify(p.toJSON())}}let c=new kt.RuntimeError("An unexpected error occurred in the bot.");return n.error(c.message),{status:c.code,body:JSON.stringify(c.toJSON())}}},TT=async t=>he,bT=async t=>he,wT=async t=>he,PT=async t=>{let{ctx:e,logger:r,req:n,client:a,self:s}=t,i={client:a,ctx:e,logger:r,...tt({client:a})},o=Se(n);if(i.logger=i.logger.with({eventId:o.event.id,messageId:o.event.messageId,conversationId:o.event.conversationId,userId:o.event.userId}),e.type==="workflow_update")return await ep(t,o.event);if(e.type==="message_created"){let w=o.event,S=w.payload.message;i.logger=i.logger.with({messageId:S.id,conversationId:S.conversationId,userId:S.userId});let W=s.hookHandlers.before_incoming_message[S.type]??[];for(let j of W){let F=await j({...i,data:S});if(S=F?.data??S,F?.stop)return he}let q={...i,user:w.payload.user,conversation:w.payload.conversation,message:S,event:w},re=s.messageHandlers[S.type]??[];for(let j of re)await j(q);let J=s.hookHandlers.after_incoming_message[S.type]??[];for(let j of J){let F=await j({...i,data:S});if(S=F?.data??S,F?.stop)return he}return he}if(e.type==="state_expired"){let S=o.event.payload.state,W={...i,state:S},q=s.stateExpiredHandlers["*"]??[];for(let re of q)await re(W);return he}let c=o.event,p=s.hookHandlers.before_incoming_event[c.type]??[];for(let w of p){let S=await w({...i,data:c});if(c=S?.data??c,S?.stop)return he}let m={...i,event:c},T=s.eventHandlers[c.type]??[];for(let w of T)await w(m);let O=s.hookHandlers.after_incoming_event[c.type]??[];for(let w of O){let S=await w({...i,data:c});if(c=S?.data??c,S?.stop)return he}return he},kT=async({ctx:t,logger:e,req:r,client:n,self:a})=>{let{input:s,type:i}=Se(r);if(!i)throw new Error("Missing action type");let o=a.hookHandlers.before_incoming_call_action[i]??[];for(let O of o){let w=await O({ctx:t,logger:e,client:n,data:{type:i,input:s},...tt({client:n})});s=w?.data?.input??s,i=w?.data?.type??i}let c=a.actionHandlers[i];if(!c)throw new Error(`Action ${i} not found`);let p=await c({ctx:t,logger:e,input:s,client:n,type:i,...tt({client:n})}),m=a.hookHandlers.after_incoming_call_action[i]??[];for(let O of m){let w=await O({ctx:t,logger:e,client:n,data:{type:i,output:p},...tt({client:n})});i=w?.data?.type??i,p=w?.data?.output??p}return{status:200,body:JSON.stringify({output:p})}},tt=t=>({workflows:Jt(t.client)});var pa=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,r)=>{let n=this._actionHandlers[r];if(n)return n;for(let a of Object.values(this._plugins))if(n=a.actionHandlers[r],n)return n}})}get messageHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(o=>o.messageHandlers[r]??[]),a=this._messageHandlers[r]??[],s=this._messageHandlers["*"]??[],i=[...a,...s].sort((o,c)=>o.order-c.order).map(({handler:o})=>o);return Z.unique([...n,...i])}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(o=>o.eventHandlers[r]??[]),a=this._eventHandlers[r]??[],s=this._eventHandlers["*"]??[],i=[...a,...s].sort((o,c)=>o.order-c.order).map(({handler:o})=>o);return Z.unique([...n,...i])}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(o=>o.stateExpiredHandlers[r]??[]),a=this._stateExpiredHandlers[r]??[],s=this._stateExpiredHandlers["*"]??[],i=[...a,...s].sort((o,c)=>o.order-c.order).map(({handler:o})=>o);return Z.unique([...n,...i])}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{if(this._hookHandlers[r])return new Proxy({},{get:(a,s)=>{let i=Object.values(this._plugins).flatMap(T=>T.hookHandlers[r]?.[s]??[]),o=this._hookHandlers[r]??{},c=o[s]??[],p=o["*"]??[],m=[...c,...p].sort((T,O)=>T.order-O.order).map(({handler:T})=>T);return Z.unique([...i,...m])}})}})}get workflowHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._workflowHandlers[r];if(n)return new Proxy({},{get:(a,s)=>{let i=n[s]?.sort((c,p)=>c.order-p.order).map(({handler:c})=>c)??[],o=Object.values(this._plugins).flatMap(c=>c.workflowHandlers[r]?.[s]??[]);return Z.unique([...i,...o])}})}})}on={message:(e,r)=>{this._messageHandlers[e]=Z.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=Z.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=Z.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=Z.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=Z.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=Z.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=Z.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=Z.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=Z.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=Z.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=Z.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=Z.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=Z.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=Z.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=Z.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=Z.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};handler=tp(this);start=e=>kr(this.handler,e)};var ga=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??{},this.attributes=e.attributes;let r=this._getEntityReference(this.entities),n=e.events===void 0?{}:te.mapValues(e.events,i=>({...i,schema:i.schema(r)})),a=e.actions===void 0?{}:te.mapValues(e.actions,i=>({...i,input:{...i.input,schema:i.input.schema(r)},output:{...i.output,schema:i.output.schema(r)}})),s=e.channels===void 0?{}:te.mapValues(e.channels,i=>({...i,messages:te.mapValues(i.messages,o=>({...o,schema:o.schema(r)}))}));this.events=n,this.actions=a,this.channels=s}name;version;title;description;icon;readme;attributes;entities;events;actions;channels;_getEntityReference=e=>{let r={};for(let[n,a]of Object.entries(e)){let s=a.schema._def["x-zui"]?.title,i=a.schema._def.description,o=Af.ref(n);s&&o.title(s),i&&o.describe(i),r[n]=o}return r}};var ha=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,this.attributes=e.attributes}name;version;title;description;icon;readme;attributes;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows};var ii=":";var rp=t=>{let[e,r]=t.split(ii);return!e||!r?null:{namespace:e,eventName:r}},np=t=>`${t.namespace}${ii}${t.actionName}`,ap=t=>`${t.namespace}${ii}${t.eventName}`,sp=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,a=r.actions[t.actionName]?.name??t.actionName;return{namespace:n,actionName:a}},ip=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,a=r.events[t.eventName]?.name??t.eventName;return{namespace:n,eventName:a}};var op=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(a,s)=>i=>ET({client:t,interfaces:e.interfaces,integrationOrInterfaceName:n,methodName:s,input:i})})}),ET=async({client:t,interfaces:e,integrationOrInterfaceName:r,methodName:n,input:a})=>{let s=sp({namespace:r,actionName:n},e),i=np(s);return(await t.callAction({type:i,input:a})).output};var oi=class{constructor(e,r,n){this._client=e;this._stateType=r;this._stateName=n}async get(e){return await this._client.getState({type:this._stateType,name:this._stateName,id:e}).then(r=>r.state.payload)}async set(e,r){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:r})}async getOrSet(e,r){return await this._client.getOrSetState({type:this._stateType,name:this._stateName,id:e,payload:r}).then(n=>n.state.payload)}async delete(e){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:null})}async patch(e,r){await this._client.patchState({type:this._stateType,name:this._stateName,id:e,payload:r})}},lp=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(a,s)=>{let i=e.alias!==void 0?`${e.alias}${ca}${s}`:s;return new oi(t,n,i)}})});var ma=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:r,interfaces:n,alias:a}=this._runtime,s=op(e,this._runtime),i=lp(e,this._runtime),o=Jt(e);return{configuration:r,interfaces:n,actions:s,states:i,alias:a,workflows:o}}get actionHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._actionHandlers[r];if(n)return Fe.setName(a=>n({...a,...this._getTools(a.client)}),n.name)}})}get messageHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._messageHandlers[r]??[],a=this._messageHandlers["*"]??[];return Z.unique([...n,...a]).sort((i,o)=>i.order-o.order).map(({handler:i})=>Fe.setName(o=>i({...o,...this._getTools(o.client)}),i.name))}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._eventHandlers[r]??[],a=Object.entries(this._eventHandlers).filter(([o])=>this._eventResolvesTo(o,r)).flatMap(([,o])=>o??[]),s=this._eventHandlers["*"]??[];return Z.unique([...n,...a,...s]).sort((o,c)=>o.order-c.order).map(({handler:o})=>Fe.setName(c=>o({...c,...this._getTools(c.client)}),o.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._stateExpiredHandlers[r]??[],a=this._stateExpiredHandlers["*"]??[];return Z.unique([...n,...a]).sort((i,o)=>i.order-o.order).map(({handler:i})=>Fe.setName(o=>i({...o,...this._getTools(o.client)}),i.name))}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._hookHandlers[r];if(n)return new Proxy({},{get:(a,s)=>{s=this._stripAliasPrefix(s);let i=n[s]??[],o=Object.entries(n).filter(([m])=>this._eventResolvesTo(m,s)).flatMap(([,m])=>m??[]),c=n["*"]??[];return Z.unique([...i,...o,...c]).sort((m,T)=>m.order-T.order).map(({handler:m})=>Fe.setName(T=>m({...T,...this._getTools(T.client)}),m.name))}})}})}get workflowHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._workflowHandlers[r];if(n)return new Proxy({},{get:(a,s)=>(n[s]?.sort((o,c)=>o.order-c.order)??[]).map(({handler:o})=>Fe.setName(c=>o({...c,...this._getTools(c.client)}),o.name))})}})}on={message:(e,r)=>{this._messageHandlers[e]=Z.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=Z.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=Z.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=Z.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=Z.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=Z.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=Z.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=Z.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=Z.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=Z.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=Z.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=Z.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=Z.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=Z.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=Z.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=Z.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};_eventResolvesTo=(e,r)=>{let n=rp(e);if(!n)return!1;let a=ip(n,this._runtime.interfaces);return ap(a)===r};_stripAliasPrefix=e=>{let{alias:r}=this._runtime;if(!r)return e;let n=`${r}:`;return e.startsWith(n)?e.slice(n.length):e}};0&&(module.exports={BRAND,Bot,BotDefinition,BotLogger,BotSpecificClient,DIRTY,EMPTY_PATH,ErrorBoundary,INVALID,Integration,IntegrationDefinition,IntegrationLogger,IntegrationSpecificClient,InterfaceDefinition,NEVER,OK,ParseInputLazyPath,ParseStatus,Plugin,PluginDefinition,RuntimeError,Schema,WELL_KNOWN_ATTRIBUTES,ZodAny,ZodArray,ZodBigInt,ZodBoolean,ZodBranded,ZodCatch,ZodDate,ZodDefault,ZodDiscriminatedUnion,ZodEffects,ZodEnum,ZodError,ZodFirstPartyTypeKind,ZodFunction,ZodIntersection,ZodIssueCode,ZodLazy,ZodLiteral,ZodMap,ZodNaN,ZodNativeEnum,ZodNever,ZodNull,ZodNullable,ZodNumber,ZodObject,ZodOptional,ZodParsedType,ZodPipeline,ZodPromise,ZodReadonly,ZodRecord,ZodRef,ZodSchema,ZodSet,ZodString,ZodSymbol,ZodTransformer,ZodTuple,ZodType,ZodUndefined,ZodUnion,ZodUnknown,ZodVoid,ZuiForm,addIssueToContext,agent,aimodel,any,array,bigint,boolean,botIdHeader,botUserIdHeader,coerce,configurationHeader,configurationTypeHeader,conversation,createZodEnum,cuid2Regex,cuidRegex,custom,datasource,date,datetimeRegex,defaultComponentDefinitions,discriminatedUnion,effect,emailRegex,enum:null,errorUtil,event,fromJsonSchema,fromObject,function:null,getErrorMap,getParsedType,instanceof:null,integrationIdHeader,intent,intersection,ipv4Regex,ipv6Regex,isAborted,isApiError,isAsync,isDirty,isEmojiRegex,isValid,jsonSchemaToZui,knowledgebase,late,lazy,literal,makeIssue,map,mergeObjectSchemas,message,messages,nan,nativeEnum,never,null:null,nullable,number,object,objectToZui,objectUtil,oboolean,onumber,operationHeader,optional,ostring,parseBody,pipeline,preprocess,processCreateParams,promise,quotelessJson,readonly,record,ref,serve,set,setErrorMap,strictObject,string,symbol,table,tablerow,transformer,transforms,tuple,typeHeader,ulidRegex,undefined,union,unknown,user,util,uuidRegex,variable,void:null,webhookIdHeader,withErrorBoundary,z,zuiToJsonSchema});
|
|
90
90
|
/*! Bundled license information:
|
|
91
91
|
|
|
92
92
|
react/cjs/react.production.min.js:
|