core-services-sdk 1.3.46 → 1.3.47

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-services-sdk",
3
- "version": "1.3.46",
3
+ "version": "1.3.47",
4
4
  "main": "src/index.js",
5
5
  "type": "module",
6
6
  "types": "types/index.d.ts",
@@ -5,12 +5,12 @@ import { MESSAGE_MEDIA_TYPE, MESSAGE_TYPE } from './message-types.js'
5
5
  * inside the platform-original message object.
6
6
  *
7
7
  * @param {string} mediaType - One of MESSAGE_MEDIA_TYPE.*
8
- * @returns {(params: { originalMessage: any }) => boolean}
8
+ * @returns {(params: { imMessage: any }) => boolean}
9
9
  */
10
10
  export const isItMediaType =
11
11
  (mediaType) =>
12
- ({ originalMessage }) => {
13
- const message = originalMessage?.message
12
+ ({ imMessage }) => {
13
+ const message = imMessage?.message
14
14
  if (!message || typeof message !== 'object') {
15
15
  return false
16
16
  }
@@ -23,14 +23,14 @@ export const isItMediaType =
23
23
  *
24
24
  * @function isMessageTypeof
25
25
  * @param {string} typeOfMessage - One of the MESSAGE_TYPE.* values.
26
- * @returns {(params: { originalMessage: any }) => boolean}
27
- * A function that accepts an object containing `originalMessage`
26
+ * @returns {(params: { imMessage: any }) => boolean}
27
+ * A function that accepts an object containing `imMessage`
28
28
  * and returns true if its `type` matches the expected type.
29
29
  */
30
30
  export const isMessageTypeof =
31
31
  (typeOfMessage) =>
32
- ({ originalMessage }) => {
33
- const type = originalMessage?.type
32
+ ({ imMessage }) => {
33
+ const type = imMessage?.type
34
34
  return type === typeOfMessage
35
35
  }
36
36
 
@@ -41,11 +41,11 @@ export const isMessageTypeof =
41
41
  *
42
42
  * @function isCallbackQuery
43
43
  * @param {Object} params
44
- * @param {Object} params.originalMessage - Raw Telegram update
44
+ * @param {Object} params.imMessage - Raw Telegram update
45
45
  * @returns {boolean}
46
46
  */
47
- export const isCallbackQuery = ({ originalMessage }) => {
48
- return 'callback_query' in originalMessage
47
+ export const isCallbackQuery = ({ imMessage }) => {
48
+ return 'callback_query' in imMessage
49
49
  }
50
50
 
51
51
  // Media-type detectors for each supported message detail section.
@@ -77,7 +77,7 @@ export const isItButtonClick = isMessageTypeof(MESSAGE_TYPE.BUTTON_CLICK)
77
77
  *
78
78
  * @function getTelegramMessageType
79
79
  * @param {Object} params
80
- * @param {Object} params.originalMessage - Raw update object from Telegram or WhatsApp.
80
+ * @param {Object} params.imMessage - Raw update object from Telegram or WhatsApp.
81
81
  * For Telegram:
82
82
  * - May contain: message, callback_query, poll, etc.
83
83
  * For WhatsApp:
@@ -89,60 +89,60 @@ export const isItButtonClick = isMessageTypeof(MESSAGE_TYPE.BUTTON_CLICK)
89
89
  * - MESSAGE_TYPE.UNKNOWN_MESSAGE_TYPE
90
90
  *
91
91
  * @example
92
- * getTelegramMessageType({ originalMessage: telegramUpdate })
92
+ * getTelegramMessageType({ imMessage: telegramUpdate })
93
93
  * // → "text"
94
94
  *
95
95
  * @example
96
- * getTelegramMessageType({ originalMessage: whatsappPayload })
96
+ * getTelegramMessageType({ imMessage: whatsappPayload })
97
97
  * // → "image"
98
98
  */
99
- export const getTelegramMessageType = ({ originalMessage }) => {
99
+ export const getTelegramMessageType = ({ imMessage }) => {
100
100
  switch (true) {
101
- case isCallbackQuery({ originalMessage }): {
101
+ case isCallbackQuery({ imMessage }): {
102
102
  return MESSAGE_TYPE.BUTTON_CLICK
103
103
  }
104
104
 
105
- case isItFreeText({ originalMessage }): {
105
+ case isItFreeText({ imMessage }): {
106
106
  return MESSAGE_MEDIA_TYPE.TEXT
107
107
  }
108
108
 
109
- case isItVideo({ originalMessage }): {
109
+ case isItVideo({ imMessage }): {
110
110
  return MESSAGE_MEDIA_TYPE.VIDEO
111
111
  }
112
112
 
113
- case isItPhoto({ originalMessage }): {
113
+ case isItPhoto({ imMessage }): {
114
114
  return MESSAGE_MEDIA_TYPE.PHOTO
115
115
  }
116
116
 
117
- case isItDocument({ originalMessage }): {
117
+ case isItDocument({ imMessage }): {
118
118
  return MESSAGE_MEDIA_TYPE.DOCUMENT
119
119
  }
120
120
 
121
- case isItLocation({ originalMessage }): {
121
+ case isItLocation({ imMessage }): {
122
122
  return MESSAGE_MEDIA_TYPE.LOCATION
123
123
  }
124
124
 
125
- case isItVoice({ originalMessage }): {
125
+ case isItVoice({ imMessage }): {
126
126
  return MESSAGE_MEDIA_TYPE.VOICE
127
127
  }
128
128
 
129
- case isItVideoNote({ originalMessage }): {
129
+ case isItVideoNote({ imMessage }): {
130
130
  return MESSAGE_MEDIA_TYPE.VIDEO_NOTE
131
131
  }
132
132
 
133
- case isItPoll({ originalMessage }): {
133
+ case isItPoll({ imMessage }): {
134
134
  return MESSAGE_MEDIA_TYPE.POLL
135
135
  }
136
136
 
137
- case isItSticker({ originalMessage }): {
137
+ case isItSticker({ imMessage }): {
138
138
  return MESSAGE_MEDIA_TYPE.STICKER
139
139
  }
140
140
 
141
- case isItMessage({ originalMessage }): {
141
+ case isItMessage({ imMessage }): {
142
142
  return MESSAGE_MEDIA_TYPE.MESSAGE
143
143
  }
144
144
 
145
- case isItContact({ originalMessage }): {
145
+ case isItContact({ imMessage }): {
146
146
  return MESSAGE_MEDIA_TYPE.CONTACT
147
147
  }
148
148
 
@@ -17,25 +17,25 @@ const INTERACTIVE_MAPPER = {
17
17
  * and delegates to the correct internal resolver.
18
18
  *
19
19
  * @param {Object} params
20
- * @param {Object} params.originalMessage - Raw message payload
20
+ * @param {Object} params.imMessage - Raw message payload
21
21
  * @returns {string} Unified message type
22
22
  */
23
- export const getMessageType = ({ originalMessage }) => {
24
- if (!originalMessage || typeof originalMessage !== 'object') {
23
+ export const getMessageType = ({ imMessage }) => {
24
+ if (!imMessage || typeof imMessage !== 'object') {
25
25
  return MESSAGE_TYPE.UNKNOWN_MESSAGE_TYPE
26
26
  }
27
27
 
28
28
  // Telegram format
29
29
  if (
30
- 'update_id' in originalMessage ||
31
- 'message' in originalMessage ||
32
- 'callback_query' in originalMessage
30
+ 'update_id' in imMessage ||
31
+ 'message' in imMessage ||
32
+ 'callback_query' in imMessage
33
33
  ) {
34
- return getTelegramMessageType({ originalMessage })
34
+ return getTelegramMessageType({ imMessage })
35
35
  }
36
36
 
37
37
  // WhatsApp format
38
- const entry = originalMessage?.entry?.[0]
38
+ const entry = imMessage?.entry?.[0]
39
39
  const change = entry?.changes?.[0]
40
40
  const message = change?.value?.messages?.[0]
41
41
 
@@ -46,11 +46,11 @@ export const getMessageType = ({ originalMessage }) => {
46
46
  return MESSAGE_TYPE.UNKNOWN_MESSAGE_TYPE
47
47
  }
48
48
 
49
- export const mapMessageTelegramBase = ({ originalMessage }) => {
50
- const { callback_query, message, update_id } = originalMessage
49
+ export const mapMessageTelegramBase = ({ imMessage }) => {
50
+ const { callback_query, message, update_id } = imMessage
51
51
  const messageData = callback_query?.message || message
52
52
  const { chat, date, from, message_id } = messageData
53
- const type = getTelegramMessageType({ originalMessage })
53
+ const type = getTelegramMessageType({ imMessage })
54
54
  const typeMapped = MESSAGE_MEDIA_TYPE_MAPPER[type] || type
55
55
  const { forward_date, forward_from } = messageData
56
56
  const itIsForward = !!(forward_date && forward_from)
@@ -115,14 +115,14 @@ export const mapMessageWhatsAppContent = ({ message, type }) => {
115
115
  }
116
116
  }
117
117
 
118
- export const mapMessageTelegram = ({ originalMessage }) => {
118
+ export const mapMessageTelegram = ({ imMessage }) => {
119
119
  const { messageBase, type, message } = mapMessageTelegramBase({
120
- originalMessage,
120
+ imMessage,
121
121
  })
122
122
  const messageContent = mapMessageTelegramContent({
123
123
  type,
124
124
  message,
125
- originalMessage,
125
+ imMessage,
126
126
  })
127
127
  const messageMapped = { ...messageBase, ...messageContent }
128
128
  return messageMapped
@@ -140,8 +140,8 @@ export const getWhatsAppMessageType = ({ message }) => {
140
140
  }
141
141
  }
142
142
 
143
- export const extractReply = ({ originalMessage }) => {
144
- const { callback_query } = originalMessage
143
+ export const extractReply = ({ imMessage }) => {
144
+ const { callback_query } = imMessage
145
145
  const { data: id, message } = callback_query
146
146
  const {
147
147
  reply_markup: { inline_keyboard },
@@ -155,17 +155,17 @@ export const extractReply = ({ originalMessage }) => {
155
155
 
156
156
  return { id, title }
157
157
  }
158
- export const whatsappBaseExtraction = ({ originalMessage }) => {
158
+ export const whatsappBaseExtraction = ({ imMessage }) => {
159
159
  const {
160
160
  entry: [{ changes, id }],
161
- } = originalMessage
161
+ } = imMessage
162
162
  const [change] = changes
163
163
  const { field, value } = change
164
164
  return { field, value, wbaid: id }
165
165
  }
166
166
 
167
- export const mapMessageWhatsAppBase = ({ originalMessage }) => {
168
- const { field, value, wbaid } = whatsappBaseExtraction({ originalMessage })
167
+ export const mapMessageWhatsAppBase = ({ imMessage }) => {
168
+ const { field, value, wbaid } = whatsappBaseExtraction({ imMessage })
169
169
  const { [field]: messages, contacts } = value
170
170
  const [message] = messages
171
171
  const [contact] = contacts
@@ -190,11 +190,7 @@ export const mapMessageWhatsAppBase = ({ originalMessage }) => {
190
190
  return { messageBase, message, contact, context }
191
191
  }
192
192
 
193
- export const mapMessageTelegramContent = ({
194
- type,
195
- message,
196
- originalMessage,
197
- }) => {
193
+ export const mapMessageTelegramContent = ({ type, message, imMessage }) => {
198
194
  switch (type) {
199
195
  case MESSAGE_MEDIA_TYPE.TEXT:
200
196
  return {
@@ -222,7 +218,7 @@ export const mapMessageTelegramContent = ({
222
218
  ...(animation ? { attachment: 'animation' } : null),
223
219
  }
224
220
  case MESSAGE_MEDIA_TYPE.BUTTON_CLICK:
225
- const reply = extractReply({ originalMessage })
221
+ const reply = extractReply({ imMessage })
226
222
  return {
227
223
  reply,
228
224
  }
@@ -231,9 +227,9 @@ export const mapMessageTelegramContent = ({
231
227
  }
232
228
  }
233
229
 
234
- export const mapMessageWhatsApp = ({ originalMessage }) => {
230
+ export const mapMessageWhatsApp = ({ imMessage }) => {
235
231
  const { messageBase, message, context } = mapMessageWhatsAppBase({
236
- originalMessage,
232
+ imMessage,
237
233
  })
238
234
  const { type } = messageBase
239
235
  const messageContent = mapMessageWhatsAppContent({
@@ -23,18 +23,18 @@ describe('message-type helpers', () => {
23
23
  const isPhoto = isItMediaType(MESSAGE_MEDIA_TYPE.PHOTO)
24
24
 
25
25
  it('returns true when media type exists inside message', () => {
26
- const originalMessage = { message: { photo: [{}] } }
27
- expect(isPhoto({ originalMessage })).toBe(true)
26
+ const imMessage = { message: { photo: [{}] } }
27
+ expect(isPhoto({ imMessage })).toBe(true)
28
28
  })
29
29
 
30
30
  it('returns false when media type does not exist', () => {
31
- const originalMessage = { message: { text: 'hi' } }
32
- expect(isPhoto({ originalMessage })).toBe(false)
31
+ const imMessage = { message: { text: 'hi' } }
32
+ expect(isPhoto({ imMessage })).toBe(false)
33
33
  })
34
34
 
35
35
  it('returns false when message is missing', () => {
36
- expect(isPhoto({ originalMessage: {} })).toBe(false)
37
- expect(isPhoto({ originalMessage: null })).toBe(false)
36
+ expect(isPhoto({ imMessage: {} })).toBe(false)
37
+ expect(isPhoto({ imMessage: null })).toBe(false)
38
38
  })
39
39
  })
40
40
 
@@ -42,150 +42,142 @@ describe('message-type helpers', () => {
42
42
  const isButtonClick = isMessageTypeof(MESSAGE_TYPE.BUTTON_CLICK)
43
43
 
44
44
  it('returns true when type matches', () => {
45
- const originalMessage = { type: MESSAGE_TYPE.BUTTON_CLICK }
46
- expect(isButtonClick({ originalMessage })).toBe(true)
45
+ const imMessage = { type: MESSAGE_TYPE.BUTTON_CLICK }
46
+ expect(isButtonClick({ imMessage })).toBe(true)
47
47
  })
48
48
 
49
49
  it('returns false when type differs', () => {
50
- const originalMessage = { type: MESSAGE_MEDIA_TYPE.TEXT }
51
- expect(isButtonClick({ originalMessage })).toBe(false)
50
+ const imMessage = { type: MESSAGE_MEDIA_TYPE.TEXT }
51
+ expect(isButtonClick({ imMessage })).toBe(false)
52
52
  })
53
53
 
54
54
  it('returns false on missing type', () => {
55
- const originalMessage = {}
56
- expect(isButtonClick({ originalMessage })).toBe(false)
55
+ const imMessage = {}
56
+ expect(isButtonClick({ imMessage })).toBe(false)
57
57
  })
58
58
  })
59
59
 
60
60
  describe('isCallbackQuery', () => {
61
61
  it('returns true for Telegram callback_query', () => {
62
- const originalMessage = { callback_query: { data: '1' } }
63
- expect(isCallbackQuery({ originalMessage })).toBe(true)
62
+ const imMessage = { callback_query: { data: '1' } }
63
+ expect(isCallbackQuery({ imMessage })).toBe(true)
64
64
  })
65
65
 
66
66
  it('returns false otherwise', () => {
67
- expect(isCallbackQuery({ originalMessage: {} })).toBe(false)
67
+ expect(isCallbackQuery({ imMessage: {} })).toBe(false)
68
68
  })
69
69
  })
70
70
 
71
71
  describe('media helpers', () => {
72
72
  it('isItFreeText works', () => {
73
- expect(
74
- isItFreeText({ originalMessage: { message: { text: 'hi' } } }),
75
- ).toBe(true)
73
+ expect(isItFreeText({ imMessage: { message: { text: 'hi' } } })).toBe(
74
+ true,
75
+ )
76
76
  })
77
77
 
78
78
  it('isItPhoto works', () => {
79
- expect(isItPhoto({ originalMessage: { message: { photo: [{}] } } })).toBe(
80
- true,
81
- )
79
+ expect(isItPhoto({ imMessage: { message: { photo: [{}] } } })).toBe(true)
82
80
  })
83
81
 
84
82
  it('isItVideo works', () => {
85
- expect(isItVideo({ originalMessage: { message: { video: {} } } })).toBe(
86
- true,
87
- )
83
+ expect(isItVideo({ imMessage: { message: { video: {} } } })).toBe(true)
88
84
  })
89
85
 
90
86
  it('isItVoice works', () => {
91
- expect(isItVoice({ originalMessage: { message: { voice: {} } } })).toBe(
92
- true,
93
- )
87
+ expect(isItVoice({ imMessage: { message: { voice: {} } } })).toBe(true)
94
88
  })
95
89
 
96
90
  it('isItDocument works', () => {
97
- expect(
98
- isItDocument({ originalMessage: { message: { document: {} } } }),
99
- ).toBe(true)
91
+ expect(isItDocument({ imMessage: { message: { document: {} } } })).toBe(
92
+ true,
93
+ )
100
94
  })
101
95
 
102
96
  it('isItContact works', () => {
103
- expect(
104
- isItContact({ originalMessage: { message: { contact: {} } } }),
105
- ).toBe(true)
97
+ expect(isItContact({ imMessage: { message: { contact: {} } } })).toBe(
98
+ true,
99
+ )
106
100
  })
107
101
 
108
102
  it('isItPoll works', () => {
109
- expect(isItPoll({ originalMessage: { message: { poll: {} } } })).toBe(
110
- true,
111
- )
103
+ expect(isItPoll({ imMessage: { message: { poll: {} } } })).toBe(true)
112
104
  })
113
105
  })
114
106
 
115
107
  describe('getTelegramMessageType', () => {
116
108
  it('detects callback_query → BUTTON_CLICK', () => {
117
- const originalMessage = { callback_query: {} }
118
- expect(getTelegramMessageType({ originalMessage })).toBe(
109
+ const imMessage = { callback_query: {} }
110
+ expect(getTelegramMessageType({ imMessage })).toBe(
119
111
  MESSAGE_TYPE.BUTTON_CLICK,
120
112
  )
121
113
  })
122
114
 
123
115
  it('detects text', () => {
124
- const originalMessage = { message: { text: 'hello' } }
125
- expect(getTelegramMessageType({ originalMessage })).toBe(
116
+ const imMessage = { message: { text: 'hello' } }
117
+ expect(getTelegramMessageType({ imMessage })).toBe(
126
118
  MESSAGE_MEDIA_TYPE.TEXT,
127
119
  )
128
120
  })
129
121
 
130
122
  it('detects photo', () => {
131
- const originalMessage = { message: { photo: [{}] } }
132
- expect(getTelegramMessageType({ originalMessage })).toBe(
123
+ const imMessage = { message: { photo: [{}] } }
124
+ expect(getTelegramMessageType({ imMessage })).toBe(
133
125
  MESSAGE_MEDIA_TYPE.PHOTO,
134
126
  )
135
127
  })
136
128
 
137
129
  it('detects video', () => {
138
- const originalMessage = { message: { video: {} } }
139
- expect(getTelegramMessageType({ originalMessage })).toBe(
130
+ const imMessage = { message: { video: {} } }
131
+ expect(getTelegramMessageType({ imMessage })).toBe(
140
132
  MESSAGE_MEDIA_TYPE.VIDEO,
141
133
  )
142
134
  })
143
135
 
144
136
  it('detects document', () => {
145
- const originalMessage = { message: { document: {} } }
146
- expect(getTelegramMessageType({ originalMessage })).toBe(
137
+ const imMessage = { message: { document: {} } }
138
+ expect(getTelegramMessageType({ imMessage })).toBe(
147
139
  MESSAGE_MEDIA_TYPE.DOCUMENT,
148
140
  )
149
141
  })
150
142
 
151
143
  it('detects location', () => {
152
- const originalMessage = { message: { location: {} } }
153
- expect(getTelegramMessageType({ originalMessage })).toBe(
144
+ const imMessage = { message: { location: {} } }
145
+ expect(getTelegramMessageType({ imMessage })).toBe(
154
146
  MESSAGE_MEDIA_TYPE.LOCATION,
155
147
  )
156
148
  })
157
149
 
158
150
  it('detects voice', () => {
159
- const originalMessage = { message: { voice: {} } }
160
- expect(getTelegramMessageType({ originalMessage })).toBe(
151
+ const imMessage = { message: { voice: {} } }
152
+ expect(getTelegramMessageType({ imMessage })).toBe(
161
153
  MESSAGE_MEDIA_TYPE.VOICE,
162
154
  )
163
155
  })
164
156
 
165
157
  it('detects poll', () => {
166
- const originalMessage = { message: { poll: {} } }
167
- expect(getTelegramMessageType({ originalMessage })).toBe(
158
+ const imMessage = { message: { poll: {} } }
159
+ expect(getTelegramMessageType({ imMessage })).toBe(
168
160
  MESSAGE_MEDIA_TYPE.POLL,
169
161
  )
170
162
  })
171
163
 
172
164
  it('detects sticker', () => {
173
- const originalMessage = { message: { sticker: {} } }
174
- expect(getTelegramMessageType({ originalMessage })).toBe(
165
+ const imMessage = { message: { sticker: {} } }
166
+ expect(getTelegramMessageType({ imMessage })).toBe(
175
167
  MESSAGE_MEDIA_TYPE.STICKER,
176
168
  )
177
169
  })
178
170
 
179
171
  it('detects contact', () => {
180
- const originalMessage = { message: { contact: {} } }
181
- expect(getTelegramMessageType({ originalMessage })).toBe(
172
+ const imMessage = { message: { contact: {} } }
173
+ expect(getTelegramMessageType({ imMessage })).toBe(
182
174
  MESSAGE_MEDIA_TYPE.CONTACT,
183
175
  )
184
176
  })
185
177
 
186
178
  it('falls back to UNKNOWN_MESSAGE_TYPE', () => {
187
- const originalMessage = { message: { something_else: 'x' } }
188
- expect(getTelegramMessageType({ originalMessage })).toBe(
179
+ const imMessage = { message: { something_else: 'x' } }
180
+ expect(getTelegramMessageType({ imMessage })).toBe(
189
181
  MESSAGE_TYPE.UNKNOWN_MESSAGE_TYPE,
190
182
  )
191
183
  })
@@ -31,10 +31,10 @@ describe('Telegram unified message mapper – all mock samples', () => {
31
31
 
32
32
  describe(`Message mock: ${file}`, () => {
33
33
  it('should map type correctly', () => {
34
- const unifiedType = getTelegramMessageType({ originalMessage: raw })
34
+ const unifiedType = getTelegramMessageType({ imMessage: raw })
35
35
 
36
36
  const unifiedMessage = mapMessageTelegram({
37
- originalMessage: raw,
37
+ imMessage: raw,
38
38
  })
39
39
 
40
40
  expect(unifiedMessage).toBeTypeOf('object')
@@ -48,7 +48,7 @@ describe('Telegram unified message mapper – all mock samples', () => {
48
48
  })
49
49
 
50
50
  it('should include mandatory unified fields', () => {
51
- const unified = mapMessageTelegram({ originalMessage: raw })
51
+ const unified = mapMessageTelegram({ imMessage: raw })
52
52
 
53
53
  expect(unified).toHaveProperty('id')
54
54
  expect(unified).toHaveProperty('chatId')
@@ -66,7 +66,7 @@ describe('Unified message mapper – all platforms, all mock samples', () => {
66
66
  const mapper = messageUnifiedMapper[application]
67
67
  expect(mapper).toBeTypeOf('function')
68
68
 
69
- const unified = mapper({ originalMessage: raw })
69
+ const unified = mapper({ imMessage: raw })
70
70
 
71
71
  expect(unified).toBeTypeOf('object')
72
72
  expect(unified).toHaveProperty('id')
@@ -30,10 +30,10 @@ describe('WhatsApp unified message mapper – all mock samples', () => {
30
30
  describe(`Message mock: ${file}`, () => {
31
31
  it('should map type correctly', () => {
32
32
  console.log(file)
33
- const unifiedType = getMessageType({ originalMessage: raw })
33
+ const unifiedType = getMessageType({ imMessage: raw })
34
34
 
35
35
  const unifiedMessage = mapMessageWhatsApp({
36
- originalMessage: raw,
36
+ imMessage: raw,
37
37
  })
38
38
 
39
39
  expect(unifiedMessage).toBeTypeOf('object')
@@ -47,7 +47,7 @@ describe('WhatsApp unified message mapper – all mock samples', () => {
47
47
  })
48
48
 
49
49
  it('should include mandatory unified fields', () => {
50
- const unified = mapMessageWhatsApp({ originalMessage: raw })
50
+ const unified = mapMessageWhatsApp({ imMessage: raw })
51
51
 
52
52
  expect(unified).toHaveProperty('id')
53
53
  expect(unified).toHaveProperty('chatId')
@@ -28,3 +28,4 @@ export function generateAlertId(): string
28
28
  export function generateResourceId(): string
29
29
  export function generateIncomingEmailId(): string
30
30
  export function generateEmailId(): string
31
+ export function generateImId(): string
@@ -71,4 +71,6 @@ export const ID_PREFIXES: Readonly<{
71
71
  INCOMING_EMAIL: 'ieml'
72
72
  /** Email ID prefix */
73
73
  EMAIL: 'eml'
74
+ /** Instant Message ID prefix */
75
+ IM: 'im'
74
76
  }>
@@ -1,28 +1,24 @@
1
1
  export function isItMediaType(
2
2
  mediaType: string,
3
- ): (params: { originalMessage: any }) => boolean
3
+ ): (params: { imMessage: any }) => boolean
4
4
  export function isMessageTypeof(
5
5
  typeOfMessage: string,
6
- ): (params: { originalMessage: any }) => boolean
7
- export function isCallbackQuery({
8
- originalMessage,
9
- }: {
10
- originalMessage: any
11
- }): boolean
12
- export const isItPoll: (params: { originalMessage: any }) => boolean
13
- export const isItMessage: (params: { originalMessage: any }) => boolean
14
- export const isItVoice: (params: { originalMessage: any }) => boolean
15
- export const isItVideo: (params: { originalMessage: any }) => boolean
16
- export const isItPhoto: (params: { originalMessage: any }) => boolean
17
- export const isItFreeText: (params: { originalMessage: any }) => boolean
18
- export const isItSticker: (params: { originalMessage: any }) => boolean
19
- export const isItContact: (params: { originalMessage: any }) => boolean
20
- export const isItLocation: (params: { originalMessage: any }) => boolean
21
- export const isItDocument: (params: { originalMessage: any }) => boolean
22
- export const isItVideoNote: (params: { originalMessage: any }) => boolean
23
- export const isItButtonClick: (params: { originalMessage: any }) => boolean
6
+ ): (params: { imMessage: any }) => boolean
7
+ export function isCallbackQuery({ imMessage }: { imMessage: any }): boolean
8
+ export const isItPoll: (params: { imMessage: any }) => boolean
9
+ export const isItMessage: (params: { imMessage: any }) => boolean
10
+ export const isItVoice: (params: { imMessage: any }) => boolean
11
+ export const isItVideo: (params: { imMessage: any }) => boolean
12
+ export const isItPhoto: (params: { imMessage: any }) => boolean
13
+ export const isItFreeText: (params: { imMessage: any }) => boolean
14
+ export const isItSticker: (params: { imMessage: any }) => boolean
15
+ export const isItContact: (params: { imMessage: any }) => boolean
16
+ export const isItLocation: (params: { imMessage: any }) => boolean
17
+ export const isItDocument: (params: { imMessage: any }) => boolean
18
+ export const isItVideoNote: (params: { imMessage: any }) => boolean
19
+ export const isItButtonClick: (params: { imMessage: any }) => boolean
24
20
  export function getTelegramMessageType({
25
- originalMessage,
21
+ imMessage,
26
22
  }: {
27
- originalMessage: any
23
+ imMessage: any
28
24
  }): string
@@ -1,13 +1,5 @@
1
- export function getMessageType({
2
- originalMessage,
3
- }: {
4
- originalMessage: any
5
- }): string
6
- export function mapMessageTelegramBase({
7
- originalMessage,
8
- }: {
9
- originalMessage: any
10
- }): {
1
+ export function getMessageType({ imMessage }: { imMessage: any }): string
2
+ export function mapMessageTelegramBase({ imMessage }: { imMessage: any }): {
11
3
  messageBase: {
12
4
  timestamp: string
13
5
  forwardInfo: {
@@ -46,11 +38,7 @@ export function mapMessageWhatsAppContent({
46
38
  reply: any
47
39
  text?: undefined
48
40
  }
49
- export function mapMessageTelegram({
50
- originalMessage,
51
- }: {
52
- originalMessage: any
53
- }):
41
+ export function mapMessageTelegram({ imMessage }: { imMessage: any }):
54
42
  | {
55
43
  text: any
56
44
  reply?: undefined
@@ -125,24 +113,16 @@ export function mapMessageTelegram({
125
113
  itIsForward: boolean
126
114
  }
127
115
  export function getWhatsAppMessageType({ message }: { message: any }): any
128
- export function extractReply({ originalMessage }: { originalMessage: any }): {
116
+ export function extractReply({ imMessage }: { imMessage: any }): {
129
117
  id: any
130
118
  title: any
131
119
  }
132
- export function whatsappBaseExtraction({
133
- originalMessage,
134
- }: {
135
- originalMessage: any
136
- }): {
120
+ export function whatsappBaseExtraction({ imMessage }: { imMessage: any }): {
137
121
  field: any
138
122
  value: any
139
123
  wbaid: any
140
124
  }
141
- export function mapMessageWhatsAppBase({
142
- originalMessage,
143
- }: {
144
- originalMessage: any
145
- }): {
125
+ export function mapMessageWhatsAppBase({ imMessage }: { imMessage: any }): {
146
126
  messageBase: {
147
127
  id: any
148
128
  chatId: any
@@ -165,11 +145,11 @@ export function mapMessageWhatsAppBase({
165
145
  export function mapMessageTelegramContent({
166
146
  type,
167
147
  message,
168
- originalMessage,
148
+ imMessage,
169
149
  }: {
170
150
  type: any
171
151
  message: any
172
- originalMessage: any
152
+ imMessage: any
173
153
  }):
174
154
  | {
175
155
  text: any
@@ -193,11 +173,7 @@ export function mapMessageTelegramContent({
193
173
  }
194
174
  text?: undefined
195
175
  }
196
- export function mapMessageWhatsApp({
197
- originalMessage,
198
- }: {
199
- originalMessage: any
200
- }):
176
+ export function mapMessageWhatsApp({ imMessage }: { imMessage: any }):
201
177
  | {
202
178
  text: any
203
179
  reply?: undefined
@@ -250,7 +226,7 @@ export function mapMessageWhatsApp({
250
226
  timestamp: any
251
227
  }
252
228
  export const messageUnifiedMapper: {
253
- [IM_PLATFORM.TELEGRAM]: ({ originalMessage }: { originalMessage: any }) =>
229
+ [IM_PLATFORM.TELEGRAM]: ({ imMessage }: { imMessage: any }) =>
254
230
  | {
255
231
  text: any
256
232
  reply?: undefined
@@ -324,7 +300,7 @@ export const messageUnifiedMapper: {
324
300
  chatter: any
325
301
  itIsForward: boolean
326
302
  }
327
- [IM_PLATFORM.WHATSAPP]: ({ originalMessage }: { originalMessage: any }) =>
303
+ [IM_PLATFORM.WHATSAPP]: ({ imMessage }: { imMessage: any }) =>
328
304
  | {
329
305
  text: any
330
306
  reply?: undefined