@openclaw/slack 2026.8.2 → 2026.8.34
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/dist/{account-inspect-C3sePHWa.js → .setup/account-inspect-B86OaUEt.mjs} +2 -2
- package/dist/{accounts-Dm_H77gH.js → .setup/accounts-C1FspRF-.mjs} +1 -1
- package/dist/{accounts.runtime-DRuEK6mL.js → .setup/accounts.runtime-BpWv-6-2.mjs} +1 -1
- package/dist/{action-runtime-B0kRJ69h.js → .setup/action-runtime-Ddpb2CZS.mjs} +8 -8
- package/dist/.setup/action-runtime.runtime-Beq7Am11.mjs +2 -0
- package/dist/{actions-BOxiu2Vy.js → .setup/actions-DV3J6OB-.mjs} +6 -6
- package/dist/{approval-handler.runtime-l5_2JLqi.js → .setup/approval-handler.runtime-rEYfeaG_.mjs} +14 -9
- package/dist/{channel-BguxhhNG.js → .setup/channel-Bpv8aTo8.mjs} +31 -27
- package/dist/{channel-type-ChkODKBW.js → .setup/channel-type-CrwjkeJT.mjs} +4 -4
- package/dist/{channel.setup-BJohRJha.js → .setup/channel.setup-CTV8N2nI.mjs} +5 -5
- package/dist/{conversation-binding-route-Vee8Dgbf.js → .setup/conversation-binding-route-shed4O6L.mjs} +2 -2
- package/dist/{directory-config-Bmw4ykSy.js → .setup/directory-config-CW4ICy0y.mjs} +4 -4
- package/dist/{directory-live-BOILcXPo.js → .setup/directory-live-C2hI1rq1.mjs} +4 -4
- package/dist/{doctor-contract-BNjw9bxb.js → .setup/doctor-contract-CtMUqjvk.mjs} +1 -1
- package/dist/{group-policy-BYH74y50.js → .setup/group-policy-5epvX6Dt.mjs} +6 -6
- package/dist/{message-tool-api-BsZbsulu.js → .setup/message-tool-api-CBtuGn2d.mjs} +3 -3
- package/dist/{monitor-B72wWXWg.js → .setup/monitor-BnckzNnh.mjs} +4 -4
- package/dist/{outbound-adapter-CPgYQ-BM.js → .setup/outbound-adapter-Ic_fTJof.mjs} +6 -6
- package/dist/{pipeline.runtime-CcdujV99.js → .setup/pipeline.runtime-D4MRWgXI.mjs} +12 -12
- package/dist/{plugin-routes-CLp4obpN.js → .setup/plugin-routes-B8tooDLj.mjs} +1 -1
- package/dist/{policy-CUpBeOt9.js → .setup/policy-BxGXCr2q.mjs} +2 -2
- package/dist/{probe-gj5yQgN2.js → .setup/probe-DnWN6oBa.mjs} +3 -3
- package/dist/{provider-DW9YC_no.js → .setup/provider-DGNYrXQN.mjs} +17 -17
- package/dist/{registry-bbjH7IHX.js → .setup/registry-CIbMfuf8.mjs} +6 -2
- package/dist/{relay-source-BLMdBrAw.js → .setup/relay-source-BgJo9sZ_.mjs} +1 -1
- package/dist/{replies-DLjQ8RYU.js → .setup/replies-BRmyMlAE.mjs} +3 -3
- package/dist/{resolve-channels-Bv6IiGZ4.js → .setup/resolve-channels-Dpv7OyKO.mjs} +4 -4
- package/dist/{resolve-users-BXw2pA7y.js → .setup/resolve-users-DmyA3D_2.mjs} +4 -4
- package/dist/.setup/runtime-setter-api-CMFvhrAr.mjs +3 -0
- package/dist/{scopes-B9HRguDe.js → .setup/scopes-Dcgl9Nme.mjs} +1 -1
- package/dist/.setup/secret-contract-api-D9UfYujm.mjs +3 -0
- package/dist/{security-audit-B_yKr7MW.js → .setup/security-audit-tCbGyCfU.mjs} +1 -1
- package/dist/{send-GUz4_v2E.js → .setup/send-DN8vdkyi.mjs} +6 -6
- package/dist/{send.runtime-rScD-UJi.js → .setup/send.runtime-CtIhzzZU.mjs} +1 -1
- package/dist/.setup/setup-plugin-api-B1Y-kMp_.mjs +3 -0
- package/dist/{setup-surface-Cc3P-z35.js → .setup/setup-surface-BcIT0kDT.mjs} +6 -6
- package/dist/{shared-CQGVZ_8a.js → .setup/shared-DWQcLrb8.mjs} +9 -9
- package/dist/{slash-dispatch.runtime-C2015r6s.js → .setup/slash-dispatch.runtime-CZZBmmE3.mjs} +1 -1
- package/dist/{targets-7FexXJ62.js → .setup/targets-BlQcnjPc.mjs} +1 -1
- package/dist/account-inspect-api.js +1 -1
- package/dist/api.js +17 -17
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/configured-state.js +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/doctor-contract-api.js +1 -1
- package/dist/http-routes-api.js +1 -1
- package/dist/index.js +1 -1
- package/dist/message-tool-api.js +1 -1
- package/dist/runtime-api.js +13 -13
- package/dist/runtime-setter-api.js +1 -1
- package/dist/secret-contract-api.js +1 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/setup-entry.js +4 -3
- package/dist/setup-plugin-api.js +1 -1
- package/node_modules/@slack/bolt/node_modules/proxy-addr/HISTORY.md +60 -54
- package/node_modules/@slack/bolt/node_modules/proxy-addr/README.md +1 -1
- package/node_modules/@slack/bolt/node_modules/proxy-addr/index.js +32 -0
- package/node_modules/@slack/bolt/node_modules/proxy-addr/package.json +8 -4
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +4 -2
- package/node_modules/undici/lib/dispatcher/client-h1.js +12 -4
- package/node_modules/undici/lib/dispatcher/client-h2.js +70 -14
- package/node_modules/undici/lib/dispatcher/client.js +6 -2
- package/node_modules/undici/lib/handler/cache-handler.js +21 -5
- package/node_modules/undici/lib/handler/retry-handler.js +42 -7
- package/node_modules/undici/lib/interceptor/cache.js +20 -1
- package/node_modules/undici/lib/interceptor/decompress.js +146 -14
- package/node_modules/undici/lib/interceptor/dump.js +10 -23
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +245 -150
- package/node_modules/undici/lib/web/websocket/connection.js +1 -1
- package/node_modules/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -10
- package/node_modules/undici/package.json +1 -1
- package/node_modules/undici/types/interceptors.d.ts +2 -0
- package/package.json +5 -5
- package/dist/action-runtime.runtime-IuA14rev.js +0 -2
- /package/dist/{account-configured-sUohAxZr.js → .setup/account-configured-sUohAxZr.mjs} +0 -0
- /package/dist/{config-schema-B9GwoRlE.js → .setup/config-schema-B9GwoRlE.mjs} +0 -0
- /package/dist/{cursor-pages-eX7p8Wwt.js → .setup/cursor-pages-eX7p8Wwt.mjs} +0 -0
- /package/dist/{rolldown-runtime-8H4AJuhK.js → .setup/rolldown-runtime-8H4AJuhK.mjs} +0 -0
- /package/dist/{runtime-JSVZSWAj.js → .setup/runtime-JSVZSWAj.mjs} +0 -0
- /package/dist/{secret-contract-DxmvbxBF.js → .setup/secret-contract-DxmvbxBF.mjs} +0 -0
- /package/dist/{send-results-eeOu_HYm.js → .setup/send-results-eeOu_HYm.mjs} +0 -0
- /package/dist/{slash-commands.runtime-BTTMlmwy.js → .setup/slash-commands.runtime-BTTMlmwy.mjs} +0 -0
- /package/dist/{slash-skill-commands.runtime-CD1J2ODY.js → .setup/slash-skill-commands.runtime-CD1J2ODY.mjs} +0 -0
- /package/dist/{streaming-compat-B-e0mqM0.js → .setup/streaming-compat-B-e0mqM0.mjs} +0 -0
- /package/dist/{target-parsing-PbxGDbr9.js → .setup/target-parsing-PbxGDbr9.mjs} +0 -0
- /package/dist/{thread-ts-DUGhaYKq.js → .setup/thread-ts-DUGhaYKq.mjs} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.
|
|
2
|
-
import { a as parseSlackTarget, n as formatSlackTarget } from "./target-parsing-PbxGDbr9.
|
|
3
|
-
import { s as createSlackLookupClient } from "./probe-
|
|
4
|
-
import { t as collectSlackCursorPages } from "./cursor-pages-eX7p8Wwt.
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
|
|
2
|
+
import { a as parseSlackTarget, n as formatSlackTarget } from "./target-parsing-PbxGDbr9.mjs";
|
|
3
|
+
import { s as createSlackLookupClient } from "./probe-DnWN6oBa.mjs";
|
|
4
|
+
import { t as collectSlackCursorPages } from "./cursor-pages-eX7p8Wwt.mjs";
|
|
5
5
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { resolveDirectoryAllowlistEntries } from "openclaw/plugin-sdk/directory-runtime";
|
|
7
7
|
//#region extensions/slack/src/resolve-channels.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.
|
|
2
|
-
import { a as parseSlackTarget, n as formatSlackTarget } from "./target-parsing-PbxGDbr9.
|
|
3
|
-
import { s as createSlackLookupClient } from "./probe-
|
|
4
|
-
import { t as collectSlackCursorPages } from "./cursor-pages-eX7p8Wwt.
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
|
|
2
|
+
import { a as parseSlackTarget, n as formatSlackTarget } from "./target-parsing-PbxGDbr9.mjs";
|
|
3
|
+
import { s as createSlackLookupClient } from "./probe-DnWN6oBa.mjs";
|
|
4
|
+
import { t as collectSlackCursorPages } from "./cursor-pages-eX7p8Wwt.mjs";
|
|
5
5
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { resolveDirectoryAllowlistEntries } from "openclaw/plugin-sdk/directory-runtime";
|
|
7
7
|
//#region extensions/slack/src/resolve-users.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as createSlackReadClient, o as formatSlackError } from "./probe-
|
|
1
|
+
import { c as createSlackReadClient, o as formatSlackError } from "./probe-DnWN6oBa.mjs";
|
|
2
2
|
import { isRecord, normalizeOptionalString, normalizeStringEntries, sortUniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
//#region extensions/slack/src/scopes.ts
|
|
4
4
|
function collectScopes(value, into) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
|
|
2
2
|
import { readChannelAllowFromStore } from "openclaw/plugin-sdk/conversation-runtime";
|
|
3
3
|
import { coerceNativeSetting, normalizeAllowFromList } from "openclaw/plugin-sdk/channel-policy";
|
|
4
4
|
import { resolveNativeCommandsEnabled, resolveNativeSkillsEnabled } from "openclaw/plugin-sdk/native-command-config-runtime";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as resolveSlackAccount, l as resolveSlackOperationToken } from "./accounts-
|
|
2
|
-
import { a as parseSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-PbxGDbr9.
|
|
3
|
-
import { A as SLACK_MESSAGE_TEXT_HARD_LIMIT, D as renderSlackBlockFallbackText, E as buildSlackCompleteBlocksFallbackText, L as truncateSlackText, M as SLACK_TEXT_LIMIT, R as truncateSlackTextByUtf8Bytes, X as chunkSlackMrkdwnText, Z as markdownToSlackMrkdwnChunks, _ as appendSlackNativeDataPlainTextFallback, b as hasSlackNativeDataBlock, c as assertSlackDetachedTargetAllowed, j as SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT, k as SLACK_EDIT_TEXT_MAX_BYTES, q as resolveSlackQuestionActionIds, st as validateSlackBlocksArray, v as buildSlackNativeDataAccessibilityText, w as stripSlackNativeDataBlocks, x as isSlackInvalidBlocksError, y as createSlackNativeDataBaseTextConsumer, z as SLACK_QUESTION_FINALIZATION_BLOCKS } from "./group-policy-
|
|
4
|
-
import { c as createSlackReadClient, m as getSlackWriteClient, o as formatSlackError, u as createSlackTokenCacheKey } from "./probe-
|
|
5
|
-
import { n as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-DUGhaYKq.
|
|
6
|
-
import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.
|
|
1
|
+
import { a as resolveSlackAccount, l as resolveSlackOperationToken } from "./accounts-C1FspRF-.mjs";
|
|
2
|
+
import { a as parseSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-PbxGDbr9.mjs";
|
|
3
|
+
import { A as SLACK_MESSAGE_TEXT_HARD_LIMIT, D as renderSlackBlockFallbackText, E as buildSlackCompleteBlocksFallbackText, L as truncateSlackText, M as SLACK_TEXT_LIMIT, R as truncateSlackTextByUtf8Bytes, X as chunkSlackMrkdwnText, Z as markdownToSlackMrkdwnChunks, _ as appendSlackNativeDataPlainTextFallback, b as hasSlackNativeDataBlock, c as assertSlackDetachedTargetAllowed, j as SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT, k as SLACK_EDIT_TEXT_MAX_BYTES, q as resolveSlackQuestionActionIds, st as validateSlackBlocksArray, v as buildSlackNativeDataAccessibilityText, w as stripSlackNativeDataBlocks, x as isSlackInvalidBlocksError, y as createSlackNativeDataBaseTextConsumer, z as SLACK_QUESTION_FINALIZATION_BLOCKS } from "./group-policy-5epvX6Dt.mjs";
|
|
4
|
+
import { c as createSlackReadClient, m as getSlackWriteClient, o as formatSlackError, u as createSlackTokenCacheKey } from "./probe-DnWN6oBa.mjs";
|
|
5
|
+
import { n as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-DUGhaYKq.mjs";
|
|
6
|
+
import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
|
|
7
7
|
import { isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
8
|
import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
|
|
9
9
|
import { logVerbose, sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as updateMessageSlack, n as resolveSlackDmChannelId, r as sendMessageSlack, t as reconcileSlackUnknownSend } from "./send-
|
|
1
|
+
import { a as updateMessageSlack, n as resolveSlackDmChannelId, r as sendMessageSlack, t as reconcileSlackUnknownSend } from "./send-DN8vdkyi.mjs";
|
|
2
2
|
export { reconcileSlackUnknownSend, resolveSlackDmChannelId, sendMessageSlack, updateMessageSlack };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom } from "./accounts-
|
|
2
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
3
|
-
import "./shared-
|
|
4
|
-
import { o as SLACK_CHANNEL, r as createSlackSetupWizardBase } from "./channel.setup-
|
|
5
|
-
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-
|
|
6
|
-
import { t as resolveSlackUserAllowlist } from "./resolve-users-
|
|
1
|
+
import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom } from "./accounts-C1FspRF-.mjs";
|
|
2
|
+
import { t as inspectSlackAccount } from "./account-inspect-B86OaUEt.mjs";
|
|
3
|
+
import "./shared-DWQcLrb8.mjs";
|
|
4
|
+
import { o as SLACK_CHANNEL, r as createSlackSetupWizardBase } from "./channel.setup-CTV8N2nI.mjs";
|
|
5
|
+
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-Dpv7OyKO.mjs";
|
|
6
|
+
import { t as resolveSlackUserAllowlist } from "./resolve-users-DmyA3D_2.mjs";
|
|
7
7
|
import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
8
|
import { resolveBasicAllowFromEntries } from "openclaw/plugin-sdk/allow-from";
|
|
9
9
|
import { createSetupTranslator, noteChannelLookupFailure, noteChannelLookupSummary, parseMentionOrPrefixedId, patchChannelConfigForAccount, promptResolvedAllowFrom, resolveEntriesWithOptionalToken, resolveSetupAccountId, splitSetupEntries } from "openclaw/plugin-sdk/setup-runtime";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { n as isSlackPluginAccountConfigured } from "./account-configured-sUohAxZr.
|
|
2
|
-
import { n as listSlackAccountIds, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig, s as resolveSlackAccountDmPolicy } from "./accounts-
|
|
3
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
4
|
-
import { a as parseSlackTarget } from "./target-parsing-PbxGDbr9.
|
|
5
|
-
import { a as slackIngressIdentity, t as probeSlack } from "./probe-
|
|
6
|
-
import { n as slackBaseConfigAdapter, t as slackSetupPlugin } from "./channel.setup-
|
|
7
|
-
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-
|
|
8
|
-
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-DxmvbxBF.
|
|
1
|
+
import { n as isSlackPluginAccountConfigured } from "./account-configured-sUohAxZr.mjs";
|
|
2
|
+
import { n as listSlackAccountIds, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig, s as resolveSlackAccountDmPolicy } from "./accounts-C1FspRF-.mjs";
|
|
3
|
+
import { t as inspectSlackAccount } from "./account-inspect-B86OaUEt.mjs";
|
|
4
|
+
import { a as parseSlackTarget } from "./target-parsing-PbxGDbr9.mjs";
|
|
5
|
+
import { a as slackIngressIdentity, t as probeSlack } from "./probe-DnWN6oBa.mjs";
|
|
6
|
+
import { n as slackBaseConfigAdapter, t as slackSetupPlugin } from "./channel.setup-CTV8N2nI.mjs";
|
|
7
|
+
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-CtMUqjvk.mjs";
|
|
8
|
+
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-DxmvbxBF.mjs";
|
|
9
9
|
import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1 } from "openclaw/plugin-sdk/account-id";
|
|
10
10
|
import { adaptScopedAccountAccessor, createScopedDmSecurityResolver } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
11
11
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
@@ -71,7 +71,7 @@ const collectSlackSecurityFindings = createConditionalWarningCollector.findings(
|
|
|
71
71
|
severity: "critical",
|
|
72
72
|
title: "Slack security warning"
|
|
73
73
|
});
|
|
74
|
-
const loadSlackSecurityAuditModule = createLazyRuntimeModule(() => import("./security-audit-
|
|
74
|
+
const loadSlackSecurityAuditModule = createLazyRuntimeModule(() => import("./security-audit-tCbGyCfU.mjs").then((n) => n.n));
|
|
75
75
|
const slackSecurityAdapter = {
|
|
76
76
|
resolveDmPolicy: resolveSlackDmPolicy,
|
|
77
77
|
collectWarnings: collectSlackSecurityFindings,
|
package/dist/{slash-dispatch.runtime-C2015r6s.js → .setup/slash-dispatch.runtime-CZZBmmE3.mjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as deliverSlackSlashReplies$1, s as sanitizeSlackMonitorReplyPayload } from "./replies-
|
|
1
|
+
import { r as deliverSlackSlashReplies$1, s as sanitizeSlackMonitorReplyPayload } from "./replies-BRmyMlAE.mjs";
|
|
2
2
|
import { resolveAgentRoute as resolveAgentRoute$1 } from "openclaw/plugin-sdk/routing";
|
|
3
3
|
import { resolveMarkdownTableMode as resolveMarkdownTableMode$1 } from "openclaw/plugin-sdk/markdown-table-runtime";
|
|
4
4
|
import { resolveConversationLabel as resolveConversationLabel$1 } from "openclaw/plugin-sdk/conversation-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as parseSlackTarget, s as slackTargetsMatch } from "./target-parsing-PbxGDbr9.
|
|
1
|
+
import { a as parseSlackTarget, s as slackTargetsMatch } from "./target-parsing-PbxGDbr9.mjs";
|
|
2
2
|
//#region extensions/slack/src/targets.ts
|
|
3
3
|
function matchesResolvedUserTarget(target, currentMessagingTarget) {
|
|
4
4
|
const resolvedId = target.trim();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as inspectSlackAccount } from "
|
|
1
|
+
import { t as inspectSlackAccount } from "./.setup/account-inspect-B86OaUEt.mjs";
|
|
2
2
|
//#region extensions/slack/account-inspect-api.ts
|
|
3
3
|
function inspectSlackReadOnlyAccount(cfg, accountId) {
|
|
4
4
|
return inspectSlackAccount({
|
package/dist/api.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "
|
|
2
|
-
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds, r as mergeSlackAccountConfig, t as listEnabledSlackAccounts } from "
|
|
3
|
-
import { r as resolveSlackReplyToMode } from "
|
|
4
|
-
import { t as inspectSlackAccount } from "
|
|
5
|
-
import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId } from "
|
|
6
|
-
import "
|
|
7
|
-
import { N as buildSlackInteractiveBlocks, P as buildSlackPresentationBlocks, at as SLACK_MAX_BLOCKS, i as resolveSlackGroupToolPolicy, jt as resolveSlackAutoThreadId, ot as parseSlackBlocksInput, r as resolveSlackGroupRequireMention, st as validateSlackBlocksArray } from "
|
|
8
|
-
import { C as normalizeAllowListLower, E as resolveSlackAllowListMatch, O as resolveSlackUserAllowed, S as normalizeAllowList, T as normalizeSlackSlug, b as resolveSlackWriteClientOptions, d as createSlackWebClient, f as createSlackWriteClient, g as SLACK_WRITE_RETRY_OPTIONS, h as SLACK_DEFAULT_RETRY_OPTIONS, m as getSlackWriteClient, t as probeSlack, u as createSlackTokenCacheKey, w as normalizeSlackAllowOwnerEntry, x as allowListMatches, y as resolveSlackWebClientOptions } from "
|
|
9
|
-
import { n as buildSlackThreadingToolContext, t as slackPlugin } from "
|
|
10
|
-
import { n as extractSlackToolSend, r as listSlackMessageActions } from "
|
|
11
|
-
import { n as resolveSlackChannelType } from "
|
|
12
|
-
import { t as slackSetupPlugin } from "
|
|
13
|
-
import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, r as downloadSlackFile, s as listSlackEmojis, u as pinSlackMessage } from "
|
|
14
|
-
import { f as recordSlackThreadParticipation, l as hasSlackThreadParticipation, s as clearSlackThreadParticipationCache } from "
|
|
15
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "
|
|
16
|
-
import { t as collectSlackSecurityAuditFindings } from "
|
|
17
|
-
import { n as resolveSlackRuntimeGroupPolicy } from "
|
|
1
|
+
import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./.setup/registry-CIbMfuf8.mjs";
|
|
2
|
+
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds, r as mergeSlackAccountConfig, t as listEnabledSlackAccounts } from "./.setup/accounts-C1FspRF-.mjs";
|
|
3
|
+
import { r as resolveSlackReplyToMode } from "./.setup/conversation-binding-route-shed4O6L.mjs";
|
|
4
|
+
import { t as inspectSlackAccount } from "./.setup/account-inspect-B86OaUEt.mjs";
|
|
5
|
+
import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId } from "./.setup/target-parsing-PbxGDbr9.mjs";
|
|
6
|
+
import "./.setup/targets-BlQcnjPc.mjs";
|
|
7
|
+
import { N as buildSlackInteractiveBlocks, P as buildSlackPresentationBlocks, at as SLACK_MAX_BLOCKS, i as resolveSlackGroupToolPolicy, jt as resolveSlackAutoThreadId, ot as parseSlackBlocksInput, r as resolveSlackGroupRequireMention, st as validateSlackBlocksArray } from "./.setup/group-policy-5epvX6Dt.mjs";
|
|
8
|
+
import { C as normalizeAllowListLower, E as resolveSlackAllowListMatch, O as resolveSlackUserAllowed, S as normalizeAllowList, T as normalizeSlackSlug, b as resolveSlackWriteClientOptions, d as createSlackWebClient, f as createSlackWriteClient, g as SLACK_WRITE_RETRY_OPTIONS, h as SLACK_DEFAULT_RETRY_OPTIONS, m as getSlackWriteClient, t as probeSlack, u as createSlackTokenCacheKey, w as normalizeSlackAllowOwnerEntry, x as allowListMatches, y as resolveSlackWebClientOptions } from "./.setup/probe-DnWN6oBa.mjs";
|
|
9
|
+
import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./.setup/channel-Bpv8aTo8.mjs";
|
|
10
|
+
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./.setup/message-tool-api-CBtuGn2d.mjs";
|
|
11
|
+
import { n as resolveSlackChannelType } from "./.setup/channel-type-CrwjkeJT.mjs";
|
|
12
|
+
import { t as slackSetupPlugin } from "./.setup/channel.setup-CTV8N2nI.mjs";
|
|
13
|
+
import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, r as downloadSlackFile, s as listSlackEmojis, u as pinSlackMessage } from "./.setup/actions-DV3J6OB-.mjs";
|
|
14
|
+
import { f as recordSlackThreadParticipation, l as hasSlackThreadParticipation, s as clearSlackThreadParticipationCache } from "./.setup/send-DN8vdkyi.mjs";
|
|
15
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./.setup/directory-config-CW4ICy0y.mjs";
|
|
16
|
+
import { t as collectSlackSecurityAuditFindings } from "./.setup/security-audit-tCbGyCfU.mjs";
|
|
17
|
+
import { n as resolveSlackRuntimeGroupPolicy } from "./.setup/provider-DGNYrXQN.mjs";
|
|
18
18
|
export { SLACK_DEFAULT_RETRY_OPTIONS, SLACK_MAX_BLOCKS, SLACK_WRITE_RETRY_OPTIONS, allowListMatches, buildSlackInteractiveBlocks, buildSlackPresentationBlocks, buildSlackThreadingToolContext, clearSlackThreadParticipationCache, collectSlackSecurityAuditFindings, createSlackTokenCacheKey, createSlackWebClient, createSlackWriteClient, deleteSlackMessage, downloadSlackFile, editSlackMessage, extractSlackToolSend, getSlackMemberInfo, getSlackWriteClient, handleSlackHttpRequest, hasSlackThreadParticipation, inspectSlackAccount, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig, listSlackEmojis, listSlackMessageActions, listSlackPins, listSlackReactions, looksLikeSlackTargetId, mergeSlackAccountConfig, normalizeAllowList, normalizeAllowListLower, normalizeSlackAllowOwnerEntry, normalizeSlackMessagingTarget, normalizeSlackSlug, normalizeSlackWebhookPath, parseSlackBlocksInput, parseSlackTarget, pinSlackMessage, probeSlack, reactSlackMessage, readSlackMessages, recordSlackThreadParticipation, registerSlackHttpHandler, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAllowListMatch, resolveSlackAutoThreadId, resolveSlackChannelId, resolveSlackChannelType, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackReplyToMode, resolveSlackRuntimeGroupPolicy, resolveSlackUserAllowed, resolveSlackWebClientOptions, resolveSlackWriteClientOptions, sendSlackMessage, slackPlugin, slackSetupPlugin, unpinSlackMessage, validateSlackBlocksArray };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SlackChannelConfigSchema } from "
|
|
1
|
+
import { t as SlackChannelConfigSchema } from "./.setup/config-schema-B9GwoRlE.mjs";
|
|
2
2
|
export { SlackChannelConfigSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackPlugin } from "
|
|
1
|
+
import { t as slackPlugin } from "./.setup/channel-Bpv8aTo8.mjs";
|
|
2
2
|
export { slackPlugin };
|
package/dist/configured-state.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as hasSlackAccountCredentials } from "
|
|
1
|
+
import { t as hasSlackAccountCredentials } from "./.setup/account-configured-sUohAxZr.mjs";
|
|
2
2
|
import { DEFAULT_ACCOUNT_ID, hasConfiguredAccountValue, mergeAccountConfig } from "openclaw/plugin-sdk/account-core";
|
|
3
3
|
//#region extensions/slack/configured-state.ts
|
|
4
4
|
function hasConfiguredSlackAccount(account, env) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "
|
|
1
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./.setup/directory-config-CW4ICy0y.mjs";
|
|
2
2
|
export { listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "
|
|
1
|
+
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./.setup/doctor-contract-CtMUqjvk.mjs";
|
|
2
2
|
export { legacyConfigRules, normalizeCompatibilityConfig };
|
package/dist/http-routes-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as registerSlackPluginHttpRoutes } from "
|
|
1
|
+
import { t as registerSlackPluginHttpRoutes } from "./.setup/plugin-routes-B8tooDLj.mjs";
|
|
2
2
|
export { registerSlackPluginHttpRoutes };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as registerSlackPluginHttpRoutes } from "
|
|
1
|
+
import { t as registerSlackPluginHttpRoutes } from "./.setup/plugin-routes-B8tooDLj.mjs";
|
|
2
2
|
import "./http-routes-api.js";
|
|
3
3
|
import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
|
|
4
4
|
//#region extensions/slack/index.ts
|
package/dist/message-tool-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as describeSlackMessageTool } from "
|
|
1
|
+
import { t as describeSlackMessageTool } from "./.setup/message-tool-api-CBtuGn2d.mjs";
|
|
2
2
|
export { describeSlackMessageTool as describeMessageTool };
|
package/dist/runtime-api.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { t as registerSlackPluginHttpRoutes } from "
|
|
2
|
-
import { a as resolveSlackAccount, d as resolveSlackAppToken, f as resolveSlackBotToken, i as resolveDefaultSlackAccountId, n as listSlackAccountIds, t as listEnabledSlackAccounts } from "
|
|
3
|
-
import { i as resolveSlackGroupToolPolicy, r as resolveSlackGroupRequireMention } from "
|
|
4
|
-
import { t as probeSlack } from "
|
|
5
|
-
import { r as setSlackRuntime } from "
|
|
6
|
-
import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, s as listSlackEmojis, u as pinSlackMessage } from "
|
|
7
|
-
import { r as sendMessageSlack } from "
|
|
8
|
-
import { t as resolveSlackChannelAllowlist } from "
|
|
9
|
-
import { t as resolveSlackUserAllowlist } from "
|
|
10
|
-
import { t as monitorSlackProvider } from "
|
|
11
|
-
import { n as slackActionRuntime, t as handleSlackAction } from "
|
|
12
|
-
import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "
|
|
13
|
-
import "
|
|
1
|
+
import { t as registerSlackPluginHttpRoutes } from "./.setup/plugin-routes-B8tooDLj.mjs";
|
|
2
|
+
import { a as resolveSlackAccount, d as resolveSlackAppToken, f as resolveSlackBotToken, i as resolveDefaultSlackAccountId, n as listSlackAccountIds, t as listEnabledSlackAccounts } from "./.setup/accounts-C1FspRF-.mjs";
|
|
3
|
+
import { i as resolveSlackGroupToolPolicy, r as resolveSlackGroupRequireMention } from "./.setup/group-policy-5epvX6Dt.mjs";
|
|
4
|
+
import { t as probeSlack } from "./.setup/probe-DnWN6oBa.mjs";
|
|
5
|
+
import { r as setSlackRuntime } from "./.setup/runtime-JSVZSWAj.mjs";
|
|
6
|
+
import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, s as listSlackEmojis, u as pinSlackMessage } from "./.setup/actions-DV3J6OB-.mjs";
|
|
7
|
+
import { r as sendMessageSlack } from "./.setup/send-DN8vdkyi.mjs";
|
|
8
|
+
import { t as resolveSlackChannelAllowlist } from "./.setup/resolve-channels-Dpv7OyKO.mjs";
|
|
9
|
+
import { t as resolveSlackUserAllowlist } from "./.setup/resolve-users-DmyA3D_2.mjs";
|
|
10
|
+
import { t as monitorSlackProvider } from "./.setup/provider-DGNYrXQN.mjs";
|
|
11
|
+
import { n as slackActionRuntime, t as handleSlackAction } from "./.setup/action-runtime-Ddpb2CZS.mjs";
|
|
12
|
+
import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./.setup/directory-live-C2hI1rq1.mjs";
|
|
13
|
+
import "./.setup/monitor-BnckzNnh.mjs";
|
|
14
14
|
export { deleteSlackMessage, editSlackMessage, getSlackMemberInfo, handleSlackAction, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsLive, listSlackDirectoryPeersLive, listSlackEmojis, listSlackPins, listSlackReactions, monitorSlackProvider, pinSlackMessage, probeSlack, reactSlackMessage, readSlackMessages, registerSlackPluginHttpRoutes, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAppToken, resolveSlackBotToken, resolveSlackChannelAllowlist, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackUserAllowlist, sendMessageSlack, sendSlackMessage, setSlackRuntime, slackActionRuntime, unpinSlackMessage };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as setSlackRuntime } from "
|
|
1
|
+
import { r as setSlackRuntime } from "./.setup/runtime-JSVZSWAj.mjs";
|
|
2
2
|
export { setSlackRuntime };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries, t as channelSecrets } from "
|
|
1
|
+
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries, t as channelSecrets } from "./.setup/secret-contract-DxmvbxBF.mjs";
|
|
2
2
|
export { channelSecrets, collectRuntimeConfigAssignments, secretTargetRegistryEntries };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as collectSlackSecurityAuditFindings } from "
|
|
1
|
+
import { t as collectSlackSecurityAuditFindings } from "./.setup/security-audit-tCbGyCfU.mjs";
|
|
2
2
|
export { collectSlackSecurityAuditFindings };
|
package/dist/setup-entry.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { defineBundledChannelSetupEntry } from "openclaw/plugin-sdk/channel-entry-contract";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
2
3
|
//#region extensions/slack/setup-entry.ts
|
|
3
4
|
var setup_entry_default = defineBundledChannelSetupEntry({
|
|
4
5
|
importMetaUrl: import.meta.url,
|
|
5
6
|
plugin: {
|
|
6
|
-
specifier: "
|
|
7
|
+
specifier: fileURLToPath(new URL(".setup/setup-plugin-api-B1Y-kMp_.mjs", import.meta.url).href),
|
|
7
8
|
exportName: "slackSetupPlugin"
|
|
8
9
|
},
|
|
9
10
|
secrets: {
|
|
10
|
-
specifier: "
|
|
11
|
+
specifier: fileURLToPath(new URL(".setup/secret-contract-api-D9UfYujm.mjs", import.meta.url).href),
|
|
11
12
|
exportName: "channelSecrets"
|
|
12
13
|
},
|
|
13
14
|
runtime: {
|
|
14
|
-
specifier: "
|
|
15
|
+
specifier: fileURLToPath(new URL(".setup/runtime-setter-api-CMFvhrAr.mjs", import.meta.url).href),
|
|
15
16
|
exportName: "setSlackRuntime"
|
|
16
17
|
}
|
|
17
18
|
});
|
package/dist/setup-plugin-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackSetupPlugin } from "
|
|
1
|
+
import { t as slackSetupPlugin } from "./.setup/channel.setup-CTV8N2nI.mjs";
|
|
2
2
|
export { slackSetupPlugin };
|
|
@@ -1,144 +1,150 @@
|
|
|
1
|
-
2.0.
|
|
2
|
-
|
|
1
|
+
2.0.8
|
|
2
|
+
=====
|
|
3
|
+
|
|
4
|
+
* Fix [CVE-2026-90711](https://www.cve.org/CVERecord?id=CVE-2026-90711) ([GHSA-jqcg-44mw-7w3h](https://github.com/jshttp/proxy-addr/security/advisories/GHSA-jqcg-44mw-7w3h))
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
2.0.7
|
|
8
|
+
=====
|
|
3
9
|
|
|
4
10
|
* deps: forwarded@0.2.0
|
|
5
11
|
- Use `req.socket` over deprecated `req.connection`
|
|
6
12
|
|
|
7
|
-
2.0.6
|
|
8
|
-
|
|
13
|
+
2.0.6
|
|
14
|
+
=====
|
|
9
15
|
|
|
10
16
|
* deps: ipaddr.js@1.9.1
|
|
11
17
|
|
|
12
|
-
2.0.5
|
|
13
|
-
|
|
18
|
+
2.0.5
|
|
19
|
+
=====
|
|
14
20
|
|
|
15
21
|
* deps: ipaddr.js@1.9.0
|
|
16
22
|
|
|
17
|
-
2.0.4
|
|
18
|
-
|
|
23
|
+
2.0.4
|
|
24
|
+
=====
|
|
19
25
|
|
|
20
26
|
* deps: ipaddr.js@1.8.0
|
|
21
27
|
|
|
22
|
-
2.0.3
|
|
23
|
-
|
|
28
|
+
2.0.3
|
|
29
|
+
=====
|
|
24
30
|
|
|
25
31
|
* deps: ipaddr.js@1.6.0
|
|
26
32
|
|
|
27
|
-
2.0.2
|
|
28
|
-
|
|
33
|
+
2.0.2
|
|
34
|
+
=====
|
|
29
35
|
|
|
30
36
|
* deps: forwarded@~0.1.2
|
|
31
37
|
- perf: improve header parsing
|
|
32
38
|
- perf: reduce overhead when no `X-Forwarded-For` header
|
|
33
39
|
|
|
34
|
-
2.0.1
|
|
35
|
-
|
|
40
|
+
2.0.1
|
|
41
|
+
=====
|
|
36
42
|
|
|
37
43
|
* deps: forwarded@~0.1.1
|
|
38
44
|
- Fix trimming leading / trailing OWS
|
|
39
45
|
- perf: hoist regular expression
|
|
40
46
|
* deps: ipaddr.js@1.5.2
|
|
41
47
|
|
|
42
|
-
2.0.0
|
|
43
|
-
|
|
48
|
+
2.0.0
|
|
49
|
+
=====
|
|
44
50
|
|
|
45
51
|
* Drop support for Node.js below 0.10
|
|
46
52
|
|
|
47
|
-
1.1.5
|
|
48
|
-
|
|
53
|
+
1.1.5
|
|
54
|
+
=====
|
|
49
55
|
|
|
50
56
|
* Fix array argument being altered
|
|
51
57
|
* deps: ipaddr.js@1.4.0
|
|
52
58
|
|
|
53
|
-
1.1.4
|
|
54
|
-
|
|
59
|
+
1.1.4
|
|
60
|
+
=====
|
|
55
61
|
|
|
56
62
|
* deps: ipaddr.js@1.3.0
|
|
57
63
|
|
|
58
|
-
1.1.3
|
|
59
|
-
|
|
64
|
+
1.1.3
|
|
65
|
+
=====
|
|
60
66
|
|
|
61
67
|
* deps: ipaddr.js@1.2.0
|
|
62
68
|
|
|
63
|
-
1.1.2
|
|
64
|
-
|
|
69
|
+
1.1.2
|
|
70
|
+
=====
|
|
65
71
|
|
|
66
72
|
* deps: ipaddr.js@1.1.1
|
|
67
73
|
- Fix IPv6-mapped IPv4 validation edge cases
|
|
68
74
|
|
|
69
|
-
1.1.1
|
|
70
|
-
|
|
75
|
+
1.1.1
|
|
76
|
+
=====
|
|
71
77
|
|
|
72
78
|
* Fix regression matching mixed versions against multiple subnets
|
|
73
79
|
|
|
74
|
-
1.1.0
|
|
75
|
-
|
|
80
|
+
1.1.0
|
|
81
|
+
=====
|
|
76
82
|
|
|
77
83
|
* Fix accepting various invalid netmasks
|
|
78
84
|
- IPv4 netmasks must be contingous
|
|
79
85
|
- IPv6 addresses cannot be used as a netmask
|
|
80
86
|
* deps: ipaddr.js@1.1.0
|
|
81
87
|
|
|
82
|
-
1.0.10
|
|
83
|
-
|
|
88
|
+
1.0.10
|
|
89
|
+
======
|
|
84
90
|
|
|
85
91
|
* deps: ipaddr.js@1.0.5
|
|
86
92
|
- Fix regression in `isValid` with non-string arguments
|
|
87
93
|
|
|
88
|
-
1.0.9
|
|
89
|
-
|
|
94
|
+
1.0.9
|
|
95
|
+
=====
|
|
90
96
|
|
|
91
97
|
* deps: ipaddr.js@1.0.4
|
|
92
98
|
- Fix accepting some invalid IPv6 addresses
|
|
93
99
|
- Reject CIDRs with negative or overlong masks
|
|
94
100
|
* perf: enable strict mode
|
|
95
101
|
|
|
96
|
-
1.0.8
|
|
97
|
-
|
|
102
|
+
1.0.8
|
|
103
|
+
=====
|
|
98
104
|
|
|
99
105
|
* deps: ipaddr.js@1.0.1
|
|
100
106
|
|
|
101
|
-
1.0.7
|
|
102
|
-
|
|
107
|
+
1.0.7
|
|
108
|
+
=====
|
|
103
109
|
|
|
104
110
|
* deps: ipaddr.js@0.1.9
|
|
105
111
|
- Fix OOM on certain inputs to `isValid`
|
|
106
112
|
|
|
107
|
-
1.0.6
|
|
108
|
-
|
|
113
|
+
1.0.6
|
|
114
|
+
=====
|
|
109
115
|
|
|
110
116
|
* deps: ipaddr.js@0.1.8
|
|
111
117
|
|
|
112
|
-
1.0.5
|
|
113
|
-
|
|
118
|
+
1.0.5
|
|
119
|
+
=====
|
|
114
120
|
|
|
115
121
|
* deps: ipaddr.js@0.1.6
|
|
116
122
|
|
|
117
|
-
1.0.4
|
|
118
|
-
|
|
123
|
+
1.0.4
|
|
124
|
+
=====
|
|
119
125
|
|
|
120
126
|
* deps: ipaddr.js@0.1.5
|
|
121
127
|
- Fix edge cases with `isValid`
|
|
122
128
|
|
|
123
|
-
1.0.3
|
|
124
|
-
|
|
129
|
+
1.0.3
|
|
130
|
+
=====
|
|
125
131
|
|
|
126
132
|
* Use `forwarded` npm module
|
|
127
133
|
|
|
128
|
-
1.0.2
|
|
129
|
-
|
|
134
|
+
1.0.2
|
|
135
|
+
=====
|
|
130
136
|
|
|
131
137
|
* Fix a global leak when multiple subnets are trusted
|
|
132
138
|
* Support Node.js 0.6
|
|
133
139
|
* deps: ipaddr.js@0.1.3
|
|
134
140
|
|
|
135
|
-
1.0.1
|
|
136
|
-
|
|
141
|
+
1.0.1
|
|
142
|
+
=====
|
|
137
143
|
|
|
138
144
|
* Fix links in npm package
|
|
139
145
|
|
|
140
|
-
1.0.0
|
|
141
|
-
|
|
146
|
+
1.0.0
|
|
147
|
+
=====
|
|
142
148
|
|
|
143
149
|
* Add `trust` argument to determine proxy trust on
|
|
144
150
|
* Accepts custom function
|
|
@@ -150,12 +156,12 @@
|
|
|
150
156
|
* Add `proxyaddr.compile` to pre-compile `trust` function
|
|
151
157
|
to make subsequent calls faster
|
|
152
158
|
|
|
153
|
-
0.0.1
|
|
154
|
-
|
|
159
|
+
0.0.1
|
|
160
|
+
=====
|
|
155
161
|
|
|
156
162
|
* Fix bad npm publish
|
|
157
163
|
|
|
158
|
-
0.0.0
|
|
159
|
-
|
|
164
|
+
0.0.0
|
|
165
|
+
=====
|
|
160
166
|
|
|
161
167
|
* Initial release
|
|
@@ -37,7 +37,7 @@ proxyaddr(req, function (addr) { return addr === '127.0.0.1' })
|
|
|
37
37
|
proxyaddr(req, function (addr, i) { return i < 1 })
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
The `trust`
|
|
40
|
+
The `trust` argument may also be a single IP address string or an
|
|
41
41
|
array of trusted addresses, as plain IP addresses, CIDR-formatted
|
|
42
42
|
strings, or IP/netmask strings.
|
|
43
43
|
|
|
@@ -256,6 +256,13 @@ function trustMulti (subnets) {
|
|
|
256
256
|
if (!isip(addr)) return false
|
|
257
257
|
|
|
258
258
|
var ip = parseip(addr)
|
|
259
|
+
|
|
260
|
+
if (ip.kind() === 'ipv6' && ip.isIPv4MappedAddress()) {
|
|
261
|
+
// Canonicalize IPv4-mapped candidates to IPv4 so a mapped address
|
|
262
|
+
// cannot bypass the cross-family guard via the same-family path
|
|
263
|
+
ip = ip.toIPv4Address()
|
|
264
|
+
}
|
|
265
|
+
|
|
259
266
|
var ipconv
|
|
260
267
|
var kind = ip.kind()
|
|
261
268
|
|
|
@@ -272,6 +279,12 @@ function trustMulti (subnets) {
|
|
|
272
279
|
continue
|
|
273
280
|
}
|
|
274
281
|
|
|
282
|
+
if (subnetkind !== 'ipv4' && !(subnetrange >= 96 && subnetip.isIPv4MappedAddress())) {
|
|
283
|
+
// IPv6 subnet only spans IPv4 when it is a mapped subnet whose
|
|
284
|
+
// prefix covers the ::ffff: marker; otherwise it must not match IPv4
|
|
285
|
+
continue
|
|
286
|
+
}
|
|
287
|
+
|
|
275
288
|
if (!ipconv) {
|
|
276
289
|
// Convert IP to match subnet IP kind
|
|
277
290
|
ipconv = subnetkind === 'ipv4'
|
|
@@ -280,6 +293,9 @@ function trustMulti (subnets) {
|
|
|
280
293
|
}
|
|
281
294
|
|
|
282
295
|
trusted = ipconv
|
|
296
|
+
} else if (kind === 'ipv6' && subnetip.isIPv4MappedAddress()) {
|
|
297
|
+
// A native IPv6 candidate cannot match an IPv4-mapped subnet
|
|
298
|
+
continue
|
|
283
299
|
}
|
|
284
300
|
|
|
285
301
|
if (trusted.match(subnetip, subnetrange)) {
|
|
@@ -308,6 +324,13 @@ function trustSingle (subnet) {
|
|
|
308
324
|
if (!isip(addr)) return false
|
|
309
325
|
|
|
310
326
|
var ip = parseip(addr)
|
|
327
|
+
|
|
328
|
+
if (ip.kind() === 'ipv6' && ip.isIPv4MappedAddress()) {
|
|
329
|
+
// Canonicalize IPv4-mapped candidates to IPv4 so a mapped address
|
|
330
|
+
// cannot bypass the cross-family guard via the same-family path
|
|
331
|
+
ip = ip.toIPv4Address()
|
|
332
|
+
}
|
|
333
|
+
|
|
311
334
|
var kind = ip.kind()
|
|
312
335
|
|
|
313
336
|
if (kind !== subnetkind) {
|
|
@@ -316,10 +339,19 @@ function trustSingle (subnet) {
|
|
|
316
339
|
return false
|
|
317
340
|
}
|
|
318
341
|
|
|
342
|
+
if (!subnetisipv4 && !(subnetrange >= 96 && subnetip.isIPv4MappedAddress())) {
|
|
343
|
+
// IPv6 subnet only spans IPv4 when it is a mapped subnet whose
|
|
344
|
+
// prefix covers the ::ffff: marker; otherwise it must not match IPv4
|
|
345
|
+
return false
|
|
346
|
+
}
|
|
347
|
+
|
|
319
348
|
// Convert IP to match subnet IP kind
|
|
320
349
|
ip = subnetisipv4
|
|
321
350
|
? ip.toIPv4Address()
|
|
322
351
|
: ip.toIPv4MappedAddress()
|
|
352
|
+
} else if (kind === 'ipv6' && subnetip.isIPv4MappedAddress()) {
|
|
353
|
+
// A native IPv6 candidate cannot match an IPv4-mapped subnet
|
|
354
|
+
return false
|
|
323
355
|
}
|
|
324
356
|
|
|
325
357
|
return ip.match(subnetip, subnetrange)
|