@webiny/api-headless-cms 6.0.0 → 6.1.0-beta.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 (285) hide show
  1. package/crud/contentEntry/entryDataFactories/createEntryData.js +3 -1
  2. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -1
  3. package/crud/contentEntry.crud.js +0 -11
  4. package/crud/contentEntry.crud.js.map +1 -1
  5. package/crud/contentModel/validation.d.ts +209 -917
  6. package/crud/contentModel/validation.js +52 -29
  7. package/crud/contentModel/validation.js.map +1 -1
  8. package/domain/contentEntry/EntryId.d.ts +1 -0
  9. package/domain/contentEntry/EntryId.js +2 -0
  10. package/domain/contentEntry/EntryId.js.map +1 -1
  11. package/domain/contentEntry/errors.d.ts +2 -2
  12. package/domain/contentEntry/errors.js.map +1 -1
  13. package/domain/contentModel/schemas.d.ts +162 -718
  14. package/domain/contentModel/schemas.js +34 -20
  15. package/domain/contentModel/schemas.js.map +1 -1
  16. package/domain/contentModelGroup/validation.d.ts +34 -82
  17. package/domain/contentModelGroup/validation.js +2 -2
  18. package/domain/contentModelGroup/validation.js.map +1 -1
  19. package/exports/api/cms/entry.d.ts +1 -0
  20. package/exports/api/cms/entry.js +2 -0
  21. package/exports/api/cms/entry.js.map +1 -1
  22. package/exports/api/cms/model.d.ts +5 -2
  23. package/exports/api/cms/model.js +3 -1
  24. package/exports/api/cms/model.js.map +1 -1
  25. package/extensions/entryHooks/OnEntryBeforeCreate.d.ts +2 -6
  26. package/extensions/index.d.ts +2 -6
  27. package/features/contentEntry/ContentEntriesFeature.js +4 -0
  28. package/features/contentEntry/ContentEntriesFeature.js.map +1 -1
  29. package/{utils/contentEntryTraverser → features/contentEntry/ContentEntryTraverser}/ContentEntryTraverser.d.ts +1 -1
  30. package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverserProvider.d.ts +14 -0
  31. package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverserProvider.js +25 -0
  32. package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverserProvider.js.map +1 -0
  33. package/features/contentEntry/ContentEntryTraverser/abstractions.d.ts +12 -0
  34. package/features/contentEntry/ContentEntryTraverser/abstractions.js +7 -0
  35. package/features/contentEntry/ContentEntryTraverser/abstractions.js.map +1 -0
  36. package/features/contentEntry/ContentEntryTraverser/feature.d.ts +1 -0
  37. package/features/contentEntry/ContentEntryTraverser/feature.js +10 -0
  38. package/features/contentEntry/ContentEntryTraverser/feature.js.map +1 -0
  39. package/features/contentEntry/ContentEntryTraverser/index.d.ts +2 -0
  40. package/features/contentEntry/ContentEntryTraverser/index.js +4 -0
  41. package/features/contentEntry/ContentEntryTraverser/index.js.map +1 -0
  42. package/features/contentEntry/CreateEntry/abstractions.d.ts +1 -0
  43. package/features/contentEntry/CreateEntry/abstractions.js +1 -0
  44. package/features/contentEntry/CreateEntry/abstractions.js.map +1 -1
  45. package/features/contentEntry/CreateEntry/events.d.ts +2 -0
  46. package/features/contentEntry/CreateEntry/events.js +4 -0
  47. package/features/contentEntry/CreateEntry/events.js.map +1 -1
  48. package/features/contentEntry/CreateEntryRevisionFrom/abstractions.d.ts +1 -0
  49. package/features/contentEntry/CreateEntryRevisionFrom/abstractions.js +1 -0
  50. package/features/contentEntry/CreateEntryRevisionFrom/abstractions.js.map +1 -1
  51. package/features/contentEntry/CreateEntryRevisionFrom/events.d.ts +2 -0
  52. package/features/contentEntry/CreateEntryRevisionFrom/events.js +4 -0
  53. package/features/contentEntry/CreateEntryRevisionFrom/events.js.map +1 -1
  54. package/features/contentEntry/DeleteEntry/abstractions.d.ts +2 -0
  55. package/features/contentEntry/DeleteEntry/abstractions.js +2 -0
  56. package/features/contentEntry/DeleteEntry/abstractions.js.map +1 -1
  57. package/features/contentEntry/DeleteEntry/events.d.ts +2 -0
  58. package/features/contentEntry/DeleteEntry/events.js +4 -0
  59. package/features/contentEntry/DeleteEntry/events.js.map +1 -1
  60. package/features/contentEntry/DeleteEntryRevision/abstractions.d.ts +1 -0
  61. package/features/contentEntry/DeleteEntryRevision/abstractions.js +1 -0
  62. package/features/contentEntry/DeleteEntryRevision/abstractions.js.map +1 -1
  63. package/features/contentEntry/DeleteEntryRevision/events.d.ts +2 -0
  64. package/features/contentEntry/DeleteEntryRevision/events.js +4 -0
  65. package/features/contentEntry/DeleteEntryRevision/events.js.map +1 -1
  66. package/features/contentEntry/DeleteMultipleEntries/abstractions.d.ts +1 -0
  67. package/features/contentEntry/DeleteMultipleEntries/abstractions.js +1 -0
  68. package/features/contentEntry/DeleteMultipleEntries/abstractions.js.map +1 -1
  69. package/features/contentEntry/DeleteMultipleEntries/events.d.ts +2 -0
  70. package/features/contentEntry/DeleteMultipleEntries/events.js +4 -0
  71. package/features/contentEntry/DeleteMultipleEntries/events.js.map +1 -1
  72. package/features/contentEntry/GetEntriesByIds/abstractions.d.ts +1 -0
  73. package/features/contentEntry/GetEntriesByIds/abstractions.js +1 -0
  74. package/features/contentEntry/GetEntriesByIds/abstractions.js.map +1 -1
  75. package/features/contentEntry/GetEntry/abstractions.d.ts +1 -0
  76. package/features/contentEntry/GetEntry/abstractions.js +1 -0
  77. package/features/contentEntry/GetEntry/abstractions.js.map +1 -1
  78. package/features/contentEntry/GetEntryById/abstractions.d.ts +1 -0
  79. package/features/contentEntry/GetEntryById/abstractions.js +1 -0
  80. package/features/contentEntry/GetEntryById/abstractions.js.map +1 -1
  81. package/features/contentEntry/GetLatestEntriesByIds/abstractions.d.ts +1 -0
  82. package/features/contentEntry/GetLatestEntriesByIds/abstractions.js +1 -0
  83. package/features/contentEntry/GetLatestEntriesByIds/abstractions.js.map +1 -1
  84. package/features/contentEntry/GetLatestRevisionByEntryId/abstractions.d.ts +4 -9
  85. package/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js +4 -9
  86. package/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js.map +1 -1
  87. package/features/contentEntry/GetPreviousRevisionByEntryId/abstractions.d.ts +2 -3
  88. package/features/contentEntry/GetPreviousRevisionByEntryId/abstractions.js +2 -3
  89. package/features/contentEntry/GetPreviousRevisionByEntryId/abstractions.js.map +1 -1
  90. package/features/contentEntry/GetPublishedEntriesByIds/abstractions.d.ts +1 -0
  91. package/features/contentEntry/GetPublishedEntriesByIds/abstractions.js +1 -0
  92. package/features/contentEntry/GetPublishedEntriesByIds/abstractions.js.map +1 -1
  93. package/features/contentEntry/GetPublishedRevisionByEntryId/abstractions.d.ts +1 -0
  94. package/features/contentEntry/GetPublishedRevisionByEntryId/abstractions.js +1 -0
  95. package/features/contentEntry/GetPublishedRevisionByEntryId/abstractions.js.map +1 -1
  96. package/features/contentEntry/GetRevisionById/abstractions.d.ts +1 -0
  97. package/features/contentEntry/GetRevisionById/abstractions.js +1 -0
  98. package/features/contentEntry/GetRevisionById/abstractions.js.map +1 -1
  99. package/features/contentEntry/GetRevisionsByEntryId/abstractions.d.ts +1 -0
  100. package/features/contentEntry/GetRevisionsByEntryId/abstractions.js +1 -0
  101. package/features/contentEntry/GetRevisionsByEntryId/abstractions.js.map +1 -1
  102. package/features/contentEntry/GetSingletonEntry/abstractions.d.ts +1 -0
  103. package/features/contentEntry/GetSingletonEntry/abstractions.js +1 -0
  104. package/features/contentEntry/GetSingletonEntry/abstractions.js.map +1 -1
  105. package/features/contentEntry/ListEntries/ListEntriesRepository.js +6 -1
  106. package/features/contentEntry/ListEntries/ListEntriesRepository.js.map +1 -1
  107. package/features/contentEntry/ListEntries/abstractions.d.ts +4 -0
  108. package/features/contentEntry/ListEntries/abstractions.js +4 -0
  109. package/features/contentEntry/ListEntries/abstractions.js.map +1 -1
  110. package/features/contentEntry/MoveEntry/abstractions.d.ts +1 -0
  111. package/features/contentEntry/MoveEntry/abstractions.js +1 -0
  112. package/features/contentEntry/MoveEntry/abstractions.js.map +1 -1
  113. package/features/contentEntry/MoveEntry/events.d.ts +2 -0
  114. package/features/contentEntry/MoveEntry/events.js +4 -0
  115. package/features/contentEntry/MoveEntry/events.js.map +1 -1
  116. package/features/contentEntry/PublishEntry/abstractions.d.ts +1 -0
  117. package/features/contentEntry/PublishEntry/abstractions.js +1 -0
  118. package/features/contentEntry/PublishEntry/abstractions.js.map +1 -1
  119. package/features/contentEntry/PublishEntry/events.d.ts +2 -0
  120. package/features/contentEntry/PublishEntry/events.js +4 -0
  121. package/features/contentEntry/PublishEntry/events.js.map +1 -1
  122. package/features/contentEntry/RepublishEntry/abstractions.d.ts +1 -0
  123. package/features/contentEntry/RepublishEntry/abstractions.js +1 -0
  124. package/features/contentEntry/RepublishEntry/abstractions.js.map +1 -1
  125. package/features/contentEntry/RepublishEntry/events.d.ts +2 -0
  126. package/features/contentEntry/RepublishEntry/events.js +4 -0
  127. package/features/contentEntry/RepublishEntry/events.js.map +1 -1
  128. package/features/contentEntry/RestoreEntryFromBin/abstractions.d.ts +1 -0
  129. package/features/contentEntry/RestoreEntryFromBin/abstractions.js +1 -0
  130. package/features/contentEntry/RestoreEntryFromBin/abstractions.js.map +1 -1
  131. package/features/contentEntry/RestoreEntryFromBin/events.d.ts +2 -0
  132. package/features/contentEntry/RestoreEntryFromBin/events.js +4 -0
  133. package/features/contentEntry/RestoreEntryFromBin/events.js.map +1 -1
  134. package/features/contentEntry/UnpublishEntry/abstractions.d.ts +1 -0
  135. package/features/contentEntry/UnpublishEntry/abstractions.js +1 -0
  136. package/features/contentEntry/UnpublishEntry/abstractions.js.map +1 -1
  137. package/features/contentEntry/UnpublishEntry/events.d.ts +2 -0
  138. package/features/contentEntry/UnpublishEntry/events.js +4 -0
  139. package/features/contentEntry/UnpublishEntry/events.js.map +1 -1
  140. package/features/contentEntry/UpdateEntry/abstractions.d.ts +1 -0
  141. package/features/contentEntry/UpdateEntry/abstractions.js +1 -0
  142. package/features/contentEntry/UpdateEntry/abstractions.js.map +1 -1
  143. package/features/contentEntry/UpdateEntry/events.d.ts +2 -0
  144. package/features/contentEntry/UpdateEntry/events.js +4 -0
  145. package/features/contentEntry/UpdateEntry/events.js.map +1 -1
  146. package/features/contentEntry/UpdateSingletonEntry/abstractions.d.ts +1 -0
  147. package/features/contentEntry/UpdateSingletonEntry/abstractions.js +1 -0
  148. package/features/contentEntry/UpdateSingletonEntry/abstractions.js.map +1 -1
  149. package/features/contentEntry/ValidateEntry/abstractions.d.ts +1 -0
  150. package/features/contentEntry/ValidateEntry/abstractions.js +1 -0
  151. package/features/contentEntry/ValidateEntry/abstractions.js.map +1 -1
  152. package/features/contentModel/CreateModel/abstractions.d.ts +1 -0
  153. package/features/contentModel/CreateModel/abstractions.js +1 -0
  154. package/features/contentModel/CreateModel/abstractions.js.map +1 -1
  155. package/features/contentModel/CreateModel/events.d.ts +2 -0
  156. package/features/contentModel/CreateModel/events.js +4 -0
  157. package/features/contentModel/CreateModel/events.js.map +1 -1
  158. package/features/contentModel/CreateModelFrom/abstractions.d.ts +1 -0
  159. package/features/contentModel/CreateModelFrom/abstractions.js +1 -0
  160. package/features/contentModel/CreateModelFrom/abstractions.js.map +1 -1
  161. package/features/contentModel/CreateModelFrom/events.d.ts +2 -0
  162. package/features/contentModel/CreateModelFrom/events.js +4 -0
  163. package/features/contentModel/CreateModelFrom/events.js.map +1 -1
  164. package/features/contentModel/DeleteModel/abstractions.d.ts +1 -0
  165. package/features/contentModel/DeleteModel/abstractions.js +1 -0
  166. package/features/contentModel/DeleteModel/abstractions.js.map +1 -1
  167. package/features/contentModel/DeleteModel/events.d.ts +2 -0
  168. package/features/contentModel/DeleteModel/events.js +4 -0
  169. package/features/contentModel/DeleteModel/events.js.map +1 -1
  170. package/features/contentModel/GetModel/abstractions.d.ts +1 -0
  171. package/features/contentModel/GetModel/abstractions.js +1 -0
  172. package/features/contentModel/GetModel/abstractions.js.map +1 -1
  173. package/features/contentModel/ListModels/abstractions.d.ts +1 -0
  174. package/features/contentModel/ListModels/abstractions.js +1 -0
  175. package/features/contentModel/ListModels/abstractions.js.map +1 -1
  176. package/features/contentModel/UpdateModel/abstractions.d.ts +1 -0
  177. package/features/contentModel/UpdateModel/abstractions.js +1 -0
  178. package/features/contentModel/UpdateModel/abstractions.js.map +1 -1
  179. package/features/contentModel/UpdateModel/events.d.ts +2 -0
  180. package/features/contentModel/UpdateModel/events.js +4 -0
  181. package/features/contentModel/UpdateModel/events.js.map +1 -1
  182. package/features/contentModelGroup/CreateGroup/abstractions.d.ts +1 -0
  183. package/features/contentModelGroup/CreateGroup/abstractions.js +1 -0
  184. package/features/contentModelGroup/CreateGroup/abstractions.js.map +1 -1
  185. package/features/contentModelGroup/CreateGroup/events.d.ts +2 -0
  186. package/features/contentModelGroup/CreateGroup/events.js +4 -0
  187. package/features/contentModelGroup/CreateGroup/events.js.map +1 -1
  188. package/features/contentModelGroup/DeleteGroup/abstractions.d.ts +1 -0
  189. package/features/contentModelGroup/DeleteGroup/abstractions.js +1 -0
  190. package/features/contentModelGroup/DeleteGroup/abstractions.js.map +1 -1
  191. package/features/contentModelGroup/DeleteGroup/events.d.ts +2 -0
  192. package/features/contentModelGroup/DeleteGroup/events.js +4 -0
  193. package/features/contentModelGroup/DeleteGroup/events.js.map +1 -1
  194. package/features/contentModelGroup/GetGroup/abstractions.d.ts +1 -0
  195. package/features/contentModelGroup/GetGroup/abstractions.js +1 -0
  196. package/features/contentModelGroup/GetGroup/abstractions.js.map +1 -1
  197. package/features/contentModelGroup/ListGroups/abstractions.d.ts +1 -0
  198. package/features/contentModelGroup/ListGroups/abstractions.js +1 -0
  199. package/features/contentModelGroup/ListGroups/abstractions.js.map +1 -1
  200. package/features/contentModelGroup/UpdateGroup/abstractions.d.ts +1 -0
  201. package/features/contentModelGroup/UpdateGroup/abstractions.js +1 -0
  202. package/features/contentModelGroup/UpdateGroup/abstractions.js.map +1 -1
  203. package/features/contentModelGroup/UpdateGroup/events.d.ts +2 -0
  204. package/features/contentModelGroup/UpdateGroup/events.js +4 -0
  205. package/features/contentModelGroup/UpdateGroup/events.js.map +1 -1
  206. package/features/contentModelGroup/shared/abstractions.d.ts +1 -0
  207. package/features/contentModelGroup/shared/abstractions.js +1 -0
  208. package/features/contentModelGroup/shared/abstractions.js.map +1 -1
  209. package/features/modelBuilder/abstractions.d.ts +8 -4
  210. package/features/modelBuilder/abstractions.js +5 -2
  211. package/features/modelBuilder/abstractions.js.map +1 -1
  212. package/features/modelBuilder/fields/BooleanFieldType.d.ts +6 -4
  213. package/features/modelBuilder/fields/BooleanFieldType.js +2 -2
  214. package/features/modelBuilder/fields/BooleanFieldType.js.map +1 -1
  215. package/features/modelBuilder/fields/DataFieldBuilder.d.ts +6 -14
  216. package/features/modelBuilder/fields/DataFieldBuilder.js +1 -9
  217. package/features/modelBuilder/fields/DataFieldBuilder.js.map +1 -1
  218. package/features/modelBuilder/fields/DateTimeFieldType.d.ts +3 -3
  219. package/features/modelBuilder/fields/DateTimeFieldType.js +2 -2
  220. package/features/modelBuilder/fields/DateTimeFieldType.js.map +1 -1
  221. package/features/modelBuilder/fields/DynamicZoneFieldType.d.ts +2 -2
  222. package/features/modelBuilder/fields/DynamicZoneFieldType.js +2 -2
  223. package/features/modelBuilder/fields/DynamicZoneFieldType.js.map +1 -1
  224. package/features/modelBuilder/fields/FieldBuilder.d.ts +2 -2
  225. package/features/modelBuilder/fields/FieldBuilder.js +1 -1
  226. package/features/modelBuilder/fields/FieldBuilder.js.map +1 -1
  227. package/features/modelBuilder/fields/FieldBuilderRegistry.d.ts +3 -3
  228. package/features/modelBuilder/fields/FileFieldType.d.ts +3 -3
  229. package/features/modelBuilder/fields/FileFieldType.js +2 -2
  230. package/features/modelBuilder/fields/FileFieldType.js.map +1 -1
  231. package/features/modelBuilder/fields/JsonFieldType.d.ts +2 -2
  232. package/features/modelBuilder/fields/JsonFieldType.js +2 -2
  233. package/features/modelBuilder/fields/JsonFieldType.js.map +1 -1
  234. package/features/modelBuilder/fields/LongTextFieldType.d.ts +3 -4
  235. package/features/modelBuilder/fields/LongTextFieldType.js +2 -2
  236. package/features/modelBuilder/fields/LongTextFieldType.js.map +1 -1
  237. package/features/modelBuilder/fields/NumberFieldType.d.ts +3 -3
  238. package/features/modelBuilder/fields/NumberFieldType.js +2 -2
  239. package/features/modelBuilder/fields/NumberFieldType.js.map +1 -1
  240. package/features/modelBuilder/fields/ObjectFieldType.d.ts +3 -3
  241. package/features/modelBuilder/fields/ObjectFieldType.js +2 -2
  242. package/features/modelBuilder/fields/ObjectFieldType.js.map +1 -1
  243. package/features/modelBuilder/fields/RefFieldType.d.ts +3 -3
  244. package/features/modelBuilder/fields/RefFieldType.js +2 -2
  245. package/features/modelBuilder/fields/RefFieldType.js.map +1 -1
  246. package/features/modelBuilder/fields/RichTextFieldType.d.ts +2 -2
  247. package/features/modelBuilder/fields/RichTextFieldType.js +2 -2
  248. package/features/modelBuilder/fields/RichTextFieldType.js.map +1 -1
  249. package/features/modelBuilder/fields/SearchableJsonFieldType.d.ts +2 -2
  250. package/features/modelBuilder/fields/SearchableJsonFieldType.js +2 -2
  251. package/features/modelBuilder/fields/SearchableJsonFieldType.js.map +1 -1
  252. package/features/modelBuilder/fields/TextFieldType.d.ts +3 -3
  253. package/features/modelBuilder/fields/TextFieldType.js +2 -2
  254. package/features/modelBuilder/fields/TextFieldType.js.map +1 -1
  255. package/features/modelBuilder/fields/abstractions.d.ts +4 -1
  256. package/features/modelBuilder/fields/abstractions.js +1 -1
  257. package/features/modelBuilder/fields/abstractions.js.map +1 -1
  258. package/features/modelBuilder/fields/{validators.d.ts → fieldTypeValidator.d.ts} +22 -0
  259. package/features/modelBuilder/fields/fieldTypeValidator.js +31 -0
  260. package/features/modelBuilder/fields/fieldTypeValidator.js.map +1 -0
  261. package/features/sortMapper/abstractions.d.ts +1 -0
  262. package/features/sortMapper/abstractions.js +1 -0
  263. package/features/sortMapper/abstractions.js.map +1 -1
  264. package/features/whereMapper/abstractions.d.ts +1 -0
  265. package/features/whereMapper/abstractions.js +1 -0
  266. package/features/whereMapper/abstractions.js.map +1 -1
  267. package/graphql/schema/cms/listEntriesResolver.d.ts +1 -0
  268. package/graphql/schema/cms/listEntriesResolver.js +5 -1
  269. package/graphql/schema/cms/listEntriesResolver.js.map +1 -1
  270. package/graphql/schema/cms/typeDefs/query.js +1 -0
  271. package/graphql/schema/cms/typeDefs/query.js.map +1 -1
  272. package/graphql/schema/createSingularSDL.js +1 -0
  273. package/graphql/schema/createSingularSDL.js.map +1 -1
  274. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js +4 -1
  275. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js.map +1 -1
  276. package/index.d.ts +2 -1
  277. package/index.js +2 -1
  278. package/index.js.map +1 -1
  279. package/package.json +25 -25
  280. package/types/context.d.ts +0 -5
  281. package/types/context.js.map +1 -1
  282. package/features/modelBuilder/fields/validators.js +0 -3
  283. package/features/modelBuilder/fields/validators.js.map +0 -1
  284. /package/{utils/contentEntryTraverser → features/contentEntry/ContentEntryTraverser}/ContentEntryTraverser.js +0 -0
  285. /package/{utils/contentEntryTraverser → features/contentEntry/ContentEntryTraverser}/ContentEntryTraverser.js.map +0 -0
@@ -14,6 +14,7 @@ export interface IGetGroupUseCaseErrors {
14
14
  repository: RepositoryError;
15
15
  }
16
16
  type UseCaseError = IGetGroupUseCaseErrors[keyof IGetGroupUseCaseErrors];
17
+ /** Retrieve a content model group. */
17
18
  export declare const GetGroupUseCase: import("@webiny/di").Abstraction<IGetGroupUseCase>;
18
19
  export declare namespace GetGroupUseCase {
19
20
  type Interface = IGetGroupUseCase;
@@ -4,6 +4,7 @@ import { createAbstraction } from "@webiny/feature/api";
4
4
  * GetGroup Use Case
5
5
  */
6
6
 
7
+ /** Retrieve a content model group. */
7
8
  export const GetGroupUseCase = createAbstraction("GetGroupUseCase");
8
9
 
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetGroupUseCase","GetGroupRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { CmsGroup } from \"~/types/index.js\";\nimport type { GroupPersistenceError } from \"~/domain/contentModelGroup/errors.js\";\nimport {\n GroupNotAuthorizedError,\n type GroupNotFoundError\n} from \"~/domain/contentModelGroup/errors.js\";\n\n/**\n * GetGroup Use Case\n */\nexport interface IGetGroupUseCase {\n execute(groupId: string): Promise<Result<CmsGroup, UseCaseError>>;\n}\n\nexport interface IGetGroupUseCaseErrors {\n notFound: GroupNotFoundError;\n notAuthorized: GroupNotAuthorizedError;\n repository: RepositoryError;\n}\n\ntype UseCaseError = IGetGroupUseCaseErrors[keyof IGetGroupUseCaseErrors];\n\nexport const GetGroupUseCase = createAbstraction<IGetGroupUseCase>(\"GetGroupUseCase\");\n\nexport namespace GetGroupUseCase {\n export type Interface = IGetGroupUseCase;\n\n export type Error = UseCaseError;\n export type Return = Promise<Result<CmsGroup, UseCaseError>>;\n}\n\n/**\n * GetGroupRepository - Fetches a single group by ID from cache.\n */\nexport interface IGetGroupRepository {\n execute(groupId: string): Promise<Result<CmsGroup, RepositoryError>>;\n}\n\nexport interface IGetGroupRepositoryErrors {\n notFound: GroupNotFoundError;\n storage: GroupPersistenceError;\n}\n\ntype RepositoryError = IGetGroupRepositoryErrors[keyof IGetGroupRepositoryErrors];\n\nexport const GetGroupRepository = createAbstraction<IGetGroupRepository>(\"GetGroupRepository\");\n\nexport namespace GetGroupRepository {\n export type Interface = IGetGroupRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAQ/D;AACA;AACA;;AAaA,OAAO,MAAMC,eAAe,GAAGD,iBAAiB,CAAmB,iBAAiB,CAAC;;AASrF;AACA;AACA;;AAYA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,oBAAoB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","GetGroupUseCase","GetGroupRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { CmsGroup } from \"~/types/index.js\";\nimport type { GroupPersistenceError } from \"~/domain/contentModelGroup/errors.js\";\nimport {\n GroupNotAuthorizedError,\n type GroupNotFoundError\n} from \"~/domain/contentModelGroup/errors.js\";\n\n/**\n * GetGroup Use Case\n */\nexport interface IGetGroupUseCase {\n execute(groupId: string): Promise<Result<CmsGroup, UseCaseError>>;\n}\n\nexport interface IGetGroupUseCaseErrors {\n notFound: GroupNotFoundError;\n notAuthorized: GroupNotAuthorizedError;\n repository: RepositoryError;\n}\n\ntype UseCaseError = IGetGroupUseCaseErrors[keyof IGetGroupUseCaseErrors];\n\n/** Retrieve a content model group. */\nexport const GetGroupUseCase = createAbstraction<IGetGroupUseCase>(\"GetGroupUseCase\");\n\nexport namespace GetGroupUseCase {\n export type Interface = IGetGroupUseCase;\n\n export type Error = UseCaseError;\n export type Return = Promise<Result<CmsGroup, UseCaseError>>;\n}\n\n/**\n * GetGroupRepository - Fetches a single group by ID from cache.\n */\nexport interface IGetGroupRepository {\n execute(groupId: string): Promise<Result<CmsGroup, RepositoryError>>;\n}\n\nexport interface IGetGroupRepositoryErrors {\n notFound: GroupNotFoundError;\n storage: GroupPersistenceError;\n}\n\ntype RepositoryError = IGetGroupRepositoryErrors[keyof IGetGroupRepositoryErrors];\n\nexport const GetGroupRepository = createAbstraction<IGetGroupRepository>(\"GetGroupRepository\");\n\nexport namespace GetGroupRepository {\n export type Interface = IGetGroupRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAQ/D;AACA;AACA;;AAaA;AACA,OAAO,MAAMC,eAAe,GAAGD,iBAAiB,CAAmB,iBAAiB,CAAC;;AASrF;AACA;AACA;;AAYA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,oBAAoB,CAAC","ignoreList":[]}
@@ -12,6 +12,7 @@ export interface IListGroupsUseCaseErrors {
12
12
  repository: RepositoryError;
13
13
  }
14
14
  type UseCaseError = IListGroupsUseCaseErrors[keyof IListGroupsUseCaseErrors];
15
+ /** List all content model groups. */
15
16
  export declare const ListGroupsUseCase: import("@webiny/di").Abstraction<IListGroupsUseCase>;
16
17
  export declare namespace ListGroupsUseCase {
17
18
  type Interface = IListGroupsUseCase;
@@ -4,6 +4,7 @@ import { createAbstraction } from "@webiny/feature/api";
4
4
  * ListGroups Use Case
5
5
  */
6
6
 
7
+ /** List all content model groups. */
7
8
  export const ListGroupsUseCase = createAbstraction("ListGroupsUseCase");
8
9
 
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListGroupsUseCase","ListGroupsRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { CmsGroup } from \"~/types/index.js\";\nimport {\n GroupNotAuthorizedError,\n type GroupPersistenceError\n} from \"~/domain/contentModelGroup/errors.js\";\n\n/**\n * ListGroups Use Case\n */\nexport interface IListGroupsUseCase {\n execute(): Promise<Result<CmsGroup[], UseCaseError>>;\n}\n\nexport interface IListGroupsUseCaseErrors {\n notAuthorized: GroupNotAuthorizedError;\n repository: RepositoryError;\n}\n\ntype UseCaseError = IListGroupsUseCaseErrors[keyof IListGroupsUseCaseErrors];\n\nexport const ListGroupsUseCase = createAbstraction<IListGroupsUseCase>(\"ListGroupsUseCase\");\n\nexport namespace ListGroupsUseCase {\n export type Interface = IListGroupsUseCase;\n\n export type Error = UseCaseError;\n export type Return = Promise<Result<CmsGroup[], UseCaseError>>;\n}\n\n/**\n * ListGroupsRepository - Fetches all groups from cache.\n */\nexport interface IListGroupsRepository {\n execute(): Promise<Result<CmsGroup[], RepositoryError>>;\n}\n\nexport interface IListGroupsRepositoryErrors {\n storage: GroupPersistenceError;\n}\n\ntype RepositoryError = IListGroupsRepositoryErrors[keyof IListGroupsRepositoryErrors];\n\nexport const ListGroupsRepository =\n createAbstraction<IListGroupsRepository>(\"ListGroupsRepository\");\n\nexport namespace ListGroupsRepository {\n export type Interface = IListGroupsRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAO/D;AACA;AACA;;AAYA,OAAO,MAAMC,iBAAiB,GAAGD,iBAAiB,CAAqB,mBAAmB,CAAC;;AAS3F;AACA;AACA;;AAWA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,sBAAsB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","ListGroupsUseCase","ListGroupsRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { CmsGroup } from \"~/types/index.js\";\nimport {\n GroupNotAuthorizedError,\n type GroupPersistenceError\n} from \"~/domain/contentModelGroup/errors.js\";\n\n/**\n * ListGroups Use Case\n */\nexport interface IListGroupsUseCase {\n execute(): Promise<Result<CmsGroup[], UseCaseError>>;\n}\n\nexport interface IListGroupsUseCaseErrors {\n notAuthorized: GroupNotAuthorizedError;\n repository: RepositoryError;\n}\n\ntype UseCaseError = IListGroupsUseCaseErrors[keyof IListGroupsUseCaseErrors];\n\n/** List all content model groups. */\nexport const ListGroupsUseCase = createAbstraction<IListGroupsUseCase>(\"ListGroupsUseCase\");\n\nexport namespace ListGroupsUseCase {\n export type Interface = IListGroupsUseCase;\n\n export type Error = UseCaseError;\n export type Return = Promise<Result<CmsGroup[], UseCaseError>>;\n}\n\n/**\n * ListGroupsRepository - Fetches all groups from cache.\n */\nexport interface IListGroupsRepository {\n execute(): Promise<Result<CmsGroup[], RepositoryError>>;\n}\n\nexport interface IListGroupsRepositoryErrors {\n storage: GroupPersistenceError;\n}\n\ntype RepositoryError = IListGroupsRepositoryErrors[keyof IListGroupsRepositoryErrors];\n\nexport const ListGroupsRepository =\n createAbstraction<IListGroupsRepository>(\"ListGroupsRepository\");\n\nexport namespace ListGroupsRepository {\n export type Interface = IListGroupsRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAO/D;AACA;AACA;;AAYA;AACA,OAAO,MAAMC,iBAAiB,GAAGD,iBAAiB,CAAqB,mBAAmB,CAAC;;AAS3F;AACA;AACA;;AAWA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,sBAAsB,CAAC","ignoreList":[]}
@@ -15,6 +15,7 @@ export interface IUpdateGroupUseCaseErrors {
15
15
  repository: RepositoryError;
16
16
  }
17
17
  type UseCaseError = IUpdateGroupUseCaseErrors[keyof IUpdateGroupUseCaseErrors];
18
+ /** Update a content model group. */
18
19
  export declare const UpdateGroupUseCase: import("@webiny/di").Abstraction<IUpdateGroupUseCase>;
19
20
  export declare namespace UpdateGroupUseCase {
20
21
  type Interface = IUpdateGroupUseCase;
@@ -4,6 +4,7 @@ import { createAbstraction } from "@webiny/feature/api";
4
4
  * UpdateGroup Use Case
5
5
  */
6
6
 
7
+ /** Update a content model group. */
7
8
  export const UpdateGroupUseCase = createAbstraction("UpdateGroupUseCase");
8
9
 
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","UpdateGroupUseCase","UpdateGroupRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { CmsGroup, CmsGroupUpdateInput } from \"~/types/index.js\";\nimport type {\n GroupCannotUpdateCodeDefinedError,\n GroupPersistenceError,\n GroupValidationError\n} from \"~/domain/contentModelGroup/errors.js\";\nimport {\n GroupNotAuthorizedError,\n type GroupNotFoundError\n} from \"~/domain/contentModelGroup/errors.js\";\n\n/**\n * UpdateGroup Use Case\n */\nexport interface IUpdateGroupUseCase {\n execute(groupId: string, input: CmsGroupUpdateInput): Promise<Result<CmsGroup, UseCaseError>>;\n}\n\nexport interface IUpdateGroupUseCaseErrors {\n notFound: GroupNotFoundError;\n notAuthorized: GroupNotAuthorizedError;\n validation: GroupValidationError;\n repository: RepositoryError;\n}\n\ntype UseCaseError = IUpdateGroupUseCaseErrors[keyof IUpdateGroupUseCaseErrors];\n\nexport const UpdateGroupUseCase = createAbstraction<IUpdateGroupUseCase>(\"UpdateGroupUseCase\");\n\nexport namespace UpdateGroupUseCase {\n export type Interface = IUpdateGroupUseCase;\n export type Input = CmsGroupUpdateInput;\n\n export type Error = UseCaseError;\n export type Return = Promise<Result<CmsGroup, UseCaseError>>;\n}\n\n/**\n * UpdateGroupRepository - Persists group updates to storage.\n */\nexport interface IUpdateGroupRepository {\n execute(group: CmsGroup): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IUpdateGroupRepositoryErrors {\n cannotUpdate: GroupCannotUpdateCodeDefinedError;\n storage: GroupPersistenceError;\n}\n\ntype RepositoryError = IUpdateGroupRepositoryErrors[keyof IUpdateGroupRepositoryErrors];\n\nexport const UpdateGroupRepository =\n createAbstraction<IUpdateGroupRepository>(\"UpdateGroupRepository\");\n\nexport namespace UpdateGroupRepository {\n export type Interface = IUpdateGroupRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAY/D;AACA;AACA;;AAcA,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAAsB,oBAAoB,CAAC;;AAU9F;AACA;AACA;;AAYA,OAAO,MAAME,qBAAqB,GAC9BF,iBAAiB,CAAyB,uBAAuB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","UpdateGroupUseCase","UpdateGroupRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { CmsGroup, CmsGroupUpdateInput } from \"~/types/index.js\";\nimport type {\n GroupCannotUpdateCodeDefinedError,\n GroupPersistenceError,\n GroupValidationError\n} from \"~/domain/contentModelGroup/errors.js\";\nimport {\n GroupNotAuthorizedError,\n type GroupNotFoundError\n} from \"~/domain/contentModelGroup/errors.js\";\n\n/**\n * UpdateGroup Use Case\n */\nexport interface IUpdateGroupUseCase {\n execute(groupId: string, input: CmsGroupUpdateInput): Promise<Result<CmsGroup, UseCaseError>>;\n}\n\nexport interface IUpdateGroupUseCaseErrors {\n notFound: GroupNotFoundError;\n notAuthorized: GroupNotAuthorizedError;\n validation: GroupValidationError;\n repository: RepositoryError;\n}\n\ntype UseCaseError = IUpdateGroupUseCaseErrors[keyof IUpdateGroupUseCaseErrors];\n\n/** Update a content model group. */\nexport const UpdateGroupUseCase = createAbstraction<IUpdateGroupUseCase>(\"UpdateGroupUseCase\");\n\nexport namespace UpdateGroupUseCase {\n export type Interface = IUpdateGroupUseCase;\n export type Input = CmsGroupUpdateInput;\n\n export type Error = UseCaseError;\n export type Return = Promise<Result<CmsGroup, UseCaseError>>;\n}\n\n/**\n * UpdateGroupRepository - Persists group updates to storage.\n */\nexport interface IUpdateGroupRepository {\n execute(group: CmsGroup): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IUpdateGroupRepositoryErrors {\n cannotUpdate: GroupCannotUpdateCodeDefinedError;\n storage: GroupPersistenceError;\n}\n\ntype RepositoryError = IUpdateGroupRepositoryErrors[keyof IUpdateGroupRepositoryErrors];\n\nexport const UpdateGroupRepository =\n createAbstraction<IUpdateGroupRepository>(\"UpdateGroupRepository\");\n\nexport namespace UpdateGroupRepository {\n export type Interface = IUpdateGroupRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAY/D;AACA;AACA;;AAcA;AACA,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAAsB,oBAAoB,CAAC;;AAU9F;AACA;AACA;;AAYA,OAAO,MAAME,qBAAqB,GAC9BF,iBAAiB,CAAyB,uBAAuB,CAAC","ignoreList":[]}
@@ -25,6 +25,7 @@ export declare class GroupBeforeUpdateEvent extends DomainEvent<GroupBeforeUpdat
25
25
  eventType: "Cms/Group/BeforeUpdate";
26
26
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<GroupBeforeUpdateEvent>>;
27
27
  }
28
+ /** Hook into group lifecycle before a group is updated. */
28
29
  export declare const GroupBeforeUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<GroupBeforeUpdateEvent>>;
29
30
  export declare namespace GroupBeforeUpdateEventHandler {
30
31
  type Interface = IEventHandler<GroupBeforeUpdateEvent>;
@@ -37,6 +38,7 @@ export declare class GroupAfterUpdateEvent extends DomainEvent<GroupAfterUpdateE
37
38
  eventType: "Cms/Group/AfterUpdate";
38
39
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<GroupAfterUpdateEvent>>;
39
40
  }
41
+ /** Hook into group lifecycle after a group is updated. */
40
42
  export declare const GroupAfterUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<GroupAfterUpdateEvent>>;
41
43
  export declare namespace GroupAfterUpdateEventHandler {
42
44
  type Interface = IEventHandler<GroupAfterUpdateEvent>;
@@ -14,6 +14,8 @@ export class GroupBeforeUpdateEvent extends DomainEvent {
14
14
  return GroupBeforeUpdateEventHandler;
15
15
  }
16
16
  }
17
+
18
+ /** Hook into group lifecycle before a group is updated. */
17
19
  export const GroupBeforeUpdateEventHandler = createAbstraction("GroupBeforeUpdateEventHandler");
18
20
  /**
19
21
  * GroupAfterUpdateEvent - Published after updating a group
@@ -24,6 +26,8 @@ export class GroupAfterUpdateEvent extends DomainEvent {
24
26
  return GroupAfterUpdateEventHandler;
25
27
  }
26
28
  }
29
+
30
+ /** Hook into group lifecycle after a group is updated. */
27
31
  export const GroupAfterUpdateEventHandler = createAbstraction("GroupAfterUpdateEventHandler");
28
32
  /**
29
33
  * GroupUpdateErrorEvent - Published when update fails
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","GroupBeforeUpdateEvent","eventType","getHandlerAbstraction","GroupBeforeUpdateEventHandler","GroupAfterUpdateEvent","GroupAfterUpdateEventHandler","GroupUpdateErrorEvent","GroupUpdateErrorEventHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { CmsGroup, CmsGroupUpdateInput } from \"~/types/index.js\";\n\n/**\n * Event payloads\n */\nexport interface GroupBeforeUpdateEventPayload {\n original: CmsGroup;\n group: CmsGroup;\n}\n\nexport interface GroupAfterUpdateEventPayload {\n original: CmsGroup;\n group: CmsGroup;\n}\n\nexport interface GroupUpdateErrorEventPayload {\n input: CmsGroupUpdateInput;\n original: CmsGroup;\n group: CmsGroup;\n error: Error;\n}\n\n/**\n * GroupBeforeUpdateEvent - Published before updating a group\n */\nexport class GroupBeforeUpdateEvent extends DomainEvent<GroupBeforeUpdateEventPayload> {\n eventType = \"Cms/Group/BeforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return GroupBeforeUpdateEventHandler;\n }\n}\n\nexport const GroupBeforeUpdateEventHandler = createAbstraction<\n IEventHandler<GroupBeforeUpdateEvent>\n>(\"GroupBeforeUpdateEventHandler\");\n\nexport namespace GroupBeforeUpdateEventHandler {\n export type Interface = IEventHandler<GroupBeforeUpdateEvent>;\n export type Event = GroupBeforeUpdateEvent;\n}\n\n/**\n * GroupAfterUpdateEvent - Published after updating a group\n */\nexport class GroupAfterUpdateEvent extends DomainEvent<GroupAfterUpdateEventPayload> {\n eventType = \"Cms/Group/AfterUpdate\" as const;\n\n getHandlerAbstraction() {\n return GroupAfterUpdateEventHandler;\n }\n}\n\nexport const GroupAfterUpdateEventHandler = createAbstraction<IEventHandler<GroupAfterUpdateEvent>>(\n \"GroupAfterUpdateEventHandler\"\n);\n\nexport namespace GroupAfterUpdateEventHandler {\n export type Interface = IEventHandler<GroupAfterUpdateEvent>;\n export type Event = GroupAfterUpdateEvent;\n}\n\n/**\n * GroupUpdateErrorEvent - Published when update fails\n */\nexport class GroupUpdateErrorEvent extends DomainEvent<GroupUpdateErrorEventPayload> {\n eventType = \"Cms/Group/UpdateError\" as const;\n\n getHandlerAbstraction() {\n return GroupUpdateErrorEventHandler;\n }\n}\n\nexport const GroupUpdateErrorEventHandler = createAbstraction<IEventHandler<GroupUpdateErrorEvent>>(\n \"GroupUpdateErrorEventHandler\"\n);\n\nexport namespace GroupUpdateErrorEventHandler {\n export type Interface = IEventHandler<GroupUpdateErrorEvent>;\n export type Event = GroupUpdateErrorEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAEvD,SAASC,WAAW,QAAQ,0CAA0C;;AAGtE;AACA;AACA;;AAkBA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,SAASD,WAAW,CAAgC;EACnFE,SAAS,GAAG,wBAAwB;EAEpCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,6BAA6B;EACxC;AACJ;AAEA,OAAO,MAAMA,6BAA6B,GAAGL,iBAAiB,CAE5D,+BAA+B,CAAC;AAOlC;AACA;AACA;AACA,OAAO,MAAMM,qBAAqB,SAASL,WAAW,CAA+B;EACjFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,4BAA4B;EACvC;AACJ;AAEA,OAAO,MAAMA,4BAA4B,GAAGP,iBAAiB,CACzD,8BACJ,CAAC;AAOD;AACA;AACA;AACA,OAAO,MAAMQ,qBAAqB,SAASP,WAAW,CAA+B;EACjFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOK,4BAA4B;EACvC;AACJ;AAEA,OAAO,MAAMA,4BAA4B,GAAGT,iBAAiB,CACzD,8BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","DomainEvent","GroupBeforeUpdateEvent","eventType","getHandlerAbstraction","GroupBeforeUpdateEventHandler","GroupAfterUpdateEvent","GroupAfterUpdateEventHandler","GroupUpdateErrorEvent","GroupUpdateErrorEventHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { CmsGroup, CmsGroupUpdateInput } from \"~/types/index.js\";\n\n/**\n * Event payloads\n */\nexport interface GroupBeforeUpdateEventPayload {\n original: CmsGroup;\n group: CmsGroup;\n}\n\nexport interface GroupAfterUpdateEventPayload {\n original: CmsGroup;\n group: CmsGroup;\n}\n\nexport interface GroupUpdateErrorEventPayload {\n input: CmsGroupUpdateInput;\n original: CmsGroup;\n group: CmsGroup;\n error: Error;\n}\n\n/**\n * GroupBeforeUpdateEvent - Published before updating a group\n */\nexport class GroupBeforeUpdateEvent extends DomainEvent<GroupBeforeUpdateEventPayload> {\n eventType = \"Cms/Group/BeforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return GroupBeforeUpdateEventHandler;\n }\n}\n\n/** Hook into group lifecycle before a group is updated. */\nexport const GroupBeforeUpdateEventHandler = createAbstraction<\n IEventHandler<GroupBeforeUpdateEvent>\n>(\"GroupBeforeUpdateEventHandler\");\n\nexport namespace GroupBeforeUpdateEventHandler {\n export type Interface = IEventHandler<GroupBeforeUpdateEvent>;\n export type Event = GroupBeforeUpdateEvent;\n}\n\n/**\n * GroupAfterUpdateEvent - Published after updating a group\n */\nexport class GroupAfterUpdateEvent extends DomainEvent<GroupAfterUpdateEventPayload> {\n eventType = \"Cms/Group/AfterUpdate\" as const;\n\n getHandlerAbstraction() {\n return GroupAfterUpdateEventHandler;\n }\n}\n\n/** Hook into group lifecycle after a group is updated. */\nexport const GroupAfterUpdateEventHandler = createAbstraction<IEventHandler<GroupAfterUpdateEvent>>(\n \"GroupAfterUpdateEventHandler\"\n);\n\nexport namespace GroupAfterUpdateEventHandler {\n export type Interface = IEventHandler<GroupAfterUpdateEvent>;\n export type Event = GroupAfterUpdateEvent;\n}\n\n/**\n * GroupUpdateErrorEvent - Published when update fails\n */\nexport class GroupUpdateErrorEvent extends DomainEvent<GroupUpdateErrorEventPayload> {\n eventType = \"Cms/Group/UpdateError\" as const;\n\n getHandlerAbstraction() {\n return GroupUpdateErrorEventHandler;\n }\n}\n\nexport const GroupUpdateErrorEventHandler = createAbstraction<IEventHandler<GroupUpdateErrorEvent>>(\n \"GroupUpdateErrorEventHandler\"\n);\n\nexport namespace GroupUpdateErrorEventHandler {\n export type Interface = IEventHandler<GroupUpdateErrorEvent>;\n export type Event = GroupUpdateErrorEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAEvD,SAASC,WAAW,QAAQ,0CAA0C;;AAGtE;AACA;AACA;;AAkBA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,SAASD,WAAW,CAAgC;EACnFE,SAAS,GAAG,wBAAwB;EAEpCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,6BAA6B;EACxC;AACJ;;AAEA;AACA,OAAO,MAAMA,6BAA6B,GAAGL,iBAAiB,CAE5D,+BAA+B,CAAC;AAOlC;AACA;AACA;AACA,OAAO,MAAMM,qBAAqB,SAASL,WAAW,CAA+B;EACjFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,4BAA4B;EACvC;AACJ;;AAEA;AACA,OAAO,MAAMA,4BAA4B,GAAGP,iBAAiB,CACzD,8BACJ,CAAC;AAOD;AACA;AACA;AACA,OAAO,MAAMQ,qBAAqB,SAASP,WAAW,CAA+B;EACjFE,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOK,4BAA4B;EACvC;AACJ;AAEA,OAAO,MAAMA,4BAA4B,GAAGT,iBAAiB,CACzD,8BACJ,CAAC","ignoreList":[]}
@@ -22,6 +22,7 @@ interface IModelGroup {
22
22
  export interface IModelGroupFactory {
23
23
  execute(): Promise<IModelGroup[]>;
24
24
  }
25
+ /** Provide code-defined content model groups. */
25
26
  export declare const ModelGroupFactory: import("@webiny/di").Abstraction<IModelGroupFactory>;
26
27
  export declare namespace ModelGroupFactory {
27
28
  type Interface = IModelGroupFactory;
@@ -6,6 +6,7 @@ import { createAbstraction } from "@webiny/feature/api";
6
6
 
7
7
  export const PluginGroupsProvider = createAbstraction("PluginGroupsProvider");
8
8
  export const GroupCache = createAbstraction("GroupCache");
9
+ /** Provide code-defined content model groups. */
9
10
  export const ModelGroupFactory = createAbstraction("ModelGroupFactory");
10
11
 
11
12
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","PluginGroupsProvider","GroupCache","ModelGroupFactory"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsGroup, CmsIcon } from \"~/types/index.js\";\nimport type { ICache } from \"~/utils/caching/types.js\";\n\n/**\n * PluginGroupsProvider provides access to plugin-defined (code) groups.\n */\nexport interface IPluginGroupsProvider {\n getGroups(): Promise<CmsGroup[]>;\n}\n\nexport const PluginGroupsProvider =\n createAbstraction<IPluginGroupsProvider>(\"PluginGroupsProvider\");\n\nexport namespace PluginGroupsProvider {\n export type Interface = IPluginGroupsProvider;\n}\n\nexport const GroupCache = createAbstraction<ICache<Promise<CmsGroup[]>>>(\"GroupCache\");\n\nexport namespace GroupCache {\n export type Interface = ICache;\n}\n\ninterface IModelGroup {\n slug: string;\n name: string;\n icon: CmsIcon;\n}\n\nexport interface IModelGroupFactory {\n execute(): Promise<IModelGroup[]>;\n}\n\nexport const ModelGroupFactory = createAbstraction<IModelGroupFactory>(\"ModelGroupFactory\");\nexport namespace ModelGroupFactory {\n export type Interface = IModelGroupFactory;\n export type Return = Promise<IModelGroup[]>;\n export type Group = IModelGroup;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAIvD;AACA;AACA;;AAKA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC;AAMpE,OAAO,MAAME,UAAU,GAAGF,iBAAiB,CAA8B,YAAY,CAAC;AAgBtF,OAAO,MAAMG,iBAAiB,GAAGH,iBAAiB,CAAqB,mBAAmB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","PluginGroupsProvider","GroupCache","ModelGroupFactory"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsGroup, CmsIcon } from \"~/types/index.js\";\nimport type { ICache } from \"~/utils/caching/types.js\";\n\n/**\n * PluginGroupsProvider provides access to plugin-defined (code) groups.\n */\nexport interface IPluginGroupsProvider {\n getGroups(): Promise<CmsGroup[]>;\n}\n\nexport const PluginGroupsProvider =\n createAbstraction<IPluginGroupsProvider>(\"PluginGroupsProvider\");\n\nexport namespace PluginGroupsProvider {\n export type Interface = IPluginGroupsProvider;\n}\n\nexport const GroupCache = createAbstraction<ICache<Promise<CmsGroup[]>>>(\"GroupCache\");\n\nexport namespace GroupCache {\n export type Interface = ICache;\n}\n\ninterface IModelGroup {\n slug: string;\n name: string;\n icon: CmsIcon;\n}\n\nexport interface IModelGroupFactory {\n execute(): Promise<IModelGroup[]>;\n}\n\n/** Provide code-defined content model groups. */\nexport const ModelGroupFactory = createAbstraction<IModelGroupFactory>(\"ModelGroupFactory\");\nexport namespace ModelGroupFactory {\n export type Interface = IModelGroupFactory;\n export type Return = Promise<IModelGroup[]>;\n export type Group = IModelGroup;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAIvD;AACA;AACA;;AAKA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC;AAMpE,OAAO,MAAME,UAAU,GAAGF,iBAAiB,CAA8B,YAAY,CAAC;AAgBtF;AACA,OAAO,MAAMG,iBAAiB,GAAGH,iBAAiB,CAAqB,mBAAmB,CAAC","ignoreList":[]}
@@ -2,8 +2,7 @@ import type { PrivateModelBuilder } from "./models/PrivateModelBuilder.js";
2
2
  import type { PublicModelBuilder } from "./models/PublicModelBuilder.js";
3
3
  import type { IModelBuilderPrivateInput, IModelBuilderPublicInput } from "./models/ModelBuilder.js";
4
4
  /**
5
- * Field Builder Registry
6
- * Provides access to all registered field types via dynamic methods
5
+ * Augmentable field builder registry. Provides access to all registered field types.
7
6
  */
8
7
  export interface IFieldBuilderRegistry {
9
8
  /**
@@ -13,9 +12,13 @@ export interface IFieldBuilderRegistry {
13
12
  */
14
13
  extend(): this;
15
14
  }
16
- export declare const FieldBuilderRegistry: import("@webiny/di").Abstraction<IFieldBuilderRegistry>;
15
+ /**
16
+ * @internal Do not export this abstraction. We don't want external developers to use it.
17
+ */
18
+ export declare const FieldBuilderRegistry: import("@webiny/di").Abstraction<FieldBuilderRegistry.Interface>;
17
19
  export declare namespace FieldBuilderRegistry {
18
- type Interface = IFieldBuilderRegistry;
20
+ interface Interface extends IFieldBuilderRegistry {
21
+ }
19
22
  }
20
23
  /**
21
24
  * Unified Model abstraction
@@ -28,6 +31,7 @@ export interface IModelBuilder {
28
31
  export interface IModelFactory {
29
32
  execute(builder: IModelBuilder): Promise<PrivateModelBuilder[] | PublicModelBuilder[]>;
30
33
  }
34
+ /** Provide code-defined content models. */
31
35
  export declare const ModelFactory: import("@webiny/di").Abstraction<IModelFactory>;
32
36
  export declare namespace ModelFactory {
33
37
  type Interface = IModelFactory;
@@ -1,10 +1,12 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
2
 
3
3
  /**
4
- * Field Builder Registry
5
- * Provides access to all registered field types via dynamic methods
4
+ * Augmentable field builder registry. Provides access to all registered field types.
6
5
  */
7
6
 
7
+ /**
8
+ * @internal Do not export this abstraction. We don't want external developers to use it.
9
+ */
8
10
  export const FieldBuilderRegistry = createAbstraction("FieldBuilderRegistry");
9
11
 
10
12
  /**
@@ -12,6 +14,7 @@ export const FieldBuilderRegistry = createAbstraction("FieldBuilderRegistry");
12
14
  * External developers implement this to provide both public and private models
13
15
  */
14
16
 
17
+ /** Provide code-defined content models. */
15
18
  export const ModelFactory = createAbstraction("Cms/ModelFactory");
16
19
 
17
20
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","FieldBuilderRegistry","ModelFactory"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { PrivateModelBuilder } from \"./models/PrivateModelBuilder.js\";\nimport type { PublicModelBuilder } from \"./models/PublicModelBuilder.js\";\nimport type { IModelBuilderPrivateInput, IModelBuilderPublicInput } from \"./models/ModelBuilder.js\";\n\n/**\n * Field Builder Registry\n * Provides access to all registered field types via dynamic methods\n */\nexport interface IFieldBuilderRegistry {\n /**\n * Mark the next field creation as an extension.\n * When extending, the registry will create a temporary builder marked with _extendMode,\n * and BaseModelBuilder will merge its operations into the existing field.\n */\n extend(): this;\n\n // Field types will be added via module augmentation by field type implementations\n // Example: text(): ITextFieldBuilder;\n}\n\nexport const FieldBuilderRegistry =\n createAbstraction<IFieldBuilderRegistry>(\"FieldBuilderRegistry\");\n\nexport namespace FieldBuilderRegistry {\n export type Interface = IFieldBuilderRegistry;\n}\n\n/**\n * Unified Model abstraction\n * External developers implement this to provide both public and private models\n */\n\nexport interface IModelBuilder {\n private(input: IModelBuilderPrivateInput): PrivateModelBuilder;\n public(input: IModelBuilderPublicInput): PublicModelBuilder;\n}\n\nexport interface IModelFactory {\n execute(builder: IModelBuilder): Promise<PrivateModelBuilder[] | PublicModelBuilder[]>;\n}\n\nexport const ModelFactory = createAbstraction<IModelFactory>(\"Cms/ModelFactory\");\nexport namespace ModelFactory {\n export type Interface = IModelFactory;\n export type Return = Promise<PrivateModelBuilder[] | PublicModelBuilder[]>;\n export type Builder = IModelBuilder;\n export type FieldBuilder = FieldBuilderRegistry.Interface;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;AACA;AACA;AACA;;AAaA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC;;AAMpE;AACA;AACA;AACA;;AAWA,OAAO,MAAME,YAAY,GAAGF,iBAAiB,CAAgB,kBAAkB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","FieldBuilderRegistry","ModelFactory"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { PrivateModelBuilder } from \"./models/PrivateModelBuilder.js\";\nimport type { PublicModelBuilder } from \"./models/PublicModelBuilder.js\";\nimport type { IModelBuilderPrivateInput, IModelBuilderPublicInput } from \"./models/ModelBuilder.js\";\n\n/**\n * Augmentable field builder registry. Provides access to all registered field types.\n */\nexport interface IFieldBuilderRegistry {\n /**\n * Mark the next field creation as an extension.\n * When extending, the registry will create a temporary builder marked with _extendMode,\n * and BaseModelBuilder will merge its operations into the existing field.\n */\n extend(): this;\n\n // Field types will be added via module augmentation by field type implementations\n // Example: text(): ITextFieldBuilder;\n}\n\n/**\n * @internal Do not export this abstraction. We don't want external developers to use it.\n */\nexport const FieldBuilderRegistry =\n createAbstraction<FieldBuilderRegistry.Interface>(\"FieldBuilderRegistry\");\n\nexport namespace FieldBuilderRegistry {\n export interface Interface extends IFieldBuilderRegistry {}\n}\n\n/**\n * Unified Model abstraction\n * External developers implement this to provide both public and private models\n */\n\nexport interface IModelBuilder {\n private(input: IModelBuilderPrivateInput): PrivateModelBuilder;\n public(input: IModelBuilderPublicInput): PublicModelBuilder;\n}\n\nexport interface IModelFactory {\n execute(builder: IModelBuilder): Promise<PrivateModelBuilder[] | PublicModelBuilder[]>;\n}\n\n/** Provide code-defined content models. */\nexport const ModelFactory = createAbstraction<IModelFactory>(\"Cms/ModelFactory\");\nexport namespace ModelFactory {\n export type Interface = IModelFactory;\n export type Return = Promise<PrivateModelBuilder[] | PublicModelBuilder[]>;\n export type Builder = IModelBuilder;\n export type FieldBuilder = FieldBuilderRegistry.Interface;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;AACA;AACA;;AAaA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAiC,sBAAsB,CAAC;;AAM7E;AACA;AACA;AACA;;AAWA;AACA,OAAO,MAAME,YAAY,GAAGF,iBAAiB,CAAgB,kBAAkB,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { type IFieldTypeFactory } from "./abstractions.js";
2
- import { FieldBuilder } from "./FieldBuilder.js";
3
- export interface IBooleanFieldBuilder extends FieldBuilder<"boolean"> {
2
+ import { DataFieldBuilder } from "./FieldBuilder.js";
3
+ export interface IBooleanFieldBuilder extends DataFieldBuilder<"boolean"> {
4
4
  defaultValue(value: boolean): this;
5
5
  }
6
6
  declare class BooleanFieldTypeFactory implements IFieldTypeFactory {
@@ -11,8 +11,10 @@ export declare const BooleanFieldType: typeof BooleanFieldTypeFactory & {
11
11
  __abstraction: import("@webiny/di").Abstraction<IFieldTypeFactory>;
12
12
  };
13
13
  declare module "../abstractions.js" {
14
- interface IFieldBuilderRegistry {
15
- boolean(): IBooleanFieldBuilder;
14
+ namespace FieldBuilderRegistry {
15
+ interface Interface {
16
+ boolean(): IBooleanFieldBuilder;
17
+ }
16
18
  }
17
19
  }
18
20
  export {};
@@ -1,6 +1,6 @@
1
1
  import { FieldType } from "./abstractions.js";
2
- import { FieldBuilder } from "./FieldBuilder.js";
3
- class BooleanFieldBuilder extends FieldBuilder {
2
+ import { DataFieldBuilder } from "./FieldBuilder.js";
3
+ class BooleanFieldBuilder extends DataFieldBuilder {
4
4
  constructor() {
5
5
  super("boolean");
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"names":["FieldType","FieldBuilder","BooleanFieldBuilder","constructor","defaultValue","value","config","settings","BooleanFieldTypeFactory","type","create","BooleanFieldType","createImplementation","implementation","dependencies"],"sources":["BooleanFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"./abstractions.js\";\nimport { FieldBuilder } from \"./FieldBuilder.js\";\n\nexport interface IBooleanFieldBuilder extends FieldBuilder<\"boolean\"> {\n defaultValue(value: boolean): this;\n}\n\nclass BooleanFieldBuilder extends FieldBuilder<\"boolean\"> implements IBooleanFieldBuilder {\n public constructor() {\n super(\"boolean\");\n }\n\n override defaultValue(value: boolean): this {\n this.config.settings = this.config.settings || {};\n this.config.settings.defaultValue = value;\n return this;\n }\n}\n\nclass BooleanFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"boolean\";\n\n create(): IBooleanFieldBuilder {\n return new BooleanFieldBuilder();\n }\n}\n\nexport const BooleanFieldType = FieldType.createImplementation({\n implementation: BooleanFieldTypeFactory,\n dependencies: []\n});\n\n// Module augmentation for TypeScript autocomplete\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n boolean(): IBooleanFieldBuilder;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,YAAY;AAMrB,MAAMC,mBAAmB,SAASD,YAAY,CAA4C;EAC/EE,WAAWA,CAAA,EAAG;IACjB,KAAK,CAAC,SAAS,CAAC;EACpB;EAESC,YAAYA,CAACC,KAAc,EAAQ;IACxC,IAAI,CAACC,MAAM,CAACC,QAAQ,GAAG,IAAI,CAACD,MAAM,CAACC,QAAQ,IAAI,CAAC,CAAC;IACjD,IAAI,CAACD,MAAM,CAACC,QAAQ,CAACH,YAAY,GAAGC,KAAK;IACzC,OAAO,IAAI;EACf;AACJ;AAEA,MAAMG,uBAAuB,CAA8B;EAC9CC,IAAI,GAAG,SAAS;EAEzBC,MAAMA,CAAA,EAAyB;IAC3B,OAAO,IAAIR,mBAAmB,CAAC,CAAC;EACpC;AACJ;AAEA,OAAO,MAAMS,gBAAgB,GAAGX,SAAS,CAACY,oBAAoB,CAAC;EAC3DC,cAAc,EAAEL,uBAAuB;EACvCM,YAAY,EAAE;AAClB,CAAC,CAAC;;AAEF","ignoreList":[]}
1
+ {"version":3,"names":["FieldType","DataFieldBuilder","BooleanFieldBuilder","constructor","defaultValue","value","config","settings","BooleanFieldTypeFactory","type","create","BooleanFieldType","createImplementation","implementation","dependencies"],"sources":["BooleanFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"./abstractions.js\";\nimport { DataFieldBuilder } from \"./FieldBuilder.js\";\n\nexport interface IBooleanFieldBuilder extends DataFieldBuilder<\"boolean\"> {\n defaultValue(value: boolean): this;\n}\n\nclass BooleanFieldBuilder extends DataFieldBuilder<\"boolean\"> implements IBooleanFieldBuilder {\n public constructor() {\n super(\"boolean\");\n }\n\n override defaultValue(value: boolean): this {\n this.config.settings = this.config.settings || {};\n this.config.settings.defaultValue = value;\n return this;\n }\n}\n\nclass BooleanFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"boolean\";\n\n create(): IBooleanFieldBuilder {\n return new BooleanFieldBuilder();\n }\n}\n\nexport const BooleanFieldType = FieldType.createImplementation({\n implementation: BooleanFieldTypeFactory,\n dependencies: []\n});\n\n// Module augmentation for TypeScript autocomplete\ndeclare module \"../abstractions.js\" {\n namespace FieldBuilderRegistry {\n interface Interface {\n boolean(): IBooleanFieldBuilder;\n }\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,gBAAgB;AAMzB,MAAMC,mBAAmB,SAASD,gBAAgB,CAA4C;EACnFE,WAAWA,CAAA,EAAG;IACjB,KAAK,CAAC,SAAS,CAAC;EACpB;EAESC,YAAYA,CAACC,KAAc,EAAQ;IACxC,IAAI,CAACC,MAAM,CAACC,QAAQ,GAAG,IAAI,CAACD,MAAM,CAACC,QAAQ,IAAI,CAAC,CAAC;IACjD,IAAI,CAACD,MAAM,CAACC,QAAQ,CAACH,YAAY,GAAGC,KAAK;IACzC,OAAO,IAAI;EACf;AACJ;AAEA,MAAMG,uBAAuB,CAA8B;EAC9CC,IAAI,GAAG,SAAS;EAEzBC,MAAMA,CAAA,EAAyB;IAC3B,OAAO,IAAIR,mBAAmB,CAAC,CAAC;EACpC;AACJ;AAEA,OAAO,MAAMS,gBAAgB,GAAGX,SAAS,CAACY,oBAAoB,CAAC;EAC3DC,cAAc,EAAEL,uBAAuB;EACvCM,YAAY,EAAE;AAClB,CAAC,CAAC;;AAEF","ignoreList":[]}
@@ -7,17 +7,9 @@ export interface FieldBuilderConfig extends Omit<CmsModelField, "id" | "fieldId"
7
7
  note?: string | null;
8
8
  }
9
9
  /**
10
- * Augmentable renderer registry.
11
- * Each entry maps a renderer name to its applicable field type(s) and settings.
12
- *
13
- * Example:
14
- * declare module "@webiny/api-headless-cms/features/modelBuilder/fields/FieldBuilder" {
15
- * interface FieldRendererRegistry {
16
- * "my-renderer": { fieldType: "text" | "long-text"; settings: { color: string } };
17
- * }
18
- * }
10
+ * Augmentable renderer registry. Each entry maps a renderer name to its applicable field type(s) and settings.
19
11
  */
20
- export interface FieldRendererRegistry {
12
+ export interface IFieldRendererRegistry {
21
13
  switch: {
22
14
  fieldType: "boolean";
23
15
  settings: undefined;
@@ -184,10 +176,10 @@ export interface FieldRendererRegistry {
184
176
  * Extracts renderer names valid for the given field type.
185
177
  * When TType is a broad `string`, all renderer names are returned.
186
178
  */
187
- export type FieldRendererName<TType extends string = string> = string extends TType ? keyof FieldRendererRegistry & string : {
188
- [K in keyof FieldRendererRegistry]: TType extends FieldRendererRegistry[K]["fieldType"] ? K : never;
189
- }[keyof FieldRendererRegistry] & string;
190
- export type FieldRendererSettings<TName extends string> = TName extends keyof FieldRendererRegistry ? FieldRendererRegistry[TName]["settings"] : Record<string, any> | undefined;
179
+ export type FieldRendererName<TType extends string = string> = string extends TType ? keyof IFieldRendererRegistry & string : {
180
+ [K in keyof IFieldRendererRegistry]: TType extends IFieldRendererRegistry[K]["fieldType"] ? K : never;
181
+ }[keyof IFieldRendererRegistry] & string;
182
+ export type FieldRendererSettings<TName extends string> = TName extends keyof IFieldRendererRegistry ? IFieldRendererRegistry[TName]["settings"] : Record<string, any> | undefined;
191
183
  /**
192
184
  * DataFieldBuilder class for data fields that produce CmsModelField instances.
193
185
  * Provides storageId, list, validation, renderer, and other data-field methods.
@@ -3,15 +3,7 @@ import { getBaseFieldType } from "../../../utils/getBaseFieldType.js";
3
3
  import { BaseFieldBuilder } from "./BaseFieldBuilder.js";
4
4
 
5
5
  /**
6
- * Augmentable renderer registry.
7
- * Each entry maps a renderer name to its applicable field type(s) and settings.
8
- *
9
- * Example:
10
- * declare module "@webiny/api-headless-cms/features/modelBuilder/fields/FieldBuilder" {
11
- * interface FieldRendererRegistry {
12
- * "my-renderer": { fieldType: "text" | "long-text"; settings: { color: string } };
13
- * }
14
- * }
6
+ * Augmentable renderer registry. Each entry maps a renderer name to its applicable field type(s) and settings.
15
7
  */
16
8
 
17
9
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["camelCase","getBaseFieldType","BaseFieldBuilder","rendererNameMap","switch","checkboxes","dateTimeInput","dateTimeInputs","dynamicZone","hidden","lexicalEditor","lexicalEditors","textarea","textareas","numberInput","numberInputs","objectAccordionSingle","objectAccordionMultiple","passthrough","radioButtons","refDialogSingle","refDialogMultiple","refAutocompleteSingle","refAutocompleteMultiple","refCheckboxes","refRadioButtons","dropdown","tags","textInput","textInputs","file","files","uiSeparator","uiAlert","uiTabs","resolveRendererName","name","DataFieldBuilder","constructor","type","label","config","validation","listValidation","list","predefinedValues","enabled","values","help","placeholder","description","note","renderer","settings","text","storageId","id","_storageId","split","pop","defaultValue","value","listMinLength","message","listMaxLength","push","args","build","fieldId","_fieldId","baseType","field"],"sources":["DataFieldBuilder.ts"],"sourcesContent":["import camelCase from \"lodash/camelCase.js\";\nimport type {\n CmsModelField,\n CmsModelFieldPredefinedValues,\n CmsModelFieldValidation\n} from \"~/types/index.js\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\nimport { BaseFieldBuilder, type DataFieldBuildResult } from \"./BaseFieldBuilder.js\";\n\nexport interface FieldBuilderConfig\n extends Omit<CmsModelField, \"id\" | \"fieldId\" | \"storageId\" | \"type\"> {\n _storageId?: string;\n _fieldId?: string;\n description?: string | null;\n note?: string | null;\n}\n\n/**\n * Augmentable renderer registry.\n * Each entry maps a renderer name to its applicable field type(s) and settings.\n *\n * Example:\n * declare module \"@webiny/api-headless-cms/features/modelBuilder/fields/FieldBuilder\" {\n * interface FieldRendererRegistry {\n * \"my-renderer\": { fieldType: \"text\" | \"long-text\"; settings: { color: string } };\n * }\n * }\n */\nexport interface FieldRendererRegistry {\n switch: {\n fieldType: \"boolean\";\n settings: undefined;\n };\n checkboxes: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n dateTimeInput: {\n fieldType: \"datetime\";\n settings: undefined;\n };\n dateTimeInputs: {\n fieldType: \"datetime\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n dynamicZone: {\n fieldType: \"dynamicZone\";\n settings?: {\n open?: boolean;\n };\n };\n hidden: {\n fieldType: string;\n settings: undefined;\n };\n lexicalEditor: {\n fieldType: \"rich-text\";\n settings: undefined;\n };\n lexicalEditors: {\n fieldType: \"rich-text\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n textarea: {\n fieldType: \"long-text\";\n settings: undefined;\n };\n textareas: {\n fieldType: \"long-text\";\n settings: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n numberInput: {\n fieldType: \"number\";\n settings: undefined;\n };\n numberInputs: {\n fieldType: \"number\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n objectAccordionSingle: {\n fieldType: \"object\";\n settings?: {\n open?: boolean;\n };\n };\n objectAccordionMultiple: {\n fieldType: \"object\";\n settings?: {\n open?: boolean;\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n passthrough: {\n fieldType: string;\n settings: undefined;\n };\n radioButtons: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n refDialogSingle: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refDialogMultiple: {\n fieldType: \"ref\";\n settings?: {\n newItemPosition?: \"first\" | \"last\";\n };\n };\n refAutocompleteSingle: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refAutocompleteMultiple: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refCheckboxes: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refRadioButtons: {\n fieldType: \"ref\";\n settings: undefined;\n };\n dropdown: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n tags: {\n fieldType: \"text\";\n settings: undefined;\n };\n textInput: {\n fieldType: \"text\";\n settings: undefined;\n };\n textInputs: {\n fieldType: \"text\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n file: {\n fieldType: \"file\";\n settings?: {\n imagesOnly?: boolean;\n };\n };\n files: {\n fieldType: \"file\";\n settings?: {\n imagesOnly?: boolean;\n };\n };\n uiSeparator: {\n fieldType: \"ui\";\n settings: undefined;\n };\n uiAlert: {\n fieldType: \"ui\";\n settings: {\n type: \"info\" | \"success\" | \"warning\" | \"danger\";\n };\n };\n uiTabs: {\n fieldType: \"ui\";\n settings: undefined;\n };\n}\n\n/**\n * Maps camelCase renderer names (used in the builder API) to the\n * kebab-case names expected by the frontend renderer registry.\n */\nconst rendererNameMap: Record<keyof FieldRendererRegistry, string> = {\n switch: \"boolean-input\",\n checkboxes: \"checkboxes\",\n dateTimeInput: \"date-time-input\",\n dateTimeInputs: \"date-time-inputs\",\n dynamicZone: \"dynamicZone\",\n hidden: \"hidden\",\n lexicalEditor: \"lexical-text-input\",\n lexicalEditors: \"lexical-text-inputs\",\n textarea: \"long-text-text-area\",\n textareas: \"long-text-inputs\",\n numberInput: \"number-input\",\n numberInputs: \"number-inputs\",\n objectAccordionSingle: \"object-accordion\",\n objectAccordionMultiple: \"objects-accordion\",\n passthrough: \"passthrough\",\n radioButtons: \"radio-buttons\",\n refDialogSingle: \"ref-advanced-single\",\n refDialogMultiple: \"ref-advanced-multiple\",\n refAutocompleteSingle: \"ref-input\",\n refAutocompleteMultiple: \"ref-inputs\",\n refCheckboxes: \"ref-simple-multiple\",\n refRadioButtons: \"ref-simple-single\",\n dropdown: \"select-box\",\n tags: \"tags\",\n textInput: \"text-input\",\n textInputs: \"text-inputs\",\n file: \"file-input\",\n files: \"file-inputs\",\n uiSeparator: \"uiSeparator\",\n uiAlert: \"uiAlert\",\n uiTabs: \"uiTabs\"\n};\n\n/**\n * Resolves a camelCase renderer name to the kebab-case name used by the frontend.\n */\nfunction resolveRendererName(name: string): string {\n return rendererNameMap[name as keyof FieldRendererRegistry] ?? name;\n}\n\n/**\n * Extracts renderer names valid for the given field type.\n * When TType is a broad `string`, all renderer names are returned.\n */\nexport type FieldRendererName<TType extends string = string> = string extends TType\n ? keyof FieldRendererRegistry & string\n : {\n [K in keyof FieldRendererRegistry]: TType extends FieldRendererRegistry[K][\"fieldType\"]\n ? K\n : never;\n }[keyof FieldRendererRegistry] &\n string;\n\nexport type FieldRendererSettings<TName extends string> = TName extends keyof FieldRendererRegistry\n ? FieldRendererRegistry[TName][\"settings\"]\n : Record<string, any> | undefined;\n\n/**\n * DataFieldBuilder class for data fields that produce CmsModelField instances.\n * Provides storageId, list, validation, renderer, and other data-field methods.\n */\nexport class DataFieldBuilder<TType extends string = string> extends BaseFieldBuilder<TType> {\n protected override config: FieldBuilderConfig;\n\n public constructor(type: TType, label?: string) {\n super(type, label);\n this.config = {\n label: label || \"\",\n validation: [],\n listValidation: [],\n list: false,\n predefinedValues: {\n enabled: false,\n values: []\n },\n help: null,\n placeholder: null,\n description: null,\n note: null,\n renderer: null,\n settings: {},\n tags: []\n };\n }\n\n placeholder(text: string): this {\n this.config.placeholder = text;\n return this;\n }\n\n storageId(id: string): this {\n // We do not allow developers to specify the field type!\n this.config._storageId = id.split(\"@\").pop();\n return this;\n }\n\n defaultValue(value: any): this {\n this.config.settings = { ...this.config.settings, defaultValue: value };\n return this;\n }\n\n list(): this {\n this.config.list = true;\n return this as this;\n }\n\n tags(tags: string[]): this {\n this.config.tags = tags;\n return this;\n }\n\n /**\n * List validators - these methods are available after calling list()\n */\n listMinLength(value: number, message?: string): this {\n return this.listValidation({\n name: \"minLength\",\n message: message || `At least ${value} item(s) required.`,\n settings: { value }\n });\n }\n\n listMaxLength(value: number, message?: string): this {\n return this.listValidation({\n name: \"maxLength\",\n message: message || `At most ${value} item(s) allowed.`,\n settings: { value }\n });\n }\n\n /**\n * Add a validation rule to this field.\n * This method is protected and should only be used by field-specific validator methods.\n * @internal\n */\n protected validation(validation: CmsModelFieldValidation): this {\n this.config.validation = this.config.validation || [];\n this.config.validation.push(validation);\n return this;\n }\n\n /**\n * Add a list validation rule to this field (for list fields).\n * This method is protected and should only be used by field-specific validator methods.\n * @internal\n */\n protected listValidation(validation: CmsModelFieldValidation): this {\n this.config.listValidation = this.config.listValidation || [];\n this.config.listValidation.push(validation);\n return this;\n }\n\n predefinedValues(values: CmsModelFieldPredefinedValues[\"values\"]): this {\n this.config.predefinedValues = {\n enabled: true,\n values\n };\n return this;\n }\n\n renderer<TName extends FieldRendererName<TType>>(\n name: TName,\n ...args: undefined extends FieldRendererSettings<TName>\n ? [settings?: FieldRendererSettings<TName>]\n : FieldRendererSettings<TName> extends undefined\n ? []\n : [settings: FieldRendererSettings<TName>]\n ): this {\n this.config.renderer = {\n name: resolveRendererName(name),\n settings: args[0] ?? null\n };\n return this;\n }\n\n settings(settings: Record<string, any>): this {\n this.config.settings = { ...this.config.settings, ...settings };\n return this;\n }\n\n /**\n * Build the final CmsModelField\n * @internal\n */\n build(): DataFieldBuildResult {\n const fieldId = this.config._fieldId || camelCase(this.config.label);\n const baseType = getBaseFieldType({\n type: this.type\n });\n const storageId = `${baseType}@${this.config._storageId ?? fieldId}`;\n\n return {\n type: \"data\",\n field: {\n id: fieldId,\n fieldId,\n storageId,\n type: this.type,\n label: this.config.label,\n validation: this.config.validation || [],\n listValidation: this.config.listValidation || [],\n list: this.config.list || false,\n predefinedValues: this.config.predefinedValues || {\n enabled: false,\n values: []\n },\n help: this.config.help || null,\n placeholder: this.config.placeholder || null,\n description: this.config.description || null,\n note: this.config.note || null,\n renderer: this.config.renderer || null,\n settings: this.config.settings || {},\n tags: this.config.tags || []\n }\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["camelCase","getBaseFieldType","BaseFieldBuilder","rendererNameMap","switch","checkboxes","dateTimeInput","dateTimeInputs","dynamicZone","hidden","lexicalEditor","lexicalEditors","textarea","textareas","numberInput","numberInputs","objectAccordionSingle","objectAccordionMultiple","passthrough","radioButtons","refDialogSingle","refDialogMultiple","refAutocompleteSingle","refAutocompleteMultiple","refCheckboxes","refRadioButtons","dropdown","tags","textInput","textInputs","file","files","uiSeparator","uiAlert","uiTabs","resolveRendererName","name","DataFieldBuilder","constructor","type","label","config","validation","listValidation","list","predefinedValues","enabled","values","help","placeholder","description","note","renderer","settings","text","storageId","id","_storageId","split","pop","defaultValue","value","listMinLength","message","listMaxLength","push","args","build","fieldId","_fieldId","baseType","field"],"sources":["DataFieldBuilder.ts"],"sourcesContent":["import camelCase from \"lodash/camelCase.js\";\nimport type {\n CmsModelField,\n CmsModelFieldPredefinedValues,\n CmsModelFieldValidation\n} from \"~/types/index.js\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\nimport { BaseFieldBuilder, type DataFieldBuildResult } from \"./BaseFieldBuilder.js\";\n\nexport interface FieldBuilderConfig\n extends Omit<CmsModelField, \"id\" | \"fieldId\" | \"storageId\" | \"type\"> {\n _storageId?: string;\n _fieldId?: string;\n description?: string | null;\n note?: string | null;\n}\n\n/**\n * Augmentable renderer registry. Each entry maps a renderer name to its applicable field type(s) and settings.\n */\nexport interface IFieldRendererRegistry {\n switch: {\n fieldType: \"boolean\";\n settings: undefined;\n };\n checkboxes: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n dateTimeInput: {\n fieldType: \"datetime\";\n settings: undefined;\n };\n dateTimeInputs: {\n fieldType: \"datetime\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n dynamicZone: {\n fieldType: \"dynamicZone\";\n settings?: {\n open?: boolean;\n };\n };\n hidden: {\n fieldType: string;\n settings: undefined;\n };\n lexicalEditor: {\n fieldType: \"rich-text\";\n settings: undefined;\n };\n lexicalEditors: {\n fieldType: \"rich-text\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n textarea: {\n fieldType: \"long-text\";\n settings: undefined;\n };\n textareas: {\n fieldType: \"long-text\";\n settings: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n numberInput: {\n fieldType: \"number\";\n settings: undefined;\n };\n numberInputs: {\n fieldType: \"number\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n objectAccordionSingle: {\n fieldType: \"object\";\n settings?: {\n open?: boolean;\n };\n };\n objectAccordionMultiple: {\n fieldType: \"object\";\n settings?: {\n open?: boolean;\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n passthrough: {\n fieldType: string;\n settings: undefined;\n };\n radioButtons: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n refDialogSingle: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refDialogMultiple: {\n fieldType: \"ref\";\n settings?: {\n newItemPosition?: \"first\" | \"last\";\n };\n };\n refAutocompleteSingle: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refAutocompleteMultiple: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refCheckboxes: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refRadioButtons: {\n fieldType: \"ref\";\n settings: undefined;\n };\n dropdown: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n tags: {\n fieldType: \"text\";\n settings: undefined;\n };\n textInput: {\n fieldType: \"text\";\n settings: undefined;\n };\n textInputs: {\n fieldType: \"text\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n file: {\n fieldType: \"file\";\n settings?: {\n imagesOnly?: boolean;\n };\n };\n files: {\n fieldType: \"file\";\n settings?: {\n imagesOnly?: boolean;\n };\n };\n uiSeparator: {\n fieldType: \"ui\";\n settings: undefined;\n };\n uiAlert: {\n fieldType: \"ui\";\n settings: {\n type: \"info\" | \"success\" | \"warning\" | \"danger\";\n };\n };\n uiTabs: {\n fieldType: \"ui\";\n settings: undefined;\n };\n}\n\n/**\n * Maps camelCase renderer names (used in the builder API) to the\n * kebab-case names expected by the frontend renderer registry.\n */\nconst rendererNameMap: Record<keyof IFieldRendererRegistry, string> = {\n switch: \"boolean-input\",\n checkboxes: \"checkboxes\",\n dateTimeInput: \"date-time-input\",\n dateTimeInputs: \"date-time-inputs\",\n dynamicZone: \"dynamicZone\",\n hidden: \"hidden\",\n lexicalEditor: \"lexical-text-input\",\n lexicalEditors: \"lexical-text-inputs\",\n textarea: \"long-text-text-area\",\n textareas: \"long-text-inputs\",\n numberInput: \"number-input\",\n numberInputs: \"number-inputs\",\n objectAccordionSingle: \"object-accordion\",\n objectAccordionMultiple: \"objects-accordion\",\n passthrough: \"passthrough\",\n radioButtons: \"radio-buttons\",\n refDialogSingle: \"ref-advanced-single\",\n refDialogMultiple: \"ref-advanced-multiple\",\n refAutocompleteSingle: \"ref-input\",\n refAutocompleteMultiple: \"ref-inputs\",\n refCheckboxes: \"ref-simple-multiple\",\n refRadioButtons: \"ref-simple-single\",\n dropdown: \"select-box\",\n tags: \"tags\",\n textInput: \"text-input\",\n textInputs: \"text-inputs\",\n file: \"file-input\",\n files: \"file-inputs\",\n uiSeparator: \"uiSeparator\",\n uiAlert: \"uiAlert\",\n uiTabs: \"uiTabs\"\n};\n\n/**\n * Resolves a camelCase renderer name to the kebab-case name used by the frontend.\n */\nfunction resolveRendererName(name: string): string {\n return rendererNameMap[name as keyof IFieldRendererRegistry] ?? name;\n}\n\n/**\n * Extracts renderer names valid for the given field type.\n * When TType is a broad `string`, all renderer names are returned.\n */\nexport type FieldRendererName<TType extends string = string> = string extends TType\n ? keyof IFieldRendererRegistry & string\n : {\n [K in keyof IFieldRendererRegistry]: TType extends IFieldRendererRegistry[K][\"fieldType\"]\n ? K\n : never;\n }[keyof IFieldRendererRegistry] &\n string;\n\nexport type FieldRendererSettings<TName extends string> = TName extends keyof IFieldRendererRegistry\n ? IFieldRendererRegistry[TName][\"settings\"]\n : Record<string, any> | undefined;\n\n/**\n * DataFieldBuilder class for data fields that produce CmsModelField instances.\n * Provides storageId, list, validation, renderer, and other data-field methods.\n */\nexport class DataFieldBuilder<TType extends string = string> extends BaseFieldBuilder<TType> {\n protected override config: FieldBuilderConfig;\n\n public constructor(type: TType, label?: string) {\n super(type, label);\n this.config = {\n label: label || \"\",\n validation: [],\n listValidation: [],\n list: false,\n predefinedValues: {\n enabled: false,\n values: []\n },\n help: null,\n placeholder: null,\n description: null,\n note: null,\n renderer: null,\n settings: {},\n tags: []\n };\n }\n\n placeholder(text: string): this {\n this.config.placeholder = text;\n return this;\n }\n\n storageId(id: string): this {\n // We do not allow developers to specify the field type!\n this.config._storageId = id.split(\"@\").pop();\n return this;\n }\n\n defaultValue(value: any): this {\n this.config.settings = { ...this.config.settings, defaultValue: value };\n return this;\n }\n\n list(): this {\n this.config.list = true;\n return this as this;\n }\n\n tags(tags: string[]): this {\n this.config.tags = tags;\n return this;\n }\n\n /**\n * List validators - these methods are available after calling list()\n */\n listMinLength(value: number, message?: string): this {\n return this.listValidation({\n name: \"minLength\",\n message: message || `At least ${value} item(s) required.`,\n settings: { value }\n });\n }\n\n listMaxLength(value: number, message?: string): this {\n return this.listValidation({\n name: \"maxLength\",\n message: message || `At most ${value} item(s) allowed.`,\n settings: { value }\n });\n }\n\n /**\n * Add a validation rule to this field.\n * This method is protected and should only be used by field-specific validator methods.\n * @internal\n */\n protected validation(validation: CmsModelFieldValidation): this {\n this.config.validation = this.config.validation || [];\n this.config.validation.push(validation);\n return this;\n }\n\n /**\n * Add a list validation rule to this field (for list fields).\n * This method is protected and should only be used by field-specific validator methods.\n * @internal\n */\n protected listValidation(validation: CmsModelFieldValidation): this {\n this.config.listValidation = this.config.listValidation || [];\n this.config.listValidation.push(validation);\n return this;\n }\n\n predefinedValues(values: CmsModelFieldPredefinedValues[\"values\"]): this {\n this.config.predefinedValues = {\n enabled: true,\n values\n };\n return this;\n }\n\n renderer<TName extends FieldRendererName<TType>>(\n name: TName,\n ...args: undefined extends FieldRendererSettings<TName>\n ? [settings?: FieldRendererSettings<TName>]\n : FieldRendererSettings<TName> extends undefined\n ? []\n : [settings: FieldRendererSettings<TName>]\n ): this {\n this.config.renderer = {\n name: resolveRendererName(name),\n settings: args[0] ?? null\n };\n return this;\n }\n\n settings(settings: Record<string, any>): this {\n this.config.settings = { ...this.config.settings, ...settings };\n return this;\n }\n\n /**\n * Build the final CmsModelField\n * @internal\n */\n build(): DataFieldBuildResult {\n const fieldId = this.config._fieldId || camelCase(this.config.label);\n const baseType = getBaseFieldType({\n type: this.type\n });\n const storageId = `${baseType}@${this.config._storageId ?? fieldId}`;\n\n return {\n type: \"data\",\n field: {\n id: fieldId,\n fieldId,\n storageId,\n type: this.type,\n label: this.config.label,\n validation: this.config.validation || [],\n listValidation: this.config.listValidation || [],\n list: this.config.list || false,\n predefinedValues: this.config.predefinedValues || {\n enabled: false,\n values: []\n },\n help: this.config.help || null,\n placeholder: this.config.placeholder || null,\n description: this.config.description || null,\n note: this.config.note || null,\n renderer: this.config.renderer || null,\n settings: this.config.settings || {},\n tags: this.config.tags || []\n }\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import { type IFieldTypeFactory } from "./abstractions.js";
2
- import { FieldBuilder } from "./FieldBuilder.js";
3
- import { RequiredValidator, DateGteValidator, DateLteValidator } from "./validators.js";
2
+ import { DataFieldBuilder } from "./FieldBuilder.js";
3
+ import { RequiredValidator, DateGteValidator, DateLteValidator } from "./fieldTypeValidator.js";
4
4
  export type DateTimeType = "date" | "time" | "dateTimeWithTimezone" | "dateTimeWithoutTimezone";
5
- export interface IDateTimeFieldBuilder extends FieldBuilder<"datetime">, RequiredValidator, DateGteValidator, DateLteValidator {
5
+ export interface IDateTimeFieldBuilder extends DataFieldBuilder<"datetime">, RequiredValidator, DateGteValidator, DateLteValidator {
6
6
  dateTimeType(type: DateTimeType): this;
7
7
  dateOnly(): this;
8
8
  timeOnly(): this;
@@ -1,6 +1,6 @@
1
1
  import { FieldType } from "./abstractions.js";
2
- import { FieldBuilder } from "./FieldBuilder.js";
3
- class DateTimeFieldBuilder extends FieldBuilder {
2
+ import { DataFieldBuilder } from "./FieldBuilder.js";
3
+ class DateTimeFieldBuilder extends DataFieldBuilder {
4
4
  constructor() {
5
5
  super("datetime");
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"names":["FieldType","FieldBuilder","DateTimeFieldBuilder","constructor","required","message","validation","name","settings","dateTimeType","type","config","dateOnly","timeOnly","withTimezone","withoutTimezone","dateGte","value","dateLte","DateTimeFieldTypeFactory","create","DateTimeFieldType","createImplementation","implementation","dependencies"],"sources":["DateTimeFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"./abstractions.js\";\nimport { FieldBuilder } from \"./FieldBuilder.js\";\nimport { RequiredValidator, DateGteValidator, DateLteValidator } from \"./validators.js\";\n\nexport type DateTimeType = \"date\" | \"time\" | \"dateTimeWithTimezone\" | \"dateTimeWithoutTimezone\";\n\nexport interface IDateTimeFieldBuilder\n extends FieldBuilder<\"datetime\">,\n RequiredValidator,\n DateGteValidator,\n DateLteValidator {\n dateTimeType(type: DateTimeType): this;\n dateOnly(): this;\n timeOnly(): this;\n withTimezone(): this;\n withoutTimezone(): this;\n}\n\nclass DateTimeFieldBuilder extends FieldBuilder<\"datetime\"> implements IDateTimeFieldBuilder {\n public constructor() {\n super(\"datetime\");\n }\n\n required(message?: string): this {\n return this.validation({\n name: \"required\",\n message: message || \"Value is required.\",\n settings: {}\n });\n }\n\n dateTimeType(type: DateTimeType): this {\n this.config.settings = this.config.settings || {};\n this.config.settings.type = type;\n return this;\n }\n\n dateOnly(): this {\n return this.dateTimeType(\"date\");\n }\n\n timeOnly(): this {\n return this.dateTimeType(\"time\");\n }\n\n withTimezone(): this {\n return this.dateTimeType(\"dateTimeWithTimezone\");\n }\n\n withoutTimezone(): this {\n return this.dateTimeType(\"dateTimeWithoutTimezone\");\n }\n\n dateGte(value: string, message?: string): this {\n const type = this.config.settings?.type || \"date\";\n return this.validation({\n name: \"dateGte\",\n message: message || \"Date/time is earlier than the provided one.\",\n settings: { value, type }\n });\n }\n\n dateLte(value: string, message?: string): this {\n const type = this.config.settings?.type || \"date\";\n return this.validation({\n name: \"dateLte\",\n message: message || \"Date/time is later than the provided one.\",\n settings: { value, type }\n });\n }\n}\n\nclass DateTimeFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"datetime\";\n\n create(): IDateTimeFieldBuilder {\n return new DateTimeFieldBuilder();\n }\n}\n\nexport const DateTimeFieldType = FieldType.createImplementation({\n implementation: DateTimeFieldTypeFactory,\n dependencies: []\n});\n\n// Module augmentation for TypeScript autocomplete\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n datetime(): IDateTimeFieldBuilder;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,YAAY;AAiBrB,MAAMC,oBAAoB,SAASD,YAAY,CAA8C;EAClFE,WAAWA,CAAA,EAAG;IACjB,KAAK,CAAC,UAAU,CAAC;EACrB;EAEAC,QAAQA,CAACC,OAAgB,EAAQ;IAC7B,OAAO,IAAI,CAACC,UAAU,CAAC;MACnBC,IAAI,EAAE,UAAU;MAChBF,OAAO,EAAEA,OAAO,IAAI,oBAAoB;MACxCG,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC;EACN;EAEAC,YAAYA,CAACC,IAAkB,EAAQ;IACnC,IAAI,CAACC,MAAM,CAACH,QAAQ,GAAG,IAAI,CAACG,MAAM,CAACH,QAAQ,IAAI,CAAC,CAAC;IACjD,IAAI,CAACG,MAAM,CAACH,QAAQ,CAACE,IAAI,GAAGA,IAAI;IAChC,OAAO,IAAI;EACf;EAEAE,QAAQA,CAAA,EAAS;IACb,OAAO,IAAI,CAACH,YAAY,CAAC,MAAM,CAAC;EACpC;EAEAI,QAAQA,CAAA,EAAS;IACb,OAAO,IAAI,CAACJ,YAAY,CAAC,MAAM,CAAC;EACpC;EAEAK,YAAYA,CAAA,EAAS;IACjB,OAAO,IAAI,CAACL,YAAY,CAAC,sBAAsB,CAAC;EACpD;EAEAM,eAAeA,CAAA,EAAS;IACpB,OAAO,IAAI,CAACN,YAAY,CAAC,yBAAyB,CAAC;EACvD;EAEAO,OAAOA,CAACC,KAAa,EAAEZ,OAAgB,EAAQ;IAC3C,MAAMK,IAAI,GAAG,IAAI,CAACC,MAAM,CAACH,QAAQ,EAAEE,IAAI,IAAI,MAAM;IACjD,OAAO,IAAI,CAACJ,UAAU,CAAC;MACnBC,IAAI,EAAE,SAAS;MACfF,OAAO,EAAEA,OAAO,IAAI,6CAA6C;MACjEG,QAAQ,EAAE;QAAES,KAAK;QAAEP;MAAK;IAC5B,CAAC,CAAC;EACN;EAEAQ,OAAOA,CAACD,KAAa,EAAEZ,OAAgB,EAAQ;IAC3C,MAAMK,IAAI,GAAG,IAAI,CAACC,MAAM,CAACH,QAAQ,EAAEE,IAAI,IAAI,MAAM;IACjD,OAAO,IAAI,CAACJ,UAAU,CAAC;MACnBC,IAAI,EAAE,SAAS;MACfF,OAAO,EAAEA,OAAO,IAAI,2CAA2C;MAC/DG,QAAQ,EAAE;QAAES,KAAK;QAAEP;MAAK;IAC5B,CAAC,CAAC;EACN;AACJ;AAEA,MAAMS,wBAAwB,CAA8B;EAC/CT,IAAI,GAAG,UAAU;EAE1BU,MAAMA,CAAA,EAA0B;IAC5B,OAAO,IAAIlB,oBAAoB,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAMmB,iBAAiB,GAAGrB,SAAS,CAACsB,oBAAoB,CAAC;EAC5DC,cAAc,EAAEJ,wBAAwB;EACxCK,YAAY,EAAE;AAClB,CAAC,CAAC;;AAEF","ignoreList":[]}
1
+ {"version":3,"names":["FieldType","DataFieldBuilder","DateTimeFieldBuilder","constructor","required","message","validation","name","settings","dateTimeType","type","config","dateOnly","timeOnly","withTimezone","withoutTimezone","dateGte","value","dateLte","DateTimeFieldTypeFactory","create","DateTimeFieldType","createImplementation","implementation","dependencies"],"sources":["DateTimeFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"./abstractions.js\";\nimport { DataFieldBuilder } from \"./FieldBuilder.js\";\nimport { RequiredValidator, DateGteValidator, DateLteValidator } from \"./fieldTypeValidator.js\";\n\nexport type DateTimeType = \"date\" | \"time\" | \"dateTimeWithTimezone\" | \"dateTimeWithoutTimezone\";\n\nexport interface IDateTimeFieldBuilder\n extends DataFieldBuilder<\"datetime\">,\n RequiredValidator,\n DateGteValidator,\n DateLteValidator {\n dateTimeType(type: DateTimeType): this;\n dateOnly(): this;\n timeOnly(): this;\n withTimezone(): this;\n withoutTimezone(): this;\n}\n\nclass DateTimeFieldBuilder extends DataFieldBuilder<\"datetime\"> implements IDateTimeFieldBuilder {\n public constructor() {\n super(\"datetime\");\n }\n\n required(message?: string): this {\n return this.validation({\n name: \"required\",\n message: message || \"Value is required.\",\n settings: {}\n });\n }\n\n dateTimeType(type: DateTimeType): this {\n this.config.settings = this.config.settings || {};\n this.config.settings.type = type;\n return this;\n }\n\n dateOnly(): this {\n return this.dateTimeType(\"date\");\n }\n\n timeOnly(): this {\n return this.dateTimeType(\"time\");\n }\n\n withTimezone(): this {\n return this.dateTimeType(\"dateTimeWithTimezone\");\n }\n\n withoutTimezone(): this {\n return this.dateTimeType(\"dateTimeWithoutTimezone\");\n }\n\n dateGte(value: string, message?: string): this {\n const type = this.config.settings?.type || \"date\";\n return this.validation({\n name: \"dateGte\",\n message: message || \"Date/time is earlier than the provided one.\",\n settings: { value, type }\n });\n }\n\n dateLte(value: string, message?: string): this {\n const type = this.config.settings?.type || \"date\";\n return this.validation({\n name: \"dateLte\",\n message: message || \"Date/time is later than the provided one.\",\n settings: { value, type }\n });\n }\n}\n\nclass DateTimeFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"datetime\";\n\n create(): IDateTimeFieldBuilder {\n return new DateTimeFieldBuilder();\n }\n}\n\nexport const DateTimeFieldType = FieldType.createImplementation({\n implementation: DateTimeFieldTypeFactory,\n dependencies: []\n});\n\n// Module augmentation for TypeScript autocomplete\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n datetime(): IDateTimeFieldBuilder;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,gBAAgB;AAiBzB,MAAMC,oBAAoB,SAASD,gBAAgB,CAA8C;EACtFE,WAAWA,CAAA,EAAG;IACjB,KAAK,CAAC,UAAU,CAAC;EACrB;EAEAC,QAAQA,CAACC,OAAgB,EAAQ;IAC7B,OAAO,IAAI,CAACC,UAAU,CAAC;MACnBC,IAAI,EAAE,UAAU;MAChBF,OAAO,EAAEA,OAAO,IAAI,oBAAoB;MACxCG,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC;EACN;EAEAC,YAAYA,CAACC,IAAkB,EAAQ;IACnC,IAAI,CAACC,MAAM,CAACH,QAAQ,GAAG,IAAI,CAACG,MAAM,CAACH,QAAQ,IAAI,CAAC,CAAC;IACjD,IAAI,CAACG,MAAM,CAACH,QAAQ,CAACE,IAAI,GAAGA,IAAI;IAChC,OAAO,IAAI;EACf;EAEAE,QAAQA,CAAA,EAAS;IACb,OAAO,IAAI,CAACH,YAAY,CAAC,MAAM,CAAC;EACpC;EAEAI,QAAQA,CAAA,EAAS;IACb,OAAO,IAAI,CAACJ,YAAY,CAAC,MAAM,CAAC;EACpC;EAEAK,YAAYA,CAAA,EAAS;IACjB,OAAO,IAAI,CAACL,YAAY,CAAC,sBAAsB,CAAC;EACpD;EAEAM,eAAeA,CAAA,EAAS;IACpB,OAAO,IAAI,CAACN,YAAY,CAAC,yBAAyB,CAAC;EACvD;EAEAO,OAAOA,CAACC,KAAa,EAAEZ,OAAgB,EAAQ;IAC3C,MAAMK,IAAI,GAAG,IAAI,CAACC,MAAM,CAACH,QAAQ,EAAEE,IAAI,IAAI,MAAM;IACjD,OAAO,IAAI,CAACJ,UAAU,CAAC;MACnBC,IAAI,EAAE,SAAS;MACfF,OAAO,EAAEA,OAAO,IAAI,6CAA6C;MACjEG,QAAQ,EAAE;QAAES,KAAK;QAAEP;MAAK;IAC5B,CAAC,CAAC;EACN;EAEAQ,OAAOA,CAACD,KAAa,EAAEZ,OAAgB,EAAQ;IAC3C,MAAMK,IAAI,GAAG,IAAI,CAACC,MAAM,CAACH,QAAQ,EAAEE,IAAI,IAAI,MAAM;IACjD,OAAO,IAAI,CAACJ,UAAU,CAAC;MACnBC,IAAI,EAAE,SAAS;MACfF,OAAO,EAAEA,OAAO,IAAI,2CAA2C;MAC/DG,QAAQ,EAAE;QAAES,KAAK;QAAEP;MAAK;IAC5B,CAAC,CAAC;EACN;AACJ;AAEA,MAAMS,wBAAwB,CAA8B;EAC/CT,IAAI,GAAG,UAAU;EAE1BU,MAAMA,CAAA,EAA0B;IAC5B,OAAO,IAAIlB,oBAAoB,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAMmB,iBAAiB,GAAGrB,SAAS,CAACsB,oBAAoB,CAAC;EAC5DC,cAAc,EAAEJ,wBAAwB;EACxCK,YAAY,EAAE;AAClB,CAAC,CAAC;;AAEF","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import { type IFieldTypeFactory } from "./abstractions.js";
2
- import { FieldBuilder, type BaseFieldBuilder } from "./FieldBuilder.js";
2
+ import { DataFieldBuilder, type BaseFieldBuilder } from "./FieldBuilder.js";
3
3
  import { type IFieldBuilderRegistry } from "../abstractions.js";
4
4
  import type { CmsIcon } from "../../../types/index.js";
5
- export interface IDynamicZoneFieldBuilder extends FieldBuilder<"dynamicZone"> {
5
+ export interface IDynamicZoneFieldBuilder extends DataFieldBuilder<"dynamicZone"> {
6
6
  required(message?: string): this;
7
7
  template(id: string, config: {
8
8
  name: string;
@@ -1,6 +1,6 @@
1
1
  import { FieldType } from "./abstractions.js";
2
- import { FieldBuilder } from "./FieldBuilder.js";
3
- class DynamicZoneFieldBuilder extends FieldBuilder {
2
+ import { DataFieldBuilder } from "./FieldBuilder.js";
3
+ class DynamicZoneFieldBuilder extends DataFieldBuilder {
4
4
  templates = [];
5
5
  constructor(registry) {
6
6
  super("dynamicZone");
@@ -1 +1 @@
1
- {"version":3,"names":["FieldType","FieldBuilder","DynamicZoneFieldBuilder","templates","constructor","registry","required","message","validation","name","settings","template","id","config","fieldBuilders","fields","key","fieldBuilder","Object","entries","fieldId","result","build","type","push","field","gqlTypeName","icon","description","layout","listValidation","DynamicZoneFieldTypeFactory","create","DynamicZoneFieldType","createImplementation","implementation","dependencies"],"sources":["DynamicZoneFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"./abstractions.js\";\nimport { type FieldBuildResult } from \"./BaseFieldBuilder.js\";\nimport { FieldBuilder, type BaseFieldBuilder } from \"./FieldBuilder.js\";\nimport { type IFieldBuilderRegistry } from \"../abstractions.js\";\nimport type { CmsIcon, CmsModelField, CmsModelFieldValidation } from \"~/types/index.js\";\n\ninterface IDynamicZoneTemplate {\n id: string;\n name: string;\n gqlTypeName: string;\n icon: CmsIcon | undefined;\n description: string;\n fields: any[];\n layout: string[][];\n validation: CmsModelFieldValidation[];\n}\n\nexport interface IDynamicZoneFieldBuilder extends FieldBuilder<\"dynamicZone\"> {\n required(message?: string): this;\n template(\n id: string,\n config: {\n name: string;\n gqlTypeName: string;\n icon?: CmsIcon;\n description?: string;\n fields: (registry: IFieldBuilderRegistry) => Record<string, BaseFieldBuilder<any>>;\n layout?: string[][];\n }\n ): this;\n}\n\ninterface IDynamicZoneFieldBuilderTemplateConfig {\n name: string;\n gqlTypeName: string;\n icon?: CmsIcon;\n description?: string;\n fields: (registry: IFieldBuilderRegistry) => Record<string, BaseFieldBuilder<any>>;\n layout?: string[][];\n}\n\nclass DynamicZoneFieldBuilder\n extends FieldBuilder<\"dynamicZone\">\n implements IDynamicZoneFieldBuilder\n{\n private readonly templates: IDynamicZoneTemplate[] = [];\n\n public constructor(private registry: IFieldBuilderRegistry) {\n super(\"dynamicZone\");\n }\n\n public required(message?: string): this {\n return this.validation({\n name: \"required\",\n message: message || \"Field is required\",\n settings: {}\n });\n }\n\n public template(id: string, config: IDynamicZoneFieldBuilderTemplateConfig): this {\n const fieldBuilders = config.fields(this.registry);\n const fields: CmsModelField[] = [];\n\n for (const [key, fieldBuilder] of Object.entries(fieldBuilders)) {\n fieldBuilder.fieldId(key);\n const result: FieldBuildResult = (fieldBuilder as any).build();\n if (result.type === \"data\") {\n fields.push(result.field);\n } else if (result.fields) {\n fields.push(...result.fields);\n }\n }\n\n this.templates.push({\n id,\n name: config.name,\n gqlTypeName: config.gqlTypeName,\n icon: config.icon,\n description: config.description || \"\",\n fields,\n layout: config.layout || [],\n validation: []\n });\n\n return this;\n }\n\n public override build() {\n // Set templates in settings before building\n this.config.settings = this.config.settings || {};\n this.config.settings.templates = this.templates;\n this.config.listValidation = [{ name: \"dynamicZone\", message: \"\" }];\n return super.build();\n }\n}\n\nclass DynamicZoneFieldTypeFactory implements IFieldTypeFactory {\n public readonly type = \"dynamicZone\";\n\n public create(registry: IFieldBuilderRegistry): IDynamicZoneFieldBuilder {\n return new DynamicZoneFieldBuilder(registry);\n }\n}\n\nexport const DynamicZoneFieldType = FieldType.createImplementation({\n implementation: DynamicZoneFieldTypeFactory,\n dependencies: []\n});\n\n// Module augmentation for TypeScript autocomplete\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n dynamicZone(): IDynamicZoneFieldBuilder;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAElB,SAASC,YAAY;AAuCrB,MAAMC,uBAAuB,SACjBD,YAAY,CAExB;EACqBE,SAAS,GAA2B,EAAE;EAEhDC,WAAWA,CAASC,QAA+B,EAAE;IACxD,KAAK,CAAC,aAAa,CAAC;IAAC,KADEA,QAA+B,GAA/BA,QAA+B;EAE1D;EAEOC,QAAQA,CAACC,OAAgB,EAAQ;IACpC,OAAO,IAAI,CAACC,UAAU,CAAC;MACnBC,IAAI,EAAE,UAAU;MAChBF,OAAO,EAAEA,OAAO,IAAI,mBAAmB;MACvCG,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC;EACN;EAEOC,QAAQA,CAACC,EAAU,EAAEC,MAA8C,EAAQ;IAC9E,MAAMC,aAAa,GAAGD,MAAM,CAACE,MAAM,CAAC,IAAI,CAACV,QAAQ,CAAC;IAClD,MAAMU,MAAuB,GAAG,EAAE;IAElC,KAAK,MAAM,CAACC,GAAG,EAAEC,YAAY,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,aAAa,CAAC,EAAE;MAC7DG,YAAY,CAACG,OAAO,CAACJ,GAAG,CAAC;MACzB,MAAMK,MAAwB,GAAIJ,YAAY,CAASK,KAAK,CAAC,CAAC;MAC9D,IAAID,MAAM,CAACE,IAAI,KAAK,MAAM,EAAE;QACxBR,MAAM,CAACS,IAAI,CAACH,MAAM,CAACI,KAAK,CAAC;MAC7B,CAAC,MAAM,IAAIJ,MAAM,CAACN,MAAM,EAAE;QACtBA,MAAM,CAACS,IAAI,CAAC,GAAGH,MAAM,CAACN,MAAM,CAAC;MACjC;IACJ;IAEA,IAAI,CAACZ,SAAS,CAACqB,IAAI,CAAC;MAChBZ,EAAE;MACFH,IAAI,EAAEI,MAAM,CAACJ,IAAI;MACjBiB,WAAW,EAAEb,MAAM,CAACa,WAAW;MAC/BC,IAAI,EAAEd,MAAM,CAACc,IAAI;MACjBC,WAAW,EAAEf,MAAM,CAACe,WAAW,IAAI,EAAE;MACrCb,MAAM;MACNc,MAAM,EAAEhB,MAAM,CAACgB,MAAM,IAAI,EAAE;MAC3BrB,UAAU,EAAE;IAChB,CAAC,CAAC;IAEF,OAAO,IAAI;EACf;EAEgBc,KAAKA,CAAA,EAAG;IACpB;IACA,IAAI,CAACT,MAAM,CAACH,QAAQ,GAAG,IAAI,CAACG,MAAM,CAACH,QAAQ,IAAI,CAAC,CAAC;IACjD,IAAI,CAACG,MAAM,CAACH,QAAQ,CAACP,SAAS,GAAG,IAAI,CAACA,SAAS;IAC/C,IAAI,CAACU,MAAM,CAACiB,cAAc,GAAG,CAAC;MAAErB,IAAI,EAAE,aAAa;MAAEF,OAAO,EAAE;IAAG,CAAC,CAAC;IACnE,OAAO,KAAK,CAACe,KAAK,CAAC,CAAC;EACxB;AACJ;AAEA,MAAMS,2BAA2B,CAA8B;EAC3CR,IAAI,GAAG,aAAa;EAE7BS,MAAMA,CAAC3B,QAA+B,EAA4B;IACrE,OAAO,IAAIH,uBAAuB,CAACG,QAAQ,CAAC;EAChD;AACJ;AAEA,OAAO,MAAM4B,oBAAoB,GAAGjC,SAAS,CAACkC,oBAAoB,CAAC;EAC/DC,cAAc,EAAEJ,2BAA2B;EAC3CK,YAAY,EAAE;AAClB,CAAC,CAAC;;AAEF","ignoreList":[]}
1
+ {"version":3,"names":["FieldType","DataFieldBuilder","DynamicZoneFieldBuilder","templates","constructor","registry","required","message","validation","name","settings","template","id","config","fieldBuilders","fields","key","fieldBuilder","Object","entries","fieldId","result","build","type","push","field","gqlTypeName","icon","description","layout","listValidation","DynamicZoneFieldTypeFactory","create","DynamicZoneFieldType","createImplementation","implementation","dependencies"],"sources":["DynamicZoneFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"./abstractions.js\";\nimport { type FieldBuildResult } from \"./BaseFieldBuilder.js\";\nimport { DataFieldBuilder, type BaseFieldBuilder } from \"./FieldBuilder.js\";\nimport { type IFieldBuilderRegistry } from \"../abstractions.js\";\nimport type { CmsIcon, CmsModelField, CmsModelFieldValidation } from \"~/types/index.js\";\n\ninterface IDynamicZoneTemplate {\n id: string;\n name: string;\n gqlTypeName: string;\n icon: CmsIcon | undefined;\n description: string;\n fields: any[];\n layout: string[][];\n validation: CmsModelFieldValidation[];\n}\n\nexport interface IDynamicZoneFieldBuilder extends DataFieldBuilder<\"dynamicZone\"> {\n required(message?: string): this;\n template(\n id: string,\n config: {\n name: string;\n gqlTypeName: string;\n icon?: CmsIcon;\n description?: string;\n fields: (registry: IFieldBuilderRegistry) => Record<string, BaseFieldBuilder<any>>;\n layout?: string[][];\n }\n ): this;\n}\n\ninterface IDynamicZoneFieldBuilderTemplateConfig {\n name: string;\n gqlTypeName: string;\n icon?: CmsIcon;\n description?: string;\n fields: (registry: IFieldBuilderRegistry) => Record<string, BaseFieldBuilder<any>>;\n layout?: string[][];\n}\n\nclass DynamicZoneFieldBuilder\n extends DataFieldBuilder<\"dynamicZone\">\n implements IDynamicZoneFieldBuilder\n{\n private readonly templates: IDynamicZoneTemplate[] = [];\n\n public constructor(private registry: IFieldBuilderRegistry) {\n super(\"dynamicZone\");\n }\n\n public required(message?: string): this {\n return this.validation({\n name: \"required\",\n message: message || \"Field is required\",\n settings: {}\n });\n }\n\n public template(id: string, config: IDynamicZoneFieldBuilderTemplateConfig): this {\n const fieldBuilders = config.fields(this.registry);\n const fields: CmsModelField[] = [];\n\n for (const [key, fieldBuilder] of Object.entries(fieldBuilders)) {\n fieldBuilder.fieldId(key);\n const result: FieldBuildResult = (fieldBuilder as any).build();\n if (result.type === \"data\") {\n fields.push(result.field);\n } else if (result.fields) {\n fields.push(...result.fields);\n }\n }\n\n this.templates.push({\n id,\n name: config.name,\n gqlTypeName: config.gqlTypeName,\n icon: config.icon,\n description: config.description || \"\",\n fields,\n layout: config.layout || [],\n validation: []\n });\n\n return this;\n }\n\n public override build() {\n // Set templates in settings before building\n this.config.settings = this.config.settings || {};\n this.config.settings.templates = this.templates;\n this.config.listValidation = [{ name: \"dynamicZone\", message: \"\" }];\n return super.build();\n }\n}\n\nclass DynamicZoneFieldTypeFactory implements IFieldTypeFactory {\n public readonly type = \"dynamicZone\";\n\n public create(registry: IFieldBuilderRegistry): IDynamicZoneFieldBuilder {\n return new DynamicZoneFieldBuilder(registry);\n }\n}\n\nexport const DynamicZoneFieldType = FieldType.createImplementation({\n implementation: DynamicZoneFieldTypeFactory,\n dependencies: []\n});\n\n// Module augmentation for TypeScript autocomplete\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n dynamicZone(): IDynamicZoneFieldBuilder;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAElB,SAASC,gBAAgB;AAuCzB,MAAMC,uBAAuB,SACjBD,gBAAgB,CAE5B;EACqBE,SAAS,GAA2B,EAAE;EAEhDC,WAAWA,CAASC,QAA+B,EAAE;IACxD,KAAK,CAAC,aAAa,CAAC;IAAC,KADEA,QAA+B,GAA/BA,QAA+B;EAE1D;EAEOC,QAAQA,CAACC,OAAgB,EAAQ;IACpC,OAAO,IAAI,CAACC,UAAU,CAAC;MACnBC,IAAI,EAAE,UAAU;MAChBF,OAAO,EAAEA,OAAO,IAAI,mBAAmB;MACvCG,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC;EACN;EAEOC,QAAQA,CAACC,EAAU,EAAEC,MAA8C,EAAQ;IAC9E,MAAMC,aAAa,GAAGD,MAAM,CAACE,MAAM,CAAC,IAAI,CAACV,QAAQ,CAAC;IAClD,MAAMU,MAAuB,GAAG,EAAE;IAElC,KAAK,MAAM,CAACC,GAAG,EAAEC,YAAY,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,aAAa,CAAC,EAAE;MAC7DG,YAAY,CAACG,OAAO,CAACJ,GAAG,CAAC;MACzB,MAAMK,MAAwB,GAAIJ,YAAY,CAASK,KAAK,CAAC,CAAC;MAC9D,IAAID,MAAM,CAACE,IAAI,KAAK,MAAM,EAAE;QACxBR,MAAM,CAACS,IAAI,CAACH,MAAM,CAACI,KAAK,CAAC;MAC7B,CAAC,MAAM,IAAIJ,MAAM,CAACN,MAAM,EAAE;QACtBA,MAAM,CAACS,IAAI,CAAC,GAAGH,MAAM,CAACN,MAAM,CAAC;MACjC;IACJ;IAEA,IAAI,CAACZ,SAAS,CAACqB,IAAI,CAAC;MAChBZ,EAAE;MACFH,IAAI,EAAEI,MAAM,CAACJ,IAAI;MACjBiB,WAAW,EAAEb,MAAM,CAACa,WAAW;MAC/BC,IAAI,EAAEd,MAAM,CAACc,IAAI;MACjBC,WAAW,EAAEf,MAAM,CAACe,WAAW,IAAI,EAAE;MACrCb,MAAM;MACNc,MAAM,EAAEhB,MAAM,CAACgB,MAAM,IAAI,EAAE;MAC3BrB,UAAU,EAAE;IAChB,CAAC,CAAC;IAEF,OAAO,IAAI;EACf;EAEgBc,KAAKA,CAAA,EAAG;IACpB;IACA,IAAI,CAACT,MAAM,CAACH,QAAQ,GAAG,IAAI,CAACG,MAAM,CAACH,QAAQ,IAAI,CAAC,CAAC;IACjD,IAAI,CAACG,MAAM,CAACH,QAAQ,CAACP,SAAS,GAAG,IAAI,CAACA,SAAS;IAC/C,IAAI,CAACU,MAAM,CAACiB,cAAc,GAAG,CAAC;MAAErB,IAAI,EAAE,aAAa;MAAEF,OAAO,EAAE;IAAG,CAAC,CAAC;IACnE,OAAO,KAAK,CAACe,KAAK,CAAC,CAAC;EACxB;AACJ;AAEA,MAAMS,2BAA2B,CAA8B;EAC3CR,IAAI,GAAG,aAAa;EAE7BS,MAAMA,CAAC3B,QAA+B,EAA4B;IACrE,OAAO,IAAIH,uBAAuB,CAACG,QAAQ,CAAC;EAChD;AACJ;AAEA,OAAO,MAAM4B,oBAAoB,GAAGjC,SAAS,CAACkC,oBAAoB,CAAC;EAC/DC,cAAc,EAAEJ,2BAA2B;EAC3CK,YAAY,EAAE;AAClB,CAAC,CAAC;;AAEF","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- export { DataFieldBuilder, DataFieldBuilder as FieldBuilder } from "./DataFieldBuilder.js";
1
+ export { DataFieldBuilder } from "./DataFieldBuilder.js";
2
2
  export { LayoutFieldBuilder } from "./LayoutFieldBuilder.js";
3
3
  export { BaseFieldBuilder } from "./BaseFieldBuilder.js";
4
4
  export type { FieldBuildResult, DataFieldBuildResult, LayoutFieldBuildResult } from "./BaseFieldBuilder.js";
5
- export type { FieldRendererRegistry, FieldRendererName, FieldRendererSettings, FieldBuilderConfig } from "./DataFieldBuilder.js";
5
+ export type { IFieldRendererRegistry, FieldRendererName, FieldRendererSettings, FieldBuilderConfig } from "./DataFieldBuilder.js";
@@ -1,4 +1,4 @@
1
- export { DataFieldBuilder, DataFieldBuilder as FieldBuilder } from "./DataFieldBuilder.js";
1
+ export { DataFieldBuilder } from "./DataFieldBuilder.js";
2
2
  export { LayoutFieldBuilder } from "./LayoutFieldBuilder.js";
3
3
  export { BaseFieldBuilder } from "./BaseFieldBuilder.js";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"names":["DataFieldBuilder","FieldBuilder","LayoutFieldBuilder","BaseFieldBuilder"],"sources":["FieldBuilder.ts"],"sourcesContent":["export { DataFieldBuilder, DataFieldBuilder as FieldBuilder } from \"./DataFieldBuilder.js\";\nexport { LayoutFieldBuilder } from \"./LayoutFieldBuilder.js\";\nexport { BaseFieldBuilder } from \"./BaseFieldBuilder.js\";\nexport type {\n FieldBuildResult,\n DataFieldBuildResult,\n LayoutFieldBuildResult\n} from \"./BaseFieldBuilder.js\";\nexport type {\n FieldRendererRegistry,\n FieldRendererName,\n FieldRendererSettings,\n FieldBuilderConfig\n} from \"./DataFieldBuilder.js\";\n"],"mappings":"AAAA,SAASA,gBAAgB,EAAEA,gBAAgB,IAAIC,YAAY;AAC3D,SAASC,kBAAkB;AAC3B,SAASC,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["DataFieldBuilder","LayoutFieldBuilder","BaseFieldBuilder"],"sources":["FieldBuilder.ts"],"sourcesContent":["export { DataFieldBuilder } from \"./DataFieldBuilder.js\";\nexport { LayoutFieldBuilder } from \"./LayoutFieldBuilder.js\";\nexport { BaseFieldBuilder } from \"./BaseFieldBuilder.js\";\nexport type {\n FieldBuildResult,\n DataFieldBuildResult,\n LayoutFieldBuildResult\n} from \"./BaseFieldBuilder.js\";\nexport type {\n IFieldRendererRegistry,\n FieldRendererName,\n FieldRendererSettings,\n FieldBuilderConfig\n} from \"./DataFieldBuilder.js\";\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SAASC,kBAAkB;AAC3B,SAASC,gBAAgB","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { type IFieldBuilderRegistry } from "../abstractions.js";
2
- export declare const FieldBuilderRegistry: import("@webiny/di").Constructor<IFieldBuilderRegistry> & {
3
- __abstraction: import("@webiny/di").Abstraction<IFieldBuilderRegistry>;
1
+ import { FieldBuilderRegistry as RegistryAbstraction } from "../abstractions.js";
2
+ export declare const FieldBuilderRegistry: import("@webiny/di").Constructor<RegistryAbstraction.Interface> & {
3
+ __abstraction: import("@webiny/di").Abstraction<RegistryAbstraction.Interface>;
4
4
  };