@openclaw/slack 2026.11.3 → 2026.11.5-beta.2
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/.setup/{account-inspect-CmkKiSb9.mjs → account-inspect-BLVha-ov.mjs} +11 -8
- package/dist/.setup/{accounts-msihSF3-.mjs → accounts-CGJScKtk.mjs} +10 -1
- package/dist/.setup/{action-runtime-ChRfnnBu.mjs → action-runtime-D01wBhx5.mjs} +38 -45
- package/dist/.setup/action-runtime.runtime-VQGaR6g8.mjs +1 -0
- package/dist/.setup/{actions-By7tvpvv.mjs → actions-D5S6D_BU.mjs} +89 -76
- package/dist/.setup/{approval-handler.runtime-D8ArtDQt.mjs → approval-handler.runtime-Buw5jh2Y.mjs} +26 -30
- package/dist/.setup/{approval-message-updates-DT7XBPbV.mjs → approval-message-updates-pmXcve5E.mjs} +1 -1
- package/dist/.setup/{channel-DLFiMJm2.mjs → channel-C_R98Nbv.mjs} +569 -339
- package/dist/.setup/{channel-type-BEFP2ORi.mjs → channel-type-B5P3w9eA.mjs} +4 -8
- package/dist/.setup/{channel.setup-CzFw73mU.mjs → channel.setup-Lq2OxKkF.mjs} +13 -13
- package/dist/.setup/{config-schema-DNnh6bWU.mjs → config-schema-BWAaa5au.mjs} +3 -7
- package/dist/.setup/cursor-pages-CATAzbTT.mjs +313 -0
- package/dist/.setup/{directory-config-Cjj0N8R0.mjs → directory-config-D-hf9KGQ.mjs} +3 -3
- package/dist/.setup/{directory-live-BIKD-5B_.mjs → directory-live-onKAFI1E.mjs} +4 -4
- package/dist/.setup/{doctor-contract-Cd4-VzIM.mjs → doctor-contract-9-QJRCXk.mjs} +37 -45
- package/dist/.setup/{message-tool-api-BS5ekEA_.mjs → message-tool-api-LGIgVXJf.mjs} +4 -3
- package/dist/.setup/{monitor-CV6Z6FKP.mjs → monitor-Cm1TuqxN.mjs} +3424 -3703
- package/dist/.setup/{outbound-adapter-9dbnYtL1.mjs → outbound-adapter-C-95EWl2.mjs} +30 -36
- package/dist/.setup/paths-B1u59oLK.mjs +8 -0
- package/dist/.setup/{pipeline.runtime-DLIQf1Bo.mjs → pipeline.runtime-DGnV6akc.mjs} +416 -534
- package/dist/.setup/{policy-yhn48xf5.mjs → policy-DxhGRvc2.mjs} +1 -2
- package/dist/.setup/{session-status-Dv8wNBEt.mjs → probe-DANukR3O.mjs} +1206 -839
- package/dist/.setup/question-delivery-CWC7sRhH.mjs +39 -0
- package/dist/.setup/{relay-source-CxDcrn16.mjs → relay-source-DoyOlTbK.mjs} +5 -3
- package/dist/.setup/{replies-MRkrg3rC.mjs → replies-BcmUKord.mjs} +34 -19
- package/dist/.setup/{reply-blocks-Ca-raz2z.mjs → reply-blocks-BzsXUUUL.mjs} +201 -206
- package/dist/.setup/{resolve-channels-DRRhElwz.mjs → resolve-channels-XDPgnesf.mjs} +4 -7
- package/dist/.setup/{resolve-users-Cz8e17ky.mjs → resolve-users-aDAv24U2.mjs} +8 -16
- package/dist/.setup/runtime-setter-api-Cx_PV-xu.mjs +2 -0
- package/dist/.setup/{scopes-DfQVi8Jw.mjs → scopes-BocHwImV.mjs} +2 -1
- package/dist/.setup/secret-contract-api-BlLz88mj.mjs +2 -0
- package/dist/.setup/{secret-contract-vVRMoE1D.mjs → secret-contract-uiQtoNlu.mjs} +2 -2
- package/dist/.setup/{send-results-eeOu_HYm.mjs → send-results-BGxlroJ-.mjs} +3 -4
- package/dist/.setup/{send-C-8wY0lK.mjs → send-yK6_-px6.mjs} +297 -334
- package/dist/.setup/setup-plugin-api-Cfz58xoh.mjs +2 -0
- package/dist/.setup/{setup-surface--n8VsDvV.mjs → setup-surface-C0KRtyqa.mjs} +5 -6
- package/dist/.setup/{slash-dispatch.runtime-D3Wq45ER.mjs → slash-dispatch.runtime-CyVC3bYx.mjs} +2 -2
- package/dist/.setup/{target-parsing-FFE26kOV.mjs → target-parsing-Bx2UZniD.mjs} +1 -2
- package/dist/.setup/{targets-C6LZQL1Q.mjs → targets-D-ASeWHy.mjs} +1 -1
- package/dist/.source-module-urls/c5ffd0957b234c7c12090e7de4eca2482ef339b8561e078da55b734211b0ba58.json +1 -0
- package/dist/account-inspect-api.js +1 -1
- package/dist/api.js +16 -17
- package/dist/channel-config-api.js +1 -2
- package/dist/channel-plugin-api.js +1 -2
- package/dist/directory-contract-api.js +1 -2
- package/dist/doctor-contract-api.js +1 -2
- package/dist/index.js +0 -6
- package/dist/message-tool-api.js +1 -2
- package/dist/runtime-api.js +10 -12
- package/dist/runtime-setter-api.js +1 -2
- package/dist/secret-contract-api.js +1 -2
- package/dist/security-contract-api.js +1 -2
- package/dist/setup-entry.js +3 -3
- package/dist/setup-plugin-api.js +1 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/util.d.ts +6 -3
- package/node_modules/@slack/bolt/node_modules/content-disposition/README.md +105 -35
- package/node_modules/@slack/bolt/node_modules/content-disposition/dist/index.d.ts +72 -0
- package/node_modules/@slack/bolt/node_modules/content-disposition/dist/index.js +388 -0
- package/node_modules/@slack/bolt/node_modules/content-disposition/dist/index.js.map +1 -0
- package/node_modules/@slack/bolt/node_modules/content-disposition/package.json +31 -19
- package/node_modules/@slack/bolt/node_modules/content-type/README.md +34 -57
- package/node_modules/@slack/bolt/node_modules/content-type/package.json +35 -25
- package/node_modules/@slack/bolt/node_modules/express/Readme.md +15 -9
- package/node_modules/@slack/bolt/node_modules/express/lib/application.js +2 -2
- package/node_modules/@slack/bolt/node_modules/express/lib/request.js +32 -19
- package/node_modules/@slack/bolt/node_modules/express/lib/response.js +27 -30
- package/node_modules/@slack/bolt/node_modules/express/package.json +10 -10
- package/node_modules/@slack/bolt/node_modules/qs/.github/THREAT_MODEL.md +4 -2
- package/node_modules/@slack/bolt/node_modules/qs/CHANGELOG.md +38 -14
- package/node_modules/@slack/bolt/node_modules/qs/README.md +31 -3
- package/node_modules/@slack/bolt/node_modules/qs/dist/qs.js +20 -20
- package/node_modules/@slack/bolt/node_modules/qs/lib/parse.js +94 -4
- package/node_modules/@slack/bolt/node_modules/qs/lib/stringify.js +4 -4
- package/node_modules/@slack/bolt/node_modules/qs/lib/utils.js +130 -6
- package/node_modules/@slack/bolt/node_modules/qs/package.json +4 -4
- package/node_modules/@slack/bolt/node_modules/qs/test/parse.js +174 -0
- package/node_modules/@slack/bolt/node_modules/qs/test/stringify.js +263 -33
- package/node_modules/@slack/bolt/node_modules/qs/test/utils.js +184 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/util.d.ts +6 -3
- package/node_modules/typebox/build/format/duration.d.mts +2 -2
- package/node_modules/typebox/build/format/duration.mjs +2 -2
- package/node_modules/typebox/build/format/idn_email.d.mts +1 -0
- package/node_modules/typebox/build/format/idn_email.mjs +1 -0
- package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -1
- package/node_modules/typebox/build/format/idn_hostname.mjs +1 -1
- package/node_modules/typebox/build/format/ipv4.d.mts +2 -2
- package/node_modules/typebox/build/format/ipv4.mjs +2 -2
- package/node_modules/typebox/build/format/ipv6.d.mts +1 -1
- package/node_modules/typebox/build/format/ipv6.mjs +1 -1
- package/node_modules/typebox/build/format/relative_json_pointer.d.mts +2 -2
- package/node_modules/typebox/build/format/relative_json_pointer.mjs +2 -2
- package/node_modules/typebox/build/schema/build.mjs +1 -0
- package/node_modules/typebox/build/schema/engine/_unique.d.mts +4 -2
- package/node_modules/typebox/build/schema/engine/_unique.mjs +7 -3
- package/node_modules/typebox/build/schema/engine/additionalItems.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +0 -3
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +15 -17
- package/node_modules/typebox/build/schema/engine/contains.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/index.d.mts +1 -0
- package/node_modules/typebox/build/schema/engine/index.mjs +1 -0
- package/node_modules/typebox/build/schema/engine/items.mjs +7 -4
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/minContains.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +2 -2
- package/node_modules/typebox/build/system/hashing/hash.mjs +63 -34
- package/node_modules/typebox/build/system/locale/en_US.mjs +2 -1
- package/node_modules/typebox/build/system/memory/assign.d.mts +2 -8
- package/node_modules/typebox/build/system/memory/assign.mjs +13 -6
- package/node_modules/typebox/build/system/memory/clone.d.mts +4 -5
- package/node_modules/typebox/build/system/memory/clone.mjs +8 -96
- package/node_modules/typebox/build/system/memory/create.d.mts +1 -5
- package/node_modules/typebox/build/system/memory/create.mjs +18 -13
- package/node_modules/typebox/build/system/memory/deep.d.mts +2 -0
- package/node_modules/typebox/build/system/memory/deep.mjs +108 -0
- package/node_modules/typebox/build/system/memory/discard.d.mts +1 -1
- package/node_modules/typebox/build/system/memory/discard.mjs +9 -8
- package/node_modules/typebox/build/system/memory/finalize.d.mts +4 -0
- package/node_modules/typebox/build/system/memory/finalize.mjs +30 -0
- package/node_modules/typebox/build/system/memory/keys.d.mts +2 -0
- package/node_modules/typebox/build/system/memory/keys.mjs +8 -0
- package/node_modules/typebox/build/system/memory/update.d.mts +1 -4
- package/node_modules/typebox/build/system/memory/update.mjs +43 -16
- package/node_modules/typebox/build/type/engine/call/index.d.mts +1 -0
- package/node_modules/typebox/build/type/engine/call/index.mjs +1 -0
- package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +2 -24
- package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +2 -29
- package/node_modules/typebox/build/type/engine/evaluate/index.d.mts +1 -0
- package/node_modules/typebox/build/type/engine/evaluate/index.mjs +1 -0
- package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +5 -1
- package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +6 -1
- package/node_modules/typebox/build/type/engine/evaluate/property.d.mts +30 -0
- package/node_modules/typebox/build/type/engine/evaluate/property.mjs +29 -0
- package/node_modules/typebox/build/type/engine/immutable/instantiate_add.d.mts +1 -3
- package/node_modules/typebox/build/type/engine/immutable/instantiate_add.mjs +1 -4
- package/node_modules/typebox/build/type/engine/object/from_intersect.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/object/from_intersect.mjs +2 -2
- package/node_modules/typebox/build/type/engine/object/from_union.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/object/from_union.mjs +2 -2
- package/node_modules/typebox/build/type/engine/optional/instantiate_add.d.mts +1 -3
- package/node_modules/typebox/build/type/engine/optional/instantiate_add.mjs +1 -4
- package/node_modules/typebox/build/type/engine/readonly/instantiate_add.d.mts +1 -3
- package/node_modules/typebox/build/type/engine/readonly/instantiate_add.mjs +1 -4
- package/node_modules/typebox/build/type/engine/this/index.d.mts +1 -0
- package/node_modules/typebox/build/type/engine/this/index.mjs +1 -0
- package/node_modules/typebox/build/value/clone/clone.d.mts +4 -3
- package/node_modules/typebox/build/value/clone/clone.mjs +5 -7
- package/node_modules/typebox/build/value/repair/from_cyclic.d.mts +2 -0
- package/node_modules/typebox/build/value/repair/from_cyclic.mjs +6 -0
- package/node_modules/typebox/build/value/shared/union_priority_sort.mjs +25 -14
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +1 -1
- package/node_modules/undici/docs/docs/api/Interceptors.md +15 -2
- package/node_modules/undici/lib/dispatcher/client-h2.js +78 -3
- package/node_modules/undici/lib/dispatcher/pool-base.js +20 -3
- package/node_modules/undici/package.json +3 -3
- package/node_modules/undici/types/api.d.ts +1 -1
- package/node_modules/undici/types/utility.d.ts +4 -4
- package/node_modules/zod/package.json +1 -1
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +7 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +6 -0
- package/node_modules/zod/src/v4/core/compile.ts +9 -0
- package/node_modules/zod/src/v4/core/schemas.ts +35 -1
- package/node_modules/zod/src/v4/core/util.ts +13 -0
- package/node_modules/zod/src/v4/core/versions.ts +1 -1
- package/node_modules/zod/v4/core/compile.cjs +8 -0
- package/node_modules/zod/v4/core/compile.js +8 -0
- package/node_modules/zod/v4/core/schemas.cjs +30 -0
- package/node_modules/zod/v4/core/schemas.d.cts +3 -1
- package/node_modules/zod/v4/core/schemas.d.ts +3 -1
- package/node_modules/zod/v4/core/schemas.js +30 -0
- package/node_modules/zod/v4/core/util.cjs +15 -0
- package/node_modules/zod/v4/core/util.d.cts +2 -0
- package/node_modules/zod/v4/core/util.d.ts +2 -0
- package/node_modules/zod/v4/core/util.js +14 -0
- package/node_modules/zod/v4/core/versions.cjs +1 -1
- package/node_modules/zod/v4/core/versions.js +1 -1
- package/openclaw.plugin.json +6 -30
- package/package.json +7 -7
- package/dist/.setup/action-runtime.runtime-vLxx_7s2.mjs +0 -2
- package/dist/.setup/http-C9sM-FXe.mjs +0 -2
- package/dist/.setup/plugin-routes-D4qozHVn.mjs +0 -22
- package/dist/.setup/probe-IiHogLQN.mjs +0 -694
- package/dist/.setup/registry-DizWcnNp.mjs +0 -36
- package/dist/.setup/runtime-setter-api-CMFvhrAr.mjs +0 -3
- package/dist/.setup/secret-contract-api-DK9gZldc.mjs +0 -3
- package/dist/.setup/setup-plugin-api-BGD1TYnK.mjs +0 -3
- package/dist/.setup/shared-BhJHIZs1.mjs +0 -259
- package/dist/http-routes-api.js +0 -2
- package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/LICENSE +0 -22
- package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/README.md +0 -71
- package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/package.json +0 -52
- package/node_modules/@slack/bolt/node_modules/content-disposition/index.js +0 -536
- package/node_modules/@slack/bolt/node_modules/content-type/HISTORY.md +0 -29
- package/node_modules/@slack/bolt/node_modules/content-type/index.js +0 -225
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/LICENSE +0 -22
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/README.md +0 -71
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +0 -46
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.js +0 -176
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.js.map +0 -1
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/package.json +0 -52
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/LICENSE +0 -22
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/README.md +0 -71
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.d.ts +0 -46
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.js +0 -176
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.js.map +0 -1
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/package.json +0 -52
- package/node_modules/typebox/build/system/memory/freeze.d.mts +0 -4
- package/node_modules/typebox/build/system/memory/freeze.mjs +0 -6
- /package/node_modules/@slack/bolt/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.d.ts +0 -0
- /package/node_modules/@slack/bolt/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.js +0 -0
- /package/node_modules/@slack/bolt/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.js.map +0 -0
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { c as resolveSlackAccountAllowFrom, o as resolveDefaultSlackAccountId } from "./accounts-
|
|
2
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
3
|
-
import "./
|
|
4
|
-
import {
|
|
5
|
-
import { t as
|
|
6
|
-
import { t as resolveSlackUserAllowlist } from "./resolve-users-Cz8e17ky.mjs";
|
|
1
|
+
import { c as resolveSlackAccountAllowFrom, o as resolveDefaultSlackAccountId } from "./accounts-CGJScKtk.mjs";
|
|
2
|
+
import { t as inspectSlackAccount } from "./account-inspect-BLVha-ov.mjs";
|
|
3
|
+
import { a as buildSlackAllowFromPrompt, i as SLACK_CHANNEL, n as createSlackSetupWizardBase } from "./channel.setup-Lq2OxKkF.mjs";
|
|
4
|
+
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-XDPgnesf.mjs";
|
|
5
|
+
import { t as resolveSlackUserAllowlist } from "./resolve-users-aDAv24U2.mjs";
|
|
7
6
|
import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
7
|
import { resolveBasicAllowFromEntries } from "openclaw/plugin-sdk/allow-from";
|
|
9
8
|
import { createSetupTranslator, noteChannelLookupFailure, noteChannelLookupSummary, patchChannelConfigForAccount, promptResolvedAllowFrom, resolveEntriesWithOptionalToken, resolveSetupAccountId, splitSetupEntries } from "openclaw/plugin-sdk/setup-runtime";
|
package/dist/.setup/{slash-dispatch.runtime-D3Wq45ER.mjs → slash-dispatch.runtime-CyVC3bYx.mjs}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-
|
|
2
|
-
import { resolveAgentRoute } from "openclaw/plugin-sdk/routing";
|
|
1
|
+
import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-BcmUKord.mjs";
|
|
3
2
|
import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
|
|
3
|
+
import { resolveAgentRoute } from "openclaw/plugin-sdk/routing";
|
|
4
4
|
import { resolveConversationLabel } from "openclaw/plugin-sdk/conversation-runtime";
|
|
5
5
|
import { dispatchChannelInboundTurn, isChannelPartialDeliveryError } from "openclaw/plugin-sdk/channel-inbound";
|
|
6
6
|
import { finalizeInboundContext, resolveChunkMode } from "openclaw/plugin-sdk/reply-runtime";
|
|
@@ -55,8 +55,7 @@ function resolveWorkspaceQualifiedSlackTarget(input, kind) {
|
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
function isUnambiguousSlackUserId(
|
|
59
|
-
const id = rawId.trim();
|
|
58
|
+
function isUnambiguousSlackUserId(id) {
|
|
60
59
|
return /^[UW][A-Z0-9]+$/.test(id) || /^[uw][0-9][a-z0-9]{7,}$/.test(id);
|
|
61
60
|
}
|
|
62
61
|
/** Restores API casing for unambiguous normalized Slack conversation IDs. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as parseSlackTarget, c as slackTargetsMatch } from "./target-parsing-
|
|
1
|
+
import { a as parseSlackTarget, c as slackTargetsMatch } from "./target-parsing-Bx2UZniD.mjs";
|
|
2
2
|
//#region extensions/slack/src/targets.ts
|
|
3
3
|
function matchesResolvedUserTarget(target, currentMessagingTarget) {
|
|
4
4
|
const resolvedId = target.trim();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"entries":[{"output":"account-inspect-api.js","source":"extensions/slack/account-inspect-api.ts"},{"output":"api.js","source":"extensions/slack/api.ts"},{"output":"channel-config-api.js","source":"extensions/slack/channel-config-api.ts"},{"output":"channel-entry.js","source":"extensions/slack/channel-entry.ts"},{"output":"channel-plugin-api.js","source":"extensions/slack/channel-plugin-api.ts"},{"output":"configured-state.js","source":"extensions/slack/configured-state.ts"},{"output":"contract-api.js","source":"extensions/slack/contract-api.ts"},{"output":"directory-contract-api.js","source":"extensions/slack/directory-contract-api.ts"},{"output":"doctor-contract-api.js","source":"extensions/slack/doctor-contract-api.ts"},{"output":"index.js","source":"extensions/slack/index.ts"},{"output":"message-tool-api.js","source":"extensions/slack/message-tool-api.ts"},{"output":"runtime-api.js","source":"extensions/slack/runtime-api.ts"},{"output":"runtime-setter-api.js","source":"extensions/slack/runtime-setter-api.ts"},{"output":"secret-contract-api.js","source":"extensions/slack/secret-contract-api.ts"},{"output":"security-contract-api.js","source":"extensions/slack/security-contract-api.ts"},{"output":"setup-entry.js","source":"extensions/slack/setup-entry.ts"},{"output":"setup-plugin-api.js","source":"extensions/slack/setup-plugin-api.ts"}],"chunks":[{"output":".setup/account-configured-zcR9TJJN.mjs","sha256":"51dab8a8d80e33310313d3ae5f3244a30c5d343d55da630a1dbbf6da192d25b5","facadeSource":null,"sources":["extensions/slack/src/account-configured.ts"]},{"output":".setup/account-inspect-BLVha-ov.mjs","sha256":"1176adf0d1046f3be8474890dbc3444a1ef69110b1ab6fc7a50149f268cc89d3","facadeSource":null,"sources":["extensions/slack/src/account-inspect.ts"]},{"output":".setup/accounts-CGJScKtk.mjs","sha256":"b70f455d2f4f51e4fed186aa04ca15bdcacc0255f140effd282b1399b4750d7d","facadeSource":null,"sources":["extensions/slack/src/account-reply-mode.ts","extensions/slack/src/account-surface-fields.ts","extensions/slack/src/accounts.ts","extensions/slack/src/token.ts"]},{"output":".setup/action-runtime-D01wBhx5.mjs","sha256":"197c4a4c7370c4c7ded5a650a7c769c9a8ad044893c3c182ee245d785ea1ad40","facadeSource":null,"sources":["extensions/slack/src/action-runtime.ts"]},{"output":".setup/action-runtime.runtime-VQGaR6g8.mjs","sha256":"e7b03cbd3c32892cb657f1c8f67bff525e1a2999877f5c6868291b15cef2cfb4","facadeSource":"extensions/slack/src/action-runtime.runtime.ts","sources":[]},{"output":".setup/actions-D5S6D_BU.mjs","sha256":"d32510b840288eed87a5745b827cd52a5d1c2aa57eda6d71f458b0aabd2962e3","facadeSource":null,"sources":["extensions/slack/src/actions.ts","extensions/slack/src/conversation-open.ts","extensions/slack/src/edit-text.ts","extensions/slack/src/file-reference.ts","extensions/slack/src/monitor/block-text.ts","extensions/slack/src/monitor/media.runtime.ts","extensions/slack/src/monitor/media.ts","extensions/slack/src/monitor/slack-client-kind.ts"]},{"output":".setup/approval-handler.runtime-Buw5jh2Y.mjs","sha256":"a3f3c5d8f906036460313722c27dba1a3d8896c97fb0a9a9eaff869151a739ba","facadeSource":"extensions/slack/src/approval-handler.runtime.ts","sources":["extensions/slack/src/approval-handler.runtime.ts"]},{"output":".setup/approval-message-updates-pmXcve5E.mjs","sha256":"9a1fce312201a59cc22032de741cf1bf4bcb980787437609ffabaf4947bb85d0","facadeSource":null,"sources":["extensions/slack/src/approval-message-updates.ts"]},{"output":".setup/channel-C_R98Nbv.mjs","sha256":"957e3c6a9efe6ceaf2eb721a7acf7cf0154f89f281a2e6f5ab2ea05329f79dbf","facadeSource":null,"sources":["extensions/slack/src/approval-native.ts","extensions/slack/src/channel-actions.ts","extensions/slack/src/channel.ts","extensions/slack/src/conversation-route-owner.ts","extensions/slack/src/doctor.ts","extensions/slack/src/enterprise-user-route.ts","extensions/slack/src/security.ts","extensions/slack/src/shared.ts","extensions/slack/src/threading-tool-context.ts"]},{"output":".setup/channel-meta-C443t-lI.mjs","sha256":"9c2859245e7b4af118b9e83309cfa1199171e136cee1722317d28e0d31a87180","facadeSource":null,"sources":["extensions/slack/src/channel-meta.ts"]},{"output":".setup/channel-type-B5P3w9eA.mjs","sha256":"71a1d52faa4ec00af78674ef684b891596b0da666609c0de9ecd21ab16660ef5","facadeSource":null,"sources":["extensions/slack/src/channel-type.ts"]},{"output":".setup/channel.setup-Lq2OxKkF.mjs","sha256":"7f2fabb40af8e92df3a1bebdeaf63ee6b43efcd86f4a52199c831f25c4203c34","facadeSource":null,"sources":["extensions/slack/src/channel.setup.ts","extensions/slack/src/config-adapter.ts","extensions/slack/src/setup-core.ts","extensions/slack/src/setup-shared.ts"]},{"output":".setup/config-schema-BWAaa5au.mjs","sha256":"10bc25dc38d537d67e7e3fc5a0321fae893bb2dfdd87feb9c290c83bbf6129cc","facadeSource":null,"sources":["extensions/slack/src/config-schema.ts","extensions/slack/src/config-ui-hints.ts"]},{"output":".setup/cursor-pages-CATAzbTT.mjs","sha256":"9f82bfc59445ae8d63d66db6740e222a77ec37c21e879ce6431eeac003378e78","facadeSource":null,"sources":["extensions/slack/src/client-options.ts","extensions/slack/src/client.ts","extensions/slack/src/cursor-pages.ts","extensions/slack/src/monitor/lru-map-cache.ts"]},{"output":".setup/directory-config-D-hf9KGQ.mjs","sha256":"4b11e7ae18661f1e1114543baf38fef0c18d443703a705bb88e387b7a28f8a76","facadeSource":null,"sources":["extensions/slack/src/directory-config.ts"]},{"output":".setup/directory-live-onKAFI1E.mjs","sha256":"2ed21e8a7dd7140080ab927041f8634412fc51545683ad86c3de31ef99c0074b","facadeSource":null,"sources":["extensions/slack/src/directory-live.ts"]},{"output":".setup/doctor-contract-9-QJRCXk.mjs","sha256":"6f357d69aa0e82c0e833e95e97d6d9dddfb99df1aa4b3f06824f795cfc4478fb","facadeSource":null,"sources":["extensions/slack/src/doctor-contract.ts","extensions/slack/src/streaming-compat.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":".setup/message-tool-api-LGIgVXJf.mjs","sha256":"810eb4cae0880c404733d25cca3e2d6021812f4a9130b9c1270ac92e341b45ef","facadeSource":null,"sources":["extensions/slack/src/message-actions.ts","extensions/slack/src/message-tool-api.ts"]},{"output":".setup/monitor-Cm1TuqxN.mjs","sha256":"21c8d3d09a2bba4b521439974fc7e84fc58877c192c84b959c1183af854e7426","facadeSource":null,"sources":["extensions/slack/src/channel-migration.ts","extensions/slack/src/draft-message-boundaries.ts","extensions/slack/src/interactive-dispatch.ts","extensions/slack/src/modal-metadata.ts","extensions/slack/src/monitor.ts","extensions/slack/src/monitor/approval-runtime-context.ts","extensions/slack/src/monitor/assistant-thread-context.ts","extensions/slack/src/monitor/auth.ts","extensions/slack/src/monitor/channel-type.ts","extensions/slack/src/monitor/commands.ts","extensions/slack/src/monitor/context.ts","extensions/slack/src/monitor/deferred-action-routing.ts","extensions/slack/src/monitor/dm-auth.ts","extensions/slack/src/monitor/enterprise-install.ts","extensions/slack/src/monitor/event-scope.ts","extensions/slack/src/monitor/events.ts","extensions/slack/src/monitor/events/assistant.ts","extensions/slack/src/monitor/events/channels.ts","extensions/slack/src/monitor/events/interaction-event.ts","extensions/slack/src/monitor/events/interactions.approval-sender.ts","extensions/slack/src/monitor/events/interactions.block-actions.context.ts","extensions/slack/src/monitor/events/interactions.block-actions.ts","extensions/slack/src/monitor/events/interactions.modal.ts","extensions/slack/src/monitor/events/interactions.ts","extensions/slack/src/monitor/events/members.ts","extensions/slack/src/monitor/events/message-subtype-handlers.ts","extensions/slack/src/monitor/events/messages.ts","extensions/slack/src/monitor/events/modal-input-summary.ts","extensions/slack/src/monitor/events/system-event-context.ts","extensions/slack/src/monitor/external-arg-menu-store.ts","extensions/slack/src/monitor/http-handler.ts","extensions/slack/src/monitor/ingress.ts","extensions/slack/src/monitor/message-dispatch-dedupe.ts","extensions/slack/src/monitor/message-handler.ts","extensions/slack/src/monitor/message-handler/debounce-key.ts","extensions/slack/src/monitor/message-handler/prepare-routing.ts","extensions/slack/src/monitor/presence-cooldown-store.ts","extensions/slack/src/monitor/presence-monitor.ts","extensions/slack/src/monitor/provider-support.ts","extensions/slack/src/monitor/provider-workspace-client.ts","extensions/slack/src/monitor/provider.ts","extensions/slack/src/monitor/reconnect-policy.ts","extensions/slack/src/monitor/response-url-budget.ts","extensions/slack/src/monitor/room-context.ts","extensions/slack/src/monitor/runtime-policy.ts","extensions/slack/src/monitor/session-run-targets.ts","extensions/slack/src/monitor/slash-menu-model-context.ts","extensions/slack/src/monitor/slash.ts","extensions/slack/src/monitor/suggested-prompts.ts","extensions/slack/src/monitor/system-event-session.ts","extensions/slack/src/monitor/thread-resolution.ts","extensions/slack/src/monitor/transient-api-error.ts","extensions/slack/src/streaming.ts","extensions/slack/src/threading.ts","extensions/slack/src/types.ts"]},{"output":".setup/outbound-adapter-C-95EWl2.mjs","sha256":"0745940f2b745eb9e1df433799219b980b04bfed0b535acf381b33720eae6a50","facadeSource":"extensions/slack/src/outbound-adapter.ts","sources":["extensions/slack/src/outbound-adapter.ts"]},{"output":".setup/paths-B1u59oLK.mjs","sha256":"64c399464c7aaa5764db5cb1ce3c04b361464378cfbb24430490ade6b65ab2e4","facadeSource":null,"sources":["extensions/slack/src/http/paths.ts"]},{"output":".setup/pipeline.runtime-DGnV6akc.mjs","sha256":"c3310c5c5b5b986d26f9c1015ac7ce5b3368d559f783dff201cd8c43069cce06","facadeSource":"extensions/slack/src/monitor/message-handler/pipeline.runtime.ts","sources":["extensions/slack/src/agent-context.ts","extensions/slack/src/draft-stream.ts","extensions/slack/src/monitor/message-handler/dispatch-helpers.ts","extensions/slack/src/monitor/message-handler/dispatch-progress-card.ts","extensions/slack/src/monitor/message-handler/dispatch-progress-native.ts","extensions/slack/src/monitor/message-handler/dispatch-progress-render.ts","extensions/slack/src/monitor/message-handler/dispatch-progress.ts","extensions/slack/src/monitor/message-handler/dispatch-setup.ts","extensions/slack/src/monitor/message-handler/dispatch-streaming.ts","extensions/slack/src/monitor/message-handler/dispatch.ts","extensions/slack/src/monitor/message-handler/failure-notice.ts","extensions/slack/src/monitor/message-handler/preflight-audio.ts","extensions/slack/src/monitor/message-handler/prepare-content.ts","extensions/slack/src/monitor/message-handler/prepare-dm-history.ts","extensions/slack/src/monitor/message-handler/prepare-room-history.ts","extensions/slack/src/monitor/message-handler/prepare-session-presentation.ts","extensions/slack/src/monitor/message-handler/prepare-thread-context-root.ts","extensions/slack/src/monitor/message-handler/prepare-thread-context.ts","extensions/slack/src/monitor/message-handler/prepare-thread-mentions.ts","extensions/slack/src/monitor/message-handler/prepare.ts","extensions/slack/src/monitor/message-handler/preview-finalize.ts","extensions/slack/src/monitor/message-handler/subteam-mentions.ts","extensions/slack/src/monitor/message-handler/timestamp.ts","extensions/slack/src/monitor/thread.ts","extensions/slack/src/progress-blocks.ts","extensions/slack/src/stream-mode.ts","src/channels/mention-gating.ts"]},{"output":".setup/policy-DxhGRvc2.mjs","sha256":"5a1d7ceffd16d78bf6e5cbeed6507ea0ff0070632f7aa649addec0a62832f8c4","facadeSource":null,"sources":["extensions/slack/src/monitor/channel-config.ts","extensions/slack/src/monitor/policy.ts"]},{"output":".setup/probe-DANukR3O.mjs","sha256":"4909f890ed8172e6a1c5d2d797c9729c2f5a6cb88553eb79237c3ced0d1111fa","facadeSource":null,"sources":["extensions/slack/src/action-threading.ts","extensions/slack/src/approval-actions.ts","extensions/slack/src/approval-auth.ts","extensions/slack/src/approval-native-gates.ts","extensions/slack/src/approval-plugin-policy.ts","extensions/slack/src/blocks-fallback.ts","extensions/slack/src/blocks-input.ts","extensions/slack/src/channel-policy-state.ts","extensions/slack/src/conversation-binding-route.ts","extensions/slack/src/data-table.ts","extensions/slack/src/data-visualization.ts","extensions/slack/src/detached-target-admission.ts","extensions/slack/src/errors.ts","extensions/slack/src/exec-approvals.ts","extensions/slack/src/format.ts","extensions/slack/src/group-policy.ts","extensions/slack/src/installation-identity-state.ts","extensions/slack/src/limits.ts","extensions/slack/src/monitor/allow-list.ts","extensions/slack/src/monitor/ingress-identity.ts","extensions/slack/src/monitor/mrkdwn.ts","extensions/slack/src/monitor/workspace-routing.ts","extensions/slack/src/native-data-blocks.ts","extensions/slack/src/presentation-fallback.ts","extensions/slack/src/presentation.ts","extensions/slack/src/probe.ts","extensions/slack/src/question-actions.ts","extensions/slack/src/reply-action-ids.ts","extensions/slack/src/rich-text.ts","extensions/slack/src/session-status.ts","extensions/slack/src/truncate.ts"]},{"output":".setup/question-delivery-CWC7sRhH.mjs","sha256":"88e90a1ce6e711ca88e7b282b9e54cf6ffe3e7967032a5022b49a3d53931395d","facadeSource":null,"sources":["extensions/slack/src/question-delivery.ts"]},{"output":".setup/relay-source-DoyOlTbK.mjs","sha256":"daaba19b63a507145ab7444602e8e48cf73e4ea1a8da042728120b2328199b53","facadeSource":"extensions/slack/src/monitor/relay-source.ts","sources":["extensions/slack/src/monitor/relay-source.ts"]},{"output":".setup/replies-BcmUKord.mjs","sha256":"ddfb3a517ffc35a7b7a17ffd5a1d2277789e8855706e6f7efe1379f0112af7f8","facadeSource":null,"sources":["extensions/slack/src/message-sent-hook.ts","extensions/slack/src/monitor/replies.ts"]},{"output":".setup/reply-blocks-BzsXUUUL.mjs","sha256":"8a6824efcfe48a92779c994de42e8cfdb0e8f6e151182d63d381a9cd5a0b20e1","facadeSource":null,"sources":["extensions/slack/src/authored-text.ts","extensions/slack/src/blocks-render.ts","extensions/slack/src/reply-blocks.ts"]},{"output":".setup/resolve-channels-XDPgnesf.mjs","sha256":"08fd8e8756f25a2e133d2634038d19cbd147ec678b09cd25b46e9dc296fed133","facadeSource":null,"sources":["extensions/slack/src/resolve-channels.ts"]},{"output":".setup/resolve-users-aDAv24U2.mjs","sha256":"bbc1f5ec978a317ae389f37f8c65990ec1be4e8466b12b363b8ac47de511e024","facadeSource":null,"sources":["extensions/slack/src/resolve-users.ts"]},{"output":".setup/rolldown-runtime-B4FMCO8f.mjs","sha256":"fcbee43c448920f8fe98ecc6ec974d3d100a0d6d19a223f5a135bfb261512c97","facadeSource":null,"sources":[]},{"output":".setup/runtime-JSVZSWAj.mjs","sha256":"bdc12ab895b35efc1ea3abeac2b050dbd7223c3accca9aad94baa9aaadb9123a","facadeSource":null,"sources":["extensions/slack/src/runtime.ts"]},{"output":".setup/runtime-setter-api-Cx_PV-xu.mjs","sha256":"459d6d1bc508399dbbfe2e5f654387d549a61897e2758c2f3b7537751aa847d8","facadeSource":"extensions/slack/runtime-setter-api.ts","sources":[]},{"output":".setup/scopes-BocHwImV.mjs","sha256":"9e61895cbb3723a5529461a0ea25ef2e9d492f3a7b340934ff516671d6a6fee5","facadeSource":"extensions/slack/src/scopes.ts","sources":["extensions/slack/src/scopes.ts"]},{"output":".setup/secret-contract-api-BlLz88mj.mjs","sha256":"19da648b38fe2793c12863d2dacaaa67911801c215ea188b3752aa62235a2529","facadeSource":"extensions/slack/secret-contract-api.ts","sources":[]},{"output":".setup/secret-contract-uiQtoNlu.mjs","sha256":"57108dae7f6b6d7ecc4e9c068ec6afea7e26de45254c46073e790cf94dd3a6fd","facadeSource":null,"sources":["extensions/slack/src/secret-contract.ts"]},{"output":".setup/security-audit-DFGiFLqd.mjs","sha256":"a0b01c0f66ae006698facdb66f39b62727487f60160056d72f744ceb661894fc","facadeSource":null,"sources":["extensions/slack/src/security-audit.ts"]},{"output":".setup/send-results-BGxlroJ-.mjs","sha256":"641af83805910c5cc46e41db7b8160fce21b40736d2edd1b88af3dcc70be0a23","facadeSource":null,"sources":["extensions/slack/src/send-results.ts"]},{"output":".setup/send-yK6_-px6.mjs","sha256":"7c5f434fb80469b203d7d1b9927416636287cadcc7d746faf21c9208feaf5d48","facadeSource":null,"sources":["extensions/slack/src/client-delivery.ts","extensions/slack/src/native-data-fallback.ts","extensions/slack/src/post-message-identity.ts","extensions/slack/src/send.ts","extensions/slack/src/sent-thread-cache.ts","extensions/slack/src/slack-dm-channel-cache.ts"]},{"output":".setup/setup-plugin-api-Cfz58xoh.mjs","sha256":"2a7a61636819addcd7f47ce40a9679189014d8aed0152cb0788b15e929bce405","facadeSource":"extensions/slack/setup-plugin-api.ts","sources":[]},{"output":".setup/setup-surface-C0KRtyqa.mjs","sha256":"c5ccef5b4f051901f4db35d083af84e4bd434f8deac02d94e6a2fe5800a48df9","facadeSource":"extensions/slack/src/setup-surface.ts","sources":["extensions/slack/src/setup-surface.ts"]},{"output":".setup/slash-dispatch.runtime-CyVC3bYx.mjs","sha256":"cf5746337d41027a993c1448ed3bac556b960ee97bde26a7e3fbb9bcb65c6cc6","facadeSource":"extensions/slack/src/monitor/slash-dispatch.runtime.ts","sources":[]},{"output":".setup/target-parsing-Bx2UZniD.mjs","sha256":"ceeb65f1e2087ea59d46173c2856fcd04c4cee9237387f00955e4abc261d2581","facadeSource":null,"sources":["extensions/slack/src/target-parsing.ts"]},{"output":".setup/targets-D-ASeWHy.mjs","sha256":"7e45f10feeb0ddade5a32b35f1b8df1e839ce6f303b9daf53efaf59f057bc6aa","facadeSource":null,"sources":["extensions/slack/src/targets.ts"]},{"output":".setup/thread-ts-Cvt7WD6B.mjs","sha256":"00e816eefbf22d06ca8a285a83b40fea4a2bfbb9d0561e3c80a9ef08b161fa41","facadeSource":null,"sources":["extensions/slack/src/thread-ts.ts"]},{"output":"account-inspect-api.js","sha256":"664ee5edd248fce59a698e66089e00347f565f1aa2092dddd14ef7649a09c0b4","facadeSource":"extensions/slack/account-inspect-api.ts","sources":["extensions/slack/account-inspect-api.ts"]},{"output":"api.js","sha256":"66393186ae21f7078ced2f586503e0539fc36539c4ee098d4933a6f4c9126c47","facadeSource":"extensions/slack/api.ts","sources":[]},{"output":"channel-config-api.js","sha256":"4af95571a29d3abf0b84a8f192236fd0daf1a9f35a14382bdc608466012430d6","facadeSource":"extensions/slack/channel-config-api.ts","sources":[]},{"output":"channel-entry.js","sha256":"db4699f8ffe20a62ca6011814b4a20f3fcf49c905f9864c97cb41fabef0e0ba4","facadeSource":"extensions/slack/channel-entry.ts","sources":["extensions/slack/channel-entry.ts"]},{"output":"channel-plugin-api.js","sha256":"a44443c325a37c3a2bf51f95843a641ea51e8fcdd31288ff6ce0f84be114cd3f","facadeSource":"extensions/slack/channel-plugin-api.ts","sources":[]},{"output":"configured-state.js","sha256":"e3269def4c411a8feeb67f01b26a54719792a3feea118a1280ef5a975bcc8e67","facadeSource":"extensions/slack/configured-state.ts","sources":["extensions/slack/configured-state.ts"]},{"output":"contract-api.js","sha256":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","facadeSource":"extensions/slack/contract-api.ts","sources":[]},{"output":"directory-contract-api.js","sha256":"cd380a9187391ec8e86cc7b791d7b1f231881521fcaf39b8b10b640fe6c5c63c","facadeSource":"extensions/slack/directory-contract-api.ts","sources":[]},{"output":"doctor-contract-api.js","sha256":"160684523e8190c141996ff63df35e1114ba5b9d2f33bf25c9d66445a9aeeaa7","facadeSource":"extensions/slack/doctor-contract-api.ts","sources":[]},{"output":"index.js","sha256":"a1fa1234d373c8f8a29b76e4286674cbec04ba5735ad2a768ad41b37d7ea6e1f","facadeSource":"extensions/slack/index.ts","sources":["extensions/slack/index.ts"]},{"output":"message-tool-api.js","sha256":"64a80a56408a860812fdbe7e3f27f84bcc3e37e8334466d0023a50bf64b83b6d","facadeSource":"extensions/slack/message-tool-api.ts","sources":[]},{"output":"runtime-api.js","sha256":"8fbc758ff08c5db007afbbf027162ba160636959081cfd7c8d161bb80dc83334","facadeSource":"extensions/slack/runtime-api.ts","sources":[]},{"output":"runtime-setter-api.js","sha256":"922b8e00df9d5b8ec92d98bda060404d5abd7644b3b5184db64a58077dbe0b5b","facadeSource":"extensions/slack/runtime-setter-api.ts","sources":[]},{"output":"secret-contract-api.js","sha256":"2e5ed792219d79d1dfa7eceaf5aaaddc3360253449bd9fd1090481ba12857230","facadeSource":"extensions/slack/secret-contract-api.ts","sources":[]},{"output":"security-contract-api.js","sha256":"de3eb5bfb0e5a9045e0686dd934f23d053b02a241b4143e39c8b761d8d714fe0","facadeSource":"extensions/slack/security-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"60eedea327a23cd9cda6192d8320d3e6d411009419b00a2080fec13fd458fd18","facadeSource":"extensions/slack/setup-entry.ts","sources":["extensions/slack/setup-entry.ts"]},{"output":"setup-plugin-api.js","sha256":"ee6d2206e3c366a8c32bf487b1ae4c7683fe12f4b2b45dd0fc263da6d5c76310","facadeSource":"extensions/slack/setup-plugin-api.ts","sources":[]}],"unrenderedSources":["extensions/slack/api.ts","extensions/slack/channel-config-api.ts","extensions/slack/channel-plugin-api.ts","extensions/slack/config-doctor-api.ts","extensions/slack/contract-api.ts","extensions/slack/directory-contract-api.ts","extensions/slack/doctor-contract-api.ts","extensions/slack/message-tool-api.ts","extensions/slack/runtime-api.ts","extensions/slack/runtime-setter-api.ts","extensions/slack/secret-contract-api.ts","extensions/slack/security-contract-api.ts","extensions/slack/setup-plugin-api.ts","extensions/slack/src/action-runtime.runtime.ts","extensions/slack/src/monitor/media-types.ts","extensions/slack/src/monitor/message-handler/pipeline.runtime.ts","extensions/slack/src/monitor/slash-dispatch.runtime.ts"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as inspectSlackAccount } from "./.setup/account-inspect-
|
|
1
|
+
import { t as inspectSlackAccount } from "./.setup/account-inspect-BLVha-ov.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,20 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import "./.setup/
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { n as
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { c as
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import "./.setup/http-C9sM-FXe.mjs";
|
|
1
|
+
import { a as mergeSlackAccountConfig, i as listSlackAccountIds, o as resolveDefaultSlackAccountId, p as resolveSlackReplyToMode, r as listEnabledSlackAccounts, s as resolveSlackAccount } from "./.setup/accounts-CGJScKtk.mjs";
|
|
2
|
+
import { t as inspectSlackAccount } from "./.setup/account-inspect-BLVha-ov.mjs";
|
|
3
|
+
import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId } from "./.setup/target-parsing-Bx2UZniD.mjs";
|
|
4
|
+
import "./.setup/targets-D-ASeWHy.mjs";
|
|
5
|
+
import { Bt as allowListMatches, Gt as resolveSlackUserAllowed, Ht as normalizeSlackSlug, Ut as resolveSlackAllowListMatch, Vt as normalizeSlackAllowOwnerEntry, d as resolveSlackGroupRequireMention, f as resolveSlackGroupToolPolicy, nt as parseSlackBlocksInput, rn as resolveSlackAutoThreadId, rt as validateSlackBlocksArray, t as probeSlack, tt as SLACK_MAX_BLOCKS } from "./.setup/probe-DANukR3O.mjs";
|
|
6
|
+
import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./.setup/channel-C_R98Nbv.mjs";
|
|
7
|
+
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./.setup/message-tool-api-LGIgVXJf.mjs";
|
|
8
|
+
import { l as buildSlackInteractiveBlocks, u as buildSlackPresentationBlocks } from "./.setup/reply-blocks-BzsXUUUL.mjs";
|
|
9
|
+
import { b as resolveSlackWebClientOptions, c as createSlackWriteClient, g as SLACK_WRITE_RETRY_OPTIONS, h as SLACK_DEFAULT_RETRY_OPTIONS, o as createSlackTokenCacheKey, s as createSlackWebClient, u as getSlackWriteClient, x as resolveSlackWriteClientOptions } from "./.setup/cursor-pages-CATAzbTT.mjs";
|
|
10
|
+
import { n as resolveSlackChannelType } from "./.setup/channel-type-B5P3w9eA.mjs";
|
|
11
|
+
import { t as slackSetupPlugin } from "./.setup/channel.setup-Lq2OxKkF.mjs";
|
|
12
|
+
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-D5S6D_BU.mjs";
|
|
13
|
+
import { c as hasSlackThreadParticipation, d as recordSlackThreadParticipation, o as clearSlackThreadParticipationCache } from "./.setup/send-yK6_-px6.mjs";
|
|
14
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./.setup/directory-config-D-hf9KGQ.mjs";
|
|
15
|
+
import { t as normalizeSlackWebhookPath } from "./.setup/paths-B1u59oLK.mjs";
|
|
17
16
|
import { t as collectSlackSecurityAuditFindings } from "./.setup/security-audit-DFGiFLqd.mjs";
|
|
18
17
|
import { normalizeStringEntries as normalizeAllowList, normalizeStringEntriesLower as normalizeAllowListLower } from "openclaw/plugin-sdk/string-normalization-runtime";
|
|
19
18
|
import { resolveOpenProviderRuntimeGroupPolicy as resolveSlackRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
|
|
20
|
-
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,
|
|
19
|
+
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, 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, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAllowListMatch, resolveSlackAutoThreadId, resolveSlackChannelId, resolveSlackChannelType, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackReplyToMode, resolveSlackRuntimeGroupPolicy, resolveSlackUserAllowed, resolveSlackWebClientOptions, resolveSlackWriteClientOptions, sendSlackMessage, slackPlugin, slackSetupPlugin, unpinSlackMessage, validateSlackBlocksArray };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { SlackChannelConfigSchema };
|
|
1
|
+
export { t as SlackChannelConfigSchema } from "./.setup/config-schema-BWAaa5au.mjs";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { slackPlugin };
|
|
1
|
+
export { t as slackPlugin } from "./.setup/channel-C_R98Nbv.mjs";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig };
|
|
1
|
+
export { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./.setup/directory-config-D-hf9KGQ.mjs";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { legacyConfigRules, normalizeCompatibilityConfig };
|
|
1
|
+
export { t as legacyConfigRules, n as normalizeCompatibilityConfig } from "./.setup/doctor-contract-9-QJRCXk.mjs";
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { t as registerSlackPluginHttpRoutes } from "./.setup/plugin-routes-D4qozHVn.mjs";
|
|
2
|
-
import "./http-routes-api.js";
|
|
3
1
|
import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
|
|
4
2
|
//#region extensions/slack/index.ts
|
|
5
3
|
var slack_default = defineBundledChannelEntry({
|
|
@@ -22,10 +20,6 @@ var slack_default = defineBundledChannelEntry({
|
|
|
22
20
|
accountInspect: {
|
|
23
21
|
specifier: "./account-inspect-api.js",
|
|
24
22
|
exportName: "inspectSlackReadOnlyAccount"
|
|
25
|
-
},
|
|
26
|
-
registerFull: (api) => {
|
|
27
|
-
if (api.registrationMode !== "full") return;
|
|
28
|
-
registerSlackPluginHttpRoutes(api);
|
|
29
23
|
}
|
|
30
24
|
});
|
|
31
25
|
//#endregion
|
package/dist/message-tool-api.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { describeSlackMessageTool as describeMessageTool };
|
|
1
|
+
export { t as describeMessageTool } from "./.setup/message-tool-api-LGIgVXJf.mjs";
|
package/dist/runtime-api.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { t as
|
|
1
|
+
import { g as resolveSlackBotToken, h as resolveSlackAppToken, i as listSlackAccountIds, o as resolveDefaultSlackAccountId, r as listEnabledSlackAccounts, s as resolveSlackAccount } from "./.setup/accounts-CGJScKtk.mjs";
|
|
2
|
+
import { d as resolveSlackGroupRequireMention, f as resolveSlackGroupToolPolicy, t as probeSlack } from "./.setup/probe-DANukR3O.mjs";
|
|
3
|
+
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-D5S6D_BU.mjs";
|
|
4
|
+
import { t as sendMessageSlack } from "./.setup/send-yK6_-px6.mjs";
|
|
5
5
|
import { r as setSlackRuntime } from "./.setup/runtime-JSVZSWAj.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { n as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
import { t as resolveSlackUserAllowlist } from "./.setup/resolve-users-Cz8e17ky.mjs";
|
|
13
|
-
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 };
|
|
6
|
+
import { n as slackActionRuntime, t as handleSlackAction } from "./.setup/action-runtime-D01wBhx5.mjs";
|
|
7
|
+
import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./.setup/directory-live-onKAFI1E.mjs";
|
|
8
|
+
import { n as monitorSlackProvider } from "./.setup/monitor-Cm1TuqxN.mjs";
|
|
9
|
+
import { t as resolveSlackChannelAllowlist } from "./.setup/resolve-channels-XDPgnesf.mjs";
|
|
10
|
+
import { t as resolveSlackUserAllowlist } from "./.setup/resolve-users-aDAv24U2.mjs";
|
|
11
|
+
export { deleteSlackMessage, editSlackMessage, getSlackMemberInfo, handleSlackAction, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsLive, listSlackDirectoryPeersLive, listSlackEmojis, listSlackPins, listSlackReactions, monitorSlackProvider, pinSlackMessage, probeSlack, reactSlackMessage, readSlackMessages, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAppToken, resolveSlackBotToken, resolveSlackChannelAllowlist, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackUserAllowlist, sendMessageSlack, sendSlackMessage, setSlackRuntime, slackActionRuntime, unpinSlackMessage };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { setSlackRuntime };
|
|
1
|
+
export { r as setSlackRuntime } from "./.setup/runtime-JSVZSWAj.mjs";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { channelSecrets, collectRuntimeConfigAssignments, secretTargetRegistryEntries };
|
|
1
|
+
export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-uiQtoNlu.mjs";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { collectSlackSecurityAuditFindings };
|
|
1
|
+
export { t as collectSlackSecurityAuditFindings } from "./.setup/security-audit-DFGiFLqd.mjs";
|
package/dist/setup-entry.js
CHANGED
|
@@ -4,15 +4,15 @@ import { fileURLToPath } from "node:url";
|
|
|
4
4
|
var setup_entry_default = defineBundledChannelSetupEntry({
|
|
5
5
|
importMetaUrl: import.meta.url,
|
|
6
6
|
plugin: {
|
|
7
|
-
specifier: fileURLToPath(new URL(".setup/setup-plugin-api-
|
|
7
|
+
specifier: fileURLToPath(new URL(".setup/setup-plugin-api-Cfz58xoh.mjs", import.meta.url).href),
|
|
8
8
|
exportName: "slackSetupPlugin"
|
|
9
9
|
},
|
|
10
10
|
secrets: {
|
|
11
|
-
specifier: fileURLToPath(new URL(".setup/secret-contract-api-
|
|
11
|
+
specifier: fileURLToPath(new URL(".setup/secret-contract-api-BlLz88mj.mjs", import.meta.url).href),
|
|
12
12
|
exportName: "channelSecrets"
|
|
13
13
|
},
|
|
14
14
|
runtime: {
|
|
15
|
-
specifier: fileURLToPath(new URL(".setup/runtime-setter-api-
|
|
15
|
+
specifier: fileURLToPath(new URL(".setup/runtime-setter-api-Cx_PV-xu.mjs", import.meta.url).href),
|
|
16
16
|
exportName: "setSlackRuntime"
|
|
17
17
|
}
|
|
18
18
|
});
|
package/dist/setup-plugin-api.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { slackSetupPlugin };
|
|
1
|
+
export { t as slackSetupPlugin } from "./.setup/channel.setup-Lq2OxKkF.mjs";
|
|
@@ -8,7 +8,7 @@ This package contains type definitions for node (https://nodejs.org/).
|
|
|
8
8
|
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
|
|
9
9
|
|
|
10
10
|
### Additional Details
|
|
11
|
-
* Last updated:
|
|
11
|
+
* Last updated: Fri, 09 Oct 2026 18:42:20 GMT
|
|
12
12
|
* Dependencies: [undici-types](https://npmjs.com/package/undici-types)
|
|
13
13
|
|
|
14
14
|
# Credits
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@types/node",
|
|
3
|
-
"version": "26.6.
|
|
3
|
+
"version": "26.6.5",
|
|
4
4
|
"description": "TypeScript definitions for node",
|
|
5
5
|
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
|
|
6
6
|
"license": "MIT",
|
|
@@ -135,6 +135,6 @@
|
|
|
135
135
|
"undici-types": "~8.9.0"
|
|
136
136
|
},
|
|
137
137
|
"peerDependencies": {},
|
|
138
|
-
"typesPublisherContentHash": "
|
|
138
|
+
"typesPublisherContentHash": "3196021f34db9bcb68a729bd29ff60434d3b4c5f49619270db25e7dbd6dc651c",
|
|
139
139
|
"typeScriptVersion": "5.6"
|
|
140
140
|
}
|
|
@@ -1260,16 +1260,19 @@ declare module "node:util" {
|
|
|
1260
1260
|
*
|
|
1261
1261
|
* // 3-digit hex color (shorthand)
|
|
1262
1262
|
* console.log(styleText('#f00', 'Red text'));
|
|
1263
|
+
*
|
|
1264
|
+
* // Hex color combined with other modifiers
|
|
1265
|
+
* console.log(styleText(['#00f', 'bold'], 'Bold blue text'));
|
|
1263
1266
|
* ```
|
|
1264
1267
|
*
|
|
1265
1268
|
* The full list of formats can be found in [modifiers](https://nodejs.org/docs/latest-v26.x/api/util.html#modifiers).
|
|
1266
|
-
* @param format A text format
|
|
1267
|
-
* or
|
|
1269
|
+
* @param format A text format defined in `util.inspect.colors`, a hex color in `#RGB` or `#RRGGBB` form,
|
|
1270
|
+
* or an Array of text formats and/or hex colors.
|
|
1268
1271
|
* @param text The text to to be formatted.
|
|
1269
1272
|
* @since v20.12.0
|
|
1270
1273
|
*/
|
|
1271
1274
|
export function styleText(
|
|
1272
|
-
format: InspectColor | readonly InspectColor
|
|
1275
|
+
format: InspectColor | `#${string}` | readonly (InspectColor | `#${string}`)[],
|
|
1273
1276
|
text: string,
|
|
1274
1277
|
options?: StyleTextOptions,
|
|
1275
1278
|
): string;
|
|
@@ -17,17 +17,17 @@ $ npm install content-disposition
|
|
|
17
17
|
## API
|
|
18
18
|
|
|
19
19
|
```js
|
|
20
|
-
|
|
20
|
+
import { create, parse, format } from 'content-disposition';
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
###
|
|
23
|
+
### create(filename, options)
|
|
24
24
|
|
|
25
25
|
Create an attachment `Content-Disposition` header value using the given file name,
|
|
26
26
|
if supplied. The `filename` is optional and if no file name is desired, but you
|
|
27
27
|
want to specify `options`, set `filename` to `undefined`.
|
|
28
28
|
|
|
29
29
|
```js
|
|
30
|
-
res.setHeader('Content-Disposition',
|
|
30
|
+
res.setHeader('Content-Disposition', create('∫ maths.pdf'));
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
**note** HTTP headers are of the ISO-8859-1 character set. If you are writing this
|
|
@@ -40,73 +40,139 @@ the `'binary'` encoding in Node.js.
|
|
|
40
40
|
|
|
41
41
|
##### fallback
|
|
42
42
|
|
|
43
|
-
If the `filename` option is outside
|
|
43
|
+
If the `filename` option is outside US-ASCII, then the file name is actually
|
|
44
44
|
stored in a supplemental field for clients that support Unicode file names and
|
|
45
|
-
a
|
|
45
|
+
a US-ASCII version of the file name is automatically generated.
|
|
46
46
|
|
|
47
|
-
This specifies the
|
|
47
|
+
This specifies the US-ASCII file name to override the automatic generation or
|
|
48
48
|
disables the generation all together, defaults to `true`.
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
- A string will specify the US-ASCII file name to use in place of automatic
|
|
51
|
+
generation.
|
|
52
|
+
- `false` will disable including a US-ASCII file name and only include the
|
|
53
|
+
Unicode version (unless the file name is already US-ASCII).
|
|
54
|
+
- `true` will enable automatic generation if the file name is outside US-ASCII.
|
|
55
55
|
|
|
56
|
-
If the `filename` option is
|
|
56
|
+
If the `filename` option is US-ASCII and this option is specified and has a
|
|
57
57
|
different value, then the `filename` option is encoded in the extended field
|
|
58
|
-
and this set as the fallback field, even though they are both
|
|
58
|
+
and this set as the fallback field, even though they are both US-ASCII.
|
|
59
59
|
|
|
60
60
|
##### type
|
|
61
61
|
|
|
62
62
|
Specifies the disposition type, defaults to `"attachment"`. This can also be
|
|
63
63
|
`"inline"`, or any other value (all values except inline are treated like
|
|
64
64
|
`attachment`, but can convey additional information if both parties agree to
|
|
65
|
-
it).
|
|
65
|
+
it).
|
|
66
66
|
|
|
67
|
-
###
|
|
67
|
+
### parse(string, options)
|
|
68
68
|
|
|
69
69
|
```js
|
|
70
|
-
const disposition =
|
|
70
|
+
const disposition = parse(
|
|
71
|
+
'attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt',
|
|
72
|
+
);
|
|
71
73
|
```
|
|
72
74
|
|
|
73
75
|
Parse a `Content-Disposition` header string. This automatically handles extended
|
|
74
76
|
("Unicode") parameters by decoding them and providing them under the standard
|
|
75
|
-
parameter name. This will return an object with the following properties
|
|
76
|
-
are shown for the string `'attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt'`):
|
|
77
|
+
parameter name. This will return an object with the following properties:
|
|
77
78
|
|
|
78
|
-
|
|
79
|
+
- `type`: The disposition type (always lower case). Example: `'attachment'`
|
|
79
80
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
- `parameters`: An object of the parameters in the disposition (name of parameter
|
|
82
|
+
always lower case and extended versions replace non-extended versions). Example:
|
|
83
|
+
`{filename: "€ rates.txt"}`
|
|
84
|
+
|
|
85
|
+
#### Options
|
|
86
|
+
|
|
87
|
+
##### multipart
|
|
88
|
+
|
|
89
|
+
Parse parameters using browser `multipart/form-data` behavior.
|
|
90
|
+
|
|
91
|
+
```js
|
|
92
|
+
parse('form-data; name="file"; filename="the %22plans%22.pdf"', {
|
|
93
|
+
multipart: true,
|
|
94
|
+
});
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
##### extended
|
|
98
|
+
|
|
99
|
+
Parse RFC 5987 extended header parameters automatically when decoding
|
|
100
|
+
parameters, defaults to `true`.
|
|
101
|
+
|
|
102
|
+
### format(obj, options)
|
|
103
|
+
|
|
104
|
+
```js
|
|
105
|
+
const disposition = format({
|
|
106
|
+
type: 'attachment',
|
|
107
|
+
parameters: {
|
|
108
|
+
filename: '€ rates.txt',
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Formats an object to a `Content-Disposition` header string. This automatically
|
|
114
|
+
handles extended ("Unicode") parameters and returns a string. Example:
|
|
115
|
+
`'attachment; filename*=UTF-8''%E2%82%AC%20rates.txt'`
|
|
116
|
+
|
|
117
|
+
#### Options
|
|
118
|
+
|
|
119
|
+
##### multipart
|
|
120
|
+
|
|
121
|
+
Format parameters using browser `multipart/form-data` behavior. This quotes
|
|
122
|
+
parameter values, escapes `"` as `%22`, and writes Unicode values directly
|
|
123
|
+
instead of using extended parameters.
|
|
124
|
+
|
|
125
|
+
```js
|
|
126
|
+
format(
|
|
127
|
+
{
|
|
128
|
+
type: 'form-data',
|
|
129
|
+
parameters: { name: 'file', filename: '€ rates.txt' },
|
|
130
|
+
},
|
|
131
|
+
{ multipart: true },
|
|
132
|
+
);
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
##### extended
|
|
136
|
+
|
|
137
|
+
Encode Unicode parameter values using RFC 5987 extended header parameters,
|
|
138
|
+
e.g. `filename*=`, defaults to `true`.
|
|
83
139
|
|
|
84
140
|
## Examples
|
|
85
141
|
|
|
86
142
|
### Send a file for download
|
|
87
143
|
|
|
88
144
|
```js
|
|
89
|
-
const contentDisposition = require('content-disposition')
|
|
90
|
-
const fs = require('fs')
|
|
91
|
-
const http = require('http')
|
|
92
|
-
const onFinished = require('on-finished')
|
|
145
|
+
const contentDisposition = require('content-disposition');
|
|
146
|
+
const fs = require('fs');
|
|
147
|
+
const http = require('http');
|
|
148
|
+
const onFinished = require('on-finished');
|
|
93
149
|
|
|
94
|
-
const filePath = '/path/to/public/plans.pdf'
|
|
150
|
+
const filePath = '/path/to/public/plans.pdf';
|
|
95
151
|
|
|
96
|
-
http.createServer(function onRequest
|
|
152
|
+
http.createServer(function onRequest(req, res) {
|
|
97
153
|
// set headers
|
|
98
|
-
res.setHeader('Content-Type', 'application/pdf')
|
|
99
|
-
res.setHeader('Content-Disposition', contentDisposition(filePath))
|
|
154
|
+
res.setHeader('Content-Type', 'application/pdf');
|
|
155
|
+
res.setHeader('Content-Disposition', contentDisposition(filePath));
|
|
100
156
|
|
|
101
157
|
// send file
|
|
102
|
-
const stream = fs.createReadStream(filePath)
|
|
103
|
-
stream.pipe(res)
|
|
158
|
+
const stream = fs.createReadStream(filePath);
|
|
159
|
+
stream.pipe(res);
|
|
104
160
|
onFinished(res, function () {
|
|
105
|
-
stream.destroy()
|
|
106
|
-
})
|
|
107
|
-
})
|
|
161
|
+
stream.destroy();
|
|
162
|
+
});
|
|
163
|
+
});
|
|
108
164
|
```
|
|
109
165
|
|
|
166
|
+
## Local demo
|
|
167
|
+
|
|
168
|
+
Run the upload inspector locally:
|
|
169
|
+
|
|
170
|
+
```sh
|
|
171
|
+
npm run demo
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Then open `http://127.0.0.1:3000` in your browser. The demo lets you upload files, inspect the multipart upload part headers sent by the browser, and compare them with the download `Content-Disposition` header generated by this package.
|
|
175
|
+
|
|
110
176
|
## Testing
|
|
111
177
|
|
|
112
178
|
```sh
|
|
@@ -118,11 +184,15 @@ $ npm test
|
|
|
118
184
|
- [RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1][rfc-2616]
|
|
119
185
|
- [RFC 5987: Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters][rfc-5987]
|
|
120
186
|
- [RFC 6266: Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)][rfc-6266]
|
|
187
|
+
- [RFC 8187: Indicating Character Encoding and Language for HTTP Header Field Parameters][rfc-8187]
|
|
188
|
+
- [HTML Living Standard: Multipart form data][html-form]
|
|
121
189
|
- [Test Cases for HTTP Content-Disposition header field (RFC 6266) and the Encodings defined in RFCs 2047, 2231 and 5987][tc-2231]
|
|
122
190
|
|
|
123
191
|
[rfc-2616]: https://datatracker.ietf.org/doc/html/rfc2616
|
|
124
192
|
[rfc-5987]: https://datatracker.ietf.org/doc/html/rfc5987
|
|
125
193
|
[rfc-6266]: https://datatracker.ietf.org/doc/html/rfc6266
|
|
194
|
+
[rfc-8187]: https://datatracker.ietf.org/doc/html/rfc8187
|
|
195
|
+
[html-form]: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data
|
|
126
196
|
[tc-2231]: http://greenbytes.de/tech/tc2231/
|
|
127
197
|
|
|
128
198
|
## License
|