@rakun-kit/core 1.1.0 → 1.2.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 (216) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/api/routes/manager/media/finalizeUpload.js +42 -0
  3. package/dist/cjs/api/routes/manager/media/finalizeUpload.js.map +1 -1
  4. package/dist/cjs/api/routes/manager/media/prepareUpload.js +26 -1
  5. package/dist/cjs/api/routes/manager/media/prepareUpload.js.map +1 -1
  6. package/dist/cjs/api/routes/manager/media/uploadBinary.js +40 -0
  7. package/dist/cjs/api/routes/manager/media/uploadBinary.js.map +1 -1
  8. package/dist/cjs/bootstrapState.js.map +1 -1
  9. package/dist/cjs/client.js +3 -2
  10. package/dist/cjs/client.js.map +1 -1
  11. package/dist/cjs/index.js +0 -14
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/lib/ContentType.js +106 -74
  14. package/dist/cjs/lib/ContentType.js.map +1 -1
  15. package/dist/cjs/lib/Logger.js +56 -0
  16. package/dist/cjs/lib/Logger.js.map +1 -1
  17. package/dist/cjs/lib/Registry.js +35 -22
  18. package/dist/cjs/lib/Registry.js.map +1 -1
  19. package/dist/cjs/lib/fields/Boolean.js +14 -9
  20. package/dist/cjs/lib/fields/Boolean.js.map +1 -1
  21. package/dist/cjs/lib/fields/ContentReference.js +29 -17
  22. package/dist/cjs/lib/fields/ContentReference.js.map +1 -1
  23. package/dist/cjs/lib/fields/Date.js +26 -22
  24. package/dist/cjs/lib/fields/Date.js.map +1 -1
  25. package/dist/cjs/lib/fields/Field.js +79 -59
  26. package/dist/cjs/lib/fields/Field.js.map +1 -1
  27. package/dist/cjs/lib/fields/Fields.js +32 -0
  28. package/dist/cjs/lib/fields/Fields.js.map +1 -0
  29. package/dist/cjs/lib/fields/File.js +60 -85
  30. package/dist/cjs/lib/fields/File.js.map +1 -1
  31. package/dist/cjs/lib/fields/Iterator.js +8 -10
  32. package/dist/cjs/lib/fields/Iterator.js.map +1 -1
  33. package/dist/cjs/lib/fields/Link.js +20 -15
  34. package/dist/cjs/lib/fields/Link.js.map +1 -1
  35. package/dist/cjs/lib/fields/List.js +47 -16
  36. package/dist/cjs/lib/fields/List.js.map +1 -1
  37. package/dist/cjs/lib/fields/Number.js +35 -17
  38. package/dist/cjs/lib/fields/Number.js.map +1 -1
  39. package/dist/cjs/lib/fields/Relation.js +73 -66
  40. package/dist/cjs/lib/fields/Relation.js.map +1 -1
  41. package/dist/cjs/lib/fields/Select.js +28 -17
  42. package/dist/cjs/lib/fields/Select.js.map +1 -1
  43. package/dist/cjs/lib/fields/SelfRelation.js +30 -21
  44. package/dist/cjs/lib/fields/SelfRelation.js.map +1 -1
  45. package/dist/cjs/lib/fields/SimpleList.js +38 -21
  46. package/dist/cjs/lib/fields/SimpleList.js.map +1 -1
  47. package/dist/cjs/lib/fields/String.js +54 -40
  48. package/dist/cjs/lib/fields/String.js.map +1 -1
  49. package/dist/cjs/lib/fields/index.js +29 -37
  50. package/dist/cjs/lib/fields/index.js.map +1 -1
  51. package/dist/cjs/orm/operations/findDependencies.js +4 -2
  52. package/dist/cjs/orm/operations/findDependencies.js.map +1 -1
  53. package/dist/esm/api/operations/index.d.ts +15 -16
  54. package/dist/esm/api/operations/index.d.ts.map +1 -1
  55. package/dist/esm/api/operations/manager-contract.d.ts +7 -6
  56. package/dist/esm/api/operations/manager-contract.d.ts.map +1 -1
  57. package/dist/esm/api/operations/manager.d.ts +7 -6
  58. package/dist/esm/api/operations/manager.d.ts.map +1 -1
  59. package/dist/esm/api/operations/web-contract.d.ts +8 -10
  60. package/dist/esm/api/operations/web-contract.d.ts.map +1 -1
  61. package/dist/esm/api/operations/web.d.ts +8 -10
  62. package/dist/esm/api/operations/web.d.ts.map +1 -1
  63. package/dist/esm/api/proxies/index.d.ts +7 -3
  64. package/dist/esm/api/proxies/index.d.ts.map +1 -1
  65. package/dist/esm/api/routes/manager/media/finalizeUpload.d.ts.map +1 -1
  66. package/dist/esm/api/routes/manager/media/finalizeUpload.js +42 -0
  67. package/dist/esm/api/routes/manager/media/finalizeUpload.js.map +1 -1
  68. package/dist/esm/api/routes/manager/media/prepareUpload.d.ts.map +1 -1
  69. package/dist/esm/api/routes/manager/media/prepareUpload.js +26 -1
  70. package/dist/esm/api/routes/manager/media/prepareUpload.js.map +1 -1
  71. package/dist/esm/api/routes/manager/media/uploadBinary.d.ts.map +1 -1
  72. package/dist/esm/api/routes/manager/media/uploadBinary.js +40 -0
  73. package/dist/esm/api/routes/manager/media/uploadBinary.js.map +1 -1
  74. package/dist/esm/api/utils/getLanguages.d.ts +2 -6
  75. package/dist/esm/api/utils/getLanguages.d.ts.map +1 -1
  76. package/dist/esm/api/utils/getUser.d.ts +6 -2
  77. package/dist/esm/api/utils/getUser.d.ts.map +1 -1
  78. package/dist/esm/bootstrapState.d.ts +3 -2
  79. package/dist/esm/bootstrapState.d.ts.map +1 -1
  80. package/dist/esm/bootstrapState.js.map +1 -1
  81. package/dist/esm/client.d.ts +1 -1
  82. package/dist/esm/client.d.ts.map +1 -1
  83. package/dist/esm/client.js +1 -1
  84. package/dist/esm/client.js.map +1 -1
  85. package/dist/esm/index.d.ts +0 -14
  86. package/dist/esm/index.d.ts.map +1 -1
  87. package/dist/esm/index.js +0 -14
  88. package/dist/esm/index.js.map +1 -1
  89. package/dist/esm/internal-content-types/HelloWorld.d.ts +53 -1
  90. package/dist/esm/internal-content-types/HelloWorld.d.ts.map +1 -1
  91. package/dist/esm/internal-content-types/Language.d.ts +68 -4
  92. package/dist/esm/internal-content-types/Language.d.ts.map +1 -1
  93. package/dist/esm/internal-content-types/LiteralTranslation.d.ts +107 -3
  94. package/dist/esm/internal-content-types/LiteralTranslation.d.ts.map +1 -1
  95. package/dist/esm/internal-content-types/ManagerRole.d.ts +54 -2
  96. package/dist/esm/internal-content-types/ManagerRole.d.ts.map +1 -1
  97. package/dist/esm/internal-content-types/ManagerUser.d.ts +348 -19
  98. package/dist/esm/internal-content-types/ManagerUser.d.ts.map +1 -1
  99. package/dist/esm/internal-content-types/Media.d.ts +469 -52
  100. package/dist/esm/internal-content-types/Media.d.ts.map +1 -1
  101. package/dist/esm/internal-content-types/MediaFolder.d.ts +161 -5
  102. package/dist/esm/internal-content-types/MediaFolder.d.ts.map +1 -1
  103. package/dist/esm/internal-content-types/MfaChallenge.d.ts +961 -53
  104. package/dist/esm/internal-content-types/MfaChallenge.d.ts.map +1 -1
  105. package/dist/esm/internal-content-types/Page.d.ts +242 -26
  106. package/dist/esm/internal-content-types/Page.d.ts.map +1 -1
  107. package/dist/esm/internal-content-types/Redirect.d.ts +270 -12
  108. package/dist/esm/internal-content-types/Redirect.d.ts.map +1 -1
  109. package/dist/esm/internal-content-types/Route.d.ts +280 -9
  110. package/dist/esm/internal-content-types/Route.d.ts.map +1 -1
  111. package/dist/esm/internal-content-types/RouteLayoutModule.d.ts +306 -7
  112. package/dist/esm/internal-content-types/RouteLayoutModule.d.ts.map +1 -1
  113. package/dist/esm/internal-content-types/RouteLayoutModuleOverride.d.ts +266 -6
  114. package/dist/esm/internal-content-types/RouteLayoutModuleOverride.d.ts.map +1 -1
  115. package/dist/esm/internal-content-types/RouteMap.d.ts +265 -5
  116. package/dist/esm/internal-content-types/RouteMap.d.ts.map +1 -1
  117. package/dist/esm/internal-content-types/RouteSettings.d.ts +296 -76
  118. package/dist/esm/internal-content-types/RouteSettings.d.ts.map +1 -1
  119. package/dist/esm/internal-content-types/Seo.d.ts +54 -2
  120. package/dist/esm/internal-content-types/Seo.d.ts.map +1 -1
  121. package/dist/esm/internal-content-types/Session.d.ts +892 -49
  122. package/dist/esm/internal-content-types/Session.d.ts.map +1 -1
  123. package/dist/esm/internal-content-types/UserMfa.d.ts +829 -52
  124. package/dist/esm/internal-content-types/UserMfa.d.ts.map +1 -1
  125. package/dist/esm/internal-content-types/WebAuthnCredential.d.ts +1064 -52
  126. package/dist/esm/internal-content-types/WebAuthnCredential.d.ts.map +1 -1
  127. package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts +946 -51
  128. package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts.map +1 -1
  129. package/dist/esm/lib/ContentType.d.ts +87 -49
  130. package/dist/esm/lib/ContentType.d.ts.map +1 -1
  131. package/dist/esm/lib/ContentType.js +93 -64
  132. package/dist/esm/lib/ContentType.js.map +1 -1
  133. package/dist/esm/lib/Logger.d.ts.map +1 -1
  134. package/dist/esm/lib/Logger.js +56 -0
  135. package/dist/esm/lib/Logger.js.map +1 -1
  136. package/dist/esm/lib/Registry.d.ts +28 -6
  137. package/dist/esm/lib/Registry.d.ts.map +1 -1
  138. package/dist/esm/lib/Registry.js +35 -22
  139. package/dist/esm/lib/Registry.js.map +1 -1
  140. package/dist/esm/lib/fields/Boolean.d.ts +8 -10
  141. package/dist/esm/lib/fields/Boolean.d.ts.map +1 -1
  142. package/dist/esm/lib/fields/Boolean.js +14 -8
  143. package/dist/esm/lib/fields/Boolean.js.map +1 -1
  144. package/dist/esm/lib/fields/ContentReference.d.ts +14 -14
  145. package/dist/esm/lib/fields/ContentReference.d.ts.map +1 -1
  146. package/dist/esm/lib/fields/ContentReference.js +29 -16
  147. package/dist/esm/lib/fields/ContentReference.js.map +1 -1
  148. package/dist/esm/lib/fields/Date.d.ts +14 -17
  149. package/dist/esm/lib/fields/Date.d.ts.map +1 -1
  150. package/dist/esm/lib/fields/Date.js +25 -21
  151. package/dist/esm/lib/fields/Date.js.map +1 -1
  152. package/dist/esm/lib/fields/Field.d.ts +122 -59
  153. package/dist/esm/lib/fields/Field.d.ts.map +1 -1
  154. package/dist/esm/lib/fields/Field.js +70 -55
  155. package/dist/esm/lib/fields/Field.js.map +1 -1
  156. package/dist/esm/lib/fields/Fields.d.ts +29 -0
  157. package/dist/esm/lib/fields/Fields.d.ts.map +1 -0
  158. package/dist/esm/lib/fields/Fields.js +29 -0
  159. package/dist/esm/lib/fields/Fields.js.map +1 -0
  160. package/dist/esm/lib/fields/File.d.ts +26 -51
  161. package/dist/esm/lib/fields/File.d.ts.map +1 -1
  162. package/dist/esm/lib/fields/File.js +59 -84
  163. package/dist/esm/lib/fields/File.js.map +1 -1
  164. package/dist/esm/lib/fields/Iterator.d.ts +13 -25
  165. package/dist/esm/lib/fields/Iterator.d.ts.map +1 -1
  166. package/dist/esm/lib/fields/Iterator.js +9 -10
  167. package/dist/esm/lib/fields/Iterator.js.map +1 -1
  168. package/dist/esm/lib/fields/Link.d.ts +13 -15
  169. package/dist/esm/lib/fields/Link.d.ts.map +1 -1
  170. package/dist/esm/lib/fields/Link.js +20 -14
  171. package/dist/esm/lib/fields/Link.js.map +1 -1
  172. package/dist/esm/lib/fields/List.d.ts +34 -34
  173. package/dist/esm/lib/fields/List.d.ts.map +1 -1
  174. package/dist/esm/lib/fields/List.js +46 -15
  175. package/dist/esm/lib/fields/List.js.map +1 -1
  176. package/dist/esm/lib/fields/Number.d.ts +12 -12
  177. package/dist/esm/lib/fields/Number.d.ts.map +1 -1
  178. package/dist/esm/lib/fields/Number.js +35 -16
  179. package/dist/esm/lib/fields/Number.js.map +1 -1
  180. package/dist/esm/lib/fields/Relation.d.ts +44 -38
  181. package/dist/esm/lib/fields/Relation.d.ts.map +1 -1
  182. package/dist/esm/lib/fields/Relation.js +74 -66
  183. package/dist/esm/lib/fields/Relation.js.map +1 -1
  184. package/dist/esm/lib/fields/Select.d.ts +14 -13
  185. package/dist/esm/lib/fields/Select.d.ts.map +1 -1
  186. package/dist/esm/lib/fields/Select.js +28 -16
  187. package/dist/esm/lib/fields/Select.js.map +1 -1
  188. package/dist/esm/lib/fields/SelfRelation.d.ts +19 -18
  189. package/dist/esm/lib/fields/SelfRelation.d.ts.map +1 -1
  190. package/dist/esm/lib/fields/SelfRelation.js +30 -20
  191. package/dist/esm/lib/fields/SelfRelation.js.map +1 -1
  192. package/dist/esm/lib/fields/SimpleList.d.ts +16 -20
  193. package/dist/esm/lib/fields/SimpleList.d.ts.map +1 -1
  194. package/dist/esm/lib/fields/SimpleList.js +38 -20
  195. package/dist/esm/lib/fields/SimpleList.js.map +1 -1
  196. package/dist/esm/lib/fields/String.d.ts +18 -25
  197. package/dist/esm/lib/fields/String.d.ts.map +1 -1
  198. package/dist/esm/lib/fields/String.js +53 -39
  199. package/dist/esm/lib/fields/String.js.map +1 -1
  200. package/dist/esm/lib/fields/index.d.ts +15 -83
  201. package/dist/esm/lib/fields/index.d.ts.map +1 -1
  202. package/dist/esm/lib/fields/index.js +15 -36
  203. package/dist/esm/lib/fields/index.js.map +1 -1
  204. package/dist/esm/lib/types/index.d.ts +6 -2
  205. package/dist/esm/lib/types/index.d.ts.map +1 -1
  206. package/dist/esm/manager.d.ts +28 -24
  207. package/dist/esm/manager.d.ts.map +1 -1
  208. package/dist/esm/orm/operations/findDependencies.d.ts.map +1 -1
  209. package/dist/esm/orm/operations/findDependencies.js +4 -2
  210. package/dist/esm/orm/operations/findDependencies.js.map +1 -1
  211. package/dist/esm/orm/utils/parseId.d.ts +1 -1
  212. package/dist/esm/orm/utils/parseId.d.ts.map +1 -1
  213. package/dist/esm/schemas/web/page.d.ts +66 -18
  214. package/dist/esm/schemas/web/page.d.ts.map +1 -1
  215. package/dist/tsconfig.build.tsbuildinfo +1 -1
  216. package/package.json +4 -3
@@ -1,67 +1,30 @@
1
1
  import z from "zod";
2
- import { Field } from "./Field";
2
+ import { createField, defaultFieldState, withFieldModifiers, } from "./Field";
3
3
  import { Id } from "../utils/id";
4
- import { getDefaultOutputSchema } from "../utils/getSchemas";
5
- export const FileMediaType = z.enum(["Image", "Video", "Document", "Any"]);
6
- export const FileUploadMethod = z.enum(["default", "optimize"]);
7
- export const FileOptimizeFormat = z.enum(["webp", "jpeg", "png", "avif"]);
8
- const defaultOptimize = {
9
- format: "webp",
10
- quality: 90,
11
- generatePreview: true,
12
- };
13
- /**
14
- * Optimization settings for image uploads in `FileField.optimize`.
15
- */
4
+ export const fileMediaTypes = ["Image", "Video", "Document", "Any"];
5
+ export const fileUploadMethods = ["default", "optimize"];
6
+ export const fileOptimizeFormats = ["webp", "jpeg", "png", "avif"];
16
7
  export const FileOptimizeOptionsSchema = z.object({
17
- /**
18
- * Output format used when the image is optimized.
19
- */
20
- format: FileOptimizeFormat.default("webp"),
21
- /**
22
- * Output encoder quality (1-100).
23
- *
24
- * What this value does:
25
- * - Lower quality reduces file size more aggressively, but can introduce visible artifacts
26
- * (blurry edges, banding, loss of fine detail).
27
- * - Higher quality preserves more detail, but produces larger files.
28
- *
29
- * Practical guidance:
30
- * - `60-75`: strong compression, useful for very heavy images where size is priority.
31
- * - `75-85`: balanced default for most web images.
32
- * - `85-95`: high fidelity, larger output, useful when visual quality is critical.
33
- *
34
- * Notes:
35
- * - The exact visual result depends on the selected `format` and the source image.
36
- * - This value is only applied when optimization runs (for example, files above
37
- * `minBytesToOptimize` and where optimization is enabled).
38
- */
8
+ format: z.enum(fileOptimizeFormats).default("webp"),
39
9
  quality: z.number().int().min(1).max(100).default(80),
40
- /**
41
- * If `true`, generates an additional preview variant.
42
- */
43
10
  generatePreview: z.boolean().default(false),
44
- /**
45
- * Minimum file size in bytes required to run optimization.
46
- * Files below this threshold are stored without transformation.
47
- */
48
11
  minBytesToOptimize: z
49
12
  .number()
50
13
  .int()
51
14
  .positive()
52
15
  .default(350 * 1024),
53
- /**
54
- * Maximum width in pixels for the preview image.
55
- * Smaller images are not upscaled (`withoutEnlargement`).
56
- */
57
16
  previewMaxWidth: z.number().int().positive().default(480),
58
17
  });
18
+ const defaultOptimize = {
19
+ format: "webp",
20
+ quality: 90,
21
+ generatePreview: true,
22
+ };
59
23
  const fileRelationSchema = z.object({
60
24
  type: z.literal("existing"),
61
25
  _id: Id,
62
26
  contentType: z.literal("Media"),
63
27
  });
64
- const fileRelationArraySchema = z.array(fileRelationSchema);
65
28
  const fileOutputSchema = z.object({
66
29
  url: z.string(),
67
30
  previewUrl: z.string().nullable(),
@@ -72,42 +35,54 @@ const fileOutputSchema = z.object({
72
35
  size: z.number().int().nonnegative(),
73
36
  orientation: z.enum(["portrait", "landscape"]).nullable(),
74
37
  });
75
- export class FileField extends Field {
76
- constructor() {
77
- super({
78
- config: { ui: "File", type: "File" },
79
- schema: fileRelationSchema,
80
- });
81
- this.mediaType = "Any";
82
- this.isMultiple = false;
83
- this.uploadMethod = "default";
84
- }
85
- type(mediaType) {
86
- this.mediaType = mediaType;
87
- return this;
88
- }
89
- multiple() {
90
- this.schema = fileRelationArraySchema;
91
- this.isMultiple = true;
92
- return this;
93
- }
94
- /**
95
- * Enables the optimized upload strategy for images.
96
- *
97
- * @param options - Optimization options:
98
- * `format`, `quality`, `generatePreview`, `minBytesToOptimize`, `previewMaxWidth`.
99
- */
100
- optimize(options) {
101
- this.uploadMethod = "optimize";
102
- this.optimizeOptions = FileOptimizeOptionsSchema.parse(options ?? defaultOptimize);
103
- return this;
104
- }
105
- getBaseOutputSchema() {
106
- const outputSchema = (this.isMultiple ? z.array(fileOutputSchema) : fileOutputSchema);
107
- return getDefaultOutputSchema(outputSchema, this.isRequired);
108
- }
109
- getPopulatedSchema() {
110
- return this.getBaseOutputSchema();
111
- }
38
+ export function fileField() {
39
+ return makeFileField({ mediaType: "Any", multiple: false, uploadMethod: "default" }, defaultFieldState);
40
+ }
41
+ function makeFileField(options, state) {
42
+ const field = {
43
+ ...createField({
44
+ meta: {
45
+ type: "File",
46
+ ui: "File",
47
+ mediaType: options.mediaType,
48
+ isMultiple: options.multiple,
49
+ uploadMethod: options.uploadMethod,
50
+ optimizeOptions: options.optimizeOptions,
51
+ },
52
+ state,
53
+ schemas: {
54
+ input: () => buildFileRelationSchema(options.multiple),
55
+ db: () => buildFileRelationSchema(options.multiple),
56
+ output: () => buildFileOutputSchema(options.multiple),
57
+ },
58
+ }),
59
+ getPopulatedSchema: () => applyFileOutputPresence(buildFileOutputSchema(options.multiple), state),
60
+ type: function (mediaType) {
61
+ return makeFileField({ ...options, mediaType }, this.state);
62
+ },
63
+ multiple: function () {
64
+ return makeFileField({ ...options, multiple: true }, this.state);
65
+ },
66
+ optimize: function (optimizeOptions) {
67
+ return makeFileField({
68
+ ...options,
69
+ uploadMethod: "optimize",
70
+ optimizeOptions: FileOptimizeOptionsSchema.parse(optimizeOptions ?? defaultOptimize),
71
+ }, this.state);
72
+ },
73
+ };
74
+ return withFieldModifiers({
75
+ field,
76
+ rebuild: (nextState) => makeFileField(options, nextState),
77
+ });
78
+ }
79
+ function buildFileRelationSchema(multiple) {
80
+ return (multiple ? z.array(fileRelationSchema) : fileRelationSchema);
81
+ }
82
+ function buildFileOutputSchema(multiple) {
83
+ return (multiple ? z.array(fileOutputSchema) : fileOutputSchema);
84
+ }
85
+ function applyFileOutputPresence(schema, state) {
86
+ return state.required ? schema : schema.optional();
112
87
  }
113
88
  //# sourceMappingURL=File.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"File.js","sourceRoot":"","sources":["../../../../src/lib/fields/File.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"File.js","sourceRoot":"","sources":["../../../../src/lib/fields/File.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,17 @@
1
- import z from "zod";
2
- import ContentType from "../ContentType";
3
- import { ListField } from "./List";
4
- import { OnlyType, RelationField } from "./Relation";
5
- import type { FieldHKT } from "../types";
6
- export type EntryContentType = {
7
- contentType: ContentType;
8
- type?: OnlyType;
1
+ import { type Entry, type ListField } from "./List";
2
+ import { type ContentTypeLike, type OnlyType, type RelationField } from "./Relation";
3
+ export type EntryContentType<CT extends ContentTypeLike = ContentTypeLike, Only extends OnlyType = OnlyType> = {
4
+ contentType: CT;
5
+ type?: Only;
9
6
  };
10
- type IteratorEntry<CT extends EntryContentType[]> = {
11
- name: CT[number]["contentType"]["name"];
12
- field: RelationField<CT[number]["contentType"], CT[number]["type"]>;
7
+ type IteratorEntry<Item> = Item extends {
8
+ contentType: infer CT extends ContentTypeLike;
9
+ type?: infer Only extends OnlyType;
10
+ } ? Entry<CT["name"], RelationField<CT, Only>> : never;
11
+ type IteratorEntries<Items extends readonly EntryContentType[]> = {
12
+ [K in keyof Items]: IteratorEntry<Items[K]>;
13
13
  };
14
- type IteratorSchema<CT extends EntryContentType[]> = z.ZodArray<z.ZodObject<{
15
- name: z.ZodString;
16
- value: z.ZodUnion<readonly [ReturnType<IteratorEntry<CT>["field"]["getSchema"]>]>;
17
- }, z.core.$strip>>;
18
- type IteratorOutputSchema<CT extends EntryContentType[]> = z.ZodArray<z.ZodObject<{
19
- name: z.ZodString;
20
- value: z.ZodUnion<readonly [ReturnType<IteratorEntry<CT>["field"]["getOutputSchema"]>]>;
21
- }, z.core.$strip>>;
22
- interface IteratorFieldHKT<CT extends EntryContentType[], S extends IteratorSchema<CT>, Sout extends IteratorOutputSchema<CT>> extends FieldHKT {
23
- type: IteratorField<CT, S, Sout, this["args"][1], this["args"][2], this["args"][3]>;
24
- }
25
- export declare class IteratorField<CT extends EntryContentType[], S extends IteratorSchema<CT> = IteratorSchema<CT>, Sout extends IteratorOutputSchema<CT> = IteratorOutputSchema<CT>, TRequired extends boolean = false, TTranslatable extends boolean = false, TVisibility extends "api" | "manager" | "all" = "all"> extends ListField<IteratorEntry<CT>[], S, Sout, TRequired, TTranslatable, TVisibility, IteratorFieldHKT<CT, S, Sout>> {
26
- constructor(fields: CT);
27
- }
14
+ export type IteratorField<Items extends readonly EntryContentType[] = readonly EntryContentType[]> = ListField<IteratorEntries<Items>>;
15
+ export declare function iteratorField<const Items extends readonly EntryContentType[]>(fields: Items): IteratorField<Items>;
28
16
  export {};
29
17
  //# sourceMappingURL=Iterator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Iterator.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Iterator.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,MAAM,gBAAgB,GAAG;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE7E,KAAK,aAAa,CAAC,EAAE,SAAS,gBAAgB,EAAE,IAAI;IAClD,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;CACrE,CAAC;AAEF,KAAK,cAAc,CAAC,EAAE,SAAS,gBAAgB,EAAE,IAAI,CAAC,CAAC,QAAQ,CAC7D,CAAC,CAAC,SAAS,CACT;IACE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;IAClB,KAAK,EAAE,CAAC,CAAC,QAAQ,CACf,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAC/D,CAAC;CACH,EACD,CAAC,CAAC,IAAI,CAAC,MAAM,CACd,CACF,CAAC;AAEF,KAAK,oBAAoB,CAAC,EAAE,SAAS,gBAAgB,EAAE,IAAI,CAAC,CAAC,QAAQ,CACnE,CAAC,CAAC,SAAS,CACT;IACE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;IAClB,KAAK,EAAE,CAAC,CAAC,QAAQ,CACf,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACrE,CAAC;CACH,EACD,CAAC,CAAC,IAAI,CAAC,MAAM,CACd,CACF,CAAC;AAEF,UAAU,gBAAgB,CACxB,EAAE,SAAS,gBAAgB,EAAE,EAC7B,CAAC,SAAS,cAAc,CAAC,EAAE,CAAC,EAC5B,IAAI,SAAS,oBAAoB,CAAC,EAAE,CAAC,CACrC,SAAQ,QAAQ;IAChB,IAAI,EAAE,aAAa,CACjB,EAAE,EACF,CAAC,EACD,IAAI,EACJ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAChB,CAAC;CACH;AAED,qBAAa,aAAa,CACxB,EAAE,SAAS,gBAAgB,EAAE,EAC7B,CAAC,SAAS,cAAc,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,EACjD,IAAI,SAAS,oBAAoB,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,EAAE,CAAC,EAChE,SAAS,SAAS,OAAO,GAAG,KAAK,EACjC,aAAa,SAAS,OAAO,GAAG,KAAK,EACrC,WAAW,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CACrD,SAAQ,SAAS,CACjB,aAAa,CAAC,EAAE,CAAC,EAAE,EACnB,CAAC,EACD,IAAI,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAC9B;gBACa,MAAM,EAAE,EAAE;CASvB"}
1
+ {"version":3,"file":"Iterator.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Iterator.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,SAAS,EACf,MAAM,QAAQ,CAAC;AAChB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,gBAAgB,CAC1B,EAAE,SAAS,eAAe,GAAG,eAAe,EAC5C,IAAI,SAAS,QAAQ,GAAG,QAAQ,IAC9B;IACF,WAAW,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;AAEF,KAAK,aAAa,CAAC,IAAI,IAAI,IAAI,SAAS;IACtC,WAAW,EAAE,MAAM,EAAE,SAAS,eAAe,CAAC;IAC9C,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,QAAQ,CAAC;CACpC,GACG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,GAC1C,KAAK,CAAC;AAEV,KAAK,eAAe,CAAC,KAAK,SAAS,SAAS,gBAAgB,EAAE,IAAI;KAC/D,CAAC,IAAI,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,aAAa,CACvB,KAAK,SAAS,SAAS,gBAAgB,EAAE,GAAG,SAAS,gBAAgB,EAAE,IACrE,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAEtC,wBAAgB,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,SAAS,gBAAgB,EAAE,EAC3E,MAAM,EAAE,KAAK,GACZ,aAAa,CAAC,KAAK,CAAC,CAUtB"}
@@ -1,12 +1,11 @@
1
- import { ListField } from "./List";
2
- import { RelationField } from "./Relation";
3
- export class IteratorField extends ListField {
4
- constructor(fields) {
5
- super(fields.map((f) => ({
6
- name: f.contentType.name,
7
- field: new RelationField(f.contentType, f.type),
8
- })));
9
- this.config = { ui: "Iterator", type: "List" };
10
- }
1
+ import { defaultFieldState } from "./Field";
2
+ import { makeListField, } from "./List";
3
+ import { relationField, } from "./Relation";
4
+ export function iteratorField(fields) {
5
+ const entries = fields.map((entry) => ({
6
+ name: entry.contentType.name,
7
+ field: relationField(entry.contentType, entry.type),
8
+ }));
9
+ return makeListField({ fields: entries, ui: "Iterator" }, defaultFieldState);
11
10
  }
12
11
  //# sourceMappingURL=Iterator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Iterator.js","sourceRoot":"","sources":["../../../../src/lib/fields/Iterator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAY,aAAa,EAAE,MAAM,YAAY,CAAC;AAkDrD,MAAM,OAAO,aAOX,SAAQ,SAQT;IACC,YAAY,MAAU;QACpB,KAAK,CACH,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI;YACxB,KAAK,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC;SAChD,CAAC,CAAkC,CACrC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"Iterator.js","sourceRoot":"","sources":["../../../../src/lib/fields/Iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EACL,aAAa,GAGd,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,aAAa,GAId,MAAM,YAAY,CAAC;AAyBpB,MAAM,UAAU,aAAa,CAC3B,MAAa;IAEb,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;QAC5B,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC;KACpD,CAAC,CAA2B,CAAC;IAE9B,OAAO,aAAa,CAClB,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EACnC,iBAAiB,CACM,CAAC;AAC5B,CAAC"}
@@ -1,22 +1,20 @@
1
1
  import z from "zod";
2
- import type { EncodedField } from "./Field";
3
- import { Field } from "./Field";
4
- import type { FieldHKT } from "../types";
5
- declare const LinkSchema: z.ZodObject<{
2
+ import { type EncodedField, type DefaultFieldState, type FieldLike, type FieldState, type FieldWithModifiers } from "./Field";
3
+ declare const linkInputSchema: z.ZodObject<{
6
4
  routeId: z.ZodString;
7
5
  contentTypeId: z.ZodString;
8
6
  }, z.core.$strip>;
9
- declare const LinkOutputSchema: z.ZodString;
10
- type LinkSchema = typeof LinkSchema;
11
- type LinkOutputSchema = typeof LinkOutputSchema;
12
- interface LinkFieldHKT extends FieldHKT {
13
- type: LinkField<this["args"][1], this["args"][2], this["args"][3]>;
14
- }
15
- export declare class LinkField<TRequired extends boolean = false, TTranslatable extends boolean = false, TVisibility extends "api" | "manager" | "all" = "all"> extends Field<LinkFieldHKT, LinkSchema, LinkOutputSchema, TRequired, TTranslatable, TVisibility> {
16
- constructor();
17
- protected getBaseOutputSchema(): import("../types").getRequiredType<z.ZodString, TRequired>;
18
- }
7
+ declare const linkOutputSchema: z.ZodString;
8
+ type LinkInput = z.infer<typeof linkInputSchema>;
9
+ type LinkOutput = z.infer<typeof linkOutputSchema>;
10
+ export type LinkfieldValue = LinkInput;
11
+ export type LinkMeta = {
12
+ type: "Link";
13
+ ui: "Link";
14
+ };
15
+ export type LinkField<State extends FieldState = DefaultFieldState> = FieldWithModifiers<LinkFieldCore<State>>;
16
+ type LinkFieldCore<State extends FieldState> = FieldLike<LinkInput, LinkInput, LinkOutput, LinkMeta, State>;
17
+ export declare function linkField(): LinkField;
19
18
  export type EncodedLinkField = EncodedField;
20
- export type LinkfieldValue = z.infer<LinkSchema>;
21
19
  export {};
22
20
  //# sourceMappingURL=Link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Link.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,QAAA,MAAM,UAAU;;;iBAGd,CAAC;AAEH,QAAA,MAAM,gBAAgB,aAAa,CAAC;AAEpC,KAAK,UAAU,GAAG,OAAO,UAAU,CAAC;AAEpC,KAAK,gBAAgB,GAAG,OAAO,gBAAgB,CAAC;AAEhD,UAAU,YAAa,SAAQ,QAAQ;IACrC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACpE;AAED,qBAAa,SAAS,CACpB,SAAS,SAAS,OAAO,GAAG,KAAK,EACjC,aAAa,SAAS,OAAO,GAAG,KAAK,EACrC,WAAW,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CACrD,SAAQ,KAAK,CACb,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,WAAW,CACZ;;cAQoB,mBAAmB;CAMvC;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Link.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,kBAAkB,EAGxB,MAAM,SAAS,CAAC;AAGjB,QAAA,MAAM,eAAe;;;iBAGnB,CAAC;AAEH,QAAA,MAAM,gBAAgB,aAAa,CAAC;AAEpC,KAAK,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACjD,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC;AAEvC,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,SAAS,CACnB,KAAK,SAAS,UAAU,GAAG,iBAAiB,IAC1C,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAE7C,KAAK,aAAa,CAAC,KAAK,SAAS,UAAU,IAAI,SAAS,CACtD,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,KAAK,CACN,CAAC;AAEF,wBAAgB,SAAS,IAAI,SAAS,CAErC;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC"}
@@ -1,21 +1,27 @@
1
1
  import z from "zod";
2
- import { Field } from "./Field";
2
+ import { createField, defaultFieldState, withFieldModifiers, } from "./Field";
3
3
  import { Id } from "../utils/id";
4
- import { getDefaultOutputSchema } from "../utils/getSchemas";
5
- const LinkSchema = z.object({
4
+ const linkInputSchema = z.object({
6
5
  routeId: Id,
7
6
  contentTypeId: Id,
8
7
  });
9
- const LinkOutputSchema = z.string();
10
- export class LinkField extends Field {
11
- constructor() {
12
- super({
13
- config: { ui: "Link", type: "Link" },
14
- schema: LinkSchema,
15
- });
16
- }
17
- getBaseOutputSchema() {
18
- return getDefaultOutputSchema(LinkOutputSchema, this.isRequired);
19
- }
8
+ const linkOutputSchema = z.string();
9
+ export function linkField() {
10
+ return makeLinkField(defaultFieldState);
11
+ }
12
+ function makeLinkField(state) {
13
+ const field = createField({
14
+ meta: { type: "Link", ui: "Link" },
15
+ state,
16
+ schemas: {
17
+ input: () => linkInputSchema,
18
+ db: () => linkInputSchema,
19
+ output: () => linkOutputSchema,
20
+ },
21
+ });
22
+ return withFieldModifiers({
23
+ field,
24
+ rebuild: (nextState) => makeLinkField(nextState),
25
+ });
20
26
  }
21
27
  //# sourceMappingURL=Link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sourceRoot":"","sources":["../../../../src/lib/fields/Link.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAUpC,MAAM,OAAO,SAIX,SAAQ,KAOT;IACC;QACE,KAAK,CAAC;YACJ,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;YACpC,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC;IAEkB,mBAAmB;QACpC,OAAO,sBAAsB,CAC3B,gBAAgB,EAChB,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["../../../../src/lib/fields/Link.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EACL,WAAW,EACX,iBAAiB,EAOjB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAwBpC,MAAM,UAAU,SAAS;IACvB,OAAO,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAC1C,CAAC;AAID,SAAS,aAAa,CAA2B,KAAY;IAC3D,MAAM,KAAK,GAAyB,WAAW,CAAC;QAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;QAClC,KAAK;QACL,OAAO,EAAE;YACP,KAAK,EAAE,GAAG,EAAE,CAAC,eAAe;YAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe;YACzB,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB;SAC/B;KACF,CAAC,CAAC;IAEH,OAAO,kBAAkB,CAAC;QACxB,KAAK;QACL,OAAO,EAAE,CAA+B,SAAoB,EAAE,EAAE,CAC9D,aAAa,CAAC,SAAS,CAGtB;KACJ,CAAC,CAAC;AACL,CAAC"}
@@ -1,40 +1,11 @@
1
- import z from "zod";
2
- import type { EncodedField } from "./Field";
3
- import { Field } from "./Field";
4
- import type { FieldHKT, getRequiredType } from "../types";
5
- export type Entry = {
6
- name: string;
7
- field: Field<any, any, any, any, any, any>;
1
+ import { type AnyFieldLike, type DefaultFieldState, type EncodedField, type EncodedFieldUnknown, type FieldLike, type FieldState, type FieldWithModifiers, type InferDb, type InferOutput } from "./Field";
2
+ export type Entry<Name extends string = string, F extends AnyFieldLike = AnyFieldLike> = {
3
+ name: Name;
4
+ field: F;
8
5
  };
9
- export interface ListFieldHKT<F extends Entry[], S extends z.ZodArray<z.ZodObject<{
10
- name: z.ZodString;
11
- value: z.ZodUnion<readonly [ReturnType<F[number]["field"]["getSchema"]>]>;
12
- }, z.core.$strip>>, Sout extends z.ZodArray<z.ZodObject<{
13
- name: z.ZodString;
14
- value: z.ZodUnion<readonly [ReturnType<F[number]["field"]["getOutputSchema"]>]>;
15
- }, z.core.$strip>>> extends FieldHKT {
16
- type: ListField<F, S, Sout, this["args"][1], this["args"][2], this["args"][3]>;
17
- }
18
- export declare class ListField<F extends Entry[] = [], S extends z.ZodArray<z.ZodObject<{
19
- name: z.ZodString;
20
- value: z.ZodUnion<readonly [ReturnType<F[number]["field"]["getSchema"]>]>;
21
- }, z.core.$strip>> = z.ZodArray<z.ZodObject<{
22
- name: z.ZodString;
23
- value: z.ZodUnion<readonly [ReturnType<F[number]["field"]["getSchema"]>]>;
24
- }, z.core.$strip>>, Sout extends z.ZodArray<z.ZodObject<{
25
- name: z.ZodString;
26
- value: z.ZodUnion<readonly [ReturnType<F[number]["field"]["getOutputSchema"]>]>;
27
- }, z.core.$strip>> = z.ZodArray<z.ZodObject<{
28
- name: z.ZodString;
29
- value: z.ZodUnion<readonly [ReturnType<F[number]["field"]["getOutputSchema"]>]>;
30
- }, z.core.$strip>>, TRequired extends boolean = false, TTranslatable extends boolean = false, TVisibility extends "api" | "manager" | "all" = "all", THKT extends FieldHKT = ListFieldHKT<F, S, Sout>> extends Field<THKT, S, Sout, TRequired, TTranslatable, TVisibility> {
31
- fields: F;
32
- constructor(fields: F);
33
- protected getBaseOutputSchema(): getRequiredType<Sout, TRequired>;
34
- }
35
6
  export type EncodedListFieldItem = {
36
7
  name: string;
37
- field: EncodedField;
8
+ field: EncodedFieldUnknown;
38
9
  };
39
10
  export type EncodedListField = EncodedField & {
40
11
  fields: EncodedListFieldItem[];
@@ -43,4 +14,33 @@ export type ListFieldValueItem<S> = {
43
14
  name: string;
44
15
  value: S;
45
16
  };
17
+ type ListInputValue<Entries extends readonly Entry[]> = Array<{
18
+ name: Entries[number]["name"];
19
+ value: InferDb<Entries[number]["field"]>;
20
+ }>;
21
+ type ListOutputValue<Entries extends readonly Entry[]> = Array<{
22
+ name: Entries[number]["name"];
23
+ value: InferOutput<Entries[number]["field"]>;
24
+ }>;
25
+ export type ListMeta<Entries extends readonly Entry[] = readonly Entry[]> = {
26
+ type: "List";
27
+ ui: "List" | "Iterator";
28
+ fields: {
29
+ [K in keyof Entries]: Entries[K] extends Entry<infer Name, infer F> ? {
30
+ name: Name;
31
+ field: F["meta"];
32
+ } : never;
33
+ };
34
+ };
35
+ type ListOptions<Entries extends readonly Entry[]> = {
36
+ fields: Entries;
37
+ ui: "List" | "Iterator";
38
+ };
39
+ export type ListField<Entries extends readonly Entry[] = readonly Entry[], State extends FieldState = DefaultFieldState> = FieldWithModifiers<ListFieldCore<Entries, State>>;
40
+ type ListFieldCore<Entries extends readonly Entry[], State extends FieldState> = FieldLike<ListInputValue<Entries>, ListInputValue<Entries>, ListOutputValue<Entries>, ListMeta<Entries>, State> & {
41
+ fields: Entries;
42
+ };
43
+ export declare function listField<const Entries extends readonly Entry[]>(fields: Entries): ListField<Entries>;
44
+ export declare function makeListField<Entries extends readonly Entry[], State extends FieldState>(options: ListOptions<Entries>, state: State): ListField<Entries, State>;
45
+ export {};
46
46
  //# sourceMappingURL=List.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/List.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/List.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,52 @@
1
1
  import z from "zod";
2
- import { Field } from "./Field";
3
- export class ListField extends Field {
4
- constructor(fields) {
5
- super({
6
- config: { ui: "List", type: "List" },
7
- schema: z.array(z.object({
8
- name: z.string(),
9
- value: z.union(fields.map((f) => f.field.getSchema())),
2
+ import { createField, defaultFieldState, withFieldModifiers, } from "./Field";
3
+ export function listField(fields) {
4
+ return makeListField({ fields, ui: "List" }, defaultFieldState);
5
+ }
6
+ export function makeListField(options, state) {
7
+ const field = createField({
8
+ meta: {
9
+ type: "List",
10
+ ui: options.ui,
11
+ fields: options.fields.map((entry) => ({
12
+ name: entry.name,
13
+ field: entry.field.meta,
10
14
  })),
11
- });
12
- this.fields = fields;
15
+ },
16
+ state,
17
+ schemas: {
18
+ input: () => buildListDbSchema(options.fields),
19
+ db: () => buildListDbSchema(options.fields),
20
+ output: () => buildListOutputSchema(options.fields),
21
+ },
22
+ });
23
+ field.fields = options.fields;
24
+ return withFieldModifiers({
25
+ field,
26
+ rebuild: (nextState) => makeListField(options, nextState),
27
+ });
28
+ }
29
+ function buildListDbSchema(fields) {
30
+ const valueSchemas = fields.map((entry) => entry.field.getSchema());
31
+ return z.array(z.object({
32
+ name: z.string(),
33
+ value: unionSchemas(valueSchemas),
34
+ }));
35
+ }
36
+ function buildListOutputSchema(fields) {
37
+ const valueSchemas = fields.map((entry) => entry.field.getOutputSchema());
38
+ return z.array(z.object({
39
+ name: z.string(),
40
+ value: unionSchemas(valueSchemas),
41
+ }));
42
+ }
43
+ function unionSchemas(schemas) {
44
+ if (schemas.length === 0) {
45
+ return z.never();
13
46
  }
14
- getBaseOutputSchema() {
15
- return z.array(z.object({
16
- name: z.string(),
17
- value: z.union(this.fields.map((f) => f.field.getOutputSchema())),
18
- }));
47
+ if (schemas.length === 1) {
48
+ return schemas[0];
19
49
  }
50
+ return z.union(schemas);
20
51
  }
21
52
  //# sourceMappingURL=List.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../../src/lib/fields/List.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA2ChC,MAAM,OAAO,SAgDX,SAAQ,KAA2D;IAGnE,YAAY,MAAS;QACnB,KAAK,CAAC;YACJ,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;YACpC,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;aACvD,CAAC,CACa;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEkB,mBAAmB;QACpC,OAAO,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,CAE/C,CACF;SACF,CAAC,CAC4C,CAAC;IACnD,CAAC;CACF"}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../../src/lib/fields/List.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EACL,WAAW,EACX,iBAAiB,EAWjB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAmEjB,MAAM,UAAU,SAAS,CACvB,MAAe;IAEf,OAAO,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,aAAa,CAG3B,OAA6B,EAAE,KAAY;IAC3C,MAAM,KAAK,GAAkC,WAAW,CAAC;QACvD,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;aACxB,CAAC,CAAgC;SACnC;QACD,KAAK;QACL,OAAO,EAAE;YACP,KAAK,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9C,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC3C,MAAM,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC;SACpD;KACF,CAAkC,CAAC;IAEpC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9B,OAAO,kBAAkB,CAAC;QACxB,KAAK;QACL,OAAO,EAAE,CAA+B,SAAoB,EAAE,EAAE,CAC9D,aAAa,CAAC,OAAO,EAAE,SAAS,CAG/B;KACJ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAmC,MAAe;IAC1E,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACxC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CACxB,CAAC;IAEF,OAAO,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC;KAClC,CAAC,CACmC,CAAC;AAC1C,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAe;IAEf,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1E,OAAO,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC;KAClC,CAAC,CACoC,CAAC;AAC3C,CAAC;AAED,SAAS,YAAY,CAAC,OAAuB;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,CAAC,KAAK,CAAC,OAA0D,CAAC,CAAC;AAC7E,CAAC"}
@@ -1,20 +1,20 @@
1
- import z from "zod";
2
- import type { EncodedField } from "./Field";
3
- import { Field } from "./Field";
4
- import type { FieldHKT } from "../types";
5
- interface NumberFieldHKT extends FieldHKT {
6
- type: NumberField<this["args"][1], this["args"][2], this["args"][3]>;
7
- }
8
- export declare class NumberField<TRequired extends boolean = false, TTranslatable extends boolean = false, TVisibility extends "api" | "manager" | "all" = "all"> extends Field<NumberFieldHKT, z.ZodNumber, z.ZodNumber, TRequired, TTranslatable, TVisibility> {
1
+ import { type EncodedField, type DefaultFieldState, type FieldLike, type FieldState, type FieldStateOf, type FieldWithModifiers } from "./Field";
2
+ export type NumberMeta = {
3
+ type: "Number";
4
+ ui: "Number";
9
5
  minValue?: number;
10
6
  maxValue?: number;
11
- constructor();
12
- min(value: number, message?: string): this;
13
- max(value: number, message?: string): this;
14
- }
7
+ };
15
8
  export type EncodedNumberField = EncodedField & {
16
9
  minValue?: number;
17
10
  maxValue?: number;
18
11
  };
12
+ export type NumberField<State extends FieldState = DefaultFieldState> = FieldWithModifiers<NumberFieldCore<State>>;
13
+ type NumberFieldCore<State extends FieldState> = NumberFieldBase<State> & {
14
+ min: <TThis extends NumberFieldBase<FieldState>>(this: TThis, value: number, message?: string) => NumberField<FieldStateOf<TThis>>;
15
+ max: <TThis extends NumberFieldBase<FieldState>>(this: TThis, value: number, message?: string) => NumberField<FieldStateOf<TThis>>;
16
+ };
17
+ type NumberFieldBase<State extends FieldState> = FieldLike<number, number, number, NumberMeta, State>;
18
+ export declare function numberField(): NumberField;
19
19
  export {};
20
20
  //# sourceMappingURL=Number.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Number.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Number.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,cAAe,SAAQ,QAAQ;IACvC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE;AAED,qBAAa,WAAW,CACtB,SAAS,SAAS,OAAO,GAAG,KAAK,EACjC,aAAa,SAAS,OAAO,GAAG,KAAK,EACrC,WAAW,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CACrD,SAAQ,KAAK,CACb,cAAc,EACd,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,SAAS,EACX,SAAS,EACT,aAAa,EACb,WAAW,CACZ;IACC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;;IAQlB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAMnC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAKpC;AAED,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"Number.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Number.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,kBAAkB,EAGxB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AASF,MAAM,MAAM,WAAW,CACrB,KAAK,SAAS,UAAU,GAAG,iBAAiB,IAC1C,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAE/C,KAAK,eAAe,CAAC,KAAK,SAAS,UAAU,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG;IACxE,GAAG,EAAE,CAAC,KAAK,SAAS,eAAe,CAAC,UAAU,CAAC,EAC7C,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,KACb,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,GAAG,EAAE,CAAC,KAAK,SAAS,eAAe,CAAC,UAAU,CAAC,EAC7C,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,KACb,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;CACvC,CAAC;AAEF,KAAK,eAAe,CAAC,KAAK,SAAS,UAAU,IAAI,SAAS,CACxD,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAU,EACV,KAAK,CACN,CAAC;AAEF,wBAAgB,WAAW,IAAI,WAAW,CAEzC"}