@openclaw/slack 2026.9.33 → 2026.9.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.
Files changed (64) hide show
  1. package/dist/.setup/{action-runtime-DfWvuiZd.mjs → action-runtime-DrJGFq6u.mjs} +4 -4
  2. package/dist/.setup/action-runtime.runtime-BhXBcznI.mjs +1 -0
  3. package/dist/.setup/{actions-Df0CzcDl.mjs → actions-B-E1iXQh.mjs} +2 -2
  4. package/dist/.setup/{approval-handler.runtime-Ed6Sw5VK.mjs → approval-handler.runtime-B4zv4Cy-.mjs} +4 -4
  5. package/dist/.setup/{approval-message-updates-BadvtA7R.mjs → approval-message-updates-Psy357ys.mjs} +1 -1
  6. package/dist/.setup/{channel-C7bgPSTE.mjs → channel-C19w97Oe.mjs} +9 -9
  7. package/dist/.setup/{channel-type-ClOttrZ5.mjs → channel-type-DdNW4_3Y.mjs} +1 -1
  8. package/dist/.setup/{monitor-BPVfkumU.mjs → monitor-0RYQ8Lt4.mjs} +14 -14
  9. package/dist/.setup/{outbound-adapter-Bv48XUjq.mjs → outbound-adapter-BGeEF1Tb.mjs} +3 -3
  10. package/dist/.setup/{pipeline.runtime-B1H63Frf.mjs → pipeline.runtime-DhQXp3fP.mjs} +9 -9
  11. package/dist/.setup/{policy-D-jfM174.mjs → policy-D7nmaTmD.mjs} +1 -1
  12. package/dist/.setup/{relay-source-BpKdjsll.mjs → relay-source-DL5bqusA.mjs} +1 -1
  13. package/dist/.setup/{replies-BAnUtr2f.mjs → replies-BHFmop3k.mjs} +4 -4
  14. package/dist/.setup/{reply-blocks-SE1kTE3I.mjs → reply-blocks-BntCJ7mr.mjs} +1 -1
  15. package/dist/.setup/runtime-setter-api-Cx_PV-xu.mjs +2 -0
  16. package/dist/.setup/secret-contract-api-3duiGw0K.mjs +2 -0
  17. package/dist/.setup/{send-BOVLQi3n.mjs → send-BSQKD4nx.mjs} +1 -1
  18. package/dist/.setup/{session-status-DscajIsd.mjs → session-status-CPWDBkOb.mjs} +1 -1
  19. package/dist/.setup/setup-plugin-api-BVR4tSwT.mjs +2 -0
  20. package/dist/.setup/{slash-dispatch.runtime--AEzLVBF.mjs → slash-dispatch.runtime-D_QM_3Cg.mjs} +1 -1
  21. package/dist/api.js +6 -6
  22. package/dist/channel-config-api.js +1 -2
  23. package/dist/channel-plugin-api.js +1 -2
  24. package/dist/directory-contract-api.js +1 -2
  25. package/dist/doctor-contract-api.js +1 -2
  26. package/dist/http-routes-api.js +1 -2
  27. package/dist/message-tool-api.js +1 -2
  28. package/dist/runtime-api.js +5 -5
  29. package/dist/runtime-setter-api.js +1 -2
  30. package/dist/secret-contract-api.js +1 -2
  31. package/dist/security-contract-api.js +1 -2
  32. package/dist/setup-entry.js +3 -3
  33. package/dist/setup-plugin-api.js +1 -2
  34. package/node_modules/@slack/bolt/node_modules/body-parser/README.md +17 -13
  35. package/node_modules/@slack/bolt/node_modules/body-parser/lib/read.js +74 -57
  36. package/node_modules/@slack/bolt/node_modules/body-parser/lib/types/json.js +11 -11
  37. package/node_modules/@slack/bolt/node_modules/body-parser/lib/types/urlencoded.js +5 -5
  38. package/node_modules/@slack/bolt/node_modules/body-parser/lib/utils.js +0 -15
  39. package/node_modules/@slack/bolt/node_modules/body-parser/package.json +7 -12
  40. package/node_modules/zod/package.json +1 -1
  41. package/node_modules/zod/src/v4/classic/tests/array.test.ts +27 -0
  42. package/node_modules/zod/src/v4/classic/tests/map.test.ts +7 -0
  43. package/node_modules/zod/src/v4/classic/tests/set.test.ts +6 -0
  44. package/node_modules/zod/src/v4/core/compile.ts +9 -0
  45. package/node_modules/zod/src/v4/core/schemas.ts +35 -1
  46. package/node_modules/zod/src/v4/core/util.ts +13 -0
  47. package/node_modules/zod/src/v4/core/versions.ts +1 -1
  48. package/node_modules/zod/v4/core/compile.cjs +8 -0
  49. package/node_modules/zod/v4/core/compile.js +8 -0
  50. package/node_modules/zod/v4/core/schemas.cjs +30 -0
  51. package/node_modules/zod/v4/core/schemas.d.cts +3 -1
  52. package/node_modules/zod/v4/core/schemas.d.ts +3 -1
  53. package/node_modules/zod/v4/core/schemas.js +30 -0
  54. package/node_modules/zod/v4/core/util.cjs +15 -0
  55. package/node_modules/zod/v4/core/util.d.cts +2 -0
  56. package/node_modules/zod/v4/core/util.d.ts +2 -0
  57. package/node_modules/zod/v4/core/util.js +14 -0
  58. package/node_modules/zod/v4/core/versions.cjs +1 -1
  59. package/node_modules/zod/v4/core/versions.js +1 -1
  60. package/package.json +5 -5
  61. package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +0 -2
  62. package/dist/.setup/runtime-setter-api-CMFvhrAr.mjs +0 -3
  63. package/dist/.setup/secret-contract-api-Dp6290Vg.mjs +0 -3
  64. package/dist/.setup/setup-plugin-api-DTtbTKNk.mjs +0 -3
@@ -1210,9 +1210,15 @@ function generateNullableCheck(doc, ctx, schema, accessor, buildsValue = true) {
1210
1210
  doc.write(`}`);
1211
1211
  return outputVar;
1212
1212
  }
1213
+ function generateSizeGate(doc, schema, size) {
1214
+ for (const [max, check] of util.sizeCaps(schema._zod.def.checks)) {
1215
+ doc.write(`if (${size} > ${numericOperand(max, check._zod.def.check)}) return INVALID;`);
1216
+ }
1217
+ }
1213
1218
  function generateArrayCheck(doc, ctx, schema, accessor, buildsValue = true) {
1214
1219
  const def = schema._zod.def;
1215
1220
  doc.write(`if (!Array.isArray(${accessor})) return INVALID;`);
1221
+ generateSizeGate(doc, schema, `${accessor}.length`);
1216
1222
  // Build a new array with validated/transformed elements.
1217
1223
  const outputVar = buildsValue ? newVar(ctx) : null;
1218
1224
  const iVar = newVar(ctx);
@@ -1676,6 +1682,7 @@ function literalPropertyKey(ctx, key) {
1676
1682
  function generateMapCheck(doc, ctx, schema, accessor) {
1677
1683
  const def = schema._zod.def;
1678
1684
  doc.write(`if (!(${accessor} instanceof Map)) return INVALID;`);
1685
+ generateSizeGate(doc, schema, `${accessor}.size`);
1679
1686
  const outputVar = newVar(ctx);
1680
1687
  const kVar = newVar(ctx);
1681
1688
  const valVar = newVar(ctx);
@@ -1692,6 +1699,7 @@ function generateMapCheck(doc, ctx, schema, accessor) {
1692
1699
  function generateSetCheck(doc, ctx, schema, accessor) {
1693
1700
  const def = schema._zod.def;
1694
1701
  doc.write(`if (!(${accessor} instanceof Set)) return INVALID;`);
1702
+ generateSizeGate(doc, schema, `${accessor}.size`);
1695
1703
  const outputVar = newVar(ctx);
1696
1704
  const valVar = newVar(ctx);
1697
1705
  doc.write(`const ${outputVar} = new Set();`);
@@ -860,6 +860,33 @@ exports.$ZodDate = core.$constructor("$ZodDate", (inst, def) => {
860
860
  return payload;
861
861
  };
862
862
  });
863
+ // an oversized container fails its leading size checks before any element is parsed
864
+ function capSize(inst, size) {
865
+ const caps = util.sizeCaps(inst._zod.def.checks);
866
+ if (!caps.length)
867
+ return;
868
+ const cap = Math.min(...caps.map((c) => c[0]));
869
+ const parse = inst._zod.parse;
870
+ inst._zod.parse = (payload, ctx) => {
871
+ const n = size(payload.value);
872
+ if (n > cap && !ctx?.skipChecks && ctx?.direction !== "backward") {
873
+ for (const [max, ch] of util.sizeCaps(inst._zod.def.checks)) {
874
+ if (n > max && ch._zod.def.when(payload)) {
875
+ const start = payload.issues.length;
876
+ ch._zod.check(payload);
877
+ // the value is still the raw input, so no later check may read it
878
+ payload.issues[start].continue = false;
879
+ util.attachSchema(payload.issues, start, inst);
880
+ return payload;
881
+ }
882
+ }
883
+ }
884
+ return parse(payload, ctx);
885
+ };
886
+ }
887
+ const arraySize = (input) => (Array.isArray(input) ? input.length : -1);
888
+ const mapSize = (input) => (input instanceof Map ? input.size : -1);
889
+ const setSize = (input) => (input instanceof Set ? input.size : -1);
863
890
  function handleArrayResult(result, final, index) {
864
891
  if (result.issues.length) {
865
892
  final.issues.push(...util.prefixIssues(index, result.issues));
@@ -905,6 +932,7 @@ exports.$ZodArray = core.$constructor("$ZodArray", (inst, def) => {
905
932
  }
906
933
  return payload; //handleArrayResultsAsync(parseResults, final);
907
934
  };
935
+ capSize(inst, arraySize);
908
936
  });
909
937
  function handlePropertyResult(result, final, key, input, optin, optout) {
910
938
  const isPresent = key in input;
@@ -1942,6 +1970,7 @@ exports.$ZodMap = core.$constructor("$ZodMap", (inst, def) => {
1942
1970
  return Promise.all(proms).then(() => payload);
1943
1971
  return payload;
1944
1972
  };
1973
+ capSize(inst, mapSize);
1945
1974
  });
1946
1975
  function handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {
1947
1976
  if (keyResult.issues.length) {
@@ -2011,6 +2040,7 @@ exports.$ZodSet = core.$constructor("$ZodSet", (inst, def) => {
2011
2040
  return Promise.all(proms).then(() => payload);
2012
2041
  return payload;
2013
2042
  };
2043
+ capSize(inst, setSize);
2014
2044
  });
2015
2045
  function handleSetResult(result, final) {
2016
2046
  if (result.issues.length) {
@@ -834,8 +834,10 @@ export type $InferZodRecordOutput<Key extends $ZodRecordKey = $ZodRecordKey, Val
834
834
  export type $InferZodRecordInput<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> = Key extends $partial ? Partial<Record<core.input<Key> & PropertyKey, core.input<Value>>> : [
835
835
  Value
836
836
  ] extends [OptionalInSchema] ? Partial<Record<core.input<Key> & PropertyKey, core.input<Value>>> : Record<core.input<Key> & PropertyKey, core.input<Value>>;
837
- export interface $ZodRecordInternals<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> extends $ZodTypeInternals<$InferZodRecordOutput<Key, Value>, $InferZodRecordInput<Key, Value>> {
837
+ export interface $ZodRecordInternals<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> extends $ZodTypeInternals {
838
838
  def: $ZodRecordDef<Key, Value>;
839
+ output: $InferZodRecordOutput<Key, Value>;
840
+ input: $InferZodRecordInput<Key, Value>;
839
841
  isst: errors.$ZodIssueInvalidType | errors.$ZodIssueInvalidKey<Record<PropertyKey, unknown>>;
840
842
  optin?: "optional" | undefined;
841
843
  optout?: "optional" | undefined;
@@ -834,8 +834,10 @@ export type $InferZodRecordOutput<Key extends $ZodRecordKey = $ZodRecordKey, Val
834
834
  export type $InferZodRecordInput<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> = Key extends $partial ? Partial<Record<core.input<Key> & PropertyKey, core.input<Value>>> : [
835
835
  Value
836
836
  ] extends [OptionalInSchema] ? Partial<Record<core.input<Key> & PropertyKey, core.input<Value>>> : Record<core.input<Key> & PropertyKey, core.input<Value>>;
837
- export interface $ZodRecordInternals<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> extends $ZodTypeInternals<$InferZodRecordOutput<Key, Value>, $InferZodRecordInput<Key, Value>> {
837
+ export interface $ZodRecordInternals<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> extends $ZodTypeInternals {
838
838
  def: $ZodRecordDef<Key, Value>;
839
+ output: $InferZodRecordOutput<Key, Value>;
840
+ input: $InferZodRecordInput<Key, Value>;
839
841
  isst: errors.$ZodIssueInvalidType | errors.$ZodIssueInvalidKey<Record<PropertyKey, unknown>>;
840
842
  optin?: "optional" | undefined;
841
843
  optout?: "optional" | undefined;
@@ -816,6 +816,33 @@ export const $ZodDate = /*@__PURE__*/ core.$constructor("$ZodDate", (inst, def)
816
816
  return payload;
817
817
  };
818
818
  });
819
+ // an oversized container fails its leading size checks before any element is parsed
820
+ function capSize(inst, size) {
821
+ const caps = util.sizeCaps(inst._zod.def.checks);
822
+ if (!caps.length)
823
+ return;
824
+ const cap = Math.min(...caps.map((c) => c[0]));
825
+ const parse = inst._zod.parse;
826
+ inst._zod.parse = (payload, ctx) => {
827
+ const n = size(payload.value);
828
+ if (n > cap && !ctx?.skipChecks && ctx?.direction !== "backward") {
829
+ for (const [max, ch] of util.sizeCaps(inst._zod.def.checks)) {
830
+ if (n > max && ch._zod.def.when(payload)) {
831
+ const start = payload.issues.length;
832
+ ch._zod.check(payload);
833
+ // the value is still the raw input, so no later check may read it
834
+ payload.issues[start].continue = false;
835
+ util.attachSchema(payload.issues, start, inst);
836
+ return payload;
837
+ }
838
+ }
839
+ }
840
+ return parse(payload, ctx);
841
+ };
842
+ }
843
+ const arraySize = (input) => (Array.isArray(input) ? input.length : -1);
844
+ const mapSize = (input) => (input instanceof Map ? input.size : -1);
845
+ const setSize = (input) => (input instanceof Set ? input.size : -1);
819
846
  function handleArrayResult(result, final, index) {
820
847
  if (result.issues.length) {
821
848
  final.issues.push(...util.prefixIssues(index, result.issues));
@@ -861,6 +888,7 @@ export const $ZodArray = /*@__PURE__*/ core.$constructor("$ZodArray", (inst, def
861
888
  }
862
889
  return payload; //handleArrayResultsAsync(parseResults, final);
863
890
  };
891
+ capSize(inst, arraySize);
864
892
  });
865
893
  function handlePropertyResult(result, final, key, input, optin, optout) {
866
894
  const isPresent = key in input;
@@ -1898,6 +1926,7 @@ export const $ZodMap = /*@__PURE__*/ core.$constructor("$ZodMap", (inst, def) =>
1898
1926
  return Promise.all(proms).then(() => payload);
1899
1927
  return payload;
1900
1928
  };
1929
+ capSize(inst, mapSize);
1901
1930
  });
1902
1931
  function handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {
1903
1932
  if (keyResult.issues.length) {
@@ -1967,6 +1996,7 @@ export const $ZodSet = /*@__PURE__*/ core.$constructor("$ZodSet", (inst, def) =>
1967
1996
  return Promise.all(proms).then(() => payload);
1968
1997
  return payload;
1969
1998
  };
1999
+ capSize(inst, setSize);
1970
2000
  });
1971
2001
  function handleSetResult(result, final) {
1972
2002
  if (result.issues.length) {
@@ -46,6 +46,7 @@ exports.aborted = aborted;
46
46
  exports.explicitlyAborted = explicitlyAborted;
47
47
  exports.prefixIssues = prefixIssues;
48
48
  exports.unwrapMessage = unwrapMessage;
49
+ exports.sizeCaps = sizeCaps;
49
50
  exports.attachSchema = attachSchema;
50
51
  exports.finalizeIssue = finalizeIssue;
51
52
  exports.getSizableOrigin = getSizableOrigin;
@@ -620,6 +621,20 @@ function unwrapMessage(message) {
620
621
  return typeof message === "string" ? message : message?.message;
621
622
  }
622
623
  /* A check holds no link back to the schema it is attached to — the same check instance is shared by every clone of that schema — so the owner is stamped onto the issues a check just raised, at the only point where both are in scope. Runs on the failure path only; `start` is the issue count from before the check ran. */
624
+ /** The leading size checks of `defChecks` that set an upper bound, each paired with it. */
625
+ function sizeCaps(defChecks) {
626
+ const caps = [];
627
+ for (const ch of defChecks ?? []) {
628
+ const d = ch._zod.def;
629
+ // a later check may rewrite the value
630
+ if (!/_(length|size)$|_equals$/.test(d.check))
631
+ break;
632
+ const max = d.maximum ?? d.length ?? d.size;
633
+ if (max >= 0)
634
+ caps.push([max, ch]);
635
+ }
636
+ return caps;
637
+ }
623
638
  function attachSchema(issues, start, inst) {
624
639
  var _a;
625
640
  for (let i = start; i < issues.length; i++) {
@@ -221,6 +221,8 @@ export declare function prefixIssues(path: PropertyKey, issues: errors.$ZodRawIs
221
221
  export declare function unwrapMessage(message: string | {
222
222
  message: string;
223
223
  } | undefined | null): string | undefined;
224
+ /** The leading size checks of `defChecks` that set an upper bound, each paired with it. */
225
+ export declare function sizeCaps(defChecks: checks.$ZodCheck<never>[] | undefined): [number, checks.$ZodCheck<never>][];
224
226
  export declare function attachSchema(issues: errors.$ZodRawIssue[], start: number, inst: schemas.$ZodType): void;
225
227
  export declare function finalizeIssue(iss: errors.$ZodRawIssue, ctx: schemas.ParseContextInternal | undefined, config: $ZodConfig): errors.$ZodIssue;
226
228
  export declare function getSizableOrigin(input: any): "set" | "map" | "file" | "unknown";
@@ -221,6 +221,8 @@ export declare function prefixIssues(path: PropertyKey, issues: errors.$ZodRawIs
221
221
  export declare function unwrapMessage(message: string | {
222
222
  message: string;
223
223
  } | undefined | null): string | undefined;
224
+ /** The leading size checks of `defChecks` that set an upper bound, each paired with it. */
225
+ export declare function sizeCaps(defChecks: checks.$ZodCheck<never>[] | undefined): [number, checks.$ZodCheck<never>][];
224
226
  export declare function attachSchema(issues: errors.$ZodRawIssue[], start: number, inst: schemas.$ZodType): void;
225
227
  export declare function finalizeIssue(iss: errors.$ZodRawIssue, ctx: schemas.ParseContextInternal | undefined, config: $ZodConfig): errors.$ZodIssue;
226
228
  export declare function getSizableOrigin(input: any): "set" | "map" | "file" | "unknown";
@@ -550,6 +550,20 @@ export function unwrapMessage(message) {
550
550
  return typeof message === "string" ? message : message?.message;
551
551
  }
552
552
  /* A check holds no link back to the schema it is attached to — the same check instance is shared by every clone of that schema — so the owner is stamped onto the issues a check just raised, at the only point where both are in scope. Runs on the failure path only; `start` is the issue count from before the check ran. */
553
+ /** The leading size checks of `defChecks` that set an upper bound, each paired with it. */
554
+ export function sizeCaps(defChecks) {
555
+ const caps = [];
556
+ for (const ch of defChecks ?? []) {
557
+ const d = ch._zod.def;
558
+ // a later check may rewrite the value
559
+ if (!/_(length|size)$|_equals$/.test(d.check))
560
+ break;
561
+ const max = d.maximum ?? d.length ?? d.size;
562
+ if (max >= 0)
563
+ caps.push([max, ch]);
564
+ }
565
+ return caps;
566
+ }
553
567
  export function attachSchema(issues, start, inst) {
554
568
  var _a;
555
569
  for (let i = start; i < issues.length; i++) {
@@ -4,7 +4,7 @@ exports.version = void 0;
4
4
  exports.version = {
5
5
  major: 4,
6
6
  minor: 6,
7
- patch: 5,
7
+ patch: 7,
8
8
  };
9
9
 
10
10
  // seal-cjs-exports
@@ -1,5 +1,5 @@
1
1
  export const version = {
2
2
  major: 4,
3
3
  minor: 6,
4
- patch: 5,
4
+ patch: 7,
5
5
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/slack",
3
- "version": "2026.9.33",
3
+ "version": "2026.9.34",
4
4
  "description": "OpenClaw Slack channel plugin for channels, DMs, commands, and app events.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,10 +14,10 @@
14
14
  "get-east-asian-width": "1.7.0",
15
15
  "typebox": "1.3.34",
16
16
  "undici": "8.10.2",
17
- "zod": "4.6.5"
17
+ "zod": "4.6.7"
18
18
  },
19
19
  "peerDependencies": {
20
- "openclaw": ">=2026.9.33"
20
+ "openclaw": ">=2026.9.34"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "openclaw": {
@@ -150,10 +150,10 @@
150
150
  "allowInvalidConfigRecovery": true
151
151
  },
152
152
  "compat": {
153
- "pluginApi": ">=2026.9.33"
153
+ "pluginApi": ">=2026.9.34"
154
154
  },
155
155
  "build": {
156
- "openclawVersion": "2026.9.33",
156
+ "openclawVersion": "2026.9.34",
157
157
  "bundledDist": false
158
158
  },
159
159
  "release": {
@@ -1,2 +0,0 @@
1
- import { t as handleSlackAction } from "./action-runtime-DfWvuiZd.mjs";
2
- export { handleSlackAction };
@@ -1,3 +0,0 @@
1
- import { r as setSlackRuntime } from "./runtime-JSVZSWAj.mjs";
2
- import "../runtime-setter-api.js";
3
- export { setSlackRuntime };
@@ -1,3 +0,0 @@
1
- import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries, t as channelSecrets } from "./secret-contract-BaZcu6P_.mjs";
2
- import "../secret-contract-api.js";
3
- export { channelSecrets, collectRuntimeConfigAssignments, secretTargetRegistryEntries };
@@ -1,3 +0,0 @@
1
- import { t as slackSetupPlugin } from "./channel.setup-Dh2jzAjN.mjs";
2
- import "../setup-plugin-api.js";
3
- export { slackSetupPlugin };