@botpress/sdk 2.4.3 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +3 -3
- package/dist/base-logger.d.ts +0 -0
- package/dist/bot/bot-logger.d.ts +0 -0
- package/dist/bot/client/index.d.ts +0 -0
- package/dist/bot/client/types.d.ts +0 -0
- package/dist/bot/client/types.test.d.ts +0 -0
- package/dist/bot/definition.d.ts +0 -0
- package/dist/bot/implementation.d.ts +0 -0
- package/dist/bot/index.d.ts +0 -0
- package/dist/bot/merge-bots.d.ts +0 -0
- package/dist/bot/server/context.d.ts +0 -0
- package/dist/bot/server/index.d.ts +0 -0
- package/dist/bot/server/types.d.ts +0 -0
- package/dist/bot/server/types.test.d.ts +0 -0
- package/dist/bot/types/common.d.ts +0 -0
- package/dist/bot/types/common.test.d.ts +0 -0
- package/dist/bot/types/generic.d.ts +0 -0
- package/dist/bot/types/generic.test.d.ts +0 -0
- package/dist/bot/types/index.d.ts +0 -0
- package/dist/const.d.ts +0 -0
- package/dist/fixtures.d.ts +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +2 -2
- package/dist/integration/client/index.d.ts +0 -0
- package/dist/integration/client/types.d.ts +0 -0
- package/dist/integration/client/types.test.d.ts +0 -0
- package/dist/integration/definition/branded-schema.d.ts +0 -0
- package/dist/integration/definition/generic.d.ts +0 -0
- package/dist/integration/definition/index.d.ts +5 -0
- package/dist/integration/definition/types.d.ts +0 -0
- package/dist/integration/implementation.d.ts +0 -0
- package/dist/integration/index.d.ts +0 -0
- package/dist/integration/server/action-metadata.d.ts +0 -0
- package/dist/integration/server/context.d.ts +0 -0
- package/dist/integration/server/index.d.ts +0 -0
- package/dist/integration/server/integration-logger.d.ts +0 -0
- package/dist/integration/server/types.d.ts +0 -0
- package/dist/integration/types/common.d.ts +0 -0
- package/dist/integration/types/generic.d.ts +0 -0
- package/dist/integration/types/generic.test.d.ts +0 -0
- package/dist/integration/types/index.d.ts +0 -0
- package/dist/interface/definition.d.ts +0 -0
- package/dist/interface/index.d.ts +0 -0
- package/dist/interface/types/generic.d.ts +0 -0
- package/dist/interface/types/generic.test.d.ts +0 -0
- package/dist/log.d.ts +0 -0
- package/dist/message.d.ts +0 -0
- package/dist/package.d.ts +0 -0
- package/dist/plugin/definition.d.ts +0 -0
- package/dist/plugin/implementation.d.ts +0 -0
- package/dist/plugin/index.d.ts +0 -0
- package/dist/plugin/server/types.d.ts +0 -0
- package/dist/plugin/server/types.test.d.ts +0 -0
- package/dist/plugin/types/generic.d.ts +0 -0
- package/dist/plugin/types/generic.test.d.ts +0 -0
- package/dist/retry.d.ts +0 -0
- package/dist/schema.d.ts +0 -0
- package/dist/serve.d.ts +0 -0
- package/dist/utils/array-utils.d.ts +0 -0
- package/dist/utils/index.d.ts +0 -0
- package/dist/utils/record-utils.d.ts +0 -0
- package/dist/utils/type-utils.d.ts +0 -0
- package/dist/utils/type-utils.test.d.ts +0 -0
- package/dist/zui.d.ts +0 -0
- package/package.json +10 -4
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
|
-
> @botpress/sdk@2.
|
|
2
|
+
> @botpress/sdk@2.5.0 build /home/runner/work/botpress/botpress/packages/sdk
|
|
3
3
|
> pnpm build:type && pnpm build:node
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @botpress/sdk@2.
|
|
6
|
+
> @botpress/sdk@2.5.0 build:type /home/runner/work/botpress/botpress/packages/sdk
|
|
7
7
|
> tsc --emitDeclarationOnly --declaration
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
> @botpress/sdk@2.
|
|
10
|
+
> @botpress/sdk@2.5.0 build:node /home/runner/work/botpress/botpress/packages/sdk
|
|
11
11
|
> ts-node -T build.ts
|
|
12
12
|
|
package/dist/base-logger.d.ts
CHANGED
|
File without changes
|
package/dist/bot/bot-logger.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/bot/definition.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/bot/index.d.ts
CHANGED
|
File without changes
|
package/dist/bot/merge-bots.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/const.d.ts
CHANGED
|
File without changes
|
package/dist/fixtures.d.ts
CHANGED
|
File without changes
|
package/dist/index.d.ts
CHANGED
|
File without changes
|
package/dist/index.js
CHANGED
|
@@ -86,7 +86,7 @@ ${K}`.trim();case v.ZodFirstPartyTypeKind.ZodEnum:return c.values.map($e).join("
|
|
|
86
86
|
`,a+=`}
|
|
87
87
|
`,a+=`}
|
|
88
88
|
`),a+=`}
|
|
89
|
-
`,a+="})"}let i=r?a?r+a:n?n==="z.never()"?r+".strict()":r+`.catchall(${n})`:r:a||(n?`z.record(${n})`:"z.record(z.any())");return se.an.anyOf(t)&&(i+=`.and(${yf(g(l({},t),{anyOf:t.anyOf.map(u=>typeof u=="object"&&!u.type&&(u.properties||u.additionalProperties||u.patternProperties)?g(l({},u),{type:"object"}):u)}),e)})`),se.a.oneOf(t)&&(i+=`.and(${Li(g(l({},t),{oneOf:t.oneOf.map(u=>typeof u=="object"&&!u.type&&(u.properties||u.additionalProperties||u.patternProperties)?g(l({},u),{type:"object"}):u)}),e)})`),se.an.allOf(t)&&(i+=`.and(${lr(g(l({},t),{allOf:t.allOf.map(u=>typeof u=="object"&&!u.type&&(u.properties||u.additionalProperties||u.patternProperties)?g(l({},u),{type:"object"}):u)}),e)})`),i}s(vf,"parseObject");var n_=s(t=>{var e;let r="z.string()";if((e=t[F])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";r="z.coerce.string()"}return r+=pe(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+=pe(t,"pattern",({json:n})=>[`.regex(new RegExp(${n})`,", ",")"]),r+=pe(t,"minLength",({json:n})=>[`.min(${n}`,", ",")"]),r+=pe(t,"maxLength",({json:n})=>[`.max(${n}`,", ",")"]),r},"parseString"),a_=s((t,e)=>`${de(Jv(t,"nullable"),e,!0)}.nullable()`,"parseNullable"),i_=s(t=>`z.ref('${t.$ref}')`,"parseRef"),s_=s((t,e)=>{var r,n;if(t.oneOf.length<=1||!((r=t.discriminator)!=null&&r.propertyName))return Li(t,e);let a=t.oneOf.map((i,u)=>de(i,g(l({},e),{path:[...e.path,"oneOf",u]})));return`z.discriminatedUnion("${(n=t.discriminator)==null?void 0:n.propertyName}", [${a.join(", ")}])`},"parseDiscriminator"),de=s((t,e={seen:new Map,path:[]},r)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let i=e.parserOverride(t,e);if(typeof i=="string")return i}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=c_(t,e);return r||(a=o_(t,a),e.withoutDefaults||(a=u_(t,a))),n.r=a,a},"parseSchema"),o_=s((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),u_=s((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),c_=s((t,e)=>se.a.nullable(t)?a_(t,e):se.an.object(t)?vf(t,e):se.an.array(t)?Xv(t,e):se.an.anyOf(t)?yf(t,e):se.an.allOf(t)?lr(t,e):se.a.discriminator(t)?s_(t,e):se.a.oneOf(t)?Li(t,e):se.a.not(t)?qv(t,e):se.an.enum(t)?e_(t):se.a.const(t)?Qv(t):se.a.multipleType(t)?Vv(t,e):se.a.primitive(t,"string")?n_(t):se.a.primitive(t,"number")||se.a.primitive(t,"integer")?r_(t):se.a.primitive(t,"boolean")?zv(t):se.a.primitive(t,"null")?Gv(t):se.a.conditional(t)?t_(t,e):se.a.ref(t)?i_(t):Kv(t),"selectParser"),se={an:{object:s(t=>t.type==="object","object"),array:s(t=>t.type==="array","array"),anyOf:s(t=>t.anyOf!==void 0,"anyOf"),allOf:s(t=>t.allOf!==void 0,"allOf"),enum:s(t=>t.enum!==void 0,"enum")},a:{nullable:s(t=>t.nullable===!0,"nullable"),multipleType:s(t=>Array.isArray(t.type),"multipleType"),not:s(t=>t.not!==void 0,"not"),const:s(t=>t.const!==void 0,"const"),primitive:s((t,e)=>t.type===e,"primitive"),conditional:s(t=>Boolean("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),"conditional"),discriminator:s(t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},"discriminator"),oneOf:s(t=>t.oneOf!==void 0,"oneOf"),ref:s(t=>t.$ref!==void 0,"ref")}},l_=s(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"),d_=s(t=>de(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),f_=s(t=>{let e=d_(t);e=e.replaceAll("errors: z.ZodError[]","errors");let r=l_(e);if(!r.sucess)throw new Wo(r.error);return r.value},"jsonSchemaToZod"),rr=s((t,e)=>{var r,n;if(e[F]&&t._def&&(t._def[F]=e[F]),((r=t._def)==null?void 0:r.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([a,i])=>{let u=typeof t._def.shape=="function"?t._def.shape():t._def.shape;u[a]&&rr(u[a],i)}),((n=t._def)==null?void 0:n.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&rr(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let a=e.items;if(typeof a=="object"&&!Array.isArray(a)){let i=t._def.type;i&&rr(i,a)}else Array.isArray(a)&&a.forEach((i,u)=>{let c=t._def;c.typeName===x.ZodFirstPartyTypeKind.ZodTuple&&rr(c.items[u],i)})}},"applyZuiPropsRecursively"),gr=s(t=>{let e=f_(t);return rr(e,t),e},"jsonSchemaToZui"),_f=class extends Nt.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?Nt.default.createElement(this.props.fallback,{error:this.state.error,schema:this.props.fieldSchema}):this.props.children}};s(_f,"ErrorBoundary");var It=_f;function bf(t,e){return r=>Nt.default.createElement(It,{fallback:e,fieldSchema:r.fieldSchema,path:r.path},Nt.default.createElement(t,l({},r)))}s(bf,"withErrorBoundary");var Vr=s(t=>{var e=t,{components:r,fieldSchema:n,path:a,required:i,fallback:u}=e,c=Ao(e,["components","fieldSchema","path","required","fallback"]),f,p;let{formData:y,disabled:T,hidden:Z,handlePropertyChange:w,addArrayItem:j,removeArrayItem:W,formErrors:Y,formValid:K}=Bo(n,a),B=(0,Ee.useMemo)(()=>at(y,a),[y,a]),$=(0,Ee.useMemo)(()=>Sh(r,n),[n,r]),{discriminator:V,discriminatedSchema:re,discriminatorValue:Ce}=Th(n,a);if(!$||Z===!0)return null;let{Component:De,type:xe}=$,me={type:xe,componentID:$.id,scope:a.join("."),context:{path:a,readonly:!1,formData:y,formErrors:Y,formValid:K,updateForm:w,updateFormData:s(ye=>w([],ye),"updateFormData")},onChange:s(ye=>w(a,ye),"onChange"),disabled:T,errors:Y?.filter(ye=>ye.path===a)||[],label:((f=n[F])==null?void 0:f.title)||Ha(((p=a[a.length-1])==null?void 0:p.toString())||""),params:$.params,schema:n,zuiProps:n[F]};if(n.type==="array"&&xe==="array"){let ye=De,oe=me.schema,le=Array.isArray(B)||typeof B=="object"?B:[],N=l(g(l({},me),{type:xe,schema:oe,data:le,addItem:s(Ze=>j(a,Ze),"addItem"),removeItem:s(Ze=>W(a,Ze),"removeItem")}),c);return Array.isArray(n.items)?null:Ee.default.createElement(ye,g(l({key:me.scope},N),{isArrayChild:N.isArrayChild}),Array.isArray(N.data)?N.data.map((Ze,Oe)=>{let Ke=[...a,Oe.toString()];return Ee.default.createElement(It,{key:Ke.join("."),fallback:u,fieldSchema:n.items,path:Ke},Ee.default.createElement(Vr,{key:Ke.join("."),components:r,fieldSchema:n.items,path:Ke,required:i,isArrayChild:!0,index:Oe,removeSelf:()=>W(a,Oe),fallback:u}))}):[])}if(n.type==="object"&&xe==="object"&&n.properties){let ye=De,oe=l(g(l({},me),{type:xe,schema:me.schema,data:B||{}}),c);return Ee.default.createElement(ye,g(l({key:me.scope},oe),{isArrayChild:oe.isArrayChild}),Object.entries(n.properties).map(([le,N])=>{var Ze;let Oe=[...a,le];return Ee.default.createElement(It,{key:Oe.join("."),fallback:u,fieldSchema:N,path:Oe},Ee.default.createElement(Vr,{key:Oe.join("."),components:r,fieldSchema:N,path:Oe,required:((Ze=n.required)==null?void 0:Ze.includes(le))||!1,isArrayChild:!1,fallback:u}))}))}if(xe==="discriminatedUnion"){let ye=De,oe=l(g(l({},me),{type:xe,schema:me.schema,data:B||{},discriminatorKey:V?.key||null,discriminatorLabel:Ha(V?.key||"Unknown"),discriminatorOptions:V?.values||null,discriminatorValue:Ce,setDiscriminator:s(le=>{if(!V?.key){console.warn("No discriminator key found, cannot set discriminator");return}w(a,{[V.key]:le})},"setDiscriminator")}),c);return Ee.default.createElement(ye,g(l({key:me.scope},oe),{isArrayChild:oe.isArrayChild}),re&&Ee.default.createElement(It,{key:a.join("."),fallback:u,fieldSchema:re,path:a},Ee.default.createElement(Vr,{components:r,fieldSchema:re,path:a,required:i,isArrayChild:!1,fallback:u})))}let Kt=De,Vt=l(g(l({},me),{type:xe,schema:me.schema,config:{},required:i,data:B,description:n.description}),c);return Ee.default.createElement(Kt,l({},Vt))},"FormElementRenderer"),p_=s(({schema:t,components:e,onChange:r,value:n,disableValidation:a,fallback:i,dataTransform:u,onValidation:c})=>{let[f,p]=(0,Ue.useState)(n);return(0,Ue.useEffect)(()=>{r(f)},[f]),(0,Ue.useEffect)(()=>{let y=Ct(t);p(T=>Gr(y,T))},[JSON.stringify(t),p]),Ue.default.createElement(bh,{formData:f,setFormData:p,formSchema:t,disableValidation:a||!1,dataTransform:u,onValidation:c},Ue.default.createElement(It,{fallback:i,fieldSchema:t,path:[]},Ue.default.createElement(Vr,{components:e,fieldSchema:t,path:[],fallback:i,required:!0,isArrayChild:!1})))},"ZuiForm"),h_={string:{},number:{slider:{id:"slider",params:v.object({})}},boolean:{switch:{id:"switch",params:v.object({})}},array:{},object:{},discriminatedUnion:{}},g_={errors:Vo,jsonSchemaToZui:gr,zuiToJsonSchema:ea,objectToZui:jt,toTypescript:Wr,toTypescriptSchema:hi};var Tf=x;var Te=x.string().min(1),Pf=x.object({text:Te}),Sf=x.object({markdown:Te}),xf=x.object({imageUrl:Te}),wf=x.object({audioUrl:Te}),kf=x.object({videoUrl:Te}),Of=x.object({fileUrl:Te,title:Te.optional()}),Cf=x.object({latitude:x.number(),longitude:x.number(),address:x.string().optional(),title:x.string().optional()}),Zf=x.object({title:Te,subtitle:Te.optional(),imageUrl:Te.optional(),actions:x.array(x.object({action:x.enum(["postback","url","say"]),label:Te,value:Te}))}),Ef=x.object({text:Te,options:x.array(x.object({label:Te,value:Te}))}),m_=x.object({items:x.array(Zf)}),y_=x.union([x.object({type:x.literal("text"),payload:Pf}),x.object({type:x.literal("markdown"),payload:Sf}),x.object({type:x.literal("image"),payload:xf}),x.object({type:x.literal("audio"),payload:wf}),x.object({type:x.literal("video"),payload:kf}),x.object({type:x.literal("file"),payload:Of}),x.object({type:x.literal("location"),payload:Cf})]),v_=x.object({items:x.array(y_)}),__={schema:Sf},b_={text:{schema:Pf},image:{schema:xf},audio:{schema:wf},video:{schema:kf},file:{schema:Of},location:{schema:Cf},carousel:{schema:m_},card:{schema:Zf},dropdown:{schema:Ef},choice:{schema:Ef},bloc:{schema:v_}};var mr="x-bot-id",Ki="x-bot-user-id",Vi="x-integration-id",qi="x-webhook-id",Gi="x-bp-configuration-type",yr="x-bp-configuration",vr="x-bp-operation",Wi="x-bp-type";var If=require("node:http");var Ut=console;function ke(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function _r(t,e=8072,r=S_){let n=(0,If.createServer)(async(a,i)=>{try{let u=await T_(a);if(u.path==="/health"){i.writeHead(200).end("ok");return}let c=await t(u);i.writeHead(c?.status??200,c?.headers??{}).end(c?.body??"{}")}catch(u){Ut.error("Error while handling request",{error:u?.message??"Internal error occured"}),i.writeHead(500).end(JSON.stringify({error:u?.message??"Internal error occured"}))}});return n.listen(e,()=>r(e)),n}async function T_(t){let e=await P_(t),r={};for(let a=0;a<t.rawHeaders.length;a+=2){let i=t.rawHeaders[a].toLowerCase(),u=t.rawHeaders[a+1];r[i]=u}let n=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:n.pathname,query:E_(n.search,"?"),headers:r,method:t.method?.toUpperCase()??"GET"}}function E_(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function P_(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 S_(t){Ut.info(`Listening on port ${t}`)}var da=require("@botpress/client");var Pe={};Ar(Pe,{mapValues:()=>w_,pairs:()=>Af,values:()=>x_});var Af=t=>Object.entries(t),x_=t=>Object.values(t),w_=(t,e)=>Object.fromEntries(Af(t).map(([r,n])=>[r,e(n,r)]));var G={};Ar(G,{safePush:()=>k_});var k_=(t,...e)=>t?[...t,...e]:[...e];var ta=Symbol("schemaName"),Rf=t=>t?Pe.mapValues(t,(r,n)=>({...r,[ta]:n})):{},Df=t=>ta in t&&t[ta]!==void 0,Bf=t=>t[ta];var ra=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}name;version;title;description;icon;readme;configuration;configurations;events;actions;channels;states;user;secrets;identifier;entities;interfaces;extend(e,r){let n=r(Rf(this.entities)),a=Pe.pairs(n).find(([p,y])=>!Df(y));if(a)throw new Error(`Cannot extend interface "${e.name}" with entity "${a[0]}"; the provided schema is not part of the integration's entities.`);let i=this;i.interfaces??={};let u=Pe.mapValues(n,p=>({name:Bf(p),schema:p.schema})),c=Object.values(u).map(p=>p.name),f=c.length===0?e.name:`${e.name}<${c.join(",")}>`;return i.interfaces[f]={...e,entities:u},this}};var vt=require("@botpress/client");var Mf=require("@botpress/client"),na={retries:3,retryCondition:t=>Mf.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:t=>t*1e3};var Lt=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 aa=class{_cost=0;get cost(){return this._cost}setCost(e){this._cost=e}toJSON(){return{cost:this.cost}}};var O_=x.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),jf=t=>{let e=t[mr],r=t[Ki],n=t[Vi],a=t[qi],i=t[Gi],u=t[yr],c=O_.parse(t[vr]);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(!u)throw new Error("Missing configuration headers");if(!c)throw new Error("Missing operation headers");return{botId:e,botUserId:r,integrationId:n,webhookId:a,operation:c,configurationType:i??null,configuration:u?JSON.parse(Buffer.from(u,"base64").toString("utf-8")):{}}};var Nf=et(require("util")),zt=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=Nf.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 zt{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 $f=t=>async e=>{let r=jf(e.headers),n=new vt.Client({botId:r.botId,integrationId:r.integrationId,retry:na}),a=new Lt(n),i=new Ye,u={ctx:r,req:e,client:a,logger:i,instance:t};try{let c;switch(r.operation){case"webhook_received":c=await Z_(u);break;case"register":c=await I_(u);break;case"unregister":c=await A_(u);break;case"message_created":c=await B_(u);break;case"action_triggered":c=await M_(u);break;case"ping":c=await C_(u);break;case"create_user":c=await R_(u);break;case"create_conversation":c=await D_(u);break;default:throw new Error(`Unknown operation ${r.operation}`)}return c?{...c,status:c.status??200}:{status:200}}catch(c){if((0,vt.isApiError)(c)){let p=c.type==="Runtime"?c:new vt.RuntimeError(c.message,c);return i.forBot().error(p.message),{status:p.code,body:JSON.stringify(p.toJSON())}}console.error(c);let f=new vt.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(f.message),{status:f.code,body:JSON.stringify(f.toJSON())}}},C_=async t=>{},Z_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{let{req:i}=ke(r);return a.webhook({client:t,ctx:e,req:i,logger:n})},I_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.register)return;let{webhookUrl:i}=ke(r);await a.register({client:t,ctx:e,webhookUrl:i,logger:n})},A_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.unregister)return;let{webhookUrl:i}=ke(r);await a.unregister({ctx:e,webhookUrl:i,client:t,logger:n})},R_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createUser)return;let{tags:i}=ke(r);return await a.createUser({ctx:e,client:t,tags:i,logger:n})},D_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createConversation)return;let{channel:i,tags:u}=ke(r);return await a.createConversation({ctx:e,client:t,channel:i,tags:u,logger:n})},B_=async({ctx:t,req:e,client:r,logger:n,instance:a})=>{let{conversation:i,user:u,type:c,payload:f,message:p}=ke(e),y=a.channels[i.channel];if(!y)throw new Error(`Channel ${i.channel} not found`);let T=y.messages[c];if(!T)throw new Error(`Message of type ${c} not found in channel ${i.channel}`);await T({ctx:t,conversation:i,message:p,user:u,type:c,client:r,payload:f,ack:async({tags:w})=>{await r.updateMessage({id:p.id,tags:w})},logger:n})},M_=async({req:t,ctx:e,client:r,logger:n,instance:a})=>{let{input:i,type:u}=ke(t);if(!u)throw new Error("Missing action type");let c=a.actions[u];if(!c)throw new Error(`Action ${u} not found`);let f=new aa,y={output:await c({ctx:e,input:i,client:r,type:u,logger:n,metadata:f}),meta:f.toJSON()};return{body:JSON.stringify(y)}};var ia=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=$f(this);start=e=>_r(this.handler,e)};var sa=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}integrations;plugins;user;conversation;message;states;configuration;events;recurringEvents;actions;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},this}addPlugin(e,r){let n=this;return n.plugins||(n.plugins={}),n.plugins[e.name]={...e,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.states=this._mergeStates(n.states,e.definition.states),n.events=this._mergeEvents(n.events,e.definition.events),n.recurringEvents=this._mergeRecurringEvents(n.recurringEvents,e.definition.recurringEvents),n.actions=this._mergeActions(n.actions,e.definition.actions),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})};var Hf=(t,e)=>{for(let[r,n]of Object.entries(e.actionHandlers))t.actionHandlers[r]=n;for(let[r,n]of Object.entries(e.eventHandlers))n&&(t.eventHandlers[r]=G.safePush(t.eventHandlers[r],...n));for(let[r,n]of Object.entries(e.messageHandlers))n&&(t.messageHandlers[r]=G.safePush(t.messageHandlers[r],...n));for(let[r,n]of Object.entries(e.stateExpiredHandlers))n&&(t.stateExpiredHandlers[r]=G.safePush(t.stateExpiredHandlers[r],...n));for(let[r,n]of Object.entries(e.hookHandlers))for(let[a,i]of Object.entries(n))i&&(t.hookHandlers[r][a]=G.safePush(t.hookHandlers[r][a],...i))};var Ff=et(require("@botpress/client"));var Xe=class extends zt{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})}};var Ae=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);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);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),i=this._hooks.after[e];return i&&(a=await i(a)),a}};var j_=x.enum(["event_received","register","unregister","ping","action_triggered"]),Uf=t=>{let e=t[mr],r=t[yr],n=t[Wi],a=j_.parse(t[vr]);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 Re={status:200},Lf=t=>async e=>{let r=Uf(e.headers),n=new Xe,a=new Ff.Client({botId:r.botId,retry:na}),i=new Ae(a,{before:{createMessage:async c=>{let f=t.hookHandlers.before_outgoing_message[c.type]??[],p=t.hookHandlers.before_outgoing_message["*"]??[],y=[...f,...p];for(let T of y)c=(await T({client:new Ae(a),ctx:r,logger:n,data:c}))?.data??c;return c},callAction:async c=>{let f=t.hookHandlers.before_outgoing_call_action[c.type]??[],p=t.hookHandlers.before_outgoing_call_action["*"]??[],y=[...f,...p];for(let T of y)c=(await T({client:new Ae(a),ctx:r,logger:n,data:c}))?.data??c;return c}},after:{createMessage:async c=>{let f=t.hookHandlers.after_outgoing_message[c.message.type]??[],p=t.hookHandlers.after_outgoing_message["*"]??[],y=[...f,...p];for(let T of y)c=(await T({client:new Ae(a),ctx:r,logger:n,data:c}))?.data??c;return c},callAction:async c=>{let f=t.hookHandlers.after_outgoing_call_action[c.output.type]??[],p=t.hookHandlers.after_outgoing_call_action["*"]??[],y=[...f,...p];for(let T of y)c=(await T({client:new Ae(a),ctx:r,logger:n,data:c}))?.data??c;return c}}}),u={req:e,ctx:r,logger:n,client:i,self:t};switch(r.operation){case"action_triggered":return await F_(u);case"event_received":return await U_(u);case"register":return await $_(u);case"unregister":return await H_(u);case"ping":return await N_(u);default:throw new Error(`Unknown operation ${r.operation}`)}},N_=async({ctx:t})=>(Ut.info(`Received ${t.operation} operation for bot ${t.botId} of type ${t.type}`),Re),$_=async t=>Re,H_=async t=>Re,U_=async({ctx:t,logger:e,req:r,client:n,self:a})=>{Ut.debug(`Received event ${t.type}`);let i=ke(r);if(t.type==="message_created"){let K=i.event,B=K.payload.message,$=a.hookHandlers.before_incoming_message[B.type]??[],V=a.hookHandlers.before_incoming_message["*"]??[],re=[...$,...V];for(let oe of re){let le=await oe({client:n,ctx:t,logger:e,data:B});if(B=le?.data??B,le?.stop)return Re}let Ce={user:K.payload.user,conversation:K.payload.conversation,states:K.payload.states,message:B,event:K},De=a.messageHandlers[B.type]??[],xe=a.messageHandlers["*"]??[],me=[...De,...xe];for(let oe of me)await oe({...Ce,client:n,ctx:t,logger:e});let Kt=a.hookHandlers.after_incoming_message[B.type]??[],Vt=a.hookHandlers.after_incoming_message["*"]??[],ye=[...Kt,...Vt];for(let oe of ye){let le=await oe({client:n,ctx:t,data:B,logger:e});if(B=le?.data??B,le?.stop)return Re}return Re}if(t.type==="state_expired"){let $={state:i.event.payload.state},V=a.stateExpiredHandlers["*"]??[];for(let re of V)await re({...$,client:n,ctx:t,logger:e});return Re}let u=i.event,c=a.hookHandlers.before_incoming_event[u.type]??[],f=a.hookHandlers.before_incoming_event["*"]??[],p=[...c,...f];for(let K of p){let B=await K({client:n,ctx:t,data:u,logger:e});if(u=B?.data??u,B?.stop)return Re}let y={event:u},T=a.eventHandlers[u.type]??[],Z=a.eventHandlers["*"]??[],w=[...T,...Z];for(let K of w)await K({...y,client:n,ctx:t,logger:e});let j=a.hookHandlers.after_incoming_event[u.type]??[],W=a.hookHandlers.after_incoming_event["*"]??[],Y=[...j,...W];for(let K of Y){let B=await K({client:n,ctx:t,data:u,logger:e});if(u=B?.data??u,B?.stop)return Re}return Re},F_=async({ctx:t,logger:e,req:r,client:n,self:a})=>{let{input:i,type:u}=ke(r);if(!u)throw new Error("Missing action type");let c=a.actionHandlers[u];if(!c)throw new Error(`Action ${u} not found`);let p={output:await c({ctx:t,logger:e,input:i,client:n,type:u})};return{status:200,body:JSON.stringify(p)}};var oa=class{constructor(e){this.props=e;this.actionHandlers=e.actions;let r=Pe.values(e.plugins);for(let n of r)this._use(n)}actionHandlers;messageHandlers={};eventHandlers={};stateExpiredHandlers={};hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{}};get actions(){return this.actionHandlers}on={message:(e,r)=>{this.messageHandlers[e]=G.safePush(this.messageHandlers[e],r)},event:(e,r)=>{this.eventHandlers[e]=G.safePush(this.eventHandlers[e],r)},stateExpired:(e,r)=>{this.stateExpiredHandlers[e]=G.safePush(this.stateExpiredHandlers[e],r)},beforeIncomingEvent:(e,r)=>{this.hookHandlers.before_incoming_event[e]=G.safePush(this.hookHandlers.before_incoming_event[e],r)},beforeIncomingMessage:(e,r)=>{this.hookHandlers.before_incoming_message[e]=G.safePush(this.hookHandlers.before_incoming_message[e],r)},beforeOutgoingMessage:(e,r)=>{this.hookHandlers.before_outgoing_message[e]=G.safePush(this.hookHandlers.before_outgoing_message[e],r)},beforeOutgoingCallAction:(e,r)=>{this.hookHandlers.before_outgoing_call_action[e]=G.safePush(this.hookHandlers.before_outgoing_call_action[e],r)},afterIncomingEvent:(e,r)=>{this.hookHandlers.after_incoming_event[e]=G.safePush(this.hookHandlers.after_incoming_event[e],r)},afterIncomingMessage:(e,r)=>{this.hookHandlers.after_incoming_message[e]=G.safePush(this.hookHandlers.after_incoming_message[e],r)},afterOutgoingMessage:(e,r)=>{this.hookHandlers.after_outgoing_message[e]=G.safePush(this.hookHandlers.after_outgoing_message[e],r)},afterOutgoingCallAction:(e,r)=>{this.hookHandlers.after_outgoing_call_action[e]=G.safePush(this.hookHandlers.after_outgoing_call_action[e],r)}};_use=e=>{Hf(this,e)};handler=Lf(this);start=e=>_r(this.handler,e)};var ua=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.entities=e.entities??{},this.templateName=e.templateName;let r=this._getEntityReference(this.entities),n=e.events===void 0?{}:Pe.mapValues(e.events,u=>({...u,schema:u.schema(r)})),a=e.actions===void 0?{}:Pe.mapValues(e.actions,u=>({...u,input:{...u.input,schema:u.input.schema(r)},output:{...u.output,schema:u.output.schema(r)}})),i=e.channels===void 0?{}:Pe.mapValues(e.channels,u=>({...u,messages:Pe.mapValues(u.messages,c=>({...c,schema:c.schema(r)}))}));this.events=n,this.actions=a,this.channels=i}name;version;entities;events;actions;channels;templateName;_getEntityReference=e=>{let r={};for(let[n,a]of Object.entries(e)){let i=a.schema._def["x-zui"]?.title,u=a.schema._def.description,c=Tf.ref(n);i&&c.title(i),u&&c.describe(u),r[n]=c}return r}};var ca=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,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}name;version;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions};var la=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:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{}};initialize(e){return this._runtimeProps=e,this}get config(){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}on={message:(e,r)=>{this.messageHandlers[e]=G.safePush(this.messageHandlers[e],r)},event:(e,r)=>{this.eventHandlers[e]=G.safePush(this.eventHandlers[e],r)},stateExpired:(e,r)=>{this.stateExpiredHandlers[e]=G.safePush(this.stateExpiredHandlers[e],r)},beforeIncomingEvent:(e,r)=>{this.hookHandlers.before_incoming_event[e]=G.safePush(this.hookHandlers.before_incoming_event[e],r)},beforeIncomingMessage:(e,r)=>{this.hookHandlers.before_incoming_message[e]=G.safePush(this.hookHandlers.before_incoming_message[e],r)},beforeOutgoingMessage:(e,r)=>{this.hookHandlers.before_outgoing_message[e]=G.safePush(this.hookHandlers.before_outgoing_message[e],r)},beforeOutgoingCallAction:(e,r)=>{this.hookHandlers.before_outgoing_call_action[e]=G.safePush(this.hookHandlers.before_outgoing_call_action[e],r)},afterIncomingEvent:(e,r)=>{this.hookHandlers.after_incoming_event[e]=G.safePush(this.hookHandlers.after_incoming_event[e],r)},afterIncomingMessage:(e,r)=>{this.hookHandlers.after_incoming_message[e]=G.safePush(this.hookHandlers.after_incoming_message[e],r)},afterOutgoingMessage:(e,r)=>{this.hookHandlers.after_outgoing_message[e]=G.safePush(this.hookHandlers.after_outgoing_message[e],r)},afterOutgoingCallAction:(e,r)=>{this.hookHandlers.after_outgoing_call_action[e]=G.safePush(this.hookHandlers.after_outgoing_call_action[e],r)}}};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,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,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 i=r?a?r+a:n?n==="z.never()"?r+".strict()":r+`.catchall(${n})`:r:a||(n?`z.record(${n})`:"z.record(z.any())");return se.an.anyOf(t)&&(i+=`.and(${yf(g(l({},t),{anyOf:t.anyOf.map(u=>typeof u=="object"&&!u.type&&(u.properties||u.additionalProperties||u.patternProperties)?g(l({},u),{type:"object"}):u)}),e)})`),se.a.oneOf(t)&&(i+=`.and(${Li(g(l({},t),{oneOf:t.oneOf.map(u=>typeof u=="object"&&!u.type&&(u.properties||u.additionalProperties||u.patternProperties)?g(l({},u),{type:"object"}):u)}),e)})`),se.an.allOf(t)&&(i+=`.and(${lr(g(l({},t),{allOf:t.allOf.map(u=>typeof u=="object"&&!u.type&&(u.properties||u.additionalProperties||u.patternProperties)?g(l({},u),{type:"object"}):u)}),e)})`),i}s(vf,"parseObject");var n_=s(t=>{var e;let r="z.string()";if((e=t[F])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";r="z.coerce.string()"}return r+=pe(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+=pe(t,"pattern",({json:n})=>[`.regex(new RegExp(${n})`,", ",")"]),r+=pe(t,"minLength",({json:n})=>[`.min(${n}`,", ",")"]),r+=pe(t,"maxLength",({json:n})=>[`.max(${n}`,", ",")"]),r},"parseString"),a_=s((t,e)=>`${de(Jv(t,"nullable"),e,!0)}.nullable()`,"parseNullable"),i_=s(t=>`z.ref('${t.$ref}')`,"parseRef"),s_=s((t,e)=>{var r,n;if(t.oneOf.length<=1||!((r=t.discriminator)!=null&&r.propertyName))return Li(t,e);let a=t.oneOf.map((i,u)=>de(i,g(l({},e),{path:[...e.path,"oneOf",u]})));return`z.discriminatedUnion("${(n=t.discriminator)==null?void 0:n.propertyName}", [${a.join(", ")}])`},"parseDiscriminator"),de=s((t,e={seen:new Map,path:[]},r)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let i=e.parserOverride(t,e);if(typeof i=="string")return i}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=c_(t,e);return r||(a=o_(t,a),e.withoutDefaults||(a=u_(t,a))),n.r=a,a},"parseSchema"),o_=s((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),u_=s((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),c_=s((t,e)=>se.a.nullable(t)?a_(t,e):se.an.object(t)?vf(t,e):se.an.array(t)?Xv(t,e):se.an.anyOf(t)?yf(t,e):se.an.allOf(t)?lr(t,e):se.a.discriminator(t)?s_(t,e):se.a.oneOf(t)?Li(t,e):se.a.not(t)?qv(t,e):se.an.enum(t)?e_(t):se.a.const(t)?Qv(t):se.a.multipleType(t)?Vv(t,e):se.a.primitive(t,"string")?n_(t):se.a.primitive(t,"number")||se.a.primitive(t,"integer")?r_(t):se.a.primitive(t,"boolean")?zv(t):se.a.primitive(t,"null")?Gv(t):se.a.conditional(t)?t_(t,e):se.a.ref(t)?i_(t):Kv(t),"selectParser"),se={an:{object:s(t=>t.type==="object","object"),array:s(t=>t.type==="array","array"),anyOf:s(t=>t.anyOf!==void 0,"anyOf"),allOf:s(t=>t.allOf!==void 0,"allOf"),enum:s(t=>t.enum!==void 0,"enum")},a:{nullable:s(t=>t.nullable===!0,"nullable"),multipleType:s(t=>Array.isArray(t.type),"multipleType"),not:s(t=>t.not!==void 0,"not"),const:s(t=>t.const!==void 0,"const"),primitive:s((t,e)=>t.type===e,"primitive"),conditional:s(t=>Boolean("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),"conditional"),discriminator:s(t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},"discriminator"),oneOf:s(t=>t.oneOf!==void 0,"oneOf"),ref:s(t=>t.$ref!==void 0,"ref")}},l_=s(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"),d_=s(t=>de(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),f_=s(t=>{let e=d_(t);e=e.replaceAll("errors: z.ZodError[]","errors");let r=l_(e);if(!r.sucess)throw new Wo(r.error);return r.value},"jsonSchemaToZod"),rr=s((t,e)=>{var r,n;if(e[F]&&t._def&&(t._def[F]=e[F]),((r=t._def)==null?void 0:r.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([a,i])=>{let u=typeof t._def.shape=="function"?t._def.shape():t._def.shape;u[a]&&rr(u[a],i)}),((n=t._def)==null?void 0:n.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&rr(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let a=e.items;if(typeof a=="object"&&!Array.isArray(a)){let i=t._def.type;i&&rr(i,a)}else Array.isArray(a)&&a.forEach((i,u)=>{let c=t._def;c.typeName===x.ZodFirstPartyTypeKind.ZodTuple&&rr(c.items[u],i)})}},"applyZuiPropsRecursively"),gr=s(t=>{let e=f_(t);return rr(e,t),e},"jsonSchemaToZui"),_f=class extends Nt.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?Nt.default.createElement(this.props.fallback,{error:this.state.error,schema:this.props.fieldSchema}):this.props.children}};s(_f,"ErrorBoundary");var It=_f;function bf(t,e){return r=>Nt.default.createElement(It,{fallback:e,fieldSchema:r.fieldSchema,path:r.path},Nt.default.createElement(t,l({},r)))}s(bf,"withErrorBoundary");var Vr=s(t=>{var e=t,{components:r,fieldSchema:n,path:a,required:i,fallback:u}=e,c=Ao(e,["components","fieldSchema","path","required","fallback"]),f,p;let{formData:y,disabled:T,hidden:Z,handlePropertyChange:w,addArrayItem:j,removeArrayItem:W,formErrors:Y,formValid:K}=Bo(n,a),B=(0,Ee.useMemo)(()=>at(y,a),[y,a]),$=(0,Ee.useMemo)(()=>Sh(r,n),[n,r]),{discriminator:V,discriminatedSchema:re,discriminatorValue:Ce}=Th(n,a);if(!$||Z===!0)return null;let{Component:De,type:xe}=$,me={type:xe,componentID:$.id,scope:a.join("."),context:{path:a,readonly:!1,formData:y,formErrors:Y,formValid:K,updateForm:w,updateFormData:s(ye=>w([],ye),"updateFormData")},onChange:s(ye=>w(a,ye),"onChange"),disabled:T,errors:Y?.filter(ye=>ye.path===a)||[],label:((f=n[F])==null?void 0:f.title)||Ha(((p=a[a.length-1])==null?void 0:p.toString())||""),params:$.params,schema:n,zuiProps:n[F]};if(n.type==="array"&&xe==="array"){let ye=De,oe=me.schema,le=Array.isArray(B)||typeof B=="object"?B:[],N=l(g(l({},me),{type:xe,schema:oe,data:le,addItem:s(Ze=>j(a,Ze),"addItem"),removeItem:s(Ze=>W(a,Ze),"removeItem")}),c);return Array.isArray(n.items)?null:Ee.default.createElement(ye,g(l({key:me.scope},N),{isArrayChild:N.isArrayChild}),Array.isArray(N.data)?N.data.map((Ze,Oe)=>{let Ke=[...a,Oe.toString()];return Ee.default.createElement(It,{key:Ke.join("."),fallback:u,fieldSchema:n.items,path:Ke},Ee.default.createElement(Vr,{key:Ke.join("."),components:r,fieldSchema:n.items,path:Ke,required:i,isArrayChild:!0,index:Oe,removeSelf:()=>W(a,Oe),fallback:u}))}):[])}if(n.type==="object"&&xe==="object"&&n.properties){let ye=De,oe=l(g(l({},me),{type:xe,schema:me.schema,data:B||{}}),c);return Ee.default.createElement(ye,g(l({key:me.scope},oe),{isArrayChild:oe.isArrayChild}),Object.entries(n.properties).map(([le,N])=>{var Ze;let Oe=[...a,le];return Ee.default.createElement(It,{key:Oe.join("."),fallback:u,fieldSchema:N,path:Oe},Ee.default.createElement(Vr,{key:Oe.join("."),components:r,fieldSchema:N,path:Oe,required:((Ze=n.required)==null?void 0:Ze.includes(le))||!1,isArrayChild:!1,fallback:u}))}))}if(xe==="discriminatedUnion"){let ye=De,oe=l(g(l({},me),{type:xe,schema:me.schema,data:B||{},discriminatorKey:V?.key||null,discriminatorLabel:Ha(V?.key||"Unknown"),discriminatorOptions:V?.values||null,discriminatorValue:Ce,setDiscriminator:s(le=>{if(!V?.key){console.warn("No discriminator key found, cannot set discriminator");return}w(a,{[V.key]:le})},"setDiscriminator")}),c);return Ee.default.createElement(ye,g(l({key:me.scope},oe),{isArrayChild:oe.isArrayChild}),re&&Ee.default.createElement(It,{key:a.join("."),fallback:u,fieldSchema:re,path:a},Ee.default.createElement(Vr,{components:r,fieldSchema:re,path:a,required:i,isArrayChild:!1,fallback:u})))}let Kt=De,Vt=l(g(l({},me),{type:xe,schema:me.schema,config:{},required:i,data:B,description:n.description}),c);return Ee.default.createElement(Kt,l({},Vt))},"FormElementRenderer"),p_=s(({schema:t,components:e,onChange:r,value:n,disableValidation:a,fallback:i,dataTransform:u,onValidation:c})=>{let[f,p]=(0,Ue.useState)(n);return(0,Ue.useEffect)(()=>{r(f)},[f]),(0,Ue.useEffect)(()=>{let y=Ct(t);p(T=>Gr(y,T))},[JSON.stringify(t),p]),Ue.default.createElement(bh,{formData:f,setFormData:p,formSchema:t,disableValidation:a||!1,dataTransform:u,onValidation:c},Ue.default.createElement(It,{fallback:i,fieldSchema:t,path:[]},Ue.default.createElement(Vr,{components:e,fieldSchema:t,path:[],fallback:i,required:!0,isArrayChild:!1})))},"ZuiForm"),h_={string:{},number:{slider:{id:"slider",params:v.object({})}},boolean:{switch:{id:"switch",params:v.object({})}},array:{},object:{},discriminatedUnion:{}},g_={errors:Vo,jsonSchemaToZui:gr,zuiToJsonSchema:ea,objectToZui:jt,toTypescript:Wr,toTypescriptSchema:hi};var Tf=x;var Te=x.string().min(1),Pf=x.object({text:Te}),Sf=x.object({markdown:Te}),xf=x.object({imageUrl:Te}),wf=x.object({audioUrl:Te}),kf=x.object({videoUrl:Te}),Of=x.object({fileUrl:Te,title:Te.optional()}),Cf=x.object({latitude:x.number(),longitude:x.number(),address:x.string().optional(),title:x.string().optional()}),Zf=x.object({title:Te,subtitle:Te.optional(),imageUrl:Te.optional(),actions:x.array(x.object({action:x.enum(["postback","url","say"]),label:Te,value:Te}))}),Ef=x.object({text:Te,options:x.array(x.object({label:Te,value:Te}))}),m_=x.object({items:x.array(Zf)}),y_=x.union([x.object({type:x.literal("text"),payload:Pf}),x.object({type:x.literal("markdown"),payload:Sf}),x.object({type:x.literal("image"),payload:xf}),x.object({type:x.literal("audio"),payload:wf}),x.object({type:x.literal("video"),payload:kf}),x.object({type:x.literal("file"),payload:Of}),x.object({type:x.literal("location"),payload:Cf})]),v_=x.object({items:x.array(y_)}),__={schema:Sf},b_={text:{schema:Pf},image:{schema:xf},audio:{schema:wf},video:{schema:kf},file:{schema:Of},location:{schema:Cf},carousel:{schema:m_},card:{schema:Zf},dropdown:{schema:Ef},choice:{schema:Ef},bloc:{schema:v_}};var mr="x-bot-id",Ki="x-bot-user-id",Vi="x-integration-id",qi="x-webhook-id",Gi="x-bp-configuration-type",yr="x-bp-configuration",vr="x-bp-operation",Wi="x-bp-type";var If=require("node:http");var Ut=console;function ke(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function _r(t,e=8072,r=S_){let n=(0,If.createServer)(async(a,i)=>{try{let u=await T_(a);if(u.path==="/health"){i.writeHead(200).end("ok");return}let c=await t(u);i.writeHead(c?.status??200,c?.headers??{}).end(c?.body??"{}")}catch(u){Ut.error("Error while handling request",{error:u?.message??"Internal error occured"}),i.writeHead(500).end(JSON.stringify({error:u?.message??"Internal error occured"}))}});return n.listen(e,()=>r(e)),n}async function T_(t){let e=await P_(t),r={};for(let a=0;a<t.rawHeaders.length;a+=2){let i=t.rawHeaders[a].toLowerCase(),u=t.rawHeaders[a+1];r[i]=u}let n=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:n.pathname,query:E_(n.search,"?"),headers:r,method:t.method?.toUpperCase()??"GET"}}function E_(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function P_(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 S_(t){Ut.info(`Listening on port ${t}`)}var da=require("@botpress/client");var Pe={};Ar(Pe,{mapValues:()=>w_,pairs:()=>Af,values:()=>x_});var Af=t=>Object.entries(t),x_=t=>Object.values(t),w_=(t,e)=>Object.fromEntries(Af(t).map(([r,n])=>[r,e(n,r)]));var G={};Ar(G,{safePush:()=>k_});var k_=(t,...e)=>t?[...t,...e]:[...e];var ta=Symbol("schemaName"),Rf=t=>t?Pe.mapValues(t,(r,n)=>({...r,[ta]:n})):{},Df=t=>ta in t&&t[ta]!==void 0,Bf=t=>t[ta];var ra=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}name;version;title;description;icon;readme;configuration;configurations;events;actions;channels;states;user;secrets;identifier;entities;interfaces;__advanced;extend(e,r){let n=r(Rf(this.entities)),a=Pe.pairs(n).find(([p,y])=>!Df(y));if(a)throw new Error(`Cannot extend interface "${e.name}" with entity "${a[0]}"; the provided schema is not part of the integration's entities.`);let i=this;i.interfaces??={};let u=Pe.mapValues(n,p=>({name:Bf(p),schema:p.schema})),c=Object.values(u).map(p=>p.name),f=c.length===0?e.name:`${e.name}<${c.join(",")}>`;return i.interfaces[f]={...e,entities:u},this}};var vt=require("@botpress/client");var Mf=require("@botpress/client"),na={retries:3,retryCondition:t=>Mf.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:t=>t*1e3};var Lt=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 aa=class{_cost=0;get cost(){return this._cost}setCost(e){this._cost=e}toJSON(){return{cost:this.cost}}};var O_=x.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),jf=t=>{let e=t[mr],r=t[Ki],n=t[Vi],a=t[qi],i=t[Gi],u=t[yr],c=O_.parse(t[vr]);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(!u)throw new Error("Missing configuration headers");if(!c)throw new Error("Missing operation headers");return{botId:e,botUserId:r,integrationId:n,webhookId:a,operation:c,configurationType:i??null,configuration:u?JSON.parse(Buffer.from(u,"base64").toString("utf-8")):{}}};var Nf=et(require("util")),zt=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=Nf.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 zt{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 $f=t=>async e=>{let r=jf(e.headers),n=new vt.Client({botId:r.botId,integrationId:r.integrationId,retry:na}),a=new Lt(n),i=new Ye,u={ctx:r,req:e,client:a,logger:i,instance:t};try{let c;switch(r.operation){case"webhook_received":c=await Z_(u);break;case"register":c=await I_(u);break;case"unregister":c=await A_(u);break;case"message_created":c=await B_(u);break;case"action_triggered":c=await M_(u);break;case"ping":c=await C_(u);break;case"create_user":c=await R_(u);break;case"create_conversation":c=await D_(u);break;default:throw new Error(`Unknown operation ${r.operation}`)}return c?{...c,status:c.status??200}:{status:200}}catch(c){if((0,vt.isApiError)(c)){let p=c.type==="Runtime"?c:new vt.RuntimeError(c.message,c);return i.forBot().error(p.message),{status:p.code,body:JSON.stringify(p.toJSON())}}console.error(c);let f=new vt.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(f.message),{status:f.code,body:JSON.stringify(f.toJSON())}}},C_=async t=>{},Z_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{let{req:i}=ke(r);return a.webhook({client:t,ctx:e,req:i,logger:n})},I_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.register)return;let{webhookUrl:i}=ke(r);await a.register({client:t,ctx:e,webhookUrl:i,logger:n})},A_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.unregister)return;let{webhookUrl:i}=ke(r);await a.unregister({ctx:e,webhookUrl:i,client:t,logger:n})},R_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createUser)return;let{tags:i}=ke(r);return await a.createUser({ctx:e,client:t,tags:i,logger:n})},D_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createConversation)return;let{channel:i,tags:u}=ke(r);return await a.createConversation({ctx:e,client:t,channel:i,tags:u,logger:n})},B_=async({ctx:t,req:e,client:r,logger:n,instance:a})=>{let{conversation:i,user:u,type:c,payload:f,message:p}=ke(e),y=a.channels[i.channel];if(!y)throw new Error(`Channel ${i.channel} not found`);let T=y.messages[c];if(!T)throw new Error(`Message of type ${c} not found in channel ${i.channel}`);await T({ctx:t,conversation:i,message:p,user:u,type:c,client:r,payload:f,ack:async({tags:w})=>{await r.updateMessage({id:p.id,tags:w})},logger:n})},M_=async({req:t,ctx:e,client:r,logger:n,instance:a})=>{let{input:i,type:u}=ke(t);if(!u)throw new Error("Missing action type");let c=a.actions[u];if(!c)throw new Error(`Action ${u} not found`);let f=new aa,y={output:await c({ctx:e,input:i,client:r,type:u,logger:n,metadata:f}),meta:f.toJSON()};return{body:JSON.stringify(y)}};var ia=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=$f(this);start=e=>_r(this.handler,e)};var sa=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}integrations;plugins;user;conversation;message;states;configuration;events;recurringEvents;actions;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},this}addPlugin(e,r){let n=this;return n.plugins||(n.plugins={}),n.plugins[e.name]={...e,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.states=this._mergeStates(n.states,e.definition.states),n.events=this._mergeEvents(n.events,e.definition.events),n.recurringEvents=this._mergeRecurringEvents(n.recurringEvents,e.definition.recurringEvents),n.actions=this._mergeActions(n.actions,e.definition.actions),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})};var Hf=(t,e)=>{for(let[r,n]of Object.entries(e.actionHandlers))t.actionHandlers[r]=n;for(let[r,n]of Object.entries(e.eventHandlers))n&&(t.eventHandlers[r]=G.safePush(t.eventHandlers[r],...n));for(let[r,n]of Object.entries(e.messageHandlers))n&&(t.messageHandlers[r]=G.safePush(t.messageHandlers[r],...n));for(let[r,n]of Object.entries(e.stateExpiredHandlers))n&&(t.stateExpiredHandlers[r]=G.safePush(t.stateExpiredHandlers[r],...n));for(let[r,n]of Object.entries(e.hookHandlers))for(let[a,i]of Object.entries(n))i&&(t.hookHandlers[r][a]=G.safePush(t.hookHandlers[r][a],...i))};var Ff=et(require("@botpress/client"));var Xe=class extends zt{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})}};var Ae=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);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);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),i=this._hooks.after[e];return i&&(a=await i(a)),a}};var j_=x.enum(["event_received","register","unregister","ping","action_triggered"]),Uf=t=>{let e=t[mr],r=t[yr],n=t[Wi],a=j_.parse(t[vr]);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 Re={status:200},Lf=t=>async e=>{let r=Uf(e.headers),n=new Xe,a=new Ff.Client({botId:r.botId,retry:na}),i=new Ae(a,{before:{createMessage:async c=>{let f=t.hookHandlers.before_outgoing_message[c.type]??[],p=t.hookHandlers.before_outgoing_message["*"]??[],y=[...f,...p];for(let T of y)c=(await T({client:new Ae(a),ctx:r,logger:n,data:c}))?.data??c;return c},callAction:async c=>{let f=t.hookHandlers.before_outgoing_call_action[c.type]??[],p=t.hookHandlers.before_outgoing_call_action["*"]??[],y=[...f,...p];for(let T of y)c=(await T({client:new Ae(a),ctx:r,logger:n,data:c}))?.data??c;return c}},after:{createMessage:async c=>{let f=t.hookHandlers.after_outgoing_message[c.message.type]??[],p=t.hookHandlers.after_outgoing_message["*"]??[],y=[...f,...p];for(let T of y)c=(await T({client:new Ae(a),ctx:r,logger:n,data:c}))?.data??c;return c},callAction:async c=>{let f=t.hookHandlers.after_outgoing_call_action[c.output.type]??[],p=t.hookHandlers.after_outgoing_call_action["*"]??[],y=[...f,...p];for(let T of y)c=(await T({client:new Ae(a),ctx:r,logger:n,data:c}))?.data??c;return c}}}),u={req:e,ctx:r,logger:n,client:i,self:t};switch(r.operation){case"action_triggered":return await F_(u);case"event_received":return await U_(u);case"register":return await $_(u);case"unregister":return await H_(u);case"ping":return await N_(u);default:throw new Error(`Unknown operation ${r.operation}`)}},N_=async({ctx:t})=>(Ut.info(`Received ${t.operation} operation for bot ${t.botId} of type ${t.type}`),Re),$_=async t=>Re,H_=async t=>Re,U_=async({ctx:t,logger:e,req:r,client:n,self:a})=>{Ut.debug(`Received event ${t.type}`);let i=ke(r);if(t.type==="message_created"){let K=i.event,B=K.payload.message,$=a.hookHandlers.before_incoming_message[B.type]??[],V=a.hookHandlers.before_incoming_message["*"]??[],re=[...$,...V];for(let oe of re){let le=await oe({client:n,ctx:t,logger:e,data:B});if(B=le?.data??B,le?.stop)return Re}let Ce={user:K.payload.user,conversation:K.payload.conversation,states:K.payload.states,message:B,event:K},De=a.messageHandlers[B.type]??[],xe=a.messageHandlers["*"]??[],me=[...De,...xe];for(let oe of me)await oe({...Ce,client:n,ctx:t,logger:e});let Kt=a.hookHandlers.after_incoming_message[B.type]??[],Vt=a.hookHandlers.after_incoming_message["*"]??[],ye=[...Kt,...Vt];for(let oe of ye){let le=await oe({client:n,ctx:t,data:B,logger:e});if(B=le?.data??B,le?.stop)return Re}return Re}if(t.type==="state_expired"){let $={state:i.event.payload.state},V=a.stateExpiredHandlers["*"]??[];for(let re of V)await re({...$,client:n,ctx:t,logger:e});return Re}let u=i.event,c=a.hookHandlers.before_incoming_event[u.type]??[],f=a.hookHandlers.before_incoming_event["*"]??[],p=[...c,...f];for(let K of p){let B=await K({client:n,ctx:t,data:u,logger:e});if(u=B?.data??u,B?.stop)return Re}let y={event:u},T=a.eventHandlers[u.type]??[],Z=a.eventHandlers["*"]??[],w=[...T,...Z];for(let K of w)await K({...y,client:n,ctx:t,logger:e});let j=a.hookHandlers.after_incoming_event[u.type]??[],W=a.hookHandlers.after_incoming_event["*"]??[],Y=[...j,...W];for(let K of Y){let B=await K({client:n,ctx:t,data:u,logger:e});if(u=B?.data??u,B?.stop)return Re}return Re},F_=async({ctx:t,logger:e,req:r,client:n,self:a})=>{let{input:i,type:u}=ke(r);if(!u)throw new Error("Missing action type");let c=a.actionHandlers[u];if(!c)throw new Error(`Action ${u} not found`);let p={output:await c({ctx:t,logger:e,input:i,client:n,type:u})};return{status:200,body:JSON.stringify(p)}};var oa=class{constructor(e){this.props=e;this.actionHandlers=e.actions;let r=Pe.values(e.plugins);for(let n of r)this._use(n)}actionHandlers;messageHandlers={};eventHandlers={};stateExpiredHandlers={};hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{}};get actions(){return this.actionHandlers}on={message:(e,r)=>{this.messageHandlers[e]=G.safePush(this.messageHandlers[e],r)},event:(e,r)=>{this.eventHandlers[e]=G.safePush(this.eventHandlers[e],r)},stateExpired:(e,r)=>{this.stateExpiredHandlers[e]=G.safePush(this.stateExpiredHandlers[e],r)},beforeIncomingEvent:(e,r)=>{this.hookHandlers.before_incoming_event[e]=G.safePush(this.hookHandlers.before_incoming_event[e],r)},beforeIncomingMessage:(e,r)=>{this.hookHandlers.before_incoming_message[e]=G.safePush(this.hookHandlers.before_incoming_message[e],r)},beforeOutgoingMessage:(e,r)=>{this.hookHandlers.before_outgoing_message[e]=G.safePush(this.hookHandlers.before_outgoing_message[e],r)},beforeOutgoingCallAction:(e,r)=>{this.hookHandlers.before_outgoing_call_action[e]=G.safePush(this.hookHandlers.before_outgoing_call_action[e],r)},afterIncomingEvent:(e,r)=>{this.hookHandlers.after_incoming_event[e]=G.safePush(this.hookHandlers.after_incoming_event[e],r)},afterIncomingMessage:(e,r)=>{this.hookHandlers.after_incoming_message[e]=G.safePush(this.hookHandlers.after_incoming_message[e],r)},afterOutgoingMessage:(e,r)=>{this.hookHandlers.after_outgoing_message[e]=G.safePush(this.hookHandlers.after_outgoing_message[e],r)},afterOutgoingCallAction:(e,r)=>{this.hookHandlers.after_outgoing_call_action[e]=G.safePush(this.hookHandlers.after_outgoing_call_action[e],r)}};_use=e=>{Hf(this,e)};handler=Lf(this);start=e=>_r(this.handler,e)};var ua=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.entities=e.entities??{},this.templateName=e.templateName;let r=this._getEntityReference(this.entities),n=e.events===void 0?{}:Pe.mapValues(e.events,u=>({...u,schema:u.schema(r)})),a=e.actions===void 0?{}:Pe.mapValues(e.actions,u=>({...u,input:{...u.input,schema:u.input.schema(r)},output:{...u.output,schema:u.output.schema(r)}})),i=e.channels===void 0?{}:Pe.mapValues(e.channels,u=>({...u,messages:Pe.mapValues(u.messages,c=>({...c,schema:c.schema(r)}))}));this.events=n,this.actions=a,this.channels=i}name;version;entities;events;actions;channels;templateName;_getEntityReference=e=>{let r={};for(let[n,a]of Object.entries(e)){let i=a.schema._def["x-zui"]?.title,u=a.schema._def.description,c=Tf.ref(n);i&&c.title(i),u&&c.describe(u),r[n]=c}return r}};var ca=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,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}name;version;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions};var la=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:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{}};initialize(e){return this._runtimeProps=e,this}get config(){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}on={message:(e,r)=>{this.messageHandlers[e]=G.safePush(this.messageHandlers[e],r)},event:(e,r)=>{this.eventHandlers[e]=G.safePush(this.eventHandlers[e],r)},stateExpired:(e,r)=>{this.stateExpiredHandlers[e]=G.safePush(this.stateExpiredHandlers[e],r)},beforeIncomingEvent:(e,r)=>{this.hookHandlers.before_incoming_event[e]=G.safePush(this.hookHandlers.before_incoming_event[e],r)},beforeIncomingMessage:(e,r)=>{this.hookHandlers.before_incoming_message[e]=G.safePush(this.hookHandlers.before_incoming_message[e],r)},beforeOutgoingMessage:(e,r)=>{this.hookHandlers.before_outgoing_message[e]=G.safePush(this.hookHandlers.before_outgoing_message[e],r)},beforeOutgoingCallAction:(e,r)=>{this.hookHandlers.before_outgoing_call_action[e]=G.safePush(this.hookHandlers.before_outgoing_call_action[e],r)},afterIncomingEvent:(e,r)=>{this.hookHandlers.after_incoming_event[e]=G.safePush(this.hookHandlers.after_incoming_event[e],r)},afterIncomingMessage:(e,r)=>{this.hookHandlers.after_incoming_message[e]=G.safePush(this.hookHandlers.after_incoming_message[e],r)},afterOutgoingMessage:(e,r)=>{this.hookHandlers.after_outgoing_message[e]=G.safePush(this.hookHandlers.after_outgoing_message[e],r)},afterOutgoingCallAction:(e,r)=>{this.hookHandlers.after_outgoing_call_action[e]=G.safePush(this.hookHandlers.after_outgoing_call_action[e],r)}}};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,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,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:
|