@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,91 +1,128 @@
1
- import { z } from "zod";
2
- import type { Apply, FieldHKT, HKT, Visibility } from "../types";
3
- import { EncodedBooleanField } from "./Boolean";
4
- import { EncodedDateField } from "./Date";
5
- import { EncodedFileField } from "./File";
6
- import { EncodedLinkField } from "./Link";
7
- import { EncodedListField } from "./List";
8
- import { EncodedNumberField } from "./Number";
9
- import { EncodedContentReferenceField } from "./ContentReference";
10
- import { EncodedRelationField } from "./Relation";
11
- import { EncodedSelectField } from "./Select";
12
- import { EncodedSelfRelationField } from "./SelfRelation";
13
- import { EncodedSimpleListField } from "./SimpleList";
14
- import { EncodedStringField } from "./String";
1
+ import z from "zod";
2
+ import type { EncodedBooleanField } from "./Boolean";
3
+ import type { EncodedContentReferenceField } from "./ContentReference";
4
+ import type { EncodedDateField } from "./Date";
5
+ import type { EncodedFileField } from "./File";
6
+ import type { EncodedLinkField } from "./Link";
7
+ import type { EncodedListField } from "./List";
8
+ import type { EncodedNumberField } from "./Number";
9
+ import type { EncodedRelationField } from "./Relation";
10
+ import type { EncodedSelectField } from "./Select";
11
+ import type { EncodedSelfRelationField } from "./SelfRelation";
12
+ import type { EncodedSimpleListField } from "./SimpleList";
13
+ import type { EncodedStringField } from "./String";
15
14
  export declare const FieldUIType: z.ZodEnum<{
16
- Text: "Text";
17
- Number: "Number";
18
15
  Boolean: "Boolean";
16
+ Select: "Select";
17
+ Number: "Number";
18
+ List: "List";
19
+ Link: "Link";
19
20
  Date: "Date";
21
+ File: "File";
22
+ Text: "Text";
20
23
  Textarea: "Textarea";
21
24
  RichText: "RichText";
22
- Select: "Select";
23
25
  MultiSelect: "MultiSelect";
24
26
  Email: "Email";
25
27
  Slug: "Slug";
26
28
  ContentType: "ContentType";
27
29
  ContentTypeSelect: "ContentTypeSelect";
28
30
  ContentTypeMultiSelect: "ContentTypeMultiSelect";
29
- List: "List";
30
31
  Password: "Password";
31
32
  SelfRelation: "SelfRelation";
32
33
  Id: "Id";
33
34
  Url: "Url";
34
- Link: "Link";
35
35
  DateTime: "DateTime";
36
36
  Time: "Time";
37
37
  Iterator: "Iterator";
38
38
  SimpleList: "SimpleList";
39
- File: "File";
40
39
  }>;
41
40
  export type FieldUIType = z.infer<typeof FieldUIType>;
42
41
  export declare const FieldType: z.ZodEnum<{
43
- Number: "Number";
44
42
  Boolean: "Boolean";
45
- Date: "Date";
43
+ String: "String";
46
44
  Select: "Select";
45
+ Relation: "Relation";
46
+ Number: "Number";
47
47
  List: "List";
48
48
  Link: "Link";
49
+ Date: "Date";
49
50
  File: "File";
50
- String: "String";
51
- Relation: "Relation";
52
51
  ContentReference: "ContentReference";
53
52
  }>;
54
53
  export type FieldType = z.infer<typeof FieldType>;
55
- export declare abstract class Field<T extends HKT<unknown[]> = FieldHKT, S extends z.ZodTypeAny = z.ZodTypeAny, Sout extends z.ZodTypeAny = S, TRequired extends boolean = false, TTranslatable extends boolean = false, TVisibility extends Visibility = "all"> {
56
- protected config: {
57
- ui: FieldUIType;
58
- type: FieldType;
59
- };
60
- protected isRequired: boolean;
61
- protected isTranslatable: boolean;
62
- protected schema: S;
63
- protected visibility: Visibility;
64
- constructor(params: {
65
- config: {
66
- ui: FieldUIType;
67
- type: FieldType;
68
- };
69
- schema: S;
70
- });
71
- required(): Apply<T, [S, true, TTranslatable, TVisibility]>;
72
- translatable(): Apply<T, [S, TRequired, true, TVisibility]>;
73
- apiOnly(): Apply<T, [S, TRequired, TTranslatable, "api"]>;
74
- managerOnly(): Apply<T, [S, TRequired, TTranslatable, "manager"]>;
75
- protected getBaseInputSchema(): import("../types").getRequiredTypeWithNull<import("../types").getTranslatableType<S, TTranslatable>, TRequired>;
76
- protected getBaseSchema(): import("../types").getRequiredType<import("../types").getTranslatableType<S, TTranslatable>, TRequired>;
77
- protected getBaseOutputSchema(): import("../types").getRequiredType<Sout, TRequired>;
78
- getInputSchema(): import("../types").If<import("../types").Or<import("../types").Extends<TVisibility, "manager">, import("../types").Extends<TVisibility, "all">>, import("../types").getRequiredTypeWithNull<import("../types").getTranslatableType<S, TTranslatable>, TRequired>, z.ZodOptional<z.ZodNever>>;
79
- getSchema(): import("../types").If<import("../types").Or<import("../types").Extends<TVisibility, "manager">, import("../types").Extends<TVisibility, "all">>, import("../types").getRequiredType<import("../types").getTranslatableType<S, TTranslatable>, TRequired>, z.ZodOptional<z.ZodNever>>;
80
- getOutputSchema(): import("../types").If<import("../types").Or<import("../types").Extends<TVisibility, "api">, import("../types").Extends<TVisibility, "all">>, import("../types").getRequiredType<Sout, TRequired>, z.ZodOptional<z.ZodNever>>;
81
- getIsRequired(): boolean;
82
- getIsTranslatable(): boolean;
83
- getVisibility(): TVisibility;
84
- getConfig(): {
85
- ui: FieldUIType;
86
- type: FieldType;
87
- };
88
- }
54
+ export type Visibility = "all" | "api" | "manager";
55
+ export type FieldState = {
56
+ required: boolean;
57
+ translatable: boolean;
58
+ visibility: Visibility;
59
+ };
60
+ export type DefaultFieldState = {
61
+ required: false;
62
+ translatable: false;
63
+ visibility: "all";
64
+ };
65
+ export declare const defaultFieldState: {
66
+ readonly required: false;
67
+ readonly translatable: false;
68
+ readonly visibility: "all";
69
+ };
70
+ export type SetRequired<State extends FieldState> = Omit<State, "required"> & {
71
+ required: true;
72
+ };
73
+ export type SetTranslatable<State extends FieldState> = Omit<State, "translatable"> & {
74
+ translatable: true;
75
+ };
76
+ export type SetVisibility<State extends FieldState, V extends Visibility> = Omit<State, "visibility"> & {
77
+ visibility: V;
78
+ };
79
+ export type TranslatableValue<Value> = {
80
+ _tag: "Translatable";
81
+ [key: string]: Value | "Translatable";
82
+ };
83
+ type MaybeTranslatable<Value, State extends FieldState> = State["translatable"] extends true ? TranslatableValue<Value> : Value;
84
+ type MaybeInput<Value, State extends FieldState> = State["required"] extends true ? Value : Value | null | undefined;
85
+ type MaybeOutput<Value, State extends FieldState> = State["required"] extends true ? Value : Value | undefined;
86
+ export type FieldInput<InputValue, State extends FieldState> = State["visibility"] extends "api" ? undefined : MaybeInput<MaybeTranslatable<InputValue, State>, State>;
87
+ export type FieldDb<DbValue, State extends FieldState> = State["visibility"] extends "api" ? undefined : MaybeOutput<MaybeTranslatable<DbValue, State>, State>;
88
+ export type FieldOutput<OutputValue, State extends FieldState> = State["visibility"] extends "manager" ? undefined : MaybeOutput<OutputValue, State>;
89
+ export type FieldLike<InputValue, DbValue, OutputValue, Meta, State extends FieldState = DefaultFieldState> = {
90
+ kind: "field";
91
+ meta: Meta;
92
+ state: State;
93
+ toZod: () => z.ZodType<DbValue>;
94
+ getInputSchema: () => z.ZodType<FieldInput<InputValue, State>>;
95
+ getSchema: () => z.ZodType<FieldDb<DbValue, State>>;
96
+ getOutputSchema: () => z.ZodType<FieldOutput<OutputValue, State>>;
97
+ getConfig: () => Meta;
98
+ getIsRequired: () => State["required"];
99
+ getIsTranslatable: () => State["translatable"];
100
+ getVisibility: () => State["visibility"];
101
+ };
102
+ type FieldModifierKeys = "required" | "translatable" | "apiOnly" | "managerOnly" | "getPopulatedSchema";
103
+ export type FieldValueOf<F> = F extends FieldLike<infer Value, any, any, unknown, FieldState> ? Value : never;
104
+ export type FieldDbValueOf<F> = F extends FieldLike<any, infer Value, any, unknown, FieldState> ? Value : never;
105
+ export type FieldOutputValueOf<F> = F extends FieldLike<any, any, infer Value, unknown, FieldState> ? Value : never;
106
+ export type FieldMetaOf<F> = F extends FieldLike<unknown, unknown, unknown, infer Meta, FieldState> ? Meta : never;
107
+ export type FieldStateOf<F> = F extends FieldLike<unknown, unknown, unknown, unknown, infer State> ? State : never;
108
+ export type FieldMetaBase = {
109
+ type: FieldType;
110
+ ui: FieldUIType;
111
+ };
112
+ export type AnyFieldLike = FieldLike<unknown, unknown, unknown, FieldMetaBase, FieldState>;
113
+ export type PopulatableFieldLike<PopulatedValue, State extends FieldState = DefaultFieldState> = {
114
+ getPopulatedSchema: () => z.ZodType<FieldOutput<PopulatedValue, State>>;
115
+ };
116
+ export type FieldPopulatedValueOf<F> = F extends PopulatableFieldLike<infer Value, any> ? Value : never;
117
+ type RebindPopulatedField<F extends AnyFieldLike, State extends FieldState> = F extends PopulatableFieldLike<unknown, any> ? PopulatableFieldLike<FieldPopulatedValueOf<F>, State> : unknown;
118
+ export type FieldWithModifiers<F extends AnyFieldLike> = F & {
119
+ required: () => WithFieldState<F, SetRequired<FieldStateOf<F>>>;
120
+ translatable: () => WithFieldState<F, SetTranslatable<FieldStateOf<F>>>;
121
+ apiOnly: () => WithFieldState<F, SetVisibility<FieldStateOf<F>, "api">>;
122
+ managerOnly: () => WithFieldState<F, SetVisibility<FieldStateOf<F>, "manager">>;
123
+ };
124
+ export type AnyField = FieldWithModifiers<AnyFieldLike>;
125
+ export type Field = AnyField;
89
126
  export type EncodedField = {
90
127
  config: {
91
128
  ui: FieldUIType;
@@ -95,5 +132,31 @@ export type EncodedField = {
95
132
  isTranslatable: boolean;
96
133
  visibility: Visibility;
97
134
  };
98
- export type EncodedFieldUnknown = EncodedBooleanField | EncodedDateField | EncodedFileField | EncodedLinkField | EncodedListField | EncodedNumberField | EncodedContentReferenceField | EncodedRelationField | EncodedSelectField | EncodedSelfRelationField | EncodedSimpleListField | EncodedStringField;
135
+ export type EncodedFieldUnknown = EncodedBooleanField | EncodedContentReferenceField | EncodedDateField | EncodedFileField | EncodedLinkField | EncodedListField | EncodedNumberField | EncodedRelationField | EncodedSelectField | EncodedSelfRelationField | EncodedSimpleListField | EncodedStringField;
136
+ export type WithFieldState<F extends AnyFieldLike, State extends FieldState> = FieldWithModifiers<Omit<F, keyof AnyFieldLike | FieldModifierKeys> & FieldLike<FieldValueOf<F>, FieldDbValueOf<F>, FieldOutputValueOf<F>, FieldMetaOf<F>, State> & RebindPopulatedField<F, State>>;
137
+ export type InferInput<F> = F extends FieldLike<infer Value, any, any, unknown, infer State> ? FieldInput<Value, State> : never;
138
+ export type InferDb<F> = F extends FieldLike<any, infer Value, any, unknown, infer State> ? FieldDb<Value, State> : never;
139
+ export type InferOutput<F> = F extends FieldLike<any, any, infer Value, unknown, infer State> ? FieldOutput<Value, State> : never;
140
+ export type InferPopulated<F> = F extends {
141
+ getPopulatedSchema: () => z.ZodType<infer Value>;
142
+ } ? Value : InferDb<F>;
143
+ export declare function createField<InputValue, DbValue, OutputValue, Meta, State extends FieldState>(params: {
144
+ meta: Meta;
145
+ state: State;
146
+ schemas: {
147
+ input: () => z.ZodType<InputValue>;
148
+ db: () => z.ZodType<DbValue>;
149
+ output: () => z.ZodType<OutputValue>;
150
+ };
151
+ }): FieldLike<InputValue, DbValue, OutputValue, Meta, State>;
152
+ export declare function sameSchemas<Value>(schema: () => z.ZodType<Value>): {
153
+ input: () => z.ZodType<Value>;
154
+ db: () => z.ZodType<Value>;
155
+ output: () => z.ZodType<Value>;
156
+ };
157
+ export declare function withFieldModifiers<F extends AnyFieldLike>(params: {
158
+ field: F;
159
+ rebuild: <NextState extends FieldState>(state: NextState) => WithFieldState<F, NextState>;
160
+ }): FieldWithModifiers<F>;
161
+ export {};
99
162
  //# sourceMappingURL=Field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Field.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { z } from "zod";
2
- import { getDefaultSchema, getDefaultManagerSchema, getDefaultApiSchema, getDefaultOutputSchema, getDefaultInputSchema, } from "../utils/getSchemas";
1
+ import z from "zod";
3
2
  export const FieldUIType = z.enum([
4
3
  "Text",
5
4
  "Number",
@@ -38,59 +37,75 @@ export const FieldType = z.enum([
38
37
  "File",
39
38
  "ContentReference",
40
39
  ]);
41
- export class Field {
42
- constructor(params) {
43
- this.isRequired = false;
44
- this.isTranslatable = false;
45
- this.visibility = "all";
46
- this.config = params.config;
47
- this.schema = params.schema;
48
- }
49
- required() {
50
- this.isRequired = true;
51
- return this;
52
- }
53
- translatable() {
54
- this.isTranslatable = true;
55
- return this;
56
- }
57
- apiOnly() {
58
- this.visibility = "api";
59
- return this;
60
- }
61
- managerOnly() {
62
- this.visibility = "manager";
63
- return this;
64
- }
65
- getBaseInputSchema() {
66
- return getDefaultInputSchema(this.schema, this.isRequired, this.isTranslatable);
67
- }
68
- getBaseSchema() {
69
- return getDefaultSchema(this.schema, this.isRequired, this.isTranslatable);
70
- }
71
- getBaseOutputSchema() {
72
- return getDefaultOutputSchema(this.schema, this.isRequired);
73
- }
74
- getInputSchema() {
75
- return getDefaultManagerSchema(this.visibility, () => this.getBaseInputSchema());
76
- }
77
- getSchema() {
78
- return getDefaultManagerSchema(this.visibility, () => this.getBaseSchema());
79
- }
80
- getOutputSchema() {
81
- return getDefaultApiSchema(this.visibility, () => this.getBaseOutputSchema());
82
- }
83
- getIsRequired() {
84
- return this.isRequired;
85
- }
86
- getIsTranslatable() {
87
- return this.isTranslatable;
88
- }
89
- getVisibility() {
90
- return this.visibility;
91
- }
92
- getConfig() {
93
- return this.config;
40
+ export const defaultFieldState = {
41
+ required: false,
42
+ translatable: false,
43
+ visibility: "all",
44
+ };
45
+ export function createField(params) {
46
+ return {
47
+ kind: "field",
48
+ meta: params.meta,
49
+ state: params.state,
50
+ toZod: params.schemas.db,
51
+ getConfig: () => params.meta,
52
+ getIsRequired: () => params.state.required,
53
+ getIsTranslatable: () => params.state.translatable,
54
+ getVisibility: () => params.state.visibility,
55
+ getInputSchema: () => applyManagerVisibility(applyInputPresence(applyTranslatable(params.schemas.input(), params.state), params.state), params.state),
56
+ getSchema: () => applyManagerVisibility(applyOutputPresence(applyTranslatable(params.schemas.db(), params.state), params.state), params.state),
57
+ getOutputSchema: () => applyApiVisibility(applyOutputPresence(params.schemas.output(), params.state), params.state),
58
+ };
59
+ }
60
+ export function sameSchemas(schema) {
61
+ return {
62
+ input: schema,
63
+ db: schema,
64
+ output: schema,
65
+ };
66
+ }
67
+ export function withFieldModifiers(params) {
68
+ const { field, rebuild } = params;
69
+ return {
70
+ ...field,
71
+ required: () => rebuild({
72
+ ...field.state,
73
+ required: true,
74
+ }),
75
+ translatable: () => rebuild({
76
+ ...field.state,
77
+ translatable: true,
78
+ }),
79
+ apiOnly: () => rebuild({
80
+ ...field.state,
81
+ visibility: "api",
82
+ }),
83
+ managerOnly: () => rebuild({
84
+ ...field.state,
85
+ visibility: "manager",
86
+ }),
87
+ };
88
+ }
89
+ function applyTranslatable(schema, state) {
90
+ if (!state.translatable) {
91
+ return schema;
94
92
  }
93
+ return z
94
+ .object({
95
+ _tag: z.literal("Translatable"),
96
+ })
97
+ .catchall(schema);
98
+ }
99
+ function applyInputPresence(schema, state) {
100
+ return state.required ? schema : schema.nullish();
101
+ }
102
+ function applyOutputPresence(schema, state) {
103
+ return state.required ? schema : schema.optional();
104
+ }
105
+ function applyManagerVisibility(schema, state) {
106
+ return state.visibility === "api" ? z.never().optional() : schema;
107
+ }
108
+ function applyApiVisibility(schema, state) {
109
+ return state.visibility === "manager" ? z.never().optional() : schema;
95
110
  }
96
111
  //# sourceMappingURL=Field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../../src/lib/fields/Field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../../src/lib/fields/Field.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { booleanField } from "./Boolean";
2
+ import { contentReferenceField } from "./ContentReference";
3
+ import { dateField } from "./Date";
4
+ import { fileField } from "./File";
5
+ import { iteratorField } from "./Iterator";
6
+ import { linkField } from "./Link";
7
+ import { listField } from "./List";
8
+ import { numberField } from "./Number";
9
+ import { relationField } from "./Relation";
10
+ import { selectField } from "./Select";
11
+ import { selfRelationField } from "./SelfRelation";
12
+ import { simpleListField } from "./SimpleList";
13
+ import { stringField } from "./String";
14
+ export declare const Fields: {
15
+ string: typeof stringField;
16
+ relation: typeof relationField;
17
+ contentReference: typeof contentReferenceField;
18
+ selfRelation: typeof selfRelationField;
19
+ number: typeof numberField;
20
+ boolean: typeof booleanField;
21
+ link: typeof linkField;
22
+ file: typeof fileField;
23
+ date: typeof dateField;
24
+ select: typeof selectField;
25
+ iterator: typeof iteratorField;
26
+ blocks: typeof listField;
27
+ array: typeof simpleListField;
28
+ };
29
+ //# sourceMappingURL=Fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;CAclB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { booleanField } from "./Boolean";
2
+ import { contentReferenceField } from "./ContentReference";
3
+ import { dateField } from "./Date";
4
+ import { fileField } from "./File";
5
+ import { iteratorField } from "./Iterator";
6
+ import { linkField } from "./Link";
7
+ import { listField } from "./List";
8
+ import { numberField } from "./Number";
9
+ import { relationField } from "./Relation";
10
+ import { selectField } from "./Select";
11
+ import { selfRelationField } from "./SelfRelation";
12
+ import { simpleListField } from "./SimpleList";
13
+ import { stringField } from "./String";
14
+ export const Fields = {
15
+ string: stringField,
16
+ relation: relationField,
17
+ contentReference: contentReferenceField,
18
+ selfRelation: selfRelationField,
19
+ number: numberField,
20
+ boolean: booleanField,
21
+ link: linkField,
22
+ file: fileField,
23
+ date: dateField,
24
+ select: selectField,
25
+ iterator: iteratorField,
26
+ blocks: listField,
27
+ array: simpleListField,
28
+ };
29
+ //# sourceMappingURL=Fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fields.js","sourceRoot":"","sources":["../../../../src/lib/fields/Fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,aAAa;IACvB,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,iBAAiB;IAC/B,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,eAAe;CACvB,CAAC"}
@@ -1,29 +1,11 @@
1
1
  import z from "zod";
2
- import type { EncodedField } from "./Field";
3
- import { Field } from "./Field";
4
- import type { FieldHKT, Visibility, getRequiredType } from "../types";
5
- export declare const FileMediaType: z.ZodEnum<{
6
- Image: "Image";
7
- Video: "Video";
8
- Document: "Document";
9
- Any: "Any";
10
- }>;
11
- export declare const FileUploadMethod: z.ZodEnum<{
12
- default: "default";
13
- optimize: "optimize";
14
- }>;
15
- export declare const FileOptimizeFormat: z.ZodEnum<{
16
- webp: "webp";
17
- jpeg: "jpeg";
18
- png: "png";
19
- avif: "avif";
20
- }>;
21
- export type FileMediaType = z.infer<typeof FileMediaType>;
22
- export type FileUploadMethod = z.infer<typeof FileUploadMethod>;
23
- export type FileOptimizeFormat = z.infer<typeof FileOptimizeFormat>;
24
- /**
25
- * Optimization settings for image uploads in `FileField.optimize`.
26
- */
2
+ import { type EncodedField, type DefaultFieldState, type FieldLike, type FieldState, type FieldStateOf, type FieldWithModifiers, type PopulatableFieldLike } from "./Field";
3
+ export declare const fileMediaTypes: readonly ["Image", "Video", "Document", "Any"];
4
+ export declare const fileUploadMethods: readonly ["default", "optimize"];
5
+ export declare const fileOptimizeFormats: readonly ["webp", "jpeg", "png", "avif"];
6
+ export type FileMediaType = (typeof fileMediaTypes)[number];
7
+ export type FileUploadMethod = (typeof fileUploadMethods)[number];
8
+ export type FileOptimizeFormat = (typeof fileOptimizeFormats)[number];
27
9
  export declare const FileOptimizeOptionsSchema: z.ZodObject<{
28
10
  format: z.ZodDefault<z.ZodEnum<{
29
11
  webp: "webp";
@@ -42,11 +24,6 @@ declare const fileRelationSchema: z.ZodObject<{
42
24
  _id: z.ZodString;
43
25
  contentType: z.ZodLiteral<"Media">;
44
26
  }, z.core.$strip>;
45
- declare const fileRelationArraySchema: z.ZodArray<z.ZodObject<{
46
- type: z.ZodLiteral<"existing">;
47
- _id: z.ZodString;
48
- contentType: z.ZodLiteral<"Media">;
49
- }, z.core.$strip>>;
50
27
  declare const fileOutputSchema: z.ZodObject<{
51
28
  url: z.ZodString;
52
29
  previewUrl: z.ZodNullable<z.ZodString>;
@@ -60,34 +37,32 @@ declare const fileOutputSchema: z.ZodObject<{
60
37
  landscape: "landscape";
61
38
  }>>;
62
39
  }, z.core.$strip>;
63
- interface FileFieldHKT<T extends FileMediaType, M extends boolean> extends FieldHKT {
64
- type: FileField<T, M, M extends true ? typeof fileRelationArraySchema : typeof fileRelationSchema, M extends true ? z.ZodArray<typeof fileOutputSchema> : typeof fileOutputSchema, this["args"][1], this["args"][2], this["args"][3]>;
65
- }
66
- export declare class FileField<TMediaType extends FileMediaType = "Any", M extends boolean = false, S extends typeof fileRelationSchema | typeof fileRelationArraySchema = M extends true ? typeof fileRelationArraySchema : typeof fileRelationSchema, Sout extends typeof fileOutputSchema | z.ZodArray<typeof fileOutputSchema> = M extends true ? z.ZodArray<typeof fileOutputSchema> : typeof fileOutputSchema, TRequired extends boolean = false, TTranslatable extends boolean = false, TVisibility extends Visibility = "all"> extends Field<FileFieldHKT<TMediaType, M>, S, Sout, TRequired, TTranslatable, TVisibility> {
67
- mediaType: TMediaType;
68
- isMultiple: M;
40
+ type FileRelation = z.infer<typeof fileRelationSchema>;
41
+ export type FileOutputValue = z.infer<typeof fileOutputSchema>;
42
+ type MaybeMultiple<Value, Multiple extends boolean> = Multiple extends true ? Value[] : Value;
43
+ export type FileMeta<MediaType extends FileMediaType = FileMediaType, Multiple extends boolean = boolean> = {
44
+ type: "File";
45
+ ui: "File";
46
+ mediaType: MediaType;
47
+ isMultiple: Multiple;
69
48
  uploadMethod: FileUploadMethod;
70
49
  optimizeOptions?: FileOptimizeOptions;
71
- constructor();
72
- type<T extends FileMediaType>(mediaType: T): FileField<T, M, S, Sout, TRequired, TTranslatable, TVisibility>;
73
- multiple(): FileField<TMediaType, true, typeof fileRelationArraySchema, z.ZodArray<typeof fileOutputSchema>, TRequired, TTranslatable, TVisibility>;
74
- /**
75
- * Enables the optimized upload strategy for images.
76
- *
77
- * @param options - Optimization options:
78
- * `format`, `quality`, `generatePreview`, `minBytesToOptimize`, `previewMaxWidth`.
79
- */
80
- optimize(options?: Partial<FileOptimizeOptions>): this;
81
- protected getBaseOutputSchema(): getRequiredType<Sout, TRequired>;
82
- getPopulatedSchema(): getRequiredType<Sout, TRequired>;
83
- }
50
+ };
84
51
  export type EncodedFileField = EncodedField & {
85
52
  mediaType: FileMediaType;
86
53
  isMultiple: boolean;
87
54
  uploadMethod?: FileUploadMethod;
88
55
  optimizeOptions?: FileOptimizeOptions;
89
56
  };
90
- export type FileFieldValue = z.infer<typeof fileRelationSchema>;
91
- export type FileFieldOutput = z.infer<typeof fileOutputSchema>;
57
+ export type FileFieldValue = FileRelation;
58
+ export type FileFieldOutput = FileOutputValue;
59
+ export type FileField<MediaType extends FileMediaType = "Any", Multiple extends boolean = false, State extends FieldState = DefaultFieldState> = FieldWithModifiers<FileFieldCore<MediaType, Multiple, State>>;
60
+ type FileFieldCore<MediaType extends FileMediaType, Multiple extends boolean, State extends FieldState> = FileFieldBase<MediaType, Multiple, State> & PopulatableFieldLike<MaybeMultiple<FileOutputValue, Multiple>, State> & {
61
+ type: <TThis extends FileFieldBase<MediaType, Multiple, FieldState>, NextMediaType extends FileMediaType>(this: TThis, mediaType: NextMediaType) => FileField<NextMediaType, Multiple, FieldStateOf<TThis>>;
62
+ multiple: <TThis extends FileFieldBase<MediaType, Multiple, FieldState>>(this: TThis) => FileField<MediaType, true, FieldStateOf<TThis>>;
63
+ optimize: <TThis extends FileFieldBase<MediaType, Multiple, FieldState>>(this: TThis, options?: Partial<FileOptimizeOptions>) => FileField<MediaType, Multiple, FieldStateOf<TThis>>;
64
+ };
65
+ type FileFieldBase<MediaType extends FileMediaType, Multiple extends boolean, State extends FieldState> = FieldLike<MaybeMultiple<FileRelation, Multiple>, MaybeMultiple<FileRelation, Multiple>, MaybeMultiple<FileOutputValue, Multiple>, FileMeta<MediaType, Multiple>, State>;
66
+ export declare function fileField(): FileField;
92
67
  export {};
93
68
  //# sourceMappingURL=File.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"File.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/File.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"File.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/File.ts"],"names":[],"mappings":"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"}