@webiny/api-headless-cms 0.0.0-unstable.40876133bb → 0.0.0-unstable.496cf268ac

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 (371) hide show
  1. package/context.d.ts +5 -2
  2. package/context.js +53 -19
  3. package/context.js.map +1 -1
  4. package/crud/contentEntry/afterDelete.js +0 -5
  5. package/crud/contentEntry/afterDelete.js.map +1 -1
  6. package/crud/contentEntry/beforeCreate.js +0 -3
  7. package/crud/contentEntry/beforeCreate.js.map +1 -1
  8. package/crud/contentEntry/beforeUpdate.js +0 -3
  9. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  10. package/crud/contentEntry/entryDataValidation.js +1 -40
  11. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  12. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  13. package/crud/contentEntry/markLockedFields.js +19 -29
  14. package/crud/contentEntry/markLockedFields.js.map +1 -1
  15. package/crud/contentEntry/referenceFieldsMapping.js +12 -64
  16. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  17. package/crud/contentEntry/searchableFields.d.ts +9 -0
  18. package/crud/contentEntry/searchableFields.js +72 -0
  19. package/crud/contentEntry/searchableFields.js.map +1 -0
  20. package/crud/contentEntry.crud.d.ts +2 -1
  21. package/crud/contentEntry.crud.js +140 -193
  22. package/crud/contentEntry.crud.js.map +1 -1
  23. package/crud/contentModel/afterCreate.js +0 -2
  24. package/crud/contentModel/afterCreate.js.map +1 -1
  25. package/crud/contentModel/afterCreateFrom.js +0 -2
  26. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  27. package/crud/contentModel/afterDelete.js +0 -2
  28. package/crud/contentModel/afterDelete.js.map +1 -1
  29. package/crud/contentModel/afterUpdate.js +0 -2
  30. package/crud/contentModel/afterUpdate.js.map +1 -1
  31. package/crud/contentModel/beforeCreate.d.ts +2 -3
  32. package/crud/contentModel/beforeCreate.js +11 -36
  33. package/crud/contentModel/beforeCreate.js.map +1 -1
  34. package/crud/contentModel/beforeDelete.js +0 -10
  35. package/crud/contentModel/beforeDelete.js.map +1 -1
  36. package/crud/contentModel/beforeUpdate.d.ts +2 -4
  37. package/crud/contentModel/beforeUpdate.js +6 -7
  38. package/crud/contentModel/beforeUpdate.js.map +1 -1
  39. package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
  40. package/crud/contentModel/compatibility/modelApiName.js +24 -0
  41. package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
  42. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  43. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  44. package/crud/contentModel/createFieldStorageId.js +4 -3
  45. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  46. package/crud/contentModel/defaultFields.d.ts +5 -0
  47. package/crud/contentModel/defaultFields.js +58 -0
  48. package/crud/contentModel/defaultFields.js.map +1 -0
  49. package/crud/contentModel/fields/descriptionField.d.ts +2 -0
  50. package/crud/contentModel/fields/descriptionField.js +42 -0
  51. package/crud/contentModel/fields/descriptionField.js.map +1 -0
  52. package/crud/contentModel/fields/imageField.d.ts +2 -0
  53. package/crud/contentModel/fields/imageField.js +46 -0
  54. package/crud/contentModel/fields/imageField.js.map +1 -0
  55. package/crud/contentModel/fields/titleField.d.ts +2 -0
  56. package/crud/contentModel/fields/titleField.js +58 -0
  57. package/crud/contentModel/fields/titleField.js.map +1 -0
  58. package/crud/contentModel/models.js +12 -0
  59. package/crud/contentModel/models.js.map +1 -1
  60. package/crud/contentModel/validateLayout.js +0 -8
  61. package/crud/contentModel/validateLayout.js.map +1 -1
  62. package/crud/contentModel/validateModel.d.ts +4 -4
  63. package/crud/contentModel/validateModel.js +6 -11
  64. package/crud/contentModel/validateModel.js.map +1 -1
  65. package/crud/contentModel/validateModelFields.d.ts +4 -4
  66. package/crud/contentModel/validateModelFields.js +131 -147
  67. package/crud/contentModel/validateModelFields.js.map +1 -1
  68. package/crud/contentModel/validation.d.ts +519 -0
  69. package/crud/contentModel/validation.js +145 -0
  70. package/crud/contentModel/validation.js.map +1 -0
  71. package/crud/contentModel.crud.js +245 -272
  72. package/crud/contentModel.crud.js.map +1 -1
  73. package/crud/contentModelGroup/beforeCreate.js +0 -12
  74. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  75. package/crud/contentModelGroup/beforeDelete.js +0 -8
  76. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  77. package/crud/contentModelGroup/beforeUpdate.js +0 -5
  78. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  79. package/crud/contentModelGroup/validation.d.ts +30 -0
  80. package/crud/contentModelGroup/validation.js +34 -0
  81. package/crud/contentModelGroup/validation.js.map +1 -0
  82. package/crud/contentModelGroup.crud.js +53 -95
  83. package/crud/contentModelGroup.crud.js.map +1 -1
  84. package/crud/settings.crud.js +0 -12
  85. package/crud/settings.crud.js.map +1 -1
  86. package/crud/system.crud.js +1 -96
  87. package/crud/system.crud.js.map +1 -1
  88. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
  89. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  90. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  91. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +203 -0
  92. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  93. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
  94. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  95. package/fieldConverters/index.d.ts +2 -1
  96. package/fieldConverters/index.js +2 -5
  97. package/fieldConverters/index.js.map +1 -1
  98. package/graphql/buildSchemaPlugins.d.ts +8 -3
  99. package/graphql/buildSchemaPlugins.js +6 -14
  100. package/graphql/buildSchemaPlugins.js.map +1 -1
  101. package/graphql/createExecutableSchema.d.ts +7 -0
  102. package/graphql/createExecutableSchema.js +29 -0
  103. package/graphql/createExecutableSchema.js.map +1 -0
  104. package/graphql/generateSchema.d.ts +8 -0
  105. package/graphql/generateSchema.js +31 -0
  106. package/graphql/generateSchema.js.map +1 -0
  107. package/graphql/graphQLHandlerFactory.js +95 -74
  108. package/graphql/graphQLHandlerFactory.js.map +1 -1
  109. package/graphql/index.d.ts +1 -3
  110. package/graphql/index.js +2 -46
  111. package/graphql/index.js.map +1 -1
  112. package/graphql/schema/baseContentSchema.d.ts +6 -2
  113. package/graphql/schema/baseContentSchema.js +10 -20
  114. package/graphql/schema/baseContentSchema.js.map +1 -1
  115. package/graphql/schema/baseSchema.d.ts +3 -0
  116. package/graphql/schema/baseSchema.js +53 -0
  117. package/graphql/schema/baseSchema.js.map +1 -0
  118. package/graphql/schema/contentEntries.d.ts +6 -2
  119. package/graphql/schema/contentEntries.js +118 -107
  120. package/graphql/schema/contentEntries.js.map +1 -1
  121. package/graphql/schema/contentModelGroups.d.ts +6 -2
  122. package/graphql/schema/contentModelGroups.js +10 -23
  123. package/graphql/schema/contentModelGroups.js.map +1 -1
  124. package/graphql/schema/contentModels.d.ts +6 -2
  125. package/graphql/schema/contentModels.js +62 -26
  126. package/graphql/schema/contentModels.js.map +1 -1
  127. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  128. package/graphql/schema/createFieldResolvers.js +20 -27
  129. package/graphql/schema/createFieldResolvers.js.map +1 -1
  130. package/graphql/schema/createManageResolvers.d.ts +1 -1
  131. package/graphql/schema/createManageResolvers.js +33 -43
  132. package/graphql/schema/createManageResolvers.js.map +1 -1
  133. package/graphql/schema/createManageSDL.d.ts +3 -0
  134. package/graphql/schema/createManageSDL.js +64 -67
  135. package/graphql/schema/createManageSDL.js.map +1 -1
  136. package/graphql/schema/createPreviewResolvers.js +3 -17
  137. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  138. package/graphql/schema/createReadResolvers.js +8 -17
  139. package/graphql/schema/createReadResolvers.js.map +1 -1
  140. package/graphql/schema/createReadSDL.d.ts +3 -0
  141. package/graphql/schema/createReadSDL.js +33 -35
  142. package/graphql/schema/createReadSDL.js.map +1 -1
  143. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
  144. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
  145. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  146. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  147. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  148. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  149. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  150. package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
  151. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  152. package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
  153. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  154. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  155. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  156. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  157. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  158. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  159. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  160. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  161. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  162. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  163. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  164. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  165. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  166. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  167. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  168. package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
  169. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  170. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  171. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  172. package/graphql/schema/resolvers/read/resolveGet.js +0 -8
  173. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  174. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  175. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  176. package/graphql/schema/schemaPlugins.d.ts +8 -3
  177. package/graphql/schema/schemaPlugins.js +64 -66
  178. package/graphql/schema/schemaPlugins.js.map +1 -1
  179. package/graphql/system.js +55 -87
  180. package/graphql/system.js.map +1 -1
  181. package/graphqlFields/boolean.js +0 -12
  182. package/graphqlFields/boolean.js.map +1 -1
  183. package/graphqlFields/datetime.js +0 -17
  184. package/graphqlFields/datetime.js.map +1 -1
  185. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
  186. package/graphqlFields/dynamicZone/dynamicZoneField.js +216 -0
  187. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
  188. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
  189. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +63 -0
  190. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
  191. package/graphqlFields/dynamicZone/index.d.ts +2 -0
  192. package/graphqlFields/dynamicZone/index.js +19 -0
  193. package/graphqlFields/dynamicZone/index.js.map +1 -0
  194. package/graphqlFields/file.js +0 -8
  195. package/graphqlFields/file.js.map +1 -1
  196. package/graphqlFields/helpers.js +0 -10
  197. package/graphqlFields/helpers.js.map +1 -1
  198. package/graphqlFields/index.d.ts +1 -1
  199. package/graphqlFields/index.js +2 -12
  200. package/graphqlFields/index.js.map +1 -1
  201. package/graphqlFields/longText.js +0 -10
  202. package/graphqlFields/longText.js.map +1 -1
  203. package/graphqlFields/number.js +4 -12
  204. package/graphqlFields/number.js.map +1 -1
  205. package/graphqlFields/object.js +118 -98
  206. package/graphqlFields/object.js.map +1 -1
  207. package/graphqlFields/ref.js +86 -106
  208. package/graphqlFields/ref.js.map +1 -1
  209. package/graphqlFields/richText.js +0 -9
  210. package/graphqlFields/richText.js.map +1 -1
  211. package/graphqlFields/text.js +0 -11
  212. package/graphqlFields/text.js.map +1 -1
  213. package/index.d.ts +3 -3
  214. package/index.js +3 -27
  215. package/index.js.map +1 -1
  216. package/modelManager/DefaultCmsModelManager.js +0 -16
  217. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  218. package/modelManager/index.js +0 -4
  219. package/modelManager/index.js.map +1 -1
  220. package/package.json +27 -28
  221. package/parameters/context.js +0 -4
  222. package/parameters/context.js.map +1 -1
  223. package/parameters/header.js +0 -11
  224. package/parameters/header.js.map +1 -1
  225. package/parameters/index.js +0 -8
  226. package/parameters/index.js.map +1 -1
  227. package/parameters/manual.js +1 -8
  228. package/parameters/manual.js.map +1 -1
  229. package/parameters/path.js +0 -11
  230. package/parameters/path.js.map +1 -1
  231. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  232. package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
  233. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  234. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  235. package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
  236. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  237. package/plugins/CmsGroupPlugin.js +0 -8
  238. package/plugins/CmsGroupPlugin.js.map +1 -1
  239. package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
  240. package/plugins/CmsModelFieldConverterPlugin.js +0 -5
  241. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  242. package/plugins/CmsModelPlugin.d.ts +11 -1
  243. package/plugins/CmsModelPlugin.js +15 -40
  244. package/plugins/CmsModelPlugin.js.map +1 -1
  245. package/plugins/CmsParametersPlugin.js +0 -7
  246. package/plugins/CmsParametersPlugin.js.map +1 -1
  247. package/plugins/StorageTransformPlugin.d.ts +11 -11
  248. package/plugins/StorageTransformPlugin.js +0 -9
  249. package/plugins/StorageTransformPlugin.js.map +1 -1
  250. package/plugins/index.d.ts +2 -0
  251. package/plugins/index.js +22 -10
  252. package/plugins/index.js.map +1 -1
  253. package/storage/default.js +0 -3
  254. package/storage/default.js.map +1 -1
  255. package/storage/object.js +4 -20
  256. package/storage/object.js.map +1 -1
  257. package/types.d.ts +315 -77
  258. package/types.js +63 -70
  259. package/types.js.map +1 -1
  260. package/utils/access.js +11 -25
  261. package/utils/access.js.map +1 -1
  262. package/utils/converters/Converter.js +0 -13
  263. package/utils/converters/Converter.js.map +1 -1
  264. package/utils/converters/ConverterCollection.js +14 -34
  265. package/utils/converters/ConverterCollection.js.map +1 -1
  266. package/utils/converters/valueKeyStorageConverter.js +2 -27
  267. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  268. package/utils/createTypeFromFields.d.ts +16 -0
  269. package/utils/createTypeFromFields.js +67 -0
  270. package/utils/createTypeFromFields.js.map +1 -0
  271. package/utils/createTypeName.js +2 -9
  272. package/utils/createTypeName.js.map +1 -1
  273. package/utils/entryStorage.js +22 -35
  274. package/utils/entryStorage.js.map +1 -1
  275. package/utils/filterAsync.js +0 -5
  276. package/utils/filterAsync.js.map +1 -1
  277. package/utils/getBaseFieldType.d.ts +4 -0
  278. package/utils/getBaseFieldType.js +10 -0
  279. package/utils/getBaseFieldType.js.map +1 -0
  280. package/utils/getEntryDescription.d.ts +2 -0
  281. package/utils/getEntryDescription.js +17 -0
  282. package/utils/getEntryDescription.js.map +1 -0
  283. package/utils/getEntryImage.d.ts +2 -0
  284. package/utils/getEntryImage.js +17 -0
  285. package/utils/getEntryImage.js.map +1 -0
  286. package/utils/getEntryTitle.js +0 -9
  287. package/utils/getEntryTitle.js.map +1 -1
  288. package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
  289. package/utils/getSchemaFromFieldPlugins.js +23 -19
  290. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  291. package/utils/ownership.d.ts +3 -3
  292. package/utils/ownership.js +0 -8
  293. package/utils/ownership.js.map +1 -1
  294. package/utils/permissions.js +8 -23
  295. package/utils/permissions.js.map +1 -1
  296. package/utils/removeNullValues.d.ts +1 -0
  297. package/utils/removeNullValues.js +17 -0
  298. package/utils/removeNullValues.js.map +1 -0
  299. package/utils/removeUndefinedValues.d.ts +1 -0
  300. package/utils/removeUndefinedValues.js +17 -0
  301. package/utils/removeUndefinedValues.js.map +1 -0
  302. package/utils/renderFields.d.ts +2 -1
  303. package/utils/renderFields.js +10 -10
  304. package/utils/renderFields.js.map +1 -1
  305. package/utils/renderGetFilterFields.js +6 -14
  306. package/utils/renderGetFilterFields.js.map +1 -1
  307. package/utils/renderInputFields.d.ts +2 -1
  308. package/utils/renderInputFields.js +6 -9
  309. package/utils/renderInputFields.js.map +1 -1
  310. package/utils/renderListFilterFields.js +4 -10
  311. package/utils/renderListFilterFields.js.map +1 -1
  312. package/utils/renderSortEnum.d.ts +7 -4
  313. package/utils/renderSortEnum.js +21 -11
  314. package/utils/renderSortEnum.js.map +1 -1
  315. package/utils/toSlug.js +0 -4
  316. package/utils/toSlug.js.map +1 -1
  317. package/validators/dateGte.js +0 -7
  318. package/validators/dateGte.js.map +1 -1
  319. package/validators/dateLte.js +0 -7
  320. package/validators/dateLte.js.map +1 -1
  321. package/validators/dynamicZone.d.ts +2 -0
  322. package/validators/dynamicZone.js +20 -0
  323. package/validators/dynamicZone.js.map +1 -0
  324. package/validators/gte.js +0 -8
  325. package/validators/gte.js.map +1 -1
  326. package/validators/in.js +0 -8
  327. package/validators/in.js.map +1 -1
  328. package/validators/index.js +2 -16
  329. package/validators/index.js.map +1 -1
  330. package/validators/lte.js +0 -8
  331. package/validators/lte.js.map +1 -1
  332. package/validators/maxLength.js +0 -8
  333. package/validators/maxLength.js.map +1 -1
  334. package/validators/minLength.js +0 -8
  335. package/validators/minLength.js.map +1 -1
  336. package/validators/pattern.js +0 -9
  337. package/validators/pattern.js.map +1 -1
  338. package/validators/patternPlugins/email.js +0 -2
  339. package/validators/patternPlugins/email.js.map +1 -1
  340. package/validators/patternPlugins/index.js +0 -8
  341. package/validators/patternPlugins/index.js.map +1 -1
  342. package/validators/patternPlugins/lowerCase.js +0 -2
  343. package/validators/patternPlugins/lowerCase.js.map +1 -1
  344. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  345. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  346. package/validators/patternPlugins/upperCase.js +0 -2
  347. package/validators/patternPlugins/upperCase.js.map +1 -1
  348. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  349. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  350. package/validators/patternPlugins/url.js +0 -2
  351. package/validators/patternPlugins/url.js.map +1 -1
  352. package/validators/required.js +0 -5
  353. package/validators/required.js.map +1 -1
  354. package/validators/timeGte.js +0 -8
  355. package/validators/timeGte.js.map +1 -1
  356. package/validators/timeLte.js +0 -8
  357. package/validators/timeLte.js.map +1 -1
  358. package/validators/unique.js +0 -7
  359. package/validators/unique.js.map +1 -1
  360. package/crud/index.d.ts +0 -6
  361. package/crud/index.js +0 -85
  362. package/crud/index.js.map +0 -1
  363. package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
  364. package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
  365. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
  366. package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
  367. package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
  368. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
  369. package/utils/filterModelFields.d.ts +0 -16
  370. package/utils/filterModelFields.js +0 -77
  371. package/utils/filterModelFields.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
2
  import { CmsEntryValues, CmsModelFieldWithParent } from "../types";
3
3
  import { ConverterCollection } from "../utils/converters/ConverterCollection";
4
- export interface ConvertParams {
5
- field: CmsModelFieldWithParent;
4
+ export interface ConvertParams<F = CmsModelFieldWithParent> {
5
+ field: F;
6
6
  value: any;
7
7
  converterCollection: ConverterCollection;
8
8
  }
@@ -1,17 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.CmsModelFieldConverterPlugin = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _plugins = require("@webiny/plugins");
13
-
14
10
  class CmsModelFieldConverterPlugin extends _plugins.Plugin {}
15
-
16
11
  exports.CmsModelFieldConverterPlugin = CmsModelFieldConverterPlugin;
17
12
  (0, _defineProperty2.default)(CmsModelFieldConverterPlugin, "type", "cms.field.converter");
@@ -1 +1 @@
1
- {"version":3,"names":["CmsModelFieldConverterPlugin","Plugin"],"sources":["CmsModelFieldConverterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\nexport interface ConvertParams {\n field: CmsModelFieldWithParent;\n value: any;\n converterCollection: ConverterCollection;\n}\n\nexport abstract class CmsModelFieldConverterPlugin extends Plugin {\n public static override type = \"cms.field.converter\";\n\n public abstract getFieldType(): string;\n\n public abstract convertToStorage(params: ConvertParams): CmsEntryValues;\n public abstract convertFromStorage(params: ConvertParams): CmsEntryValues;\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAUO,MAAeA,4BAAf,SAAoDC,eAApD,CAA2D;;;8BAA5CD,4B,UACY,qB"}
1
+ {"version":3,"names":["CmsModelFieldConverterPlugin","Plugin"],"sources":["CmsModelFieldConverterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\nexport interface ConvertParams<F = CmsModelFieldWithParent> {\n field: F;\n value: any;\n converterCollection: ConverterCollection;\n}\n\nexport abstract class CmsModelFieldConverterPlugin extends Plugin {\n public static override type = \"cms.field.converter\";\n\n public abstract getFieldType(): string;\n\n public abstract convertToStorage(params: ConvertParams): CmsEntryValues;\n public abstract convertFromStorage(params: ConvertParams): CmsEntryValues;\n}\n"],"mappings":";;;;;;;;AAAA;AAUO,MAAeA,4BAA4B,SAASC,eAAM,CAAC;AAOjE;AAAA,8BAPqBD,4BAA4B,UAChB,qBAAqB"}
@@ -20,11 +20,21 @@ interface CmsModelFieldInput extends Omit<CmsModelFieldBase, "storageId" | "sett
20
20
  */
21
21
  settings?: CmsModelFieldSettings;
22
22
  }
23
- interface CmsModelInput extends Omit<CmsModelBase, "locale" | "tenant" | "webinyVersion" | "fields"> {
23
+ interface CmsApiModel extends Omit<CmsModelBase, "isPrivate" | "locale" | "tenant" | "webinyVersion" | "fields"> {
24
+ isPrivate?: never;
24
25
  fields: CmsModelFieldInput[];
25
26
  locale?: string;
26
27
  tenant?: string;
27
28
  }
29
+ interface CmsPrivateModel extends Omit<CmsModelBase, "isPrivate" | "singularApiName" | "pluralApiName" | "locale" | "tenant" | "webinyVersion" | "fields"> {
30
+ singularApiName?: never;
31
+ pluralApiName?: never;
32
+ isPrivate: true;
33
+ fields: CmsModelFieldInput[];
34
+ locale?: string;
35
+ tenant?: string;
36
+ }
37
+ declare type CmsModelInput = CmsApiModel | CmsPrivateModel;
28
38
  interface CmsModel extends Omit<CmsModelBase, "locale" | "tenant" | "webinyVersion"> {
29
39
  locale?: string;
30
40
  tenant?: string;
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createCmsModel = exports.CmsModelPlugin = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _plugins = require("@webiny/plugins");
15
-
16
10
  var _error = _interopRequireDefault(require("@webiny/error"));
17
-
18
- var _createFieldStorageId = require("../crud/contentModel/createFieldStorageId");
19
-
20
11
  var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
21
-
12
+ var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
13
+ var _pluralize = _interopRequireDefault(require("pluralize"));
14
+ var _plugins = require("@webiny/plugins");
15
+ var _createFieldStorageId = require("../crud/contentModel/createFieldStorageId");
16
+ const transformNameToSingularApiName = name => {
17
+ return (0, _upperFirst.default)((0, _camelCase.default)(name));
18
+ };
19
+ const transformNameToPluralApiName = name => {
20
+ return (0, _pluralize.default)(transformNameToSingularApiName(name));
21
+ };
22
22
  class CmsModelPlugin extends _plugins.Plugin {
23
23
  constructor(contentModel, options) {
24
24
  super();
@@ -27,29 +27,27 @@ class CmsModelPlugin extends _plugins.Plugin {
27
27
  this.options = options || {};
28
28
  this.contentModel = this.buildModel(contentModel);
29
29
  }
30
-
31
30
  buildModel(input) {
32
31
  const model = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
32
+ isPrivate: input.isPrivate || false,
33
+ singularApiName: input.singularApiName || transformNameToSingularApiName(input.name),
34
+ pluralApiName: input.pluralApiName || transformNameToPluralApiName(input.name),
33
35
  fields: this.buildFields(input, input.fields)
34
36
  });
35
37
  this.validateLayout(model);
36
38
  return model;
37
39
  }
38
-
39
40
  buildFields(model, inputFields) {
40
41
  if (inputFields.length === 0) {
41
42
  throw new _error.default(`Missing fields for the defined model "${model.modelId}".`, "MISSING_FIELDS", {
42
43
  model
43
44
  });
44
45
  }
45
-
46
46
  const fields = [];
47
47
  const storageIdList = [];
48
48
  const fieldIdList = [];
49
-
50
49
  for (const input of inputFields) {
51
50
  var _settings;
52
-
53
51
  /**
54
52
  * Field must contain an fieldId. It is required in the graphql, but lets check it just in case
55
53
  */
@@ -59,12 +57,10 @@ class CmsModelPlugin extends _plugins.Plugin {
59
57
  field: input
60
58
  });
61
59
  }
62
-
63
60
  const fieldId = (0, _camelCase.default)(input.fieldId);
64
61
  /**
65
62
  * FieldID must be in correct pattern.
66
63
  */
67
-
68
64
  if (fieldId.match(/^[0-9]/) !== null) {
69
65
  throw new _error.default(`Field's "fieldId" does not match correct pattern in the content model "${model.modelId}" - cannot start with a number.`, "FIELD_FIELD_ID_ERROR", {
70
66
  model,
@@ -74,8 +70,6 @@ class CmsModelPlugin extends _plugins.Plugin {
74
70
  /**
75
71
  * FieldID also must be camelCased.
76
72
  */
77
-
78
-
79
73
  if (fieldId !== input.fieldId) {
80
74
  throw new _error.default(`Field's "fieldId" must be a camel cased string in the content model "${model.modelId}".`, "FIELD_FIELD_ID_ERROR", {
81
75
  model,
@@ -85,20 +79,16 @@ class CmsModelPlugin extends _plugins.Plugin {
85
79
  /**
86
80
  * ... and fieldId must be unique.
87
81
  */
88
-
89
-
90
82
  if (fieldIdList.includes(fieldId) === true) {
91
83
  throw new _error.default(`Field's "fieldId" is not unique in the content model "${model.modelId}".`, "FIELD_ID_NOT_UNIQUE_ERROR", {
92
84
  model,
93
85
  field: input
94
86
  });
95
87
  }
96
-
97
88
  let storageId = input.storageId ? (0, _camelCase.default)(input.storageId) : null;
98
89
  /**
99
90
  * If defined, storageId MUST be camel cased string - for backward compatibility.
100
91
  */
101
-
102
92
  if (storageId && (storageId.match(/^([a-zA-Z-0-9]+)$/) === null || storageId !== input.storageId)) {
103
93
  throw new _error.default(`Field's "storageId" of the field with "fieldId" ${input.fieldId} is not camel cased string in the content model "${model.modelId}".`, "STORAGE_ID_NOT_CAMEL_CASED_ERROR", {
104
94
  model,
@@ -108,32 +98,28 @@ class CmsModelPlugin extends _plugins.Plugin {
108
98
  } else if (!storageId) {
109
99
  storageId = (0, _createFieldStorageId.createFieldStorageId)(input);
110
100
  }
101
+
111
102
  /**
112
103
  * Fields storageId must be unique.
113
104
  */
114
-
115
-
116
105
  if (storageIdList.includes(storageId) === true) {
117
106
  throw new _error.default(`Field's "storageId" is not unique in the content model "${model.modelId}".`, "STORAGE_ID_ERROR", {
118
107
  model,
119
108
  field: input
120
109
  });
121
110
  }
111
+
122
112
  /**
123
113
  * We can safely ignore error because we are going through the fields and making sure each has storageId.
124
114
  */
125
115
  // @ts-ignore
126
-
127
-
128
116
  let settings = input.settings;
129
117
  const childFields = ((_settings = settings) === null || _settings === void 0 ? void 0 : _settings.fields) || [];
130
-
131
118
  if (input.type === "object" && childFields.length > 0) {
132
119
  settings = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, settings || {}), {}, {
133
120
  fields: this.buildFields(model, childFields)
134
121
  });
135
122
  }
136
-
137
123
  const field = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
138
124
  settings,
139
125
  storageId
@@ -141,15 +127,12 @@ class CmsModelPlugin extends _plugins.Plugin {
141
127
  /**
142
128
  * Add all relevant data to arrays.
143
129
  */
144
-
145
130
  fields.push(field);
146
131
  storageIdList.push(field.storageId);
147
132
  fieldIdList.push(field.fieldId);
148
133
  }
149
-
150
134
  return fields;
151
135
  }
152
-
153
136
  validateLayout(model) {
154
137
  /**
155
138
  * Only skip validation if option.validateLayout was set as false, explicitly.
@@ -157,15 +140,12 @@ class CmsModelPlugin extends _plugins.Plugin {
157
140
  if (this.options.validateLayout === false) {
158
141
  return;
159
142
  }
160
-
161
143
  for (const field of model.fields) {
162
144
  let total = 0;
163
-
164
145
  for (const row of model.layout) {
165
146
  const count = row.filter(cell => cell === field.id).length;
166
147
  total = total + count;
167
148
  }
168
-
169
149
  if (total === 1) {
170
150
  continue;
171
151
  } else if (total > 1) {
@@ -174,21 +154,16 @@ class CmsModelPlugin extends _plugins.Plugin {
174
154
  field
175
155
  });
176
156
  }
177
-
178
157
  throw new _error.default(`Missing field "${field.id}" in layout.`, "MISSING_FIELD_IN_LAYOUT", {
179
158
  model,
180
159
  field
181
160
  });
182
161
  }
183
162
  }
184
-
185
163
  }
186
-
187
164
  exports.CmsModelPlugin = CmsModelPlugin;
188
165
  (0, _defineProperty2.default)(CmsModelPlugin, "type", "cms-content-model");
189
-
190
166
  const createCmsModel = (model, options) => {
191
167
  return new CmsModelPlugin(model, options);
192
168
  };
193
-
194
169
  exports.createCmsModel = createCmsModel;
@@ -1 +1 @@
1
- {"version":3,"names":["CmsModelPlugin","Plugin","constructor","contentModel","options","buildModel","input","model","fields","buildFields","validateLayout","inputFields","length","WebinyError","modelId","storageIdList","fieldIdList","fieldId","trim","field","lodashCamelCase","match","includes","storageId","createFieldStorageId","settings","childFields","type","push","total","row","layout","count","filter","cell","id","createCmsModel"],"sources":["CmsModelPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport {\n CmsModel as CmsModelBase,\n CmsModelField as CmsModelFieldBase,\n CmsModelFieldSettings as BaseCmsModelFieldSettings\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { createFieldStorageId } from \"~/crud/contentModel/createFieldStorageId\";\nimport lodashCamelCase from \"lodash/camelCase\";\n\ninterface CmsModelFieldSettings extends Omit<BaseCmsModelFieldSettings, \"fields\"> {\n /**\n * Object field has child fields.\n */\n fields?: CmsModelFieldInput[];\n}\n\ninterface CmsModelFieldInput extends Omit<CmsModelFieldBase, \"storageId\" | \"settings\"> {\n /**\n * If defined, it must be camelCased string.\n * This is for backwards compatibility - before fields had storageId.\n *\n * This should only be populated in old model fields.\n * News ones must have this empty.\n */\n storageId?: string;\n /**\n * We must have a possibility to have a nested field defined without the storageId.\n */\n settings?: CmsModelFieldSettings;\n}\n\ninterface CmsModelInput\n extends Omit<CmsModelBase, \"locale\" | \"tenant\" | \"webinyVersion\" | \"fields\"> {\n fields: CmsModelFieldInput[];\n locale?: string;\n tenant?: string;\n}\ninterface CmsModel extends Omit<CmsModelBase, \"locale\" | \"tenant\" | \"webinyVersion\"> {\n locale?: string;\n tenant?: string;\n}\n\ninterface CmsModelPluginOptions {\n validateLayout?: boolean;\n}\n\nexport class CmsModelPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model\";\n public readonly contentModel: CmsModel;\n\n private readonly options: CmsModelPluginOptions;\n\n constructor(contentModel: CmsModelInput, options?: CmsModelPluginOptions) {\n super();\n this.options = options || {};\n this.contentModel = this.buildModel(contentModel);\n }\n\n private buildModel(input: CmsModelInput): CmsModel {\n const model: CmsModel = {\n ...input,\n fields: this.buildFields(input, input.fields)\n };\n this.validateLayout(model);\n return model;\n }\n\n private buildFields(\n model: CmsModelInput,\n inputFields: CmsModelFieldInput[]\n ): CmsModelFieldBase[] {\n if (inputFields.length === 0) {\n throw new WebinyError(\n `Missing fields for the defined model \"${model.modelId}\".`,\n \"MISSING_FIELDS\",\n {\n model\n }\n );\n }\n const fields: CmsModelFieldBase[] = [];\n const storageIdList: string[] = [];\n const fieldIdList: string[] = [];\n for (const input of inputFields) {\n /**\n * Field must contain an fieldId. It is required in the graphql, but lets check it just in case\n */\n if (!(input.fieldId || \"\").trim()) {\n throw new WebinyError(\n `Field's \"storageId\" is not defined for the content model \"${model.modelId}\".`,\n \"FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n const fieldId = lodashCamelCase(input.fieldId);\n /**\n * FieldID must be in correct pattern.\n */\n if (fieldId.match(/^[0-9]/) !== null) {\n throw new WebinyError(\n `Field's \"fieldId\" does not match correct pattern in the content model \"${model.modelId}\" - cannot start with a number.`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * FieldID also must be camelCased.\n */\n if (fieldId !== input.fieldId) {\n throw new WebinyError(\n `Field's \"fieldId\" must be a camel cased string in the content model \"${model.modelId}\".`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * ... and fieldId must be unique.\n */\n if (fieldIdList.includes(fieldId) === true) {\n throw new WebinyError(\n `Field's \"fieldId\" is not unique in the content model \"${model.modelId}\".`,\n \"FIELD_ID_NOT_UNIQUE_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n let storageId = input.storageId ? lodashCamelCase(input.storageId) : null;\n /**\n * If defined, storageId MUST be camel cased string - for backward compatibility.\n */\n if (\n storageId &&\n (storageId.match(/^([a-zA-Z-0-9]+)$/) === null || storageId !== input.storageId)\n ) {\n throw new WebinyError(\n `Field's \"storageId\" of the field with \"fieldId\" ${input.fieldId} is not camel cased string in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_NOT_CAMEL_CASED_ERROR\",\n {\n model,\n storageId,\n field: input\n }\n );\n } else if (!storageId) {\n storageId = createFieldStorageId(input);\n }\n\n /**\n * Fields storageId must be unique.\n */\n if (storageIdList.includes(storageId) === true) {\n throw new WebinyError(\n `Field's \"storageId\" is not unique in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n /**\n * We can safely ignore error because we are going through the fields and making sure each has storageId.\n */\n // @ts-ignore\n let settings: BaseCmsModelFieldSettings = input.settings;\n\n const childFields = settings?.fields || [];\n if (input.type === \"object\" && childFields.length > 0) {\n settings = {\n ...(settings || {}),\n fields: this.buildFields(model, childFields)\n };\n }\n\n const field: CmsModelFieldBase = {\n ...input,\n settings,\n storageId\n };\n /**\n * Add all relevant data to arrays.\n */\n fields.push(field);\n storageIdList.push(field.storageId);\n fieldIdList.push(field.fieldId);\n }\n return fields;\n }\n\n private validateLayout(model: CmsModel): void {\n /**\n * Only skip validation if option.validateLayout was set as false, explicitly.\n */\n if (this.options.validateLayout === false) {\n return;\n }\n for (const field of model.fields) {\n let total = 0;\n for (const row of model.layout) {\n const count = row.filter(cell => cell === field.id).length;\n total = total + count;\n }\n if (total === 1) {\n continue;\n } else if (total > 1) {\n throw new WebinyError(\n `Field \"${field.id}\" is in more than one layout cell.`,\n \"DUPLICATE_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n throw new WebinyError(\n `Missing field \"${field.id}\" in layout.`,\n \"MISSING_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n }\n}\n\nexport const createCmsModel = (\n model: CmsModelInput,\n options?: CmsModelPluginOptions\n): CmsModelPlugin => {\n return new CmsModelPlugin(model, options);\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["transformNameToSingularApiName","name","upperFirst","camelCase","transformNameToPluralApiName","pluralize","CmsModelPlugin","Plugin","constructor","contentModel","options","buildModel","input","model","isPrivate","singularApiName","pluralApiName","fields","buildFields","validateLayout","inputFields","length","WebinyError","modelId","storageIdList","fieldIdList","fieldId","trim","field","lodashCamelCase","match","includes","storageId","createFieldStorageId","settings","childFields","type","push","total","row","layout","count","filter","cell","id","createCmsModel"],"sources":["CmsModelPlugin.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport lodashCamelCase from \"lodash/camelCase\";\nimport camelCase from \"lodash/camelCase\";\nimport upperFirst from \"lodash/upperFirst\";\nimport pluralize from \"pluralize\";\nimport { Plugin } from \"@webiny/plugins\";\nimport {\n CmsModel as CmsModelBase,\n CmsModelField as CmsModelFieldBase,\n CmsModelFieldSettings as BaseCmsModelFieldSettings\n} from \"~/types\";\nimport { createFieldStorageId } from \"~/crud/contentModel/createFieldStorageId\";\n\nconst transformNameToSingularApiName = (name: string) => {\n return upperFirst(camelCase(name));\n};\n\nconst transformNameToPluralApiName = (name: string) => {\n return pluralize(transformNameToSingularApiName(name));\n};\n\ninterface CmsModelFieldSettings extends Omit<BaseCmsModelFieldSettings, \"fields\"> {\n /**\n * Object field has child fields.\n */\n fields?: CmsModelFieldInput[];\n}\n\ninterface CmsModelFieldInput extends Omit<CmsModelFieldBase, \"storageId\" | \"settings\"> {\n /**\n * If defined, it must be camelCased string.\n * This is for backwards compatibility - before fields had storageId.\n *\n * This should only be populated in old model fields.\n * News ones must have this empty.\n */\n storageId?: string;\n /**\n * We must have a possibility to have a nested field defined without the storageId.\n */\n settings?: CmsModelFieldSettings;\n}\n\ninterface CmsApiModel\n extends Omit<CmsModelBase, \"isPrivate\" | \"locale\" | \"tenant\" | \"webinyVersion\" | \"fields\"> {\n isPrivate?: never;\n fields: CmsModelFieldInput[];\n locale?: string;\n tenant?: string;\n}\n\ninterface CmsPrivateModel\n extends Omit<\n CmsModelBase,\n | \"isPrivate\"\n | \"singularApiName\"\n | \"pluralApiName\"\n | \"locale\"\n | \"tenant\"\n | \"webinyVersion\"\n | \"fields\"\n > {\n singularApiName?: never;\n pluralApiName?: never;\n isPrivate: true;\n fields: CmsModelFieldInput[];\n locale?: string;\n tenant?: string;\n}\n\ntype CmsModelInput = CmsApiModel | CmsPrivateModel;\n\ninterface CmsModel extends Omit<CmsModelBase, \"locale\" | \"tenant\" | \"webinyVersion\"> {\n locale?: string;\n tenant?: string;\n}\n\ninterface CmsModelPluginOptions {\n validateLayout?: boolean;\n}\n\nexport class CmsModelPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model\";\n public readonly contentModel: CmsModel;\n\n private readonly options: CmsModelPluginOptions;\n\n constructor(contentModel: CmsModelInput, options?: CmsModelPluginOptions) {\n super();\n this.options = options || {};\n this.contentModel = this.buildModel(contentModel);\n }\n\n private buildModel(input: CmsModelInput): CmsModel {\n const model: CmsModel = {\n ...input,\n isPrivate: input.isPrivate || false,\n singularApiName: input.singularApiName || transformNameToSingularApiName(input.name),\n pluralApiName: input.pluralApiName || transformNameToPluralApiName(input.name),\n fields: this.buildFields(input, input.fields)\n };\n this.validateLayout(model);\n return model;\n }\n\n private buildFields(\n model: CmsModelInput,\n inputFields: CmsModelFieldInput[]\n ): CmsModelFieldBase[] {\n if (inputFields.length === 0) {\n throw new WebinyError(\n `Missing fields for the defined model \"${model.modelId}\".`,\n \"MISSING_FIELDS\",\n {\n model\n }\n );\n }\n const fields: CmsModelFieldBase[] = [];\n const storageIdList: string[] = [];\n const fieldIdList: string[] = [];\n for (const input of inputFields) {\n /**\n * Field must contain an fieldId. It is required in the graphql, but lets check it just in case\n */\n if (!(input.fieldId || \"\").trim()) {\n throw new WebinyError(\n `Field's \"storageId\" is not defined for the content model \"${model.modelId}\".`,\n \"FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n const fieldId = lodashCamelCase(input.fieldId);\n /**\n * FieldID must be in correct pattern.\n */\n if (fieldId.match(/^[0-9]/) !== null) {\n throw new WebinyError(\n `Field's \"fieldId\" does not match correct pattern in the content model \"${model.modelId}\" - cannot start with a number.`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * FieldID also must be camelCased.\n */\n if (fieldId !== input.fieldId) {\n throw new WebinyError(\n `Field's \"fieldId\" must be a camel cased string in the content model \"${model.modelId}\".`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * ... and fieldId must be unique.\n */\n if (fieldIdList.includes(fieldId) === true) {\n throw new WebinyError(\n `Field's \"fieldId\" is not unique in the content model \"${model.modelId}\".`,\n \"FIELD_ID_NOT_UNIQUE_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n let storageId = input.storageId ? lodashCamelCase(input.storageId) : null;\n /**\n * If defined, storageId MUST be camel cased string - for backward compatibility.\n */\n if (\n storageId &&\n (storageId.match(/^([a-zA-Z-0-9]+)$/) === null || storageId !== input.storageId)\n ) {\n throw new WebinyError(\n `Field's \"storageId\" of the field with \"fieldId\" ${input.fieldId} is not camel cased string in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_NOT_CAMEL_CASED_ERROR\",\n {\n model,\n storageId,\n field: input\n }\n );\n } else if (!storageId) {\n storageId = createFieldStorageId(input);\n }\n\n /**\n * Fields storageId must be unique.\n */\n if (storageIdList.includes(storageId) === true) {\n throw new WebinyError(\n `Field's \"storageId\" is not unique in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n /**\n * We can safely ignore error because we are going through the fields and making sure each has storageId.\n */\n // @ts-ignore\n let settings: BaseCmsModelFieldSettings = input.settings;\n\n const childFields = settings?.fields || [];\n if (input.type === \"object\" && childFields.length > 0) {\n settings = {\n ...(settings || {}),\n fields: this.buildFields(model, childFields)\n };\n }\n\n const field: CmsModelFieldBase = {\n ...input,\n settings,\n storageId\n };\n /**\n * Add all relevant data to arrays.\n */\n fields.push(field);\n storageIdList.push(field.storageId);\n fieldIdList.push(field.fieldId);\n }\n return fields;\n }\n\n private validateLayout(model: CmsModel): void {\n /**\n * Only skip validation if option.validateLayout was set as false, explicitly.\n */\n if (this.options.validateLayout === false) {\n return;\n }\n for (const field of model.fields) {\n let total = 0;\n for (const row of model.layout) {\n const count = row.filter(cell => cell === field.id).length;\n total = total + count;\n }\n if (total === 1) {\n continue;\n } else if (total > 1) {\n throw new WebinyError(\n `Field \"${field.id}\" is in more than one layout cell.`,\n \"DUPLICATE_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n throw new WebinyError(\n `Missing field \"${field.id}\" in layout.`,\n \"MISSING_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n }\n}\n\nexport const createCmsModel = (\n model: CmsModelInput,\n options?: CmsModelPluginOptions\n): CmsModelPlugin => {\n return new CmsModelPlugin(model, options);\n};\n"],"mappings":"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"}
@@ -1,28 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.CmsParametersPlugin = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _plugins = require("@webiny/plugins");
13
-
14
10
  class CmsParametersPlugin extends _plugins.Plugin {
15
11
  constructor(callable) {
16
12
  super();
17
13
  (0, _defineProperty2.default)(this, "callable", void 0);
18
14
  this.callable = callable;
19
15
  }
20
-
21
16
  async getParameters(context) {
22
17
  return this.callable(context);
23
18
  }
24
-
25
19
  }
26
-
27
20
  exports.CmsParametersPlugin = CmsParametersPlugin;
28
21
  (0, _defineProperty2.default)(CmsParametersPlugin, "type", "cms-parameters-plugin");
@@ -1 +1 @@
1
- {"version":3,"names":["CmsParametersPlugin","Plugin","constructor","callable","getParameters","context"],"sources":["CmsParametersPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { ApiEndpoint, CmsContext } from \"~/types\";\n\n/**\n * Type can be null because it might be that Headless CMS context is loaded on a different Lambda where there is no GraphQL Schema generated.\n */\nexport type CmsParametersPluginResponseType = ApiEndpoint | null;\nexport type CmsParametersPluginResponseLocale = string;\n\nexport interface CmsParametersPluginResponse {\n type: CmsParametersPluginResponseType;\n locale: CmsParametersPluginResponseLocale;\n}\n\nexport interface CmsParametersPluginCallable {\n (context: CmsContext): Promise<CmsParametersPluginResponse | null>;\n}\n\nexport class CmsParametersPlugin extends Plugin {\n public static override readonly type: string = \"cms-parameters-plugin\";\n\n private readonly callable: CmsParametersPluginCallable;\n\n public constructor(callable: CmsParametersPluginCallable) {\n super();\n\n this.callable = callable;\n }\n\n public async getParameters(context: CmsContext): Promise<CmsParametersPluginResponse | null> {\n return this.callable(context);\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAkBO,MAAMA,mBAAN,SAAkCC,eAAlC,CAAyC;EAKrCC,WAAW,CAACC,QAAD,EAAwC;IACtD;IADsD;IAGtD,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;EAEyB,MAAbC,aAAa,CAACC,OAAD,EAAmE;IACzF,OAAO,KAAKF,QAAL,CAAcE,OAAd,CAAP;EACH;;AAb2C;;;8BAAnCL,mB,UACsC,uB"}
1
+ {"version":3,"names":["CmsParametersPlugin","Plugin","constructor","callable","getParameters","context"],"sources":["CmsParametersPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { ApiEndpoint, CmsContext } from \"~/types\";\n\n/**\n * Type can be null because it might be that Headless CMS context is loaded on a different Lambda where there is no GraphQL Schema generated.\n */\nexport type CmsParametersPluginResponseType = ApiEndpoint | null;\nexport type CmsParametersPluginResponseLocale = string;\n\nexport interface CmsParametersPluginResponse {\n type: CmsParametersPluginResponseType;\n locale: CmsParametersPluginResponseLocale;\n}\n\nexport interface CmsParametersPluginCallable {\n (context: CmsContext): Promise<CmsParametersPluginResponse | null>;\n}\n\nexport class CmsParametersPlugin extends Plugin {\n public static override readonly type: string = \"cms-parameters-plugin\";\n\n private readonly callable: CmsParametersPluginCallable;\n\n public constructor(callable: CmsParametersPluginCallable) {\n super();\n\n this.callable = callable;\n }\n\n public async getParameters(context: CmsContext): Promise<CmsParametersPluginResponse | null> {\n return this.callable(context);\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAkBO,MAAMA,mBAAmB,SAASC,eAAM,CAAC;EAKrCC,WAAW,CAACC,QAAqC,EAAE;IACtD,KAAK,EAAE;IAAC;IAER,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EAEA,MAAaC,aAAa,CAACC,OAAmB,EAA+C;IACzF,OAAO,IAAI,CAACF,QAAQ,CAACE,OAAO,CAAC;EACjC;AACJ;AAAC;AAAA,8BAdYL,mBAAmB,UACmB,uBAAuB"}
@@ -1,31 +1,31 @@
1
1
  import { Plugin } from "@webiny/plugins/Plugin";
2
2
  import { CmsModel, CmsModelField } from "../types";
3
3
  import { PluginsContainer } from "@webiny/plugins";
4
- export interface ToStorageParams<T> {
4
+ export interface ToStorageParams<T, F extends CmsModelField> {
5
5
  model: CmsModel;
6
- field: CmsModelField;
6
+ field: F;
7
7
  value: T;
8
8
  getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;
9
9
  plugins: PluginsContainer;
10
10
  }
11
- export interface FromStorageParams<T> {
11
+ export interface FromStorageParams<T, F extends CmsModelField> {
12
12
  model: CmsModel;
13
- field: CmsModelField;
13
+ field: Partial<F> & Pick<F, "id" | "fieldId" | "storageId" | "type" | "settings">;
14
14
  value: T;
15
15
  getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;
16
16
  plugins: PluginsContainer;
17
17
  }
18
- export interface StorageTransformPluginParams<T, R> {
18
+ export interface StorageTransformPluginParams<T, R, F extends CmsModelField> {
19
19
  name?: string;
20
20
  fieldType: string;
21
- toStorage: (params: ToStorageParams<T>) => Promise<R>;
22
- fromStorage: (params: FromStorageParams<R>) => Promise<T>;
21
+ toStorage: (params: ToStorageParams<T, F>) => Promise<R>;
22
+ fromStorage: (params: FromStorageParams<R, F>) => Promise<T>;
23
23
  }
24
- export declare class StorageTransformPlugin<T = any, R = any> extends Plugin {
24
+ export declare class StorageTransformPlugin<T = any, R = any, F extends CmsModelField = CmsModelField> extends Plugin {
25
25
  static readonly type: string;
26
26
  get fieldType(): string;
27
27
  private readonly config;
28
- constructor(config: StorageTransformPluginParams<T, R>);
29
- toStorage(params: ToStorageParams<T>): Promise<R>;
30
- fromStorage(params: FromStorageParams<R>): Promise<T>;
28
+ constructor(config: StorageTransformPluginParams<T, R, F>);
29
+ toStorage(params: ToStorageParams<T, F>): Promise<R>;
30
+ fromStorage(params: FromStorageParams<R, F>): Promise<T>;
31
31
  }
@@ -1,37 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.StorageTransformPlugin = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _Plugin = require("@webiny/plugins/Plugin");
13
-
14
10
  class StorageTransformPlugin extends _Plugin.Plugin {
15
11
  get fieldType() {
16
12
  return this.config.fieldType;
17
13
  }
18
-
19
14
  constructor(config) {
20
15
  super();
21
16
  (0, _defineProperty2.default)(this, "config", void 0);
22
17
  this.name = config.name;
23
18
  this.config = config;
24
19
  }
25
-
26
20
  toStorage(params) {
27
21
  return this.config.toStorage(params);
28
22
  }
29
-
30
23
  fromStorage(params) {
31
24
  return this.config.fromStorage(params);
32
25
  }
33
-
34
26
  }
35
-
36
27
  exports.StorageTransformPlugin = StorageTransformPlugin;
37
28
  (0, _defineProperty2.default)(StorageTransformPlugin, "type", "cms.storage.transform.plugin");
@@ -1 +1 @@
1
- {"version":3,"names":["StorageTransformPlugin","Plugin","fieldType","config","constructor","name","toStorage","params","fromStorage"],"sources":["StorageTransformPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins/Plugin\";\nimport { CmsModel, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface ToStorageParams<T> {\n model: CmsModel;\n field: CmsModelField;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface FromStorageParams<T> {\n model: CmsModel;\n field: CmsModelField;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface StorageTransformPluginParams<T, R> {\n name?: string;\n fieldType: string;\n toStorage: (params: ToStorageParams<T>) => Promise<R>;\n fromStorage: (params: FromStorageParams<R>) => Promise<T>;\n}\nexport class StorageTransformPlugin<T = any, R = any> extends Plugin {\n public static override readonly type: string = \"cms.storage.transform.plugin\";\n public get fieldType(): string {\n return this.config.fieldType;\n }\n\n private readonly config: StorageTransformPluginParams<T, R>;\n\n public constructor(config: StorageTransformPluginParams<T, R>) {\n super();\n this.name = config.name;\n this.config = config;\n }\n\n public toStorage(params: ToStorageParams<T>): Promise<R> {\n return this.config.toStorage(params);\n }\n\n public fromStorage(params: FromStorageParams<R>): Promise<T> {\n return this.config.fromStorage(params);\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AA0BO,MAAMA,sBAAN,SAAuDC,cAAvD,CAA8D;EAE7C,IAATC,SAAS,GAAW;IAC3B,OAAO,KAAKC,MAAL,CAAYD,SAAnB;EACH;;EAIME,WAAW,CAACD,MAAD,EAA6C;IAC3D;IAD2D;IAE3D,KAAKE,IAAL,GAAYF,MAAM,CAACE,IAAnB;IACA,KAAKF,MAAL,GAAcA,MAAd;EACH;;EAEMG,SAAS,CAACC,MAAD,EAAyC;IACrD,OAAO,KAAKJ,MAAL,CAAYG,SAAZ,CAAsBC,MAAtB,CAAP;EACH;;EAEMC,WAAW,CAACD,MAAD,EAA2C;IACzD,OAAO,KAAKJ,MAAL,CAAYK,WAAZ,CAAwBD,MAAxB,CAAP;EACH;;AApBgE;;;8BAAxDP,sB,UACsC,8B"}
1
+ {"version":3,"names":["StorageTransformPlugin","Plugin","fieldType","config","constructor","name","toStorage","params","fromStorage"],"sources":["StorageTransformPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins/Plugin\";\nimport { CmsModel, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface ToStorageParams<T, F extends CmsModelField> {\n model: CmsModel;\n field: F;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface FromStorageParams<T, F extends CmsModelField> {\n model: CmsModel;\n field: Partial<F> & Pick<F, \"id\" | \"fieldId\" | \"storageId\" | \"type\" | \"settings\">;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface StorageTransformPluginParams<T, R, F extends CmsModelField> {\n name?: string;\n fieldType: string;\n toStorage: (params: ToStorageParams<T, F>) => Promise<R>;\n fromStorage: (params: FromStorageParams<R, F>) => Promise<T>;\n}\nexport class StorageTransformPlugin<\n T = any,\n R = any,\n F extends CmsModelField = CmsModelField\n> extends Plugin {\n public static override readonly type: string = \"cms.storage.transform.plugin\";\n public get fieldType(): string {\n return this.config.fieldType;\n }\n\n private readonly config: StorageTransformPluginParams<T, R, F>;\n\n public constructor(config: StorageTransformPluginParams<T, R, F>) {\n super();\n this.name = config.name;\n this.config = config;\n }\n\n public toStorage(params: ToStorageParams<T, F>): Promise<R> {\n return this.config.toStorage(params);\n }\n\n public fromStorage(params: FromStorageParams<R, F>): Promise<T> {\n return this.config.fromStorage(params);\n }\n}\n"],"mappings":";;;;;;;;AAAA;AA0BO,MAAMA,sBAAsB,SAIzBC,cAAM,CAAC;EAEb,IAAWC,SAAS,GAAW;IAC3B,OAAO,IAAI,CAACC,MAAM,CAACD,SAAS;EAChC;EAIOE,WAAW,CAACD,MAA6C,EAAE;IAC9D,KAAK,EAAE;IAAC;IACR,IAAI,CAACE,IAAI,GAAGF,MAAM,CAACE,IAAI;IACvB,IAAI,CAACF,MAAM,GAAGA,MAAM;EACxB;EAEOG,SAAS,CAACC,MAA6B,EAAc;IACxD,OAAO,IAAI,CAACJ,MAAM,CAACG,SAAS,CAACC,MAAM,CAAC;EACxC;EAEOC,WAAW,CAACD,MAA+B,EAAc;IAC5D,OAAO,IAAI,CAACJ,MAAM,CAACK,WAAW,CAACD,MAAM,CAAC;EAC1C;AACJ;AAAC;AAAA,8BAzBYP,sBAAsB,UAKgB,8BAA8B"}
@@ -3,3 +3,5 @@ export * from "./CmsModelPlugin";
3
3
  export * from "./StorageTransformPlugin";
4
4
  export * from "./CmsParametersPlugin";
5
5
  export * from "./CmsModelFieldConverterPlugin";
6
+ export * from "./CmsGraphQLSchemaPlugin";
7
+ export * from "./CmsGraphQLSchemaSorterPlugin";
package/plugins/index.js CHANGED
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _CmsGroupPlugin = require("./CmsGroupPlugin");
8
-
9
7
  Object.keys(_CmsGroupPlugin).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _CmsGroupPlugin[key]) return;
@@ -16,9 +14,7 @@ Object.keys(_CmsGroupPlugin).forEach(function (key) {
16
14
  }
17
15
  });
18
16
  });
19
-
20
17
  var _CmsModelPlugin = require("./CmsModelPlugin");
21
-
22
18
  Object.keys(_CmsModelPlugin).forEach(function (key) {
23
19
  if (key === "default" || key === "__esModule") return;
24
20
  if (key in exports && exports[key] === _CmsModelPlugin[key]) return;
@@ -29,9 +25,7 @@ Object.keys(_CmsModelPlugin).forEach(function (key) {
29
25
  }
30
26
  });
31
27
  });
32
-
33
28
  var _StorageTransformPlugin = require("./StorageTransformPlugin");
34
-
35
29
  Object.keys(_StorageTransformPlugin).forEach(function (key) {
36
30
  if (key === "default" || key === "__esModule") return;
37
31
  if (key in exports && exports[key] === _StorageTransformPlugin[key]) return;
@@ -42,9 +36,7 @@ Object.keys(_StorageTransformPlugin).forEach(function (key) {
42
36
  }
43
37
  });
44
38
  });
45
-
46
39
  var _CmsParametersPlugin = require("./CmsParametersPlugin");
47
-
48
40
  Object.keys(_CmsParametersPlugin).forEach(function (key) {
49
41
  if (key === "default" || key === "__esModule") return;
50
42
  if (key in exports && exports[key] === _CmsParametersPlugin[key]) return;
@@ -55,9 +47,7 @@ Object.keys(_CmsParametersPlugin).forEach(function (key) {
55
47
  }
56
48
  });
57
49
  });
58
-
59
50
  var _CmsModelFieldConverterPlugin = require("./CmsModelFieldConverterPlugin");
60
-
61
51
  Object.keys(_CmsModelFieldConverterPlugin).forEach(function (key) {
62
52
  if (key === "default" || key === "__esModule") return;
63
53
  if (key in exports && exports[key] === _CmsModelFieldConverterPlugin[key]) return;
@@ -67,4 +57,26 @@ Object.keys(_CmsModelFieldConverterPlugin).forEach(function (key) {
67
57
  return _CmsModelFieldConverterPlugin[key];
68
58
  }
69
59
  });
60
+ });
61
+ var _CmsGraphQLSchemaPlugin = require("./CmsGraphQLSchemaPlugin");
62
+ Object.keys(_CmsGraphQLSchemaPlugin).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _CmsGraphQLSchemaPlugin[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _CmsGraphQLSchemaPlugin[key];
69
+ }
70
+ });
71
+ });
72
+ var _CmsGraphQLSchemaSorterPlugin = require("./CmsGraphQLSchemaSorterPlugin");
73
+ Object.keys(_CmsGraphQLSchemaSorterPlugin).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _CmsGraphQLSchemaSorterPlugin[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function () {
79
+ return _CmsGraphQLSchemaSorterPlugin[key];
80
+ }
81
+ });
70
82
  });
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./CmsGroupPlugin\";\nexport * from \"./CmsModelPlugin\";\nexport * from \"./StorageTransformPlugin\";\nexport * from \"./CmsParametersPlugin\";\nexport * from \"./CmsModelFieldConverterPlugin\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./CmsGroupPlugin\";\nexport * from \"./CmsModelPlugin\";\nexport * from \"./StorageTransformPlugin\";\nexport * from \"./CmsParametersPlugin\";\nexport * from \"./CmsModelFieldConverterPlugin\";\nexport * from \"./CmsGraphQLSchemaPlugin\";\nexport * from \"./CmsGraphQLSchemaSorterPlugin\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createDefaultStorageTransform = void 0;
7
-
8
7
  var _StorageTransformPlugin = require("../plugins/StorageTransformPlugin");
9
-
10
8
  const createDefaultStorageTransform = () => {
11
9
  return new _StorageTransformPlugin.StorageTransformPlugin({
12
10
  name: "headless-cms.storage-transform.all.default",
@@ -23,5 +21,4 @@ const createDefaultStorageTransform = () => {
23
21
  }
24
22
  });
25
23
  };
26
-
27
24
  exports.createDefaultStorageTransform = createDefaultStorageTransform;
@@ -1 +1 @@
1
- {"version":3,"names":["createDefaultStorageTransform","StorageTransformPlugin","name","fieldType","fromStorage","value","toStorage"],"sources":["default.ts"],"sourcesContent":["import { StorageTransformPlugin } from \"~/plugins/StorageTransformPlugin\";\n\nexport const createDefaultStorageTransform = (): StorageTransformPlugin => {\n return new StorageTransformPlugin({\n name: \"headless-cms.storage-transform.all.default\",\n fieldType: \"*\",\n fromStorage: async ({ value }) => {\n return value;\n },\n toStorage: async ({ value }) => {\n return value;\n }\n });\n};\n"],"mappings":";;;;;;;AAAA;;AAEO,MAAMA,6BAA6B,GAAG,MAA8B;EACvE,OAAO,IAAIC,8CAAJ,CAA2B;IAC9BC,IAAI,EAAE,4CADwB;IAE9BC,SAAS,EAAE,GAFmB;IAG9BC,WAAW,EAAE,OAAO;MAAEC;IAAF,CAAP,KAAqB;MAC9B,OAAOA,KAAP;IACH,CAL6B;IAM9BC,SAAS,EAAE,OAAO;MAAED;IAAF,CAAP,KAAqB;MAC5B,OAAOA,KAAP;IACH;EAR6B,CAA3B,CAAP;AAUH,CAXM"}
1
+ {"version":3,"names":["createDefaultStorageTransform","StorageTransformPlugin","name","fieldType","fromStorage","value","toStorage"],"sources":["default.ts"],"sourcesContent":["import { StorageTransformPlugin } from \"~/plugins/StorageTransformPlugin\";\n\nexport const createDefaultStorageTransform = (): StorageTransformPlugin => {\n return new StorageTransformPlugin({\n name: \"headless-cms.storage-transform.all.default\",\n fieldType: \"*\",\n fromStorage: async ({ value }) => {\n return value;\n },\n toStorage: async ({ value }) => {\n return value;\n }\n });\n};\n"],"mappings":";;;;;;AAAA;AAEO,MAAMA,6BAA6B,GAAG,MAA8B;EACvE,OAAO,IAAIC,8CAAsB,CAAC;IAC9BC,IAAI,EAAE,4CAA4C;IAClDC,SAAS,EAAE,GAAG;IACdC,WAAW,EAAE,OAAO;MAAEC;IAAM,CAAC,KAAK;MAC9B,OAAOA,KAAK;IAChB,CAAC;IACDC,SAAS,EAAE,OAAO;MAAED;IAAM,CAAC,KAAK;MAC5B,OAAOA,KAAK;IAChB;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}