@prismicio/types-internal 4.6.0 → 4.7.0-pr.28.255f9f9

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 (279) hide show
  1. package/dist/common/asset.d.ts +1 -2
  2. package/dist/common/asset.d.ts.map +1 -1
  3. package/dist/common/asset.js.map +1 -1
  4. package/dist/common/embed.d.ts +1 -2
  5. package/dist/common/embed.d.ts.map +1 -1
  6. package/dist/common/embed.js.map +1 -1
  7. package/dist/common/hexaColorCode.d.ts +1 -2
  8. package/dist/common/hexaColorCode.d.ts.map +1 -1
  9. package/dist/common/hexaColorCode.js.map +1 -1
  10. package/dist/common/nonEmptyString.d.ts +1 -2
  11. package/dist/common/nonEmptyString.d.ts.map +1 -1
  12. package/dist/common/nonEmptyString.js.map +1 -1
  13. package/dist/common/widgetKey.d.ts +1 -2
  14. package/dist/common/widgetKey.d.ts.map +1 -1
  15. package/dist/common/widgetKey.js.map +1 -1
  16. package/dist/content/boolean.d.ts +1 -2
  17. package/dist/content/boolean.d.ts.map +1 -1
  18. package/dist/content/boolean.js.map +1 -1
  19. package/dist/content/codec/boolean.js.map +1 -1
  20. package/dist/content/codec/document.js.map +1 -1
  21. package/dist/content/codec/embed.js.map +1 -1
  22. package/dist/content/codec/empty.js.map +1 -1
  23. package/dist/content/codec/field.js.map +1 -1
  24. package/dist/content/codec/geopoint.js.map +1 -1
  25. package/dist/content/codec/group.js +6 -4
  26. package/dist/content/codec/group.js.map +1 -1
  27. package/dist/content/codec/image.js.map +1 -1
  28. package/dist/content/codec/integrationField.js.map +1 -1
  29. package/dist/content/codec/legacyContentCtx.d.ts +2 -15
  30. package/dist/content/codec/legacyContentCtx.d.ts.map +1 -1
  31. package/dist/content/codec/legacyContentCtx.js.map +1 -1
  32. package/dist/content/codec/link.js.map +1 -1
  33. package/dist/content/codec/nestable.js.map +1 -1
  34. package/dist/content/codec/repeatable.js.map +1 -1
  35. package/dist/content/codec/richText.js.map +1 -1
  36. package/dist/content/codec/separator.js.map +1 -1
  37. package/dist/content/codec/slice.js.map +1 -1
  38. package/dist/content/codec/slices.js.map +1 -1
  39. package/dist/content/codec/table.js.map +1 -1
  40. package/dist/content/codec/uid.js.map +1 -1
  41. package/dist/content/codec/widget.js.map +1 -1
  42. package/dist/content/document.d.ts +1 -2
  43. package/dist/content/document.d.ts.map +1 -1
  44. package/dist/content/document.js.map +1 -1
  45. package/dist/content/embed.d.ts +1 -2
  46. package/dist/content/embed.d.ts.map +1 -1
  47. package/dist/content/embed.js.map +1 -1
  48. package/dist/content/empty.d.ts +1 -2
  49. package/dist/content/empty.d.ts.map +1 -1
  50. package/dist/content/empty.js.map +1 -1
  51. package/dist/content/field.d.ts +1 -2
  52. package/dist/content/field.d.ts.map +1 -1
  53. package/dist/content/field.js.map +1 -1
  54. package/dist/content/geopoint.d.ts +1 -2
  55. package/dist/content/geopoint.d.ts.map +1 -1
  56. package/dist/content/geopoint.js.map +1 -1
  57. package/dist/content/group.d.ts +3 -2
  58. package/dist/content/group.d.ts.map +1 -1
  59. package/dist/content/group.js.map +1 -1
  60. package/dist/content/image.d.ts +1 -2
  61. package/dist/content/image.d.ts.map +1 -1
  62. package/dist/content/image.js.map +1 -1
  63. package/dist/content/integrationField.d.ts +1 -2
  64. package/dist/content/integrationField.d.ts.map +1 -1
  65. package/dist/content/integrationField.js.map +1 -1
  66. package/dist/content/legacy/boolean.js.map +1 -1
  67. package/dist/content/legacy/document.d.ts +1 -2
  68. package/dist/content/legacy/document.d.ts.map +1 -1
  69. package/dist/content/legacy/document.js.map +1 -1
  70. package/dist/content/legacy/embed.js.map +1 -1
  71. package/dist/content/legacy/empty.js.map +1 -1
  72. package/dist/content/legacy/field.js.map +1 -1
  73. package/dist/content/legacy/geopoint.js.map +1 -1
  74. package/dist/content/legacy/group.d.ts +2 -2
  75. package/dist/content/legacy/group.d.ts.map +1 -1
  76. package/dist/content/legacy/group.js.map +1 -1
  77. package/dist/content/legacy/image.d.ts +0 -1
  78. package/dist/content/legacy/image.d.ts.map +1 -1
  79. package/dist/content/legacy/image.js.map +1 -1
  80. package/dist/content/legacy/integrationField.js.map +1 -1
  81. package/dist/content/legacy/link.d.ts +1 -2
  82. package/dist/content/legacy/link.d.ts.map +1 -1
  83. package/dist/content/legacy/link.js.map +1 -1
  84. package/dist/content/legacy/nestable.d.ts +12 -0
  85. package/dist/content/legacy/nestable.js.map +1 -1
  86. package/dist/content/legacy/repeatable.js.map +1 -1
  87. package/dist/content/legacy/richText.d.ts +5 -2
  88. package/dist/content/legacy/richText.d.ts.map +1 -1
  89. package/dist/content/legacy/richText.js.map +1 -1
  90. package/dist/content/legacy/separator.js.map +1 -1
  91. package/dist/content/legacy/slice.js +1 -1
  92. package/dist/content/legacy/slice.js.map +1 -1
  93. package/dist/content/legacy/slices.js.map +1 -1
  94. package/dist/content/legacy/table.d.ts +2 -0
  95. package/dist/content/legacy/table.js.map +1 -1
  96. package/dist/content/legacy/uid.js.map +1 -1
  97. package/dist/content/link.d.ts +7 -8
  98. package/dist/content/link.d.ts.map +1 -1
  99. package/dist/content/link.js.map +1 -1
  100. package/dist/content/nestable.d.ts +0 -1
  101. package/dist/content/nestable.d.ts.map +1 -1
  102. package/dist/content/nestable.js.map +1 -1
  103. package/dist/content/repeatable.d.ts +3 -4
  104. package/dist/content/repeatable.d.ts.map +1 -1
  105. package/dist/content/repeatable.js.map +1 -1
  106. package/dist/content/richText.d.ts +2 -3
  107. package/dist/content/richText.d.ts.map +1 -1
  108. package/dist/content/richText.js +2 -2
  109. package/dist/content/richText.js.map +1 -1
  110. package/dist/content/separator.d.ts +1 -2
  111. package/dist/content/separator.d.ts.map +1 -1
  112. package/dist/content/separator.js.map +1 -1
  113. package/dist/content/slice.d.ts +13 -14
  114. package/dist/content/slice.d.ts.map +1 -1
  115. package/dist/content/slice.js.map +1 -1
  116. package/dist/content/slices.d.ts +13 -14
  117. package/dist/content/slices.d.ts.map +1 -1
  118. package/dist/content/slices.js.map +1 -1
  119. package/dist/content/table.d.ts +1 -2
  120. package/dist/content/table.d.ts.map +1 -1
  121. package/dist/content/table.js.map +1 -1
  122. package/dist/content/uid.d.ts +1 -2
  123. package/dist/content/uid.d.ts.map +1 -1
  124. package/dist/content/uid.js.map +1 -1
  125. package/dist/content/widget.d.ts +0 -1
  126. package/dist/content/widget.d.ts.map +1 -1
  127. package/dist/content/widget.js.map +1 -1
  128. package/dist/helpers/contentPath.d.ts +1 -1
  129. package/dist/helpers/contentPath.d.ts.map +1 -1
  130. package/dist/helpers/contentPath.js +1 -1
  131. package/dist/helpers/contentPath.js.map +1 -1
  132. package/dist/helpers/customTypeModel.d.ts +1 -3
  133. package/dist/helpers/customTypeModel.d.ts.map +1 -1
  134. package/dist/helpers/customTypeModel.js +1 -1
  135. package/dist/helpers/customTypeModel.js.map +1 -1
  136. package/dist/helpers/documentContent.d.ts +1 -3
  137. package/dist/helpers/documentContent.d.ts.map +1 -1
  138. package/dist/helpers/documentContent.js +1 -1
  139. package/dist/helpers/documentContent.js.map +1 -1
  140. package/dist/helpers/fieldModel.d.ts +1 -1
  141. package/dist/helpers/fieldModel.d.ts.map +1 -1
  142. package/dist/helpers/fieldModel.js +1 -1
  143. package/dist/helpers/fieldModel.js.map +1 -1
  144. package/dist/helpers/imageContent.d.ts +2 -6
  145. package/dist/helpers/imageContent.d.ts.map +1 -1
  146. package/dist/helpers/imageContent.js +1 -1
  147. package/dist/helpers/imageContent.js.map +1 -1
  148. package/dist/helpers/repository.d.ts +1 -1
  149. package/dist/helpers/repository.d.ts.map +1 -1
  150. package/dist/helpers/repository.js +1 -1
  151. package/dist/helpers/repository.js.map +1 -1
  152. package/dist/helpers/sliceContent.d.ts +1 -3
  153. package/dist/helpers/sliceContent.d.ts.map +1 -1
  154. package/dist/helpers/sliceContent.js.map +1 -1
  155. package/dist/helpers/sliceModel.d.ts +1 -1
  156. package/dist/helpers/sliceModel.d.ts.map +1 -1
  157. package/dist/helpers/sliceModel.js +1 -1
  158. package/dist/helpers/sliceModel.js.map +1 -1
  159. package/dist/helpers/traverseContent.d.ts +0 -1
  160. package/dist/helpers/traverseContent.d.ts.map +1 -1
  161. package/dist/helpers/traverseContent.js.map +1 -1
  162. package/dist/helpers/traverseContentWithModel.d.ts +0 -1
  163. package/dist/helpers/traverseContentWithModel.d.ts.map +1 -1
  164. package/dist/helpers/traverseContentWithModel.js.map +1 -1
  165. package/dist/helpers/withDefaultContent.d.ts +1 -3
  166. package/dist/helpers/withDefaultContent.d.ts.map +1 -1
  167. package/dist/helpers/withDefaultContent.js +1 -1
  168. package/dist/helpers/withDefaultContent.js.map +1 -1
  169. package/dist/index.d.ts +5 -1
  170. package/dist/index.js +4 -1
  171. package/dist/io-ts.d.ts +434 -440
  172. package/dist/io-ts.d.ts.map +1 -1
  173. package/dist/io-ts.js +16 -16
  174. package/dist/io-ts.js.map +1 -1
  175. package/dist/model/boolean.d.ts +1 -2
  176. package/dist/model/boolean.d.ts.map +1 -1
  177. package/dist/model/boolean.js.map +1 -1
  178. package/dist/model/color.d.ts +1 -2
  179. package/dist/model/color.d.ts.map +1 -1
  180. package/dist/model/color.js.map +1 -1
  181. package/dist/model/customType.d.ts +3 -4
  182. package/dist/model/customType.d.ts.map +1 -1
  183. package/dist/model/customType.js +1 -1
  184. package/dist/model/customType.js.map +1 -1
  185. package/dist/model/date.d.ts +1 -2
  186. package/dist/model/date.d.ts.map +1 -1
  187. package/dist/model/date.js.map +1 -1
  188. package/dist/model/diff/changes.d.ts +21 -0
  189. package/dist/model/diff/changes.d.ts.map +1 -0
  190. package/dist/model/diff/changes.js +11 -0
  191. package/dist/model/diff/changes.js.map +1 -0
  192. package/dist/model/diff/sharedSlice.d.ts +14 -0
  193. package/dist/model/diff/sharedSlice.d.ts.map +1 -0
  194. package/dist/model/diff/sharedSlice.js +45 -0
  195. package/dist/model/diff/sharedSlice.js.map +1 -0
  196. package/dist/model/diff/utils.js +40 -0
  197. package/dist/model/diff/utils.js.map +1 -0
  198. package/dist/model/diff/variation.d.ts +15 -0
  199. package/dist/model/diff/variation.d.ts.map +1 -0
  200. package/dist/model/diff/variation.js +92 -0
  201. package/dist/model/diff/variation.js.map +1 -0
  202. package/dist/model/diff/widgets.d.ts +15 -0
  203. package/dist/model/diff/widgets.d.ts.map +1 -0
  204. package/dist/model/embed.d.ts +1 -2
  205. package/dist/model/embed.d.ts.map +1 -1
  206. package/dist/model/embed.js.map +1 -1
  207. package/dist/model/geopoint.d.ts +1 -2
  208. package/dist/model/geopoint.d.ts.map +1 -1
  209. package/dist/model/geopoint.js.map +1 -1
  210. package/dist/model/group.d.ts +39 -40
  211. package/dist/model/group.d.ts.map +1 -1
  212. package/dist/model/group.js +1 -1
  213. package/dist/model/group.js.map +1 -1
  214. package/dist/model/image.d.ts +1 -2
  215. package/dist/model/image.d.ts.map +1 -1
  216. package/dist/model/image.js +1 -1
  217. package/dist/model/image.js.map +1 -1
  218. package/dist/model/integrationField.d.ts +1 -2
  219. package/dist/model/integrationField.d.ts.map +1 -1
  220. package/dist/model/integrationField.js.map +1 -1
  221. package/dist/model/link.d.ts +2 -3
  222. package/dist/model/link.d.ts.map +1 -1
  223. package/dist/model/link.js.map +1 -1
  224. package/dist/model/nestable.d.ts +0 -1
  225. package/dist/model/nestable.d.ts.map +1 -1
  226. package/dist/model/nestable.js +3 -3
  227. package/dist/model/nestable.js.map +1 -1
  228. package/dist/model/number.d.ts +1 -2
  229. package/dist/model/number.d.ts.map +1 -1
  230. package/dist/model/number.js.map +1 -1
  231. package/dist/model/range.d.ts +1 -2
  232. package/dist/model/range.d.ts.map +1 -1
  233. package/dist/model/range.js.map +1 -1
  234. package/dist/model/richText.d.ts +1 -2
  235. package/dist/model/richText.d.ts.map +1 -1
  236. package/dist/model/richText.js +1 -1
  237. package/dist/model/richText.js.map +1 -1
  238. package/dist/model/select.d.ts +1 -2
  239. package/dist/model/select.d.ts.map +1 -1
  240. package/dist/model/select.js.map +1 -1
  241. package/dist/model/separator.d.ts +1 -2
  242. package/dist/model/separator.d.ts.map +1 -1
  243. package/dist/model/separator.js.map +1 -1
  244. package/dist/model/slice.d.ts +44 -45
  245. package/dist/model/slice.d.ts.map +1 -1
  246. package/dist/model/slice.js +1 -1
  247. package/dist/model/slice.js.map +1 -1
  248. package/dist/model/slices.d.ts +1 -2
  249. package/dist/model/slices.d.ts.map +1 -1
  250. package/dist/model/slices.js +1 -1
  251. package/dist/model/slices.js.map +1 -1
  252. package/dist/model/table.d.ts +3 -3
  253. package/dist/model/table.d.ts.map +1 -1
  254. package/dist/model/table.js.map +1 -1
  255. package/dist/model/text.d.ts +1 -2
  256. package/dist/model/text.d.ts.map +1 -1
  257. package/dist/model/text.js.map +1 -1
  258. package/dist/model/timestamp.d.ts +1 -2
  259. package/dist/model/timestamp.d.ts.map +1 -1
  260. package/dist/model/timestamp.js.map +1 -1
  261. package/dist/model/uid.d.ts +1 -2
  262. package/dist/model/uid.d.ts.map +1 -1
  263. package/dist/model/uid.js.map +1 -1
  264. package/dist/model/widget.d.ts +23 -24
  265. package/dist/model/widget.d.ts.map +1 -1
  266. package/dist/model/widget.js +1 -1
  267. package/dist/model/widget.js.map +1 -1
  268. package/dist/zod4.d.ts +3351 -3353
  269. package/dist/zod4.d.ts.map +1 -1
  270. package/dist/zod4.js +16 -16
  271. package/dist/zod4.js.map +1 -1
  272. package/package.json +12 -13
  273. package/src/helpers/customTypeModel.ts +3 -1
  274. package/src/index.ts +12 -0
  275. package/src/model/diff/changes.ts +4 -4
  276. package/src/model/diff/sharedSlice.ts +8 -8
  277. package/src/model/diff/variation.ts +6 -6
  278. package/src/model/diff/widgets.ts +3 -3
  279. package/src/model/image.ts +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"traverseContent.d.ts","names":[],"sources":["../../src/helpers/traverseContent.ts"],"mappings":"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"}
1
+ {"version":3,"file":"traverseContent.d.ts","names":[],"sources":["../../src/helpers/traverseContent.ts"],"mappings":";;;;;;;;;;;;;;;;KAqCK;EACJ,QAAQ;EACR,kBAAkB;EAClB,iBAAiB;;iBAGF,wBACf,UAAU,iBACV,QAAQ,gCACN;KA0BE;EACJ,QAAQ;EACR,kBAAkB;EAClB,iBAAiB;;iBAGF,sBACf,MAAM,MACN,aACA,eACA,SAAS,eACT,QAAQ,8BACN;KAiHE;EACJ,QAAQ;EACR,kBAAkB;EAClB,iBAAiB;;iBAGF,2BACf,MAAM,MACN,aACA,eACA,SAAS,wBACT,QAAQ,mCACN;KA0CE;EACJ,QAAQ,sBAAsB;EAC9B,kBAAkB;EAClB,iBAAiB;;iBAGF,8BACf,MAAM,MACN,aACA,eACA,SAAS,2BACT,QAAQ,sCACN,4BAA4B;KA2C1B;EACJ,QAAQ,mBAAmB;EAC3B,kBAAkB;EAClB,iBAAiB;;iBAGF,2BACf,MAAM,MACN,aACA,eACA,SAAS,wBACT,QAAQ,mCACN,yBAAyB;KA6CvB;EACJ,QAAQ;EACR,iBAAiB;;iBAGF,qBACf,MAAM,MACN,aACA,eACA,SAAS,cACT,QAAQ,6BACN;KAiBE;EACJ,QAAQ,eAAe,mBAAmB;EAC1C,iBAAiB;;iBAGF,0BACf,MAAM,MACN,SAAS,oBACT,QAAQ,kCACN;KA4CE;EACJ,QAAQ;EACR,iBAAiB;;iBAGF,0BACf,MAAM,MACN,aACA,eACA,SAAS,mBACT,QAAQ,kCACN;KA+BE;EACJ,QAAQ;EACR,iBAAiB;;iBAGF,qBACf,MAAM,MACN,aACA,eACA,SAAS,cACT,QAAQ,6BACN;KA2CS,gCAAgC,iBAAiB,kBAAkB;EAC9E,MAAM;EACN;EACA;EACA,SAAS;EACT,QAAQ;MACH,WAAW;KAEL,8BACX,oEACI,iBAAiB,eAAe;EACpC,MAAM;EACN;EACA;EACA,SAAS;EACT,QAAQ;OACF,2CAA2C,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverseContent.js","names":["customTypeModel.flatten","contentPath.make","contentPath.append","contentPath.serialize"],"sources":["../../src/helpers/traverseContent.ts"],"sourcesContent":["import type { DocumentContent } from \"../content/document\"\nimport { GroupContentType } from \"../content/group\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { isNestableContent } from \"../content/nestable\"\nimport { isRepeatableContentValue, RepeatableContentType } from \"../content/repeatable\"\nimport type { RepeatableContent } from \"../content/repeatable\"\nimport { RichTextContentType } from \"../content/richText\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { CompositeSliceContent, SharedSliceContent } from \"../content/slice\"\nimport {\n\ttype CompositeSliceItemContent,\n\ttype SharedSliceItemContent,\n\ttype LegacySliceItemContent,\n\ttype SliceItemContent,\n\ttype SlicesContent,\n\tSlicesContentType,\n} from \"../content/slices\"\nimport { TableContentType, type TableContent } from \"../content/table\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel, NestedGroupModel } from \"../model/group\"\nimport type { LinkModel } from \"../model/link\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type {\n\tCompositeSliceModel,\n\tLegacySliceModel,\n\tSharedSliceModel,\n\tSharedSliceVariationContentModel,\n\tSliceContentModel,\n} from \"../model/slice\"\nimport type { StaticSlicesModel } from \"../model/slices\"\nimport { TableCellModel } from \"../model/table\"\nimport type { TableModel } from \"../model/table\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport * as customTypeModel from \"./customTypeModel\"\n\ntype TraverseDocumentContentConfig = {\n\tmodel?: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseDocumentContent(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentConfig,\n): DocumentContent {\n\tconst { model, transformWidget, transformSlice } = config\n\n\t// Remove tabs from custom type model\n\tconst flatModel = model ? customTypeModel.flatten(model) : {}\n\n\tconst traversed: DocumentContent = {}\n\tfor (const [key, content] of Object.entries(document)) {\n\t\tconst path = contentPath.make(\n\t\t\t{ key: config.model?.id, type: \"CustomType\" },\n\t\t\t{ key, type: \"Widget\" },\n\t\t)\n\n\t\tconst traversedContent = traverseWidgetContent(path, key, key, content, {\n\t\t\tmodel: flatModel[key],\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t})\n\t\tif (traversedContent) {\n\t\t\ttraversed[key] = traversedContent\n\t\t}\n\t}\n\n\treturn traversed\n}\n\ntype TraverseSlicesContentConfig = {\n\tmodel?: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSlicesContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent,\n\tconfig: TraverseSlicesContentConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst sliceModel = config.model?.config?.choices?.[sliceItemContent.name]\n\n\t\tlet sliceContentModel: SliceContentModel | undefined\n\n\t\t// Happy path, content and model are both shared slices\n\t\tif (\n\t\t\tsliceItemContent.widget.__TYPE__ === SharedSliceContentType &&\n\t\t\tsliceModel?.type === \"SharedSlice\"\n\t\t) {\n\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\tconst variationModel = sliceModel.variations.find((variation) => variation.id === variationID)\n\t\t\tif (variationModel) {\n\t\t\t\tsliceContentModel = {\n\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\tvariationID: variationModel.id,\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Migrated path, content is composite or legacy, model is shared slice\n\t\tif (!sliceContentModel) {\n\t\t\tconst legacyPath = contentPath.append(contentPath.serialize(path), sliceItemContent.name)\n\n\t\t\t// Find the migrated slice model who's legacy path matches the content path\n\t\t\tconst migratedSliceModel = Object.values(config.model?.config?.choices || {}).find(\n\t\t\t\t(model): model is SharedSliceModel => {\n\t\t\t\t\treturn model.type === \"SharedSlice\" && Boolean(model.legacyPaths?.[legacyPath])\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tif (migratedSliceModel) {\n\t\t\t\t// Find the variation that matches the legacy path\n\t\t\t\tconst variation = migratedSliceModel.variations.find((variation) => {\n\t\t\t\t\treturn variation.id === migratedSliceModel.legacyPaths?.[legacyPath]\n\t\t\t\t})\n\n\t\t\t\tif (variation) {\n\t\t\t\t\tsliceContentModel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: migratedSliceModel.id,\n\t\t\t\t\t\tvariationID: variation.id,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variation.primary || {},\n\t\t\t\t\t\t\titems: variation.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Non-migrated path, content and model are composite or legacy\n\t\tif (!sliceContentModel && sliceModel && sliceModel.type !== \"SharedSlice\") {\n\t\t\tsliceContentModel = sliceModel\n\t\t}\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {\n\t\t\tconst model = sliceContentModel?.type === \"SharedSlice\" ? sliceContentModel : undefined\n\t\t\ttraversedSliceItemContent = traverseSharedSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else if (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {\n\t\t\tconst model =\n\t\t\t\tsliceContentModel?.type === \"Slice\" || sliceContentModel?.type === \"SharedSlice\"\n\t\t\t\t\t? sliceContentModel\n\t\t\t\t\t: undefined\n\t\t\ttraversedSliceItemContent = traverseCompositeSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else {\n\t\t\tconst model = sliceContentModel?.type !== \"Slice\" ? sliceContentModel : undefined\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"LegacySlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as LegacySliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t}\n\n\t\tif (traversedSliceItemContent) {\n\t\t\ttraversed.push(traversedSliceItemContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseSharedSliceContentConfig = {\n\tmodel?: SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSharedSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent,\n\tconfig: TraverseSharedSliceContentConfig,\n): SharedSliceItemContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.primary)) {\n\t\tconst model = config.model?.fields.primary?.[key]\n\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tfieldContent,\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (\n\t\t\ttraversedContent &&\n\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"items\", type: \"items\" }),\n\t\tcontent.widget.items,\n\t\t{ model: config.model?.fields.items, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, primary: traversedPrimary, items: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseCompositeSliceContentConfig = {\n\tmodel?: CompositeSliceModel | SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseCompositeSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent,\n\tconfig: TraverseCompositeSliceContentConfig,\n): CompositeSliceItemContent | SharedSliceItemContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst primaryModel =\n\t\tconfig.model?.type === \"SharedSlice\"\n\t\t\t? config.model?.fields.primary\n\t\t\t: config.model?.[\"non-repeat\"]\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tfieldContent,\n\t\t\t{ model: primaryModel?.[key], transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isNestableContent(traversedContent)) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst itemsModel =\n\t\tconfig.model?.type === \"SharedSlice\" ? config.model?.fields.items : config.model?.repeat\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: itemsModel, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseLegacySliceContentConfig = {\n\tmodel?: LegacySliceModel | SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseLegacySliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent,\n\tconfig: TraverseLegacySliceContentConfig,\n): LegacySliceItemContent | SharedSliceItemContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tlet legacySliceModel: LegacySliceModel | undefined\n\tif (content.widget.__TYPE__ === \"GroupContentType\") {\n\t\tif (model?.type === \"Group\") {\n\t\t\tlegacySliceModel = model\n\t\t} else if (model?.type === \"SharedSlice\") {\n\t\t\tlegacySliceModel = { type: \"Group\", config: { fields: model.fields.items } }\n\t\t}\n\t} else {\n\t\tif (model?.type === \"SharedSlice\") {\n\t\t\tconst primaryModel = model.fields.primary?.[content.name]\n\t\t\tif (primaryModel?.type !== \"Group\") {\n\t\t\t\tlegacySliceModel = primaryModel\n\t\t\t}\n\t\t} else if (model?.type !== \"Group\") {\n\t\t\tlegacySliceModel = model\n\t\t}\n\t}\n\n\tconst traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {\n\t\tmodel: legacySliceModel,\n\t\ttransformWidget,\n\t\ttransformSlice,\n\t})\n\n\tif (\n\t\ttraversedContent &&\n\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t) {\n\t\treturn transformSlice({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent: { ...content, widget: traversedContent },\n\t\t\tmodel,\n\t\t})\n\t}\n}\n\ntype TraverseGroupContentConfig = {\n\tmodel?: GroupModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent,\n\tconfig: TraverseGroupContentConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed = traverseGroupItemsContent(path, content.value, {\n\t\tmodel: model?.config?.fields,\n\t\ttransformWidget,\n\t})\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseGroupItemsContentConfig = {\n\tmodel?: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupItemsContent(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[],\n\tconfig: TraverseGroupItemsContentConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\t// Legacy v3 documents can have .value as a plain object or string\n\t\t// instead of the expected [key, content][] tuples.\n\t\tif (!Array.isArray(groupItemContent.value)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, content] of groupItemContent.value) {\n\t\t\t// In some edge cases v3 handled implicitly, content\n\t\t\t// could be undefined, so we need to skip such cases.\n\t\t\tif (!content) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst model = config.model?.[key]\n\t\t\tconst traversedContent = traverseWidgetContent(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tcontent,\n\t\t\t\t{ model, transformWidget },\n\t\t\t)\n\n\t\t\tif (\n\t\t\t\ttraversedContent &&\n\t\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t\t) {\n\t\t\t\ttraversedValue.push([key, traversedContent])\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...groupItemContent, value: traversedValue })\n\t}\n\n\treturn traversed\n}\n\ntype TraverseRepeatableContentConfig = {\n\tmodel?: LinkModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseRepeatableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent,\n\tconfig: TraverseRepeatableContentConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\tconst nonRepeatModel =\n\t\tmodel?.type === \"Link\" && model.config\n\t\t\t? { ...model, config: { ...model.config, repeat: false } }\n\t\t\t: model\n\n\tconst traversed: RepeatableContent[\"value\"] = []\n\tfor (let index = 0; index < content.value.length; index++) {\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: index.toString(), type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.value[index],\n\t\t\t{ model: nonRepeatModel, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isRepeatableContentValue(traversedContent)) {\n\t\t\ttraversed.push(traversedContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseTableContentConfig = {\n\tmodel?: TableModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseTableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent,\n\tconfig: TraverseTableContentConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed: TableContent[\"content\"] = []\n\tfor (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {\n\t\tconst traversedContent: TableContent[\"content\"][number][\"content\"] = []\n\t\tfor (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {\n\t\t\tconst cellPath = path.concat({ key: [rowIndex, cellIndex].join(\",\"), type: \"Widget\" })\n\t\t\tconst cell = content.content[rowIndex].content[cellIndex]\n\n\t\t\tconst transformed = transformWidget({\n\t\t\t\tpath: cellPath,\n\t\t\t\tkey,\n\t\t\t\tapiID,\n\t\t\t\tcontent: cell.content,\n\t\t\t\tmodel: TableCellModel,\n\t\t\t})\n\n\t\t\tif (transformed && transformed.__TYPE__ === RichTextContentType) {\n\t\t\t\ttraversedContent.push({ ...cell, content: transformed })\n\t\t\t} else {\n\t\t\t\ttraversedContent.push({\n\t\t\t\t\t...cell,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...content.content[rowIndex], content: traversedContent })\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, content: traversed },\n\t\tmodel,\n\t})\n}\n\nexport type TraverseSliceContentFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: SliceContentModel\n}) => TContent | SharedSliceItemContent | undefined\n\nexport type TraverseWidgetContentFunction<\n\tTContentTransformMode extends \"preserve\" | \"widen\" = \"preserve\",\n> = <TContent extends WidgetContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: StaticWidgetModel\n}) => (TContentTransformMode extends \"preserve\" ? TContent : WidgetContent) | undefined\n\n// Internals\ntype TraverseWidgetContentConfig = {\n\tmodel?: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nfunction traverseWidgetContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent,\n\tconfig: TraverseWidgetContentConfig,\n): WidgetContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (content.__TYPE__ === SlicesContentType) {\n\t\tconst model =\n\t\t\tconfig.model?.type === \"Slices\" || config.model?.type === \"Choice\" ? config.model : undefined\n\t\treturn traverseSlicesContent(path, key, apiID, content, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (content.__TYPE__ === GroupContentType) {\n\t\tconst model = config.model?.type === \"Group\" ? config.model : undefined\n\t\treturn traverseGroupContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === RepeatableContentType) {\n\t\tconst model = config.model?.type === \"Link\" ? config.model : undefined\n\t\treturn traverseRepeatableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === TableContentType) {\n\t\tconst model = config.model?.type === \"Table\" ? config.model : undefined\n\t\treturn traverseTableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tconst model =\n\t\tconfig.model?.type !== \"Slices\" &&\n\t\tconfig.model?.type !== \"Choice\" &&\n\t\tconfig.model?.type !== \"Group\" &&\n\t\tconfig.model?.type !== \"Table\"\n\t\t\t? config.model\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content, model })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"traverseContent.js","names":["customTypeModel.flatten","contentPath.make","contentPath.append","contentPath.serialize"],"sources":["../../src/helpers/traverseContent.ts"],"sourcesContent":["import type { DocumentContent } from \"../content/document\"\nimport { GroupContentType } from \"../content/group\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { isNestableContent } from \"../content/nestable\"\nimport { isRepeatableContentValue, RepeatableContentType } from \"../content/repeatable\"\nimport type { RepeatableContent } from \"../content/repeatable\"\nimport { RichTextContentType } from \"../content/richText\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { CompositeSliceContent, SharedSliceContent } from \"../content/slice\"\nimport {\n\ttype CompositeSliceItemContent,\n\ttype SharedSliceItemContent,\n\ttype LegacySliceItemContent,\n\ttype SliceItemContent,\n\ttype SlicesContent,\n\tSlicesContentType,\n} from \"../content/slices\"\nimport { TableContentType, type TableContent } from \"../content/table\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel, NestedGroupModel } from \"../model/group\"\nimport type { LinkModel } from \"../model/link\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type {\n\tCompositeSliceModel,\n\tLegacySliceModel,\n\tSharedSliceModel,\n\tSharedSliceVariationContentModel,\n\tSliceContentModel,\n} from \"../model/slice\"\nimport type { StaticSlicesModel } from \"../model/slices\"\nimport { TableCellModel } from \"../model/table\"\nimport type { TableModel } from \"../model/table\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport * as customTypeModel from \"./customTypeModel\"\n\ntype TraverseDocumentContentConfig = {\n\tmodel?: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseDocumentContent(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentConfig,\n): DocumentContent {\n\tconst { model, transformWidget, transformSlice } = config\n\n\t// Remove tabs from custom type model\n\tconst flatModel = model ? customTypeModel.flatten(model) : {}\n\n\tconst traversed: DocumentContent = {}\n\tfor (const [key, content] of Object.entries(document)) {\n\t\tconst path = contentPath.make(\n\t\t\t{ key: config.model?.id, type: \"CustomType\" },\n\t\t\t{ key, type: \"Widget\" },\n\t\t)\n\n\t\tconst traversedContent = traverseWidgetContent(path, key, key, content, {\n\t\t\tmodel: flatModel[key],\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t})\n\t\tif (traversedContent) {\n\t\t\ttraversed[key] = traversedContent\n\t\t}\n\t}\n\n\treturn traversed\n}\n\ntype TraverseSlicesContentConfig = {\n\tmodel?: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSlicesContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent,\n\tconfig: TraverseSlicesContentConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst sliceModel = config.model?.config?.choices?.[sliceItemContent.name]\n\n\t\tlet sliceContentModel: SliceContentModel | undefined\n\n\t\t// Happy path, content and model are both shared slices\n\t\tif (\n\t\t\tsliceItemContent.widget.__TYPE__ === SharedSliceContentType &&\n\t\t\tsliceModel?.type === \"SharedSlice\"\n\t\t) {\n\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\tconst variationModel = sliceModel.variations.find((variation) => variation.id === variationID)\n\t\t\tif (variationModel) {\n\t\t\t\tsliceContentModel = {\n\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\tvariationID: variationModel.id,\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Migrated path, content is composite or legacy, model is shared slice\n\t\tif (!sliceContentModel) {\n\t\t\tconst legacyPath = contentPath.append(contentPath.serialize(path), sliceItemContent.name)\n\n\t\t\t// Find the migrated slice model who's legacy path matches the content path\n\t\t\tconst migratedSliceModel = Object.values(config.model?.config?.choices || {}).find(\n\t\t\t\t(model): model is SharedSliceModel => {\n\t\t\t\t\treturn model.type === \"SharedSlice\" && Boolean(model.legacyPaths?.[legacyPath])\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tif (migratedSliceModel) {\n\t\t\t\t// Find the variation that matches the legacy path\n\t\t\t\tconst variation = migratedSliceModel.variations.find((variation) => {\n\t\t\t\t\treturn variation.id === migratedSliceModel.legacyPaths?.[legacyPath]\n\t\t\t\t})\n\n\t\t\t\tif (variation) {\n\t\t\t\t\tsliceContentModel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: migratedSliceModel.id,\n\t\t\t\t\t\tvariationID: variation.id,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variation.primary || {},\n\t\t\t\t\t\t\titems: variation.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Non-migrated path, content and model are composite or legacy\n\t\tif (!sliceContentModel && sliceModel && sliceModel.type !== \"SharedSlice\") {\n\t\t\tsliceContentModel = sliceModel\n\t\t}\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {\n\t\t\tconst model = sliceContentModel?.type === \"SharedSlice\" ? sliceContentModel : undefined\n\t\t\ttraversedSliceItemContent = traverseSharedSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else if (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {\n\t\t\tconst model =\n\t\t\t\tsliceContentModel?.type === \"Slice\" || sliceContentModel?.type === \"SharedSlice\"\n\t\t\t\t\t? sliceContentModel\n\t\t\t\t\t: undefined\n\t\t\ttraversedSliceItemContent = traverseCompositeSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else {\n\t\t\tconst model = sliceContentModel?.type !== \"Slice\" ? sliceContentModel : undefined\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"LegacySlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as LegacySliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t}\n\n\t\tif (traversedSliceItemContent) {\n\t\t\ttraversed.push(traversedSliceItemContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseSharedSliceContentConfig = {\n\tmodel?: SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSharedSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent,\n\tconfig: TraverseSharedSliceContentConfig,\n): SharedSliceItemContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.primary)) {\n\t\tconst model = config.model?.fields.primary?.[key]\n\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tfieldContent,\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (\n\t\t\ttraversedContent &&\n\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"items\", type: \"items\" }),\n\t\tcontent.widget.items,\n\t\t{ model: config.model?.fields.items, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, primary: traversedPrimary, items: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseCompositeSliceContentConfig = {\n\tmodel?: CompositeSliceModel | SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseCompositeSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent,\n\tconfig: TraverseCompositeSliceContentConfig,\n): CompositeSliceItemContent | SharedSliceItemContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst primaryModel =\n\t\tconfig.model?.type === \"SharedSlice\"\n\t\t\t? config.model?.fields.primary\n\t\t\t: config.model?.[\"non-repeat\"]\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tfieldContent,\n\t\t\t{ model: primaryModel?.[key], transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isNestableContent(traversedContent)) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst itemsModel =\n\t\tconfig.model?.type === \"SharedSlice\" ? config.model?.fields.items : config.model?.repeat\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: itemsModel, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseLegacySliceContentConfig = {\n\tmodel?: LegacySliceModel | SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseLegacySliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent,\n\tconfig: TraverseLegacySliceContentConfig,\n): LegacySliceItemContent | SharedSliceItemContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tlet legacySliceModel: LegacySliceModel | undefined\n\tif (content.widget.__TYPE__ === \"GroupContentType\") {\n\t\tif (model?.type === \"Group\") {\n\t\t\tlegacySliceModel = model\n\t\t} else if (model?.type === \"SharedSlice\") {\n\t\t\tlegacySliceModel = { type: \"Group\", config: { fields: model.fields.items } }\n\t\t}\n\t} else {\n\t\tif (model?.type === \"SharedSlice\") {\n\t\t\tconst primaryModel = model.fields.primary?.[content.name]\n\t\t\tif (primaryModel?.type !== \"Group\") {\n\t\t\t\tlegacySliceModel = primaryModel\n\t\t\t}\n\t\t} else if (model?.type !== \"Group\") {\n\t\t\tlegacySliceModel = model\n\t\t}\n\t}\n\n\tconst traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {\n\t\tmodel: legacySliceModel,\n\t\ttransformWidget,\n\t\ttransformSlice,\n\t})\n\n\tif (\n\t\ttraversedContent &&\n\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t) {\n\t\treturn transformSlice({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent: { ...content, widget: traversedContent },\n\t\t\tmodel,\n\t\t})\n\t}\n}\n\ntype TraverseGroupContentConfig = {\n\tmodel?: GroupModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent,\n\tconfig: TraverseGroupContentConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed = traverseGroupItemsContent(path, content.value, {\n\t\tmodel: model?.config?.fields,\n\t\ttransformWidget,\n\t})\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseGroupItemsContentConfig = {\n\tmodel?: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupItemsContent(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[],\n\tconfig: TraverseGroupItemsContentConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\t// Legacy v3 documents can have .value as a plain object or string\n\t\t// instead of the expected [key, content][] tuples.\n\t\tif (!Array.isArray(groupItemContent.value)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, content] of groupItemContent.value) {\n\t\t\t// In some edge cases v3 handled implicitly, content\n\t\t\t// could be undefined, so we need to skip such cases.\n\t\t\tif (!content) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst model = config.model?.[key]\n\t\t\tconst traversedContent = traverseWidgetContent(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tcontent,\n\t\t\t\t{ model, transformWidget },\n\t\t\t)\n\n\t\t\tif (\n\t\t\t\ttraversedContent &&\n\t\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t\t) {\n\t\t\t\ttraversedValue.push([key, traversedContent])\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...groupItemContent, value: traversedValue })\n\t}\n\n\treturn traversed\n}\n\ntype TraverseRepeatableContentConfig = {\n\tmodel?: LinkModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseRepeatableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent,\n\tconfig: TraverseRepeatableContentConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\tconst nonRepeatModel =\n\t\tmodel?.type === \"Link\" && model.config\n\t\t\t? { ...model, config: { ...model.config, repeat: false } }\n\t\t\t: model\n\n\tconst traversed: RepeatableContent[\"value\"] = []\n\tfor (let index = 0; index < content.value.length; index++) {\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: index.toString(), type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.value[index],\n\t\t\t{ model: nonRepeatModel, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isRepeatableContentValue(traversedContent)) {\n\t\t\ttraversed.push(traversedContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseTableContentConfig = {\n\tmodel?: TableModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseTableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent,\n\tconfig: TraverseTableContentConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed: TableContent[\"content\"] = []\n\tfor (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {\n\t\tconst traversedContent: TableContent[\"content\"][number][\"content\"] = []\n\t\tfor (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {\n\t\t\tconst cellPath = path.concat({ key: [rowIndex, cellIndex].join(\",\"), type: \"Widget\" })\n\t\t\tconst cell = content.content[rowIndex].content[cellIndex]\n\n\t\t\tconst transformed = transformWidget({\n\t\t\t\tpath: cellPath,\n\t\t\t\tkey,\n\t\t\t\tapiID,\n\t\t\t\tcontent: cell.content,\n\t\t\t\tmodel: TableCellModel,\n\t\t\t})\n\n\t\t\tif (transformed && transformed.__TYPE__ === RichTextContentType) {\n\t\t\t\ttraversedContent.push({ ...cell, content: transformed })\n\t\t\t} else {\n\t\t\t\ttraversedContent.push({\n\t\t\t\t\t...cell,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...content.content[rowIndex], content: traversedContent })\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, content: traversed },\n\t\tmodel,\n\t})\n}\n\nexport type TraverseSliceContentFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: SliceContentModel\n}) => TContent | SharedSliceItemContent | undefined\n\nexport type TraverseWidgetContentFunction<\n\tTContentTransformMode extends \"preserve\" | \"widen\" = \"preserve\",\n> = <TContent extends WidgetContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: StaticWidgetModel\n}) => (TContentTransformMode extends \"preserve\" ? TContent : WidgetContent) | undefined\n\n// Internals\ntype TraverseWidgetContentConfig = {\n\tmodel?: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nfunction traverseWidgetContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent,\n\tconfig: TraverseWidgetContentConfig,\n): WidgetContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (content.__TYPE__ === SlicesContentType) {\n\t\tconst model =\n\t\t\tconfig.model?.type === \"Slices\" || config.model?.type === \"Choice\" ? config.model : undefined\n\t\treturn traverseSlicesContent(path, key, apiID, content, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (content.__TYPE__ === GroupContentType) {\n\t\tconst model = config.model?.type === \"Group\" ? config.model : undefined\n\t\treturn traverseGroupContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === RepeatableContentType) {\n\t\tconst model = config.model?.type === \"Link\" ? config.model : undefined\n\t\treturn traverseRepeatableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === TableContentType) {\n\t\tconst model = config.model?.type === \"Table\" ? config.model : undefined\n\t\treturn traverseTableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tconst model =\n\t\tconfig.model?.type !== \"Slices\" &&\n\t\tconfig.model?.type !== \"Choice\" &&\n\t\tconfig.model?.type !== \"Group\" &&\n\t\tconfig.model?.type !== \"Table\"\n\t\t\t? config.model\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content, model })\n}\n"],"mappings":"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"}
@@ -13,7 +13,6 @@ import { StaticSlicesModel } from "../model/slices.js";
13
13
  import { StaticWidgetModel } from "../model/widget.js";
14
14
  import { StaticCustomTypeModel } from "../model/customType.js";
15
15
  import { Path } from "./contentPath.js";
16
-
17
16
  //#region src/helpers/traverseContentWithModel.d.ts
18
17
  type TraverseDocumentContentWithModelConfig = {
19
18
  model: StaticCustomTypeModel;
@@ -1 +1 @@
1
- {"version":3,"file":"traverseContentWithModel.d.ts","names":[],"sources":["../../src/helpers/traverseContentWithModel.ts"],"mappings":";;;;;;;;;;;;;;;;;KAoCK,sCAAA;EACJ,KAAA,EAAO,qBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,gCAAA,CACf,QAAA,EAAU,eAAA,EACV,MAAA,EAAQ,sCAAA,GACN,eAAA;AAAA,KA0BE,oCAAA;EACJ,KAAA,EAAO,iBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,8BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,aAAA,cACT,MAAA,EAAQ,oCAAA,GACN,aAAA;AAAA,KAyGE,yCAAA;EACJ,KAAA,EAAO,gCAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,mCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,cACT,MAAA,EAAQ,yCAAA,GACN,sBAAA;AAAA,KA4CE,4CAAA;EACJ,KAAA,EAAO,mBAAA,GAAsB,gCAAA;EAC7B,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,sCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,yBAAA,cACT,MAAA,EAAQ,4CAAA,GACN,yBAAA,GAA4B,sBAAA;AAAA,KA+C1B,yCAAA;EACJ,KAAA,EAAO,gBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,mCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,cACT,MAAA,EAAQ,yCAAA,GACN,sBAAA,GAAyB,sBAAA;AAAA,KA+BvB,mCAAA;EACJ,KAAA,EAAO,UAAA;EACP,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,6BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,YAAA,cACT,MAAA,EAAQ,mCAAA,GACN,YAAA;AAAA,KA0BE,wCAAA;EACJ,KAAA,EAAO,MAAA,SAAe,gBAAA,GAAmB,aAAA;EACzC,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,kCAAA,CACf,IAAA,EAAM,IAAA,EACN,OAAA,EAAS,gBAAA,gBACT,MAAA,EAAQ,wCAAA,GACN,gBAAA;AAAA,KA0CE,wCAAA;EACJ,KAAA,EAAO,SAAA;EACP,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,kCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,iBAAA,cACT,MAAA,EAAQ,wCAAA,GACN,iBAAA;AAAA,KAyCE,mCAAA;EACJ,KAAA,EAAO,UAAA;EACP,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,6BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,YAAA,cACT,MAAA,EAAQ,mCAAA,GACN,YAAA;AAAA,KAoDS,qCAAA,qBAA0D,gBAAA,EAAkB,IAAA;EACvF,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,GAAU,QAAA;EACV,KAAA,EAAO,iBAAA;AAAA,MACF,QAAA,GAAW,sBAAA;AAAA,KAEL,sCAAA,sFAEU,aAAA,EAAe,IAAA;EACpC,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,GAAU,QAAA;EACV,KAAA,EAAO,iBAAA;AAAA,OACD,qBAAA,sBAA2C,QAAA,GAAW,aAAA"}
1
+ {"version":3,"file":"traverseContentWithModel.d.ts","names":[],"sources":["../../src/helpers/traverseContentWithModel.ts"],"mappings":";;;;;;;;;;;;;;;;KAoCK;EACJ,OAAO;EACP,kBAAkB;EAClB,iBAAiB;;iBAGF,iCACf,UAAU,iBACV,QAAQ,yCACN;KA0BE;EACJ,OAAO;EACP,kBAAkB;EAClB,iBAAiB;;iBAGF,+BACf,MAAM,MACN,aACA,eACA,SAAS,2BACT,QAAQ,uCACN;KAyGE;EACJ,OAAO;EACP,kBAAkB;EAClB,iBAAiB;;iBAGF,oCACf,MAAM,MACN,aACA,eACA,SAAS,oCACT,QAAQ,4CACN;KA4CE;EACJ,OAAO,sBAAsB;EAC7B,kBAAkB;EAClB,iBAAiB;;iBAGF,uCACf,MAAM,MACN,aACA,eACA,SAAS,uCACT,QAAQ,+CACN,4BAA4B;KA+C1B;EACJ,OAAO;EACP,kBAAkB;EAClB,iBAAiB;;iBAGF,oCACf,MAAM,MACN,aACA,eACA,SAAS,oCACT,QAAQ,4CACN,yBAAyB;KA+BvB;EACJ,OAAO;EACP,iBAAiB;;iBAGF,8BACf,MAAM,MACN,aACA,eACA,SAAS,0BACT,QAAQ,sCACN;KA0BE;EACJ,OAAO,eAAe,mBAAmB;EACzC,iBAAiB;;iBAGF,mCACf,MAAM,MACN,SAAS,gCACT,QAAQ,2CACN;KA0CE;EACJ,OAAO;EACP,iBAAiB;;iBAGF,mCACf,MAAM,MACN,aACA,eACA,SAAS,+BACT,QAAQ,2CACN;KAyCE;EACJ,OAAO;EACP,iBAAiB;;iBAGF,8BACf,MAAM,MACN,aACA,eACA,SAAS,0BACT,QAAQ,sCACN;KAoDS,yCAAyC,iBAAiB,kBAAkB;EACvF,MAAM;EACN;EACA;EACA,UAAU;EACV,OAAO;MACF,WAAW;KAEL,uCACX,oEACI,iBAAiB,eAAe;EACpC,MAAM;EACN;EACA;EACA,UAAU;EACV,OAAO;OACD,2CAA2C,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverseContentWithModel.js","names":["customTypeModel.flatten","contentPath.make"],"sources":["../../src/helpers/traverseContentWithModel.ts"],"sourcesContent":["import type { DocumentContent } from \"../content/document\"\nimport { GroupContentType } from \"../content/group\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { isNestableContent } from \"../content/nestable\"\nimport { isRepeatableContentValue, RepeatableContentType } from \"../content/repeatable\"\nimport type { RepeatableContent } from \"../content/repeatable\"\nimport { RichTextContentType } from \"../content/richText\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { CompositeSliceContent, SharedSliceContent } from \"../content/slice\"\nimport {\n\ttype CompositeSliceItemContent,\n\ttype SharedSliceItemContent,\n\ttype LegacySliceItemContent,\n\ttype SliceItemContent,\n\ttype SlicesContent,\n\tSlicesContentType,\n} from \"../content/slices\"\nimport { TableContentType, type TableContent } from \"../content/table\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel, NestedGroupModel } from \"../model/group\"\nimport type { LinkModel } from \"../model/link\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type {\n\tCompositeSliceModel,\n\tLegacySliceModel,\n\tSharedSliceVariationContentModel,\n\tSliceContentModel,\n} from \"../model/slice\"\nimport type { StaticSlicesModel } from \"../model/slices\"\nimport { TableCellModel } from \"../model/table\"\nimport type { TableModel } from \"../model/table\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport * as customTypeModel from \"./customTypeModel\"\n\ntype TraverseDocumentContentWithModelConfig = {\n\tmodel: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseDocumentContentWithModel(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentWithModelConfig,\n): DocumentContent {\n\tconst { model, transformWidget, transformSlice } = config\n\n\t// Remove tabs from custom type model\n\tconst flatModel = model ? customTypeModel.flatten(model) : {}\n\n\tconst traversed: DocumentContent = {}\n\tfor (const [key, model] of Object.entries(flatModel)) {\n\t\tconst path = contentPath.make(\n\t\t\t{ key: config.model.id, type: \"CustomType\" },\n\t\t\t{ key, type: \"Widget\" },\n\t\t)\n\n\t\tconst traversedContent = traverseWidgetContentWithModel(path, key, key, document[key], {\n\t\t\tmodel,\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t})\n\t\tif (traversedContent) {\n\t\t\ttraversed[key] = traversedContent\n\t\t}\n\t}\n\n\treturn traversed\n}\n\ntype TraverseSlicesContentWithModelConfig = {\n\tmodel: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSlicesContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent | undefined,\n\tconfig: TraverseSlicesContentWithModelConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel: config.model,\n\t\t})\n\t}\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst sliceModel = config.model.config?.choices?.[sliceItemContent.name]\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (sliceModel?.type === \"SharedSlice\") {\n\t\t\tif (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {\n\t\t\t\t// Happy path, content and model are both shared slices\n\t\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\t\tconst variationModel = sliceModel.variations.find(\n\t\t\t\t\t(variation) => variation.id === variationID,\n\t\t\t\t)\n\t\t\t\tif (variationModel) {\n\t\t\t\t\tconst model: SharedSliceVariationContentModel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\t\tvariationID: variationModel.id,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\n\t\t\t\t\ttraversedSliceItemContent = traverseSharedSliceContentWithModel(\n\t\t\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\t\t\tsliceItemContent.key,\n\t\t\t\t\t\tsliceItemContent.name,\n\t\t\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t} else if (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {\n\t\t\t\t// Migrated path, content is composite, model is shared slice\n\t\t\t\tconst variationModel = sliceModel.variations[0]\n\t\t\t\tif (variationModel) {\n\t\t\t\t\tconst model: SharedSliceVariationContentModel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\t\tvariationID: variationModel.id,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\n\t\t\t\t\ttraversedSliceItemContent = traverseCompositeSliceContentWithModel(\n\t\t\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\t\t\tsliceItemContent.key,\n\t\t\t\t\t\tsliceItemContent.name,\n\t\t\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (sliceModel?.type === \"Slice\") {\n\t\t\tif (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {\n\t\t\t\ttraversedSliceItemContent = traverseCompositeSliceContentWithModel(\n\t\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\t\tsliceItemContent.key,\n\t\t\t\t\tsliceItemContent.name,\n\t\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t\t{ model: sliceModel, transformWidget, transformSlice },\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (\n\t\t\tsliceModel &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== SharedSliceContentType &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== CompositeSliceContentType\n\t\t) {\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContentWithModel(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"LegacySlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as LegacySliceItemContent,\n\t\t\t\t{ model: sliceModel, transformWidget, transformSlice },\n\t\t\t)\n\t\t}\n\n\t\tif (traversedSliceItemContent) {\n\t\t\ttraversed.push(traversedSliceItemContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseSharedSliceContentWithModelConfig = {\n\tmodel: SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSharedSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent | undefined,\n\tconfig: TraverseSharedSliceContentWithModelConfig,\n): SharedSliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tcontent.widget.primary[key],\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (\n\t\t\ttraversedContent &&\n\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContentWithModel(\n\t\tpath.concat({ key: \"items\", type: \"items\" }),\n\t\tcontent.widget.items,\n\t\t{ model: config.model.fields.items ?? {}, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, primary: traversedPrimary, items: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseCompositeSliceContentWithModelConfig = {\n\tmodel: CompositeSliceModel | SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseCompositeSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent | undefined,\n\tconfig: TraverseCompositeSliceContentWithModelConfig,\n): CompositeSliceItemContent | SharedSliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst primaryModel =\n\t\tconfig.model?.type === \"SharedSlice\"\n\t\t\t? config.model?.fields.primary\n\t\t\t: config.model?.[\"non-repeat\"]\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, model] of Object.entries(primaryModel ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.widget.nonRepeat[key],\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isNestableContent(traversedContent)) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst itemsModel =\n\t\tconfig.model?.type === \"SharedSlice\" ? config.model?.fields.items : config.model?.repeat\n\tconst traversedItems = traverseGroupItemsContentWithModel(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: itemsModel ?? {}, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseLegacySliceContentWithModelConfig = {\n\tmodel: LegacySliceModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseLegacySliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent | undefined,\n\tconfig: TraverseLegacySliceContentWithModelConfig,\n): LegacySliceItemContent | SharedSliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tconst traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {\n\t\tmodel,\n\t\ttransformWidget,\n\t\ttransformSlice,\n\t})\n\n\tif (\n\t\ttraversedContent &&\n\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t) {\n\t\treturn transformSlice({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent: { ...content, widget: traversedContent },\n\t\t\tmodel,\n\t\t})\n\t}\n}\n\ntype TraverseGroupContentWithModelConfig = {\n\tmodel: GroupModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent | undefined,\n\tconfig: TraverseGroupContentWithModelConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst traversed = traverseGroupItemsContentWithModel(path, content.value, {\n\t\tmodel: model.config?.fields ?? {},\n\t\ttransformWidget,\n\t})\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseGroupItemsContentWithModelConfig = {\n\tmodel: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupItemsContentWithModel(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[] | undefined,\n\tconfig: TraverseGroupItemsContentWithModelConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tif (!content) {\n\t\treturn []\n\t}\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\t// Legacy v3 documents can have .value as a plain object or string\n\t\t// instead of the expected [key, content][] tuples.\n\t\tif (!Array.isArray(groupItemContent.value)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\t\tconst groupItemContentValue = Object.fromEntries(groupItemContent.value)\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, model] of Object.entries(config.model)) {\n\t\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tgroupItemContentValue[key],\n\t\t\t\t{ model, transformWidget },\n\t\t\t)\n\n\t\t\tif (\n\t\t\t\ttraversedContent &&\n\t\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t\t) {\n\t\t\t\ttraversedValue.push([key, traversedContent])\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...groupItemContent, value: traversedValue })\n\t}\n\n\treturn traversed\n}\n\ntype TraverseRepeatableContentWithModelConfig = {\n\tmodel: LinkModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseRepeatableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent | undefined,\n\tconfig: TraverseRepeatableContentWithModelConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst nonRepeatModel =\n\t\tmodel.type === \"Link\" && model.config\n\t\t\t? { ...model, config: { ...model.config, repeat: false } }\n\t\t\t: model\n\n\tconst traversed: RepeatableContent[\"value\"] = []\n\tfor (let index = 0; index < content.value.length; index++) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: index.toString(), type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.value[index],\n\t\t\t{ model: nonRepeatModel, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isRepeatableContentValue(traversedContent)) {\n\t\t\ttraversed.push(traversedContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseTableContentWithModelConfig = {\n\tmodel: TableModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseTableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent | undefined,\n\tconfig: TraverseTableContentWithModelConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst traversed: TableContent[\"content\"] = []\n\tfor (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {\n\t\tconst traversedContent: TableContent[\"content\"][number][\"content\"] = []\n\t\tfor (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {\n\t\t\tconst cellPath = path.concat({ key: [rowIndex, cellIndex].join(\",\"), type: \"Widget\" })\n\t\t\tconst cell = content.content[rowIndex].content[cellIndex]\n\n\t\t\tconst transformed = transformWidget({\n\t\t\t\tpath: cellPath,\n\t\t\t\tkey,\n\t\t\t\tapiID,\n\t\t\t\tcontent: cell.content,\n\t\t\t\tmodel: TableCellModel,\n\t\t\t})\n\n\t\t\tif (transformed && transformed.__TYPE__ === RichTextContentType) {\n\t\t\t\ttraversedContent.push({ ...cell, content: transformed })\n\t\t\t} else {\n\t\t\t\ttraversedContent.push({\n\t\t\t\t\t...cell,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\ttraversed.push({ ...content.content[rowIndex], content: traversedContent })\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, content: traversed },\n\t\tmodel,\n\t})\n}\n\n// Internals\nexport type TraverseSliceContentWithModelFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent?: TContent\n\tmodel: SliceContentModel\n}) => TContent | SharedSliceItemContent | undefined\n\nexport type TraverseWidgetContentWithModelFunction<\n\tTContentTransformMode extends \"preserve\" | \"widen\" = \"preserve\",\n> = <TContent extends WidgetContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent?: TContent\n\tmodel: StaticWidgetModel\n}) => (TContentTransformMode extends \"preserve\" ? TContent : WidgetContent) | undefined\n\ntype TraverseWidgetContentWithModelConfig = {\n\tmodel: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nfunction traverseWidgetContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent | undefined,\n\tconfig: TraverseWidgetContentWithModelConfig,\n): WidgetContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tif (model.type === \"Slices\" || model.type === \"Choice\") {\n\t\tconst slices = content?.__TYPE__ === SlicesContentType ? content : undefined\n\t\treturn traverseSlicesContentWithModel(path, key, apiID, slices, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Group\") {\n\t\tconst group = content?.__TYPE__ === GroupContentType ? content : undefined\n\t\treturn traverseGroupContentWithModel(path, key, apiID, group, { transformWidget, model })\n\t}\n\n\tif (model.type === \"Link\" && model.config?.repeat) {\n\t\tconst repeatable = content?.__TYPE__ === RepeatableContentType ? content : undefined\n\t\treturn traverseRepeatableContentWithModel(path, key, apiID, repeatable, {\n\t\t\ttransformWidget,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Table\") {\n\t\tconst table = content?.__TYPE__ === TableContentType ? content : undefined\n\t\treturn traverseTableContentWithModel(path, key, apiID, table, { transformWidget, model })\n\t}\n\n\tconst nestable =\n\t\tcontent?.__TYPE__ !== SlicesContentType &&\n\t\tcontent?.__TYPE__ !== GroupContentType &&\n\t\tcontent?.__TYPE__ !== RepeatableContentType &&\n\t\tcontent?.__TYPE__ !== TableContentType\n\t\t\t? content\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content: nestable, model })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"traverseContentWithModel.js","names":["customTypeModel.flatten","contentPath.make"],"sources":["../../src/helpers/traverseContentWithModel.ts"],"sourcesContent":["import type { DocumentContent } from \"../content/document\"\nimport { GroupContentType } from \"../content/group\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { isNestableContent } from \"../content/nestable\"\nimport { isRepeatableContentValue, RepeatableContentType } from \"../content/repeatable\"\nimport type { RepeatableContent } from \"../content/repeatable\"\nimport { RichTextContentType } from \"../content/richText\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { CompositeSliceContent, SharedSliceContent } from \"../content/slice\"\nimport {\n\ttype CompositeSliceItemContent,\n\ttype SharedSliceItemContent,\n\ttype LegacySliceItemContent,\n\ttype SliceItemContent,\n\ttype SlicesContent,\n\tSlicesContentType,\n} from \"../content/slices\"\nimport { TableContentType, type TableContent } from \"../content/table\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel, NestedGroupModel } from \"../model/group\"\nimport type { LinkModel } from \"../model/link\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type {\n\tCompositeSliceModel,\n\tLegacySliceModel,\n\tSharedSliceVariationContentModel,\n\tSliceContentModel,\n} from \"../model/slice\"\nimport type { StaticSlicesModel } from \"../model/slices\"\nimport { TableCellModel } from \"../model/table\"\nimport type { TableModel } from \"../model/table\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport * as customTypeModel from \"./customTypeModel\"\n\ntype TraverseDocumentContentWithModelConfig = {\n\tmodel: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseDocumentContentWithModel(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentWithModelConfig,\n): DocumentContent {\n\tconst { model, transformWidget, transformSlice } = config\n\n\t// Remove tabs from custom type model\n\tconst flatModel = model ? customTypeModel.flatten(model) : {}\n\n\tconst traversed: DocumentContent = {}\n\tfor (const [key, model] of Object.entries(flatModel)) {\n\t\tconst path = contentPath.make(\n\t\t\t{ key: config.model.id, type: \"CustomType\" },\n\t\t\t{ key, type: \"Widget\" },\n\t\t)\n\n\t\tconst traversedContent = traverseWidgetContentWithModel(path, key, key, document[key], {\n\t\t\tmodel,\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t})\n\t\tif (traversedContent) {\n\t\t\ttraversed[key] = traversedContent\n\t\t}\n\t}\n\n\treturn traversed\n}\n\ntype TraverseSlicesContentWithModelConfig = {\n\tmodel: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSlicesContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent | undefined,\n\tconfig: TraverseSlicesContentWithModelConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel: config.model,\n\t\t})\n\t}\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst sliceModel = config.model.config?.choices?.[sliceItemContent.name]\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (sliceModel?.type === \"SharedSlice\") {\n\t\t\tif (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {\n\t\t\t\t// Happy path, content and model are both shared slices\n\t\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\t\tconst variationModel = sliceModel.variations.find(\n\t\t\t\t\t(variation) => variation.id === variationID,\n\t\t\t\t)\n\t\t\t\tif (variationModel) {\n\t\t\t\t\tconst model: SharedSliceVariationContentModel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\t\tvariationID: variationModel.id,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\n\t\t\t\t\ttraversedSliceItemContent = traverseSharedSliceContentWithModel(\n\t\t\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\t\t\tsliceItemContent.key,\n\t\t\t\t\t\tsliceItemContent.name,\n\t\t\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t} else if (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {\n\t\t\t\t// Migrated path, content is composite, model is shared slice\n\t\t\t\tconst variationModel = sliceModel.variations[0]\n\t\t\t\tif (variationModel) {\n\t\t\t\t\tconst model: SharedSliceVariationContentModel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\t\tvariationID: variationModel.id,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\n\t\t\t\t\ttraversedSliceItemContent = traverseCompositeSliceContentWithModel(\n\t\t\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\t\t\tsliceItemContent.key,\n\t\t\t\t\t\tsliceItemContent.name,\n\t\t\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (sliceModel?.type === \"Slice\") {\n\t\t\tif (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {\n\t\t\t\ttraversedSliceItemContent = traverseCompositeSliceContentWithModel(\n\t\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\t\tsliceItemContent.key,\n\t\t\t\t\tsliceItemContent.name,\n\t\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t\t{ model: sliceModel, transformWidget, transformSlice },\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (\n\t\t\tsliceModel &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== SharedSliceContentType &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== CompositeSliceContentType\n\t\t) {\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContentWithModel(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"LegacySlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as LegacySliceItemContent,\n\t\t\t\t{ model: sliceModel, transformWidget, transformSlice },\n\t\t\t)\n\t\t}\n\n\t\tif (traversedSliceItemContent) {\n\t\t\ttraversed.push(traversedSliceItemContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseSharedSliceContentWithModelConfig = {\n\tmodel: SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSharedSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent | undefined,\n\tconfig: TraverseSharedSliceContentWithModelConfig,\n): SharedSliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tcontent.widget.primary[key],\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (\n\t\t\ttraversedContent &&\n\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContentWithModel(\n\t\tpath.concat({ key: \"items\", type: \"items\" }),\n\t\tcontent.widget.items,\n\t\t{ model: config.model.fields.items ?? {}, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, primary: traversedPrimary, items: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseCompositeSliceContentWithModelConfig = {\n\tmodel: CompositeSliceModel | SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseCompositeSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent | undefined,\n\tconfig: TraverseCompositeSliceContentWithModelConfig,\n): CompositeSliceItemContent | SharedSliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst primaryModel =\n\t\tconfig.model?.type === \"SharedSlice\"\n\t\t\t? config.model?.fields.primary\n\t\t\t: config.model?.[\"non-repeat\"]\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, model] of Object.entries(primaryModel ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.widget.nonRepeat[key],\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isNestableContent(traversedContent)) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst itemsModel =\n\t\tconfig.model?.type === \"SharedSlice\" ? config.model?.fields.items : config.model?.repeat\n\tconst traversedItems = traverseGroupItemsContentWithModel(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: itemsModel ?? {}, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseLegacySliceContentWithModelConfig = {\n\tmodel: LegacySliceModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseLegacySliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent | undefined,\n\tconfig: TraverseLegacySliceContentWithModelConfig,\n): LegacySliceItemContent | SharedSliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tconst traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {\n\t\tmodel,\n\t\ttransformWidget,\n\t\ttransformSlice,\n\t})\n\n\tif (\n\t\ttraversedContent &&\n\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t) {\n\t\treturn transformSlice({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent: { ...content, widget: traversedContent },\n\t\t\tmodel,\n\t\t})\n\t}\n}\n\ntype TraverseGroupContentWithModelConfig = {\n\tmodel: GroupModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent | undefined,\n\tconfig: TraverseGroupContentWithModelConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst traversed = traverseGroupItemsContentWithModel(path, content.value, {\n\t\tmodel: model.config?.fields ?? {},\n\t\ttransformWidget,\n\t})\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseGroupItemsContentWithModelConfig = {\n\tmodel: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupItemsContentWithModel(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[] | undefined,\n\tconfig: TraverseGroupItemsContentWithModelConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tif (!content) {\n\t\treturn []\n\t}\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\t// Legacy v3 documents can have .value as a plain object or string\n\t\t// instead of the expected [key, content][] tuples.\n\t\tif (!Array.isArray(groupItemContent.value)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\t\tconst groupItemContentValue = Object.fromEntries(groupItemContent.value)\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, model] of Object.entries(config.model)) {\n\t\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tgroupItemContentValue[key],\n\t\t\t\t{ model, transformWidget },\n\t\t\t)\n\n\t\t\tif (\n\t\t\t\ttraversedContent &&\n\t\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t\t) {\n\t\t\t\ttraversedValue.push([key, traversedContent])\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...groupItemContent, value: traversedValue })\n\t}\n\n\treturn traversed\n}\n\ntype TraverseRepeatableContentWithModelConfig = {\n\tmodel: LinkModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseRepeatableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent | undefined,\n\tconfig: TraverseRepeatableContentWithModelConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst nonRepeatModel =\n\t\tmodel.type === \"Link\" && model.config\n\t\t\t? { ...model, config: { ...model.config, repeat: false } }\n\t\t\t: model\n\n\tconst traversed: RepeatableContent[\"value\"] = []\n\tfor (let index = 0; index < content.value.length; index++) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: index.toString(), type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.value[index],\n\t\t\t{ model: nonRepeatModel, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isRepeatableContentValue(traversedContent)) {\n\t\t\ttraversed.push(traversedContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseTableContentWithModelConfig = {\n\tmodel: TableModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseTableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent | undefined,\n\tconfig: TraverseTableContentWithModelConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst traversed: TableContent[\"content\"] = []\n\tfor (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {\n\t\tconst traversedContent: TableContent[\"content\"][number][\"content\"] = []\n\t\tfor (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {\n\t\t\tconst cellPath = path.concat({ key: [rowIndex, cellIndex].join(\",\"), type: \"Widget\" })\n\t\t\tconst cell = content.content[rowIndex].content[cellIndex]\n\n\t\t\tconst transformed = transformWidget({\n\t\t\t\tpath: cellPath,\n\t\t\t\tkey,\n\t\t\t\tapiID,\n\t\t\t\tcontent: cell.content,\n\t\t\t\tmodel: TableCellModel,\n\t\t\t})\n\n\t\t\tif (transformed && transformed.__TYPE__ === RichTextContentType) {\n\t\t\t\ttraversedContent.push({ ...cell, content: transformed })\n\t\t\t} else {\n\t\t\t\ttraversedContent.push({\n\t\t\t\t\t...cell,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\ttraversed.push({ ...content.content[rowIndex], content: traversedContent })\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, content: traversed },\n\t\tmodel,\n\t})\n}\n\n// Internals\nexport type TraverseSliceContentWithModelFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent?: TContent\n\tmodel: SliceContentModel\n}) => TContent | SharedSliceItemContent | undefined\n\nexport type TraverseWidgetContentWithModelFunction<\n\tTContentTransformMode extends \"preserve\" | \"widen\" = \"preserve\",\n> = <TContent extends WidgetContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent?: TContent\n\tmodel: StaticWidgetModel\n}) => (TContentTransformMode extends \"preserve\" ? TContent : WidgetContent) | undefined\n\ntype TraverseWidgetContentWithModelConfig = {\n\tmodel: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nfunction traverseWidgetContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent | undefined,\n\tconfig: TraverseWidgetContentWithModelConfig,\n): WidgetContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tif (model.type === \"Slices\" || model.type === \"Choice\") {\n\t\tconst slices = content?.__TYPE__ === SlicesContentType ? content : undefined\n\t\treturn traverseSlicesContentWithModel(path, key, apiID, slices, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Group\") {\n\t\tconst group = content?.__TYPE__ === GroupContentType ? content : undefined\n\t\treturn traverseGroupContentWithModel(path, key, apiID, group, { transformWidget, model })\n\t}\n\n\tif (model.type === \"Link\" && model.config?.repeat) {\n\t\tconst repeatable = content?.__TYPE__ === RepeatableContentType ? content : undefined\n\t\treturn traverseRepeatableContentWithModel(path, key, apiID, repeatable, {\n\t\t\ttransformWidget,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Table\") {\n\t\tconst table = content?.__TYPE__ === TableContentType ? content : undefined\n\t\treturn traverseTableContentWithModel(path, key, apiID, table, { transformWidget, model })\n\t}\n\n\tconst nestable =\n\t\tcontent?.__TYPE__ !== SlicesContentType &&\n\t\tcontent?.__TYPE__ !== GroupContentType &&\n\t\tcontent?.__TYPE__ !== RepeatableContentType &&\n\t\tcontent?.__TYPE__ !== TableContentType\n\t\t\t? content\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content: nestable, model })\n}\n"],"mappings":"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"}
@@ -7,8 +7,6 @@ import { GroupModel } from "../model/group.js";
7
7
  import { StaticSliceModel } from "../model/slice.js";
8
8
  import { StaticWidgetModel } from "../model/widget.js";
9
9
  import { StaticCustomTypeModel } from "../model/customType.js";
10
-
11
- //#region src/helpers/withDefaultContent.d.ts
12
10
  declare namespace withDefaultContent_d_exports {
13
11
  export { document, items, slice, widget };
14
12
  }
@@ -17,5 +15,5 @@ declare function slice(content: SliceContent, model: StaticSliceModel | undefine
17
15
  declare function widget<TContent extends WidgetContent | undefined>(content: TContent, model: StaticWidgetModel | undefined): TContent;
18
16
  declare function items(items: GroupContent["value"], fields: Record<string, GroupModel | NestableModel> | undefined): GroupContent["value"];
19
17
  //#endregion
20
- export { withDefaultContent_d_exports };
18
+ export { document, items, slice, widget, withDefaultContent_d_exports };
21
19
  //# sourceMappingURL=withDefaultContent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withDefaultContent.d.ts","names":[],"sources":["../../src/helpers/withDefaultContent.ts"],"mappings":";;;;;;;;;;;;;;iBAiBgB,QAAA,CAAS,OAAA,EAAS,eAAA,EAAiB,KAAA,EAAO,qBAAA,GAAwB,eAAA;AAAA,iBAIlE,KAAA,CAAM,OAAA,EAAS,YAAA,EAAc,KAAA,EAAO,gBAAA,eAA+B,YAAA;AAAA,iBA4CnE,MAAA,kBAAwB,aAAA,aAAA,CACvC,OAAA,EAAS,QAAA,EACT,KAAA,EAAO,iBAAA,eACL,QAAA;AAAA,iBA2Da,KAAA,CACf,KAAA,EAAO,YAAA,WACP,MAAA,EAAQ,MAAA,SAAe,UAAA,GAAa,aAAA,gBAClC,YAAA"}
1
+ {"version":3,"file":"withDefaultContent.d.ts","names":[],"sources":["../../src/helpers/withDefaultContent.ts"],"mappings":";;;;;;;;;;;;iBAiBgB,SAAS,SAAS,iBAAiB,OAAO,wBAAwB;iBAIlE,MAAM,SAAS,cAAc,OAAO,+BAA+B;iBA4CnE,OAAO,iBAAiB,2BACvC,SAAS,UACT,OAAO,gCACL;iBA2Da,MACf,OAAO,uBACP,QAAQ,eAAe,aAAa,6BAClC"}
@@ -115,6 +115,6 @@ function record(record, fields) {
115
115
  return recordWithDefaults;
116
116
  }
117
117
  //#endregion
118
- export { withDefaultContent_exports };
118
+ export { document, items, slice, widget, withDefaultContent_exports };
119
119
 
120
120
  //# sourceMappingURL=withDefaultContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"withDefaultContent.js","names":["customTypeModel.flatten"],"sources":["../../src/helpers/withDefaultContent.ts"],"sourcesContent":["import { BooleanContentType } from \"../content/boolean\"\nimport type { DocumentContent } from \"../content/document\"\nimport { FieldContentType, SelectFieldType } from \"../content/field\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { GroupContentType } from \"../content/group\"\nimport type { SliceContent } from \"../content/slice\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { SlicesContent } from \"../content/slices\"\nimport { SlicesContentType } from \"../content/slices\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel } from \"../model/group\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type { StaticSliceModel } from \"../model/slice\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as customTypeModel from \"./customTypeModel\"\n\nexport function document(content: DocumentContent, model: StaticCustomTypeModel): DocumentContent {\n\treturn record(content, customTypeModel.flatten(model))\n}\n\nexport function slice(content: SliceContent, model: StaticSliceModel | undefined): SliceContent {\n\tif (!model) {\n\t\treturn content\n\t}\n\n\tif (model.type === \"SharedSlice\") {\n\t\tif (content.__TYPE__ !== SharedSliceContentType) {\n\t\t\treturn content\n\t\t}\n\n\t\tconst variation = model.variations.find((variation) => variation.id === content.variation)\n\t\tif (!variation) {\n\t\t\treturn content\n\t\t}\n\n\t\treturn {\n\t\t\t...content,\n\t\t\tprimary: record(content.primary, variation?.primary),\n\t\t\titems: items(content.items, variation?.items),\n\t\t}\n\t}\n\n\tif (model.type === \"Slice\") {\n\t\tif (content.__TYPE__ !== CompositeSliceContentType) {\n\t\t\treturn content\n\t\t}\n\n\t\treturn {\n\t\t\t...content,\n\t\t\tnonRepeat: record(content.nonRepeat, model[\"non-repeat\"]),\n\t\t\trepeat: items(content.repeat, model.repeat),\n\t\t}\n\t}\n\n\tif (\n\t\tcontent.__TYPE__ === SharedSliceContentType ||\n\t\tcontent.__TYPE__ === CompositeSliceContentType\n\t) {\n\t\treturn content\n\t}\n\n\treturn widget(content, model)\n}\n\nexport function widget<TContent extends WidgetContent | undefined>(\n\tcontent: TContent,\n\tmodel: StaticWidgetModel | undefined,\n): TContent {\n\tif (!model) {\n\t\treturn content\n\t}\n\n\tif (\n\t\t(model.type === \"Slices\" || model.type === \"Choice\") &&\n\t\tcontent?.__TYPE__ === SlicesContentType\n\t) {\n\t\tif (!model.config?.choices) return content\n\n\t\tconst value: SlicesContent[\"value\"] = []\n\t\tfor (const sliceItem of content.value) {\n\t\t\tvalue.push({\n\t\t\t\t...sliceItem,\n\t\t\t\twidget: slice(sliceItem.widget, model.config.choices[sliceItem.name]),\n\t\t\t})\n\t\t}\n\n\t\treturn { ...content, value }\n\t}\n\n\tif (model.type === \"Group\") {\n\t\tif (content?.__TYPE__ !== GroupContentType) {\n\t\t\treturn <TContent>{\n\t\t\t\t__TYPE__: GroupContentType,\n\t\t\t\tvalue: items([], model.config?.fields),\n\t\t\t}\n\t\t}\n\n\t\treturn { ...content, value: items(content.value, model.config?.fields) }\n\t}\n\n\tif (model.type === \"Boolean\" && !content) {\n\t\tif (model.config?.default_value === undefined) {\n\t\t\treturn <TContent>undefined\n\t\t}\n\n\t\treturn <TContent>{\n\t\t\t__TYPE__: BooleanContentType,\n\t\t\tvalue: model.config.default_value,\n\t\t}\n\t}\n\n\tif (model.type === \"Select\" && !content) {\n\t\tif (!model.config?.default_value) {\n\t\t\treturn <TContent>undefined\n\t\t}\n\n\t\treturn <TContent>{\n\t\t\t__TYPE__: FieldContentType,\n\t\t\ttype: SelectFieldType,\n\t\t\tvalue: model.config.default_value,\n\t\t}\n\t}\n\n\treturn content\n}\n\nexport function items(\n\titems: GroupContent[\"value\"],\n\tfields: Record<string, GroupModel | NestableModel> | undefined,\n): GroupContent[\"value\"] {\n\tif (!fields) {\n\t\treturn items\n\t}\n\n\tconst itemsWithDefaults: GroupContent[\"value\"] = []\n\tfor (const item of items) {\n\t\tconst itemValue: GroupItemContent[\"value\"] = []\n\n\t\tconst missingFields = { ...fields }\n\t\tfor (const [key, value] of item.value) {\n\t\t\tdelete missingFields[key]\n\t\t\titemValue.push([key, widget(value, fields[key])])\n\t\t}\n\t\tfor (const [key, field] of Object.entries(missingFields)) {\n\t\t\tconst content = widget(undefined, field)\n\t\t\tif (content) {\n\t\t\t\titemValue.push([key, content])\n\t\t\t}\n\t\t}\n\n\t\titemsWithDefaults.push({ ...item, value: itemValue })\n\t}\n\n\treturn itemsWithDefaults\n}\n\nfunction record<TContent extends WidgetContent>(\n\trecord: Record<string, TContent>,\n\tfields: Record<string, StaticWidgetModel> | undefined,\n): Record<string, TContent> {\n\tif (!fields) {\n\t\treturn record\n\t}\n\n\tconst missingFields = { ...fields }\n\tconst recordWithDefaults: Record<string, TContent> = {}\n\tfor (const [key, value] of Object.entries(record)) {\n\t\tdelete missingFields[key]\n\t\trecordWithDefaults[key] = widget(value, fields[key])\n\t}\n\tfor (const [key, field] of Object.entries(missingFields)) {\n\t\tconst content = widget(undefined, field)\n\t\tif (content) {\n\t\t\trecordWithDefaults[key] = content\n\t\t}\n\t}\n\n\treturn recordWithDefaults\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"withDefaultContent.js","names":["customTypeModel.flatten"],"sources":["../../src/helpers/withDefaultContent.ts"],"sourcesContent":["import { BooleanContentType } from \"../content/boolean\"\nimport type { DocumentContent } from \"../content/document\"\nimport { FieldContentType, SelectFieldType } from \"../content/field\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { GroupContentType } from \"../content/group\"\nimport type { SliceContent } from \"../content/slice\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { SlicesContent } from \"../content/slices\"\nimport { SlicesContentType } from \"../content/slices\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel } from \"../model/group\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type { StaticSliceModel } from \"../model/slice\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as customTypeModel from \"./customTypeModel\"\n\nexport function document(content: DocumentContent, model: StaticCustomTypeModel): DocumentContent {\n\treturn record(content, customTypeModel.flatten(model))\n}\n\nexport function slice(content: SliceContent, model: StaticSliceModel | undefined): SliceContent {\n\tif (!model) {\n\t\treturn content\n\t}\n\n\tif (model.type === \"SharedSlice\") {\n\t\tif (content.__TYPE__ !== SharedSliceContentType) {\n\t\t\treturn content\n\t\t}\n\n\t\tconst variation = model.variations.find((variation) => variation.id === content.variation)\n\t\tif (!variation) {\n\t\t\treturn content\n\t\t}\n\n\t\treturn {\n\t\t\t...content,\n\t\t\tprimary: record(content.primary, variation?.primary),\n\t\t\titems: items(content.items, variation?.items),\n\t\t}\n\t}\n\n\tif (model.type === \"Slice\") {\n\t\tif (content.__TYPE__ !== CompositeSliceContentType) {\n\t\t\treturn content\n\t\t}\n\n\t\treturn {\n\t\t\t...content,\n\t\t\tnonRepeat: record(content.nonRepeat, model[\"non-repeat\"]),\n\t\t\trepeat: items(content.repeat, model.repeat),\n\t\t}\n\t}\n\n\tif (\n\t\tcontent.__TYPE__ === SharedSliceContentType ||\n\t\tcontent.__TYPE__ === CompositeSliceContentType\n\t) {\n\t\treturn content\n\t}\n\n\treturn widget(content, model)\n}\n\nexport function widget<TContent extends WidgetContent | undefined>(\n\tcontent: TContent,\n\tmodel: StaticWidgetModel | undefined,\n): TContent {\n\tif (!model) {\n\t\treturn content\n\t}\n\n\tif (\n\t\t(model.type === \"Slices\" || model.type === \"Choice\") &&\n\t\tcontent?.__TYPE__ === SlicesContentType\n\t) {\n\t\tif (!model.config?.choices) return content\n\n\t\tconst value: SlicesContent[\"value\"] = []\n\t\tfor (const sliceItem of content.value) {\n\t\t\tvalue.push({\n\t\t\t\t...sliceItem,\n\t\t\t\twidget: slice(sliceItem.widget, model.config.choices[sliceItem.name]),\n\t\t\t})\n\t\t}\n\n\t\treturn { ...content, value }\n\t}\n\n\tif (model.type === \"Group\") {\n\t\tif (content?.__TYPE__ !== GroupContentType) {\n\t\t\treturn <TContent>{\n\t\t\t\t__TYPE__: GroupContentType,\n\t\t\t\tvalue: items([], model.config?.fields),\n\t\t\t}\n\t\t}\n\n\t\treturn { ...content, value: items(content.value, model.config?.fields) }\n\t}\n\n\tif (model.type === \"Boolean\" && !content) {\n\t\tif (model.config?.default_value === undefined) {\n\t\t\treturn <TContent>undefined\n\t\t}\n\n\t\treturn <TContent>{\n\t\t\t__TYPE__: BooleanContentType,\n\t\t\tvalue: model.config.default_value,\n\t\t}\n\t}\n\n\tif (model.type === \"Select\" && !content) {\n\t\tif (!model.config?.default_value) {\n\t\t\treturn <TContent>undefined\n\t\t}\n\n\t\treturn <TContent>{\n\t\t\t__TYPE__: FieldContentType,\n\t\t\ttype: SelectFieldType,\n\t\t\tvalue: model.config.default_value,\n\t\t}\n\t}\n\n\treturn content\n}\n\nexport function items(\n\titems: GroupContent[\"value\"],\n\tfields: Record<string, GroupModel | NestableModel> | undefined,\n): GroupContent[\"value\"] {\n\tif (!fields) {\n\t\treturn items\n\t}\n\n\tconst itemsWithDefaults: GroupContent[\"value\"] = []\n\tfor (const item of items) {\n\t\tconst itemValue: GroupItemContent[\"value\"] = []\n\n\t\tconst missingFields = { ...fields }\n\t\tfor (const [key, value] of item.value) {\n\t\t\tdelete missingFields[key]\n\t\t\titemValue.push([key, widget(value, fields[key])])\n\t\t}\n\t\tfor (const [key, field] of Object.entries(missingFields)) {\n\t\t\tconst content = widget(undefined, field)\n\t\t\tif (content) {\n\t\t\t\titemValue.push([key, content])\n\t\t\t}\n\t\t}\n\n\t\titemsWithDefaults.push({ ...item, value: itemValue })\n\t}\n\n\treturn itemsWithDefaults\n}\n\nfunction record<TContent extends WidgetContent>(\n\trecord: Record<string, TContent>,\n\tfields: Record<string, StaticWidgetModel> | undefined,\n): Record<string, TContent> {\n\tif (!fields) {\n\t\treturn record\n\t}\n\n\tconst missingFields = { ...fields }\n\tconst recordWithDefaults: Record<string, TContent> = {}\n\tfor (const [key, value] of Object.entries(record)) {\n\t\tdelete missingFields[key]\n\t\trecordWithDefaults[key] = widget(value, fields[key])\n\t}\n\tfor (const [key, field] of Object.entries(missingFields)) {\n\t\tconst content = widget(undefined, field)\n\t\tif (content) {\n\t\t\trecordWithDefaults[key] = content\n\t\t}\n\t}\n\n\treturn recordWithDefaults\n}\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -46,6 +46,10 @@ import { DynamicSlicesModel, StaticSlicesModel } from "./model/slices.js";
46
46
  import { UIDModel } from "./model/uid.js";
47
47
  import { DynamicWidgetModel, FieldModelType, StaticWidgetModel } from "./model/widget.js";
48
48
  import { CustomTypeModel, DynamicCustomTypeModel, DynamicCustomTypeModelTab, StaticCustomTypeModel, StaticCustomTypeModelTab } from "./model/customType.js";
49
+ import { AddedDiff, Diff, DiffOperation, RemovedDiff, UpdatedDiff } from "./model/diff/changes.js";
50
+ import { GroupWidgetDiff, GroupWidgetWithFieldsDiff, NestableWidgetDiff, SlicePrimaryWidgetDiff } from "./model/diff/widgets.js";
51
+ import { VariationDiff, VariationDiffComparator, VariationDiffMetadata } from "./model/diff/variation.js";
52
+ import { SliceDiff, SliceDiffComparator, SliceDiffMetadata } from "./model/diff/sharedSlice.js";
49
53
  import { LegacyContentCtx, defaultCtx, getFieldCtx } from "./content/codec/legacyContentCtx.js";
50
54
  import { contentPath_d_exports } from "./helpers/contentPath.js";
51
55
  import { customTypeModel_d_exports } from "./helpers/customTypeModel.js";
@@ -58,4 +62,4 @@ import { withDefaultContent_d_exports } from "./helpers/withDefaultContent.js";
58
62
  import { imageContent_d_exports } from "./helpers/imageContent.js";
59
63
  import { TraverseSliceContentFunction, TraverseWidgetContentFunction, traverseCompositeSliceContent, traverseDocumentContent, traverseGroupContent, traverseGroupItemsContent, traverseLegacySliceContent, traverseRepeatableContent, traverseSharedSliceContent, traverseSlicesContent, traverseTableContent } from "./helpers/traverseContent.js";
60
64
  import { TraverseSliceContentWithModelFunction, TraverseWidgetContentWithModelFunction, traverseCompositeSliceContentWithModel, traverseDocumentContentWithModel, traverseGroupContentWithModel, traverseGroupItemsContentWithModel, traverseLegacySliceContentWithModel, traverseRepeatableContentWithModel, traverseSharedSliceContentWithModel, traverseSlicesContentWithModel, traverseTableContentWithModel } from "./helpers/traverseContentWithModel.js";
61
- export { type Asset, type BooleanContent, type BooleanModel, type ColorContent, type ColorModel, type CompositeSliceContent, type CompositeSliceItemContent, type CompositeSliceModel, type CustomTypeModel, type DateContent, type DateModel, type DocumentContent, type DynamicCustomTypeModel, type DynamicCustomTypeModelTab, type DynamicSliceModel, type DynamicSlicesModel, type DynamicWidgetModel, type Embed, type EmbedContent, type EmbedModel, type EmptyContent, type EmptyLinkContent, type FieldContent, type FieldModelType, type FilledLinkContent, type GeoPointContent, type GeoPointModel, type GroupContent, type GroupItemContent, type GroupModel, type HexaColorCode, type ImageContent, type ImageContentView, type ImageModel, type IntegrationFieldContent, type IntegrationFieldModel, LegacyContentCtx, type LegacySliceContent, type LegacySliceItemContent, type LegacySliceModel, type LinkContent, type LinkModel, type NestableContent, type NestableModel, type NestedGroupModel, type NonEmptyString, type NumberContent, type NumberModel, type RangeContent, type RangeModel, type RepeatableContent, type RichTextContent, type RichTextContentBlock, type RichTextContentEmbedBlock, type RichTextContentImageBlock, type RichTextContentSpan, type RichTextContentTextBlock, type RichTextModel, RichTextModelNodeType, type RichTextModelNodeTypes, RichTextNodeType, type RichTextNodeTypes, type SelectContent, type SelectModel, type SeparatorContent, type SeparatorModel, type SharedSliceContent, type SharedSliceItemContent, type SharedSliceModel, type SharedSliceModelVariation, type SharedSliceRefModel, type SharedSliceVariationContentModel, type SliceContent, type SliceContentModel, type SliceItemContent, type SliceModelType, type SlicesContent, type StaticCustomTypeModel, type StaticCustomTypeModelTab, type StaticSliceModel, type StaticSlicesModel, type StaticWidgetModel, TableCellModelNodeTypes, type TableContent, type TableModel, type TextContent, type TextModel, type TimestampContent, type TimestampModel, type TraverseSliceContentFunction, type TraverseSliceContentWithModelFunction, type TraverseWidgetContentFunction, type TraverseWidgetContentWithModelFunction, type UIDContent, type UIDModel, type WidgetContent, type WidgetKey, contentPath_d_exports as contentPath, customTypeModel_d_exports as customTypeModel, defaultCtx, documentContent_d_exports as documentContent, fieldModel_d_exports as fieldModel, getFieldCtx, imageContent_d_exports as imageContent, repository_d_exports as repository, sliceContent_d_exports as sliceContent, sliceModel_d_exports as sliceModel, traverseCompositeSliceContent, traverseCompositeSliceContentWithModel, traverseDocumentContent, traverseDocumentContentWithModel, traverseGroupContent, traverseGroupContentWithModel, traverseGroupItemsContent, traverseGroupItemsContentWithModel, traverseLegacySliceContent, traverseLegacySliceContentWithModel, traverseRepeatableContent, traverseRepeatableContentWithModel, traverseSharedSliceContent, traverseSharedSliceContentWithModel, traverseSlicesContent, traverseSlicesContentWithModel, traverseTableContent, traverseTableContentWithModel, withDefaultContent_d_exports as withDefaultContent };
65
+ export { type AddedDiff, type Asset, type BooleanContent, type BooleanModel, type ColorContent, type ColorModel, type CompositeSliceContent, type CompositeSliceItemContent, type CompositeSliceModel, type CustomTypeModel, type DateContent, type DateModel, type Diff, DiffOperation, type DocumentContent, type DynamicCustomTypeModel, type DynamicCustomTypeModelTab, type DynamicSliceModel, type DynamicSlicesModel, type DynamicWidgetModel, type Embed, type EmbedContent, type EmbedModel, type EmptyContent, type EmptyLinkContent, type FieldContent, type FieldModelType, type FilledLinkContent, type GeoPointContent, type GeoPointModel, type GroupContent, type GroupItemContent, type GroupModel, type GroupWidgetDiff, type GroupWidgetWithFieldsDiff, type HexaColorCode, type ImageContent, type ImageContentView, type ImageModel, type IntegrationFieldContent, type IntegrationFieldModel, LegacyContentCtx, type LegacySliceContent, type LegacySliceItemContent, type LegacySliceModel, type LinkContent, type LinkModel, type NestableContent, type NestableModel, type NestableWidgetDiff, type NestedGroupModel, type NonEmptyString, type NumberContent, type NumberModel, type RangeContent, type RangeModel, type RemovedDiff, type RepeatableContent, type RichTextContent, type RichTextContentBlock, type RichTextContentEmbedBlock, type RichTextContentImageBlock, type RichTextContentSpan, type RichTextContentTextBlock, type RichTextModel, RichTextModelNodeType, type RichTextModelNodeTypes, RichTextNodeType, type RichTextNodeTypes, type SelectContent, type SelectModel, type SeparatorContent, type SeparatorModel, type SharedSliceContent, type SharedSliceItemContent, type SharedSliceModel, type SharedSliceModelVariation, type SharedSliceRefModel, type SharedSliceVariationContentModel, type SliceContent, type SliceContentModel, type SliceDiff, SliceDiffComparator, type SliceDiffMetadata, type SliceItemContent, type SliceModelType, type SlicePrimaryWidgetDiff, type SlicesContent, type StaticCustomTypeModel, type StaticCustomTypeModelTab, type StaticSliceModel, type StaticSlicesModel, type StaticWidgetModel, TableCellModelNodeTypes, type TableContent, type TableModel, type TextContent, type TextModel, type TimestampContent, type TimestampModel, type TraverseSliceContentFunction, type TraverseSliceContentWithModelFunction, type TraverseWidgetContentFunction, type TraverseWidgetContentWithModelFunction, type UIDContent, type UIDModel, type UpdatedDiff, type VariationDiff, VariationDiffComparator, type VariationDiffMetadata, type WidgetContent, type WidgetKey, contentPath_d_exports as contentPath, customTypeModel_d_exports as customTypeModel, defaultCtx, documentContent_d_exports as documentContent, fieldModel_d_exports as fieldModel, getFieldCtx, imageContent_d_exports as imageContent, repository_d_exports as repository, sliceContent_d_exports as sliceContent, sliceModel_d_exports as sliceModel, traverseCompositeSliceContent, traverseCompositeSliceContentWithModel, traverseDocumentContent, traverseDocumentContentWithModel, traverseGroupContent, traverseGroupContentWithModel, traverseGroupItemsContent, traverseGroupItemsContentWithModel, traverseLegacySliceContent, traverseLegacySliceContentWithModel, traverseRepeatableContent, traverseRepeatableContentWithModel, traverseSharedSliceContent, traverseSharedSliceContentWithModel, traverseSlicesContent, traverseSlicesContentWithModel, traverseTableContent, traverseTableContentWithModel, withDefaultContent_d_exports as withDefaultContent };
package/dist/index.js CHANGED
@@ -1,7 +1,10 @@
1
1
  import { RichTextNodeType } from "./content/legacy/richText.js";
2
2
  import "./content/richText.js";
3
+ import { DiffOperation } from "./model/diff/changes.js";
3
4
  import { RichTextModelNodeType } from "./model/richText.js";
4
5
  import { TableCellModelNodeTypes } from "./model/table.js";
6
+ import { VariationDiffComparator } from "./model/diff/variation.js";
7
+ import { SliceDiffComparator } from "./model/diff/sharedSlice.js";
5
8
  import { LegacyContentCtx, defaultCtx, getFieldCtx } from "./content/codec/legacyContentCtx.js";
6
9
  import { contentPath_exports } from "./helpers/contentPath.js";
7
10
  import { customTypeModel_exports } from "./helpers/customTypeModel.js";
@@ -14,4 +17,4 @@ import { sliceModel_exports } from "./helpers/sliceModel.js";
14
17
  import { withDefaultContent_exports } from "./helpers/withDefaultContent.js";
15
18
  import { imageContent_exports } from "./helpers/imageContent.js";
16
19
  import { traverseCompositeSliceContentWithModel, traverseDocumentContentWithModel, traverseGroupContentWithModel, traverseGroupItemsContentWithModel, traverseLegacySliceContentWithModel, traverseRepeatableContentWithModel, traverseSharedSliceContentWithModel, traverseSlicesContentWithModel, traverseTableContentWithModel } from "./helpers/traverseContentWithModel.js";
17
- export { LegacyContentCtx, RichTextModelNodeType, RichTextNodeType, TableCellModelNodeTypes, contentPath_exports as contentPath, customTypeModel_exports as customTypeModel, defaultCtx, documentContent_exports as documentContent, fieldModel_exports as fieldModel, getFieldCtx, imageContent_exports as imageContent, repository_exports as repository, sliceContent_exports as sliceContent, sliceModel_exports as sliceModel, traverseCompositeSliceContent, traverseCompositeSliceContentWithModel, traverseDocumentContent, traverseDocumentContentWithModel, traverseGroupContent, traverseGroupContentWithModel, traverseGroupItemsContent, traverseGroupItemsContentWithModel, traverseLegacySliceContent, traverseLegacySliceContentWithModel, traverseRepeatableContent, traverseRepeatableContentWithModel, traverseSharedSliceContent, traverseSharedSliceContentWithModel, traverseSlicesContent, traverseSlicesContentWithModel, traverseTableContent, traverseTableContentWithModel, withDefaultContent_exports as withDefaultContent };
20
+ export { DiffOperation, LegacyContentCtx, RichTextModelNodeType, RichTextNodeType, SliceDiffComparator, TableCellModelNodeTypes, VariationDiffComparator, contentPath_exports as contentPath, customTypeModel_exports as customTypeModel, defaultCtx, documentContent_exports as documentContent, fieldModel_exports as fieldModel, getFieldCtx, imageContent_exports as imageContent, repository_exports as repository, sliceContent_exports as sliceContent, sliceModel_exports as sliceModel, traverseCompositeSliceContent, traverseCompositeSliceContentWithModel, traverseDocumentContent, traverseDocumentContentWithModel, traverseGroupContent, traverseGroupContentWithModel, traverseGroupItemsContent, traverseGroupItemsContentWithModel, traverseLegacySliceContent, traverseLegacySliceContentWithModel, traverseRepeatableContent, traverseRepeatableContentWithModel, traverseSharedSliceContent, traverseSharedSliceContentWithModel, traverseSlicesContent, traverseSlicesContentWithModel, traverseTableContent, traverseTableContentWithModel, withDefaultContent_exports as withDefaultContent };