@whitewall/blip-sdk 0.0.174 → 0.0.176

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