@botpress/sdk 3.3.1 → 3.4.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 +4 -4
- package/dist/bot/client/index.d.ts +1 -0
- package/dist/bot/client/types.d.ts +11 -6
- package/dist/bot/common/generic.d.ts +1 -106
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +2 -2
- package/dist/index.mjs +18 -18
- package/dist/index.mjs.map +3 -3
- package/package.json +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
|
|
2
|
-
> @botpress/sdk@3.
|
|
2
|
+
> @botpress/sdk@3.4.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@3.
|
|
6
|
+
> @botpress/sdk@3.4.0 build:type /home/runner/work/botpress/botpress/packages/sdk
|
|
7
7
|
> tsc --emitDeclarationOnly --declaration
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
> @botpress/sdk@3.
|
|
10
|
+
> @botpress/sdk@3.4.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@3.
|
|
15
|
+
> @botpress/sdk@3.4.0 build:browser /home/runner/work/botpress/botpress/packages/sdk
|
|
16
16
|
> ts-node -T ./build.ts --browser
|
|
17
17
|
|
|
18
18
|
Done
|
|
@@ -17,6 +17,7 @@ export declare class BotSpecificClient<TBot extends common.BaseBot> implements t
|
|
|
17
17
|
addParticipant: types.AddParticipant<TBot>;
|
|
18
18
|
getParticipant: types.GetParticipant<TBot>;
|
|
19
19
|
removeParticipant: types.RemoveParticipant<TBot>;
|
|
20
|
+
createEvent: types.CreateEvent<TBot>;
|
|
20
21
|
getEvent: types.GetEvent<TBot>;
|
|
21
22
|
listEvents: types.ListEvents<TBot>;
|
|
22
23
|
createMessage: types.CreateMessage<TBot>;
|
|
@@ -34,6 +34,10 @@ export type ListParticipants<_TBot extends common.BaseBot> = client.Client['list
|
|
|
34
34
|
export type AddParticipant<_TBot extends common.BaseBot> = client.Client['addParticipant'];
|
|
35
35
|
export type GetParticipant<_TBot extends common.BaseBot> = client.Client['getParticipant'];
|
|
36
36
|
export type RemoveParticipant<_TBot extends common.BaseBot> = client.Client['removeParticipant'];
|
|
37
|
+
export type CreateEvent<TBot extends common.BaseBot> = <TEvent extends keyof TBot['events']>(x: utils.Merge<Arg<client.Client['createEvent']>, {
|
|
38
|
+
type: utils.Cast<TEvent, string>;
|
|
39
|
+
payload: TBot['events'][TEvent];
|
|
40
|
+
}>) => Promise<EventResponse<TBot>>;
|
|
37
41
|
export type GetEvent<TBot extends common.BaseBot> = (x: Arg<client.Client['getEvent']>) => Promise<EventResponse<TBot>>;
|
|
38
42
|
export type ListEvents<_TBot extends common.BaseBot> = client.Client['listEvents'];
|
|
39
43
|
export type CreateMessage<TBot extends common.BaseBot> = <TMessage extends keyof common.GetMessages<TBot>>(x: utils.Merge<Arg<client.Client['createMessage']>, {
|
|
@@ -137,11 +141,11 @@ type TableColumnComparisonFilter<ColumnType> = ColumnType | utils.ExactlyOneProp
|
|
|
137
141
|
}>;
|
|
138
142
|
export type FindTableRows<TBot extends common.BaseBot> = <TableName extends keyof common.EnumerateTables<TBot>, Columns = utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>> & TableRowExtraColumns>(x: utils.Merge<Arg<client.Client['findTableRows']>, {
|
|
139
143
|
table: utils.Cast<TableName, string>;
|
|
140
|
-
filter?: TableRowFilter<TBot, TableName
|
|
141
|
-
group?: utils.AtLeastOneProperty<{
|
|
144
|
+
filter?: TableRowFilter<TBot, NoInfer<TableName>, NoInfer<Columns>>;
|
|
145
|
+
group?: NoInfer<utils.AtLeastOneProperty<{
|
|
142
146
|
[K in Extract<keyof Columns, string>]: TableRowQueryGroup | TableRowQueryGroup[];
|
|
143
|
-
}
|
|
144
|
-
orderBy?: Extract<keyof Columns, string
|
|
147
|
+
}>>;
|
|
148
|
+
orderBy?: NoInfer<Extract<keyof Columns, string>>;
|
|
145
149
|
}>) => Promise<Readonly<utils.Merge<Awaited<Res<client.Client['findTableRows']>>, {
|
|
146
150
|
rows: Awaited<Res<client.Client['findTableRows']>>['rows'] & Columns[];
|
|
147
151
|
}>>>;
|
|
@@ -160,9 +164,9 @@ export type UpdateTableRows<TBot extends common.BaseBot> = <TableName extends ke
|
|
|
160
164
|
export type UpsertTableRows<TBot extends common.BaseBot> = <TableName extends keyof common.EnumerateTables<TBot>, Columns = utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>>>(x: utils.Merge<Arg<client.Client['upsertTableRows']>, {
|
|
161
165
|
table: utils.Cast<TableName, string>;
|
|
162
166
|
rows: utils.AtLeastOne<utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>> & {
|
|
163
|
-
id
|
|
167
|
+
id?: number;
|
|
164
168
|
}>;
|
|
165
|
-
keyColumn?: Extract<keyof common.EnumerateTables<TBot>[TableName], string
|
|
169
|
+
keyColumn?: NoInfer<Extract<keyof common.EnumerateTables<TBot>[TableName], string>> | 'id';
|
|
166
170
|
}>) => Promise<Readonly<utils.Merge<Awaited<Res<client.Client['upsertTableRows']>>, {
|
|
167
171
|
inserted: Awaited<Res<client.Client['upsertTableRows']>>['inserted'] & Columns[];
|
|
168
172
|
updated: Awaited<Res<client.Client['upsertTableRows']>>['updated'] & Columns[];
|
|
@@ -178,6 +182,7 @@ export type ClientOperations<TBot extends common.BaseBot> = {
|
|
|
178
182
|
getParticipant: GetParticipant<TBot>;
|
|
179
183
|
removeParticipant: RemoveParticipant<TBot>;
|
|
180
184
|
getEvent: GetEvent<TBot>;
|
|
185
|
+
createEvent: CreateEvent<TBot>;
|
|
181
186
|
listEvents: ListEvents<TBot>;
|
|
182
187
|
createMessage: CreateMessage<TBot>;
|
|
183
188
|
getOrCreateMessage: GetOrCreateMessage<TBot>;
|
|
@@ -6,112 +6,7 @@ export type BaseAction = {
|
|
|
6
6
|
output: any;
|
|
7
7
|
};
|
|
8
8
|
export type BaseTable = {
|
|
9
|
-
|
|
10
|
-
* Required. This name is used to identify your table.
|
|
11
|
-
*/
|
|
12
|
-
name: string;
|
|
13
|
-
/**
|
|
14
|
-
* The 'factor' multiplies the row's data storage limit by 4KB and its quota count, but can only be set at table creation and not modified later. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.
|
|
15
|
-
*/
|
|
16
|
-
factor?: number;
|
|
17
|
-
/**
|
|
18
|
-
* A table designated as "frozen" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.
|
|
19
|
-
*/
|
|
20
|
-
frozen?: boolean;
|
|
21
|
-
schema: {
|
|
22
|
-
$schema?: string;
|
|
23
|
-
/**
|
|
24
|
-
* List of keys/columns in the table.
|
|
25
|
-
*/
|
|
26
|
-
properties: {
|
|
27
|
-
[k: string]: {
|
|
28
|
-
type: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'null';
|
|
29
|
-
format?: 'date-time';
|
|
30
|
-
description?: string;
|
|
31
|
-
/**
|
|
32
|
-
* String properties must match this pattern
|
|
33
|
-
*/
|
|
34
|
-
pattern?: string;
|
|
35
|
-
/**
|
|
36
|
-
* String properties must be one of these values
|
|
37
|
-
*/
|
|
38
|
-
enum?: string[];
|
|
39
|
-
/**
|
|
40
|
-
* Defines the shape of items in an array
|
|
41
|
-
*/
|
|
42
|
-
items?: {
|
|
43
|
-
type: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'null';
|
|
44
|
-
[k: string]: any;
|
|
45
|
-
};
|
|
46
|
-
nullable?: boolean;
|
|
47
|
-
properties?: {
|
|
48
|
-
[k: string]: {
|
|
49
|
-
type: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'null';
|
|
50
|
-
[k: string]: any;
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
'x-zui': {
|
|
54
|
-
index: number;
|
|
55
|
-
/**
|
|
56
|
-
* Indicates if the column is vectorized and searchable.
|
|
57
|
-
*/
|
|
58
|
-
searchable?: boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Indicates if the field is hidden in the UI
|
|
61
|
-
*/
|
|
62
|
-
hidden?: boolean;
|
|
63
|
-
/**
|
|
64
|
-
* Order of the column in the UI
|
|
65
|
-
*/
|
|
66
|
-
order?: number;
|
|
67
|
-
/**
|
|
68
|
-
* Width of the column in the UI
|
|
69
|
-
*/
|
|
70
|
-
width?: number;
|
|
71
|
-
computed?: {
|
|
72
|
-
action: 'ai' | 'code' | 'workflow';
|
|
73
|
-
dependencies?: string[];
|
|
74
|
-
/**
|
|
75
|
-
* Prompt when action is "ai"
|
|
76
|
-
*/
|
|
77
|
-
prompt?: string;
|
|
78
|
-
/**
|
|
79
|
-
* Code to execute when action is "code"
|
|
80
|
-
*/
|
|
81
|
-
code?: string;
|
|
82
|
-
/**
|
|
83
|
-
* Model to use when action is "ai"
|
|
84
|
-
*/
|
|
85
|
-
model?: string;
|
|
86
|
-
/**
|
|
87
|
-
* ID of Workflow to execute when action is "workflow"
|
|
88
|
-
*/
|
|
89
|
-
workflowId?: string;
|
|
90
|
-
enabled?: boolean;
|
|
91
|
-
};
|
|
92
|
-
};
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* Additional properties can be provided, but they will be ignored if no column matches.
|
|
97
|
-
*/
|
|
98
|
-
additionalProperties: true;
|
|
99
|
-
/**
|
|
100
|
-
* Array of required properties.
|
|
101
|
-
*/
|
|
102
|
-
required?: string[];
|
|
103
|
-
type: 'object';
|
|
104
|
-
};
|
|
105
|
-
/**
|
|
106
|
-
* Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.
|
|
107
|
-
*/
|
|
108
|
-
tags?: {
|
|
109
|
-
[k: string]: string;
|
|
110
|
-
};
|
|
111
|
-
/**
|
|
112
|
-
* Indicates if the table is enabled for computation.
|
|
113
|
-
*/
|
|
114
|
-
isComputeEnabled?: boolean;
|
|
9
|
+
[k: string]: any;
|
|
115
10
|
};
|
|
116
11
|
export type BaseBot = {
|
|
117
12
|
integrations: Record<string, BaseIntegration>;
|
package/dist/index.cjs
CHANGED
|
@@ -86,7 +86,7 @@ ${se}`.trim();case v.ZodFirstPartyTypeKind.ZodEnum:return o.values.map(je).join(
|
|
|
86
86
|
`,a+=`}
|
|
87
87
|
`,a+=`}
|
|
88
88
|
`),a+=`}
|
|
89
|
-
`,a+="})"}let s=r?a?r+a:n?n==="z.never()"?r+".strict()":r+`.catchall(${n})`:r:a||(n?`z.record(${n})`:"z.record(z.any())");return ie.an.anyOf(t)&&(s+=`.and(${Tf(m(l({},t),{anyOf:t.anyOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?m(l({},i),{type:"object"}):i)}),e)})`),ie.a.oneOf(t)&&(s+=`.and(${Ks(m(l({},t),{oneOf:t.oneOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?m(l({},i),{type:"object"}):i)}),e)})`),ie.an.allOf(t)&&(s+=`.and(${dr(m(l({},t),{allOf:t.allOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?m(l({},i),{type:"object"}):i)}),e)})`),s}u(Pf,"parseObject");var f_=u(t=>{var e;let r="z.string()";if((e=t[U])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";r="z.coerce.string()"}return r+=fe(t,"format",({value:n})=>{switch(n){case"email":return[".email(",")"];case"ip":return[".ip(",")"];case"ipv4":return['.ip({ version: "v4"',", message: "," })"];case"ipv6":return['.ip({ version: "v6"',", message: "," })"];case"uri":return[".url(",")"];case"uuid":return[".uuid(",")"];case"date-time":return[".datetime(",")"]}}),r+=fe(t,"pattern",({json:n})=>[`.regex(new RegExp(${n})`,", ",")"]),r+=fe(t,"minLength",({json:n})=>[`.min(${n}`,", ",")"]),r+=fe(t,"maxLength",({json:n})=>[`.max(${n}`,", ",")"]),r},"parseString"),p_=u((t,e)=>`${le(s_(t,"nullable"),e,!0)}.nullable()`,"parseNullable"),g_=u(t=>`z.ref('${t.$ref}')`,"parseRef"),m_=u((t,e)=>{var r,n;if(t.oneOf.length<=1||!((r=t.discriminator)!=null&&r.propertyName))return Ks(t,e);let a=t.oneOf.map((s,i)=>le(s,m(l({},e),{path:[...e.path,"oneOf",i]})));return`z.discriminatedUnion("${(n=t.discriminator)==null?void 0:n.propertyName}", [${a.join(", ")}])`},"parseDiscriminator"),le=u((t,e={seen:new Map,path:[]},r)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let s=e.parserOverride(t,e);if(typeof s=="string")return s}let n=e.seen.get(t);if(n){if(n.r!==void 0)return n.r;if(e.depth===void 0||n.n>=e.depth)return"z.any()";n.n+=1}else n={r:void 0,n:0},e.seen.set(t,n);let a=v_(t,e);return r||(a=h_(t,a),e.withoutDefaults||(a=y_(t,a))),n.r=a,a},"parseSchema"),h_=u((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),y_=u((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),v_=u((t,e)=>ie.a.nullable(t)?p_(t,e):ie.an.object(t)?Pf(t,e):ie.an.array(t)?o_(t,e):ie.an.anyOf(t)?Tf(t,e):ie.an.allOf(t)?dr(t,e):ie.a.discriminator(t)?m_(t,e):ie.a.oneOf(t)?Ks(t,e):ie.a.not(t)?r_(t,e):ie.an.enum(t)?c_(t):ie.a.const(t)?u_(t):ie.a.multipleType(t)?t_(t,e):ie.a.primitive(t,"string")?f_(t):ie.a.primitive(t,"number")||ie.a.primitive(t,"integer")?d_(t):ie.a.primitive(t,"boolean")?Qv(t):ie.a.primitive(t,"null")?n_(t):ie.a.conditional(t)?l_(t,e):ie.a.ref(t)?g_(t):e_(t),"selectParser"),ie={an:{object:u(t=>t.type==="object","object"),array:u(t=>t.type==="array","array"),anyOf:u(t=>t.anyOf!==void 0,"anyOf"),allOf:u(t=>t.allOf!==void 0,"allOf"),enum:u(t=>t.enum!==void 0,"enum")},a:{nullable:u(t=>t.nullable===!0,"nullable"),multipleType:u(t=>Array.isArray(t.type),"multipleType"),not:u(t=>t.not!==void 0,"not"),const:u(t=>t.const!==void 0,"const"),primitive:u((t,e)=>t.type===e,"primitive"),conditional:u(t=>Boolean("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),"conditional"),discriminator:u(t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},"discriminator"),oneOf:u(t=>t.oneOf!==void 0,"oneOf"),ref:u(t=>t.$ref!==void 0,"ref")}},__=u(t=>{let e;try{e=new Function("z",`return ${t}`)(v)}catch(r){return{sucess:!1,error:`Failed to evaluate schema: ${(r instanceof Error?r:new Error(String(r))).message}`}}return e instanceof v.ZodType?{sucess:!0,value:e}:{sucess:!1,error:`String "${t}" does not evaluate to a Zod schema`}},"evalZuiString"),b_=u(t=>le(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),T_=u(t=>{let e=b_(t);e=e.replaceAll("errors: z.ZodError[]","errors");let r=__(e);if(!r.sucess)throw new Qo(r.error);return r.value},"jsonSchemaToZod"),nr=u((t,e)=>{var r,n;if(e[U]&&t._def&&(t._def[U]=e[U]),((r=t._def)==null?void 0:r.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([a,s])=>{let i=typeof t._def.shape=="function"?t._def.shape():t._def.shape;i[a]&&nr(i[a],s)}),((n=t._def)==null?void 0:n.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&nr(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let a=e.items;if(typeof a=="object"&&!Array.isArray(a)){let s=t._def.type;s&&nr(s,a)}else Array.isArray(a)&&a.forEach((s,i)=>{let o=t._def;o.typeName===S.ZodFirstPartyTypeKind.ZodTuple&&nr(o.items[i],s)})}},"applyZuiPropsRecursively"),hr=u(t=>{let e=T_(t);return nr(e,t),e},"jsonSchemaToZui"),Ef=class extends Nt.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,r){console.error("Uncaught error:",e,r)}render(){return this.state.hasError&&this.props.fallback?Nt.default.createElement(this.props.fallback,{error:this.state.error,schema:this.props.fieldSchema}):this.props.children}};u(Ef,"ErrorBoundary");var At=Ef;function xf(t,e){return r=>Nt.default.createElement(At,{fallback:e,fieldSchema:r.fieldSchema,path:r.path},Nt.default.createElement(t,l({},r)))}u(xf,"withErrorBoundary");var Vr=u(t=>{var e=t,{components:r,fieldSchema:n,path:a,required:s,fallback:i}=e,o=Mo(e,["components","fieldSchema","path","required","fallback"]),d,p;let{formData:y,disabled:T,hidden:k,handlePropertyChange:P,addArrayItem:D,removeArrayItem:K,formErrors:G,formValid:se}=No(n,a),q=(0,be.useMemo)(()=>at(y,a),[y,a]),H=(0,be.useMemo)(()=>Rg(r,n),[n,r]),{discriminator:J,discriminatedSchema:ce,discriminatorValue:Le}=Ig(n,a);if(!H||k===!0)return null;let{Component:Xe,type:Oe}=H,Te={type:Oe,componentID:H.id,scope:a.join("."),context:{path:a,readonly:!1,formData:y,formErrors:G,formValid:se,updateForm:P,updateFormData:u(Pe=>P([],Pe),"updateFormData")},onChange:u(Pe=>P(a,Pe),"onChange"),disabled:T,errors:G?.filter(Pe=>Pe.path===a)||[],label:((d=n[U])==null?void 0:d.title)||Fa(((p=a[a.length-1])==null?void 0:p.toString())||""),params:H.params,schema:n,zuiProps:n[U]};if(n.type==="array"&&Oe==="array"){let Pe=Xe,_e=Te.schema,Ee=Array.isArray(q)||typeof q=="object"?q:[],j=l(m(l({},Te),{type:Oe,schema:_e,data:Ee,addItem:u(Ce=>D(a,Ce),"addItem"),removeItem:u(Ce=>K(a,Ce),"removeItem")}),o);return Array.isArray(n.items)?null:be.default.createElement(Pe,m(l({key:Te.scope},j),{isArrayChild:j.isArrayChild}),Array.isArray(j.data)?j.data.map((Ce,ke)=>{let ze=[...a,ke.toString()];return be.default.createElement(At,{key:ze.join("."),fallback:i,fieldSchema:n.items,path:ze},be.default.createElement(Vr,{key:ze.join("."),components:r,fieldSchema:n.items,path:ze,required:s,isArrayChild:!0,index:ke,removeSelf:()=>K(a,ke),fallback:i}))}):[])}if(n.type==="object"&&Oe==="object"&&n.properties){let Pe=Xe,_e=l(m(l({},Te),{type:Oe,schema:Te.schema,data:q||{}}),o);return be.default.createElement(Pe,m(l({key:Te.scope},_e),{isArrayChild:_e.isArrayChild}),Object.entries(n.properties).map(([Ee,j])=>{var Ce;let ke=[...a,Ee];return be.default.createElement(At,{key:ke.join("."),fallback:i,fieldSchema:j,path:ke},be.default.createElement(Vr,{key:ke.join("."),components:r,fieldSchema:j,path:ke,required:((Ce=n.required)==null?void 0:Ce.includes(Ee))||!1,isArrayChild:!1,fallback:i}))}))}if(Oe==="discriminatedUnion"){let Pe=Xe,_e=l(m(l({},Te),{type:Oe,schema:Te.schema,data:q||{},discriminatorKey:J?.key||null,discriminatorLabel:Fa(J?.key||"Unknown"),discriminatorOptions:J?.values||null,discriminatorValue:Le,setDiscriminator:u(Ee=>{if(!J?.key){console.warn("No discriminator key found, cannot set discriminator");return}P(a,{[J.key]:Ee})},"setDiscriminator")}),o);return be.default.createElement(Pe,m(l({key:Te.scope},_e),{isArrayChild:_e.isArrayChild}),ce&&be.default.createElement(At,{key:a.join("."),fallback:i,fieldSchema:ce,path:a},be.default.createElement(Vr,{components:r,fieldSchema:ce,path:a,required:s,isArrayChild:!1,fallback:i})))}let fa=Xe,pa=l(m(l({},Te),{type:Oe,schema:Te.schema,config:{},required:s,data:q,description:n.description}),o);return be.default.createElement(fa,l({},pa))},"FormElementRenderer"),P_=u(({schema:t,components:e,onChange:r,value:n,disableValidation:a,fallback:s,dataTransform:i,onValidation:o})=>{let[d,p]=(0,Ne.useState)(n);return(0,Ne.useEffect)(()=>{r(d)},[d]),(0,Ne.useEffect)(()=>{let y=It(t);p(T=>Gr(y,T))},[JSON.stringify(t),p]),Ne.default.createElement(Cg,{formData:d,setFormData:p,formSchema:t,disableValidation:a||!1,dataTransform:i,onValidation:o},Ne.default.createElement(At,{fallback:s,fieldSchema:t,path:[]},Ne.default.createElement(Vr,{components:e,fieldSchema:t,path:[],fallback:s,required:!0,isArrayChild:!1})))},"ZuiForm"),E_={string:{},number:{slider:{id:"slider",params:v.object({})}},boolean:{switch:{id:"switch",params:v.object({})}},array:{},object:{},discriminatedUnion:{}},x_={errors:Jo,jsonSchemaToZui:hr,zuiToJsonSchema:ea,objectToZui:Ht,toTypescript:Wr,toTypescriptSchema:hs};var Ft=(t,e)=>{let r=t._def,n=e._def;if(r.typeName===S.ZodFirstPartyTypeKind.ZodObject&&n.typeName===S.ZodFirstPartyTypeKind.ZodObject){let a=r.shape(),s=n.shape();return S.object({...a,...s})}if(r.typeName===S.ZodFirstPartyTypeKind.ZodRecord&&n.typeName===S.ZodFirstPartyTypeKind.ZodRecord)return S.record(S.intersection(r.valueType,n.valueType));throw new Error("Cannot merge object schemas with record schemas")},Sf=S;var ve=S.string().min(1),kf=S.object({text:ve}),Of=S.object({markdown:ve}),Cf=S.object({imageUrl:ve}),If=S.object({audioUrl:ve}),Zf=S.object({videoUrl:ve}),Af=S.object({fileUrl:ve,title:ve.optional()}),Rf=S.object({latitude:S.number(),longitude:S.number(),address:S.string().optional(),title:S.string().optional()}),Bf=S.object({title:ve,subtitle:ve.optional(),imageUrl:ve.optional(),actions:S.array(S.object({action:S.enum(["postback","url","say"]),label:ve,value:ve}))}),wf=S.object({text:ve,options:S.array(S.object({label:ve,value:ve}))}),S_=S.object({items:S.array(Bf)}),w_=S.union([S.object({type:S.literal("text"),payload:kf}),S.object({type:S.literal("markdown"),payload:Of}),S.object({type:S.literal("image"),payload:Cf}),S.object({type:S.literal("audio"),payload:If}),S.object({type:S.literal("video"),payload:Zf}),S.object({type:S.literal("file"),payload:Af}),S.object({type:S.literal("location"),payload:Rf})]),k_=S.object({items:S.array(w_)}),O_={schema:Of},C_={text:{schema:kf},image:{schema:Cf},audio:{schema:If},video:{schema:Zf},file:{schema:Af},location:{schema:Rf},carousel:{schema:S_},card:{schema:Bf},dropdown:{schema:wf},choice:{schema:wf},bloc:{schema:k_}};var yr="x-bot-id",qs="x-bot-user-id",Gs="x-integration-id",Ws="x-webhook-id",Js="x-bp-configuration-type",vr="x-bp-configuration",_r="x-bp-operation",Ys="x-bp-type";var Df=require("browser-or-node");var Lt=console;function we(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function br(t,e=8072,r=R_){if(!Df.isNode)throw new Error("This function can only be called in Node.js");let a=require("http").createServer(async(s,i)=>{try{let o=await I_(s);if(o.path==="/health"){i.writeHead(200).end("ok");return}let d=await t(o);i.writeHead(d?.status??200,d?.headers??{}).end(d?.body??"{}")}catch(o){Lt.error("Error while handling request",{error:o?.message??"Internal error occured"}),i.writeHead(500).end(JSON.stringify({error:o?.message??"Internal error occured"}))}});return a.listen(e,()=>r(e)),a}async function I_(t){let e=await A_(t),r={};for(let a=0;a<t.rawHeaders.length;a+=2){let s=t.rawHeaders[a].toLowerCase(),i=t.rawHeaders[a+1];r[s]=i}let n=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:n.pathname,query:Z_(n.search,"?"),headers:r,method:t.method?.toUpperCase()??"GET"}}function Z_(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function A_(t){return new Promise((e,r)=>{if(t.method!=="POST"&&t.method!=="PUT"&&t.method!=="PATCH")return e(void 0);let n="";t.on("data",a=>n+=a.toString()),t.on("error",a=>r(a)),t.on("end",()=>e(n))})}function R_(t){Lt.info(`Listening on port ${t}`)}var da=require("@botpress/client");var te={};Jt(te,{mapValues:()=>D_,mergeRecords:()=>j_,pairs:()=>Xs,stripUndefinedProps:()=>M_,values:()=>B_});var Xs=t=>Object.entries(t),B_=t=>Object.values(t),D_=(t,e)=>Object.fromEntries(Xs(t).map(([r,n])=>[r,e(n,r)])),M_=t=>Object.fromEntries(Xs(t).filter(([,e])=>e!==void 0)),j_=(t,e,r)=>{let n=[...Object.keys(t),...Object.keys(e)],a=[...new Set(n)],s={};for(let i of a){let o=t[i],d=e[i];o&&d?s[i]=r(o,d):o?s[i]=o:d&&(s[i]=d)}return s};var z={};Jt(z,{safePush:()=>H_,unique:()=>N_});var H_=(t,...e)=>t?[...t,...e]:[...e],N_=t=>Array.from(new Set(t));var vt={};Jt(vt,{setName:()=>$_});var $_=(t,e)=>(Object.defineProperty(t,"name",{value:e}),t);var Mf=t=>{let{name:e,version:r}=t,n={actions:{},events:{},channels:{}},a={name:e,version:r,entities:te.mapValues(t.entities,i=>({name:i.name})),actions:{},events:{},channels:{}},s=te.mapValues(t.entities,i=>i.schema);for(let[i,o]of Object.entries(t.definition.actions??{})){let d=o.input.schema.dereference(s),p=o.output.schema.dereference(s),y=t.actions?.[i]?.name??i;n.actions[y]={...o,...t.actions?.[i]??{},input:{schema:d},output:{schema:p}},a.actions[i]={name:y}}for(let[i,o]of Object.entries(t.definition.events??{})){let d=o.schema.dereference(s),p=t.events?.[i]?.name??i;n.events[p]={...o,...t.events?.[i]??{},schema:d},a.events[i]={name:p}}for(let[i,o]of Object.entries(t.definition.channels??{})){let d={};for(let[y,T]of Object.entries(o.messages)){let k=T.schema.dereference(s);d[y]={...T,schema:k}}let p=t.channels?.[i]?.name??i;n.channels[p]={...o,...t.channels?.[i]??{},message:{...o.message??{},tags:{...o.message?.tags??{},...t.channels?.[i]?.message?.tags??{}}},conversation:{...o.conversation??{},tags:{...o.conversation?.tags??{},...t.channels?.[i]?.conversation?.tags??{}}},messages:d},a.channels[i]={name:p}}return{resolved:n,statement:a}};var ta=Symbol("schemaName"),jf=t=>t?te.mapValues(t,(r,n)=>({...r,[ta]:n})):{},Hf=t=>ta in t&&t[ta]!==void 0,Nf=t=>t[ta];var ra=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.icon=e.icon,this.readme=e.readme,this.title=e.title,this.identifier=e.identifier,this.description=e.description,this.configuration=e.configuration,this.configurations=e.configurations,this.events=e.events,this.actions=e.actions,this.channels=e.channels,this.states=e.states,this.user=e.user,this.secrets=e.secrets,this.entities=e.entities,this.interfaces=e.interfaces,this.__advanced=e.__advanced}name;version;title;description;icon;readme;configuration;configurations;events;actions;channels;states;user;secrets;identifier;entities;interfaces;__advanced;extend(e,r){let{entities:n,actions:a,events:s,channels:i}=this._callBuilder(e,r),o=this;o.interfaces??={};let d=Object.values(n).map(k=>k.name),p=d.length===0?e.name:`${e.name}<${d.join(",")}>`,{resolved:y,statement:T}=Mf({...e,entities:n,actions:te.stripUndefinedProps(a),events:te.stripUndefinedProps(s),channels:te.stripUndefinedProps(i)});return o.actions=te.mergeRecords(o.actions??{},y.actions,this._mergeActions),o.channels=te.mergeRecords(o.channels??{},y.channels,this._mergeChannels),o.events=te.mergeRecords(o.events??{},y.events,this._mergeEvents),o.interfaces[p]={id:e.id,...T},this}_callBuilder(e,r){let a={entities:jf(this.entities)},s=r(a),i=te.pairs(s.entities).find(([d,p])=>!Hf(p));if(i)throw new Error(`Cannot extend interface "${e.name}" with entity "${i[0]}"; the provided schema is not part of the integration's entities.`);return{entities:te.mapValues(s.entities,d=>({name:Nf(d),schema:d.schema})),actions:s.actions??{},events:s.events??{},channels:s.channels??{}}}_mergeActions=(e,r)=>({...e,...r,input:{schema:Ft(e.input.schema,r.input.schema)},output:{schema:Ft(e.input.schema,r.output.schema)}});_mergeEvents=(e,r)=>({...e,...r,schema:Ft(e.schema,r.schema)});_mergeChannels=(e,r)=>{let n=te.mergeRecords(e.messages,r.messages,this._mergeMessage),a;(e.conversation||r.conversation)&&(a={tags:{...e.conversation?.tags,...r.conversation?.tags}});let s;return(e.message||r.message)&&(s={tags:{...e.message?.tags,...r.message?.tags}}),{...e,...r,messages:n,conversation:a,message:s}};_mergeMessage=(e,r)=>({schema:Ft(e.schema,r.schema)})};var _t=require("@botpress/client");var $f=require("@botpress/client"),na={retries:3,retryCondition:t=>$f.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:t=>t*1e3};var Kt=class{constructor(e){this._client=e}createConversation=e=>this._client.createConversation(e);getConversation=e=>this._client.getConversation(e);listConversations=e=>this._client.listConversations(e);getOrCreateConversation=e=>this._client.getOrCreateConversation(e);updateConversation=e=>this._client.updateConversation(e);deleteConversation=e=>this._client.deleteConversation(e);listParticipants=e=>this._client.listParticipants(e);addParticipant=e=>this._client.addParticipant(e);getParticipant=e=>this._client.getParticipant(e);removeParticipant=e=>this._client.removeParticipant(e);createEvent=e=>this._client.createEvent(e);getEvent=e=>this._client.getEvent(e);listEvents=e=>this._client.listEvents(e);createMessage=e=>this._client.createMessage(e);getOrCreateMessage=e=>this._client.getOrCreateMessage(e);getMessage=e=>this._client.getMessage(e);updateMessage=e=>this._client.updateMessage(e);listMessages=e=>this._client.listMessages(e);deleteMessage=e=>this._client.deleteMessage(e);createUser=e=>this._client.createUser(e);getUser=e=>this._client.getUser(e);listUsers=e=>this._client.listUsers(e);getOrCreateUser=e=>this._client.getOrCreateUser(e);updateUser=e=>this._client.updateUser(e);deleteUser=e=>this._client.deleteUser(e);getState=e=>this._client.getState(e);setState=e=>this._client.setState(e);getOrSetState=e=>this._client.getOrSetState(e);patchState=e=>this._client.patchState(e);configureIntegration=e=>this._client.configureIntegration(e);uploadFile=e=>this._client.uploadFile(e);upsertFile=e=>this._client.upsertFile(e);deleteFile=e=>this._client.deleteFile(e);listFiles=e=>this._client.listFiles(e);getFile=e=>this._client.getFile(e);updateFileMetadata=e=>this._client.updateFileMetadata(e)};var aa=class{_cost=0;get cost(){return this._cost}setCost(e){this._cost=e}toJSON(){return{cost:this.cost}}};var U_=S.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),Uf=t=>{let e=t[yr],r=t[qs],n=t[Gs],a=t[Ws],s=t[Js],i=t[vr],o=U_.parse(t[_r]);if(!e)throw new Error("Missing bot headers");if(!r)throw new Error("Missing bot user headers");if(!n)throw new Error("Missing integration headers");if(!a)throw new Error("Missing webhook headers");if(!i)throw new Error("Missing configuration headers");if(!o)throw new Error("Missing operation headers");return{botId:e,botUserId:r,integrationId:n,webhookId:a,operation:o,configurationType:s??null,configuration:i?JSON.parse(Buffer.from(i,"base64").toString("utf-8")):{}}};var Ff=et(require("util")),Vt=class{defaultOptions;constructor(e){this.defaultOptions=e}info(...e){this._log("info",e)}debug(...e){this._log("debug",e)}warn(...e){this._log("warn",e)}error(...e){this._log("error",e)}_log(e,r){this._getConsoleMethod(e)(this._serializeMessage(r))}_serializeMessage(e){let r=Ff.default.format(...e);return process.env.BP_LOG_FORMAT==="json"?this.getJsonMessage(r):r}getJsonMessage(e){return JSON.stringify({msg:e,options:this.defaultOptions})}_getConsoleMethod(e){switch(e){case"debug":return console.debug;case"warn":return console.warn;case"error":return console.error;default:return console.info}}};var Je=class extends Vt{constructor(e){super({visibleToBotOwners:!0,...e})}with(e){return new Je({...this.defaultOptions,...e})}withUserId(e){return this.with({userId:e})}withConversationId(e){return this.with({conversationId:e})}withVisibleToBotOwners(e){return this.with({visibleToBotOwners:e})}forBot(){return this.withVisibleToBotOwners(!0)}getJsonMessage(e){return JSON.stringify({msg:e,visible_to_bot_owner:this.defaultOptions.visibleToBotOwners,options:this.defaultOptions})}};var Lf=t=>async e=>{let r=Uf(e.headers),n=new _t.Client({botId:r.botId,integrationId:r.integrationId,retry:na}),a=new Kt(n),s=new Je,i={ctx:r,req:e,client:a,logger:s,instance:t};try{let o;switch(r.operation){case"webhook_received":o=await L_(i);break;case"register":o=await z_(i);break;case"unregister":o=await K_(i);break;case"message_created":o=await G_(i);break;case"action_triggered":o=await W_(i);break;case"ping":o=await F_(i);break;case"create_user":o=await V_(i);break;case"create_conversation":o=await q_(i);break;default:throw new Error(`Unknown operation ${r.operation}`)}return o?{...o,status:o.status??200}:{status:200}}catch(o){if((0,_t.isApiError)(o)){let p=o.type==="Runtime"?o:new _t.RuntimeError(o.message,o);return s.forBot().error(p.message),{status:p.code,body:JSON.stringify(p.toJSON())}}console.error(o);let d=new _t.RuntimeError("An unexpected error occurred in the integration. Bot owners: Check logs for more informations. Integration owners: throw a RuntimeError to return a custom error message instead.");return s.forBot().error(d.message),{status:d.code,body:JSON.stringify(d.toJSON())}}},F_=async t=>{},L_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{let{req:s}=we(r);return a.webhook({client:t,ctx:e,req:s,logger:n})},z_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.register)return;let{webhookUrl:s}=we(r);await a.register({client:t,ctx:e,webhookUrl:s,logger:n})},K_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.unregister)return;let{webhookUrl:s}=we(r);await a.unregister({ctx:e,webhookUrl:s,client:t,logger:n})},V_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createUser)return;let{tags:s}=we(r);return await a.createUser({ctx:e,client:t,tags:s,logger:n})},q_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createConversation)return;let{channel:s,tags:i}=we(r);return await a.createConversation({ctx:e,client:t,channel:s,tags:i,logger:n})},G_=async({ctx:t,req:e,client:r,logger:n,instance:a})=>{let{conversation:s,user:i,type:o,payload:d,message:p}=we(e),y=a.channels[s.channel];if(!y)throw new Error(`Channel ${s.channel} not found`);let T=y.messages[o];if(!T)throw new Error(`Message of type ${o} not found in channel ${s.channel}`);await T({ctx:t,conversation:s,message:p,user:i,type:o,client:r,payload:d,ack:async({tags:P})=>{await r.updateMessage({id:p.id,tags:P})},logger:n})},W_=async({req:t,ctx:e,client:r,logger:n,instance:a})=>{let{input:s,type:i}=we(t);if(!i)throw new Error("Missing action type");let o=a.actions[i];if(!o)throw new Error(`Action ${i} not found`);let d=new aa,y={output:await o({ctx:e,input:s,client:r,type:i,logger:n,metadata:d}),meta:d.toJSON()};return{body:JSON.stringify(y)}};var sa=class{constructor(e){this.props=e;this.actions=e.actions,this.channels=e.channels,this.register=e.register,this.unregister=e.unregister,this.createUser=e.createUser,this.createConversation=e.createConversation,this.webhook=e.handler}actions;channels;register;unregister;createUser;createConversation;webhook;handler=Lf(this);start=e=>br(this.handler,e)};var ia=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}integrations;plugins;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;addIntegration(e,r){let n=this;return n.integrations||(n.integrations={}),n.integrations[e.name]={enabled:r.enabled,...e,configurationType:r.configurationType,configuration:r.configuration},this}addPlugin(e,r){let n=this;return n.plugins||(n.plugins={}),n.plugins[e.name]={...e,configuration:r.configuration,interfaces:r.interfaces},n.user=this._mergeUser(n.user,e.definition.user),n.conversation=this._mergeConversation(n.conversation,e.definition.conversation),n.message=this._mergeMessage(n.message,e.definition.message),n.states=this._mergeStates(n.states,e.definition.states),n.events=this._mergeEvents(n.events,e.definition.events),n.recurringEvents=this._mergeRecurringEvents(n.recurringEvents,e.definition.recurringEvents),n.actions=this._mergeActions(n.actions,e.definition.actions),n.tables=this._mergeTables(n.tables,e.definition.tables),this}_mergeUser=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeConversation=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeMessage=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeStates=(e,r)=>({...e,...r});_mergeEvents=(e,r)=>({...e,...r});_mergeRecurringEvents=(e,r)=>({...e,...r});_mergeActions=(e,r)=>({...e,...r});_mergeTables=(e,r)=>({...e,...r})};var Kf=et(require("@botpress/client"));var Ye=class extends Vt{constructor(e){super({...e})}with(e){return new Ye({...this.defaultOptions,...e})}withUserId(e){return this.with({userId:e})}withConversationId(e){return this.with({conversationId:e})}withWorkflowId(e){return this.with({workflowId:e})}};var Ze=class{constructor(e,r={before:{},after:{}}){this._client=e;this._hooks=r}getConversation=e=>this._run("getConversation",e);listConversations=e=>this._run("listConversations",e);updateConversation=e=>this._run("updateConversation",e);deleteConversation=e=>this._run("deleteConversation",e);listParticipants=e=>this._run("listParticipants",e);addParticipant=e=>this._run("addParticipant",e);getParticipant=e=>this._run("getParticipant",e);removeParticipant=e=>this._run("removeParticipant",e);getEvent=e=>this._run("getEvent",e);listEvents=e=>this._run("listEvents",e);createMessage=e=>this._run("createMessage",e);getOrCreateMessage=e=>this._run("getOrCreateMessage",e);getMessage=e=>this._run("getMessage",e);updateMessage=e=>this._run("updateMessage",e);listMessages=e=>this._run("listMessages",e);deleteMessage=e=>this._run("deleteMessage",e);getUser=e=>this._run("getUser",e);listUsers=e=>this._run("listUsers",e);updateUser=e=>this._run("updateUser",e);deleteUser=e=>this._run("deleteUser",e);getState=e=>this._run("getState",e);setState=e=>this._run("setState",e);getOrSetState=e=>this._run("getOrSetState",e);patchState=e=>this._run("patchState",e);callAction=e=>this._run("callAction",e);uploadFile=e=>this._run("uploadFile",e);upsertFile=e=>this._run("upsertFile",e);deleteFile=e=>this._run("deleteFile",e);listFiles=e=>this._run("listFiles",e);getFile=e=>this._run("getFile",e);updateFileMetadata=e=>this._run("updateFileMetadata",e);searchFiles=e=>this._run("searchFiles",e);trackAnalytics=e=>this._run("trackAnalytics",e);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);createConversation=e=>this._client.createConversation(e);getOrCreateConversation=e=>this._client.getOrCreateConversation(e);createUser=e=>this._client.createUser(e);getOrCreateUser=e=>this._client.getOrCreateUser(e);_run=async(e,r)=>{let n=this._hooks.before[e];n&&(r=await n(r));let a=await this._client[e](r),s=this._hooks.after[e];return s&&(a=await s(a)),a}};var J_=S.enum(["event_received","register","unregister","ping","action_triggered"]),zf=t=>{let e=t[yr],r=t[vr],n=t[Ys],a=J_.parse(t[_r]);if(!e)throw new Error("Missing bot headers");if(!n)throw new Error("Missing type headers");if(!r)throw new Error("Missing configuration headers");if(!a)throw new Error("Missing operation headers");return{botId:e,operation:a,type:n,configuration:r?JSON.parse(Buffer.from(r,"base64").toString("utf-8")):{}}};var Ae={status:200},Vf=t=>async e=>{let r=zf(e.headers),n=new Ye,a=new Kf.Client({botId:r.botId,retry:na}),s=new Ze(a,{before:{createMessage:async o=>{let d=t.hookHandlers.before_outgoing_message[o.type]??[];for(let p of d)o=(await p({client:new Ze(a),ctx:r,logger:n,data:o}))?.data??o;return o},callAction:async o=>{let d=t.hookHandlers.before_outgoing_call_action[o.type]??[];for(let p of d)o=(await p({client:new Ze(a),ctx:r,logger:n,data:o}))?.data??o;return o}},after:{createMessage:async o=>{let d=t.hookHandlers.after_outgoing_message[o.message.type]??[];for(let p of d)o=(await p({client:new Ze(a),ctx:r,logger:n,data:o}))?.data??o;return o},callAction:async o=>{let d=t.hookHandlers.after_outgoing_call_action[o.output.type]??[];for(let p of d)o=(await p({client:new Ze(a),ctx:r,logger:n,data:o}))?.data??o;return o}}}),i={req:e,ctx:r,logger:n,client:s,self:t};switch(r.operation){case"action_triggered":return await tb(i);case"event_received":return await eb(i);case"register":return await X_(i);case"unregister":return await Q_(i);case"ping":return await Y_(i);default:throw new Error(`Unknown operation ${r.operation}`)}},Y_=async({ctx:t})=>(Lt.info(`Received ${t.operation} operation for bot ${t.botId} of type ${t.type}`),Ae),X_=async t=>Ae,Q_=async t=>Ae,eb=async({ctx:t,logger:e,req:r,client:n,self:a})=>{let s={client:n,ctx:t,logger:e};Lt.debug(`Received event ${t.type}`);let i=we(r);if(t.type==="message_created"){let k=i.event,P=k.payload.message,D=a.hookHandlers.before_incoming_message[P.type]??[];for(let q of D){let H=await q({...s,data:P});if(P=H?.data??P,H?.stop)return Ae}let K={...s,user:k.payload.user,conversation:k.payload.conversation,states:k.payload.states,message:P,event:k},G=a.messageHandlers[P.type]??[];for(let q of G)await q(K);let se=a.hookHandlers.after_incoming_message[P.type]??[];for(let q of se){let H=await q({...s,data:P});if(P=H?.data??P,H?.stop)return Ae}return Ae}if(t.type==="state_expired"){let P=i.event.payload.state,D={...s,state:P},K=a.stateExpiredHandlers["*"]??[];for(let G of K)await G(D);return Ae}let o=i.event,d=a.hookHandlers.before_incoming_event[o.type]??[];for(let k of d){let P=await k({...s,data:o});if(o=P?.data??o,P?.stop)return Ae}let p={...s,event:o},y=a.eventHandlers[o.type]??[];for(let k of y)await k(p);let T=a.hookHandlers.after_incoming_event[o.type]??[];for(let k of T){let P=await k({...s,data:o});if(o=P?.data??o,P?.stop)return Ae}return Ae},tb=async({ctx:t,logger:e,req:r,client:n,self:a})=>{let{input:s,type:i}=we(r);if(!i)throw new Error("Missing action type");let o=a.actionHandlers[i];if(!o)throw new Error(`Action ${i} not found`);let p={output:await o({ctx:t,logger:e,input:s,client:n,type:i})};return{status:200,body:JSON.stringify(p)}};var oa=class{constructor(e){this.props=e;this._actionHandlers=e.actions,this._plugins=e.plugins}_actionHandlers;_messageHandlers={};_eventHandlers={};_stateExpiredHandlers={};_hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{}};_plugins={};get actionHandlers(){let e=this._actionHandlers,r=Object.values(this._plugins).reduce((n,a)=>({...n,...a.actionHandlers}),{});return{...e,...r}}get messageHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._messageHandlers[r]??[],a=this._messageHandlers["*"]??[],s=[...n,...a],i=Object.values(this._plugins).flatMap(o=>o.messageHandlers[r]??[]);return z.unique([...s,...i])}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._eventHandlers[r]??[],a=this._eventHandlers["*"]??[],s=[...n,...a],i=Object.values(this._plugins).flatMap(o=>o.eventHandlers[r]??[]);return z.unique([...s,...i])}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._stateExpiredHandlers[r]??[],a=this._stateExpiredHandlers["*"]??[],s=[...n,...a],i=Object.values(this._plugins).flatMap(o=>o.stateExpiredHandlers[r]??[]);return z.unique([...s,...i])}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>new Proxy({},{get:(n,a)=>{let s=r,i=this._hookHandlers[s]??{},o=i[a]??[],d=i["*"]??[],p=[...o,...d],y=Object.values(this._plugins).flatMap(T=>T.hookHandlers[s]?.[a]??[]);return z.unique([...p,...y])}})})}on={message:(e,r)=>{this._messageHandlers[e]=z.safePush(this._messageHandlers[e],r)},event:(e,r)=>{this._eventHandlers[e]=z.safePush(this._eventHandlers[e],r)},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=z.safePush(this._stateExpiredHandlers[e],r)},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=z.safePush(this._hookHandlers.before_incoming_event[e],r)},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=z.safePush(this._hookHandlers.before_incoming_message[e],r)},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=z.safePush(this._hookHandlers.before_outgoing_message[e],r)},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=z.safePush(this._hookHandlers.before_outgoing_call_action[e],r)},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=z.safePush(this._hookHandlers.after_incoming_event[e],r)},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=z.safePush(this._hookHandlers.after_incoming_message[e],r)},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=z.safePush(this._hookHandlers.after_outgoing_message[e],r)},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=z.safePush(this._hookHandlers.after_outgoing_call_action[e],r)}};handler=Vf(this);start=e=>br(this.handler,e)};var ua=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.entities=e.entities??{};let r=this._getEntityReference(this.entities),n=e.events===void 0?{}:te.mapValues(e.events,i=>({...i,schema:i.schema(r)})),a=e.actions===void 0?{}:te.mapValues(e.actions,i=>({...i,input:{...i.input,schema:i.input.schema(r)},output:{...i.output,schema:i.output.schema(r)}})),s=e.channels===void 0?{}:te.mapValues(e.channels,i=>({...i,messages:te.mapValues(i.messages,o=>({...o,schema:o.schema(r)}))}));this.events=n,this.actions=a,this.channels=s}name;version;entities;events;actions;channels;_getEntityReference=e=>{let r={};for(let[n,a]of Object.entries(e)){let s=a.schema._def["x-zui"]?.title,i=a.schema._def.description,o=Sf.ref(n);s&&o.title(s),i&&o.describe(i),r[n]=o}return r}};var ca=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.icon=e.icon,this.readme=e.readme,this.title=e.title,this.description=e.description,this.integrations=e.integrations,this.interfaces=e.interfaces,this.user=e.user,this.conversation=e.conversation,this.message=e.message,this.states=e.states,this.configuration=e.configuration,this.events=e.events,this.recurringEvents=e.recurringEvents,this.actions=e.actions,this.tables=e.tables}name;version;title;description;icon;readme;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions;tables};var Qs=":";var qf=t=>{let[e,r]=t.split(Qs);return!e||!r?null:{namespace:e,eventName:r}},Gf=t=>`${t.namespace}${Qs}${t.actionName}`,Wf=t=>`${t.namespace}${Qs}${t.eventName}`,Jf=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,a=r.actions[t.actionName]?.name??t.actionName;return{namespace:n,actionName:a}},Yf=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,a=r.events[t.eventName]?.name??t.eventName;return{namespace:n,eventName:a}};var Xf=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(a,s)=>i=>rb({client:t,interfaces:e,integrationOrInterfaceName:n,methodName:s,input:i})})}),rb=async({client:t,interfaces:e,integrationOrInterfaceName:r,methodName:n,input:a})=>{let s=Jf({namespace:r,actionName:n},e),i=Gf(s);return(await t.callAction({type:i,input:a})).output};var la=class{constructor(e){this.props=e;this._actionHandlers=e.actions}_runtimeProps;_actionHandlers;_messageHandlers={};_eventHandlers={};_stateExpiredHandlers={};_hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{}};initialize(e){return this._runtimeProps=e,this}get _runtime(){if(!this._runtimeProps)throw new Error("Plugin not correctly initialized. This is likely because you access your plugin config outside of an handler.");return this._runtimeProps}_getTools(e){let{configuration:r,interfaces:n}=this._runtime,a=Xf(e,n);return{configuration:r,interfaces:n,actions:a}}get actionHandlers(){let e=this._actionHandlers,r={};for(let[n,a]of te.pairs(e))r[n]=async s=>a({...s,...this._getTools(s.client)});return r}get messageHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._messageHandlers[r]??[],a=this._messageHandlers["*"]??[];return z.unique([...n,...a]).map(i=>vt.setName(o=>i({...o,...this._getTools(o.client)}),i.name))}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._eventHandlers[r]??[],a=Object.entries(this._eventHandlers).filter(([o])=>this._eventResolvesTo(o,r)).flatMap(([,o])=>o??[]),s=this._eventHandlers["*"]??[];return z.unique([...n,...a,...s]).map(o=>vt.setName(d=>o({...d,...this._getTools(d.client)}),o.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._stateExpiredHandlers[r]??[],a=this._stateExpiredHandlers["*"]??[];return z.unique([...n,...a]).map(i=>vt.setName(o=>i({...o,...this._getTools(o.client)}),i.name))}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._hookHandlers[r];if(n)return new Proxy({},{get:(a,s)=>{let i=n[s]??[],o=Object.entries(n).filter(([y])=>this._eventResolvesTo(y,s)).flatMap(([,y])=>y??[]),d=n["*"]??[];return z.unique([...i,...o,...d]).map(y=>vt.setName(T=>y({...T,...this._getTools(T.client)}),y.name))}})}})}on={message:(e,r)=>{this._messageHandlers[e]=z.safePush(this._messageHandlers[e],r)},event:(e,r)=>{this._eventHandlers[e]=z.safePush(this._eventHandlers[e],r)},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=z.safePush(this._stateExpiredHandlers[e],r)},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=z.safePush(this._hookHandlers.before_incoming_event[e],r)},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=z.safePush(this._hookHandlers.before_incoming_message[e],r)},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=z.safePush(this._hookHandlers.before_outgoing_message[e],r)},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=z.safePush(this._hookHandlers.before_outgoing_call_action[e],r)},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=z.safePush(this._hookHandlers.after_incoming_event[e],r)},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=z.safePush(this._hookHandlers.after_incoming_message[e],r)},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=z.safePush(this._hookHandlers.after_outgoing_message[e],r)},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=z.safePush(this._hookHandlers.after_outgoing_call_action[e],r)}};_eventResolvesTo=(e,r)=>{let n=qf(e);if(!n)return!1;let a=Yf(n,this._runtime.interfaces);return Wf(a)===r}};0&&(module.exports={BRAND,Bot,BotDefinition,BotLogger,BotSpecificClient,DIRTY,EMPTY_PATH,ErrorBoundary,INVALID,Integration,IntegrationDefinition,IntegrationLogger,IntegrationSpecificClient,InterfaceDefinition,NEVER,OK,ParseInputLazyPath,ParseStatus,Plugin,PluginDefinition,RuntimeError,Schema,ZodAny,ZodArray,ZodBigInt,ZodBoolean,ZodBranded,ZodCatch,ZodDate,ZodDefault,ZodDiscriminatedUnion,ZodEffects,ZodEnum,ZodError,ZodFirstPartyTypeKind,ZodFunction,ZodIntersection,ZodIssueCode,ZodLazy,ZodLiteral,ZodMap,ZodNaN,ZodNativeEnum,ZodNever,ZodNull,ZodNullable,ZodNumber,ZodObject,ZodOptional,ZodParsedType,ZodPipeline,ZodPromise,ZodReadonly,ZodRecord,ZodRef,ZodSchema,ZodSet,ZodString,ZodSymbol,ZodTransformer,ZodTuple,ZodType,ZodUndefined,ZodUnion,ZodUnknown,ZodVoid,ZuiForm,addIssueToContext,agent,aimodel,any,array,bigint,boolean,botIdHeader,botUserIdHeader,coerce,configurationHeader,configurationTypeHeader,conversation,createZodEnum,cuid2Regex,cuidRegex,custom,datasource,date,datetimeRegex,defaultComponentDefinitions,discriminatedUnion,effect,emailRegex,enum:null,errorUtil,event,fromJsonSchema,fromObject,function:null,getErrorMap,getParsedType,instanceof:null,integrationIdHeader,intent,intersection,ipv4Regex,ipv6Regex,isAborted,isApiError,isAsync,isDirty,isEmojiRegex,isValid,jsonSchemaToZui,knowledgebase,late,lazy,literal,makeIssue,map,mergeObjectSchemas,message,messages,nan,nativeEnum,never,null:null,nullable,number,object,objectToZui,objectUtil,oboolean,onumber,operationHeader,optional,ostring,parseBody,pipeline,preprocess,processCreateParams,promise,quotelessJson,readonly,record,ref,serve,set,setErrorMap,strictObject,string,symbol,table,tablerow,transformer,transforms,tuple,typeHeader,ulidRegex,undefined,union,unknown,user,util,uuidRegex,variable,void:null,webhookIdHeader,withErrorBoundary,z,zuiToJsonSchema});
|
|
89
|
+
`,a+="})"}let s=r?a?r+a:n?n==="z.never()"?r+".strict()":r+`.catchall(${n})`:r:a||(n?`z.record(${n})`:"z.record(z.any())");return ie.an.anyOf(t)&&(s+=`.and(${Tf(m(l({},t),{anyOf:t.anyOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?m(l({},i),{type:"object"}):i)}),e)})`),ie.a.oneOf(t)&&(s+=`.and(${Ks(m(l({},t),{oneOf:t.oneOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?m(l({},i),{type:"object"}):i)}),e)})`),ie.an.allOf(t)&&(s+=`.and(${dr(m(l({},t),{allOf:t.allOf.map(i=>typeof i=="object"&&!i.type&&(i.properties||i.additionalProperties||i.patternProperties)?m(l({},i),{type:"object"}):i)}),e)})`),s}u(Pf,"parseObject");var f_=u(t=>{var e;let r="z.string()";if((e=t[U])!=null&&e.coerce){if(t.format==="date-time")return"z.coerce.date()";r="z.coerce.string()"}return r+=fe(t,"format",({value:n})=>{switch(n){case"email":return[".email(",")"];case"ip":return[".ip(",")"];case"ipv4":return['.ip({ version: "v4"',", message: "," })"];case"ipv6":return['.ip({ version: "v6"',", message: "," })"];case"uri":return[".url(",")"];case"uuid":return[".uuid(",")"];case"date-time":return[".datetime(",")"]}}),r+=fe(t,"pattern",({json:n})=>[`.regex(new RegExp(${n})`,", ",")"]),r+=fe(t,"minLength",({json:n})=>[`.min(${n}`,", ",")"]),r+=fe(t,"maxLength",({json:n})=>[`.max(${n}`,", ",")"]),r},"parseString"),p_=u((t,e)=>`${le(s_(t,"nullable"),e,!0)}.nullable()`,"parseNullable"),g_=u(t=>`z.ref('${t.$ref}')`,"parseRef"),m_=u((t,e)=>{var r,n;if(t.oneOf.length<=1||!((r=t.discriminator)!=null&&r.propertyName))return Ks(t,e);let a=t.oneOf.map((s,i)=>le(s,m(l({},e),{path:[...e.path,"oneOf",i]})));return`z.discriminatedUnion("${(n=t.discriminator)==null?void 0:n.propertyName}", [${a.join(", ")}])`},"parseDiscriminator"),le=u((t,e={seen:new Map,path:[]},r)=>{if(typeof t!="object")return t?"z.any()":"z.never()";if(e.parserOverride){let s=e.parserOverride(t,e);if(typeof s=="string")return s}let n=e.seen.get(t);if(n){if(n.r!==void 0)return n.r;if(e.depth===void 0||n.n>=e.depth)return"z.any()";n.n+=1}else n={r:void 0,n:0},e.seen.set(t,n);let a=v_(t,e);return r||(a=h_(t,a),e.withoutDefaults||(a=y_(t,a))),n.r=a,a},"parseSchema"),h_=u((t,e)=>(t.description&&(e+=`.describe(${JSON.stringify(t.description)})`),e),"addMeta"),y_=u((t,e)=>(t.default!==void 0&&(e+=`.default(${JSON.stringify(t.default)})`),e),"addDefaults"),v_=u((t,e)=>ie.a.nullable(t)?p_(t,e):ie.an.object(t)?Pf(t,e):ie.an.array(t)?o_(t,e):ie.an.anyOf(t)?Tf(t,e):ie.an.allOf(t)?dr(t,e):ie.a.discriminator(t)?m_(t,e):ie.a.oneOf(t)?Ks(t,e):ie.a.not(t)?r_(t,e):ie.an.enum(t)?c_(t):ie.a.const(t)?u_(t):ie.a.multipleType(t)?t_(t,e):ie.a.primitive(t,"string")?f_(t):ie.a.primitive(t,"number")||ie.a.primitive(t,"integer")?d_(t):ie.a.primitive(t,"boolean")?Qv(t):ie.a.primitive(t,"null")?n_(t):ie.a.conditional(t)?l_(t,e):ie.a.ref(t)?g_(t):e_(t),"selectParser"),ie={an:{object:u(t=>t.type==="object","object"),array:u(t=>t.type==="array","array"),anyOf:u(t=>t.anyOf!==void 0,"anyOf"),allOf:u(t=>t.allOf!==void 0,"allOf"),enum:u(t=>t.enum!==void 0,"enum")},a:{nullable:u(t=>t.nullable===!0,"nullable"),multipleType:u(t=>Array.isArray(t.type),"multipleType"),not:u(t=>t.not!==void 0,"not"),const:u(t=>t.const!==void 0,"const"),primitive:u((t,e)=>t.type===e,"primitive"),conditional:u(t=>Boolean("if"in t&&t.if&&"then"in t&&"else"in t&&t.then&&t.else),"conditional"),discriminator:u(t=>{var e;return t.oneOf!==void 0&&((e=t.discriminator)==null?void 0:e.propertyName)!==void 0},"discriminator"),oneOf:u(t=>t.oneOf!==void 0,"oneOf"),ref:u(t=>t.$ref!==void 0,"ref")}},__=u(t=>{let e;try{e=new Function("z",`return ${t}`)(v)}catch(r){return{sucess:!1,error:`Failed to evaluate schema: ${(r instanceof Error?r:new Error(String(r))).message}`}}return e instanceof v.ZodType?{sucess:!0,value:e}:{sucess:!1,error:`String "${t}" does not evaluate to a Zod schema`}},"evalZuiString"),b_=u(t=>le(t,{seen:new Map,path:[]}),"jsonSchemaToZodStr"),T_=u(t=>{let e=b_(t);e=e.replaceAll("errors: z.ZodError[]","errors");let r=__(e);if(!r.sucess)throw new Qo(r.error);return r.value},"jsonSchemaToZod"),nr=u((t,e)=>{var r,n;if(e[U]&&t._def&&(t._def[U]=e[U]),((r=t._def)==null?void 0:r.typeName)==="ZodObject"&&e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([a,s])=>{let i=typeof t._def.shape=="function"?t._def.shape():t._def.shape;i[a]&&nr(i[a],s)}),((n=t._def)==null?void 0:n.typeName)==="ZodRecord"&&e.type==="object"&&e.additionalProperties&&nr(t._def.valueType,e.additionalProperties),e.type==="array"&&e.items){let a=e.items;if(typeof a=="object"&&!Array.isArray(a)){let s=t._def.type;s&&nr(s,a)}else Array.isArray(a)&&a.forEach((s,i)=>{let o=t._def;o.typeName===S.ZodFirstPartyTypeKind.ZodTuple&&nr(o.items[i],s)})}},"applyZuiPropsRecursively"),hr=u(t=>{let e=T_(t);return nr(e,t),e},"jsonSchemaToZui"),Ef=class extends Nt.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,r){console.error("Uncaught error:",e,r)}render(){return this.state.hasError&&this.props.fallback?Nt.default.createElement(this.props.fallback,{error:this.state.error,schema:this.props.fieldSchema}):this.props.children}};u(Ef,"ErrorBoundary");var At=Ef;function xf(t,e){return r=>Nt.default.createElement(At,{fallback:e,fieldSchema:r.fieldSchema,path:r.path},Nt.default.createElement(t,l({},r)))}u(xf,"withErrorBoundary");var Vr=u(t=>{var e=t,{components:r,fieldSchema:n,path:a,required:s,fallback:i}=e,o=Mo(e,["components","fieldSchema","path","required","fallback"]),d,p;let{formData:y,disabled:T,hidden:k,handlePropertyChange:P,addArrayItem:D,removeArrayItem:K,formErrors:G,formValid:se}=No(n,a),q=(0,be.useMemo)(()=>at(y,a),[y,a]),H=(0,be.useMemo)(()=>Rg(r,n),[n,r]),{discriminator:J,discriminatedSchema:ce,discriminatorValue:Le}=Ig(n,a);if(!H||k===!0)return null;let{Component:Xe,type:Oe}=H,Te={type:Oe,componentID:H.id,scope:a.join("."),context:{path:a,readonly:!1,formData:y,formErrors:G,formValid:se,updateForm:P,updateFormData:u(Pe=>P([],Pe),"updateFormData")},onChange:u(Pe=>P(a,Pe),"onChange"),disabled:T,errors:G?.filter(Pe=>Pe.path===a)||[],label:((d=n[U])==null?void 0:d.title)||Fa(((p=a[a.length-1])==null?void 0:p.toString())||""),params:H.params,schema:n,zuiProps:n[U]};if(n.type==="array"&&Oe==="array"){let Pe=Xe,_e=Te.schema,Ee=Array.isArray(q)||typeof q=="object"?q:[],j=l(m(l({},Te),{type:Oe,schema:_e,data:Ee,addItem:u(Ce=>D(a,Ce),"addItem"),removeItem:u(Ce=>K(a,Ce),"removeItem")}),o);return Array.isArray(n.items)?null:be.default.createElement(Pe,m(l({key:Te.scope},j),{isArrayChild:j.isArrayChild}),Array.isArray(j.data)?j.data.map((Ce,ke)=>{let ze=[...a,ke.toString()];return be.default.createElement(At,{key:ze.join("."),fallback:i,fieldSchema:n.items,path:ze},be.default.createElement(Vr,{key:ze.join("."),components:r,fieldSchema:n.items,path:ze,required:s,isArrayChild:!0,index:ke,removeSelf:()=>K(a,ke),fallback:i}))}):[])}if(n.type==="object"&&Oe==="object"&&n.properties){let Pe=Xe,_e=l(m(l({},Te),{type:Oe,schema:Te.schema,data:q||{}}),o);return be.default.createElement(Pe,m(l({key:Te.scope},_e),{isArrayChild:_e.isArrayChild}),Object.entries(n.properties).map(([Ee,j])=>{var Ce;let ke=[...a,Ee];return be.default.createElement(At,{key:ke.join("."),fallback:i,fieldSchema:j,path:ke},be.default.createElement(Vr,{key:ke.join("."),components:r,fieldSchema:j,path:ke,required:((Ce=n.required)==null?void 0:Ce.includes(Ee))||!1,isArrayChild:!1,fallback:i}))}))}if(Oe==="discriminatedUnion"){let Pe=Xe,_e=l(m(l({},Te),{type:Oe,schema:Te.schema,data:q||{},discriminatorKey:J?.key||null,discriminatorLabel:Fa(J?.key||"Unknown"),discriminatorOptions:J?.values||null,discriminatorValue:Le,setDiscriminator:u(Ee=>{if(!J?.key){console.warn("No discriminator key found, cannot set discriminator");return}P(a,{[J.key]:Ee})},"setDiscriminator")}),o);return be.default.createElement(Pe,m(l({key:Te.scope},_e),{isArrayChild:_e.isArrayChild}),ce&&be.default.createElement(At,{key:a.join("."),fallback:i,fieldSchema:ce,path:a},be.default.createElement(Vr,{components:r,fieldSchema:ce,path:a,required:s,isArrayChild:!1,fallback:i})))}let fa=Xe,pa=l(m(l({},Te),{type:Oe,schema:Te.schema,config:{},required:s,data:q,description:n.description}),o);return be.default.createElement(fa,l({},pa))},"FormElementRenderer"),P_=u(({schema:t,components:e,onChange:r,value:n,disableValidation:a,fallback:s,dataTransform:i,onValidation:o})=>{let[d,p]=(0,Ne.useState)(n);return(0,Ne.useEffect)(()=>{r(d)},[d]),(0,Ne.useEffect)(()=>{let y=It(t);p(T=>Gr(y,T))},[JSON.stringify(t),p]),Ne.default.createElement(Cg,{formData:d,setFormData:p,formSchema:t,disableValidation:a||!1,dataTransform:i,onValidation:o},Ne.default.createElement(At,{fallback:s,fieldSchema:t,path:[]},Ne.default.createElement(Vr,{components:e,fieldSchema:t,path:[],fallback:s,required:!0,isArrayChild:!1})))},"ZuiForm"),E_={string:{},number:{slider:{id:"slider",params:v.object({})}},boolean:{switch:{id:"switch",params:v.object({})}},array:{},object:{},discriminatedUnion:{}},x_={errors:Jo,jsonSchemaToZui:hr,zuiToJsonSchema:ea,objectToZui:Ht,toTypescript:Wr,toTypescriptSchema:hs};var Ft=(t,e)=>{let r=t._def,n=e._def;if(r.typeName===S.ZodFirstPartyTypeKind.ZodObject&&n.typeName===S.ZodFirstPartyTypeKind.ZodObject){let a=r.shape(),s=n.shape();return S.object({...a,...s})}if(r.typeName===S.ZodFirstPartyTypeKind.ZodRecord&&n.typeName===S.ZodFirstPartyTypeKind.ZodRecord)return S.record(S.intersection(r.valueType,n.valueType));throw new Error("Cannot merge object schemas with record schemas")},Sf=S;var ve=S.string().min(1),kf=S.object({text:ve}),Of=S.object({markdown:ve}),Cf=S.object({imageUrl:ve}),If=S.object({audioUrl:ve}),Zf=S.object({videoUrl:ve}),Af=S.object({fileUrl:ve,title:ve.optional()}),Rf=S.object({latitude:S.number(),longitude:S.number(),address:S.string().optional(),title:S.string().optional()}),Bf=S.object({title:ve,subtitle:ve.optional(),imageUrl:ve.optional(),actions:S.array(S.object({action:S.enum(["postback","url","say"]),label:ve,value:ve}))}),wf=S.object({text:ve,options:S.array(S.object({label:ve,value:ve}))}),S_=S.object({items:S.array(Bf)}),w_=S.union([S.object({type:S.literal("text"),payload:kf}),S.object({type:S.literal("markdown"),payload:Of}),S.object({type:S.literal("image"),payload:Cf}),S.object({type:S.literal("audio"),payload:If}),S.object({type:S.literal("video"),payload:Zf}),S.object({type:S.literal("file"),payload:Af}),S.object({type:S.literal("location"),payload:Rf})]),k_=S.object({items:S.array(w_)}),O_={schema:Of},C_={text:{schema:kf},image:{schema:Cf},audio:{schema:If},video:{schema:Zf},file:{schema:Af},location:{schema:Rf},carousel:{schema:S_},card:{schema:Bf},dropdown:{schema:wf},choice:{schema:wf},bloc:{schema:k_}};var yr="x-bot-id",qs="x-bot-user-id",Gs="x-integration-id",Ws="x-webhook-id",Js="x-bp-configuration-type",vr="x-bp-configuration",_r="x-bp-operation",Ys="x-bp-type";var Df=require("browser-or-node");var Lt=console;function we(t){if(!t.body)throw new Error("Missing body");return JSON.parse(t.body)}async function br(t,e=8072,r=R_){if(!Df.isNode)throw new Error("This function can only be called in Node.js");let a=require("http").createServer(async(s,i)=>{try{let o=await I_(s);if(o.path==="/health"){i.writeHead(200).end("ok");return}let d=await t(o);i.writeHead(d?.status??200,d?.headers??{}).end(d?.body??"{}")}catch(o){Lt.error("Error while handling request",{error:o?.message??"Internal error occured"}),i.writeHead(500).end(JSON.stringify({error:o?.message??"Internal error occured"}))}});return a.listen(e,()=>r(e)),a}async function I_(t){let e=await A_(t),r={};for(let a=0;a<t.rawHeaders.length;a+=2){let s=t.rawHeaders[a].toLowerCase(),i=t.rawHeaders[a+1];r[s]=i}let n=new URL(t.url??"",t.headers.host?`http://${t.headers.host}`:"http://botpress.cloud");return{body:e,path:n.pathname,query:Z_(n.search,"?"),headers:r,method:t.method?.toUpperCase()??"GET"}}function Z_(t,e){return t.indexOf(e)===0?t.slice(e.length):t}async function A_(t){return new Promise((e,r)=>{if(t.method!=="POST"&&t.method!=="PUT"&&t.method!=="PATCH")return e(void 0);let n="";t.on("data",a=>n+=a.toString()),t.on("error",a=>r(a)),t.on("end",()=>e(n))})}function R_(t){Lt.info(`Listening on port ${t}`)}var da=require("@botpress/client");var te={};Jt(te,{mapValues:()=>D_,mergeRecords:()=>j_,pairs:()=>Xs,stripUndefinedProps:()=>M_,values:()=>B_});var Xs=t=>Object.entries(t),B_=t=>Object.values(t),D_=(t,e)=>Object.fromEntries(Xs(t).map(([r,n])=>[r,e(n,r)])),M_=t=>Object.fromEntries(Xs(t).filter(([,e])=>e!==void 0)),j_=(t,e,r)=>{let n=[...Object.keys(t),...Object.keys(e)],a=[...new Set(n)],s={};for(let i of a){let o=t[i],d=e[i];o&&d?s[i]=r(o,d):o?s[i]=o:d&&(s[i]=d)}return s};var z={};Jt(z,{safePush:()=>H_,unique:()=>N_});var H_=(t,...e)=>t?[...t,...e]:[...e],N_=t=>Array.from(new Set(t));var vt={};Jt(vt,{setName:()=>$_});var $_=(t,e)=>(Object.defineProperty(t,"name",{value:e}),t);var Mf=t=>{let{name:e,version:r}=t,n={actions:{},events:{},channels:{}},a={name:e,version:r,entities:te.mapValues(t.entities,i=>({name:i.name})),actions:{},events:{},channels:{}},s=te.mapValues(t.entities,i=>i.schema);for(let[i,o]of Object.entries(t.definition.actions??{})){let d=o.input.schema.dereference(s),p=o.output.schema.dereference(s),y=t.actions?.[i]?.name??i;n.actions[y]={...o,...t.actions?.[i]??{},input:{schema:d},output:{schema:p}},a.actions[i]={name:y}}for(let[i,o]of Object.entries(t.definition.events??{})){let d=o.schema.dereference(s),p=t.events?.[i]?.name??i;n.events[p]={...o,...t.events?.[i]??{},schema:d},a.events[i]={name:p}}for(let[i,o]of Object.entries(t.definition.channels??{})){let d={};for(let[y,T]of Object.entries(o.messages)){let k=T.schema.dereference(s);d[y]={...T,schema:k}}let p=t.channels?.[i]?.name??i;n.channels[p]={...o,...t.channels?.[i]??{},message:{...o.message??{},tags:{...o.message?.tags??{},...t.channels?.[i]?.message?.tags??{}}},conversation:{...o.conversation??{},tags:{...o.conversation?.tags??{},...t.channels?.[i]?.conversation?.tags??{}}},messages:d},a.channels[i]={name:p}}return{resolved:n,statement:a}};var ta=Symbol("schemaName"),jf=t=>t?te.mapValues(t,(r,n)=>({...r,[ta]:n})):{},Hf=t=>ta in t&&t[ta]!==void 0,Nf=t=>t[ta];var ra=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.icon=e.icon,this.readme=e.readme,this.title=e.title,this.identifier=e.identifier,this.description=e.description,this.configuration=e.configuration,this.configurations=e.configurations,this.events=e.events,this.actions=e.actions,this.channels=e.channels,this.states=e.states,this.user=e.user,this.secrets=e.secrets,this.entities=e.entities,this.interfaces=e.interfaces,this.__advanced=e.__advanced}name;version;title;description;icon;readme;configuration;configurations;events;actions;channels;states;user;secrets;identifier;entities;interfaces;__advanced;extend(e,r){let{entities:n,actions:a,events:s,channels:i}=this._callBuilder(e,r),o=this;o.interfaces??={};let d=Object.values(n).map(k=>k.name),p=d.length===0?e.name:`${e.name}<${d.join(",")}>`,{resolved:y,statement:T}=Mf({...e,entities:n,actions:te.stripUndefinedProps(a),events:te.stripUndefinedProps(s),channels:te.stripUndefinedProps(i)});return o.actions=te.mergeRecords(o.actions??{},y.actions,this._mergeActions),o.channels=te.mergeRecords(o.channels??{},y.channels,this._mergeChannels),o.events=te.mergeRecords(o.events??{},y.events,this._mergeEvents),o.interfaces[p]={id:e.id,...T},this}_callBuilder(e,r){let a={entities:jf(this.entities)},s=r(a),i=te.pairs(s.entities).find(([d,p])=>!Hf(p));if(i)throw new Error(`Cannot extend interface "${e.name}" with entity "${i[0]}"; the provided schema is not part of the integration's entities.`);return{entities:te.mapValues(s.entities,d=>({name:Nf(d),schema:d.schema})),actions:s.actions??{},events:s.events??{},channels:s.channels??{}}}_mergeActions=(e,r)=>({...e,...r,input:{schema:Ft(e.input.schema,r.input.schema)},output:{schema:Ft(e.input.schema,r.output.schema)}});_mergeEvents=(e,r)=>({...e,...r,schema:Ft(e.schema,r.schema)});_mergeChannels=(e,r)=>{let n=te.mergeRecords(e.messages,r.messages,this._mergeMessage),a;(e.conversation||r.conversation)&&(a={tags:{...e.conversation?.tags,...r.conversation?.tags}});let s;return(e.message||r.message)&&(s={tags:{...e.message?.tags,...r.message?.tags}}),{...e,...r,messages:n,conversation:a,message:s}};_mergeMessage=(e,r)=>({schema:Ft(e.schema,r.schema)})};var _t=require("@botpress/client");var $f=require("@botpress/client"),na={retries:3,retryCondition:t=>$f.axiosRetry.isNetworkOrIdempotentRequestError(t)||[429,502].includes(t.response?.status??0),retryDelay:t=>t*1e3};var Kt=class{constructor(e){this._client=e}createConversation=e=>this._client.createConversation(e);getConversation=e=>this._client.getConversation(e);listConversations=e=>this._client.listConversations(e);getOrCreateConversation=e=>this._client.getOrCreateConversation(e);updateConversation=e=>this._client.updateConversation(e);deleteConversation=e=>this._client.deleteConversation(e);listParticipants=e=>this._client.listParticipants(e);addParticipant=e=>this._client.addParticipant(e);getParticipant=e=>this._client.getParticipant(e);removeParticipant=e=>this._client.removeParticipant(e);createEvent=e=>this._client.createEvent(e);getEvent=e=>this._client.getEvent(e);listEvents=e=>this._client.listEvents(e);createMessage=e=>this._client.createMessage(e);getOrCreateMessage=e=>this._client.getOrCreateMessage(e);getMessage=e=>this._client.getMessage(e);updateMessage=e=>this._client.updateMessage(e);listMessages=e=>this._client.listMessages(e);deleteMessage=e=>this._client.deleteMessage(e);createUser=e=>this._client.createUser(e);getUser=e=>this._client.getUser(e);listUsers=e=>this._client.listUsers(e);getOrCreateUser=e=>this._client.getOrCreateUser(e);updateUser=e=>this._client.updateUser(e);deleteUser=e=>this._client.deleteUser(e);getState=e=>this._client.getState(e);setState=e=>this._client.setState(e);getOrSetState=e=>this._client.getOrSetState(e);patchState=e=>this._client.patchState(e);configureIntegration=e=>this._client.configureIntegration(e);uploadFile=e=>this._client.uploadFile(e);upsertFile=e=>this._client.upsertFile(e);deleteFile=e=>this._client.deleteFile(e);listFiles=e=>this._client.listFiles(e);getFile=e=>this._client.getFile(e);updateFileMetadata=e=>this._client.updateFileMetadata(e)};var aa=class{_cost=0;get cost(){return this._cost}setCost(e){this._cost=e}toJSON(){return{cost:this.cost}}};var U_=S.enum(["webhook_received","message_created","action_triggered","register","unregister","ping","create_user","create_conversation"]),Uf=t=>{let e=t[yr],r=t[qs],n=t[Gs],a=t[Ws],s=t[Js],i=t[vr],o=U_.parse(t[_r]);if(!e)throw new Error("Missing bot headers");if(!r)throw new Error("Missing bot user headers");if(!n)throw new Error("Missing integration headers");if(!a)throw new Error("Missing webhook headers");if(!i)throw new Error("Missing configuration headers");if(!o)throw new Error("Missing operation headers");return{botId:e,botUserId:r,integrationId:n,webhookId:a,operation:o,configurationType:s??null,configuration:i?JSON.parse(Buffer.from(i,"base64").toString("utf-8")):{}}};var Ff=et(require("util")),Vt=class{defaultOptions;constructor(e){this.defaultOptions=e}info(...e){this._log("info",e)}debug(...e){this._log("debug",e)}warn(...e){this._log("warn",e)}error(...e){this._log("error",e)}_log(e,r){this._getConsoleMethod(e)(this._serializeMessage(r))}_serializeMessage(e){let r=Ff.default.format(...e);return process.env.BP_LOG_FORMAT==="json"?this.getJsonMessage(r):r}getJsonMessage(e){return JSON.stringify({msg:e,options:this.defaultOptions})}_getConsoleMethod(e){switch(e){case"debug":return console.debug;case"warn":return console.warn;case"error":return console.error;default:return console.info}}};var Je=class extends Vt{constructor(e){super({visibleToBotOwners:!0,...e})}with(e){return new Je({...this.defaultOptions,...e})}withUserId(e){return this.with({userId:e})}withConversationId(e){return this.with({conversationId:e})}withVisibleToBotOwners(e){return this.with({visibleToBotOwners:e})}forBot(){return this.withVisibleToBotOwners(!0)}getJsonMessage(e){return JSON.stringify({msg:e,visible_to_bot_owner:this.defaultOptions.visibleToBotOwners,options:this.defaultOptions})}};var Lf=t=>async e=>{let r=Uf(e.headers),n=new _t.Client({botId:r.botId,integrationId:r.integrationId,retry:na}),a=new Kt(n),s=new Je,i={ctx:r,req:e,client:a,logger:s,instance:t};try{let o;switch(r.operation){case"webhook_received":o=await L_(i);break;case"register":o=await z_(i);break;case"unregister":o=await K_(i);break;case"message_created":o=await G_(i);break;case"action_triggered":o=await W_(i);break;case"ping":o=await F_(i);break;case"create_user":o=await V_(i);break;case"create_conversation":o=await q_(i);break;default:throw new Error(`Unknown operation ${r.operation}`)}return o?{...o,status:o.status??200}:{status:200}}catch(o){if((0,_t.isApiError)(o)){let p=o.type==="Runtime"?o:new _t.RuntimeError(o.message,o);return s.forBot().error(p.message),{status:p.code,body:JSON.stringify(p.toJSON())}}console.error(o);let d=new _t.RuntimeError("An unexpected error occurred in the integration. Bot owners: Check logs for more informations. Integration owners: throw a RuntimeError to return a custom error message instead.");return s.forBot().error(d.message),{status:d.code,body:JSON.stringify(d.toJSON())}}},F_=async t=>{},L_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{let{req:s}=we(r);return a.webhook({client:t,ctx:e,req:s,logger:n})},z_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.register)return;let{webhookUrl:s}=we(r);await a.register({client:t,ctx:e,webhookUrl:s,logger:n})},K_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.unregister)return;let{webhookUrl:s}=we(r);await a.unregister({ctx:e,webhookUrl:s,client:t,logger:n})},V_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createUser)return;let{tags:s}=we(r);return await a.createUser({ctx:e,client:t,tags:s,logger:n})},q_=async({client:t,ctx:e,req:r,logger:n,instance:a})=>{if(!a.createConversation)return;let{channel:s,tags:i}=we(r);return await a.createConversation({ctx:e,client:t,channel:s,tags:i,logger:n})},G_=async({ctx:t,req:e,client:r,logger:n,instance:a})=>{let{conversation:s,user:i,type:o,payload:d,message:p}=we(e),y=a.channels[s.channel];if(!y)throw new Error(`Channel ${s.channel} not found`);let T=y.messages[o];if(!T)throw new Error(`Message of type ${o} not found in channel ${s.channel}`);await T({ctx:t,conversation:s,message:p,user:i,type:o,client:r,payload:d,ack:async({tags:P})=>{await r.updateMessage({id:p.id,tags:P})},logger:n})},W_=async({req:t,ctx:e,client:r,logger:n,instance:a})=>{let{input:s,type:i}=we(t);if(!i)throw new Error("Missing action type");let o=a.actions[i];if(!o)throw new Error(`Action ${i} not found`);let d=new aa,y={output:await o({ctx:e,input:s,client:r,type:i,logger:n,metadata:d}),meta:d.toJSON()};return{body:JSON.stringify(y)}};var sa=class{constructor(e){this.props=e;this.actions=e.actions,this.channels=e.channels,this.register=e.register,this.unregister=e.unregister,this.createUser=e.createUser,this.createConversation=e.createConversation,this.webhook=e.handler}actions;channels;register;unregister;createUser;createConversation;webhook;handler=Lf(this);start=e=>br(this.handler,e)};var ia=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}integrations;plugins;user;conversation;message;states;configuration;events;recurringEvents;actions;tables;addIntegration(e,r){let n=this;return n.integrations||(n.integrations={}),n.integrations[e.name]={enabled:r.enabled,...e,configurationType:r.configurationType,configuration:r.configuration},this}addPlugin(e,r){let n=this;return n.plugins||(n.plugins={}),n.plugins[e.name]={...e,configuration:r.configuration,interfaces:r.interfaces},n.user=this._mergeUser(n.user,e.definition.user),n.conversation=this._mergeConversation(n.conversation,e.definition.conversation),n.message=this._mergeMessage(n.message,e.definition.message),n.states=this._mergeStates(n.states,e.definition.states),n.events=this._mergeEvents(n.events,e.definition.events),n.recurringEvents=this._mergeRecurringEvents(n.recurringEvents,e.definition.recurringEvents),n.actions=this._mergeActions(n.actions,e.definition.actions),n.tables=this._mergeTables(n.tables,e.definition.tables),this}_mergeUser=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeConversation=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeMessage=(e,r)=>({tags:{...e?.tags,...r?.tags}});_mergeStates=(e,r)=>({...e,...r});_mergeEvents=(e,r)=>({...e,...r});_mergeRecurringEvents=(e,r)=>({...e,...r});_mergeActions=(e,r)=>({...e,...r});_mergeTables=(e,r)=>({...e,...r})};var Kf=et(require("@botpress/client"));var Ye=class extends Vt{constructor(e){super({...e})}with(e){return new Ye({...this.defaultOptions,...e})}withUserId(e){return this.with({userId:e})}withConversationId(e){return this.with({conversationId:e})}withWorkflowId(e){return this.with({workflowId:e})}};var Ze=class{constructor(e,r={before:{},after:{}}){this._client=e;this._hooks=r}getConversation=e=>this._run("getConversation",e);listConversations=e=>this._run("listConversations",e);updateConversation=e=>this._run("updateConversation",e);deleteConversation=e=>this._run("deleteConversation",e);listParticipants=e=>this._run("listParticipants",e);addParticipant=e=>this._run("addParticipant",e);getParticipant=e=>this._run("getParticipant",e);removeParticipant=e=>this._run("removeParticipant",e);createEvent=e=>this._run("createEvent",e);getEvent=e=>this._run("getEvent",e);listEvents=e=>this._run("listEvents",e);createMessage=e=>this._run("createMessage",e);getOrCreateMessage=e=>this._run("getOrCreateMessage",e);getMessage=e=>this._run("getMessage",e);updateMessage=e=>this._run("updateMessage",e);listMessages=e=>this._run("listMessages",e);deleteMessage=e=>this._run("deleteMessage",e);getUser=e=>this._run("getUser",e);listUsers=e=>this._run("listUsers",e);updateUser=e=>this._run("updateUser",e);deleteUser=e=>this._run("deleteUser",e);getState=e=>this._run("getState",e);setState=e=>this._run("setState",e);getOrSetState=e=>this._run("getOrSetState",e);patchState=e=>this._run("patchState",e);callAction=e=>this._run("callAction",e);uploadFile=e=>this._run("uploadFile",e);upsertFile=e=>this._run("upsertFile",e);deleteFile=e=>this._run("deleteFile",e);listFiles=e=>this._run("listFiles",e);getFile=e=>this._run("getFile",e);updateFileMetadata=e=>this._run("updateFileMetadata",e);searchFiles=e=>this._run("searchFiles",e);trackAnalytics=e=>this._run("trackAnalytics",e);getTableRow=e=>this._run("getTableRow",e);createTableRows=e=>this._run("createTableRows",e);findTableRows=e=>this._run("findTableRows",e);deleteTableRows=e=>this._run("deleteTableRows",e);updateTableRows=e=>this._run("updateTableRows",e);upsertTableRows=e=>this._run("upsertTableRows",e);createConversation=e=>this._client.createConversation(e);getOrCreateConversation=e=>this._client.getOrCreateConversation(e);createUser=e=>this._client.createUser(e);getOrCreateUser=e=>this._client.getOrCreateUser(e);_run=async(e,r)=>{let n=this._hooks.before[e];n&&(r=await n(r));let a=await this._client[e](r),s=this._hooks.after[e];return s&&(a=await s(a)),a}};var J_=S.enum(["event_received","register","unregister","ping","action_triggered"]),zf=t=>{let e=t[yr],r=t[vr],n=t[Ys],a=J_.parse(t[_r]);if(!e)throw new Error("Missing bot headers");if(!n)throw new Error("Missing type headers");if(!r)throw new Error("Missing configuration headers");if(!a)throw new Error("Missing operation headers");return{botId:e,operation:a,type:n,configuration:r?JSON.parse(Buffer.from(r,"base64").toString("utf-8")):{}}};var Ae={status:200},Vf=t=>async e=>{let r=zf(e.headers),n=new Ye,a=new Kf.Client({botId:r.botId,retry:na}),s=new Ze(a,{before:{createMessage:async o=>{let d=t.hookHandlers.before_outgoing_message[o.type]??[];for(let p of d)o=(await p({client:new Ze(a),ctx:r,logger:n,data:o}))?.data??o;return o},callAction:async o=>{let d=t.hookHandlers.before_outgoing_call_action[o.type]??[];for(let p of d)o=(await p({client:new Ze(a),ctx:r,logger:n,data:o}))?.data??o;return o}},after:{createMessage:async o=>{let d=t.hookHandlers.after_outgoing_message[o.message.type]??[];for(let p of d)o=(await p({client:new Ze(a),ctx:r,logger:n,data:o}))?.data??o;return o},callAction:async o=>{let d=t.hookHandlers.after_outgoing_call_action[o.output.type]??[];for(let p of d)o=(await p({client:new Ze(a),ctx:r,logger:n,data:o}))?.data??o;return o}}}),i={req:e,ctx:r,logger:n,client:s,self:t};switch(r.operation){case"action_triggered":return await tb(i);case"event_received":return await eb(i);case"register":return await X_(i);case"unregister":return await Q_(i);case"ping":return await Y_(i);default:throw new Error(`Unknown operation ${r.operation}`)}},Y_=async({ctx:t})=>(Lt.info(`Received ${t.operation} operation for bot ${t.botId} of type ${t.type}`),Ae),X_=async t=>Ae,Q_=async t=>Ae,eb=async({ctx:t,logger:e,req:r,client:n,self:a})=>{let s={client:n,ctx:t,logger:e};Lt.debug(`Received event ${t.type}`);let i=we(r);if(t.type==="message_created"){let k=i.event,P=k.payload.message,D=a.hookHandlers.before_incoming_message[P.type]??[];for(let q of D){let H=await q({...s,data:P});if(P=H?.data??P,H?.stop)return Ae}let K={...s,user:k.payload.user,conversation:k.payload.conversation,states:k.payload.states,message:P,event:k},G=a.messageHandlers[P.type]??[];for(let q of G)await q(K);let se=a.hookHandlers.after_incoming_message[P.type]??[];for(let q of se){let H=await q({...s,data:P});if(P=H?.data??P,H?.stop)return Ae}return Ae}if(t.type==="state_expired"){let P=i.event.payload.state,D={...s,state:P},K=a.stateExpiredHandlers["*"]??[];for(let G of K)await G(D);return Ae}let o=i.event,d=a.hookHandlers.before_incoming_event[o.type]??[];for(let k of d){let P=await k({...s,data:o});if(o=P?.data??o,P?.stop)return Ae}let p={...s,event:o},y=a.eventHandlers[o.type]??[];for(let k of y)await k(p);let T=a.hookHandlers.after_incoming_event[o.type]??[];for(let k of T){let P=await k({...s,data:o});if(o=P?.data??o,P?.stop)return Ae}return Ae},tb=async({ctx:t,logger:e,req:r,client:n,self:a})=>{let{input:s,type:i}=we(r);if(!i)throw new Error("Missing action type");let o=a.actionHandlers[i];if(!o)throw new Error(`Action ${i} not found`);let p={output:await o({ctx:t,logger:e,input:s,client:n,type:i})};return{status:200,body:JSON.stringify(p)}};var oa=class{constructor(e){this.props=e;this._actionHandlers=e.actions,this._plugins=e.plugins}_actionHandlers;_messageHandlers={};_eventHandlers={};_stateExpiredHandlers={};_hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{}};_plugins={};get actionHandlers(){let e=this._actionHandlers,r=Object.values(this._plugins).reduce((n,a)=>({...n,...a.actionHandlers}),{});return{...e,...r}}get messageHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._messageHandlers[r]??[],a=this._messageHandlers["*"]??[],s=[...n,...a],i=Object.values(this._plugins).flatMap(o=>o.messageHandlers[r]??[]);return z.unique([...s,...i])}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._eventHandlers[r]??[],a=this._eventHandlers["*"]??[],s=[...n,...a],i=Object.values(this._plugins).flatMap(o=>o.eventHandlers[r]??[]);return z.unique([...s,...i])}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._stateExpiredHandlers[r]??[],a=this._stateExpiredHandlers["*"]??[],s=[...n,...a],i=Object.values(this._plugins).flatMap(o=>o.stateExpiredHandlers[r]??[]);return z.unique([...s,...i])}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>new Proxy({},{get:(n,a)=>{let s=r,i=this._hookHandlers[s]??{},o=i[a]??[],d=i["*"]??[],p=[...o,...d],y=Object.values(this._plugins).flatMap(T=>T.hookHandlers[s]?.[a]??[]);return z.unique([...p,...y])}})})}on={message:(e,r)=>{this._messageHandlers[e]=z.safePush(this._messageHandlers[e],r)},event:(e,r)=>{this._eventHandlers[e]=z.safePush(this._eventHandlers[e],r)},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=z.safePush(this._stateExpiredHandlers[e],r)},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=z.safePush(this._hookHandlers.before_incoming_event[e],r)},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=z.safePush(this._hookHandlers.before_incoming_message[e],r)},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=z.safePush(this._hookHandlers.before_outgoing_message[e],r)},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=z.safePush(this._hookHandlers.before_outgoing_call_action[e],r)},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=z.safePush(this._hookHandlers.after_incoming_event[e],r)},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=z.safePush(this._hookHandlers.after_incoming_message[e],r)},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=z.safePush(this._hookHandlers.after_outgoing_message[e],r)},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=z.safePush(this._hookHandlers.after_outgoing_call_action[e],r)}};handler=Vf(this);start=e=>br(this.handler,e)};var ua=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.entities=e.entities??{};let r=this._getEntityReference(this.entities),n=e.events===void 0?{}:te.mapValues(e.events,i=>({...i,schema:i.schema(r)})),a=e.actions===void 0?{}:te.mapValues(e.actions,i=>({...i,input:{...i.input,schema:i.input.schema(r)},output:{...i.output,schema:i.output.schema(r)}})),s=e.channels===void 0?{}:te.mapValues(e.channels,i=>({...i,messages:te.mapValues(i.messages,o=>({...o,schema:o.schema(r)}))}));this.events=n,this.actions=a,this.channels=s}name;version;entities;events;actions;channels;_getEntityReference=e=>{let r={};for(let[n,a]of Object.entries(e)){let s=a.schema._def["x-zui"]?.title,i=a.schema._def.description,o=Sf.ref(n);s&&o.title(s),i&&o.describe(i),r[n]=o}return r}};var ca=class{constructor(e){this.props=e;this.name=e.name,this.version=e.version,this.icon=e.icon,this.readme=e.readme,this.title=e.title,this.description=e.description,this.integrations=e.integrations,this.interfaces=e.interfaces,this.user=e.user,this.conversation=e.conversation,this.message=e.message,this.states=e.states,this.configuration=e.configuration,this.events=e.events,this.recurringEvents=e.recurringEvents,this.actions=e.actions,this.tables=e.tables}name;version;title;description;icon;readme;integrations;interfaces;user;conversation;message;states;configuration;events;recurringEvents;actions;tables};var Qs=":";var qf=t=>{let[e,r]=t.split(Qs);return!e||!r?null:{namespace:e,eventName:r}},Gf=t=>`${t.namespace}${Qs}${t.actionName}`,Wf=t=>`${t.namespace}${Qs}${t.eventName}`,Jf=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,a=r.actions[t.actionName]?.name??t.actionName;return{namespace:n,actionName:a}},Yf=(t,e)=>{let r=e[t.namespace]??{name:t.namespace,version:"0.0.0",entities:{},actions:{},events:{},channels:{}},n=r.name,a=r.events[t.eventName]?.name??t.eventName;return{namespace:n,eventName:a}};var Xf=(t,e)=>new Proxy({},{get:(r,n)=>new Proxy({},{get:(a,s)=>i=>rb({client:t,interfaces:e,integrationOrInterfaceName:n,methodName:s,input:i})})}),rb=async({client:t,interfaces:e,integrationOrInterfaceName:r,methodName:n,input:a})=>{let s=Jf({namespace:r,actionName:n},e),i=Gf(s);return(await t.callAction({type:i,input:a})).output};var la=class{constructor(e){this.props=e;this._actionHandlers=e.actions}_runtimeProps;_actionHandlers;_messageHandlers={};_eventHandlers={};_stateExpiredHandlers={};_hookHandlers={before_incoming_event:{},before_incoming_message:{},before_outgoing_message:{},before_outgoing_call_action:{},after_incoming_event:{},after_incoming_message:{},after_outgoing_message:{},after_outgoing_call_action:{}};initialize(e){return this._runtimeProps=e,this}get _runtime(){if(!this._runtimeProps)throw new Error("Plugin not correctly initialized. This is likely because you access your plugin config outside of an handler.");return this._runtimeProps}_getTools(e){let{configuration:r,interfaces:n}=this._runtime,a=Xf(e,n);return{configuration:r,interfaces:n,actions:a}}get actionHandlers(){let e=this._actionHandlers,r={};for(let[n,a]of te.pairs(e))r[n]=async s=>a({...s,...this._getTools(s.client)});return r}get messageHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._messageHandlers[r]??[],a=this._messageHandlers["*"]??[];return z.unique([...n,...a]).map(i=>vt.setName(o=>i({...o,...this._getTools(o.client)}),i.name))}})}get eventHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._eventHandlers[r]??[],a=Object.entries(this._eventHandlers).filter(([o])=>this._eventResolvesTo(o,r)).flatMap(([,o])=>o??[]),s=this._eventHandlers["*"]??[];return z.unique([...n,...a,...s]).map(o=>vt.setName(d=>o({...d,...this._getTools(d.client)}),o.name))}})}get stateExpiredHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._stateExpiredHandlers[r]??[],a=this._stateExpiredHandlers["*"]??[];return z.unique([...n,...a]).map(i=>vt.setName(o=>i({...o,...this._getTools(o.client)}),i.name))}})}get hookHandlers(){return new Proxy({},{get:(e,r)=>{let n=this._hookHandlers[r];if(n)return new Proxy({},{get:(a,s)=>{let i=n[s]??[],o=Object.entries(n).filter(([y])=>this._eventResolvesTo(y,s)).flatMap(([,y])=>y??[]),d=n["*"]??[];return z.unique([...i,...o,...d]).map(y=>vt.setName(T=>y({...T,...this._getTools(T.client)}),y.name))}})}})}on={message:(e,r)=>{this._messageHandlers[e]=z.safePush(this._messageHandlers[e],r)},event:(e,r)=>{this._eventHandlers[e]=z.safePush(this._eventHandlers[e],r)},stateExpired:(e,r)=>{this._stateExpiredHandlers[e]=z.safePush(this._stateExpiredHandlers[e],r)},beforeIncomingEvent:(e,r)=>{this._hookHandlers.before_incoming_event[e]=z.safePush(this._hookHandlers.before_incoming_event[e],r)},beforeIncomingMessage:(e,r)=>{this._hookHandlers.before_incoming_message[e]=z.safePush(this._hookHandlers.before_incoming_message[e],r)},beforeOutgoingMessage:(e,r)=>{this._hookHandlers.before_outgoing_message[e]=z.safePush(this._hookHandlers.before_outgoing_message[e],r)},beforeOutgoingCallAction:(e,r)=>{this._hookHandlers.before_outgoing_call_action[e]=z.safePush(this._hookHandlers.before_outgoing_call_action[e],r)},afterIncomingEvent:(e,r)=>{this._hookHandlers.after_incoming_event[e]=z.safePush(this._hookHandlers.after_incoming_event[e],r)},afterIncomingMessage:(e,r)=>{this._hookHandlers.after_incoming_message[e]=z.safePush(this._hookHandlers.after_incoming_message[e],r)},afterOutgoingMessage:(e,r)=>{this._hookHandlers.after_outgoing_message[e]=z.safePush(this._hookHandlers.after_outgoing_message[e],r)},afterOutgoingCallAction:(e,r)=>{this._hookHandlers.after_outgoing_call_action[e]=z.safePush(this._hookHandlers.after_outgoing_call_action[e],r)}};_eventResolvesTo=(e,r)=>{let n=qf(e);if(!n)return!1;let a=Yf(n,this._runtime.interfaces);return Wf(a)===r}};0&&(module.exports={BRAND,Bot,BotDefinition,BotLogger,BotSpecificClient,DIRTY,EMPTY_PATH,ErrorBoundary,INVALID,Integration,IntegrationDefinition,IntegrationLogger,IntegrationSpecificClient,InterfaceDefinition,NEVER,OK,ParseInputLazyPath,ParseStatus,Plugin,PluginDefinition,RuntimeError,Schema,ZodAny,ZodArray,ZodBigInt,ZodBoolean,ZodBranded,ZodCatch,ZodDate,ZodDefault,ZodDiscriminatedUnion,ZodEffects,ZodEnum,ZodError,ZodFirstPartyTypeKind,ZodFunction,ZodIntersection,ZodIssueCode,ZodLazy,ZodLiteral,ZodMap,ZodNaN,ZodNativeEnum,ZodNever,ZodNull,ZodNullable,ZodNumber,ZodObject,ZodOptional,ZodParsedType,ZodPipeline,ZodPromise,ZodReadonly,ZodRecord,ZodRef,ZodSchema,ZodSet,ZodString,ZodSymbol,ZodTransformer,ZodTuple,ZodType,ZodUndefined,ZodUnion,ZodUnknown,ZodVoid,ZuiForm,addIssueToContext,agent,aimodel,any,array,bigint,boolean,botIdHeader,botUserIdHeader,coerce,configurationHeader,configurationTypeHeader,conversation,createZodEnum,cuid2Regex,cuidRegex,custom,datasource,date,datetimeRegex,defaultComponentDefinitions,discriminatedUnion,effect,emailRegex,enum:null,errorUtil,event,fromJsonSchema,fromObject,function:null,getErrorMap,getParsedType,instanceof:null,integrationIdHeader,intent,intersection,ipv4Regex,ipv6Regex,isAborted,isApiError,isAsync,isDirty,isEmojiRegex,isValid,jsonSchemaToZui,knowledgebase,late,lazy,literal,makeIssue,map,mergeObjectSchemas,message,messages,nan,nativeEnum,never,null:null,nullable,number,object,objectToZui,objectUtil,oboolean,onumber,operationHeader,optional,ostring,parseBody,pipeline,preprocess,processCreateParams,promise,quotelessJson,readonly,record,ref,serve,set,setErrorMap,strictObject,string,symbol,table,tablerow,transformer,transforms,tuple,typeHeader,ulidRegex,undefined,union,unknown,user,util,uuidRegex,variable,void:null,webhookIdHeader,withErrorBoundary,z,zuiToJsonSchema});
|
|
90
90
|
/*! Bundled license information:
|
|
91
91
|
|
|
92
92
|
react/cjs/react.production.min.js:
|