@tightknitai/slack-block-kit-validator 0.1.8 → 0.1.9

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/README.md CHANGED
@@ -141,7 +141,7 @@ Each returns an array of human-readable error strings — empty when valid.
141
141
 
142
142
  ## Coverage
143
143
 
144
- - **19 blocks**: actions, alert, card, carousel, context, context_actions, data_visualization, divider, file, header, image, input, markdown, plan, rich_text, section, table, task_card, video.
144
+ - **20 blocks**: actions, alert, card, carousel, container, context, context_actions, data_visualization, divider, file, header, image, input, markdown, plan, rich_text, section, table, task_card, video.
145
145
  - **All block elements**: button, icon_button, workflow_button, feedback_buttons, plain_text / email / url / number inputs, datepicker, datetimepicker, timepicker, file_input, rich_text_input, checkboxes, radio_buttons, image, overflow, url source, and all 5 single + 5 multi-select menu variants.
146
146
  - **All 9 composition objects**: text (plain_text + mrkdwn), confirm, option (3 contextual variants), option_group, slack_file, dispatch_action_config, conversation_filter, trigger, workflow.
147
147
  - **Rich text**: 4 container kinds (section, list, preformatted, quote) + 10 leaf kinds (text, link, user, usergroup, team, channel, emoji, broadcast, color, date) with style flags.
@@ -1 +1 @@
1
- {"version":3,"file":"check-surface-compatibility.d.ts","sourceRoot":"","sources":["../../src/helpers/check-surface-compatibility.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AA+DnD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAAE,EACjE,OAAO,EAAE,OAAO,GACf,MAAM,EAAE,CAsBV"}
1
+ {"version":3,"file":"check-surface-compatibility.d.ts","sourceRoot":"","sources":["../../src/helpers/check-surface-compatibility.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAiEnD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAAE,EACjE,OAAO,EAAE,OAAO,GACf,MAAM,EAAE,CAsBV"}
@@ -18,6 +18,7 @@ const BLOCKS_NOT_ALLOWED_IN_MESSAGE = new Set(["alert", "file"]);
18
18
  const BLOCKS_NOT_ALLOWED_IN_MODAL = new Set([
19
19
  "card",
20
20
  "carousel",
21
+ "container",
21
22
  "context_actions",
22
23
  "data_visualization",
23
24
  "file",
@@ -28,6 +29,7 @@ const BLOCKS_NOT_ALLOWED_IN_MODAL = new Set([
28
29
  ]);
29
30
  const BLOCKS_NOT_ALLOWED_IN_HOME = new Set([
30
31
  "alert",
32
+ "container",
31
33
  "context_actions",
32
34
  "data_visualization",
33
35
  "file",
@@ -1 +1 @@
1
- {"version":3,"file":"check-surface-compatibility.js","sourceRoot":"","sources":["../../src/helpers/check-surface-compatibility.ts"],"names":[],"mappings":"AAMA,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,qCAAqC;AACrC,yEAAyE;AACzE,4DAA4D;AAC5D,iEAAiE;AACjE,2DAA2D;AAC3D,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjE,yEAAyE;AACzE,6EAA6E;AAC7E,6DAA6D;AAC7D,2EAA2E;AAC3E,yCAAyC;AACzC,gFAAgF;AAChF,0CAA0C;AAC1C,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC1C,MAAM;IACN,UAAU;IACV,iBAAiB;IACjB,oBAAoB;IACpB,MAAM;IACN,UAAU;IACV,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACzC,OAAO;IACP,iBAAiB;IACjB,oBAAoB;IACpB,MAAM;IACN,UAAU;IACV,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAiC;IACzD,OAAO,EAAE,6BAA6B;IACtC,KAAK,EAAE,2BAA2B;IAClC,IAAI,EAAE,0BAA0B;CACjC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAA4B;IACrD,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;CACV,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAiE,EACjE,OAAgB;IAEhB,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,YAAY,OAAO,oBAAoB,SAAS,gBAAgB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI,KAAK,EAAE,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,KAAK,CAAC,IAAI,gCAAgC,OAAO,GAAG,CAAC,CAAC;YACxF,mEAAmE;YACnE,uCAAuC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,KAAK,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,YAAY,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC3F,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,uEAAuE,OAAO,IAAI,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"check-surface-compatibility.js","sourceRoot":"","sources":["../../src/helpers/check-surface-compatibility.ts"],"names":[],"mappings":"AAMA,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,qCAAqC;AACrC,yEAAyE;AACzE,4DAA4D;AAC5D,iEAAiE;AACjE,2DAA2D;AAC3D,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjE,yEAAyE;AACzE,6EAA6E;AAC7E,6DAA6D;AAC7D,2EAA2E;AAC3E,yCAAyC;AACzC,gFAAgF;AAChF,0CAA0C;AAC1C,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC1C,MAAM;IACN,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,oBAAoB;IACpB,MAAM;IACN,UAAU;IACV,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACzC,OAAO;IACP,WAAW;IACX,iBAAiB;IACjB,oBAAoB;IACpB,MAAM;IACN,UAAU;IACV,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAiC;IACzD,OAAO,EAAE,6BAA6B;IACtC,KAAK,EAAE,2BAA2B;IAClC,IAAI,EAAE,0BAA0B;CACjC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAA4B;IACrD,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;CACV,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAiE,EACjE,OAAgB;IAEhB,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,YAAY,OAAO,oBAAoB,SAAS,gBAAgB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI,KAAK,EAAE,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,KAAK,CAAC,IAAI,gCAAgC,OAAO,GAAG,CAAC,CAAC;YACxF,mEAAmE;YACnE,uCAAuC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,KAAK,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,YAAY,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC3F,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,uEAAuE,OAAO,IAAI,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1178,6 +1178,58 @@
1178
1178
  }
1179
1179
  },
1180
1180
 
1181
+ "container_child_block": {
1182
+ "description": "A block allowed inside a container block's child_blocks array. Slack documents this set as: actions, context, divider, file, header, image, input, rich_text, section, table, video (https://docs.slack.dev/reference/block-kit/blocks/container-block). Notably excludes container itself (no nesting) and message-only chrome like card/carousel/markdown.",
1183
+ "oneOf": [
1184
+ { "$ref": "#/$defs/actions_block" },
1185
+ { "$ref": "#/$defs/context_block" },
1186
+ { "$ref": "#/$defs/divider_block" },
1187
+ { "$ref": "#/$defs/file_block" },
1188
+ { "$ref": "#/$defs/header_block" },
1189
+ { "$ref": "#/$defs/image_block" },
1190
+ { "$ref": "#/$defs/input_block" },
1191
+ { "$ref": "#/$defs/rich_text_block" },
1192
+ { "$ref": "#/$defs/section_block" },
1193
+ { "$ref": "#/$defs/table_block" },
1194
+ { "$ref": "#/$defs/video_block" }
1195
+ ]
1196
+ },
1197
+
1198
+ "container_block": {
1199
+ "description": "A general-purpose wrapper that groups child blocks into a single, optionally collapsible unit with a configurable width. Messages only (https://docs.slack.dev/reference/block-kit/blocks/container-block). default_collapsed only takes effect when is_collapsible is true; the schema rejects default_collapsed: true without is_collapsible: true.",
1200
+ "type": "object",
1201
+ "additionalProperties": false,
1202
+ "required": ["type", "title", "child_blocks"],
1203
+ "properties": {
1204
+ "type": { "const": "container" },
1205
+ "block_id": { "$ref": "#/$defs/block_id" },
1206
+ "title": {
1207
+ "allOf": [{ "$ref": "#/$defs/plain_text_object" }, { "properties": { "text": { "maxLength": 150 } } }]
1208
+ },
1209
+ "subtitle": {
1210
+ "allOf": [{ "$ref": "#/$defs/plain_text_object" }, { "properties": { "text": { "maxLength": 150 } } }]
1211
+ },
1212
+ "icon": { "$ref": "#/$defs/image_element" },
1213
+ "width": { "enum": ["narrow", "standard", "wide", "full"] },
1214
+ "is_collapsible": { "type": "boolean" },
1215
+ "default_collapsed": { "type": "boolean" },
1216
+ "child_blocks": {
1217
+ "type": "array",
1218
+ "minItems": 1,
1219
+ "maxItems": 10,
1220
+ "items": { "$ref": "#/$defs/container_child_block" }
1221
+ }
1222
+ },
1223
+ "if": {
1224
+ "properties": { "default_collapsed": { "const": true } },
1225
+ "required": ["default_collapsed"]
1226
+ },
1227
+ "then": {
1228
+ "properties": { "is_collapsible": { "const": true } },
1229
+ "required": ["is_collapsible"]
1230
+ }
1231
+ },
1232
+
1181
1233
  "context_actions_block": {
1182
1234
  "type": "object",
1183
1235
  "additionalProperties": false,
@@ -1623,6 +1675,7 @@
1623
1675
  { "$ref": "#/$defs/alert_block" },
1624
1676
  { "$ref": "#/$defs/card_block" },
1625
1677
  { "$ref": "#/$defs/carousel_block" },
1678
+ { "$ref": "#/$defs/container_block" },
1626
1679
  { "$ref": "#/$defs/context_actions_block" },
1627
1680
  { "$ref": "#/$defs/context_block" },
1628
1681
  { "$ref": "#/$defs/data_visualization_block" },