@botpress/sdk 4.20.0 → 4.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +5 -5
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +3 -3
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +3 -3
- package/dist/log.d.ts +4 -4
- package/package.json +2 -2
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
|
|
2
|
-
> @botpress/sdk@4.20.
|
|
2
|
+
> @botpress/sdk@4.20.1 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.20.
|
|
6
|
+
> @botpress/sdk@4.20.1 build:type /home/runner/work/botpress/botpress/packages/sdk
|
|
7
7
|
> tsc -p ./tsconfig.package.json --emitDeclarationOnly --declaration
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
> @botpress/sdk@4.20.
|
|
10
|
+
> @botpress/sdk@4.20.1 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.20.
|
|
15
|
+
> @botpress/sdk@4.20.1 build:browser /home/runner/work/botpress/botpress/packages/sdk
|
|
16
16
|
> ts-node -T ./build.ts --browser
|
|
17
17
|
|
|
18
|
-
(node:
|
|
18
|
+
(node:4138) [DEP0180] DeprecationWarning: fs.Stats constructor is deprecated.
|
|
19
19
|
(Use `node --trace-deprecation ...` to show where the warning was created)
|
|
20
20
|
Done
|
package/dist/index.cjs
CHANGED
|
@@ -69,7 +69,7 @@ declare function ${n}${o};${d}`);if(t.props.type==="variable")return Bn(`${s}dec
|
|
|
69
69
|
`,s+=`}
|
|
70
70
|
`,s+=`}
|
|
71
71
|
`),s+=`}
|
|
72
|
-
`,s+="})"}let i=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)&&(i+=`.and(${ad(f(c({},t),{anyOf:t.anyOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?f(c({},o),{type:"object"}):o)}),e)})`),$.a.oneOf(t)&&(i+=`.and(${Hs(f(c({},t),{oneOf:t.oneOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?f(c({},o),{type:"object"}):o)}),e)})`),$.an.allOf(t)&&(i+=`.and(${Kt(f(c({},t),{allOf:t.allOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?f(c({},o),{type:"object"}):o)}),e)})`),i}a(od,"parseObject");var Ih=a(t=>{var e;let r="z.string()";if((e=t[w])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";r="z.coerce.string()"}return r+=V(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+=V(t,"pattern",({json:n})=>[`.regex(new RegExp(${n})`,", ",")"]),r+=V(t,"minLength",({json:n})=>[`.min(${n}`,", ",")"]),r+=V(t,"maxLength",({json:n})=>[`.max(${n}`,", ",")"]),r},"parseString"),Bh=a((t,e)=>`${L(Ph(t,"nullable"),e,!0)}.nullable()`,"parseNullable"),Ah=a(t=>`z.ref('${t.$ref}')`,"parseRef"),Rh=a((t,e)=>{var r,n;if(t.oneOf.length<=1||!((r=t.discriminator)!=null&&r.propertyName))return Hs(t,e);let s=t.oneOf.map((i,o)=>L(i,f(c({},e),{path:[...e.path,"oneOf",o]})));return`z.discriminatedUnion("${(n=t.discriminator)==null?void 0:n.propertyName}", [${s.join(", ")}])`},"parseDiscriminator"),L=a((t,e={seen:new Map,path:[]},r)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let i=e.parserOverride(t,e);if(typeof i=="string")return i}let n=e.seen.get(t);if(n){if(n.r!==void 0)return n.r;if(e.depth===void 0||n.n>=e.depth)return"z.any()";n.n+=1}else n={r:void 0,n:0},e.seen.set(t,n);let s=Hh(t,e);return r||(s=Ch(t,s),e.withoutDefaults||(s=Dh(t,s))),n.r=s,s},"parseSchema"),Ch=a((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),Dh=a((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),Hh=a((t,e)=>$.a.nullable(t)?Bh(t,e):$.an.object(t)?od(t,e):$.an.array(t)?kh(t,e):$.an.anyOf(t)?ad(t,e):$.an.allOf(t)?Kt(t,e):$.a.discriminator(t)?Rh(t,e):$.a.oneOf(t)?Hs(t,e):$.a.not(t)?Th(t,e):$.an.enum(t)?Eh(t):$.a.const(t)?Sh(t):$.a.multipleType(t)?_h(t,e):$.a.primitive(t,"string")?Ih(t):$.a.primitive(t,"number")||$.a.primitive(t,"integer")?Zh(t):$.a.primitive(t,"boolean")?yh(t):$.a.primitive(t,"null")?bh(t):$.a.conditional(t)?Oh(t,e):$.a.ref(t)?Ah(t):vh(t),"selectParser"),$={an:{object:a(t=>t.type==="object","object"),array:a(t=>t.type==="array","array"),anyOf:a(t=>t.anyOf!==void 0,"anyOf"),allOf:a(t=>t.allOf!==void 0,"allOf"),enum:a(t=>t.enum!==void 0,"enum")},a:{nullable:a(t=>t.nullable===!0,"nullable"),multipleType:a(t=>Array.isArray(t.type),"multipleType"),not:a(t=>t.not!==void 0,"not"),const:a(t=>t.const!==void 0,"const"),primitive:a((t,e)=>t.type===e,"primitive"),conditional:a(t=>!!("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),"conditional"),discriminator:a(t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},"discriminator"),oneOf:a(t=>t.oneOf!==void 0,"oneOf"),ref:a(t=>t.$ref!==void 0,"ref")}},Nh=a(t=>{let e;try{e=new Function("z",`return ${t}`)(p)}catch(r){return{sucess:!1,error:`Failed to evaluate schema: ${(r instanceof Error?r:new Error(String(r))).message}`}}return e instanceof p.ZodType?{sucess:!0,value:e}:{sucess:!1,error:`String "${t}" does not evaluate to a Zod schema`}},"evalZuiString"),Mh=a(t=>L(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),$h=a(t=>{let e=Mh(t);e=e.replaceAll("errors: z.ZodError[]","errors");let r=Nh(e);if(!r.sucess)throw new Fr(r.error);return r.value},"jsonSchemaToZod"),At=a((t,e)=>{var r,n;if(e[w]&&t._def&&(t.naked()._def[w]=e[w]),((r=t._def)==null?void 0:r.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([s,i])=>{let o=typeof t._def.shape=="function"?t._def.shape():t._def.shape;o[s]&&At(o[s],i)}),((n=t._def)==null?void 0:n.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&At(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let s=e.items;if(typeof s=="object"&&!Array.isArray(s)){let i=t._def.type;i&&At(i,s)}else Array.isArray(s)&&s.forEach((i,o)=>{let l=t._def;l.typeName===y.ZodFirstPartyTypeKind.ZodTuple&&At(l.items[o],i)})}},"applyZuiPropsRecursively"),jh=a(t=>{let e=$h(t);return At(e,t),e},"fromJSONSchemaLegacy"),Kh=a(t=>{var e,r;return t.anyOf!==void 0&&t.anyOf.length===2&&t.anyOf.some(n=>typeof n!="boolean"&&ld(n))&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===p.ZodFirstPartyTypeKind.ZodOptional},"isOptionalSchema"),Uh=a(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)===p.ZodFirstPartyTypeKind.ZodNullable},"isNullableSchema"),ld=a(t=>{var e,r;return t.not===!0&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===p.ZodFirstPartyTypeKind.ZodUndefined},"isUndefinedSchema"),zh=a(t=>{var e,r;return!t.not&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===p.ZodFirstPartyTypeKind.ZodUnknown},"isUnknownSchema"),Fh=a(({type:t,minimum:e,exclusiveMinimum:r,maximum:n,exclusiveMaximum:s,multipleOf:i,format:o})=>{let l=p.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)),i!==void 0&&(l=l.multipleOf(i)),l},"numberJSONSchemaToZuiNumber"),Wh=a(({format:t,pattern:e,minLength:r,maxLength:n})=>{let s=p.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:i,offset:o}=e?ih(e):{};s=s.datetime({precision:i,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"),Tt=a((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 Wh(e);if(t==="number"&&(e.type==="number"||e.type==="integer"))return Fh(e);if(t==="boolean")return p.boolean();if(t==="null")return p.null();throw new Fr(`Unknown primitive type: "${t}"`)}if(n.length===1)return p.literal(s);let i=n.map(o=>p.literal(o));return p.union(i)},"toZuiPrimitive"),Lh=a((t,e)=>qh(t)?Gh(t,e):Vh(t)?Jh(t,e):Yh(t,e),"arrayJSONSchemaToZuiArray"),qh=a(t=>Array.isArray(t.items),"_isTuple"),Vh=a(t=>t.items!==void 0&&t.uniqueItems,"_isSet"),Gh=a(({items:t,additionalItems:e},r)=>{let n=t.map(r),s=p.tuple(n);return e!==void 0&&(s=s.rest(r(e))),s},"_handleTuple"),Jh=a(({items:t,minItems:e,maxItems:r},n)=>{let s=p.set(n(t));return e&&(s=s.min(e)),r&&(s=s.max(r)),s},"_handleSet"),Yh=a(({minItems:t,maxItems:e,items:r},n)=>{let s=p.array(n(r));return t&&t===e?s.length(t):(t&&(s=s.min(t)),e&&(s=s.max(e)),s)},"_handleArray"),Qe=p.any();function cd(t){return W(t)}a(cd,"fromJSONSchema");function W(t){var e;if(t===void 0)return Qe;if(t===!0)return p.any();if(t===!1)return p.never();if(t.default!==void 0)return W(f(c({},t),{default:void 0})).default(t.default);if(t.readOnly)return W(f(c({},t),{readOnly:void 0})).readonly();if(t.oneOf!==void 0)throw new Pe({oneOf:t.oneOf});if(t.patternProperties!==void 0)throw new Pe({patternProperties:t.patternProperties});if(t.propertyNames!==void 0)throw new Pe({propertyNames:t.propertyNames});if(t.if!==void 0)throw new Pe({if:t.if});if(t.then!==void 0)throw new Pe({then:t.then});if(t.else!==void 0)throw new Pe({else:t.else});if(t.$ref!==void 0)return p.ref(t.$ref);if(t.not!==void 0){if(ld(t))return p.undefined();if(t.not===!0)return p.never();throw new Pe({not:t.not})}if(Array.isArray(t.type)){if(t.type.length===0)return Qe;if(t.type.length===1)return W(f(c({},t),{type:t.type[0]}));let r=t,{type:n}=r,s=Ai(r,["type"]),i=t.type.map(o=>W(f(c({},s),{type:o})));return p.union(i)}if(t.type==="string")return t.enum&&t.enum.length>0?p.enum(t.enum):Tt("string",t);if(t.type==="integer"){let r=Tt("number",t);return r instanceof p.ZodNumber?r.int():r}if(t.type==="number")return Tt("number",t);if(t.type==="boolean")return Tt("boolean",t);if(t.type==="null")return Tt("null",t);if(t.type==="array")return Lh(t,W);if(t.type==="object"){if(t.additionalProperties!==void 0&&t.properties!==void 0){let r=W(t.additionalProperties);return W(f(c({},t),{additionalProperties:void 0})).catchall(r)}if(t.properties!==void 0){let r={};for(let[n,s]of Object.entries(t.properties)){let i=W(s),o=(e=t.required)!=null?e:[];r[n]=o.includes(n)?i:i.optional()}return p.object(r)}if(t.additionalProperties!==void 0){let r=W(t.additionalProperties);return p.record(r)}return p.record(Qe)}if(t.anyOf!==void 0){if(t.anyOf.length===0)return Qe;if(t.anyOf.length===1)return W(t.anyOf[0]);if(Kh(t))return W(t.anyOf[0]).optional();if(Uh(t))return W(t.anyOf[0]).nullable();let r=t.anyOf.map(W);return p.union(r)}if(t.allOf!==void 0){if(t.allOf.length===0)return Qe;if(t.allOf.length===1)return W(t.allOf[0]);let[r,...n]=t.allOf,s=W(r),i=W({allOf:n});return p.intersection(s,i)}return zh(t)?p.unknown():Qe}a(W,"_fromJSONSchema");var Xh=/^\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))?$/,Gn=a((t,e,r=!0)=>{if(typeof t!="object")throw new $n("Input must be an object");let n=a(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(y.null());else switch(typeof d){case"string":o[l]=Xh.test(d)?n(y.string().datetime()):n(y.string());break;case"number":o[l]=n(y.number());break;case"boolean":o[l]=n(y.boolean());break;case"object":Array.isArray(d)?d.length===0?o[l]=n(y.array(y.unknown())):typeof d[0]=="object"?o[l]=n(y.array(Gn(d[0],e,!1))):["string","number","boolean"].includes(typeof d[0])&&(o[l]=n(y.array(y[typeof d[0]]()))):o[l]=n(Gn(d,e,!1));break;default:throw new $n(`Unsupported type for key ${l}`)}return o},{}),i=Object.keys(s).length>0;return e?.passtrough||!r&&!i?y.object(s).passthrough():y.object(s)},"fromObject");function dd(){return{}}a(dd,"parseAnyDef");function ud(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=A(t.type._def,f(c({},e),{currentPath:[...e.currentPath,"items"]}))),t.minLength&&D(s,"minItems",t.minLength.value,t.minLength.message,e),t.maxLength&&D(s,"maxItems",t.maxLength.value,t.maxLength.message,e),t.exactLength&&(D(s,"minItems",t.exactLength.value,t.exactLength.message,e),D(s,"maxItems",t.exactLength.value,t.exactLength.message,e)),s}a(ud,"parseArrayDef");function pd(t,e){let r=c({type:"integer",format:"int64"},t.coerce?{[w]:{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?D(r,"minimum",n.value,n.message,e):D(r,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(r.exclusiveMinimum=!0),D(r,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?D(r,"maximum",n.value,n.message,e):D(r,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(r.exclusiveMaximum=!0),D(r,"maximum",n.value,n.message,e));break;case"multipleOf":D(r,"multipleOf",n.value,n.message,e);break}return r}a(pd,"parseBigintDef");function fd(t){return c({type:"boolean"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{})}a(fd,"parseBooleanDef");function gd(t,e){return A(t.type._def,e)}a(gd,"parseBrandedDef");var Qh=a((t,e)=>A(t.innerType._def,e),"parseCatchDef");function md(t,e){return e.dateStrategy=="integer"?ey(t,e):c({type:"string",format:"date-time"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{})}a(md,"parseDateDef");var ey=a((t,e)=>{let r=c({type:"integer",format:"unix-time"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{});for(let n of t.checks)switch(n.kind){case"min":e.target==="jsonSchema7"&&D(r,"minimum",n.value,n.message,e);break;case"max":e.target==="jsonSchema7"&&D(r,"maximum",n.value,n.message,e);break}return r},"integerDateParser");function hd(t,e){return f(c({},A(t.innerType._def,e)),{default:t.defaultValue()})}a(hd,"parseDefaultDef");function yd(t,e){return e.effectStrategy==="input"?A(t.schema._def,e):{}}a(yd,"parseEffectsDef");function vd(t){return{type:"string",enum:t.values}}a(vd,"parseEnumDef");var ty=a(t=>"type"in t&&t.type==="string"?!1:"allOf"in t,"isJsonSchema7AllOfType");function _d(t,e){let r=[A(t.left._def,f(c({},e),{currentPath:[...e.currentPath,"allOf","0"]})),A(t.right._def,f(c({},e),{currentPath:[...e.currentPath,"allOf","1"]}))].filter(i=>!!i),n=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,s=[];return r.forEach(i=>{if(ty(i))s.push(...i.allOf),i.unevaluatedProperties===void 0&&(n=void 0);else{let o=i;if("additionalProperties"in i&&i.additionalProperties===!1){let l=i,{additionalProperties:d}=l;o=Ai(l,["additionalProperties"])}else n=void 0;s.push(o)}}),s.length?c({allOf:s},n):void 0}a(_d,"parseIntersectionDef");function Td(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}}a(Td,"parseLiteralDef");function Ns(t,e){var r,n,s,i,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,u)=>{var g;return f(c({},d),{[u]:(g=A(t.valueType._def,f(c({},e),{currentPath:[...e.currentPath,"properties",u]})))!=null?g:{}})},{}),additionalProperties:!1};let l={type:"object",additionalProperties:(n=A(t.valueType._def,f(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"&&((i=t.keyType._def.checks)!=null&&i.length)){let d=Object.entries(us(t.keyType._def,e)).reduce((u,[g,h])=>g==="type"?u:f(c({},u),{[g]:h}),{});return f(c({},l),{propertyNames:d})}else if(((o=t.keyType)==null?void 0:o._def.typeName)==="ZodEnum")return f(c({},l),{propertyNames:{enum:t.keyType._def.values}});return l}a(Ns,"parseRecordDef");function bd(t,e){if(e.mapStrategy==="record")return Ns(t,e);let r=A(t.keyType._def,f(c({},e),{currentPath:[...e.currentPath,"items","items","0"]}))||{},n=A(t.valueType._def,f(c({},e),{currentPath:[...e.currentPath,"items","items","1"]}))||{};return{type:"array",maxItems:125,items:{type:"array",items:[r,n],minItems:2,maxItems:2}}}a(bd,"parseMapDef");function wd(t){let e=t.values,n=Object.keys(t.values).filter(i=>typeof e[e[i]]!="number").map(i=>e[i]),s=Array.from(new Set(n.map(i=>typeof i)));return{type:s.length===1?s[0]==="string"?"string":"number":["string","number"],enum:n.filter(i=>typeof i=="string"||typeof i=="number")}}a(wd,"parseNativeEnumDef");function Pd(){return{not:{}}}a(Pd,"parseNeverDef");function xd(t){return t.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}a(xd,"parseNullDef");var Ur={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function kd(t,e){if(e.target==="openApi3")return Oi(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,i)=>{let o=Ur[i._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,i)=>{let o=typeof i._def.value;switch(o){case"string":case"number":case"boolean":return[...s,o];case"bigint":return[...s,"integer"];case"object":if(i._def.value===null)return[...s,"null"];case"symbol":case"undefined":case"function":default:return s}},[]);if(n.length===r.length){let s=n.filter((i,o,l)=>l.indexOf(i)===o);return{type:s.length>1?s:s[0],enum:r.reduce((i,o)=>i.includes(o._def.value)?i:[...i,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(i=>!n.includes(i))],[])};return Oi(t,e)}a(kd,"parseUnionDef");var Oi=a((t,e)=>{let r=(t.options instanceof Map?Array.from(t.options.values()):t.options).map((s,i)=>A(s._def,f(c({},e),{currentPath:[...e.currentPath,e.unionStrategy,`${i}`]}))).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 Sd(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 i={type:Ur[n._def.typeName],nullable:!0};return Jn(n._def,e,i)}let s={type:[Ur[n._def.typeName],"null"]};return Jn(n._def,e,s)}if(e.target==="openApi3"){let n=A(t.innerType._def,f(c({},e),{currentPath:[...e.currentPath]}));return n&&f(c({},n),{nullable:!0})}let r=A(t.innerType._def,f(c({},e),{currentPath:[...e.currentPath,"anyOf","0"]}));return r&&{anyOf:[r,{type:"null"}]}}a(Sd,"parseNullableDef");function Ed(t,e){let r=c({type:"number"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{});if(!t.checks)return r;for(let n of t.checks)switch(n.kind){case"int":r.type="integer",ds(r,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?D(r,"minimum",n.value,n.message,e):D(r,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(r.exclusiveMinimum=!0),D(r,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?D(r,"maximum",n.value,n.message,e):D(r,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(r.exclusiveMaximum=!0),D(r,"maximum",n.value,n.message,e));break;case"multipleOf":D(r,"multipleOf",n.value,n.message,e);break}return r}a(Ed,"parseNumberDef");var ry=a((t,e)=>{var r;return t.unknownKeys instanceof O?(r=A(t.unknownKeys._def,f(c({},e),{currentPath:[...e.currentPath,"additionalProperties"]})))!=null?r:!0:t.unknownKeys==="passthrough"},"getAdditionalProperties");function Od(t,e){let r=f(c({type:"object"},Object.entries(t.shape()).reduce((n,[s,i])=>{if(i===void 0||i._def===void 0)return n;let o=A(i._def,f(c({},e),{currentPath:[...e.currentPath,"properties",s],propertyPath:[...e.currentPath,"properties",s]}));return o===void 0?n:{properties:f(c({},n.properties),{[s]:o}),required:i.isOptional()?n.required:[...n.required,s]}},{properties:{},required:[]})),{additionalProperties:ry(t,e)});return r.required.length||delete r.required,r}a(Od,"parseObjectDef");var ny=a((t,e)=>{var r;if(e.currentPath.toString()===((r=e.propertyPath)==null?void 0:r.toString()))return A(t.innerType._def,e);let n=A(t.innerType._def,f(c({},e),{currentPath:[...e.currentPath,"anyOf","1"]}));return n?{anyOf:[{not:{}},n]}:{}},"parseOptionalDef"),sy=a((t,e)=>{if(e.pipeStrategy==="input")return A(t.in._def,e);if(e.pipeStrategy==="output")return A(t.out._def,e);let r=A(t.in._def,f(c({},e),{currentPath:[...e.currentPath,"allOf","0"]})),n=A(t.out._def,f(c({},e),{currentPath:[...e.currentPath,"allOf",r?"1":"0"]}));return{allOf:[r,n].filter(s=>s!==void 0)}},"parsePipelineDef");function Zd(t,e){return A(t.type._def,e)}a(Zd,"parsePromiseDef");function Id(t,e){let n={type:"array",uniqueItems:!0,items:A(t.valueType._def,f(c({},e),{currentPath:[...e.currentPath,"items"]}))};return t.minSize&&D(n,"minItems",t.minSize.value,t.minSize.message,e),t.maxSize&&D(n,"maxItems",t.maxSize.value,t.maxSize.message,e),n}a(Id,"parseSetDef");function Bd(t,e){return t.rest?{type:"array",minItems:t.items.length,items:t.items.map((r,n)=>A(r._def,f(c({},e),{currentPath:[...e.currentPath,"items",`${n}`]}))).reduce((r,n)=>n===void 0?r:[...r,n],[]),additionalItems:A(t.rest._def,f(c({},e),{currentPath:[...e.currentPath,"additionalItems"]}))}:{type:"array",minItems:t.items.length,maxItems:t.items.length,items:t.items.map((r,n)=>A(r._def,f(c({},e),{currentPath:[...e.currentPath,"items",`${n}`]}))).reduce((r,n)=>n===void 0?r:[...r,n],[])}}a(Bd,"parseTupleDef");function Ad(){return{not:{}}}a(Ad,"parseUndefinedDef");function Rd(){return{}}a(Rd,"parseUnknownDef");var iy=a((t,e)=>A(t.innerType._def,e),"parseReadonlyDef");function Cd(t){return{$ref:t.uri}}a(Cd,"parseRefDef");function A(t,e,r=!1){let n=e.seen.get(t);if(n&&!r){let o=ay(n,e);if(o!==void 0)return o}let s={def:t,path:e.currentPath,jsonSchema:void 0};e.seen.set(t,s);let i=ly(t,t.typeName,e);return i&&Jn(t,e,i),s.jsonSchema=i,i}a(A,"parseDef");var ay=a((t,e)=>{switch(e.$refStrategy){case"root":return{$ref:t.path.join("/")};case"relative":return{$ref:oy(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"),oy=a((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"),ly=a((t,e,r)=>{switch(e){case"ZodString":return us(t,r);case"ZodNumber":return Ed(t,r);case"ZodObject":return Od(t,r);case"ZodBigInt":return pd(t,r);case"ZodBoolean":return fd(t);case"ZodDate":return md(t,r);case"ZodUndefined":return Ad();case"ZodNull":return xd(r);case"ZodArray":return ud(t,r);case"ZodUnion":case"ZodDiscriminatedUnion":return kd(t,r);case"ZodIntersection":return _d(t,r);case"ZodTuple":return Bd(t,r);case"ZodRecord":return Ns(t,r);case"ZodRef":return Cd(t);case"ZodLiteral":return Td(t,r);case"ZodEnum":return vd(t);case"ZodNativeEnum":return wd(t);case"ZodNullable":return Sd(t,r);case"ZodOptional":return ny(t,r);case"ZodMap":return bd(t,r);case"ZodSet":return Id(t,r);case"ZodLazy":return A(t.getter()._def,r);case"ZodPromise":return Zd(t,r);case"ZodNaN":case"ZodNever":return Pd();case"ZodEffects":return yd(t,r);case"ZodAny":return dd();case"ZodUnknown":return Rd();case"ZodDefault":return hd(t,r);case"ZodBranded":return gd(t,r);case"ZodReadonly":return iy(t,r);case"ZodCatch":return Qh(t,r);case"ZodPipeline":return sy(t,r);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return(n=>{})(e)}},"selectParser"),Jn=a((t,e,r)=>(t.description&&(r.description=t.description,e.markdownDescription&&(r.markdownDescription=t.description)),Object.assign(r,{[w]:c(c({},t[w]),r[w])}),r),"addMeta"),Zi={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"},cy=a(t=>typeof t=="string"?f(c({},Zi),{name:t}):c(c({},Zi),t),"getDefaultOptions"),dy=a(t=>{let e=cy(t),r=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return f(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"),uy=a((t,e)=>{var r;let n=dy(e),s=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((d,[u,g])=>{var h;return f(c({},d),{[u]:(h=A(g._def,f(c({},n),{currentPath:[...n.basePath,n.definitionPath,u]}),!0))!=null?h:{}})},{}):void 0,i=typeof e=="string"?e:e?.name,o=(r=A(t._def,i===void 0?n:f(c({},n),{currentPath:[...n.basePath,n.definitionPath,i]}),!1))!=null?r:{},l=i===void 0?s?f(c({},o),{[n.definitionPath]:s}):o:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,i].join("/"),[n.definitionPath]:f(c({},s),{[i]: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"),py=a((t,e={target:"openApi3"})=>{let r=uy(t,e);return e.$schemaUrl===!1?delete r.$schema:typeof e.$schemaUrl=="string"&&(r.$schema=e.$schemaUrl),r},"toJSONSchemaLegacy");var gt=(t,e)=>{let r=t._def,n=e._def;if(r.typeName===y.ZodFirstPartyTypeKind.ZodObject&&n.typeName===y.ZodFirstPartyTypeKind.ZodObject){let s=r.shape(),i=n.shape();return y.object({...s,...i})}if(r.typeName===y.ZodFirstPartyTypeKind.ZodRecord&&n.typeName===y.ZodFirstPartyTypeKind.ZodRecord)return y.record(y.intersection(r.valueType,n.valueType));throw new Error("Cannot merge object schemas with record schemas")},Dd=y;var ne=y.string().min(1),Nd=y.object({text:ne}),Md=y.object({markdown:ne}),$d=y.object({imageUrl:ne}),jd=y.object({audioUrl:ne}),Kd=y.object({videoUrl:ne}),Ud=y.object({fileUrl:ne,title:ne.optional()}),zd=y.object({latitude:y.number(),longitude:y.number(),address:y.string().optional(),title:y.string().optional()}),Fd=y.object({title:ne,subtitle:ne.optional(),imageUrl:ne.optional(),actions:y.array(y.object({action:y.enum(["postback","url","say"]),label:ne,value:ne}))}),Hd=y.object({text:ne,options:y.array(y.object({label:ne,value:ne}))}),fy=y.object({items:y.array(Fd)}),gy=y.union([y.object({type:y.literal("text"),payload:Nd}),y.object({type:y.literal("markdown"),payload:Md}),y.object({type:y.literal("image"),payload:$d}),y.object({type:y.literal("audio"),payload:jd}),y.object({type:y.literal("video"),payload:Kd}),y.object({type:y.literal("file"),payload:Ud}),y.object({type:y.literal("location"),payload:zd})]),my=y.object({items:y.array(gy)}),hy={schema:Md},yy={text:{schema:Nd},image:{schema:$d},audio:{schema:jd},video:{schema:Kd},file:{schema:Ud},location:{schema:zd},carousel:{schema:fy},card:{schema:Fd},dropdown:{schema:Hd},choice:{schema:Hd},bloc:{schema:my}};var vy={HIDDEN_IN_STUDIO:{bpActionHiddenInStudio:"true"},AWAIT_RETURN:{bpActionAwaitReturn:"true"}};var Wd=require("browser-or-node");var $s=console;function le(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function Vt(t,e=8072,r=wy){if(!Wd.isNode)throw new Error("This function can only be called in Node.js");let s=require("http").createServer(async(i,o)=>{try{let l=await _y(i);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 _y(t){let e=await by(t),r={};for(let s=0;s<t.rawHeaders.length;s+=2){let i=t.rawHeaders[s].toLowerCase(),o=t.rawHeaders[s+1];r[i]=o}let n=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:n.pathname,query:Ty(n.search,"?"),headers:r,method:t.method?.toUpperCase()??"GET"}}function Ty(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function by(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 wy(t){$s.info(`Listening on port ${t}`)}var On=require("@botpress/client");var N={};Xe(N,{mapKeys:()=>ky,mapValues:()=>xy,mergeRecords:()=>Ey,pairs:()=>gn,stripUndefinedProps:()=>Sy,values:()=>Py});var gn=t=>Object.entries(t),Py=t=>Object.values(t),xy=(t,e)=>Object.fromEntries(gn(t).map(([r,n])=>[r,e(n,r)])),ky=(t,e)=>Object.fromEntries(gn(t).map(([r,n])=>[e(r),n])),Sy=t=>Object.fromEntries(gn(t).filter(([,e])=>e!==void 0)),Ey=(t,e,r)=>{let n=[...Object.keys(t),...Object.keys(e)],s=[...new Set(n)],i={};for(let o of s){let l=t[o],d=e[o];l&&d?i[o]=r(l,d):l?i[o]=l:d&&(i[o]=d)}return i};var E={};Xe(E,{safePush:()=>Oy,unique:()=>Zy});var Oy=(t,...e)=>t?[...t,...e]:[...e],Zy=t=>Array.from(new Set(t));var Y={};Xe(Y,{setName:()=>Iy});var Iy=(t,e)=>(Object.defineProperty(t,"name",{value:e}),t);var Ld=t=>{let{name:e,version:r}=t,n={actions:{},events:{},channels:{}},s={name:e,version:r,entities:N.mapValues(t.entities,o=>({name:o.name})),actions:{},events:{},channels:{}},i=N.mapValues(t.entities,o=>o.schema);for(let[o,l]of Object.entries(t.definition.actions??{})){let d=l.input.schema.dereference(i),u=l.output.schema.dereference(i),g=t.actions?.[o]?.name??o;n.actions[g]={...l,...t.actions?.[o]??{},input:{schema:d},output:{schema:u}},s.actions[o]={name:g}}for(let[o,l]of Object.entries(t.definition.events??{})){let d=l.schema.dereference(i),u=t.events?.[o]?.name??o;n.events[u]={...l,...t.events?.[o]??{},schema:d},s.events[o]={name:u}}for(let[o,l]of Object.entries(t.definition.channels??{})){let d={};for(let[g,h]of Object.entries(l.messages)){let T=h.schema.dereference(i);d[g]={...h,schema:T}}let u=t.channels?.[o]?.name??o;n.channels[u]={...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:u}}return{resolved:n,statement:s}};var qd="4.20.0";var Ee=qd;var mn=Symbol("schemaName"),Vd=t=>t?N.mapValues(t,(r,n)=>({...r,[mn]:n})):{},Gd=t=>mn in t&&t[mn]!==void 0,Jd=t=>t[mn];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;get metadata(){return{sdkVersion:Ee}}extend(e,r){let{entities:n,actions:s,events:i,channels:o}=this._callBuilder(e,r),l=this;l.interfaces??={};let d=Object.values(n).map(T=>T.name),u=d.length===0?e.name:`${e.name}<${d.join(",")}>`,{resolved:g,statement:h}=Ld({...e,entities:n,actions:N.stripUndefinedProps(s),events:N.stripUndefinedProps(i),channels:N.stripUndefinedProps(o)});return l.actions=N.mergeRecords(l.actions??{},g.actions,this._mergeActions),l.channels=N.mergeRecords(l.channels??{},g.channels,this._mergeChannels),l.events=N.mergeRecords(l.events??{},g.events,this._mergeEvents),l.interfaces[u]={id:e.id,...h},this}_callBuilder(e,r){let s={entities:Vd(this.entities)},i=r(s),o=N.pairs(i.entities).find(([d,u])=>!Gd(u));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:N.mapValues(i.entities,d=>({name:Jd(d),schema:d.schema})),actions:i.actions??{},events:i.events??{},channels:i.channels??{}}}_mergeActions=(e,r)=>({...e,...r,input:{schema:gt(e.input.schema,r.input.schema)},output:{schema:gt(e.output.schema,r.output.schema)}});_mergeEvents=(e,r)=>({...e,...r,schema:gt(e.schema,r.schema)});_mergeChannels=(e,r)=>{let n=N.mergeRecords(e.messages,r.messages,this._mergeMessage),s;(e.conversation||r.conversation)&&(s={tags:{...e.conversation?.tags,...r.conversation?.tags}});let i;return(e.message||r.message)&&(i={tags:{...e.message?.tags,...r.message?.tags}}),{...e,...r,messages:n,conversation:s,message:i}};_mergeMessage=(e,r)=>({schema:gt(e.schema,r.schema)})};var be=require("@botpress/client");var Yd=In(require("@botpress/client")),yn={retries:3,retryCondition:t=>Yd.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:(t,e)=>(Ay(e.response?.headers??{})??t)*1e3},Ay=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 Ry(String(n))}},Ry=t=>{let e=Cy(t)?Dy(t):t.length>0?parseInt(t,10):void 0;return e===void 0||isNaN(e)?void 0:e},Cy=t=>t.includes(" "),Dy=t=>{let e=Hy(t);if(!e)return;let r=new Date;return Math.max(0,Math.floor((e.getTime()-r.getTime())/1e3))},Hy=t=>{let e=new Date(t);return isNaN(e.getTime())?void 0:e};var mt=class{constructor(e){this._client=e}get _inner(){return this._client}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).then(r=>r));updateMessage=(e=>this._client.updateMessage(e).then(r=>r));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 Oe="#",_n="x-bot-id",Xd="x-bot-user-id",Qd="x-integration-id",eu="x-integration-alias",tu="x-webhook-id",ru="x-bp-configuration-type",Tn="x-bp-configuration",bn="x-bp-operation",nu="x-bp-type";var ce=t=>{throw t instanceof Error?t:new Error(t)};var d_=y.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),su=t=>({botId:t[_n]||ce("Missing bot header"),botUserId:t[Xd]||ce("Missing bot user header"),integrationId:t[Qd]||ce("Missing integration header"),integrationAlias:t[eu]||ce("Missing integration alias header"),webhookId:t[tu]||ce("Missing webhook header"),operation:t[bn]||ce("Missing operation header"),configurationType:t[ru]??null,configuration:JSON.parse(Buffer.from(t[Tn]||ce("Missing configuration header"),"base64").toString("utf-8"))});var iu=In(require("util")),ht=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=iu.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 yt=class t extends ht{constructor(e){super({visibleToBotOwners:!0,...e})}with(e){return new t({...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 Ny=t=>["traceparent","tracestate","sentry-trace"].reduce((e,r)=>(t[r]&&(e[r]=t[r]),e),{}),My=(t,e,r)=>{let[,n]=(e.headers.traceparent||"").split("-"),s=new be.Client({botId:t.botId,integrationId:t.integrationId,integrationAlias:t.integrationAlias,retry:yn,headers:Ny(e.headers)}),i=new mt(s),o=new yt({traceId:n});return{ctx:t,req:e,client:i,logger:o,instance:r}},$y=async t=>{let{ctx:e}=t;switch(e.operation){case"webhook_received":return await Ky(t);case"register":return await Uy(t);case"unregister":return await zy(t);case"message_created":return await Ly(t);case"action_triggered":return await qy(t);case"ping":return await jy(t);case"create_user":return await Fy(t);case"create_conversation":return await Wy(t);default:throw new be.InvalidPayloadError(`Unknown operation ${e.operation}`)}},au=t=>async e=>{let r=su(e.headers),n=My(r,e,t),{logger:s}=n;try{let i;return i=await Vy(n),i?{...i,status:i.status??200}:(i=await $y(n),i?{...i,status:i.status??200}:{status:200})}catch(i){if((0,be.isApiError)(i)){let l=i.type==="Runtime"?i:new be.RuntimeError(i.message,i);return s.forBot().error(l.message),{status:l.code,body:JSON.stringify(l.toJSON())}}console.error(i);let o=new be.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 s.forBot().error(o.message),{status:o.code,body:JSON.stringify(o.toJSON())}}},jy=async t=>{},Ky=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{let{req:i}=le(r);return s.webhook({client:t,ctx:e,req:i,logger:n})},Uy=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.register)return;let{webhookUrl:i}=le(r);await s.register({client:t,ctx:e,webhookUrl:i,logger:n})},zy=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.unregister)return;let{webhookUrl:i}=le(r);await s.unregister({ctx:e,webhookUrl:i,client:t,logger:n})},Fy=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.createUser)return;let{tags:i}=le(r);return await s.createUser({ctx:e,client:t,tags:i,logger:n})},Wy=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.createConversation)return;let{channel:i,tags:o}=le(r);return await s.createConversation({ctx:e,client:t,channel:i,tags:o,logger:n})},Ly=async({ctx:t,req:e,client:r,logger:n,instance:s})=>{let{conversation:i,user:o,type:l,payload:d,message:u}=le(e),g=s.channels[i.channel];if(!g)throw new Error(`Channel ${i.channel} not found`);let h=g.messages[l];if(!h)throw new Error(`Message of type ${l} not found in channel ${i.channel}`);await h({ctx:t,conversation:i,message:u,user:o,type:l,client:r,payload:d,ack:async({tags:Z})=>{await r.updateMessage({id:u.id,tags:Z})},logger:n})},qy=async({req:t,ctx:e,client:r,logger:n,instance:s})=>{let{input:i,type:o}=le(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:i,client:r,type:o,logger:n,metadata:d}),meta:d.toJSON()};return{body:JSON.stringify(g)}},Vy=async({instance:t,client:e,ctx:r,logger:n,req:s})=>{let i=t.unknownOperationHandler;if(i)return await i({client:e,ctx:r,logger:n,req:s})};var wn=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,this.unknownOperationHandler=e.__advanced?.unknownOperationHandler}actions;channels;register;unregister;createUser;createConversation;webhook;unknownOperationHandler;handler=au(this);start=e=>Vt(this.handler,e)};var Pn=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,this.__advanced=e.__advanced,this.withPlugins={user:e.user,conversation:e.conversation,message:e.message,states:e.states,events:e.events,recurringEvents:e.recurringEvents,actions:e.actions,tables:e.tables,workflows:e.workflows}}integrations;plugins;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows;attributes;__advanced;withPlugins;get metadata(){return{sdkVersion:Ee}}addIntegration(e,r){let n=this;n.integrations||(n.integrations={});let s=r?.alias??e.name.replace("/","-");if(n.integrations[s])throw new Error(`Another integration with alias "${s}" is already installed in the bot`);return n.integrations[s]={...e,alias:s,enabled:r?.enabled,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.replace("/","-");if(n.plugins[s])throw new Error(`Another plugin with alias "${s}" is already installed in the bot`);return n.plugins[s]={...e,alias:s,configuration:r.configuration,interfaces:r.interfaces},n.withPlugins.user=this._mergeUser(n.withPlugins.user,e.definition.user),n.withPlugins.conversation=this._mergeConversation(n.withPlugins.conversation,e.definition.conversation),n.withPlugins.message=this._mergeMessage(n.withPlugins.message,e.definition.message),n.withPlugins.recurringEvents=this._mergeRecurringEvents(n.withPlugins.recurringEvents,e.definition.recurringEvents),n.withPlugins.tables=this._mergeTables(n.withPlugins.tables,e.definition.tables),n.withPlugins.workflows=this._mergeWorkflows(n.withPlugins.workflows,e.definition.workflows),n.withPlugins.states=this._mergeStates(n.withPlugins.states,this._prefixKeysWithPluginAlias(e.definition.states,s)),n.withPlugins.events=this._mergeEvents(n.withPlugins.events,this._prefixKeysWithPluginAlias(e.definition.events,s)),n.withPlugins.actions=this._mergeActions(n.withPlugins.actions,this._prefixKeysWithPluginAlias(e.definition.actions,s)),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});_prefixKeysWithPluginAlias=(e,r)=>N.mapKeys(e??{},n=>`${r}${Oe}${n}`);dereferencePluginEntities(){let e=this._buildZuiReferenceMap();return{...this,withPlugins:{...this.withPlugins,events:this._dereferenceDefinitionSchemas(this.withPlugins.events,e),states:this._dereferenceDefinitionSchemas(this.withPlugins.states,e),tables:this._dereferenceDefinitionSchemas(this.withPlugins.tables,e),actions:this._dereferenceActionDefinitionSchemas(this.withPlugins.actions,e)},plugins:Object.fromEntries(Object.entries(this.plugins??{}).map(([r,n])=>[r,{...n,definition:{...n.definition,configuration:this._dereferenceDefinitionSchema(n.definition.configuration,e),events:this._dereferenceDefinitionSchemas(n.definition.events,e),states:this._dereferenceDefinitionSchemas(n.definition.states,e),tables:this._dereferenceDefinitionSchemas(n.definition.tables,e),actions:this._dereferenceActionDefinitionSchemas(n.definition.actions,e)}}]))}}_buildZuiReferenceMap(){let e={},r=Object.entries(this.plugins??{});for(let[n,s]of r){let i=Object.entries(s.interfaces??{});for(let[o,l]of i){let d=this.integrations?.[l.name];if(!d)throw new Error(`Interface with alias "${o}" of plugin with alias "${n}" references integration "${l.name}" which is not installed`);let u=Object.entries(l.entities??{});for(let[g,{name:h}]of u){let T=d.definition.entities?.[h]?.schema;if(!T)throw new Error(`Interface entity "${h}" does not exist in integration "${d.name}"`);e[`interface:${o}/entities/${g}`]=T}}}return e}_dereferenceZuiSchema(e,r){return e.dereference(r)}_dereferenceDefinitionSchemas(e,r){return Object.fromEntries(Object.entries(e??{}).map(([n,s])=>[n,this._dereferenceDefinitionSchema(s,r)]))}_dereferenceDefinitionSchema(e,r){return e&&{...e,schema:this._dereferenceZuiSchema(e.schema,r)}}_dereferenceActionDefinitionSchemas(e,r){return Object.fromEntries(Object.entries(e??{}).map(([n,s])=>[n,{...s,input:{schema:this._dereferenceZuiSchema(s.input.schema,r)},output:{schema:this._dereferenceZuiSchema(s.output.schema,r)}}]))}};var Ye=require("@botpress/client");var vt=class t extends ht{constructor(e){super({...e})}with(e){return new t({...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 fe=class{constructor(e,r={before:{},after:{}}){this._client=e;this._hooks=r}get _inner(){return this._client}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));getOrCreateWorkflow=(e=>this._run("getOrCreateWorkflow",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),i=this._hooks.after[e];return i&&(s=await i(s,r)),s}};var Gy=y.enum(["event_received","register","unregister","ping","action_triggered"]),ou=t=>({botId:t[_n]||ce("Missing bot id header"),operation:Gy.parse(t[bn]),type:t[nu]||ce("Missing type header"),configuration:JSON.parse(Buffer.from(t[Tn]||ce("Missing configuration header"),"base64").toString("utf-8"))});var X={status:200};var Ks=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 Jy=["child_workflow_deleted","child_workflow_finished","workflow_timedout","workflow_started","workflow_continued"],lu=async(t,e)=>{if(t.ctx.type!=="workflow_update"||!Jy.includes(e.payload.type))throw new Error("Unexpected event type");let r={...t,logger:Yy(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),X;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 Xy(r,e);default:e.payload.type}return X},Yy=(t,e)=>t.logger.with({eventId:e.id,workflowId:e.payload.workflow.id,conversationId:e.payload.conversation?.id,userId:e.payload.user?.id}),Xy=async(t,e)=>{let r=Ks(e.payload.type),n=t.self.workflowHandlers[r]?.[e.payload.workflow.name];if(!n||n.length===0)return t.logger.warn(`No ${r} handler found for workflow "${e.payload.workflow.name}"`),X;let{updatedWorkflow:s}=await Qy(t,e);return s.status==="pending"&&t.logger.warn(`Workflow "${e.payload.workflow.name}" is still in pending status after processing "${r}" event. This may indicate that the workflow was not properly acknowledged or terminated by the handler. `),X},Qy=async(t,e)=>{let r=Ks(e.payload.type),n=t.self.workflowHandlers[r]?.[e.payload.workflow.name],s=structuredClone(e.payload.workflow);for(let i of n??[])s=await i({...t,event:e,conversation:e.payload.conversation,user:e.payload.user,workflow:s});return{updatedWorkflow:s}};var cu=t=>async e=>{let r=ou(e.headers),n=new vt,s=new Ye.Client({botId:r.botId,retry:yn}),i=new fe(s,{before:{createMessage:async l=>{let d=t.hookHandlers.before_outgoing_message[l.type]??[];for(let u of d){let g=new fe(s);l=(await u({client:g,ctx:r,logger:n.with({conversationId:l.conversationId,userId:l.userId}),data:l}))?.data??l}return l},callAction:async l=>{let d=t.hookHandlers.before_outgoing_call_action[l.type]??[];for(let u of d){let g=new fe(s);l=(await u({client:g,ctx:r,logger:n,data:l}))?.data??l}return l}},after:{createMessage:async l=>{let d=t.hookHandlers.after_outgoing_message[l.message.type]??[];for(let u of d){let g=new fe(s);l=(await u({client:g,ctx:r,logger:n.with({messageId:l.message.id,conversationId:l.message.conversationId,userId:l.message.userId}),data:l}))?.data??l}return l},callAction:async(l,d)=>{let{type:u}=d,g=t.hookHandlers.after_outgoing_call_action[u]??[];for(let h of g){let T=new fe(s);l=(await h({client:T,ctx:r,logger:n,data:{type:u,...l}}))?.data??l}return l}}}),o={req:e,ctx:r,logger:n,client:i,self:t};try{switch(r.operation){case"action_triggered":return await sv(o);case"event_received":return await nv(o);case"register":return await tv(o);case"unregister":return await rv(o);case"ping":return await ev(o);default:throw new Error(`Unknown operation ${r.operation}`)}}catch(l){let d=l instanceof Error?l:new Error(String(l));if((0,Ye.isApiError)(d)){let g=d.type==="Runtime"?d:new Ye.RuntimeError(d.message,d);return n.error(g.message),{status:g.code,body:JSON.stringify(g.toJSON())}}let u=new Ye.RuntimeError("An unexpected error occurred in the bot.",d);return n.error(u.message,d),{status:u.code,body:JSON.stringify(u.toJSON())}}},ev=async t=>X,tv=async t=>X,rv=async t=>X,nv=async t=>{let{ctx:e,logger:r,req:n,client:s,self:i}=t,o={client:s,ctx:e,logger:r},l=le(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 lu(t,l.event);if(e.type==="message_created"){let Z=l.event,k=Z.payload.message;o.logger=o.logger.with({messageId:k.id,conversationId:k.conversationId,userId:k.userId});let K=i.hookHandlers.before_incoming_message[k.type]??[];for(let ue of K){let ae=await ue({...o,data:k});if(k=ae?.data??k,ae?.stop)return X}let F={...o,user:Z.payload.user,conversation:Z.payload.conversation,message:k,event:Z},Q=i.messageHandlers[k.type]??[];for(let ue of Q)await ue(F);let ie=i.hookHandlers.after_incoming_message[k.type]??[];for(let ue of ie){let ae=await ue({...o,data:k});if(k=ae?.data??k,ae?.stop)return X}return X}if(e.type==="state_expired"){let k=l.event.payload.state,K={...o,state:k},F=i.stateExpiredHandlers[k.name]??[];for(let Q of F)await Q(K);return X}let d=l.event,u=i.hookHandlers.before_incoming_event[d.type]??[];for(let Z of u){let k=await Z({...o,data:d});if(d=k?.data??d,k?.stop)return X}let g={...o,event:d},h=i.eventHandlers[d.type]??[];for(let Z of h)await Z(g);let T=i.hookHandlers.after_incoming_event[d.type]??[];for(let Z of T){let k=await Z({...o,data:d});if(d=k?.data??d,k?.stop)return X}return X},sv=async({ctx:t,logger:e,req:r,client:n,self:s})=>{let{input:i,type:o}=le(r);if(!o)throw new Error("Missing action type");let l=s.hookHandlers.before_incoming_call_action[o]??[];for(let T of l){let Z=await T({ctx:t,logger:e,client:n,data:{type:o,input:i}});i=Z?.data?.input??i,o=Z?.data?.type??o}let d=s.actionHandlers[o];if(!d)throw new Error(`Action ${o} not found`);let u=await d({ctx:t,logger:e,input:i,client:n,type:o}),g=s.hookHandlers.after_incoming_call_action[o]??[];for(let T of g){let Z=await T({ctx:t,logger:e,client:n,data:{type:o,output:u}});o=Z?.data?.type??o,u=Z?.data?.output??u}return{status:200,body:JSON.stringify({output:u})}};var we=t=>new Proxy({},{get:(e,r)=>({listInstances:{all:n=>Ze({workflowName:r,client:t,input:n}),running:n=>Ze({workflowName:r,client:t,input:n,statuses:["in_progress"]}),scheduled:n=>Ze({workflowName:r,client:t,input:n,statuses:["pending","listening"]}),allFinished:n=>Ze({workflowName:r,client:t,input:n,statuses:["completed","cancelled","failed","timedout"]}),cancelled:n=>Ze({workflowName:r,client:t,input:n,statuses:["cancelled"]}),failed:n=>Ze({workflowName:r,client:t,input:n,statuses:["failed"]}),succeeded:n=>Ze({workflowName:r,client:t,input:n,statuses:["completed"]}),timedOut:n=>Ze({workflowName:r,client:t,input:n,statuses:["timedout"]})},startNewInstance:async n=>{let{workflow:s}=await t.createWorkflow({name:r,status:"pending",...n});return{workflow:de({client:t,workflow:s})}}})}),Ze=async t=>{let e=await t.client.listWorkflows({name:t.workflowName,statuses:t.statuses,...t.input});return{...e,workflows:e.workflows.map(r=>de({client:t.client,workflow:r}))}},de=t=>{let e=!1;return{...t.workflow,async update(r){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,...r});return await t.onWorkflowUpdate?.(n),{workflow:de({...t,workflow:n})}},async acknowledgeStartOfProcessing(){if(!t.event||t.workflow.status!=="pending"||e)return{workflow:de(t)};let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,status:"in_progress",eventId:t.event.id});return e=!0,await t.onWorkflowUpdate?.(r),{workflow:de({...t,workflow:r})}},async setFailed({failureReason:r}){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,status:"failed",failureReason:r});return await t.onWorkflowUpdate?.(n),{workflow:de({...t,workflow:n})}},async setCompleted({output:r}={}){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,status:"completed",output:r});return await t.onWorkflowUpdate?.(n),{workflow:de({...t,workflow:n})}},async cancel(){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,status:"cancelled"});return await t.onWorkflowUpdate?.(r),{workflow:de({...t,workflow:r})}}}};var xn=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,i]of Object.entries(this._plugins)){let[o,l]=r.split(Oe);if(!(o!==s||!l)&&(n=i.actionHandlers[l],n))return Y.setName(d=>n({...d,workflows:we(d.client)}),n.name)}}})}get messageHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.messageHandlers[r]??[]),s=this._messageHandlers[r]??[],i=this._messageHandlers["*"]??[],o=[...s,...i].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return E.unique([...n,...o]).map(l=>Y.setName(d=>l({...d,workflows:we(d.client)}),l.name))}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.eventHandlers[r]??[]),s=this._eventHandlers[r]??[],i=this._eventHandlers["*"]??[],o=[...s,...i].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return E.unique([...n,...o]).map(l=>Y.setName(d=>l({...d,workflows:we(d.client)}),l.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.stateExpiredHandlers[r]??[]),s=this._stateExpiredHandlers[r]??[],i=this._stateExpiredHandlers["*"]??[],o=[...s,...i].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return E.unique([...n,...o]).map(l=>Y.setName(d=>l({...d,workflows:we(d.client)}),l.name))}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{if(this._hookHandlers[r])return new Proxy({},{get:(s,i)=>{let o=Object.values(this._plugins).flatMap(h=>h.hookHandlers[r]?.[i]??[]),l=this._hookHandlers[r]??{},d=l[i]??[],u=l["*"]??[],g=[...d,...u].sort((h,T)=>h.order-T.order).map(({handler:h})=>h);return E.unique([...o,...g]).map(h=>Y.setName(T=>h({...T,workflows:we(T.client)}),h.name))}})}})}get workflowHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._workflowHandlers[r];if(n)return new Proxy({},{get:(s,i)=>{let o=n[i]?.sort((d,u)=>d.order-u.order).map(({handler:d})=>d)??[],l=Object.values(this._plugins).flatMap(d=>d.workflowHandlers[r]?.[i]??[]);return E.unique([...o,...l]).map(d=>Y.setName(async u=>{let g=u.workflow;return await d({...u,workflow:de({...u,onWorkflowUpdate(h){g=h}}),workflows:we(u.client)}),g},d.name))}})}})}on={message:(e,r)=>{this._messageHandlers[e]=E.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=E.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=E.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=E.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=E.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=E.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=E.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=E.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=E.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=E.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=E.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=E.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=E.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=E.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=E.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=E.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};handler=cu(this);start=e=>Vt(this.handler,e)};var kn=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,this.__advanced=e.__advanced;let r=this._getEntityReference(this.entities),n=e.events===void 0?{}:N.mapValues(e.events,o=>({...o,schema:o.schema(r)})),s=e.actions===void 0?{}:N.mapValues(e.actions,o=>({...o,input:{...o.input,schema:o.input.schema(r)},output:{...o.output,schema:o.output.schema(r)}})),i=e.channels===void 0?{}:N.mapValues(e.channels,o=>({...o,messages:N.mapValues(o.messages,l=>({...l,schema:l.schema(r)}))}));this.events=n,this.actions=s,this.channels=i}name;version;title;description;icon;readme;attributes;entities;events;actions;channels;__advanced;get metadata(){return{sdkVersion:Ee}}_getEntityReference=e=>{let r={};for(let[n,s]of Object.entries(e)){let i=s.schema._def["x-zui"]?.title,o=s.schema._def.description,l=Dd.ref(n);i&&l.title(i),o&&l.describe(o),r[n]=l}return r}};var Sn=class{constructor(e){this.props=e;let r=Object.fromEntries(Object.entries(e.interfaces??{}).map(([n,s])=>[n,Object.fromEntries(Object.entries(s.definition.entities??{}).map(([i])=>[i,y.ref(`interface:${n}/entities/${i}`)]))]));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.recurringEvents=e.recurringEvents,this.workflows=e.workflows,this.attributes=e.attributes,this.__advanced=e.__advanced,this.configuration=e.configuration?{...e.configuration,schema:typeof e.configuration.schema=="object"?e.configuration.schema:e.configuration.schema({entities:r})}:void 0,this.states=Object.fromEntries(Object.entries(e.states??{}).map(([n,s])=>[n,{...s,schema:typeof s.schema=="object"?s.schema:s.schema({entities:r})}])),this.events=Object.fromEntries(Object.entries(e.events??{}).map(([n,s])=>[n,{...s,schema:typeof s.schema=="object"?s.schema:s.schema({entities:r})}])),this.actions=Object.fromEntries(Object.entries(e.actions??{}).map(([n,s])=>[n,{...s,input:{...s.input,schema:typeof s.input.schema=="object"?s.input.schema:s.input.schema({entities:r})},output:{...s.output,schema:typeof s.output.schema=="object"?s.output.schema:s.output.schema({entities:r})}}])),this.tables=Object.fromEntries(Object.entries(e.tables??{}).map(([n,s])=>[n,{...s,schema:typeof s.schema=="object"?s.schema:s.schema({entities:r})}]))}name;version;title;description;icon;readme;attributes;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows;__advanced;get metadata(){return{sdkVersion:Ee}}dereferenceEntities({intersectWithUnknownRecord:e}={intersectWithUnknownRecord:!0}){let r=this._buildZuiReferenceMap(e);return{...this,configuration:this.configuration?{...this.configuration,schema:this._dereferenceZuiSchema(this.configuration.schema,r)}:void 0,events:this._dereferenceDefinitionSchemas(this.events,r),states:this._dereferenceDefinitionSchemas(this.states,r),tables:this._dereferenceDefinitionSchemas(this.tables,r),actions:this._dereferenceActionDefinitionSchemas(this.actions,r)}}_buildZuiReferenceMap(e){return Object.fromEntries(Object.entries(this.interfaces??{}).flatMap(([r,n])=>Object.entries(n.definition.entities??{}).map(([s,i])=>[`interface:${r}/entities/${s}`,e?i.schema.and(y.record(y.string(),y.unknown())):i.schema])))}_dereferenceZuiSchema(e,r){return e.dereference(r)}_dereferenceDefinitionSchemas(e,r){return Object.fromEntries(Object.entries(e??{}).map(([n,s])=>[n,{...s,schema:this._dereferenceZuiSchema(s.schema,r)}]))}_dereferenceActionDefinitionSchemas(e,r){return Object.fromEntries(Object.entries(e??{}).map(([n,s])=>[n,{...s,input:{schema:this._dereferenceZuiSchema(s.input.schema,r)},output:{schema:this._dereferenceZuiSchema(s.output.schema,r)}}]))}};var Us=":";var du=t=>{let[e,r]=t.split(Us);return!e||!r?null:{namespace:e,eventName:r}},uu=t=>`${t.namespace}${Us}${t.actionName}`,pu=t=>`${t.namespace}${Us}${t.eventName}`,fu=(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}},gu=(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 mu=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(s,i)=>o=>iv({client:t,interfaces:e.interfaces,integrationOrInterfaceName:n,methodName:i,input:o})})}),iv=async({client:t,interfaces:e,integrationOrInterfaceName:r,methodName:n,input:s})=>{let i=fu({namespace:r,actionName:n},e),o=uu(i);return(await t.callAction({type:o,input:s})).output};var zs=class t{constructor(e){this._props=e}async emit(e){let{conversationId:r,userId:n,messageId:s}=this._props;await this._props.client.createEvent({type:this._props.eventName,payload:e,conversationId:r,userId:n,messageId:s})}async schedule(e,r){let{conversationId:n,userId:s,messageId:i}=this._props;await this._props.client.createEvent({type:this._props.eventName,payload:e,conversationId:n,userId:s,messageId:i,schedule:r})}withConversationId(e){return new t({...this._props,conversationId:e})}withUserId(e){return new t({...this._props,userId:e})}withMessageId(e){return new t({...this._props,messageId:e})}},hu=(t,e)=>new Proxy({},{get:(r,n)=>{let s=e.alias!==void 0?`${e.alias}${Oe}${n}`:n;return new zs({client:t,eventName:s})}});var Fs=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,n){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:r,expiry:n?.expiryMs})}async getOrSet(e,r,n){return await this._client.getOrSetState({type:this._stateType,name:this._stateName,id:e,payload:r,expiry:n?.expiryMs}).then(s=>s.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})}},yu=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(s,i)=>{let o=e.alias!==void 0?`${e.alias}${Oe}${i}`:i;return new Fs(t,n,o)}})});var En=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,i=mu(e,this._runtime),o=yu(e,this._runtime),l=we(e),d=hu(e,this._runtime);return{configuration:r,interfaces:n,actions:i,states:o,alias:s,workflows:l,events:d}}get actionHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._actionHandlers[r];if(n)return Y.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 E.unique([...n,...s]).sort((o,l)=>o.order-l.order).map(({handler:o})=>Y.setName(l=>o({...l,message:l.message,...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??[]),i=this._eventHandlers["*"]??[];return E.unique([...n,...s,...i]).sort((l,d)=>l.order-d.order).map(({handler:l})=>Y.setName(d=>l({...d,event:d.event,...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 E.unique([...n,...s]).sort((o,l)=>o.order-l.order).map(({handler:o})=>Y.setName(l=>o({...l,state:l.state,...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,i)=>{i=this._stripAliasPrefix(i);let o=n[i]??[],l=Object.entries(n).filter(([g])=>this._eventResolvesTo(g,i)).flatMap(([,g])=>g??[]),d=n["*"]??[];return E.unique([...o,...l,...d]).sort((g,h)=>g.order-h.order).map(({handler:g})=>Y.setName(h=>g({...h,data:h.data,...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,i)=>(n[i]?.sort((l,d)=>l.order-d.order)??[]).map(({handler:l})=>Y.setName(async d=>{let u=d.workflow;return await l({...d,workflow:de({...d,onWorkflowUpdate(g){u=g}}),...this._getTools(d.client)}),u},l.name))})}})}on={message:(e,r)=>{this._messageHandlers[e]=E.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=E.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=E.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=E.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=E.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=E.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=E.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=E.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=E.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=E.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=E.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=E.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=E.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=E.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=E.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=E.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};_eventResolvesTo=(e,r)=>{let n=du(e);if(!n)return!1;let s=gu(n,this._runtime.interfaces);return pu(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}};var Ws={};Xe(Ws,{allWithinMajorOf:()=>av,allWithinMinorOf:()=>ov});var Gt=In(require("semver"));function av(t){let e=Gt.major(t.version);return{...t,version:`>=${e}.0.0 <${e+1}.0.0`}}function ov(t){let e=Gt.major(t.version),r=Gt.minor(t.version);return{...t,version:`>=${e}.${r}.0 <${e}.${r+1}.0`}}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,coerce,conversation,createZodEnum,cuid2Regex,cuidRegex,custom,datasource,date,discriminatedUnion,effect,emailRegex,enum:null,errorUtil,event,function:null,getErrorMap,getParsedType,instanceof:null,intent,intersection,ipv4Regex,ipv6Regex,isAborted,isApiError,isAsync,isDirty,isEmojiRegex,isValid,json,knowledgebase,late,lazy,literal,makeIssue,map,mergeObjectSchemas,message,messages,nan,nativeEnum,never,null:null,nullable,number,object,objectUtil,oboolean,onumber,optional,ostring,parseBody,pipeline,preprocess,processCreateParams,promise,quotelessJson,readonly,record,ref,serve,set,setErrorMap,strictObject,string,symbol,table,tablerow,transformer,transforms,tuple,ulidRegex,undefined,union,unknown,user,util,uuidRegex,variable,version,void:null,z});
|
|
72
|
+
`,s+="})"}let i=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)&&(i+=`.and(${ad(f(c({},t),{anyOf:t.anyOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?f(c({},o),{type:"object"}):o)}),e)})`),$.a.oneOf(t)&&(i+=`.and(${Hs(f(c({},t),{oneOf:t.oneOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?f(c({},o),{type:"object"}):o)}),e)})`),$.an.allOf(t)&&(i+=`.and(${Kt(f(c({},t),{allOf:t.allOf.map(o=>typeof o=="object"&&!o.type&&(o.properties||o.additionalProperties||o.patternProperties)?f(c({},o),{type:"object"}):o)}),e)})`),i}a(od,"parseObject");var Ih=a(t=>{var e;let r="z.string()";if((e=t[w])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";r="z.coerce.string()"}return r+=V(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+=V(t,"pattern",({json:n})=>[`.regex(new RegExp(${n})`,", ",")"]),r+=V(t,"minLength",({json:n})=>[`.min(${n}`,", ",")"]),r+=V(t,"maxLength",({json:n})=>[`.max(${n}`,", ",")"]),r},"parseString"),Bh=a((t,e)=>`${L(Ph(t,"nullable"),e,!0)}.nullable()`,"parseNullable"),Ah=a(t=>`z.ref('${t.$ref}')`,"parseRef"),Rh=a((t,e)=>{var r,n;if(t.oneOf.length<=1||!((r=t.discriminator)!=null&&r.propertyName))return Hs(t,e);let s=t.oneOf.map((i,o)=>L(i,f(c({},e),{path:[...e.path,"oneOf",o]})));return`z.discriminatedUnion("${(n=t.discriminator)==null?void 0:n.propertyName}", [${s.join(", ")}])`},"parseDiscriminator"),L=a((t,e={seen:new Map,path:[]},r)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let i=e.parserOverride(t,e);if(typeof i=="string")return i}let n=e.seen.get(t);if(n){if(n.r!==void 0)return n.r;if(e.depth===void 0||n.n>=e.depth)return"z.any()";n.n+=1}else n={r:void 0,n:0},e.seen.set(t,n);let s=Hh(t,e);return r||(s=Ch(t,s),e.withoutDefaults||(s=Dh(t,s))),n.r=s,s},"parseSchema"),Ch=a((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),Dh=a((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),Hh=a((t,e)=>$.a.nullable(t)?Bh(t,e):$.an.object(t)?od(t,e):$.an.array(t)?kh(t,e):$.an.anyOf(t)?ad(t,e):$.an.allOf(t)?Kt(t,e):$.a.discriminator(t)?Rh(t,e):$.a.oneOf(t)?Hs(t,e):$.a.not(t)?Th(t,e):$.an.enum(t)?Eh(t):$.a.const(t)?Sh(t):$.a.multipleType(t)?_h(t,e):$.a.primitive(t,"string")?Ih(t):$.a.primitive(t,"number")||$.a.primitive(t,"integer")?Zh(t):$.a.primitive(t,"boolean")?yh(t):$.a.primitive(t,"null")?bh(t):$.a.conditional(t)?Oh(t,e):$.a.ref(t)?Ah(t):vh(t),"selectParser"),$={an:{object:a(t=>t.type==="object","object"),array:a(t=>t.type==="array","array"),anyOf:a(t=>t.anyOf!==void 0,"anyOf"),allOf:a(t=>t.allOf!==void 0,"allOf"),enum:a(t=>t.enum!==void 0,"enum")},a:{nullable:a(t=>t.nullable===!0,"nullable"),multipleType:a(t=>Array.isArray(t.type),"multipleType"),not:a(t=>t.not!==void 0,"not"),const:a(t=>t.const!==void 0,"const"),primitive:a((t,e)=>t.type===e,"primitive"),conditional:a(t=>!!("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),"conditional"),discriminator:a(t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},"discriminator"),oneOf:a(t=>t.oneOf!==void 0,"oneOf"),ref:a(t=>t.$ref!==void 0,"ref")}},Nh=a(t=>{let e;try{e=new Function("z",`return ${t}`)(p)}catch(r){return{sucess:!1,error:`Failed to evaluate schema: ${(r instanceof Error?r:new Error(String(r))).message}`}}return e instanceof p.ZodType?{sucess:!0,value:e}:{sucess:!1,error:`String "${t}" does not evaluate to a Zod schema`}},"evalZuiString"),Mh=a(t=>L(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),$h=a(t=>{let e=Mh(t);e=e.replaceAll("errors: z.ZodError[]","errors");let r=Nh(e);if(!r.sucess)throw new Fr(r.error);return r.value},"jsonSchemaToZod"),At=a((t,e)=>{var r,n;if(e[w]&&t._def&&(t.naked()._def[w]=e[w]),((r=t._def)==null?void 0:r.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([s,i])=>{let o=typeof t._def.shape=="function"?t._def.shape():t._def.shape;o[s]&&At(o[s],i)}),((n=t._def)==null?void 0:n.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&At(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let s=e.items;if(typeof s=="object"&&!Array.isArray(s)){let i=t._def.type;i&&At(i,s)}else Array.isArray(s)&&s.forEach((i,o)=>{let l=t._def;l.typeName===y.ZodFirstPartyTypeKind.ZodTuple&&At(l.items[o],i)})}},"applyZuiPropsRecursively"),jh=a(t=>{let e=$h(t);return At(e,t),e},"fromJSONSchemaLegacy"),Kh=a(t=>{var e,r;return t.anyOf!==void 0&&t.anyOf.length===2&&t.anyOf.some(n=>typeof n!="boolean"&&ld(n))&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===p.ZodFirstPartyTypeKind.ZodOptional},"isOptionalSchema"),Uh=a(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)===p.ZodFirstPartyTypeKind.ZodNullable},"isNullableSchema"),ld=a(t=>{var e,r;return t.not===!0&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===p.ZodFirstPartyTypeKind.ZodUndefined},"isUndefinedSchema"),zh=a(t=>{var e,r;return!t.not&&((r=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:r.typeName)===p.ZodFirstPartyTypeKind.ZodUnknown},"isUnknownSchema"),Fh=a(({type:t,minimum:e,exclusiveMinimum:r,maximum:n,exclusiveMaximum:s,multipleOf:i,format:o})=>{let l=p.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)),i!==void 0&&(l=l.multipleOf(i)),l},"numberJSONSchemaToZuiNumber"),Wh=a(({format:t,pattern:e,minLength:r,maxLength:n})=>{let s=p.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:i,offset:o}=e?ih(e):{};s=s.datetime({precision:i,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"),Tt=a((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 Wh(e);if(t==="number"&&(e.type==="number"||e.type==="integer"))return Fh(e);if(t==="boolean")return p.boolean();if(t==="null")return p.null();throw new Fr(`Unknown primitive type: "${t}"`)}if(n.length===1)return p.literal(s);let i=n.map(o=>p.literal(o));return p.union(i)},"toZuiPrimitive"),Lh=a((t,e)=>qh(t)?Gh(t,e):Vh(t)?Jh(t,e):Yh(t,e),"arrayJSONSchemaToZuiArray"),qh=a(t=>Array.isArray(t.items),"_isTuple"),Vh=a(t=>t.items!==void 0&&t.uniqueItems,"_isSet"),Gh=a(({items:t,additionalItems:e},r)=>{let n=t.map(r),s=p.tuple(n);return e!==void 0&&(s=s.rest(r(e))),s},"_handleTuple"),Jh=a(({items:t,minItems:e,maxItems:r},n)=>{let s=p.set(n(t));return e&&(s=s.min(e)),r&&(s=s.max(r)),s},"_handleSet"),Yh=a(({minItems:t,maxItems:e,items:r},n)=>{let s=p.array(n(r));return t&&t===e?s.length(t):(t&&(s=s.min(t)),e&&(s=s.max(e)),s)},"_handleArray"),Qe=p.any();function cd(t){return W(t)}a(cd,"fromJSONSchema");function W(t){var e;if(t===void 0)return Qe;if(t===!0)return p.any();if(t===!1)return p.never();if(t.default!==void 0)return W(f(c({},t),{default:void 0})).default(t.default);if(t.readOnly)return W(f(c({},t),{readOnly:void 0})).readonly();if(t.oneOf!==void 0)throw new Pe({oneOf:t.oneOf});if(t.patternProperties!==void 0)throw new Pe({patternProperties:t.patternProperties});if(t.propertyNames!==void 0)throw new Pe({propertyNames:t.propertyNames});if(t.if!==void 0)throw new Pe({if:t.if});if(t.then!==void 0)throw new Pe({then:t.then});if(t.else!==void 0)throw new Pe({else:t.else});if(t.$ref!==void 0)return p.ref(t.$ref);if(t.not!==void 0){if(ld(t))return p.undefined();if(t.not===!0)return p.never();throw new Pe({not:t.not})}if(Array.isArray(t.type)){if(t.type.length===0)return Qe;if(t.type.length===1)return W(f(c({},t),{type:t.type[0]}));let r=t,{type:n}=r,s=Ai(r,["type"]),i=t.type.map(o=>W(f(c({},s),{type:o})));return p.union(i)}if(t.type==="string")return t.enum&&t.enum.length>0?p.enum(t.enum):Tt("string",t);if(t.type==="integer"){let r=Tt("number",t);return r instanceof p.ZodNumber?r.int():r}if(t.type==="number")return Tt("number",t);if(t.type==="boolean")return Tt("boolean",t);if(t.type==="null")return Tt("null",t);if(t.type==="array")return Lh(t,W);if(t.type==="object"){if(t.additionalProperties!==void 0&&t.properties!==void 0){let r=W(t.additionalProperties);return W(f(c({},t),{additionalProperties:void 0})).catchall(r)}if(t.properties!==void 0){let r={};for(let[n,s]of Object.entries(t.properties)){let i=W(s),o=(e=t.required)!=null?e:[];r[n]=o.includes(n)?i:i.optional()}return p.object(r)}if(t.additionalProperties!==void 0){let r=W(t.additionalProperties);return p.record(r)}return p.record(Qe)}if(t.anyOf!==void 0){if(t.anyOf.length===0)return Qe;if(t.anyOf.length===1)return W(t.anyOf[0]);if(Kh(t))return W(t.anyOf[0]).optional();if(Uh(t))return W(t.anyOf[0]).nullable();let r=t.anyOf.map(W);return p.union(r)}if(t.allOf!==void 0){if(t.allOf.length===0)return Qe;if(t.allOf.length===1)return W(t.allOf[0]);let[r,...n]=t.allOf,s=W(r),i=W({allOf:n});return p.intersection(s,i)}return zh(t)?p.unknown():Qe}a(W,"_fromJSONSchema");var Xh=/^\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))?$/,Gn=a((t,e,r=!0)=>{if(typeof t!="object")throw new $n("Input must be an object");let n=a(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(y.null());else switch(typeof d){case"string":o[l]=Xh.test(d)?n(y.string().datetime()):n(y.string());break;case"number":o[l]=n(y.number());break;case"boolean":o[l]=n(y.boolean());break;case"object":Array.isArray(d)?d.length===0?o[l]=n(y.array(y.unknown())):typeof d[0]=="object"?o[l]=n(y.array(Gn(d[0],e,!1))):["string","number","boolean"].includes(typeof d[0])&&(o[l]=n(y.array(y[typeof d[0]]()))):o[l]=n(Gn(d,e,!1));break;default:throw new $n(`Unsupported type for key ${l}`)}return o},{}),i=Object.keys(s).length>0;return e?.passtrough||!r&&!i?y.object(s).passthrough():y.object(s)},"fromObject");function dd(){return{}}a(dd,"parseAnyDef");function ud(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=A(t.type._def,f(c({},e),{currentPath:[...e.currentPath,"items"]}))),t.minLength&&D(s,"minItems",t.minLength.value,t.minLength.message,e),t.maxLength&&D(s,"maxItems",t.maxLength.value,t.maxLength.message,e),t.exactLength&&(D(s,"minItems",t.exactLength.value,t.exactLength.message,e),D(s,"maxItems",t.exactLength.value,t.exactLength.message,e)),s}a(ud,"parseArrayDef");function pd(t,e){let r=c({type:"integer",format:"int64"},t.coerce?{[w]:{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?D(r,"minimum",n.value,n.message,e):D(r,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(r.exclusiveMinimum=!0),D(r,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?D(r,"maximum",n.value,n.message,e):D(r,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(r.exclusiveMaximum=!0),D(r,"maximum",n.value,n.message,e));break;case"multipleOf":D(r,"multipleOf",n.value,n.message,e);break}return r}a(pd,"parseBigintDef");function fd(t){return c({type:"boolean"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{})}a(fd,"parseBooleanDef");function gd(t,e){return A(t.type._def,e)}a(gd,"parseBrandedDef");var Qh=a((t,e)=>A(t.innerType._def,e),"parseCatchDef");function md(t,e){return e.dateStrategy=="integer"?ey(t,e):c({type:"string",format:"date-time"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{})}a(md,"parseDateDef");var ey=a((t,e)=>{let r=c({type:"integer",format:"unix-time"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{});for(let n of t.checks)switch(n.kind){case"min":e.target==="jsonSchema7"&&D(r,"minimum",n.value,n.message,e);break;case"max":e.target==="jsonSchema7"&&D(r,"maximum",n.value,n.message,e);break}return r},"integerDateParser");function hd(t,e){return f(c({},A(t.innerType._def,e)),{default:t.defaultValue()})}a(hd,"parseDefaultDef");function yd(t,e){return e.effectStrategy==="input"?A(t.schema._def,e):{}}a(yd,"parseEffectsDef");function vd(t){return{type:"string",enum:t.values}}a(vd,"parseEnumDef");var ty=a(t=>"type"in t&&t.type==="string"?!1:"allOf"in t,"isJsonSchema7AllOfType");function _d(t,e){let r=[A(t.left._def,f(c({},e),{currentPath:[...e.currentPath,"allOf","0"]})),A(t.right._def,f(c({},e),{currentPath:[...e.currentPath,"allOf","1"]}))].filter(i=>!!i),n=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,s=[];return r.forEach(i=>{if(ty(i))s.push(...i.allOf),i.unevaluatedProperties===void 0&&(n=void 0);else{let o=i;if("additionalProperties"in i&&i.additionalProperties===!1){let l=i,{additionalProperties:d}=l;o=Ai(l,["additionalProperties"])}else n=void 0;s.push(o)}}),s.length?c({allOf:s},n):void 0}a(_d,"parseIntersectionDef");function Td(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}}a(Td,"parseLiteralDef");function Ns(t,e){var r,n,s,i,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,u)=>{var g;return f(c({},d),{[u]:(g=A(t.valueType._def,f(c({},e),{currentPath:[...e.currentPath,"properties",u]})))!=null?g:{}})},{}),additionalProperties:!1};let l={type:"object",additionalProperties:(n=A(t.valueType._def,f(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"&&((i=t.keyType._def.checks)!=null&&i.length)){let d=Object.entries(us(t.keyType._def,e)).reduce((u,[g,h])=>g==="type"?u:f(c({},u),{[g]:h}),{});return f(c({},l),{propertyNames:d})}else if(((o=t.keyType)==null?void 0:o._def.typeName)==="ZodEnum")return f(c({},l),{propertyNames:{enum:t.keyType._def.values}});return l}a(Ns,"parseRecordDef");function bd(t,e){if(e.mapStrategy==="record")return Ns(t,e);let r=A(t.keyType._def,f(c({},e),{currentPath:[...e.currentPath,"items","items","0"]}))||{},n=A(t.valueType._def,f(c({},e),{currentPath:[...e.currentPath,"items","items","1"]}))||{};return{type:"array",maxItems:125,items:{type:"array",items:[r,n],minItems:2,maxItems:2}}}a(bd,"parseMapDef");function wd(t){let e=t.values,n=Object.keys(t.values).filter(i=>typeof e[e[i]]!="number").map(i=>e[i]),s=Array.from(new Set(n.map(i=>typeof i)));return{type:s.length===1?s[0]==="string"?"string":"number":["string","number"],enum:n.filter(i=>typeof i=="string"||typeof i=="number")}}a(wd,"parseNativeEnumDef");function Pd(){return{not:{}}}a(Pd,"parseNeverDef");function xd(t){return t.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}a(xd,"parseNullDef");var Ur={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function kd(t,e){if(e.target==="openApi3")return Oi(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,i)=>{let o=Ur[i._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,i)=>{let o=typeof i._def.value;switch(o){case"string":case"number":case"boolean":return[...s,o];case"bigint":return[...s,"integer"];case"object":if(i._def.value===null)return[...s,"null"];case"symbol":case"undefined":case"function":default:return s}},[]);if(n.length===r.length){let s=n.filter((i,o,l)=>l.indexOf(i)===o);return{type:s.length>1?s:s[0],enum:r.reduce((i,o)=>i.includes(o._def.value)?i:[...i,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(i=>!n.includes(i))],[])};return Oi(t,e)}a(kd,"parseUnionDef");var Oi=a((t,e)=>{let r=(t.options instanceof Map?Array.from(t.options.values()):t.options).map((s,i)=>A(s._def,f(c({},e),{currentPath:[...e.currentPath,e.unionStrategy,`${i}`]}))).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 Sd(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 i={type:Ur[n._def.typeName],nullable:!0};return Jn(n._def,e,i)}let s={type:[Ur[n._def.typeName],"null"]};return Jn(n._def,e,s)}if(e.target==="openApi3"){let n=A(t.innerType._def,f(c({},e),{currentPath:[...e.currentPath]}));return n&&f(c({},n),{nullable:!0})}let r=A(t.innerType._def,f(c({},e),{currentPath:[...e.currentPath,"anyOf","0"]}));return r&&{anyOf:[r,{type:"null"}]}}a(Sd,"parseNullableDef");function Ed(t,e){let r=c({type:"number"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{});if(!t.checks)return r;for(let n of t.checks)switch(n.kind){case"int":r.type="integer",ds(r,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?D(r,"minimum",n.value,n.message,e):D(r,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(r.exclusiveMinimum=!0),D(r,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?D(r,"maximum",n.value,n.message,e):D(r,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(r.exclusiveMaximum=!0),D(r,"maximum",n.value,n.message,e));break;case"multipleOf":D(r,"multipleOf",n.value,n.message,e);break}return r}a(Ed,"parseNumberDef");var ry=a((t,e)=>{var r;return t.unknownKeys instanceof O?(r=A(t.unknownKeys._def,f(c({},e),{currentPath:[...e.currentPath,"additionalProperties"]})))!=null?r:!0:t.unknownKeys==="passthrough"},"getAdditionalProperties");function Od(t,e){let r=f(c({type:"object"},Object.entries(t.shape()).reduce((n,[s,i])=>{if(i===void 0||i._def===void 0)return n;let o=A(i._def,f(c({},e),{currentPath:[...e.currentPath,"properties",s],propertyPath:[...e.currentPath,"properties",s]}));return o===void 0?n:{properties:f(c({},n.properties),{[s]:o}),required:i.isOptional()?n.required:[...n.required,s]}},{properties:{},required:[]})),{additionalProperties:ry(t,e)});return r.required.length||delete r.required,r}a(Od,"parseObjectDef");var ny=a((t,e)=>{var r;if(e.currentPath.toString()===((r=e.propertyPath)==null?void 0:r.toString()))return A(t.innerType._def,e);let n=A(t.innerType._def,f(c({},e),{currentPath:[...e.currentPath,"anyOf","1"]}));return n?{anyOf:[{not:{}},n]}:{}},"parseOptionalDef"),sy=a((t,e)=>{if(e.pipeStrategy==="input")return A(t.in._def,e);if(e.pipeStrategy==="output")return A(t.out._def,e);let r=A(t.in._def,f(c({},e),{currentPath:[...e.currentPath,"allOf","0"]})),n=A(t.out._def,f(c({},e),{currentPath:[...e.currentPath,"allOf",r?"1":"0"]}));return{allOf:[r,n].filter(s=>s!==void 0)}},"parsePipelineDef");function Zd(t,e){return A(t.type._def,e)}a(Zd,"parsePromiseDef");function Id(t,e){let n={type:"array",uniqueItems:!0,items:A(t.valueType._def,f(c({},e),{currentPath:[...e.currentPath,"items"]}))};return t.minSize&&D(n,"minItems",t.minSize.value,t.minSize.message,e),t.maxSize&&D(n,"maxItems",t.maxSize.value,t.maxSize.message,e),n}a(Id,"parseSetDef");function Bd(t,e){return t.rest?{type:"array",minItems:t.items.length,items:t.items.map((r,n)=>A(r._def,f(c({},e),{currentPath:[...e.currentPath,"items",`${n}`]}))).reduce((r,n)=>n===void 0?r:[...r,n],[]),additionalItems:A(t.rest._def,f(c({},e),{currentPath:[...e.currentPath,"additionalItems"]}))}:{type:"array",minItems:t.items.length,maxItems:t.items.length,items:t.items.map((r,n)=>A(r._def,f(c({},e),{currentPath:[...e.currentPath,"items",`${n}`]}))).reduce((r,n)=>n===void 0?r:[...r,n],[])}}a(Bd,"parseTupleDef");function Ad(){return{not:{}}}a(Ad,"parseUndefinedDef");function Rd(){return{}}a(Rd,"parseUnknownDef");var iy=a((t,e)=>A(t.innerType._def,e),"parseReadonlyDef");function Cd(t){return{$ref:t.uri}}a(Cd,"parseRefDef");function A(t,e,r=!1){let n=e.seen.get(t);if(n&&!r){let o=ay(n,e);if(o!==void 0)return o}let s={def:t,path:e.currentPath,jsonSchema:void 0};e.seen.set(t,s);let i=ly(t,t.typeName,e);return i&&Jn(t,e,i),s.jsonSchema=i,i}a(A,"parseDef");var ay=a((t,e)=>{switch(e.$refStrategy){case"root":return{$ref:t.path.join("/")};case"relative":return{$ref:oy(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"),oy=a((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"),ly=a((t,e,r)=>{switch(e){case"ZodString":return us(t,r);case"ZodNumber":return Ed(t,r);case"ZodObject":return Od(t,r);case"ZodBigInt":return pd(t,r);case"ZodBoolean":return fd(t);case"ZodDate":return md(t,r);case"ZodUndefined":return Ad();case"ZodNull":return xd(r);case"ZodArray":return ud(t,r);case"ZodUnion":case"ZodDiscriminatedUnion":return kd(t,r);case"ZodIntersection":return _d(t,r);case"ZodTuple":return Bd(t,r);case"ZodRecord":return Ns(t,r);case"ZodRef":return Cd(t);case"ZodLiteral":return Td(t,r);case"ZodEnum":return vd(t);case"ZodNativeEnum":return wd(t);case"ZodNullable":return Sd(t,r);case"ZodOptional":return ny(t,r);case"ZodMap":return bd(t,r);case"ZodSet":return Id(t,r);case"ZodLazy":return A(t.getter()._def,r);case"ZodPromise":return Zd(t,r);case"ZodNaN":case"ZodNever":return Pd();case"ZodEffects":return yd(t,r);case"ZodAny":return dd();case"ZodUnknown":return Rd();case"ZodDefault":return hd(t,r);case"ZodBranded":return gd(t,r);case"ZodReadonly":return iy(t,r);case"ZodCatch":return Qh(t,r);case"ZodPipeline":return sy(t,r);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return(n=>{})(e)}},"selectParser"),Jn=a((t,e,r)=>(t.description&&(r.description=t.description,e.markdownDescription&&(r.markdownDescription=t.description)),Object.assign(r,{[w]:c(c({},t[w]),r[w])}),r),"addMeta"),Zi={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"},cy=a(t=>typeof t=="string"?f(c({},Zi),{name:t}):c(c({},Zi),t),"getDefaultOptions"),dy=a(t=>{let e=cy(t),r=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return f(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"),uy=a((t,e)=>{var r;let n=dy(e),s=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((d,[u,g])=>{var h;return f(c({},d),{[u]:(h=A(g._def,f(c({},n),{currentPath:[...n.basePath,n.definitionPath,u]}),!0))!=null?h:{}})},{}):void 0,i=typeof e=="string"?e:e?.name,o=(r=A(t._def,i===void 0?n:f(c({},n),{currentPath:[...n.basePath,n.definitionPath,i]}),!1))!=null?r:{},l=i===void 0?s?f(c({},o),{[n.definitionPath]:s}):o:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,i].join("/"),[n.definitionPath]:f(c({},s),{[i]: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"),py=a((t,e={target:"openApi3"})=>{let r=uy(t,e);return e.$schemaUrl===!1?delete r.$schema:typeof e.$schemaUrl=="string"&&(r.$schema=e.$schemaUrl),r},"toJSONSchemaLegacy");var gt=(t,e)=>{let r=t._def,n=e._def;if(r.typeName===y.ZodFirstPartyTypeKind.ZodObject&&n.typeName===y.ZodFirstPartyTypeKind.ZodObject){let s=r.shape(),i=n.shape();return y.object({...s,...i})}if(r.typeName===y.ZodFirstPartyTypeKind.ZodRecord&&n.typeName===y.ZodFirstPartyTypeKind.ZodRecord)return y.record(y.intersection(r.valueType,n.valueType));throw new Error("Cannot merge object schemas with record schemas")},Dd=y;var ne=y.string().min(1),Nd=y.object({text:ne}),Md=y.object({markdown:ne}),$d=y.object({imageUrl:ne}),jd=y.object({audioUrl:ne}),Kd=y.object({videoUrl:ne}),Ud=y.object({fileUrl:ne,title:ne.optional()}),zd=y.object({latitude:y.number(),longitude:y.number(),address:y.string().optional(),title:y.string().optional()}),Fd=y.object({title:ne,subtitle:ne.optional(),imageUrl:ne.optional(),actions:y.array(y.object({action:y.enum(["postback","url","say"]),label:ne,value:ne}))}),Hd=y.object({text:ne,options:y.array(y.object({label:ne,value:ne}))}),fy=y.object({items:y.array(Fd)}),gy=y.union([y.object({type:y.literal("text"),payload:Nd}),y.object({type:y.literal("markdown"),payload:Md}),y.object({type:y.literal("image"),payload:$d}),y.object({type:y.literal("audio"),payload:jd}),y.object({type:y.literal("video"),payload:Kd}),y.object({type:y.literal("file"),payload:Ud}),y.object({type:y.literal("location"),payload:zd})]),my=y.object({items:y.array(gy)}),hy={schema:Md},yy={text:{schema:Nd},image:{schema:$d},audio:{schema:jd},video:{schema:Kd},file:{schema:Ud},location:{schema:zd},carousel:{schema:fy},card:{schema:Fd},dropdown:{schema:Hd},choice:{schema:Hd},bloc:{schema:my}};var vy={HIDDEN_IN_STUDIO:{bpActionHiddenInStudio:"true"},AWAIT_RETURN:{bpActionAwaitReturn:"true"}};var Wd=require("browser-or-node");var $s=console;function le(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function Vt(t,e=8072,r=wy){if(!Wd.isNode)throw new Error("This function can only be called in Node.js");let s=require("http").createServer(async(i,o)=>{try{let l=await _y(i);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){let d=l instanceof Error?l.message:String(l);$s.error("Error while handling request",{error:d??"Internal error occured"}),o.writeHead(500).end(JSON.stringify({error:d??"Internal error occured"}))}});return s.listen(e,()=>r(e)),s}async function _y(t){let e=await by(t),r={};for(let s=0;s<t.rawHeaders.length;s+=2){let i=t.rawHeaders[s].toLowerCase(),o=t.rawHeaders[s+1];r[i]=o}let n=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:n.pathname,query:Ty(n.search,"?"),headers:r,method:t.method?.toUpperCase()??"GET"}}function Ty(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function by(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 wy(t){$s.info(`Listening on port ${t}`)}var On=require("@botpress/client");var N={};Xe(N,{mapKeys:()=>ky,mapValues:()=>xy,mergeRecords:()=>Ey,pairs:()=>gn,stripUndefinedProps:()=>Sy,values:()=>Py});var gn=t=>Object.entries(t),Py=t=>Object.values(t),xy=(t,e)=>Object.fromEntries(gn(t).map(([r,n])=>[r,e(n,r)])),ky=(t,e)=>Object.fromEntries(gn(t).map(([r,n])=>[e(r),n])),Sy=t=>Object.fromEntries(gn(t).filter(([,e])=>e!==void 0)),Ey=(t,e,r)=>{let n=[...Object.keys(t),...Object.keys(e)],s=[...new Set(n)],i={};for(let o of s){let l=t[o],d=e[o];l&&d?i[o]=r(l,d):l?i[o]=l:d&&(i[o]=d)}return i};var E={};Xe(E,{safePush:()=>Oy,unique:()=>Zy});var Oy=(t,...e)=>t?[...t,...e]:[...e],Zy=t=>Array.from(new Set(t));var Y={};Xe(Y,{setName:()=>Iy});var Iy=(t,e)=>(Object.defineProperty(t,"name",{value:e}),t);var Ld=t=>{let{name:e,version:r}=t,n={actions:{},events:{},channels:{}},s={name:e,version:r,entities:N.mapValues(t.entities,o=>({name:o.name})),actions:{},events:{},channels:{}},i=N.mapValues(t.entities,o=>o.schema);for(let[o,l]of Object.entries(t.definition.actions??{})){let d=l.input.schema.dereference(i),u=l.output.schema.dereference(i),g=t.actions?.[o]?.name??o;n.actions[g]={...l,...t.actions?.[o]??{},input:{schema:d},output:{schema:u}},s.actions[o]={name:g}}for(let[o,l]of Object.entries(t.definition.events??{})){let d=l.schema.dereference(i),u=t.events?.[o]?.name??o;n.events[u]={...l,...t.events?.[o]??{},schema:d},s.events[o]={name:u}}for(let[o,l]of Object.entries(t.definition.channels??{})){let d={};for(let[g,h]of Object.entries(l.messages)){let T=h.schema.dereference(i);d[g]={...h,schema:T}}let u=t.channels?.[o]?.name??o;n.channels[u]={...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:u}}return{resolved:n,statement:s}};var qd="4.20.1";var Ee=qd;var mn=Symbol("schemaName"),Vd=t=>t?N.mapValues(t,(r,n)=>({...r,[mn]:n})):{},Gd=t=>mn in t&&t[mn]!==void 0,Jd=t=>t[mn];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;get metadata(){return{sdkVersion:Ee}}extend(e,r){let{entities:n,actions:s,events:i,channels:o}=this._callBuilder(e,r),l=this;l.interfaces??={};let d=Object.values(n).map(T=>T.name),u=d.length===0?e.name:`${e.name}<${d.join(",")}>`,{resolved:g,statement:h}=Ld({...e,entities:n,actions:N.stripUndefinedProps(s),events:N.stripUndefinedProps(i),channels:N.stripUndefinedProps(o)});return l.actions=N.mergeRecords(l.actions??{},g.actions,this._mergeActions),l.channels=N.mergeRecords(l.channels??{},g.channels,this._mergeChannels),l.events=N.mergeRecords(l.events??{},g.events,this._mergeEvents),l.interfaces[u]={id:e.id,...h},this}_callBuilder(e,r){let s={entities:Vd(this.entities)},i=r(s),o=N.pairs(i.entities).find(([d,u])=>!Gd(u));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:N.mapValues(i.entities,d=>({name:Jd(d),schema:d.schema})),actions:i.actions??{},events:i.events??{},channels:i.channels??{}}}_mergeActions=(e,r)=>({...e,...r,input:{schema:gt(e.input.schema,r.input.schema)},output:{schema:gt(e.output.schema,r.output.schema)}});_mergeEvents=(e,r)=>({...e,...r,schema:gt(e.schema,r.schema)});_mergeChannels=(e,r)=>{let n=N.mergeRecords(e.messages,r.messages,this._mergeMessage),s;(e.conversation||r.conversation)&&(s={tags:{...e.conversation?.tags,...r.conversation?.tags}});let i;return(e.message||r.message)&&(i={tags:{...e.message?.tags,...r.message?.tags}}),{...e,...r,messages:n,conversation:s,message:i}};_mergeMessage=(e,r)=>({schema:gt(e.schema,r.schema)})};var be=require("@botpress/client");var Yd=In(require("@botpress/client")),yn={retries:3,retryCondition:t=>Yd.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:(t,e)=>(Ay(e.response?.headers??{})??t)*1e3},Ay=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 Ry(String(n))}},Ry=t=>{let e=Cy(t)?Dy(t):t.length>0?parseInt(t,10):void 0;return e===void 0||isNaN(e)?void 0:e},Cy=t=>t.includes(" "),Dy=t=>{let e=Hy(t);if(!e)return;let r=new Date;return Math.max(0,Math.floor((e.getTime()-r.getTime())/1e3))},Hy=t=>{let e=new Date(t);return isNaN(e.getTime())?void 0:e};var mt=class{constructor(e){this._client=e}get _inner(){return this._client}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).then(r=>r));updateMessage=(e=>this._client.updateMessage(e).then(r=>r));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 Oe="#",_n="x-bot-id",Xd="x-bot-user-id",Qd="x-integration-id",eu="x-integration-alias",tu="x-webhook-id",ru="x-bp-configuration-type",Tn="x-bp-configuration",bn="x-bp-operation",nu="x-bp-type";var ce=t=>{throw t instanceof Error?t:new Error(t)};var d_=y.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),su=t=>({botId:t[_n]||ce("Missing bot header"),botUserId:t[Xd]||ce("Missing bot user header"),integrationId:t[Qd]||ce("Missing integration header"),integrationAlias:t[eu]||ce("Missing integration alias header"),webhookId:t[tu]||ce("Missing webhook header"),operation:t[bn]||ce("Missing operation header"),configurationType:t[ru]??null,configuration:JSON.parse(Buffer.from(t[Tn]||ce("Missing configuration header"),"base64").toString("utf-8"))});var iu=In(require("util")),ht=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=iu.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 yt=class t extends ht{constructor(e){super({visibleToBotOwners:!0,...e})}with(e){return new t({...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 Ny=t=>["traceparent","tracestate","sentry-trace"].reduce((e,r)=>(t[r]&&(e[r]=t[r]),e),{}),My=(t,e,r)=>{let[,n]=(e.headers.traceparent||"").split("-"),s=new be.Client({botId:t.botId,integrationId:t.integrationId,integrationAlias:t.integrationAlias,retry:yn,headers:Ny(e.headers)}),i=new mt(s),o=new yt({traceId:n});return{ctx:t,req:e,client:i,logger:o,instance:r}},$y=async t=>{let{ctx:e}=t;switch(e.operation){case"webhook_received":return await Ky(t);case"register":return await Uy(t);case"unregister":return await zy(t);case"message_created":return await Ly(t);case"action_triggered":return await qy(t);case"ping":return await jy(t);case"create_user":return await Fy(t);case"create_conversation":return await Wy(t);default:throw new be.InvalidPayloadError(`Unknown operation ${e.operation}`)}},au=t=>async e=>{let r=su(e.headers),n=My(r,e,t),{logger:s}=n;try{let i;return i=await Vy(n),i?{...i,status:i.status??200}:(i=await $y(n),i?{...i,status:i.status??200}:{status:200})}catch(i){if((0,be.isApiError)(i)){let l=i.type==="Runtime"?i:new be.RuntimeError(i.message,i);return s.forBot().error(l.message),{status:l.code,body:JSON.stringify(l.toJSON())}}console.error(i);let o=new be.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 s.forBot().error(o.message),{status:o.code,body:JSON.stringify(o.toJSON())}}},jy=async t=>{},Ky=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{let{req:i}=le(r);return s.webhook({client:t,ctx:e,req:i,logger:n})},Uy=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.register)return;let{webhookUrl:i}=le(r);await s.register({client:t,ctx:e,webhookUrl:i,logger:n})},zy=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.unregister)return;let{webhookUrl:i}=le(r);await s.unregister({ctx:e,webhookUrl:i,client:t,logger:n})},Fy=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.createUser)return;let{tags:i}=le(r);return await s.createUser({ctx:e,client:t,tags:i,logger:n})},Wy=async({client:t,ctx:e,req:r,logger:n,instance:s})=>{if(!s.createConversation)return;let{channel:i,tags:o}=le(r);return await s.createConversation({ctx:e,client:t,channel:i,tags:o,logger:n})},Ly=async({ctx:t,req:e,client:r,logger:n,instance:s})=>{let{conversation:i,user:o,type:l,payload:d,message:u}=le(e),g=s.channels[i.channel];if(!g)throw new Error(`Channel ${i.channel} not found`);let h=g.messages[l];if(!h)throw new Error(`Message of type ${l} not found in channel ${i.channel}`);await h({ctx:t,conversation:i,message:u,user:o,type:l,client:r,payload:d,ack:async({tags:Z})=>{await r.updateMessage({id:u.id,tags:Z})},logger:n})},qy=async({req:t,ctx:e,client:r,logger:n,instance:s})=>{let{input:i,type:o}=le(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:i,client:r,type:o,logger:n,metadata:d}),meta:d.toJSON()};return{body:JSON.stringify(g)}},Vy=async({instance:t,client:e,ctx:r,logger:n,req:s})=>{let i=t.unknownOperationHandler;if(i)return await i({client:e,ctx:r,logger:n,req:s})};var wn=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,this.unknownOperationHandler=e.__advanced?.unknownOperationHandler}actions;channels;register;unregister;createUser;createConversation;webhook;unknownOperationHandler;handler=au(this);start=e=>Vt(this.handler,e)};var Pn=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,this.__advanced=e.__advanced,this.withPlugins={user:e.user,conversation:e.conversation,message:e.message,states:e.states,events:e.events,recurringEvents:e.recurringEvents,actions:e.actions,tables:e.tables,workflows:e.workflows}}integrations;plugins;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows;attributes;__advanced;withPlugins;get metadata(){return{sdkVersion:Ee}}addIntegration(e,r){let n=this;n.integrations||(n.integrations={});let s=r?.alias??e.name.replace("/","-");if(n.integrations[s])throw new Error(`Another integration with alias "${s}" is already installed in the bot`);return n.integrations[s]={...e,alias:s,enabled:r?.enabled,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.replace("/","-");if(n.plugins[s])throw new Error(`Another plugin with alias "${s}" is already installed in the bot`);return n.plugins[s]={...e,alias:s,configuration:r.configuration,interfaces:r.interfaces},n.withPlugins.user=this._mergeUser(n.withPlugins.user,e.definition.user),n.withPlugins.conversation=this._mergeConversation(n.withPlugins.conversation,e.definition.conversation),n.withPlugins.message=this._mergeMessage(n.withPlugins.message,e.definition.message),n.withPlugins.recurringEvents=this._mergeRecurringEvents(n.withPlugins.recurringEvents,e.definition.recurringEvents),n.withPlugins.tables=this._mergeTables(n.withPlugins.tables,e.definition.tables),n.withPlugins.workflows=this._mergeWorkflows(n.withPlugins.workflows,e.definition.workflows),n.withPlugins.states=this._mergeStates(n.withPlugins.states,this._prefixKeysWithPluginAlias(e.definition.states,s)),n.withPlugins.events=this._mergeEvents(n.withPlugins.events,this._prefixKeysWithPluginAlias(e.definition.events,s)),n.withPlugins.actions=this._mergeActions(n.withPlugins.actions,this._prefixKeysWithPluginAlias(e.definition.actions,s)),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});_prefixKeysWithPluginAlias=(e,r)=>N.mapKeys(e??{},n=>`${r}${Oe}${n}`);dereferencePluginEntities(){let e=this._buildZuiReferenceMap();return{...this,withPlugins:{...this.withPlugins,events:this._dereferenceDefinitionSchemas(this.withPlugins.events,e),states:this._dereferenceDefinitionSchemas(this.withPlugins.states,e),tables:this._dereferenceDefinitionSchemas(this.withPlugins.tables,e),actions:this._dereferenceActionDefinitionSchemas(this.withPlugins.actions,e)},plugins:Object.fromEntries(Object.entries(this.plugins??{}).map(([r,n])=>[r,{...n,definition:{...n.definition,configuration:this._dereferenceDefinitionSchema(n.definition.configuration,e),events:this._dereferenceDefinitionSchemas(n.definition.events,e),states:this._dereferenceDefinitionSchemas(n.definition.states,e),tables:this._dereferenceDefinitionSchemas(n.definition.tables,e),actions:this._dereferenceActionDefinitionSchemas(n.definition.actions,e)}}]))}}_buildZuiReferenceMap(){let e={},r=Object.entries(this.plugins??{});for(let[n,s]of r){let i=Object.entries(s.interfaces??{});for(let[o,l]of i){let d=this.integrations?.[l.name];if(!d)throw new Error(`Interface with alias "${o}" of plugin with alias "${n}" references integration "${l.name}" which is not installed`);let u=Object.entries(l.entities??{});for(let[g,{name:h}]of u){let T=d.definition.entities?.[h]?.schema;if(!T)throw new Error(`Interface entity "${h}" does not exist in integration "${d.name}"`);e[`interface:${o}/entities/${g}`]=T}}}return e}_dereferenceZuiSchema(e,r){return e.dereference(r)}_dereferenceDefinitionSchemas(e,r){return Object.fromEntries(Object.entries(e??{}).map(([n,s])=>[n,this._dereferenceDefinitionSchema(s,r)]))}_dereferenceDefinitionSchema(e,r){return e&&{...e,schema:this._dereferenceZuiSchema(e.schema,r)}}_dereferenceActionDefinitionSchemas(e,r){return Object.fromEntries(Object.entries(e??{}).map(([n,s])=>[n,{...s,input:{schema:this._dereferenceZuiSchema(s.input.schema,r)},output:{schema:this._dereferenceZuiSchema(s.output.schema,r)}}]))}};var Ye=require("@botpress/client");var vt=class t extends ht{constructor(e){super({...e})}with(e){return new t({...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 fe=class{constructor(e,r={before:{},after:{}}){this._client=e;this._hooks=r}get _inner(){return this._client}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));getOrCreateWorkflow=(e=>this._run("getOrCreateWorkflow",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),i=this._hooks.after[e];return i&&(s=await i(s,r)),s}};var Gy=y.enum(["event_received","register","unregister","ping","action_triggered"]),ou=t=>({botId:t[_n]||ce("Missing bot id header"),operation:Gy.parse(t[bn]),type:t[nu]||ce("Missing type header"),configuration:JSON.parse(Buffer.from(t[Tn]||ce("Missing configuration header"),"base64").toString("utf-8"))});var X={status:200};var Ks=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 Jy=["child_workflow_deleted","child_workflow_finished","workflow_timedout","workflow_started","workflow_continued"],lu=async(t,e)=>{if(t.ctx.type!=="workflow_update"||!Jy.includes(e.payload.type))throw new Error("Unexpected event type");let r={...t,logger:Yy(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),X;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 Xy(r,e);default:e.payload.type}return X},Yy=(t,e)=>t.logger.with({eventId:e.id,workflowId:e.payload.workflow.id,conversationId:e.payload.conversation?.id,userId:e.payload.user?.id}),Xy=async(t,e)=>{let r=Ks(e.payload.type),n=t.self.workflowHandlers[r]?.[e.payload.workflow.name];if(!n||n.length===0)return t.logger.warn(`No ${r} handler found for workflow "${e.payload.workflow.name}"`),X;let{updatedWorkflow:s}=await Qy(t,e);return s.status==="pending"&&t.logger.warn(`Workflow "${e.payload.workflow.name}" is still in pending status after processing "${r}" event. This may indicate that the workflow was not properly acknowledged or terminated by the handler. `),X},Qy=async(t,e)=>{let r=Ks(e.payload.type),n=t.self.workflowHandlers[r]?.[e.payload.workflow.name],s=structuredClone(e.payload.workflow);for(let i of n??[])s=await i({...t,event:e,conversation:e.payload.conversation,user:e.payload.user,workflow:s});return{updatedWorkflow:s}};var cu=t=>async e=>{let r=ou(e.headers),n=new vt,s=new Ye.Client({botId:r.botId,retry:yn}),i=new fe(s,{before:{createMessage:async l=>{let d=t.hookHandlers.before_outgoing_message[l.type]??[];for(let u of d){let g=new fe(s);l=(await u({client:g,ctx:r,logger:n.with({conversationId:l.conversationId,userId:l.userId}),data:l}))?.data??l}return l},callAction:async l=>{let d=t.hookHandlers.before_outgoing_call_action[l.type]??[];for(let u of d){let g=new fe(s);l=(await u({client:g,ctx:r,logger:n,data:l}))?.data??l}return l}},after:{createMessage:async l=>{let d=t.hookHandlers.after_outgoing_message[l.message.type]??[];for(let u of d){let g=new fe(s);l=(await u({client:g,ctx:r,logger:n.with({messageId:l.message.id,conversationId:l.message.conversationId,userId:l.message.userId}),data:l}))?.data??l}return l},callAction:async(l,d)=>{let{type:u}=d,g=t.hookHandlers.after_outgoing_call_action[u]??[];for(let h of g){let T=new fe(s);l=(await h({client:T,ctx:r,logger:n,data:{type:u,...l}}))?.data??l}return l}}}),o={req:e,ctx:r,logger:n,client:i,self:t};try{switch(r.operation){case"action_triggered":return await sv(o);case"event_received":return await nv(o);case"register":return await tv(o);case"unregister":return await rv(o);case"ping":return await ev(o);default:throw new Error(`Unknown operation ${r.operation}`)}}catch(l){let d=l instanceof Error?l:new Error(String(l));if((0,Ye.isApiError)(d)){let g=d.type==="Runtime"?d:new Ye.RuntimeError(d.message,d);return n.error(g.message),{status:g.code,body:JSON.stringify(g.toJSON())}}let u=new Ye.RuntimeError("An unexpected error occurred in the bot.",d);return n.error(u.message,d),{status:u.code,body:JSON.stringify(u.toJSON())}}},ev=async t=>X,tv=async t=>X,rv=async t=>X,nv=async t=>{let{ctx:e,logger:r,req:n,client:s,self:i}=t,o={client:s,ctx:e,logger:r},l=le(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 lu(t,l.event);if(e.type==="message_created"){let Z=l.event,k=Z.payload.message;o.logger=o.logger.with({messageId:k.id,conversationId:k.conversationId,userId:k.userId});let K=i.hookHandlers.before_incoming_message[k.type]??[];for(let ue of K){let ae=await ue({...o,data:k});if(k=ae?.data??k,ae?.stop)return X}let F={...o,user:Z.payload.user,conversation:Z.payload.conversation,message:k,event:Z},Q=i.messageHandlers[k.type]??[];for(let ue of Q)await ue(F);let ie=i.hookHandlers.after_incoming_message[k.type]??[];for(let ue of ie){let ae=await ue({...o,data:k});if(k=ae?.data??k,ae?.stop)return X}return X}if(e.type==="state_expired"){let k=l.event.payload.state,K={...o,state:k},F=i.stateExpiredHandlers[k.name]??[];for(let Q of F)await Q(K);return X}let d=l.event,u=i.hookHandlers.before_incoming_event[d.type]??[];for(let Z of u){let k=await Z({...o,data:d});if(d=k?.data??d,k?.stop)return X}let g={...o,event:d},h=i.eventHandlers[d.type]??[];for(let Z of h)await Z(g);let T=i.hookHandlers.after_incoming_event[d.type]??[];for(let Z of T){let k=await Z({...o,data:d});if(d=k?.data??d,k?.stop)return X}return X},sv=async({ctx:t,logger:e,req:r,client:n,self:s})=>{let{input:i,type:o}=le(r);if(!o)throw new Error("Missing action type");let l=s.hookHandlers.before_incoming_call_action[o]??[];for(let T of l){let Z=await T({ctx:t,logger:e,client:n,data:{type:o,input:i}});i=Z?.data?.input??i,o=Z?.data?.type??o}let d=s.actionHandlers[o];if(!d)throw new Error(`Action ${o} not found`);let u=await d({ctx:t,logger:e,input:i,client:n,type:o}),g=s.hookHandlers.after_incoming_call_action[o]??[];for(let T of g){let Z=await T({ctx:t,logger:e,client:n,data:{type:o,output:u}});o=Z?.data?.type??o,u=Z?.data?.output??u}return{status:200,body:JSON.stringify({output:u})}};var we=t=>new Proxy({},{get:(e,r)=>({listInstances:{all:n=>Ze({workflowName:r,client:t,input:n}),running:n=>Ze({workflowName:r,client:t,input:n,statuses:["in_progress"]}),scheduled:n=>Ze({workflowName:r,client:t,input:n,statuses:["pending","listening"]}),allFinished:n=>Ze({workflowName:r,client:t,input:n,statuses:["completed","cancelled","failed","timedout"]}),cancelled:n=>Ze({workflowName:r,client:t,input:n,statuses:["cancelled"]}),failed:n=>Ze({workflowName:r,client:t,input:n,statuses:["failed"]}),succeeded:n=>Ze({workflowName:r,client:t,input:n,statuses:["completed"]}),timedOut:n=>Ze({workflowName:r,client:t,input:n,statuses:["timedout"]})},startNewInstance:async n=>{let{workflow:s}=await t.createWorkflow({name:r,status:"pending",...n});return{workflow:de({client:t,workflow:s})}}})}),Ze=async t=>{let e=await t.client.listWorkflows({name:t.workflowName,statuses:t.statuses,...t.input});return{...e,workflows:e.workflows.map(r=>de({client:t.client,workflow:r}))}},de=t=>{let e=!1;return{...t.workflow,async update(r){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,...r});return await t.onWorkflowUpdate?.(n),{workflow:de({...t,workflow:n})}},async acknowledgeStartOfProcessing(){if(!t.event||t.workflow.status!=="pending"||e)return{workflow:de(t)};let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,status:"in_progress",eventId:t.event.id});return e=!0,await t.onWorkflowUpdate?.(r),{workflow:de({...t,workflow:r})}},async setFailed({failureReason:r}){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,status:"failed",failureReason:r});return await t.onWorkflowUpdate?.(n),{workflow:de({...t,workflow:n})}},async setCompleted({output:r}={}){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,status:"completed",output:r});return await t.onWorkflowUpdate?.(n),{workflow:de({...t,workflow:n})}},async cancel(){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,status:"cancelled"});return await t.onWorkflowUpdate?.(r),{workflow:de({...t,workflow:r})}}}};var xn=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,i]of Object.entries(this._plugins)){let[o,l]=r.split(Oe);if(!(o!==s||!l)&&(n=i.actionHandlers[l],n))return Y.setName(d=>n({...d,workflows:we(d.client)}),n.name)}}})}get messageHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.messageHandlers[r]??[]),s=this._messageHandlers[r]??[],i=this._messageHandlers["*"]??[],o=[...s,...i].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return E.unique([...n,...o]).map(l=>Y.setName(d=>l({...d,workflows:we(d.client)}),l.name))}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.eventHandlers[r]??[]),s=this._eventHandlers[r]??[],i=this._eventHandlers["*"]??[],o=[...s,...i].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return E.unique([...n,...o]).map(l=>Y.setName(d=>l({...d,workflows:we(d.client)}),l.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{let n=Object.values(this._plugins).flatMap(l=>l.stateExpiredHandlers[r]??[]),s=this._stateExpiredHandlers[r]??[],i=this._stateExpiredHandlers["*"]??[],o=[...s,...i].sort((l,d)=>l.order-d.order).map(({handler:l})=>l);return E.unique([...n,...o]).map(l=>Y.setName(d=>l({...d,workflows:we(d.client)}),l.name))}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{if(this._hookHandlers[r])return new Proxy({},{get:(s,i)=>{let o=Object.values(this._plugins).flatMap(h=>h.hookHandlers[r]?.[i]??[]),l=this._hookHandlers[r]??{},d=l[i]??[],u=l["*"]??[],g=[...d,...u].sort((h,T)=>h.order-T.order).map(({handler:h})=>h);return E.unique([...o,...g]).map(h=>Y.setName(T=>h({...T,workflows:we(T.client)}),h.name))}})}})}get workflowHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._workflowHandlers[r];if(n)return new Proxy({},{get:(s,i)=>{let o=n[i]?.sort((d,u)=>d.order-u.order).map(({handler:d})=>d)??[],l=Object.values(this._plugins).flatMap(d=>d.workflowHandlers[r]?.[i]??[]);return E.unique([...o,...l]).map(d=>Y.setName(async u=>{let g=u.workflow;return await d({...u,workflow:de({...u,onWorkflowUpdate(h){g=h}}),workflows:we(u.client)}),g},d.name))}})}})}on={message:(e,r)=>{this._messageHandlers[e]=E.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=E.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=E.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=E.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=E.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=E.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=E.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=E.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=E.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=E.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=E.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=E.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=E.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=E.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=E.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=E.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};handler=cu(this);start=e=>Vt(this.handler,e)};var kn=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,this.__advanced=e.__advanced;let r=this._getEntityReference(this.entities),n=e.events===void 0?{}:N.mapValues(e.events,o=>({...o,schema:o.schema(r)})),s=e.actions===void 0?{}:N.mapValues(e.actions,o=>({...o,input:{...o.input,schema:o.input.schema(r)},output:{...o.output,schema:o.output.schema(r)}})),i=e.channels===void 0?{}:N.mapValues(e.channels,o=>({...o,messages:N.mapValues(o.messages,l=>({...l,schema:l.schema(r)}))}));this.events=n,this.actions=s,this.channels=i}name;version;title;description;icon;readme;attributes;entities;events;actions;channels;__advanced;get metadata(){return{sdkVersion:Ee}}_getEntityReference=e=>{let r={};for(let[n,s]of Object.entries(e)){let i=s.schema._def["x-zui"]?.title,o=s.schema._def.description,l=Dd.ref(n);i&&l.title(i),o&&l.describe(o),r[n]=l}return r}};var Sn=class{constructor(e){this.props=e;let r=Object.fromEntries(Object.entries(e.interfaces??{}).map(([n,s])=>[n,Object.fromEntries(Object.entries(s.definition.entities??{}).map(([i])=>[i,y.ref(`interface:${n}/entities/${i}`)]))]));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.recurringEvents=e.recurringEvents,this.workflows=e.workflows,this.attributes=e.attributes,this.__advanced=e.__advanced,this.configuration=e.configuration?{...e.configuration,schema:typeof e.configuration.schema=="object"?e.configuration.schema:e.configuration.schema({entities:r})}:void 0,this.states=Object.fromEntries(Object.entries(e.states??{}).map(([n,s])=>[n,{...s,schema:typeof s.schema=="object"?s.schema:s.schema({entities:r})}])),this.events=Object.fromEntries(Object.entries(e.events??{}).map(([n,s])=>[n,{...s,schema:typeof s.schema=="object"?s.schema:s.schema({entities:r})}])),this.actions=Object.fromEntries(Object.entries(e.actions??{}).map(([n,s])=>[n,{...s,input:{...s.input,schema:typeof s.input.schema=="object"?s.input.schema:s.input.schema({entities:r})},output:{...s.output,schema:typeof s.output.schema=="object"?s.output.schema:s.output.schema({entities:r})}}])),this.tables=Object.fromEntries(Object.entries(e.tables??{}).map(([n,s])=>[n,{...s,schema:typeof s.schema=="object"?s.schema:s.schema({entities:r})}]))}name;version;title;description;icon;readme;attributes;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows;__advanced;get metadata(){return{sdkVersion:Ee}}dereferenceEntities({intersectWithUnknownRecord:e}={intersectWithUnknownRecord:!0}){let r=this._buildZuiReferenceMap(e);return{...this,configuration:this.configuration?{...this.configuration,schema:this._dereferenceZuiSchema(this.configuration.schema,r)}:void 0,events:this._dereferenceDefinitionSchemas(this.events,r),states:this._dereferenceDefinitionSchemas(this.states,r),tables:this._dereferenceDefinitionSchemas(this.tables,r),actions:this._dereferenceActionDefinitionSchemas(this.actions,r)}}_buildZuiReferenceMap(e){return Object.fromEntries(Object.entries(this.interfaces??{}).flatMap(([r,n])=>Object.entries(n.definition.entities??{}).map(([s,i])=>[`interface:${r}/entities/${s}`,e?i.schema.and(y.record(y.string(),y.unknown())):i.schema])))}_dereferenceZuiSchema(e,r){return e.dereference(r)}_dereferenceDefinitionSchemas(e,r){return Object.fromEntries(Object.entries(e??{}).map(([n,s])=>[n,{...s,schema:this._dereferenceZuiSchema(s.schema,r)}]))}_dereferenceActionDefinitionSchemas(e,r){return Object.fromEntries(Object.entries(e??{}).map(([n,s])=>[n,{...s,input:{schema:this._dereferenceZuiSchema(s.input.schema,r)},output:{schema:this._dereferenceZuiSchema(s.output.schema,r)}}]))}};var Us=":";var du=t=>{let[e,r]=t.split(Us);return!e||!r?null:{namespace:e,eventName:r}},uu=t=>`${t.namespace}${Us}${t.actionName}`,pu=t=>`${t.namespace}${Us}${t.eventName}`,fu=(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}},gu=(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 mu=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(s,i)=>o=>iv({client:t,interfaces:e.interfaces,integrationOrInterfaceName:n,methodName:i,input:o})})}),iv=async({client:t,interfaces:e,integrationOrInterfaceName:r,methodName:n,input:s})=>{let i=fu({namespace:r,actionName:n},e),o=uu(i);return(await t.callAction({type:o,input:s})).output};var zs=class t{constructor(e){this._props=e}async emit(e){let{conversationId:r,userId:n,messageId:s}=this._props;await this._props.client.createEvent({type:this._props.eventName,payload:e,conversationId:r,userId:n,messageId:s})}async schedule(e,r){let{conversationId:n,userId:s,messageId:i}=this._props;await this._props.client.createEvent({type:this._props.eventName,payload:e,conversationId:n,userId:s,messageId:i,schedule:r})}withConversationId(e){return new t({...this._props,conversationId:e})}withUserId(e){return new t({...this._props,userId:e})}withMessageId(e){return new t({...this._props,messageId:e})}},hu=(t,e)=>new Proxy({},{get:(r,n)=>{let s=e.alias!==void 0?`${e.alias}${Oe}${n}`:n;return new zs({client:t,eventName:s})}});var Fs=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,n){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:r,expiry:n?.expiryMs})}async getOrSet(e,r,n){return await this._client.getOrSetState({type:this._stateType,name:this._stateName,id:e,payload:r,expiry:n?.expiryMs}).then(s=>s.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})}},yu=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(s,i)=>{let o=e.alias!==void 0?`${e.alias}${Oe}${i}`:i;return new Fs(t,n,o)}})});var En=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,i=mu(e,this._runtime),o=yu(e,this._runtime),l=we(e),d=hu(e,this._runtime);return{configuration:r,interfaces:n,actions:i,states:o,alias:s,workflows:l,events:d}}get actionHandlers(){return new Proxy({},{get:(e,r)=>{r=this._stripAliasPrefix(r);let n=this._actionHandlers[r];if(n)return Y.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 E.unique([...n,...s]).sort((o,l)=>o.order-l.order).map(({handler:o})=>Y.setName(l=>o({...l,message:l.message,...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??[]),i=this._eventHandlers["*"]??[];return E.unique([...n,...s,...i]).sort((l,d)=>l.order-d.order).map(({handler:l})=>Y.setName(d=>l({...d,event:d.event,...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 E.unique([...n,...s]).sort((o,l)=>o.order-l.order).map(({handler:o})=>Y.setName(l=>o({...l,state:l.state,...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,i)=>{i=this._stripAliasPrefix(i);let o=n[i]??[],l=Object.entries(n).filter(([g])=>this._eventResolvesTo(g,i)).flatMap(([,g])=>g??[]),d=n["*"]??[];return E.unique([...o,...l,...d]).sort((g,h)=>g.order-h.order).map(({handler:g})=>Y.setName(h=>g({...h,data:h.data,...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,i)=>(n[i]?.sort((l,d)=>l.order-d.order)??[]).map(({handler:l})=>Y.setName(async d=>{let u=d.workflow;return await l({...d,workflow:de({...d,onWorkflowUpdate(g){u=g}}),...this._getTools(d.client)}),u},l.name))})}})}on={message:(e,r)=>{this._messageHandlers[e]=E.safePush(this._messageHandlers[e],{handler:r,order:this._registerOrder++})},event:(e,r)=>{this._eventHandlers[e]=E.safePush(this._eventHandlers[e],{handler:r,order:this._registerOrder++})},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=E.safePush(this._stateExpiredHandlers[e],{handler:r,order:this._registerOrder++})},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=E.safePush(this._hookHandlers.before_incoming_event[e],{handler:r,order:this._registerOrder++})},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=E.safePush(this._hookHandlers.before_incoming_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=E.safePush(this._hookHandlers.before_outgoing_message[e],{handler:r,order:this._registerOrder++})},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=E.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},beforeIncomingCallAction:(e,r)=>{this._hookHandlers.before_incoming_call_action[e]=E.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=E.safePush(this._hookHandlers.after_incoming_event[e],{handler:r,order:this._registerOrder++})},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=E.safePush(this._hookHandlers.after_incoming_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=E.safePush(this._hookHandlers.after_outgoing_message[e],{handler:r,order:this._registerOrder++})},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=E.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:r,order:this._registerOrder++})},afterIncomingCallAction:(e,r)=>{this._hookHandlers.after_incoming_call_action[e]=E.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:r,order:this._registerOrder++})},workflowStart:(e,r)=>{this._workflowHandlers.started[e]=E.safePush(this._workflowHandlers.started[e],{handler:r,order:this._registerOrder++})},workflowContinue:(e,r)=>{this._workflowHandlers.continued[e]=E.safePush(this._workflowHandlers.continued[e],{handler:r,order:this._registerOrder++})},workflowTimeout:(e,r)=>{this._workflowHandlers.timed_out[e]=E.safePush(this._workflowHandlers.timed_out[e],{handler:r,order:this._registerOrder++})}};_eventResolvesTo=(e,r)=>{let n=du(e);if(!n)return!1;let s=gu(n,this._runtime.interfaces);return pu(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}};var Ws={};Xe(Ws,{allWithinMajorOf:()=>av,allWithinMinorOf:()=>ov});var Gt=In(require("semver"));function av(t){let e=Gt.major(t.version);return{...t,version:`>=${e}.0.0 <${e+1}.0.0`}}function ov(t){let e=Gt.major(t.version),r=Gt.minor(t.version);return{...t,version:`>=${e}.${r}.0 <${e}.${r+1}.0`}}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,coerce,conversation,createZodEnum,cuid2Regex,cuidRegex,custom,datasource,date,discriminatedUnion,effect,emailRegex,enum:null,errorUtil,event,function:null,getErrorMap,getParsedType,instanceof:null,intent,intersection,ipv4Regex,ipv6Regex,isAborted,isApiError,isAsync,isDirty,isEmojiRegex,isValid,json,knowledgebase,late,lazy,literal,makeIssue,map,mergeObjectSchemas,message,messages,nan,nativeEnum,never,null:null,nullable,number,object,objectUtil,oboolean,onumber,optional,ostring,parseBody,pipeline,preprocess,processCreateParams,promise,quotelessJson,readonly,record,ref,serve,set,setErrorMap,strictObject,string,symbol,table,tablerow,transformer,transforms,tuple,ulidRegex,undefined,union,unknown,user,util,uuidRegex,variable,version,void:null,z});
|
|
73
73
|
/*! Bundled license information:
|
|
74
74
|
|
|
75
75
|
@bpinternal/zui/dist/index.js:
|