@webiny/api-headless-cms 0.0.0-unstable.5e7233243f → 0.0.0-unstable.60a863e033

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 (358) hide show
  1. package/context.d.ts +5 -2
  2. package/context.js +55 -25
  3. package/context.js.map +1 -1
  4. package/crud/contentEntry/afterDelete.d.ts +2 -2
  5. package/crud/contentEntry/afterDelete.js +2 -7
  6. package/crud/contentEntry/afterDelete.js.map +1 -1
  7. package/crud/contentEntry/beforeCreate.d.ts +2 -2
  8. package/crud/contentEntry/beforeCreate.js +2 -5
  9. package/crud/contentEntry/beforeCreate.js.map +1 -1
  10. package/crud/contentEntry/beforeUpdate.d.ts +2 -2
  11. package/crud/contentEntry/beforeUpdate.js +2 -5
  12. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  13. package/crud/contentEntry/entryDataValidation.js +4 -47
  14. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  15. package/crud/contentEntry/markLockedFields.js +22 -39
  16. package/crud/contentEntry/markLockedFields.js.map +1 -1
  17. package/crud/contentEntry/referenceFieldsMapping.js +15 -73
  18. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  19. package/crud/contentEntry/searchableFields.d.ts +9 -0
  20. package/crud/contentEntry/searchableFields.js +72 -0
  21. package/crud/contentEntry/searchableFields.js.map +1 -0
  22. package/crud/contentEntry.crud.d.ts +0 -2
  23. package/crud/contentEntry.crud.js +292 -395
  24. package/crud/contentEntry.crud.js.map +1 -1
  25. package/crud/contentModel/afterCreate.d.ts +3 -3
  26. package/crud/contentModel/afterCreate.js +5 -7
  27. package/crud/contentModel/afterCreate.js.map +1 -1
  28. package/crud/contentModel/afterCreateFrom.d.ts +3 -3
  29. package/crud/contentModel/afterCreateFrom.js +5 -7
  30. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  31. package/crud/contentModel/afterDelete.d.ts +3 -3
  32. package/crud/contentModel/afterDelete.js +5 -7
  33. package/crud/contentModel/afterDelete.js.map +1 -1
  34. package/crud/contentModel/afterUpdate.d.ts +3 -3
  35. package/crud/contentModel/afterUpdate.js +5 -7
  36. package/crud/contentModel/afterUpdate.js.map +1 -1
  37. package/crud/contentModel/beforeCreate.d.ts +5 -6
  38. package/crud/contentModel/beforeCreate.js +17 -46
  39. package/crud/contentModel/beforeCreate.js.map +1 -1
  40. package/crud/contentModel/beforeDelete.d.ts +3 -3
  41. package/crud/contentModel/beforeDelete.js +6 -16
  42. package/crud/contentModel/beforeDelete.js.map +1 -1
  43. package/crud/contentModel/beforeUpdate.d.ts +4 -6
  44. package/crud/contentModel/beforeUpdate.js +7 -12
  45. package/crud/contentModel/beforeUpdate.js.map +1 -1
  46. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  47. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  48. package/crud/contentModel/createFieldStorageId.js +4 -3
  49. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  50. package/crud/contentModel/models.js +12 -0
  51. package/crud/contentModel/models.js.map +1 -1
  52. package/crud/contentModel/systemFields.js.map +1 -1
  53. package/crud/contentModel/validateLayout.js +0 -8
  54. package/crud/contentModel/validateLayout.js.map +1 -1
  55. package/crud/contentModel/validateModel.d.ts +3 -4
  56. package/crud/contentModel/validateModel.js +7 -12
  57. package/crud/contentModel/validateModel.js.map +1 -1
  58. package/crud/contentModel/validateModelFields.d.ts +3 -4
  59. package/crud/contentModel/validateModelFields.js +121 -104
  60. package/crud/contentModel/validateModelFields.js.map +1 -1
  61. package/crud/contentModel/validation.d.ts +477 -0
  62. package/crud/contentModel/validation.js +97 -0
  63. package/crud/contentModel/validation.js.map +1 -0
  64. package/crud/contentModel.crud.js +278 -304
  65. package/crud/contentModel.crud.js.map +1 -1
  66. package/crud/contentModelGroup/beforeCreate.d.ts +2 -2
  67. package/crud/contentModelGroup/beforeCreate.js +3 -15
  68. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  69. package/crud/contentModelGroup/beforeDelete.d.ts +2 -2
  70. package/crud/contentModelGroup/beforeDelete.js +3 -11
  71. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  72. package/crud/contentModelGroup/beforeUpdate.d.ts +2 -2
  73. package/crud/contentModelGroup/beforeUpdate.js +2 -7
  74. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  75. package/crud/contentModelGroup/validation.d.ts +30 -0
  76. package/crud/contentModelGroup/validation.js +34 -0
  77. package/crud/contentModelGroup/validation.js.map +1 -0
  78. package/crud/contentModelGroup.crud.js +96 -118
  79. package/crud/contentModelGroup.crud.js.map +1 -1
  80. package/crud/settings.crud.js +3 -20
  81. package/crud/settings.crud.js.map +1 -1
  82. package/crud/system.crud.js +61 -84
  83. package/crud/system.crud.js.map +1 -1
  84. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +1 -14
  85. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  86. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  87. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +203 -0
  88. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  89. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +16 -71
  90. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  91. package/fieldConverters/index.d.ts +2 -1
  92. package/fieldConverters/index.js +2 -5
  93. package/fieldConverters/index.js.map +1 -1
  94. package/graphql/buildSchemaPlugins.d.ts +8 -3
  95. package/graphql/buildSchemaPlugins.js +6 -14
  96. package/graphql/buildSchemaPlugins.js.map +1 -1
  97. package/graphql/createExecutableSchema.d.ts +7 -0
  98. package/graphql/createExecutableSchema.js +29 -0
  99. package/graphql/createExecutableSchema.js.map +1 -0
  100. package/graphql/generateSchema.d.ts +8 -0
  101. package/graphql/generateSchema.js +31 -0
  102. package/graphql/generateSchema.js.map +1 -0
  103. package/graphql/graphQLHandlerFactory.js +91 -75
  104. package/graphql/graphQLHandlerFactory.js.map +1 -1
  105. package/graphql/index.d.ts +1 -3
  106. package/graphql/index.js +2 -46
  107. package/graphql/index.js.map +1 -1
  108. package/graphql/schema/baseContentSchema.d.ts +6 -2
  109. package/graphql/schema/baseContentSchema.js +14 -22
  110. package/graphql/schema/baseContentSchema.js.map +1 -1
  111. package/graphql/schema/baseSchema.d.ts +3 -0
  112. package/graphql/schema/baseSchema.js +53 -0
  113. package/graphql/schema/baseSchema.js.map +1 -0
  114. package/graphql/schema/contentEntries.d.ts +6 -2
  115. package/graphql/schema/contentEntries.js +40 -66
  116. package/graphql/schema/contentEntries.js.map +1 -1
  117. package/graphql/schema/contentModelGroups.d.ts +6 -2
  118. package/graphql/schema/contentModelGroups.js +9 -22
  119. package/graphql/schema/contentModelGroups.js.map +1 -1
  120. package/graphql/schema/contentModels.d.ts +6 -2
  121. package/graphql/schema/contentModels.js +57 -21
  122. package/graphql/schema/contentModels.js.map +1 -1
  123. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  124. package/graphql/schema/createFieldResolvers.js +24 -37
  125. package/graphql/schema/createFieldResolvers.js.map +1 -1
  126. package/graphql/schema/createManageResolvers.js +4 -44
  127. package/graphql/schema/createManageResolvers.js.map +1 -1
  128. package/graphql/schema/createManageSDL.d.ts +2 -0
  129. package/graphql/schema/createManageSDL.js +13 -26
  130. package/graphql/schema/createManageSDL.js.map +1 -1
  131. package/graphql/schema/createPreviewResolvers.js +3 -17
  132. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  133. package/graphql/schema/createReadResolvers.js +8 -17
  134. package/graphql/schema/createReadResolvers.js.map +1 -1
  135. package/graphql/schema/createReadSDL.d.ts +2 -0
  136. package/graphql/schema/createReadSDL.js +11 -15
  137. package/graphql/schema/createReadSDL.js.map +1 -1
  138. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -2
  139. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  140. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  141. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  142. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  143. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  144. package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
  145. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  146. package/graphql/schema/resolvers/manage/resolveGet.js +5 -25
  147. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  148. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  149. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  150. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  151. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  152. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  153. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  154. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  155. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  156. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  157. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  158. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  159. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  160. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  161. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  162. package/graphql/schema/resolvers/preview/resolveGet.js +3 -15
  163. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  164. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  165. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  166. package/graphql/schema/resolvers/read/resolveGet.js +3 -15
  167. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  168. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  169. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  170. package/graphql/schema/schemaPlugins.d.ts +8 -3
  171. package/graphql/schema/schemaPlugins.js +63 -65
  172. package/graphql/schema/schemaPlugins.js.map +1 -1
  173. package/graphql/system.js +69 -85
  174. package/graphql/system.js.map +1 -1
  175. package/graphqlFields/boolean.js +0 -12
  176. package/graphqlFields/boolean.js.map +1 -1
  177. package/graphqlFields/datetime.js +0 -17
  178. package/graphqlFields/datetime.js.map +1 -1
  179. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
  180. package/graphqlFields/dynamicZone/dynamicZoneField.js +208 -0
  181. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
  182. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
  183. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +63 -0
  184. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
  185. package/graphqlFields/dynamicZone/index.d.ts +2 -0
  186. package/graphqlFields/dynamicZone/index.js +19 -0
  187. package/graphqlFields/dynamicZone/index.js.map +1 -0
  188. package/graphqlFields/file.js +0 -8
  189. package/graphqlFields/file.js.map +1 -1
  190. package/graphqlFields/helpers.js +0 -10
  191. package/graphqlFields/helpers.js.map +1 -1
  192. package/graphqlFields/index.d.ts +1 -1
  193. package/graphqlFields/index.js +2 -12
  194. package/graphqlFields/index.js.map +1 -1
  195. package/graphqlFields/longText.js +0 -10
  196. package/graphqlFields/longText.js.map +1 -1
  197. package/graphqlFields/number.js +4 -12
  198. package/graphqlFields/number.js.map +1 -1
  199. package/graphqlFields/object.js +113 -99
  200. package/graphqlFields/object.js.map +1 -1
  201. package/graphqlFields/ref.js +52 -104
  202. package/graphqlFields/ref.js.map +1 -1
  203. package/graphqlFields/richText.js +0 -9
  204. package/graphqlFields/richText.js.map +1 -1
  205. package/graphqlFields/text.js +0 -11
  206. package/graphqlFields/text.js.map +1 -1
  207. package/index.d.ts +3 -3
  208. package/index.js +3 -26
  209. package/index.js.map +1 -1
  210. package/modelManager/DefaultCmsModelManager.d.ts +7 -7
  211. package/modelManager/DefaultCmsModelManager.js +1 -17
  212. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  213. package/modelManager/index.js +0 -4
  214. package/modelManager/index.js.map +1 -1
  215. package/package.json +31 -32
  216. package/parameters/context.js +0 -4
  217. package/parameters/context.js.map +1 -1
  218. package/parameters/header.js +1 -12
  219. package/parameters/header.js.map +1 -1
  220. package/parameters/index.js +0 -8
  221. package/parameters/index.js.map +1 -1
  222. package/parameters/manual.js +7 -15
  223. package/parameters/manual.js.map +1 -1
  224. package/parameters/path.js +1 -12
  225. package/parameters/path.js.map +1 -1
  226. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  227. package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
  228. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  229. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  230. package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
  231. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  232. package/plugins/CmsGroupPlugin.js +1 -9
  233. package/plugins/CmsGroupPlugin.js.map +1 -1
  234. package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
  235. package/plugins/CmsModelFieldConverterPlugin.js +1 -6
  236. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  237. package/plugins/CmsModelPlugin.d.ts +6 -2
  238. package/plugins/CmsModelPlugin.js +18 -49
  239. package/plugins/CmsModelPlugin.js.map +1 -1
  240. package/plugins/CmsParametersPlugin.js +1 -8
  241. package/plugins/CmsParametersPlugin.js.map +1 -1
  242. package/plugins/StorageTransformPlugin.d.ts +11 -11
  243. package/plugins/StorageTransformPlugin.js +1 -10
  244. package/plugins/StorageTransformPlugin.js.map +1 -1
  245. package/plugins/index.d.ts +2 -0
  246. package/plugins/index.js +22 -10
  247. package/plugins/index.js.map +1 -1
  248. package/storage/default.js +0 -3
  249. package/storage/default.js.map +1 -1
  250. package/storage/object.js +7 -27
  251. package/storage/object.js.map +1 -1
  252. package/types.d.ts +504 -179
  253. package/types.js +62 -71
  254. package/types.js.map +1 -1
  255. package/upgrades/5.33.0/index.js +8 -35
  256. package/upgrades/5.33.0/index.js.map +1 -1
  257. package/upgrades/index.js +0 -3
  258. package/upgrades/index.js.map +1 -1
  259. package/utils/access.js +11 -25
  260. package/utils/access.js.map +1 -1
  261. package/utils/converters/Converter.js +1 -14
  262. package/utils/converters/Converter.js.map +1 -1
  263. package/utils/converters/ConverterCollection.d.ts +7 -0
  264. package/utils/converters/ConverterCollection.js +36 -32
  265. package/utils/converters/ConverterCollection.js.map +1 -1
  266. package/utils/converters/valueKeyStorageConverter.js +3 -33
  267. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  268. package/utils/createTypeFromFields.d.ts +15 -0
  269. package/utils/createTypeFromFields.js +64 -0
  270. package/utils/createTypeFromFields.js.map +1 -0
  271. package/utils/createTypeName.js +3 -10
  272. package/utils/createTypeName.js.map +1 -1
  273. package/utils/entryStorage.js +25 -42
  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/getEntryTitle.js +0 -9
  281. package/utils/getEntryTitle.js.map +1 -1
  282. package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
  283. package/utils/getSchemaFromFieldPlugins.js +23 -19
  284. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  285. package/utils/ownership.js +0 -8
  286. package/utils/ownership.js.map +1 -1
  287. package/utils/permissions.js +7 -26
  288. package/utils/permissions.js.map +1 -1
  289. package/utils/pluralizedTypeName.js +1 -7
  290. package/utils/pluralizedTypeName.js.map +1 -1
  291. package/utils/renderFields.js +2 -9
  292. package/utils/renderFields.js.map +1 -1
  293. package/utils/renderGetFilterFields.js +6 -14
  294. package/utils/renderGetFilterFields.js.map +1 -1
  295. package/utils/renderInputFields.js +2 -9
  296. package/utils/renderInputFields.js.map +1 -1
  297. package/utils/renderListFilterFields.js +10 -9
  298. package/utils/renderListFilterFields.js.map +1 -1
  299. package/utils/renderSortEnum.d.ts +7 -4
  300. package/utils/renderSortEnum.js +21 -11
  301. package/utils/renderSortEnum.js.map +1 -1
  302. package/utils/toSlug.js +1 -5
  303. package/utils/toSlug.js.map +1 -1
  304. package/validators/dateGte.js +0 -7
  305. package/validators/dateGte.js.map +1 -1
  306. package/validators/dateLte.js +0 -7
  307. package/validators/dateLte.js.map +1 -1
  308. package/validators/dynamicZone.d.ts +2 -0
  309. package/validators/dynamicZone.js +20 -0
  310. package/validators/dynamicZone.js.map +1 -0
  311. package/validators/gte.js +0 -8
  312. package/validators/gte.js.map +1 -1
  313. package/validators/in.js +0 -8
  314. package/validators/in.js.map +1 -1
  315. package/validators/index.js +2 -16
  316. package/validators/index.js.map +1 -1
  317. package/validators/lte.js +0 -8
  318. package/validators/lte.js.map +1 -1
  319. package/validators/maxLength.js +0 -8
  320. package/validators/maxLength.js.map +1 -1
  321. package/validators/minLength.js +0 -8
  322. package/validators/minLength.js.map +1 -1
  323. package/validators/pattern.js +0 -9
  324. package/validators/pattern.js.map +1 -1
  325. package/validators/patternPlugins/email.js +0 -2
  326. package/validators/patternPlugins/email.js.map +1 -1
  327. package/validators/patternPlugins/index.js +0 -8
  328. package/validators/patternPlugins/index.js.map +1 -1
  329. package/validators/patternPlugins/lowerCase.js +0 -2
  330. package/validators/patternPlugins/lowerCase.js.map +1 -1
  331. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  332. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  333. package/validators/patternPlugins/upperCase.js +0 -2
  334. package/validators/patternPlugins/upperCase.js.map +1 -1
  335. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  336. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  337. package/validators/patternPlugins/url.js +0 -2
  338. package/validators/patternPlugins/url.js.map +1 -1
  339. package/validators/required.js +0 -5
  340. package/validators/required.js.map +1 -1
  341. package/validators/timeGte.js +0 -8
  342. package/validators/timeGte.js.map +1 -1
  343. package/validators/timeLte.js +0 -8
  344. package/validators/timeLte.js.map +1 -1
  345. package/validators/unique.js +1 -8
  346. package/validators/unique.js.map +1 -1
  347. package/crud/index.d.ts +0 -6
  348. package/crud/index.js +0 -89
  349. package/crud/index.js.map +0 -1
  350. package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
  351. package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
  352. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
  353. package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
  354. package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
  355. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
  356. package/utils/filterModelFields.d.ts +0 -16
  357. package/utils/filterModelFields.js +0 -81
  358. package/utils/filterModelFields.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["CmsGroupPlugin","Plugin","constructor","contentModelGroup","createCmsGroup","group"],"sources":["CmsGroupPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsGroup as BaseCmsGroup } from \"~/types\";\n\ninterface CmsGroup extends Omit<BaseCmsGroup, \"locale\" | \"tenant\" | \"webinyVersion\"> {\n tenant?: string;\n locale?: string;\n}\nexport class CmsGroupPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model-group\";\n public readonly contentModelGroup: CmsGroup;\n\n constructor(contentModelGroup: CmsGroup) {\n super();\n this.contentModelGroup = contentModelGroup;\n }\n}\n\nexport const createCmsGroup = (group: CmsGroup): CmsGroupPlugin => {\n return new CmsGroupPlugin(group);\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAOO,MAAMA,cAAN,SAA6BC,eAA7B,CAAoC;EAIvCC,WAAW,CAACC,iBAAD,EAA8B;IACrC;IADqC;IAErC,KAAKA,iBAAL,GAAyBA,iBAAzB;EACH;;AAPsC;;;8BAA9BH,c,UACsC,yB;;AAS5C,MAAMI,cAAc,GAAIC,KAAD,IAAqC;EAC/D,OAAO,IAAIL,cAAJ,CAAmBK,KAAnB,CAAP;AACH,CAFM"}
1
+ {"version":3,"names":["CmsGroupPlugin","Plugin","constructor","contentModelGroup","createCmsGroup","group"],"sources":["CmsGroupPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsGroup as BaseCmsGroup } from \"~/types\";\n\ninterface CmsGroup extends Omit<BaseCmsGroup, \"locale\" | \"tenant\" | \"webinyVersion\"> {\n tenant?: string;\n locale?: string;\n}\nexport class CmsGroupPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model-group\";\n public readonly contentModelGroup: CmsGroup;\n\n constructor(contentModelGroup: CmsGroup) {\n super();\n this.contentModelGroup = contentModelGroup;\n }\n}\n\nexport const createCmsGroup = (group: CmsGroup): CmsGroupPlugin => {\n return new CmsGroupPlugin(group);\n};\n"],"mappings":";;;;;;;;AAAA;AAOO,MAAMA,cAAc,SAASC,eAAM,CAAC;EAIvCC,WAAW,CAACC,iBAA2B,EAAE;IACrC,KAAK,EAAE;IAAC;IACR,IAAI,CAACA,iBAAiB,GAAGA,iBAAiB;EAC9C;AACJ;AAAC;AAAA,8BARYH,cAAc,UACwB,yBAAyB;AASrE,MAAMI,cAAc,GAAIC,KAAe,IAAqB;EAC/D,OAAO,IAAIL,cAAc,CAACK,KAAK,CAAC;AACpC,CAAC;AAAC"}
@@ -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
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
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"}
@@ -29,13 +29,17 @@ interface CmsModel extends Omit<CmsModelBase, "locale" | "tenant" | "webinyVersi
29
29
  locale?: string;
30
30
  tenant?: string;
31
31
  }
32
+ interface CmsModelPluginOptions {
33
+ validateLayout?: boolean;
34
+ }
32
35
  export declare class CmsModelPlugin extends Plugin {
33
36
  static readonly type: string;
34
37
  readonly contentModel: CmsModel;
35
- constructor(contentModel: CmsModelInput);
38
+ private readonly options;
39
+ constructor(contentModel: CmsModelInput, options?: CmsModelPluginOptions);
36
40
  private buildModel;
37
41
  private buildFields;
38
42
  private validateLayout;
39
43
  }
40
- export declare const createCmsModel: (model: CmsModelInput) => CmsModelPlugin;
44
+ export declare const createCmsModel: (model: CmsModelInput, options?: CmsModelPluginOptions) => CmsModelPlugin;
41
45
  export {};
@@ -1,56 +1,42 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createCmsModel = exports.CmsModelPlugin = void 0;
9
-
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
10
  var _plugins = require("@webiny/plugins");
13
-
14
11
  var _error = _interopRequireDefault(require("@webiny/error"));
15
-
16
12
  var _createFieldStorageId = require("../crud/contentModel/createFieldStorageId");
17
-
18
13
  var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
19
-
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
-
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
-
24
14
  class CmsModelPlugin extends _plugins.Plugin {
25
- constructor(contentModel) {
15
+ constructor(contentModel, options) {
26
16
  super();
27
17
  (0, _defineProperty2.default)(this, "contentModel", void 0);
18
+ (0, _defineProperty2.default)(this, "options", void 0);
19
+ this.options = options || {};
28
20
  this.contentModel = this.buildModel(contentModel);
29
21
  }
30
-
31
22
  buildModel(input) {
32
- const model = _objectSpread(_objectSpread({}, input), {}, {
23
+ const model = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
33
24
  fields: this.buildFields(input, input.fields)
34
25
  });
35
-
36
26
  this.validateLayout(model);
37
27
  return model;
38
28
  }
39
-
40
29
  buildFields(model, inputFields) {
41
30
  if (inputFields.length === 0) {
42
31
  throw new _error.default(`Missing fields for the defined model "${model.modelId}".`, "MISSING_FIELDS", {
43
32
  model
44
33
  });
45
34
  }
46
-
47
35
  const fields = [];
48
36
  const storageIdList = [];
49
37
  const fieldIdList = [];
50
-
51
38
  for (const input of inputFields) {
52
39
  var _settings;
53
-
54
40
  /**
55
41
  * Field must contain an fieldId. It is required in the graphql, but lets check it just in case
56
42
  */
@@ -60,12 +46,10 @@ class CmsModelPlugin extends _plugins.Plugin {
60
46
  field: input
61
47
  });
62
48
  }
63
-
64
49
  const fieldId = (0, _camelCase.default)(input.fieldId);
65
50
  /**
66
51
  * FieldID must be in correct pattern.
67
52
  */
68
-
69
53
  if (fieldId.match(/^[0-9]/) !== null) {
70
54
  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", {
71
55
  model,
@@ -75,8 +59,6 @@ class CmsModelPlugin extends _plugins.Plugin {
75
59
  /**
76
60
  * FieldID also must be camelCased.
77
61
  */
78
-
79
-
80
62
  if (fieldId !== input.fieldId) {
81
63
  throw new _error.default(`Field's "fieldId" must be a camel cased string in the content model "${model.modelId}".`, "FIELD_FIELD_ID_ERROR", {
82
64
  model,
@@ -86,20 +68,16 @@ class CmsModelPlugin extends _plugins.Plugin {
86
68
  /**
87
69
  * ... and fieldId must be unique.
88
70
  */
89
-
90
-
91
71
  if (fieldIdList.includes(fieldId) === true) {
92
72
  throw new _error.default(`Field's "fieldId" is not unique in the content model "${model.modelId}".`, "FIELD_ID_NOT_UNIQUE_ERROR", {
93
73
  model,
94
74
  field: input
95
75
  });
96
76
  }
97
-
98
77
  let storageId = input.storageId ? (0, _camelCase.default)(input.storageId) : null;
99
78
  /**
100
79
  * If defined, storageId MUST be camel cased string - for backward compatibility.
101
80
  */
102
-
103
81
  if (storageId && (storageId.match(/^([a-zA-Z-0-9]+)$/) === null || storageId !== input.storageId)) {
104
82
  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", {
105
83
  model,
@@ -109,58 +87,54 @@ class CmsModelPlugin extends _plugins.Plugin {
109
87
  } else if (!storageId) {
110
88
  storageId = (0, _createFieldStorageId.createFieldStorageId)(input);
111
89
  }
90
+
112
91
  /**
113
92
  * Fields storageId must be unique.
114
93
  */
115
-
116
-
117
94
  if (storageIdList.includes(storageId) === true) {
118
95
  throw new _error.default(`Field's "storageId" is not unique in the content model "${model.modelId}".`, "STORAGE_ID_ERROR", {
119
96
  model,
120
97
  field: input
121
98
  });
122
99
  }
100
+
123
101
  /**
124
102
  * We can safely ignore error because we are going through the fields and making sure each has storageId.
125
103
  */
126
104
  // @ts-ignore
127
-
128
-
129
105
  let settings = input.settings;
130
106
  const childFields = ((_settings = settings) === null || _settings === void 0 ? void 0 : _settings.fields) || [];
131
-
132
107
  if (input.type === "object" && childFields.length > 0) {
133
- settings = _objectSpread(_objectSpread({}, settings || {}), {}, {
108
+ settings = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, settings || {}), {}, {
134
109
  fields: this.buildFields(model, childFields)
135
110
  });
136
111
  }
137
-
138
- const field = _objectSpread(_objectSpread({}, input), {}, {
112
+ const field = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
139
113
  settings,
140
114
  storageId
141
115
  });
142
116
  /**
143
117
  * Add all relevant data to arrays.
144
118
  */
145
-
146
-
147
119
  fields.push(field);
148
120
  storageIdList.push(field.storageId);
149
121
  fieldIdList.push(field.fieldId);
150
122
  }
151
-
152
123
  return fields;
153
124
  }
154
-
155
125
  validateLayout(model) {
126
+ /**
127
+ * Only skip validation if option.validateLayout was set as false, explicitly.
128
+ */
129
+ if (this.options.validateLayout === false) {
130
+ return;
131
+ }
156
132
  for (const field of model.fields) {
157
133
  let total = 0;
158
-
159
134
  for (const row of model.layout) {
160
135
  const count = row.filter(cell => cell === field.id).length;
161
136
  total = total + count;
162
137
  }
163
-
164
138
  if (total === 1) {
165
139
  continue;
166
140
  } else if (total > 1) {
@@ -169,21 +143,16 @@ class CmsModelPlugin extends _plugins.Plugin {
169
143
  field
170
144
  });
171
145
  }
172
-
173
146
  throw new _error.default(`Missing field "${field.id}" in layout.`, "MISSING_FIELD_IN_LAYOUT", {
174
147
  model,
175
148
  field
176
149
  });
177
150
  }
178
151
  }
179
-
180
152
  }
181
-
182
153
  exports.CmsModelPlugin = CmsModelPlugin;
183
154
  (0, _defineProperty2.default)(CmsModelPlugin, "type", "cms-content-model");
184
-
185
- const createCmsModel = model => {
186
- return new CmsModelPlugin(model);
155
+ const createCmsModel = (model, options) => {
156
+ return new CmsModelPlugin(model, options);
187
157
  };
188
-
189
158
  exports.createCmsModel = createCmsModel;
@@ -1 +1 @@
1
- {"version":3,"names":["CmsModelPlugin","Plugin","constructor","contentModel","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\nexport class CmsModelPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model\";\n public readonly contentModel: CmsModel;\n\n constructor(contentModel: CmsModelInput) {\n super();\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 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 = (model: CmsModelInput): CmsModelPlugin => {\n return new CmsModelPlugin(model);\n};\n"],"mappings":"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"}
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,28 +1,21 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
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
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
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"}