@commonpub/schema 0.17.0 → 0.19.0
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 +2 -1
- package/dist/contest.d.ts +35 -2
- package/dist/contest.d.ts.map +1 -1
- package/dist/contest.js +6 -0
- package/dist/contest.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/openapi.d.ts.map +1 -1
- package/dist/openapi.js +122 -0
- package/dist/openapi.js.map +1 -1
- package/dist/sectionConfigs.d.ts +207 -0
- package/dist/sectionConfigs.d.ts.map +1 -0
- package/dist/sectionConfigs.js +179 -0
- package/dist/sectionConfigs.js.map +1 -0
- package/dist/validators.d.ts +54 -16
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +70 -16
- package/dist/validators.js.map +1 -1
- package/migrations/0005_wonderful_blue_marvel.sql +64 -0
- package/migrations/0006_contest_voting_visibility_criteria.sql +1 -0
- package/migrations/meta/0005_snapshot.json +10607 -0
- package/migrations/meta/0006_snapshot.json +10613 -0
- package/migrations/meta/_journal.json +14 -0
- package/package.json +1 -1
- package/migrations/0005_layout_engine.sql +0 -119
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-section Zod config schemas — the source-of-truth for what shapes
|
|
3
|
+
* each registered section's `config` blob may take.
|
|
4
|
+
*
|
|
5
|
+
* Lives in `@commonpub/schema` rather than `layers/base/sections/builtin/`
|
|
6
|
+
* so the server's Nitro bundle can import them WITHOUT pulling in the
|
|
7
|
+
* registry, which transitively imports `.vue` component files. The
|
|
8
|
+
* layer's section registry (see `layers/base/sections/registry.ts`)
|
|
9
|
+
* imports from here too so there's exactly one source.
|
|
10
|
+
*
|
|
11
|
+
* Each section ships:
|
|
12
|
+
* - a named `{type}ConfigSchema` Zod schema (the wire contract)
|
|
13
|
+
* - a TS type alias inferred from it (consumer convenience)
|
|
14
|
+
*
|
|
15
|
+
* The `SECTION_CONFIG_SCHEMAS` map at the bottom is the canonical
|
|
16
|
+
* type → schema lookup used by `validateSectionConfigs` server-side.
|
|
17
|
+
*
|
|
18
|
+
* Adding a new section:
|
|
19
|
+
* 1. Define + export `{type}ConfigSchema` here
|
|
20
|
+
* 2. Add it to `SECTION_CONFIG_SCHEMAS`
|
|
21
|
+
* 3. Add the section definition in `layers/base/sections/builtin/{type}.ts`
|
|
22
|
+
* importing the schema from here
|
|
23
|
+
* 4. Register in `layers/base/sections/registry.ts`
|
|
24
|
+
*
|
|
25
|
+
* Provenance: extracted from `layers/base/sections/builtin/*.ts` in
|
|
26
|
+
* session 161 to close R2's deferred per-section validation. Behavior
|
|
27
|
+
* preserved exactly — same `.max()`, `.min()`, `.regex()`, `.default()`
|
|
28
|
+
* chains as the inline versions they replace.
|
|
29
|
+
*/
|
|
30
|
+
import { z } from 'zod';
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Shared URL regex constants
|
|
33
|
+
//
|
|
34
|
+
// Empty-string variants use the explicit `$` branch (NOT empty-alternation
|
|
35
|
+
// like `(?:|...|...)`) — empty alternation matches ANY string at position 0,
|
|
36
|
+
// which caught a XSS payload accepting `javascript:` in session 158.
|
|
37
|
+
// See `feedback-regex-empty-alternation` memory.
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
/**
|
|
40
|
+
* Anchor-style link: http(s), root-relative, fragment, mailto, tel.
|
|
41
|
+
* Must be non-empty — pair with `.min(1)`. Used by cta + hero CTA hrefs.
|
|
42
|
+
*
|
|
43
|
+
* No `URL_LINK_OR_EMPTY` counterpart exists: every current caller pairs
|
|
44
|
+
* the regex with `.min(1)`, which makes the empty branch dead. If a
|
|
45
|
+
* future caller needs the optional variant, add it back then.
|
|
46
|
+
*/
|
|
47
|
+
export const URL_LINK_STRICT = /^(https?:\/\/|\/|#|mailto:|tel:)/i;
|
|
48
|
+
/** Media src: http(s) or root-relative path or empty. */
|
|
49
|
+
export const URL_MEDIA_OR_EMPTY = /^(?:$|https?:\/\/|\/)/i;
|
|
50
|
+
/** Strict http(s) only or empty — for embeds where loose paths shouldn't apply. */
|
|
51
|
+
export const URL_HTTPS_OR_EMPTY = /^(?:$|https?:\/\/)/i;
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
// Layout — divider, heading, paragraph
|
|
54
|
+
// ---------------------------------------------------------------------------
|
|
55
|
+
export const dividerConfigSchema = z.object({
|
|
56
|
+
variant: z.enum(['solid', 'dashed', 'dotted', 'accent']).default('solid'),
|
|
57
|
+
spacingY: z.enum(['sm', 'md', 'lg', 'xl']).default('md'),
|
|
58
|
+
});
|
|
59
|
+
export const headingConfigSchema = z.object({
|
|
60
|
+
level: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6)]).default(2),
|
|
61
|
+
text: z.string().min(1).max(240).default('Section heading'),
|
|
62
|
+
});
|
|
63
|
+
export const paragraphConfigSchema = z.object({
|
|
64
|
+
html: z.string().max(8000).default('<p>Paragraph body.</p>'),
|
|
65
|
+
});
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
// Content — image, gallery, video, embed, markdown, custom-html
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
export const imageConfigSchema = z.object({
|
|
70
|
+
src: z.string().max(2048).regex(URL_MEDIA_OR_EMPTY, { message: 'src must be an http(s) URL, root path, or empty' }).default(''),
|
|
71
|
+
alt: z.string().max(240).default(''),
|
|
72
|
+
caption: z.string().max(480).default(''),
|
|
73
|
+
size: z.enum(['s', 'm', 'l', 'full']).default('l'),
|
|
74
|
+
});
|
|
75
|
+
export const galleryImageSchema = z.object({
|
|
76
|
+
src: z.string().max(2048).regex(URL_MEDIA_OR_EMPTY, { message: 'src must be an http(s) URL, root path, or empty' }),
|
|
77
|
+
alt: z.string().max(240).default(''),
|
|
78
|
+
caption: z.string().max(240).default(''),
|
|
79
|
+
});
|
|
80
|
+
export const galleryConfigSchema = z.object({
|
|
81
|
+
images: z.array(galleryImageSchema).max(20).default([]),
|
|
82
|
+
});
|
|
83
|
+
export const videoConfigSchema = z.object({
|
|
84
|
+
url: z.string().max(2048).regex(URL_MEDIA_OR_EMPTY, { message: 'url must be an http(s) URL, root path, or empty' }).default(''),
|
|
85
|
+
});
|
|
86
|
+
export const embedConfigSchema = z.object({
|
|
87
|
+
url: z.string().max(2048).regex(URL_HTTPS_OR_EMPTY, { message: 'url must be an http(s) URL or empty' }).default(''),
|
|
88
|
+
});
|
|
89
|
+
export const markdownConfigSchema = z.object({
|
|
90
|
+
source: z.string().max(100_000).default(''),
|
|
91
|
+
});
|
|
92
|
+
export const customHtmlConfigSchema = z.object({
|
|
93
|
+
heading: z.string().max(255).default(''),
|
|
94
|
+
html: z.string().max(50_000).default(''),
|
|
95
|
+
});
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// Interactive — hero, cta
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
export const heroCtaSchema = z.object({
|
|
100
|
+
label: z.string().min(1).max(80),
|
|
101
|
+
href: z.string().min(1).max(2048).regex(URL_LINK_STRICT, { message: 'href must be an http(s) URL, root path, anchor, mailto:, or tel:' }),
|
|
102
|
+
variant: z.enum(['primary', 'secondary']).default('primary'),
|
|
103
|
+
});
|
|
104
|
+
export const heroConfigSchema = z.object({
|
|
105
|
+
variant: z.enum(['default', 'compact', 'centered']).default('default'),
|
|
106
|
+
customTitle: z.string().max(255).default(''),
|
|
107
|
+
customSubtitle: z.string().max(500).default(''),
|
|
108
|
+
ctas: z.array(heroCtaSchema).max(2).default([]),
|
|
109
|
+
});
|
|
110
|
+
export const ctaButtonSchema = z.object({
|
|
111
|
+
label: z.string().min(1).max(80),
|
|
112
|
+
href: z.string().min(1).max(2048).regex(URL_LINK_STRICT, { message: 'href must be an http(s) URL, root path, anchor, mailto:, or tel:' }),
|
|
113
|
+
variant: z.enum(['primary', 'secondary', 'ghost']).default('primary'),
|
|
114
|
+
});
|
|
115
|
+
export const ctaConfigSchema = z.object({
|
|
116
|
+
variant: z.enum(['default', 'contrast', 'minimal']).default('default'),
|
|
117
|
+
heading: z.string().min(1).max(240).default('Take the next step'),
|
|
118
|
+
body: z.string().max(800).default(''),
|
|
119
|
+
buttons: z.array(ctaButtonSchema).max(3).default([]),
|
|
120
|
+
align: z.enum(['left', 'center']).default('left'),
|
|
121
|
+
});
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
// Data — content-feed, editorial, stats, hubs, contests, learning
|
|
124
|
+
// ---------------------------------------------------------------------------
|
|
125
|
+
export const contentFeedConfigSchema = z.object({
|
|
126
|
+
heading: z.string().max(120).default(''),
|
|
127
|
+
contentType: z.string().max(64).default(''),
|
|
128
|
+
sort: z.enum(['recent', 'popular', 'featured', 'editorial']).default('recent'),
|
|
129
|
+
limit: z.number().int().min(1).max(24).default(12),
|
|
130
|
+
columns: z.union([z.literal(2), z.literal(3), z.literal(4)]).default(2),
|
|
131
|
+
categorySlug: z.string().max(64).default(''),
|
|
132
|
+
});
|
|
133
|
+
export const editorialConfigSchema = z.object({
|
|
134
|
+
limit: z.number().int().min(1).max(12).default(3),
|
|
135
|
+
});
|
|
136
|
+
/** Stats has no per-instance config (the section pulls its data from API). */
|
|
137
|
+
export const statsConfigSchema = z.object({});
|
|
138
|
+
export const hubsConfigSchema = z.object({
|
|
139
|
+
limit: z.number().int().min(1).max(20).default(4),
|
|
140
|
+
});
|
|
141
|
+
export const contestsConfigSchema = z.object({
|
|
142
|
+
limit: z.number().int().min(1).max(10).default(3),
|
|
143
|
+
});
|
|
144
|
+
export const learningConfigSchema = z.object({
|
|
145
|
+
heading: z.string().max(120).default('Learning Paths'),
|
|
146
|
+
limit: z.number().int().min(1).max(12).default(6),
|
|
147
|
+
columns: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]).default(3),
|
|
148
|
+
});
|
|
149
|
+
// ---------------------------------------------------------------------------
|
|
150
|
+
// Lookup map — the canonical type → schema map used by
|
|
151
|
+
// `validateSectionConfigs` to enforce per-type validation server-side.
|
|
152
|
+
// Keep this in sync with the per-section files in
|
|
153
|
+
// `layers/base/sections/builtin/*.ts` and the registrations in
|
|
154
|
+
// `layers/base/sections/registry.ts`.
|
|
155
|
+
// ---------------------------------------------------------------------------
|
|
156
|
+
export const SECTION_CONFIG_SCHEMAS = {
|
|
157
|
+
// Layout
|
|
158
|
+
divider: dividerConfigSchema,
|
|
159
|
+
heading: headingConfigSchema,
|
|
160
|
+
paragraph: paragraphConfigSchema,
|
|
161
|
+
// Content
|
|
162
|
+
image: imageConfigSchema,
|
|
163
|
+
gallery: galleryConfigSchema,
|
|
164
|
+
video: videoConfigSchema,
|
|
165
|
+
embed: embedConfigSchema,
|
|
166
|
+
markdown: markdownConfigSchema,
|
|
167
|
+
'custom-html': customHtmlConfigSchema,
|
|
168
|
+
// Interactive
|
|
169
|
+
hero: heroConfigSchema,
|
|
170
|
+
cta: ctaConfigSchema,
|
|
171
|
+
// Data
|
|
172
|
+
'content-feed': contentFeedConfigSchema,
|
|
173
|
+
editorial: editorialConfigSchema,
|
|
174
|
+
stats: statsConfigSchema,
|
|
175
|
+
hubs: hubsConfigSchema,
|
|
176
|
+
contests: contestsConfigSchema,
|
|
177
|
+
learning: learningConfigSchema,
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=sectionConfigs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sectionConfigs.js","sourceRoot":"","sources":["../src/sectionConfigs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,CAAC,EAAgB,MAAM,KAAK,CAAC;AAEtC,8EAA8E;AAC9E,6BAA6B;AAC7B,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,qEAAqE;AACrE,iDAAiD;AACjD,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAEnE,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAExD,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACzE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CACzD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;CAC5D,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;CAC7D,CAAC,CAAC;AAGH,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/H,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;CACnD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC;IACnH,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACzC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACxD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAChI,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACpH,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC5C,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACzC,CAAC,CAAC;AAGH,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC;IACzI,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;CAC7D,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACtE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAChD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC;IACzI,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;CACtE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACjE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CAClD,CAAC,CAAC;AAGH,8EAA8E;AAC9E,kEAAkE;AAClE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CAClD,CAAC,CAAC;AAGH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAG9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CAClD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CAClD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CACtF,CAAC,CAAC;AAGH,8EAA8E;AAC9E,uDAAuD;AACvD,uEAAuE;AACvE,kDAAkD;AAClD,+DAA+D;AAC/D,sCAAsC;AACtC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,sBAAsB,GAA4B;IAC7D,SAAS;IACT,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,mBAAmB;IAC5B,SAAS,EAAE,qBAAqB;IAChC,UAAU;IACV,KAAK,EAAE,iBAAiB;IACxB,OAAO,EAAE,mBAAmB;IAC5B,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,oBAAoB;IAC9B,aAAa,EAAE,sBAAsB;IACrC,cAAc;IACd,IAAI,EAAE,gBAAgB;IACtB,GAAG,EAAE,eAAe;IACpB,OAAO;IACP,cAAc,EAAE,uBAAuB;IACvC,SAAS,EAAE,qBAAqB;IAChC,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,oBAAoB;IAC9B,QAAQ,EAAE,oBAAoB;CAC/B,CAAC"}
|
package/dist/validators.d.ts
CHANGED
|
@@ -476,6 +476,20 @@ export declare const productCategorySchema: z.ZodEnum<{
|
|
|
476
476
|
tool: "tool";
|
|
477
477
|
}>;
|
|
478
478
|
export type ProductCategory = z.infer<typeof productCategorySchema>;
|
|
479
|
+
export declare const contestPrizeSchema: z.ZodObject<{
|
|
480
|
+
place: z.ZodOptional<z.ZodNumber>;
|
|
481
|
+
category: z.ZodOptional<z.ZodString>;
|
|
482
|
+
title: z.ZodString;
|
|
483
|
+
description: z.ZodOptional<z.ZodString>;
|
|
484
|
+
value: z.ZodOptional<z.ZodString>;
|
|
485
|
+
}, z.core.$strip>;
|
|
486
|
+
export type ContestPrize = z.infer<typeof contestPrizeSchema>;
|
|
487
|
+
export declare const contestJudgingCriterionSchema: z.ZodObject<{
|
|
488
|
+
label: z.ZodString;
|
|
489
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
490
|
+
description: z.ZodOptional<z.ZodString>;
|
|
491
|
+
}, z.core.$strip>;
|
|
492
|
+
export type ContestJudgingCriterion = z.infer<typeof contestJudgingCriterionSchema>;
|
|
479
493
|
export declare const createContestSchema: z.ZodObject<{
|
|
480
494
|
title: z.ZodString;
|
|
481
495
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -485,29 +499,53 @@ export declare const createContestSchema: z.ZodObject<{
|
|
|
485
499
|
endDate: z.ZodString;
|
|
486
500
|
judgingEndDate: z.ZodOptional<z.ZodString>;
|
|
487
501
|
prizes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
488
|
-
place: z.ZodNumber
|
|
502
|
+
place: z.ZodOptional<z.ZodNumber>;
|
|
503
|
+
category: z.ZodOptional<z.ZodString>;
|
|
489
504
|
title: z.ZodString;
|
|
490
505
|
description: z.ZodOptional<z.ZodString>;
|
|
491
506
|
value: z.ZodOptional<z.ZodString>;
|
|
492
507
|
}, z.core.$strip>>>;
|
|
508
|
+
judgingCriteria: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
509
|
+
label: z.ZodString;
|
|
510
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
511
|
+
description: z.ZodOptional<z.ZodString>;
|
|
512
|
+
}, z.core.$strip>>>;
|
|
493
513
|
judges: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
514
|
+
communityVotingEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
515
|
+
judgingVisibility: z.ZodOptional<z.ZodEnum<{
|
|
516
|
+
public: "public";
|
|
517
|
+
private: "private";
|
|
518
|
+
"judges-only": "judges-only";
|
|
519
|
+
}>>;
|
|
494
520
|
}, z.core.$strip>;
|
|
495
521
|
export type CreateContestInput = z.infer<typeof createContestSchema>;
|
|
496
522
|
export declare const updateContestSchema: z.ZodObject<{
|
|
497
523
|
title: z.ZodOptional<z.ZodString>;
|
|
498
|
-
description: z.ZodOptional<z.
|
|
499
|
-
rules: z.ZodOptional<z.
|
|
500
|
-
bannerUrl: z.
|
|
524
|
+
description: z.ZodOptional<z.ZodString>;
|
|
525
|
+
rules: z.ZodOptional<z.ZodString>;
|
|
526
|
+
bannerUrl: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
|
|
501
527
|
startDate: z.ZodOptional<z.ZodString>;
|
|
502
528
|
endDate: z.ZodOptional<z.ZodString>;
|
|
503
|
-
judgingEndDate: z.ZodOptional<z.
|
|
504
|
-
prizes: z.ZodOptional<z.
|
|
505
|
-
place: z.ZodNumber
|
|
529
|
+
judgingEndDate: z.ZodOptional<z.ZodString>;
|
|
530
|
+
prizes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
531
|
+
place: z.ZodOptional<z.ZodNumber>;
|
|
532
|
+
category: z.ZodOptional<z.ZodString>;
|
|
506
533
|
title: z.ZodString;
|
|
507
534
|
description: z.ZodOptional<z.ZodString>;
|
|
508
535
|
value: z.ZodOptional<z.ZodString>;
|
|
509
|
-
}, z.core.$strip
|
|
510
|
-
|
|
536
|
+
}, z.core.$strip>>>;
|
|
537
|
+
judgingCriteria: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
538
|
+
label: z.ZodString;
|
|
539
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
540
|
+
description: z.ZodOptional<z.ZodString>;
|
|
541
|
+
}, z.core.$strip>>>;
|
|
542
|
+
judges: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
543
|
+
communityVotingEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
544
|
+
judgingVisibility: z.ZodOptional<z.ZodEnum<{
|
|
545
|
+
public: "public";
|
|
546
|
+
private: "private";
|
|
547
|
+
"judges-only": "judges-only";
|
|
548
|
+
}>>;
|
|
511
549
|
}, z.core.$strip>;
|
|
512
550
|
export type UpdateContestInput = z.infer<typeof updateContestSchema>;
|
|
513
551
|
export declare const judgeEntrySchema: z.ZodObject<{
|
|
@@ -814,10 +852,10 @@ export declare const contentFiltersSchema: z.ZodObject<{
|
|
|
814
852
|
search: z.ZodOptional<z.ZodString>;
|
|
815
853
|
tag: z.ZodOptional<z.ZodString>;
|
|
816
854
|
sort: z.ZodOptional<z.ZodEnum<{
|
|
817
|
-
featured: "featured";
|
|
818
|
-
editorial: "editorial";
|
|
819
855
|
recent: "recent";
|
|
820
856
|
popular: "popular";
|
|
857
|
+
featured: "featured";
|
|
858
|
+
editorial: "editorial";
|
|
821
859
|
}>>;
|
|
822
860
|
limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
823
861
|
offset: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
@@ -1087,8 +1125,8 @@ export declare const layoutRowConfigSchema: z.ZodObject<{
|
|
|
1087
1125
|
lg: "lg";
|
|
1088
1126
|
}>>;
|
|
1089
1127
|
align: z.ZodOptional<z.ZodEnum<{
|
|
1090
|
-
start: "start";
|
|
1091
1128
|
center: "center";
|
|
1129
|
+
start: "start";
|
|
1092
1130
|
stretch: "stretch";
|
|
1093
1131
|
}>>;
|
|
1094
1132
|
background: z.ZodOptional<z.ZodString>;
|
|
@@ -1113,8 +1151,8 @@ export declare const layoutRowSchema: z.ZodObject<{
|
|
|
1113
1151
|
lg: "lg";
|
|
1114
1152
|
}>>;
|
|
1115
1153
|
align: z.ZodOptional<z.ZodEnum<{
|
|
1116
|
-
start: "start";
|
|
1117
1154
|
center: "center";
|
|
1155
|
+
start: "start";
|
|
1118
1156
|
stretch: "stretch";
|
|
1119
1157
|
}>>;
|
|
1120
1158
|
background: z.ZodOptional<z.ZodString>;
|
|
@@ -1172,8 +1210,8 @@ export declare const layoutZoneSchema: z.ZodObject<{
|
|
|
1172
1210
|
lg: "lg";
|
|
1173
1211
|
}>>;
|
|
1174
1212
|
align: z.ZodOptional<z.ZodEnum<{
|
|
1175
|
-
start: "start";
|
|
1176
1213
|
center: "center";
|
|
1214
|
+
start: "start";
|
|
1177
1215
|
stretch: "stretch";
|
|
1178
1216
|
}>>;
|
|
1179
1217
|
background: z.ZodOptional<z.ZodString>;
|
|
@@ -1273,8 +1311,8 @@ export declare const layoutSchema: z.ZodObject<{
|
|
|
1273
1311
|
lg: "lg";
|
|
1274
1312
|
}>>;
|
|
1275
1313
|
align: z.ZodOptional<z.ZodEnum<{
|
|
1276
|
-
start: "start";
|
|
1277
1314
|
center: "center";
|
|
1315
|
+
start: "start";
|
|
1278
1316
|
stretch: "stretch";
|
|
1279
1317
|
}>>;
|
|
1280
1318
|
background: z.ZodOptional<z.ZodString>;
|
|
@@ -1385,8 +1423,8 @@ export declare const layoutCreateSchema: z.ZodObject<{
|
|
|
1385
1423
|
lg: "lg";
|
|
1386
1424
|
}>>;
|
|
1387
1425
|
align: z.ZodOptional<z.ZodEnum<{
|
|
1388
|
-
start: "start";
|
|
1389
1426
|
center: "center";
|
|
1427
|
+
start: "start";
|
|
1390
1428
|
stretch: "stretch";
|
|
1391
1429
|
}>>;
|
|
1392
1430
|
background: z.ZodOptional<z.ZodString>;
|
package/dist/validators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
|
package/dist/validators.js
CHANGED
|
@@ -237,7 +237,20 @@ export const productCategorySchema = z.enum([
|
|
|
237
237
|
'communication', 'power', 'mechanical', 'software', 'tool', 'other',
|
|
238
238
|
]);
|
|
239
239
|
// --- Contest validators ---
|
|
240
|
-
export const
|
|
240
|
+
export const contestPrizeSchema = z.object({
|
|
241
|
+
place: z.number().int().positive().optional(),
|
|
242
|
+
category: z.string().max(120).optional(),
|
|
243
|
+
title: z.string().max(255),
|
|
244
|
+
description: z.string().max(1000).optional(),
|
|
245
|
+
value: z.string().max(128).optional(),
|
|
246
|
+
});
|
|
247
|
+
export const contestJudgingCriterionSchema = z.object({
|
|
248
|
+
label: z.string().min(1).max(120),
|
|
249
|
+
weight: z.number().int().min(0).max(100).optional(),
|
|
250
|
+
description: z.string().max(500).optional(),
|
|
251
|
+
});
|
|
252
|
+
export const createContestSchema = z
|
|
253
|
+
.object({
|
|
241
254
|
title: z.string().min(1).max(255),
|
|
242
255
|
description: z.string().max(10000).optional(),
|
|
243
256
|
rules: z.string().max(10000).optional(),
|
|
@@ -245,20 +258,44 @@ export const createContestSchema = z.object({
|
|
|
245
258
|
startDate: z.string().datetime(),
|
|
246
259
|
endDate: z.string().datetime(),
|
|
247
260
|
judgingEndDate: z.string().datetime().optional(),
|
|
248
|
-
prizes: z
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
261
|
+
prizes: z.array(contestPrizeSchema).max(50).optional(),
|
|
262
|
+
judgingCriteria: z.array(contestJudgingCriterionSchema).max(20).optional(),
|
|
263
|
+
judges: z.array(z.string().uuid()).max(50).optional(),
|
|
264
|
+
communityVotingEnabled: z.boolean().optional(),
|
|
265
|
+
judgingVisibility: z.enum(['public', 'judges-only', 'private']).optional(),
|
|
266
|
+
})
|
|
267
|
+
.refine((d) => new Date(d.endDate) > new Date(d.startDate), {
|
|
268
|
+
message: 'End date must be after the start date',
|
|
269
|
+
path: ['endDate'],
|
|
270
|
+
})
|
|
271
|
+
.refine((d) => !d.judgingEndDate || new Date(d.judgingEndDate) >= new Date(d.endDate), {
|
|
272
|
+
message: 'Judging end date must be on or after the end date',
|
|
273
|
+
path: ['judgingEndDate'],
|
|
274
|
+
});
|
|
275
|
+
// `.partial()` is unavailable on a refined object, so derive the update schema
|
|
276
|
+
// from the underlying shape and re-apply the cross-field date guards.
|
|
277
|
+
export const updateContestSchema = z
|
|
278
|
+
.object({
|
|
279
|
+
title: z.string().min(1).max(255).optional(),
|
|
280
|
+
description: z.string().max(10000).optional(),
|
|
281
|
+
rules: z.string().max(10000).optional(),
|
|
282
|
+
bannerUrl: optionalUrl(),
|
|
283
|
+
startDate: z.string().datetime().optional(),
|
|
284
|
+
endDate: z.string().datetime().optional(),
|
|
285
|
+
judgingEndDate: z.string().datetime().optional(),
|
|
286
|
+
prizes: z.array(contestPrizeSchema).max(50).optional(),
|
|
287
|
+
judgingCriteria: z.array(contestJudgingCriterionSchema).max(20).optional(),
|
|
288
|
+
judges: z.array(z.string().uuid()).max(50).optional(),
|
|
289
|
+
communityVotingEnabled: z.boolean().optional(),
|
|
290
|
+
judgingVisibility: z.enum(['public', 'judges-only', 'private']).optional(),
|
|
291
|
+
})
|
|
292
|
+
.refine((d) => !d.startDate || !d.endDate || new Date(d.endDate) > new Date(d.startDate), {
|
|
293
|
+
message: 'End date must be after the start date',
|
|
294
|
+
path: ['endDate'],
|
|
257
295
|
});
|
|
258
|
-
export const updateContestSchema = createContestSchema.partial();
|
|
259
296
|
export const judgeEntrySchema = z.object({
|
|
260
297
|
entryId: z.string().uuid(),
|
|
261
|
-
score: z.number().int().min(
|
|
298
|
+
score: z.number().int().min(1).max(100),
|
|
262
299
|
feedback: z.string().max(2000).optional(),
|
|
263
300
|
});
|
|
264
301
|
export const contestTransitionSchema = z.object({
|
|
@@ -536,7 +573,15 @@ export const layoutScopeSchema = z.discriminatedUnion('type', [
|
|
|
536
573
|
export const pageMetaSchema = z.object({
|
|
537
574
|
title: z.string().min(1).max(256),
|
|
538
575
|
description: z.string().max(2000).optional(),
|
|
539
|
-
ogImage
|
|
576
|
+
// ogImage MUST be an http(s) URL. Zod's plain .url() accepts
|
|
577
|
+
// javascript:, data:, blob:, file: etc — which would render into
|
|
578
|
+
// the `<meta property="og:image">` content attribute and become a
|
|
579
|
+
// downstream vector for social-media scrapers (the URL is also
|
|
580
|
+
// sometimes fetched server-side by SSR proxies). Refining here
|
|
581
|
+
// closes the entire surface at the validation layer. Session 160
|
|
582
|
+
// audit P1. Protocol-relative `//` is rejected by Zod's url()
|
|
583
|
+
// anyway (no scheme); document for clarity.
|
|
584
|
+
ogImage: z.string().url().max(2048).refine((v) => /^https?:\/\//i.test(v), { message: 'ogImage must be an http:// or https:// URL' }).optional(),
|
|
540
585
|
noindex: z.boolean().optional().default(false),
|
|
541
586
|
ogType: z.enum(['website', 'article', 'profile']).optional().default('website'),
|
|
542
587
|
/** Server-side render gate. 'public' = anyone, 'members' = authenticated, 'admin' = admin only. */
|
|
@@ -593,7 +638,11 @@ export const layoutRowSchema = z
|
|
|
593
638
|
id: z.string().uuid(),
|
|
594
639
|
order: z.number().int().min(0),
|
|
595
640
|
config: layoutRowConfigSchema.optional(),
|
|
596
|
-
sections
|
|
641
|
+
// Max 24 sections per row — comfortable headroom for the 12-col
|
|
642
|
+
// grid (12 col / 1-col each = 12 sections natural max; 24 covers
|
|
643
|
+
// multi-row stacking pre-row-split). Bounded to cap payload-bomb
|
|
644
|
+
// DOS from a malicious admin sending 10k sections (audit P2).
|
|
645
|
+
sections: z.array(layoutSectionSchema).max(24).default([]),
|
|
597
646
|
})
|
|
598
647
|
.refine((row) => row.sections.reduce((sum, s) => sum + s.colSpan, 0) <= 12, { message: 'Sum of section colSpans in a row must be ≤ 12' })
|
|
599
648
|
.refine((row) => new Set(row.sections.map((s) => s.order)).size === row.sections.length, { message: 'Section orders within a row must be unique' });
|
|
@@ -601,7 +650,9 @@ export const layoutRowSchema = z
|
|
|
601
650
|
export const layoutZoneSchema = z
|
|
602
651
|
.object({
|
|
603
652
|
zone: slug64,
|
|
604
|
-
rows
|
|
653
|
+
// Max 200 rows per zone — a complex marketing page rarely exceeds
|
|
654
|
+
// 50; 200 is comfortable headroom. Caps payload-bomb DOS (audit P2).
|
|
655
|
+
rows: z.array(layoutRowSchema).max(200).default([]),
|
|
605
656
|
})
|
|
606
657
|
.refine((z) => new Set(z.rows.map((r) => r.order)).size === z.rows.length, { message: 'Row orders within a zone must be unique' });
|
|
607
658
|
// Layout shape — base object kept .omit-able by deferring the cross-field
|
|
@@ -613,7 +664,10 @@ const layoutBaseObject = z.object({
|
|
|
613
664
|
scope: layoutScopeSchema,
|
|
614
665
|
name: z.string().min(1).max(256),
|
|
615
666
|
pageMeta: pageMetaSchema.optional(),
|
|
616
|
-
zones
|
|
667
|
+
// Max 16 zones — covers narrow/wide/two-column/three-column/sidebar-*
|
|
668
|
+
// frames + virtual zones (footer, not-found, error) + room for
|
|
669
|
+
// operator-defined frames. Caps payload-bomb DOS (audit P2).
|
|
670
|
+
zones: z.array(layoutZoneSchema).max(16).default([]),
|
|
617
671
|
state: z.enum(['draft', 'published']).default('draft'),
|
|
618
672
|
publishedVersionId: z.string().uuid().optional(),
|
|
619
673
|
createdAt: z.string().datetime().optional(),
|