@tightknitai/slack-block-kit-validator 0.1.16 → 0.1.18
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 +6 -6
- package/dist/format-ajv-errors.d.ts +10 -3
- package/dist/format-ajv-errors.d.ts.map +1 -1
- package/dist/format-ajv-errors.js.map +1 -1
- package/dist/helpers/check-surface-compatibility.d.ts.map +1 -1
- package/dist/helpers/check-surface-compatibility.js +5 -7
- package/dist/helpers/check-surface-compatibility.js.map +1 -1
- package/dist/precompiled-validators.d.ts +22 -0
- package/dist/precompiled-validators.js +26338 -0
- package/dist/slack-block-kit.schema.json +7 -4
- package/dist/standalone-validator.d.ts +2 -20
- package/dist/standalone-validator.d.ts.map +1 -0
- package/dist/standalone-validator.js +5 -21014
- package/dist/standalone-validator.js.map +1 -0
- package/dist/types.generated.d.ts +192 -185
- package/dist/types.generated.d.ts.map +1 -1
- package/dist/validate-block-kit.d.ts.map +1 -1
- package/dist/validate-block-kit.js +8 -42
- package/dist/validate-block-kit.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -168,23 +168,23 @@ Server-side rules that need app-config context or deep equality checks the schem
|
|
|
168
168
|
|
|
169
169
|
## Note on `undefined` properties
|
|
170
170
|
|
|
171
|
-
`validateBlockKit` strips properties whose value is `undefined` before
|
|
171
|
+
`validateBlockKit` strips properties whose value is `undefined` before validating. `JSON.stringify` drops these before the payload reaches Slack, so common builder patterns like `value: foo ?? undefined` are no-ops on the wire but would otherwise trip the schema's `additionalProperties: false`. Explicit `null` values are preserved — they survive `JSON.stringify` and may legitimately fail the schema.
|
|
172
172
|
|
|
173
173
|
## Entry points
|
|
174
174
|
|
|
175
175
|
The package ships several entry points so you only pay for what you use:
|
|
176
176
|
|
|
177
|
-
| Entry |
|
|
177
|
+
| Entry | Ajv at runtime? | Use when |
|
|
178
178
|
|---|---|---|
|
|
179
|
-
| `@tightknitai/slack-block-kit-validator` |
|
|
179
|
+
| `@tightknitai/slack-block-kit-validator` | no — precompiled | The full wrapper. `validateBlockKit`, helpers, schema, types. |
|
|
180
180
|
| `@tightknitai/slack-block-kit-validator/helpers` | no | Just the pure helpers — compose with Zod, TypeBox, your own validator. |
|
|
181
181
|
| `@tightknitai/slack-block-kit-validator/schema` | no | Just `slackBlockKitSchema` as a JS module. |
|
|
182
182
|
| `@tightknitai/slack-block-kit-validator/schema.json` | no | The raw JSON Schema file (for non-JS consumers). |
|
|
183
|
-
| `@tightknitai/slack-block-kit-validator/standalone` | no — precompiled |
|
|
183
|
+
| `@tightknitai/slack-block-kit-validator/standalone` | no — precompiled | Just the raw schema validators, without the caveat helpers or error formatting. Exports `validateBlocks`, `validateModal`, `validateHome`. |
|
|
184
184
|
| `@tightknitai/slack-block-kit-validator/types` | no — types only | TypeScript types generated from the schema. `Block`, `SectionBlock`, `ModalView`, etc. |
|
|
185
185
|
|
|
186
186
|
```ts
|
|
187
|
-
//
|
|
187
|
+
// Just the schema check, no caveat helpers
|
|
188
188
|
import { validateBlocks } from "@tightknitai/slack-block-kit-validator/standalone";
|
|
189
189
|
|
|
190
190
|
// Types straight from the schema (always in sync with what the validator accepts)
|
|
@@ -193,7 +193,7 @@ import type { Block, SectionBlock } from "@tightknitai/slack-block-kit-validator
|
|
|
193
193
|
|
|
194
194
|
## Runtime & bundle considerations
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
No entry compiles code at runtime: the schema validators are precompiled with Ajv at build time, so nothing calls `eval` or `new Function`. That makes the package safe under a Content-Security-Policy without `'unsafe-eval'` and in runtimes that disallow code generation from strings. The precompiled validators are larger than the schema JSON they replace, so import `/helpers`, `/schema` or `/types` when you don't need validation.
|
|
197
197
|
|
|
198
198
|
For most apps the recommended pattern is **validate in tests only** — use `validateBlockKit` in unit tests next to your block builders, and let CI catch regressions before they hit production.
|
|
199
199
|
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
import type { ErrorObject
|
|
1
|
+
import type { ErrorObject } from "ajv/dist/2020.js";
|
|
2
|
+
/**
|
|
3
|
+
* A compiled validator for one schema branch: an Ajv `ValidateFunction` or a
|
|
4
|
+
* precompiled standalone one. `errors` is set after a failed call.
|
|
5
|
+
*/
|
|
6
|
+
export type BlockValidator = ((data: unknown) => boolean) & {
|
|
7
|
+
errors?: readonly ErrorObject[] | null;
|
|
8
|
+
};
|
|
2
9
|
/**
|
|
3
10
|
* Look-aside validators keyed by `block.type`. Populated by the caller
|
|
4
|
-
* (validate-block-kit.ts) with one
|
|
11
|
+
* (validate-block-kit.ts) with one precompiled validator per block def, so we
|
|
5
12
|
* can re-validate a misbehaving block against just its discriminator-matched
|
|
6
13
|
* branch and report focused errors instead of the full oneOf cascade.
|
|
7
14
|
*/
|
|
8
|
-
export type FocusValidators = ReadonlyMap<string,
|
|
15
|
+
export type FocusValidators = ReadonlyMap<string, BlockValidator>;
|
|
9
16
|
/**
|
|
10
17
|
* Format AJV errors with normalized paths and friendly per-keyword messages.
|
|
11
18
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-ajv-errors.d.ts","sourceRoot":"","sources":["../src/format-ajv-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"format-ajv-errors.d.ts","sourceRoot":"","sources":["../src/format-ajv-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAgHpD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI,CAAA;CAAE,CAAC;AAEvG;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAuDlE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,WAAW,EAAE,EAC9B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,EACnC,eAAe,EAAE,eAAe,GAC/B,MAAM,EAAE,CAwFV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-ajv-errors.js","sourceRoot":"","sources":["../src/format-ajv-errors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"format-ajv-errors.js","sourceRoot":"","sources":["../src/format-ajv-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;AAmEnD;;;;;;;;;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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// subset of ["Modals", "Messages", "Home tabs"]. Whatever's missing from
|
|
5
5
|
// that array is what we forbid here.
|
|
6
6
|
//
|
|
7
|
-
//
|
|
7
|
+
// Three entries below intentionally deviate from blocks.json — Slack's canonical
|
|
8
8
|
// data lists a surface where the block doesn't actually render. Each is
|
|
9
9
|
// empirically grounded:
|
|
10
10
|
// • card / modals — blocks.json lists Modals; fails to render there.
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
// "You can't add this block to app surfaces directly...").
|
|
14
14
|
// • table / home tabs — blocks.json lists Home tabs; Tightknit testing shows
|
|
15
15
|
// the table block renders on messages only (modals and home drop it).
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
16
|
+
//
|
|
17
|
+
// data_table does NOT inherit table's home-tab deviation: blocks.json and its
|
|
18
|
+
// reference page (https://docs.slack.dev/reference/block-kit/blocks/data-table-block)
|
|
19
|
+
// both list Messages and Home tabs, so it follows the canonical data.
|
|
19
20
|
const BLOCKS_NOT_ALLOWED_IN_MESSAGE = new Set(["alert", "file"]);
|
|
20
21
|
const BLOCKS_NOT_ALLOWED_IN_MODAL = new Set([
|
|
21
22
|
"card",
|
|
@@ -32,10 +33,7 @@ const BLOCKS_NOT_ALLOWED_IN_MODAL = new Set([
|
|
|
32
33
|
]);
|
|
33
34
|
const BLOCKS_NOT_ALLOWED_IN_HOME = new Set([
|
|
34
35
|
"alert",
|
|
35
|
-
"container",
|
|
36
36
|
"context_actions",
|
|
37
|
-
"data_table",
|
|
38
|
-
"data_visualization",
|
|
39
37
|
"file",
|
|
40
38
|
"markdown",
|
|
41
39
|
"plan",
|
|
@@ -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,EAAE;AACF,
|
|
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,EAAE;AACF,iFAAiF;AACjF,wEAAwE;AACxE,wBAAwB;AACxB,yEAAyE;AACzE,yEAAyE;AACzE,qEAAqE;AACrE,+DAA+D;AAC/D,+EAA+E;AAC/E,0EAA0E;AAC1E,EAAE;AACF,8EAA8E;AAC9E,sFAAsF;AACtF,sEAAsE;AACtE,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjE,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC1C,MAAM;IACN,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,YAAY;IACZ,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,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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// AUTO-GENERATED — DO NOT EDIT BY HAND.
|
|
2
|
+
|
|
3
|
+
export type StandaloneValidateFunction = ((data: unknown) => boolean) & {
|
|
4
|
+
errors?:
|
|
5
|
+
| {
|
|
6
|
+
instancePath: string;
|
|
7
|
+
schemaPath: string;
|
|
8
|
+
keyword: string;
|
|
9
|
+
params: Record<string, unknown>;
|
|
10
|
+
message?: string;
|
|
11
|
+
}[]
|
|
12
|
+
| null;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/** Validates a bare blocks array. */
|
|
16
|
+
export const validateBlocks: StandaloneValidateFunction;
|
|
17
|
+
/** Validates a modal view envelope. */
|
|
18
|
+
export const validateModal: StandaloneValidateFunction;
|
|
19
|
+
/** Validates a home view envelope. */
|
|
20
|
+
export const validateHome: StandaloneValidateFunction;
|
|
21
|
+
/** Per-block-type validators, keyed by `block.type`. */
|
|
22
|
+
export const blockValidators: Readonly<Record<"actions" | "alert" | "card" | "carousel" | "container" | "context" | "context_actions" | "data_table" | "data_visualization" | "divider" | "file" | "header" | "image" | "input" | "markdown" | "plan" | "rich_text" | "section" | "table" | "task_card" | "video", StandaloneValidateFunction>>;
|