@tightknitai/slack-block-kit-validator 0.1.17 → 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/precompiled-validators.d.ts +22 -0
- package/dist/precompiled-validators.js +26338 -0
- package/dist/standalone-validator.d.ts +2 -20
- package/dist/standalone-validator.d.ts.map +1 -0
- package/dist/standalone-validator.js +5 -20988
- package/dist/standalone-validator.js.map +1 -0
- 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 +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standalone-validator.js","sourceRoot":"","sources":["../src/standalone-validator.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,sEAAsE;AACtE,6CAA6C;AAE7C,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,aAAa,GACd,MAAM,6BAA6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-block-kit.d.ts","sourceRoot":"","sources":["../src/validate-block-kit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate-block-kit.d.ts","sourceRoot":"","sources":["../src/validate-block-kit.ts"],"names":[],"mappings":"AAUA,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,0CAA0C,CAAC;AAKnG;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA+GD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CA2CxG"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import Ajv2020 from "ajv/dist/2020.js";
|
|
2
|
-
import addFormats from "ajv-formats";
|
|
3
1
|
import { formatAjvErrors } from "./format-ajv-errors.js";
|
|
4
2
|
import { checkCardActionsMax } from "./helpers/check-card-actions-max.js";
|
|
5
3
|
import { checkCumulativeMarkdownLength } from "./helpers/check-cumulative-markdown-length.js";
|
|
@@ -13,48 +11,16 @@ import { checkSingleTableBlock } from "./helpers/check-single-table-block.js";
|
|
|
13
11
|
import { checkSurfaceCompatibility } from "./helpers/check-surface-compatibility.js";
|
|
14
12
|
import { findDuplicateActionIds } from "./helpers/find-duplicate-action-ids.js";
|
|
15
13
|
import { findDuplicateBlockIds } from "./helpers/find-duplicate-block-ids.js";
|
|
16
|
-
import
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const compile = (ref) => ajv.compile({ $ref: `slack-block-kit#/$defs/${ref}` });
|
|
14
|
+
import { blockValidators, validateBlocks, validateHome, validateModal } from "./precompiled-validators.js";
|
|
15
|
+
// Precompiled at build time (scripts/build-standalone.ts) rather than compiled
|
|
16
|
+
// with Ajv on import: Ajv compiles via `new Function()`, which a
|
|
17
|
+
// Content-Security-Policy without 'unsafe-eval' blocks.
|
|
21
18
|
const validators = {
|
|
22
|
-
blocks:
|
|
23
|
-
modal:
|
|
24
|
-
home:
|
|
19
|
+
blocks: validateBlocks,
|
|
20
|
+
modal: validateModal,
|
|
21
|
+
home: validateHome,
|
|
25
22
|
};
|
|
26
|
-
|
|
27
|
-
* Per-block-type validators used when a payload fails the top-level oneOf so
|
|
28
|
-
* we can re-validate a single block against just its declared `type`'s schema
|
|
29
|
-
* branch. This is how `formatAjvErrors` collapses ~80 lines of "doesn't match
|
|
30
|
-
* any of the 18 block kinds" cascade down to the actual reason a section
|
|
31
|
-
* block was malformed. Built from the same `$defs` as the union itself; kept
|
|
32
|
-
* in sync as new block kinds are added there.
|
|
33
|
-
*/
|
|
34
|
-
const BLOCK_TYPE_TO_DEF = {
|
|
35
|
-
actions: "actions_block",
|
|
36
|
-
alert: "alert_block",
|
|
37
|
-
card: "card_block",
|
|
38
|
-
carousel: "carousel_block",
|
|
39
|
-
container: "container_block",
|
|
40
|
-
context: "context_block",
|
|
41
|
-
context_actions: "context_actions_block",
|
|
42
|
-
data_table: "data_table_block",
|
|
43
|
-
data_visualization: "data_visualization_block",
|
|
44
|
-
divider: "divider_block",
|
|
45
|
-
file: "file_block",
|
|
46
|
-
header: "header_block",
|
|
47
|
-
image: "image_block",
|
|
48
|
-
input: "input_block",
|
|
49
|
-
markdown: "markdown_block",
|
|
50
|
-
plan: "plan_block",
|
|
51
|
-
rich_text: "rich_text_block",
|
|
52
|
-
section: "section_block",
|
|
53
|
-
table: "table_block",
|
|
54
|
-
task_card: "task_card_block",
|
|
55
|
-
video: "video_block",
|
|
56
|
-
};
|
|
57
|
-
const focusValidators = new Map(Object.entries(BLOCK_TYPE_TO_DEF).map(([type, def]) => [type, compile(def)]));
|
|
23
|
+
const focusValidators = new Map(Object.entries(blockValidators));
|
|
58
24
|
const resolveSurface = (target, surface) => {
|
|
59
25
|
if (target === "modal") {
|
|
60
26
|
return "modal";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-block-kit.js","sourceRoot":"","sources":["../src/validate-block-kit.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"validate-block-kit.js","sourceRoot":"","sources":["../src/validate-block-kit.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tightknitai/slack-block-kit-validator",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"description": "JSON Schema (draft 2020-12) and validation helpers for Slack Block Kit payloads.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"scripts": {
|
|
36
36
|
"generate:types": "tsx scripts/generate-types.ts",
|
|
37
37
|
"compile:standalone": "tsx scripts/build-standalone.ts",
|
|
38
|
-
"build": "pnpm run generate:types && tsc && cp src/slack-block-kit.schema.json
|
|
38
|
+
"build": "pnpm run generate:types && pnpm run compile:standalone && tsc && cp src/slack-block-kit.schema.json src/precompiled-validators.js src/precompiled-validators.d.ts dist/",
|
|
39
39
|
"postbuild": "[ \"$SKIP_DEMO_BUILD\" = \"1\" ] || pnpm run build:demo",
|
|
40
40
|
"build:clean": "rm -rf dist && pnpm run build",
|
|
41
41
|
"build:demo": "cd demo && pnpm install --frozen-lockfile --ignore-workspace && pnpm run build",
|