@botpress/sdk 5.1.2 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +5 -5
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +2 -2
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +2 -2
- package/dist/integration/client/index.d.ts +1 -0
- package/dist/integration/client/sub-types.d.ts +2 -0
- package/dist/integration/client/types.d.ts +20 -5
- package/package.json +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
|
|
2
|
-
> @botpress/sdk@5.
|
|
2
|
+
> @botpress/sdk@5.2.0 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@5.
|
|
6
|
+
> @botpress/sdk@5.2.0 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@5.
|
|
10
|
+
> @botpress/sdk@5.2.0 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@5.
|
|
15
|
+
> @botpress/sdk@5.2.0 build:browser /home/runner/work/botpress/botpress/packages/sdk
|
|
16
16
|
> ts-node -T ./build.ts --browser
|
|
17
17
|
|
|
18
|
-
(node:
|
|
18
|
+
(node:3177) [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 ${r}${a};${c}`);if(t.props.type==="variable")return Kr(`${i}dec
|
|
|
69
69
|
`,i+=`}
|
|
70
70
|
`,i+=`}
|
|
71
71
|
`),i+=`}
|
|
72
|
-
`,i+="})"}let s=n?i?n+i:r?r==="z.never()"?n+".strict()":n+`.catchall(${r})`:n:i||(r?`z.record(${r})`:"z.record(z.any())");return $.an.anyOf(t)&&(s+=`.and(${gu(f(u({},t),{anyOf:t.anyOf.map(a=>typeof a=="object"&&!a.type&&(a.properties||a.additionalProperties||a.patternProperties)?f(u({},a),{type:"object"}):a)}),e)})`),$.a.oneOf(t)&&(s+=`.and(${Ki(f(u({},t),{oneOf:t.oneOf.map(a=>typeof a=="object"&&!a.type&&(a.properties||a.additionalProperties||a.patternProperties)?f(u({},a),{type:"object"}):a)}),e)})`),$.an.allOf(t)&&(s+=`.and(${Lt(f(u({},t),{allOf:t.allOf.map(a=>typeof a=="object"&&!a.type&&(a.properties||a.additionalProperties||a.patternProperties)?f(u({},a),{type:"object"}):a)}),e)})`),s}l(mu,"parseObject");var Nh=l(t=>`z.ref('${t.$ref}')`,"parseRef"),Mh=l(t=>{var e;let n="z.string()";if((e=t[w])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";n="z.coerce.string()"}return n+=q(t,"format",({value:r})=>{switch(r){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(",")"]}}),n+=q(t,"pattern",({json:r})=>[`.regex(new RegExp(${r})`,", ",")"]),n+=q(t,"minLength",({json:r})=>[`.min(${r}`,", ",")"]),n+=q(t,"maxLength",({json:r})=>[`.max(${r}`,", ",")"]),n},"parseString"),L=l((t,e={seen:new Map,path:[]},n)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let s=e.parserOverride(t,e);if(typeof s=="string")return s}let r=e.seen.get(t);if(r){if(r.r!==void 0)return r.r;if(e.depth===void 0||r.n>=e.depth)return"z.any()";r.n+=1}else r={r:void 0,n:0},e.seen.set(t,r);let i=Kh(t,e);return n||(i=$h(t,i),e.withoutDefaults||(i=jh(t,i))),r.r=i,i},"parseSchema"),$h=l((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),jh=l((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),Kh=l((t,e)=>$.a.nullable(t)?Dh(t,e):$.an.object(t)?mu(t,e):$.an.array(t)?kh(t,e):$.an.anyOf(t)?gu(t,e):$.an.allOf(t)?Lt(t,e):$.a.discriminator(t)?Ih(t,e):$.a.oneOf(t)?Ki(t,e):$.a.not(t)?Ch(t,e):$.an.enum(t)?Zh(t):$.a.const(t)?Oh(t):$.a.multipleType(t)?Ah(t,e):$.a.primitive(t,"string")?Mh(t):$.a.primitive(t,"number")||$.a.primitive(t,"integer")?Hh(t):$.a.primitive(t,"boolean")?Sh(t):$.a.primitive(t,"null")?Rh(t):$.a.conditional(t)?Bh(t,e):$.a.ref(t)?Nh(t):Eh(t),"selectParser"),$={an:{object:t=>t.type==="object",array:t=>t.type==="array",anyOf:t=>t.anyOf!==void 0,allOf:t=>t.allOf!==void 0,enum:t=>t.enum!==void 0},a:{nullable:t=>t.nullable===!0,multipleType:t=>Array.isArray(t.type),not:t=>t.not!==void 0,const:t=>t.const!==void 0,primitive:(t,e)=>t.type===e,conditional:t=>!!("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),discriminator:t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},oneOf:t=>t.oneOf!==void 0,ref:t=>t.$ref!==void 0}},Uh=l(t=>L(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),Fh=l(t=>{let e=Uh(t);e=e.replaceAll("errors: z.ZodError[]","errors");let n=bh(e);if(!n.sucess)throw new Jn(n.error);return n.value},"jsonSchemaToZod"),Nt=l((t,e)=>{var n,r;if(e[w]&&t._def&&(t.naked()._def[w]=e[w]),((n=t._def)==null?void 0:n.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([i,s])=>{let a=typeof t._def.shape=="function"?t._def.shape():t._def.shape;a[i]&&Nt(a[i],s)}),((r=t._def)==null?void 0:r.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&Nt(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let i=e.items;if(typeof i=="object"&&!Array.isArray(i)){let s=t._def.type;s&&Nt(s,i)}else Array.isArray(i)&&i.forEach((s,a)=>{let o=t._def;o.typeName===y.ZodFirstPartyTypeKind.ZodTuple&&Nt(o.items[a],s)})}},"applyZuiPropsRecursively"),zh=l(t=>{let e=Fh(t);return Nt(e,t),e},"fromJSONSchemaLegacy"),Wh=l(t=>{var e,n;return t.anyOf!==void 0&&t.anyOf.length===2&&t.anyOf.some(r=>typeof r!="boolean"&&hu(r))&&((n=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:n.typeName)===p.ZodFirstPartyTypeKind.ZodOptional},"isOptionalSchema"),Lh=l(t=>{var e,n;return t.anyOf!==void 0&&t.anyOf.length===2&&t.anyOf.some(r=>typeof r!="boolean"&&r.type==="null")&&((n=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:n.typeName)===p.ZodFirstPartyTypeKind.ZodNullable},"isNullableSchema"),hu=l(t=>{var e,n;return t.not===!0&&((n=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:n.typeName)===p.ZodFirstPartyTypeKind.ZodUndefined},"isUndefinedSchema"),Vh=l(t=>{var e,n;return!t.not&&((n=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:n.typeName)===p.ZodFirstPartyTypeKind.ZodUnknown},"isUnknownSchema"),qh=l(t=>{var e,n;return t.anyOf!==void 0&&((n=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:n.typeName)===p.ZodFirstPartyTypeKind.ZodDiscriminatedUnion},"isDiscriminatedUnionSchema"),Gh=l((t,e)=>Jh(t)?Xh(t,e):Yh(t)?Qh(t,e):ey(t,e),"arrayJSONSchemaToZuiArray"),Jh=l(t=>Array.isArray(t.items),"_isTuple"),Yh=l(t=>t.items!==void 0&&t.uniqueItems,"_isSet"),Xh=l(({items:t,additionalItems:e},n)=>{let r=t.map(n),i=p.tuple(r);return e!==void 0&&(i=i.rest(n(e))),i},"_handleTuple"),Qh=l(({items:t,minItems:e,maxItems:n},r)=>{let i=p.set(r(t));return e&&(i=i.min(e)),n&&(i=i.max(n)),i},"_handleSet"),ey=l(({minItems:t,maxItems:e,items:n},r)=>{let i=p.array(r(n));return t&&t===e?i.length(t):(t&&(i=i.min(t)),e&&(i=i.max(e)),i)},"_handleArray"),ty=l(({type:t,minimum:e,exclusiveMinimum:n,maximum:r,exclusiveMaximum:i,multipleOf:s,format:a})=>{let o=p.number();return t==="integer"&&(o=o.int()),a==="finite"&&(o=o.finite()),n!==void 0?o=o.gt(n):e!==void 0&&(o=o.gte(e)),i!==void 0?o=o.lt(i):r!==void 0&&(o=o.lte(r)),s!==void 0&&(o=o.multipleOf(s)),o},"numberJSONSchemaToZuiNumber"),ny=l(({format:t,pattern:e,minLength:n,maxLength:r})=>{let i=p.string();if(n&&r&&n===r?i=i.length(n):(n&&(i=i.min(n)),r&&(i=i.max(r))),t==="cuid"||e===j.cuid)i=i.cuid();else if(t==="cuid2"||e===j.cuid2)i=i.cuid2();else if(t==="emoji"||e===j.emoji)i=i.emoji();else if(t==="ulid"||e===j.ulid)i=i.ulid();else if(t==="date-time"){let{precision:s,offset:a}=e?Md(e):{};i=i.datetime({precision:s,offset:a})}else t==="email"||e===j.email?i=i.email():t==="ipv4"||e===j.ipv4?i=i.ip():t==="ipv6"||e===j.ipv6?i=i.ip("v6"):t==="uri"?i=i.url():t==="uuid"||e===j.uuid?i=i.uuid():e&&(i=i.regex(new RegExp(e)));return i},"stringJSONSchemaToZuiString"),kt=l((t,e)=>{let n=[];e.enum!==void 0&&n.push(...e.enum),e.const!==void 0&&n.push(e.const);let r,i=n.filter(a=>typeof a===t),[s]=i;if(s)if(i.length===1)r=p.literal(s);else{let a=i.map(o=>p.literal(o));r=p.union(a)}else if(t==="string"&&e.type==="string"&&(r=ny(e)),t==="number"&&(e.type==="number"||e.type==="integer")&&(r=ty(e)),t==="boolean"&&(r=p.boolean()),t==="null"&&(r=p.null()),!r)throw new Jn(`Unknown primitive type: "${t}"`);return e.description&&(r=r.describe(e.description)),r},"toZuiPrimitive"),rt=p.any();function yu(t){return U(t)}l(yu,"fromJSONSchema");function U(t){var e,n,r;if(t===void 0)return rt;if(t===!0)return p.any();if(t===!1)return p.never();if(t.default!==void 0)return U(f(u({},t),{default:void 0})).default(t.default);if(t.readOnly)return U(f(u({},t),{readOnly:void 0})).readonly();if(t.description!==void 0)return U(f(u({},t),{description:void 0})).describe(t.description);if(t.oneOf!==void 0)throw new Ie({oneOf:t.oneOf});if(t.patternProperties!==void 0)throw new Ie({patternProperties:t.patternProperties});if(t.propertyNames!==void 0)throw new Ie({propertyNames:t.propertyNames});if(t.if!==void 0)throw new Ie({if:t.if});if(t.then!==void 0)throw new Ie({then:t.then});if(t.else!==void 0)throw new Ie({else:t.else});if(t.$ref!==void 0)return p.ref(t.$ref);if(t.not!==void 0){if(hu(t))return p.undefined();if(t.not===!0)return p.never();throw new Ie({not:t.not})}if(Array.isArray(t.type)){if(t.type.length===0)return rt;if(t.type.length===1)return U(f(u({},t),{type:t.type[0]}));let i=t,{type:s}=i,a=js(i,["type"]),o=t.type.map(c=>U(f(u({},a),{type:c})));return p.union(o)}if(t.type==="string")return t.enum&&t.enum.length>0?p.enum(t.enum):kt("string",t);if(t.type==="integer"){let i=kt("number",t);return i instanceof p.ZodNumber?i.int():i}if(t.type==="number")return kt("number",t);if(t.type==="boolean")return kt("boolean",t);if(t.type==="null")return kt("null",t);if(t.type==="array")return Gh(t,U);if(t.type==="object"){if(t.additionalProperties!==void 0&&t.properties!==void 0){let i=U(t.additionalProperties);return U(f(u({},t),{additionalProperties:void 0})).catchall(i)}if(t.properties!==void 0){let i={};for(let[s,a]of Object.entries(t.properties)){let o=U(a),c=(e=t.required)!=null?e:[];i[s]=c.includes(s)||o.isOptional()?o:o.optional()}return p.object(i)}if(t.additionalProperties!==void 0){let i=U(t.additionalProperties);return p.record(i)}return p.record(rt)}if(t.anyOf!==void 0){if(t.anyOf.length===0)return rt;if(t.anyOf.length===1)return U(t.anyOf[0]);if(Wh(t))return U(t.anyOf[0]).optional();if(Lh(t))return U(t.anyOf[0]).nullable();if(qh(t)&&((r=(n=t["x-zui"])==null?void 0:n.def)!=null&&r.discriminator)){let{discriminator:s}=t["x-zui"].def,a=t.anyOf.map(U);return p.discriminatedUnion(s,a)}let i=t.anyOf.map(U);return p.union(i)}if(t.allOf!==void 0){if(t.allOf.length===0)return rt;if(t.allOf.length===1)return U(t.allOf[0]);let[i,...s]=t.allOf,a=U(i),o=U({allOf:s});return p.intersection(a,o)}return Vh(t)?p.unknown():rt}l(U,"_fromJSONSchema");var ry=/^\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))?$/,ei=l((t,e,n=!0)=>{if(typeof t!="object")throw new Fr("Input must be an object");let r=l(a=>{let o=a;return e?.nullable&&(o=o.nullable()),e?.optional&&(o=o.optional()),e?.passtrough&&typeof o.passthrough=="function"&&(o=o.passthrough()),o},"applyOptions"),i=Object.entries(t).reduce((a,[o,c])=>{if(c===null)a[o]=r(y.null());else switch(typeof c){case"string":a[o]=ry.test(c)?r(y.string().datetime()):r(y.string());break;case"number":a[o]=r(y.number());break;case"boolean":a[o]=r(y.boolean());break;case"object":Array.isArray(c)?c.length===0?a[o]=r(y.array(y.unknown())):typeof c[0]=="object"?a[o]=r(y.array(ei(c[0],e,!1))):["string","number","boolean"].includes(typeof c[0])&&(a[o]=r(y.array(y[typeof c[0]]()))):a[o]=r(ei(c,e,!1));break;default:throw new Fr(`Unsupported type for key ${o}`)}return a},{}),s=Object.keys(i).length>0;return e?.passtrough||!n&&!s?y.object(i).passthrough():y.object(i)},"fromObject");function vu(){return{}}l(vu,"parseAnyDef");function _u(t,e){var n,r;let i={type:"array"};return((r=(n=t.type)==null?void 0:n._def)==null?void 0:r.typeName)!=="ZodAny"&&(i.items=A(t.type._def,f(u({},e),{currentPath:[...e.currentPath,"items"]}))),t.minLength&&D(i,"minItems",t.minLength.value,t.minLength.message,e),t.maxLength&&D(i,"maxItems",t.maxLength.value,t.maxLength.message,e),t.exactLength&&(D(i,"minItems",t.exactLength.value,t.exactLength.message,e),D(i,"maxItems",t.exactLength.value,t.exactLength.message,e)),i}l(_u,"parseArrayDef");function Tu(t,e){let n=u({type:"integer",format:"int64"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{});if(!t.checks)return n;for(let r of t.checks)switch(r.kind){case"min":e.target==="jsonSchema7"?r.inclusive?D(n,"minimum",r.value,r.message,e):D(n,"exclusiveMinimum",r.value,r.message,e):(r.inclusive||(n.exclusiveMinimum=!0),D(n,"minimum",r.value,r.message,e));break;case"max":e.target==="jsonSchema7"?r.inclusive?D(n,"maximum",r.value,r.message,e):D(n,"exclusiveMaximum",r.value,r.message,e):(r.inclusive||(n.exclusiveMaximum=!0),D(n,"maximum",r.value,r.message,e));break;case"multipleOf":D(n,"multipleOf",r.value,r.message,e);break}return n}l(Tu,"parseBigintDef");function bu(t){return u({type:"boolean"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{})}l(bu,"parseBooleanDef");function wu(t,e){return A(t.type._def,e)}l(wu,"parseBrandedDef");var iy=l((t,e)=>A(t.innerType._def,e),"parseCatchDef");function Pu(t,e){return e.dateStrategy==="integer"?sy(t,e):u({type:"string",format:"date-time"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{})}l(Pu,"parseDateDef");var sy=l((t,e)=>{let n=u({type:"integer",format:"unix-time"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{});for(let r of t.checks)switch(r.kind){case"min":e.target==="jsonSchema7"&&D(n,"minimum",r.value,r.message,e);break;case"max":e.target==="jsonSchema7"&&D(n,"maximum",r.value,r.message,e);break}return n},"integerDateParser");function xu(t,e){return f(u({},A(t.innerType._def,e)),{default:t.defaultValue()})}l(xu,"parseDefaultDef");function ku(t,e){return e.effectStrategy==="input"?A(t.schema._def,e):{}}l(ku,"parseEffectsDef");function Su(t){return{type:"string",enum:t.values}}l(Su,"parseEnumDef");var ay=l(t=>"type"in t&&t.type==="string"?!1:"allOf"in t,"isJsonSchema7AllOfType");function Ou(t,e){let n=[A(t.left._def,f(u({},e),{currentPath:[...e.currentPath,"allOf","0"]})),A(t.right._def,f(u({},e),{currentPath:[...e.currentPath,"allOf","1"]}))].filter(s=>!!s),r=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(s=>{if(ay(s))i.push(...s.allOf),s.unevaluatedProperties===void 0&&(r=void 0);else{let a=s;if("additionalProperties"in s&&s.additionalProperties===!1){let o=s,{additionalProperties:c}=o;a=js(o,["additionalProperties"])}else r=void 0;i.push(a)}}),i.length?u({allOf:i},r):void 0}l(Ou,"parseIntersectionDef");function Eu(t,e){let n=typeof t.value;return n!=="bigint"&&n!=="number"&&n!=="boolean"&&n!=="string"?{type:Array.isArray(t.value)?"array":"object"}:e.target==="openApi3"?{type:n==="bigint"?"integer":n,enum:[t.value]}:{type:n==="bigint"?"integer":n,const:t.value}}l(Eu,"parseLiteralDef");function Ui(t,e){var n,r,i,s,a;if(e.target==="openApi3"&&((n=t.keyType)==null?void 0:n._def.typeName)==="ZodEnum")return{type:"object",required:t.keyType._def.values,properties:t.keyType._def.values.reduce((c,d)=>{var g;return f(u({},c),{[d]:(g=A(t.valueType._def,f(u({},e),{currentPath:[...e.currentPath,"properties",d]})))!=null?g:{}})},{}),additionalProperties:!1};let o={type:"object",additionalProperties:(r=A(t.valueType._def,f(u({},e),{currentPath:[...e.currentPath,"additionalProperties"]})))!=null?r:{}};if(e.target==="openApi3")return o;if(((i=t.keyType)==null?void 0:i._def.typeName)==="ZodString"&&((s=t.keyType._def.checks)!=null&&s.length)){let c=Object.entries(ii(t.keyType._def,e)).reduce((d,[g,m])=>g==="type"?d:f(u({},d),{[g]:m}),{});return f(u({},o),{propertyNames:c})}else if(((a=t.keyType)==null?void 0:a._def.typeName)==="ZodEnum")return f(u({},o),{propertyNames:{enum:t.keyType._def.values}});return o}l(Ui,"parseRecordDef");function Iu(t,e){if(e.mapStrategy==="record")return Ui(t,e);let n=A(t.keyType._def,f(u({},e),{currentPath:[...e.currentPath,"items","items","0"]}))||{},r=A(t.valueType._def,f(u({},e),{currentPath:[...e.currentPath,"items","items","1"]}))||{};return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}l(Iu,"parseMapDef");function Zu(t){let e=t.values,r=Object.keys(t.values).filter(s=>typeof e[e[s]]!="number").map(s=>e[s]),i=Array.from(new Set(r.map(s=>typeof s)));return{type:i.length===1?i[0]==="string"?"string":"number":["string","number"],enum:r.filter(s=>typeof s=="string"||typeof s=="number")}}l(Zu,"parseNativeEnumDef");function Bu(){return{not:{}}}l(Bu,"parseNeverDef");function Au(t){return t.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}l(Au,"parseNullDef");var qn={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function Cu(t,e){if(e.target==="openApi3")return Hs(t,e);let n=t.options instanceof Map?Array.from(t.options.values()):t.options;if(n.every(r=>r._def.typeName in qn&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let a=qn[s._def.typeName];return a&&!i.includes(a)?[...i,a]:i},[]);return{type:r.length>1?r:r[0]}}else if(n.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){let r=n.reduce((i,s)=>{let a=typeof s._def.value;switch(a){case"string":case"number":case"boolean":return[...i,a];case"bigint":return[...i,"integer"];case"object":if(s._def.value===null)return[...i,"null"];case"symbol":case"undefined":case"function":default:return i}},[]);if(r.length===n.length){let i=r.filter((s,a,o)=>o.indexOf(s)===a);return{type:i.length>1?i:i[0],enum:n.reduce((s,a)=>s.includes(a._def.value)?s:[...s,a._def.value],[])}}}else if(n.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:n.reduce((r,i)=>[...r,...i._def.values.filter(s=>!r.includes(s))],[])};return Hs(t,e)}l(Cu,"parseUnionDef");var Hs=l((t,e)=>{let n=(t.options instanceof Map?Array.from(t.options.values()):t.options).map((i,s)=>A(i._def,f(u({},e),{currentPath:[...e.currentPath,e.unionStrategy,`${s}`]}))).filter(i=>!!i&&(!e.strictUnions||typeof i=="object"&&Object.keys(i).length>0)),r=e.discriminator&&t.typeName==="ZodDiscriminatedUnion"&&typeof t.discriminator=="string"?{discriminator:{propertyName:t.discriminator}}:{};if(n.length)return e.unionStrategy==="anyOf"?u({anyOf:n},r):u({oneOf:n},r)},"asUnionOf");function Ru(t,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(t.innerType._def.typeName)&&(!t.innerType._def.checks||!t.innerType._def.checks.length)){let r=t.innerType;if(e.target==="openApi3"){let s={type:qn[r._def.typeName],nullable:!0};return ti(r._def,e,s)}let i={type:[qn[r._def.typeName],"null"]};return ti(r._def,e,i)}if(e.target==="openApi3"){let r=A(t.innerType._def,f(u({},e),{currentPath:[...e.currentPath]}));return r&&f(u({},r),{nullable:!0})}let n=A(t.innerType._def,f(u({},e),{currentPath:[...e.currentPath,"anyOf","0"]}));return n&&{anyOf:[n,{type:"null"}]}}l(Ru,"parseNullableDef");function Du(t,e){let n=u({type:"number"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{});if(!t.checks)return n;for(let r of t.checks)switch(r.kind){case"int":n.type="integer",ri(n,"type",r.message,e);break;case"min":e.target==="jsonSchema7"?r.inclusive?D(n,"minimum",r.value,r.message,e):D(n,"exclusiveMinimum",r.value,r.message,e):(r.inclusive||(n.exclusiveMinimum=!0),D(n,"minimum",r.value,r.message,e));break;case"max":e.target==="jsonSchema7"?r.inclusive?D(n,"maximum",r.value,r.message,e):D(n,"exclusiveMaximum",r.value,r.message,e):(r.inclusive||(n.exclusiveMaximum=!0),D(n,"maximum",r.value,r.message,e));break;case"multipleOf":D(n,"multipleOf",r.value,r.message,e);break}return n}l(Du,"parseNumberDef");var oy=l((t,e)=>{var n;return t.unknownKeys instanceof E?(n=A(t.unknownKeys._def,f(u({},e),{currentPath:[...e.currentPath,"additionalProperties"]})))!=null?n:!0:t.unknownKeys==="passthrough"},"getAdditionalProperties");function Hu(t,e){let n=f(u({type:"object"},Object.entries(t.shape()).reduce((r,[i,s])=>{if(s===void 0||s._def===void 0)return r;let a=A(s._def,f(u({},e),{currentPath:[...e.currentPath,"properties",i],propertyPath:[...e.currentPath,"properties",i]}));return a===void 0?r:{properties:f(u({},r.properties),{[i]:a}),required:s.isOptional()?r.required:[...r.required,i]}},{properties:{},required:[]})),{additionalProperties:oy(t,e)});return n.required.length||delete n.required,n}l(Hu,"parseObjectDef");var ly=l((t,e)=>{var n;if(e.currentPath.toString()===((n=e.propertyPath)==null?void 0:n.toString()))return A(t.innerType._def,e);let r=A(t.innerType._def,f(u({},e),{currentPath:[...e.currentPath,"anyOf","1"]}));return r?{anyOf:[{not:{}},r]}:{}},"parseOptionalDef"),cy=l((t,e)=>{if(e.pipeStrategy==="input")return A(t.in._def,e);if(e.pipeStrategy==="output")return A(t.out._def,e);let n=A(t.in._def,f(u({},e),{currentPath:[...e.currentPath,"allOf","0"]})),r=A(t.out._def,f(u({},e),{currentPath:[...e.currentPath,"allOf",n?"1":"0"]}));return{allOf:[n,r].filter(i=>i!==void 0)}},"parsePipelineDef");function Nu(t,e){return A(t.type._def,e)}l(Nu,"parsePromiseDef");var uy=l((t,e)=>A(t.innerType._def,e),"parseReadonlyDef");function Mu(t){return{$ref:t.uri}}l(Mu,"parseRefDef");function $u(t,e){let r={type:"array",uniqueItems:!0,items:A(t.valueType._def,f(u({},e),{currentPath:[...e.currentPath,"items"]}))};return t.minSize&&D(r,"minItems",t.minSize.value,t.minSize.message,e),t.maxSize&&D(r,"maxItems",t.maxSize.value,t.maxSize.message,e),r}l($u,"parseSetDef");function ju(t,e){return t.rest?{type:"array",minItems:t.items.length,items:t.items.map((n,r)=>A(n._def,f(u({},e),{currentPath:[...e.currentPath,"items",`${r}`]}))).reduce((n,r)=>r===void 0?n:[...n,r],[]),additionalItems:A(t.rest._def,f(u({},e),{currentPath:[...e.currentPath,"additionalItems"]}))}:{type:"array",minItems:t.items.length,maxItems:t.items.length,items:t.items.map((n,r)=>A(n._def,f(u({},e),{currentPath:[...e.currentPath,"items",`${r}`]}))).reduce((n,r)=>r===void 0?n:[...n,r],[])}}l(ju,"parseTupleDef");function Ku(){return{not:{}}}l(Ku,"parseUndefinedDef");function Uu(){return{}}l(Uu,"parseUnknownDef");function A(t,e,n=!1){let r=e.seen.get(t);if(r&&!n){let a=dy(r,e);if(a!==void 0)return a}let i={def:t,path:e.currentPath,jsonSchema:void 0};e.seen.set(t,i);let s=fy(t,t.typeName,e);return s&&ti(t,e,s),i.jsonSchema=s,s}l(A,"parseDef");var dy=l((t,e)=>{switch(e.$refStrategy){case"root":return{$ref:t.path.join("/")};case"relative":return{$ref:py(e.currentPath,t.path)};case"none":case"seen":return t.path.length<e.currentPath.length&&t.path.every((n,r)=>e.currentPath[r]===n)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),{}):e.$refStrategy==="seen"?{}:void 0}},"get$ref"),py=l((t,e)=>{let n=0;for(;n<t.length&&n<e.length&&t[n]===e[n];n++);return[(t.length-n).toString(),...e.slice(n)].join("/")},"getRelativePath"),fy=l((t,e,n)=>{switch(e){case"ZodString":return ii(t,n);case"ZodNumber":return Du(t,n);case"ZodObject":return Hu(t,n);case"ZodBigInt":return Tu(t,n);case"ZodBoolean":return bu(t);case"ZodDate":return Pu(t,n);case"ZodUndefined":return Ku();case"ZodNull":return Au(n);case"ZodArray":return _u(t,n);case"ZodUnion":case"ZodDiscriminatedUnion":return Cu(t,n);case"ZodIntersection":return Ou(t,n);case"ZodTuple":return ju(t,n);case"ZodRecord":return Ui(t,n);case"ZodRef":return Mu(t);case"ZodLiteral":return Eu(t,n);case"ZodEnum":return Su(t);case"ZodNativeEnum":return Zu(t);case"ZodNullable":return Ru(t,n);case"ZodOptional":return ly(t,n);case"ZodMap":return Iu(t,n);case"ZodSet":return $u(t,n);case"ZodLazy":return A(t.getter()._def,n);case"ZodPromise":return Nu(t,n);case"ZodNaN":case"ZodNever":return Bu();case"ZodEffects":return ku(t,n);case"ZodAny":return vu();case"ZodUnknown":return Uu();case"ZodDefault":return xu(t,n);case"ZodBranded":return wu(t,n);case"ZodReadonly":return uy(t,n);case"ZodCatch":return iy(t,n);case"ZodPipeline":return cy(t,n);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return(r=>{})(e)}},"selectParser"),ti=l((t,e,n)=>(t.description&&(n.description=t.description,e.markdownDescription&&(n.markdownDescription=t.description)),Object.assign(n,{[w]:u(u({},t[w]),n[w])}),n),"addMeta"),Ns={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"},gy=l(t=>typeof t=="string"?f(u({},Ns),{name:t}):u(u({},Ns),t),"getDefaultOptions"),my=l(t=>{let e=gy(t),n=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return f(u({},e),{currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(e.definitions).map(([r,i])=>[i._def,{def:i._def,path:[...e.basePath,e.definitionPath,r],jsonSchema:void 0}]))})},"getRefs"),hy=l((t,e)=>{var n;let r=my(e),i=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((c,[d,g])=>{var m;return f(u({},c),{[d]:(m=A(g._def,f(u({},r),{currentPath:[...r.basePath,r.definitionPath,d]}),!0))!=null?m:{}})},{}):void 0,s=typeof e=="string"?e:e?.name,a=(n=A(t._def,s===void 0?r:f(u({},r),{currentPath:[...r.basePath,r.definitionPath,s]}),!1))!=null?n:{},o=s===void 0?i?f(u({},a),{[r.definitionPath]:i}):a:{$ref:[...r.$refStrategy==="relative"?[]:r.basePath,r.definitionPath,s].join("/"),[r.definitionPath]:f(u({},i),{[s]:a})};return r.target==="jsonSchema7"?o.$schema="http://json-schema.org/draft-07/schema#":r.target==="jsonSchema2019-09"&&(o.$schema="https://json-schema.org/draft/2019-09/schema#"),o},"zodToJsonSchema"),yy=l((t,e={target:"openApi3"})=>{let n=hy(t,e);return e.$schemaUrl===!1?delete n.$schema:typeof e.$schemaUrl=="string"&&(n.$schema=e.$schemaUrl),n},"toJSONSchemaLegacy");var vt=(t,e)=>{let n=t._def,r=e._def;if(n.typeName===y.ZodFirstPartyTypeKind.ZodObject&&r.typeName===y.ZodFirstPartyTypeKind.ZodObject){let i=n.shape(),s=r.shape();return y.object({...i,...s})}if(n.typeName===y.ZodFirstPartyTypeKind.ZodRecord&&r.typeName===y.ZodFirstPartyTypeKind.ZodRecord)return y.record(y.intersection(n.valueType,r.valueType));throw new Error("Cannot merge object schemas with record schemas")},Fu=y;var re=y.string().min(1),Wu=y.object({text:re}),Lu=y.object({markdown:re}),Vu=y.object({imageUrl:re}),qu=y.object({audioUrl:re}),Gu=y.object({videoUrl:re}),Ju=y.object({fileUrl:re,title:re.optional()}),Yu=y.object({latitude:y.number(),longitude:y.number(),address:y.string().optional(),title:y.string().optional()}),Xu=y.object({title:re,subtitle:re.optional(),imageUrl:re.optional(),actions:y.array(y.object({action:y.enum(["postback","url","say"]),label:re,value:re}))}),zu=y.object({text:re,options:y.array(y.object({label:re,value:re}))}),vy=y.object({items:y.array(Xu)}),Qu=y.union([y.object({type:y.literal("text"),payload:Wu}),y.object({type:y.literal("image"),payload:Vu}),y.object({type:y.literal("audio"),payload:qu}),y.object({type:y.literal("video"),payload:Gu}),y.object({type:y.literal("file"),payload:Ju}),y.object({type:y.literal("location"),payload:Yu})]),_y=y.object({items:y.array(Qu)}),Ty={schema:Lu},by={schema:y.object({items:y.array(y.union([...Qu.options,y.object({type:y.literal("markdown"),payload:Lu})]))})},wy={text:{schema:Wu},image:{schema:Vu},audio:{schema:qu},video:{schema:Gu},file:{schema:Ju},location:{schema:Yu},carousel:{schema:vy},card:{schema:Xu},dropdown:{schema:zu},choice:{schema:zu},bloc:{schema:_y}};var Py={HIDDEN_IN_STUDIO:{bpActionHiddenInStudio:"true"},AWAIT_RETURN:{bpActionAwaitReturn:"true"}};var ed=require("browser-or-node");var zi=console;function ce(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function Qt(t,e=8072,n=Oy){if(!ed.isNode)throw new Error("This function can only be called in Node.js");let i=require("http").createServer(async(s,a)=>{try{let o=await xy(s);if(o.path==="/health"){a.writeHead(200).end("ok");return}let c=await t(o);a.writeHead(c?.status??200,c?.headers??{}).end(c?.body??"{}")}catch(o){let c=o instanceof Error?o.message:String(o);zi.error("Error while handling request",{error:c??"Internal error occured"}),a.writeHead(500).end(JSON.stringify({error:c??"Internal error occured"}))}});return i.listen(e,()=>n(e)),i}async function xy(t){let e=await Sy(t),n={};for(let i=0;i<t.rawHeaders.length;i+=2){let s=t.rawHeaders[i].toLowerCase(),a=t.rawHeaders[i+1];n[s]=a}let r=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:r.pathname,query:ky(r.search,"?"),headers:n,method:t.method?.toUpperCase()??"GET"}}function ky(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function Sy(t){return new Promise((e,n)=>{if(t.method!=="POST"&&t.method!=="PUT"&&t.method!=="PATCH")return e(void 0);let r="";t.on("data",i=>r+=i.toString()),t.on("error",i=>n(i)),t.on("end",()=>e(r))})}function Oy(t){zi.info(`Listening on port ${t}`)}var Cr=require("@botpress/client");var N={};nt(N,{mapKeys:()=>Zy,mapValues:()=>Iy,mergeRecords:()=>Ay,pairs:()=>_r,stripUndefinedProps:()=>By,values:()=>Ey});var _r=t=>Object.entries(t),Ey=t=>Object.values(t),Iy=(t,e)=>Object.fromEntries(_r(t).map(([n,r])=>[n,e(r,n)])),Zy=(t,e)=>Object.fromEntries(_r(t).map(([n,r])=>[e(n),r])),By=t=>Object.fromEntries(_r(t).filter(([,e])=>e!==void 0)),Ay=(t,e,n)=>{let r=[...Object.keys(t),...Object.keys(e)],i=[...new Set(r)],s={};for(let a of i){let o=t[a],c=e[a];o&&c?s[a]=n(o,c):o?s[a]=o:c&&(s[a]=c)}return s};var O={};nt(O,{safePush:()=>Cy,unique:()=>Ry});var Cy=(t,...e)=>t?[...t,...e]:[...e],Ry=t=>Array.from(new Set(t));var Y={};nt(Y,{setName:()=>Dy});var Dy=(t,e)=>(Object.defineProperty(t,"name",{value:e}),t);var td=t=>{let{name:e,version:n}=t,r={actions:{},events:{},channels:{}},i={name:e,version:n,entities:N.mapValues(t.entities,a=>({name:a.name})),actions:{},events:{},channels:{}},s=N.mapValues(t.entities,a=>a.schema);for(let[a,o]of Object.entries(t.definition.actions??{})){let c=o.input.schema.dereference(s),d=o.output.schema.dereference(s),g=t.actions?.[a]?.name??a;r.actions[g]={...o,...t.actions?.[a]??{},input:{schema:c},output:{schema:d}},i.actions[a]={name:g}}for(let[a,o]of Object.entries(t.definition.events??{})){let c=o.schema.dereference(s),d=t.events?.[a]?.name??a;r.events[d]={...o,...t.events?.[a]??{},schema:c},i.events[a]={name:d}}for(let[a,o]of Object.entries(t.definition.channels??{})){let c={};for(let[g,m]of Object.entries(o.messages)){let T=m.schema.dereference(s);c[g]={...m,schema:T}}let d=t.channels?.[a]?.name??a;r.channels[d]={...o,...t.channels?.[a]??{},message:{...o.message??{},tags:{...o.message?.tags??{},...t.channels?.[a]?.message?.tags??{}}},conversation:{...o.conversation??{},tags:{...o.conversation?.tags??{},...t.channels?.[a]?.conversation?.tags??{}}},messages:c},i.channels[a]={name:d}}return{resolved:r,statement:i}};var nd="5.1.2";var Ce=nd;var Tr=Symbol("schemaName"),rd=t=>t?N.mapValues(t,(n,r)=>({...n,[Tr]:r})):{},id=t=>Tr in t&&t[Tr]!==void 0,sd=t=>t[Tr];var br=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:Ce}}extend(e,n){let{entities:r,actions:i,events:s,channels:a}=this._callBuilder(e,n),o=this;o.interfaces??={};let c=Object.values(r).map(T=>T.name),d=c.length===0?e.name:`${e.name}<${c.join(",")}>`,{resolved:g,statement:m}=td({...e,entities:r,actions:N.stripUndefinedProps(i),events:N.stripUndefinedProps(s),channels:N.stripUndefinedProps(a)});return o.actions=N.mergeRecords(o.actions??{},g.actions,this._mergeActions),o.channels=N.mergeRecords(o.channels??{},g.channels,this._mergeChannels),o.events=N.mergeRecords(o.events??{},g.events,this._mergeEvents),o.interfaces[d]={id:e.id,...m},this}_callBuilder(e,n){let i={entities:rd(this.entities)},s=n(i),a=N.pairs(s.entities).find(([c,d])=>!id(d));if(a)throw new Error(`Cannot extend interface "${e.name}" with entity "${a[0]}"; the provided schema is not part of the integration's entities.`);return{entities:N.mapValues(s.entities,c=>({name:sd(c),schema:c.schema})),actions:s.actions??{},events:s.events??{},channels:s.channels??{}}}_mergeActions=(e,n)=>({...e,...n,input:{schema:vt(e.input.schema,n.input.schema)},output:{schema:vt(e.output.schema,n.output.schema)}});_mergeEvents=(e,n)=>({...e,...n,schema:vt(e.schema,n.schema)});_mergeChannels=(e,n)=>{let r=N.mergeRecords(e.messages,n.messages,this._mergeMessage),i;(e.conversation||n.conversation)&&(i={tags:{...e.conversation?.tags,...n.conversation?.tags}});let s;return(e.message||n.message)&&(s={tags:{...e.message?.tags,...n.message?.tags}}),{...e,...n,messages:r,conversation:i,message:s}};_mergeMessage=(e,n)=>({schema:vt(e.schema,n.schema)})};var Oe=require("@botpress/client");var ad=Dr(require("@botpress/client")),wr={retries:3,retryCondition:t=>ad.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:(t,e)=>(Ny(e.response?.headers??{})??t)*1e3},Ny=t=>{let e=["RateLimit-Reset","X-RateLimit-Reset","Retry-After","ratelimit-reset","x-ratelimit-reset","retry-after"];for(let n of e){let r=t[n];if(r!==void 0)return My(String(r))}},My=t=>{let e=$y(t)?jy(t):t.length>0?parseInt(t,10):void 0;return e===void 0||isNaN(e)?void 0:e},$y=t=>t.includes(" "),jy=t=>{let e=Ky(t);if(!e)return;let n=new Date;return Math.max(0,Math.floor((e.getTime()-n.getTime())/1e3))},Ky=t=>{let e=new Date(t);return isNaN(e.getTime())?void 0:e};var _t=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(n=>n));updateMessage=(e=>this._client.updateMessage(e).then(n=>n));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 Pr=class{_cost=0;get cost(){return this._cost}setCost(e){this._cost=e}toJSON(){return{cost:this.cost}}};var fe="#",xr="x-bot-id",od="x-bot-user-id",ld="x-integration-id",cd="x-integration-alias",ud="x-webhook-id",dd="x-bp-configuration-type",kr="x-bp-configuration",Sr="x-bp-operation",pd="x-bp-type";var ue=t=>{throw t instanceof Error?t:new Error(t)};var g_=y.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),fd=t=>({botId:t[xr]||ue("Missing bot header"),botUserId:t[od]||ue("Missing bot user header"),integrationId:t[ld]||ue("Missing integration header"),integrationAlias:t[cd]||ue("Missing integration alias header"),webhookId:t[ud]||ue("Missing webhook header"),operation:t[Sr]||ue("Missing operation header"),configurationType:t[dd]??null,configuration:JSON.parse(Buffer.from(t[kr]||ue("Missing configuration header"),"base64").toString("utf-8"))});var gd=Dr(require("util")),Tt=class{defaultOptions;constructor(e){this.defaultOptions=e}info(...e){this._log("info",e)}debug(...e){this._log("debug",e)}warn(...e){this._log("warn",e)}error(...e){this._log("error",e)}_log(e,n){this._getConsoleMethod(e)(this._serializeMessage(n))}_serializeMessage(e){let n=gd.default.format(...e);return process.env.BP_LOG_FORMAT==="json"?this.getJsonMessage(n):n}getJsonMessage(e){return JSON.stringify({msg:e,options:this.defaultOptions})}_getConsoleMethod(e){switch(e){case"debug":return console.debug;case"warn":return console.warn;case"error":return console.error;default:return console.info}}};var bt=class t extends Tt{constructor(e){super({visibleToBotOwners:!1,hiddenToIntegrationOwners:!1,...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})}withHiddenToIntegrationOwners(e){return this.with({hiddenToIntegrationOwners:e})}forBot(){return this.with({hiddenToIntegrationOwners:!1,visibleToBotOwners:!0})}forBotOnly(){return this.with({hiddenToIntegrationOwners:!0,visibleToBotOwners:!0})}getJsonMessage(e){return JSON.stringify({msg:e,visible_to_bot_owner:this.defaultOptions.visibleToBotOwners,hidden_to_integration_owner:this.defaultOptions.hiddenToIntegrationOwners,options:this.defaultOptions})}};var Uy=t=>["traceparent","tracestate","sentry-trace"].reduce((e,n)=>(t[n]&&(e[n]=t[n]),e),{}),Fy=(t,e,n)=>{let[,r]=(e.headers.traceparent||"").split("-"),i=new Oe.Client({botId:t.botId,integrationId:t.integrationId,integrationAlias:t.integrationAlias,retry:wr,headers:Uy(e.headers)}),s=new _t(i),a=new bt({traceId:r});return{ctx:t,req:e,client:s,logger:a,instance:n}},zy=async t=>{let{ctx:e}=t;switch(e.operation){case"webhook_received":return await Ly(t);case"register":return await Vy(t);case"unregister":return await qy(t);case"message_created":return await Yy(t);case"action_triggered":return await Xy(t);case"ping":return await Wy(t);case"create_user":return await Gy(t);case"create_conversation":return await Jy(t);default:throw new Oe.InvalidPayloadError(`Unknown operation ${e.operation}`)}},md=t=>async e=>{let n=fd(e.headers),r=Fy(n,e,t),{logger:i}=r;try{let s;return s=await Qy(r),s?{...s,status:s.status??200}:(s=await zy(r),s?{...s,status:s.status??200}:{status:200})}catch(s){if((0,Oe.isApiError)(s)){let o=s.type==="Runtime"?s:new Oe.RuntimeError(s.message,s);return i.forBot().error(o.message),{status:o.code,body:JSON.stringify(o.toJSON())}}console.error(s);let a=new Oe.RuntimeError("An unexpected error occurred in the integration. Bot owners: Check logs for more informations. Integration owners: throw a RuntimeError to return a custom error message instead.");return i.forBot().error(a.message),{status:a.code,body:JSON.stringify(a.toJSON())}}},Wy=async t=>{},Ly=async({client:t,ctx:e,req:n,logger:r,instance:i})=>{let{req:s}=ce(n);return i.webhook({client:t,ctx:e,req:s,logger:r})},Vy=async({client:t,ctx:e,req:n,logger:r,instance:i})=>{if(!i.register)return;let{webhookUrl:s}=ce(n);await i.register({client:t,ctx:e,webhookUrl:s,logger:r})},qy=async({client:t,ctx:e,req:n,logger:r,instance:i})=>{if(!i.unregister)return;let{webhookUrl:s}=ce(n);await i.unregister({ctx:e,webhookUrl:s,client:t,logger:r})},Gy=async({client:t,ctx:e,req:n,logger:r,instance:i})=>{if(!i.createUser)return;let{tags:s}=ce(n);return await i.createUser({ctx:e,client:t,tags:s,logger:r})},Jy=async({client:t,ctx:e,req:n,logger:r,instance:i})=>{if(!i.createConversation)return;let{channel:s,tags:a}=ce(n);return await i.createConversation({ctx:e,client:t,channel:s,tags:a,logger:r})},Yy=async({ctx:t,req:e,client:n,logger:r,instance:i})=>{let{conversation:s,user:a,type:o,payload:c,message:d}=ce(e),g=i.channels[s.channel];if(!g)throw new Error(`Channel ${s.channel} not found`);let m=g.messages[o];if(!m)throw new Error(`Message of type ${o} not found in channel ${s.channel}`);await m({ctx:t,conversation:s,message:d,user:a,type:o,client:n,payload:c,ack:async({tags:I})=>{await n.updateMessage({id:d.id,tags:I})},logger:r})},Xy=async({req:t,ctx:e,client:n,logger:r,instance:i})=>{let{input:s,type:a}=ce(t);if(!a)throw new Error("Missing action type");let o=i.actions[a];if(!o)throw new Error(`Action ${a} not found`);let c=new Pr,g={output:await o({ctx:e,input:s,client:n,type:a,logger:r,metadata:c}),meta:c.toJSON()};return{body:JSON.stringify(g)}},Qy=async({instance:t,client:e,ctx:n,logger:r,req:i})=>{let s=t.unknownOperationHandler;if(s)return await s({client:e,ctx:n,logger:r,req:i})};var Or=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=md(this);start=e=>Qt(this.handler,e)};var Er=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:Ce}}addIntegration(e,n){let r=this;r.integrations||(r.integrations={});let i=n?.alias??e.name;if(r.integrations[i])throw new Error(`Another integration with alias "${i}" is already installed in the bot`);return r.integrations[i]={...e,alias:i,enabled:n?.enabled,configurationType:n&&"configurationType"in n?n.configurationType:void 0,configuration:n&&"configuration"in n?n.configuration??{}:{},disabledChannels:n?.disabledChannels},this}addPlugin(e,n){let r=this;r.plugins||(r.plugins={});let i=n.alias??e.name;if(r.plugins[i])throw new Error(`Another plugin with alias "${i}" is already installed in the bot`);let s=Object.fromEntries(Object.entries(n.dependencies??{}).filter(([o,c])=>"integrationInterfaceAlias"in c).map(([o,c])=>{let d=this.integrations?.[c.integrationAlias];if(!d){let m=Object.keys(this.integrations??{}).join(", ")||"(none)";throw new Error(`Interface with alias "${o}" of plugin with alias "${i}" references integration with alias "${c.integrationAlias}" which is not installed. Please make sure to add the integration via addIntegration() before calling addPlugin().
|
|
72
|
+
`,i+="})"}let s=n?i?n+i:r?r==="z.never()"?n+".strict()":n+`.catchall(${r})`:n:i||(r?`z.record(${r})`:"z.record(z.any())");return $.an.anyOf(t)&&(s+=`.and(${gu(f(u({},t),{anyOf:t.anyOf.map(a=>typeof a=="object"&&!a.type&&(a.properties||a.additionalProperties||a.patternProperties)?f(u({},a),{type:"object"}):a)}),e)})`),$.a.oneOf(t)&&(s+=`.and(${Ki(f(u({},t),{oneOf:t.oneOf.map(a=>typeof a=="object"&&!a.type&&(a.properties||a.additionalProperties||a.patternProperties)?f(u({},a),{type:"object"}):a)}),e)})`),$.an.allOf(t)&&(s+=`.and(${Lt(f(u({},t),{allOf:t.allOf.map(a=>typeof a=="object"&&!a.type&&(a.properties||a.additionalProperties||a.patternProperties)?f(u({},a),{type:"object"}):a)}),e)})`),s}l(mu,"parseObject");var Nh=l(t=>`z.ref('${t.$ref}')`,"parseRef"),Mh=l(t=>{var e;let n="z.string()";if((e=t[w])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";n="z.coerce.string()"}return n+=q(t,"format",({value:r})=>{switch(r){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(",")"]}}),n+=q(t,"pattern",({json:r})=>[`.regex(new RegExp(${r})`,", ",")"]),n+=q(t,"minLength",({json:r})=>[`.min(${r}`,", ",")"]),n+=q(t,"maxLength",({json:r})=>[`.max(${r}`,", ",")"]),n},"parseString"),L=l((t,e={seen:new Map,path:[]},n)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let s=e.parserOverride(t,e);if(typeof s=="string")return s}let r=e.seen.get(t);if(r){if(r.r!==void 0)return r.r;if(e.depth===void 0||r.n>=e.depth)return"z.any()";r.n+=1}else r={r:void 0,n:0},e.seen.set(t,r);let i=Kh(t,e);return n||(i=$h(t,i),e.withoutDefaults||(i=jh(t,i))),r.r=i,i},"parseSchema"),$h=l((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),jh=l((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),Kh=l((t,e)=>$.a.nullable(t)?Dh(t,e):$.an.object(t)?mu(t,e):$.an.array(t)?kh(t,e):$.an.anyOf(t)?gu(t,e):$.an.allOf(t)?Lt(t,e):$.a.discriminator(t)?Ih(t,e):$.a.oneOf(t)?Ki(t,e):$.a.not(t)?Ch(t,e):$.an.enum(t)?Zh(t):$.a.const(t)?Oh(t):$.a.multipleType(t)?Ah(t,e):$.a.primitive(t,"string")?Mh(t):$.a.primitive(t,"number")||$.a.primitive(t,"integer")?Hh(t):$.a.primitive(t,"boolean")?Sh(t):$.a.primitive(t,"null")?Rh(t):$.a.conditional(t)?Bh(t,e):$.a.ref(t)?Nh(t):Eh(t),"selectParser"),$={an:{object:t=>t.type==="object",array:t=>t.type==="array",anyOf:t=>t.anyOf!==void 0,allOf:t=>t.allOf!==void 0,enum:t=>t.enum!==void 0},a:{nullable:t=>t.nullable===!0,multipleType:t=>Array.isArray(t.type),not:t=>t.not!==void 0,const:t=>t.const!==void 0,primitive:(t,e)=>t.type===e,conditional:t=>!!("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),discriminator:t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},oneOf:t=>t.oneOf!==void 0,ref:t=>t.$ref!==void 0}},Uh=l(t=>L(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),Fh=l(t=>{let e=Uh(t);e=e.replaceAll("errors: z.ZodError[]","errors");let n=bh(e);if(!n.sucess)throw new Jn(n.error);return n.value},"jsonSchemaToZod"),Nt=l((t,e)=>{var n,r;if(e[w]&&t._def&&(t.naked()._def[w]=e[w]),((n=t._def)==null?void 0:n.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([i,s])=>{let a=typeof t._def.shape=="function"?t._def.shape():t._def.shape;a[i]&&Nt(a[i],s)}),((r=t._def)==null?void 0:r.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&Nt(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let i=e.items;if(typeof i=="object"&&!Array.isArray(i)){let s=t._def.type;s&&Nt(s,i)}else Array.isArray(i)&&i.forEach((s,a)=>{let o=t._def;o.typeName===y.ZodFirstPartyTypeKind.ZodTuple&&Nt(o.items[a],s)})}},"applyZuiPropsRecursively"),zh=l(t=>{let e=Fh(t);return Nt(e,t),e},"fromJSONSchemaLegacy"),Wh=l(t=>{var e,n;return t.anyOf!==void 0&&t.anyOf.length===2&&t.anyOf.some(r=>typeof r!="boolean"&&hu(r))&&((n=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:n.typeName)===p.ZodFirstPartyTypeKind.ZodOptional},"isOptionalSchema"),Lh=l(t=>{var e,n;return t.anyOf!==void 0&&t.anyOf.length===2&&t.anyOf.some(r=>typeof r!="boolean"&&r.type==="null")&&((n=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:n.typeName)===p.ZodFirstPartyTypeKind.ZodNullable},"isNullableSchema"),hu=l(t=>{var e,n;return t.not===!0&&((n=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:n.typeName)===p.ZodFirstPartyTypeKind.ZodUndefined},"isUndefinedSchema"),Vh=l(t=>{var e,n;return!t.not&&((n=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:n.typeName)===p.ZodFirstPartyTypeKind.ZodUnknown},"isUnknownSchema"),qh=l(t=>{var e,n;return t.anyOf!==void 0&&((n=(e=t["x-zui"])==null?void 0:e.def)==null?void 0:n.typeName)===p.ZodFirstPartyTypeKind.ZodDiscriminatedUnion},"isDiscriminatedUnionSchema"),Gh=l((t,e)=>Jh(t)?Xh(t,e):Yh(t)?Qh(t,e):ey(t,e),"arrayJSONSchemaToZuiArray"),Jh=l(t=>Array.isArray(t.items),"_isTuple"),Yh=l(t=>t.items!==void 0&&t.uniqueItems,"_isSet"),Xh=l(({items:t,additionalItems:e},n)=>{let r=t.map(n),i=p.tuple(r);return e!==void 0&&(i=i.rest(n(e))),i},"_handleTuple"),Qh=l(({items:t,minItems:e,maxItems:n},r)=>{let i=p.set(r(t));return e&&(i=i.min(e)),n&&(i=i.max(n)),i},"_handleSet"),ey=l(({minItems:t,maxItems:e,items:n},r)=>{let i=p.array(r(n));return t&&t===e?i.length(t):(t&&(i=i.min(t)),e&&(i=i.max(e)),i)},"_handleArray"),ty=l(({type:t,minimum:e,exclusiveMinimum:n,maximum:r,exclusiveMaximum:i,multipleOf:s,format:a})=>{let o=p.number();return t==="integer"&&(o=o.int()),a==="finite"&&(o=o.finite()),n!==void 0?o=o.gt(n):e!==void 0&&(o=o.gte(e)),i!==void 0?o=o.lt(i):r!==void 0&&(o=o.lte(r)),s!==void 0&&(o=o.multipleOf(s)),o},"numberJSONSchemaToZuiNumber"),ny=l(({format:t,pattern:e,minLength:n,maxLength:r})=>{let i=p.string();if(n&&r&&n===r?i=i.length(n):(n&&(i=i.min(n)),r&&(i=i.max(r))),t==="cuid"||e===j.cuid)i=i.cuid();else if(t==="cuid2"||e===j.cuid2)i=i.cuid2();else if(t==="emoji"||e===j.emoji)i=i.emoji();else if(t==="ulid"||e===j.ulid)i=i.ulid();else if(t==="date-time"){let{precision:s,offset:a}=e?Md(e):{};i=i.datetime({precision:s,offset:a})}else t==="email"||e===j.email?i=i.email():t==="ipv4"||e===j.ipv4?i=i.ip():t==="ipv6"||e===j.ipv6?i=i.ip("v6"):t==="uri"?i=i.url():t==="uuid"||e===j.uuid?i=i.uuid():e&&(i=i.regex(new RegExp(e)));return i},"stringJSONSchemaToZuiString"),kt=l((t,e)=>{let n=[];e.enum!==void 0&&n.push(...e.enum),e.const!==void 0&&n.push(e.const);let r,i=n.filter(a=>typeof a===t),[s]=i;if(s)if(i.length===1)r=p.literal(s);else{let a=i.map(o=>p.literal(o));r=p.union(a)}else if(t==="string"&&e.type==="string"&&(r=ny(e)),t==="number"&&(e.type==="number"||e.type==="integer")&&(r=ty(e)),t==="boolean"&&(r=p.boolean()),t==="null"&&(r=p.null()),!r)throw new Jn(`Unknown primitive type: "${t}"`);return e.description&&(r=r.describe(e.description)),r},"toZuiPrimitive"),rt=p.any();function yu(t){return U(t)}l(yu,"fromJSONSchema");function U(t){var e,n,r;if(t===void 0)return rt;if(t===!0)return p.any();if(t===!1)return p.never();if(t.default!==void 0)return U(f(u({},t),{default:void 0})).default(t.default);if(t.readOnly)return U(f(u({},t),{readOnly:void 0})).readonly();if(t.description!==void 0)return U(f(u({},t),{description:void 0})).describe(t.description);if(t.oneOf!==void 0)throw new Ie({oneOf:t.oneOf});if(t.patternProperties!==void 0)throw new Ie({patternProperties:t.patternProperties});if(t.propertyNames!==void 0)throw new Ie({propertyNames:t.propertyNames});if(t.if!==void 0)throw new Ie({if:t.if});if(t.then!==void 0)throw new Ie({then:t.then});if(t.else!==void 0)throw new Ie({else:t.else});if(t.$ref!==void 0)return p.ref(t.$ref);if(t.not!==void 0){if(hu(t))return p.undefined();if(t.not===!0)return p.never();throw new Ie({not:t.not})}if(Array.isArray(t.type)){if(t.type.length===0)return rt;if(t.type.length===1)return U(f(u({},t),{type:t.type[0]}));let i=t,{type:s}=i,a=js(i,["type"]),o=t.type.map(c=>U(f(u({},a),{type:c})));return p.union(o)}if(t.type==="string")return t.enum&&t.enum.length>0?p.enum(t.enum):kt("string",t);if(t.type==="integer"){let i=kt("number",t);return i instanceof p.ZodNumber?i.int():i}if(t.type==="number")return kt("number",t);if(t.type==="boolean")return kt("boolean",t);if(t.type==="null")return kt("null",t);if(t.type==="array")return Gh(t,U);if(t.type==="object"){if(t.additionalProperties!==void 0&&t.properties!==void 0){let i=U(t.additionalProperties);return U(f(u({},t),{additionalProperties:void 0})).catchall(i)}if(t.properties!==void 0){let i={};for(let[s,a]of Object.entries(t.properties)){let o=U(a),c=(e=t.required)!=null?e:[];i[s]=c.includes(s)||o.isOptional()?o:o.optional()}return p.object(i)}if(t.additionalProperties!==void 0){let i=U(t.additionalProperties);return p.record(i)}return p.record(rt)}if(t.anyOf!==void 0){if(t.anyOf.length===0)return rt;if(t.anyOf.length===1)return U(t.anyOf[0]);if(Wh(t))return U(t.anyOf[0]).optional();if(Lh(t))return U(t.anyOf[0]).nullable();if(qh(t)&&((r=(n=t["x-zui"])==null?void 0:n.def)!=null&&r.discriminator)){let{discriminator:s}=t["x-zui"].def,a=t.anyOf.map(U);return p.discriminatedUnion(s,a)}let i=t.anyOf.map(U);return p.union(i)}if(t.allOf!==void 0){if(t.allOf.length===0)return rt;if(t.allOf.length===1)return U(t.allOf[0]);let[i,...s]=t.allOf,a=U(i),o=U({allOf:s});return p.intersection(a,o)}return Vh(t)?p.unknown():rt}l(U,"_fromJSONSchema");var ry=/^\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))?$/,ei=l((t,e,n=!0)=>{if(typeof t!="object")throw new Fr("Input must be an object");let r=l(a=>{let o=a;return e?.nullable&&(o=o.nullable()),e?.optional&&(o=o.optional()),e?.passtrough&&typeof o.passthrough=="function"&&(o=o.passthrough()),o},"applyOptions"),i=Object.entries(t).reduce((a,[o,c])=>{if(c===null)a[o]=r(y.null());else switch(typeof c){case"string":a[o]=ry.test(c)?r(y.string().datetime()):r(y.string());break;case"number":a[o]=r(y.number());break;case"boolean":a[o]=r(y.boolean());break;case"object":Array.isArray(c)?c.length===0?a[o]=r(y.array(y.unknown())):typeof c[0]=="object"?a[o]=r(y.array(ei(c[0],e,!1))):["string","number","boolean"].includes(typeof c[0])&&(a[o]=r(y.array(y[typeof c[0]]()))):a[o]=r(ei(c,e,!1));break;default:throw new Fr(`Unsupported type for key ${o}`)}return a},{}),s=Object.keys(i).length>0;return e?.passtrough||!n&&!s?y.object(i).passthrough():y.object(i)},"fromObject");function vu(){return{}}l(vu,"parseAnyDef");function _u(t,e){var n,r;let i={type:"array"};return((r=(n=t.type)==null?void 0:n._def)==null?void 0:r.typeName)!=="ZodAny"&&(i.items=A(t.type._def,f(u({},e),{currentPath:[...e.currentPath,"items"]}))),t.minLength&&D(i,"minItems",t.minLength.value,t.minLength.message,e),t.maxLength&&D(i,"maxItems",t.maxLength.value,t.maxLength.message,e),t.exactLength&&(D(i,"minItems",t.exactLength.value,t.exactLength.message,e),D(i,"maxItems",t.exactLength.value,t.exactLength.message,e)),i}l(_u,"parseArrayDef");function Tu(t,e){let n=u({type:"integer",format:"int64"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{});if(!t.checks)return n;for(let r of t.checks)switch(r.kind){case"min":e.target==="jsonSchema7"?r.inclusive?D(n,"minimum",r.value,r.message,e):D(n,"exclusiveMinimum",r.value,r.message,e):(r.inclusive||(n.exclusiveMinimum=!0),D(n,"minimum",r.value,r.message,e));break;case"max":e.target==="jsonSchema7"?r.inclusive?D(n,"maximum",r.value,r.message,e):D(n,"exclusiveMaximum",r.value,r.message,e):(r.inclusive||(n.exclusiveMaximum=!0),D(n,"maximum",r.value,r.message,e));break;case"multipleOf":D(n,"multipleOf",r.value,r.message,e);break}return n}l(Tu,"parseBigintDef");function bu(t){return u({type:"boolean"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{})}l(bu,"parseBooleanDef");function wu(t,e){return A(t.type._def,e)}l(wu,"parseBrandedDef");var iy=l((t,e)=>A(t.innerType._def,e),"parseCatchDef");function Pu(t,e){return e.dateStrategy==="integer"?sy(t,e):u({type:"string",format:"date-time"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{})}l(Pu,"parseDateDef");var sy=l((t,e)=>{let n=u({type:"integer",format:"unix-time"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{});for(let r of t.checks)switch(r.kind){case"min":e.target==="jsonSchema7"&&D(n,"minimum",r.value,r.message,e);break;case"max":e.target==="jsonSchema7"&&D(n,"maximum",r.value,r.message,e);break}return n},"integerDateParser");function xu(t,e){return f(u({},A(t.innerType._def,e)),{default:t.defaultValue()})}l(xu,"parseDefaultDef");function ku(t,e){return e.effectStrategy==="input"?A(t.schema._def,e):{}}l(ku,"parseEffectsDef");function Su(t){return{type:"string",enum:t.values}}l(Su,"parseEnumDef");var ay=l(t=>"type"in t&&t.type==="string"?!1:"allOf"in t,"isJsonSchema7AllOfType");function Ou(t,e){let n=[A(t.left._def,f(u({},e),{currentPath:[...e.currentPath,"allOf","0"]})),A(t.right._def,f(u({},e),{currentPath:[...e.currentPath,"allOf","1"]}))].filter(s=>!!s),r=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(s=>{if(ay(s))i.push(...s.allOf),s.unevaluatedProperties===void 0&&(r=void 0);else{let a=s;if("additionalProperties"in s&&s.additionalProperties===!1){let o=s,{additionalProperties:c}=o;a=js(o,["additionalProperties"])}else r=void 0;i.push(a)}}),i.length?u({allOf:i},r):void 0}l(Ou,"parseIntersectionDef");function Eu(t,e){let n=typeof t.value;return n!=="bigint"&&n!=="number"&&n!=="boolean"&&n!=="string"?{type:Array.isArray(t.value)?"array":"object"}:e.target==="openApi3"?{type:n==="bigint"?"integer":n,enum:[t.value]}:{type:n==="bigint"?"integer":n,const:t.value}}l(Eu,"parseLiteralDef");function Ui(t,e){var n,r,i,s,a;if(e.target==="openApi3"&&((n=t.keyType)==null?void 0:n._def.typeName)==="ZodEnum")return{type:"object",required:t.keyType._def.values,properties:t.keyType._def.values.reduce((c,d)=>{var g;return f(u({},c),{[d]:(g=A(t.valueType._def,f(u({},e),{currentPath:[...e.currentPath,"properties",d]})))!=null?g:{}})},{}),additionalProperties:!1};let o={type:"object",additionalProperties:(r=A(t.valueType._def,f(u({},e),{currentPath:[...e.currentPath,"additionalProperties"]})))!=null?r:{}};if(e.target==="openApi3")return o;if(((i=t.keyType)==null?void 0:i._def.typeName)==="ZodString"&&((s=t.keyType._def.checks)!=null&&s.length)){let c=Object.entries(ii(t.keyType._def,e)).reduce((d,[g,m])=>g==="type"?d:f(u({},d),{[g]:m}),{});return f(u({},o),{propertyNames:c})}else if(((a=t.keyType)==null?void 0:a._def.typeName)==="ZodEnum")return f(u({},o),{propertyNames:{enum:t.keyType._def.values}});return o}l(Ui,"parseRecordDef");function Iu(t,e){if(e.mapStrategy==="record")return Ui(t,e);let n=A(t.keyType._def,f(u({},e),{currentPath:[...e.currentPath,"items","items","0"]}))||{},r=A(t.valueType._def,f(u({},e),{currentPath:[...e.currentPath,"items","items","1"]}))||{};return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}l(Iu,"parseMapDef");function Zu(t){let e=t.values,r=Object.keys(t.values).filter(s=>typeof e[e[s]]!="number").map(s=>e[s]),i=Array.from(new Set(r.map(s=>typeof s)));return{type:i.length===1?i[0]==="string"?"string":"number":["string","number"],enum:r.filter(s=>typeof s=="string"||typeof s=="number")}}l(Zu,"parseNativeEnumDef");function Bu(){return{not:{}}}l(Bu,"parseNeverDef");function Au(t){return t.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}l(Au,"parseNullDef");var qn={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function Cu(t,e){if(e.target==="openApi3")return Hs(t,e);let n=t.options instanceof Map?Array.from(t.options.values()):t.options;if(n.every(r=>r._def.typeName in qn&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let a=qn[s._def.typeName];return a&&!i.includes(a)?[...i,a]:i},[]);return{type:r.length>1?r:r[0]}}else if(n.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){let r=n.reduce((i,s)=>{let a=typeof s._def.value;switch(a){case"string":case"number":case"boolean":return[...i,a];case"bigint":return[...i,"integer"];case"object":if(s._def.value===null)return[...i,"null"];case"symbol":case"undefined":case"function":default:return i}},[]);if(r.length===n.length){let i=r.filter((s,a,o)=>o.indexOf(s)===a);return{type:i.length>1?i:i[0],enum:n.reduce((s,a)=>s.includes(a._def.value)?s:[...s,a._def.value],[])}}}else if(n.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:n.reduce((r,i)=>[...r,...i._def.values.filter(s=>!r.includes(s))],[])};return Hs(t,e)}l(Cu,"parseUnionDef");var Hs=l((t,e)=>{let n=(t.options instanceof Map?Array.from(t.options.values()):t.options).map((i,s)=>A(i._def,f(u({},e),{currentPath:[...e.currentPath,e.unionStrategy,`${s}`]}))).filter(i=>!!i&&(!e.strictUnions||typeof i=="object"&&Object.keys(i).length>0)),r=e.discriminator&&t.typeName==="ZodDiscriminatedUnion"&&typeof t.discriminator=="string"?{discriminator:{propertyName:t.discriminator}}:{};if(n.length)return e.unionStrategy==="anyOf"?u({anyOf:n},r):u({oneOf:n},r)},"asUnionOf");function Ru(t,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(t.innerType._def.typeName)&&(!t.innerType._def.checks||!t.innerType._def.checks.length)){let r=t.innerType;if(e.target==="openApi3"){let s={type:qn[r._def.typeName],nullable:!0};return ti(r._def,e,s)}let i={type:[qn[r._def.typeName],"null"]};return ti(r._def,e,i)}if(e.target==="openApi3"){let r=A(t.innerType._def,f(u({},e),{currentPath:[...e.currentPath]}));return r&&f(u({},r),{nullable:!0})}let n=A(t.innerType._def,f(u({},e),{currentPath:[...e.currentPath,"anyOf","0"]}));return n&&{anyOf:[n,{type:"null"}]}}l(Ru,"parseNullableDef");function Du(t,e){let n=u({type:"number"},t.coerce?{[w]:{coerce:t.coerce||void 0}}:{});if(!t.checks)return n;for(let r of t.checks)switch(r.kind){case"int":n.type="integer",ri(n,"type",r.message,e);break;case"min":e.target==="jsonSchema7"?r.inclusive?D(n,"minimum",r.value,r.message,e):D(n,"exclusiveMinimum",r.value,r.message,e):(r.inclusive||(n.exclusiveMinimum=!0),D(n,"minimum",r.value,r.message,e));break;case"max":e.target==="jsonSchema7"?r.inclusive?D(n,"maximum",r.value,r.message,e):D(n,"exclusiveMaximum",r.value,r.message,e):(r.inclusive||(n.exclusiveMaximum=!0),D(n,"maximum",r.value,r.message,e));break;case"multipleOf":D(n,"multipleOf",r.value,r.message,e);break}return n}l(Du,"parseNumberDef");var oy=l((t,e)=>{var n;return t.unknownKeys instanceof E?(n=A(t.unknownKeys._def,f(u({},e),{currentPath:[...e.currentPath,"additionalProperties"]})))!=null?n:!0:t.unknownKeys==="passthrough"},"getAdditionalProperties");function Hu(t,e){let n=f(u({type:"object"},Object.entries(t.shape()).reduce((r,[i,s])=>{if(s===void 0||s._def===void 0)return r;let a=A(s._def,f(u({},e),{currentPath:[...e.currentPath,"properties",i],propertyPath:[...e.currentPath,"properties",i]}));return a===void 0?r:{properties:f(u({},r.properties),{[i]:a}),required:s.isOptional()?r.required:[...r.required,i]}},{properties:{},required:[]})),{additionalProperties:oy(t,e)});return n.required.length||delete n.required,n}l(Hu,"parseObjectDef");var ly=l((t,e)=>{var n;if(e.currentPath.toString()===((n=e.propertyPath)==null?void 0:n.toString()))return A(t.innerType._def,e);let r=A(t.innerType._def,f(u({},e),{currentPath:[...e.currentPath,"anyOf","1"]}));return r?{anyOf:[{not:{}},r]}:{}},"parseOptionalDef"),cy=l((t,e)=>{if(e.pipeStrategy==="input")return A(t.in._def,e);if(e.pipeStrategy==="output")return A(t.out._def,e);let n=A(t.in._def,f(u({},e),{currentPath:[...e.currentPath,"allOf","0"]})),r=A(t.out._def,f(u({},e),{currentPath:[...e.currentPath,"allOf",n?"1":"0"]}));return{allOf:[n,r].filter(i=>i!==void 0)}},"parsePipelineDef");function Nu(t,e){return A(t.type._def,e)}l(Nu,"parsePromiseDef");var uy=l((t,e)=>A(t.innerType._def,e),"parseReadonlyDef");function Mu(t){return{$ref:t.uri}}l(Mu,"parseRefDef");function $u(t,e){let r={type:"array",uniqueItems:!0,items:A(t.valueType._def,f(u({},e),{currentPath:[...e.currentPath,"items"]}))};return t.minSize&&D(r,"minItems",t.minSize.value,t.minSize.message,e),t.maxSize&&D(r,"maxItems",t.maxSize.value,t.maxSize.message,e),r}l($u,"parseSetDef");function ju(t,e){return t.rest?{type:"array",minItems:t.items.length,items:t.items.map((n,r)=>A(n._def,f(u({},e),{currentPath:[...e.currentPath,"items",`${r}`]}))).reduce((n,r)=>r===void 0?n:[...n,r],[]),additionalItems:A(t.rest._def,f(u({},e),{currentPath:[...e.currentPath,"additionalItems"]}))}:{type:"array",minItems:t.items.length,maxItems:t.items.length,items:t.items.map((n,r)=>A(n._def,f(u({},e),{currentPath:[...e.currentPath,"items",`${r}`]}))).reduce((n,r)=>r===void 0?n:[...n,r],[])}}l(ju,"parseTupleDef");function Ku(){return{not:{}}}l(Ku,"parseUndefinedDef");function Uu(){return{}}l(Uu,"parseUnknownDef");function A(t,e,n=!1){let r=e.seen.get(t);if(r&&!n){let a=dy(r,e);if(a!==void 0)return a}let i={def:t,path:e.currentPath,jsonSchema:void 0};e.seen.set(t,i);let s=fy(t,t.typeName,e);return s&&ti(t,e,s),i.jsonSchema=s,s}l(A,"parseDef");var dy=l((t,e)=>{switch(e.$refStrategy){case"root":return{$ref:t.path.join("/")};case"relative":return{$ref:py(e.currentPath,t.path)};case"none":case"seen":return t.path.length<e.currentPath.length&&t.path.every((n,r)=>e.currentPath[r]===n)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),{}):e.$refStrategy==="seen"?{}:void 0}},"get$ref"),py=l((t,e)=>{let n=0;for(;n<t.length&&n<e.length&&t[n]===e[n];n++);return[(t.length-n).toString(),...e.slice(n)].join("/")},"getRelativePath"),fy=l((t,e,n)=>{switch(e){case"ZodString":return ii(t,n);case"ZodNumber":return Du(t,n);case"ZodObject":return Hu(t,n);case"ZodBigInt":return Tu(t,n);case"ZodBoolean":return bu(t);case"ZodDate":return Pu(t,n);case"ZodUndefined":return Ku();case"ZodNull":return Au(n);case"ZodArray":return _u(t,n);case"ZodUnion":case"ZodDiscriminatedUnion":return Cu(t,n);case"ZodIntersection":return Ou(t,n);case"ZodTuple":return ju(t,n);case"ZodRecord":return Ui(t,n);case"ZodRef":return Mu(t);case"ZodLiteral":return Eu(t,n);case"ZodEnum":return Su(t);case"ZodNativeEnum":return Zu(t);case"ZodNullable":return Ru(t,n);case"ZodOptional":return ly(t,n);case"ZodMap":return Iu(t,n);case"ZodSet":return $u(t,n);case"ZodLazy":return A(t.getter()._def,n);case"ZodPromise":return Nu(t,n);case"ZodNaN":case"ZodNever":return Bu();case"ZodEffects":return ku(t,n);case"ZodAny":return vu();case"ZodUnknown":return Uu();case"ZodDefault":return xu(t,n);case"ZodBranded":return wu(t,n);case"ZodReadonly":return uy(t,n);case"ZodCatch":return iy(t,n);case"ZodPipeline":return cy(t,n);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return(r=>{})(e)}},"selectParser"),ti=l((t,e,n)=>(t.description&&(n.description=t.description,e.markdownDescription&&(n.markdownDescription=t.description)),Object.assign(n,{[w]:u(u({},t[w]),n[w])}),n),"addMeta"),Ns={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"},gy=l(t=>typeof t=="string"?f(u({},Ns),{name:t}):u(u({},Ns),t),"getDefaultOptions"),my=l(t=>{let e=gy(t),n=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return f(u({},e),{currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(e.definitions).map(([r,i])=>[i._def,{def:i._def,path:[...e.basePath,e.definitionPath,r],jsonSchema:void 0}]))})},"getRefs"),hy=l((t,e)=>{var n;let r=my(e),i=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((c,[d,g])=>{var m;return f(u({},c),{[d]:(m=A(g._def,f(u({},r),{currentPath:[...r.basePath,r.definitionPath,d]}),!0))!=null?m:{}})},{}):void 0,s=typeof e=="string"?e:e?.name,a=(n=A(t._def,s===void 0?r:f(u({},r),{currentPath:[...r.basePath,r.definitionPath,s]}),!1))!=null?n:{},o=s===void 0?i?f(u({},a),{[r.definitionPath]:i}):a:{$ref:[...r.$refStrategy==="relative"?[]:r.basePath,r.definitionPath,s].join("/"),[r.definitionPath]:f(u({},i),{[s]:a})};return r.target==="jsonSchema7"?o.$schema="http://json-schema.org/draft-07/schema#":r.target==="jsonSchema2019-09"&&(o.$schema="https://json-schema.org/draft/2019-09/schema#"),o},"zodToJsonSchema"),yy=l((t,e={target:"openApi3"})=>{let n=hy(t,e);return e.$schemaUrl===!1?delete n.$schema:typeof e.$schemaUrl=="string"&&(n.$schema=e.$schemaUrl),n},"toJSONSchemaLegacy");var vt=(t,e)=>{let n=t._def,r=e._def;if(n.typeName===y.ZodFirstPartyTypeKind.ZodObject&&r.typeName===y.ZodFirstPartyTypeKind.ZodObject){let i=n.shape(),s=r.shape();return y.object({...i,...s})}if(n.typeName===y.ZodFirstPartyTypeKind.ZodRecord&&r.typeName===y.ZodFirstPartyTypeKind.ZodRecord)return y.record(y.intersection(n.valueType,r.valueType));throw new Error("Cannot merge object schemas with record schemas")},Fu=y;var re=y.string().min(1),Wu=y.object({text:re}),Lu=y.object({markdown:re}),Vu=y.object({imageUrl:re}),qu=y.object({audioUrl:re}),Gu=y.object({videoUrl:re}),Ju=y.object({fileUrl:re,title:re.optional()}),Yu=y.object({latitude:y.number(),longitude:y.number(),address:y.string().optional(),title:y.string().optional()}),Xu=y.object({title:re,subtitle:re.optional(),imageUrl:re.optional(),actions:y.array(y.object({action:y.enum(["postback","url","say"]),label:re,value:re}))}),zu=y.object({text:re,options:y.array(y.object({label:re,value:re}))}),vy=y.object({items:y.array(Xu)}),Qu=y.union([y.object({type:y.literal("text"),payload:Wu}),y.object({type:y.literal("image"),payload:Vu}),y.object({type:y.literal("audio"),payload:qu}),y.object({type:y.literal("video"),payload:Gu}),y.object({type:y.literal("file"),payload:Ju}),y.object({type:y.literal("location"),payload:Yu})]),_y=y.object({items:y.array(Qu)}),Ty={schema:Lu},by={schema:y.object({items:y.array(y.union([...Qu.options,y.object({type:y.literal("markdown"),payload:Lu})]))})},wy={text:{schema:Wu},image:{schema:Vu},audio:{schema:qu},video:{schema:Gu},file:{schema:Ju},location:{schema:Yu},carousel:{schema:vy},card:{schema:Xu},dropdown:{schema:zu},choice:{schema:zu},bloc:{schema:_y}};var Py={HIDDEN_IN_STUDIO:{bpActionHiddenInStudio:"true"},AWAIT_RETURN:{bpActionAwaitReturn:"true"}};var ed=require("browser-or-node");var zi=console;function ce(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function Qt(t,e=8072,n=Oy){if(!ed.isNode)throw new Error("This function can only be called in Node.js");let i=require("http").createServer(async(s,a)=>{try{let o=await xy(s);if(o.path==="/health"){a.writeHead(200).end("ok");return}let c=await t(o);a.writeHead(c?.status??200,c?.headers??{}).end(c?.body??"{}")}catch(o){let c=o instanceof Error?o.message:String(o);zi.error("Error while handling request",{error:c??"Internal error occured"}),a.writeHead(500).end(JSON.stringify({error:c??"Internal error occured"}))}});return i.listen(e,()=>n(e)),i}async function xy(t){let e=await Sy(t),n={};for(let i=0;i<t.rawHeaders.length;i+=2){let s=t.rawHeaders[i].toLowerCase(),a=t.rawHeaders[i+1];n[s]=a}let r=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:r.pathname,query:ky(r.search,"?"),headers:n,method:t.method?.toUpperCase()??"GET"}}function ky(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function Sy(t){return new Promise((e,n)=>{if(t.method!=="POST"&&t.method!=="PUT"&&t.method!=="PATCH")return e(void 0);let r="";t.on("data",i=>r+=i.toString()),t.on("error",i=>n(i)),t.on("end",()=>e(r))})}function Oy(t){zi.info(`Listening on port ${t}`)}var Cr=require("@botpress/client");var N={};nt(N,{mapKeys:()=>Zy,mapValues:()=>Iy,mergeRecords:()=>Ay,pairs:()=>_r,stripUndefinedProps:()=>By,values:()=>Ey});var _r=t=>Object.entries(t),Ey=t=>Object.values(t),Iy=(t,e)=>Object.fromEntries(_r(t).map(([n,r])=>[n,e(r,n)])),Zy=(t,e)=>Object.fromEntries(_r(t).map(([n,r])=>[e(n),r])),By=t=>Object.fromEntries(_r(t).filter(([,e])=>e!==void 0)),Ay=(t,e,n)=>{let r=[...Object.keys(t),...Object.keys(e)],i=[...new Set(r)],s={};for(let a of i){let o=t[a],c=e[a];o&&c?s[a]=n(o,c):o?s[a]=o:c&&(s[a]=c)}return s};var O={};nt(O,{safePush:()=>Cy,unique:()=>Ry});var Cy=(t,...e)=>t?[...t,...e]:[...e],Ry=t=>Array.from(new Set(t));var Y={};nt(Y,{setName:()=>Dy});var Dy=(t,e)=>(Object.defineProperty(t,"name",{value:e}),t);var td=t=>{let{name:e,version:n}=t,r={actions:{},events:{},channels:{}},i={name:e,version:n,entities:N.mapValues(t.entities,a=>({name:a.name})),actions:{},events:{},channels:{}},s=N.mapValues(t.entities,a=>a.schema);for(let[a,o]of Object.entries(t.definition.actions??{})){let c=o.input.schema.dereference(s),d=o.output.schema.dereference(s),g=t.actions?.[a]?.name??a;r.actions[g]={...o,...t.actions?.[a]??{},input:{schema:c},output:{schema:d}},i.actions[a]={name:g}}for(let[a,o]of Object.entries(t.definition.events??{})){let c=o.schema.dereference(s),d=t.events?.[a]?.name??a;r.events[d]={...o,...t.events?.[a]??{},schema:c},i.events[a]={name:d}}for(let[a,o]of Object.entries(t.definition.channels??{})){let c={};for(let[g,m]of Object.entries(o.messages)){let T=m.schema.dereference(s);c[g]={...m,schema:T}}let d=t.channels?.[a]?.name??a;r.channels[d]={...o,...t.channels?.[a]??{},message:{...o.message??{},tags:{...o.message?.tags??{},...t.channels?.[a]?.message?.tags??{}}},conversation:{...o.conversation??{},tags:{...o.conversation?.tags??{},...t.channels?.[a]?.conversation?.tags??{}}},messages:c},i.channels[a]={name:d}}return{resolved:r,statement:i}};var nd="5.2.0";var Ce=nd;var Tr=Symbol("schemaName"),rd=t=>t?N.mapValues(t,(n,r)=>({...n,[Tr]:r})):{},id=t=>Tr in t&&t[Tr]!==void 0,sd=t=>t[Tr];var br=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:Ce}}extend(e,n){let{entities:r,actions:i,events:s,channels:a}=this._callBuilder(e,n),o=this;o.interfaces??={};let c=Object.values(r).map(T=>T.name),d=c.length===0?e.name:`${e.name}<${c.join(",")}>`,{resolved:g,statement:m}=td({...e,entities:r,actions:N.stripUndefinedProps(i),events:N.stripUndefinedProps(s),channels:N.stripUndefinedProps(a)});return o.actions=N.mergeRecords(o.actions??{},g.actions,this._mergeActions),o.channels=N.mergeRecords(o.channels??{},g.channels,this._mergeChannels),o.events=N.mergeRecords(o.events??{},g.events,this._mergeEvents),o.interfaces[d]={id:e.id,...m},this}_callBuilder(e,n){let i={entities:rd(this.entities)},s=n(i),a=N.pairs(s.entities).find(([c,d])=>!id(d));if(a)throw new Error(`Cannot extend interface "${e.name}" with entity "${a[0]}"; the provided schema is not part of the integration's entities.`);return{entities:N.mapValues(s.entities,c=>({name:sd(c),schema:c.schema})),actions:s.actions??{},events:s.events??{},channels:s.channels??{}}}_mergeActions=(e,n)=>({...e,...n,input:{schema:vt(e.input.schema,n.input.schema)},output:{schema:vt(e.output.schema,n.output.schema)}});_mergeEvents=(e,n)=>({...e,...n,schema:vt(e.schema,n.schema)});_mergeChannels=(e,n)=>{let r=N.mergeRecords(e.messages,n.messages,this._mergeMessage),i;(e.conversation||n.conversation)&&(i={tags:{...e.conversation?.tags,...n.conversation?.tags}});let s;return(e.message||n.message)&&(s={tags:{...e.message?.tags,...n.message?.tags}}),{...e,...n,messages:r,conversation:i,message:s}};_mergeMessage=(e,n)=>({schema:vt(e.schema,n.schema)})};var Oe=require("@botpress/client");var ad=Dr(require("@botpress/client")),wr={retries:3,retryCondition:t=>ad.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:(t,e)=>(Ny(e.response?.headers??{})??t)*1e3},Ny=t=>{let e=["RateLimit-Reset","X-RateLimit-Reset","Retry-After","ratelimit-reset","x-ratelimit-reset","retry-after"];for(let n of e){let r=t[n];if(r!==void 0)return My(String(r))}},My=t=>{let e=$y(t)?jy(t):t.length>0?parseInt(t,10):void 0;return e===void 0||isNaN(e)?void 0:e},$y=t=>t.includes(" "),jy=t=>{let e=Ky(t);if(!e)return;let n=new Date;return Math.max(0,Math.floor((e.getTime()-n.getTime())/1e3))},Ky=t=>{let e=new Date(t);return isNaN(e.getTime())?void 0:e};var _t=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(n=>n));updateMessage=(e=>this._client.updateMessage(e).then(n=>n));listMessages=(e=>this._client.listMessages(e));deleteMessage=(e=>this._client.deleteMessage(e));initializeIncomingMessage=(e=>this._client.initializeIncomingMessage(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 Pr=class{_cost=0;get cost(){return this._cost}setCost(e){this._cost=e}toJSON(){return{cost:this.cost}}};var fe="#",xr="x-bot-id",od="x-bot-user-id",ld="x-integration-id",cd="x-integration-alias",ud="x-webhook-id",dd="x-bp-configuration-type",kr="x-bp-configuration",Sr="x-bp-operation",pd="x-bp-type";var ue=t=>{throw t instanceof Error?t:new Error(t)};var g_=y.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),fd=t=>({botId:t[xr]||ue("Missing bot header"),botUserId:t[od]||ue("Missing bot user header"),integrationId:t[ld]||ue("Missing integration header"),integrationAlias:t[cd]||ue("Missing integration alias header"),webhookId:t[ud]||ue("Missing webhook header"),operation:t[Sr]||ue("Missing operation header"),configurationType:t[dd]??null,configuration:JSON.parse(Buffer.from(t[kr]||ue("Missing configuration header"),"base64").toString("utf-8"))});var gd=Dr(require("util")),Tt=class{defaultOptions;constructor(e){this.defaultOptions=e}info(...e){this._log("info",e)}debug(...e){this._log("debug",e)}warn(...e){this._log("warn",e)}error(...e){this._log("error",e)}_log(e,n){this._getConsoleMethod(e)(this._serializeMessage(n))}_serializeMessage(e){let n=gd.default.format(...e);return process.env.BP_LOG_FORMAT==="json"?this.getJsonMessage(n):n}getJsonMessage(e){return JSON.stringify({msg:e,options:this.defaultOptions})}_getConsoleMethod(e){switch(e){case"debug":return console.debug;case"warn":return console.warn;case"error":return console.error;default:return console.info}}};var bt=class t extends Tt{constructor(e){super({visibleToBotOwners:!1,hiddenToIntegrationOwners:!1,...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})}withHiddenToIntegrationOwners(e){return this.with({hiddenToIntegrationOwners:e})}forBot(){return this.with({hiddenToIntegrationOwners:!1,visibleToBotOwners:!0})}forBotOnly(){return this.with({hiddenToIntegrationOwners:!0,visibleToBotOwners:!0})}getJsonMessage(e){return JSON.stringify({msg:e,visible_to_bot_owner:this.defaultOptions.visibleToBotOwners,hidden_to_integration_owner:this.defaultOptions.hiddenToIntegrationOwners,options:this.defaultOptions})}};var Uy=t=>["traceparent","tracestate","sentry-trace"].reduce((e,n)=>(t[n]&&(e[n]=t[n]),e),{}),Fy=(t,e,n)=>{let[,r]=(e.headers.traceparent||"").split("-"),i=new Oe.Client({botId:t.botId,integrationId:t.integrationId,integrationAlias:t.integrationAlias,retry:wr,headers:Uy(e.headers)}),s=new _t(i),a=new bt({traceId:r});return{ctx:t,req:e,client:s,logger:a,instance:n}},zy=async t=>{let{ctx:e}=t;switch(e.operation){case"webhook_received":return await Ly(t);case"register":return await Vy(t);case"unregister":return await qy(t);case"message_created":return await Yy(t);case"action_triggered":return await Xy(t);case"ping":return await Wy(t);case"create_user":return await Gy(t);case"create_conversation":return await Jy(t);default:throw new Oe.InvalidPayloadError(`Unknown operation ${e.operation}`)}},md=t=>async e=>{let n=fd(e.headers),r=Fy(n,e,t),{logger:i}=r;try{let s;return s=await Qy(r),s?{...s,status:s.status??200}:(s=await zy(r),s?{...s,status:s.status??200}:{status:200})}catch(s){if((0,Oe.isApiError)(s)){let o=s.type==="Runtime"?s:new Oe.RuntimeError(s.message,s);return i.forBot().error(o.message),{status:o.code,body:JSON.stringify(o.toJSON())}}console.error(s);let a=new Oe.RuntimeError("An unexpected error occurred in the integration. Bot owners: Check logs for more informations. Integration owners: throw a RuntimeError to return a custom error message instead.");return i.forBot().error(a.message),{status:a.code,body:JSON.stringify(a.toJSON())}}},Wy=async t=>{},Ly=async({client:t,ctx:e,req:n,logger:r,instance:i})=>{let{req:s}=ce(n);return i.webhook({client:t,ctx:e,req:s,logger:r})},Vy=async({client:t,ctx:e,req:n,logger:r,instance:i})=>{if(!i.register)return;let{webhookUrl:s}=ce(n);await i.register({client:t,ctx:e,webhookUrl:s,logger:r})},qy=async({client:t,ctx:e,req:n,logger:r,instance:i})=>{if(!i.unregister)return;let{webhookUrl:s}=ce(n);await i.unregister({ctx:e,webhookUrl:s,client:t,logger:r})},Gy=async({client:t,ctx:e,req:n,logger:r,instance:i})=>{if(!i.createUser)return;let{tags:s}=ce(n);return await i.createUser({ctx:e,client:t,tags:s,logger:r})},Jy=async({client:t,ctx:e,req:n,logger:r,instance:i})=>{if(!i.createConversation)return;let{channel:s,tags:a}=ce(n);return await i.createConversation({ctx:e,client:t,channel:s,tags:a,logger:r})},Yy=async({ctx:t,req:e,client:n,logger:r,instance:i})=>{let{conversation:s,user:a,type:o,payload:c,message:d}=ce(e),g=i.channels[s.channel];if(!g)throw new Error(`Channel ${s.channel} not found`);let m=g.messages[o];if(!m)throw new Error(`Message of type ${o} not found in channel ${s.channel}`);await m({ctx:t,conversation:s,message:d,user:a,type:o,client:n,payload:c,ack:async({tags:I})=>{await n.updateMessage({id:d.id,tags:I})},logger:r})},Xy=async({req:t,ctx:e,client:n,logger:r,instance:i})=>{let{input:s,type:a}=ce(t);if(!a)throw new Error("Missing action type");let o=i.actions[a];if(!o)throw new Error(`Action ${a} not found`);let c=new Pr,g={output:await o({ctx:e,input:s,client:n,type:a,logger:r,metadata:c}),meta:c.toJSON()};return{body:JSON.stringify(g)}},Qy=async({instance:t,client:e,ctx:n,logger:r,req:i})=>{let s=t.unknownOperationHandler;if(s)return await s({client:e,ctx:n,logger:r,req:i})};var Or=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=md(this);start=e=>Qt(this.handler,e)};var Er=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:Ce}}addIntegration(e,n){let r=this;r.integrations||(r.integrations={});let i=n?.alias??e.name;if(r.integrations[i])throw new Error(`Another integration with alias "${i}" is already installed in the bot`);return r.integrations[i]={...e,alias:i,enabled:n?.enabled,configurationType:n&&"configurationType"in n?n.configurationType:void 0,configuration:n&&"configuration"in n?n.configuration??{}:{},disabledChannels:n?.disabledChannels},this}addPlugin(e,n){let r=this;r.plugins||(r.plugins={});let i=n.alias??e.name;if(r.plugins[i])throw new Error(`Another plugin with alias "${i}" is already installed in the bot`);let s=Object.fromEntries(Object.entries(n.dependencies??{}).filter(([o,c])=>"integrationInterfaceAlias"in c).map(([o,c])=>{let d=this.integrations?.[c.integrationAlias];if(!d){let m=Object.keys(this.integrations??{}).join(", ")||"(none)";throw new Error(`Interface with alias "${o}" of plugin with alias "${i}" references integration with alias "${c.integrationAlias}" which is not installed. Please make sure to add the integration via addIntegration() before calling addPlugin().
|
|
73
73
|
Available integration aliases: ${m}`)}let g=d.definition.interfaces?.[c.integrationInterfaceAlias];if(!g){let m=Object.keys(d.definition.interfaces??{}).join(", ")||"(none)";throw new Error(`Interface with alias "${c.integrationInterfaceAlias}" does not exist in integration "${d.name}" referenced by interface with alias "${o}" of plugin with alias "${i}".
|
|
74
74
|
Available interface aliases: ${m}`)}return[o,{...g,id:d.id,name:d.name,version:d.version,...c}]})),a=Object.fromEntries(Object.entries(n.dependencies??{}).filter(([o,c])=>!("integrationInterfaceAlias"in c)).map(([o,c])=>{let d=this.integrations?.[c.integrationAlias];if(!d){let g=Object.keys(this.integrations??{}).join(", ")||"(none)";throw new Error(`Integration with alias "${o}" of plugin with alias "${i}" references integration with alias "${c.integrationAlias}" which is not installed. Please make sure to add the integration via addIntegration() before calling addPlugin().
|
|
75
75
|
Available integration aliases: ${g}`)}return[o,{...d,...c}]}));return r.plugins[i]={...e,alias:i,configuration:n.configuration??{},interfaces:s,integrations:a},r.withPlugins.user=this._mergeUser(r.withPlugins.user,e.definition.user),r.withPlugins.conversation=this._mergeConversation(r.withPlugins.conversation,e.definition.conversation),r.withPlugins.message=this._mergeMessage(r.withPlugins.message,e.definition.message),r.withPlugins.recurringEvents=this._mergeRecurringEvents(r.withPlugins.recurringEvents,e.definition.recurringEvents),r.withPlugins.tables=this._mergeTables(r.withPlugins.tables,e.definition.tables),r.withPlugins.workflows=this._mergeWorkflows(r.withPlugins.workflows,e.definition.workflows),r.withPlugins.states=this._mergeStates(r.withPlugins.states,this._prefixKeysWithPluginAlias(e.definition.states,i)),r.withPlugins.events=this._mergeEvents(r.withPlugins.events,this._prefixKeysWithPluginAlias(e.definition.events,i)),r.withPlugins.actions=this._mergeActions(r.withPlugins.actions,this._prefixKeysWithPluginAlias(e.definition.actions,i)),this}_mergeUser=(e,n)=>({tags:{...e?.tags,...n?.tags}});_mergeConversation=(e,n)=>({tags:{...e?.tags,...n?.tags}});_mergeMessage=(e,n)=>({tags:{...e?.tags,...n?.tags}});_mergeStates=(e,n)=>({...e,...n});_mergeEvents=(e,n)=>({...e,...n});_mergeRecurringEvents=(e,n)=>({...e,...n});_mergeActions=(e,n)=>({...e,...n});_mergeTables=(e,n)=>({...e,...n});_mergeWorkflows=(e,n)=>({...e,...n});_prefixKeysWithPluginAlias=(e,n)=>N.mapKeys(e??{},r=>`${n}${fe}${r}`);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(([n,r])=>[n,{...r,definition:{...r.definition,configuration:this._dereferenceDefinitionSchema(r.definition.configuration,e),events:this._dereferenceDefinitionSchemas(r.definition.events,e),states:this._dereferenceDefinitionSchemas(r.definition.states,e),tables:this._dereferenceDefinitionSchemas(r.definition.tables,e),actions:this._dereferenceActionDefinitionSchemas(r.definition.actions,e)}}]))}}_buildZuiReferenceMap(){let e={},n=Object.entries(this.plugins??{});for(let[r,i]of n){let s=Object.entries(i.interfaces??{});for(let[a,o]of s){let c=this.integrations?.[o.integrationAlias];if(!c)throw new Error(`Interface with alias "${a}" of plugin with alias "${r}" references integration "${o.name}" which is not installed`);let d=Object.entries(o.entities??{});for(let[g,{name:m}]of d){let T=c.definition.entities?.[m]?.schema;if(!T)throw new Error(`Interface entity "${m}" does not exist in integration "${c.name}"`);e[`interface:${a}/entities/${g}`]=T}}}return e}_dereferenceZuiSchema(e,n){return e.dereference(n)}_dereferenceDefinitionSchemas(e,n){return Object.fromEntries(Object.entries(e??{}).map(([r,i])=>[r,this._dereferenceDefinitionSchema(i,n)]))}_dereferenceDefinitionSchema(e,n){return e&&{...e,schema:this._dereferenceZuiSchema(e.schema,n)}}_dereferenceActionDefinitionSchemas(e,n){return Object.fromEntries(Object.entries(e??{}).map(([r,i])=>[r,{...i,input:{schema:this._dereferenceZuiSchema(i.input.schema,n)},output:{schema:this._dereferenceZuiSchema(i.output.schema,n)}}]))}};var tt=require("@botpress/client");var wt=class t extends Tt{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 ye=class{constructor(e,n={before:{},after:{}}){this._client=e;this._hooks=n}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,n)=>{let r=this._hooks.before[e];r&&(n=await r(n));let i=await this._client[e](n),s=this._hooks.after[e];return s&&(i=await s(i,n)),i}};var ev=y.enum(["event_received","register","unregister","ping","action_triggered"]),hd=t=>({botId:t[xr]||ue("Missing bot id header"),operation:ev.parse(t[Sr]),type:t[pd]||ue("Missing type header"),configuration:JSON.parse(Buffer.from(t[kr]||ue("Missing configuration header"),"base64").toString("utf-8"))});var X={status:200};var Li=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 tv=["child_workflow_deleted","child_workflow_finished","workflow_timedout","workflow_started","workflow_continued"],yd=async(t,e)=>{if(t.ctx.type!=="workflow_update"||!tv.includes(e.payload.type))throw new Error("Unexpected event type");let n={...t,logger:nv(t,e)};if(!e.payload.workflow.name)return n.logger.warn("Received workflow update event without a workflow name. Assuming this workflow was not defined by the bot.",e.payload.workflow),X;switch(e.payload.type){case"child_workflow_deleted":case"child_workflow_finished":n.logger.info(`Received child workflow event "${e.payload.type}", but child workflows are not yet supported`);break;case"workflow_timedout":case"workflow_started":case"workflow_continued":return await rv(n,e);default:e.payload.type}return X},nv=(t,e)=>t.logger.with({eventId:e.id,workflowId:e.payload.workflow.id,conversationId:e.payload.conversation?.id,userId:e.payload.user?.id}),rv=async(t,e)=>{let n=Li(e.payload.type),r=t.self.workflowHandlers[n]?.[e.payload.workflow.name];if(!r||r.length===0)return t.logger.warn(`No ${n} handler found for workflow "${e.payload.workflow.name}"`),X;let{updatedWorkflow:i}=await iv(t,e);return i.status==="pending"&&t.logger.warn(`Workflow "${e.payload.workflow.name}" is still in pending status after processing "${n}" event. This may indicate that the workflow was not properly acknowledged or terminated by the handler. `),X},iv=async(t,e)=>{let n=Li(e.payload.type),r=t.self.workflowHandlers[n]?.[e.payload.workflow.name],i=structuredClone(e.payload.workflow);for(let s of r??[])i=await s({...t,event:e,conversation:e.payload.conversation,user:e.payload.user,workflow:i});return{updatedWorkflow:i}};var vd=t=>async e=>{let n=hd(e.headers),r=new wt,i=new tt.Client({botId:n.botId,retry:wr}),s=new ye(i,{before:{createMessage:async o=>{let c=t.hookHandlers.before_outgoing_message[o.type]??[];for(let d of c){let g=new ye(i);o=(await d({client:g,ctx:n,logger:r.with({conversationId:o.conversationId,userId:o.userId}),data:o}))?.data??o}return o},callAction:async o=>{let c=t.hookHandlers.before_outgoing_call_action[o.type]??[];for(let d of c){let g=new ye(i);o=(await d({client:g,ctx:n,logger:r,data:o}))?.data??o}return o}},after:{createMessage:async o=>{let c=t.hookHandlers.after_outgoing_message[o.message.type]??[];for(let d of c){let g=new ye(i);o=(await d({client:g,ctx:n,logger:r.with({messageId:o.message.id,conversationId:o.message.conversationId,userId:o.message.userId}),data:o}))?.data??o}return o},callAction:async(o,c)=>{let{type:d}=c,g=t.hookHandlers.after_outgoing_call_action[d]??[];for(let m of g){let T=new ye(i);o=(await m({client:T,ctx:n,logger:r,data:{type:d,...o}}))?.data??o}return o}}}),a={req:e,ctx:n,logger:r,client:s,self:t};try{switch(n.operation){case"action_triggered":return await cv(a);case"event_received":return await lv(a);case"register":return await av(a);case"unregister":return await ov(a);case"ping":return await sv(a);default:throw new Error(`Unknown operation ${n.operation}`)}}catch(o){let c=o instanceof Error?o:new Error(String(o));if((0,tt.isApiError)(c)){let g=c.type==="Runtime"?c:new tt.RuntimeError(c.message,c);return r.error(g.message),{status:g.code,body:JSON.stringify(g.toJSON())}}let d=new tt.RuntimeError("An unexpected error occurred in the bot.",c);return r.error(d.message,c),{status:d.code,body:JSON.stringify(d.toJSON())}}},sv=async t=>X,av=async t=>(await t.self.registerHandler?.({client:t.client,ctx:t.ctx,logger:t.logger}),X),ov=async t=>X,lv=async t=>{let{ctx:e,logger:n,req:r,client:i,self:s}=t,a={client:i,ctx:e,logger:n},o=ce(r);if(a.logger=a.logger.with({eventId:o.event.id,messageId:o.event.messageId,conversationId:o.event.conversationId,userId:o.event.userId}),e.type==="workflow_update")return await yd(t,o.event);if(e.type==="message_created"){let I=o.event,k=I.payload.message;a.logger=a.logger.with({messageId:k.id,conversationId:k.conversationId,userId:k.userId});let K=s.hookHandlers.before_incoming_message[k.type]??[];for(let me of K){let oe=await me({...a,data:k});if(k=oe?.data??k,oe?.stop)return X}let W={...a,user:I.payload.user,conversation:I.payload.conversation,message:k,event:I},Q=s.messageHandlers[k.type]??[];for(let me of Q)await me(W);let ae=s.hookHandlers.after_incoming_message[k.type]??[];for(let me of ae){let oe=await me({...a,data:k});if(k=oe?.data??k,oe?.stop)return X}return X}if(e.type==="state_expired"){let k=o.event.payload.state,K={...a,state:k},W=s.stateExpiredHandlers[k.name]??[];for(let Q of W)await Q(K);return X}let c=o.event,d=s.hookHandlers.before_incoming_event[c.type]??[];for(let I of d){let k=await I({...a,data:c});if(c=k?.data??c,k?.stop)return X}let g={...a,event:c},m=s.eventHandlers[c.type]??[];for(let I of m)await I(g);let T=s.hookHandlers.after_incoming_event[c.type]??[];for(let I of T){let k=await I({...a,data:c});if(c=k?.data??c,k?.stop)return X}return X},cv=async({ctx:t,logger:e,req:n,client:r,self:i})=>{let{input:s,type:a}=ce(n);if(!a)throw new Error("Missing action type");let o=i.hookHandlers.before_incoming_call_action[a]??[];for(let T of o){let I=await T({ctx:t,logger:e,client:r,data:{type:a,input:s}});s=I?.data?.input??s,a=I?.data?.type??a}let c=i.actionHandlers[a];if(!c)throw new Error(`Action ${a} not found`);let d=await c({ctx:t,logger:e,input:s,client:r,type:a}),g=i.hookHandlers.after_incoming_call_action[a]??[];for(let T of g){let I=await T({ctx:t,logger:e,client:r,data:{type:a,output:d}});a=I?.data?.type??a,d=I?.data?.output??d}return{status:200,body:JSON.stringify({output:d})}};var ve=(t,{alias:e})=>{if(!("tags"in t)||!e)return t;let n=`${e}${fe}`,r=Object.fromEntries(Object.entries(t.tags??{}).flatMap(([i,s])=>i.startsWith(n)?[[i.slice(n.length),s]]:[]));return{...t,tags:r}},ie=(t,{alias:e})=>{if(!("tags"in t)||!e)return t;let n=`${e}${fe}`,r=Object.fromEntries(Object.entries(t.tags??{}).map(([i,s])=>[i.startsWith(n)?i:`${n}${i}`,s]));return{...t,tags:r}};var Vi=class{constructor(e){this._list=e}_nextToken;_elementsBuffer=[];_isExhausted=!1;[Symbol.asyncIterator](){return this}async next(){return this._bufferIsEmpty&&!this._isExhausted&&await this._fetchNextPageIntoBuffer(),this._bufferIsEmpty?{done:!0,value:void 0}:{done:!1,value:this._elementsBuffer.shift()}}async take(e){let n=[];for(let r=0;r<e;++r){let i=await this.next();if(i.done)break;n.push(i.value)}return n}async takePage(e){for(let r=0;r<e;++r)this._isExhausted||await this._fetchNextPageIntoBuffer();let n=[...this._elementsBuffer];return this._elementsBuffer.length=0,n}async takeAll(){return this.take(Number.POSITIVE_INFINITY)}get isExhausted(){return this._isExhausted}async _fetchNextPageIntoBuffer(){let{items:e,meta:n}=await this._list({nextToken:this._nextToken});this._elementsBuffer.push(...e),this._nextToken=n.nextToken,n.nextToken||(this._isExhausted=!0)}get _bufferIsEmpty(){return this._elementsBuffer.length===0}},de=t=>new Vi(t);var Ee=t=>new Proxy({},{get:(e,n)=>({listInstances:r=>de(({nextToken:i})=>t.client.listWorkflows({...r,name:n,nextToken:i}).then(({meta:s,workflows:a})=>({meta:s,items:a.map(o=>pe({...t,workflow:o}))}))),startNewInstance:async r=>{let{workflow:i}=await t.client.createWorkflow({name:n,status:"pending",...ie(r,{alias:void 0})});return{workflow:pe({...t,workflow:i})}}})}),pe=t=>{let e=!1;return{...ve(t.workflow,{alias:void 0}),async update(n){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,...ie(n,{alias:void 0})});return await t.onWorkflowUpdate?.(r),{workflow:pe({...t,workflow:r})}},async acknowledgeStartOfProcessing(){if(!t.event||t.workflow.status!=="pending"||e)return{workflow:pe(t)};let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,status:"in_progress",eventId:t.event.id});return e=!0,await t.onWorkflowUpdate?.(n),{workflow:pe({...t,workflow:n})}},async setFailed({failureReason:n}){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,status:"failed",failureReason:n});return await t.onWorkflowUpdate?.(r),{workflow:pe({...t,workflow:r})}},async setCompleted({output:n}={}){let{workflow:r}=await t.client.updateWorkflow({id:t.workflow.id,status:"completed",output:n});return await t.onWorkflowUpdate?.(r),{workflow:pe({...t,workflow:r})}},async cancel(){let{workflow:n}=await t.client.updateWorkflow({id:t.workflow.id,status:"cancelled"});return await t.onWorkflowUpdate?.(n),{workflow:pe({...t,workflow:n})}}}};var Ir=class{constructor(e){this.props=e;this._registerHandler=e.register,this._actionHandlers=e.actions,this._plugins=e.plugins}_registerHandler;_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 registerHandler(){return this._registerHandler}get actionHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._actionHandlers[n];if(r)return Y.setName(i=>r({...i,workflows:Ee(i)}),r.name);for(let[i,s]of Object.entries(this._plugins)){let[a,o]=n.split(fe);if(!(a!==i||!o))return s.actionHandlers[o]}}})}get messageHandlers(){return new Proxy({},{get:(e,n)=>{let r=Object.values(this._plugins).flatMap(o=>o.messageHandlers[n]??[]),i=n==="*"?[]:this._messageHandlers[n]??[],s=this._messageHandlers["*"]??[],a=[...i,...s].sort((o,c)=>o.order-c.order).map(({handler:o})=>Y.setName(c=>o({...c,workflows:Ee(c)}),o.name));return O.unique([...r,...a])}})}get eventHandlers(){return new Proxy({},{get:(e,n)=>{let r=Object.values(this._plugins).flatMap(o=>o.eventHandlers[n]??[]),i=n==="*"?[]:this._eventHandlers[n]??[],s=this._eventHandlers["*"]??[],a=[...i,...s].sort((o,c)=>o.order-c.order).map(({handler:o})=>Y.setName(c=>o({...c,workflows:Ee(c)}),o.name));return O.unique([...r,...a])}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,n)=>{let r=Object.values(this._plugins).flatMap(o=>o.stateExpiredHandlers[n]??[]),i=n==="*"?[]:this._stateExpiredHandlers[n]??[],s=this._stateExpiredHandlers["*"]??[],a=[...i,...s].sort((o,c)=>o.order-c.order).map(({handler:o})=>Y.setName(c=>o({...c,workflows:Ee(c)}),o.name));return O.unique([...r,...a])}})}get hookHandlers(){return new Proxy({},{get:(e,n)=>{if(this._hookHandlers[n])return new Proxy({},{get:(i,s)=>{let a=Object.values(this._plugins).flatMap(m=>m.hookHandlers[n]?.[s]??[]),o=this._hookHandlers[n]??{},c=s==="*"?[]:o[s]??[],d=o["*"]??[],g=[...c,...d].sort((m,T)=>m.order-T.order).map(({handler:m})=>Y.setName(T=>m({...T,workflows:Ee(T)}),m.name));return O.unique([...a,...g])}})}})}get workflowHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._workflowHandlers[n];if(r)return new Proxy({},{get:(i,s)=>{let a=r[s]?.sort((c,d)=>c.order-d.order).map(({handler:c})=>Y.setName(async d=>{let g=d.workflow;return await c({...d,workflow:pe({...d,onWorkflowUpdate(m){g=m}}),workflows:Ee(d)}),g},c.name))??[],o=Object.values(this._plugins).flatMap(c=>c.workflowHandlers[n]?.[s]??[]);return O.unique([...a,...o])}})}})}on={message:(e,n)=>{this._messageHandlers[e]=O.safePush(this._messageHandlers[e],{handler:n,order:this._registerOrder++})},event:(e,n)=>{this._eventHandlers[e]=O.safePush(this._eventHandlers[e],{handler:n,order:this._registerOrder++})},stateExpired:(e,n)=>{this._stateExpiredHandlers[e]=O.safePush(this._stateExpiredHandlers[e],{handler:n,order:this._registerOrder++})},beforeIncomingEvent:(e,n)=>{this._hookHandlers.before_incoming_event[e]=O.safePush(this._hookHandlers.before_incoming_event[e],{handler:n,order:this._registerOrder++})},beforeIncomingMessage:(e,n)=>{this._hookHandlers.before_incoming_message[e]=O.safePush(this._hookHandlers.before_incoming_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingMessage:(e,n)=>{this._hookHandlers.before_outgoing_message[e]=O.safePush(this._hookHandlers.before_outgoing_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingCallAction:(e,n)=>{this._hookHandlers.before_outgoing_call_action[e]=O.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},beforeIncomingCallAction:(e,n)=>{this._hookHandlers.before_incoming_call_action[e]=O.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingEvent:(e,n)=>{this._hookHandlers.after_incoming_event[e]=O.safePush(this._hookHandlers.after_incoming_event[e],{handler:n,order:this._registerOrder++})},afterIncomingMessage:(e,n)=>{this._hookHandlers.after_incoming_message[e]=O.safePush(this._hookHandlers.after_incoming_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingMessage:(e,n)=>{this._hookHandlers.after_outgoing_message[e]=O.safePush(this._hookHandlers.after_outgoing_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingCallAction:(e,n)=>{this._hookHandlers.after_outgoing_call_action[e]=O.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingCallAction:(e,n)=>{this._hookHandlers.after_incoming_call_action[e]=O.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:n,order:this._registerOrder++})},workflowStart:(e,n)=>{this._workflowHandlers.started[e]=O.safePush(this._workflowHandlers.started[e],{handler:n,order:this._registerOrder++})},workflowContinue:(e,n)=>{this._workflowHandlers.continued[e]=O.safePush(this._workflowHandlers.continued[e],{handler:n,order:this._registerOrder++})},workflowTimeout:(e,n)=>{this._workflowHandlers.timed_out[e]=O.safePush(this._workflowHandlers.timed_out[e],{handler:n,order:this._registerOrder++})}};handler=vd(this);start=e=>Qt(this.handler,e)};var Zr=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 n=this._getEntityReference(this.entities),r=e.events===void 0?{}:N.mapValues(e.events,a=>({...a,schema:a.schema(n)})),i=e.actions===void 0?{}:N.mapValues(e.actions,a=>({...a,input:{...a.input,schema:a.input.schema(n)},output:{...a.output,schema:a.output.schema(n)}})),s=e.channels===void 0?{}:N.mapValues(e.channels,a=>({...a,messages:N.mapValues(a.messages,o=>({...o,schema:o.schema(n)}))}));this.events=r,this.actions=i,this.channels=s}name;version;title;description;icon;readme;attributes;entities;events;actions;channels;__advanced;get metadata(){return{sdkVersion:Ce}}_getEntityReference=e=>{let n={};for(let[r,i]of Object.entries(e)){let s=i.schema._def["x-zui"]?.title,a=i.schema._def.description,o=Fu.ref(r);s&&o.title(s),a&&o.describe(a),n[r]=o}return n}};var Br=class{constructor(e){this.props=e;let n=Object.fromEntries(Object.entries(e.interfaces??{}).map(([i,s])=>[i,Object.fromEntries(Object.entries(s.definition.entities??{}).map(([a])=>[a,y.ref(`interface:${i}/entities/${a}`)]))]));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;let r=new Set;for(let i of[...Object.keys(e.integrations??{}),...Object.keys(e.interfaces??{})]){if(r.has(i))throw new Error(`Duplicate interface or integration alias detected in plugin definition: '${i}'. Please use unique aliases for each interface and integration.`);r.add(i)}this.configuration=e.configuration?{...e.configuration,schema:typeof e.configuration.schema=="object"?e.configuration.schema:e.configuration.schema({entities:n})}:void 0,this.states=Object.fromEntries(Object.entries(e.states??{}).map(([i,s])=>[i,{...s,schema:typeof s.schema=="object"?s.schema:s.schema({entities:n})}])),this.events=Object.fromEntries(Object.entries(e.events??{}).map(([i,s])=>[i,{...s,schema:typeof s.schema=="object"?s.schema:s.schema({entities:n})}])),this.actions=Object.fromEntries(Object.entries(e.actions??{}).map(([i,s])=>[i,{...s,input:{...s.input,schema:typeof s.input.schema=="object"?s.input.schema:s.input.schema({entities:n})},output:{...s.output,schema:typeof s.output.schema=="object"?s.output.schema:s.output.schema({entities:n})}}])),this.tables=Object.fromEntries(Object.entries(e.tables??{}).map(([i,s])=>[i,{...s,schema:typeof s.schema=="object"?s.schema:s.schema({entities:n})}]))}name;version;title;description;icon;readme;attributes;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;workflows;__advanced;get metadata(){return{sdkVersion:Ce}}dereferenceEntities({intersectWithUnknownRecord:e}={intersectWithUnknownRecord:!0}){let n=this._buildZuiReferenceMap(e);return{...this,configuration:this.configuration?{...this.configuration,schema:this._dereferenceZuiSchema(this.configuration.schema,n)}:void 0,events:this._dereferenceDefinitionSchemas(this.events,n),states:this._dereferenceDefinitionSchemas(this.states,n),tables:this._dereferenceDefinitionSchemas(this.tables,n),actions:this._dereferenceActionDefinitionSchemas(this.actions,n)}}_buildZuiReferenceMap(e){return Object.fromEntries(Object.entries(this.interfaces??{}).flatMap(([n,r])=>Object.entries(r.definition.entities??{}).map(([i,s])=>[`interface:${n}/entities/${i}`,e?s.schema.and(y.record(y.string(),y.unknown())):s.schema])))}_dereferenceZuiSchema(e,n){return e.dereference(n)}_dereferenceDefinitionSchemas(e,n){return Object.fromEntries(Object.entries(e??{}).map(([r,i])=>[r,{...i,schema:this._dereferenceZuiSchema(i.schema,n)}]))}_dereferenceActionDefinitionSchemas(e,n){return Object.fromEntries(Object.entries(e??{}).map(([r,i])=>[r,{...i,input:{schema:this._dereferenceZuiSchema(i.input.schema,n)},output:{schema:this._dereferenceZuiSchema(i.output.schema,n)}}]))}};var _d=(t,e)=>new Proxy({},{get:(n,r)=>new Proxy({},{get:(i,s)=>a=>{let o=(e.integrations[r]??e.interfaces[r])?.integrationAlias,c=e.interfaces[r]?.actions?.[s]?.name??s;return t.callAction({type:`${o}:${c}`,input:a}).then(d=>d.output)}})});var qi=t=>({async getById({id:e}){let n=await t.client.getMessage({id:e});return ge({...t,message:n.message})},list(e){return de(({nextToken:n})=>t.client.listMessages({...ie(e??{},{alias:t.plugin?.alias}),nextToken:n}).then(({meta:r,messages:i})=>({meta:r,items:i.map(s=>ge({...t,message:s}))})))}}),ge=t=>({...ve(t.message,{alias:t.plugin?.alias}),async delete(){await t.client.deleteMessage({id:t.message.id})},async update(e){let{message:n}=await t.client.updateMessage({...ie(e,{alias:t.plugin?.alias}),id:t.message.id});return ge({...t,message:n})}});var Gi=t=>({list(e){return de(({nextToken:n})=>t.client.listUsers({...ie(e??{},{alias:t.pluginAlias}),nextToken:n}).then(({meta:r,users:i})=>({meta:r,items:i.map(s=>_e({...t,conversationId:e?.conversationId,user:s}))})))},async getById({id:e}){let n=await t.client.getUser({id:e});return _e({...t,user:n.user,conversationId:void 0})}}),_e=t=>{let e={...ve(t.user,{alias:t.pluginAlias}),async update(n){let{user:r}=await t.client.updateUser({...ie(n,{alias:t.pluginAlias}),id:t.user.id});return _e({...t,user:r})}};return t.conversationId?{...e,async removeFromConversation(){return await t.client.removeParticipant({id:t.conversationId,userId:t.user.id}),_e({...t,conversationId:void 0})}}:{...e,async addToConversation({conversationId:n}){let{participant:r}=await t.client.addParticipant({id:n,userId:t.user.id});return _e({...t,user:r,conversationId:n})}}};var Ji=t=>new Proxy({},{get:(e,n)=>new Proxy({},{get:(r,i)=>({list(s){let a=t.plugin?.interfaces[n]?.integrationAlias??t.plugin?.integrations[n]?.integrationAlias,o=t.plugin?.interfaces[n]?.channels?.[i]?.name??i;return de(({nextToken:c})=>t.client.listConversations({...ie(s??{},{alias:t.plugin?.alias}),channel:o==="*"?void 0:o,integrationName:a==="*"?void 0:a,nextToken:c}).then(({meta:d,conversations:g})=>({meta:d,items:g.map(m=>Pt({...t,conversation:m}))})))},async getById({id:s}){let a=await t.client.getConversation({id:s});return Pt({...t,conversation:a.conversation})}})})}),Pt=t=>{let e=t.client;return{...ve(t.conversation,{alias:t.plugin?.alias}),async delete(){await e.deleteConversation({id:t.conversation.id})},async update(n){let{conversation:r}=await e.updateConversation({...ie(n,{alias:t.plugin?.alias}),id:t.conversation.id});return Pt({...t,conversation:r})},async getMessage({id:n}){let r=await e.getMessage({id:n});return ge({...t,message:r.message})},async getOrCreateMessage(n){let{message:r}=await e.getOrCreateMessage({...ie(n,{alias:t.plugin?.alias}),conversationId:t.conversation.id});return ge({...t,message:r})},async createMessage(n){let{message:r}=await e.createMessage({...ie(n,{alias:t.plugin?.alias}),conversationId:t.conversation.id});return ge({...t,message:r})},listMessages(n){return de(({nextToken:r})=>e.listMessages({...ie(n??{},{alias:t.plugin?.alias}),conversationId:t.conversation.id,nextToken:r}).then(({meta:i,messages:s})=>({meta:i,items:s.map(a=>ge({...t,message:a}))})))},listParticipants(){return de(({nextToken:n})=>e.listParticipants({id:t.conversation.id,nextToken:n}).then(({meta:r,participants:i})=>({meta:r,items:i.map(s=>_e({...t,user:s,conversationId:t.conversation.id}))})))}}};var Yi=class t{constructor(e){this._props=e}async emit(e){let{conversationId:n,userId:r,messageId:i}=this._props,{event:s}=await this._props.client.createEvent({type:this._props.eventName,payload:e,conversationId:n,userId:r,messageId:i});return s}async schedule(e,n){let{conversationId:r,userId:i,messageId:s}=this._props,{event:a}=await this._props.client.createEvent({type:this._props.eventName,payload:e,conversationId:r,userId:i,messageId:s,schedule:n});return a}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})}async getById(e){return(await this._props.client.getEvent({id:e.id})).event}list(e){return de(({nextToken:n})=>this._props.client.listEvents({...e,type:this._props.eventName,conversationId:this._props.conversationId,userId:this._props.userId,messageId:this._props.messageId,nextToken:n}).then(({meta:r,events:i})=>({meta:r,items:i})))}},Td=(t,e)=>new Proxy({},{get:(n,r)=>{let i=e.alias!==void 0?`${e.alias}${fe}${r}`:r;return new Yi({client:t,eventName:i})}});var Xi=class{constructor(e,n,r){this._client=e;this._stateType=n;this._stateName=r}async get(e){return await this._client.getState({type:this._stateType,name:this._stateName,id:e}).then(n=>n.state.payload)}async set(e,n,r){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:n,expiry:r?.expiryMs})}async getOrSet(e,n,r){return await this._client.getOrSetState({type:this._stateType,name:this._stateName,id:e,payload:n,expiry:r?.expiryMs}).then(i=>i.state.payload)}async delete(e){await this._client.setState({type:this._stateType,name:this._stateName,id:e,payload:null})}async patch(e,n){await this._client.patchState({type:this._stateType,name:this._stateName,id:e,payload:n})}},bd=(t,e)=>new Proxy({},{get:(n,r)=>new Proxy({},{get:(i,s)=>{let a=e.alias!==void 0?`${e.alias}${fe}${s}`:s;return new Xi(t,r,a)}})});var Ar=class{constructor(e){this.props=e;this._actionHandlers=e.actions}_runtimeProps;_actionHandlers;_messageHandlers={};_eventHandlers={};_stateExpiredHandlers={};_hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},before_incoming_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{},after_incoming_call_action:{}};_workflowHandlers={started:{},continued:{},timed_out:{}};_registerOrder=0;initialize(e){return this._runtimeProps=e,this}get _runtime(){if(!this._runtimeProps)throw new Error("Plugin not correctly initialized. This is likely because you access your plugin config outside of an handler.");return this._runtimeProps}_getTools(e){let{configuration:n,interfaces:r,integrations:i,alias:s}=this._runtime,a=_d(e,this._runtime),o=bd(e,this._runtime),c=Ee({client:e,pluginAlias:this._runtime.alias}),d=Td(e,this._runtime),g=Gi({client:e,pluginAlias:this._runtime.alias}),m=Ji({client:e,plugin:this._runtime}),T=qi({client:e,plugin:this._runtime});return{configuration:n,interfaces:r,integrations:i,actions:a,states:o,alias:s,workflows:c,events:d,users:g,conversations:m,messages:T}}get actionHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=this._actionHandlers[n];if(r)return Y.setName(i=>r({...i,...this._getTools(i.client)}),r.name)}})}get messageHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=n==="*"?[]:this._messageHandlers[n]??[],i=this._messageHandlers["*"]??[];return O.unique([...r,...i]).sort((a,o)=>a.order-o.order).map(({handler:a})=>Y.setName(o=>a({...o,user:_e({...o,conversationId:o.conversation.id,pluginAlias:this._runtime.alias}),message:ge({...o,plugin:this._runtime,message:o.message}),conversation:Pt({...o,plugin:this._runtime,conversation:o.conversation}),...this._getTools(o.client)}),a.name))}})}get eventHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=n==="*"?[]:this._eventHandlers[n]??[],i=Object.entries(this._eventHandlers).filter(([o])=>this._eventResolvesTo(o,n)).flatMap(([,o])=>o??[]),s=this._eventHandlers["*"]??[];return O.unique([...r,...i,...s]).sort((o,c)=>o.order-c.order).map(({handler:o})=>Y.setName(c=>o({...c,...this._getTools(c.client)}),o.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,n)=>{n=this._stripAliasPrefix(n);let r=n==="*"?[]:this._stateExpiredHandlers[n]??[],i=this._stateExpiredHandlers["*"]??[];return O.unique([...r,...i]).sort((a,o)=>a.order-o.order).map(({handler:a})=>Y.setName(o=>a({...o,...this._getTools(o.client)}),a.name))}})}get hookHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._hookHandlers[n];if(r)return new Proxy({},{get:(i,s)=>{s=this._stripAliasPrefix(s);let a=s==="*"?[]:r[s]??[],o=Object.entries(r).filter(([g])=>this._eventResolvesTo(g,s)).flatMap(([,g])=>g??[]),c=r["*"]??[];return O.unique([...a,...o,...c]).sort((g,m)=>g.order-m.order).map(({handler:g})=>Y.setName(m=>g({...m,data:ve(m.data,{alias:this._runtime.alias}),...this._getTools(m.client)}),g.name))}})}})}get workflowHandlers(){return new Proxy({},{get:(e,n)=>{let r=this._workflowHandlers[n];if(r)return new Proxy({},{get:(i,s)=>(r[s]?.sort((o,c)=>o.order-c.order)??[]).map(({handler:o})=>Y.setName(async c=>{let d=c.workflow;return await o({...c,workflow:pe({...c,workflow:d,onWorkflowUpdate(g){d=g},pluginAlias:this._runtime.alias}),...this._getTools(c.client)}),d},o.name))})}})}on={message:(e,n)=>{this._messageHandlers[e]=O.safePush(this._messageHandlers[e],{handler:n,order:this._registerOrder++})},event:(e,n)=>{this._eventHandlers[e]=O.safePush(this._eventHandlers[e],{handler:n,order:this._registerOrder++})},stateExpired:(e,n)=>{this._stateExpiredHandlers[e]=O.safePush(this._stateExpiredHandlers[e],{handler:n,order:this._registerOrder++})},beforeIncomingEvent:(e,n)=>{this._hookHandlers.before_incoming_event[e]=O.safePush(this._hookHandlers.before_incoming_event[e],{handler:n,order:this._registerOrder++})},beforeIncomingMessage:(e,n)=>{this._hookHandlers.before_incoming_message[e]=O.safePush(this._hookHandlers.before_incoming_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingMessage:(e,n)=>{this._hookHandlers.before_outgoing_message[e]=O.safePush(this._hookHandlers.before_outgoing_message[e],{handler:n,order:this._registerOrder++})},beforeOutgoingCallAction:(e,n)=>{this._hookHandlers.before_outgoing_call_action[e]=O.safePush(this._hookHandlers.before_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},beforeIncomingCallAction:(e,n)=>{this._hookHandlers.before_incoming_call_action[e]=O.safePush(this._hookHandlers.before_incoming_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingEvent:(e,n)=>{this._hookHandlers.after_incoming_event[e]=O.safePush(this._hookHandlers.after_incoming_event[e],{handler:n,order:this._registerOrder++})},afterIncomingMessage:(e,n)=>{this._hookHandlers.after_incoming_message[e]=O.safePush(this._hookHandlers.after_incoming_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingMessage:(e,n)=>{this._hookHandlers.after_outgoing_message[e]=O.safePush(this._hookHandlers.after_outgoing_message[e],{handler:n,order:this._registerOrder++})},afterOutgoingCallAction:(e,n)=>{this._hookHandlers.after_outgoing_call_action[e]=O.safePush(this._hookHandlers.after_outgoing_call_action[e],{handler:n,order:this._registerOrder++})},afterIncomingCallAction:(e,n)=>{this._hookHandlers.after_incoming_call_action[e]=O.safePush(this._hookHandlers.after_incoming_call_action[e],{handler:n,order:this._registerOrder++})},workflowStart:(e,n)=>{this._workflowHandlers.started[e]=O.safePush(this._workflowHandlers.started[e],{handler:n,order:this._registerOrder++})},workflowContinue:(e,n)=>{this._workflowHandlers.continued[e]=O.safePush(this._workflowHandlers.continued[e],{handler:n,order:this._registerOrder++})},workflowTimeout:(e,n)=>{this._workflowHandlers.timed_out[e]=O.safePush(this._workflowHandlers.timed_out[e],{handler:n,order:this._registerOrder++})}};_eventResolvesTo=(e,n)=>{let[i,s]=e.split(":");if(!i||!s)return!1;let a=this._runtime.interfaces[i];if(a&&n===`${a.integrationAlias}:${a?.events?.[s]?.name}`)return!0;let o=this._runtime.integrations[i];return!!(o&&n===`${o.integrationAlias}:${s}`)};_stripAliasPrefix=e=>{let{alias:n}=this._runtime;if(!n)return e;let r=`${n}#`;return e.startsWith(r)?e.slice(r.length):e}};var Qi={};nt(Qi,{allWithinMajorOf:()=>uv,allWithinMinorOf:()=>dv});var en=Dr(require("semver"));function uv(t){let e=en.major(t.version);return{...t,version:`>=${e}.0.0 <${e+1}.0.0`}}function dv(t){let e=en.major(t.version),n=en.minor(t.version);return{...t,version:`>=${e}.${n}.0 <${e}.${n+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});
|