@seed-ship/mcp-ui-solid 5.4.0 → 5.5.1
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/CHANGELOG.md +81 -0
- package/dist/mcp-ui-spec/dist/schemas.cjs +493 -0
- package/dist/mcp-ui-spec/dist/schemas.cjs.map +1 -0
- package/dist/mcp-ui-spec/dist/schemas.js +493 -0
- package/dist/mcp-ui-spec/dist/schemas.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.cjs +118 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.cjs.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js +118 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.cjs +10 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.cjs.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js +10 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.cjs +8 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.cjs.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js +9 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.cjs +122 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.cjs.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js +122 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.cjs.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js +139 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.cjs +105 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.cjs.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js +106 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.cjs +3229 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.cjs.map +1 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js +3230 -0
- package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js.map +1 -0
- package/dist/services/validation.cjs +73 -154
- package/dist/services/validation.cjs.map +1 -1
- package/dist/services/validation.d.ts.map +1 -1
- package/dist/services/validation.js +73 -154
- package/dist/services/validation.js.map +1 -1
- package/package.json +3 -2
- package/src/services/validation.spec-migration.test.ts +207 -0
- package/src/services/validation.test.ts +53 -3
- package/src/services/validation.ts +143 -181
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
import { object as objectType, number as numberType, enum as enumType, boolean as booleanType, string as stringType, any as anyType, record as recordType, array as arrayType, union as unionType, unknown as unknownType, literal as literalType, tuple as tupleType } from "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js";
|
|
2
|
+
const GridPositionSchema = objectType({
|
|
3
|
+
colStart: numberType().int().min(1).max(12),
|
|
4
|
+
colSpan: numberType().int().min(1).max(12),
|
|
5
|
+
rowStart: numberType().int().min(1).optional(),
|
|
6
|
+
rowSpan: numberType().int().min(1).default(1).optional()
|
|
7
|
+
});
|
|
8
|
+
const ComponentTypeSchema = enumType([
|
|
9
|
+
"chart",
|
|
10
|
+
"table",
|
|
11
|
+
"metric",
|
|
12
|
+
"text",
|
|
13
|
+
"composite",
|
|
14
|
+
"grid",
|
|
15
|
+
// Phase 5.0: Nested grid layouts
|
|
16
|
+
"iframe",
|
|
17
|
+
"image",
|
|
18
|
+
"link",
|
|
19
|
+
"action",
|
|
20
|
+
// Phase 5.0: Tool call actions
|
|
21
|
+
"footer",
|
|
22
|
+
// Phase 5.0: Metadata footer
|
|
23
|
+
"carousel",
|
|
24
|
+
"artifact",
|
|
25
|
+
"form",
|
|
26
|
+
// Sprint 1: Form component
|
|
27
|
+
"modal",
|
|
28
|
+
// Sprint 3: Modal/dialog component
|
|
29
|
+
"action-group",
|
|
30
|
+
// Sprint 3: Action grouping component
|
|
31
|
+
"image-gallery",
|
|
32
|
+
// Sprint 5: Image gallery with lightbox
|
|
33
|
+
"video",
|
|
34
|
+
// Sprint 5: Video embed (YouTube, Vimeo, direct)
|
|
35
|
+
"code",
|
|
36
|
+
// Sprint 6: Syntax highlighted code block
|
|
37
|
+
"map"
|
|
38
|
+
// Sprint 6: Interactive map (Leaflet)
|
|
39
|
+
]);
|
|
40
|
+
const FormFieldOptionSchema = objectType({
|
|
41
|
+
label: stringType().min(1),
|
|
42
|
+
value: stringType(),
|
|
43
|
+
disabled: booleanType().optional()
|
|
44
|
+
});
|
|
45
|
+
const FormFieldTypeSchema = enumType([
|
|
46
|
+
"text",
|
|
47
|
+
"email",
|
|
48
|
+
"password",
|
|
49
|
+
"number",
|
|
50
|
+
"date",
|
|
51
|
+
"textarea",
|
|
52
|
+
"select",
|
|
53
|
+
"checkbox",
|
|
54
|
+
"radio",
|
|
55
|
+
"autocomplete",
|
|
56
|
+
"range",
|
|
57
|
+
"tags",
|
|
58
|
+
"toggle",
|
|
59
|
+
"fieldset"
|
|
60
|
+
]);
|
|
61
|
+
const ShowWhenOperatorSchema = enumType([
|
|
62
|
+
"equals",
|
|
63
|
+
"notEquals",
|
|
64
|
+
"in",
|
|
65
|
+
"notIn",
|
|
66
|
+
"contains",
|
|
67
|
+
"startsWith",
|
|
68
|
+
"endsWith",
|
|
69
|
+
"greaterThan",
|
|
70
|
+
"lessThan",
|
|
71
|
+
"isEmpty",
|
|
72
|
+
"isNotEmpty",
|
|
73
|
+
"isTrue",
|
|
74
|
+
"isFalse"
|
|
75
|
+
]);
|
|
76
|
+
const ShowWhenConditionSchema = objectType({
|
|
77
|
+
field: stringType().min(1),
|
|
78
|
+
operator: ShowWhenOperatorSchema,
|
|
79
|
+
value: anyType().optional()
|
|
80
|
+
});
|
|
81
|
+
const PrefillSourceSchema = enumType(["user", "detected", "inferred", "default"]);
|
|
82
|
+
const FormFieldSchema = objectType({
|
|
83
|
+
name: stringType().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/),
|
|
84
|
+
type: FormFieldTypeSchema,
|
|
85
|
+
label: stringType().optional(),
|
|
86
|
+
placeholder: stringType().optional(),
|
|
87
|
+
helpText: stringType().optional(),
|
|
88
|
+
required: booleanType().optional(),
|
|
89
|
+
disabled: booleanType().optional(),
|
|
90
|
+
defaultValue: anyType().optional(),
|
|
91
|
+
// Prefill — pre-populated value with source tracking (v4.2.0)
|
|
92
|
+
prefill: unionType([stringType(), arrayType(stringType())]).optional(),
|
|
93
|
+
displayHint: stringType().optional(),
|
|
94
|
+
source: PrefillSourceSchema.optional(),
|
|
95
|
+
muted: booleanType().optional(),
|
|
96
|
+
// Prefill mode for autocomplete fields (v4.3.0)
|
|
97
|
+
prefillMode: enumType(["exact", "resolve"]).optional(),
|
|
98
|
+
// Value format validation (v4.3.0)
|
|
99
|
+
valueFormat: stringType().optional(),
|
|
100
|
+
valueFormatHint: stringType().optional(),
|
|
101
|
+
// Text/textarea specific
|
|
102
|
+
minLength: numberType().int().min(0).optional(),
|
|
103
|
+
maxLength: numberType().int().min(1).optional(),
|
|
104
|
+
pattern: stringType().optional(),
|
|
105
|
+
// Number specific
|
|
106
|
+
min: numberType().optional(),
|
|
107
|
+
max: numberType().optional(),
|
|
108
|
+
step: numberType().optional(),
|
|
109
|
+
// Date specific
|
|
110
|
+
minDate: stringType().optional(),
|
|
111
|
+
maxDate: stringType().optional(),
|
|
112
|
+
// Select/Radio specific
|
|
113
|
+
options: arrayType(FormFieldOptionSchema).optional(),
|
|
114
|
+
// Multi-select (v2.6.0)
|
|
115
|
+
multiple: booleanType().optional(),
|
|
116
|
+
// Autocomplete specific (v2.6.0)
|
|
117
|
+
apiUrl: stringType().url().optional(),
|
|
118
|
+
searchParam: stringType().optional(),
|
|
119
|
+
labelField: stringType().optional(),
|
|
120
|
+
valueField: stringType().optional(),
|
|
121
|
+
extraParams: recordType(stringType()).optional(),
|
|
122
|
+
minChars: numberType().int().min(0).optional(),
|
|
123
|
+
debounceMs: numberType().int().min(0).optional(),
|
|
124
|
+
// Dependent field (v2.7.0)
|
|
125
|
+
dependsOn: objectType({
|
|
126
|
+
field: stringType(),
|
|
127
|
+
apiUrl: stringType(),
|
|
128
|
+
labelField: stringType(),
|
|
129
|
+
valueField: stringType(),
|
|
130
|
+
extraParams: recordType(stringType()).optional()
|
|
131
|
+
}).optional(),
|
|
132
|
+
// Field status — API capability indicator (v2.11.0)
|
|
133
|
+
fieldStatus: enumType(["required", "optional", "unsupported", "unknown"]).optional(),
|
|
134
|
+
statusReason: stringType().optional(),
|
|
135
|
+
// Checkbox specific
|
|
136
|
+
checkboxLabel: stringType().optional(),
|
|
137
|
+
// Textarea specific
|
|
138
|
+
rows: numberType().int().min(1).max(20).optional(),
|
|
139
|
+
// Conditional visibility
|
|
140
|
+
showWhen: ShowWhenConditionSchema.optional()
|
|
141
|
+
});
|
|
142
|
+
const FormSubmitActionSchema = objectType({
|
|
143
|
+
toolName: stringType().min(1),
|
|
144
|
+
params: recordType(unknownType()).optional()
|
|
145
|
+
});
|
|
146
|
+
objectType({
|
|
147
|
+
title: stringType().optional(),
|
|
148
|
+
fields: arrayType(FormFieldSchema).min(1),
|
|
149
|
+
submitLabel: stringType().optional(),
|
|
150
|
+
showReset: booleanType().optional(),
|
|
151
|
+
submitAction: FormSubmitActionSchema.optional(),
|
|
152
|
+
// Persistence options (Sprint 4)
|
|
153
|
+
persistKey: stringType().optional(),
|
|
154
|
+
excludeFromPersistence: arrayType(stringType()).optional(),
|
|
155
|
+
persistExpiresIn: numberType().int().positive().optional(),
|
|
156
|
+
layout: enumType(["vertical", "horizontal", "inline"]).optional(),
|
|
157
|
+
// Auto-submit countdown in ms when all required fields are prefilled (v4.2.0)
|
|
158
|
+
autoSubmitDelay: numberType().int().min(1e3).max(3e4).optional()
|
|
159
|
+
});
|
|
160
|
+
const ModalSizeSchema = enumType(["sm", "md", "lg", "xl", "full"]);
|
|
161
|
+
objectType({
|
|
162
|
+
title: stringType().optional(),
|
|
163
|
+
size: ModalSizeSchema.optional(),
|
|
164
|
+
showClose: booleanType().optional(),
|
|
165
|
+
closeOnEscape: booleanType().optional(),
|
|
166
|
+
closeOnBackdrop: booleanType().optional(),
|
|
167
|
+
maxHeight: stringType().optional()
|
|
168
|
+
// Note: content and footer are UIComponent references, validated separately
|
|
169
|
+
});
|
|
170
|
+
const ActionGroupLayoutSchema = enumType([
|
|
171
|
+
"horizontal",
|
|
172
|
+
"vertical",
|
|
173
|
+
"space-between",
|
|
174
|
+
"end",
|
|
175
|
+
"center"
|
|
176
|
+
]);
|
|
177
|
+
const ActionGroupGapSchema = enumType(["none", "sm", "md", "lg"]);
|
|
178
|
+
const ActionParamsSchema = objectType({
|
|
179
|
+
label: stringType().min(1),
|
|
180
|
+
type: enumType(["button", "link"]).optional(),
|
|
181
|
+
action: enumType(["tool-call", "link", "submit"]).optional(),
|
|
182
|
+
toolName: stringType().optional(),
|
|
183
|
+
params: recordType(unknownType()).optional(),
|
|
184
|
+
url: stringType().optional(),
|
|
185
|
+
variant: enumType(["primary", "secondary", "outline", "ghost", "danger"]).optional(),
|
|
186
|
+
size: enumType(["sm", "md", "lg"]).optional(),
|
|
187
|
+
icon: stringType().optional(),
|
|
188
|
+
disabled: booleanType().optional()
|
|
189
|
+
});
|
|
190
|
+
const ActionGroupParamsSchema = objectType({
|
|
191
|
+
actions: arrayType(ActionParamsSchema).min(1),
|
|
192
|
+
layout: ActionGroupLayoutSchema.optional(),
|
|
193
|
+
gap: ActionGroupGapSchema.optional(),
|
|
194
|
+
fullWidth: booleanType().optional(),
|
|
195
|
+
label: stringType().optional()
|
|
196
|
+
});
|
|
197
|
+
const GalleryImageSchema = objectType({
|
|
198
|
+
url: stringType().url(),
|
|
199
|
+
thumbnail: stringType().url().optional(),
|
|
200
|
+
alt: stringType().optional(),
|
|
201
|
+
caption: stringType().optional(),
|
|
202
|
+
srcset: stringType().optional(),
|
|
203
|
+
sizes: stringType().optional()
|
|
204
|
+
});
|
|
205
|
+
enumType(["2", "3", "4", "5"]).transform(Number);
|
|
206
|
+
const ImageGalleryGapSchema = enumType(["none", "sm", "md", "lg"]);
|
|
207
|
+
const ImageGalleryAspectRatioSchema = enumType(["1:1", "16:9", "4:3", "auto"]);
|
|
208
|
+
const ImageGalleryParamsSchema = objectType({
|
|
209
|
+
title: stringType().optional(),
|
|
210
|
+
images: arrayType(GalleryImageSchema).min(1),
|
|
211
|
+
columns: unionType([literalType(2), literalType(3), literalType(4), literalType(5)]).optional(),
|
|
212
|
+
gap: ImageGalleryGapSchema.optional(),
|
|
213
|
+
aspectRatio: ImageGalleryAspectRatioSchema.optional(),
|
|
214
|
+
lightbox: booleanType().optional(),
|
|
215
|
+
showCaptions: booleanType().optional()
|
|
216
|
+
});
|
|
217
|
+
const VideoAspectRatioSchema = enumType(["16:9", "4:3", "1:1", "21:9"]);
|
|
218
|
+
const VideoComponentParamsSchema = objectType({
|
|
219
|
+
url: stringType().url(),
|
|
220
|
+
title: stringType().optional(),
|
|
221
|
+
caption: stringType().optional(),
|
|
222
|
+
poster: stringType().url().optional(),
|
|
223
|
+
aspectRatio: VideoAspectRatioSchema.optional(),
|
|
224
|
+
autoplay: booleanType().optional(),
|
|
225
|
+
controls: booleanType().optional(),
|
|
226
|
+
loop: booleanType().optional(),
|
|
227
|
+
muted: booleanType().optional(),
|
|
228
|
+
startTime: numberType().int().min(0).optional()
|
|
229
|
+
});
|
|
230
|
+
const CodeComponentParamsSchema = objectType({
|
|
231
|
+
code: stringType(),
|
|
232
|
+
language: stringType().optional(),
|
|
233
|
+
filename: stringType().optional(),
|
|
234
|
+
showLineNumbers: booleanType().optional(),
|
|
235
|
+
startLine: numberType().optional(),
|
|
236
|
+
highlightLines: arrayType(numberType()).optional(),
|
|
237
|
+
maxHeight: stringType().optional(),
|
|
238
|
+
theme: enumType(["light", "dark"]).optional()
|
|
239
|
+
});
|
|
240
|
+
const MapMarkerSchema = objectType({
|
|
241
|
+
position: tupleType([numberType(), numberType()]),
|
|
242
|
+
tooltip: stringType().optional(),
|
|
243
|
+
popup: stringType().optional()
|
|
244
|
+
});
|
|
245
|
+
objectType({
|
|
246
|
+
center: tupleType([numberType(), numberType()]).optional(),
|
|
247
|
+
zoom: numberType().optional(),
|
|
248
|
+
markers: arrayType(MapMarkerSchema).optional(),
|
|
249
|
+
height: stringType().optional(),
|
|
250
|
+
fitBounds: booleanType().optional(),
|
|
251
|
+
zoomControl: booleanType().optional(),
|
|
252
|
+
scrollWheelZoom: booleanType().optional(),
|
|
253
|
+
tileLayer: stringType().optional(),
|
|
254
|
+
attribution: stringType().optional()
|
|
255
|
+
});
|
|
256
|
+
const ChartTypeSchema = enumType([
|
|
257
|
+
"bar",
|
|
258
|
+
"line",
|
|
259
|
+
"pie",
|
|
260
|
+
"doughnut",
|
|
261
|
+
"radar",
|
|
262
|
+
"scatter",
|
|
263
|
+
"bubble",
|
|
264
|
+
"polarArea"
|
|
265
|
+
]);
|
|
266
|
+
const ChartDatasetSchema = objectType({
|
|
267
|
+
label: stringType(),
|
|
268
|
+
// Either an array of numbers or an array of {x, y} points (Chart.js shapes)
|
|
269
|
+
data: unionType([
|
|
270
|
+
arrayType(numberType()),
|
|
271
|
+
arrayType(
|
|
272
|
+
objectType({
|
|
273
|
+
x: unionType([stringType(), numberType()]),
|
|
274
|
+
y: numberType()
|
|
275
|
+
})
|
|
276
|
+
)
|
|
277
|
+
]),
|
|
278
|
+
backgroundColor: unionType([stringType(), arrayType(stringType())]).optional(),
|
|
279
|
+
borderColor: unionType([stringType(), arrayType(stringType())]).optional(),
|
|
280
|
+
borderWidth: numberType().optional(),
|
|
281
|
+
fill: unionType([booleanType(), stringType()]).optional(),
|
|
282
|
+
tension: numberType().optional()
|
|
283
|
+
});
|
|
284
|
+
const ChartTimeAxisSchema = objectType({
|
|
285
|
+
parser: stringType().optional(),
|
|
286
|
+
unit: enumType(["day", "week", "month", "quarter", "year"]).optional(),
|
|
287
|
+
tooltipFormat: stringType().optional(),
|
|
288
|
+
min: stringType().optional(),
|
|
289
|
+
max: stringType().optional()
|
|
290
|
+
});
|
|
291
|
+
objectType({
|
|
292
|
+
type: ChartTypeSchema,
|
|
293
|
+
title: stringType().optional(),
|
|
294
|
+
data: objectType({
|
|
295
|
+
labels: arrayType(stringType()),
|
|
296
|
+
datasets: arrayType(ChartDatasetSchema)
|
|
297
|
+
}),
|
|
298
|
+
options: objectType({
|
|
299
|
+
responsive: booleanType().optional(),
|
|
300
|
+
maintainAspectRatio: booleanType().optional(),
|
|
301
|
+
tension: numberType().optional(),
|
|
302
|
+
// `scales` and `plugins` are Chart.js opaque config objects — kept loose
|
|
303
|
+
scales: unknownType().optional(),
|
|
304
|
+
plugins: unknownType().optional()
|
|
305
|
+
}).optional(),
|
|
306
|
+
renderer: enumType(["native", "iframe", "auto"]).optional(),
|
|
307
|
+
exportable: booleanType().optional(),
|
|
308
|
+
timeAxis: ChartTimeAxisSchema.optional(),
|
|
309
|
+
height: stringType().optional(),
|
|
310
|
+
className: stringType().optional()
|
|
311
|
+
});
|
|
312
|
+
const TableColumnSchema = objectType({
|
|
313
|
+
key: stringType().min(1),
|
|
314
|
+
label: stringType(),
|
|
315
|
+
sortable: booleanType().optional(),
|
|
316
|
+
width: stringType().optional()
|
|
317
|
+
});
|
|
318
|
+
const TablePaginationSchema = objectType({
|
|
319
|
+
currentPage: numberType().int().min(1),
|
|
320
|
+
pageSize: numberType().int().min(1),
|
|
321
|
+
totalRows: numberType().int().min(0)
|
|
322
|
+
});
|
|
323
|
+
const TableVirtualizeOptionsSchema = objectType({
|
|
324
|
+
enabled: booleanType().optional(),
|
|
325
|
+
rowHeight: numberType().int().min(1).optional(),
|
|
326
|
+
overscan: numberType().int().min(0).optional(),
|
|
327
|
+
threshold: numberType().int().min(1).optional()
|
|
328
|
+
});
|
|
329
|
+
const TableExportableSchema = unionType([
|
|
330
|
+
booleanType(),
|
|
331
|
+
objectType({
|
|
332
|
+
formats: arrayType(enumType(["csv", "tsv", "json"])).optional(),
|
|
333
|
+
filename: stringType().optional()
|
|
334
|
+
})
|
|
335
|
+
]);
|
|
336
|
+
objectType({
|
|
337
|
+
title: stringType().optional(),
|
|
338
|
+
columns: arrayType(TableColumnSchema).min(1),
|
|
339
|
+
rows: arrayType(recordType(unknownType())),
|
|
340
|
+
pagination: TablePaginationSchema.optional(),
|
|
341
|
+
virtualize: unionType([booleanType(), TableVirtualizeOptionsSchema]).optional(),
|
|
342
|
+
exportable: TableExportableSchema.optional(),
|
|
343
|
+
className: stringType().optional()
|
|
344
|
+
});
|
|
345
|
+
const MetricTrendSchema = objectType({
|
|
346
|
+
value: numberType(),
|
|
347
|
+
direction: enumType(["up", "down", "neutral"])
|
|
348
|
+
});
|
|
349
|
+
const MetricComponentParamsSchema = objectType({
|
|
350
|
+
title: stringType().min(1),
|
|
351
|
+
value: unionType([stringType(), numberType()]),
|
|
352
|
+
unit: stringType().optional(),
|
|
353
|
+
trend: MetricTrendSchema.optional(),
|
|
354
|
+
subtitle: stringType().optional(),
|
|
355
|
+
icon: stringType().optional(),
|
|
356
|
+
className: stringType().optional()
|
|
357
|
+
});
|
|
358
|
+
const TextComponentParamsSchema = objectType({
|
|
359
|
+
content: stringType().min(1),
|
|
360
|
+
markdown: booleanType().optional(),
|
|
361
|
+
className: stringType().optional()
|
|
362
|
+
});
|
|
363
|
+
const IframeComponentParamsSchema = objectType({
|
|
364
|
+
url: stringType().min(1),
|
|
365
|
+
title: stringType().optional(),
|
|
366
|
+
height: stringType().optional(),
|
|
367
|
+
className: stringType().optional()
|
|
368
|
+
});
|
|
369
|
+
const ImageComponentParamsSchema = objectType({
|
|
370
|
+
url: stringType().min(1),
|
|
371
|
+
alt: stringType().optional(),
|
|
372
|
+
caption: stringType().optional(),
|
|
373
|
+
className: stringType().optional()
|
|
374
|
+
});
|
|
375
|
+
const LinkComponentParamsSchema = objectType({
|
|
376
|
+
url: stringType().min(1),
|
|
377
|
+
label: stringType().optional(),
|
|
378
|
+
description: stringType().optional(),
|
|
379
|
+
className: stringType().optional()
|
|
380
|
+
});
|
|
381
|
+
const CarouselComponentParamsSchema = objectType({
|
|
382
|
+
items: arrayType(unknownType()).min(1),
|
|
383
|
+
height: stringType().optional(),
|
|
384
|
+
className: stringType().optional()
|
|
385
|
+
});
|
|
386
|
+
const ArtifactComponentParamsSchema = objectType({
|
|
387
|
+
url: stringType().min(1),
|
|
388
|
+
filename: stringType().min(1),
|
|
389
|
+
mimeType: stringType().min(1),
|
|
390
|
+
size: numberType().int().min(0).optional(),
|
|
391
|
+
description: stringType().optional()
|
|
392
|
+
});
|
|
393
|
+
const SandboxFlagSchema = enumType([
|
|
394
|
+
"allow-scripts",
|
|
395
|
+
"allow-same-origin",
|
|
396
|
+
"allow-forms",
|
|
397
|
+
"allow-popups",
|
|
398
|
+
"allow-modals"
|
|
399
|
+
]);
|
|
400
|
+
const SecurityConstraintsSchema = objectType({
|
|
401
|
+
requiresAuth: booleanType().default(false).optional(),
|
|
402
|
+
allowedDomains: arrayType(stringType()).optional(),
|
|
403
|
+
maxIframeDepth: numberType().int().min(0).max(3).default(1).optional(),
|
|
404
|
+
sandboxFlags: arrayType(SandboxFlagSchema).optional()
|
|
405
|
+
});
|
|
406
|
+
const PerformanceConstraintsSchema = objectType({
|
|
407
|
+
maxRenderTime: numberType().int().min(100).default(5e3).optional(),
|
|
408
|
+
maxDataSize: numberType().int().min(1024).default(102400).optional()
|
|
409
|
+
});
|
|
410
|
+
const ComponentSchemaSchema = objectType({
|
|
411
|
+
type: literalType("object"),
|
|
412
|
+
required: arrayType(stringType()).optional(),
|
|
413
|
+
properties: recordType(unknownType()),
|
|
414
|
+
additionalProperties: booleanType().optional()
|
|
415
|
+
});
|
|
416
|
+
const ComponentExampleSchema = objectType({
|
|
417
|
+
name: stringType().min(1),
|
|
418
|
+
description: stringType().optional(),
|
|
419
|
+
params: recordType(unknownType()),
|
|
420
|
+
position: GridPositionSchema.optional()
|
|
421
|
+
});
|
|
422
|
+
const ComponentSchema = objectType({
|
|
423
|
+
id: stringType().regex(/^[a-z0-9-]+$/),
|
|
424
|
+
type: ComponentTypeSchema,
|
|
425
|
+
name: stringType().min(1),
|
|
426
|
+
description: stringType().optional(),
|
|
427
|
+
schema: ComponentSchemaSchema,
|
|
428
|
+
examples: arrayType(ComponentExampleSchema).min(1),
|
|
429
|
+
security: SecurityConstraintsSchema.optional(),
|
|
430
|
+
performance: PerformanceConstraintsSchema.optional(),
|
|
431
|
+
tags: arrayType(stringType().regex(/^[a-z0-9-]+$/)).optional(),
|
|
432
|
+
version: stringType().regex(/^\d+\.\d+\.\d+$/).optional(),
|
|
433
|
+
deprecated: booleanType().default(false).optional(),
|
|
434
|
+
deprecationMessage: stringType().optional()
|
|
435
|
+
});
|
|
436
|
+
const RegistryMetadataSchema = objectType({
|
|
437
|
+
name: stringType().optional(),
|
|
438
|
+
description: stringType().optional(),
|
|
439
|
+
author: stringType().optional(),
|
|
440
|
+
repository: stringType().url().optional()
|
|
441
|
+
});
|
|
442
|
+
objectType({
|
|
443
|
+
version: literalType("1.0.0"),
|
|
444
|
+
metadata: RegistryMetadataSchema.optional(),
|
|
445
|
+
components: arrayType(ComponentSchema).min(1)
|
|
446
|
+
});
|
|
447
|
+
export {
|
|
448
|
+
ActionGroupGapSchema,
|
|
449
|
+
ActionGroupLayoutSchema,
|
|
450
|
+
ActionGroupParamsSchema,
|
|
451
|
+
ActionParamsSchema,
|
|
452
|
+
ArtifactComponentParamsSchema,
|
|
453
|
+
CarouselComponentParamsSchema,
|
|
454
|
+
ChartDatasetSchema,
|
|
455
|
+
ChartTimeAxisSchema,
|
|
456
|
+
ChartTypeSchema,
|
|
457
|
+
CodeComponentParamsSchema,
|
|
458
|
+
ComponentExampleSchema,
|
|
459
|
+
ComponentSchema,
|
|
460
|
+
ComponentSchemaSchema,
|
|
461
|
+
ComponentTypeSchema,
|
|
462
|
+
FormFieldOptionSchema,
|
|
463
|
+
FormFieldSchema,
|
|
464
|
+
FormFieldTypeSchema,
|
|
465
|
+
FormSubmitActionSchema,
|
|
466
|
+
GalleryImageSchema,
|
|
467
|
+
GridPositionSchema,
|
|
468
|
+
IframeComponentParamsSchema,
|
|
469
|
+
ImageComponentParamsSchema,
|
|
470
|
+
ImageGalleryAspectRatioSchema,
|
|
471
|
+
ImageGalleryGapSchema,
|
|
472
|
+
ImageGalleryParamsSchema,
|
|
473
|
+
LinkComponentParamsSchema,
|
|
474
|
+
MapMarkerSchema,
|
|
475
|
+
MetricComponentParamsSchema,
|
|
476
|
+
MetricTrendSchema,
|
|
477
|
+
ModalSizeSchema,
|
|
478
|
+
PerformanceConstraintsSchema,
|
|
479
|
+
PrefillSourceSchema,
|
|
480
|
+
RegistryMetadataSchema,
|
|
481
|
+
SandboxFlagSchema,
|
|
482
|
+
SecurityConstraintsSchema,
|
|
483
|
+
ShowWhenConditionSchema,
|
|
484
|
+
ShowWhenOperatorSchema,
|
|
485
|
+
TableColumnSchema,
|
|
486
|
+
TableExportableSchema,
|
|
487
|
+
TablePaginationSchema,
|
|
488
|
+
TableVirtualizeOptionsSchema,
|
|
489
|
+
TextComponentParamsSchema,
|
|
490
|
+
VideoAspectRatioSchema,
|
|
491
|
+
VideoComponentParamsSchema
|
|
492
|
+
};
|
|
493
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sources":["../../../../mcp-ui-spec/dist/schemas.js"],"sourcesContent":["import { z } from \"zod\";\nconst GridPositionSchema = z.object({\n colStart: z.number().int().min(1).max(12),\n colSpan: z.number().int().min(1).max(12),\n rowStart: z.number().int().min(1).optional(),\n rowSpan: z.number().int().min(1).default(1).optional()\n});\nconst ComponentTypeSchema = z.enum([\n \"chart\",\n \"table\",\n \"metric\",\n \"text\",\n \"composite\",\n \"grid\",\n // Phase 5.0: Nested grid layouts\n \"iframe\",\n \"image\",\n \"link\",\n \"action\",\n // Phase 5.0: Tool call actions\n \"footer\",\n // Phase 5.0: Metadata footer\n \"carousel\",\n \"artifact\",\n \"form\",\n // Sprint 1: Form component\n \"modal\",\n // Sprint 3: Modal/dialog component\n \"action-group\",\n // Sprint 3: Action grouping component\n \"image-gallery\",\n // Sprint 5: Image gallery with lightbox\n \"video\",\n // Sprint 5: Video embed (YouTube, Vimeo, direct)\n \"code\",\n // Sprint 6: Syntax highlighted code block\n \"map\"\n // Sprint 6: Interactive map (Leaflet)\n]);\nconst FormFieldOptionSchema = z.object({\n label: z.string().min(1),\n value: z.string(),\n disabled: z.boolean().optional()\n});\nconst FormFieldTypeSchema = z.enum([\n \"text\",\n \"email\",\n \"password\",\n \"number\",\n \"date\",\n \"textarea\",\n \"select\",\n \"checkbox\",\n \"radio\",\n \"autocomplete\",\n \"range\",\n \"tags\",\n \"toggle\",\n \"fieldset\"\n]);\nconst ShowWhenOperatorSchema = z.enum([\n \"equals\",\n \"notEquals\",\n \"in\",\n \"notIn\",\n \"contains\",\n \"startsWith\",\n \"endsWith\",\n \"greaterThan\",\n \"lessThan\",\n \"isEmpty\",\n \"isNotEmpty\",\n \"isTrue\",\n \"isFalse\"\n]);\nconst ShowWhenConditionSchema = z.object({\n field: z.string().min(1),\n operator: ShowWhenOperatorSchema,\n value: z.any().optional()\n});\nconst PrefillSourceSchema = z.enum([\"user\", \"detected\", \"inferred\", \"default\"]);\nconst FormFieldSchema = z.object({\n name: z.string().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/),\n type: FormFieldTypeSchema,\n label: z.string().optional(),\n placeholder: z.string().optional(),\n helpText: z.string().optional(),\n required: z.boolean().optional(),\n disabled: z.boolean().optional(),\n defaultValue: z.any().optional(),\n // Prefill — pre-populated value with source tracking (v4.2.0)\n prefill: z.union([z.string(), z.array(z.string())]).optional(),\n displayHint: z.string().optional(),\n source: PrefillSourceSchema.optional(),\n muted: z.boolean().optional(),\n // Prefill mode for autocomplete fields (v4.3.0)\n prefillMode: z.enum([\"exact\", \"resolve\"]).optional(),\n // Value format validation (v4.3.0)\n valueFormat: z.string().optional(),\n valueFormatHint: z.string().optional(),\n // Text/textarea specific\n minLength: z.number().int().min(0).optional(),\n maxLength: z.number().int().min(1).optional(),\n pattern: z.string().optional(),\n // Number specific\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n // Date specific\n minDate: z.string().optional(),\n maxDate: z.string().optional(),\n // Select/Radio specific\n options: z.array(FormFieldOptionSchema).optional(),\n // Multi-select (v2.6.0)\n multiple: z.boolean().optional(),\n // Autocomplete specific (v2.6.0)\n apiUrl: z.string().url().optional(),\n searchParam: z.string().optional(),\n labelField: z.string().optional(),\n valueField: z.string().optional(),\n extraParams: z.record(z.string()).optional(),\n minChars: z.number().int().min(0).optional(),\n debounceMs: z.number().int().min(0).optional(),\n // Dependent field (v2.7.0)\n dependsOn: z.object({\n field: z.string(),\n apiUrl: z.string(),\n labelField: z.string(),\n valueField: z.string(),\n extraParams: z.record(z.string()).optional()\n }).optional(),\n // Field status — API capability indicator (v2.11.0)\n fieldStatus: z.enum([\"required\", \"optional\", \"unsupported\", \"unknown\"]).optional(),\n statusReason: z.string().optional(),\n // Checkbox specific\n checkboxLabel: z.string().optional(),\n // Textarea specific\n rows: z.number().int().min(1).max(20).optional(),\n // Conditional visibility\n showWhen: ShowWhenConditionSchema.optional()\n});\nconst FormSubmitActionSchema = z.object({\n toolName: z.string().min(1),\n params: z.record(z.unknown()).optional()\n});\nconst FormComponentParamsSchema = z.object({\n title: z.string().optional(),\n fields: z.array(FormFieldSchema).min(1),\n submitLabel: z.string().optional(),\n showReset: z.boolean().optional(),\n submitAction: FormSubmitActionSchema.optional(),\n // Persistence options (Sprint 4)\n persistKey: z.string().optional(),\n excludeFromPersistence: z.array(z.string()).optional(),\n persistExpiresIn: z.number().int().positive().optional(),\n layout: z.enum([\"vertical\", \"horizontal\", \"inline\"]).optional(),\n // Auto-submit countdown in ms when all required fields are prefilled (v4.2.0)\n autoSubmitDelay: z.number().int().min(1e3).max(3e4).optional()\n});\nconst ModalSizeSchema = z.enum([\"sm\", \"md\", \"lg\", \"xl\", \"full\"]);\nconst ModalComponentParamsSchema = z.object({\n title: z.string().optional(),\n size: ModalSizeSchema.optional(),\n showClose: z.boolean().optional(),\n closeOnEscape: z.boolean().optional(),\n closeOnBackdrop: z.boolean().optional(),\n maxHeight: z.string().optional()\n // Note: content and footer are UIComponent references, validated separately\n});\nconst ActionGroupLayoutSchema = z.enum([\n \"horizontal\",\n \"vertical\",\n \"space-between\",\n \"end\",\n \"center\"\n]);\nconst ActionGroupGapSchema = z.enum([\"none\", \"sm\", \"md\", \"lg\"]);\nconst ActionParamsSchema = z.object({\n label: z.string().min(1),\n type: z.enum([\"button\", \"link\"]).optional(),\n action: z.enum([\"tool-call\", \"link\", \"submit\"]).optional(),\n toolName: z.string().optional(),\n params: z.record(z.unknown()).optional(),\n url: z.string().optional(),\n variant: z.enum([\"primary\", \"secondary\", \"outline\", \"ghost\", \"danger\"]).optional(),\n size: z.enum([\"sm\", \"md\", \"lg\"]).optional(),\n icon: z.string().optional(),\n disabled: z.boolean().optional()\n});\nconst ActionGroupParamsSchema = z.object({\n actions: z.array(ActionParamsSchema).min(1),\n layout: ActionGroupLayoutSchema.optional(),\n gap: ActionGroupGapSchema.optional(),\n fullWidth: z.boolean().optional(),\n label: z.string().optional()\n});\nconst GalleryImageSchema = z.object({\n url: z.string().url(),\n thumbnail: z.string().url().optional(),\n alt: z.string().optional(),\n caption: z.string().optional(),\n srcset: z.string().optional(),\n sizes: z.string().optional()\n});\nconst ImageGalleryColumnsSchema = z.enum([\"2\", \"3\", \"4\", \"5\"]).transform(Number);\nconst ImageGalleryGapSchema = z.enum([\"none\", \"sm\", \"md\", \"lg\"]);\nconst ImageGalleryAspectRatioSchema = z.enum([\"1:1\", \"16:9\", \"4:3\", \"auto\"]);\nconst ImageGalleryParamsSchema = z.object({\n title: z.string().optional(),\n images: z.array(GalleryImageSchema).min(1),\n columns: z.union([z.literal(2), z.literal(3), z.literal(4), z.literal(5)]).optional(),\n gap: ImageGalleryGapSchema.optional(),\n aspectRatio: ImageGalleryAspectRatioSchema.optional(),\n lightbox: z.boolean().optional(),\n showCaptions: z.boolean().optional()\n});\nconst VideoAspectRatioSchema = z.enum([\"16:9\", \"4:3\", \"1:1\", \"21:9\"]);\nconst VideoComponentParamsSchema = z.object({\n url: z.string().url(),\n title: z.string().optional(),\n caption: z.string().optional(),\n poster: z.string().url().optional(),\n aspectRatio: VideoAspectRatioSchema.optional(),\n autoplay: z.boolean().optional(),\n controls: z.boolean().optional(),\n loop: z.boolean().optional(),\n muted: z.boolean().optional(),\n startTime: z.number().int().min(0).optional()\n});\nconst CodeComponentParamsSchema = z.object({\n code: z.string(),\n language: z.string().optional(),\n filename: z.string().optional(),\n showLineNumbers: z.boolean().optional(),\n startLine: z.number().optional(),\n highlightLines: z.array(z.number()).optional(),\n maxHeight: z.string().optional(),\n theme: z.enum([\"light\", \"dark\"]).optional()\n});\nconst MapMarkerSchema = z.object({\n position: z.tuple([z.number(), z.number()]),\n tooltip: z.string().optional(),\n popup: z.string().optional()\n});\nconst MapComponentParamsSchema = z.object({\n center: z.tuple([z.number(), z.number()]).optional(),\n zoom: z.number().optional(),\n markers: z.array(MapMarkerSchema).optional(),\n height: z.string().optional(),\n fitBounds: z.boolean().optional(),\n zoomControl: z.boolean().optional(),\n scrollWheelZoom: z.boolean().optional(),\n tileLayer: z.string().optional(),\n attribution: z.string().optional()\n});\nconst ChartTypeSchema = z.enum([\n \"bar\",\n \"line\",\n \"pie\",\n \"doughnut\",\n \"radar\",\n \"scatter\",\n \"bubble\",\n \"polarArea\"\n]);\nconst ChartDatasetSchema = z.object({\n label: z.string(),\n // Either an array of numbers or an array of {x, y} points (Chart.js shapes)\n data: z.union([\n z.array(z.number()),\n z.array(\n z.object({\n x: z.union([z.string(), z.number()]),\n y: z.number()\n })\n )\n ]),\n backgroundColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderWidth: z.number().optional(),\n fill: z.union([z.boolean(), z.string()]).optional(),\n tension: z.number().optional()\n});\nconst ChartTimeAxisSchema = z.object({\n parser: z.string().optional(),\n unit: z.enum([\"day\", \"week\", \"month\", \"quarter\", \"year\"]).optional(),\n tooltipFormat: z.string().optional(),\n min: z.string().optional(),\n max: z.string().optional()\n});\nconst ChartComponentParamsSchema = z.object({\n type: ChartTypeSchema,\n title: z.string().optional(),\n data: z.object({\n labels: z.array(z.string()),\n datasets: z.array(ChartDatasetSchema)\n }),\n options: z.object({\n responsive: z.boolean().optional(),\n maintainAspectRatio: z.boolean().optional(),\n tension: z.number().optional(),\n // `scales` and `plugins` are Chart.js opaque config objects — kept loose\n scales: z.unknown().optional(),\n plugins: z.unknown().optional()\n }).optional(),\n renderer: z.enum([\"native\", \"iframe\", \"auto\"]).optional(),\n exportable: z.boolean().optional(),\n timeAxis: ChartTimeAxisSchema.optional(),\n height: z.string().optional(),\n className: z.string().optional()\n});\nconst TableColumnSchema = z.object({\n key: z.string().min(1),\n label: z.string(),\n sortable: z.boolean().optional(),\n width: z.string().optional()\n});\nconst TablePaginationSchema = z.object({\n currentPage: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n totalRows: z.number().int().min(0)\n});\nconst TableVirtualizeOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n rowHeight: z.number().int().min(1).optional(),\n overscan: z.number().int().min(0).optional(),\n threshold: z.number().int().min(1).optional()\n});\nconst TableExportableSchema = z.union([\n z.boolean(),\n z.object({\n formats: z.array(z.enum([\"csv\", \"tsv\", \"json\"])).optional(),\n filename: z.string().optional()\n })\n]);\nconst TableComponentParamsSchema = z.object({\n title: z.string().optional(),\n columns: z.array(TableColumnSchema).min(1),\n rows: z.array(z.record(z.unknown())),\n pagination: TablePaginationSchema.optional(),\n virtualize: z.union([z.boolean(), TableVirtualizeOptionsSchema]).optional(),\n exportable: TableExportableSchema.optional(),\n className: z.string().optional()\n});\nconst MetricTrendSchema = z.object({\n value: z.number(),\n direction: z.enum([\"up\", \"down\", \"neutral\"])\n});\nconst MetricComponentParamsSchema = z.object({\n title: z.string().min(1),\n value: z.union([z.string(), z.number()]),\n unit: z.string().optional(),\n trend: MetricTrendSchema.optional(),\n subtitle: z.string().optional(),\n icon: z.string().optional(),\n className: z.string().optional()\n});\nconst TextComponentParamsSchema = z.object({\n content: z.string().min(1),\n markdown: z.boolean().optional(),\n className: z.string().optional()\n});\nconst IframeComponentParamsSchema = z.object({\n url: z.string().min(1),\n title: z.string().optional(),\n height: z.string().optional(),\n className: z.string().optional()\n});\nconst ImageComponentParamsSchema = z.object({\n url: z.string().min(1),\n alt: z.string().optional(),\n caption: z.string().optional(),\n className: z.string().optional()\n});\nconst LinkComponentParamsSchema = z.object({\n url: z.string().min(1),\n label: z.string().optional(),\n description: z.string().optional(),\n className: z.string().optional()\n});\nconst CarouselComponentParamsSchema = z.object({\n items: z.array(z.unknown()).min(1),\n height: z.string().optional(),\n className: z.string().optional()\n});\nconst ArtifactComponentParamsSchema = z.object({\n url: z.string().min(1),\n filename: z.string().min(1),\n mimeType: z.string().min(1),\n size: z.number().int().min(0).optional(),\n description: z.string().optional()\n});\nconst SandboxFlagSchema = z.enum([\n \"allow-scripts\",\n \"allow-same-origin\",\n \"allow-forms\",\n \"allow-popups\",\n \"allow-modals\"\n]);\nconst SecurityConstraintsSchema = z.object({\n requiresAuth: z.boolean().default(false).optional(),\n allowedDomains: z.array(z.string()).optional(),\n maxIframeDepth: z.number().int().min(0).max(3).default(1).optional(),\n sandboxFlags: z.array(SandboxFlagSchema).optional()\n});\nconst PerformanceConstraintsSchema = z.object({\n maxRenderTime: z.number().int().min(100).default(5e3).optional(),\n maxDataSize: z.number().int().min(1024).default(102400).optional()\n});\nconst ComponentSchemaSchema = z.object({\n type: z.literal(\"object\"),\n required: z.array(z.string()).optional(),\n properties: z.record(z.unknown()),\n additionalProperties: z.boolean().optional()\n});\nconst ComponentExampleSchema = z.object({\n name: z.string().min(1),\n description: z.string().optional(),\n params: z.record(z.unknown()),\n position: GridPositionSchema.optional()\n});\nconst ComponentSchema = z.object({\n id: z.string().regex(/^[a-z0-9-]+$/),\n type: ComponentTypeSchema,\n name: z.string().min(1),\n description: z.string().optional(),\n schema: ComponentSchemaSchema,\n examples: z.array(ComponentExampleSchema).min(1),\n security: SecurityConstraintsSchema.optional(),\n performance: PerformanceConstraintsSchema.optional(),\n tags: z.array(z.string().regex(/^[a-z0-9-]+$/)).optional(),\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/).optional(),\n deprecated: z.boolean().default(false).optional(),\n deprecationMessage: z.string().optional()\n});\nconst RegistryMetadataSchema = z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n author: z.string().optional(),\n repository: z.string().url().optional()\n});\nconst ComponentRegistrySchema = z.object({\n version: z.literal(\"1.0.0\"),\n metadata: RegistryMetadataSchema.optional(),\n components: z.array(ComponentSchema).min(1)\n});\nexport {\n ActionGroupGapSchema,\n ActionGroupLayoutSchema,\n ActionGroupParamsSchema,\n ActionParamsSchema,\n ArtifactComponentParamsSchema,\n CarouselComponentParamsSchema,\n ChartComponentParamsSchema,\n ChartDatasetSchema,\n ChartTimeAxisSchema,\n ChartTypeSchema,\n CodeComponentParamsSchema,\n ComponentExampleSchema,\n ComponentRegistrySchema,\n ComponentSchema,\n ComponentSchemaSchema,\n ComponentTypeSchema,\n FormComponentParamsSchema,\n FormFieldOptionSchema,\n FormFieldSchema,\n FormFieldTypeSchema,\n FormSubmitActionSchema,\n GalleryImageSchema,\n GridPositionSchema,\n IframeComponentParamsSchema,\n ImageComponentParamsSchema,\n ImageGalleryAspectRatioSchema,\n ImageGalleryColumnsSchema,\n ImageGalleryGapSchema,\n ImageGalleryParamsSchema,\n LinkComponentParamsSchema,\n MapComponentParamsSchema,\n MapMarkerSchema,\n MetricComponentParamsSchema,\n MetricTrendSchema,\n ModalComponentParamsSchema,\n ModalSizeSchema,\n PerformanceConstraintsSchema,\n PrefillSourceSchema,\n RegistryMetadataSchema,\n SandboxFlagSchema,\n SecurityConstraintsSchema,\n ShowWhenConditionSchema,\n ShowWhenOperatorSchema,\n TableColumnSchema,\n TableComponentParamsSchema,\n TableExportableSchema,\n TablePaginationSchema,\n TableVirtualizeOptionsSchema,\n TextComponentParamsSchema,\n VideoAspectRatioSchema,\n VideoComponentParamsSchema\n};\n//# sourceMappingURL=schemas.js.map\n"],"names":["z.object","z.number","z.enum","z.string","z.boolean","z.any","z.union","z.array","z.record","z.unknown","z.literal","z.tuple"],"mappings":";AACK,MAAC,qBAAqBA,WAAS;AAAA,EAClC,UAAUC,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EACxC,SAASA,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EACvC,UAAUA,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,SAAQ;AAAA,EAC1C,SAASA,aAAW,MAAM,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAQ;AACtD,CAAC;AACI,MAAC,sBAAsBC,SAAO;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAEF,CAAC;AACI,MAAC,wBAAwBF,WAAS;AAAA,EACrC,OAAOG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACvB,OAAOA,WAAQ;AAAA,EACf,UAAUC,YAAS,EAAG,SAAQ;AAChC,CAAC;AACI,MAAC,sBAAsBF,SAAO;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACI,MAAC,yBAAyBA,SAAO;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACI,MAAC,0BAA0BF,WAAS;AAAA,EACvC,OAAOG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACvB,UAAU;AAAA,EACV,OAAOE,QAAK,EAAG,SAAQ;AACzB,CAAC;AACI,MAAC,sBAAsBH,SAAO,CAAC,QAAQ,YAAY,YAAY,SAAS,CAAC;AACzE,MAAC,kBAAkBF,WAAS;AAAA,EAC/B,MAAMG,WAAQ,EAAG,MAAM,yBAAyB;AAAA,EAChD,MAAM;AAAA,EACN,OAAOA,WAAQ,EAAG,SAAQ;AAAA,EAC1B,aAAaA,WAAQ,EAAG,SAAQ;AAAA,EAChC,UAAUA,WAAQ,EAAG,SAAQ;AAAA,EAC7B,UAAUC,YAAS,EAAG,SAAQ;AAAA,EAC9B,UAAUA,YAAS,EAAG,SAAQ;AAAA,EAC9B,cAAcC,QAAK,EAAG,SAAQ;AAAA;AAAA,EAE9B,SAASC,UAAQ,CAACH,WAAQ,GAAII,UAAQJ,WAAQ,CAAE,CAAC,CAAC,EAAE,SAAQ;AAAA,EAC5D,aAAaA,WAAQ,EAAG,SAAQ;AAAA,EAChC,QAAQ,oBAAoB,SAAQ;AAAA,EACpC,OAAOC,YAAS,EAAG,SAAQ;AAAA;AAAA,EAE3B,aAAaF,SAAO,CAAC,SAAS,SAAS,CAAC,EAAE,SAAQ;AAAA;AAAA,EAElD,aAAaC,WAAQ,EAAG,SAAQ;AAAA,EAChC,iBAAiBA,WAAQ,EAAG,SAAQ;AAAA;AAAA,EAEpC,WAAWF,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,SAAQ;AAAA,EAC3C,WAAWA,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,SAAQ;AAAA,EAC3C,SAASE,WAAQ,EAAG,SAAQ;AAAA;AAAA,EAE5B,KAAKF,WAAQ,EAAG,SAAQ;AAAA,EACxB,KAAKA,WAAQ,EAAG,SAAQ;AAAA,EACxB,MAAMA,WAAQ,EAAG,SAAQ;AAAA;AAAA,EAEzB,SAASE,WAAQ,EAAG,SAAQ;AAAA,EAC5B,SAASA,WAAQ,EAAG,SAAQ;AAAA;AAAA,EAE5B,SAASI,UAAQ,qBAAqB,EAAE,SAAQ;AAAA;AAAA,EAEhD,UAAUH,YAAS,EAAG,SAAQ;AAAA;AAAA,EAE9B,QAAQD,WAAQ,EAAG,IAAG,EAAG,SAAQ;AAAA,EACjC,aAAaA,WAAQ,EAAG,SAAQ;AAAA,EAChC,YAAYA,WAAQ,EAAG,SAAQ;AAAA,EAC/B,YAAYA,WAAQ,EAAG,SAAQ;AAAA,EAC/B,aAAaK,WAASL,WAAQ,CAAE,EAAE,SAAQ;AAAA,EAC1C,UAAUF,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,SAAQ;AAAA,EAC1C,YAAYA,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,SAAQ;AAAA;AAAA,EAE5C,WAAWD,WAAS;AAAA,IAClB,OAAOG,WAAQ;AAAA,IACf,QAAQA,WAAQ;AAAA,IAChB,YAAYA,WAAQ;AAAA,IACpB,YAAYA,WAAQ;AAAA,IACpB,aAAaK,WAASL,WAAQ,CAAE,EAAE,SAAQ;AAAA,EAC9C,CAAG,EAAE,SAAQ;AAAA;AAAA,EAEX,aAAaD,SAAO,CAAC,YAAY,YAAY,eAAe,SAAS,CAAC,EAAE,SAAQ;AAAA,EAChF,cAAcC,WAAQ,EAAG,SAAQ;AAAA;AAAA,EAEjC,eAAeA,WAAQ,EAAG,SAAQ;AAAA;AAAA,EAElC,MAAMF,aAAW,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,SAAQ;AAAA;AAAA,EAE9C,UAAU,wBAAwB,SAAQ;AAC5C,CAAC;AACI,MAAC,yBAAyBD,WAAS;AAAA,EACtC,UAAUG,WAAQ,EAAG,IAAI,CAAC;AAAA,EAC1B,QAAQK,WAASC,YAAS,CAAE,EAAE,SAAQ;AACxC,CAAC;AACiCT,WAAS;AAAA,EACzC,OAAOG,WAAQ,EAAG,SAAQ;AAAA,EAC1B,QAAQI,UAAQ,eAAe,EAAE,IAAI,CAAC;AAAA,EACtC,aAAaJ,WAAQ,EAAG,SAAQ;AAAA,EAChC,WAAWC,YAAS,EAAG,SAAQ;AAAA,EAC/B,cAAc,uBAAuB,SAAQ;AAAA;AAAA,EAE7C,YAAYD,WAAQ,EAAG,SAAQ;AAAA,EAC/B,wBAAwBI,UAAQJ,WAAQ,CAAE,EAAE,SAAQ;AAAA,EACpD,kBAAkBF,WAAQ,EAAG,IAAG,EAAG,SAAQ,EAAG,SAAQ;AAAA,EACtD,QAAQC,SAAO,CAAC,YAAY,cAAc,QAAQ,CAAC,EAAE,SAAQ;AAAA;AAAA,EAE7D,iBAAiBD,aAAW,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,SAAQ;AAC9D,CAAC;AACI,MAAC,kBAAkBC,SAAO,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,CAAC;AAC5BF,WAAS;AAAA,EAC1C,OAAOG,WAAQ,EAAG,SAAQ;AAAA,EAC1B,MAAM,gBAAgB,SAAQ;AAAA,EAC9B,WAAWC,YAAS,EAAG,SAAQ;AAAA,EAC/B,eAAeA,YAAS,EAAG,SAAQ;AAAA,EACnC,iBAAiBA,YAAS,EAAG,SAAQ;AAAA,EACrC,WAAWD,WAAQ,EAAG,SAAQ;AAAA;AAEhC,CAAC;AACI,MAAC,0BAA0BD,SAAO;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACI,MAAC,uBAAuBA,SAAO,CAAC,QAAQ,MAAM,MAAM,IAAI,CAAC;AACzD,MAAC,qBAAqBF,WAAS;AAAA,EAClC,OAAOG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACvB,MAAMD,SAAO,CAAC,UAAU,MAAM,CAAC,EAAE,SAAQ;AAAA,EACzC,QAAQA,SAAO,CAAC,aAAa,QAAQ,QAAQ,CAAC,EAAE,SAAQ;AAAA,EACxD,UAAUC,WAAQ,EAAG,SAAQ;AAAA,EAC7B,QAAQK,WAASC,YAAS,CAAE,EAAE,SAAQ;AAAA,EACtC,KAAKN,WAAQ,EAAG,SAAQ;AAAA,EACxB,SAASD,SAAO,CAAC,WAAW,aAAa,WAAW,SAAS,QAAQ,CAAC,EAAE,SAAQ;AAAA,EAChF,MAAMA,SAAO,CAAC,MAAM,MAAM,IAAI,CAAC,EAAE,SAAQ;AAAA,EACzC,MAAMC,WAAQ,EAAG,SAAQ;AAAA,EACzB,UAAUC,YAAS,EAAG,SAAQ;AAChC,CAAC;AACI,MAAC,0BAA0BJ,WAAS;AAAA,EACvC,SAASO,UAAQ,kBAAkB,EAAE,IAAI,CAAC;AAAA,EAC1C,QAAQ,wBAAwB,SAAQ;AAAA,EACxC,KAAK,qBAAqB,SAAQ;AAAA,EAClC,WAAWH,YAAS,EAAG,SAAQ;AAAA,EAC/B,OAAOD,WAAQ,EAAG,SAAQ;AAC5B,CAAC;AACI,MAAC,qBAAqBH,WAAS;AAAA,EAClC,KAAKG,WAAQ,EAAG,IAAG;AAAA,EACnB,WAAWA,WAAQ,EAAG,IAAG,EAAG,SAAQ;AAAA,EACpC,KAAKA,WAAQ,EAAG,SAAQ;AAAA,EACxB,SAASA,WAAQ,EAAG,SAAQ;AAAA,EAC5B,QAAQA,WAAQ,EAAG,SAAQ;AAAA,EAC3B,OAAOA,WAAQ,EAAG,SAAQ;AAC5B,CAAC;AACiCD,SAAO,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,EAAE,UAAU,MAAM;AAC1E,MAAC,wBAAwBA,SAAO,CAAC,QAAQ,MAAM,MAAM,IAAI,CAAC;AAC1D,MAAC,gCAAgCA,SAAO,CAAC,OAAO,QAAQ,OAAO,MAAM,CAAC;AACtE,MAAC,2BAA2BF,WAAS;AAAA,EACxC,OAAOG,WAAQ,EAAG,SAAQ;AAAA,EAC1B,QAAQI,UAAQ,kBAAkB,EAAE,IAAI,CAAC;AAAA,EACzC,SAASD,UAAQ,CAACI,YAAU,CAAC,GAAGA,YAAU,CAAC,GAAGA,YAAU,CAAC,GAAGA,YAAU,CAAC,CAAC,CAAC,EAAE,SAAQ;AAAA,EACnF,KAAK,sBAAsB,SAAQ;AAAA,EACnC,aAAa,8BAA8B,SAAQ;AAAA,EACnD,UAAUN,YAAS,EAAG,SAAQ;AAAA,EAC9B,cAAcA,YAAS,EAAG,SAAQ;AACpC,CAAC;AACI,MAAC,yBAAyBF,SAAO,CAAC,QAAQ,OAAO,OAAO,MAAM,CAAC;AAC/D,MAAC,6BAA6BF,WAAS;AAAA,EAC1C,KAAKG,WAAQ,EAAG,IAAG;AAAA,EACnB,OAAOA,WAAQ,EAAG,SAAQ;AAAA,EAC1B,SAASA,WAAQ,EAAG,SAAQ;AAAA,EAC5B,QAAQA,WAAQ,EAAG,IAAG,EAAG,SAAQ;AAAA,EACjC,aAAa,uBAAuB,SAAQ;AAAA,EAC5C,UAAUC,YAAS,EAAG,SAAQ;AAAA,EAC9B,UAAUA,YAAS,EAAG,SAAQ;AAAA,EAC9B,MAAMA,YAAS,EAAG,SAAQ;AAAA,EAC1B,OAAOA,YAAS,EAAG,SAAQ;AAAA,EAC3B,WAAWH,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,SAAQ;AAC7C,CAAC;AACI,MAAC,4BAA4BD,WAAS;AAAA,EACzC,MAAMG,WAAQ;AAAA,EACd,UAAUA,WAAQ,EAAG,SAAQ;AAAA,EAC7B,UAAUA,WAAQ,EAAG,SAAQ;AAAA,EAC7B,iBAAiBC,YAAS,EAAG,SAAQ;AAAA,EACrC,WAAWH,WAAQ,EAAG,SAAQ;AAAA,EAC9B,gBAAgBM,UAAQN,WAAQ,CAAE,EAAE,SAAQ;AAAA,EAC5C,WAAWE,WAAQ,EAAG,SAAQ;AAAA,EAC9B,OAAOD,SAAO,CAAC,SAAS,MAAM,CAAC,EAAE,SAAQ;AAC3C,CAAC;AACI,MAAC,kBAAkBF,WAAS;AAAA,EAC/B,UAAUW,UAAQ,CAACV,WAAQ,GAAIA,WAAQ,CAAE,CAAC;AAAA,EAC1C,SAASE,WAAQ,EAAG,SAAQ;AAAA,EAC5B,OAAOA,WAAQ,EAAG,SAAQ;AAC5B,CAAC;AACgCH,WAAS;AAAA,EACxC,QAAQW,UAAQ,CAACV,WAAQ,GAAIA,WAAQ,CAAE,CAAC,EAAE,SAAQ;AAAA,EAClD,MAAMA,WAAQ,EAAG,SAAQ;AAAA,EACzB,SAASM,UAAQ,eAAe,EAAE,SAAQ;AAAA,EAC1C,QAAQJ,WAAQ,EAAG,SAAQ;AAAA,EAC3B,WAAWC,YAAS,EAAG,SAAQ;AAAA,EAC/B,aAAaA,YAAS,EAAG,SAAQ;AAAA,EACjC,iBAAiBA,YAAS,EAAG,SAAQ;AAAA,EACrC,WAAWD,WAAQ,EAAG,SAAQ;AAAA,EAC9B,aAAaA,WAAQ,EAAG,SAAQ;AAClC,CAAC;AACI,MAAC,kBAAkBD,SAAO;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACI,MAAC,qBAAqBF,WAAS;AAAA,EAClC,OAAOG,WAAQ;AAAA;AAAA,EAEf,MAAMG,UAAQ;AAAA,IACZC,UAAQN,WAAQ,CAAE;AAAA,IAClBM;AAAAA,MACEP,WAAS;AAAA,QACP,GAAGM,UAAQ,CAACH,WAAQ,GAAIF,WAAQ,CAAE,CAAC;AAAA,QACnC,GAAGA,WAAQ;AAAA,MACnB,CAAO;AAAA,IACP;AAAA,EACA,CAAG;AAAA,EACD,iBAAiBK,UAAQ,CAACH,WAAQ,GAAII,UAAQJ,WAAQ,CAAE,CAAC,CAAC,EAAE,SAAQ;AAAA,EACpE,aAAaG,UAAQ,CAACH,WAAQ,GAAII,UAAQJ,WAAQ,CAAE,CAAC,CAAC,EAAE,SAAQ;AAAA,EAChE,aAAaF,WAAQ,EAAG,SAAQ;AAAA,EAChC,MAAMK,UAAQ,CAACF,YAAS,GAAID,WAAQ,CAAE,CAAC,EAAE,SAAQ;AAAA,EACjD,SAASF,WAAQ,EAAG,SAAQ;AAC9B,CAAC;AACI,MAAC,sBAAsBD,WAAS;AAAA,EACnC,QAAQG,WAAQ,EAAG,SAAQ;AAAA,EAC3B,MAAMD,SAAO,CAAC,OAAO,QAAQ,SAAS,WAAW,MAAM,CAAC,EAAE,SAAQ;AAAA,EAClE,eAAeC,WAAQ,EAAG,SAAQ;AAAA,EAClC,KAAKA,WAAQ,EAAG,SAAQ;AAAA,EACxB,KAAKA,WAAQ,EAAG,SAAQ;AAC1B,CAAC;AACkCH,WAAS;AAAA,EAC1C,MAAM;AAAA,EACN,OAAOG,WAAQ,EAAG,SAAQ;AAAA,EAC1B,MAAMH,WAAS;AAAA,IACb,QAAQO,UAAQJ,YAAU;AAAA,IAC1B,UAAUI,UAAQ,kBAAkB;AAAA,EACxC,CAAG;AAAA,EACD,SAASP,WAAS;AAAA,IAChB,YAAYI,YAAS,EAAG,SAAQ;AAAA,IAChC,qBAAqBA,YAAS,EAAG,SAAQ;AAAA,IACzC,SAASH,WAAQ,EAAG,SAAQ;AAAA;AAAA,IAE5B,QAAQQ,YAAS,EAAG,SAAQ;AAAA,IAC5B,SAASA,YAAS,EAAG,SAAQ;AAAA,EACjC,CAAG,EAAE,SAAQ;AAAA,EACX,UAAUP,SAAO,CAAC,UAAU,UAAU,MAAM,CAAC,EAAE,SAAQ;AAAA,EACvD,YAAYE,YAAS,EAAG,SAAQ;AAAA,EAChC,UAAU,oBAAoB,SAAQ;AAAA,EACtC,QAAQD,WAAQ,EAAG,SAAQ;AAAA,EAC3B,WAAWA,WAAQ,EAAG,SAAQ;AAChC,CAAC;AACI,MAAC,oBAAoBH,WAAS;AAAA,EACjC,KAAKG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACrB,OAAOA,WAAQ;AAAA,EACf,UAAUC,YAAS,EAAG,SAAQ;AAAA,EAC9B,OAAOD,WAAQ,EAAG,SAAQ;AAC5B,CAAC;AACI,MAAC,wBAAwBH,WAAS;AAAA,EACrC,aAAaC,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC;AAAA,EACnC,UAAUA,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC;AAAA,EAChC,WAAWA,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC;AACnC,CAAC;AACI,MAAC,+BAA+BD,WAAS;AAAA,EAC5C,SAASI,YAAS,EAAG,SAAQ;AAAA,EAC7B,WAAWH,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,SAAQ;AAAA,EAC3C,UAAUA,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,SAAQ;AAAA,EAC1C,WAAWA,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,SAAQ;AAC7C,CAAC;AACI,MAAC,wBAAwBK,UAAQ;AAAA,EACpCF,YAAS;AAAA,EACTJ,WAAS;AAAA,IACP,SAASO,UAAQL,SAAO,CAAC,OAAO,OAAO,MAAM,CAAC,CAAC,EAAE,SAAQ;AAAA,IACzD,UAAUC,WAAQ,EAAG,SAAQ;AAAA,EACjC,CAAG;AACH,CAAC;AACkCH,WAAS;AAAA,EAC1C,OAAOG,WAAQ,EAAG,SAAQ;AAAA,EAC1B,SAASI,UAAQ,iBAAiB,EAAE,IAAI,CAAC;AAAA,EACzC,MAAMA,UAAQC,WAASC,YAAS,CAAE,CAAC;AAAA,EACnC,YAAY,sBAAsB,SAAQ;AAAA,EAC1C,YAAYH,UAAQ,CAACF,YAAS,GAAI,4BAA4B,CAAC,EAAE,SAAQ;AAAA,EACzE,YAAY,sBAAsB,SAAQ;AAAA,EAC1C,WAAWD,WAAQ,EAAG,SAAQ;AAChC,CAAC;AACI,MAAC,oBAAoBH,WAAS;AAAA,EACjC,OAAOC,WAAQ;AAAA,EACf,WAAWC,SAAO,CAAC,MAAM,QAAQ,SAAS,CAAC;AAC7C,CAAC;AACI,MAAC,8BAA8BF,WAAS;AAAA,EAC3C,OAAOG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACvB,OAAOG,UAAQ,CAACH,WAAQ,GAAIF,WAAQ,CAAE,CAAC;AAAA,EACvC,MAAME,WAAQ,EAAG,SAAQ;AAAA,EACzB,OAAO,kBAAkB,SAAQ;AAAA,EACjC,UAAUA,WAAQ,EAAG,SAAQ;AAAA,EAC7B,MAAMA,WAAQ,EAAG,SAAQ;AAAA,EACzB,WAAWA,WAAQ,EAAG,SAAQ;AAChC,CAAC;AACI,MAAC,4BAA4BH,WAAS;AAAA,EACzC,SAASG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACzB,UAAUC,YAAS,EAAG,SAAQ;AAAA,EAC9B,WAAWD,WAAQ,EAAG,SAAQ;AAChC,CAAC;AACI,MAAC,8BAA8BH,WAAS;AAAA,EAC3C,KAAKG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACrB,OAAOA,WAAQ,EAAG,SAAQ;AAAA,EAC1B,QAAQA,WAAQ,EAAG,SAAQ;AAAA,EAC3B,WAAWA,WAAQ,EAAG,SAAQ;AAChC,CAAC;AACI,MAAC,6BAA6BH,WAAS;AAAA,EAC1C,KAAKG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACrB,KAAKA,WAAQ,EAAG,SAAQ;AAAA,EACxB,SAASA,WAAQ,EAAG,SAAQ;AAAA,EAC5B,WAAWA,WAAQ,EAAG,SAAQ;AAChC,CAAC;AACI,MAAC,4BAA4BH,WAAS;AAAA,EACzC,KAAKG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACrB,OAAOA,WAAQ,EAAG,SAAQ;AAAA,EAC1B,aAAaA,WAAQ,EAAG,SAAQ;AAAA,EAChC,WAAWA,WAAQ,EAAG,SAAQ;AAChC,CAAC;AACI,MAAC,gCAAgCH,WAAS;AAAA,EAC7C,OAAOO,UAAQE,YAAS,CAAE,EAAE,IAAI,CAAC;AAAA,EACjC,QAAQN,WAAQ,EAAG,SAAQ;AAAA,EAC3B,WAAWA,WAAQ,EAAG,SAAQ;AAChC,CAAC;AACI,MAAC,gCAAgCH,WAAS;AAAA,EAC7C,KAAKG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACrB,UAAUA,WAAQ,EAAG,IAAI,CAAC;AAAA,EAC1B,UAAUA,WAAQ,EAAG,IAAI,CAAC;AAAA,EAC1B,MAAMF,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,SAAQ;AAAA,EACtC,aAAaE,WAAQ,EAAG,SAAQ;AAClC,CAAC;AACI,MAAC,oBAAoBD,SAAO;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACI,MAAC,4BAA4BF,WAAS;AAAA,EACzC,cAAcI,YAAS,EAAG,QAAQ,KAAK,EAAE,SAAQ;AAAA,EACjD,gBAAgBG,UAAQJ,WAAQ,CAAE,EAAE,SAAQ;AAAA,EAC5C,gBAAgBF,WAAQ,EAAG,IAAG,EAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAQ;AAAA,EAClE,cAAcM,UAAQ,iBAAiB,EAAE,SAAQ;AACnD,CAAC;AACI,MAAC,+BAA+BP,WAAS;AAAA,EAC5C,eAAeC,aAAW,MAAM,IAAI,GAAG,EAAE,QAAQ,GAAG,EAAE,SAAQ;AAAA,EAC9D,aAAaA,aAAW,MAAM,IAAI,IAAI,EAAE,QAAQ,MAAM,EAAE,SAAQ;AAClE,CAAC;AACI,MAAC,wBAAwBD,WAAS;AAAA,EACrC,MAAMU,YAAU,QAAQ;AAAA,EACxB,UAAUH,UAAQJ,WAAQ,CAAE,EAAE,SAAQ;AAAA,EACtC,YAAYK,WAASC,aAAW;AAAA,EAChC,sBAAsBL,YAAS,EAAG,SAAQ;AAC5C,CAAC;AACI,MAAC,yBAAyBJ,WAAS;AAAA,EACtC,MAAMG,WAAQ,EAAG,IAAI,CAAC;AAAA,EACtB,aAAaA,WAAQ,EAAG,SAAQ;AAAA,EAChC,QAAQK,WAASC,aAAW;AAAA,EAC5B,UAAU,mBAAmB,SAAQ;AACvC,CAAC;AACI,MAAC,kBAAkBT,WAAS;AAAA,EAC/B,IAAIG,WAAQ,EAAG,MAAM,cAAc;AAAA,EACnC,MAAM;AAAA,EACN,MAAMA,WAAQ,EAAG,IAAI,CAAC;AAAA,EACtB,aAAaA,WAAQ,EAAG,SAAQ;AAAA,EAChC,QAAQ;AAAA,EACR,UAAUI,UAAQ,sBAAsB,EAAE,IAAI,CAAC;AAAA,EAC/C,UAAU,0BAA0B,SAAQ;AAAA,EAC5C,aAAa,6BAA6B,SAAQ;AAAA,EAClD,MAAMA,UAAQJ,WAAQ,EAAG,MAAM,cAAc,CAAC,EAAE,SAAQ;AAAA,EACxD,SAASA,WAAQ,EAAG,MAAM,iBAAiB,EAAE,SAAQ;AAAA,EACrD,YAAYC,YAAS,EAAG,QAAQ,KAAK,EAAE,SAAQ;AAAA,EAC/C,oBAAoBD,WAAQ,EAAG,SAAQ;AACzC,CAAC;AACI,MAAC,yBAAyBH,WAAS;AAAA,EACtC,MAAMG,WAAQ,EAAG,SAAQ;AAAA,EACzB,aAAaA,WAAQ,EAAG,SAAQ;AAAA,EAChC,QAAQA,WAAQ,EAAG,SAAQ;AAAA,EAC3B,YAAYA,WAAQ,EAAG,IAAG,EAAG,SAAQ;AACvC,CAAC;AAC+BH,WAAS;AAAA,EACvC,SAASU,YAAU,OAAO;AAAA,EAC1B,UAAU,uBAAuB,SAAQ;AAAA,EACzC,YAAYH,UAAQ,eAAe,EAAE,IAAI,CAAC;AAC5C,CAAC;"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const util = require("./helpers/util.cjs");
|
|
4
|
+
const ZodIssueCode = util.util.arrayToEnum([
|
|
5
|
+
"invalid_type",
|
|
6
|
+
"invalid_literal",
|
|
7
|
+
"custom",
|
|
8
|
+
"invalid_union",
|
|
9
|
+
"invalid_union_discriminator",
|
|
10
|
+
"invalid_enum_value",
|
|
11
|
+
"unrecognized_keys",
|
|
12
|
+
"invalid_arguments",
|
|
13
|
+
"invalid_return_type",
|
|
14
|
+
"invalid_date",
|
|
15
|
+
"invalid_string",
|
|
16
|
+
"too_small",
|
|
17
|
+
"too_big",
|
|
18
|
+
"invalid_intersection_types",
|
|
19
|
+
"not_multiple_of",
|
|
20
|
+
"not_finite"
|
|
21
|
+
]);
|
|
22
|
+
class ZodError extends Error {
|
|
23
|
+
get errors() {
|
|
24
|
+
return this.issues;
|
|
25
|
+
}
|
|
26
|
+
constructor(issues) {
|
|
27
|
+
super();
|
|
28
|
+
this.issues = [];
|
|
29
|
+
this.addIssue = (sub) => {
|
|
30
|
+
this.issues = [...this.issues, sub];
|
|
31
|
+
};
|
|
32
|
+
this.addIssues = (subs = []) => {
|
|
33
|
+
this.issues = [...this.issues, ...subs];
|
|
34
|
+
};
|
|
35
|
+
const actualProto = new.target.prototype;
|
|
36
|
+
if (Object.setPrototypeOf) {
|
|
37
|
+
Object.setPrototypeOf(this, actualProto);
|
|
38
|
+
} else {
|
|
39
|
+
this.__proto__ = actualProto;
|
|
40
|
+
}
|
|
41
|
+
this.name = "ZodError";
|
|
42
|
+
this.issues = issues;
|
|
43
|
+
}
|
|
44
|
+
format(_mapper) {
|
|
45
|
+
const mapper = _mapper || function(issue) {
|
|
46
|
+
return issue.message;
|
|
47
|
+
};
|
|
48
|
+
const fieldErrors = { _errors: [] };
|
|
49
|
+
const processError = (error) => {
|
|
50
|
+
for (const issue of error.issues) {
|
|
51
|
+
if (issue.code === "invalid_union") {
|
|
52
|
+
issue.unionErrors.map(processError);
|
|
53
|
+
} else if (issue.code === "invalid_return_type") {
|
|
54
|
+
processError(issue.returnTypeError);
|
|
55
|
+
} else if (issue.code === "invalid_arguments") {
|
|
56
|
+
processError(issue.argumentsError);
|
|
57
|
+
} else if (issue.path.length === 0) {
|
|
58
|
+
fieldErrors._errors.push(mapper(issue));
|
|
59
|
+
} else {
|
|
60
|
+
let curr = fieldErrors;
|
|
61
|
+
let i = 0;
|
|
62
|
+
while (i < issue.path.length) {
|
|
63
|
+
const el = issue.path[i];
|
|
64
|
+
const terminal = i === issue.path.length - 1;
|
|
65
|
+
if (!terminal) {
|
|
66
|
+
curr[el] = curr[el] || { _errors: [] };
|
|
67
|
+
} else {
|
|
68
|
+
curr[el] = curr[el] || { _errors: [] };
|
|
69
|
+
curr[el]._errors.push(mapper(issue));
|
|
70
|
+
}
|
|
71
|
+
curr = curr[el];
|
|
72
|
+
i++;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
processError(this);
|
|
78
|
+
return fieldErrors;
|
|
79
|
+
}
|
|
80
|
+
static assert(value) {
|
|
81
|
+
if (!(value instanceof ZodError)) {
|
|
82
|
+
throw new Error(`Not a ZodError: ${value}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
toString() {
|
|
86
|
+
return this.message;
|
|
87
|
+
}
|
|
88
|
+
get message() {
|
|
89
|
+
return JSON.stringify(this.issues, util.util.jsonStringifyReplacer, 2);
|
|
90
|
+
}
|
|
91
|
+
get isEmpty() {
|
|
92
|
+
return this.issues.length === 0;
|
|
93
|
+
}
|
|
94
|
+
flatten(mapper = (issue) => issue.message) {
|
|
95
|
+
const fieldErrors = {};
|
|
96
|
+
const formErrors = [];
|
|
97
|
+
for (const sub of this.issues) {
|
|
98
|
+
if (sub.path.length > 0) {
|
|
99
|
+
const firstEl = sub.path[0];
|
|
100
|
+
fieldErrors[firstEl] = fieldErrors[firstEl] || [];
|
|
101
|
+
fieldErrors[firstEl].push(mapper(sub));
|
|
102
|
+
} else {
|
|
103
|
+
formErrors.push(mapper(sub));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return { formErrors, fieldErrors };
|
|
107
|
+
}
|
|
108
|
+
get formErrors() {
|
|
109
|
+
return this.flatten();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
ZodError.create = (issues) => {
|
|
113
|
+
const error = new ZodError(issues);
|
|
114
|
+
return error;
|
|
115
|
+
};
|
|
116
|
+
exports.ZodError = ZodError;
|
|
117
|
+
exports.ZodIssueCode = ZodIssueCode;
|
|
118
|
+
//# sourceMappingURL=ZodError.cjs.map
|