@panneau/protocol 0.0.0-stage → 5.0.0-alpha.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.
Files changed (103) hide show
  1. package/README.md +35 -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 +270 -0
  9. package/dist/conformance/index.js.map +1 -0
  10. package/dist/constants.d.ts +21 -0
  11. package/dist/constants.d.ts.map +1 -0
  12. package/dist/constants.js +73 -0
  13. package/dist/constants.js.map +1 -0
  14. package/dist/index.d.ts +5 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +21 -0
  17. package/dist/lint.d.ts +8 -0
  18. package/dist/lint.d.ts.map +1 -0
  19. package/dist/lint.js +73 -0
  20. package/dist/lint.js.map +1 -0
  21. package/dist/mock/example.d.ts +8 -0
  22. package/dist/mock/example.d.ts.map +1 -0
  23. package/dist/mock/example.js +190 -0
  24. package/dist/mock/example.js.map +1 -0
  25. package/dist/mock/index.d.ts +24 -0
  26. package/dist/mock/index.d.ts.map +1 -0
  27. package/dist/mock/index.js +254 -0
  28. package/dist/mock/index.js.map +1 -0
  29. package/dist/openapi.d.ts +11 -0
  30. package/dist/openapi.d.ts.map +1 -0
  31. package/dist/openapi.js +540 -0
  32. package/dist/openapi.js.map +1 -0
  33. package/dist/problem.d.ts +7 -0
  34. package/dist/problem.d.ts.map +1 -0
  35. package/dist/problem.js +22 -0
  36. package/dist/problem.js.map +1 -0
  37. package/dist/query.d.ts +41 -0
  38. package/dist/query.d.ts.map +1 -0
  39. package/dist/query.js +80 -0
  40. package/dist/query.js.map +1 -0
  41. package/dist/rules.d.ts +29 -0
  42. package/dist/rules.d.ts.map +1 -0
  43. package/dist/rules.js +143 -0
  44. package/dist/rules.js.map +1 -0
  45. package/dist/runtime/index.d.ts +10 -0
  46. package/dist/runtime/index.d.ts.map +1 -0
  47. package/dist/runtime/index.js +9 -0
  48. package/dist/schemas/action.d.ts +163 -0
  49. package/dist/schemas/action.d.ts.map +1 -0
  50. package/dist/schemas/action.js +56 -0
  51. package/dist/schemas/action.js.map +1 -0
  52. package/dist/schemas/api.d.ts +371 -0
  53. package/dist/schemas/api.d.ts.map +1 -0
  54. package/dist/schemas/api.js +140 -0
  55. package/dist/schemas/api.js.map +1 -0
  56. package/dist/schemas/boot.d.ts +14 -0
  57. package/dist/schemas/boot.d.ts.map +1 -0
  58. package/dist/schemas/boot.js +16 -0
  59. package/dist/schemas/boot.js.map +1 -0
  60. package/dist/schemas/common.d.ts +28 -0
  61. package/dist/schemas/common.d.ts.map +1 -0
  62. package/dist/schemas/common.js +35 -0
  63. package/dist/schemas/common.js.map +1 -0
  64. package/dist/schemas/definition.d.ts +462 -0
  65. package/dist/schemas/definition.d.ts.map +1 -0
  66. package/dist/schemas/definition.js +101 -0
  67. package/dist/schemas/definition.js.map +1 -0
  68. package/dist/schemas/field.d.ts +139 -0
  69. package/dist/schemas/field.d.ts.map +1 -0
  70. package/dist/schemas/field.js +94 -0
  71. package/dist/schemas/field.js.map +1 -0
  72. package/dist/schemas/index.d.ts +1536 -0
  73. package/dist/schemas/index.d.ts.map +1 -0
  74. package/dist/schemas/index.js +68 -0
  75. package/dist/schemas/index.js.map +1 -0
  76. package/dist/schemas/layout.d.ts +26 -0
  77. package/dist/schemas/layout.d.ts.map +1 -0
  78. package/dist/schemas/layout.js +23 -0
  79. package/dist/schemas/layout.js.map +1 -0
  80. package/dist/schemas/list.d.ts +69 -0
  81. package/dist/schemas/list.d.ts.map +1 -0
  82. package/dist/schemas/list.js +41 -0
  83. package/dist/schemas/list.js.map +1 -0
  84. package/dist/schemas/resource.d.ts +328 -0
  85. package/dist/schemas/resource.d.ts.map +1 -0
  86. package/dist/schemas/resource.js +38 -0
  87. package/dist/schemas/resource.js.map +1 -0
  88. package/dist/validate.d.ts +28 -0
  89. package/dist/validate.d.ts.map +1 -0
  90. package/dist/validate.js +52 -0
  91. package/dist/validate.js.map +1 -0
  92. package/dist/values.d.ts +7 -0
  93. package/dist/values.d.ts.map +1 -0
  94. package/dist/values.js +29 -0
  95. package/dist/values.js.map +1 -0
  96. package/dist/version.d.ts +5 -0
  97. package/dist/version.d.ts.map +1 -0
  98. package/dist/version.js +9 -0
  99. package/dist/version.js.map +1 -0
  100. package/package.json +53 -5
  101. package/schema/boot.schema.json +1229 -0
  102. package/schema/definition.schema.json +1195 -0
  103. package/schema/openapi.json +3839 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { Abilities, Condition, Id, Option, RouteReference } from "./common.js";
2
+ import { BlockType, Field, Rule } from "./field.js";
3
+ import { LayoutNode } from "./layout.js";
4
+ import { Action, ActionConfirm, ActionPlacement, ActionScope } from "./action.js";
5
+ import { Column, Filter, ListDefinition } from "./list.js";
6
+ import { Resource, ResourceFeatures } from "./resource.js";
7
+ import { Auth, AuthProvider, Definition, MenuItem, Page, Uploads, User, Widget } from "./definition.js";
8
+ import { ActionItemResult, ActionRequest, ActionResult, ActionRun, ActionRunResponse, Item, ItemResponse, ListResponse, Media, MediaListResponse, MediaResponse, MediaTransform, Pagination, PreviewResponse, Problem, SearchResponse, Selection, Session } from "./api.js";
9
+ import { BootConfig } from "./boot.js";
10
+ import { z } from "zod";
11
+ //#region src/schemas/index.ts
12
+ /** The named schemas of the protocol, as they appear in the generated JSON Schema and OpenAPI files. */
13
+ var namedSchemas = {
14
+ Id,
15
+ Abilities,
16
+ RouteReference,
17
+ Condition,
18
+ Option,
19
+ Rule,
20
+ BlockType,
21
+ Field,
22
+ LayoutNode,
23
+ Column,
24
+ Filter,
25
+ ListDefinition,
26
+ ActionScope,
27
+ ActionPlacement,
28
+ ActionConfirm,
29
+ Action,
30
+ ResourceFeatures,
31
+ Resource,
32
+ User,
33
+ AuthProvider,
34
+ Auth,
35
+ MenuItem,
36
+ Page,
37
+ Widget,
38
+ Uploads,
39
+ Definition,
40
+ Item,
41
+ Pagination,
42
+ ItemResponse,
43
+ ListResponse,
44
+ Problem,
45
+ Selection,
46
+ ActionRequest,
47
+ ActionItemResult,
48
+ ActionResult,
49
+ ActionRun,
50
+ ActionRunResponse,
51
+ MediaTransform,
52
+ Media,
53
+ MediaResponse,
54
+ MediaListResponse,
55
+ Session,
56
+ SearchResponse,
57
+ PreviewResponse
58
+ };
59
+ /** A registry of the named schemas, used to reference them by name in generated files. */
60
+ function createSchemaRegistry() {
61
+ const registry = z.registry();
62
+ Object.entries(namedSchemas).forEach(([id, schema]) => registry.add(schema, { id }));
63
+ return registry;
64
+ }
65
+ //#endregion
66
+ export { Abilities, Action, ActionConfirm, ActionItemResult, ActionPlacement, ActionRequest, ActionResult, ActionRun, ActionRunResponse, ActionScope, Auth, AuthProvider, BlockType, BootConfig, Column, Condition, Definition, Field, Filter, Id, Item, ItemResponse, LayoutNode, ListDefinition, ListResponse, Media, MediaListResponse, MediaResponse, MediaTransform, MenuItem, Option, Page, Pagination, PreviewResponse, Problem, Resource, ResourceFeatures, RouteReference, Rule, SearchResponse, Selection, Session, Uploads, User, Widget, createSchemaRegistry, namedSchemas };
67
+
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/schemas/index.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { Action, ActionConfirm, ActionPlacement, ActionScope } from './action';\nimport {\n ActionItemResult,\n ActionRequest,\n ActionResult,\n ActionRun,\n ActionRunResponse,\n Item,\n ItemResponse,\n ListResponse,\n Media,\n MediaListResponse,\n MediaResponse,\n MediaTransform,\n Pagination,\n PreviewResponse,\n Problem,\n SearchResponse,\n Selection,\n Session,\n} from './api';\nimport { Abilities, Condition, Id, Option, RouteReference } from './common';\nimport {\n Auth,\n AuthProvider,\n Definition,\n MenuItem,\n Page,\n Uploads,\n User,\n Widget,\n} from './definition';\nimport { BlockType, Field, Rule } from './field';\nimport { LayoutNode } from './layout';\nimport { Column, Filter, ListDefinition } from './list';\nimport { Resource, ResourceFeatures } from './resource';\n\nexport * from './common';\nexport * from './field';\nexport * from './layout';\nexport * from './list';\nexport * from './action';\nexport * from './resource';\nexport * from './definition';\nexport * from './api';\nexport * from './boot';\n\n/** The named schemas of the protocol, as they appear in the generated JSON Schema and OpenAPI files. */\nexport const namedSchemas = {\n Id,\n Abilities,\n RouteReference,\n Condition,\n Option,\n Rule,\n BlockType,\n Field,\n LayoutNode,\n Column,\n Filter,\n ListDefinition,\n ActionScope,\n ActionPlacement,\n ActionConfirm,\n Action,\n ResourceFeatures,\n Resource,\n User,\n AuthProvider,\n Auth,\n MenuItem,\n Page,\n Widget,\n Uploads,\n Definition,\n Item,\n Pagination,\n ItemResponse,\n ListResponse,\n Problem,\n Selection,\n ActionRequest,\n ActionItemResult,\n ActionResult,\n ActionRun,\n ActionRunResponse,\n MediaTransform,\n Media,\n MediaResponse,\n MediaListResponse,\n Session,\n SearchResponse,\n PreviewResponse,\n} satisfies Record<string, z.ZodType>;\n\n/** A registry of the named schemas, used to reference them by name in generated files. */\nexport function createSchemaRegistry() {\n const registry = z.registry<{ id: string }>();\n Object.entries(namedSchemas).forEach(([id, schema]) => registry.add(schema, { id }));\n return registry;\n}\n"],"mappings":";;;;;;;;;;;;AAkDA,IAAa,eAAe;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACJ;;AAGA,SAAgB,uBAAuB;CACnC,MAAM,WAAW,EAAE,SAAyB;CAC5C,OAAO,QAAQ,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,YAAY,SAAS,IAAI,QAAQ,EAAE,GAAG,CAAC,CAAC;CACnF,OAAO;AACX"}
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ import { Condition } from './common';
3
+ export declare const LayoutNode: z.ZodObject<{
4
+ type: z.ZodString;
5
+ name: z.ZodOptional<z.ZodString>;
6
+ label: z.ZodOptional<z.ZodString>;
7
+ description: z.ZodOptional<z.ZodString>;
8
+ text: z.ZodOptional<z.ZodString>;
9
+ component: z.ZodOptional<z.ZodString>;
10
+ props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
11
+ width: z.ZodOptional<z.ZodNumber>;
12
+ collapsible: z.ZodOptional<z.ZodBoolean>;
13
+ collapsed: z.ZodOptional<z.ZodBoolean>;
14
+ visibleWhen: z.ZodOptional<z.ZodObject<{
15
+ field: z.ZodOptional<z.ZodString>;
16
+ equals: z.ZodOptional<z.ZodUnknown>;
17
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
18
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
19
+ filled: z.ZodOptional<z.ZodBoolean>;
20
+ all: z.ZodOptional<z.ZodArray<typeof Condition>>;
21
+ any: z.ZodOptional<z.ZodArray<typeof Condition>>;
22
+ }, z.core.$loose>>;
23
+ children: z.ZodOptional<z.ZodArray<typeof LayoutNode>>;
24
+ }, z.core.$loose>;
25
+ export type LayoutNode = z.infer<typeof LayoutNode>;
26
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/schemas/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;cA0BC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;iBAO9D,CAAC;AAEP,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Condition } from "./common.js";
2
+ import { z } from "zod";
3
+ //#region src/schemas/layout.ts
4
+ var LayoutNode = z.looseObject({
5
+ type: z.string().min(1).meta({ description: "A built-in node type, or a type provided by a plugin." }),
6
+ name: z.string().min(1).optional().meta({ description: "`field`: the name of the field." }),
7
+ label: z.string().optional().meta({ description: "`section`, `tab`: the title." }),
8
+ description: z.string().optional(),
9
+ text: z.string().optional().meta({ description: "`text`: a static paragraph." }),
10
+ component: z.string().optional().meta({ description: "`component`: a component provided by a plugin." }),
11
+ props: z.record(z.string(), z.unknown()).optional(),
12
+ width: z.number().int().min(1).max(12).optional().meta({ description: "Width on a 12-column grid, inside a `row`." }),
13
+ collapsible: z.boolean().optional(),
14
+ collapsed: z.boolean().optional(),
15
+ visibleWhen: Condition.optional(),
16
+ get children() {
17
+ return z.array(LayoutNode).optional();
18
+ }
19
+ }).meta({ description: "A node of a form layout. Containers (`row`, `column`, `section`, `tabs`, `tab`, `sidebar`) have `children`. Fields that no node references are appended at the end of the form." });
20
+ //#endregion
21
+ export { LayoutNode };
22
+
23
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","names":[],"sources":["../../src/schemas/layout.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { Condition } from './common';\n\nexport const LayoutNode = z\n .looseObject({\n type: z\n .string()\n .min(1)\n .meta({ description: 'A built-in node type, or a type provided by a plugin.' }),\n name: z.string().min(1).optional().meta({ description: '`field`: the name of the field.' }),\n label: z.string().optional().meta({ description: '`section`, `tab`: the title.' }),\n description: z.string().optional(),\n text: z.string().optional().meta({ description: '`text`: a static paragraph.' }),\n component: z\n .string()\n .optional()\n .meta({ description: '`component`: a component provided by a plugin.' }),\n props: z.record(z.string(), z.unknown()).optional(),\n width: z\n .number()\n .int()\n .min(1)\n .max(12)\n .optional()\n .meta({ description: 'Width on a 12-column grid, inside a `row`.' }),\n collapsible: z.boolean().optional(),\n collapsed: z.boolean().optional(),\n visibleWhen: Condition.optional(),\n // The return type is written out so that declaration files keep the recursion.\n get children(): z.ZodOptional<z.ZodArray<typeof LayoutNode>> {\n return z.array(LayoutNode).optional();\n },\n })\n .meta({\n description:\n 'A node of a form layout. Containers (`row`, `column`, `section`, `tabs`, `tab`, `sidebar`) have `children`. Fields that no node references are appended at the end of the form.',\n });\n\nexport type LayoutNode = z.infer<typeof LayoutNode>;\n"],"mappings":";;;AAIA,IAAa,aAAa,EACrB,YAAY;CACT,MAAM,EACD,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,KAAK,EAAE,aAAa,wDAAwD,CAAC;CAClF,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,kCAAkC,CAAC;CAC1F,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,+BAA+B,CAAC;CACjF,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,8BAA8B,CAAC;CAC/E,WAAW,EACN,OAAO,CAAC,CACR,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,iDAAiD,CAAC;CAC3E,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;CAClD,OAAO,EACF,OAAO,CAAC,CACR,IAAI,CAAC,CACL,IAAI,CAAC,CAAC,CACN,IAAI,EAAE,CAAC,CACP,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,6CAA6C,CAAC;CACvE,aAAa,EAAE,QAAQ,CAAC,CAAC,SAAS;CAClC,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS;CAChC,aAAa,UAAU,SAAS;CAEhC,IAAI,WAAyD;EACzD,OAAO,EAAE,MAAM,UAAU,CAAC,CAAC,SAAS;CACxC;AACJ,CAAC,CAAC,CACD,KAAK,EACF,aACI,kLACR,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { z } from 'zod';
2
+ export declare const Column: z.ZodObject<{
3
+ field: z.ZodOptional<z.ZodString>;
4
+ id: z.ZodOptional<z.ZodString>;
5
+ label: z.ZodOptional<z.ZodString>;
6
+ display: z.ZodOptional<z.ZodString>;
7
+ sortable: z.ZodOptional<z.ZodBoolean>;
8
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
9
+ align: z.ZodOptional<z.ZodEnum<{
10
+ start: "start";
11
+ center: "center";
12
+ end: "end";
13
+ }>>;
14
+ }, z.core.$loose>;
15
+ export declare const Filter: z.ZodObject<{
16
+ id: z.ZodString;
17
+ type: z.ZodString;
18
+ label: z.ZodOptional<z.ZodString>;
19
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
20
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
21
+ label: z.ZodString;
22
+ description: z.ZodOptional<z.ZodString>;
23
+ disabled: z.ZodOptional<z.ZodBoolean>;
24
+ }, z.core.$loose>>>;
25
+ resource: z.ZodOptional<z.ZodString>;
26
+ multiple: z.ZodOptional<z.ZodBoolean>;
27
+ default: z.ZodOptional<z.ZodUnknown>;
28
+ }, z.core.$loose>;
29
+ export declare const ListDefinition: z.ZodObject<{
30
+ columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
31
+ field: z.ZodOptional<z.ZodString>;
32
+ id: z.ZodOptional<z.ZodString>;
33
+ label: z.ZodOptional<z.ZodString>;
34
+ display: z.ZodOptional<z.ZodString>;
35
+ sortable: z.ZodOptional<z.ZodBoolean>;
36
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
37
+ align: z.ZodOptional<z.ZodEnum<{
38
+ start: "start";
39
+ center: "center";
40
+ end: "end";
41
+ }>>;
42
+ }, z.core.$loose>>>;
43
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
44
+ id: z.ZodString;
45
+ type: z.ZodString;
46
+ label: z.ZodOptional<z.ZodString>;
47
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
48
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
49
+ label: z.ZodString;
50
+ description: z.ZodOptional<z.ZodString>;
51
+ disabled: z.ZodOptional<z.ZodBoolean>;
52
+ }, z.core.$loose>>>;
53
+ resource: z.ZodOptional<z.ZodString>;
54
+ multiple: z.ZodOptional<z.ZodBoolean>;
55
+ default: z.ZodOptional<z.ZodUnknown>;
56
+ }, z.core.$loose>>>;
57
+ sorts: z.ZodOptional<z.ZodArray<z.ZodString>>;
58
+ defaultSort: z.ZodOptional<z.ZodString>;
59
+ search: z.ZodOptional<z.ZodBoolean>;
60
+ layouts: z.ZodOptional<z.ZodArray<z.ZodString>>;
61
+ perPage: z.ZodOptional<z.ZodNumber>;
62
+ perPageOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
63
+ inlineEdit: z.ZodOptional<z.ZodArray<z.ZodString>>;
64
+ selectable: z.ZodOptional<z.ZodBoolean>;
65
+ }, z.core.$loose>;
66
+ export type Column = z.infer<typeof Column>;
67
+ export type Filter = z.infer<typeof Filter>;
68
+ export type ListDefinition = z.infer<typeof ListDefinition>;
69
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/schemas/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,MAAM;;;;;;;;;;;;iBAgBb,CAAC;AAEP,eAAO,MAAM,MAAM;;;;;;;;;;;;;iBAWjB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoBzB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { Option } from "./common.js";
2
+ import { z } from "zod";
3
+ //#region src/schemas/list.ts
4
+ var Column = z.looseObject({
5
+ field: z.string().min(1).optional().meta({ description: "The field shown in the column." }),
6
+ id: z.string().min(1).optional().meta({ description: "Id of a column that is not a field." }),
7
+ label: z.string().optional(),
8
+ display: z.string().optional().meta({ description: "How the value is displayed." }),
9
+ sortable: z.boolean().optional(),
10
+ width: z.union([z.number(), z.string()]).optional(),
11
+ align: z.enum([
12
+ "start",
13
+ "center",
14
+ "end"
15
+ ]).optional()
16
+ }).refine((column) => column.field !== void 0 || column.id !== void 0, { message: "A column needs a `field` or an `id`." });
17
+ var Filter = z.looseObject({
18
+ id: z.string().min(1).meta({ description: "Sent as `filter[id]`." }),
19
+ type: z.string().min(1).meta({ description: "Built-in: `text`, `select`, `toggle`, `date`, `date-range`, `relation`. A `date-range` value is the bounds of a range: `filter[id][from]` and `filter[id][to]`, days (`2026-01-31`), both inclusive and both optional." }),
20
+ label: z.string().optional(),
21
+ options: z.array(Option).optional(),
22
+ resource: z.string().optional(),
23
+ multiple: z.boolean().optional(),
24
+ default: z.unknown().optional()
25
+ });
26
+ var ListDefinition = z.looseObject({
27
+ columns: z.array(Column).optional(),
28
+ filters: z.array(Filter).optional(),
29
+ sorts: z.array(z.string().min(1)).optional().meta({ description: "Fields the list can be sorted by." }),
30
+ defaultSort: z.string().optional().meta({ description: "Same format as the `sort` query parameter: `-published_at,title`." }),
31
+ search: z.boolean().optional().meta({ description: "Whether the `q` parameter is supported." }),
32
+ layouts: z.array(z.string().min(1)).optional(),
33
+ perPage: z.number().int().positive().optional(),
34
+ perPageOptions: z.array(z.number().int().positive()).optional(),
35
+ inlineEdit: z.array(z.string().min(1)).optional().meta({ description: "Fields editable in the list." }),
36
+ selectable: z.boolean().optional()
37
+ });
38
+ //#endregion
39
+ export { Column, Filter, ListDefinition };
40
+
41
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","names":[],"sources":["../../src/schemas/list.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { Option } from './common';\n\nexport const Column = z\n .looseObject({\n field: z.string().min(1).optional().meta({ description: 'The field shown in the column.' }),\n id: z\n .string()\n .min(1)\n .optional()\n .meta({ description: 'Id of a column that is not a field.' }),\n label: z.string().optional(),\n display: z.string().optional().meta({ description: 'How the value is displayed.' }),\n sortable: z.boolean().optional(),\n width: z.union([z.number(), z.string()]).optional(),\n align: z.enum(['start', 'center', 'end']).optional(),\n })\n .refine((column) => column.field !== undefined || column.id !== undefined, {\n message: 'A column needs a `field` or an `id`.',\n });\n\nexport const Filter = z.looseObject({\n id: z.string().min(1).meta({ description: 'Sent as `filter[id]`.' }),\n type: z.string().min(1).meta({\n description:\n 'Built-in: `text`, `select`, `toggle`, `date`, `date-range`, `relation`. A `date-range` value is the bounds of a range: `filter[id][from]` and `filter[id][to]`, days (`2026-01-31`), both inclusive and both optional.',\n }),\n label: z.string().optional(),\n options: z.array(Option).optional(),\n resource: z.string().optional(),\n multiple: z.boolean().optional(),\n default: z.unknown().optional(),\n});\n\nexport const ListDefinition = z.looseObject({\n columns: z.array(Column).optional(),\n filters: z.array(Filter).optional(),\n sorts: z\n .array(z.string().min(1))\n .optional()\n .meta({ description: 'Fields the list can be sorted by.' }),\n defaultSort: z\n .string()\n .optional()\n .meta({ description: 'Same format as the `sort` query parameter: `-published_at,title`.' }),\n search: z.boolean().optional().meta({ description: 'Whether the `q` parameter is supported.' }),\n layouts: z.array(z.string().min(1)).optional(),\n perPage: z.number().int().positive().optional(),\n perPageOptions: z.array(z.number().int().positive()).optional(),\n inlineEdit: z\n .array(z.string().min(1))\n .optional()\n .meta({ description: 'Fields editable in the list.' }),\n selectable: z.boolean().optional(),\n});\n\nexport type Column = z.infer<typeof Column>;\nexport type Filter = z.infer<typeof Filter>;\nexport type ListDefinition = z.infer<typeof ListDefinition>;\n"],"mappings":";;;AAIA,IAAa,SAAS,EACjB,YAAY;CACT,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,iCAAiC,CAAC;CAC1F,IAAI,EACC,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,sCAAsC,CAAC;CAChE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,8BAA8B,CAAC;CAClF,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC/B,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;CAClD,OAAO,EAAE,KAAK;EAAC;EAAS;EAAU;CAAK,CAAC,CAAC,CAAC,SAAS;AACvD,CAAC,CAAC,CACD,QAAQ,WAAW,OAAO,UAAU,KAAA,KAAa,OAAO,OAAO,KAAA,GAAW,EACvE,SAAS,uCACb,CAAC;AAEL,IAAa,SAAS,EAAE,YAAY;CAChC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,aAAa,wBAAwB,CAAC;CACnE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EACzB,aACI,yNACR,CAAC;CACD,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,SAAS,EAAE,MAAM,MAAM,CAAC,CAAC,SAAS;CAClC,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC/B,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS;AAClC,CAAC;AAED,IAAa,iBAAiB,EAAE,YAAY;CACxC,SAAS,EAAE,MAAM,MAAM,CAAC,CAAC,SAAS;CAClC,SAAS,EAAE,MAAM,MAAM,CAAC,CAAC,SAAS;CAClC,OAAO,EACF,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxB,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,oCAAoC,CAAC;CAC9D,aAAa,EACR,OAAO,CAAC,CACR,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,oEAAoE,CAAC;CAC9F,QAAQ,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,0CAA0C,CAAC;CAC9F,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;CAC7C,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9C,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;CAC9D,YAAY,EACP,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxB,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,+BAA+B,CAAC;CACzD,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS;AACrC,CAAC"}
@@ -0,0 +1,328 @@
1
+ import { z } from 'zod';
2
+ import { BlockType, Field } from './field';
3
+ import { LayoutNode } from './layout';
4
+ export declare const ResourceFeatures: z.ZodObject<{
5
+ drafts: z.ZodOptional<z.ZodBoolean>;
6
+ revisions: z.ZodOptional<z.ZodBoolean>;
7
+ preview: z.ZodOptional<z.ZodUnion<readonly [z.ZodNull, z.ZodObject<{
8
+ mode: z.ZodEnum<{
9
+ component: "component";
10
+ iframe: "iframe";
11
+ }>;
12
+ component: z.ZodOptional<z.ZodString>;
13
+ }, z.core.$loose>]>>;
14
+ search: z.ZodOptional<z.ZodBoolean>;
15
+ }, z.core.$loose>;
16
+ export declare const Resource: z.ZodObject<{
17
+ id: z.ZodString;
18
+ label: z.ZodObject<{
19
+ singular: z.ZodString;
20
+ plural: z.ZodString;
21
+ }, z.core.$loose>;
22
+ description: z.ZodOptional<z.ZodString>;
23
+ icon: z.ZodOptional<z.ZodString>;
24
+ itemTitle: z.ZodOptional<z.ZodString>;
25
+ fields: z.ZodArray<z.ZodObject<{
26
+ name: z.ZodString;
27
+ type: z.ZodString;
28
+ label: z.ZodOptional<z.ZodString>;
29
+ help: z.ZodOptional<z.ZodString>;
30
+ placeholder: z.ZodOptional<z.ZodString>;
31
+ default: z.ZodOptional<z.ZodUnknown>;
32
+ localized: z.ZodOptional<z.ZodBoolean>;
33
+ readOnly: z.ZodOptional<z.ZodBoolean>;
34
+ createOnly: z.ZodOptional<z.ZodBoolean>;
35
+ updateOnly: z.ZodOptional<z.ZodBoolean>;
36
+ rules: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
37
+ rule: z.ZodLiteral<"required">;
38
+ message: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$loose>, z.ZodObject<{
40
+ rule: z.ZodEnum<{
41
+ min: "min";
42
+ max: "max";
43
+ }>;
44
+ value: z.ZodNumber;
45
+ message: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$loose>, z.ZodObject<{
47
+ rule: z.ZodLiteral<"pattern">;
48
+ value: z.ZodString;
49
+ flags: z.ZodOptional<z.ZodString>;
50
+ message: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$loose>, z.ZodObject<{
52
+ rule: z.ZodEnum<{
53
+ email: "email";
54
+ url: "url";
55
+ }>;
56
+ message: z.ZodOptional<z.ZodString>;
57
+ }, z.core.$loose>, z.ZodObject<{
58
+ rule: z.ZodLiteral<"in">;
59
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
60
+ message: z.ZodOptional<z.ZodString>;
61
+ }, z.core.$loose>, z.ZodObject<{
62
+ rule: z.ZodLiteral<"accept">;
63
+ value: z.ZodArray<z.ZodString>;
64
+ message: z.ZodOptional<z.ZodString>;
65
+ }, z.core.$loose>, z.ZodObject<{
66
+ rule: z.ZodLiteral<"maxSize">;
67
+ value: z.ZodNumber;
68
+ message: z.ZodOptional<z.ZodString>;
69
+ }, z.core.$loose>, z.ZodObject<{
70
+ rule: z.ZodEnum<{
71
+ before: "before";
72
+ after: "after";
73
+ }>;
74
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
75
+ field: z.ZodString;
76
+ }, z.core.$loose>]>;
77
+ message: z.ZodOptional<z.ZodString>;
78
+ }, z.core.$loose>, z.ZodObject<{
79
+ rule: z.ZodString;
80
+ message: z.ZodOptional<z.ZodString>;
81
+ }, z.core.$loose>]>>>;
82
+ visibleWhen: z.ZodOptional<z.ZodObject<{
83
+ field: z.ZodOptional<z.ZodString>;
84
+ equals: z.ZodOptional<z.ZodUnknown>;
85
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
86
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
87
+ filled: z.ZodOptional<z.ZodBoolean>;
88
+ all: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
89
+ any: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
90
+ }, z.core.$loose>>;
91
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
92
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
93
+ label: z.ZodString;
94
+ description: z.ZodOptional<z.ZodString>;
95
+ disabled: z.ZodOptional<z.ZodBoolean>;
96
+ }, z.core.$loose>>>;
97
+ multiple: z.ZodOptional<z.ZodBoolean>;
98
+ resource: z.ZodOptional<z.ZodString>;
99
+ accept: z.ZodOptional<z.ZodArray<z.ZodString>>;
100
+ from: z.ZodOptional<z.ZodString>;
101
+ display: z.ZodOptional<z.ZodString>;
102
+ fields: z.ZodOptional<z.ZodArray<typeof Field>>;
103
+ types: z.ZodOptional<z.ZodArray<typeof BlockType>>;
104
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
105
+ }, z.core.$loose>>;
106
+ form: z.ZodOptional<z.ZodObject<{
107
+ layout: z.ZodOptional<z.ZodArray<z.ZodObject<{
108
+ type: z.ZodString;
109
+ name: z.ZodOptional<z.ZodString>;
110
+ label: z.ZodOptional<z.ZodString>;
111
+ description: z.ZodOptional<z.ZodString>;
112
+ text: z.ZodOptional<z.ZodString>;
113
+ component: z.ZodOptional<z.ZodString>;
114
+ props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
115
+ width: z.ZodOptional<z.ZodNumber>;
116
+ collapsible: z.ZodOptional<z.ZodBoolean>;
117
+ collapsed: z.ZodOptional<z.ZodBoolean>;
118
+ visibleWhen: z.ZodOptional<z.ZodObject<{
119
+ field: z.ZodOptional<z.ZodString>;
120
+ equals: z.ZodOptional<z.ZodUnknown>;
121
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
122
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
123
+ filled: z.ZodOptional<z.ZodBoolean>;
124
+ all: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
125
+ any: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
126
+ }, z.core.$loose>>;
127
+ children: z.ZodOptional<z.ZodArray<typeof LayoutNode>>;
128
+ }, z.core.$loose>>>;
129
+ }, z.core.$loose>>;
130
+ list: z.ZodOptional<z.ZodObject<{
131
+ columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
132
+ field: z.ZodOptional<z.ZodString>;
133
+ id: z.ZodOptional<z.ZodString>;
134
+ label: z.ZodOptional<z.ZodString>;
135
+ display: z.ZodOptional<z.ZodString>;
136
+ sortable: z.ZodOptional<z.ZodBoolean>;
137
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
138
+ align: z.ZodOptional<z.ZodEnum<{
139
+ start: "start";
140
+ center: "center";
141
+ end: "end";
142
+ }>>;
143
+ }, z.core.$loose>>>;
144
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
145
+ id: z.ZodString;
146
+ type: z.ZodString;
147
+ label: z.ZodOptional<z.ZodString>;
148
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
149
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
150
+ label: z.ZodString;
151
+ description: z.ZodOptional<z.ZodString>;
152
+ disabled: z.ZodOptional<z.ZodBoolean>;
153
+ }, z.core.$loose>>>;
154
+ resource: z.ZodOptional<z.ZodString>;
155
+ multiple: z.ZodOptional<z.ZodBoolean>;
156
+ default: z.ZodOptional<z.ZodUnknown>;
157
+ }, z.core.$loose>>>;
158
+ sorts: z.ZodOptional<z.ZodArray<z.ZodString>>;
159
+ defaultSort: z.ZodOptional<z.ZodString>;
160
+ search: z.ZodOptional<z.ZodBoolean>;
161
+ layouts: z.ZodOptional<z.ZodArray<z.ZodString>>;
162
+ perPage: z.ZodOptional<z.ZodNumber>;
163
+ perPageOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
164
+ inlineEdit: z.ZodOptional<z.ZodArray<z.ZodString>>;
165
+ selectable: z.ZodOptional<z.ZodBoolean>;
166
+ }, z.core.$loose>>;
167
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
168
+ id: z.ZodString;
169
+ label: z.ZodString;
170
+ icon: z.ZodOptional<z.ZodString>;
171
+ kind: z.ZodDefault<z.ZodEnum<{
172
+ link: "link";
173
+ server: "server";
174
+ client: "client";
175
+ }>>;
176
+ scope: z.ZodArray<z.ZodEnum<{
177
+ resource: "resource";
178
+ item: "item";
179
+ selection: "selection";
180
+ }>>;
181
+ placement: z.ZodOptional<z.ZodArray<z.ZodEnum<{
182
+ row: "row";
183
+ toolbar: "toolbar";
184
+ form: "form";
185
+ menu: "menu";
186
+ }>>>;
187
+ destructive: z.ZodOptional<z.ZodBoolean>;
188
+ confirm: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
189
+ title: z.ZodOptional<z.ZodString>;
190
+ message: z.ZodOptional<z.ZodString>;
191
+ confirmLabel: z.ZodOptional<z.ZodString>;
192
+ cancelLabel: z.ZodOptional<z.ZodString>;
193
+ }, z.core.$loose>]>>;
194
+ fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
195
+ name: z.ZodString;
196
+ type: z.ZodString;
197
+ label: z.ZodOptional<z.ZodString>;
198
+ help: z.ZodOptional<z.ZodString>;
199
+ placeholder: z.ZodOptional<z.ZodString>;
200
+ default: z.ZodOptional<z.ZodUnknown>;
201
+ localized: z.ZodOptional<z.ZodBoolean>;
202
+ readOnly: z.ZodOptional<z.ZodBoolean>;
203
+ createOnly: z.ZodOptional<z.ZodBoolean>;
204
+ updateOnly: z.ZodOptional<z.ZodBoolean>;
205
+ rules: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
206
+ rule: z.ZodLiteral<"required">;
207
+ message: z.ZodOptional<z.ZodString>;
208
+ }, z.core.$loose>, z.ZodObject<{
209
+ rule: z.ZodEnum<{
210
+ min: "min";
211
+ max: "max";
212
+ }>;
213
+ value: z.ZodNumber;
214
+ message: z.ZodOptional<z.ZodString>;
215
+ }, z.core.$loose>, z.ZodObject<{
216
+ rule: z.ZodLiteral<"pattern">;
217
+ value: z.ZodString;
218
+ flags: z.ZodOptional<z.ZodString>;
219
+ message: z.ZodOptional<z.ZodString>;
220
+ }, z.core.$loose>, z.ZodObject<{
221
+ rule: z.ZodEnum<{
222
+ email: "email";
223
+ url: "url";
224
+ }>;
225
+ message: z.ZodOptional<z.ZodString>;
226
+ }, z.core.$loose>, z.ZodObject<{
227
+ rule: z.ZodLiteral<"in">;
228
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
229
+ message: z.ZodOptional<z.ZodString>;
230
+ }, z.core.$loose>, z.ZodObject<{
231
+ rule: z.ZodLiteral<"accept">;
232
+ value: z.ZodArray<z.ZodString>;
233
+ message: z.ZodOptional<z.ZodString>;
234
+ }, z.core.$loose>, z.ZodObject<{
235
+ rule: z.ZodLiteral<"maxSize">;
236
+ value: z.ZodNumber;
237
+ message: z.ZodOptional<z.ZodString>;
238
+ }, z.core.$loose>, z.ZodObject<{
239
+ rule: z.ZodEnum<{
240
+ before: "before";
241
+ after: "after";
242
+ }>;
243
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
244
+ field: z.ZodString;
245
+ }, z.core.$loose>]>;
246
+ message: z.ZodOptional<z.ZodString>;
247
+ }, z.core.$loose>, z.ZodObject<{
248
+ rule: z.ZodString;
249
+ message: z.ZodOptional<z.ZodString>;
250
+ }, z.core.$loose>]>>>;
251
+ visibleWhen: z.ZodOptional<z.ZodObject<{
252
+ field: z.ZodOptional<z.ZodString>;
253
+ equals: z.ZodOptional<z.ZodUnknown>;
254
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
255
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
256
+ filled: z.ZodOptional<z.ZodBoolean>;
257
+ all: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
258
+ any: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
259
+ }, z.core.$loose>>;
260
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
261
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
262
+ label: z.ZodString;
263
+ description: z.ZodOptional<z.ZodString>;
264
+ disabled: z.ZodOptional<z.ZodBoolean>;
265
+ }, z.core.$loose>>>;
266
+ multiple: z.ZodOptional<z.ZodBoolean>;
267
+ resource: z.ZodOptional<z.ZodString>;
268
+ accept: z.ZodOptional<z.ZodArray<z.ZodString>>;
269
+ from: z.ZodOptional<z.ZodString>;
270
+ display: z.ZodOptional<z.ZodString>;
271
+ fields: z.ZodOptional<z.ZodArray<typeof Field>>;
272
+ types: z.ZodOptional<z.ZodArray<typeof BlockType>>;
273
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
274
+ }, z.core.$loose>>>;
275
+ layout: z.ZodOptional<z.ZodArray<z.ZodObject<{
276
+ type: z.ZodString;
277
+ name: z.ZodOptional<z.ZodString>;
278
+ label: z.ZodOptional<z.ZodString>;
279
+ description: z.ZodOptional<z.ZodString>;
280
+ text: z.ZodOptional<z.ZodString>;
281
+ component: z.ZodOptional<z.ZodString>;
282
+ props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
283
+ width: z.ZodOptional<z.ZodNumber>;
284
+ collapsible: z.ZodOptional<z.ZodBoolean>;
285
+ collapsed: z.ZodOptional<z.ZodBoolean>;
286
+ visibleWhen: z.ZodOptional<z.ZodObject<{
287
+ field: z.ZodOptional<z.ZodString>;
288
+ equals: z.ZodOptional<z.ZodUnknown>;
289
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
290
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
291
+ filled: z.ZodOptional<z.ZodBoolean>;
292
+ all: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
293
+ any: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
294
+ }, z.core.$loose>>;
295
+ children: z.ZodOptional<z.ZodArray<typeof LayoutNode>>;
296
+ }, z.core.$loose>>>;
297
+ queued: z.ZodOptional<z.ZodBoolean>;
298
+ url: z.ZodOptional<z.ZodString>;
299
+ route: z.ZodOptional<z.ZodString>;
300
+ component: z.ZodOptional<z.ZodString>;
301
+ abilities: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
302
+ }, z.core.$loose>>>;
303
+ abilities: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
304
+ features: z.ZodOptional<z.ZodObject<{
305
+ drafts: z.ZodOptional<z.ZodBoolean>;
306
+ revisions: z.ZodOptional<z.ZodBoolean>;
307
+ preview: z.ZodOptional<z.ZodUnion<readonly [z.ZodNull, z.ZodObject<{
308
+ mode: z.ZodEnum<{
309
+ component: "component";
310
+ iframe: "iframe";
311
+ }>;
312
+ component: z.ZodOptional<z.ZodString>;
313
+ }, z.core.$loose>]>>;
314
+ search: z.ZodOptional<z.ZodBoolean>;
315
+ }, z.core.$loose>>;
316
+ types: z.ZodOptional<z.ZodArray<z.ZodObject<{
317
+ id: z.ZodString;
318
+ label: z.ZodString;
319
+ icon: z.ZodOptional<z.ZodString>;
320
+ fields: z.ZodArray<typeof Field>;
321
+ }, z.core.$loose>>>;
322
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
323
+ }, z.core.$loose>;
324
+ export type ResourceFeatures = z.infer<typeof ResourceFeatures>;
325
+ export type Resource = z.infer<typeof Resource>;
326
+ /** A resource as a backend writes it, before defaults are applied. */
327
+ export type ResourceInput = z.input<typeof Resource>;
328
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/schemas/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,eAAO,MAAM,gBAAgB;;;;;;;;;;;iBAmB3B,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB6C,CAAC;AAEnE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAChD,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { Abilities } from "./common.js";
2
+ import { BlockType, Field } from "./field.js";
3
+ import { LayoutNode } from "./layout.js";
4
+ import { Action } from "./action.js";
5
+ import { ListDefinition } from "./list.js";
6
+ import { z } from "zod";
7
+ //#region src/schemas/resource.ts
8
+ var ResourceFeatures = z.looseObject({
9
+ drafts: z.boolean().optional(),
10
+ revisions: z.boolean().optional(),
11
+ preview: z.union([z.null(), z.looseObject({
12
+ mode: z.enum(["component", "iframe"]),
13
+ component: z.string().optional().meta({ description: "`component`: the plugin preview." })
14
+ })]).optional(),
15
+ search: z.boolean().optional().meta({ description: "Whether the resource is in the global search." })
16
+ });
17
+ var Resource = z.looseObject({
18
+ id: z.string().min(1),
19
+ label: z.looseObject({
20
+ singular: z.string(),
21
+ plural: z.string()
22
+ }),
23
+ description: z.string().optional(),
24
+ icon: z.string().optional(),
25
+ itemTitle: z.string().optional().meta({ description: "The field used as the title of an item, in lists and pickers." }),
26
+ fields: z.array(Field),
27
+ form: z.looseObject({ layout: z.array(LayoutNode).optional() }).optional(),
28
+ list: ListDefinition.optional(),
29
+ actions: z.array(Action).optional(),
30
+ abilities: Abilities.optional(),
31
+ features: ResourceFeatures.optional(),
32
+ types: z.array(BlockType).optional().meta({ description: "Variants of the resource, each with its own extra fields." }),
33
+ settings: z.record(z.string(), z.unknown()).optional()
34
+ }).meta({ description: "A set of items managed in the admin." });
35
+ //#endregion
36
+ export { Resource, ResourceFeatures };
37
+
38
+ //# sourceMappingURL=resource.js.map