@botpress/sdk 4.8.4 → 4.8.5

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.
@@ -1,18 +1,18 @@
1
1
 
2
- > @botpress/sdk@4.8.4 build /home/runner/work/botpress/botpress/packages/sdk
2
+ > @botpress/sdk@4.8.5 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.4 build:type /home/runner/work/botpress/botpress/packages/sdk
6
+ > @botpress/sdk@4.8.5 build:type /home/runner/work/botpress/botpress/packages/sdk
7
7
  > tsc --emitDeclarationOnly --declaration
8
8
 
9
9
 
10
- > @botpress/sdk@4.8.4 build:node /home/runner/work/botpress/botpress/packages/sdk
10
+ > @botpress/sdk@4.8.5 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.4 build:browser /home/runner/work/botpress/botpress/packages/sdk
15
+ > @botpress/sdk@4.8.5 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
@@ -64,7 +64,7 @@ ${Q}`.trim();case u.ZodFirstPartyTypeKind.ZodEnum:return l.values.map(T).join("
64
64
  `,s+=`}
65
65
  `,s+=`}
66
66
  `),s+=`}
67
- `,s+="})"}let a=r?s?r+s:n?n==="z.never()"?r+".strict()":r+`.catchall(${n})`:r:s||(n?`z.record(${n})`:"z.record(z.any())");return $.an.anyOf(t)&&(a+=`.and(${rd(p(c({},t),{anyOf:t.anyOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?p(c({},o),{type:"object"}):o)}),e)})`),$.a.oneOf(t)&&(a+=`.and(${Is(p(c({},t),{oneOf:t.oneOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?p(c({},o),{type:"object"}):o)}),e)})`),$.an.allOf(t)&&(a+=`.and(${Nt(p(c({},t),{allOf:t.allOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?p(c({},o),{type:"object"}):o)}),e)})`),a}i(nd,"parseObject");var mh=i(t=>{var e;let r="z.string()";if((e=t[b])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";r="z.coerce.string()"}return r+=G(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+=G(t,"pattern",({json:n})=>[`.regex(new RegExp(${n})`,", ",")"]),r+=G(t,"minLength",({json:n})=>[`.min(${n}`,", ",")"]),r+=G(t,"maxLength",({json:n})=>[`.max(${n}`,", ",")"]),r},"parseString"),vh=i((t,e)=>`${L(dh(t,"nullable"),e,!0)}.nullable()`,"parseNullable"),_h=i(t=>`z.ref('${t.$ref}')`,"parseRef"),Th=i((t,e)=>{var r,n;if(t.oneOf.length<=1||!((r=t.discriminator)!=null&&r.propertyName))return Is(t,e);let s=t.oneOf.map((a,o)=>L(a,p(c({},e),{path:[...e.path,"oneOf",o]})));return`z.discriminatedUnion("${(n=t.discriminator)==null?void 0:n.propertyName}", [${s.join(", ")}])`},"parseDiscriminator"),L=i((t,e={seen:new Map,path:[]},r)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let a=e.parserOverride(t,e);if(typeof a=="string")return a}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 s=Ph(t,e);return r||(s=bh(t,s),e.withoutDefaults||(s=wh(t,s))),n.r=s,s},"parseSchema"),bh=i((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),wh=i((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),Ph=i((t,e)=>$.a.nullable(t)?vh(t,e):$.an.object(t)?nd(t,e):$.an.array(t)?ph(t,e):$.an.anyOf(t)?rd(t,e):$.an.allOf(t)?Nt(t,e):$.a.discriminator(t)?Th(t,e):$.a.oneOf(t)?Is(t,e):$.a.not(t)?oh(t,e):$.an.enum(t)?gh(t):$.a.const(t)?fh(t):$.a.multipleType(t)?ih(t,e):$.a.primitive(t,"string")?mh(t):$.a.primitive(t,"number")||$.a.primitive(t,"integer")?hh(t):$.a.primitive(t,"boolean")?sh(t):$.a.primitive(t,"null")?lh(t):$.a.conditional(t)?yh(t,e):$.a.ref(t)?_h(t):ah(t),"selectParser"),$={an:{object:i(t=>t.type==="object","object"),array:i(t=>t.type==="array","array"),anyOf:i(t=>t.anyOf!==void 0,"anyOf"),allOf:i(t=>t.allOf!==void 0,"allOf"),enum:i(t=>t.enum!==void 0,"enum")},a:{nullable:i(t=>t.nullable===!0,"nullable"),multipleType:i(t=>Array.isArray(t.type),"multipleType"),not:i(t=>t.not!==void 0,"not"),const:i(t=>t.const!==void 0,"const"),primitive:i((t,e)=>t.type===e,"primitive"),conditional:i(t=>Boolean("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),"conditional"),discriminator:i(t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},"discriminator"),oneOf:i(t=>t.oneOf!==void 0,"oneOf"),ref:i(t=>t.$ref!==void 0,"ref")}},xh=i(t=>{let e;try{e=new Function("z",`return ${t}`)(u)}catch(r){return{sucess:!1,error:`Failed to evaluate schema: ${(r instanceof Error?r:new Error(String(r))).message}`}}return e instanceof u.ZodType?{sucess:!0,value:e}:{sucess:!1,error:`String "${t}" does not evaluate to a Zod schema`}},"evalZuiString"),kh=i(t=>L(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),Sh=i(t=>{let e=kh(t);e=e.replaceAll("errors: z.ZodError[]","errors");let r=xh(e);if(!r.sucess)throw new zr(r.error);return r.value},"jsonSchemaToZod"),Bt=i((t,e)=>{var r,n;if(e[b]&&t._def&&(t._def[b]=e[b]),((r=t._def)==null?void 0:r.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([s,a])=>{let o=typeof t._def.shape=="function"?t._def.shape():t._def.shape;o[s]&&Bt(o[s],a)}),((n=t._def)==null?void 0:n.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&Bt(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let s=e.items;if(typeof s=="object"&&!Array.isArray(s)){let a=t._def.type;a&&Bt(a,s)}else Array.isArray(s)&&s.forEach((a,o)=>{let l=t._def;l.typeName===_.ZodFirstPartyTypeKind.ZodTuple&&Bt(l.items[o],a)})}},"applyZuiPropsRecursively"),Eh=i(t=>{let e=Sh(t);return Bt(e,t),e},"fromJSONSchemaLegacy"),Oh=i(t=>{var e,r;return t.anyOf!==void 0&&t.anyOf.length===2&&t.anyOf.some(n=>typeof n!="boolean"&&sd(n))&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===u.ZodFirstPartyTypeKind.ZodOptional},"isOptionalSchema"),Zh=i(t=>{var e,r;return t.anyOf!==void 0&&t.anyOf.length===2&&t.anyOf.some(n=>typeof n!="boolean"&&n.type==="null")&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===u.ZodFirstPartyTypeKind.ZodNullable},"isNullableSchema"),sd=i(t=>{var e,r;return t.not===!0&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===u.ZodFirstPartyTypeKind.ZodUndefined},"isUndefinedSchema"),Bh=i(t=>{var e,r;return!t.not&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===u.ZodFirstPartyTypeKind.ZodUnknown},"isUnknownSchema"),Ih=i(({type:t,minimum:e,exclusiveMinimum:r,maximum:n,exclusiveMaximum:s,multipleOf:a,format:o})=>{let l=u.number();return t==="integer"&&(l=l.int()),o==="finite"&&(l=l.finite()),r!==void 0?l=l.gt(r):e!==void 0&&(l=l.gte(e)),s!==void 0?l=l.lt(s):n!==void 0&&(l=l.lte(n)),a!==void 0&&(l=l.multipleOf(a)),l},"numberJSONSchemaToZuiNumber"),Ch=i(({format:t,pattern:e,minLength:r,maxLength:n})=>{let s=u.string();if(r&&n&&r===n?s=s.length(r):(r&&(s=s.min(r)),n&&(s=s.max(n))),t==="cuid"||e===j.cuid)s=s.cuid();else if(t==="cuid2"||e===j.cuid2)s=s.cuid2();else if(t==="emoji"||e===j.emoji)s=s.emoji();else if(t==="ulid"||e===j.ulid)s=s.ulid();else if(t==="date-time"){let{precision:a,offset:o}=e?Wy(e):{};s=s.datetime({precision:a,offset:o})}else t==="email"||e===j.email?s=s.email():t==="ipv4"||e===j.ipv4?s=s.ip():t==="ipv6"||e===j.ipv6?s=s.ip("v6"):t==="uri"?s=s.url():t==="uuid"||e===j.uuid?s=s.uuid():e&&(s=s.regex(new RegExp(e)));return s},"stringJSONSchemaToZuiString"),vt=i((t,e)=>{let r=[];e.enum!==void 0&&r.push(...e.enum),e.const!==void 0&&r.push(e.const);let n=r.filter(o=>typeof o===t),[s]=n;if(!s){if(t==="string"&&e.type==="string")return Ch(e);if(t==="number"&&(e.type==="number"||e.type==="integer"))return Ih(e);if(t==="boolean")return u.boolean();if(t==="null")return u.null();throw new zr(`Unknown primitive type: "${t}"`)}if(n.length===1)return u.literal(s);let a=n.map(o=>u.literal(o));return u.union(a)},"toZuiPrimitive"),Ah=i((t,e)=>Rh(t)?Dh(t,e):Hh(t)?Mh(t,e):Nh(t,e),"arrayJSONSchemaToZuiArray"),Rh=i(t=>Array.isArray(t.items),"_isTuple"),Hh=i(t=>t.items!==void 0&&t.uniqueItems,"_isSet"),Dh=i(({items:t,additionalItems:e},r)=>{let n=t.map(r),s=u.tuple(n);return e!==void 0&&(s=s.rest(r(e))),s},"_handleTuple"),Mh=i(({items:t,minItems:e,maxItems:r},n)=>{let s=u.set(n(t));return e&&(s=s.min(e)),r&&(s=s.max(r)),s},"_handleSet"),Nh=i(({minItems:t,maxItems:e,items:r},n)=>{let s=u.array(n(r));return t&&t===e?s.length(t):(t&&(s=s.min(t)),e&&(s=s.max(e)),s)},"_handleArray"),Xe=u.any();function ad(t){return z(t)}i(ad,"fromJSONSchema");function z(t){var e;if(t===void 0)return Xe;if(t===!0)return u.any();if(t===!1)return u.never();if(t.default!==void 0)return z(p(c({},t),{default:void 0})).default(t.default);if(t.readOnly)return z(p(c({},t),{readOnly:void 0})).readonly();if(t.oneOf!==void 0)throw new ve({oneOf:t.oneOf});if(t.patternProperties!==void 0)throw new ve({patternProperties:t.patternProperties});if(t.propertyNames!==void 0)throw new ve({propertyNames:t.propertyNames});if(t.if!==void 0)throw new ve({if:t.if});if(t.then!==void 0)throw new ve({then:t.then});if(t.else!==void 0)throw new ve({else:t.else});if(t.$ref!==void 0)return u.ref(t.$ref);if(t.not!==void 0){if(sd(t))return u.undefined();if(t.not===!0)return u.never();throw new ve({not:t.not})}if(Array.isArray(t.type)){if(t.type.length===0)return Xe;if(t.type.length===1)return z(p(c({},t),{type:t.type[0]}));let r=t,{type:n}=r,s=Za(r,["type"]),a=t.type.map(o=>z(p(c({},s),{type:o})));return u.union(a)}if(t.type==="string")return t.enum&&t.enum.length>0?u.enum(t.enum):vt("string",t);if(t.type==="integer"){let r=vt("number",t);return r instanceof u.ZodNumber?r.int():r}if(t.type==="number")return vt("number",t);if(t.type==="boolean")return vt("boolean",t);if(t.type==="null")return vt("null",t);if(t.type==="array")return Ah(t,z);if(t.type==="object"){if(t.additionalProperties!==void 0&&t.properties!==void 0){let r=z(t.additionalProperties);return z(p(c({},t),{additionalProperties:void 0})).catchall(r)}if(t.properties!==void 0){let r={};for(let[n,s]of Object.entries(t.properties)){let a=z(s),o=(e=t.required)!=null?e:[];r[n]=o.includes(n)?a:a.optional()}return u.object(r)}if(t.additionalProperties!==void 0){let r=z(t.additionalProperties);return u.record(r)}return u.record(Xe)}if(t.anyOf!==void 0){if(t.anyOf.length===0)return Xe;if(t.anyOf.length===1)return z(t.anyOf[0]);if(Oh(t))return z(t.anyOf[0]).optional();if(Zh(t))return z(t.anyOf[0]).nullable();let r=t.anyOf.map(z);return u.union(r)}if(t.allOf!==void 0){if(t.allOf.length===0)return Xe;if(t.allOf.length===1)return z(t.allOf[0]);let[r,...n]=t.allOf,s=z(r),a=z({allOf:n});return u.intersection(s,a)}return Bh(t)?u.unknown():Xe}i(z,"_fromJSONSchema");var $h=/^\d{4}-\d{2}-\d{2}(T|\s)?((\d{2}:\d{2}:\d{2}(\.\d{1,3})?)|(\d{2}:\d{2}))?(\s?([+-]\d{2}:\d{2}|Z))?$/,zn=i((t,e,r=!0)=>{if(typeof t!="object")throw new Rn("Input must be an object");let n=i(o=>{let l=o;return e?.nullable&&(l=l.nullable()),e?.optional&&(l=l.optional()),e?.passtrough&&typeof l.passthrough=="function"&&(l=l.passthrough()),l},"applyOptions"),s=Object.entries(t).reduce((o,[l,d])=>{if(d===null)o[l]=n(_.null());else switch(typeof d){case"string":o[l]=$h.test(d)?n(_.string().datetime()):n(_.string());break;case"number":o[l]=n(_.number());break;case"boolean":o[l]=n(_.boolean());break;case"object":Array.isArray(d)?d.length===0?o[l]=n(_.array(_.unknown())):typeof d[0]=="object"?o[l]=n(_.array(zn(d[0],e,!1))):["string","number","boolean"].includes(typeof d[0])&&(o[l]=n(_.array(_[typeof d[0]]()))):o[l]=n(zn(d,e,!1));break;default:throw new Rn(`Unsupported type for key ${l}`)}return o},{}),a=Object.keys(s).length>0;return e?.passtrough||!r&&!a?_.object(s).passthrough():_.object(s)},"fromObject");function id(){return{}}i(id,"parseAnyDef");function od(t,e){var r,n;let s={type:"array"};return((n=(r=t.type)==null?void 0:r._def)==null?void 0:n.typeName)!=="ZodAny"&&(s.items=C(t.type._def,p(c({},e),{currentPath:[...e.currentPath,"items"]}))),t.minLength&&H(s,"minItems",t.minLength.value,t.minLength.message,e),t.maxLength&&H(s,"maxItems",t.maxLength.value,t.maxLength.message,e),t.exactLength&&(H(s,"minItems",t.exactLength.value,t.exactLength.message,e),H(s,"maxItems",t.exactLength.value,t.exactLength.message,e)),s}i(od,"parseArrayDef");function ld(t,e){let r=c({type:"integer",format:"int64"},t.coerce?{[b]:{coerce:t.coerce||void 0}}:{});if(!t.checks)return r;for(let n of t.checks)switch(n.kind){case"min":e.target==="jsonSchema7"?n.inclusive?H(r,"minimum",n.value,n.message,e):H(r,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(r.exclusiveMinimum=!0),H(r,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?H(r,"maximum",n.value,n.message,e):H(r,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(r.exclusiveMaximum=!0),H(r,"maximum",n.value,n.message,e));break;case"multipleOf":H(r,"multipleOf",n.value,n.message,e);break}return r}i(ld,"parseBigintDef");function cd(t){return c({type:"boolean"},t.coerce?{[b]:{coerce:t.coerce||void 0}}:{})}i(cd,"parseBooleanDef");function dd(t,e){return C(t.type._def,e)}i(dd,"parseBrandedDef");var jh=i((t,e)=>C(t.innerType._def,e),"parseCatchDef");function ud(t,e){return e.dateStrategy=="integer"?Kh(t,e):c({type:"string",format:"date-time"},t.coerce?{[b]:{coerce:t.coerce||void 0}}:{})}i(ud,"parseDateDef");var Kh=i((t,e)=>{let r=c({type:"integer",format:"unix-time"},t.coerce?{[b]:{coerce:t.coerce||void 0}}:{});for(let n of t.checks)switch(n.kind){case"min":e.target==="jsonSchema7"&&H(r,"minimum",n.value,n.message,e);break;case"max":e.target==="jsonSchema7"&&H(r,"maximum",n.value,n.message,e);break}return r},"integerDateParser");function pd(t,e){return p(c({},C(t.innerType._def,e)),{default:t.defaultValue()})}i(pd,"parseDefaultDef");function fd(t,e){return e.effectStrategy==="input"?C(t.schema._def,e):{}}i(fd,"parseEffectsDef");function gd(t){return{type:"string",enum:t.values}}i(gd,"parseEnumDef");var Uh=i(t=>"type"in t&&t.type==="string"?!1:"allOf"in t,"isJsonSchema7AllOfType");function yd(t,e){let r=[C(t.left._def,p(c({},e),{currentPath:[...e.currentPath,"allOf","0"]})),C(t.right._def,p(c({},e),{currentPath:[...e.currentPath,"allOf","1"]}))].filter(a=>!!a),n=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,s=[];return r.forEach(a=>{if(Uh(a))s.push(...a.allOf),a.unevaluatedProperties===void 0&&(n=void 0);else{let o=a;if("additionalProperties"in a&&a.additionalProperties===!1){let l=a,{additionalProperties:d}=l;o=Za(l,["additionalProperties"])}else n=void 0;s.push(o)}}),s.length?c({allOf:s},n):void 0}i(yd,"parseIntersectionDef");function hd(t,e){let r=typeof t.value;return r!=="bigint"&&r!=="number"&&r!=="boolean"&&r!=="string"?{type:Array.isArray(t.value)?"array":"object"}:e.target==="openApi3"?{type:r==="bigint"?"integer":r,enum:[t.value]}:{type:r==="bigint"?"integer":r,const:t.value}}i(hd,"parseLiteralDef");function Cs(t,e){var r,n,s,a,o;if(e.target==="openApi3"&&((r=t.keyType)==null?void 0:r._def.typeName)==="ZodEnum")return{type:"object",required:t.keyType._def.values,properties:t.keyType._def.values.reduce((d,f)=>{var g;return p(c({},d),{[f]:(g=C(t.valueType._def,p(c({},e),{currentPath:[...e.currentPath,"properties",f]})))!=null?g:{}})},{}),additionalProperties:!1};let l={type:"object",additionalProperties:(n=C(t.valueType._def,p(c({},e),{currentPath:[...e.currentPath,"additionalProperties"]})))!=null?n:{}};if(e.target==="openApi3")return l;if(((s=t.keyType)==null?void 0:s._def.typeName)==="ZodString"&&((a=t.keyType._def.checks)!=null&&a.length)){let d=Object.entries(is(t.keyType._def,e)).reduce((f,[g,h])=>g==="type"?f:p(c({},f),{[g]:h}),{});return p(c({},l),{propertyNames:d})}else if(((o=t.keyType)==null?void 0:o._def.typeName)==="ZodEnum")return p(c({},l),{propertyNames:{enum:t.keyType._def.values}});return l}i(Cs,"parseRecordDef");function md(t,e){if(e.mapStrategy==="record")return Cs(t,e);let r=C(t.keyType._def,p(c({},e),{currentPath:[...e.currentPath,"items","items","0"]}))||{},n=C(t.valueType._def,p(c({},e),{currentPath:[...e.currentPath,"items","items","1"]}))||{};return{type:"array",maxItems:125,items:{type:"array",items:[r,n],minItems:2,maxItems:2}}}i(md,"parseMapDef");function vd(t){let e=t.values,n=Object.keys(t.values).filter(a=>typeof e[e[a]]!="number").map(a=>e[a]),s=Array.from(new Set(n.map(a=>typeof a)));return{type:s.length===1?s[0]==="string"?"string":"number":["string","number"],enum:n.filter(a=>typeof a=="string"||typeof a=="number")}}i(vd,"parseNativeEnumDef");function _d(){return{not:{}}}i(_d,"parseNeverDef");function Td(t){return t.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}i(Td,"parseNullDef");var Ur={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function bd(t,e){if(e.target==="openApi3")return ka(t,e);let r=t.options instanceof Map?Array.from(t.options.values()):t.options;if(r.every(n=>n._def.typeName in Ur&&(!n._def.checks||!n._def.checks.length))){let n=r.reduce((s,a)=>{let o=Ur[a._def.typeName];return o&&!s.includes(o)?[...s,o]:s},[]);return{type:n.length>1?n:n[0]}}else if(r.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){let n=r.reduce((s,a)=>{let o=typeof a._def.value;switch(o){case"string":case"number":case"boolean":return[...s,o];case"bigint":return[...s,"integer"];case"object":if(a._def.value===null)return[...s,"null"];case"symbol":case"undefined":case"function":default:return s}},[]);if(n.length===r.length){let s=n.filter((a,o,l)=>l.indexOf(a)===o);return{type:s.length>1?s:s[0],enum:r.reduce((a,o)=>a.includes(o._def.value)?a:[...a,o._def.value],[])}}}else if(r.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:r.reduce((n,s)=>[...n,...s._def.values.filter(a=>!n.includes(a))],[])};return ka(t,e)}i(bd,"parseUnionDef");var ka=i((t,e)=>{let r=(t.options instanceof Map?Array.from(t.options.values()):t.options).map((s,a)=>C(s._def,p(c({},e),{currentPath:[...e.currentPath,e.unionStrategy,`${a}`]}))).filter(s=>!!s&&(!e.strictUnions||typeof s=="object"&&Object.keys(s).length>0)),n=e.discriminator&&t.typeName==="ZodDiscriminatedUnion"&&typeof t.discriminator=="string"?{discriminator:{propertyName:t.discriminator}}:{};if(r.length)return e.unionStrategy==="anyOf"?c({anyOf:r},n):c({oneOf:r},n)},"asUnionOf");function wd(t,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(t.innerType._def.typeName)&&(!t.innerType._def.checks||!t.innerType._def.checks.length)){let n=t.innerType;if(e.target==="openApi3"){let a={type:Ur[n._def.typeName],nullable:!0};return Ln(n._def,e,a)}let s={type:[Ur[n._def.typeName],"null"]};return Ln(n._def,e,s)}if(e.target==="openApi3"){let n=C(t.innerType._def,p(c({},e),{currentPath:[...e.currentPath]}));return n&&p(c({},n),{nullable:!0})}let r=C(t.innerType._def,p(c({},e),{currentPath:[...e.currentPath,"anyOf","0"]}));return r&&{anyOf:[r,{type:"null"}]}}i(wd,"parseNullableDef");function Pd(t,e){let r=c({type:"number"},t.coerce?{[b]:{coerce:t.coerce||void 0}}:{});if(!t.checks)return r;for(let n of t.checks)switch(n.kind){case"int":r.type="integer",as(r,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?H(r,"minimum",n.value,n.message,e):H(r,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(r.exclusiveMinimum=!0),H(r,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?H(r,"maximum",n.value,n.message,e):H(r,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(r.exclusiveMaximum=!0),H(r,"maximum",n.value,n.message,e));break;case"multipleOf":H(r,"multipleOf",n.value,n.message,e);break}return r}i(Pd,"parseNumberDef");var Fh=i((t,e)=>{var r;return t.unknownKeys instanceof E?(r=C(t.unknownKeys._def,p(c({},e),{currentPath:[...e.currentPath,"additionalProperties"]})))!=null?r:!0:t.unknownKeys==="passthrough"},"getAdditionalProperties");function xd(t,e){let r=p(c({type:"object"},Object.entries(t.shape()).reduce((n,[s,a])=>{if(a===void 0||a._def===void 0)return n;let o=C(a._def,p(c({},e),{currentPath:[...e.currentPath,"properties",s],propertyPath:[...e.currentPath,"properties",s]}));return o===void 0?n:{properties:p(c({},n.properties),{[s]:o}),required:a.isOptional()?n.required:[...n.required,s]}},{properties:{},required:[]})),{additionalProperties:Fh(t,e)});return r.required.length||delete r.required,r}i(xd,"parseObjectDef");var zh=i((t,e)=>{var r;if(e.currentPath.toString()===((r=e.propertyPath)==null?void 0:r.toString()))return C(t.innerType._def,e);let n=C(t.innerType._def,p(c({},e),{currentPath:[...e.currentPath,"anyOf","1"]}));return n?{anyOf:[{not:{}},n]}:{}},"parseOptionalDef"),Lh=i((t,e)=>{if(e.pipeStrategy==="input")return C(t.in._def,e);if(e.pipeStrategy==="output")return C(t.out._def,e);let r=C(t.in._def,p(c({},e),{currentPath:[...e.currentPath,"allOf","0"]})),n=C(t.out._def,p(c({},e),{currentPath:[...e.currentPath,"allOf",r?"1":"0"]}));return{allOf:[r,n].filter(s=>s!==void 0)}},"parsePipelineDef");function kd(t,e){return C(t.type._def,e)}i(kd,"parsePromiseDef");function Sd(t,e){let n={type:"array",uniqueItems:!0,items:C(t.valueType._def,p(c({},e),{currentPath:[...e.currentPath,"items"]}))};return t.minSize&&H(n,"minItems",t.minSize.value,t.minSize.message,e),t.maxSize&&H(n,"maxItems",t.maxSize.value,t.maxSize.message,e),n}i(Sd,"parseSetDef");function Ed(t,e){return t.rest?{type:"array",minItems:t.items.length,items:t.items.map((r,n)=>C(r._def,p(c({},e),{currentPath:[...e.currentPath,"items",`${n}`]}))).reduce((r,n)=>n===void 0?r:[...r,n],[]),additionalItems:C(t.rest._def,p(c({},e),{currentPath:[...e.currentPath,"additionalItems"]}))}:{type:"array",minItems:t.items.length,maxItems:t.items.length,items:t.items.map((r,n)=>C(r._def,p(c({},e),{currentPath:[...e.currentPath,"items",`${n}`]}))).reduce((r,n)=>n===void 0?r:[...r,n],[])}}i(Ed,"parseTupleDef");function Od(){return{not:{}}}i(Od,"parseUndefinedDef");function Zd(){return{}}i(Zd,"parseUnknownDef");var Wh=i((t,e)=>C(t.innerType._def,e),"parseReadonlyDef");function Bd(t){return{$ref:t.uri}}i(Bd,"parseRefDef");function C(t,e,r=!1){let n=e.seen.get(t);if(n&&!r){let o=qh(n,e);if(o!==void 0)return o}let s={def:t,path:e.currentPath,jsonSchema:void 0};e.seen.set(t,s);let a=Gh(t,t.typeName,e);return a&&Ln(t,e,a),s.jsonSchema=a,a}i(C,"parseDef");var qh=i((t,e)=>{switch(e.$refStrategy){case"root":return{$ref:t.path.join("/")};case"relative":return{$ref:Vh(e.currentPath,t.path)};case"none":case"seen":return t.path.length<e.currentPath.length&&t.path.every((r,n)=>e.currentPath[n]===r)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),{}):e.$refStrategy==="seen"?{}:void 0}},"get$ref"),Vh=i((t,e)=>{let r=0;for(;r<t.length&&r<e.length&&t[r]===e[r];r++);return[(t.length-r).toString(),...e.slice(r)].join("/")},"getRelativePath"),Gh=i((t,e,r)=>{switch(e){case"ZodString":return is(t,r);case"ZodNumber":return Pd(t,r);case"ZodObject":return xd(t,r);case"ZodBigInt":return ld(t,r);case"ZodBoolean":return cd(t);case"ZodDate":return ud(t,r);case"ZodUndefined":return Od();case"ZodNull":return Td(r);case"ZodArray":return od(t,r);case"ZodUnion":case"ZodDiscriminatedUnion":return bd(t,r);case"ZodIntersection":return yd(t,r);case"ZodTuple":return Ed(t,r);case"ZodRecord":return Cs(t,r);case"ZodRef":return Bd(t);case"ZodLiteral":return hd(t,r);case"ZodEnum":return gd(t);case"ZodNativeEnum":return vd(t);case"ZodNullable":return wd(t,r);case"ZodOptional":return zh(t,r);case"ZodMap":return md(t,r);case"ZodSet":return Sd(t,r);case"ZodLazy":return C(t.getter()._def,r);case"ZodPromise":return kd(t,r);case"ZodNaN":case"ZodNever":return _d();case"ZodEffects":return fd(t,r);case"ZodAny":return id();case"ZodUnknown":return Zd();case"ZodDefault":return pd(t,r);case"ZodBranded":return dd(t,r);case"ZodReadonly":return Wh(t,r);case"ZodCatch":return jh(t,r);case"ZodPipeline":return Lh(t,r);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return(n=>{})(e)}},"selectParser"),Ln=i((t,e,r)=>(t.description&&(r.description=t.description,e.markdownDescription&&(r.markdownDescription=t.description)),Object.assign(r,{[b]:c(c({},t[b]),r[b])}),r),"addMeta"),Sa={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"string",mapStrategy:"entries",definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",emailStrategy:"format:email",discriminator:!1,unionStrategy:"anyOf"},Jh=i(t=>typeof t=="string"?p(c({},Sa),{name:t}):c(c({},Sa),t),"getDefaultOptions"),Xh=i(t=>{let e=Jh(t),r=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return p(c({},e),{currentPath:r,propertyPath:void 0,seen:new Map(Object.entries(e.definitions).map(([n,s])=>[s._def,{def:s._def,path:[...e.basePath,e.definitionPath,n],jsonSchema:void 0}]))})},"getRefs"),Yh=i((t,e)=>{var r;let n=Xh(e),s=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((d,[f,g])=>{var h;return p(c({},d),{[f]:(h=C(g._def,p(c({},n),{currentPath:[...n.basePath,n.definitionPath,f]}),!0))!=null?h:{}})},{}):void 0,a=typeof e=="string"?e:e?.name,o=(r=C(t._def,a===void 0?n:p(c({},n),{currentPath:[...n.basePath,n.definitionPath,a]}),!1))!=null?r:{},l=a===void 0?s?p(c({},o),{[n.definitionPath]:s}):o:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,a].join("/"),[n.definitionPath]:p(c({},s),{[a]:o})};return n.target==="jsonSchema7"?l.$schema="http://json-schema.org/draft-07/schema#":n.target==="jsonSchema2019-09"&&(l.$schema="https://json-schema.org/draft/2019-09/schema#"),l},"zodToJsonSchema"),Qh=i((t,e={target:"openApi3"})=>{let r=Yh(t,e);return e.$schemaUrl===!1?delete r.$schema:typeof e.$schemaUrl=="string"&&(r.$schema=e.$schemaUrl),r},"toJSONSchemaLegacy");var pt=(t,e)=>{let r=t._def,n=e._def;if(r.typeName===_.ZodFirstPartyTypeKind.ZodObject&&n.typeName===_.ZodFirstPartyTypeKind.ZodObject){let s=r.shape(),a=n.shape();return _.object({...s,...a})}if(r.typeName===_.ZodFirstPartyTypeKind.ZodRecord&&n.typeName===_.ZodFirstPartyTypeKind.ZodRecord)return _.record(_.intersection(r.valueType,n.valueType));throw new Error("Cannot merge object schemas with record schemas")},Id=_;var re=_.string().min(1),Ad=_.object({text:re}),Rd=_.object({markdown:re}),Hd=_.object({imageUrl:re}),Dd=_.object({audioUrl:re}),Md=_.object({videoUrl:re}),Nd=_.object({fileUrl:re,title:re.optional()}),$d=_.object({latitude:_.number(),longitude:_.number(),address:_.string().optional(),title:_.string().optional()}),jd=_.object({title:re,subtitle:re.optional(),imageUrl:re.optional(),actions:_.array(_.object({action:_.enum(["postback","url","say"]),label:re,value:re}))}),Cd=_.object({text:re,options:_.array(_.object({label:re,value:re}))}),em=_.object({items:_.array(jd)}),tm=_.union([_.object({type:_.literal("text"),payload:Ad}),_.object({type:_.literal("markdown"),payload:Rd}),_.object({type:_.literal("image"),payload:Hd}),_.object({type:_.literal("audio"),payload:Dd}),_.object({type:_.literal("video"),payload:Md}),_.object({type:_.literal("file"),payload:Nd}),_.object({type:_.literal("location"),payload:$d})]),rm=_.object({items:_.array(tm)}),nm={schema:Rd},sm={text:{schema:Ad},image:{schema:Hd},audio:{schema:Dd},video:{schema:Md},file:{schema:Nd},location:{schema:$d},carousel:{schema:em},card:{schema:jd},dropdown:{schema:Cd},choice:{schema:Cd},bloc:{schema:rm}};var Lt="x-bot-id",Rs="x-bot-user-id",Hs="x-integration-id",Ds="x-webhook-id",Ms="x-bp-configuration-type",Wt="x-bp-configuration",qt="x-bp-operation",Ns="x-bp-type",am={HIDDEN_IN_STUDIO:{bpActionHiddenInStudio:"true"},AWAIT_RETURN:{bpActionAwaitReturn:"true"}};var Kd=require("browser-or-node");var $s=console;function oe(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function Vt(t,e=8072,r=cm){if(!Kd.isNode)throw new Error("This function can only be called in Node.js");let s=require("http").createServer(async(a,o)=>{try{let l=await im(a);if(l.path==="/health"){o.writeHead(200).end("ok");return}let d=await t(l);o.writeHead(d?.status??200,d?.headers??{}).end(d?.body??"{}")}catch(l){$s.error("Error while handling request",{error:l?.message??"Internal error occured"}),o.writeHead(500).end(JSON.stringify({error:l?.message??"Internal error occured"}))}});return s.listen(e,()=>r(e)),s}async function im(t){let e=await lm(t),r={};for(let s=0;s<t.rawHeaders.length;s+=2){let a=t.rawHeaders[s].toLowerCase(),o=t.rawHeaders[s+1];r[a]=o}let n=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:n.pathname,query:om(n.search,"?"),headers:r,method:t.method?.toUpperCase()??"GET"}}function om(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function lm(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",s=>n+=s.toString()),t.on("error",s=>r(s)),t.on("end",()=>e(n))})}function cm(t){$s.info(`Listening on port ${t}`)}var Sn=require("@botpress/client");var M={};ht(M,{mapKeys:()=>pm,mapValues:()=>um,mergeRecords:()=>gm,pairs:()=>gn,stripUndefinedProps:()=>fm,values:()=>dm});var gn=t=>Object.entries(t),dm=t=>Object.values(t),um=(t,e)=>Object.fromEntries(gn(t).map(([r,n])=>[r,e(n,r)])),pm=(t,e)=>Object.fromEntries(gn(t).map(([r,n])=>[e(r),n])),fm=t=>Object.fromEntries(gn(t).filter(([,e])=>e!==void 0)),gm=(t,e,r)=>{let n=[...Object.keys(t),...Object.keys(e)],s=[...new Set(n)],a={};for(let o of s){let l=t[o],d=e[o];l&&d?a[o]=r(l,d):l?a[o]=l:d&&(a[o]=d)}return a};var S={};ht(S,{safePush:()=>ym,unique:()=>hm});var ym=(t,...e)=>t?[...t,...e]:[...e],hm=t=>Array.from(new Set(t));var me={};ht(me,{setName:()=>mm});var mm=(t,e)=>(Object.defineProperty(t,"name",{value:e}),t);var Ud=t=>{let{name:e,version:r}=t,n={actions:{},events:{},channels:{}},s={name:e,version:r,entities:M.mapValues(t.entities,o=>({name:o.name})),actions:{},events:{},channels:{}},a=M.mapValues(t.entities,o=>o.schema);for(let[o,l]of Object.entries(t.definition.actions??{})){let d=l.input.schema.dereference(a),f=l.output.schema.dereference(a),g=t.actions?.[o]?.name??o;n.actions[g]={...l,...t.actions?.[o]??{},input:{schema:d},output:{schema:f}},s.actions[o]={name:g}}for(let[o,l]of Object.entries(t.definition.events??{})){let d=l.schema.dereference(a),f=t.events?.[o]?.name??o;n.events[f]={...l,...t.events?.[o]??{},schema:d},s.events[o]={name:f}}for(let[o,l]of Object.entries(t.definition.channels??{})){let d={};for(let[g,h]of Object.entries(l.messages)){let x=h.schema.dereference(a);d[g]={...h,schema:x}}let f=t.channels?.[o]?.name??o;n.channels[f]={...l,...t.channels?.[o]??{},message:{...l.message??{},tags:{...l.message?.tags??{},...t.channels?.[o]?.message?.tags??{}}},conversation:{...l.conversation??{},tags:{...l.conversation?.tags??{},...t.channels?.[o]?.conversation?.tags??{}}},messages:d},s.channels[o]={name:f}}return{resolved:n,statement:s}};var yn=Symbol("schemaName"),Fd=t=>t?M.mapValues(t,(r,n)=>({...r,[yn]:n})):{},zd=t=>yn in t&&t[yn]!==void 0,Ld=t=>t[yn];var hn=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:s,events:a,channels:o}=this._callBuilder(e,r),l=this;l.interfaces??={};let d=Object.values(n).map(x=>x.name),f=d.length===0?e.name:`${e.name}<${d.join(",")}>`,{resolved:g,statement:h}=Ud({...e,entities:n,actions:M.stripUndefinedProps(s),events:M.stripUndefinedProps(a),channels:M.stripUndefinedProps(o)});return l.actions=M.mergeRecords(l.actions??{},g.actions,this._mergeActions),l.channels=M.mergeRecords(l.channels??{},g.channels,this._mergeChannels),l.events=M.mergeRecords(l.events??{},g.events,this._mergeEvents),l.interfaces[f]={id:e.id,...h},this}_callBuilder(e,r){let s={entities:Fd(this.entities)},a=r(s),o=M.pairs(a.entities).find(([d,f])=>!zd(f));if(o)throw new Error(`Cannot extend interface "${e.name}" with entity "${o[0]}"; the provided schema is not part of the integration's entities.`);return{entities:M.mapValues(a.entities,d=>({name:Ld(d),schema:d.schema})),actions:a.actions??{},events:a.events??{},channels:a.channels??{}}}_mergeActions=(e,r)=>({...e,...r,input:{schema:pt(e.input.schema,r.input.schema)},output:{schema:pt(e.output.schema,r.output.schema)}});_mergeEvents=(e,r)=>({...e,...r,schema:pt(e.schema,r.schema)});_mergeChannels=(e,r)=>{let n=M.mergeRecords(e.messages,r.messages,this._mergeMessage),s;(e.conversation||r.conversation)&&(s={tags:{...e.conversation?.tags,...r.conversation?.tags}});let a;return(e.message||r.message)&&(a={tags:{...e.message?.tags,...r.message?.tags}}),{...e,...r,messages:n,conversation:s,message:a}};_mergeMessage=(e,r)=>({schema:pt(e.schema,r.schema)})};var Ve=require("@botpress/client");var Wd=zs(require("@botpress/client")),mn={retries:3,retryCondition:t=>Wd.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:(t,e)=>(vm(e.response?.headers??{})??t)*1e3},vm=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 _m(String(n))}},_m=t=>{let e=Tm(t)?bm(t):t.length>0?parseInt(t,10):void 0;return e===void 0||isNaN(e)?void 0:e},Tm=t=>t.includes(" "),bm=t=>{let e=wm(t);if(!e)return;let r=new Date;return Math.max(0,Math.floor((e.getTime()-r.getTime())/1e3))},wm=t=>{let e=new Date(t);return isNaN(e.getTime())?void 0:e};var ft=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 vn=class{_cost=0;get cost(){return this._cost}setCost(e){this._cost=e}toJSON(){return{cost:this.cost}}};var _n="#";var Pm=_.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),Vd=t=>{let e=t[Lt],r=t[Rs],n=t[Hs],s=t[Ds],a=t[Ms],o=t[Wt],l=Pm.parse(t[qt]);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(!s)throw new Error("Missing webhook headers");if(!o)throw new Error("Missing configuration headers");if(!l)throw new Error("Missing operation headers");return{botId:e,botUserId:r,integrationId:n,webhookId:s,operation:l,configurationType:a??null,configuration:o?JSON.parse(Buffer.from(o,"base64").toString("utf-8")):{}}};var Gd=zs(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=Gd.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 we=class extends gt{constructor(e){super({visibleToBotOwners:!0,...e})}with(e){return new we({...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 xm=t=>["traceparent","tracestate","sentry-trace"].reduce((e,r)=>(t[r]&&(e[r]=t[r]),e),{}),Jd=t=>async e=>{let r=Vd(e.headers),[,n]=(e.headers.traceparent||"").split("-"),s=new Ve.Client({botId:r.botId,integrationId:r.integrationId,retry:mn,headers:xm(e.headers)}),a=new ft(s),o=new we({traceId:n}),l={ctx:r,req:e,client:a,logger:o,instance:t};try{let d;switch(r.operation){case"webhook_received":d=await Sm(l);break;case"register":d=await Em(l);break;case"unregister":d=await Om(l);break;case"message_created":d=await Im(l);break;case"action_triggered":d=await Cm(l);break;case"ping":d=await km(l);break;case"create_user":d=await Zm(l);break;case"create_conversation":d=await Bm(l);break;default:throw new Error(`Unknown operation ${r.operation}`)}return d?{...d,status:d.status??200}:{status:200}}catch(d){if((0,Ve.isApiError)(d)){let g=d.type==="Runtime"?d:new Ve.RuntimeError(d.message,d);return o.forBot().error(g.message),{status:g.code,body:JSON.stringify(g.toJSON())}}console.error(d);let f=new Ve.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 o.forBot().error(f.message),{status:f.code,body:JSON.stringify(f.toJSON())}}},km=async t=>{},Sm=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{let{req:a}=oe(r);return s.webhook({client:t,ctx:e,req:a,logger:n})},Em=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.register)return;let{webhookUrl:a}=oe(r);await s.register({client:t,ctx:e,webhookUrl:a,logger:n})},Om=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.unregister)return;let{webhookUrl:a}=oe(r);await s.unregister({ctx:e,webhookUrl:a,client:t,logger:n})},Zm=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.createUser)return;let{tags:a}=oe(r);return await s.createUser({ctx:e,client:t,tags:a,logger:n})},Bm=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.createConversation)return;let{channel:a,tags:o}=oe(r);return await s.createConversation({ctx:e,client:t,channel:a,tags:o,logger:n})},Im=async({ctx:t,req:e,client:r,logger:n,instance:s})=>{let{conversation:a,user:o,type:l,payload:d,message:f}=oe(e),g=s.channels[a.channel];if(!g)throw new Error(`Channel ${a.channel} not found`);let h=g.messages[l];if(!h)throw new Error(`Message of type ${l} not found in channel ${a.channel}`);await h({ctx:t,conversation:a,message:f,user:o,type:l,client:r,payload:d,ack:async({tags:O})=>{await r.updateMessage({id:f.id,tags:O})},logger:n})},Cm=async({req:t,ctx:e,client:r,logger:n,instance:s})=>{let{input:a,type:o}=oe(t);if(!o)throw new Error("Missing action type");let l=s.actions[o];if(!l)throw new Error(`Action ${o} not found`);let d=new vn,g={output:await l({ctx:e,input:a,client:r,type:o,logger:n,metadata:d}),meta:d.toJSON()};return{body:JSON.stringify(g)}};var Tn=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=Jd(this);start=e=>Vt(this.handler,e)};var bn=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 s=r.alias??e.name;return n.plugins[s]={...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:M.mapKeys(e,n=>`${r}${_n}${n}`)};var Ge=require("@botpress/client");var Pe=class extends gt{constructor(e){super({...e})}with(e){return new Pe({...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 ce=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 s=await this._client[e](r),a=this._hooks.after[e];return a&&(s=await a(s,r)),s}};var yt=t=>new Proxy({},{get:(e,r)=>({listInstances:{all:n=>xe({workflowName:r,client:t,input:n}),running:n=>xe({workflowName:r,client:t,input:n,statuses:["in_progress"]}),scheduled:n=>xe({workflowName:r,client:t,input:n,statuses:["pending","listening"]}),allFinished:n=>xe({workflowName:r,client:t,input:n,statuses:["completed","cancelled","failed","timedout"]}),cancelled:n=>xe({workflowName:r,client:t,input:n,statuses:["cancelled"]}),failed:n=>xe({workflowName:r,client:t,input:n,statuses:["failed"]}),succeeded:n=>xe({workflowName:r,client:t,input:n,statuses:["completed"]}),timedOut:n=>xe({workflowName:r,client:t,input:n,statuses:["timedout"]})},startNewInstance:async n=>{let{workflow:s}=await t.createWorkflow({name:r,status:"pending",...n});return{workflow:ke({client:t,workflow:s})}}})}),xe=async t=>{let e=await t.client.listWorkflows({name:t.workflowName,statuses:t.statuses,...t.input});return{...e,workflows:e.workflows.map(r=>ke({client:t.client,workflow:r}))}},ke=t=>({...t.workflow,async update(e){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,...e});return{workflow:ke({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:ke({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:ke({client:t.client,workflow:r})}},async cancel(){let{workflow:e}=await t.client.updateWorkflow({id:t.workflow.id,status:"cancelled"});return{workflow:ke({client:t.client,workflow:e})}}});var Am=_.enum(["event_received","register","unregister","ping","action_triggered"]),Xd=t=>{let e=t[Lt],r=t[Wt],n=t[Ns],s=Am.parse(t[qt]);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(!s)throw new Error("Missing operation headers");return{botId:e,operation:s,type:n,configuration:r?JSON.parse(Buffer.from(r,"base64").toString("utf-8")):{}}};var Y={status:200};var js=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 Rm=["child_workflow_deleted","child_workflow_finished","workflow_timedout","workflow_started","workflow_continued"],Yd=async(t,e)=>{if(t.ctx.type!=="workflow_update"||!Rm.includes(e.payload.type))throw new Error("Unexpected event type");let r={...t,logger:Hm(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),Y;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 Dm(r,e);default:e.payload.type}return Y},Hm=(t,e)=>t.logger.with({eventId:e.id,workflowId:e.payload.workflow.id,conversationId:e.payload.conversation?.id,userId:e.payload.user?.id}),Dm=async(t,e)=>{let r=js(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}"`),Y):(await Mm(t,e),await Nm(t,e),Y)},Mm=async(t,e)=>{e.payload.workflow.status==="pending"&&await t.client.updateWorkflow({id:e.payload.workflow.id,status:"in_progress",eventId:e.id})},Nm=async(t,e)=>{let r=js(e.payload.type),n=t.self.workflowHandlers[r]?.[e.payload.workflow.name];for(let s of n)await s({...t,conversation:e.payload.conversation,user:e.payload.user,workflow:ke({...t,workflow:e.payload.workflow}),workflows:yt(t.client)})};var Qd=t=>async e=>{let r=Xd(e.headers),n=new Pe,s=new Ge.Client({botId:r.botId,retry:mn}),a=new ce(s,{before:{createMessage:async l=>{let d=t.hookHandlers.before_outgoing_message[l.type]??[];for(let f of d){let g=new ce(s);l=(await f({client:g,ctx:r,logger:n.with({conversationId:l.conversationId,userId:l.userId}),data:l,...Se({client:g})}))?.data??l}return l},callAction:async l=>{let d=t.hookHandlers.before_outgoing_call_action[l.type]??[];for(let f of d){let g=new ce(s);l=(await f({client:g,ctx:r,logger:n,data:l,...Se({client:g})}))?.data??l}return l}},after:{createMessage:async l=>{let d=t.hookHandlers.after_outgoing_message[l.message.type]??[];for(let f of d){let g=new ce(s);l=(await f({client:g,ctx:r,logger:n.with({messageId:l.message.id,conversationId:l.message.conversationId,userId:l.message.userId}),data:l,...Se({client:g})}))?.data??l}return l},callAction:async(l,d)=>{let{type:f}=d,g=t.hookHandlers.after_outgoing_call_action[f]??[];for(let h of g){let x=new ce(s);l=(await h({client:x,ctx:r,logger:n,data:{type:f,...l},...Se({client:x})}))?.data??l}return l}}}),o={req:e,ctx:r,logger:n,client:a,self:t};try{switch(r.operation){case"action_triggered":return await Fm(o);case"event_received":return await Um(o);case"register":return await jm(o);case"unregister":return await Km(o);case"ping":return await $m(o);default:throw new Error(`Unknown operation ${r.operation}`)}}catch(l){if((0,Ge.isApiError)(l)){let f=l.type==="Runtime"?l:new Ge.RuntimeError(l.message,l);return n.error(f.message),{status:f.code,body:JSON.stringify(f.toJSON())}}let d=new Ge.RuntimeError("An unexpected error occurred in the bot.");return n.error(d.message),{status:d.code,body:JSON.stringify(d.toJSON())}}},$m=async t=>Y,jm=async t=>Y,Km=async t=>Y,Um=async t=>{let{ctx:e,logger:r,req:n,client:s,self:a}=t,o={client:s,ctx:e,logger:r,...Se({client:s})},l=oe(n);if(o.logger=o.logger.with({eventId:l.event.id,messageId:l.event.messageId,conversationId:l.event.conversationId,userId:l.event.userId}),e.type==="workflow_update")return await Yd(t,l.event);if(e.type==="message_created"){let O=l.event,B=O.payload.message;o.logger=o.logger.with({messageId:B.id,conversationId:B.conversationId,userId:B.userId});let U=a.hookHandlers.before_incoming_message[B.type]??[];for(let q of U){let se=await q({...o,data:B});if(B=se?.data??B,se?.stop)return Y}let W={...o,user:O.payload.user,conversation:O.payload.conversation,message:B,event:O},Q=a.messageHandlers[B.type]??[];for(let q of Q)await q(W);let ae=a.hookHandlers.after_incoming_message[B.type]??[];for(let q of ae){let se=await q({...o,data:B});if(B=se?.data??B,se?.stop)return Y}return Y}if(e.type==="state_expired"){let B=l.event.payload.state,U={...o,state:B},W=a.stateExpiredHandlers["*"]??[];for(let Q of W)await Q(U);return Y}let d=l.event,f=a.hookHandlers.before_incoming_event[d.type]??[];for(let O of f){let B=await O({...o,data:d});if(d=B?.data??d,B?.stop)return Y}let g={...o,event:d},h=a.eventHandlers[d.type]??[];for(let O of h)await O(g);let x=a.hookHandlers.after_incoming_event[d.type]??[];for(let O of x){let B=await O({...o,data:d});if(d=B?.data??d,B?.stop)return Y}return Y},Fm=async({ctx:t,logger:e,req:r,client:n,self:s})=>{let{input:a,type:o}=oe(r);if(!o)throw new Error("Missing action type");let l=s.hookHandlers.before_incoming_call_action[o]??[];for(let x of l){let O=await x({ctx:t,logger:e,client:n,data:{type:o,input:a},...Se({client:n})});a=O?.data?.input??a,o=O?.data?.type??o}let d=s.actionHandlers[o];if(!d)throw new Error(`Action ${o} not found`);let f=await d({ctx:t,logger:e,input:a,client:n,type:o,...Se({client:n})}),g=s.hookHandlers.after_incoming_call_action[o]??[];for(let x of g){let O=await x({ctx:t,logger:e,client:n,data:{type:o,output:f},...Se({client:n})});o=O?.data?.type??o,f=O?.data?.output??f}return{status:200,body:JSON.stringify({output:f})}},Se=t=>({workflows:yt(t.client)});var wn=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 s of Object.values(this._plugins))if(n=s.actionHandlers[r],n)return n}})}get messageHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.messageHandlers[r]??[]),s=this._messageHandlers[r]??[],a=this._messageHandlers["*"]??[],o=[...s,...a].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return S.unique([...n,...o])}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.eventHandlers[r]??[]),s=this._eventHandlers[r]??[],a=this._eventHandlers["*"]??[],o=[...s,...a].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return S.unique([...n,...o])}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.stateExpiredHandlers[r]??[]),s=this._stateExpiredHandlers[r]??[],a=this._stateExpiredHandlers["*"]??[],o=[...s,...a].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return S.unique([...n,...o])}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{if(this._hookHandlers[r])return new Proxy({},{get:(s,a)=>{let o=Object.values(this._plugins).flatMap(h=>h.hookHandlers[r]?.[a]??[]),l=this._hookHandlers[r]??{},d=l[a]??[],f=l["*"]??[],g=[...d,...f].sort((h,x)=>h.order-x.order).map(({handler:h})=>h);return S.unique([...o,...g])}})}})}get workflowHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._workflowHandlers[r];if(n)return new Proxy({},{get:(s,a)=>{let o=n[a]?.sort((d,f)=>d.order-f.order).map(({handler:d})=>d)??[],l=Object.values(this._plugins).flatMap(d=>d.workflowHandlers[r]?.[a]??[]);return S.unique([...o,...l])}})}})}on={message:(e,r)=>{this._messageHandlers[e]=S.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=S.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=S.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=S.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=S.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=S.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=S.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=S.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=S.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=S.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=S.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=S.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=S.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=S.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=S.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=S.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};handler=Qd(this);start=e=>Vt(this.handler,e)};var Pn=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?{}:M.mapValues(e.events,o=>({...o,schema:o.schema(r)})),s=e.actions===void 0?{}:M.mapValues(e.actions,o=>({...o,input:{...o.input,schema:o.input.schema(r)},output:{...o.output,schema:o.output.schema(r)}})),a=e.channels===void 0?{}:M.mapValues(e.channels,o=>({...o,messages:M.mapValues(o.messages,l=>({...l,schema:l.schema(r)}))}));this.events=n,this.actions=s,this.channels=a}name;version;title;description;icon;readme;attributes;entities;events;actions;channels;_getEntityReference=e=>{let r={};for(let[n,s]of Object.entries(e)){let a=s.schema._def["x-zui"]?.title,o=s.schema._def.description,l=Id.ref(n);a&&l.title(a),o&&l.describe(o),r[n]=l}return r}};var xn=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 Ks=":";var eu=t=>{let[e,r]=t.split(Ks);return!e||!r?null:{namespace:e,eventName:r}},tu=t=>`${t.namespace}${Ks}${t.actionName}`,ru=t=>`${t.namespace}${Ks}${t.eventName}`,nu=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,s=r.actions[t.actionName]?.name??t.actionName;return{namespace:n,actionName:s}},su=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,s=r.events[t.eventName]?.name??t.eventName;return{namespace:n,eventName:s}};var au=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(s,a)=>o=>zm({client:t,interfaces:e.interfaces,integrationOrInterfaceName:n,methodName:a,input:o})})}),zm=async({client:t,interfaces:e,integrationOrInterfaceName:r,methodName:n,input:s})=>{let a=nu({namespace:r,actionName:n},e),o=tu(a);return(await t.callAction({type:o,input:s})).output};var Us=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})}},iu=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(s,a)=>{let o=e.alias!==void 0?`${e.alias}${_n}${a}`:a;return new Us(t,n,o)}})});var kn=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:s}=this._runtime,a=au(e,this._runtime),o=iu(e,this._runtime),l=yt(e);return{configuration:r,interfaces:n,actions:a,states:o,alias:s,workflows:l}}get actionHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._actionHandlers[r];if(n)return me.setName(s=>n({...s,...this._getTools(s.client)}),n.name)}})}get messageHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._messageHandlers[r]??[],s=this._messageHandlers["*"]??[];return S.unique([...n,...s]).sort((o,l)=>o.order-l.order).map(({handler:o})=>me.setName(l=>o({...l,...this._getTools(l.client)}),o.name))}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._eventHandlers[r]??[],s=Object.entries(this._eventHandlers).filter(([l])=>this._eventResolvesTo(l,r)).flatMap(([,l])=>l??[]),a=this._eventHandlers["*"]??[];return S.unique([...n,...s,...a]).sort((l,d)=>l.order-d.order).map(({handler:l})=>me.setName(d=>l({...d,...this._getTools(d.client)}),l.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._stateExpiredHandlers[r]??[],s=this._stateExpiredHandlers["*"]??[];return S.unique([...n,...s]).sort((o,l)=>o.order-l.order).map(({handler:o})=>me.setName(l=>o({...l,...this._getTools(l.client)}),o.name))}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._hookHandlers[r];if(n)return new Proxy({},{get:(s,a)=>{a=this._stripAliasPrefix(a);let o=n[a]??[],l=Object.entries(n).filter(([g])=>this._eventResolvesTo(g,a)).flatMap(([,g])=>g??[]),d=n["*"]??[];return S.unique([...o,...l,...d]).sort((g,h)=>g.order-h.order).map(({handler:g})=>me.setName(h=>g({...h,...this._getTools(h.client)}),g.name))}})}})}get workflowHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._workflowHandlers[r];if(n)return new Proxy({},{get:(s,a)=>(n[a]?.sort((l,d)=>l.order-d.order)??[]).map(({handler:l})=>me.setName(d=>l({...d,...this._getTools(d.client)}),l.name))})}})}on={message:(e,r)=>{this._messageHandlers[e]=S.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=S.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=S.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=S.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=S.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=S.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=S.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=S.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=S.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=S.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=S.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=S.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=S.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=S.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=S.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=S.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};_eventResolvesTo=(e,r)=>{let n=eu(e);if(!n)return!1;let s=su(n,this._runtime.interfaces);return ru(s)===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,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,addIssueToContext,agent,aimodel,any,array,bigint,boolean,botIdHeader,botUserIdHeader,coerce,configurationHeader,configurationTypeHeader,conversation,createZodEnum,cuid2Regex,cuidRegex,custom,datasource,date,discriminatedUnion,effect,emailRegex,enum:null,errorUtil,event,function:null,getErrorMap,getParsedType,instanceof:null,integrationIdHeader,intent,intersection,ipv4Regex,ipv6Regex,isAborted,isApiError,isAsync,isDirty,isEmojiRegex,isValid,knowledgebase,late,lazy,literal,makeIssue,map,mergeObjectSchemas,message,messages,nan,nativeEnum,never,null:null,nullable,number,object,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,z});
67
+ `,s+="})"}let a=r?s?r+s:n?n==="z.never()"?r+".strict()":r+`.catchall(${n})`:r:s||(n?`z.record(${n})`:"z.record(z.any())");return $.an.anyOf(t)&&(a+=`.and(${rd(p(c({},t),{anyOf:t.anyOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?p(c({},o),{type:"object"}):o)}),e)})`),$.a.oneOf(t)&&(a+=`.and(${Is(p(c({},t),{oneOf:t.oneOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?p(c({},o),{type:"object"}):o)}),e)})`),$.an.allOf(t)&&(a+=`.and(${Nt(p(c({},t),{allOf:t.allOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?p(c({},o),{type:"object"}):o)}),e)})`),a}i(nd,"parseObject");var mh=i(t=>{var e;let r="z.string()";if((e=t[b])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";r="z.coerce.string()"}return r+=G(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+=G(t,"pattern",({json:n})=>[`.regex(new RegExp(${n})`,", ",")"]),r+=G(t,"minLength",({json:n})=>[`.min(${n}`,", ",")"]),r+=G(t,"maxLength",({json:n})=>[`.max(${n}`,", ",")"]),r},"parseString"),vh=i((t,e)=>`${L(dh(t,"nullable"),e,!0)}.nullable()`,"parseNullable"),_h=i(t=>`z.ref('${t.$ref}')`,"parseRef"),Th=i((t,e)=>{var r,n;if(t.oneOf.length<=1||!((r=t.discriminator)!=null&&r.propertyName))return Is(t,e);let s=t.oneOf.map((a,o)=>L(a,p(c({},e),{path:[...e.path,"oneOf",o]})));return`z.discriminatedUnion("${(n=t.discriminator)==null?void 0:n.propertyName}", [${s.join(", ")}])`},"parseDiscriminator"),L=i((t,e={seen:new Map,path:[]},r)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let a=e.parserOverride(t,e);if(typeof a=="string")return a}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 s=Ph(t,e);return r||(s=bh(t,s),e.withoutDefaults||(s=wh(t,s))),n.r=s,s},"parseSchema"),bh=i((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),wh=i((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),Ph=i((t,e)=>$.a.nullable(t)?vh(t,e):$.an.object(t)?nd(t,e):$.an.array(t)?ph(t,e):$.an.anyOf(t)?rd(t,e):$.an.allOf(t)?Nt(t,e):$.a.discriminator(t)?Th(t,e):$.a.oneOf(t)?Is(t,e):$.a.not(t)?oh(t,e):$.an.enum(t)?gh(t):$.a.const(t)?fh(t):$.a.multipleType(t)?ih(t,e):$.a.primitive(t,"string")?mh(t):$.a.primitive(t,"number")||$.a.primitive(t,"integer")?hh(t):$.a.primitive(t,"boolean")?sh(t):$.a.primitive(t,"null")?lh(t):$.a.conditional(t)?yh(t,e):$.a.ref(t)?_h(t):ah(t),"selectParser"),$={an:{object:i(t=>t.type==="object","object"),array:i(t=>t.type==="array","array"),anyOf:i(t=>t.anyOf!==void 0,"anyOf"),allOf:i(t=>t.allOf!==void 0,"allOf"),enum:i(t=>t.enum!==void 0,"enum")},a:{nullable:i(t=>t.nullable===!0,"nullable"),multipleType:i(t=>Array.isArray(t.type),"multipleType"),not:i(t=>t.not!==void 0,"not"),const:i(t=>t.const!==void 0,"const"),primitive:i((t,e)=>t.type===e,"primitive"),conditional:i(t=>Boolean("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),"conditional"),discriminator:i(t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},"discriminator"),oneOf:i(t=>t.oneOf!==void 0,"oneOf"),ref:i(t=>t.$ref!==void 0,"ref")}},xh=i(t=>{let e;try{e=new Function("z",`return ${t}`)(u)}catch(r){return{sucess:!1,error:`Failed to evaluate schema: ${(r instanceof Error?r:new Error(String(r))).message}`}}return e instanceof u.ZodType?{sucess:!0,value:e}:{sucess:!1,error:`String "${t}" does not evaluate to a Zod schema`}},"evalZuiString"),kh=i(t=>L(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),Sh=i(t=>{let e=kh(t);e=e.replaceAll("errors: z.ZodError[]","errors");let r=xh(e);if(!r.sucess)throw new zr(r.error);return r.value},"jsonSchemaToZod"),Bt=i((t,e)=>{var r,n;if(e[b]&&t._def&&(t._def[b]=e[b]),((r=t._def)==null?void 0:r.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([s,a])=>{let o=typeof t._def.shape=="function"?t._def.shape():t._def.shape;o[s]&&Bt(o[s],a)}),((n=t._def)==null?void 0:n.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&Bt(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let s=e.items;if(typeof s=="object"&&!Array.isArray(s)){let a=t._def.type;a&&Bt(a,s)}else Array.isArray(s)&&s.forEach((a,o)=>{let l=t._def;l.typeName===_.ZodFirstPartyTypeKind.ZodTuple&&Bt(l.items[o],a)})}},"applyZuiPropsRecursively"),Eh=i(t=>{let e=Sh(t);return Bt(e,t),e},"fromJSONSchemaLegacy"),Oh=i(t=>{var e,r;return t.anyOf!==void 0&&t.anyOf.length===2&&t.anyOf.some(n=>typeof n!="boolean"&&sd(n))&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===u.ZodFirstPartyTypeKind.ZodOptional},"isOptionalSchema"),Zh=i(t=>{var e,r;return t.anyOf!==void 0&&t.anyOf.length===2&&t.anyOf.some(n=>typeof n!="boolean"&&n.type==="null")&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===u.ZodFirstPartyTypeKind.ZodNullable},"isNullableSchema"),sd=i(t=>{var e,r;return t.not===!0&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===u.ZodFirstPartyTypeKind.ZodUndefined},"isUndefinedSchema"),Bh=i(t=>{var e,r;return!t.not&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===u.ZodFirstPartyTypeKind.ZodUnknown},"isUnknownSchema"),Ih=i(({type:t,minimum:e,exclusiveMinimum:r,maximum:n,exclusiveMaximum:s,multipleOf:a,format:o})=>{let l=u.number();return t==="integer"&&(l=l.int()),o==="finite"&&(l=l.finite()),r!==void 0?l=l.gt(r):e!==void 0&&(l=l.gte(e)),s!==void 0?l=l.lt(s):n!==void 0&&(l=l.lte(n)),a!==void 0&&(l=l.multipleOf(a)),l},"numberJSONSchemaToZuiNumber"),Ch=i(({format:t,pattern:e,minLength:r,maxLength:n})=>{let s=u.string();if(r&&n&&r===n?s=s.length(r):(r&&(s=s.min(r)),n&&(s=s.max(n))),t==="cuid"||e===j.cuid)s=s.cuid();else if(t==="cuid2"||e===j.cuid2)s=s.cuid2();else if(t==="emoji"||e===j.emoji)s=s.emoji();else if(t==="ulid"||e===j.ulid)s=s.ulid();else if(t==="date-time"){let{precision:a,offset:o}=e?Wy(e):{};s=s.datetime({precision:a,offset:o})}else t==="email"||e===j.email?s=s.email():t==="ipv4"||e===j.ipv4?s=s.ip():t==="ipv6"||e===j.ipv6?s=s.ip("v6"):t==="uri"?s=s.url():t==="uuid"||e===j.uuid?s=s.uuid():e&&(s=s.regex(new RegExp(e)));return s},"stringJSONSchemaToZuiString"),vt=i((t,e)=>{let r=[];e.enum!==void 0&&r.push(...e.enum),e.const!==void 0&&r.push(e.const);let n=r.filter(o=>typeof o===t),[s]=n;if(!s){if(t==="string"&&e.type==="string")return Ch(e);if(t==="number"&&(e.type==="number"||e.type==="integer"))return Ih(e);if(t==="boolean")return u.boolean();if(t==="null")return u.null();throw new zr(`Unknown primitive type: "${t}"`)}if(n.length===1)return u.literal(s);let a=n.map(o=>u.literal(o));return u.union(a)},"toZuiPrimitive"),Ah=i((t,e)=>Rh(t)?Dh(t,e):Hh(t)?Mh(t,e):Nh(t,e),"arrayJSONSchemaToZuiArray"),Rh=i(t=>Array.isArray(t.items),"_isTuple"),Hh=i(t=>t.items!==void 0&&t.uniqueItems,"_isSet"),Dh=i(({items:t,additionalItems:e},r)=>{let n=t.map(r),s=u.tuple(n);return e!==void 0&&(s=s.rest(r(e))),s},"_handleTuple"),Mh=i(({items:t,minItems:e,maxItems:r},n)=>{let s=u.set(n(t));return e&&(s=s.min(e)),r&&(s=s.max(r)),s},"_handleSet"),Nh=i(({minItems:t,maxItems:e,items:r},n)=>{let s=u.array(n(r));return t&&t===e?s.length(t):(t&&(s=s.min(t)),e&&(s=s.max(e)),s)},"_handleArray"),Xe=u.any();function ad(t){return z(t)}i(ad,"fromJSONSchema");function z(t){var e;if(t===void 0)return Xe;if(t===!0)return u.any();if(t===!1)return u.never();if(t.default!==void 0)return z(p(c({},t),{default:void 0})).default(t.default);if(t.readOnly)return z(p(c({},t),{readOnly:void 0})).readonly();if(t.oneOf!==void 0)throw new ve({oneOf:t.oneOf});if(t.patternProperties!==void 0)throw new ve({patternProperties:t.patternProperties});if(t.propertyNames!==void 0)throw new ve({propertyNames:t.propertyNames});if(t.if!==void 0)throw new ve({if:t.if});if(t.then!==void 0)throw new ve({then:t.then});if(t.else!==void 0)throw new ve({else:t.else});if(t.$ref!==void 0)return u.ref(t.$ref);if(t.not!==void 0){if(sd(t))return u.undefined();if(t.not===!0)return u.never();throw new ve({not:t.not})}if(Array.isArray(t.type)){if(t.type.length===0)return Xe;if(t.type.length===1)return z(p(c({},t),{type:t.type[0]}));let r=t,{type:n}=r,s=Za(r,["type"]),a=t.type.map(o=>z(p(c({},s),{type:o})));return u.union(a)}if(t.type==="string")return t.enum&&t.enum.length>0?u.enum(t.enum):vt("string",t);if(t.type==="integer"){let r=vt("number",t);return r instanceof u.ZodNumber?r.int():r}if(t.type==="number")return vt("number",t);if(t.type==="boolean")return vt("boolean",t);if(t.type==="null")return vt("null",t);if(t.type==="array")return Ah(t,z);if(t.type==="object"){if(t.additionalProperties!==void 0&&t.properties!==void 0){let r=z(t.additionalProperties);return z(p(c({},t),{additionalProperties:void 0})).catchall(r)}if(t.properties!==void 0){let r={};for(let[n,s]of Object.entries(t.properties)){let a=z(s),o=(e=t.required)!=null?e:[];r[n]=o.includes(n)?a:a.optional()}return u.object(r)}if(t.additionalProperties!==void 0){let r=z(t.additionalProperties);return u.record(r)}return u.record(Xe)}if(t.anyOf!==void 0){if(t.anyOf.length===0)return Xe;if(t.anyOf.length===1)return z(t.anyOf[0]);if(Oh(t))return z(t.anyOf[0]).optional();if(Zh(t))return z(t.anyOf[0]).nullable();let r=t.anyOf.map(z);return u.union(r)}if(t.allOf!==void 0){if(t.allOf.length===0)return Xe;if(t.allOf.length===1)return z(t.allOf[0]);let[r,...n]=t.allOf,s=z(r),a=z({allOf:n});return u.intersection(s,a)}return Bh(t)?u.unknown():Xe}i(z,"_fromJSONSchema");var $h=/^\d{4}-\d{2}-\d{2}(T|\s)?((\d{2}:\d{2}:\d{2}(\.\d{1,3})?)|(\d{2}:\d{2}))?(\s?([+-]\d{2}:\d{2}|Z))?$/,zn=i((t,e,r=!0)=>{if(typeof t!="object")throw new Rn("Input must be an object");let n=i(o=>{let l=o;return e?.nullable&&(l=l.nullable()),e?.optional&&(l=l.optional()),e?.passtrough&&typeof l.passthrough=="function"&&(l=l.passthrough()),l},"applyOptions"),s=Object.entries(t).reduce((o,[l,d])=>{if(d===null)o[l]=n(_.null());else switch(typeof d){case"string":o[l]=$h.test(d)?n(_.string().datetime()):n(_.string());break;case"number":o[l]=n(_.number());break;case"boolean":o[l]=n(_.boolean());break;case"object":Array.isArray(d)?d.length===0?o[l]=n(_.array(_.unknown())):typeof d[0]=="object"?o[l]=n(_.array(zn(d[0],e,!1))):["string","number","boolean"].includes(typeof d[0])&&(o[l]=n(_.array(_[typeof d[0]]()))):o[l]=n(zn(d,e,!1));break;default:throw new Rn(`Unsupported type for key ${l}`)}return o},{}),a=Object.keys(s).length>0;return e?.passtrough||!r&&!a?_.object(s).passthrough():_.object(s)},"fromObject");function id(){return{}}i(id,"parseAnyDef");function od(t,e){var r,n;let s={type:"array"};return((n=(r=t.type)==null?void 0:r._def)==null?void 0:n.typeName)!=="ZodAny"&&(s.items=C(t.type._def,p(c({},e),{currentPath:[...e.currentPath,"items"]}))),t.minLength&&H(s,"minItems",t.minLength.value,t.minLength.message,e),t.maxLength&&H(s,"maxItems",t.maxLength.value,t.maxLength.message,e),t.exactLength&&(H(s,"minItems",t.exactLength.value,t.exactLength.message,e),H(s,"maxItems",t.exactLength.value,t.exactLength.message,e)),s}i(od,"parseArrayDef");function ld(t,e){let r=c({type:"integer",format:"int64"},t.coerce?{[b]:{coerce:t.coerce||void 0}}:{});if(!t.checks)return r;for(let n of t.checks)switch(n.kind){case"min":e.target==="jsonSchema7"?n.inclusive?H(r,"minimum",n.value,n.message,e):H(r,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(r.exclusiveMinimum=!0),H(r,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?H(r,"maximum",n.value,n.message,e):H(r,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(r.exclusiveMaximum=!0),H(r,"maximum",n.value,n.message,e));break;case"multipleOf":H(r,"multipleOf",n.value,n.message,e);break}return r}i(ld,"parseBigintDef");function cd(t){return c({type:"boolean"},t.coerce?{[b]:{coerce:t.coerce||void 0}}:{})}i(cd,"parseBooleanDef");function dd(t,e){return C(t.type._def,e)}i(dd,"parseBrandedDef");var jh=i((t,e)=>C(t.innerType._def,e),"parseCatchDef");function ud(t,e){return e.dateStrategy=="integer"?Kh(t,e):c({type:"string",format:"date-time"},t.coerce?{[b]:{coerce:t.coerce||void 0}}:{})}i(ud,"parseDateDef");var Kh=i((t,e)=>{let r=c({type:"integer",format:"unix-time"},t.coerce?{[b]:{coerce:t.coerce||void 0}}:{});for(let n of t.checks)switch(n.kind){case"min":e.target==="jsonSchema7"&&H(r,"minimum",n.value,n.message,e);break;case"max":e.target==="jsonSchema7"&&H(r,"maximum",n.value,n.message,e);break}return r},"integerDateParser");function pd(t,e){return p(c({},C(t.innerType._def,e)),{default:t.defaultValue()})}i(pd,"parseDefaultDef");function fd(t,e){return e.effectStrategy==="input"?C(t.schema._def,e):{}}i(fd,"parseEffectsDef");function gd(t){return{type:"string",enum:t.values}}i(gd,"parseEnumDef");var Uh=i(t=>"type"in t&&t.type==="string"?!1:"allOf"in t,"isJsonSchema7AllOfType");function yd(t,e){let r=[C(t.left._def,p(c({},e),{currentPath:[...e.currentPath,"allOf","0"]})),C(t.right._def,p(c({},e),{currentPath:[...e.currentPath,"allOf","1"]}))].filter(a=>!!a),n=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,s=[];return r.forEach(a=>{if(Uh(a))s.push(...a.allOf),a.unevaluatedProperties===void 0&&(n=void 0);else{let o=a;if("additionalProperties"in a&&a.additionalProperties===!1){let l=a,{additionalProperties:d}=l;o=Za(l,["additionalProperties"])}else n=void 0;s.push(o)}}),s.length?c({allOf:s},n):void 0}i(yd,"parseIntersectionDef");function hd(t,e){let r=typeof t.value;return r!=="bigint"&&r!=="number"&&r!=="boolean"&&r!=="string"?{type:Array.isArray(t.value)?"array":"object"}:e.target==="openApi3"?{type:r==="bigint"?"integer":r,enum:[t.value]}:{type:r==="bigint"?"integer":r,const:t.value}}i(hd,"parseLiteralDef");function Cs(t,e){var r,n,s,a,o;if(e.target==="openApi3"&&((r=t.keyType)==null?void 0:r._def.typeName)==="ZodEnum")return{type:"object",required:t.keyType._def.values,properties:t.keyType._def.values.reduce((d,f)=>{var g;return p(c({},d),{[f]:(g=C(t.valueType._def,p(c({},e),{currentPath:[...e.currentPath,"properties",f]})))!=null?g:{}})},{}),additionalProperties:!1};let l={type:"object",additionalProperties:(n=C(t.valueType._def,p(c({},e),{currentPath:[...e.currentPath,"additionalProperties"]})))!=null?n:{}};if(e.target==="openApi3")return l;if(((s=t.keyType)==null?void 0:s._def.typeName)==="ZodString"&&((a=t.keyType._def.checks)!=null&&a.length)){let d=Object.entries(is(t.keyType._def,e)).reduce((f,[g,h])=>g==="type"?f:p(c({},f),{[g]:h}),{});return p(c({},l),{propertyNames:d})}else if(((o=t.keyType)==null?void 0:o._def.typeName)==="ZodEnum")return p(c({},l),{propertyNames:{enum:t.keyType._def.values}});return l}i(Cs,"parseRecordDef");function md(t,e){if(e.mapStrategy==="record")return Cs(t,e);let r=C(t.keyType._def,p(c({},e),{currentPath:[...e.currentPath,"items","items","0"]}))||{},n=C(t.valueType._def,p(c({},e),{currentPath:[...e.currentPath,"items","items","1"]}))||{};return{type:"array",maxItems:125,items:{type:"array",items:[r,n],minItems:2,maxItems:2}}}i(md,"parseMapDef");function vd(t){let e=t.values,n=Object.keys(t.values).filter(a=>typeof e[e[a]]!="number").map(a=>e[a]),s=Array.from(new Set(n.map(a=>typeof a)));return{type:s.length===1?s[0]==="string"?"string":"number":["string","number"],enum:n.filter(a=>typeof a=="string"||typeof a=="number")}}i(vd,"parseNativeEnumDef");function _d(){return{not:{}}}i(_d,"parseNeverDef");function Td(t){return t.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}i(Td,"parseNullDef");var Ur={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function bd(t,e){if(e.target==="openApi3")return ka(t,e);let r=t.options instanceof Map?Array.from(t.options.values()):t.options;if(r.every(n=>n._def.typeName in Ur&&(!n._def.checks||!n._def.checks.length))){let n=r.reduce((s,a)=>{let o=Ur[a._def.typeName];return o&&!s.includes(o)?[...s,o]:s},[]);return{type:n.length>1?n:n[0]}}else if(r.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){let n=r.reduce((s,a)=>{let o=typeof a._def.value;switch(o){case"string":case"number":case"boolean":return[...s,o];case"bigint":return[...s,"integer"];case"object":if(a._def.value===null)return[...s,"null"];case"symbol":case"undefined":case"function":default:return s}},[]);if(n.length===r.length){let s=n.filter((a,o,l)=>l.indexOf(a)===o);return{type:s.length>1?s:s[0],enum:r.reduce((a,o)=>a.includes(o._def.value)?a:[...a,o._def.value],[])}}}else if(r.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:r.reduce((n,s)=>[...n,...s._def.values.filter(a=>!n.includes(a))],[])};return ka(t,e)}i(bd,"parseUnionDef");var ka=i((t,e)=>{let r=(t.options instanceof Map?Array.from(t.options.values()):t.options).map((s,a)=>C(s._def,p(c({},e),{currentPath:[...e.currentPath,e.unionStrategy,`${a}`]}))).filter(s=>!!s&&(!e.strictUnions||typeof s=="object"&&Object.keys(s).length>0)),n=e.discriminator&&t.typeName==="ZodDiscriminatedUnion"&&typeof t.discriminator=="string"?{discriminator:{propertyName:t.discriminator}}:{};if(r.length)return e.unionStrategy==="anyOf"?c({anyOf:r},n):c({oneOf:r},n)},"asUnionOf");function wd(t,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(t.innerType._def.typeName)&&(!t.innerType._def.checks||!t.innerType._def.checks.length)){let n=t.innerType;if(e.target==="openApi3"){let a={type:Ur[n._def.typeName],nullable:!0};return Ln(n._def,e,a)}let s={type:[Ur[n._def.typeName],"null"]};return Ln(n._def,e,s)}if(e.target==="openApi3"){let n=C(t.innerType._def,p(c({},e),{currentPath:[...e.currentPath]}));return n&&p(c({},n),{nullable:!0})}let r=C(t.innerType._def,p(c({},e),{currentPath:[...e.currentPath,"anyOf","0"]}));return r&&{anyOf:[r,{type:"null"}]}}i(wd,"parseNullableDef");function Pd(t,e){let r=c({type:"number"},t.coerce?{[b]:{coerce:t.coerce||void 0}}:{});if(!t.checks)return r;for(let n of t.checks)switch(n.kind){case"int":r.type="integer",as(r,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?H(r,"minimum",n.value,n.message,e):H(r,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(r.exclusiveMinimum=!0),H(r,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?H(r,"maximum",n.value,n.message,e):H(r,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(r.exclusiveMaximum=!0),H(r,"maximum",n.value,n.message,e));break;case"multipleOf":H(r,"multipleOf",n.value,n.message,e);break}return r}i(Pd,"parseNumberDef");var Fh=i((t,e)=>{var r;return t.unknownKeys instanceof E?(r=C(t.unknownKeys._def,p(c({},e),{currentPath:[...e.currentPath,"additionalProperties"]})))!=null?r:!0:t.unknownKeys==="passthrough"},"getAdditionalProperties");function xd(t,e){let r=p(c({type:"object"},Object.entries(t.shape()).reduce((n,[s,a])=>{if(a===void 0||a._def===void 0)return n;let o=C(a._def,p(c({},e),{currentPath:[...e.currentPath,"properties",s],propertyPath:[...e.currentPath,"properties",s]}));return o===void 0?n:{properties:p(c({},n.properties),{[s]:o}),required:a.isOptional()?n.required:[...n.required,s]}},{properties:{},required:[]})),{additionalProperties:Fh(t,e)});return r.required.length||delete r.required,r}i(xd,"parseObjectDef");var zh=i((t,e)=>{var r;if(e.currentPath.toString()===((r=e.propertyPath)==null?void 0:r.toString()))return C(t.innerType._def,e);let n=C(t.innerType._def,p(c({},e),{currentPath:[...e.currentPath,"anyOf","1"]}));return n?{anyOf:[{not:{}},n]}:{}},"parseOptionalDef"),Lh=i((t,e)=>{if(e.pipeStrategy==="input")return C(t.in._def,e);if(e.pipeStrategy==="output")return C(t.out._def,e);let r=C(t.in._def,p(c({},e),{currentPath:[...e.currentPath,"allOf","0"]})),n=C(t.out._def,p(c({},e),{currentPath:[...e.currentPath,"allOf",r?"1":"0"]}));return{allOf:[r,n].filter(s=>s!==void 0)}},"parsePipelineDef");function kd(t,e){return C(t.type._def,e)}i(kd,"parsePromiseDef");function Sd(t,e){let n={type:"array",uniqueItems:!0,items:C(t.valueType._def,p(c({},e),{currentPath:[...e.currentPath,"items"]}))};return t.minSize&&H(n,"minItems",t.minSize.value,t.minSize.message,e),t.maxSize&&H(n,"maxItems",t.maxSize.value,t.maxSize.message,e),n}i(Sd,"parseSetDef");function Ed(t,e){return t.rest?{type:"array",minItems:t.items.length,items:t.items.map((r,n)=>C(r._def,p(c({},e),{currentPath:[...e.currentPath,"items",`${n}`]}))).reduce((r,n)=>n===void 0?r:[...r,n],[]),additionalItems:C(t.rest._def,p(c({},e),{currentPath:[...e.currentPath,"additionalItems"]}))}:{type:"array",minItems:t.items.length,maxItems:t.items.length,items:t.items.map((r,n)=>C(r._def,p(c({},e),{currentPath:[...e.currentPath,"items",`${n}`]}))).reduce((r,n)=>n===void 0?r:[...r,n],[])}}i(Ed,"parseTupleDef");function Od(){return{not:{}}}i(Od,"parseUndefinedDef");function Zd(){return{}}i(Zd,"parseUnknownDef");var Wh=i((t,e)=>C(t.innerType._def,e),"parseReadonlyDef");function Bd(t){return{$ref:t.uri}}i(Bd,"parseRefDef");function C(t,e,r=!1){let n=e.seen.get(t);if(n&&!r){let o=qh(n,e);if(o!==void 0)return o}let s={def:t,path:e.currentPath,jsonSchema:void 0};e.seen.set(t,s);let a=Gh(t,t.typeName,e);return a&&Ln(t,e,a),s.jsonSchema=a,a}i(C,"parseDef");var qh=i((t,e)=>{switch(e.$refStrategy){case"root":return{$ref:t.path.join("/")};case"relative":return{$ref:Vh(e.currentPath,t.path)};case"none":case"seen":return t.path.length<e.currentPath.length&&t.path.every((r,n)=>e.currentPath[n]===r)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),{}):e.$refStrategy==="seen"?{}:void 0}},"get$ref"),Vh=i((t,e)=>{let r=0;for(;r<t.length&&r<e.length&&t[r]===e[r];r++);return[(t.length-r).toString(),...e.slice(r)].join("/")},"getRelativePath"),Gh=i((t,e,r)=>{switch(e){case"ZodString":return is(t,r);case"ZodNumber":return Pd(t,r);case"ZodObject":return xd(t,r);case"ZodBigInt":return ld(t,r);case"ZodBoolean":return cd(t);case"ZodDate":return ud(t,r);case"ZodUndefined":return Od();case"ZodNull":return Td(r);case"ZodArray":return od(t,r);case"ZodUnion":case"ZodDiscriminatedUnion":return bd(t,r);case"ZodIntersection":return yd(t,r);case"ZodTuple":return Ed(t,r);case"ZodRecord":return Cs(t,r);case"ZodRef":return Bd(t);case"ZodLiteral":return hd(t,r);case"ZodEnum":return gd(t);case"ZodNativeEnum":return vd(t);case"ZodNullable":return wd(t,r);case"ZodOptional":return zh(t,r);case"ZodMap":return md(t,r);case"ZodSet":return Sd(t,r);case"ZodLazy":return C(t.getter()._def,r);case"ZodPromise":return kd(t,r);case"ZodNaN":case"ZodNever":return _d();case"ZodEffects":return fd(t,r);case"ZodAny":return id();case"ZodUnknown":return Zd();case"ZodDefault":return pd(t,r);case"ZodBranded":return dd(t,r);case"ZodReadonly":return Wh(t,r);case"ZodCatch":return jh(t,r);case"ZodPipeline":return Lh(t,r);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return(n=>{})(e)}},"selectParser"),Ln=i((t,e,r)=>(t.description&&(r.description=t.description,e.markdownDescription&&(r.markdownDescription=t.description)),Object.assign(r,{[b]:c(c({},t[b]),r[b])}),r),"addMeta"),Sa={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"string",mapStrategy:"entries",definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",emailStrategy:"format:email",discriminator:!1,unionStrategy:"anyOf"},Jh=i(t=>typeof t=="string"?p(c({},Sa),{name:t}):c(c({},Sa),t),"getDefaultOptions"),Xh=i(t=>{let e=Jh(t),r=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return p(c({},e),{currentPath:r,propertyPath:void 0,seen:new Map(Object.entries(e.definitions).map(([n,s])=>[s._def,{def:s._def,path:[...e.basePath,e.definitionPath,n],jsonSchema:void 0}]))})},"getRefs"),Yh=i((t,e)=>{var r;let n=Xh(e),s=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((d,[f,g])=>{var h;return p(c({},d),{[f]:(h=C(g._def,p(c({},n),{currentPath:[...n.basePath,n.definitionPath,f]}),!0))!=null?h:{}})},{}):void 0,a=typeof e=="string"?e:e?.name,o=(r=C(t._def,a===void 0?n:p(c({},n),{currentPath:[...n.basePath,n.definitionPath,a]}),!1))!=null?r:{},l=a===void 0?s?p(c({},o),{[n.definitionPath]:s}):o:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,a].join("/"),[n.definitionPath]:p(c({},s),{[a]:o})};return n.target==="jsonSchema7"?l.$schema="http://json-schema.org/draft-07/schema#":n.target==="jsonSchema2019-09"&&(l.$schema="https://json-schema.org/draft/2019-09/schema#"),l},"zodToJsonSchema"),Qh=i((t,e={target:"openApi3"})=>{let r=Yh(t,e);return e.$schemaUrl===!1?delete r.$schema:typeof e.$schemaUrl=="string"&&(r.$schema=e.$schemaUrl),r},"toJSONSchemaLegacy");var pt=(t,e)=>{let r=t._def,n=e._def;if(r.typeName===_.ZodFirstPartyTypeKind.ZodObject&&n.typeName===_.ZodFirstPartyTypeKind.ZodObject){let s=r.shape(),a=n.shape();return _.object({...s,...a})}if(r.typeName===_.ZodFirstPartyTypeKind.ZodRecord&&n.typeName===_.ZodFirstPartyTypeKind.ZodRecord)return _.record(_.intersection(r.valueType,n.valueType));throw new Error("Cannot merge object schemas with record schemas")},Id=_;var re=_.string().min(1),Ad=_.object({text:re}),Rd=_.object({markdown:re}),Hd=_.object({imageUrl:re}),Dd=_.object({audioUrl:re}),Md=_.object({videoUrl:re}),Nd=_.object({fileUrl:re,title:re.optional()}),$d=_.object({latitude:_.number(),longitude:_.number(),address:_.string().optional(),title:_.string().optional()}),jd=_.object({title:re,subtitle:re.optional(),imageUrl:re.optional(),actions:_.array(_.object({action:_.enum(["postback","url","say"]),label:re,value:re}))}),Cd=_.object({text:re,options:_.array(_.object({label:re,value:re}))}),em=_.object({items:_.array(jd)}),tm=_.union([_.object({type:_.literal("text"),payload:Ad}),_.object({type:_.literal("markdown"),payload:Rd}),_.object({type:_.literal("image"),payload:Hd}),_.object({type:_.literal("audio"),payload:Dd}),_.object({type:_.literal("video"),payload:Md}),_.object({type:_.literal("file"),payload:Nd}),_.object({type:_.literal("location"),payload:$d})]),rm=_.object({items:_.array(tm)}),nm={schema:Rd},sm={text:{schema:Ad},image:{schema:Hd},audio:{schema:Dd},video:{schema:Md},file:{schema:Nd},location:{schema:$d},carousel:{schema:em},card:{schema:jd},dropdown:{schema:Cd},choice:{schema:Cd},bloc:{schema:rm}};var Lt="x-bot-id",Rs="x-bot-user-id",Hs="x-integration-id",Ds="x-webhook-id",Ms="x-bp-configuration-type",Wt="x-bp-configuration",qt="x-bp-operation",Ns="x-bp-type",am={HIDDEN_IN_STUDIO:{bpActionHiddenInStudio:"true"},AWAIT_RETURN:{bpActionAwaitReturn:"true"}};var Kd=require("browser-or-node");var $s=console;function oe(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function Vt(t,e=8072,r=cm){if(!Kd.isNode)throw new Error("This function can only be called in Node.js");let s=require("http").createServer(async(a,o)=>{try{let l=await im(a);if(l.path==="/health"){o.writeHead(200).end("ok");return}let d=await t(l);o.writeHead(d?.status??200,d?.headers??{}).end(d?.body??"{}")}catch(l){$s.error("Error while handling request",{error:l?.message??"Internal error occured"}),o.writeHead(500).end(JSON.stringify({error:l?.message??"Internal error occured"}))}});return s.listen(e,()=>r(e)),s}async function im(t){let e=await lm(t),r={};for(let s=0;s<t.rawHeaders.length;s+=2){let a=t.rawHeaders[s].toLowerCase(),o=t.rawHeaders[s+1];r[a]=o}let n=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:n.pathname,query:om(n.search,"?"),headers:r,method:t.method?.toUpperCase()??"GET"}}function om(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function lm(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",s=>n+=s.toString()),t.on("error",s=>r(s)),t.on("end",()=>e(n))})}function cm(t){$s.info(`Listening on port ${t}`)}var Sn=require("@botpress/client");var M={};ht(M,{mapKeys:()=>pm,mapValues:()=>um,mergeRecords:()=>gm,pairs:()=>gn,stripUndefinedProps:()=>fm,values:()=>dm});var gn=t=>Object.entries(t),dm=t=>Object.values(t),um=(t,e)=>Object.fromEntries(gn(t).map(([r,n])=>[r,e(n,r)])),pm=(t,e)=>Object.fromEntries(gn(t).map(([r,n])=>[e(r),n])),fm=t=>Object.fromEntries(gn(t).filter(([,e])=>e!==void 0)),gm=(t,e,r)=>{let n=[...Object.keys(t),...Object.keys(e)],s=[...new Set(n)],a={};for(let o of s){let l=t[o],d=e[o];l&&d?a[o]=r(l,d):l?a[o]=l:d&&(a[o]=d)}return a};var S={};ht(S,{safePush:()=>ym,unique:()=>hm});var ym=(t,...e)=>t?[...t,...e]:[...e],hm=t=>Array.from(new Set(t));var me={};ht(me,{setName:()=>mm});var mm=(t,e)=>(Object.defineProperty(t,"name",{value:e}),t);var Ud=t=>{let{name:e,version:r}=t,n={actions:{},events:{},channels:{}},s={name:e,version:r,entities:M.mapValues(t.entities,o=>({name:o.name})),actions:{},events:{},channels:{}},a=M.mapValues(t.entities,o=>o.schema);for(let[o,l]of Object.entries(t.definition.actions??{})){let d=l.input.schema.dereference(a),f=l.output.schema.dereference(a),g=t.actions?.[o]?.name??o;n.actions[g]={...l,...t.actions?.[o]??{},input:{schema:d},output:{schema:f}},s.actions[o]={name:g}}for(let[o,l]of Object.entries(t.definition.events??{})){let d=l.schema.dereference(a),f=t.events?.[o]?.name??o;n.events[f]={...l,...t.events?.[o]??{},schema:d},s.events[o]={name:f}}for(let[o,l]of Object.entries(t.definition.channels??{})){let d={};for(let[g,h]of Object.entries(l.messages)){let x=h.schema.dereference(a);d[g]={...h,schema:x}}let f=t.channels?.[o]?.name??o;n.channels[f]={...l,...t.channels?.[o]??{},message:{...l.message??{},tags:{...l.message?.tags??{},...t.channels?.[o]?.message?.tags??{}}},conversation:{...l.conversation??{},tags:{...l.conversation?.tags??{},...t.channels?.[o]?.conversation?.tags??{}}},messages:d},s.channels[o]={name:f}}return{resolved:n,statement:s}};var yn=Symbol("schemaName"),Fd=t=>t?M.mapValues(t,(r,n)=>({...r,[yn]:n})):{},zd=t=>yn in t&&t[yn]!==void 0,Ld=t=>t[yn];var hn=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:s,events:a,channels:o}=this._callBuilder(e,r),l=this;l.interfaces??={};let d=Object.values(n).map(x=>x.name),f=d.length===0?e.name:`${e.name}<${d.join(",")}>`,{resolved:g,statement:h}=Ud({...e,entities:n,actions:M.stripUndefinedProps(s),events:M.stripUndefinedProps(a),channels:M.stripUndefinedProps(o)});return l.actions=M.mergeRecords(l.actions??{},g.actions,this._mergeActions),l.channels=M.mergeRecords(l.channels??{},g.channels,this._mergeChannels),l.events=M.mergeRecords(l.events??{},g.events,this._mergeEvents),l.interfaces[f]={id:e.id,...h},this}_callBuilder(e,r){let s={entities:Fd(this.entities)},a=r(s),o=M.pairs(a.entities).find(([d,f])=>!zd(f));if(o)throw new Error(`Cannot extend interface "${e.name}" with entity "${o[0]}"; the provided schema is not part of the integration's entities.`);return{entities:M.mapValues(a.entities,d=>({name:Ld(d),schema:d.schema})),actions:a.actions??{},events:a.events??{},channels:a.channels??{}}}_mergeActions=(e,r)=>({...e,...r,input:{schema:pt(e.input.schema,r.input.schema)},output:{schema:pt(e.output.schema,r.output.schema)}});_mergeEvents=(e,r)=>({...e,...r,schema:pt(e.schema,r.schema)});_mergeChannels=(e,r)=>{let n=M.mergeRecords(e.messages,r.messages,this._mergeMessage),s;(e.conversation||r.conversation)&&(s={tags:{...e.conversation?.tags,...r.conversation?.tags}});let a;return(e.message||r.message)&&(a={tags:{...e.message?.tags,...r.message?.tags}}),{...e,...r,messages:n,conversation:s,message:a}};_mergeMessage=(e,r)=>({schema:pt(e.schema,r.schema)})};var Ve=require("@botpress/client");var Wd=zs(require("@botpress/client")),mn={retries:3,retryCondition:t=>Wd.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:(t,e)=>(vm(e.response?.headers??{})??t)*1e3},vm=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 _m(String(n))}},_m=t=>{let e=Tm(t)?bm(t):t.length>0?parseInt(t,10):void 0;return e===void 0||isNaN(e)?void 0:e},Tm=t=>t.includes(" "),bm=t=>{let e=wm(t);if(!e)return;let r=new Date;return Math.max(0,Math.floor((e.getTime()-r.getTime())/1e3))},wm=t=>{let e=new Date(t);return isNaN(e.getTime())?void 0:e};var ft=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 vn=class{_cost=0;get cost(){return this._cost}setCost(e){this._cost=e}toJSON(){return{cost:this.cost}}};var _n="#";var Pm=_.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),Vd=t=>{let e=t[Lt],r=t[Rs],n=t[Hs],s=t[Ds],a=t[Ms],o=t[Wt],l=Pm.parse(t[qt]);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(!s)throw new Error("Missing webhook headers");if(!o)throw new Error("Missing configuration headers");if(!l)throw new Error("Missing operation headers");return{botId:e,botUserId:r,integrationId:n,webhookId:s,operation:l,configurationType:a??null,configuration:o?JSON.parse(Buffer.from(o,"base64").toString("utf-8")):{}}};var Gd=zs(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=Gd.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 we=class extends gt{constructor(e){super({visibleToBotOwners:!0,...e})}with(e){return new we({...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 xm=t=>["traceparent","tracestate","sentry-trace"].reduce((e,r)=>(t[r]&&(e[r]=t[r]),e),{}),Jd=t=>async e=>{let r=Vd(e.headers),[,n]=(e.headers.traceparent||"").split("-"),s=new Ve.Client({botId:r.botId,integrationId:r.integrationId,retry:mn,headers:xm(e.headers)}),a=new ft(s),o=new we({traceId:n}),l={ctx:r,req:e,client:a,logger:o,instance:t};try{let d;switch(r.operation){case"webhook_received":d=await Sm(l);break;case"register":d=await Em(l);break;case"unregister":d=await Om(l);break;case"message_created":d=await Im(l);break;case"action_triggered":d=await Cm(l);break;case"ping":d=await km(l);break;case"create_user":d=await Zm(l);break;case"create_conversation":d=await Bm(l);break;default:throw new Error(`Unknown operation ${r.operation}`)}return d?{...d,status:d.status??200}:{status:200}}catch(d){if((0,Ve.isApiError)(d)){let g=d.type==="Runtime"?d:new Ve.RuntimeError(d.message,d);return o.forBot().error(g.message),{status:g.code,body:JSON.stringify(g.toJSON())}}console.error(d);let f=new Ve.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 o.forBot().error(f.message),{status:f.code,body:JSON.stringify(f.toJSON())}}},km=async t=>{},Sm=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{let{req:a}=oe(r);return s.webhook({client:t,ctx:e,req:a,logger:n})},Em=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.register)return;let{webhookUrl:a}=oe(r);await s.register({client:t,ctx:e,webhookUrl:a,logger:n})},Om=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.unregister)return;let{webhookUrl:a}=oe(r);await s.unregister({ctx:e,webhookUrl:a,client:t,logger:n})},Zm=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.createUser)return;let{tags:a}=oe(r);return await s.createUser({ctx:e,client:t,tags:a,logger:n})},Bm=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.createConversation)return;let{channel:a,tags:o}=oe(r);return await s.createConversation({ctx:e,client:t,channel:a,tags:o,logger:n})},Im=async({ctx:t,req:e,client:r,logger:n,instance:s})=>{let{conversation:a,user:o,type:l,payload:d,message:f}=oe(e),g=s.channels[a.channel];if(!g)throw new Error(`Channel ${a.channel} not found`);let h=g.messages[l];if(!h)throw new Error(`Message of type ${l} not found in channel ${a.channel}`);await h({ctx:t,conversation:a,message:f,user:o,type:l,client:r,payload:d,ack:async({tags:O})=>{await r.updateMessage({id:f.id,tags:O})},logger:n})},Cm=async({req:t,ctx:e,client:r,logger:n,instance:s})=>{let{input:a,type:o}=oe(t);if(!o)throw new Error("Missing action type");let l=s.actions[o];if(!l)throw new Error(`Action ${o} not found`);let d=new vn,g={output:await l({ctx:e,input:a,client:r,type:o,logger:n,metadata:d}),meta:d.toJSON()};return{body:JSON.stringify(g)}};var Tn=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=Jd(this);start=e=>Vt(this.handler,e)};var bn=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 s=r.alias??e.name;return n.plugins[s]={...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:M.mapKeys(e,n=>`${r}${_n}${n}`)};var Ge=require("@botpress/client");var Pe=class extends gt{constructor(e){super({...e})}with(e){return new Pe({...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 ce=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 s=await this._client[e](r),a=this._hooks.after[e];return a&&(s=await a(s,r)),s}};var yt=t=>new Proxy({},{get:(e,r)=>({listInstances:{all:n=>xe({workflowName:r,client:t,input:n}),running:n=>xe({workflowName:r,client:t,input:n,statuses:["in_progress"]}),scheduled:n=>xe({workflowName:r,client:t,input:n,statuses:["pending","listening"]}),allFinished:n=>xe({workflowName:r,client:t,input:n,statuses:["completed","cancelled","failed","timedout"]}),cancelled:n=>xe({workflowName:r,client:t,input:n,statuses:["cancelled"]}),failed:n=>xe({workflowName:r,client:t,input:n,statuses:["failed"]}),succeeded:n=>xe({workflowName:r,client:t,input:n,statuses:["completed"]}),timedOut:n=>xe({workflowName:r,client:t,input:n,statuses:["timedout"]})},startNewInstance:async n=>{let{workflow:s}=await t.createWorkflow({name:r,status:"pending",...n});return{workflow:ke({client:t,workflow:s})}}})}),xe=async t=>{let e=await t.client.listWorkflows({name:t.workflowName,statuses:t.statuses,...t.input});return{...e,workflows:e.workflows.map(r=>ke({client:t.client,workflow:r}))}},ke=t=>({...t.workflow,async update(e){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,...e});return{workflow:ke({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:ke({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:ke({client:t.client,workflow:r})}},async cancel(){let{workflow:e}=await t.client.updateWorkflow({id:t.workflow.id,status:"cancelled"});return{workflow:ke({client:t.client,workflow:e})}}});var Am=_.enum(["event_received","register","unregister","ping","action_triggered"]),Xd=t=>{let e=t[Lt],r=t[Wt],n=t[Ns],s=Am.parse(t[qt]);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(!s)throw new Error("Missing operation headers");return{botId:e,operation:s,type:n,configuration:r?JSON.parse(Buffer.from(r,"base64").toString("utf-8")):{}}};var Y={status:200};var js=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 Rm=["child_workflow_deleted","child_workflow_finished","workflow_timedout","workflow_started","workflow_continued"],Yd=async(t,e)=>{if(t.ctx.type!=="workflow_update"||!Rm.includes(e.payload.type))throw new Error("Unexpected event type");let r={...t,logger:Hm(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),Y;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 Dm(r,e);default:e.payload.type}return Y},Hm=(t,e)=>t.logger.with({eventId:e.id,workflowId:e.payload.workflow.id,conversationId:e.payload.conversation?.id,userId:e.payload.user?.id}),Dm=async(t,e)=>{let r=js(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}"`),Y):(await Mm(t,e),await Nm(t,e),Y)},Mm=async(t,e)=>{e.payload.workflow.status==="pending"&&await t.client.updateWorkflow({id:e.payload.workflow.id,status:"in_progress",eventId:e.id})},Nm=async(t,e)=>{let r=js(e.payload.type),n=t.self.workflowHandlers[r]?.[e.payload.workflow.name];for(let s of n)await s({...t,conversation:e.payload.conversation,user:e.payload.user,workflow:ke({...t,workflow:e.payload.workflow}),workflows:yt(t.client)})};var Qd=t=>async e=>{let r=Xd(e.headers),n=new Pe,s=new Ge.Client({botId:r.botId,retry:mn}),a=new ce(s,{before:{createMessage:async l=>{let d=t.hookHandlers.before_outgoing_message[l.type]??[];for(let f of d){let g=new ce(s);l=(await f({client:g,ctx:r,logger:n.with({conversationId:l.conversationId,userId:l.userId}),data:l,...Se({client:g})}))?.data??l}return l},callAction:async l=>{let d=t.hookHandlers.before_outgoing_call_action[l.type]??[];for(let f of d){let g=new ce(s);l=(await f({client:g,ctx:r,logger:n,data:l,...Se({client:g})}))?.data??l}return l}},after:{createMessage:async l=>{let d=t.hookHandlers.after_outgoing_message[l.message.type]??[];for(let f of d){let g=new ce(s);l=(await f({client:g,ctx:r,logger:n.with({messageId:l.message.id,conversationId:l.message.conversationId,userId:l.message.userId}),data:l,...Se({client:g})}))?.data??l}return l},callAction:async(l,d)=>{let{type:f}=d,g=t.hookHandlers.after_outgoing_call_action[f]??[];for(let h of g){let x=new ce(s);l=(await h({client:x,ctx:r,logger:n,data:{type:f,...l},...Se({client:x})}))?.data??l}return l}}}),o={req:e,ctx:r,logger:n,client:a,self:t};try{switch(r.operation){case"action_triggered":return await Fm(o);case"event_received":return await Um(o);case"register":return await jm(o);case"unregister":return await Km(o);case"ping":return await $m(o);default:throw new Error(`Unknown operation ${r.operation}`)}}catch(l){let d=l instanceof Error?l:new Error(String(l));if((0,Ge.isApiError)(d)){let g=d.type==="Runtime"?d:new Ge.RuntimeError(d.message,d);return n.error(g.message),{status:g.code,body:JSON.stringify(g.toJSON())}}let f=new Ge.RuntimeError("An unexpected error occurred in the bot.",d);return n.error(f.message,d),{status:f.code,body:JSON.stringify(f.toJSON())}}},$m=async t=>Y,jm=async t=>Y,Km=async t=>Y,Um=async t=>{let{ctx:e,logger:r,req:n,client:s,self:a}=t,o={client:s,ctx:e,logger:r,...Se({client:s})},l=oe(n);if(o.logger=o.logger.with({eventId:l.event.id,messageId:l.event.messageId,conversationId:l.event.conversationId,userId:l.event.userId}),e.type==="workflow_update")return await Yd(t,l.event);if(e.type==="message_created"){let O=l.event,B=O.payload.message;o.logger=o.logger.with({messageId:B.id,conversationId:B.conversationId,userId:B.userId});let U=a.hookHandlers.before_incoming_message[B.type]??[];for(let q of U){let se=await q({...o,data:B});if(B=se?.data??B,se?.stop)return Y}let W={...o,user:O.payload.user,conversation:O.payload.conversation,message:B,event:O},Q=a.messageHandlers[B.type]??[];for(let q of Q)await q(W);let ae=a.hookHandlers.after_incoming_message[B.type]??[];for(let q of ae){let se=await q({...o,data:B});if(B=se?.data??B,se?.stop)return Y}return Y}if(e.type==="state_expired"){let B=l.event.payload.state,U={...o,state:B},W=a.stateExpiredHandlers["*"]??[];for(let Q of W)await Q(U);return Y}let d=l.event,f=a.hookHandlers.before_incoming_event[d.type]??[];for(let O of f){let B=await O({...o,data:d});if(d=B?.data??d,B?.stop)return Y}let g={...o,event:d},h=a.eventHandlers[d.type]??[];for(let O of h)await O(g);let x=a.hookHandlers.after_incoming_event[d.type]??[];for(let O of x){let B=await O({...o,data:d});if(d=B?.data??d,B?.stop)return Y}return Y},Fm=async({ctx:t,logger:e,req:r,client:n,self:s})=>{let{input:a,type:o}=oe(r);if(!o)throw new Error("Missing action type");let l=s.hookHandlers.before_incoming_call_action[o]??[];for(let x of l){let O=await x({ctx:t,logger:e,client:n,data:{type:o,input:a},...Se({client:n})});a=O?.data?.input??a,o=O?.data?.type??o}let d=s.actionHandlers[o];if(!d)throw new Error(`Action ${o} not found`);let f=await d({ctx:t,logger:e,input:a,client:n,type:o,...Se({client:n})}),g=s.hookHandlers.after_incoming_call_action[o]??[];for(let x of g){let O=await x({ctx:t,logger:e,client:n,data:{type:o,output:f},...Se({client:n})});o=O?.data?.type??o,f=O?.data?.output??f}return{status:200,body:JSON.stringify({output:f})}},Se=t=>({workflows:yt(t.client)});var wn=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 s of Object.values(this._plugins))if(n=s.actionHandlers[r],n)return n}})}get messageHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.messageHandlers[r]??[]),s=this._messageHandlers[r]??[],a=this._messageHandlers["*"]??[],o=[...s,...a].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return S.unique([...n,...o])}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.eventHandlers[r]??[]),s=this._eventHandlers[r]??[],a=this._eventHandlers["*"]??[],o=[...s,...a].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return S.unique([...n,...o])}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.stateExpiredHandlers[r]??[]),s=this._stateExpiredHandlers[r]??[],a=this._stateExpiredHandlers["*"]??[],o=[...s,...a].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return S.unique([...n,...o])}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{if(this._hookHandlers[r])return new Proxy({},{get:(s,a)=>{let o=Object.values(this._plugins).flatMap(h=>h.hookHandlers[r]?.[a]??[]),l=this._hookHandlers[r]??{},d=l[a]??[],f=l["*"]??[],g=[...d,...f].sort((h,x)=>h.order-x.order).map(({handler:h})=>h);return S.unique([...o,...g])}})}})}get workflowHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._workflowHandlers[r];if(n)return new Proxy({},{get:(s,a)=>{let o=n[a]?.sort((d,f)=>d.order-f.order).map(({handler:d})=>d)??[],l=Object.values(this._plugins).flatMap(d=>d.workflowHandlers[r]?.[a]??[]);return S.unique([...o,...l])}})}})}on={message:(e,r)=>{this._messageHandlers[e]=S.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=S.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=S.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=S.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=S.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=S.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=S.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=S.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=S.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=S.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=S.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=S.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=S.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=S.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=S.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=S.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};handler=Qd(this);start=e=>Vt(this.handler,e)};var Pn=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?{}:M.mapValues(e.events,o=>({...o,schema:o.schema(r)})),s=e.actions===void 0?{}:M.mapValues(e.actions,o=>({...o,input:{...o.input,schema:o.input.schema(r)},output:{...o.output,schema:o.output.schema(r)}})),a=e.channels===void 0?{}:M.mapValues(e.channels,o=>({...o,messages:M.mapValues(o.messages,l=>({...l,schema:l.schema(r)}))}));this.events=n,this.actions=s,this.channels=a}name;version;title;description;icon;readme;attributes;entities;events;actions;channels;_getEntityReference=e=>{let r={};for(let[n,s]of Object.entries(e)){let a=s.schema._def["x-zui"]?.title,o=s.schema._def.description,l=Id.ref(n);a&&l.title(a),o&&l.describe(o),r[n]=l}return r}};var xn=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 Ks=":";var eu=t=>{let[e,r]=t.split(Ks);return!e||!r?null:{namespace:e,eventName:r}},tu=t=>`${t.namespace}${Ks}${t.actionName}`,ru=t=>`${t.namespace}${Ks}${t.eventName}`,nu=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,s=r.actions[t.actionName]?.name??t.actionName;return{namespace:n,actionName:s}},su=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,s=r.events[t.eventName]?.name??t.eventName;return{namespace:n,eventName:s}};var au=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(s,a)=>o=>zm({client:t,interfaces:e.interfaces,integrationOrInterfaceName:n,methodName:a,input:o})})}),zm=async({client:t,interfaces:e,integrationOrInterfaceName:r,methodName:n,input:s})=>{let a=nu({namespace:r,actionName:n},e),o=tu(a);return(await t.callAction({type:o,input:s})).output};var Us=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})}},iu=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(s,a)=>{let o=e.alias!==void 0?`${e.alias}${_n}${a}`:a;return new Us(t,n,o)}})});var kn=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:s}=this._runtime,a=au(e,this._runtime),o=iu(e,this._runtime),l=yt(e);return{configuration:r,interfaces:n,actions:a,states:o,alias:s,workflows:l}}get actionHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._actionHandlers[r];if(n)return me.setName(s=>n({...s,...this._getTools(s.client)}),n.name)}})}get messageHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._messageHandlers[r]??[],s=this._messageHandlers["*"]??[];return S.unique([...n,...s]).sort((o,l)=>o.order-l.order).map(({handler:o})=>me.setName(l=>o({...l,...this._getTools(l.client)}),o.name))}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._eventHandlers[r]??[],s=Object.entries(this._eventHandlers).filter(([l])=>this._eventResolvesTo(l,r)).flatMap(([,l])=>l??[]),a=this._eventHandlers["*"]??[];return S.unique([...n,...s,...a]).sort((l,d)=>l.order-d.order).map(({handler:l})=>me.setName(d=>l({...d,...this._getTools(d.client)}),l.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._stateExpiredHandlers[r]??[],s=this._stateExpiredHandlers["*"]??[];return S.unique([...n,...s]).sort((o,l)=>o.order-l.order).map(({handler:o})=>me.setName(l=>o({...l,...this._getTools(l.client)}),o.name))}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._hookHandlers[r];if(n)return new Proxy({},{get:(s,a)=>{a=this._stripAliasPrefix(a);let o=n[a]??[],l=Object.entries(n).filter(([g])=>this._eventResolvesTo(g,a)).flatMap(([,g])=>g??[]),d=n["*"]??[];return S.unique([...o,...l,...d]).sort((g,h)=>g.order-h.order).map(({handler:g})=>me.setName(h=>g({...h,...this._getTools(h.client)}),g.name))}})}})}get workflowHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._workflowHandlers[r];if(n)return new Proxy({},{get:(s,a)=>(n[a]?.sort((l,d)=>l.order-d.order)??[]).map(({handler:l})=>me.setName(d=>l({...d,...this._getTools(d.client)}),l.name))})}})}on={message:(e,r)=>{this._messageHandlers[e]=S.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=S.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=S.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=S.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=S.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=S.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=S.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=S.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=S.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=S.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=S.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=S.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=S.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=S.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=S.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=S.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};_eventResolvesTo=(e,r)=>{let n=eu(e);if(!n)return!1;let s=su(n,this._runtime.interfaces);return ru(s)===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,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,addIssueToContext,agent,aimodel,any,array,bigint,boolean,botIdHeader,botUserIdHeader,coerce,configurationHeader,configurationTypeHeader,conversation,createZodEnum,cuid2Regex,cuidRegex,custom,datasource,date,discriminatedUnion,effect,emailRegex,enum:null,errorUtil,event,function:null,getErrorMap,getParsedType,instanceof:null,integrationIdHeader,intent,intersection,ipv4Regex,ipv6Regex,isAborted,isApiError,isAsync,isDirty,isEmojiRegex,isValid,knowledgebase,late,lazy,literal,makeIssue,map,mergeObjectSchemas,message,messages,nan,nativeEnum,never,null:null,nullable,number,object,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,z});
68
68
  /*! Bundled license information:
69
69
 
70
70
  @bpinternal/zui/dist/index.js: