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
@@ -1,176 +0,0 @@
1
- import {
2
- createTrigger,
3
- TriggerStrategy,
4
- Property,
5
- AppConnectionValueForAuthProperty,
6
- } from '@activepieces/pieces-framework';
7
- import {
8
- DedupeStrategy,
9
- Polling,
10
- pollingHelper,
11
- } from '@activepieces/pieces-common';
12
- import { signalCliRestApiAuth } from '../common/auth';
13
- import { SignalCliApiClient } from '../common/api-client';
14
- import { GroupEntry } from '../common/types';
15
- import { formatPhoneNumber } from '../common/utils';
16
-
17
- const polling: Polling<
18
- AppConnectionValueForAuthProperty<typeof signalCliRestApiAuth>,
19
- {
20
- number: string;
21
- groupid: string;
22
- include_pending_requests?: boolean;
23
- include_pending_invites?: boolean;
24
- }
25
- > = {
26
- strategy: DedupeStrategy.LAST_ITEM,
27
- items: async ({ auth, propsValue, lastItemId, store }) => {
28
- const { number, groupid, include_pending_requests = false, include_pending_invites = false } = propsValue;
29
-
30
- const apiClient = new SignalCliApiClient(auth.props);
31
- const formattedNumber = formatPhoneNumber(number);
32
-
33
- try {
34
- // Hole aktuelle Gruppeninformationen
35
- const group = await apiClient.get<GroupEntry>(
36
- `/v1/groups/${encodeURIComponent(formattedNumber)}/${encodeURIComponent(groupid)}`
37
- );
38
-
39
- // Im Test-Modus (lastItemId === null): Zeige alle aktuellen Mitglieder
40
- // Im normalen Polling-Modus: Finde nur neue Mitglieder
41
- const isTestMode = lastItemId === null || lastItemId === undefined;
42
-
43
- // Lade vorherigen State (separate Listen für verschiedene Typen)
44
- const previousMembersJson = await store.get<string>('group_members');
45
- const previousPendingRequestsJson = await store.get<string>('group_pending_requests');
46
- const previousPendingInvitesJson = await store.get<string>('group_pending_invites');
47
-
48
- const previousMembers: string[] = previousMembersJson
49
- ? JSON.parse(previousMembersJson)
50
- : [];
51
- const previousPendingRequests: string[] = previousPendingRequestsJson
52
- ? JSON.parse(previousPendingRequestsJson)
53
- : [];
54
- const previousPendingInvites: string[] = previousPendingInvitesJson
55
- ? JSON.parse(previousPendingInvitesJson)
56
- : [];
57
-
58
- // Erstelle aktuelle Listen
59
- const currentMembers: string[] = [...(group.members || [])];
60
- const currentPendingRequests: string[] = [...(group.pending_requests || [])];
61
- const currentPendingInvites: string[] = [...(group.pending_invites || [])];
62
-
63
- // Finde neue Mitglieder (nur reguläre Mitglieder)
64
- const newMembers = isTestMode
65
- ? currentMembers
66
- : currentMembers.filter((member) => !previousMembers.includes(member));
67
-
68
- // Finde neue pending requests (nur wenn include_pending_requests aktiviert ist)
69
- const newPendingRequests = isTestMode
70
- ? (include_pending_requests ? currentPendingRequests : [])
71
- : (include_pending_requests
72
- ? currentPendingRequests.filter((member) => !previousPendingRequests.includes(member))
73
- : []);
74
-
75
- // Finde neue pending invites (nur wenn include_pending_invites aktiviert ist)
76
- const newPendingInvites = isTestMode
77
- ? (include_pending_invites ? currentPendingInvites : [])
78
- : (include_pending_invites
79
- ? currentPendingInvites.filter((member) => !previousPendingInvites.includes(member))
80
- : []);
81
-
82
- // Kombiniere alle neuen Einträge
83
- const membersToReturn = [
84
- ...newMembers.map((member) => ({ member, type: 'member' as const })),
85
- ...newPendingRequests.map((member) => ({ member, type: 'pending_request' as const })),
86
- ...newPendingInvites.map((member) => ({ member, type: 'pending_invite' as const })),
87
- ];
88
-
89
- // Speichere aktuelle Listen als neuen State (nur wenn nicht im Test-Modus)
90
- if (!isTestMode) {
91
- await store.put('group_members', JSON.stringify(currentMembers));
92
- await store.put('group_pending_requests', JSON.stringify(currentPendingRequests));
93
- await store.put('group_pending_invites', JSON.stringify(currentPendingInvites));
94
- }
95
-
96
- // Returniere Mitglieder als Items
97
- return membersToReturn.map(({ member, type }) => {
98
- const isPendingRequest = type === 'pending_request';
99
- const isPendingInvite = type === 'pending_invite';
100
- const isRegularMember = type === 'member';
101
-
102
- return {
103
- id: `${groupid}-${member}-${type}`, // Eindeutige ID für Trigger (inkl. Typ)
104
- data: {
105
- member: member,
106
- groupId: groupid,
107
- groupName: group.name,
108
- groupDescription: group.description,
109
- isPendingRequest: isPendingRequest,
110
- isPendingInvite: isPendingInvite,
111
- isRegularMember: isRegularMember,
112
- memberType: type,
113
- },
114
- };
115
- });
116
- } catch (error) {
117
- // Bei Fehler (z.B. Gruppe nicht gefunden) leere Liste zurückgeben
118
- console.error('Error fetching group members:', error);
119
- return [];
120
- }
121
- },
122
- };
123
-
124
- export const newGroupMember = createTrigger({
125
- auth: signalCliRestApiAuth,
126
- name: 'newGroupMember',
127
- displayName: 'New Group Member',
128
- description: 'Triggers when a new member joins a Signal group or requests to join',
129
- type: TriggerStrategy.POLLING,
130
- props: {
131
- number: Property.ShortText({
132
- displayName: 'Phone Number',
133
- description: 'Registered phone number in international format (e.g., +43123456789)',
134
- required: true,
135
- }),
136
- groupid: Property.ShortText({
137
- displayName: 'Group ID',
138
- description: 'Group ID (base64 encoded)',
139
- required: true,
140
- }),
141
- include_pending_requests: Property.Checkbox({
142
- displayName: 'Include Pending Requests',
143
- description: 'Also trigger for members who have requested to join (pending approval)',
144
- required: false,
145
- defaultValue: false,
146
- }),
147
- include_pending_invites: Property.Checkbox({
148
- displayName: 'Include Pending Invites',
149
- description: 'Also trigger for members who have been invited but not yet joined',
150
- required: false,
151
- defaultValue: false,
152
- }),
153
- },
154
- sampleData: {
155
- member: '+43123456789',
156
- groupId: 'base64groupid',
157
- groupName: 'My Signal Group',
158
- groupDescription: 'Group description',
159
- isPendingRequest: false,
160
- isPendingInvite: false,
161
- isRegularMember: true,
162
- memberType: 'member',
163
- },
164
- async test(context) {
165
- return await pollingHelper.test(polling, context);
166
- },
167
- async onEnable(context) {
168
- await pollingHelper.onEnable(polling, context);
169
- },
170
- async onDisable(context) {
171
- await pollingHelper.onDisable(polling, context);
172
- },
173
- async run(context) {
174
- return await pollingHelper.poll(polling, context);
175
- },
176
- });