@whitewall/blip-sdk 0.0.174 → 0.0.175

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.
Files changed (131) hide show
  1. package/README.md +13 -6
  2. package/dist/cjs/client.js +3 -0
  3. package/dist/cjs/client.js.map +1 -1
  4. package/dist/cjs/index.js +3 -0
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/cjs/namespaces/account.js +21 -10
  7. package/dist/cjs/namespaces/account.js.map +1 -1
  8. package/dist/cjs/namespaces/analytics.js +54 -0
  9. package/dist/cjs/namespaces/analytics.js.map +1 -1
  10. package/dist/cjs/namespaces/desk.js +264 -45
  11. package/dist/cjs/namespaces/desk.js.map +1 -1
  12. package/dist/cjs/namespaces/plugins.js +1 -0
  13. package/dist/cjs/namespaces/plugins.js.map +1 -1
  14. package/dist/cjs/namespaces/portal.js +45 -0
  15. package/dist/cjs/namespaces/portal.js.map +1 -1
  16. package/dist/cjs/namespaces/tunnel.js +46 -0
  17. package/dist/cjs/namespaces/tunnel.js.map +1 -0
  18. package/dist/cjs/namespaces/whatsapp.js +2 -23
  19. package/dist/cjs/namespaces/whatsapp.js.map +1 -1
  20. package/dist/cjs/sender/multi/multisender.js +28 -9
  21. package/dist/cjs/sender/multi/multisender.js.map +1 -1
  22. package/dist/cjs/sender/sessionnegotiator.js +1 -1
  23. package/dist/cjs/sender/sessionnegotiator.js.map +1 -1
  24. package/dist/cjs/sender/tcp/tcpsender.js +35 -2
  25. package/dist/cjs/sender/tcp/tcpsender.js.map +1 -1
  26. package/dist/cjs/sender/websocket/websocketsender.js +1 -1
  27. package/dist/cjs/sender/websocket/websocketsender.js.map +1 -1
  28. package/dist/cjs/types/desk.js.map +1 -1
  29. package/dist/cjs/types/flow.js +344 -0
  30. package/dist/cjs/types/flow.js.map +1 -1
  31. package/dist/cjs/utils/desk.js +65 -0
  32. package/dist/cjs/utils/desk.js.map +1 -0
  33. package/dist/cjs/utils/thread.js +84 -0
  34. package/dist/cjs/utils/thread.js.map +1 -0
  35. package/dist/cjs/utils/whatsapp.js +268 -0
  36. package/dist/cjs/utils/whatsapp.js.map +1 -0
  37. package/dist/esm/client.js +3 -0
  38. package/dist/esm/client.js.map +1 -1
  39. package/dist/esm/index.js +3 -0
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/namespaces/account.js +17 -9
  42. package/dist/esm/namespaces/account.js.map +1 -1
  43. package/dist/esm/namespaces/analytics.js +54 -0
  44. package/dist/esm/namespaces/analytics.js.map +1 -1
  45. package/dist/esm/namespaces/desk.js +264 -45
  46. package/dist/esm/namespaces/desk.js.map +1 -1
  47. package/dist/esm/namespaces/plugins.js +1 -0
  48. package/dist/esm/namespaces/plugins.js.map +1 -1
  49. package/dist/esm/namespaces/portal.js +45 -0
  50. package/dist/esm/namespaces/portal.js.map +1 -1
  51. package/dist/esm/namespaces/tunnel.js +42 -0
  52. package/dist/esm/namespaces/tunnel.js.map +1 -0
  53. package/dist/esm/namespaces/whatsapp.js +2 -23
  54. package/dist/esm/namespaces/whatsapp.js.map +1 -1
  55. package/dist/esm/sender/multi/multisender.js +28 -9
  56. package/dist/esm/sender/multi/multisender.js.map +1 -1
  57. package/dist/esm/sender/sessionnegotiator.js +1 -1
  58. package/dist/esm/sender/sessionnegotiator.js.map +1 -1
  59. package/dist/esm/sender/tcp/tcpsender.js +1 -1
  60. package/dist/esm/sender/tcp/tcpsender.js.map +1 -1
  61. package/dist/esm/sender/websocket/websocketsender.js +1 -1
  62. package/dist/esm/sender/websocket/websocketsender.js.map +1 -1
  63. package/dist/esm/types/desk.js.map +1 -1
  64. package/dist/esm/types/flow.js +343 -1
  65. package/dist/esm/types/flow.js.map +1 -1
  66. package/dist/esm/utils/desk.js +59 -0
  67. package/dist/esm/utils/desk.js.map +1 -0
  68. package/dist/esm/utils/thread.js +80 -0
  69. package/dist/esm/utils/thread.js.map +1 -0
  70. package/dist/esm/utils/whatsapp.js +263 -0
  71. package/dist/esm/utils/whatsapp.js.map +1 -0
  72. package/dist/types/client.d.ts +2 -0
  73. package/dist/types/client.d.ts.map +1 -1
  74. package/dist/types/index.d.ts +3 -0
  75. package/dist/types/index.d.ts.map +1 -1
  76. package/dist/types/namespaces/account.d.ts +1790 -2
  77. package/dist/types/namespaces/account.d.ts.map +1 -1
  78. package/dist/types/namespaces/analytics.d.ts +60 -0
  79. package/dist/types/namespaces/analytics.d.ts.map +1 -1
  80. package/dist/types/namespaces/desk.d.ts +124 -4
  81. package/dist/types/namespaces/desk.d.ts.map +1 -1
  82. package/dist/types/namespaces/plugins.d.ts +1 -0
  83. package/dist/types/namespaces/plugins.d.ts.map +1 -1
  84. package/dist/types/namespaces/portal.d.ts +45 -0
  85. package/dist/types/namespaces/portal.d.ts.map +1 -1
  86. package/dist/types/namespaces/tunnel.d.ts +28 -0
  87. package/dist/types/namespaces/tunnel.d.ts.map +1 -0
  88. package/dist/types/namespaces/whatsapp.d.ts +3 -2
  89. package/dist/types/namespaces/whatsapp.d.ts.map +1 -1
  90. package/dist/types/schemas/webhook.d.ts +2 -2
  91. package/dist/types/sender/gateway/customgatewaysender.d.ts +1 -1
  92. package/dist/types/sender/http/httpsender.d.ts +1 -1
  93. package/dist/types/sender/multi/multisender.d.ts +1 -0
  94. package/dist/types/sender/multi/multisender.d.ts.map +1 -1
  95. package/dist/types/sender/sender.d.ts +1 -1
  96. package/dist/types/sender/tcp/tcpsender.d.ts +1 -1
  97. package/dist/types/sender/websocket/websocketsender.d.ts +1 -1
  98. package/dist/types/types/desk.d.ts +57 -1
  99. package/dist/types/types/desk.d.ts.map +1 -1
  100. package/dist/types/types/flow.d.ts +3269 -142
  101. package/dist/types/types/flow.d.ts.map +1 -1
  102. package/dist/types/types/message.d.ts +1 -1
  103. package/dist/types/types/whatsapp.d.ts +10 -2
  104. package/dist/types/types/whatsapp.d.ts.map +1 -1
  105. package/dist/types/utils/desk.d.ts +6 -0
  106. package/dist/types/utils/desk.d.ts.map +1 -0
  107. package/dist/types/utils/thread.d.ts +4 -0
  108. package/dist/types/utils/thread.d.ts.map +1 -0
  109. package/dist/types/utils/whatsapp.d.ts +103 -0
  110. package/dist/types/utils/whatsapp.d.ts.map +1 -0
  111. package/package.json +8 -11
  112. package/src/client.ts +3 -0
  113. package/src/index.ts +3 -0
  114. package/src/namespaces/account.ts +20 -12
  115. package/src/namespaces/analytics.ts +154 -0
  116. package/src/namespaces/desk.ts +428 -77
  117. package/src/namespaces/plugins.ts +2 -0
  118. package/src/namespaces/portal.ts +110 -0
  119. package/src/namespaces/tunnel.ts +58 -0
  120. package/src/namespaces/whatsapp.ts +4 -39
  121. package/src/sender/multi/multisender.ts +38 -14
  122. package/src/sender/sessionnegotiator.ts +1 -1
  123. package/src/sender/tcp/tcpsender.ts +1 -1
  124. package/src/sender/websocket/websocketsender.ts +1 -1
  125. package/src/types/desk.ts +66 -1
  126. package/src/types/flow.ts +387 -246
  127. package/src/types/message.ts +1 -1
  128. package/src/types/whatsapp.ts +11 -2
  129. package/src/utils/desk.ts +78 -0
  130. package/src/utils/thread.ts +119 -0
  131. package/src/utils/whatsapp.ts +530 -0
@@ -1,3 +1,347 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flowSchema = exports.stateSchema = exports.contentActionItemSchema = exports.defaultOutputSchema = exports.conditionOutputSchema = exports.inputStateSchema = exports.actionSchema = exports.conditionSchema = exports.MIME_TYPES = exports.CONTENT_TYPES = void 0;
4
+ const zod_1 = require("zod");
5
+ const VALIDATION_RULES = ['text', 'number', 'date', 'regex', 'type'];
6
+ exports.CONTENT_TYPES = [
7
+ 'text',
8
+ 'select-immediate',
9
+ 'select',
10
+ 'media',
11
+ 'media-audio',
12
+ 'media-video',
13
+ 'media-document',
14
+ 'chat-state',
15
+ 'web-link',
16
+ 'raw-content',
17
+ '',
18
+ ];
19
+ exports.MIME_TYPES = [
20
+ 'text/plain',
21
+ 'application/vnd.lime.media-link+json',
22
+ 'application/vnd.lime.select+json',
23
+ 'application/vnd.lime.chatstate+json',
24
+ 'application/vnd.lime.web-link+json',
25
+ ];
26
+ const HTTP_METHODS = ['POST', 'GET', 'PUT', 'DELETE'];
27
+ const COMPARISON_OPERATORS = [
28
+ 'equals',
29
+ 'notEquals',
30
+ 'contains',
31
+ 'startsWith',
32
+ 'endsWith',
33
+ 'greaterThan',
34
+ 'lessThan',
35
+ 'greaterThanOrEquals',
36
+ 'lessThanOrEquals',
37
+ 'matches',
38
+ 'approximateTo',
39
+ 'exists',
40
+ 'notExists',
41
+ ];
42
+ const SELECT_SCOPES = ['immediate', 'persistent'];
43
+ const LINK_TARGETS = ['blank', 'self', 'selfCompact', 'selfTall'];
44
+ const COMMAND_METHODS = ['get', 'set', 'merge', 'delete'];
45
+ const CONDITION_SOURCES = ['input', 'context'];
46
+ const LOGICAL_OPERATORS = ['or', 'and'];
47
+ const TYPE_OF_STATE_ID = ['state', 'variable'];
48
+ const createVariableNameSchema = (description) => zod_1.z.string().describe(description);
49
+ const plainTextSchema = zod_1.z.string();
50
+ const mediaLinkSchema = zod_1.z.object({
51
+ title: zod_1.z.string().optional(),
52
+ text: zod_1.z.string().optional(),
53
+ // Mime type of the linked content.
54
+ type: zod_1.z.string().describe('Mime type of the content'),
55
+ uri: zod_1.z.string(),
56
+ });
57
+ const selectSchema = zod_1.z.object({
58
+ text: zod_1.z.string(),
59
+ scope: zod_1.z.enum(SELECT_SCOPES).nullish(),
60
+ // Builder accepts both simple string options and object options.
61
+ options: zod_1.z.array(zod_1.z.string()).or(zod_1.z.array(zod_1.z.object({
62
+ text: zod_1.z.string(),
63
+ }))),
64
+ });
65
+ const chatstateSchema = zod_1.z.object({
66
+ state: zod_1.z.string(),
67
+ interval: zod_1.z.union([zod_1.z.number(), zod_1.z.string()]).optional(),
68
+ });
69
+ const webLinkSchema = zod_1.z.object({
70
+ title: zod_1.z.string().nullish(),
71
+ text: zod_1.z.string(),
72
+ target: zod_1.z.enum(LINK_TARGETS).nullish(),
73
+ uri: zod_1.z.string(),
74
+ });
75
+ const flowMessageContentSchema = plainTextSchema
76
+ .or(mediaLinkSchema)
77
+ .or(selectSchema)
78
+ .or(webLinkSchema)
79
+ .or(chatstateSchema);
80
+ const processHttpActionSettingsSchema = zod_1.z.object({
81
+ $invalid: zod_1.z.boolean().optional(),
82
+ method: zod_1.z.enum(HTTP_METHODS),
83
+ // The URL to be called. Variables can be interpolated, for example:
84
+ // https://api.example.com/{{contact.email}}
85
+ uri: zod_1.z.string(),
86
+ // The headers to be sent in the request. Variables can be interpolated too.
87
+ headers: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).nullish(),
88
+ // The body of the request. Variables can be interpolated in the body too.
89
+ body: zod_1.z.string(),
90
+ // Context variable used to store the response body.
91
+ responseBodyVariable: createVariableNameSchema('Response body variable name'),
92
+ // Context variable used to store the response status.
93
+ responseStatusVariable: createVariableNameSchema('Response status variable name'),
94
+ });
95
+ const trackEventActionSettingsSchema = zod_1.z.object({
96
+ $invalid: zod_1.z.boolean().optional(),
97
+ category: zod_1.z.string(),
98
+ action: zod_1.z.string(),
99
+ extras: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).nullish(),
100
+ });
101
+ const mergeContactActionSettingsSchema = zod_1.z.object({
102
+ $invalid: zod_1.z.boolean().optional(),
103
+ name: zod_1.z.string().nullish(),
104
+ email: zod_1.z.string().nullish(),
105
+ city: zod_1.z.string().nullish(),
106
+ extras: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).nullish(),
107
+ });
108
+ const executeScriptActionSettingsSchema = zod_1.z.object({
109
+ $invalid: zod_1.z.boolean().optional(),
110
+ // Builder executes a function called "run".
111
+ function: zod_1.z.literal('run').optional(),
112
+ // Must be valid ES5 source code.
113
+ source: zod_1.z.string(),
114
+ // Variables are passed to the function in this declared order. Do not use
115
+ // the {{ variableName }} syntax here, only the plain variable name.
116
+ inputVariables: zod_1.z.array(createVariableNameSchema('Variable name')),
117
+ // Context variable used to store the returned result.
118
+ outputVariable: createVariableNameSchema('Output variable name'),
119
+ });
120
+ const sendMessageActionSettingsSchema = zod_1.z.object({
121
+ $invalid: zod_1.z.boolean().optional(),
122
+ type: zod_1.z.enum(exports.MIME_TYPES).optional(),
123
+ content: flowMessageContentSchema,
124
+ // Message id generated by the builder.
125
+ id: zod_1.z.string().optional(),
126
+ metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
127
+ });
128
+ const sendRawMessageActionSettingsSchema = zod_1.z.object({
129
+ $invalid: zod_1.z.boolean().optional(),
130
+ type: zod_1.z.literal('application/json').optional(),
131
+ // Useful to send raw channel payloads, such as WhatsApp interactive content.
132
+ rawContent: zod_1.z.string(),
133
+ });
134
+ const setVariableActionSettingsSchema = zod_1.z.object({
135
+ $invalid: zod_1.z.boolean().optional(),
136
+ variable: createVariableNameSchema('Name of the variable to be set in the context'),
137
+ value: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
138
+ // Expiration time in seconds.
139
+ expiration: zod_1.z.number().nullish(),
140
+ });
141
+ const processCommandActionSettingsSchema = zod_1.z.object({
142
+ $invalid: zod_1.z.boolean().optional(),
143
+ to: zod_1.z.string(),
144
+ method: zod_1.z.enum(COMMAND_METHODS),
145
+ uri: zod_1.z.string(),
146
+ variable: createVariableNameSchema('Variable name'),
147
+ from: zod_1.z.string().optional(),
148
+ });
149
+ const forwardToDeskActionSettingsSchema = zod_1.z.object({
150
+ $invalid: zod_1.z.boolean().optional(),
151
+ });
152
+ const leavingFromDeskActionSettingsSchema = zod_1.z.object({
153
+ $invalid: zod_1.z.boolean().optional(),
154
+ });
155
+ const redirectActionSettingsSchema = zod_1.z.object({
156
+ $invalid: zod_1.z.boolean().optional(),
157
+ address: zod_1.z.string(),
158
+ context: zod_1.z.object({
159
+ type: zod_1.z.literal('text/plain'),
160
+ value: zod_1.z.string(),
161
+ }),
162
+ });
163
+ exports.conditionSchema = zod_1.z.object({
164
+ source: zod_1.z.enum(CONDITION_SOURCES),
165
+ // Used only when source is "context".
166
+ variable: createVariableNameSchema('Context variable name').nullish(),
167
+ comparison: zod_1.z.enum(COMPARISON_OPERATORS),
168
+ operator: zod_1.z.enum(LOGICAL_OPERATORS).optional(),
169
+ values: zod_1.z.array(zod_1.z.string()),
170
+ });
171
+ const baseActionSchema = zod_1.z.object({
172
+ $id: zod_1.z.string(),
173
+ // Should only exist for SendMessage and SendRawMessage actions. When it is
174
+ // omitted, GET responses usually return an empty string.
175
+ $typeOfContent: zod_1.z.enum(exports.CONTENT_TYPES).optional(),
176
+ $title: zod_1.z.string().optional(),
177
+ $invalid: zod_1.z.boolean().optional(),
178
+ // The action runs only when its conditions are met.
179
+ conditions: zod_1.z.array(exports.conditionSchema).optional(),
180
+ $cardContent: zod_1.z
181
+ .object({
182
+ editable: zod_1.z.boolean(),
183
+ deletable: zod_1.z.boolean(),
184
+ position: zod_1.z.literal('left'),
185
+ document: zod_1.z.object({
186
+ id: zod_1.z.string(),
187
+ // Must match the type defined in the action settings.
188
+ type: zod_1.z.enum(exports.MIME_TYPES).or(zod_1.z.literal('application/json')),
189
+ // Must match the content defined in the action settings.
190
+ content: flowMessageContentSchema.or(zod_1.z.string()),
191
+ textContent: zod_1.z.string().optional(),
192
+ }),
193
+ })
194
+ .nullish(),
195
+ // When true, execution continues even if the action fails.
196
+ continueOnError: zod_1.z.boolean().optional(),
197
+ });
198
+ const actionTypeSchema = zod_1.z.discriminatedUnion('type', [
199
+ zod_1.z.object({
200
+ type: zod_1.z.literal('SendMessage'),
201
+ settings: sendMessageActionSettingsSchema,
202
+ }),
203
+ zod_1.z.object({
204
+ type: zod_1.z.literal('SendRawMessage'),
205
+ settings: sendRawMessageActionSettingsSchema,
206
+ }),
207
+ zod_1.z.object({
208
+ type: zod_1.z.literal('TrackEvent'),
209
+ settings: trackEventActionSettingsSchema,
210
+ }),
211
+ zod_1.z.object({
212
+ type: zod_1.z.literal('ProcessHttp'),
213
+ settings: processHttpActionSettingsSchema,
214
+ }),
215
+ zod_1.z.object({
216
+ type: zod_1.z.literal('MergeContact'),
217
+ settings: mergeContactActionSettingsSchema,
218
+ }),
219
+ zod_1.z.object({
220
+ type: zod_1.z.literal('ExecuteScript'),
221
+ settings: executeScriptActionSettingsSchema,
222
+ }),
223
+ zod_1.z.object({
224
+ type: zod_1.z.literal('ExecuteScriptV2'),
225
+ settings: executeScriptActionSettingsSchema,
226
+ }),
227
+ zod_1.z.object({
228
+ type: zod_1.z.literal('SetVariable'),
229
+ settings: setVariableActionSettingsSchema,
230
+ }),
231
+ zod_1.z.object({
232
+ type: zod_1.z.literal('ProcessCommand'),
233
+ settings: processCommandActionSettingsSchema,
234
+ }),
235
+ zod_1.z.object({
236
+ type: zod_1.z.literal('ForwardToDesk'),
237
+ settings: forwardToDeskActionSettingsSchema,
238
+ }),
239
+ zod_1.z.object({
240
+ type: zod_1.z.literal('LeavingFromDesk'),
241
+ settings: leavingFromDeskActionSettingsSchema,
242
+ }),
243
+ zod_1.z.object({
244
+ type: zod_1.z.literal('Redirect'),
245
+ settings: redirectActionSettingsSchema,
246
+ }),
247
+ ]);
248
+ exports.actionSchema = zod_1.z.intersection(baseActionSchema, actionTypeSchema);
249
+ const inputValidationSchema = zod_1.z.object({
250
+ // Validation rule applied to the captured input.
251
+ rule: zod_1.z.enum(VALIDATION_RULES),
252
+ regex: zod_1.z.string().nullish(),
253
+ type: zod_1.z.string().nullish(),
254
+ // Message shown when validation fails.
255
+ error: zod_1.z.string(),
256
+ });
257
+ exports.inputStateSchema = zod_1.z.object({
258
+ // Builder card metadata shown in the editor. The values are usually fixed
259
+ // except for the nested document id.
260
+ $cardContent: zod_1.z.object({
261
+ document: zod_1.z.object({
262
+ id: zod_1.z.string(),
263
+ type: zod_1.z.literal('text/plain'),
264
+ // Builder commonly renders "Entrada do usuario" here.
265
+ content: zod_1.z.string().optional(),
266
+ // Should usually match the variable name where the input is stored.
267
+ textContent: zod_1.z.string().optional(),
268
+ }),
269
+ editable: zod_1.z.boolean(),
270
+ editing: zod_1.z.boolean(),
271
+ deletable: zod_1.z.boolean(),
272
+ position: zod_1.z.literal('right'),
273
+ }),
274
+ $invalid: zod_1.z.boolean(),
275
+ // When true, the input step is skipped.
276
+ bypass: zod_1.z.boolean(),
277
+ validation: inputValidationSchema.nullish(),
278
+ // Input expiration time in minutes.
279
+ expiration: zod_1.z.string().nullish(),
280
+ variable: createVariableNameSchema('Input variable name').nullish(),
281
+ conditions: zod_1.z.array(exports.conditionSchema).optional(),
282
+ });
283
+ const baseOutputSchema = zod_1.z.object({
284
+ // Id of the target state, or a variable id when typeOfStateId is "variable".
285
+ stateId: zod_1.z.string(),
286
+ typeOfStateId: zod_1.z.enum(TYPE_OF_STATE_ID).optional(),
287
+ });
288
+ exports.conditionOutputSchema = baseOutputSchema.extend({
289
+ $id: zod_1.z.string().optional(),
290
+ $invalid: zod_1.z.boolean().optional(),
291
+ $connId: zod_1.z.string().optional(),
292
+ $contentId: zod_1.z.string().optional(),
293
+ $isDeskOutput: zod_1.z.boolean().optional(),
294
+ $isDeskCustomOutput: zod_1.z.boolean().optional(),
295
+ $isDeskDefaultOutput: zod_1.z.boolean().optional(),
296
+ conditions: zod_1.z.array(exports.conditionSchema),
297
+ });
298
+ exports.defaultOutputSchema = baseOutputSchema.extend({
299
+ $invalid: zod_1.z.boolean().optional(),
300
+ });
301
+ exports.contentActionItemSchema = zod_1.z.object({
302
+ // Actions executed after entering actions. In practice, this is where
303
+ // builder stores SendMessage cards.
304
+ action: exports.actionSchema.optional(),
305
+ // If the state expects user input, it should be defined here.
306
+ input: exports.inputStateSchema.optional(),
307
+ $invalid: zod_1.z.boolean().optional(),
308
+ });
309
+ exports.stateSchema = zod_1.z.object({
310
+ $contentActions: zod_1.z.array(exports.contentActionItemSchema),
311
+ $conditionOutputs: zod_1.z.array(exports.conditionOutputSchema),
312
+ // Actions executed when entering the state.
313
+ $enteringCustomActions: zod_1.z.array(exports.actionSchema),
314
+ // Actions executed when leaving the state, before output evaluation.
315
+ $leavingCustomActions: zod_1.z.array(exports.actionSchema),
316
+ $localCustomActions: zod_1.z.array(exports.actionSchema).optional(),
317
+ $inputSuggestions: zod_1.z.array(zod_1.z.string()),
318
+ // Output used when none of the conditional outputs are matched.
319
+ $defaultOutput: exports.defaultOutputSchema,
320
+ isAiGenerated: zod_1.z.boolean().optional(),
321
+ deskStateVersion: zod_1.z.string().optional(),
322
+ $afterStateChangedActions: zod_1.z.array(exports.actionSchema).optional(),
323
+ $tags: zod_1.z.array(zod_1.z.object({
324
+ id: zod_1.z.string(),
325
+ label: zod_1.z.string(),
326
+ // Hexadecimal color code including the "#" prefix.
327
+ background: zod_1.z.string(),
328
+ canChangeBackground: zod_1.z.boolean(),
329
+ })),
330
+ id: zod_1.z.string().optional(),
331
+ // Only the special state with id "onboarding" is usually marked as root.
332
+ root: zod_1.z.boolean().optional(),
333
+ $title: zod_1.z.string(),
334
+ $position: zod_1.z
335
+ .object({
336
+ top: zod_1.z.string(),
337
+ left: zod_1.z.string(),
338
+ })
339
+ .optional(),
340
+ $invalidContentActions: zod_1.z.boolean(),
341
+ $invalidOutputs: zod_1.z.boolean(),
342
+ $invalidCustomActions: zod_1.z.boolean(),
343
+ $invalid: zod_1.z.boolean().optional(),
344
+ $whiteWallIntegration: zod_1.z.unknown().optional(),
345
+ });
346
+ exports.flowSchema = zod_1.z.record(zod_1.z.string(), exports.stateSchema);
3
347
  //# sourceMappingURL=flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../../src/types/flow.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../../src/types/flow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeDeskRuleConditions = normalizeDeskRuleConditions;
4
+ exports.getDayOfWeek = getDayOfWeek;
5
+ exports.matchesAttendanceHourQueue = matchesAttendanceHourQueue;
6
+ exports.isOnAttendanceTime = isOnAttendanceTime;
7
+ const desk_ts_1 = require("../types/desk.js");
8
+ const dayOfWeekByIndex = [
9
+ desk_ts_1.DayOfWeek.Sunday,
10
+ desk_ts_1.DayOfWeek.Monday,
11
+ desk_ts_1.DayOfWeek.Tuesday,
12
+ desk_ts_1.DayOfWeek.Wednesday,
13
+ desk_ts_1.DayOfWeek.Thursday,
14
+ desk_ts_1.DayOfWeek.Friday,
15
+ desk_ts_1.DayOfWeek.Saturday,
16
+ ];
17
+ function normalizeDeskRuleConditions(rule) {
18
+ if (rule.conditions) {
19
+ return rule.conditions;
20
+ }
21
+ if (rule.property && rule.relation && rule.values) {
22
+ return [
23
+ {
24
+ property: rule.property,
25
+ relation: rule.relation,
26
+ values: rule.values,
27
+ },
28
+ ];
29
+ }
30
+ return [];
31
+ }
32
+ function getDayOfWeek(value) {
33
+ return dayOfWeekByIndex[value.getDay()];
34
+ }
35
+ function matchesAttendanceHourQueue(attendanceHour, queueIdOrName) {
36
+ return (attendanceHour.attendanceHour.isMain ||
37
+ attendanceHour.queues.some((queue) => queue.id === queueIdOrName || queue.description === queueIdOrName));
38
+ }
39
+ function isOnAttendanceTime(attendanceHour, value) {
40
+ const isInsideOffTime = attendanceHour.attendanceHourOffItems.some((offItem) => {
41
+ const startDate = new Date(offItem.startDate);
42
+ const endDate = new Date(offItem.endDate);
43
+ return value.getTime() >= startDate.getTime() && value.getTime() <= endDate.getTime();
44
+ });
45
+ if (isInsideOffTime) {
46
+ return false;
47
+ }
48
+ const todaySchedule = attendanceHour.attendanceHourScheduleItems.find((schedule) => schedule.dayOfWeek === getDayOfWeek(value));
49
+ if (!todaySchedule) {
50
+ return false;
51
+ }
52
+ const startTime = applyTime(value, todaySchedule.startTime);
53
+ const endTime = applyTime(value, todaySchedule.endTime);
54
+ return value.getTime() >= startTime.getTime() && value.getTime() <= endTime.getTime();
55
+ }
56
+ function applyTime(value, time) {
57
+ const [hours, minutes] = time.split(':');
58
+ const date = new Date(value);
59
+ date.setHours(Number(hours));
60
+ date.setMinutes(Number(minutes));
61
+ date.setSeconds(0);
62
+ date.setMilliseconds(0);
63
+ return date;
64
+ }
65
+ //# sourceMappingURL=desk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desk.js","sourceRoot":"","sources":["../../../src/utils/desk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatThreadItemPreview = formatThreadItemPreview;
4
+ exports.formatDocumentPreview = formatDocumentPreview;
5
+ const index_ts_1 = require("../types/index.js");
6
+ function formatThreadItemPreview(item) {
7
+ return formatDocumentPreview((0, index_ts_1.messageToDocument)(item));
8
+ }
9
+ function formatDocumentPreview(document) {
10
+ if ((0, index_ts_1.isDocumentOfType)(document, 'text/plain')) {
11
+ return document.value;
12
+ }
13
+ if ((0, index_ts_1.isDocumentOfType)(document, 'application/vnd.lime.media-link+json')) {
14
+ return `[media] ${document.value.title || document.value.text || document.value.uri}`;
15
+ }
16
+ if ((0, index_ts_1.isDocumentOfType)(document, 'application/vnd.lime.web-link+json')) {
17
+ return `[link] ${document.value.text}`;
18
+ }
19
+ if ((0, index_ts_1.isDocumentOfType)(document, 'application/vnd.lime.reply+json')) {
20
+ return formatDocumentPreview(document.value.replied);
21
+ }
22
+ if ((0, index_ts_1.isDocumentOfType)(document, 'application/vnd.iris.ticket+json')) {
23
+ return `[ticket #${document.value.sequentialId}]`;
24
+ }
25
+ if ((0, index_ts_1.isDocumentOfType)(document, 'application/vnd.lime.select+json')) {
26
+ const options = document.value.options.map((option) => option.text).join(' | ');
27
+ return `[select] ${document.value.text} [select-options] ${options}`;
28
+ }
29
+ if ((0, index_ts_1.isDocumentOfType)(document, 'application/json')) {
30
+ const value = document.value;
31
+ if (value.type === 'template' &&
32
+ value.template &&
33
+ typeof value.template === 'object' &&
34
+ 'name' in value.template) {
35
+ return `[whatsapp template: ${value.template.name}]`;
36
+ }
37
+ if (value.type === 'interactive' && value.interactive && typeof value.interactive === 'object') {
38
+ return interactiveToHumanReadable(value.interactive);
39
+ }
40
+ }
41
+ return `[${document.type}]`;
42
+ }
43
+ function interactiveToHumanReadable(interactive) {
44
+ const parts = [];
45
+ const header = interactive.header;
46
+ if (header?.type === 'text' && header.text) {
47
+ parts.push(header.text);
48
+ }
49
+ const body = interactive.body;
50
+ if (body?.text) {
51
+ parts.push(body.text);
52
+ }
53
+ const footer = interactive.footer;
54
+ if (footer?.text) {
55
+ parts.push(footer.text);
56
+ }
57
+ const action = interactive.action;
58
+ if (!action) {
59
+ return parts.join('\n');
60
+ }
61
+ if ('buttons' in action) {
62
+ const items = action.buttons
63
+ .filter((button) => button.type === 'reply')
64
+ .map((button) => button.reply.title)
65
+ .join('');
66
+ if (items) {
67
+ parts.push(items);
68
+ }
69
+ }
70
+ else if ('sections' in action) {
71
+ const items = action.sections.flatMap((section) => section.rows?.map((row) => row.title) ?? []).join('');
72
+ if (items) {
73
+ parts.push(items);
74
+ }
75
+ }
76
+ else if (action.name === 'cta_url') {
77
+ parts.push(`Link: ${action.parameters.display_text}`);
78
+ }
79
+ else if (action.name === 'flow') {
80
+ parts.push(`Flow: ${action.parameters.flow_cta}`);
81
+ }
82
+ return parts.join('\n');
83
+ }
84
+ //# sourceMappingURL=thread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.js","sourceRoot":"","sources":["../../../src/utils/thread.ts"],"names":[],"mappings":"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"}