@gorgo/medusa-integration 0.1.3 → 0.1.5
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/.medusa/server/src/admin/index.js +218 -39
- package/.medusa/server/src/admin/index.mjs +219 -40
- package/.medusa/server/src/lib/__tests__/catalog-fallback.unit.spec.js +10 -5
- package/.medusa/server/src/lib/__tests__/catalog.unit.spec.js +64 -1
- package/.medusa/server/src/lib/catalog.generated.js +37 -21
- package/.medusa/server/src/lib/catalog.js +46 -2
- package/.medusa/server/src/lib/markdown/__tests__/inline.unit.spec.d.ts +1 -0
- package/.medusa/server/src/lib/markdown/__tests__/inline.unit.spec.js +90 -0
- package/.medusa/server/src/lib/markdown/__tests__/no-raw-html.unit.spec.d.ts +1 -0
- package/.medusa/server/src/lib/markdown/__tests__/no-raw-html.unit.spec.js +20 -0
- package/.medusa/server/src/lib/markdown/__tests__/parse.unit.spec.d.ts +1 -0
- package/.medusa/server/src/lib/markdown/__tests__/parse.unit.spec.js +91 -0
- package/.medusa/server/src/lib/markdown/href.d.ts +9 -0
- package/.medusa/server/src/lib/markdown/href.js +20 -0
- package/.medusa/server/src/lib/markdown/inline.d.ts +2 -0
- package/.medusa/server/src/lib/markdown/inline.js +51 -0
- package/.medusa/server/src/lib/markdown/parse.d.ts +12 -0
- package/.medusa/server/src/lib/markdown/parse.js +97 -0
- package/.medusa/server/src/lib/markdown/types.d.ts +39 -0
- package/.medusa/server/src/lib/markdown/types.js +3 -0
- package/.medusa/server/src/modules/integration/descriptor/__tests__/build-zod.unit.spec.js +30 -1
- package/.medusa/server/src/modules/integration/descriptor/__tests__/define.unit.spec.js +34 -1
- package/.medusa/server/src/modules/integration/descriptor/build-zod.js +11 -3
- package/.medusa/server/src/modules/integration/descriptor/define.js +13 -1
- package/.medusa/server/src/modules/integration/descriptor/option.d.ts +2 -2
- package/.medusa/server/src/types/http/integration/admin/entities.d.ts +11 -3
- package/.medusa/server/src/types/integration/common.d.ts +1 -1
- package/README.md +5 -5
- package/package.json +3 -2
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const parse_1 = require("../parse");
|
|
4
|
+
describe("fenceLabel", () => {
|
|
5
|
+
it("keeps a filename", () => expect((0, parse_1.fenceLabel)("medusa-config.ts")).toBe("medusa-config.ts"));
|
|
6
|
+
it("takes only the first token", () => expect((0, parse_1.fenceLabel)('ts title="x" onload=y')).toBe("ts"));
|
|
7
|
+
it("strips disallowed characters", () => expect((0, parse_1.fenceLabel)('<img>')).toBe("img"));
|
|
8
|
+
it("returns null for empty info", () => expect((0, parse_1.fenceLabel)(" ")).toBeNull());
|
|
9
|
+
it("caps at 40 chars", () => expect((0, parse_1.fenceLabel)("a".repeat(60))).toHaveLength(40));
|
|
10
|
+
});
|
|
11
|
+
describe("parseMarkdown", () => {
|
|
12
|
+
it("returns an empty list for empty input", () => {
|
|
13
|
+
expect((0, parse_1.parseMarkdown)("")).toEqual([]);
|
|
14
|
+
});
|
|
15
|
+
it("shifts heading levels below the drawer title", () => {
|
|
16
|
+
expect((0, parse_1.parseMarkdown)("# a\n\n## b\n\n### c")).toEqual([
|
|
17
|
+
{ type: "heading", level: 2, children: [{ type: "text", value: "a" }] },
|
|
18
|
+
{ type: "heading", level: 3, children: [{ type: "text", value: "b" }] },
|
|
19
|
+
{ type: "heading", level: 4, children: [{ type: "text", value: "c" }] },
|
|
20
|
+
]);
|
|
21
|
+
});
|
|
22
|
+
it("treats #### as a paragraph", () => {
|
|
23
|
+
expect((0, parse_1.parseMarkdown)("#### deep")).toEqual([
|
|
24
|
+
{ type: "paragraph", children: [{ type: "text", value: "#### deep" }] },
|
|
25
|
+
]);
|
|
26
|
+
});
|
|
27
|
+
it("joins consecutive lines into one paragraph", () => {
|
|
28
|
+
expect((0, parse_1.parseMarkdown)("one\ntwo\n\nthree")).toEqual([
|
|
29
|
+
{ type: "paragraph", children: [{ type: "text", value: "one two" }] },
|
|
30
|
+
{ type: "paragraph", children: [{ type: "text", value: "three" }] },
|
|
31
|
+
]);
|
|
32
|
+
});
|
|
33
|
+
it("parses an unordered list", () => {
|
|
34
|
+
expect((0, parse_1.parseMarkdown)("- a\n- b")).toEqual([
|
|
35
|
+
{
|
|
36
|
+
type: "list",
|
|
37
|
+
ordered: false,
|
|
38
|
+
items: [[{ type: "text", value: "a" }], [{ type: "text", value: "b" }]],
|
|
39
|
+
},
|
|
40
|
+
]);
|
|
41
|
+
});
|
|
42
|
+
it("parses an ordered list", () => {
|
|
43
|
+
expect((0, parse_1.parseMarkdown)("1. a\n2. b")).toEqual([
|
|
44
|
+
{
|
|
45
|
+
type: "list",
|
|
46
|
+
ordered: true,
|
|
47
|
+
items: [[{ type: "text", value: "a" }], [{ type: "text", value: "b" }]],
|
|
48
|
+
},
|
|
49
|
+
]);
|
|
50
|
+
});
|
|
51
|
+
it("parses a fenced code block with a label", () => {
|
|
52
|
+
expect((0, parse_1.parseMarkdown)("```medusa-config.ts\nconst a = 1\n```")).toEqual([
|
|
53
|
+
{ type: "codeBlock", label: "medusa-config.ts", value: "const a = 1" },
|
|
54
|
+
]);
|
|
55
|
+
});
|
|
56
|
+
it("does not parse markup inside a code block", () => {
|
|
57
|
+
const [block] = (0, parse_1.parseMarkdown)("```\n# not a heading\n- not a list\n```");
|
|
58
|
+
expect(block).toEqual({
|
|
59
|
+
type: "codeBlock",
|
|
60
|
+
label: null,
|
|
61
|
+
value: "# not a heading\n- not a list",
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
it("closes an unterminated fence at EOF", () => {
|
|
65
|
+
expect((0, parse_1.parseMarkdown)("```\nabc")).toEqual([
|
|
66
|
+
{ type: "codeBlock", label: null, value: "abc" },
|
|
67
|
+
]);
|
|
68
|
+
});
|
|
69
|
+
it("parses a horizontal rule without eating list bullets", () => {
|
|
70
|
+
expect((0, parse_1.parseMarkdown)("---\n\n- a")).toEqual([
|
|
71
|
+
{ type: "hr" },
|
|
72
|
+
{ type: "list", ordered: false, items: [[{ type: "text", value: "a" }]] },
|
|
73
|
+
]);
|
|
74
|
+
});
|
|
75
|
+
it("normalises CRLF", () => {
|
|
76
|
+
expect((0, parse_1.parseMarkdown)("a\r\n\r\nb")).toHaveLength(2);
|
|
77
|
+
});
|
|
78
|
+
it("replaces all content with a truncation notice past the char cap", () => {
|
|
79
|
+
expect((0, parse_1.parseMarkdown)("x".repeat(parse_1.MD_MAX_CHARS + 1))).toEqual([{ type: "truncated" }]);
|
|
80
|
+
});
|
|
81
|
+
it("replaces all content with a truncation notice past the block cap", () => {
|
|
82
|
+
expect((0, parse_1.parseMarkdown)("- a\n\n".repeat(parse_1.MD_MAX_BLOCKS + 1))).toEqual([{ type: "truncated" }]);
|
|
83
|
+
});
|
|
84
|
+
it("counts list items individually against the block cap", () => {
|
|
85
|
+
// A single list run collapses into one block, but renders one node per item — so an
|
|
86
|
+
// all-items snippet must be capped by item count, not by its one-block shape.
|
|
87
|
+
const items = Array.from({ length: parse_1.MD_MAX_BLOCKS + 1 }, (_, i) => `- item ${i}`).join("\n");
|
|
88
|
+
expect((0, parse_1.parseMarkdown)(items)).toEqual([{ type: "truncated" }]);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UudW5pdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tYXJrZG93bi9fX3Rlc3RzX18vcGFyc2UudW5pdC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsb0NBQWlGO0FBRWpGLFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQzFCLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBQSxrQkFBVSxFQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFBO0lBQzdGLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBQSxrQkFBVSxFQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUM5RixFQUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUEsa0JBQVUsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ2pGLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBQSxrQkFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUM3RSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUEsa0JBQVUsRUFBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuRixDQUFDLENBQUMsQ0FBQTtBQUVGLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLEVBQUUsQ0FBQyx1Q0FB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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Only absolute https URLs are renderable as links.
|
|
3
|
+
*
|
|
4
|
+
* Uses the URL parser rather than a regex on purpose: it normalises away the
|
|
5
|
+
* tricks a regex misses — leading whitespace, embedded tabs/newlines inside the
|
|
6
|
+
* scheme (`java\nscript:`), and uppercase schemes — before the protocol is read.
|
|
7
|
+
* A protocol-relative `//host` has no scheme and throws, which is what we want.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isSafeHref(raw: string): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSafeHref = isSafeHref;
|
|
4
|
+
/**
|
|
5
|
+
* Only absolute https URLs are renderable as links.
|
|
6
|
+
*
|
|
7
|
+
* Uses the URL parser rather than a regex on purpose: it normalises away the
|
|
8
|
+
* tricks a regex misses — leading whitespace, embedded tabs/newlines inside the
|
|
9
|
+
* scheme (`java\nscript:`), and uppercase schemes — before the protocol is read.
|
|
10
|
+
* A protocol-relative `//host` has no scheme and throws, which is what we want.
|
|
11
|
+
*/
|
|
12
|
+
function isSafeHref(raw) {
|
|
13
|
+
try {
|
|
14
|
+
return new URL(raw).protocol === "https:";
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbWFya2Rvd24vaHJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLGdDQU1DO0FBZEQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQTtJQUMzQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0FBQ0gsQ0FBQyJ9
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseInline = parseInline;
|
|
4
|
+
const href_1 = require("./href");
|
|
5
|
+
/**
|
|
6
|
+
* Alternation order is the grammar's precedence: code wins over everything, so
|
|
7
|
+
* `` `**x**` `` stays literal; `**` is tried before `*` so bold isn't read as two
|
|
8
|
+
* italics. Declared without /g — a fresh copy is made per call so `lastIndex`
|
|
9
|
+
* is never shared between invocations.
|
|
10
|
+
*/
|
|
11
|
+
const INLINE_RE = /`([^`\n]+)`|\[([^\]\n]*)\]\(([^)\s]+)\)|\*\*([^*\n]+)\*\*|\*([^*\n]+)\*|_([^_\n]+)_/;
|
|
12
|
+
const MAX_DEPTH = 3;
|
|
13
|
+
function parseInline(src, depth = 0) {
|
|
14
|
+
if (!src)
|
|
15
|
+
return [];
|
|
16
|
+
if (depth >= MAX_DEPTH)
|
|
17
|
+
return [{ type: "text", value: src }];
|
|
18
|
+
const out = [];
|
|
19
|
+
const re = new RegExp(INLINE_RE, "g");
|
|
20
|
+
let last = 0;
|
|
21
|
+
let m;
|
|
22
|
+
while ((m = re.exec(src)) !== null) {
|
|
23
|
+
const [full, code, linkText, linkHref, strong, star, underscore] = m;
|
|
24
|
+
if (m.index > last)
|
|
25
|
+
out.push({ type: "text", value: src.slice(last, m.index) });
|
|
26
|
+
last = m.index + full.length;
|
|
27
|
+
if (code !== undefined) {
|
|
28
|
+
out.push({ type: "code", value: code });
|
|
29
|
+
}
|
|
30
|
+
else if (linkHref !== undefined) {
|
|
31
|
+
// `` is an image — not in the grammar, so keep it literal.
|
|
32
|
+
const isImage = m.index > 0 && src[m.index - 1] === "!";
|
|
33
|
+
if (!isImage && (0, href_1.isSafeHref)(linkHref)) {
|
|
34
|
+
out.push({ type: "link", href: linkHref, children: parseInline(linkText, depth + 1) });
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
out.push({ type: "text", value: full });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (strong !== undefined) {
|
|
41
|
+
out.push({ type: "strong", children: parseInline(strong, depth + 1) });
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
out.push({ type: "em", children: parseInline((star ?? underscore), depth + 1) });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (last < src.length)
|
|
48
|
+
out.push({ type: "text", value: src.slice(last) });
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tYXJrZG93bi9pbmxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFjQSxrQ0FpQ0M7QUE5Q0QsaUNBQW1DO0FBRW5DOzs7OztHQUtHO0FBQ0gsTUFBTSxTQUFTLEdBQ2IscUZBQXFGLENBQUE7QUFFdkYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFBO0FBRW5CLFNBQWdCLFdBQVcsQ0FBQyxHQUFXLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDaEQsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUNuQixJQUFJLEtBQUssSUFBSSxTQUFTO1FBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUU3RCxNQUFNLEdBQUcsR0FBZSxFQUFFLENBQUE7SUFDMUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3JDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUNaLElBQUksQ0FBeUIsQ0FBQTtJQUU3QixPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3BFLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJO1lBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDL0UsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUU1QixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUN6QyxDQUFDO2FBQU0sSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEMsa0VBQWtFO1lBQ2xFLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQTtZQUN2RCxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUEsaUJBQVUsRUFBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDeEYsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQ3pDLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN4RSxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNuRixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNO1FBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3pFLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQyJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MdBlock } from "./types";
|
|
2
|
+
/** Matches `maxLength` on catalog/schema.json's localizedMarkdown. Keep in sync. */
|
|
3
|
+
export declare const MD_MAX_CHARS = 8000;
|
|
4
|
+
/** A list block renders one node per item, so items count individually toward this cap. */
|
|
5
|
+
export declare const MD_MAX_BLOCKS = 200;
|
|
6
|
+
/**
|
|
7
|
+
* The fence info string becomes the block's caption. Only the first token is
|
|
8
|
+
* kept and it is filtered to a charset, so attribute-looking info strings
|
|
9
|
+
* (`ts title="x" onload=y`) collapse to `ts` instead of being parsed.
|
|
10
|
+
*/
|
|
11
|
+
export declare function fenceLabel(info: string): string | null;
|
|
12
|
+
export declare function parseMarkdown(src: string): MdBlock[];
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MD_MAX_BLOCKS = exports.MD_MAX_CHARS = void 0;
|
|
4
|
+
exports.fenceLabel = fenceLabel;
|
|
5
|
+
exports.parseMarkdown = parseMarkdown;
|
|
6
|
+
const inline_1 = require("./inline");
|
|
7
|
+
/** Matches `maxLength` on catalog/schema.json's localizedMarkdown. Keep in sync. */
|
|
8
|
+
exports.MD_MAX_CHARS = 8000;
|
|
9
|
+
/** A list block renders one node per item, so items count individually toward this cap. */
|
|
10
|
+
exports.MD_MAX_BLOCKS = 200;
|
|
11
|
+
const FENCE_RE = /^```(.*)$/;
|
|
12
|
+
const HEADING_RE = /^(#{1,3})\s+(.*)$/;
|
|
13
|
+
const HR_RE = /^-{3,}\s*$/;
|
|
14
|
+
const UL_RE = /^[-*]\s+(.*)$/;
|
|
15
|
+
const OL_RE = /^\d+\.\s+(.*)$/;
|
|
16
|
+
/**
|
|
17
|
+
* The fence info string becomes the block's caption. Only the first token is
|
|
18
|
+
* kept and it is filtered to a charset, so attribute-looking info strings
|
|
19
|
+
* (`ts title="x" onload=y`) collapse to `ts` instead of being parsed.
|
|
20
|
+
*/
|
|
21
|
+
function fenceLabel(info) {
|
|
22
|
+
const first = info.trim().split(/\s+/)[0] ?? "";
|
|
23
|
+
return first.replace(/[^a-zA-Z0-9._/-]/g, "").slice(0, 40) || null;
|
|
24
|
+
}
|
|
25
|
+
function parseMarkdown(src) {
|
|
26
|
+
if (typeof src !== "string" || !src)
|
|
27
|
+
return [];
|
|
28
|
+
if (src.length > exports.MD_MAX_CHARS)
|
|
29
|
+
return [{ type: "truncated" }];
|
|
30
|
+
const lines = src.replace(/\r\n?/g, "\n").split("\n");
|
|
31
|
+
const blocks = [];
|
|
32
|
+
let para = [];
|
|
33
|
+
const flushPara = () => {
|
|
34
|
+
if (!para.length)
|
|
35
|
+
return;
|
|
36
|
+
blocks.push({ type: "paragraph", children: (0, inline_1.parseInline)(para.join(" ")) });
|
|
37
|
+
para = [];
|
|
38
|
+
};
|
|
39
|
+
for (let i = 0; i < lines.length; i++) {
|
|
40
|
+
const line = lines[i];
|
|
41
|
+
const fence = FENCE_RE.exec(line);
|
|
42
|
+
if (fence) {
|
|
43
|
+
flushPara();
|
|
44
|
+
const body = [];
|
|
45
|
+
i++;
|
|
46
|
+
while (i < lines.length && !FENCE_RE.test(lines[i]))
|
|
47
|
+
body.push(lines[i++]);
|
|
48
|
+
blocks.push({ type: "codeBlock", label: fenceLabel(fence[1]), value: body.join("\n") });
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (!line.trim()) {
|
|
52
|
+
flushPara();
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
// Before UL: `---` is a rule, and UL_RE would not match it anyway.
|
|
56
|
+
if (HR_RE.test(line)) {
|
|
57
|
+
flushPara();
|
|
58
|
+
blocks.push({ type: "hr" });
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const heading = HEADING_RE.exec(line);
|
|
62
|
+
if (heading) {
|
|
63
|
+
flushPara();
|
|
64
|
+
blocks.push({
|
|
65
|
+
type: "heading",
|
|
66
|
+
level: (heading[1].length + 1),
|
|
67
|
+
children: (0, inline_1.parseInline)(heading[2]),
|
|
68
|
+
});
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const ul = UL_RE.exec(line);
|
|
72
|
+
const ol = ul ? null : OL_RE.exec(line);
|
|
73
|
+
if (ul || ol) {
|
|
74
|
+
flushPara();
|
|
75
|
+
const ordered = !!ol;
|
|
76
|
+
const itemRe = ordered ? OL_RE : UL_RE;
|
|
77
|
+
const items = [];
|
|
78
|
+
while (i < lines.length) {
|
|
79
|
+
const item = itemRe.exec(lines[i]);
|
|
80
|
+
if (!item)
|
|
81
|
+
break;
|
|
82
|
+
items.push((0, inline_1.parseInline)(item[1]));
|
|
83
|
+
i++;
|
|
84
|
+
}
|
|
85
|
+
i--; // the for-loop's i++ consumes the non-item line
|
|
86
|
+
blocks.push({ type: "list", ordered, items });
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
para.push(line);
|
|
90
|
+
}
|
|
91
|
+
flushPara();
|
|
92
|
+
// A list is one block but renders one node per item, so items count individually —
|
|
93
|
+
// otherwise a single all-items snippet slips ~2600 nodes past a 200-block cap.
|
|
94
|
+
const weight = blocks.reduce((n, b) => n + (b.type === "list" ? b.items.length : 1), 0);
|
|
95
|
+
return weight > exports.MD_MAX_BLOCKS ? [{ type: "truncated" }] : blocks;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21hcmtkb3duL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW1CQSxnQ0FHQztBQUVELHNDQTRFQztBQW5HRCxxQ0FBc0M7QUFFdEMsb0ZBQW9GO0FBQ3ZFLFFBQUEsWUFBWSxHQUFHLElBQUksQ0FBQTtBQUNoQywyRkFBMkY7QUFDOUUsUUFBQSxhQUFhLEdBQUcsR0FBRyxDQUFBO0FBRWhDLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQTtBQUM1QixNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQTtBQUN0QyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUE7QUFDMUIsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFBO0FBQzdCLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFBO0FBRTlCOzs7O0dBSUc7QUFDSCxTQUFnQixVQUFVLENBQUMsSUFBWTtJQUNyQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMvQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUE7QUFDcEUsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxHQUFXO0lBQ3ZDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sRUFBRSxDQUFBO0lBQzlDLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxvQkFBWTtRQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBRTdELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FB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
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** Inline nodes. A closed union — the renderer has no default branch. */
|
|
2
|
+
export type MdInline = {
|
|
3
|
+
type: "text";
|
|
4
|
+
value: string;
|
|
5
|
+
} | {
|
|
6
|
+
type: "code";
|
|
7
|
+
value: string;
|
|
8
|
+
} | {
|
|
9
|
+
type: "strong";
|
|
10
|
+
children: MdInline[];
|
|
11
|
+
} | {
|
|
12
|
+
type: "em";
|
|
13
|
+
children: MdInline[];
|
|
14
|
+
} | {
|
|
15
|
+
type: "link";
|
|
16
|
+
href: string;
|
|
17
|
+
children: MdInline[];
|
|
18
|
+
};
|
|
19
|
+
/** Block nodes. `truncated` replaces all content when a size cap is hit. */
|
|
20
|
+
export type MdBlock = {
|
|
21
|
+
type: "heading";
|
|
22
|
+
level: 2 | 3 | 4;
|
|
23
|
+
children: MdInline[];
|
|
24
|
+
} | {
|
|
25
|
+
type: "paragraph";
|
|
26
|
+
children: MdInline[];
|
|
27
|
+
} | {
|
|
28
|
+
type: "list";
|
|
29
|
+
ordered: boolean;
|
|
30
|
+
items: MdInline[][];
|
|
31
|
+
} | {
|
|
32
|
+
type: "codeBlock";
|
|
33
|
+
label: string | null;
|
|
34
|
+
value: string;
|
|
35
|
+
} | {
|
|
36
|
+
type: "hr";
|
|
37
|
+
} | {
|
|
38
|
+
type: "truncated";
|
|
39
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21hcmtkb3duL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -42,6 +42,35 @@ const build_zod_1 = require("../build-zod");
|
|
|
42
42
|
(0, globals_1.expect)(s.safeParse("a").success).toBe(true);
|
|
43
43
|
(0, globals_1.expect)(s.safeParse("c").success).toBe(false);
|
|
44
44
|
});
|
|
45
|
+
(0, globals_1.describe)("numeric enum", () => {
|
|
46
|
+
const s = (0, build_zod_1.optionToZod)({ type: "enum", values: [-1, 0, 20], label: "l" });
|
|
47
|
+
(0, globals_1.it)("accepts the declared numbers and rejects anything else", () => {
|
|
48
|
+
(0, globals_1.expect)(s.safeParse(-1).success).toBe(true);
|
|
49
|
+
(0, globals_1.expect)(s.safeParse(0).success).toBe(true);
|
|
50
|
+
(0, globals_1.expect)(s.safeParse(18).success).toBe(false);
|
|
51
|
+
});
|
|
52
|
+
// A `<Select>` submits a string, and configs written before an option became numeric
|
|
53
|
+
// still hold one. Both must land on the declared number.
|
|
54
|
+
(0, globals_1.it)("coerces a submitted string back to the declared number", () => {
|
|
55
|
+
for (const [input, expected] of [["-1", -1], ["0", 0], ["20", 20]]) {
|
|
56
|
+
const r = s.safeParse(input);
|
|
57
|
+
(0, globals_1.expect)(r.success && r.data).toBe(expected);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
(0, globals_1.it)("still rejects a string that is not in the set", () => {
|
|
61
|
+
(0, globals_1.expect)(s.safeParse("18").success).toBe(false);
|
|
62
|
+
});
|
|
63
|
+
(0, globals_1.it)("treats a cleared select as unset, so a default can apply", () => {
|
|
64
|
+
(0, globals_1.expect)((0, build_zod_1.optionToZod)({ type: "enum", values: [1, 2], label: "l" }).safeParse("").success).toBe(true);
|
|
65
|
+
const r = (0, build_zod_1.optionToZod)({ type: "enum", values: [1, 2], default: 2, label: "l" }).safeParse("");
|
|
66
|
+
(0, globals_1.expect)(r.success && r.data).toBe(2);
|
|
67
|
+
});
|
|
68
|
+
(0, globals_1.it)("works with a single declared value", () => {
|
|
69
|
+
const one = (0, build_zod_1.optionToZod)({ type: "enum", values: [7], label: "l" });
|
|
70
|
+
(0, globals_1.expect)(one.safeParse("7").success && one.safeParse("7").data).toBe(7);
|
|
71
|
+
(0, globals_1.expect)(one.safeParse(8).success).toBe(false);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
45
74
|
(0, globals_1.it)("number honors int/min/max/positive/nonnegative/multipleOf", () => {
|
|
46
75
|
(0, globals_1.expect)((0, build_zod_1.optionToZod)({ type: "number", int: true, label: "l" }).safeParse(2.5).success).toBe(false);
|
|
47
76
|
(0, globals_1.expect)((0, build_zod_1.optionToZod)({ type: "number", min: 1, max: 10, label: "l" }).safeParse(0).success).toBe(false);
|
|
@@ -103,4 +132,4 @@ const build_zod_1 = require("../build-zod");
|
|
|
103
132
|
(0, globals_1.expect)((0, build_zod_1.optionToZod)({ type: "enum", values: ["a", "b"], required: true, label: "l" }).safeParse(null).success).toBe(false);
|
|
104
133
|
});
|
|
105
134
|
});
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtem9kLnVuaXQuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uL2Rlc2NyaXB0b3IvX190ZXN0c19fL2J1aWxkLXpvZC51bml0LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBb0Q7QUFDcEQsNENBQTBDO0FBRTFDLElBQUEsa0JBQVEsRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzNCLElBQUEsWUFBRSxFQUFDLDJEQUEyRCxFQUFFLEdBQUcsRUFBRTtRQUNuRSxNQUFNLENBQUMsR0FBRyxJQUFBLHVCQUFXLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUNuRixJQUFBLGdCQUFNLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbEQsSUFBQSxnQkFBTSxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzNDLElBQUEsZ0JBQU0sRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM3QyxDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUEsWUFBRSxFQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtRQUMzQyxJQUFBLGdCQUFNLEVBQUMsSUFBQSx1QkFBVyxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENB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QkFBTSxFQUFDLElBQUEsdUJBQVcsRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BHLElBQUEsZ0JBQU0sRUFBQyxJQUFBLHVCQUFXLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3hHLElBQUEsZ0JBQU0sRUFBQyxJQUFBLHVCQUFXLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN0RyxJQUFBLGdCQUFNLEVBQUMsSUFBQSx1QkFBVyxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbkcsSUFBQSxnQkFBTSxFQUFDLElBQUEsdUJBQVcsRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3JHLENBQUMsQ0FBQyxD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
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtem9kLnVuaXQuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uL2Rlc2NyaXB0b3IvX190ZXN0c19fL2J1aWxkLXpvZC51bml0LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBb0Q7QUFDcEQsNENBQTBDO0FBRTFDLElBQUEsa0JBQVEsRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzNCLElBQUEsWUFBRSxFQUFDLDJEQUEyRCxFQUFFLEdBQUcsRUFBRTtRQUNuRSxNQUFNLENBQUMsR0FBRyxJQUFBLHVCQUFXLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUNuRixJQUFBLGdCQUFNLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbEQsSUFBQSxnQkFBTSxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzNDLElBQUEsZ0JBQU0sRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM3QyxDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUEsWUFBRSxFQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtRQUMzQyxJQUFBLGdCQUFNLEVBQUMsSUFBQSx1QkFBVyxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENB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RSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNqRyxJQUFBLGdCQUFNLEVBQUMsSUFBQSx1QkFBVyxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyRyxJQUFBLGdCQUFNLEVBQUMsSUFBQSx1QkFBVyxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEcsSUFBQSxnQkFBTSxFQUFDLElBQUEsdUJBQVcsRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDeEcsSUFBQSxnQkFBTSxFQUFDLElBQUEsdUJBQVcsRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3RHLElBQUEsZ0JBQU0sRUFBQyxJQUFBLHVCQUFXLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsS0FB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
|
|
@@ -37,5 +37,38 @@ const define_1 = require("../define");
|
|
|
37
37
|
sections: [{ id: "s", title: "t", options: ["a", "missing"] }],
|
|
38
38
|
})).toThrow(/missing/);
|
|
39
39
|
});
|
|
40
|
+
// A select submits the picked value as a string, so a mixed set makes the mapping back
|
|
41
|
+
// ambiguous: "1" could mean 1 or "1". `OptionDef` instantiates the enum per kind, so this is
|
|
42
|
+
// a type error first; the cast is what a plain-JS consumer would hit, and the runtime guard
|
|
43
|
+
// is the backstop for them.
|
|
44
|
+
(0, globals_1.it)("throws when an enum mixes string and number values", () => {
|
|
45
|
+
(0, globals_1.expect)(() => (0, define_1.defineIntegration)({
|
|
46
|
+
category: "payment",
|
|
47
|
+
displayName: "demo.name",
|
|
48
|
+
options: { rate: { type: "enum", values: ["a", 1], label: "l" } },
|
|
49
|
+
sections: [{ id: "s", title: "t", options: ["rate"] }],
|
|
50
|
+
})).toThrow(/mixes number and string enum values/);
|
|
51
|
+
});
|
|
52
|
+
// Compile-time half of the same rule. These never run; they fail the build (which typechecks
|
|
53
|
+
// __tests__) if the barrier regresses, because the directive would go unused.
|
|
54
|
+
(0, globals_1.it)("rejects a mixed set and a cross-kind default at compile time", () => {
|
|
55
|
+
// @ts-expect-error an enum's values must be all strings or all numbers
|
|
56
|
+
const mixed = { type: "enum", values: ["a", 1], label: "l" };
|
|
57
|
+
// @ts-expect-error a numeric enum's default must be a number, not the string "-1"
|
|
58
|
+
const crossKindDefault = { type: "enum", values: [-1, 0, 20], default: "-1", label: "l" };
|
|
59
|
+
// @ts-expect-error a numeric enum cannot carry a string-valued validator
|
|
60
|
+
const wrongValidator = { type: "enum", values: [1, 2], label: "l", validate: (v) => v };
|
|
61
|
+
(0, globals_1.expect)([mixed, crossKindDefault, wrongValidator]).toHaveLength(3);
|
|
62
|
+
});
|
|
63
|
+
(0, globals_1.it)("accepts a homogeneous numeric enum", () => {
|
|
64
|
+
const d = (0, define_1.defineIntegration)({
|
|
65
|
+
category: "payment",
|
|
66
|
+
displayName: "demo.name",
|
|
67
|
+
options: { rate: { type: "enum", values: [-1, 0, 20], default: -1, label: "l" } },
|
|
68
|
+
sections: [{ id: "s", title: "t", options: ["rate"] }],
|
|
69
|
+
});
|
|
70
|
+
const parsed = d.optionsSchema.safeParse({});
|
|
71
|
+
(0, globals_1.expect)(parsed.success && parsed.data.rate).toBe(-1);
|
|
72
|
+
});
|
|
40
73
|
});
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLnVuaXQuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uL2Rlc2NyaXB0b3IvX190ZXN0c19fL2RlZmluZS51bml0LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBb0Q7QUFDcEQsc0NBQTZDO0FBRzdDLElBQUEsa0JBQVEsRUFBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBQSwwQkFBaUIsRUFBQztRQUMxQixRQUFRLEVBQUUsU0FBUztRQUNuQixXQUFXLEVBQUUsV0FBVztRQUN4QixPQUFPLEVBQUU7WUFDUCxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ3pFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ3ZELEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7U0FDM0Q7UUFDRCxRQUFRLEVBQUU7WUFDUixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNyRCxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7U0FDNUQ7S0FDRixDQUFDLENBQUE7SUFFRixJQUFBLFlBQUUsRUFBQyxnRUFBZ0UsRUFBRSxHQUFHLEVBQUU7UUFDeEUsTUFBTSxDQUFD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
|
|
@@ -63,9 +63,17 @@ function buildOptionSchema(def) {
|
|
|
63
63
|
case "boolean":
|
|
64
64
|
base = zod_1.z.boolean();
|
|
65
65
|
break;
|
|
66
|
-
case "enum":
|
|
67
|
-
|
|
66
|
+
case "enum": {
|
|
67
|
+
if (def.values.every((v) => typeof v === "string")) {
|
|
68
|
+
base = zod_1.z.enum(def.values);
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
const declared = [...def.values];
|
|
72
|
+
base = zod_1.z.preprocess((v) => declared.find((d) => String(d) === String(v)) ?? v,
|
|
73
|
+
// `z.literal` takes a list and builds the union of those literals.
|
|
74
|
+
zod_1.z.literal(declared));
|
|
68
75
|
break;
|
|
76
|
+
}
|
|
69
77
|
case "json": {
|
|
70
78
|
// Opaque JSON; presence handled here (z.unknown() otherwise accepts undefined).
|
|
71
79
|
if (def.default !== undefined)
|
|
@@ -85,4 +93,4 @@ function buildOptionSchema(def) {
|
|
|
85
93
|
return base.optional();
|
|
86
94
|
return base;
|
|
87
95
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtem9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vZGVzY3JpcHRvci9idWlsZC16b2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxrQ0FLQztBQWJELDRDQUFzQztBQUd0Qzs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEdBQWM7SUFDeEMsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDckMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE1BQU07UUFDOUMsT0FBTyxPQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDbEUsT0FBTyxPQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUM5RSxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxHQUFjO0lBQ3ZDLElBQUksSUFBZSxDQUFBO0lBQ25CLFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxHQUFHLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtZQUNsQixJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksSUFBSTtnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENB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
|
|
@@ -22,10 +22,22 @@ function defineIntegration(input) {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
+
// Fail fast: an enum's values must be all strings or all numbers. A `<Select>` submits the
|
|
26
|
+
// picked value as a string, and with a mixed set there is no way to tell whether "1" means
|
|
27
|
+
// the number 1 or the string "1".
|
|
28
|
+
for (const [id, def] of Object.entries(input.options)) {
|
|
29
|
+
if (def.type !== "enum")
|
|
30
|
+
continue;
|
|
31
|
+
const kinds = new Set(def.values.map((v) => typeof v));
|
|
32
|
+
if (kinds.size > 1) {
|
|
33
|
+
throw new Error(`Option "${id}" mixes ${[...kinds].sort().join(" and ")} enum values. ` +
|
|
34
|
+
`Use either all strings or all numbers.`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
25
37
|
const shape = {};
|
|
26
38
|
for (const [id, def] of Object.entries(input.options))
|
|
27
39
|
shape[id] = (0, build_zod_1.optionToZod)(def);
|
|
28
40
|
const optionsSchema = zod_1.z.object(shape);
|
|
29
41
|
return { ...input, optionsSchema };
|
|
30
42
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vZGVzY3JpcHRvci9kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0VBLDhDQXdDQztBQWhIRCw0Q0FBc0M7QUFNN0Isa0ZBTkEsT0FBQyxPQU1BO0FBSFYsMkNBQXlDO0FBNkR6Qzs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQy9CLEtBTUc7SUFRSCxnRUFBZ0U7SUFDaEUsS0FBSyxNQUFNLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsS0FBSyxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzdELE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxPQUFPLENBQUMsRUFBRSxnQ0FBZ0MsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUM5RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCwyRkFBMkY7SUFDM0YsMkZBQTJGO0lBQzNGLGtDQUFrQztJQUNsQyxLQUFLLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssTUFBTTtZQUFFLFNBQVE7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN0RCxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FDYixXQUFXLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0I7Z0JBQ3JFLHdDQUF3QyxDQUMzQyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLEtBQUssR0FBOEIsRUFBRSxDQUFBO0lBQzNDLEtBQUssTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBQSx1QkFBVyxFQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ25GLE1BQU0sYUFBYSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFzQyxDQUFBO0lBQzFFLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxhQUFhLEVBQUUsQ0FBQTtBQUNwQyxDQUFDIn0=
|
|
@@ -66,7 +66,7 @@ export type BooleanOption = OptionBase & {
|
|
|
66
66
|
default?: boolean;
|
|
67
67
|
validate?: (v: boolean | undefined, c: OptionValidateContext) => void;
|
|
68
68
|
};
|
|
69
|
-
export type EnumOption<V extends string = string> = OptionBase & {
|
|
69
|
+
export type EnumOption<V extends string | number = string> = OptionBase & {
|
|
70
70
|
type: "enum";
|
|
71
71
|
values: readonly V[];
|
|
72
72
|
valueLabels?: Partial<Record<V, I18nKey>>;
|
|
@@ -78,7 +78,7 @@ export type JsonOption = OptionBase & {
|
|
|
78
78
|
default?: unknown;
|
|
79
79
|
validate?: (v: unknown, c: OptionValidateContext) => void;
|
|
80
80
|
};
|
|
81
|
-
export type OptionDef = StringOption | UrlOption | EmailOption | UuidOption | NumberOption | BooleanOption | EnumOption | JsonOption;
|
|
81
|
+
export type OptionDef = StringOption | UrlOption | EmailOption | UuidOption | NumberOption | BooleanOption | EnumOption<string> | EnumOption<number> | JsonOption;
|
|
82
82
|
export type OptionValue<D> = D extends {
|
|
83
83
|
type: "enum";
|
|
84
84
|
values: readonly (infer V)[];
|