@webiny/api-headless-cms 6.1.0 → 6.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/context.d.ts +2 -5
  2. package/context.js +16 -7
  3. package/context.js.map +1 -1
  4. package/crud/AccessControl/AccessControl.d.ts +18 -28
  5. package/crud/AccessControl/AccessControl.js.map +1 -1
  6. package/crud/contentEntry/entryDataFactories/createEntryData.js +17 -6
  7. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -1
  8. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +9 -3
  9. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -1
  10. package/crud/contentEntry/entryDataValidation.d.ts +1 -1
  11. package/crud/contentEntry/entryDataValidation.js +16 -13
  12. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  13. package/crud/contentEntry/searchableFields.d.ts +2 -3
  14. package/crud/contentEntry/searchableFields.js +10 -18
  15. package/crud/contentEntry/searchableFields.js.map +1 -1
  16. package/crud/contentModel.crud.js +2 -1
  17. package/crud/contentModel.crud.js.map +1 -1
  18. package/domain/contentModel/validation/modelFields.js +15 -20
  19. package/domain/contentModel/validation/modelFields.js.map +1 -1
  20. package/exports/api/cms/graphql.d.ts +1 -0
  21. package/exports/api/cms/graphql.js +3 -0
  22. package/exports/api/cms/graphql.js.map +1 -0
  23. package/exports/api/cms/storage.d.ts +3 -0
  24. package/exports/api/cms/storage.js +5 -0
  25. package/exports/api/cms/storage.js.map +1 -0
  26. package/exports/api/cms/validation.d.ts +4 -0
  27. package/exports/api/cms/validation.js +6 -0
  28. package/exports/api/cms/validation.js.map +1 -0
  29. package/features/contentEntry/CreateEntry/CreateEntryUseCase.d.ts +3 -3
  30. package/features/contentEntry/CreateEntry/CreateEntryUseCase.js +3 -3
  31. package/features/contentEntry/CreateEntry/CreateEntryUseCase.js.map +1 -1
  32. package/features/contentEntry/CreateEntry/events.d.ts +2 -2
  33. package/features/contentEntry/CreateEntry/events.js +1 -1
  34. package/features/contentEntry/CreateEntry/events.js.map +1 -1
  35. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.d.ts +3 -3
  36. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js +3 -3
  37. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js.map +1 -1
  38. package/features/contentEntry/CreateEntryRevisionFrom/events.d.ts +2 -2
  39. package/features/contentEntry/CreateEntryRevisionFrom/events.js +1 -1
  40. package/features/contentEntry/CreateEntryRevisionFrom/events.js.map +1 -1
  41. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.d.ts +1 -1
  42. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js +1 -1
  43. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js.map +1 -1
  44. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.d.ts +2 -2
  45. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js +2 -2
  46. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js.map +1 -1
  47. package/features/contentEntry/DeleteEntry/events.d.ts +2 -2
  48. package/features/contentEntry/DeleteEntry/events.js +1 -1
  49. package/features/contentEntry/DeleteEntry/events.js.map +1 -1
  50. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.d.ts +1 -1
  51. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js +1 -1
  52. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js.map +1 -1
  53. package/features/contentEntry/DeleteEntryRevision/events.d.ts +2 -2
  54. package/features/contentEntry/DeleteEntryRevision/events.js +1 -1
  55. package/features/contentEntry/DeleteEntryRevision/events.js.map +1 -1
  56. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.d.ts +1 -1
  57. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js +1 -1
  58. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js.map +1 -1
  59. package/features/contentEntry/DeleteMultipleEntries/events.d.ts +2 -2
  60. package/features/contentEntry/DeleteMultipleEntries/events.js +1 -1
  61. package/features/contentEntry/DeleteMultipleEntries/events.js.map +1 -1
  62. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js +6 -11
  63. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js.map +1 -1
  64. package/features/contentEntry/ListEntries/ListEntriesUseCase.d.ts +1 -1
  65. package/features/contentEntry/ListEntries/ListEntriesUseCase.js +1 -1
  66. package/features/contentEntry/ListEntries/ListEntriesUseCase.js.map +1 -1
  67. package/features/contentEntry/MoveEntry/MoveEntryUseCase.d.ts +1 -1
  68. package/features/contentEntry/MoveEntry/MoveEntryUseCase.js +1 -1
  69. package/features/contentEntry/MoveEntry/MoveEntryUseCase.js.map +1 -1
  70. package/features/contentEntry/MoveEntry/events.d.ts +2 -2
  71. package/features/contentEntry/MoveEntry/events.js +1 -1
  72. package/features/contentEntry/MoveEntry/events.js.map +1 -1
  73. package/features/contentEntry/PublishEntry/PublishEntryUseCase.d.ts +2 -2
  74. package/features/contentEntry/PublishEntry/PublishEntryUseCase.js +2 -2
  75. package/features/contentEntry/PublishEntry/PublishEntryUseCase.js.map +1 -1
  76. package/features/contentEntry/PublishEntry/events.d.ts +2 -2
  77. package/features/contentEntry/PublishEntry/events.js +1 -1
  78. package/features/contentEntry/PublishEntry/events.js.map +1 -1
  79. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.d.ts +2 -2
  80. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js +2 -2
  81. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js.map +1 -1
  82. package/features/contentEntry/RepublishEntry/events.d.ts +2 -2
  83. package/features/contentEntry/RepublishEntry/events.js +1 -1
  84. package/features/contentEntry/RepublishEntry/events.js.map +1 -1
  85. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.d.ts +2 -2
  86. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js +2 -2
  87. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js.map +1 -1
  88. package/features/contentEntry/RestoreEntryFromBin/events.d.ts +2 -2
  89. package/features/contentEntry/RestoreEntryFromBin/events.js +1 -1
  90. package/features/contentEntry/RestoreEntryFromBin/events.js.map +1 -1
  91. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.d.ts +2 -2
  92. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js +2 -2
  93. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js.map +1 -1
  94. package/features/contentEntry/UnpublishEntry/events.d.ts +2 -2
  95. package/features/contentEntry/UnpublishEntry/events.js +1 -1
  96. package/features/contentEntry/UnpublishEntry/events.js.map +1 -1
  97. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.d.ts +3 -3
  98. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js +3 -3
  99. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js.map +1 -1
  100. package/features/contentEntry/UpdateEntry/events.d.ts +2 -2
  101. package/features/contentEntry/UpdateEntry/events.js +1 -1
  102. package/features/contentEntry/UpdateEntry/events.js.map +1 -1
  103. package/features/contentModel/CreateModel/CreateModelRepository.d.ts +1 -1
  104. package/features/contentModel/CreateModel/CreateModelRepository.js +1 -1
  105. package/features/contentModel/CreateModel/CreateModelRepository.js.map +1 -1
  106. package/features/contentModel/CreateModel/CreateModelUseCase.d.ts +3 -3
  107. package/features/contentModel/CreateModel/CreateModelUseCase.js +3 -3
  108. package/features/contentModel/CreateModel/CreateModelUseCase.js.map +1 -1
  109. package/features/contentModel/CreateModel/events.d.ts +2 -2
  110. package/features/contentModel/CreateModel/events.js +1 -1
  111. package/features/contentModel/CreateModel/events.js.map +1 -1
  112. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.d.ts +1 -1
  113. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js +1 -1
  114. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js.map +1 -1
  115. package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.d.ts +3 -3
  116. package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js +4 -3
  117. package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js.map +1 -1
  118. package/features/contentModel/CreateModelFrom/events.d.ts +2 -2
  119. package/features/contentModel/CreateModelFrom/events.js +1 -1
  120. package/features/contentModel/CreateModelFrom/events.js.map +1 -1
  121. package/features/contentModel/DeleteModel/DeleteModelUseCase.d.ts +1 -1
  122. package/features/contentModel/DeleteModel/DeleteModelUseCase.js +1 -1
  123. package/features/contentModel/DeleteModel/DeleteModelUseCase.js.map +1 -1
  124. package/features/contentModel/DeleteModel/events.d.ts +2 -2
  125. package/features/contentModel/DeleteModel/events.js +1 -1
  126. package/features/contentModel/DeleteModel/events.js.map +1 -1
  127. package/features/contentModel/ModelToAstConverter/ModelToAstConverter.d.ts +3 -3
  128. package/features/contentModel/ModelToAstConverter/ModelToAstConverter.js +6 -6
  129. package/features/contentModel/ModelToAstConverter/ModelToAstConverter.js.map +1 -1
  130. package/features/contentModel/UpdateModel/UpdateModelUseCase.d.ts +2 -2
  131. package/features/contentModel/UpdateModel/UpdateModelUseCase.js +2 -2
  132. package/features/contentModel/UpdateModel/UpdateModelUseCase.js.map +1 -1
  133. package/features/contentModel/UpdateModel/events.d.ts +2 -2
  134. package/features/contentModel/UpdateModel/events.js +1 -1
  135. package/features/contentModel/UpdateModel/events.js.map +1 -1
  136. package/features/contentModel/shared/ModelsFetcher.d.ts +1 -1
  137. package/features/contentModel/shared/ModelsFetcher.js +1 -1
  138. package/features/contentModel/shared/ModelsFetcher.js.map +1 -1
  139. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.d.ts +1 -1
  140. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js +1 -1
  141. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js.map +1 -1
  142. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.d.ts +3 -3
  143. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js +3 -3
  144. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js.map +1 -1
  145. package/features/contentModelGroup/CreateGroup/events.d.ts +2 -2
  146. package/features/contentModelGroup/CreateGroup/events.js +1 -1
  147. package/features/contentModelGroup/CreateGroup/events.js.map +1 -1
  148. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.d.ts +1 -1
  149. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js +1 -1
  150. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js.map +1 -1
  151. package/features/contentModelGroup/DeleteGroup/events.d.ts +2 -2
  152. package/features/contentModelGroup/DeleteGroup/events.js +1 -1
  153. package/features/contentModelGroup/DeleteGroup/events.js.map +1 -1
  154. package/features/contentModelGroup/GetGroup/GetGroupRepository.d.ts +2 -2
  155. package/features/contentModelGroup/GetGroup/GetGroupRepository.js +2 -2
  156. package/features/contentModelGroup/GetGroup/GetGroupRepository.js.map +1 -1
  157. package/features/contentModelGroup/ListGroups/ListGroupsRepository.d.ts +2 -2
  158. package/features/contentModelGroup/ListGroups/ListGroupsRepository.js +2 -2
  159. package/features/contentModelGroup/ListGroups/ListGroupsRepository.js.map +1 -1
  160. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.d.ts +2 -2
  161. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js +2 -2
  162. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js.map +1 -1
  163. package/features/contentModelGroup/UpdateGroup/events.d.ts +2 -2
  164. package/features/contentModelGroup/UpdateGroup/events.js +1 -1
  165. package/features/contentModelGroup/UpdateGroup/events.js.map +1 -1
  166. package/features/contentModelGroup/shared/PluginGroupsProvider.d.ts +2 -2
  167. package/features/contentModelGroup/shared/PluginGroupsProvider.js +2 -2
  168. package/features/contentModelGroup/shared/PluginGroupsProvider.js.map +1 -1
  169. package/features/graphql/feature.d.ts +1 -0
  170. package/features/graphql/feature.js +34 -0
  171. package/features/graphql/feature.js.map +1 -0
  172. package/features/graphql/fields/CmsModelFieldToGraphQLRegistry.d.ts +13 -0
  173. package/features/graphql/fields/CmsModelFieldToGraphQLRegistry.js +27 -0
  174. package/features/graphql/fields/CmsModelFieldToGraphQLRegistry.js.map +1 -0
  175. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.d.ts +97 -0
  176. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js +4 -0
  177. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js.map +1 -0
  178. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQLRegistry.d.ts +10 -0
  179. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQLRegistry.js +4 -0
  180. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQLRegistry.js.map +1 -0
  181. package/features/graphql/fields/base/BooleanToGraphQL.d.ts +26 -0
  182. package/features/graphql/fields/base/BooleanToGraphQL.js +68 -0
  183. package/features/graphql/fields/base/BooleanToGraphQL.js.map +1 -0
  184. package/features/graphql/fields/base/DateTimeToGraphQL.d.ts +26 -0
  185. package/features/graphql/fields/base/DateTimeToGraphQL.js +97 -0
  186. package/features/graphql/fields/base/DateTimeToGraphQL.js.map +1 -0
  187. package/features/graphql/fields/base/DynamicZoneToGraphQL.d.ts +30 -0
  188. package/features/graphql/fields/base/DynamicZoneToGraphQL.js +280 -0
  189. package/features/graphql/fields/base/DynamicZoneToGraphQL.js.map +1 -0
  190. package/features/graphql/fields/base/FileToGraphQL.d.ts +22 -0
  191. package/features/graphql/fields/base/FileToGraphQL.js +39 -0
  192. package/features/graphql/fields/base/FileToGraphQL.js.map +1 -0
  193. package/features/graphql/fields/base/JsonToGraphQL.d.ts +24 -0
  194. package/features/graphql/fields/base/JsonToGraphQL.js +52 -0
  195. package/features/graphql/fields/base/JsonToGraphQL.js.map +1 -0
  196. package/features/graphql/fields/base/LongTextToGraphQL.d.ts +24 -0
  197. package/features/graphql/fields/base/LongTextToGraphQL.js +57 -0
  198. package/features/graphql/fields/base/LongTextToGraphQL.js.map +1 -0
  199. package/features/graphql/fields/base/NumberToGraphQL.d.ts +26 -0
  200. package/features/graphql/fields/base/NumberToGraphQL.js +78 -0
  201. package/features/graphql/fields/base/NumberToGraphQL.js.map +1 -0
  202. package/features/graphql/fields/base/ObjectToGraphQL.d.ts +31 -0
  203. package/features/graphql/fields/base/ObjectToGraphQL.js +264 -0
  204. package/features/graphql/fields/base/ObjectToGraphQL.js.map +1 -0
  205. package/features/graphql/fields/base/RefToGraphQL.d.ts +29 -0
  206. package/features/graphql/fields/base/RefToGraphQL.js +261 -0
  207. package/features/graphql/fields/base/RefToGraphQL.js.map +1 -0
  208. package/features/graphql/fields/base/RichTextToGraphQL.d.ts +25 -0
  209. package/features/graphql/fields/base/RichTextToGraphQL.js +58 -0
  210. package/features/graphql/fields/base/RichTextToGraphQL.js.map +1 -0
  211. package/features/graphql/fields/base/SearchableJsonToGraphQL.d.ts +26 -0
  212. package/features/graphql/fields/base/SearchableJsonToGraphQL.js +62 -0
  213. package/features/graphql/fields/base/SearchableJsonToGraphQL.js.map +1 -0
  214. package/features/graphql/fields/base/TextToGraphQL.d.ts +26 -0
  215. package/features/graphql/fields/base/TextToGraphQL.js +74 -0
  216. package/features/graphql/fields/base/TextToGraphQL.js.map +1 -0
  217. package/features/graphql/fields/base/dynamicZone/createTypeDefsForTemplates.d.ts +16 -0
  218. package/features/graphql/fields/base/dynamicZone/createTypeDefsForTemplates.js +37 -0
  219. package/features/graphql/fields/base/dynamicZone/createTypeDefsForTemplates.js.map +1 -0
  220. package/features/graphql/fields/base/dynamicZone/normalizeDynamicZoneInput.d.ts +3 -0
  221. package/features/graphql/fields/base/dynamicZone/normalizeDynamicZoneInput.js +14 -0
  222. package/features/graphql/fields/base/dynamicZone/normalizeDynamicZoneInput.js.map +1 -0
  223. package/{graphqlFields → features/graphql/fields/base}/richText/richTextResolver.d.ts +1 -1
  224. package/{graphqlFields → features/graphql/fields/base}/richText/richTextResolver.js +2 -2
  225. package/features/graphql/fields/base/richText/richTextResolver.js.map +1 -0
  226. package/{graphqlFields/helpers.d.ts → features/graphql/fields/base/utils/createGraphQLInputField.d.ts} +1 -1
  227. package/features/graphql/fields/base/utils/createGraphQLInputField.js +17 -0
  228. package/features/graphql/fields/base/utils/createGraphQLInputField.js.map +1 -0
  229. package/features/graphql/index.d.ts +4 -0
  230. package/features/graphql/index.js +6 -0
  231. package/features/graphql/index.js.map +1 -0
  232. package/features/graphql/sort/abstractions/CmsGraphQLSchemaSorter.d.ts +13 -0
  233. package/features/graphql/sort/abstractions/CmsGraphQLSchemaSorter.js +4 -0
  234. package/features/graphql/sort/abstractions/CmsGraphQLSchemaSorter.js.map +1 -0
  235. package/features/installer/CmsInstaller.d.ts +1 -1
  236. package/features/installer/CmsInstaller.js +1 -1
  237. package/features/installer/CmsInstaller.js.map +1 -1
  238. package/features/shared/abstractions.d.ts +9 -2
  239. package/features/shared/abstractions.js +1 -0
  240. package/features/shared/abstractions.js.map +1 -1
  241. package/features/storage/StorageTransformRegistry.d.ts +13 -0
  242. package/features/storage/StorageTransformRegistry.js +27 -0
  243. package/features/storage/StorageTransformRegistry.js.map +1 -0
  244. package/features/storage/abstractions/StorageTransform.d.ts +26 -0
  245. package/features/storage/abstractions/StorageTransform.js +4 -0
  246. package/features/storage/abstractions/StorageTransform.js.map +1 -0
  247. package/features/storage/abstractions/StorageTransformRegistry.d.ts +10 -0
  248. package/features/storage/abstractions/StorageTransformRegistry.js +4 -0
  249. package/features/storage/abstractions/StorageTransformRegistry.js.map +1 -0
  250. package/features/storage/feature.d.ts +1 -0
  251. package/features/storage/feature.js +24 -0
  252. package/features/storage/feature.js.map +1 -0
  253. package/features/storage/fields/DateStorageTransform.d.ts +10 -0
  254. package/features/storage/fields/DateStorageTransform.js +110 -0
  255. package/features/storage/fields/DateStorageTransform.js.map +1 -0
  256. package/features/storage/fields/DefaultStorageTransform.d.ts +10 -0
  257. package/features/storage/fields/DefaultStorageTransform.js +20 -0
  258. package/features/storage/fields/DefaultStorageTransform.js.map +1 -0
  259. package/features/storage/fields/DynamicZoneStorageTransform.d.ts +10 -0
  260. package/features/storage/fields/DynamicZoneStorageTransform.js +142 -0
  261. package/features/storage/fields/DynamicZoneStorageTransform.js.map +1 -0
  262. package/features/storage/fields/JsonStorageTransform.d.ts +13 -0
  263. package/features/storage/fields/JsonStorageTransform.js +31 -0
  264. package/features/storage/fields/JsonStorageTransform.js.map +1 -0
  265. package/features/storage/fields/LongTextStorageTransform.d.ts +18 -0
  266. package/features/storage/fields/LongTextStorageTransform.js +55 -0
  267. package/features/storage/fields/LongTextStorageTransform.js.map +1 -0
  268. package/features/storage/fields/ObjectStorageTransform.d.ts +10 -0
  269. package/features/storage/fields/ObjectStorageTransform.js +99 -0
  270. package/features/storage/fields/ObjectStorageTransform.js.map +1 -0
  271. package/features/storage/fields/RichTextStorageTransform.d.ts +13 -0
  272. package/features/storage/fields/RichTextStorageTransform.js +39 -0
  273. package/features/storage/fields/RichTextStorageTransform.js.map +1 -0
  274. package/features/storage/index.d.ts +3 -0
  275. package/features/storage/index.js +5 -0
  276. package/features/storage/index.js.map +1 -0
  277. package/features/validation/CmsModelFieldPatternValidatorRegistry.d.ts +12 -0
  278. package/features/validation/CmsModelFieldPatternValidatorRegistry.js +21 -0
  279. package/features/validation/CmsModelFieldPatternValidatorRegistry.js.map +1 -0
  280. package/features/validation/CmsModelFieldValidatorRegistry.d.ts +12 -0
  281. package/features/validation/CmsModelFieldValidatorRegistry.js +23 -0
  282. package/features/validation/CmsModelFieldValidatorRegistry.js.map +1 -0
  283. package/features/validation/abstractions/CmsModelFieldPatternValidator.d.ts +13 -0
  284. package/features/validation/abstractions/CmsModelFieldPatternValidator.js +4 -0
  285. package/features/validation/abstractions/CmsModelFieldPatternValidator.js.map +1 -0
  286. package/features/validation/abstractions/CmsModelFieldPatternValidatorRegistry.d.ts +9 -0
  287. package/features/validation/abstractions/CmsModelFieldPatternValidatorRegistry.js +4 -0
  288. package/features/validation/abstractions/CmsModelFieldPatternValidatorRegistry.js.map +1 -0
  289. package/features/validation/abstractions/CmsModelFieldValidator.d.ts +11 -0
  290. package/features/validation/abstractions/CmsModelFieldValidator.js +4 -0
  291. package/features/validation/abstractions/CmsModelFieldValidator.js.map +1 -0
  292. package/features/validation/abstractions/CmsModelFieldValidatorRegistry.d.ts +9 -0
  293. package/features/validation/abstractions/CmsModelFieldValidatorRegistry.js +4 -0
  294. package/features/validation/abstractions/CmsModelFieldValidatorRegistry.js.map +1 -0
  295. package/features/validation/feature.d.ts +1 -0
  296. package/features/validation/feature.js +48 -0
  297. package/features/validation/feature.js.map +1 -0
  298. package/features/validation/index.d.ts +5 -0
  299. package/features/validation/index.js +7 -0
  300. package/features/validation/index.js.map +1 -0
  301. package/features/validation/validators/DateGteValidator.d.ts +10 -0
  302. package/features/validation/validators/DateGteValidator.js +26 -0
  303. package/features/validation/validators/DateGteValidator.js.map +1 -0
  304. package/features/validation/validators/DateLteValidator.d.ts +10 -0
  305. package/features/validation/validators/DateLteValidator.js +26 -0
  306. package/features/validation/validators/DateLteValidator.js.map +1 -0
  307. package/features/validation/validators/GteValidator.d.ts +10 -0
  308. package/features/validation/validators/GteValidator.js +21 -0
  309. package/features/validation/validators/GteValidator.js.map +1 -0
  310. package/features/validation/validators/InValidator.d.ts +10 -0
  311. package/features/validation/validators/InValidator.js +21 -0
  312. package/features/validation/validators/InValidator.js.map +1 -0
  313. package/features/validation/validators/LteValidator.d.ts +10 -0
  314. package/features/validation/validators/LteValidator.js +21 -0
  315. package/features/validation/validators/LteValidator.js.map +1 -0
  316. package/features/validation/validators/MaxLengthValidator.d.ts +10 -0
  317. package/features/validation/validators/MaxLengthValidator.js +21 -0
  318. package/features/validation/validators/MaxLengthValidator.js.map +1 -0
  319. package/features/validation/validators/MinLengthValidator.d.ts +10 -0
  320. package/features/validation/validators/MinLengthValidator.js +21 -0
  321. package/features/validation/validators/MinLengthValidator.js.map +1 -0
  322. package/features/validation/validators/PatternValidator.d.ts +13 -0
  323. package/features/validation/validators/PatternValidator.js +38 -0
  324. package/features/validation/validators/PatternValidator.js.map +1 -0
  325. package/features/validation/validators/RequiredValidator.d.ts +10 -0
  326. package/features/validation/validators/RequiredValidator.js +16 -0
  327. package/features/validation/validators/RequiredValidator.js.map +1 -0
  328. package/features/validation/validators/TimeGteValidator.d.ts +10 -0
  329. package/features/validation/validators/TimeGteValidator.js +21 -0
  330. package/features/validation/validators/TimeGteValidator.js.map +1 -0
  331. package/features/validation/validators/TimeLteValidator.d.ts +10 -0
  332. package/features/validation/validators/TimeLteValidator.js +21 -0
  333. package/features/validation/validators/TimeLteValidator.js.map +1 -0
  334. package/features/validation/validators/UniqueValidator.d.ts +10 -0
  335. package/features/validation/validators/UniqueValidator.js +47 -0
  336. package/features/validation/validators/UniqueValidator.js.map +1 -0
  337. package/features/validation/validators/patterns/EmailPattern.d.ts +12 -0
  338. package/features/validation/validators/patterns/EmailPattern.js +14 -0
  339. package/features/validation/validators/patterns/EmailPattern.js.map +1 -0
  340. package/features/validation/validators/patterns/LowerCasePattern.d.ts +12 -0
  341. package/features/validation/validators/patterns/LowerCasePattern.js +14 -0
  342. package/features/validation/validators/patterns/LowerCasePattern.js.map +1 -0
  343. package/features/validation/validators/patterns/LowerCaseSpacePattern.d.ts +12 -0
  344. package/features/validation/validators/patterns/LowerCaseSpacePattern.js +14 -0
  345. package/features/validation/validators/patterns/LowerCaseSpacePattern.js.map +1 -0
  346. package/features/validation/validators/patterns/UpperCasePattern.d.ts +12 -0
  347. package/features/validation/validators/patterns/UpperCasePattern.js +14 -0
  348. package/features/validation/validators/patterns/UpperCasePattern.js.map +1 -0
  349. package/features/validation/validators/patterns/UpperCaseSpacePattern.d.ts +12 -0
  350. package/features/validation/validators/patterns/UpperCaseSpacePattern.js +14 -0
  351. package/features/validation/validators/patterns/UpperCaseSpacePattern.js.map +1 -0
  352. package/features/validation/validators/patterns/UrlPattern.d.ts +12 -0
  353. package/features/validation/validators/patterns/UrlPattern.js +14 -0
  354. package/features/validation/validators/patterns/UrlPattern.js.map +1 -0
  355. package/graphql/getSchema/generateCacheKey.js +1 -1
  356. package/graphql/getSchema/generateCacheKey.js.map +1 -1
  357. package/graphql/schema/baseSchema.d.ts +2 -1
  358. package/graphql/schema/baseSchema.js +11 -9
  359. package/graphql/schema/baseSchema.js.map +1 -1
  360. package/graphql/schema/createFieldResolvers.d.ts +3 -2
  361. package/graphql/schema/createFieldResolvers.js +5 -4
  362. package/graphql/schema/createFieldResolvers.js.map +1 -1
  363. package/graphql/schema/createManageResolvers.d.ts +3 -2
  364. package/graphql/schema/createManageResolvers.js +3 -3
  365. package/graphql/schema/createManageResolvers.js.map +1 -1
  366. package/graphql/schema/createManageSDL.d.ts +4 -4
  367. package/graphql/schema/createManageSDL.js +8 -8
  368. package/graphql/schema/createManageSDL.js.map +1 -1
  369. package/graphql/schema/createPreviewResolvers.d.ts +3 -2
  370. package/graphql/schema/createPreviewResolvers.js +4 -4
  371. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  372. package/graphql/schema/createReadResolvers.d.ts +3 -2
  373. package/graphql/schema/createReadResolvers.js +4 -4
  374. package/graphql/schema/createReadResolvers.js.map +1 -1
  375. package/graphql/schema/createReadSDL.d.ts +4 -4
  376. package/graphql/schema/createReadSDL.js +7 -7
  377. package/graphql/schema/createReadSDL.js.map +1 -1
  378. package/graphql/schema/createSingularResolvers.d.ts +3 -2
  379. package/graphql/schema/createSingularResolvers.js +3 -3
  380. package/graphql/schema/createSingularResolvers.js.map +1 -1
  381. package/graphql/schema/createSingularSDL.d.ts +3 -2
  382. package/graphql/schema/createSingularSDL.js +3 -3
  383. package/graphql/schema/createSingularSDL.js.map +1 -1
  384. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js +6 -7
  385. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js.map +1 -1
  386. package/graphql/schema/schemaPlugins.js +14 -17
  387. package/graphql/schema/schemaPlugins.js.map +1 -1
  388. package/index.d.ts +1 -4
  389. package/index.js +2 -6
  390. package/index.js.map +1 -1
  391. package/package.json +25 -25
  392. package/plugins/index.d.ts +0 -2
  393. package/plugins/index.js +0 -2
  394. package/plugins/index.js.map +1 -1
  395. package/types/modelField.d.ts +1 -1
  396. package/types/modelField.js.map +1 -1
  397. package/types/plugins.d.ts +1 -305
  398. package/types/plugins.js.map +1 -1
  399. package/types/types.d.ts +4 -44
  400. package/types/types.js +0 -4
  401. package/types/types.js.map +1 -1
  402. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.d.ts +3 -2
  403. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js +3 -3
  404. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js.map +1 -1
  405. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.d.ts +4 -3
  406. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js +3 -3
  407. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js.map +1 -1
  408. package/utils/converters/ConverterCollection.d.ts +2 -0
  409. package/utils/converters/ConverterCollection.js +3 -2
  410. package/utils/converters/ConverterCollection.js.map +1 -1
  411. package/utils/converters/valueKeyFromStorageConverter.d.ts +2 -0
  412. package/utils/converters/valueKeyFromStorageConverter.js +4 -2
  413. package/utils/converters/valueKeyFromStorageConverter.js.map +1 -1
  414. package/utils/converters/valueKeyStorageConverter.d.ts +2 -3
  415. package/utils/converters/valueKeyStorageConverter.js +7 -3
  416. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  417. package/utils/converters/valueKeyToStorageConverter.d.ts +2 -0
  418. package/utils/converters/valueKeyToStorageConverter.js +4 -2
  419. package/utils/converters/valueKeyToStorageConverter.js.map +1 -1
  420. package/utils/createTypeFromFields.d.ts +3 -2
  421. package/utils/createTypeFromFields.js +3 -3
  422. package/utils/createTypeFromFields.js.map +1 -1
  423. package/utils/entryStorage.d.ts +8 -15
  424. package/utils/entryStorage.js +31 -59
  425. package/utils/entryStorage.js.map +1 -1
  426. package/utils/getBaseFieldType.js +3 -0
  427. package/utils/getBaseFieldType.js.map +1 -1
  428. package/utils/getSchemaFromFieldPlugins.d.ts +3 -2
  429. package/utils/getSchemaFromFieldPlugins.js +5 -9
  430. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  431. package/utils/renderFields.d.ts +4 -3
  432. package/utils/renderFields.js +14 -9
  433. package/utils/renderFields.js.map +1 -1
  434. package/utils/renderGetFilterFields.d.ts +3 -2
  435. package/utils/renderGetFilterFields.js +2 -2
  436. package/utils/renderGetFilterFields.js.map +1 -1
  437. package/utils/renderInputFields.d.ts +4 -3
  438. package/utils/renderInputFields.js +5 -11
  439. package/utils/renderInputFields.js.map +1 -1
  440. package/utils/renderListFilterFields.d.ts +3 -2
  441. package/utils/renderListFilterFields.js +5 -3
  442. package/utils/renderListFilterFields.js.map +1 -1
  443. package/utils/renderSortEnum.d.ts +4 -4
  444. package/utils/renderSortEnum.js +11 -11
  445. package/utils/renderSortEnum.js.map +1 -1
  446. package/graphql/schema/createFieldTypePluginRecords.d.ts +0 -3
  447. package/graphql/schema/createFieldTypePluginRecords.js +0 -8
  448. package/graphql/schema/createFieldTypePluginRecords.js.map +0 -1
  449. package/graphqlFields/boolean.d.ts +0 -2
  450. package/graphqlFields/boolean.js +0 -52
  451. package/graphqlFields/boolean.js.map +0 -1
  452. package/graphqlFields/datetime.d.ts +0 -2
  453. package/graphqlFields/datetime.js +0 -71
  454. package/graphqlFields/datetime.js.map +0 -1
  455. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +0 -2
  456. package/graphqlFields/dynamicZone/dynamicZoneField.js +0 -313
  457. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +0 -1
  458. package/graphqlFields/dynamicZone/index.d.ts +0 -1
  459. package/graphqlFields/dynamicZone/index.js +0 -3
  460. package/graphqlFields/dynamicZone/index.js.map +0 -1
  461. package/graphqlFields/file.d.ts +0 -2
  462. package/graphqlFields/file.js +0 -37
  463. package/graphqlFields/file.js.map +0 -1
  464. package/graphqlFields/helpers.js +0 -20
  465. package/graphqlFields/helpers.js.map +0 -1
  466. package/graphqlFields/index.d.ts +0 -2
  467. package/graphqlFields/index.js +0 -15
  468. package/graphqlFields/index.js.map +0 -1
  469. package/graphqlFields/json.d.ts +0 -2
  470. package/graphqlFields/json.js +0 -42
  471. package/graphqlFields/json.js.map +0 -1
  472. package/graphqlFields/longText.d.ts +0 -2
  473. package/graphqlFields/longText.js +0 -57
  474. package/graphqlFields/longText.js.map +0 -1
  475. package/graphqlFields/number.d.ts +0 -2
  476. package/graphqlFields/number.js +0 -63
  477. package/graphqlFields/number.js.map +0 -1
  478. package/graphqlFields/object.d.ts +0 -2
  479. package/graphqlFields/object.js +0 -245
  480. package/graphqlFields/object.js.map +0 -1
  481. package/graphqlFields/ref.d.ts +0 -2
  482. package/graphqlFields/ref.js +0 -286
  483. package/graphqlFields/ref.js.map +0 -1
  484. package/graphqlFields/richText/richTextResolver.js.map +0 -1
  485. package/graphqlFields/richText.d.ts +0 -2
  486. package/graphqlFields/richText.js +0 -48
  487. package/graphqlFields/richText.js.map +0 -1
  488. package/graphqlFields/searchableJson.d.ts +0 -2
  489. package/graphqlFields/searchableJson.js +0 -53
  490. package/graphqlFields/searchableJson.js.map +0 -1
  491. package/graphqlFields/text.d.ts +0 -2
  492. package/graphqlFields/text.js +0 -59
  493. package/graphqlFields/text.js.map +0 -1
  494. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +0 -20
  495. package/plugins/CmsGraphQLSchemaSorterPlugin.js +0 -19
  496. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +0 -1
  497. package/plugins/StorageTransformPlugin.d.ts +0 -35
  498. package/plugins/StorageTransformPlugin.js +0 -26
  499. package/plugins/StorageTransformPlugin.js.map +0 -1
  500. package/storage/date.d.ts +0 -3
  501. package/storage/date.js +0 -110
  502. package/storage/date.js.map +0 -1
  503. package/storage/default.d.ts +0 -2
  504. package/storage/default.js +0 -19
  505. package/storage/default.js.map +0 -1
  506. package/storage/dynamicZone.d.ts +0 -2
  507. package/storage/dynamicZone.js +0 -149
  508. package/storage/dynamicZone.js.map +0 -1
  509. package/storage/index.d.ts +0 -1
  510. package/storage/index.js +0 -13
  511. package/storage/index.js.map +0 -1
  512. package/storage/json.d.ts +0 -2
  513. package/storage/json.js +0 -49
  514. package/storage/json.js.map +0 -1
  515. package/storage/object.d.ts +0 -2
  516. package/storage/object.js +0 -104
  517. package/storage/object.js.map +0 -1
  518. package/validators/dateGte.d.ts +0 -2
  519. package/validators/dateGte.js +0 -25
  520. package/validators/dateGte.js.map +0 -1
  521. package/validators/dateLte.d.ts +0 -2
  522. package/validators/dateLte.js +0 -25
  523. package/validators/dateLte.js.map +0 -1
  524. package/validators/gte.d.ts +0 -2
  525. package/validators/gte.js +0 -22
  526. package/validators/gte.js.map +0 -1
  527. package/validators/in.d.ts +0 -2
  528. package/validators/in.js +0 -22
  529. package/validators/in.js.map +0 -1
  530. package/validators/index.d.ts +0 -1
  531. package/validators/index.js +0 -16
  532. package/validators/index.js.map +0 -1
  533. package/validators/lte.d.ts +0 -2
  534. package/validators/lte.js +0 -22
  535. package/validators/lte.js.map +0 -1
  536. package/validators/maxLength.d.ts +0 -2
  537. package/validators/maxLength.js +0 -22
  538. package/validators/maxLength.js.map +0 -1
  539. package/validators/minLength.d.ts +0 -2
  540. package/validators/minLength.js +0 -22
  541. package/validators/minLength.js.map +0 -1
  542. package/validators/pattern.d.ts +0 -2
  543. package/validators/pattern.js +0 -36
  544. package/validators/pattern.js.map +0 -1
  545. package/validators/patternPlugins/email.d.ts +0 -2
  546. package/validators/patternPlugins/email.js +0 -13
  547. package/validators/patternPlugins/email.js.map +0 -1
  548. package/validators/patternPlugins/index.d.ts +0 -2
  549. package/validators/patternPlugins/index.js +0 -11
  550. package/validators/patternPlugins/index.js.map +0 -1
  551. package/validators/patternPlugins/lowerCase.d.ts +0 -2
  552. package/validators/patternPlugins/lowerCase.js +0 -13
  553. package/validators/patternPlugins/lowerCase.js.map +0 -1
  554. package/validators/patternPlugins/lowerCaseSpace.d.ts +0 -2
  555. package/validators/patternPlugins/lowerCaseSpace.js +0 -13
  556. package/validators/patternPlugins/lowerCaseSpace.js.map +0 -1
  557. package/validators/patternPlugins/upperCase.d.ts +0 -2
  558. package/validators/patternPlugins/upperCase.js +0 -13
  559. package/validators/patternPlugins/upperCase.js.map +0 -1
  560. package/validators/patternPlugins/upperCaseSpace.d.ts +0 -2
  561. package/validators/patternPlugins/upperCaseSpace.js +0 -13
  562. package/validators/patternPlugins/upperCaseSpace.js.map +0 -1
  563. package/validators/patternPlugins/url.d.ts +0 -2
  564. package/validators/patternPlugins/url.js +0 -13
  565. package/validators/patternPlugins/url.js.map +0 -1
  566. package/validators/required.d.ts +0 -2
  567. package/validators/required.js +0 -17
  568. package/validators/required.js.map +0 -1
  569. package/validators/timeGte.d.ts +0 -2
  570. package/validators/timeGte.js +0 -20
  571. package/validators/timeGte.js.map +0 -1
  572. package/validators/timeLte.d.ts +0 -2
  573. package/validators/timeLte.js +0 -20
  574. package/validators/timeLte.js.map +0 -1
  575. package/validators/unique.d.ts +0 -6
  576. package/validators/unique.js +0 -57
  577. package/validators/unique.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["validation","CmsModelFieldValidator","TimeLteValidatorImpl","name","validate","value","validator","lteValue","settings","then","v","catch","TimeLteValidator","createImplementation","implementation","dependencies"],"sources":["TimeLteValidator.ts"],"sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidator } from \"../abstractions/CmsModelFieldValidator.js\";\nimport type { CmsModelFieldValidatorValidateParams } from \"~/types/types.js\";\n\nclass TimeLteValidatorImpl implements CmsModelFieldValidator.Interface {\n public readonly name = \"timeLte\";\n\n public async validate({\n value,\n validator\n }: CmsModelFieldValidatorValidateParams): Promise<boolean> {\n const lteValue = validator.settings?.value;\n if (typeof lteValue === \"undefined\") {\n return true;\n }\n return validation\n .validate(value, `timeLte:${lteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n}\n\nexport const TimeLteValidator = CmsModelFieldValidator.createImplementation({\n implementation: TimeLteValidatorImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,sBAAsB;AAG/B,MAAMC,oBAAoB,CAA6C;EACnDC,IAAI,GAAG,SAAS;EAEhC,MAAaC,QAAQA,CAAC;IAClBC,KAAK;IACLC;EACkC,CAAC,EAAoB;IACvD,MAAMC,QAAQ,GAAGD,SAAS,CAACE,QAAQ,EAAEH,KAAK;IAC1C,IAAI,OAAOE,QAAQ,KAAK,WAAW,EAAE;MACjC,OAAO,IAAI;IACf;IACA,OAAOP,UAAU,CACZI,QAAQ,CAACC,KAAK,EAAE,WAAWE,QAAQ,EAAE,CAAC,CACtCE,IAAI,CAACC,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC,CACrBC,KAAK,CAAC,MAAM,KAAK,CAAC;EAC3B;AACJ;AAEA,OAAO,MAAMC,gBAAgB,GAAGX,sBAAsB,CAACY,oBAAoB,CAAC;EACxEC,cAAc,EAAEZ,oBAAoB;EACpCa,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { CmsModelFieldValidator } from "../abstractions/CmsModelFieldValidator.js";
2
+ import type { CmsModelFieldValidatorValidateParams } from "../../../types/types.js";
3
+ declare class UniqueValidatorImpl implements CmsModelFieldValidator.Interface {
4
+ readonly name = "unique";
5
+ validate({ field, value: initialValue, context, model, entry }: CmsModelFieldValidatorValidateParams): Promise<boolean>;
6
+ }
7
+ export declare const UniqueValidator: typeof UniqueValidatorImpl & {
8
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions/CmsModelFieldValidator.js").ICmsModelFieldValidator>;
9
+ };
10
+ export {};
@@ -0,0 +1,47 @@
1
+ import WebinyError from "@webiny/error";
2
+ import { CmsModelFieldValidator } from "../abstractions/CmsModelFieldValidator.js";
3
+ import { ListLatestEntriesUseCase } from "../../contentEntry/ListEntries/index.js";
4
+ class UniqueValidatorImpl {
5
+ name = "unique";
6
+ async validate({
7
+ field,
8
+ value: initialValue,
9
+ context,
10
+ model,
11
+ entry
12
+ }) {
13
+ const value = (initialValue || "").trim();
14
+ if (!value) {
15
+ return true;
16
+ }
17
+ try {
18
+ const listLatest = context.container.resolve(ListLatestEntriesUseCase);
19
+ const listResult = await listLatest.execute(model, {
20
+ where: {
21
+ entryId_not: entry ? entry.entryId : undefined,
22
+ values: {
23
+ [field.fieldId]: value
24
+ }
25
+ },
26
+ limit: 1
27
+ });
28
+ if (listResult.isFail()) {
29
+ throw listResult.error;
30
+ }
31
+ return listResult.value.entries.length === 0;
32
+ } catch (ex) {
33
+ throw new WebinyError("Error while checking if the field value is unique.", "UNIQUE_CHECK_ERROR", {
34
+ error: ex,
35
+ field,
36
+ value,
37
+ model
38
+ });
39
+ }
40
+ }
41
+ }
42
+ export const UniqueValidator = CmsModelFieldValidator.createImplementation({
43
+ implementation: UniqueValidatorImpl,
44
+ dependencies: []
45
+ });
46
+
47
+ //# sourceMappingURL=UniqueValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WebinyError","CmsModelFieldValidator","ListLatestEntriesUseCase","UniqueValidatorImpl","name","validate","field","value","initialValue","context","model","entry","trim","listLatest","container","resolve","listResult","execute","where","entryId_not","entryId","undefined","values","fieldId","limit","isFail","error","entries","length","ex","UniqueValidator","createImplementation","implementation","dependencies"],"sources":["UniqueValidator.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsModelFieldValidator } from \"../abstractions/CmsModelFieldValidator.js\";\nimport type { CmsModelFieldValidatorValidateParams } from \"~/types/types.js\";\nimport { ListLatestEntriesUseCase } from \"~/features/contentEntry/ListEntries/index.js\";\n\nclass UniqueValidatorImpl implements CmsModelFieldValidator.Interface {\n public readonly name = \"unique\";\n\n public async validate({\n field,\n value: initialValue,\n context,\n model,\n entry\n }: CmsModelFieldValidatorValidateParams): Promise<boolean> {\n const value = (initialValue || \"\").trim();\n if (!value) {\n return true;\n }\n try {\n const listLatest = context.container.resolve(ListLatestEntriesUseCase);\n\n const listResult = await listLatest.execute(model, {\n where: {\n entryId_not: entry ? entry.entryId : undefined,\n values: {\n [field.fieldId]: value\n }\n },\n limit: 1\n });\n if (listResult.isFail()) {\n throw listResult.error;\n }\n\n return listResult.value.entries.length === 0;\n } catch (ex) {\n throw new WebinyError(\n \"Error while checking if the field value is unique.\",\n \"UNIQUE_CHECK_ERROR\",\n {\n error: ex,\n field,\n value,\n model\n }\n );\n }\n }\n}\n\nexport const UniqueValidator = CmsModelFieldValidator.createImplementation({\n implementation: UniqueValidatorImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,eAAe;AACvC,SAASC,sBAAsB;AAE/B,SAASC,wBAAwB;AAEjC,MAAMC,mBAAmB,CAA6C;EAClDC,IAAI,GAAG,QAAQ;EAE/B,MAAaC,QAAQA,CAAC;IAClBC,KAAK;IACLC,KAAK,EAAEC,YAAY;IACnBC,OAAO;IACPC,KAAK;IACLC;EACkC,CAAC,EAAoB;IACvD,MAAMJ,KAAK,GAAG,CAACC,YAAY,IAAI,EAAE,EAAEI,IAAI,CAAC,CAAC;IACzC,IAAI,CAACL,KAAK,EAAE;MACR,OAAO,IAAI;IACf;IACA,IAAI;MACA,MAAMM,UAAU,GAAGJ,OAAO,CAACK,SAAS,CAACC,OAAO,CAACb,wBAAwB,CAAC;MAEtE,MAAMc,UAAU,GAAG,MAAMH,UAAU,CAACI,OAAO,CAACP,KAAK,EAAE;QAC/CQ,KAAK,EAAE;UACHC,WAAW,EAAER,KAAK,GAAGA,KAAK,CAACS,OAAO,GAAGC,SAAS;UAC9CC,MAAM,EAAE;YACJ,CAAChB,KAAK,CAACiB,OAAO,GAAGhB;UACrB;QACJ,CAAC;QACDiB,KAAK,EAAE;MACX,CAAC,CAAC;MACF,IAAIR,UAAU,CAACS,MAAM,CAAC,CAAC,EAAE;QACrB,MAAMT,UAAU,CAACU,KAAK;MAC1B;MAEA,OAAOV,UAAU,CAACT,KAAK,CAACoB,OAAO,CAACC,MAAM,KAAK,CAAC;IAChD,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM,IAAI7B,WAAW,CACjB,oDAAoD,EACpD,oBAAoB,EACpB;QACI0B,KAAK,EAAEG,EAAE;QACTvB,KAAK;QACLC,KAAK;QACLG;MACJ,CACJ,CAAC;IACL;EACJ;AACJ;AAEA,OAAO,MAAMoB,eAAe,GAAG7B,sBAAsB,CAAC8B,oBAAoB,CAAC;EACvEC,cAAc,EAAE7B,mBAAmB;EACnC8B,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ declare class EmailPatternImpl implements CmsModelFieldPatternValidator.Interface {
3
+ readonly pattern: {
4
+ name: string;
5
+ regex: string;
6
+ flags: string;
7
+ };
8
+ }
9
+ export declare const EmailPattern: typeof EmailPatternImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("../../abstractions/CmsModelFieldPatternValidator.js").ICmsModelFieldPatternValidator>;
11
+ };
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ class EmailPatternImpl {
3
+ pattern = {
4
+ name: "email",
5
+ regex: `^\\w[\\+\\w.-]*@([\\w-]+\\.)+[\\w-]+$`,
6
+ flags: "i"
7
+ };
8
+ }
9
+ export const EmailPattern = CmsModelFieldPatternValidator.createImplementation({
10
+ implementation: EmailPatternImpl,
11
+ dependencies: []
12
+ });
13
+
14
+ //# sourceMappingURL=EmailPattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CmsModelFieldPatternValidator","EmailPatternImpl","pattern","name","regex","flags","EmailPattern","createImplementation","implementation","dependencies"],"sources":["EmailPattern.ts"],"sourcesContent":["import { CmsModelFieldPatternValidator } from \"../../abstractions/CmsModelFieldPatternValidator.js\";\n\nclass EmailPatternImpl implements CmsModelFieldPatternValidator.Interface {\n public readonly pattern = {\n name: \"email\",\n regex: `^\\\\w[\\\\+\\\\w.-]*@([\\\\w-]+\\\\.)+[\\\\w-]+$`,\n flags: \"i\"\n };\n}\n\nexport const EmailPattern = CmsModelFieldPatternValidator.createImplementation({\n implementation: EmailPatternImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,6BAA6B;AAEtC,MAAMC,gBAAgB,CAAoD;EACtDC,OAAO,GAAG;IACtBC,IAAI,EAAE,OAAO;IACbC,KAAK,EAAE,uCAAuC;IAC9CC,KAAK,EAAE;EACX,CAAC;AACL;AAEA,OAAO,MAAMC,YAAY,GAAGN,6BAA6B,CAACO,oBAAoB,CAAC;EAC3EC,cAAc,EAAEP,gBAAgB;EAChCQ,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ declare class LowerCasePatternImpl implements CmsModelFieldPatternValidator.Interface {
3
+ readonly pattern: {
4
+ name: string;
5
+ regex: string;
6
+ flags: string;
7
+ };
8
+ }
9
+ export declare const LowerCasePattern: typeof LowerCasePatternImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("../../abstractions/CmsModelFieldPatternValidator.js").ICmsModelFieldPatternValidator>;
11
+ };
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ class LowerCasePatternImpl {
3
+ pattern = {
4
+ name: "lowerCase",
5
+ regex: `^([a-z]*)$`,
6
+ flags: ""
7
+ };
8
+ }
9
+ export const LowerCasePattern = CmsModelFieldPatternValidator.createImplementation({
10
+ implementation: LowerCasePatternImpl,
11
+ dependencies: []
12
+ });
13
+
14
+ //# sourceMappingURL=LowerCasePattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CmsModelFieldPatternValidator","LowerCasePatternImpl","pattern","name","regex","flags","LowerCasePattern","createImplementation","implementation","dependencies"],"sources":["LowerCasePattern.ts"],"sourcesContent":["import { CmsModelFieldPatternValidator } from \"../../abstractions/CmsModelFieldPatternValidator.js\";\n\nclass LowerCasePatternImpl implements CmsModelFieldPatternValidator.Interface {\n public readonly pattern = {\n name: \"lowerCase\",\n regex: `^([a-z]*)$`,\n flags: \"\"\n };\n}\n\nexport const LowerCasePattern = CmsModelFieldPatternValidator.createImplementation({\n implementation: LowerCasePatternImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,6BAA6B;AAEtC,MAAMC,oBAAoB,CAAoD;EAC1DC,OAAO,GAAG;IACtBC,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAE,YAAY;IACnBC,KAAK,EAAE;EACX,CAAC;AACL;AAEA,OAAO,MAAMC,gBAAgB,GAAGN,6BAA6B,CAACO,oBAAoB,CAAC;EAC/EC,cAAc,EAAEP,oBAAoB;EACpCQ,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ declare class LowerCaseSpacePatternImpl implements CmsModelFieldPatternValidator.Interface {
3
+ readonly pattern: {
4
+ name: string;
5
+ regex: string;
6
+ flags: string;
7
+ };
8
+ }
9
+ export declare const LowerCaseSpacePattern: typeof LowerCaseSpacePatternImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("../../abstractions/CmsModelFieldPatternValidator.js").ICmsModelFieldPatternValidator>;
11
+ };
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ class LowerCaseSpacePatternImpl {
3
+ pattern = {
4
+ name: "lowerCaseSpace",
5
+ regex: `^([a-z\\s]+)$`,
6
+ flags: ""
7
+ };
8
+ }
9
+ export const LowerCaseSpacePattern = CmsModelFieldPatternValidator.createImplementation({
10
+ implementation: LowerCaseSpacePatternImpl,
11
+ dependencies: []
12
+ });
13
+
14
+ //# sourceMappingURL=LowerCaseSpacePattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CmsModelFieldPatternValidator","LowerCaseSpacePatternImpl","pattern","name","regex","flags","LowerCaseSpacePattern","createImplementation","implementation","dependencies"],"sources":["LowerCaseSpacePattern.ts"],"sourcesContent":["import { CmsModelFieldPatternValidator } from \"../../abstractions/CmsModelFieldPatternValidator.js\";\n\nclass LowerCaseSpacePatternImpl implements CmsModelFieldPatternValidator.Interface {\n public readonly pattern = {\n name: \"lowerCaseSpace\",\n regex: `^([a-z\\\\s]+)$`,\n flags: \"\"\n };\n}\n\nexport const LowerCaseSpacePattern = CmsModelFieldPatternValidator.createImplementation({\n implementation: LowerCaseSpacePatternImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,6BAA6B;AAEtC,MAAMC,yBAAyB,CAAoD;EAC/DC,OAAO,GAAG;IACtBC,IAAI,EAAE,gBAAgB;IACtBC,KAAK,EAAE,eAAe;IACtBC,KAAK,EAAE;EACX,CAAC;AACL;AAEA,OAAO,MAAMC,qBAAqB,GAAGN,6BAA6B,CAACO,oBAAoB,CAAC;EACpFC,cAAc,EAAEP,yBAAyB;EACzCQ,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ declare class UpperCasePatternImpl implements CmsModelFieldPatternValidator.Interface {
3
+ readonly pattern: {
4
+ name: string;
5
+ regex: string;
6
+ flags: string;
7
+ };
8
+ }
9
+ export declare const UpperCasePattern: typeof UpperCasePatternImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("../../abstractions/CmsModelFieldPatternValidator.js").ICmsModelFieldPatternValidator>;
11
+ };
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ class UpperCasePatternImpl {
3
+ pattern = {
4
+ name: "upperCase",
5
+ regex: `^([A-Z]*)$`,
6
+ flags: ""
7
+ };
8
+ }
9
+ export const UpperCasePattern = CmsModelFieldPatternValidator.createImplementation({
10
+ implementation: UpperCasePatternImpl,
11
+ dependencies: []
12
+ });
13
+
14
+ //# sourceMappingURL=UpperCasePattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CmsModelFieldPatternValidator","UpperCasePatternImpl","pattern","name","regex","flags","UpperCasePattern","createImplementation","implementation","dependencies"],"sources":["UpperCasePattern.ts"],"sourcesContent":["import { CmsModelFieldPatternValidator } from \"../../abstractions/CmsModelFieldPatternValidator.js\";\n\nclass UpperCasePatternImpl implements CmsModelFieldPatternValidator.Interface {\n public readonly pattern = {\n name: \"upperCase\",\n regex: `^([A-Z]*)$`,\n flags: \"\"\n };\n}\n\nexport const UpperCasePattern = CmsModelFieldPatternValidator.createImplementation({\n implementation: UpperCasePatternImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,6BAA6B;AAEtC,MAAMC,oBAAoB,CAAoD;EAC1DC,OAAO,GAAG;IACtBC,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAE,YAAY;IACnBC,KAAK,EAAE;EACX,CAAC;AACL;AAEA,OAAO,MAAMC,gBAAgB,GAAGN,6BAA6B,CAACO,oBAAoB,CAAC;EAC/EC,cAAc,EAAEP,oBAAoB;EACpCQ,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ declare class UpperCaseSpacePatternImpl implements CmsModelFieldPatternValidator.Interface {
3
+ readonly pattern: {
4
+ name: string;
5
+ regex: string;
6
+ flags: string;
7
+ };
8
+ }
9
+ export declare const UpperCaseSpacePattern: typeof UpperCaseSpacePatternImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("../../abstractions/CmsModelFieldPatternValidator.js").ICmsModelFieldPatternValidator>;
11
+ };
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ class UpperCaseSpacePatternImpl {
3
+ pattern = {
4
+ name: "upperCaseSpace",
5
+ regex: `^([A-Z\\s]+)$`,
6
+ flags: ""
7
+ };
8
+ }
9
+ export const UpperCaseSpacePattern = CmsModelFieldPatternValidator.createImplementation({
10
+ implementation: UpperCaseSpacePatternImpl,
11
+ dependencies: []
12
+ });
13
+
14
+ //# sourceMappingURL=UpperCaseSpacePattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CmsModelFieldPatternValidator","UpperCaseSpacePatternImpl","pattern","name","regex","flags","UpperCaseSpacePattern","createImplementation","implementation","dependencies"],"sources":["UpperCaseSpacePattern.ts"],"sourcesContent":["import { CmsModelFieldPatternValidator } from \"../../abstractions/CmsModelFieldPatternValidator.js\";\n\nclass UpperCaseSpacePatternImpl implements CmsModelFieldPatternValidator.Interface {\n public readonly pattern = {\n name: \"upperCaseSpace\",\n regex: `^([A-Z\\\\s]+)$`,\n flags: \"\"\n };\n}\n\nexport const UpperCaseSpacePattern = CmsModelFieldPatternValidator.createImplementation({\n implementation: UpperCaseSpacePatternImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,6BAA6B;AAEtC,MAAMC,yBAAyB,CAAoD;EAC/DC,OAAO,GAAG;IACtBC,IAAI,EAAE,gBAAgB;IACtBC,KAAK,EAAE,eAAe;IACtBC,KAAK,EAAE;EACX,CAAC;AACL;AAEA,OAAO,MAAMC,qBAAqB,GAAGN,6BAA6B,CAACO,oBAAoB,CAAC;EACpFC,cAAc,EAAEP,yBAAyB;EACzCQ,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ declare class UrlPatternImpl implements CmsModelFieldPatternValidator.Interface {
3
+ readonly pattern: {
4
+ name: string;
5
+ regex: string;
6
+ flags: string;
7
+ };
8
+ }
9
+ export declare const UrlPattern: typeof UrlPatternImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("../../abstractions/CmsModelFieldPatternValidator.js").ICmsModelFieldPatternValidator>;
11
+ };
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import { CmsModelFieldPatternValidator } from "../../abstractions/CmsModelFieldPatternValidator.js";
2
+ class UrlPatternImpl {
3
+ pattern = {
4
+ name: "url",
5
+ regex: "^(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?$",
6
+ flags: "i"
7
+ };
8
+ }
9
+ export const UrlPattern = CmsModelFieldPatternValidator.createImplementation({
10
+ implementation: UrlPatternImpl,
11
+ dependencies: []
12
+ });
13
+
14
+ //# sourceMappingURL=UrlPattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CmsModelFieldPatternValidator","UrlPatternImpl","pattern","name","regex","flags","UrlPattern","createImplementation","implementation","dependencies"],"sources":["UrlPattern.ts"],"sourcesContent":["import { CmsModelFieldPatternValidator } from \"../../abstractions/CmsModelFieldPatternValidator.js\";\n\nclass UrlPatternImpl implements CmsModelFieldPatternValidator.Interface {\n public readonly pattern = {\n name: \"url\",\n regex: \"^(ftp|http|https):\\\\/\\\\/(\\\\w+:{0,1}\\\\w*@)?(\\\\S+)(:[0-9]+)?(\\\\/|\\\\/([\\\\w#!:.?+=&%@!\\\\-\\\\/]))?$\",\n flags: \"i\"\n };\n}\n\nexport const UrlPattern = CmsModelFieldPatternValidator.createImplementation({\n implementation: UrlPatternImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,6BAA6B;AAEtC,MAAMC,cAAc,CAAoD;EACpDC,OAAO,GAAG;IACtBC,IAAI,EAAE,KAAK;IACXC,KAAK,EAAE,+FAA+F;IACtGC,KAAK,EAAE;EACX,CAAC;AACL;AAEA,OAAO,MAAMC,UAAU,GAAGN,6BAA6B,CAACO,oBAAoB,CAAC;EACzEC,cAAc,EAAEP,cAAc;EAC9BQ,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -18,7 +18,7 @@ export const generateCacheKey = async params => {
18
18
  keys.push(model.modelId, model.singularApiName, model.pluralApiName, value);
19
19
  }
20
20
  const key = keys.join("#");
21
- const hash = crypto.createHash("sha1");
21
+ const hash = crypto.createHash("sha256");
22
22
  hash.update(key);
23
23
  return hash.digest("hex");
24
24
  };
@@ -1 +1 @@
1
- {"version":3,"names":["crypto","generateCacheKey","params","models","keys","model","savedOn","value","Date","toISOString","push","modelId","singularApiName","pluralApiName","key","join","hash","createHash","update","digest"],"sources":["generateCacheKey.ts"],"sourcesContent":["import type { CmsModel } from \"~/types/index.js\";\nimport crypto from \"crypto\";\n\ninterface GenerateCacheKeyParams {\n models: Pick<CmsModel, \"modelId\" | \"singularApiName\" | \"pluralApiName\" | \"savedOn\">[];\n}\n\n/**\n * Method generates cache key based on last model change time.\n * Or sets \"unknown\" - possible when no models in database.\n */\nexport const generateCacheKey = async (params: GenerateCacheKeyParams): Promise<string> => {\n const { models } = params;\n\n const keys: string[] = [];\n for (const model of models) {\n const savedOn = model.savedOn;\n const value =\n // @ts-expect-error\n savedOn instanceof Date || savedOn?.toISOString\n ? // @ts-expect-error\n savedOn.toISOString()\n : savedOn || \"unknown\";\n keys.push(model.modelId, model.singularApiName, model.pluralApiName, value);\n }\n const key = keys.join(\"#\");\n\n const hash = crypto.createHash(\"sha1\");\n hash.update(key);\n return hash.digest(\"hex\");\n};\n"],"mappings":"AACA,OAAOA,MAAM,MAAM,QAAQ;AAM3B;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,MAAOC,MAA8B,IAAsB;EACvF,MAAM;IAAEC;EAAO,CAAC,GAAGD,MAAM;EAEzB,MAAME,IAAc,GAAG,EAAE;EACzB,KAAK,MAAMC,KAAK,IAAIF,MAAM,EAAE;IACxB,MAAMG,OAAO,GAAGD,KAAK,CAACC,OAAO;IAC7B,MAAMC,KAAK;IACP;IACAD,OAAO,YAAYE,IAAI,IAAIF,OAAO,EAAEG,WAAW;IACzC;IACAH,OAAO,CAACG,WAAW,CAAC,CAAC,GACrBH,OAAO,IAAI,SAAS;IAC9BF,IAAI,CAACM,IAAI,CAACL,KAAK,CAACM,OAAO,EAAEN,KAAK,CAACO,eAAe,EAAEP,KAAK,CAACQ,aAAa,EAAEN,KAAK,CAAC;EAC/E;EACA,MAAMO,GAAG,GAAGV,IAAI,CAACW,IAAI,CAAC,GAAG,CAAC;EAE1B,MAAMC,IAAI,GAAGhB,MAAM,CAACiB,UAAU,CAAC,MAAM,CAAC;EACtCD,IAAI,CAACE,MAAM,CAACJ,GAAG,CAAC;EAChB,OAAOE,IAAI,CAACG,MAAM,CAAC,KAAK,CAAC;AAC7B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["crypto","generateCacheKey","params","models","keys","model","savedOn","value","Date","toISOString","push","modelId","singularApiName","pluralApiName","key","join","hash","createHash","update","digest"],"sources":["generateCacheKey.ts"],"sourcesContent":["import type { CmsModel } from \"~/types/index.js\";\nimport crypto from \"crypto\";\n\ninterface GenerateCacheKeyParams {\n models: Pick<CmsModel, \"modelId\" | \"singularApiName\" | \"pluralApiName\" | \"savedOn\">[];\n}\n\n/**\n * Method generates cache key based on last model change time.\n * Or sets \"unknown\" - possible when no models in database.\n */\nexport const generateCacheKey = async (params: GenerateCacheKeyParams): Promise<string> => {\n const { models } = params;\n\n const keys: string[] = [];\n for (const model of models) {\n const savedOn = model.savedOn;\n const value =\n // @ts-expect-error\n savedOn instanceof Date || savedOn?.toISOString\n ? // @ts-expect-error\n savedOn.toISOString()\n : savedOn || \"unknown\";\n keys.push(model.modelId, model.singularApiName, model.pluralApiName, value);\n }\n const key = keys.join(\"#\");\n\n const hash = crypto.createHash(\"sha256\");\n hash.update(key);\n return hash.digest(\"hex\");\n};\n"],"mappings":"AACA,OAAOA,MAAM,MAAM,QAAQ;AAM3B;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,MAAOC,MAA8B,IAAsB;EACvF,MAAM;IAAEC;EAAO,CAAC,GAAGD,MAAM;EAEzB,MAAME,IAAc,GAAG,EAAE;EACzB,KAAK,MAAMC,KAAK,IAAIF,MAAM,EAAE;IACxB,MAAMG,OAAO,GAAGD,KAAK,CAACC,OAAO;IAC7B,MAAMC,KAAK;IACP;IACAD,OAAO,YAAYE,IAAI,IAAIF,OAAO,EAAEG,WAAW;IACzC;IACAH,OAAO,CAACG,WAAW,CAAC,CAAC,GACrBH,OAAO,IAAI,SAAS;IAC9BF,IAAI,CAACM,IAAI,CAACL,KAAK,CAACM,OAAO,EAAEN,KAAK,CAACO,eAAe,EAAEP,KAAK,CAACQ,aAAa,EAAEN,KAAK,CAAC;EAC/E;EACA,MAAMO,GAAG,GAAGV,IAAI,CAACW,IAAI,CAAC,GAAG,CAAC;EAE1B,MAAMC,IAAI,GAAGhB,MAAM,CAACiB,UAAU,CAAC,QAAQ,CAAC;EACxCD,IAAI,CAACE,MAAM,CAACJ,GAAG,CAAC;EAChB,OAAOE,IAAI,CAACG,MAAM,CAAC,KAAK,CAAC;AAC7B,CAAC","ignoreList":[]}
@@ -1,2 +1,3 @@
1
+ import type { CmsContext } from "../../types/index.js";
1
2
  import { ContextPlugin } from "@webiny/api";
2
- export declare const createBaseSchema: () => ContextPlugin<import("@webiny/api/types").Context>;
3
+ export declare const createBaseSchema: () => ContextPlugin<CmsContext>;
@@ -2,26 +2,28 @@ import { createCmsGraphQLSchemaPlugin } from "../../plugins/index.js";
2
2
  import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
3
3
  import { ContextPlugin } from "@webiny/api";
4
4
  import camelCase from "lodash/camelCase.js";
5
- const createSkipValidatorEnum = plugins => {
6
- const validators = plugins.byType("cms-model-field-validator").reduce((collection, validator) => {
7
- const name = camelCase(validator.validator.name);
5
+ import { CmsModelFieldValidatorRegistry } from "../../features/validation/index.js";
6
+ const createSkipValidatorEnum = container => {
7
+ const registry = container.resolve(CmsModelFieldValidatorRegistry);
8
+ const names = registry.getAll().reduce((collection, validator) => {
9
+ const name = camelCase(validator.name);
8
10
  if (collection.includes(name)) {
9
11
  return collection;
10
12
  }
11
13
  collection.push(name);
12
14
  return collection;
13
15
  }, []);
14
- if (validators.length === 0) {
15
- validators.push("_empty");
16
+ if (names.length === 0) {
17
+ names.push("_empty");
16
18
  }
17
19
  return /* GraphQL */`
18
20
  enum SkipValidatorEnum {
19
- ${validators.join("\n")}
21
+ ${names.join("\n")}
20
22
  }
21
23
  `;
22
24
  };
23
- const createSchema = plugins => {
24
- const skipValidatorEnum = createSkipValidatorEnum(plugins);
25
+ const createSchema = context => {
26
+ const skipValidatorEnum = createSkipValidatorEnum(context.container);
25
27
  const cmsPlugin = createCmsGraphQLSchemaPlugin({
26
28
  typeDefs: /* GraphQL */`
27
29
  type CmsIdentity {
@@ -161,7 +163,7 @@ const createSchema = plugins => {
161
163
  };
162
164
  export const createBaseSchema = () => {
163
165
  const plugin = new ContextPlugin(async context => {
164
- context.plugins.register(...createSchema(context.plugins));
166
+ context.plugins.register(...createSchema(context));
165
167
  });
166
168
  plugin.name = "headless-cms.graphql.createBaseSchema";
167
169
  return plugin;
@@ -1 +1 @@
1
- {"version":3,"names":["createCmsGraphQLSchemaPlugin","GraphQLSchemaPlugin","ContextPlugin","camelCase","createSkipValidatorEnum","plugins","validators","byType","reduce","collection","validator","name","includes","push","length","join","createSchema","skipValidatorEnum","cmsPlugin","typeDefs","resolvers","corePlugin","schema","createBaseSchema","plugin","context","register"],"sources":["baseSchema.ts"],"sourcesContent":["import type { CmsContext, CmsModelFieldValidatorPlugin } from \"~/types/index.js\";\nimport { createCmsGraphQLSchemaPlugin } from \"~/plugins/index.js\";\nimport type { IGraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport camelCase from \"lodash/camelCase.js\";\n\nconst createSkipValidatorEnum = (plugins: PluginsContainer) => {\n const validators = plugins\n .byType<CmsModelFieldValidatorPlugin>(\"cms-model-field-validator\")\n .reduce<string[]>((collection, validator) => {\n const name = camelCase(validator.validator.name);\n if (collection.includes(name)) {\n return collection;\n }\n collection.push(name);\n return collection;\n }, []);\n\n if (validators.length === 0) {\n validators.push(\"_empty\");\n }\n return /* GraphQL */ `\n enum SkipValidatorEnum {\n ${validators.join(\"\\n\")}\n }\n `;\n};\n\nconst createSchema = (plugins: PluginsContainer): IGraphQLSchemaPlugin<CmsContext>[] => {\n const skipValidatorEnum = createSkipValidatorEnum(plugins);\n\n const cmsPlugin = createCmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsIdentity {\n id: String\n displayName: String\n type: String\n }\n\n type CmsError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type CmsCursors {\n next: String\n previous: String\n }\n\n type CmsListMeta {\n cursor: String\n hasMoreItems: Boolean\n totalCount: Int\n }\n\n input CmsDeleteEntryOptions {\n # force delete an entry that might have some records left behind in the database\n # see CmsDeleteEntryOptions in types.ts\n force: Boolean\n # permanently delete an entry without moving it to the bin\n permanently: Boolean\n }\n\n type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsDeleteMultipleDataResponse {\n id: ID!\n }\n\n type CmsDeleteMultipleResponse {\n data: [CmsDeleteMultipleDataResponse!]\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n\n # Advanced Content Organization\n type WbyAcoLocation {\n folderId: ID\n }\n\n input WbyAcoLocationInput {\n folderId: ID!\n }\n\n input WbyAcoLocationWhereInput {\n folderId: ID\n folderId_in: [ID!]\n folderId_not: ID\n folderId_not_in: [ID!]\n }\n\n ${skipValidatorEnum}\n\n input CreateCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input CreateRevisionCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input UpdateCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input CmsIdentityInput {\n id: String!\n displayName: String!\n type: String!\n }\n\n type CmsEntryValidationResponseData {\n error: String!\n id: String!\n fieldId: String!\n parents: [String!]!\n }\n\n type CmsEntryValidationResponse {\n data: [CmsEntryValidationResponseData!]\n error: CmsError\n }\n\n type CmsEntrySystem {\n _empty: String\n }\n\n type CmsEntryLive {\n version: Int!\n }\n\n input CmsEntryLiveWhereInput {\n version: Int\n version_gt: Int\n version_gte: Int\n version_lt: Int\n version_lte: Int\n version_not: Int\n version_in: [Int!]\n version_not_in: [Int!]\n }\n\n input ListWhereInputCmsEntrySystem {\n _empty: String\n }\n `,\n resolvers: {}\n });\n cmsPlugin.name = \"headless-cms.graphql.schema.base\";\n const corePlugin = new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: cmsPlugin.schema.typeDefs,\n resolvers: cmsPlugin.schema.resolvers\n });\n corePlugin.name = \"headless-cms.graphql.core.schema.base\";\n /**\n * Due to splitting of CMS and Core schema plugins, we must have both defined for CMS to work.\n */\n return [cmsPlugin, corePlugin];\n};\n\nexport const createBaseSchema = () => {\n const plugin = new ContextPlugin(async context => {\n context.plugins.register(...createSchema(context.plugins));\n });\n\n plugin.name = \"headless-cms.graphql.createBaseSchema\";\n\n return plugin;\n};\n"],"mappings":"AACA,SAASA,4BAA4B;AAErC,SAASC,mBAAmB,QAAQ,yBAAyB;AAE7D,SAASC,aAAa,QAAQ,aAAa;AAC3C,OAAOC,SAAS,MAAM,qBAAqB;AAE3C,MAAMC,uBAAuB,GAAIC,OAAyB,IAAK;EAC3D,MAAMC,UAAU,GAAGD,OAAO,CACrBE,MAAM,CAA+B,2BAA2B,CAAC,CACjEC,MAAM,CAAW,CAACC,UAAU,EAAEC,SAAS,KAAK;IACzC,MAAMC,IAAI,GAAGR,SAAS,CAACO,SAAS,CAACA,SAAS,CAACC,IAAI,CAAC;IAChD,IAAIF,UAAU,CAACG,QAAQ,CAACD,IAAI,CAAC,EAAE;MAC3B,OAAOF,UAAU;IACrB;IACAA,UAAU,CAACI,IAAI,CAACF,IAAI,CAAC;IACrB,OAAOF,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;EAEV,IAAIH,UAAU,CAACQ,MAAM,KAAK,CAAC,EAAE;IACzBR,UAAU,CAACO,IAAI,CAAC,QAAQ,CAAC;EAC7B;EACA,OAAO,aAAc;AACzB;AACA,aAAaP,UAAU,CAACS,IAAI,CAAC,IAAI,CAAC;AAClC;AACA,KAAK;AACL,CAAC;AAED,MAAMC,YAAY,GAAIX,OAAyB,IAAyC;EACpF,MAAMY,iBAAiB,GAAGb,uBAAuB,CAACC,OAAO,CAAC;EAE1D,MAAMa,SAAS,GAAGlB,4BAA4B,CAAC;IAC3CmB,QAAQ,EAAE,aAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcF,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDG,SAAS,EAAE,CAAC;EAChB,CAAC,CAAC;EACFF,SAAS,CAACP,IAAI,GAAG,kCAAkC;EACnD,MAAMU,UAAU,GAAG,IAAIpB,mBAAmB,CAAa;IACnDkB,QAAQ,EAAED,SAAS,CAACI,MAAM,CAACH,QAAQ;IACnCC,SAAS,EAAEF,SAAS,CAACI,MAAM,CAACF;EAChC,CAAC,CAAC;EACFC,UAAU,CAACV,IAAI,GAAG,uCAAuC;EACzD;AACJ;AACA;EACI,OAAO,CAACO,SAAS,EAAEG,UAAU,CAAC;AAClC,CAAC;AAED,OAAO,MAAME,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAMC,MAAM,GAAG,IAAItB,aAAa,CAAC,MAAMuB,OAAO,IAAI;IAC9CA,OAAO,CAACpB,OAAO,CAACqB,QAAQ,CAAC,GAAGV,YAAY,CAACS,OAAO,CAACpB,OAAO,CAAC,CAAC;EAC9D,CAAC,CAAC;EAEFmB,MAAM,CAACb,IAAI,GAAG,uCAAuC;EAErD,OAAOa,MAAM;AACjB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createCmsGraphQLSchemaPlugin","GraphQLSchemaPlugin","ContextPlugin","camelCase","CmsModelFieldValidatorRegistry","createSkipValidatorEnum","container","registry","resolve","names","getAll","reduce","collection","validator","name","includes","push","length","join","createSchema","context","skipValidatorEnum","cmsPlugin","typeDefs","resolvers","corePlugin","schema","createBaseSchema","plugin","plugins","register"],"sources":["baseSchema.ts"],"sourcesContent":["import type { CmsContext } from \"~/types/index.js\";\nimport { createCmsGraphQLSchemaPlugin } from \"~/plugins/index.js\";\nimport type { IGraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport camelCase from \"lodash/camelCase.js\";\nimport { CmsModelFieldValidatorRegistry } from \"~/features/validation/index.js\";\nimport type { Container } from \"@webiny/di\";\n\nconst createSkipValidatorEnum = (container: Container) => {\n const registry = container.resolve(CmsModelFieldValidatorRegistry);\n const names = registry.getAll().reduce<string[]>((collection, validator) => {\n const name = camelCase(validator.name);\n if (collection.includes(name)) {\n return collection;\n }\n collection.push(name);\n return collection;\n }, []);\n\n if (names.length === 0) {\n names.push(\"_empty\");\n }\n return /* GraphQL */ `\n enum SkipValidatorEnum {\n ${names.join(\"\\n\")}\n }\n `;\n};\n\nconst createSchema = (context: CmsContext): IGraphQLSchemaPlugin<CmsContext>[] => {\n const skipValidatorEnum = createSkipValidatorEnum(context.container);\n\n const cmsPlugin = createCmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsIdentity {\n id: String\n displayName: String\n type: String\n }\n\n type CmsError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type CmsCursors {\n next: String\n previous: String\n }\n\n type CmsListMeta {\n cursor: String\n hasMoreItems: Boolean\n totalCount: Int\n }\n\n input CmsDeleteEntryOptions {\n # force delete an entry that might have some records left behind in the database\n # see CmsDeleteEntryOptions in types.ts\n force: Boolean\n # permanently delete an entry without moving it to the bin\n permanently: Boolean\n }\n\n type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsDeleteMultipleDataResponse {\n id: ID!\n }\n\n type CmsDeleteMultipleResponse {\n data: [CmsDeleteMultipleDataResponse!]\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n\n # Advanced Content Organization\n type WbyAcoLocation {\n folderId: ID\n }\n\n input WbyAcoLocationInput {\n folderId: ID!\n }\n\n input WbyAcoLocationWhereInput {\n folderId: ID\n folderId_in: [ID!]\n folderId_not: ID\n folderId_not_in: [ID!]\n }\n\n ${skipValidatorEnum}\n\n input CreateCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input CreateRevisionCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input UpdateCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input CmsIdentityInput {\n id: String!\n displayName: String!\n type: String!\n }\n\n type CmsEntryValidationResponseData {\n error: String!\n id: String!\n fieldId: String!\n parents: [String!]!\n }\n\n type CmsEntryValidationResponse {\n data: [CmsEntryValidationResponseData!]\n error: CmsError\n }\n\n type CmsEntrySystem {\n _empty: String\n }\n\n type CmsEntryLive {\n version: Int!\n }\n\n input CmsEntryLiveWhereInput {\n version: Int\n version_gt: Int\n version_gte: Int\n version_lt: Int\n version_lte: Int\n version_not: Int\n version_in: [Int!]\n version_not_in: [Int!]\n }\n\n input ListWhereInputCmsEntrySystem {\n _empty: String\n }\n `,\n resolvers: {}\n });\n cmsPlugin.name = \"headless-cms.graphql.schema.base\";\n const corePlugin = new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: cmsPlugin.schema.typeDefs,\n resolvers: cmsPlugin.schema.resolvers\n });\n corePlugin.name = \"headless-cms.graphql.core.schema.base\";\n /**\n * Due to splitting of CMS and Core schema plugins, we must have both defined for CMS to work.\n */\n return [cmsPlugin, corePlugin];\n};\n\nexport const createBaseSchema = () => {\n const plugin = new ContextPlugin<CmsContext>(async context => {\n context.plugins.register(...createSchema(context));\n });\n\n plugin.name = \"headless-cms.graphql.createBaseSchema\";\n\n return plugin;\n};\n"],"mappings":"AACA,SAASA,4BAA4B;AAErC,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,aAAa,QAAQ,aAAa;AAC3C,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,SAASC,8BAA8B;AAGvC,MAAMC,uBAAuB,GAAIC,SAAoB,IAAK;EACtD,MAAMC,QAAQ,GAAGD,SAAS,CAACE,OAAO,CAACJ,8BAA8B,CAAC;EAClE,MAAMK,KAAK,GAAGF,QAAQ,CAACG,MAAM,CAAC,CAAC,CAACC,MAAM,CAAW,CAACC,UAAU,EAAEC,SAAS,KAAK;IACxE,MAAMC,IAAI,GAAGX,SAAS,CAACU,SAAS,CAACC,IAAI,CAAC;IACtC,IAAIF,UAAU,CAACG,QAAQ,CAACD,IAAI,CAAC,EAAE;MAC3B,OAAOF,UAAU;IACrB;IACAA,UAAU,CAACI,IAAI,CAACF,IAAI,CAAC;IACrB,OAAOF,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAIH,KAAK,CAACQ,MAAM,KAAK,CAAC,EAAE;IACpBR,KAAK,CAACO,IAAI,CAAC,QAAQ,CAAC;EACxB;EACA,OAAO,aAAc;AACzB;AACA,aAAaP,KAAK,CAACS,IAAI,CAAC,IAAI,CAAC;AAC7B;AACA,KAAK;AACL,CAAC;AAED,MAAMC,YAAY,GAAIC,OAAmB,IAAyC;EAC9E,MAAMC,iBAAiB,GAAGhB,uBAAuB,CAACe,OAAO,CAACd,SAAS,CAAC;EAEpE,MAAMgB,SAAS,GAAGtB,4BAA4B,CAAC;IAC3CuB,QAAQ,EAAE,aAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcF,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDG,SAAS,EAAE,CAAC;EAChB,CAAC,CAAC;EACFF,SAAS,CAACR,IAAI,GAAG,kCAAkC;EACnD,MAAMW,UAAU,GAAG,IAAIxB,mBAAmB,CAAa;IACnDsB,QAAQ,EAAED,SAAS,CAACI,MAAM,CAACH,QAAQ;IACnCC,SAAS,EAAEF,SAAS,CAACI,MAAM,CAACF;EAChC,CAAC,CAAC;EACFC,UAAU,CAACX,IAAI,GAAG,uCAAuC;EACzD;AACJ;AACA;EACI,OAAO,CAACQ,SAAS,EAAEG,UAAU,CAAC;AAClC,CAAC;AAED,OAAO,MAAME,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAMC,MAAM,GAAG,IAAI1B,aAAa,CAAa,MAAMkB,OAAO,IAAI;IAC1DA,OAAO,CAACS,OAAO,CAACC,QAAQ,CAAC,GAAGX,YAAY,CAACC,OAAO,CAAC,CAAC;EACtD,CAAC,CAAC;EAEFQ,MAAM,CAACd,IAAI,GAAG,uCAAuC;EAErD,OAAOc,MAAM;AACjB,CAAC","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import type { Resolvers } from "@webiny/handler-graphql/types.js";
2
- import type { ApiEndpoint, CmsFieldTypePlugins, CmsModel, CmsModelField } from "../../types/index.js";
2
+ import type { ApiEndpoint, CmsModel, CmsModelField } from "../../types/index.js";
3
+ import type { CmsModelFieldToGraphQLRegistry } from "../../features/graphql/index.js";
3
4
  interface CreateFieldResolvers {
4
5
  graphQLType: string;
5
6
  fields: CmsModelField[];
@@ -10,7 +11,7 @@ interface CreateFieldResolversFactoryParams {
10
11
  endpointType: ApiEndpoint;
11
12
  models: CmsModel[];
12
13
  model: CmsModel;
13
- fieldTypePlugins: CmsFieldTypePlugins;
14
+ fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
14
15
  }
15
16
  /**
16
17
  * We use a factory to avoid passing the parameters for recursive invocations.
@@ -11,7 +11,7 @@ export const createFieldResolversFactory = factoryParams => {
11
11
  endpointType,
12
12
  models,
13
13
  model,
14
- fieldTypePlugins
14
+ fieldRegistry
15
15
  } = factoryParams;
16
16
  return function createFieldResolvers(params) {
17
17
  const {
@@ -23,7 +23,7 @@ export const createFieldResolversFactory = factoryParams => {
23
23
  const fieldResolvers = {};
24
24
  const typeResolvers = {};
25
25
  for (const field of fields) {
26
- const plugin = fieldTypePlugins[getBaseFieldType(field)];
26
+ const plugin = fieldRegistry.get(getBaseFieldType(field));
27
27
  if (!plugin) {
28
28
  continue;
29
29
  }
@@ -35,7 +35,8 @@ export const createFieldResolversFactory = factoryParams => {
35
35
  field
36
36
  });
37
37
  }
38
- const createResolver = plugin[endpointType]?.createResolver || null;
38
+ const api = endpointType === "manage" ? plugin.manage : plugin.read;
39
+ const createResolver = api?.createResolver || null;
39
40
  let resolver;
40
41
  const fieldResolver = createResolver ? createResolver({
41
42
  graphQLType,
@@ -43,7 +44,7 @@ export const createFieldResolversFactory = factoryParams => {
43
44
  model,
44
45
  field,
45
46
  createFieldResolvers,
46
- fieldTypePlugins
47
+ fieldRegistry
47
48
  }) : null;
48
49
 
49
50
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["set","WebinyError","entryFieldFromStorageTransform","getBaseFieldType","createFieldResolversFactory","factoryParams","endpointType","models","model","fieldTypePlugins","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","typeResolvers","field","plugin","fieldId","createResolver","resolver","fieldResolver","Object","assign","getValue","parent","values","value","args","context","info","valueIsRoot","undefined","transformedValue"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set.js\";\nimport type { Resolvers } from \"@webiny/handler-graphql/types.js\";\nimport WebinyError from \"@webiny/error\";\nimport type {\n ApiEndpoint,\n CmsContext,\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField\n} from \"~/types/index.js\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage.js\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\n\ninterface CreateFieldResolvers {\n graphQLType: string;\n fields: CmsModelField[];\n isRoot: boolean;\n extraResolvers?: Resolvers<any>;\n}\n\ninterface CreateFieldResolversFactoryParams {\n endpointType: ApiEndpoint;\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\n/**\n * We use a factory to avoid passing the parameters for recursive invocations.\n * This way they will always be in the function scope, and we can only pass \"fields\".\n */\nexport const createFieldResolversFactory = (factoryParams: CreateFieldResolversFactoryParams) => {\n const { endpointType, models, model, fieldTypePlugins } = factoryParams;\n return function createFieldResolvers(params: CreateFieldResolvers) {\n const { graphQLType, fields, isRoot = false, extraResolvers = {} } = params;\n\n const fieldResolvers: Resolvers<any> = {};\n const typeResolvers = {};\n\n for (const field of fields) {\n const plugin = fieldTypePlugins[getBaseFieldType(field)];\n if (!plugin) {\n continue;\n }\n /**\n * Field that is passed into this factory MUST have fieldId, so filter it before the method call.\n */\n if (!field.fieldId) {\n throw new WebinyError(\n \"Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.\",\n \"FIELD_ID_ERROR\",\n {\n field\n }\n );\n }\n\n const createResolver = plugin[endpointType]?.createResolver || null;\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({\n graphQLType,\n models,\n model,\n field,\n createFieldResolvers,\n fieldTypePlugins\n })\n : null;\n\n /**\n * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.\n * This is to fix the breaking of GraphQL schema.\n */\n if (fieldResolver === false) {\n continue;\n } else if (typeof fieldResolver === \"function\") {\n resolver = fieldResolver;\n } else if (fieldResolver) {\n resolver = fieldResolver.resolver;\n Object.assign(typeResolvers, fieldResolver.typeResolvers);\n }\n\n const { fieldId } = field;\n /**\n * Figure out a better way to extract value from parent.\n * // TODO fix\n */\n const getValue = (parent: any) => {\n if (!parent?.values || !parent?.values[fieldId]) {\n return {\n isRoot: false,\n value: parent?.[fieldId]\n };\n }\n return {\n isRoot: true,\n value: parent.values[fieldId]\n };\n };\n\n fieldResolvers[fieldId] = async (parent, args, context: CmsContext, info) => {\n /**\n * This is required because due to ref field can be requested without the populated data.\n * At that point there is no .values no fieldId property on the parent\n */\n const { isRoot: valueIsRoot, value } = getValue(parent);\n if (value === undefined) {\n return undefined;\n }\n // Get transformed value (eg. data decompression)\n const transformedValue = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value\n });\n\n set(\n valueIsRoot && parent.values ? parent.values : parent,\n fieldId,\n transformedValue\n );\n\n if (!resolver) {\n return valueIsRoot && parent.values[fieldId]\n ? parent.values[fieldId]\n : parent[fieldId];\n }\n\n return await resolver(valueIsRoot ? parent.values : parent, args, context, info);\n };\n }\n\n /**\n * Difference between root and non-root (object and dz, etc... fields) is that root has a values wrapper.\n * Subtypes must not have it.\n */\n if (!isRoot) {\n return {\n [graphQLType]: {\n ...fieldResolvers,\n ...extraResolvers\n },\n ...typeResolvers\n };\n }\n\n return {\n [graphQLType]: {\n ...extraResolvers\n },\n [`${graphQLType}Values`]: fieldResolvers,\n ...typeResolvers\n };\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["set","WebinyError","entryFieldFromStorageTransform","getBaseFieldType","createFieldResolversFactory","factoryParams","endpointType","models","model","fieldRegistry","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","typeResolvers","field","plugin","get","fieldId","api","manage","read","createResolver","resolver","fieldResolver","Object","assign","getValue","parent","values","value","args","context","info","valueIsRoot","undefined","transformedValue"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set.js\";\nimport type { Resolvers } from \"@webiny/handler-graphql/types.js\";\nimport WebinyError from \"@webiny/error\";\nimport type { ApiEndpoint, CmsContext, CmsModel, CmsModelField } from \"~/types/index.js\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage.js\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\nimport type {\n CmsModelFieldToGraphQL,\n CmsModelFieldToGraphQLRegistry\n} from \"~/features/graphql/index.js\";\n\ninterface CreateFieldResolvers {\n graphQLType: string;\n fields: CmsModelField[];\n isRoot: boolean;\n extraResolvers?: Resolvers<any>;\n}\n\ninterface CreateFieldResolversFactoryParams {\n endpointType: ApiEndpoint;\n models: CmsModel[];\n model: CmsModel;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\n/**\n * We use a factory to avoid passing the parameters for recursive invocations.\n * This way they will always be in the function scope, and we can only pass \"fields\".\n */\nexport const createFieldResolversFactory = (factoryParams: CreateFieldResolversFactoryParams) => {\n const { endpointType, models, model, fieldRegistry } = factoryParams;\n return function createFieldResolvers(params: CreateFieldResolvers) {\n const { graphQLType, fields, isRoot = false, extraResolvers = {} } = params;\n\n const fieldResolvers: Resolvers<any> = {};\n const typeResolvers = {};\n\n for (const field of fields) {\n const plugin = fieldRegistry.get(getBaseFieldType(field));\n if (!plugin) {\n continue;\n }\n /**\n * Field that is passed into this factory MUST have fieldId, so filter it before the method call.\n */\n if (!field.fieldId) {\n throw new WebinyError(\n \"Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.\",\n \"FIELD_ID_ERROR\",\n {\n field\n }\n );\n }\n\n const api: CmsModelFieldToGraphQL.ReadApi | CmsModelFieldToGraphQL.ManageApi =\n endpointType === \"manage\" ? plugin.manage : plugin.read;\n const createResolver = api?.createResolver || null;\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({\n graphQLType,\n models,\n model,\n field,\n createFieldResolvers,\n fieldRegistry\n })\n : null;\n\n /**\n * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.\n * This is to fix the breaking of GraphQL schema.\n */\n if (fieldResolver === false) {\n continue;\n } else if (typeof fieldResolver === \"function\") {\n resolver = fieldResolver;\n } else if (fieldResolver) {\n resolver = fieldResolver.resolver;\n Object.assign(typeResolvers, fieldResolver.typeResolvers);\n }\n\n const { fieldId } = field;\n /**\n * Figure out a better way to extract value from parent.\n * // TODO fix\n */\n const getValue = (parent: any) => {\n if (!parent?.values || !parent?.values[fieldId]) {\n return {\n isRoot: false,\n value: parent?.[fieldId]\n };\n }\n return {\n isRoot: true,\n value: parent.values[fieldId]\n };\n };\n\n fieldResolvers[fieldId] = async (parent, args, context: CmsContext, info) => {\n /**\n * This is required because due to ref field can be requested without the populated data.\n * At that point there is no .values no fieldId property on the parent\n */\n const { isRoot: valueIsRoot, value } = getValue(parent);\n if (value === undefined) {\n return undefined;\n }\n // Get transformed value (eg. data decompression)\n const transformedValue = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value\n });\n\n set(\n valueIsRoot && parent.values ? parent.values : parent,\n fieldId,\n transformedValue\n );\n\n if (!resolver) {\n return valueIsRoot && parent.values[fieldId]\n ? parent.values[fieldId]\n : parent[fieldId];\n }\n\n return await resolver(valueIsRoot ? parent.values : parent, args, context, info);\n };\n }\n\n /**\n * Difference between root and non-root (object and dz, etc... fields) is that root has a values wrapper.\n * Subtypes must not have it.\n */\n if (!isRoot) {\n return {\n [graphQLType]: {\n ...fieldResolvers,\n ...extraResolvers\n },\n ...typeResolvers\n };\n }\n\n return {\n [graphQLType]: {\n ...extraResolvers\n },\n [`${graphQLType}Values`]: fieldResolvers,\n ...typeResolvers\n };\n };\n};\n"],"mappings":"AAAA,OAAOA,GAAG,MAAM,eAAe;AAE/B,OAAOC,WAAW,MAAM,eAAe;AAEvC,SAASC,8BAA8B;AACvC,SAASC,gBAAgB;AAoBzB;AACA;AACA;AACA;AACA,OAAO,MAAMC,2BAA2B,GAAIC,aAAgD,IAAK;EAC7F,MAAM;IAAEC,YAAY;IAAEC,MAAM;IAAEC,KAAK;IAAEC;EAAc,CAAC,GAAGJ,aAAa;EACpE,OAAO,SAASK,oBAAoBA,CAACC,MAA4B,EAAE;IAC/D,MAAM;MAAEC,WAAW;MAAEC,MAAM;MAAEC,MAAM,GAAG,KAAK;MAAEC,cAAc,GAAG,CAAC;IAAE,CAAC,GAAGJ,MAAM;IAE3E,MAAMK,cAA8B,GAAG,CAAC,CAAC;IACzC,MAAMC,aAAa,GAAG,CAAC,CAAC;IAExB,KAAK,MAAMC,KAAK,IAAIL,MAAM,EAAE;MACxB,MAAMM,MAAM,GAAGV,aAAa,CAACW,GAAG,CAACjB,gBAAgB,CAACe,KAAK,CAAC,CAAC;MACzD,IAAI,CAACC,MAAM,EAAE;QACT;MACJ;MACA;AACZ;AACA;MACY,IAAI,CAACD,KAAK,CAACG,OAAO,EAAE;QAChB,MAAM,IAAIpB,WAAW,CACjB,6FAA6F,EAC7F,gBAAgB,EAChB;UACIiB;QACJ,CACJ,CAAC;MACL;MAEA,MAAMI,GAAsE,GACxEhB,YAAY,KAAK,QAAQ,GAAGa,MAAM,CAACI,MAAM,GAAGJ,MAAM,CAACK,IAAI;MAC3D,MAAMC,cAAc,GAAGH,GAAG,EAAEG,cAAc,IAAI,IAAI;MAElD,IAAIC,QAAa;MACjB,MAAMC,aAAa,GAAGF,cAAc,GAC9BA,cAAc,CAAC;QACXb,WAAW;QACXL,MAAM;QACNC,KAAK;QACLU,KAAK;QACLR,oBAAoB;QACpBD;MACJ,CAAC,CAAC,GACF,IAAI;;MAEV;AACZ;AACA;AACA;MACY,IAAIkB,aAAa,KAAK,KAAK,EAAE;QACzB;MACJ,CAAC,MAAM,IAAI,OAAOA,aAAa,KAAK,UAAU,EAAE;QAC5CD,QAAQ,GAAGC,aAAa;MAC5B,CAAC,MAAM,IAAIA,aAAa,EAAE;QACtBD,QAAQ,GAAGC,aAAa,CAACD,QAAQ;QACjCE,MAAM,CAACC,MAAM,CAACZ,aAAa,EAAEU,aAAa,CAACV,aAAa,CAAC;MAC7D;MAEA,MAAM;QAAEI;MAAQ,CAAC,GAAGH,KAAK;MACzB;AACZ;AACA;AACA;MACY,MAAMY,QAAQ,GAAIC,MAAW,IAAK;QAC9B,IAAI,CAACA,MAAM,EAAEC,MAAM,IAAI,CAACD,MAAM,EAAEC,MAAM,CAACX,OAAO,CAAC,EAAE;UAC7C,OAAO;YACHP,MAAM,EAAE,KAAK;YACbmB,KAAK,EAAEF,MAAM,GAAGV,OAAO;UAC3B,CAAC;QACL;QACA,OAAO;UACHP,MAAM,EAAE,IAAI;UACZmB,KAAK,EAAEF,MAAM,CAACC,MAAM,CAACX,OAAO;QAChC,CAAC;MACL,CAAC;MAEDL,cAAc,CAACK,OAAO,CAAC,GAAG,OAAOU,MAAM,EAAEG,IAAI,EAAEC,OAAmB,EAAEC,IAAI,KAAK;QACzE;AAChB;AACA;AACA;QACgB,MAAM;UAAEtB,MAAM,EAAEuB,WAAW;UAAEJ;QAAM,CAAC,GAAGH,QAAQ,CAACC,MAAM,CAAC;QACvD,IAAIE,KAAK,KAAKK,SAAS,EAAE;UACrB,OAAOA,SAAS;QACpB;QACA;QACA,MAAMC,gBAAgB,GAAG,MAAMrC,8BAA8B,CAAC;UAC1DiC,OAAO;UACP3B,KAAK;UACLU,KAAK;UACLe;QACJ,CAAC,CAAC;QAEFjC,GAAG,CACCqC,WAAW,IAAIN,MAAM,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM,GAAGD,MAAM,EACrDV,OAAO,EACPkB,gBACJ,CAAC;QAED,IAAI,CAACb,QAAQ,EAAE;UACX,OAAOW,WAAW,IAAIN,MAAM,CAACC,MAAM,CAACX,OAAO,CAAC,GACtCU,MAAM,CAACC,MAAM,CAACX,OAAO,CAAC,GACtBU,MAAM,CAACV,OAAO,CAAC;QACzB;QAEA,OAAO,MAAMK,QAAQ,CAACW,WAAW,GAAGN,MAAM,CAACC,MAAM,GAAGD,MAAM,EAAEG,IAAI,EAAEC,OAAO,EAAEC,IAAI,CAAC;MACpF,CAAC;IACL;;IAEA;AACR;AACA;AACA;IACQ,IAAI,CAACtB,MAAM,EAAE;MACT,OAAO;QACH,CAACF,WAAW,GAAG;UACX,GAAGI,cAAc;UACjB,GAAGD;QACP,CAAC;QACD,GAAGE;MACP,CAAC;IACL;IAEA,OAAO;MACH,CAACL,WAAW,GAAG;QACX,GAAGG;MACP,CAAC;MACD,CAAC,GAAGH,WAAW,QAAQ,GAAGI,cAAc;MACxC,GAAGC;IACP,CAAC;EACL,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,8 +1,9 @@
1
- import type { CmsFieldTypePlugins, CmsModel } from "../../types/index.js";
1
+ import type { CmsModel } from "../../types/index.js";
2
+ import type { CmsModelFieldToGraphQLRegistry } from "../../features/graphql/index.js";
2
3
  interface CreateManageResolversParams {
3
4
  models: CmsModel[];
4
5
  model: CmsModel;
5
- fieldTypePlugins: CmsFieldTypePlugins;
6
+ fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
6
7
  }
7
8
  interface CreateManageResolvers {
8
9
  (params: CreateManageResolversParams): any;
@@ -22,13 +22,13 @@ import { entryFieldFromStorageTransform } from "../../utils/entryStorage.js";
22
22
  export const createManageResolvers = ({
23
23
  models,
24
24
  model,
25
- fieldTypePlugins
25
+ fieldRegistry
26
26
  }) => {
27
27
  const createFieldResolvers = createFieldResolversFactory({
28
28
  endpointType: "manage",
29
29
  models,
30
30
  model,
31
- fieldTypePlugins
31
+ fieldRegistry
32
32
  });
33
33
  const fieldResolvers = createFieldResolvers({
34
34
  graphQLType: model.singularApiName,
@@ -49,7 +49,7 @@ export const createManageResolvers = ({
49
49
  });
50
50
  const resolverFactoryParams = {
51
51
  model,
52
- fieldTypePlugins
52
+ fieldRegistry
53
53
  };
54
54
  return {
55
55
  Query: {
@@ -1 +1 @@
1
- {"version":3,"names":["resolveGet","resolveList","resolveListDeleted","resolveGetRevisions","resolveGetByIds","resolveCreate","resolveUpdate","resolveValidate","resolveMove","resolveDelete","resolveRestoreFromBin","resolveDeleteMultiple","resolvePublish","resolveRepublish","resolveUnpublish","resolveCreateFrom","normalizeGraphQlInput","createFieldResolversFactory","getEntryTitle","getEntryImage","entryFieldFromStorageTransform","createManageResolvers","models","model","fieldTypePlugins","createFieldResolvers","endpointType","fieldResolvers","graphQLType","singularApiName","fields","isRoot","extraResolvers","wbyAco_location","entry","location","meta","resolverFactoryParams","Query","pluralApiName","Mutation","title","description","_","context","descriptionFieldId","field","find","f","fieldId","value","values","image","status","data","revisions","cms","getEntryRevisions","entryId","sort","a","b","version"],"sources":["createManageResolvers.ts"],"sourcesContent":["import type { CmsContext, CmsEntry, CmsFieldTypePlugins, CmsModel } from \"~/types/index.js\";\nimport { resolveGet } from \"./resolvers/manage/resolveGet.js\";\nimport { resolveList } from \"./resolvers/manage/resolveList.js\";\nimport { resolveListDeleted } from \"./resolvers/manage/resolveListDeleted.js\";\nimport { resolveGetRevisions } from \"./resolvers/manage/resolveGetRevisions.js\";\nimport { resolveGetByIds } from \"./resolvers/manage/resolveGetByIds.js\";\nimport { resolveCreate } from \"./resolvers/manage/resolveCreate.js\";\nimport { resolveUpdate } from \"./resolvers/manage/resolveUpdate.js\";\nimport { resolveValidate } from \"./resolvers/manage/resolveValidate.js\";\nimport { resolveMove } from \"./resolvers/manage/resolveMove.js\";\nimport { resolveDelete } from \"./resolvers/manage/resolveDelete.js\";\nimport { resolveRestoreFromBin } from \"./resolvers/manage/resolveRestoreFromBin.js\";\nimport { resolveDeleteMultiple } from \"./resolvers/manage/resolveDeleteMultiple.js\";\nimport { resolvePublish } from \"./resolvers/manage/resolvePublish.js\";\nimport { resolveRepublish } from \"./resolvers/manage/resolveRepublish.js\";\nimport { resolveUnpublish } from \"./resolvers/manage/resolveUnpublish.js\";\nimport { resolveCreateFrom } from \"./resolvers/manage/resolveCreateFrom.js\";\nimport { normalizeGraphQlInput } from \"./resolvers/manage/normalizeGraphQlInput.js\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers.js\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle.js\";\nimport { getEntryImage } from \"~/utils/getEntryImage.js\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage.js\";\n\ninterface CreateManageResolversParams {\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\ninterface CreateManageResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateManageResolversParams): any;\n}\n\nexport const createManageResolvers: CreateManageResolvers = ({\n models,\n model,\n fieldTypePlugins\n}) => {\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"manage\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: model.singularApiName,\n fields: model.fields,\n isRoot: true,\n // These are extra fields we want to apply to field resolvers of \"gqlType\"\n extraResolvers: {\n /**\n * Advanced Content Organization\n */\n wbyAco_location: async (entry: CmsEntry) => {\n return entry.location || null;\n },\n meta(entry) {\n return entry;\n }\n }\n });\n\n const resolverFactoryParams = { model, fieldTypePlugins };\n\n return {\n Query: {\n [`get${model.singularApiName}`]: resolveGet(resolverFactoryParams),\n [`get${model.singularApiName}Revisions`]: resolveGetRevisions(resolverFactoryParams),\n [`get${model.pluralApiName}ByIds`]: resolveGetByIds(resolverFactoryParams),\n [`list${model.pluralApiName}`]: resolveList(resolverFactoryParams),\n [`listDeleted${model.pluralApiName}`]: resolveListDeleted(resolverFactoryParams)\n },\n Mutation: {\n [`create${model.singularApiName}`]:\n normalizeGraphQlInput(resolveCreate)(resolverFactoryParams),\n [`update${model.singularApiName}`]:\n normalizeGraphQlInput(resolveUpdate)(resolverFactoryParams),\n [`validate${model.singularApiName}`]: resolveValidate(resolverFactoryParams),\n [`move${model.singularApiName}`]: resolveMove(resolverFactoryParams),\n [`delete${model.singularApiName}`]: resolveDelete(resolverFactoryParams),\n [`restore${model.singularApiName}FromBin`]:\n resolveRestoreFromBin(resolverFactoryParams),\n [`deleteMultiple${model.pluralApiName}`]: resolveDeleteMultiple(resolverFactoryParams),\n [`publish${model.singularApiName}`]: resolvePublish(resolverFactoryParams),\n [`republish${model.singularApiName}`]: resolveRepublish(resolverFactoryParams),\n [`unpublish${model.singularApiName}`]: resolveUnpublish(resolverFactoryParams),\n [`create${model.singularApiName}From`]:\n normalizeGraphQlInput(resolveCreateFrom)(resolverFactoryParams)\n },\n ...fieldResolvers,\n [`${model.singularApiName}Meta`]: {\n title(entry: Pick<CmsEntry, \"id\" | \"values\">) {\n return getEntryTitle(model, entry);\n },\n description: (entry: Pick<CmsEntry, \"values\">, _: any, context: CmsContext) => {\n if (!model.descriptionFieldId) {\n return \"\";\n }\n const field = model.fields.find(f => f.fieldId === model.descriptionFieldId);\n if (!field) {\n return \"\";\n }\n\n return entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: entry.values[field.fieldId as keyof CmsEntry[\"values\"]]\n });\n },\n image: (entry: Pick<CmsEntry, \"values\">) => {\n return getEntryImage(model, entry);\n },\n status(entry: Pick<CmsEntry, \"status\">) {\n return entry.status;\n },\n data: (entry: Pick<CmsEntry, \"meta\">) => {\n return entry.meta || {};\n },\n async revisions(entry: Pick<CmsEntry, \"entryId\">, _: any, context: CmsContext) {\n const revisions = await context.cms.getEntryRevisions(model, entry.entryId);\n return revisions.sort((a, b) => b.version - a.version);\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["resolveGet","resolveList","resolveListDeleted","resolveGetRevisions","resolveGetByIds","resolveCreate","resolveUpdate","resolveValidate","resolveMove","resolveDelete","resolveRestoreFromBin","resolveDeleteMultiple","resolvePublish","resolveRepublish","resolveUnpublish","resolveCreateFrom","normalizeGraphQlInput","createFieldResolversFactory","getEntryTitle","getEntryImage","entryFieldFromStorageTransform","createManageResolvers","models","model","fieldRegistry","createFieldResolvers","endpointType","fieldResolvers","graphQLType","singularApiName","fields","isRoot","extraResolvers","wbyAco_location","entry","location","meta","resolverFactoryParams","Query","pluralApiName","Mutation","title","description","_","context","descriptionFieldId","field","find","f","fieldId","value","values","image","status","data","revisions","cms","getEntryRevisions","entryId","sort","a","b","version"],"sources":["createManageResolvers.ts"],"sourcesContent":["import type { CmsContext, CmsEntry, CmsModel } from \"~/types/index.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"~/features/graphql/index.js\";\nimport { resolveGet } from \"./resolvers/manage/resolveGet.js\";\nimport { resolveList } from \"./resolvers/manage/resolveList.js\";\nimport { resolveListDeleted } from \"./resolvers/manage/resolveListDeleted.js\";\nimport { resolveGetRevisions } from \"./resolvers/manage/resolveGetRevisions.js\";\nimport { resolveGetByIds } from \"./resolvers/manage/resolveGetByIds.js\";\nimport { resolveCreate } from \"./resolvers/manage/resolveCreate.js\";\nimport { resolveUpdate } from \"./resolvers/manage/resolveUpdate.js\";\nimport { resolveValidate } from \"./resolvers/manage/resolveValidate.js\";\nimport { resolveMove } from \"./resolvers/manage/resolveMove.js\";\nimport { resolveDelete } from \"./resolvers/manage/resolveDelete.js\";\nimport { resolveRestoreFromBin } from \"./resolvers/manage/resolveRestoreFromBin.js\";\nimport { resolveDeleteMultiple } from \"./resolvers/manage/resolveDeleteMultiple.js\";\nimport { resolvePublish } from \"./resolvers/manage/resolvePublish.js\";\nimport { resolveRepublish } from \"./resolvers/manage/resolveRepublish.js\";\nimport { resolveUnpublish } from \"./resolvers/manage/resolveUnpublish.js\";\nimport { resolveCreateFrom } from \"./resolvers/manage/resolveCreateFrom.js\";\nimport { normalizeGraphQlInput } from \"./resolvers/manage/normalizeGraphQlInput.js\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers.js\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle.js\";\nimport { getEntryImage } from \"~/utils/getEntryImage.js\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage.js\";\n\ninterface CreateManageResolversParams {\n models: CmsModel[];\n model: CmsModel;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\ninterface CreateManageResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateManageResolversParams): any;\n}\n\nexport const createManageResolvers: CreateManageResolvers = ({ models, model, fieldRegistry }) => {\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"manage\",\n models,\n model,\n fieldRegistry\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: model.singularApiName,\n fields: model.fields,\n isRoot: true,\n // These are extra fields we want to apply to field resolvers of \"gqlType\"\n extraResolvers: {\n /**\n * Advanced Content Organization\n */\n wbyAco_location: async (entry: CmsEntry) => {\n return entry.location || null;\n },\n meta(entry) {\n return entry;\n }\n }\n });\n\n const resolverFactoryParams = { model, fieldRegistry };\n\n return {\n Query: {\n [`get${model.singularApiName}`]: resolveGet(resolverFactoryParams),\n [`get${model.singularApiName}Revisions`]: resolveGetRevisions(resolverFactoryParams),\n [`get${model.pluralApiName}ByIds`]: resolveGetByIds(resolverFactoryParams),\n [`list${model.pluralApiName}`]: resolveList(resolverFactoryParams),\n [`listDeleted${model.pluralApiName}`]: resolveListDeleted(resolverFactoryParams)\n },\n Mutation: {\n [`create${model.singularApiName}`]:\n normalizeGraphQlInput(resolveCreate)(resolverFactoryParams),\n [`update${model.singularApiName}`]:\n normalizeGraphQlInput(resolveUpdate)(resolverFactoryParams),\n [`validate${model.singularApiName}`]: resolveValidate(resolverFactoryParams),\n [`move${model.singularApiName}`]: resolveMove(resolverFactoryParams),\n [`delete${model.singularApiName}`]: resolveDelete(resolverFactoryParams),\n [`restore${model.singularApiName}FromBin`]:\n resolveRestoreFromBin(resolverFactoryParams),\n [`deleteMultiple${model.pluralApiName}`]: resolveDeleteMultiple(resolverFactoryParams),\n [`publish${model.singularApiName}`]: resolvePublish(resolverFactoryParams),\n [`republish${model.singularApiName}`]: resolveRepublish(resolverFactoryParams),\n [`unpublish${model.singularApiName}`]: resolveUnpublish(resolverFactoryParams),\n [`create${model.singularApiName}From`]:\n normalizeGraphQlInput(resolveCreateFrom)(resolverFactoryParams)\n },\n ...fieldResolvers,\n [`${model.singularApiName}Meta`]: {\n title(entry: Pick<CmsEntry, \"id\" | \"values\">) {\n return getEntryTitle(model, entry);\n },\n description: (entry: Pick<CmsEntry, \"values\">, _: any, context: CmsContext) => {\n if (!model.descriptionFieldId) {\n return \"\";\n }\n const field = model.fields.find(f => f.fieldId === model.descriptionFieldId);\n if (!field) {\n return \"\";\n }\n\n return entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: entry.values[field.fieldId as keyof CmsEntry[\"values\"]]\n });\n },\n image: (entry: Pick<CmsEntry, \"values\">) => {\n return getEntryImage(model, entry);\n },\n status(entry: Pick<CmsEntry, \"status\">) {\n return entry.status;\n },\n data: (entry: Pick<CmsEntry, \"meta\">) => {\n return entry.meta || {};\n },\n async revisions(entry: Pick<CmsEntry, \"entryId\">, _: any, context: CmsContext) {\n const revisions = await context.cms.getEntryRevisions(model, entry.entryId);\n return revisions.sort((a, b) => b.version - a.version);\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}