@panneau/protocol 0.0.0-stage → 5.0.0-alpha.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.
Files changed (92) hide show
  1. package/README.md +31 -2
  2. package/dist/conditions.d.ts +7 -0
  3. package/dist/conditions.d.ts.map +1 -0
  4. package/dist/conditions.js +21 -0
  5. package/dist/conditions.js.map +1 -0
  6. package/dist/conformance/index.d.ts +42 -0
  7. package/dist/conformance/index.d.ts.map +1 -0
  8. package/dist/conformance/index.js +243 -0
  9. package/dist/conformance/index.js.map +1 -0
  10. package/dist/index.d.ts +10 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +19 -0
  13. package/dist/lint.d.ts +8 -0
  14. package/dist/lint.d.ts.map +1 -0
  15. package/dist/lint.js +73 -0
  16. package/dist/lint.js.map +1 -0
  17. package/dist/mock/example.d.ts +8 -0
  18. package/dist/mock/example.d.ts.map +1 -0
  19. package/dist/mock/example.js +186 -0
  20. package/dist/mock/example.js.map +1 -0
  21. package/dist/mock/index.d.ts +24 -0
  22. package/dist/mock/index.d.ts.map +1 -0
  23. package/dist/mock/index.js +250 -0
  24. package/dist/mock/index.js.map +1 -0
  25. package/dist/openapi.d.ts +11 -0
  26. package/dist/openapi.d.ts.map +1 -0
  27. package/dist/openapi.js +540 -0
  28. package/dist/openapi.js.map +1 -0
  29. package/dist/query.d.ts +17 -0
  30. package/dist/query.d.ts.map +1 -0
  31. package/dist/query.js +49 -0
  32. package/dist/query.js.map +1 -0
  33. package/dist/rules.d.ts +29 -0
  34. package/dist/rules.d.ts.map +1 -0
  35. package/dist/rules.js +143 -0
  36. package/dist/rules.js.map +1 -0
  37. package/dist/schemas/action.d.ts +166 -0
  38. package/dist/schemas/action.d.ts.map +1 -0
  39. package/dist/schemas/action.js +66 -0
  40. package/dist/schemas/action.js.map +1 -0
  41. package/dist/schemas/api.d.ts +371 -0
  42. package/dist/schemas/api.d.ts.map +1 -0
  43. package/dist/schemas/api.js +140 -0
  44. package/dist/schemas/api.js.map +1 -0
  45. package/dist/schemas/boot.d.ts +19 -0
  46. package/dist/schemas/boot.d.ts.map +1 -0
  47. package/dist/schemas/boot.js +21 -0
  48. package/dist/schemas/boot.js.map +1 -0
  49. package/dist/schemas/common.d.ts +28 -0
  50. package/dist/schemas/common.d.ts.map +1 -0
  51. package/dist/schemas/common.js +35 -0
  52. package/dist/schemas/common.js.map +1 -0
  53. package/dist/schemas/definition.d.ts +462 -0
  54. package/dist/schemas/definition.d.ts.map +1 -0
  55. package/dist/schemas/definition.js +101 -0
  56. package/dist/schemas/definition.js.map +1 -0
  57. package/dist/schemas/field.d.ts +145 -0
  58. package/dist/schemas/field.d.ts.map +1 -0
  59. package/dist/schemas/field.js +127 -0
  60. package/dist/schemas/field.js.map +1 -0
  61. package/dist/schemas/index.d.ts +1536 -0
  62. package/dist/schemas/index.d.ts.map +1 -0
  63. package/dist/schemas/index.js +68 -0
  64. package/dist/schemas/index.js.map +1 -0
  65. package/dist/schemas/layout.d.ts +29 -0
  66. package/dist/schemas/layout.d.ts.map +1 -0
  67. package/dist/schemas/layout.js +35 -0
  68. package/dist/schemas/layout.js.map +1 -0
  69. package/dist/schemas/list.d.ts +72 -0
  70. package/dist/schemas/list.d.ts.map +1 -0
  71. package/dist/schemas/list.js +48 -0
  72. package/dist/schemas/list.js.map +1 -0
  73. package/dist/schemas/resource.d.ts +328 -0
  74. package/dist/schemas/resource.d.ts.map +1 -0
  75. package/dist/schemas/resource.js +38 -0
  76. package/dist/schemas/resource.js.map +1 -0
  77. package/dist/validate.d.ts +31 -0
  78. package/dist/validate.d.ts.map +1 -0
  79. package/dist/validate.js +57 -0
  80. package/dist/validate.js.map +1 -0
  81. package/dist/values.d.ts +7 -0
  82. package/dist/values.d.ts.map +1 -0
  83. package/dist/values.js +29 -0
  84. package/dist/values.js.map +1 -0
  85. package/dist/version.d.ts +5 -0
  86. package/dist/version.d.ts.map +1 -0
  87. package/dist/version.js +9 -0
  88. package/dist/version.js.map +1 -0
  89. package/package.json +48 -5
  90. package/schema/boot.schema.json +1229 -0
  91. package/schema/definition.schema.json +1195 -0
  92. package/schema/openapi.json +3838 -0
@@ -0,0 +1,145 @@
1
+ import { z } from 'zod';
2
+ import { Condition } from './common';
3
+ /** Field types every Panneau frontend renders. Plugins add others. */
4
+ export declare const BUILT_IN_FIELD_TYPES: readonly ["text", "textarea", "richtext", "number", "boolean", "date", "datetime", "time", "select", "email", "url", "color", "media", "relation", "group", "repeater", "slug"];
5
+ /** Validation rules that both frontends and backends check. */
6
+ export declare const PORTABLE_RULES: readonly ["required", "min", "max", "pattern", "email", "url", "in", "accept", "maxSize", "before", "after"];
7
+ export declare const Rule: z.ZodUnion<readonly [z.ZodObject<{
8
+ rule: z.ZodLiteral<"required">;
9
+ message: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$loose>, z.ZodObject<{
11
+ rule: z.ZodEnum<{
12
+ min: "min";
13
+ max: "max";
14
+ }>;
15
+ value: z.ZodNumber;
16
+ message: z.ZodOptional<z.ZodString>;
17
+ }, z.core.$loose>, z.ZodObject<{
18
+ rule: z.ZodLiteral<"pattern">;
19
+ value: z.ZodString;
20
+ flags: z.ZodOptional<z.ZodString>;
21
+ message: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$loose>, z.ZodObject<{
23
+ rule: z.ZodEnum<{
24
+ email: "email";
25
+ url: "url";
26
+ }>;
27
+ message: z.ZodOptional<z.ZodString>;
28
+ }, z.core.$loose>, z.ZodObject<{
29
+ rule: z.ZodLiteral<"in">;
30
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
31
+ message: z.ZodOptional<z.ZodString>;
32
+ }, z.core.$loose>, z.ZodObject<{
33
+ rule: z.ZodLiteral<"accept">;
34
+ value: z.ZodArray<z.ZodString>;
35
+ message: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$loose>, z.ZodObject<{
37
+ rule: z.ZodLiteral<"maxSize">;
38
+ value: z.ZodNumber;
39
+ message: z.ZodOptional<z.ZodString>;
40
+ }, z.core.$loose>, z.ZodObject<{
41
+ rule: z.ZodEnum<{
42
+ before: "before";
43
+ after: "after";
44
+ }>;
45
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
46
+ field: z.ZodString;
47
+ }, z.core.$loose>]>;
48
+ message: z.ZodOptional<z.ZodString>;
49
+ }, z.core.$loose>, z.ZodObject<{
50
+ rule: z.ZodString;
51
+ message: z.ZodOptional<z.ZodString>;
52
+ }, z.core.$loose>]>;
53
+ export declare const BlockType: z.ZodObject<{
54
+ id: z.ZodString;
55
+ label: z.ZodString;
56
+ icon: z.ZodOptional<z.ZodString>;
57
+ fields: z.ZodArray<typeof Field>;
58
+ }, z.core.$loose>;
59
+ export declare const Field: z.ZodObject<{
60
+ name: z.ZodString;
61
+ type: z.ZodString;
62
+ label: z.ZodOptional<z.ZodString>;
63
+ help: z.ZodOptional<z.ZodString>;
64
+ placeholder: z.ZodOptional<z.ZodString>;
65
+ default: z.ZodOptional<z.ZodUnknown>;
66
+ localized: z.ZodOptional<z.ZodBoolean>;
67
+ readOnly: z.ZodOptional<z.ZodBoolean>;
68
+ createOnly: z.ZodOptional<z.ZodBoolean>;
69
+ updateOnly: z.ZodOptional<z.ZodBoolean>;
70
+ rules: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
71
+ rule: z.ZodLiteral<"required">;
72
+ message: z.ZodOptional<z.ZodString>;
73
+ }, z.core.$loose>, z.ZodObject<{
74
+ rule: z.ZodEnum<{
75
+ min: "min";
76
+ max: "max";
77
+ }>;
78
+ value: z.ZodNumber;
79
+ message: z.ZodOptional<z.ZodString>;
80
+ }, z.core.$loose>, z.ZodObject<{
81
+ rule: z.ZodLiteral<"pattern">;
82
+ value: z.ZodString;
83
+ flags: z.ZodOptional<z.ZodString>;
84
+ message: z.ZodOptional<z.ZodString>;
85
+ }, z.core.$loose>, z.ZodObject<{
86
+ rule: z.ZodEnum<{
87
+ email: "email";
88
+ url: "url";
89
+ }>;
90
+ message: z.ZodOptional<z.ZodString>;
91
+ }, z.core.$loose>, z.ZodObject<{
92
+ rule: z.ZodLiteral<"in">;
93
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
94
+ message: z.ZodOptional<z.ZodString>;
95
+ }, z.core.$loose>, z.ZodObject<{
96
+ rule: z.ZodLiteral<"accept">;
97
+ value: z.ZodArray<z.ZodString>;
98
+ message: z.ZodOptional<z.ZodString>;
99
+ }, z.core.$loose>, z.ZodObject<{
100
+ rule: z.ZodLiteral<"maxSize">;
101
+ value: z.ZodNumber;
102
+ message: z.ZodOptional<z.ZodString>;
103
+ }, z.core.$loose>, z.ZodObject<{
104
+ rule: z.ZodEnum<{
105
+ before: "before";
106
+ after: "after";
107
+ }>;
108
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
109
+ field: z.ZodString;
110
+ }, z.core.$loose>]>;
111
+ message: z.ZodOptional<z.ZodString>;
112
+ }, z.core.$loose>, z.ZodObject<{
113
+ rule: z.ZodString;
114
+ message: z.ZodOptional<z.ZodString>;
115
+ }, z.core.$loose>]>>>;
116
+ visibleWhen: z.ZodOptional<z.ZodObject<{
117
+ field: z.ZodOptional<z.ZodString>;
118
+ equals: z.ZodOptional<z.ZodUnknown>;
119
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
120
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
121
+ filled: z.ZodOptional<z.ZodBoolean>;
122
+ all: z.ZodOptional<z.ZodArray<typeof Condition>>;
123
+ any: z.ZodOptional<z.ZodArray<typeof Condition>>;
124
+ }, z.core.$loose>>;
125
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
126
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
127
+ label: z.ZodString;
128
+ description: z.ZodOptional<z.ZodString>;
129
+ disabled: z.ZodOptional<z.ZodBoolean>;
130
+ }, z.core.$loose>>>;
131
+ multiple: z.ZodOptional<z.ZodBoolean>;
132
+ resource: z.ZodOptional<z.ZodString>;
133
+ accept: z.ZodOptional<z.ZodArray<z.ZodString>>;
134
+ from: z.ZodOptional<z.ZodString>;
135
+ display: z.ZodOptional<z.ZodString>;
136
+ fields: z.ZodOptional<z.ZodArray<typeof Field>>;
137
+ types: z.ZodOptional<z.ZodArray<typeof BlockType>>;
138
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
139
+ }, z.core.$loose>;
140
+ export type BuiltInFieldType = (typeof BUILT_IN_FIELD_TYPES)[number];
141
+ export type PortableRule = (typeof PORTABLE_RULES)[number];
142
+ export type Rule = z.infer<typeof Rule>;
143
+ export type BlockType = z.infer<typeof BlockType>;
144
+ export type Field = z.infer<typeof Field>;
145
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/schemas/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAU,MAAM,UAAU,CAAC;AAE7C,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,iLAkBvB,CAAC;AAEX,+DAA+D;AAC/D,eAAO,MAAM,cAAc,8GAYjB,CAAC;AAYX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAkCX,CAAC;AAEP,eAAO,MAAM,SAAS;;;;YAKJ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC;iBAGxC,CAAC;AAEH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAwCI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;WAMxC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;;iBAQhB,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AACxC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAClD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC"}
@@ -0,0 +1,127 @@
1
+ import { Condition, Option } from "./common.js";
2
+ import { z } from "zod";
3
+ //#region src/schemas/field.ts
4
+ /** Field types every Panneau frontend renders. Plugins add others. */
5
+ var BUILT_IN_FIELD_TYPES = [
6
+ "text",
7
+ "textarea",
8
+ "richtext",
9
+ "number",
10
+ "boolean",
11
+ "date",
12
+ "datetime",
13
+ "time",
14
+ "select",
15
+ "email",
16
+ "url",
17
+ "color",
18
+ "media",
19
+ "relation",
20
+ "group",
21
+ "repeater",
22
+ "slug"
23
+ ];
24
+ /** Validation rules that both frontends and backends check. */
25
+ var PORTABLE_RULES = [
26
+ "required",
27
+ "min",
28
+ "max",
29
+ "pattern",
30
+ "email",
31
+ "url",
32
+ "in",
33
+ "accept",
34
+ "maxSize",
35
+ "before",
36
+ "after"
37
+ ];
38
+ var message = z.string().optional().meta({ description: "Message shown when the rule fails, instead of the default one." });
39
+ var DateBound = z.union([z.string().meta({ description: "An ISO 8601 date or date-time." }), z.looseObject({ field: z.string().min(1) }).meta({ description: "Another field of the form." })]);
40
+ var Rule = z.union([
41
+ z.looseObject({
42
+ rule: z.literal("required"),
43
+ message
44
+ }),
45
+ z.looseObject({
46
+ rule: z.enum(["min", "max"]),
47
+ value: z.number(),
48
+ message
49
+ }),
50
+ z.looseObject({
51
+ rule: z.literal("pattern"),
52
+ value: z.string(),
53
+ flags: z.string().optional(),
54
+ message
55
+ }),
56
+ z.looseObject({
57
+ rule: z.enum(["email", "url"]),
58
+ message
59
+ }),
60
+ z.looseObject({
61
+ rule: z.literal("in"),
62
+ value: z.array(z.union([
63
+ z.string(),
64
+ z.number(),
65
+ z.boolean()
66
+ ])),
67
+ message
68
+ }),
69
+ z.looseObject({
70
+ rule: z.literal("accept"),
71
+ value: z.array(z.string().min(1)),
72
+ message
73
+ }),
74
+ z.looseObject({
75
+ rule: z.literal("maxSize"),
76
+ value: z.number().int().positive(),
77
+ message
78
+ }),
79
+ z.looseObject({
80
+ rule: z.enum(["before", "after"]),
81
+ value: DateBound,
82
+ message
83
+ }),
84
+ z.looseObject({
85
+ rule: z.string().refine((rule) => !PORTABLE_RULES.includes(rule)),
86
+ message
87
+ }).meta({ description: "A rule added in a later version of the protocol. Clients that don't know it ignore it; the server still enforces it." })
88
+ ]).meta({ description: "A portable validation rule. `min` and `max` apply to numbers, and to the length of text and arrays. `accept` lists MIME types (`image/*`). `maxSize` is in bytes." });
89
+ var BlockType = z.looseObject({
90
+ id: z.string().min(1),
91
+ label: z.string(),
92
+ icon: z.string().optional(),
93
+ get fields() {
94
+ return z.array(Field);
95
+ }
96
+ });
97
+ var Field = z.looseObject({
98
+ name: z.string().min(1),
99
+ type: z.string().min(1).meta({ description: "A built-in field type, or a type provided by a plugin." }),
100
+ label: z.string().optional(),
101
+ help: z.string().optional(),
102
+ placeholder: z.string().optional(),
103
+ default: z.unknown().optional(),
104
+ localized: z.boolean().optional().meta({ description: "The value is an object keyed by locale." }),
105
+ readOnly: z.boolean().optional(),
106
+ createOnly: z.boolean().optional(),
107
+ updateOnly: z.boolean().optional(),
108
+ rules: z.array(Rule).optional(),
109
+ visibleWhen: Condition.optional(),
110
+ options: z.array(Option).optional().meta({ description: "`select`: the choices." }),
111
+ multiple: z.boolean().optional().meta({ description: "`select`, `relation`, `media`: the value is an array." }),
112
+ resource: z.string().optional().meta({ description: "`relation`: id of the related resource." }),
113
+ accept: z.array(z.string()).optional().meta({ description: "`media`: accepted MIME types." }),
114
+ from: z.string().optional().meta({ description: "`slug`: the field the slug is generated from." }),
115
+ display: z.string().optional().meta({ description: "Display used in lists, when it differs from the default one of the type." }),
116
+ get fields() {
117
+ return z.array(Field).optional().meta({ description: "`group` and `repeater`: the nested fields." });
118
+ },
119
+ get types() {
120
+ return z.array(BlockType).optional().meta({ description: "`repeater`: typed blocks, each with its own fields." });
121
+ },
122
+ settings: z.record(z.string(), z.unknown()).optional()
123
+ }).meta({ description: "A field of a form." });
124
+ //#endregion
125
+ export { BUILT_IN_FIELD_TYPES, BlockType, Field, PORTABLE_RULES, Rule };
126
+
127
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","names":[],"sources":["../../src/schemas/field.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { Condition, Option } from './common';\n\n/** Field types every Panneau frontend renders. Plugins add others. */\nexport const BUILT_IN_FIELD_TYPES = [\n 'text',\n 'textarea',\n 'richtext',\n 'number',\n 'boolean',\n 'date',\n 'datetime',\n 'time',\n 'select',\n 'email',\n 'url',\n 'color',\n 'media',\n 'relation',\n 'group',\n 'repeater',\n 'slug',\n] as const;\n\n/** Validation rules that both frontends and backends check. */\nexport const PORTABLE_RULES = [\n 'required',\n 'min',\n 'max',\n 'pattern',\n 'email',\n 'url',\n 'in',\n 'accept',\n 'maxSize',\n 'before',\n 'after',\n] as const;\n\nconst message = z\n .string()\n .optional()\n .meta({ description: 'Message shown when the rule fails, instead of the default one.' });\n\nconst DateBound = z.union([\n z.string().meta({ description: 'An ISO 8601 date or date-time.' }),\n z.looseObject({ field: z.string().min(1) }).meta({ description: 'Another field of the form.' }),\n]);\n\nexport const Rule = z\n .union([\n z.looseObject({ rule: z.literal('required'), message }),\n z.looseObject({ rule: z.enum(['min', 'max']), value: z.number(), message }),\n z.looseObject({\n rule: z.literal('pattern'),\n value: z.string(),\n flags: z.string().optional(),\n message,\n }),\n z.looseObject({ rule: z.enum(['email', 'url']), message }),\n z.looseObject({\n rule: z.literal('in'),\n value: z.array(z.union([z.string(), z.number(), z.boolean()])),\n message,\n }),\n z.looseObject({ rule: z.literal('accept'), value: z.array(z.string().min(1)), message }),\n z.looseObject({ rule: z.literal('maxSize'), value: z.number().int().positive(), message }),\n z.looseObject({ rule: z.enum(['before', 'after']), value: DateBound, message }),\n z\n .looseObject({\n rule: z\n .string()\n .refine((rule) => !(PORTABLE_RULES as readonly string[]).includes(rule)),\n message,\n })\n .meta({\n description:\n \"A rule added in a later version of the protocol. Clients that don't know it ignore it; the server still enforces it.\",\n }),\n ])\n .meta({\n description:\n 'A portable validation rule. `min` and `max` apply to numbers, and to the length of text and arrays. `accept` lists MIME types (`image/*`). `maxSize` is in bytes.',\n });\n\nexport const BlockType = z.looseObject({\n id: z.string().min(1),\n label: z.string(),\n icon: z.string().optional(),\n // Return types are written out so that declaration files keep the recursion.\n get fields(): z.ZodArray<typeof Field> {\n return z.array(Field);\n },\n});\n\nexport const Field = z\n .looseObject({\n name: z.string().min(1),\n type: z\n .string()\n .min(1)\n .meta({ description: 'A built-in field type, or a type provided by a plugin.' }),\n label: z.string().optional(),\n help: z.string().optional(),\n placeholder: z.string().optional(),\n default: z.unknown().optional(),\n localized: z\n .boolean()\n .optional()\n .meta({ description: 'The value is an object keyed by locale.' }),\n readOnly: z.boolean().optional(),\n createOnly: z.boolean().optional(),\n updateOnly: z.boolean().optional(),\n rules: z.array(Rule).optional(),\n visibleWhen: Condition.optional(),\n options: z.array(Option).optional().meta({ description: '`select`: the choices.' }),\n multiple: z\n .boolean()\n .optional()\n .meta({ description: '`select`, `relation`, `media`: the value is an array.' }),\n resource: z\n .string()\n .optional()\n .meta({ description: '`relation`: id of the related resource.' }),\n accept: z\n .array(z.string())\n .optional()\n .meta({ description: '`media`: accepted MIME types.' }),\n from: z\n .string()\n .optional()\n .meta({ description: '`slug`: the field the slug is generated from.' }),\n display: z.string().optional().meta({\n description: 'Display used in lists, when it differs from the default one of the type.',\n }),\n get fields(): z.ZodOptional<z.ZodArray<typeof Field>> {\n return z\n .array(Field)\n .optional()\n .meta({ description: '`group` and `repeater`: the nested fields.' });\n },\n get types(): z.ZodOptional<z.ZodArray<typeof BlockType>> {\n return z\n .array(BlockType)\n .optional()\n .meta({ description: '`repeater`: typed blocks, each with its own fields.' });\n },\n settings: z.record(z.string(), z.unknown()).optional(),\n })\n .meta({ description: 'A field of a form.' });\n\nexport type BuiltInFieldType = (typeof BUILT_IN_FIELD_TYPES)[number];\nexport type PortableRule = (typeof PORTABLE_RULES)[number];\nexport type Rule = z.infer<typeof Rule>;\nexport type BlockType = z.infer<typeof BlockType>;\nexport type Field = z.infer<typeof Field>;\n"],"mappings":"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"}