@botpress/sdk 3.0.3 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -4
- package/dist/bot/client/index.d.ts +1 -1
- package/dist/bot/client/types.d.ts +1 -1
- package/dist/bot/{types → common}/generic.d.ts +2 -2
- package/dist/bot/{types → common}/index.d.ts +1 -1
- package/dist/bot/implementation.d.ts +1 -1
- package/dist/bot/index.d.ts +1 -1
- package/dist/bot/server/index.d.ts +1 -1
- package/dist/bot/server/types.d.ts +59 -59
- package/dist/fixtures.d.ts +3 -3
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +2 -2
- package/dist/index.mjs +24 -24
- package/dist/index.mjs.map +4 -4
- package/dist/integration/client/index.d.ts +1 -1
- package/dist/integration/client/types.d.ts +1 -1
- package/dist/integration/{types → common}/index.d.ts +1 -1
- package/dist/integration/implementation.d.ts +1 -1
- package/dist/integration/index.d.ts +1 -1
- package/dist/integration/server/index.d.ts +1 -1
- package/dist/integration/server/types.d.ts +1 -1
- package/dist/interface/index.d.ts +1 -1
- package/dist/plugin/action-proxy/proxy.d.ts +1 -1
- package/dist/plugin/action-proxy/types.d.ts +1 -1
- package/dist/plugin/{types → common}/generic.d.ts +2 -2
- package/dist/plugin/{types → common}/index.d.ts +1 -1
- package/dist/plugin/definition.d.ts +8 -0
- package/dist/plugin/implementation.d.ts +1 -1
- package/dist/plugin/index.d.ts +1 -1
- package/dist/plugin/interface-resolution.d.ts +1 -1
- package/dist/plugin/server/types.d.ts +45 -45
- package/package.json +2 -2
- /package/dist/bot/{types → common}/generic.test.d.ts +0 -0
- /package/dist/bot/{types/common.d.ts → common/types.d.ts} +0 -0
- /package/dist/bot/{types/common.test.d.ts → common/types.test.d.ts} +0 -0
- /package/dist/integration/{types → common}/generic.d.ts +0 -0
- /package/dist/integration/{types → common}/generic.test.d.ts +0 -0
- /package/dist/integration/{types/common.d.ts → common/types.d.ts} +0 -0
- /package/dist/interface/{types → common}/generic.d.ts +0 -0
- /package/dist/interface/{types → common}/generic.test.d.ts +0 -0
- /package/dist/interface/{types → common}/index.d.ts +0 -0
- /package/dist/plugin/{types → common}/generic.test.d.ts +0 -0
- /package/dist/plugin/{types/common.d.ts → common/types.d.ts} +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
|
|
2
|
-
> @botpress/sdk@3.0
|
|
2
|
+
> @botpress/sdk@3.2.0 build /home/runner/work/botpress/botpress/packages/sdk
|
|
3
3
|
> pnpm build:type && pnpm build:node && pnpm build:browser
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @botpress/sdk@3.0
|
|
6
|
+
> @botpress/sdk@3.2.0 build:type /home/runner/work/botpress/botpress/packages/sdk
|
|
7
7
|
> tsc --emitDeclarationOnly --declaration
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
> @botpress/sdk@3.0
|
|
10
|
+
> @botpress/sdk@3.2.0 build:node /home/runner/work/botpress/botpress/packages/sdk
|
|
11
11
|
> ts-node -T ./build.ts --node
|
|
12
12
|
|
|
13
13
|
Done
|
|
14
14
|
|
|
15
|
-
> @botpress/sdk@3.0
|
|
15
|
+
> @botpress/sdk@3.2.0 build:browser /home/runner/work/botpress/botpress/packages/sdk
|
|
16
16
|
> ts-node -T ./build.ts --browser
|
|
17
17
|
|
|
18
18
|
Done
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as client from '@botpress/client';
|
|
2
2
|
import * as utils from '../../utils/type-utils';
|
|
3
|
-
import * as common from '../
|
|
3
|
+
import * as common from '../common';
|
|
4
4
|
type Arg<F extends (...args: any[]) => any> = Parameters<F>[number];
|
|
5
5
|
type Res<F extends (...args: any[]) => any> = ReturnType<F>;
|
|
6
6
|
type EventResponse<TBot extends common.BaseBot> = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BaseIntegration, DefaultIntegration, InputBaseIntegration } from '../../integration/
|
|
1
|
+
import { BaseIntegration, DefaultIntegration, InputBaseIntegration } from '../../integration/common/generic';
|
|
2
2
|
import * as utils from '../../utils/type-utils';
|
|
3
|
-
export * from '../../integration/
|
|
3
|
+
export * from '../../integration/common/generic';
|
|
4
4
|
export type BaseAction = {
|
|
5
5
|
input: any;
|
|
6
6
|
output: any;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './generic';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './types';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Server } from 'node:http';
|
|
2
2
|
import { BasePlugin, PluginImplementation } from '../plugin';
|
|
3
|
+
import { BaseBot } from './common';
|
|
3
4
|
import { MessageHandlersMap, MessageHandlers, EventHandlersMap, EventHandlers, StateExpiredHandlersMap, StateExpiredHandlers, HookHandlersMap, HookData, HookHandlers, ActionHandlers, BotHandlers, UnimplementedActionHandlers } from './server';
|
|
4
|
-
import { BaseBot } from './types';
|
|
5
5
|
export type BotImplementationProps<TBot extends BaseBot = BaseBot, TPlugins extends Record<string, BasePlugin> = {}> = {
|
|
6
6
|
actions: UnimplementedActionHandlers<TBot, TPlugins>;
|
|
7
7
|
plugins: {
|
package/dist/bot/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Request, Response } from '../../serve';
|
|
2
|
-
import * as common from '../
|
|
2
|
+
import * as common from '../common';
|
|
3
3
|
import * as types from './types';
|
|
4
4
|
export * from './types';
|
|
5
5
|
export declare const botHandler: (bot: types.BotHandlers<common.BaseBot>) => (req: Request) => Promise<Response | void>;
|
|
@@ -3,7 +3,7 @@ import * as plugin from '../../plugin';
|
|
|
3
3
|
import * as utils from '../../utils/type-utils';
|
|
4
4
|
import { type BotLogger } from '../bot-logger';
|
|
5
5
|
import { BotSpecificClient } from '../client';
|
|
6
|
-
import * as
|
|
6
|
+
import * as common from '../common';
|
|
7
7
|
export type BotOperation = 'event_received' | 'register' | 'unregister' | 'ping' | 'action_triggered';
|
|
8
8
|
export type BotContext = {
|
|
9
9
|
botId: string;
|
|
@@ -13,83 +13,83 @@ export type BotContext = {
|
|
|
13
13
|
payload: string;
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
|
-
type _IncomingEvents<TBot extends
|
|
17
|
-
[K in keyof
|
|
16
|
+
type _IncomingEvents<TBot extends common.BaseBot> = {
|
|
17
|
+
[K in keyof common.EnumerateEvents<TBot>]: utils.Merge<client.Event, {
|
|
18
18
|
type: K;
|
|
19
|
-
payload:
|
|
19
|
+
payload: common.EnumerateEvents<TBot>[K];
|
|
20
20
|
}>;
|
|
21
21
|
};
|
|
22
|
-
type _IncomingMessages<TBot extends
|
|
23
|
-
[K in keyof
|
|
22
|
+
type _IncomingMessages<TBot extends common.BaseBot> = {
|
|
23
|
+
[K in keyof common.GetMessages<TBot>]: utils.Merge<client.Message, {
|
|
24
24
|
type: K;
|
|
25
|
-
payload:
|
|
25
|
+
payload: common.GetMessages<TBot>[K];
|
|
26
26
|
}>;
|
|
27
27
|
};
|
|
28
|
-
type _IncomingStates<TBot extends
|
|
29
|
-
[K in keyof
|
|
28
|
+
type _IncomingStates<TBot extends common.BaseBot> = {
|
|
29
|
+
[K in keyof common.EnumerateStates<TBot>]: utils.Merge<client.State, {
|
|
30
30
|
name: K;
|
|
31
|
-
payload:
|
|
31
|
+
payload: common.EnumerateStates<TBot>[K];
|
|
32
32
|
}>;
|
|
33
33
|
};
|
|
34
|
-
type _OutgoingMessageRequests<TBot extends
|
|
35
|
-
[K in keyof
|
|
34
|
+
type _OutgoingMessageRequests<TBot extends common.BaseBot> = {
|
|
35
|
+
[K in keyof common.GetMessages<TBot>]: utils.Merge<client.ClientInputs['createMessage'], {
|
|
36
36
|
type: K;
|
|
37
|
-
payload:
|
|
37
|
+
payload: common.GetMessages<TBot>[K];
|
|
38
38
|
}>;
|
|
39
39
|
};
|
|
40
|
-
type _OutgoingMessageResponses<TBot extends
|
|
41
|
-
[K in keyof
|
|
40
|
+
type _OutgoingMessageResponses<TBot extends common.BaseBot> = {
|
|
41
|
+
[K in keyof common.GetMessages<TBot>]: utils.Merge<client.ClientOutputs['createMessage'], {
|
|
42
42
|
message: utils.Merge<client.Message, {
|
|
43
43
|
type: K;
|
|
44
|
-
payload:
|
|
44
|
+
payload: common.GetMessages<TBot>[K];
|
|
45
45
|
}>;
|
|
46
46
|
}>;
|
|
47
47
|
};
|
|
48
|
-
type _OutgoingCallActionRequests<TBot extends
|
|
49
|
-
[K in keyof
|
|
48
|
+
type _OutgoingCallActionRequests<TBot extends common.BaseBot> = {
|
|
49
|
+
[K in keyof common.EnumerateActionInputs<TBot>]: utils.Merge<client.ClientInputs['callAction'], {
|
|
50
50
|
type: K;
|
|
51
|
-
input:
|
|
51
|
+
input: common.EnumerateActionInputs<TBot>[K];
|
|
52
52
|
}>;
|
|
53
53
|
};
|
|
54
|
-
type _OutgoingCallActionResponses<TBot extends
|
|
55
|
-
[K in keyof
|
|
56
|
-
output:
|
|
54
|
+
type _OutgoingCallActionResponses<TBot extends common.BaseBot> = {
|
|
55
|
+
[K in keyof common.EnumerateActionOutputs<TBot>]: utils.Merge<client.ClientOutputs['callAction'], {
|
|
56
|
+
output: common.EnumerateActionOutputs<TBot>[K];
|
|
57
57
|
}>;
|
|
58
58
|
};
|
|
59
|
-
export type AnyIncomingEvent<TBot extends
|
|
60
|
-
export type AnyIncomingMessage<TBot extends
|
|
61
|
-
export type AnyOutgoingMessageRequest<TBot extends
|
|
62
|
-
export type AnyOutgoingMessageResponse<TBot extends
|
|
63
|
-
export type AnyOutgoingCallActionRequest<TBot extends
|
|
64
|
-
export type AnyOutgoingCallActionResponse<TBot extends
|
|
65
|
-
export type IncomingEvents<TBot extends
|
|
59
|
+
export type AnyIncomingEvent<TBot extends common.BaseBot> = utils.ValueOf<_IncomingEvents<TBot>>;
|
|
60
|
+
export type AnyIncomingMessage<TBot extends common.BaseBot> = utils.ValueOf<_IncomingMessages<TBot>>;
|
|
61
|
+
export type AnyOutgoingMessageRequest<TBot extends common.BaseBot> = utils.ValueOf<_OutgoingMessageRequests<TBot>>;
|
|
62
|
+
export type AnyOutgoingMessageResponse<TBot extends common.BaseBot> = utils.ValueOf<_OutgoingMessageResponses<TBot>>;
|
|
63
|
+
export type AnyOutgoingCallActionRequest<TBot extends common.BaseBot> = utils.ValueOf<_OutgoingCallActionRequests<TBot>>;
|
|
64
|
+
export type AnyOutgoingCallActionResponse<TBot extends common.BaseBot> = utils.ValueOf<_OutgoingCallActionResponses<TBot>>;
|
|
65
|
+
export type IncomingEvents<TBot extends common.BaseBot> = _IncomingEvents<TBot> & {
|
|
66
66
|
'*': AnyIncomingEvent<TBot>;
|
|
67
67
|
};
|
|
68
|
-
export type IncomingMessages<TBot extends
|
|
68
|
+
export type IncomingMessages<TBot extends common.BaseBot> = _IncomingMessages<TBot> & {
|
|
69
69
|
'*': AnyIncomingMessage<TBot>;
|
|
70
70
|
};
|
|
71
|
-
export type IncomingStates<_TBot extends
|
|
71
|
+
export type IncomingStates<_TBot extends common.BaseBot> = _IncomingStates<_TBot> & {
|
|
72
72
|
'*': client.State;
|
|
73
73
|
};
|
|
74
|
-
export type OutgoingMessageRequests<TBot extends
|
|
74
|
+
export type OutgoingMessageRequests<TBot extends common.BaseBot> = _OutgoingMessageRequests<TBot> & {
|
|
75
75
|
'*': AnyOutgoingMessageRequest<TBot>;
|
|
76
76
|
};
|
|
77
|
-
export type OutgoingMessageResponses<TBot extends
|
|
77
|
+
export type OutgoingMessageResponses<TBot extends common.BaseBot> = _OutgoingMessageResponses<TBot> & {
|
|
78
78
|
'*': AnyOutgoingMessageResponse<TBot>;
|
|
79
79
|
};
|
|
80
|
-
export type OutgoingCallActionRequests<TBot extends
|
|
80
|
+
export type OutgoingCallActionRequests<TBot extends common.BaseBot> = _OutgoingCallActionRequests<TBot> & {
|
|
81
81
|
'*': AnyOutgoingCallActionRequest<TBot>;
|
|
82
82
|
};
|
|
83
|
-
export type OutgoingCallActionResponses<TBot extends
|
|
83
|
+
export type OutgoingCallActionResponses<TBot extends common.BaseBot> = _OutgoingCallActionResponses<TBot> & {
|
|
84
84
|
'*': AnyOutgoingCallActionResponse<TBot>;
|
|
85
85
|
};
|
|
86
|
-
export type BotClient<TBot extends
|
|
87
|
-
export type CommonHandlerProps<TBot extends
|
|
86
|
+
export type BotClient<TBot extends common.BaseBot> = BotSpecificClient<TBot>;
|
|
87
|
+
export type CommonHandlerProps<TBot extends common.BaseBot> = {
|
|
88
88
|
ctx: BotContext;
|
|
89
89
|
logger: BotLogger;
|
|
90
90
|
client: BotClient<TBot>;
|
|
91
91
|
};
|
|
92
|
-
export type MessagePayloads<TBot extends
|
|
92
|
+
export type MessagePayloads<TBot extends common.BaseBot> = {
|
|
93
93
|
[K in keyof IncomingMessages<TBot>]: CommonHandlerProps<TBot> & {
|
|
94
94
|
message: IncomingMessages<TBot>[K];
|
|
95
95
|
user: client.User;
|
|
@@ -103,32 +103,32 @@ export type MessagePayloads<TBot extends types.BaseBot> = {
|
|
|
103
103
|
};
|
|
104
104
|
};
|
|
105
105
|
};
|
|
106
|
-
export type MessageHandlers<TBot extends
|
|
106
|
+
export type MessageHandlers<TBot extends common.BaseBot> = {
|
|
107
107
|
[K in keyof IncomingMessages<TBot>]: (args: MessagePayloads<TBot>[K]) => Promise<void>;
|
|
108
108
|
};
|
|
109
|
-
export type EventPayloads<TBot extends
|
|
109
|
+
export type EventPayloads<TBot extends common.BaseBot> = {
|
|
110
110
|
[K in keyof IncomingEvents<TBot>]: CommonHandlerProps<TBot> & {
|
|
111
111
|
event: IncomingEvents<TBot>[K];
|
|
112
112
|
};
|
|
113
113
|
};
|
|
114
|
-
export type EventHandlers<TBot extends
|
|
114
|
+
export type EventHandlers<TBot extends common.BaseBot> = {
|
|
115
115
|
[K in keyof IncomingEvents<TBot>]: (args: EventPayloads<TBot>[K]) => Promise<void>;
|
|
116
116
|
};
|
|
117
|
-
export type StateExpiredPayloads<TBot extends
|
|
117
|
+
export type StateExpiredPayloads<TBot extends common.BaseBot> = {
|
|
118
118
|
[K in keyof IncomingStates<TBot>]: CommonHandlerProps<TBot> & {
|
|
119
119
|
state: IncomingStates<TBot>[K];
|
|
120
120
|
};
|
|
121
121
|
};
|
|
122
|
-
export type StateExpiredHandlers<TBot extends
|
|
122
|
+
export type StateExpiredHandlers<TBot extends common.BaseBot> = {
|
|
123
123
|
[K in keyof IncomingStates<TBot>]: (args: StateExpiredPayloads<TBot>[K]) => Promise<void>;
|
|
124
124
|
};
|
|
125
|
-
export type ActionHandlerPayloads<TBot extends
|
|
125
|
+
export type ActionHandlerPayloads<TBot extends common.BaseBot> = {
|
|
126
126
|
[K in keyof TBot['actions']]: CommonHandlerProps<TBot> & {
|
|
127
127
|
type?: K;
|
|
128
128
|
input: TBot['actions'][K]['input'];
|
|
129
129
|
};
|
|
130
130
|
};
|
|
131
|
-
export type ActionHandlers<TBot extends
|
|
131
|
+
export type ActionHandlers<TBot extends common.BaseBot> = {
|
|
132
132
|
[K in keyof TBot['actions']]: (props: ActionHandlerPayloads<TBot>[K]) => Promise<TBot['actions'][K]['output']>;
|
|
133
133
|
};
|
|
134
134
|
type BaseHookDefinition = {
|
|
@@ -145,7 +145,7 @@ type HookDefinition<THookDef extends BaseHookDefinition = BaseHookDefinition> =
|
|
|
145
145
|
* - before_incoming_call_action
|
|
146
146
|
* - after_incoming_call_action
|
|
147
147
|
*/
|
|
148
|
-
export type HookDefinitions<TBot extends
|
|
148
|
+
export type HookDefinitions<TBot extends common.BaseBot> = {
|
|
149
149
|
before_incoming_event: HookDefinition<{
|
|
150
150
|
stoppable: true;
|
|
151
151
|
data: _IncomingEvents<TBot> & {
|
|
@@ -195,19 +195,19 @@ export type HookDefinitions<TBot extends types.BaseBot> = {
|
|
|
195
195
|
};
|
|
196
196
|
}>;
|
|
197
197
|
};
|
|
198
|
-
export type HookData<TBot extends
|
|
198
|
+
export type HookData<TBot extends common.BaseBot> = {
|
|
199
199
|
[H in keyof HookDefinitions<TBot>]: {
|
|
200
200
|
[T in keyof HookDefinitions<TBot>[H]['data']]: HookDefinitions<TBot>[H]['data'][T];
|
|
201
201
|
};
|
|
202
202
|
};
|
|
203
|
-
export type HookInputs<TBot extends
|
|
203
|
+
export type HookInputs<TBot extends common.BaseBot> = {
|
|
204
204
|
[H in keyof HookData<TBot>]: {
|
|
205
205
|
[T in keyof HookData<TBot>[H]]: CommonHandlerProps<TBot> & {
|
|
206
206
|
data: HookData<TBot>[H][T];
|
|
207
207
|
};
|
|
208
208
|
};
|
|
209
209
|
};
|
|
210
|
-
export type HookOutputs<TBot extends
|
|
210
|
+
export type HookOutputs<TBot extends common.BaseBot> = {
|
|
211
211
|
[H in keyof HookData<TBot>]: {
|
|
212
212
|
[T in keyof HookData<TBot>[H]]: {
|
|
213
213
|
data?: HookData<TBot>[H][T];
|
|
@@ -216,21 +216,21 @@ export type HookOutputs<TBot extends types.BaseBot> = {
|
|
|
216
216
|
} : {});
|
|
217
217
|
};
|
|
218
218
|
};
|
|
219
|
-
export type HookHandlers<TBot extends
|
|
219
|
+
export type HookHandlers<TBot extends common.BaseBot> = {
|
|
220
220
|
[H in keyof HookData<TBot>]: {
|
|
221
221
|
[T in keyof HookData<TBot>[H]]: (input: HookInputs<TBot>[H][T]) => Promise<HookOutputs<TBot>[H][T] | undefined>;
|
|
222
222
|
};
|
|
223
223
|
};
|
|
224
|
-
export type MessageHandlersMap<TBot extends
|
|
224
|
+
export type MessageHandlersMap<TBot extends common.BaseBot> = {
|
|
225
225
|
[T in keyof IncomingMessages<TBot>]?: MessageHandlers<TBot>[T][];
|
|
226
226
|
};
|
|
227
|
-
export type EventHandlersMap<TBot extends
|
|
227
|
+
export type EventHandlersMap<TBot extends common.BaseBot> = {
|
|
228
228
|
[T in keyof IncomingEvents<TBot>]?: EventHandlers<TBot>[T][];
|
|
229
229
|
};
|
|
230
|
-
export type StateExpiredHandlersMap<TBot extends
|
|
230
|
+
export type StateExpiredHandlersMap<TBot extends common.BaseBot> = {
|
|
231
231
|
[T in keyof IncomingStates<TBot>]?: StateExpiredHandlers<TBot>[T][];
|
|
232
232
|
};
|
|
233
|
-
export type HookHandlersMap<TBot extends
|
|
233
|
+
export type HookHandlersMap<TBot extends common.BaseBot> = {
|
|
234
234
|
[H in keyof HookData<TBot>]: {
|
|
235
235
|
[T in keyof HookData<TBot>[H]]?: HookHandlers<TBot>[H][T][];
|
|
236
236
|
};
|
|
@@ -240,21 +240,21 @@ export type HookHandlersMap<TBot extends types.BaseBot> = {
|
|
|
240
240
|
* the consumer of this type shouldnt be able to access "*" directly;
|
|
241
241
|
* "*" is meant the user who registers an handler, not for the user who calls the handler
|
|
242
242
|
*/
|
|
243
|
-
export type BotHandlers<TBot extends
|
|
243
|
+
export type BotHandlers<TBot extends common.BaseBot> = {
|
|
244
244
|
actionHandlers: ActionHandlers<TBot>;
|
|
245
245
|
messageHandlers: MessageHandlersMap<TBot>;
|
|
246
246
|
eventHandlers: EventHandlersMap<TBot>;
|
|
247
247
|
stateExpiredHandlers: StateExpiredHandlersMap<TBot>;
|
|
248
248
|
hookHandlers: HookHandlersMap<TBot>;
|
|
249
249
|
};
|
|
250
|
-
type ImplementedActions<_TBot extends
|
|
250
|
+
type ImplementedActions<_TBot extends common.BaseBot, TPlugins extends Record<string, plugin.BasePlugin>> = utils.UnionToIntersection<utils.ValueOf<{
|
|
251
251
|
[K in keyof TPlugins]: TPlugins[K]['actions'];
|
|
252
252
|
}>>;
|
|
253
|
-
type UnimplementedActions<TBot extends
|
|
254
|
-
export type ImplementedActionHandlers<TBot extends
|
|
253
|
+
type UnimplementedActions<TBot extends common.BaseBot, TPlugins extends Record<string, plugin.BasePlugin>> = Omit<TBot['actions'], keyof ImplementedActions<TBot, TPlugins>>;
|
|
254
|
+
export type ImplementedActionHandlers<TBot extends common.BaseBot, TPlugins extends Record<string, plugin.BasePlugin>> = {
|
|
255
255
|
[K in keyof ImplementedActions<TBot, TPlugins>]: ActionHandlers<TBot>[utils.Cast<K, keyof ActionHandlers<TBot>>];
|
|
256
256
|
};
|
|
257
|
-
export type UnimplementedActionHandlers<TBot extends
|
|
257
|
+
export type UnimplementedActionHandlers<TBot extends common.BaseBot, TPlugins extends Record<string, plugin.BasePlugin>> = {
|
|
258
258
|
[K in keyof UnimplementedActions<TBot, TPlugins>]: ActionHandlers<TBot>[utils.Cast<K, keyof ActionHandlers<TBot>>];
|
|
259
259
|
};
|
|
260
260
|
export {};
|
package/dist/fixtures.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DefaultBot } from './bot/
|
|
2
|
-
import { DefaultChannel, DefaultIntegration } from './integration/
|
|
3
|
-
import { DefaultPlugin } from './plugin/
|
|
1
|
+
import { DefaultBot } from './bot/common/generic';
|
|
2
|
+
import { DefaultChannel, DefaultIntegration } from './integration/common/generic';
|
|
3
|
+
import { DefaultPlugin } from './plugin/common/generic';
|
|
4
4
|
type _FooBarBazIntegration = {
|
|
5
5
|
actions: {
|
|
6
6
|
doFoo: {
|
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);return{...e,...r,messages:n}};_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.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;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=n["*"]??[];return z.unique([...i,...o]).map(p=>vt.setName(y=>p({...y,...this._getTools(y.client)}),p.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);return{...e,...r,messages:n}};_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=n["*"]??[];return z.unique([...i,...o]).map(p=>vt.setName(y=>p({...y,...this._getTools(y.client)}),p.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:
|