From db33fd8191530e5ac947772e3d3d6860c7177d11 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Thu, 4 Dec 2025 15:26:24 -0500 Subject: [PATCH 1/7] new-private-channel-created --- components/slack/package.json | 4 +- .../slack/sources/common/base-polling.mjs | 50 +++++++++++++++++ .../new-private-channel-created.mjs | 55 +++++++++++++++++++ 3 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 components/slack/sources/common/base-polling.mjs create mode 100644 components/slack/sources/new-private-channel-created/new-private-channel-created.mjs diff --git a/components/slack/package.json b/components/slack/package.json index be5c6b53d29fb..2e1c6cf76a6dc 100644 --- a/components/slack/package.json +++ b/components/slack/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/slack", - "version": "0.10.3", + "version": "0.11.0", "description": "Pipedream Slack Components", "main": "slack.app.mjs", "keywords": [ @@ -14,7 +14,7 @@ "access": "public" }, "dependencies": { - "@pipedream/platform": "^3.1.1", + "@pipedream/platform": "^3.1.0", "@slack/web-api": "^7.9.0", "async-retry": "^1.3.3", "lodash": "^4.17.21" diff --git a/components/slack/sources/common/base-polling.mjs b/components/slack/sources/common/base-polling.mjs new file mode 100644 index 0000000000000..5ca7b66e23790 --- /dev/null +++ b/components/slack/sources/common/base-polling.mjs @@ -0,0 +1,50 @@ +import slack from "../../slack.app.mjs"; +import { + DEFAULT_POLLING_SOURCE_TIMER_INTERVAL, ConfigurationError, +} from "@pipedream/platform"; + +export default { + props: { + slack, + db: "$.service.db", + timer: { + type: "$.interface.timer", + default: { + intervalSeconds: DEFAULT_POLLING_SOURCE_TIMER_INTERVAL, + }, + }, + }, + methods: { + _getLastTs() { + return this.db.get("lastTs") || 0; + }, + _setLastTs(lastTs) { + this.db.set("lastTs", lastTs); + }, + getResources() { + throw new ConfigurationError("getResources is not implemented"); + }, + generateMeta() { + throw new ConfigurationError("generateMeta is not implemented"); + }, + async processEvents(max) { + const results = await this.getResources(max); + if (!results.length) { + return; + } + + results.forEach((result) => { + const meta = this.generateMeta(result); + this.$emit(result, meta); + }); + }, + }, + hooks: { + async deploy() { + await this.processEvents(10); + }, + }, + async run() { + await this.processEvents(); + }, +}; diff --git a/components/slack/sources/new-private-channel-created/new-private-channel-created.mjs b/components/slack/sources/new-private-channel-created/new-private-channel-created.mjs new file mode 100644 index 0000000000000..e2e6df9cbb22e --- /dev/null +++ b/components/slack/sources/new-private-channel-created/new-private-channel-created.mjs @@ -0,0 +1,55 @@ +import common from "../common/base-polling.mjs"; + +export default { + ...common, + key: "slack-new-private-channel-created", + name: "New Private Channel Created", + version: "0.0.1", + description: "Emit new event when a new private channel is created. [See the documentation](https://api.slack.com/methods/conversations.list)", + type: "source", + dedupe: "unique", + methods: { + ...common.methods, + async getResources(max) { + const privateChannels = []; + const params = { + limit: 1000, + types: "private_channel", + }; + const lastTs = this._getLastTs(); + let maxTs = lastTs; + + do { + const { + channels, response_metadata: { next_cursor: nextCursor }, + } = await this.slack.conversationsList(params); + if (!channels.length) { + break; + } + for (const channel of channels) { + const ts = channel.created; + if (ts > lastTs) { + privateChannels.push(channel); + maxTs = Math.max(ts, maxTs); + } + } + params.cursor = nextCursor; + } while (params.cursor); + + this._setLastTs(maxTs); + + if (max && privateChannels.length > max) { + privateChannels.length = max; + } + + return privateChannels; + }, + generateMeta(channel) { + return { + id: channel.id, + summary: `New private channel created - ${channel.name}`, + ts: channel.created, + }; + }, + }, +}; From 57c0f53d544d1b1693991f68d873c90173c32a67 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Thu, 4 Dec 2025 15:27:02 -0500 Subject: [PATCH 2/7] pnpm-lock.yaml --- pnpm-lock.yaml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10ae28a51a860..9dea8d8969726 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6789,8 +6789,7 @@ importers: specifier: ^3.1.1 version: 3.1.1 - components/help_scout_api_keys: - specifiers: {} + components/help_scout_api_keys: {} components/helpcrunch: dependencies: @@ -11163,8 +11162,7 @@ importers: components/pingrabbit: {} - components/pinpoint: - specifiers: {} + components/pinpoint: {} components/pinterest: dependencies: @@ -13841,7 +13839,7 @@ importers: components/slack: dependencies: '@pipedream/platform': - specifier: ^3.1.1 + specifier: ^3.1.0 version: 3.1.1 '@slack/web-api': specifier: ^7.9.0 From 8465c244e18fbdfd23ef3cdeebe20590aff8696b Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Thu, 4 Dec 2025 16:01:40 -0500 Subject: [PATCH 3/7] move source to slack_v2 --- components/slack/package.json | 2 +- components/slack_v2/package.json | 2 +- .../{slack => slack_v2}/sources/common/base-polling.mjs | 2 +- .../new-private-channel-created.mjs | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) rename components/{slack => slack_v2}/sources/common/base-polling.mjs (96%) rename components/{slack => slack_v2}/sources/new-private-channel-created/new-private-channel-created.mjs (95%) diff --git a/components/slack/package.json b/components/slack/package.json index 2e1c6cf76a6dc..46ffd0bffc500 100644 --- a/components/slack/package.json +++ b/components/slack/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/slack", - "version": "0.11.0", + "version": "0.10.3", "description": "Pipedream Slack Components", "main": "slack.app.mjs", "keywords": [ diff --git a/components/slack_v2/package.json b/components/slack_v2/package.json index 230f61af81e4c..5cb232aa71478 100644 --- a/components/slack_v2/package.json +++ b/components/slack_v2/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/slack_v2", - "version": "0.0.1", + "version": "0.2.0", "description": "Pipedream Slack_v2 Components", "main": "slack_v2.app.mjs", "keywords": [ diff --git a/components/slack/sources/common/base-polling.mjs b/components/slack_v2/sources/common/base-polling.mjs similarity index 96% rename from components/slack/sources/common/base-polling.mjs rename to components/slack_v2/sources/common/base-polling.mjs index 5ca7b66e23790..d6d933f6fefdb 100644 --- a/components/slack/sources/common/base-polling.mjs +++ b/components/slack_v2/sources/common/base-polling.mjs @@ -1,4 +1,4 @@ -import slack from "../../slack.app.mjs"; +import slack from "../../slack_v2.app.mjs"; import { DEFAULT_POLLING_SOURCE_TIMER_INTERVAL, ConfigurationError, } from "@pipedream/platform"; diff --git a/components/slack/sources/new-private-channel-created/new-private-channel-created.mjs b/components/slack_v2/sources/new-private-channel-created/new-private-channel-created.mjs similarity index 95% rename from components/slack/sources/new-private-channel-created/new-private-channel-created.mjs rename to components/slack_v2/sources/new-private-channel-created/new-private-channel-created.mjs index e2e6df9cbb22e..fb2837c080a2c 100644 --- a/components/slack/sources/new-private-channel-created/new-private-channel-created.mjs +++ b/components/slack_v2/sources/new-private-channel-created/new-private-channel-created.mjs @@ -2,9 +2,9 @@ import common from "../common/base-polling.mjs"; export default { ...common, - key: "slack-new-private-channel-created", + key: "slack_v2-new-private-channel-created", name: "New Private Channel Created", - version: "0.0.1", + version: "0.0.{{ts}}", description: "Emit new event when a new private channel is created. [See the documentation](https://api.slack.com/methods/conversations.list)", type: "source", dedupe: "unique", From d58ebd405193bcfc2914e3f6a05ad6e0a3a887c4 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Thu, 4 Dec 2025 16:04:54 -0500 Subject: [PATCH 4/7] package.json --- components/slack/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/slack/package.json b/components/slack/package.json index 46ffd0bffc500..be5c6b53d29fb 100644 --- a/components/slack/package.json +++ b/components/slack/package.json @@ -14,7 +14,7 @@ "access": "public" }, "dependencies": { - "@pipedream/platform": "^3.1.0", + "@pipedream/platform": "^3.1.1", "@slack/web-api": "^7.9.0", "async-retry": "^1.3.3", "lodash": "^4.17.21" From 20581e6b8e5ff06c8d7965381445ac4f24d40e05 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Thu, 4 Dec 2025 16:05:21 -0500 Subject: [PATCH 5/7] pnpm-lock.yaml --- pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9dea8d8969726..bfa8994a10a3b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13839,7 +13839,7 @@ importers: components/slack: dependencies: '@pipedream/platform': - specifier: ^3.1.0 + specifier: ^3.1.1 version: 3.1.1 '@slack/web-api': specifier: ^7.9.0 From 89983273614b7b9448c70d32d054fb812f6d94c5 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Thu, 4 Dec 2025 16:10:07 -0500 Subject: [PATCH 6/7] fix version --- .../new-private-channel-created/new-private-channel-created.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/slack_v2/sources/new-private-channel-created/new-private-channel-created.mjs b/components/slack_v2/sources/new-private-channel-created/new-private-channel-created.mjs index fb2837c080a2c..545085280d4b5 100644 --- a/components/slack_v2/sources/new-private-channel-created/new-private-channel-created.mjs +++ b/components/slack_v2/sources/new-private-channel-created/new-private-channel-created.mjs @@ -4,7 +4,7 @@ export default { ...common, key: "slack_v2-new-private-channel-created", name: "New Private Channel Created", - version: "0.0.{{ts}}", + version: "0.0.1", description: "Emit new event when a new private channel is created. [See the documentation](https://api.slack.com/methods/conversations.list)", type: "source", dedupe: "unique", From 68ddf75589881a46a7d076f5d4631409b1b53377 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Thu, 4 Dec 2025 16:41:23 -0500 Subject: [PATCH 7/7] fix package version --- components/slack_v2/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/slack_v2/package.json b/components/slack_v2/package.json index 5cb232aa71478..e14fc69234b14 100644 --- a/components/slack_v2/package.json +++ b/components/slack_v2/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/slack_v2", - "version": "0.2.0", + "version": "0.1.0", "description": "Pipedream Slack_v2 Components", "main": "slack_v2.app.mjs", "keywords": [