@activepieces/piece-slack 0.5.11 → 0.6.0
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 +4 -5
- package/src/index.js +5 -3
- package/src/index.js.map +1 -1
- package/src/lib/actions/add-reaction-to-message.d.ts +1 -1
- package/src/lib/actions/add-reaction-to-message.js +1 -1
- package/src/lib/actions/add-reaction-to-message.js.map +1 -1
- package/src/lib/actions/create-channel.js +8 -22
- package/src/lib/actions/create-channel.js.map +1 -1
- package/src/lib/actions/find-user-by-email.js +9 -21
- package/src/lib/actions/find-user-by-email.js.map +1 -1
- package/src/lib/actions/get-channel-history.d.ts +8 -0
- package/src/lib/actions/get-channel-history.js +76 -0
- package/src/lib/actions/get-channel-history.js.map +1 -0
- package/src/lib/actions/request-action-direct-message.d.ts +1 -1
- package/src/lib/actions/request-action-message.d.ts +1 -1
- package/src/lib/actions/request-action-message.js +1 -1
- package/src/lib/actions/request-action-message.js.map +1 -1
- package/src/lib/actions/request-approval-direct-message.d.ts +1 -1
- package/src/lib/actions/request-approval-message.d.ts +1 -1
- package/src/lib/actions/request-approval-message.js +1 -1
- package/src/lib/actions/request-approval-message.js.map +1 -1
- package/src/lib/actions/search-messages.js +26 -29
- package/src/lib/actions/search-messages.js.map +1 -1
- package/src/lib/actions/send-direct-message-action.d.ts +1 -1
- package/src/lib/actions/send-message-action.d.ts +1 -1
- package/src/lib/actions/send-message-action.js +1 -1
- package/src/lib/actions/send-message-action.js.map +1 -1
- package/src/lib/actions/update-message.d.ts +1 -1
- package/src/lib/actions/update-message.js +11 -23
- package/src/lib/actions/update-message.js.map +1 -1
- package/src/lib/actions/update-profile.js +13 -30
- package/src/lib/actions/update-profile.js.map +1 -1
- package/src/lib/actions/upload-file.js +6 -26
- package/src/lib/actions/upload-file.js.map +1 -1
- package/src/lib/common/props.d.ts +3 -3
- package/src/lib/common/props.js +63 -44
- package/src/lib/common/props.js.map +1 -1
- package/src/lib/common/request-action.d.ts +1 -5
- package/src/lib/common/utils.d.ts +1 -5
- package/src/lib/common/utils.js +20 -61
- package/src/lib/common/utils.js.map +1 -1
- package/src/lib/triggers/new-channel.d.ts +1 -1
- package/src/lib/triggers/new-channel.js +52 -58
- package/src/lib/triggers/new-channel.js.map +1 -1
- package/src/lib/triggers/new-message.d.ts +3 -3
- package/src/lib/triggers/new-message.js +14 -17
- package/src/lib/triggers/new-message.js.map +1 -1
- package/src/lib/triggers/new-reaction-added.d.ts +6 -3
- package/src/lib/triggers/new-reaction-added.js +36 -6
- package/src/lib/triggers/new-reaction-added.js.map +1 -1
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
6
|
const props_1 = require("../common/props");
|
|
7
7
|
const __1 = require("../../");
|
|
8
|
-
const
|
|
8
|
+
const web_api_1 = require("@slack/web-api");
|
|
9
9
|
const sampleData = {
|
|
10
10
|
client_msg_id: '2767cf34-0651-44e0-b9c8-1b167ce9b7a9',
|
|
11
11
|
type: 'message',
|
|
@@ -41,7 +41,7 @@ exports.newMessage = (0, pieces_framework_1.createTrigger)({
|
|
|
41
41
|
description: 'Triggers when a new message is received',
|
|
42
42
|
props: {
|
|
43
43
|
info: props_1.slackInfo,
|
|
44
|
-
channel: props_1.slackChannel,
|
|
44
|
+
channel: (0, props_1.slackChannel)(true),
|
|
45
45
|
},
|
|
46
46
|
type: pieces_framework_1.TriggerStrategy.APP_WEBHOOK,
|
|
47
47
|
sampleData: sampleData,
|
|
@@ -49,7 +49,7 @@ exports.newMessage = (0, pieces_framework_1.createTrigger)({
|
|
|
49
49
|
var _a;
|
|
50
50
|
// Older OAuth2 has team_id, newer has team.id
|
|
51
51
|
const teamId = (_a = context.auth.data['team_id']) !== null && _a !== void 0 ? _a : context.auth.data['team']['id'];
|
|
52
|
-
|
|
52
|
+
context.app.createListeners({
|
|
53
53
|
events: ['message'],
|
|
54
54
|
identifierValue: teamId,
|
|
55
55
|
});
|
|
@@ -58,20 +58,17 @@ exports.newMessage = (0, pieces_framework_1.createTrigger)({
|
|
|
58
58
|
// Ignored
|
|
59
59
|
}),
|
|
60
60
|
test: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
};
|
|
73
|
-
const response = yield pieces_common_1.httpClient.sendRequest(request);
|
|
74
|
-
return response.body.messages.map((message) => (Object.assign(Object.assign({}, message), { channel: context.propsValue.channel, event_ts: '1678231735.586539', channel_type: 'channel' })));
|
|
61
|
+
const client = new web_api_1.WebClient(context.auth.access_token);
|
|
62
|
+
const response = yield client.conversations.history({
|
|
63
|
+
channel: context.propsValue.channel,
|
|
64
|
+
limit: 10,
|
|
65
|
+
});
|
|
66
|
+
if (!response.messages) {
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
69
|
+
return response.messages.map((message) => {
|
|
70
|
+
return Object.assign(Object.assign({}, message), { channel: context.propsValue.channel, event_ts: '1678231735.586539', channel_type: 'channel' });
|
|
71
|
+
});
|
|
75
72
|
}),
|
|
76
73
|
run: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
77
74
|
const payloadBody = context.payload.body;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-message.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/slack/src/lib/triggers/new-message.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"new-message.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/slack/src/lib/triggers/new-message.ts"],"names":[],"mappings":";;;;AAAA,qEAAgF;AAChF,2CAA0D;AAC1D,8BAAmC;AACnC,4CAA2C;AAE3C,MAAM,UAAU,GAAG;IACjB,aAAa,EAAE,sCAAsC;IACrD,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,mBAAmB;IACvB,MAAM,EAAE;QACN;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,GAAG;yBACV;qBACF;iBACF;aACF;SACF;KACF;IACD,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,SAAS;CACxB,CAAC;AAEW,QAAA,UAAU,GAAG,IAAA,gCAAa,EAAC;IACtC,IAAI,EAAE,aAAS;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,yCAAyC;IACtD,KAAK,EAAE;QACL,IAAI,EAAE,iBAAS;QACf,OAAO,EAAE,IAAA,oBAAY,EAAC,IAAI,CAAC;KAC5B;IACD,IAAI,EAAE,kCAAe,CAAC,WAAW;IACjC,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,CAAO,OAAO,EAAE,EAAE;;QAC1B,8CAA8C;QAC9C,MAAM,MAAM,GACV,MAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,mCAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC1B,MAAM,EAAE,CAAC,SAAS,CAAC;YACnB,eAAe,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC,CAAA;IACD,SAAS,EAAE,CAAO,OAAO,EAAE,EAAE;QAC3B,UAAU;IACZ,CAAC,CAAA;IAED,IAAI,EAAE,CAAO,OAAO,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,IAAI,mBAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;YAClD,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO;YACnC,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACvC,uCACK,OAAO,KACV,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EACnC,QAAQ,EAAE,mBAAmB,EAC7B,YAAY,EAAE,SAAS,IACvB;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAA;IAED,GAAG,EAAE,CAAO,OAAO,EAAE,EAAE;QACrB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAmB,CAAC;QACxD,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7D,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,CAAA;CACF,CAAC,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { TriggerStrategy } from '@activepieces/pieces-framework';
|
|
2
2
|
export declare const newReactionAdded: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
3
|
-
|
|
3
|
+
emojis: import("@activepieces/pieces-framework").ArrayProperty<false>;
|
|
4
|
+
channel: import("@activepieces/pieces-framework").DropdownProperty<string, false>;
|
|
4
5
|
}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
5
|
-
|
|
6
|
+
emojis: import("@activepieces/pieces-framework").ArrayProperty<false>;
|
|
7
|
+
channel: import("@activepieces/pieces-framework").DropdownProperty<string, false>;
|
|
6
8
|
}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
7
|
-
|
|
9
|
+
emojis: import("@activepieces/pieces-framework").ArrayProperty<false>;
|
|
10
|
+
channel: import("@activepieces/pieces-framework").DropdownProperty<string, false>;
|
|
8
11
|
}>;
|
|
@@ -4,6 +4,8 @@ exports.newReactionAdded = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
6
|
const __1 = require("../../");
|
|
7
|
+
const props_1 = require("../common/props");
|
|
8
|
+
const web_api_1 = require("@slack/web-api");
|
|
7
9
|
const sampleData = {
|
|
8
10
|
client_msg_id: '2767cf34-0651-44e0-b9c8-1b167ce9b7a9',
|
|
9
11
|
type: 'message',
|
|
@@ -38,11 +40,12 @@ exports.newReactionAdded = (0, pieces_framework_1.createTrigger)({
|
|
|
38
40
|
displayName: 'New Reaction',
|
|
39
41
|
description: 'Triggers when a new reaction is added to a message',
|
|
40
42
|
props: {
|
|
41
|
-
|
|
43
|
+
emojis: pieces_framework_1.Property.Array({
|
|
42
44
|
displayName: 'Emojis (E.g fire, smile)',
|
|
43
|
-
description: 'Select
|
|
45
|
+
description: 'Select emojis to trigger on',
|
|
44
46
|
required: false,
|
|
45
47
|
}),
|
|
48
|
+
channel: (0, props_1.slackChannel)(false),
|
|
46
49
|
},
|
|
47
50
|
type: pieces_framework_1.TriggerStrategy.APP_WEBHOOK,
|
|
48
51
|
sampleData: sampleData,
|
|
@@ -50,7 +53,7 @@ exports.newReactionAdded = (0, pieces_framework_1.createTrigger)({
|
|
|
50
53
|
var _a;
|
|
51
54
|
// Older OAuth2 has team_id, newer has team.id
|
|
52
55
|
const teamId = (_a = context.auth.data['team_id']) !== null && _a !== void 0 ? _a : context.auth.data['team']['id'];
|
|
53
|
-
|
|
56
|
+
context.app.createListeners({
|
|
54
57
|
events: ['reaction_added'],
|
|
55
58
|
identifierValue: teamId,
|
|
56
59
|
});
|
|
@@ -59,12 +62,39 @@ exports.newReactionAdded = (0, pieces_framework_1.createTrigger)({
|
|
|
59
62
|
// Ignored
|
|
60
63
|
}),
|
|
61
64
|
test: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
62
|
-
|
|
65
|
+
var _b;
|
|
66
|
+
const client = new web_api_1.WebClient((_b = context.auth.data['authed_user']) === null || _b === void 0 ? void 0 : _b.access_token);
|
|
67
|
+
const response = yield client.reactions.list({ limit: 10, full: true });
|
|
68
|
+
if (!response.items) {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
return response.items
|
|
72
|
+
.filter((item) => item.type === 'message')
|
|
73
|
+
.map((item) => {
|
|
74
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
75
|
+
return {
|
|
76
|
+
type: 'reaction_added',
|
|
77
|
+
user: (_c = (_b = (_a = item.message) === null || _a === void 0 ? void 0 : _a.reactions) === null || _b === void 0 ? void 0 : _b[0].users) === null || _c === void 0 ? void 0 : _c[0],
|
|
78
|
+
reaction: (_e = (_d = item.message) === null || _d === void 0 ? void 0 : _d.reactions) === null || _e === void 0 ? void 0 : _e[0].name,
|
|
79
|
+
item_user: (_f = item.message) === null || _f === void 0 ? void 0 : _f.user,
|
|
80
|
+
item: {
|
|
81
|
+
type: 'message',
|
|
82
|
+
channel: item.channel,
|
|
83
|
+
ts: (_g = item.message) === null || _g === void 0 ? void 0 : _g.ts,
|
|
84
|
+
},
|
|
85
|
+
event_ts: '1360782804.083113',
|
|
86
|
+
};
|
|
87
|
+
});
|
|
63
88
|
}),
|
|
64
89
|
run: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
65
90
|
const payloadBody = context.payload.body;
|
|
66
|
-
if (context.propsValue.
|
|
67
|
-
if (context.propsValue.
|
|
91
|
+
if (context.propsValue.emojis) {
|
|
92
|
+
if (!context.propsValue.emojis.includes(payloadBody.event.reaction)) {
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (context.propsValue.channel) {
|
|
97
|
+
if (payloadBody.event.item['channel'] !== context.propsValue.channel) {
|
|
68
98
|
return [];
|
|
69
99
|
}
|
|
70
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-reaction-added.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/slack/src/lib/triggers/new-reaction-added.ts"],"names":[],"mappings":";;;;AAAA,qEAIwC;AACxC,8BAAmC;
|
|
1
|
+
{"version":3,"file":"new-reaction-added.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/slack/src/lib/triggers/new-reaction-added.ts"],"names":[],"mappings":"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"}
|