piece-signal-cli-rest-api 0.2.0 → 0.2.1

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 (179) hide show
  1. package/package.json +26 -4
  2. package/src/index.d.ts +8 -0
  3. package/src/index.js +90 -0
  4. package/src/index.js.map +1 -0
  5. package/src/lib/actions/add-admins-to-group.d.ts +12 -0
  6. package/src/lib/actions/add-admins-to-group.js +45 -0
  7. package/src/lib/actions/add-admins-to-group.js.map +1 -0
  8. package/src/lib/actions/add-device.d.ts +11 -0
  9. package/src/lib/actions/add-device.js +40 -0
  10. package/src/lib/actions/add-device.js.map +1 -0
  11. package/src/lib/actions/add-members-to-group.d.ts +12 -0
  12. package/src/lib/actions/add-members-to-group.js +45 -0
  13. package/src/lib/actions/add-members-to-group.js.map +1 -0
  14. package/src/lib/actions/block-group.d.ts +11 -0
  15. package/src/lib/actions/block-group.js +37 -0
  16. package/src/lib/actions/block-group.js.map +1 -0
  17. package/src/lib/actions/create-group.d.ts +18 -0
  18. package/src/lib/actions/create-group.js +117 -0
  19. package/src/lib/actions/create-group.js.map +1 -0
  20. package/src/lib/actions/delete-group.d.ts +11 -0
  21. package/src/lib/actions/delete-group.js +37 -0
  22. package/src/lib/actions/delete-group.js.map +1 -0
  23. package/src/lib/actions/get-contact.d.ts +11 -0
  24. package/src/lib/actions/get-contact.js +37 -0
  25. package/src/lib/actions/get-contact.js.map +1 -0
  26. package/src/lib/actions/get-group.d.ts +11 -0
  27. package/src/lib/actions/get-group.js +37 -0
  28. package/src/lib/actions/get-group.js.map +1 -0
  29. package/src/lib/actions/get-qr-code-link.d.ts +11 -0
  30. package/src/lib/actions/get-qr-code-link.js +60 -0
  31. package/src/lib/actions/get-qr-code-link.js.map +1 -0
  32. package/src/lib/actions/join-group.d.ts +11 -0
  33. package/src/lib/actions/join-group.js +37 -0
  34. package/src/lib/actions/join-group.js.map +1 -0
  35. package/src/lib/actions/list-accounts.d.ts +8 -0
  36. package/src/lib/actions/list-accounts.js +23 -0
  37. package/src/lib/actions/list-accounts.js.map +1 -0
  38. package/src/lib/actions/list-attachments.d.ts +8 -0
  39. package/src/lib/actions/list-attachments.js +23 -0
  40. package/src/lib/actions/list-attachments.js.map +1 -0
  41. package/src/lib/actions/list-contacts.d.ts +10 -0
  42. package/src/lib/actions/list-contacts.js +32 -0
  43. package/src/lib/actions/list-contacts.js.map +1 -0
  44. package/src/lib/actions/list-devices.d.ts +10 -0
  45. package/src/lib/actions/list-devices.js +32 -0
  46. package/src/lib/actions/list-devices.js.map +1 -0
  47. package/src/lib/actions/list-groups.d.ts +10 -0
  48. package/src/lib/actions/list-groups.js +32 -0
  49. package/src/lib/actions/list-groups.js.map +1 -0
  50. package/src/lib/actions/list-identities.d.ts +10 -0
  51. package/src/lib/actions/list-identities.js +32 -0
  52. package/src/lib/actions/list-identities.js.map +1 -0
  53. package/src/lib/actions/quit-group.d.ts +11 -0
  54. package/src/lib/actions/quit-group.js +37 -0
  55. package/src/lib/actions/quit-group.js.map +1 -0
  56. package/src/lib/actions/receive-messages.d.ts +15 -0
  57. package/src/lib/actions/receive-messages.js +100 -0
  58. package/src/lib/actions/receive-messages.js.map +1 -0
  59. package/src/lib/actions/remote-delete-message.d.ts +12 -0
  60. package/src/lib/actions/remote-delete-message.js +46 -0
  61. package/src/lib/actions/remote-delete-message.js.map +1 -0
  62. package/src/lib/actions/remove-admins-from-group.d.ts +12 -0
  63. package/src/lib/actions/remove-admins-from-group.js +45 -0
  64. package/src/lib/actions/remove-admins-from-group.js.map +1 -0
  65. package/src/lib/actions/remove-device.d.ts +11 -0
  66. package/src/lib/actions/remove-device.js +37 -0
  67. package/src/lib/actions/remove-device.js.map +1 -0
  68. package/src/lib/actions/remove-members-from-group.d.ts +12 -0
  69. package/src/lib/actions/remove-members-from-group.js +45 -0
  70. package/src/lib/actions/remove-members-from-group.js.map +1 -0
  71. package/src/lib/actions/remove-reaction.d.ts +13 -0
  72. package/src/lib/actions/remove-reaction.js +52 -0
  73. package/src/lib/actions/remove-reaction.js.map +1 -0
  74. package/src/lib/actions/request-approval-message.d.ts +15 -0
  75. package/src/lib/actions/request-approval-message.js +184 -0
  76. package/src/lib/actions/request-approval-message.js.map +1 -0
  77. package/src/lib/actions/resume-approval-flow.d.ts +11 -0
  78. package/src/lib/actions/resume-approval-flow.js +181 -0
  79. package/src/lib/actions/resume-approval-flow.js.map +1 -0
  80. package/src/lib/actions/search-numbers.d.ts +11 -0
  81. package/src/lib/actions/search-numbers.js +42 -0
  82. package/src/lib/actions/search-numbers.js.map +1 -0
  83. package/src/lib/actions/send-message.d.ts +27 -0
  84. package/src/lib/actions/send-message.js +176 -0
  85. package/src/lib/actions/send-message.js.map +1 -0
  86. package/src/lib/actions/send-reaction.d.ts +14 -0
  87. package/src/lib/actions/send-reaction.js +58 -0
  88. package/src/lib/actions/send-reaction.js.map +1 -0
  89. package/src/lib/actions/send-receipt.d.ts +13 -0
  90. package/src/lib/actions/send-receipt.js +58 -0
  91. package/src/lib/actions/send-receipt.js.map +1 -0
  92. package/src/lib/actions/start-typing.d.ts +11 -0
  93. package/src/lib/actions/start-typing.js +40 -0
  94. package/src/lib/actions/start-typing.js.map +1 -0
  95. package/src/lib/actions/stop-typing.d.ts +11 -0
  96. package/src/lib/actions/stop-typing.js +40 -0
  97. package/src/lib/actions/stop-typing.js.map +1 -0
  98. package/src/lib/actions/sync-contacts.d.ts +10 -0
  99. package/src/lib/actions/sync-contacts.js +32 -0
  100. package/src/lib/actions/sync-contacts.js.map +1 -0
  101. package/src/lib/actions/update-account-settings.d.ts +12 -0
  102. package/src/lib/actions/update-account-settings.js +49 -0
  103. package/src/lib/actions/update-account-settings.js.map +1 -0
  104. package/src/lib/actions/update-contact.d.ts +13 -0
  105. package/src/lib/actions/update-contact.js +56 -0
  106. package/src/lib/actions/update-contact.js.map +1 -0
  107. package/src/lib/actions/update-group.d.ts +19 -0
  108. package/src/lib/actions/update-group.js +125 -0
  109. package/src/lib/actions/update-group.js.map +1 -0
  110. package/src/lib/actions/update-profile.d.ts +13 -0
  111. package/src/lib/actions/update-profile.js +56 -0
  112. package/src/lib/actions/update-profile.js.map +1 -0
  113. package/src/lib/common/api-client.d.ts +24 -0
  114. package/src/lib/common/api-client.js +103 -0
  115. package/src/lib/common/api-client.js.map +1 -0
  116. package/src/lib/common/auth.d.ts +8 -0
  117. package/src/lib/common/auth.js +68 -0
  118. package/src/lib/common/auth.js.map +1 -0
  119. package/src/lib/common/message-utils.d.ts +81 -0
  120. package/src/lib/common/message-utils.js +327 -0
  121. package/src/lib/common/message-utils.js.map +1 -0
  122. package/src/lib/common/types.d.ts +65 -0
  123. package/src/lib/common/types.js +3 -0
  124. package/src/lib/common/types.js.map +1 -0
  125. package/src/lib/common/utils.d.ts +23 -0
  126. package/src/lib/common/utils.js +105 -0
  127. package/src/lib/common/utils.js.map +1 -0
  128. package/src/lib/triggers/new-group-member.d.ts +50 -0
  129. package/src/lib/triggers/new-group-member.js +155 -0
  130. package/src/lib/triggers/new-group-member.js.map +1 -0
  131. package/src/lib/triggers/new-message-received.d.ts +58 -0
  132. package/src/lib/triggers/new-message-received.js +469 -0
  133. package/src/lib/triggers/new-message-received.js.map +1 -0
  134. package/project.json +0 -58
  135. package/src/index.ts +0 -87
  136. package/src/lib/actions/add-admins-to-group.ts +0 -50
  137. package/src/lib/actions/add-device.ts +0 -45
  138. package/src/lib/actions/add-members-to-group.ts +0 -50
  139. package/src/lib/actions/block-group.ts +0 -36
  140. package/src/lib/actions/create-group.ts +0 -139
  141. package/src/lib/actions/delete-group.ts +0 -36
  142. package/src/lib/actions/get-contact.ts +0 -42
  143. package/src/lib/actions/get-group.ts +0 -37
  144. package/src/lib/actions/get-qr-code-link.ts +0 -62
  145. package/src/lib/actions/join-group.ts +0 -36
  146. package/src/lib/actions/list-accounts.ts +0 -20
  147. package/src/lib/actions/list-attachments.ts +0 -20
  148. package/src/lib/actions/list-contacts.ts +0 -37
  149. package/src/lib/actions/list-devices.ts +0 -38
  150. package/src/lib/actions/list-groups.ts +0 -32
  151. package/src/lib/actions/list-identities.ts +0 -32
  152. package/src/lib/actions/quit-group.ts +0 -36
  153. package/src/lib/actions/receive-messages.ts +0 -108
  154. package/src/lib/actions/remote-delete-message.ts +0 -56
  155. package/src/lib/actions/remove-admins-from-group.ts +0 -50
  156. package/src/lib/actions/remove-device.ts +0 -36
  157. package/src/lib/actions/remove-members-from-group.ts +0 -50
  158. package/src/lib/actions/remove-reaction.ts +0 -59
  159. package/src/lib/actions/request-approval-message.ts +0 -215
  160. package/src/lib/actions/search-numbers.ts +0 -47
  161. package/src/lib/actions/send-message.ts +0 -189
  162. package/src/lib/actions/send-reaction.ts +0 -66
  163. package/src/lib/actions/send-receipt.ts +0 -65
  164. package/src/lib/actions/start-typing.ts +0 -45
  165. package/src/lib/actions/stop-typing.ts +0 -45
  166. package/src/lib/actions/sync-contacts.ts +0 -31
  167. package/src/lib/actions/update-account-settings.ts +0 -57
  168. package/src/lib/actions/update-contact.ts +0 -65
  169. package/src/lib/actions/update-group.ts +0 -145
  170. package/src/lib/actions/update-profile.ts +0 -65
  171. package/src/lib/common/api-client.ts +0 -150
  172. package/src/lib/common/auth.ts +0 -66
  173. package/src/lib/common/message-utils.ts +0 -449
  174. package/src/lib/common/types.ts +0 -73
  175. package/src/lib/common/utils.ts +0 -106
  176. package/src/lib/triggers/new-group-member.ts +0 -176
  177. package/src/lib/triggers/new-message-received.ts +0 -618
  178. package/tsconfig.json +0 -19
  179. package/tsconfig.lib.json +0 -11
@@ -0,0 +1,469 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newMessageReceived = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const auth_1 = require("../common/auth");
8
+ const utils_1 = require("../common/utils");
9
+ const ws_1 = tslib_1.__importDefault(require("ws"));
10
+ // Function to automatically resume approval flows
11
+ function tryResumeApprovalFlow(message, store, apiUrl) {
12
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
+ var _a, _b, _c, _d;
14
+ console.log('[NewMessageReceived] DEBUG - Processing message:', {
15
+ hasReaction: !!((_b = (_a = message.envelope) === null || _a === void 0 ? void 0 : _a.dataMessage) === null || _b === void 0 ? void 0 : _b.reaction),
16
+ });
17
+ // Check if it's a reaction
18
+ if (!((_d = (_c = message.envelope) === null || _c === void 0 ? void 0 : _c.dataMessage) === null || _d === void 0 ? void 0 : _d.reaction)) {
19
+ return { resumed: false };
20
+ }
21
+ console.log('[NewMessageReceived] DEBUG - Reaction detected');
22
+ const reaction = message.envelope.dataMessage.reaction;
23
+ // Convert targetTimestamp from milliseconds to seconds (Unix timestamp)
24
+ // Note: targetTimestamp in SignalMessage interface might be targetSentTimestamp in actual data
25
+ const targetTimestampMs = reaction.targetSentTimestamp || reaction.targetTimestamp;
26
+ const targetTimestamp = Math.floor(targetTimestampMs / 1000);
27
+ const targetAuthor = reaction.targetAuthor;
28
+ const reactionEmoji = reaction.emoji;
29
+ console.log('[NewMessageReceived] DEBUG - Reaction data:', {
30
+ targetSentTimestampOriginal: targetTimestampMs,
31
+ targetTimestamp,
32
+ targetAuthor,
33
+ reactionEmoji,
34
+ });
35
+ // Cleanup expired approvals
36
+ const keysListKey = 'approval:keys';
37
+ const existingKeys = (yield store.get(keysListKey, pieces_framework_1.StoreScope.PROJECT)) || [];
38
+ const currentTimestamp = Math.floor(Date.now() / 1000);
39
+ const validKeys = [];
40
+ const keysToDelete = [];
41
+ console.log('[NewMessageReceived] DEBUG - Store info:', {
42
+ existingKeysCount: existingKeys.length,
43
+ existingKeys: existingKeys,
44
+ currentTimestamp,
45
+ });
46
+ for (const key of existingKeys) {
47
+ const mapping = (yield store.get(key, pieces_framework_1.StoreScope.PROJECT));
48
+ if (mapping) {
49
+ // Check if expired
50
+ if (currentTimestamp - mapping.createdAt > mapping.timeoutSeconds) {
51
+ // Expired - delete it and flowRunId mapping
52
+ yield store.delete(key, pieces_framework_1.StoreScope.PROJECT);
53
+ const flowRunMappingKey = `approval:flowRun:${mapping.flowRunId}`;
54
+ yield store.delete(flowRunMappingKey, pieces_framework_1.StoreScope.PROJECT);
55
+ keysToDelete.push(key);
56
+ }
57
+ else {
58
+ validKeys.push(key);
59
+ }
60
+ }
61
+ else {
62
+ // Mapping not found - remove from list
63
+ keysToDelete.push(key);
64
+ }
65
+ }
66
+ // Update keys list if any were deleted
67
+ if (keysToDelete.length > 0) {
68
+ yield store.put(keysListKey, validKeys, pieces_framework_1.StoreScope.PROJECT);
69
+ }
70
+ console.log('[NewMessageReceived] DEBUG - Cleanup result:', {
71
+ keysDeleted: keysToDelete.length,
72
+ validKeysCount: validKeys.length,
73
+ });
74
+ // Look up the specific approval mapping
75
+ const storeKey = `approval:${targetTimestamp}:${targetAuthor}`;
76
+ console.log('[NewMessageReceived] DEBUG - Store lookup:', {
77
+ storeKey,
78
+ existingKeysCount: existingKeys.length,
79
+ });
80
+ const mapping = (yield store.get(storeKey, pieces_framework_1.StoreScope.PROJECT));
81
+ if (!mapping) {
82
+ // Not an approval message
83
+ console.log('[NewMessageReceived] DEBUG - No mapping found:', {
84
+ reason: 'not_an_approval_message',
85
+ searchedKey: storeKey,
86
+ });
87
+ return { resumed: false };
88
+ }
89
+ console.log('[NewMessageReceived] DEBUG - Mapping found:', {
90
+ flowRunId: mapping.flowRunId,
91
+ requestId: mapping.requestId,
92
+ approveEmoji: mapping.approveEmoji,
93
+ disapproveEmoji: mapping.disapproveEmoji,
94
+ messageTimestamp: mapping.messageTimestamp,
95
+ createdAt: mapping.createdAt,
96
+ timeoutSeconds: mapping.timeoutSeconds,
97
+ });
98
+ // Check if expired
99
+ const ageInSeconds = currentTimestamp - mapping.createdAt;
100
+ const isExpired = ageInSeconds > mapping.timeoutSeconds;
101
+ console.log('[NewMessageReceived] DEBUG - Expiration check:', {
102
+ currentTimestamp,
103
+ createdAt: mapping.createdAt,
104
+ ageInSeconds,
105
+ timeoutSeconds: mapping.timeoutSeconds,
106
+ isExpired,
107
+ });
108
+ if (isExpired) {
109
+ // Expired - delete and return
110
+ yield store.delete(storeKey, pieces_framework_1.StoreScope.PROJECT);
111
+ const flowRunMappingKey = `approval:flowRun:${mapping.flowRunId}`;
112
+ yield store.delete(flowRunMappingKey, pieces_framework_1.StoreScope.PROJECT);
113
+ const updatedKeys = validKeys.filter(key => key !== storeKey);
114
+ yield store.put(keysListKey, updatedKeys, pieces_framework_1.StoreScope.PROJECT);
115
+ console.log('[NewMessageReceived] DEBUG - Approval expired');
116
+ return { resumed: false };
117
+ }
118
+ // Check emoji and determine action
119
+ let action;
120
+ console.log('[NewMessageReceived] DEBUG - Emoji check:', {
121
+ receivedEmoji: reactionEmoji,
122
+ expectedApproveEmoji: mapping.approveEmoji,
123
+ expectedDisapproveEmoji: mapping.disapproveEmoji,
124
+ });
125
+ if (reactionEmoji === mapping.approveEmoji) {
126
+ action = 'approve';
127
+ console.log('[NewMessageReceived] DEBUG - Emoji matched: approve');
128
+ }
129
+ else if (reactionEmoji === mapping.disapproveEmoji) {
130
+ action = 'disapprove';
131
+ console.log('[NewMessageReceived] DEBUG - Emoji matched: disapprove');
132
+ }
133
+ else {
134
+ // Invalid emoji - not an approval reaction
135
+ console.log('[NewMessageReceived] DEBUG - Invalid emoji:', {
136
+ reason: 'invalid_emoji',
137
+ receivedEmoji: reactionEmoji,
138
+ });
139
+ return { resumed: false };
140
+ }
141
+ // Make HTTP request to resume the flow
142
+ const resumeUrl = `${apiUrl}v1/flow-runs/${mapping.flowRunId}/requests/${mapping.requestId}?action=${action}`;
143
+ console.log('[NewMessageReceived] DEBUG - Attempting resume:', {
144
+ resumeUrl,
145
+ apiUrl,
146
+ flowRunId: mapping.flowRunId,
147
+ requestId: mapping.requestId,
148
+ action,
149
+ });
150
+ try {
151
+ const response = yield pieces_common_1.httpClient.sendRequest({
152
+ method: pieces_common_1.HttpMethod.POST,
153
+ url: resumeUrl,
154
+ headers: {
155
+ 'Content-Type': 'application/json',
156
+ },
157
+ });
158
+ console.log('[NewMessageReceived] DEBUG - Resume successful:', {
159
+ flowRunId: mapping.flowRunId,
160
+ action,
161
+ responseStatus: response.status,
162
+ responseBody: response.body,
163
+ });
164
+ // Delete mapping from Store (cleanup)
165
+ yield store.delete(storeKey, pieces_framework_1.StoreScope.PROJECT);
166
+ // Delete flowRunId mapping
167
+ const flowRunMappingKey = `approval:flowRun:${mapping.flowRunId}`;
168
+ yield store.delete(flowRunMappingKey, pieces_framework_1.StoreScope.PROJECT);
169
+ // Remove key from approval keys list
170
+ const finalKeys = validKeys.filter(key => key !== storeKey);
171
+ yield store.put(keysListKey, finalKeys, pieces_framework_1.StoreScope.PROJECT);
172
+ console.log('[NewMessageReceived] DEBUG - Cleanup completed');
173
+ return { resumed: true, action };
174
+ }
175
+ catch (error) {
176
+ // If resume fails, log but don't throw - message will still be returned
177
+ console.error('[NewMessageReceived] DEBUG - Resume failed:', {
178
+ error: error instanceof Error ? error.message : String(error),
179
+ errorStack: error instanceof Error ? error.stack : undefined,
180
+ resumeUrl,
181
+ flowRunId: mapping.flowRunId,
182
+ reason: 'resume_failed',
183
+ });
184
+ return { resumed: false };
185
+ }
186
+ });
187
+ }
188
+ const polling = {
189
+ strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
190
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, propsValue, lastFetchEpochMS }) {
191
+ const { baseUrl, useBasicAuth, basicAuthUsername, basicAuthPassword, mode = 'normal' } = auth.props;
192
+ const { number, timeout = 1, ignore_attachments = false, ignore_stories = false, max_messages, send_read_receipts = false } = propsValue;
193
+ const formattedNumber = (0, utils_1.formatPhoneNumber)(number);
194
+ // Build query parameters
195
+ const queryParams = new URLSearchParams();
196
+ queryParams.append('timeout', timeout.toString());
197
+ queryParams.append('ignore_attachments', ignore_attachments.toString());
198
+ queryParams.append('ignore_stories', ignore_stories.toString());
199
+ if (max_messages) {
200
+ queryParams.append('max_messages', max_messages.toString());
201
+ }
202
+ queryParams.append('send_read_receipts', send_read_receipts.toString());
203
+ const baseUrlClean = baseUrl.replace(/\/$/, '');
204
+ const httpUrl = `${baseUrlClean}/v1/receive/${encodeURIComponent(formattedNumber)}?${queryParams.toString()}`;
205
+ // Build headers
206
+ const headers = {};
207
+ // Add Basic Auth header if configured
208
+ if (useBasicAuth && basicAuthUsername && basicAuthPassword) {
209
+ const credentials = Buffer.from(`${basicAuthUsername}:${basicAuthPassword}`).toString('base64');
210
+ headers['Authorization'] = `Basic ${credentials}`;
211
+ }
212
+ // Use the configured mode to determine which method to use
213
+ if (mode === 'json-rpc') {
214
+ // Use WebSocket for json-rpc mode
215
+ return tryWebSocketReceive(httpUrl, headers, timeout, max_messages);
216
+ }
217
+ else {
218
+ // Use HTTP GET for normal/native mode
219
+ return tryHttpReceive(httpUrl, headers);
220
+ }
221
+ }),
222
+ };
223
+ // WebSocket receive function (for json-rpc mode)
224
+ function tryWebSocketReceive(httpUrl, headers, timeout, max_messages) {
225
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
226
+ const wsUrl = httpUrl.replace(/^http:/, 'ws:').replace(/^https:/, 'wss:');
227
+ const wsHeaders = Object.assign(Object.assign({}, headers), { 'Connection': 'Upgrade', 'Upgrade': 'websocket' });
228
+ return new Promise((resolve, reject) => {
229
+ const messages = [];
230
+ let messageCount = 0;
231
+ const maxMessagesToCollect = max_messages || Infinity;
232
+ const timeoutMs = timeout * 1000;
233
+ let resolved = false;
234
+ const resolveOnce = (result) => {
235
+ if (!resolved) {
236
+ resolved = true;
237
+ resolve(result);
238
+ }
239
+ };
240
+ const rejectOnce = (error) => {
241
+ if (!resolved) {
242
+ resolved = true;
243
+ reject(error);
244
+ }
245
+ };
246
+ const processMessages = () => {
247
+ // Filter messages that have dataMessage (actual message content)
248
+ const dataMessages = messages.filter((msg) => { var _a; return (_a = msg.envelope) === null || _a === void 0 ? void 0 : _a.dataMessage; });
249
+ // Map to polling format with timestamp
250
+ return dataMessages.map((message) => {
251
+ var _a;
252
+ const timestamp = ((_a = message.envelope.dataMessage) === null || _a === void 0 ? void 0 : _a.timestamp) || message.envelope.timestamp || Date.now();
253
+ return {
254
+ epochMilliSeconds: timestamp * 1000, // Convert to milliseconds
255
+ data: message,
256
+ };
257
+ });
258
+ };
259
+ const ws = new ws_1.default(wsUrl, {
260
+ headers: wsHeaders,
261
+ });
262
+ const timeoutId = setTimeout(() => {
263
+ if (!resolved) {
264
+ ws.close();
265
+ resolveOnce(processMessages());
266
+ }
267
+ }, timeoutMs);
268
+ ws.on('open', () => {
269
+ // WebSocket connection opened successfully
270
+ // The server will send messages as they arrive
271
+ });
272
+ ws.on('message', (data) => {
273
+ try {
274
+ const messageText = data.toString();
275
+ // Check if it's an error message
276
+ if (messageText.includes('"error"') || messageText.includes('"Msg"')) {
277
+ try {
278
+ const errorObj = JSON.parse(messageText);
279
+ if (errorObj.error || errorObj.Msg) {
280
+ clearTimeout(timeoutId);
281
+ ws.close();
282
+ // If it's a "no messages" type error, return empty array
283
+ if (errorObj.Msg && errorObj.Msg.includes('No new messages')) {
284
+ resolveOnce([]);
285
+ }
286
+ else {
287
+ rejectOnce(new Error(errorObj.error || errorObj.Msg));
288
+ }
289
+ return;
290
+ }
291
+ }
292
+ catch (_a) {
293
+ // Not a JSON error, continue processing
294
+ }
295
+ }
296
+ // Try to parse as JSON message
297
+ try {
298
+ const message = JSON.parse(messageText);
299
+ messages.push(message);
300
+ messageCount++;
301
+ // If we've reached max_messages, close the connection
302
+ if (messageCount >= maxMessagesToCollect) {
303
+ clearTimeout(timeoutId);
304
+ ws.close();
305
+ resolveOnce(processMessages());
306
+ }
307
+ }
308
+ catch (parseError) {
309
+ // If parsing fails, ignore this message
310
+ // The server might send non-JSON data
311
+ }
312
+ }
313
+ catch (error) {
314
+ // Ignore individual message errors
315
+ }
316
+ });
317
+ ws.on('error', (error) => {
318
+ clearTimeout(timeoutId);
319
+ ws.close();
320
+ // Reject to trigger fallback to HTTP GET
321
+ rejectOnce(error);
322
+ });
323
+ ws.on('close', () => {
324
+ clearTimeout(timeoutId);
325
+ // If we haven't resolved yet, resolve with collected messages
326
+ if (!resolved) {
327
+ resolveOnce(processMessages());
328
+ }
329
+ });
330
+ });
331
+ });
332
+ }
333
+ // HTTP GET receive function (for normal/native mode)
334
+ function tryHttpReceive(httpUrl, headers) {
335
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
336
+ try {
337
+ const response = yield pieces_common_1.httpClient.sendRequest({
338
+ method: pieces_common_1.HttpMethod.GET,
339
+ url: httpUrl,
340
+ headers,
341
+ });
342
+ // The API returns either a JSON array of messages or a JSON string
343
+ let messages = [];
344
+ if (typeof response.body === 'string') {
345
+ try {
346
+ messages = JSON.parse(response.body);
347
+ }
348
+ catch (_a) {
349
+ // If parsing fails, try to parse as array
350
+ messages = [];
351
+ }
352
+ }
353
+ else if (Array.isArray(response.body)) {
354
+ messages = response.body;
355
+ }
356
+ else {
357
+ messages = [];
358
+ }
359
+ // Filter messages that have dataMessage (actual message content)
360
+ const dataMessages = messages.filter((msg) => { var _a; return (_a = msg.envelope) === null || _a === void 0 ? void 0 : _a.dataMessage; });
361
+ // Map to polling format with timestamp
362
+ return dataMessages.map((message) => {
363
+ var _a;
364
+ const timestamp = ((_a = message.envelope.dataMessage) === null || _a === void 0 ? void 0 : _a.timestamp) || message.envelope.timestamp || Date.now();
365
+ return {
366
+ epochMilliSeconds: timestamp * 1000, // Convert to milliseconds
367
+ data: message,
368
+ };
369
+ });
370
+ }
371
+ catch (error) {
372
+ // If no messages are available, return empty array
373
+ if (error instanceof Error && error.message.includes('No new messages')) {
374
+ return [];
375
+ }
376
+ throw error;
377
+ }
378
+ });
379
+ }
380
+ exports.newMessageReceived = (0, pieces_framework_1.createTrigger)({
381
+ auth: auth_1.signalCliRestApiAuth,
382
+ name: 'newMessageReceived',
383
+ displayName: 'New Message Received',
384
+ description: 'Triggers when a new message is received via Signal. Automatically resumes approval flows if the message is a reaction to an approval request.',
385
+ type: pieces_framework_1.TriggerStrategy.POLLING,
386
+ props: {
387
+ number: pieces_framework_1.Property.ShortText({
388
+ displayName: 'Phone Number',
389
+ description: 'Registered phone number in international format (e.g., +43123456789)',
390
+ required: true,
391
+ }),
392
+ timeout: pieces_framework_1.Property.Number({
393
+ displayName: 'Timeout (seconds)',
394
+ description: 'Receive timeout in seconds (default: 1)',
395
+ required: false,
396
+ defaultValue: 1,
397
+ }),
398
+ ignore_attachments: pieces_framework_1.Property.Checkbox({
399
+ displayName: 'Ignore Attachments',
400
+ description: 'Ignore attachments when receiving messages',
401
+ required: false,
402
+ defaultValue: false,
403
+ }),
404
+ ignore_stories: pieces_framework_1.Property.Checkbox({
405
+ displayName: 'Ignore Stories',
406
+ description: 'Ignore stories when receiving messages',
407
+ required: false,
408
+ defaultValue: false,
409
+ }),
410
+ max_messages: pieces_framework_1.Property.Number({
411
+ displayName: 'Max Messages',
412
+ description: 'Maximum number of messages to receive (default: unlimited)',
413
+ required: false,
414
+ }),
415
+ send_read_receipts: pieces_framework_1.Property.Checkbox({
416
+ displayName: 'Send Read Receipts',
417
+ description: 'Automatically send read receipts when receiving messages',
418
+ required: false,
419
+ defaultValue: false,
420
+ }),
421
+ },
422
+ sampleData: {
423
+ envelope: {
424
+ source: '+43123456789',
425
+ sourceNumber: '+43123456789',
426
+ sourceDevice: 1,
427
+ timestamp: 1234567890,
428
+ dataMessage: {
429
+ message: 'Hello, this is a test message',
430
+ timestamp: 1234567890,
431
+ },
432
+ },
433
+ account: '+43123456789',
434
+ },
435
+ test(context) {
436
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
437
+ return yield pieces_common_1.pollingHelper.test(polling, context);
438
+ });
439
+ },
440
+ onEnable(context) {
441
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
442
+ yield pieces_common_1.pollingHelper.onEnable(polling, context);
443
+ });
444
+ },
445
+ onDisable(context) {
446
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
447
+ yield pieces_common_1.pollingHelper.onDisable(polling, context);
448
+ });
449
+ },
450
+ run(context) {
451
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
452
+ // Get messages from polling
453
+ const messages = yield pieces_common_1.pollingHelper.poll(polling, context);
454
+ // Process each message: try to resume approval flows if applicable
455
+ // Messages are still returned regardless of whether they triggered a resume
456
+ // Debug information is output via console.log (visible in Docker logs)
457
+ // Note: server context is not available in trigger run context, using empty string
458
+ const apiUrl = '';
459
+ for (const message of messages) {
460
+ const signalMessage = message;
461
+ // This will output debug info via console.log
462
+ yield tryResumeApprovalFlow(signalMessage, context.store, apiUrl);
463
+ }
464
+ // Return messages without debug fields (normal output)
465
+ return messages;
466
+ });
467
+ },
468
+ });
469
+ //# sourceMappingURL=new-message-received.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-message-received.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/signal-cli-rest-api/src/lib/triggers/new-message-received.ts"],"names":[],"mappings":"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"}
package/project.json DELETED
@@ -1,58 +0,0 @@
1
- {
2
- "name": "pieces-signal-cli-rest-api",
3
- "$schema": "../../../../node_modules/nx/schemas/project-schema.json",
4
- "sourceRoot": "packages/pieces/community/signal-cli-rest-api/src",
5
- "projectType": "library",
6
- "targets": {
7
- "build": {
8
- "executor": "@nx/js:tsc",
9
- "outputs": [
10
- "{options.outputPath}"
11
- ],
12
- "options": {
13
- "outputPath": "dist/packages/pieces/community/signal-cli-rest-api",
14
- "tsConfig": "packages/pieces/community/signal-cli-rest-api/tsconfig.lib.json",
15
- "packageJson": "packages/pieces/community/signal-cli-rest-api/package.json",
16
- "main": "packages/pieces/community/signal-cli-rest-api/src/index.ts",
17
- "assets": [
18
- "packages/pieces/community/signal-cli-rest-api/*.md",
19
- {
20
- "input": "packages/pieces/community/signal-cli-rest-api/src/i18n",
21
- "output": "./src/i18n",
22
- "glob": "**/!(i18n.json)"
23
- }
24
- ],
25
- "buildableProjectDepsInPackageJsonType": "dependencies",
26
- "updateBuildableProjectDepsInPackageJson": true,
27
- "clean": false
28
- },
29
- "dependsOn": [
30
- "^build",
31
- "prebuild"
32
- ]
33
- },
34
- "publish": {
35
- "command": "node tools/scripts/publish.mjs pieces-signal-cli-rest-api {args.ver} {args.tag}",
36
- "dependsOn": [
37
- "build"
38
- ]
39
- },
40
- "lint": {
41
- "executor": "@nx/eslint:lint",
42
- "outputs": [
43
- "{options.outputFile}"
44
- ]
45
- },
46
- "prebuild": {
47
- "executor": "nx:run-commands",
48
- "options": {
49
- "cwd": "packages/pieces/community/signal-cli-rest-api",
50
- "command": "bun install --no-save --silent"
51
- },
52
- "dependsOn": [
53
- "^build"
54
- ]
55
- }
56
- },
57
- "tags": []
58
- }
package/src/index.ts DELETED
@@ -1,87 +0,0 @@
1
- import { createPiece } from '@activepieces/pieces-framework';
2
- import { PieceCategory } from '@activepieces/shared';
3
- import { signalCliRestApiAuth } from './lib/common/auth';
4
- import { sendMessage } from './lib/actions/send-message';
5
- import { createGroup } from './lib/actions/create-group';
6
- import { listGroups } from './lib/actions/list-groups';
7
- import { getGroup } from './lib/actions/get-group';
8
- import { updateGroup } from './lib/actions/update-group';
9
- import { deleteGroup } from './lib/actions/delete-group';
10
- import { addMembersToGroup } from './lib/actions/add-members-to-group';
11
- import { removeMembersFromGroup } from './lib/actions/remove-members-from-group';
12
- import { addAdminsToGroup } from './lib/actions/add-admins-to-group';
13
- import { removeAdminsFromGroup } from './lib/actions/remove-admins-from-group';
14
- import { joinGroup } from './lib/actions/join-group';
15
- import { quitGroup } from './lib/actions/quit-group';
16
- import { blockGroup } from './lib/actions/block-group';
17
- import { listContacts } from './lib/actions/list-contacts';
18
- import { getContact } from './lib/actions/get-contact';
19
- import { updateContact } from './lib/actions/update-contact';
20
- import { syncContacts } from './lib/actions/sync-contacts';
21
- import { updateProfile } from './lib/actions/update-profile';
22
- import { sendReaction } from './lib/actions/send-reaction';
23
- import { removeReaction } from './lib/actions/remove-reaction';
24
- import { sendReceipt } from './lib/actions/send-receipt';
25
- import { startTyping } from './lib/actions/start-typing';
26
- import { stopTyping } from './lib/actions/stop-typing';
27
- import { listAccounts } from './lib/actions/list-accounts';
28
- import { getQrCodeLink } from './lib/actions/get-qr-code-link';
29
- import { listDevices } from './lib/actions/list-devices';
30
- import { addDevice } from './lib/actions/add-device';
31
- import { removeDevice } from './lib/actions/remove-device';
32
- import { remoteDeleteMessage } from './lib/actions/remote-delete-message';
33
- import { listAttachments } from './lib/actions/list-attachments';
34
- import { searchNumbers } from './lib/actions/search-numbers';
35
- import { listIdentities } from './lib/actions/list-identities';
36
- import { updateAccountSettings } from './lib/actions/update-account-settings';
37
- import { requestApprovalMessage } from './lib/actions/request-approval-message';
38
- import { receiveMessages } from './lib/actions/receive-messages';
39
- import { newGroupMember } from './lib/triggers/new-group-member';
40
-
41
- export const signalCliRestApi = createPiece({
42
- displayName: 'Signal CLI REST API',
43
- description: 'Interact with Signal Messenger via signal-cli-rest-api',
44
- auth: signalCliRestApiAuth,
45
- minimumSupportedRelease: '0.30.0',
46
- logoUrl: 'https://cdn.activepieces.com/pieces/signal.png',
47
- categories: [PieceCategory.COMMUNICATION],
48
- authors: [],
49
- actions: [
50
- sendMessage,
51
- createGroup,
52
- listGroups,
53
- getGroup,
54
- updateGroup,
55
- deleteGroup,
56
- addMembersToGroup,
57
- removeMembersFromGroup,
58
- addAdminsToGroup,
59
- removeAdminsFromGroup,
60
- joinGroup,
61
- quitGroup,
62
- blockGroup,
63
- listContacts,
64
- getContact,
65
- updateContact,
66
- syncContacts,
67
- updateProfile,
68
- sendReaction,
69
- removeReaction,
70
- sendReceipt,
71
- startTyping,
72
- stopTyping,
73
- listAccounts,
74
- getQrCodeLink,
75
- listDevices,
76
- addDevice,
77
- removeDevice,
78
- remoteDeleteMessage,
79
- listAttachments,
80
- searchNumbers,
81
- listIdentities,
82
- updateAccountSettings,
83
- requestApprovalMessage,
84
- receiveMessages,
85
- ],
86
- triggers: [newGroupMember],
87
- });