@prismicio/types-internal 3.17.0 → 4.0.0-canary.65d3262

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 (758) hide show
  1. package/README.md +41 -25
  2. package/dist/_virtual/_rolldown/runtime.js +13 -0
  3. package/dist/common/asset.d.ts +22 -0
  4. package/dist/common/asset.d.ts.map +1 -0
  5. package/dist/common/asset.js +21 -0
  6. package/dist/common/asset.js.map +1 -0
  7. package/dist/common/embed.d.ts +21 -0
  8. package/dist/common/embed.d.ts.map +1 -0
  9. package/dist/common/embed.js +20 -0
  10. package/dist/common/embed.js.map +1 -0
  11. package/dist/common/hexaColorCode.d.ts +8 -0
  12. package/dist/common/hexaColorCode.d.ts.map +1 -0
  13. package/dist/common/hexaColorCode.js +8 -0
  14. package/dist/common/hexaColorCode.js.map +1 -0
  15. package/dist/common/nonEmptyString.d.ts +8 -0
  16. package/dist/common/nonEmptyString.d.ts.map +1 -0
  17. package/dist/common/nonEmptyString.js +7 -0
  18. package/dist/common/nonEmptyString.js.map +1 -0
  19. package/dist/common/widgetKey.d.ts +8 -0
  20. package/dist/common/widgetKey.d.ts.map +1 -0
  21. package/dist/common/widgetKey.js +8 -0
  22. package/dist/common/widgetKey.js.map +1 -0
  23. package/dist/content/boolean.d.ts +11 -0
  24. package/dist/content/boolean.d.ts.map +1 -0
  25. package/dist/content/boolean.js +11 -0
  26. package/dist/content/boolean.js.map +1 -0
  27. package/dist/content/codec/boolean.js +31 -0
  28. package/dist/content/codec/boolean.js.map +1 -0
  29. package/dist/content/codec/document.js +49 -0
  30. package/dist/content/codec/document.js.map +1 -0
  31. package/dist/content/codec/embed.js +42 -0
  32. package/dist/content/codec/embed.js.map +1 -0
  33. package/dist/content/codec/empty.js +35 -0
  34. package/dist/content/codec/empty.js.map +1 -0
  35. package/dist/content/codec/field.js +41 -0
  36. package/dist/content/codec/field.js.map +1 -0
  37. package/dist/content/codec/geopoint.js +32 -0
  38. package/dist/content/codec/geopoint.js.map +1 -0
  39. package/dist/content/codec/group.js +127 -0
  40. package/dist/content/codec/group.js.map +1 -0
  41. package/dist/content/codec/image.js +44 -0
  42. package/dist/content/codec/image.js.map +1 -0
  43. package/dist/content/codec/integrationField.js +31 -0
  44. package/dist/content/codec/integrationField.js.map +1 -0
  45. package/dist/content/codec/legacyContentCtx.d.ts +50 -0
  46. package/dist/content/codec/legacyContentCtx.d.ts.map +1 -0
  47. package/dist/content/codec/legacyContentCtx.js +68 -0
  48. package/dist/content/codec/legacyContentCtx.js.map +1 -0
  49. package/dist/content/codec/link.js +93 -0
  50. package/dist/content/codec/link.js.map +1 -0
  51. package/dist/content/codec/nestable.js +91 -0
  52. package/dist/content/codec/nestable.js.map +1 -0
  53. package/dist/content/codec/repeatable.js +56 -0
  54. package/dist/content/codec/repeatable.js.map +1 -0
  55. package/dist/content/codec/richText.js +87 -0
  56. package/dist/content/codec/richText.js.map +1 -0
  57. package/dist/content/codec/separator.js +26 -0
  58. package/dist/content/codec/separator.js.map +1 -0
  59. package/dist/content/codec/slice.js +220 -0
  60. package/dist/content/codec/slice.js.map +1 -0
  61. package/dist/content/codec/slices.js +106 -0
  62. package/dist/content/codec/slices.js.map +1 -0
  63. package/dist/content/codec/table.js +56 -0
  64. package/dist/content/codec/table.js.map +1 -0
  65. package/dist/content/codec/uid.js +31 -0
  66. package/dist/content/codec/uid.js.map +1 -0
  67. package/dist/content/codec/widget.js +39 -0
  68. package/dist/content/codec/widget.js.map +1 -0
  69. package/dist/content/document.d.ts +9 -0
  70. package/dist/content/document.d.ts.map +1 -0
  71. package/dist/content/document.js +9 -0
  72. package/dist/content/document.js.map +1 -0
  73. package/dist/content/embed.d.ts +24 -0
  74. package/dist/content/embed.d.ts.map +1 -0
  75. package/dist/content/embed.js +12 -0
  76. package/dist/content/embed.js.map +1 -0
  77. package/dist/content/empty.d.ts +11 -0
  78. package/dist/content/empty.d.ts.map +1 -0
  79. package/dist/content/empty.js +11 -0
  80. package/dist/content/empty.js.map +1 -0
  81. package/dist/content/field.d.ts +49 -0
  82. package/dist/content/field.d.ts.map +1 -0
  83. package/dist/content/field.js +52 -0
  84. package/dist/content/field.js.map +1 -0
  85. package/dist/content/geopoint.d.ts +14 -0
  86. package/dist/content/geopoint.d.ts.map +1 -0
  87. package/dist/content/geopoint.js +9 -0
  88. package/dist/content/geopoint.js.map +1 -0
  89. package/dist/content/group.d.ts +19 -0
  90. package/dist/content/group.d.ts.map +1 -0
  91. package/dist/content/group.js +19 -0
  92. package/dist/content/group.js.map +1 -0
  93. package/dist/content/image.d.ts +52 -0
  94. package/dist/content/image.d.ts.map +1 -0
  95. package/dist/content/image.js +10 -0
  96. package/dist/content/image.js.map +1 -0
  97. package/dist/content/integrationField.d.ts +11 -0
  98. package/dist/content/integrationField.d.ts.map +1 -0
  99. package/dist/content/integrationField.js +11 -0
  100. package/dist/content/integrationField.js.map +1 -0
  101. package/dist/content/legacy/boolean.d.ts +1 -0
  102. package/dist/content/legacy/boolean.js +7 -0
  103. package/dist/content/legacy/boolean.js.map +1 -0
  104. package/dist/content/legacy/document.d.ts +8 -0
  105. package/dist/content/legacy/document.d.ts.map +1 -0
  106. package/dist/content/legacy/document.js +15 -0
  107. package/dist/content/legacy/document.js.map +1 -0
  108. package/dist/content/legacy/embed.d.ts +1 -0
  109. package/dist/content/legacy/embed.js +23 -0
  110. package/dist/content/legacy/embed.js.map +1 -0
  111. package/dist/content/legacy/empty.d.ts +1 -0
  112. package/dist/content/legacy/empty.js +7 -0
  113. package/dist/content/legacy/empty.js.map +1 -0
  114. package/dist/content/legacy/field.d.ts +1 -0
  115. package/dist/content/legacy/field.js +7 -0
  116. package/dist/content/legacy/field.js.map +1 -0
  117. package/dist/content/legacy/geopoint.d.ts +1 -0
  118. package/dist/content/legacy/geopoint.js +10 -0
  119. package/dist/content/legacy/geopoint.js.map +1 -0
  120. package/dist/content/legacy/group.d.ts +9 -0
  121. package/dist/content/legacy/group.d.ts.map +1 -0
  122. package/dist/content/legacy/group.js +10 -0
  123. package/dist/content/legacy/group.js.map +1 -0
  124. package/dist/content/legacy/image.d.ts +1 -0
  125. package/dist/content/legacy/image.js +33 -0
  126. package/dist/content/legacy/image.js.map +1 -0
  127. package/dist/content/legacy/integrationField.d.ts +1 -0
  128. package/dist/content/legacy/integrationField.js +7 -0
  129. package/dist/content/legacy/integrationField.js.map +1 -0
  130. package/dist/content/legacy/link.d.ts +41 -0
  131. package/dist/content/legacy/link.d.ts.map +1 -0
  132. package/dist/content/legacy/link.js +88 -0
  133. package/dist/content/legacy/link.js.map +1 -0
  134. package/dist/content/legacy/nestable.d.ts +1 -0
  135. package/dist/content/legacy/nestable.js +32 -0
  136. package/dist/content/legacy/nestable.js.map +1 -0
  137. package/dist/content/legacy/repeatable.d.ts +1 -0
  138. package/dist/content/legacy/repeatable.js +7 -0
  139. package/dist/content/legacy/repeatable.js.map +1 -0
  140. package/dist/content/legacy/richText.d.ts +109 -0
  141. package/dist/content/legacy/richText.d.ts.map +1 -0
  142. package/dist/content/legacy/richText.js +100 -0
  143. package/dist/content/legacy/richText.js.map +1 -0
  144. package/dist/content/legacy/separator.d.ts +1 -0
  145. package/dist/content/legacy/separator.js +7 -0
  146. package/dist/content/legacy/separator.js.map +1 -0
  147. package/dist/content/legacy/slice.js +22 -0
  148. package/dist/content/legacy/slice.js.map +1 -0
  149. package/dist/content/legacy/slices.js +13 -0
  150. package/dist/content/legacy/slices.js.map +1 -0
  151. package/dist/content/legacy/table.d.ts +1 -0
  152. package/dist/content/legacy/table.js +19 -0
  153. package/dist/content/legacy/table.js.map +1 -0
  154. package/dist/content/legacy/uid.js +7 -0
  155. package/dist/content/legacy/uid.js.map +1 -0
  156. package/dist/content/link.d.ts +163 -0
  157. package/dist/content/link.d.ts.map +1 -0
  158. package/dist/content/link.js +50 -0
  159. package/dist/content/link.js.map +1 -0
  160. package/dist/content/nestable.d.ts +19 -0
  161. package/dist/content/nestable.d.ts.map +1 -0
  162. package/dist/content/nestable.js +56 -0
  163. package/dist/content/nestable.js.map +1 -0
  164. package/dist/content/repeatable.d.ts +97 -0
  165. package/dist/content/repeatable.d.ts.map +1 -0
  166. package/dist/content/repeatable.js +17 -0
  167. package/dist/content/repeatable.js.map +1 -0
  168. package/dist/content/richText.d.ts +91 -0
  169. package/dist/content/richText.d.ts.map +1 -0
  170. package/dist/content/richText.js +24 -0
  171. package/dist/content/richText.js.map +1 -0
  172. package/dist/content/separator.d.ts +10 -0
  173. package/dist/content/separator.d.ts.map +1 -0
  174. package/dist/content/separator.js +8 -0
  175. package/dist/content/separator.js.map +1 -0
  176. package/dist/content/slice.d.ts +24 -0
  177. package/dist/content/slice.d.ts.map +1 -0
  178. package/dist/content/slice.js +27 -0
  179. package/dist/content/slice.js.map +1 -0
  180. package/dist/content/slices.d.ts +56 -0
  181. package/dist/content/slices.d.ts.map +1 -0
  182. package/dist/content/slices.js +24 -0
  183. package/dist/content/slices.js.map +1 -0
  184. package/dist/content/table.d.ts +21 -0
  185. package/dist/content/table.d.ts.map +1 -0
  186. package/dist/content/table.js +13 -0
  187. package/dist/content/table.js.map +1 -0
  188. package/dist/content/uid.d.ts +11 -0
  189. package/dist/content/uid.d.ts.map +1 -0
  190. package/dist/content/uid.js +11 -0
  191. package/dist/content/uid.js.map +1 -0
  192. package/dist/content/widget.d.ts +11 -0
  193. package/dist/content/widget.d.ts.map +1 -0
  194. package/dist/content/widget.js +16 -0
  195. package/dist/content/widget.js.map +1 -0
  196. package/dist/helpers/contentPath.d.ts +15 -0
  197. package/dist/helpers/contentPath.d.ts.map +1 -0
  198. package/dist/helpers/contentPath.js +30 -0
  199. package/dist/helpers/contentPath.js.map +1 -0
  200. package/dist/helpers/customTypeModel.d.ts +14 -0
  201. package/dist/helpers/customTypeModel.d.ts.map +1 -0
  202. package/dist/helpers/customTypeModel.js +55 -0
  203. package/dist/helpers/customTypeModel.js.map +1 -0
  204. package/dist/helpers/documentContent.d.ts +20 -0
  205. package/dist/helpers/documentContent.d.ts.map +1 -0
  206. package/dist/helpers/documentContent.js +64 -0
  207. package/dist/helpers/documentContent.js.map +1 -0
  208. package/dist/helpers/sliceContent.d.ts +12 -0
  209. package/dist/helpers/sliceContent.d.ts.map +1 -0
  210. package/dist/helpers/sliceContent.js +60 -0
  211. package/dist/helpers/sliceContent.js.map +1 -0
  212. package/dist/helpers/traverseContent.d.ts +84 -0
  213. package/dist/helpers/traverseContent.d.ts.map +1 -0
  214. package/dist/helpers/traverseContent.js +374 -0
  215. package/dist/helpers/traverseContent.js.map +1 -0
  216. package/dist/helpers/traverseContentWithModel.d.ts +84 -0
  217. package/dist/helpers/traverseContentWithModel.d.ts.map +1 -0
  218. package/dist/helpers/traverseContentWithModel.js +388 -0
  219. package/dist/helpers/traverseContentWithModel.js.map +1 -0
  220. package/dist/index.d.ts +56 -0
  221. package/dist/index.js +9 -0
  222. package/dist/io-ts.d.ts +4363 -0
  223. package/dist/io-ts.d.ts.map +1 -0
  224. package/dist/io-ts.js +220 -0
  225. package/dist/io-ts.js.map +1 -0
  226. package/dist/model/boolean.d.ts +16 -0
  227. package/dist/model/boolean.d.ts.map +1 -0
  228. package/dist/model/boolean.js +16 -0
  229. package/dist/model/boolean.js.map +1 -0
  230. package/dist/model/color.d.ts +15 -0
  231. package/dist/model/color.d.ts.map +1 -0
  232. package/dist/model/color.js +15 -0
  233. package/dist/model/color.js.map +1 -0
  234. package/dist/model/customType.d.ts +31 -0
  235. package/dist/model/customType.d.ts.map +1 -0
  236. package/dist/model/customType.js +18 -0
  237. package/dist/model/customType.js.map +1 -0
  238. package/dist/model/date.d.ts +16 -0
  239. package/dist/model/date.d.ts.map +1 -0
  240. package/dist/model/date.js +16 -0
  241. package/dist/model/date.js.map +1 -0
  242. package/dist/model/embed.d.ts +16 -0
  243. package/dist/model/embed.d.ts.map +1 -0
  244. package/dist/model/embed.js +16 -0
  245. package/dist/model/embed.js.map +1 -0
  246. package/dist/model/geopoint.d.ts +14 -0
  247. package/dist/model/geopoint.d.ts.map +1 -0
  248. package/dist/model/geopoint.js +12 -0
  249. package/dist/model/geopoint.js.map +1 -0
  250. package/dist/model/group.d.ts +567 -0
  251. package/dist/model/group.d.ts.map +1 -0
  252. package/dist/model/group.js +23 -0
  253. package/dist/model/group.js.map +1 -0
  254. package/dist/model/image.d.ts +24 -0
  255. package/dist/model/image.d.ts.map +1 -0
  256. package/dist/model/image.js +41 -0
  257. package/dist/model/image.js.map +1 -0
  258. package/dist/model/integrationField.d.ts +16 -0
  259. package/dist/model/integrationField.d.ts.map +1 -0
  260. package/dist/model/integrationField.js +16 -0
  261. package/dist/model/integrationField.js.map +1 -0
  262. package/dist/model/link.d.ts +48 -0
  263. package/dist/model/link.d.ts.map +1 -0
  264. package/dist/model/link.js +94 -0
  265. package/dist/model/link.js.map +1 -0
  266. package/dist/model/nestable.d.ts +23 -0
  267. package/dist/model/nestable.d.ts.map +1 -0
  268. package/dist/model/nestable.js +40 -0
  269. package/dist/model/nestable.js.map +1 -0
  270. package/dist/model/number.d.ts +18 -0
  271. package/dist/model/number.d.ts.map +1 -0
  272. package/dist/model/number.js +19 -0
  273. package/dist/model/number.js.map +1 -0
  274. package/dist/model/range.d.ts +18 -0
  275. package/dist/model/range.d.ts.map +1 -0
  276. package/dist/model/range.js +19 -0
  277. package/dist/model/range.js.map +1 -0
  278. package/dist/model/richText.d.ts +24 -0
  279. package/dist/model/richText.d.ts.map +1 -0
  280. package/dist/model/richText.js +73 -0
  281. package/dist/model/richText.js.map +1 -0
  282. package/dist/model/section.d.ts +11 -0
  283. package/dist/model/section.d.ts.map +1 -0
  284. package/dist/model/section.js +10 -0
  285. package/dist/model/section.js.map +1 -0
  286. package/dist/model/select.d.ts +17 -0
  287. package/dist/model/select.d.ts.map +1 -0
  288. package/dist/model/select.js +22 -0
  289. package/dist/model/select.js.map +1 -0
  290. package/dist/model/separator.d.ts +13 -0
  291. package/dist/model/separator.d.ts.map +1 -0
  292. package/dist/model/separator.js +11 -0
  293. package/dist/model/separator.js.map +1 -0
  294. package/dist/model/slice.d.ts +1476 -0
  295. package/dist/model/slice.d.ts.map +1 -0
  296. package/dist/model/slice.js +68 -0
  297. package/dist/model/slice.js.map +1 -0
  298. package/dist/model/slices.d.ts +33 -0
  299. package/dist/model/slices.d.ts.map +1 -0
  300. package/dist/model/slices.js +29 -0
  301. package/dist/model/slices.js.map +1 -0
  302. package/dist/model/table.d.ts +14 -0
  303. package/dist/model/table.d.ts.map +1 -0
  304. package/dist/model/table.js +22 -0
  305. package/dist/model/table.js.map +1 -0
  306. package/dist/model/text.d.ts +16 -0
  307. package/dist/model/text.d.ts.map +1 -0
  308. package/dist/model/text.js +16 -0
  309. package/dist/model/text.js.map +1 -0
  310. package/dist/model/timestamp.d.ts +16 -0
  311. package/dist/model/timestamp.d.ts.map +1 -0
  312. package/dist/model/timestamp.js +16 -0
  313. package/dist/model/timestamp.js.map +1 -0
  314. package/dist/model/uid.d.ts +16 -0
  315. package/dist/model/uid.d.ts.map +1 -0
  316. package/dist/model/uid.js +16 -0
  317. package/dist/model/uid.js.map +1 -0
  318. package/dist/model/widget.d.ts +60 -0
  319. package/dist/model/widget.d.ts.map +1 -0
  320. package/dist/model/widget.js +47 -0
  321. package/dist/model/widget.js.map +1 -0
  322. package/dist/zod4.d.ts +2321 -0
  323. package/dist/zod4.d.ts.map +1 -0
  324. package/dist/zod4.js +132 -0
  325. package/dist/zod4.js.map +1 -0
  326. package/package.json +55 -58
  327. package/src/common/asset.ts +29 -0
  328. package/src/common/embed.ts +27 -0
  329. package/src/common/hexaColorCode.ts +11 -0
  330. package/src/common/nonEmptyString.ts +9 -0
  331. package/src/common/widgetKey.ts +11 -0
  332. package/src/content/boolean.ts +23 -0
  333. package/src/content/codec/boolean.ts +38 -0
  334. package/src/content/codec/document.ts +60 -0
  335. package/src/content/codec/embed.ts +55 -0
  336. package/src/content/codec/empty.ts +49 -0
  337. package/src/content/codec/field.ts +96 -0
  338. package/src/content/codec/geopoint.ts +40 -0
  339. package/src/content/codec/group.ts +163 -0
  340. package/src/content/codec/image.ts +50 -0
  341. package/src/content/codec/integrationField.ts +38 -0
  342. package/src/content/{LegacyContentCtx.ts → codec/legacyContentCtx.ts} +17 -17
  343. package/src/content/codec/link.ts +103 -0
  344. package/src/content/codec/nestable.ts +146 -0
  345. package/src/content/codec/repeatable.ts +68 -0
  346. package/src/content/codec/richText.ts +117 -0
  347. package/src/content/codec/separator.ts +33 -0
  348. package/src/content/codec/slice.ts +276 -0
  349. package/src/content/codec/slices.ts +130 -0
  350. package/src/content/codec/table.ts +65 -0
  351. package/src/content/codec/uid.ts +36 -0
  352. package/src/content/codec/widget.ts +58 -0
  353. package/src/content/document.ts +8 -0
  354. package/src/content/embed.ts +12 -0
  355. package/src/content/empty.ts +10 -0
  356. package/src/content/field.ts +94 -0
  357. package/src/content/geopoint.ts +11 -0
  358. package/src/content/group.ts +99 -0
  359. package/src/content/image.ts +103 -0
  360. package/src/content/integrationField.ts +10 -0
  361. package/src/content/legacy/boolean.ts +5 -0
  362. package/src/content/legacy/document.ts +25 -0
  363. package/src/content/legacy/embed.ts +23 -0
  364. package/src/content/legacy/empty.ts +10 -0
  365. package/src/content/legacy/field.ts +8 -0
  366. package/src/content/legacy/geopoint.ts +10 -0
  367. package/src/content/legacy/group.ts +23 -0
  368. package/src/content/legacy/image.ts +43 -0
  369. package/src/content/legacy/integrationField.ts +5 -0
  370. package/src/content/legacy/link.ts +194 -0
  371. package/src/content/legacy/nestable.ts +55 -0
  372. package/src/content/legacy/repeatable.ts +7 -0
  373. package/src/content/legacy/richText.ts +198 -0
  374. package/src/content/legacy/separator.ts +6 -0
  375. package/src/content/legacy/slice.ts +38 -0
  376. package/src/content/legacy/slices.ts +17 -0
  377. package/src/content/legacy/table.ts +39 -0
  378. package/src/content/legacy/uid.ts +6 -0
  379. package/src/content/legacy/widget.ts +19 -0
  380. package/src/content/link.ts +154 -0
  381. package/src/content/nestable.ts +126 -0
  382. package/src/content/repeatable.ts +21 -0
  383. package/src/content/richText.ts +54 -0
  384. package/src/content/separator.ts +9 -0
  385. package/src/content/slice.ts +41 -0
  386. package/src/content/slices.ts +57 -0
  387. package/src/content/table.ts +14 -0
  388. package/src/content/uid.ts +10 -0
  389. package/src/content/widget.ts +21 -0
  390. package/src/content/{fields/withDefaultValues.ts → withDefaultValues.ts} +34 -39
  391. package/src/helpers/contentPath.ts +35 -0
  392. package/src/helpers/customTypeModel.ts +69 -0
  393. package/src/helpers/documentContent.ts +108 -0
  394. package/src/helpers/sliceContent.ts +86 -0
  395. package/src/helpers/traverseContent.ts +594 -0
  396. package/src/helpers/traverseContentWithModel.ts +616 -0
  397. package/src/index.ts +123 -0
  398. package/src/io-ts.ts +351 -0
  399. package/src/model/boolean.ts +15 -0
  400. package/src/model/color.ts +14 -0
  401. package/src/model/customType.ts +26 -0
  402. package/src/model/date.ts +15 -0
  403. package/src/model/diff/index.ts +4 -0
  404. package/src/{customtypes/diff/SharedSlice.ts → model/diff/sharedSlice.ts} +16 -18
  405. package/src/model/diff/utils.ts +45 -0
  406. package/src/model/diff/variation.ts +155 -0
  407. package/src/model/diff/widgets.ts +15 -0
  408. package/src/model/embed.ts +15 -0
  409. package/src/model/geopoint.ts +13 -0
  410. package/src/model/group.ts +39 -0
  411. package/src/model/image.ts +54 -0
  412. package/src/model/integrationField.ts +15 -0
  413. package/src/model/link.ts +141 -0
  414. package/src/model/nestable.ts +71 -0
  415. package/src/model/number.ts +26 -0
  416. package/src/model/range.ts +26 -0
  417. package/src/model/richText.ts +106 -0
  418. package/src/model/section.ts +12 -0
  419. package/src/model/select.ts +30 -0
  420. package/src/model/separator.ts +12 -0
  421. package/src/model/slice.ts +133 -0
  422. package/src/model/slices.ts +54 -0
  423. package/src/model/table.ts +29 -0
  424. package/src/model/text.ts +15 -0
  425. package/src/model/timestamp.ts +15 -0
  426. package/src/model/uid.ts +15 -0
  427. package/src/model/widget.ts +63 -0
  428. package/src/zod4.ts +187 -0
  429. package/lib/common/Asset.d.ts +0 -16
  430. package/lib/common/Asset.js +0 -11
  431. package/lib/common/Embed.d.ts +0 -15
  432. package/lib/common/Embed.js +0 -10
  433. package/lib/common/HexaColorCode.d.ts +0 -4
  434. package/lib/common/HexaColorCode.js +0 -7
  435. package/lib/common/UUID.d.ts +0 -6
  436. package/lib/common/UUID.js +0 -8
  437. package/lib/common/WidgetKey.d.ts +0 -3
  438. package/lib/common/WidgetKey.js +0 -8
  439. package/lib/common/index.d.ts +0 -3
  440. package/lib/common/index.js +0 -6
  441. package/lib/content/Document.d.ts +0 -11813
  442. package/lib/content/Document.js +0 -364
  443. package/lib/content/LegacyContentCtx.d.ts +0 -64
  444. package/lib/content/LegacyContentCtx.js +0 -130
  445. package/lib/content/fields/EmptyContent.d.ts +0 -16
  446. package/lib/content/fields/EmptyContent.js +0 -30
  447. package/lib/content/fields/GroupContent.d.ts +0 -53
  448. package/lib/content/fields/GroupContent.js +0 -307
  449. package/lib/content/fields/UIDContent.d.ts +0 -16
  450. package/lib/content/fields/UIDContent.js +0 -25
  451. package/lib/content/fields/WidgetContent.d.ts +0 -11749
  452. package/lib/content/fields/WidgetContent.js +0 -57
  453. package/lib/content/fields/index.d.ts +0 -6
  454. package/lib/content/fields/index.js +0 -9
  455. package/lib/content/fields/nestable/BooleanContent.d.ts +0 -18
  456. package/lib/content/fields/nestable/BooleanContent.js +0 -35
  457. package/lib/content/fields/nestable/EmbedContent.d.ts +0 -78
  458. package/lib/content/fields/nestable/EmbedContent.js +0 -56
  459. package/lib/content/fields/nestable/FieldContent/ColorContent.d.ts +0 -18
  460. package/lib/content/fields/nestable/FieldContent/ColorContent.js +0 -35
  461. package/lib/content/fields/nestable/FieldContent/DateContent.d.ts +0 -18
  462. package/lib/content/fields/nestable/FieldContent/DateContent.js +0 -35
  463. package/lib/content/fields/nestable/FieldContent/NumberContent.d.ts +0 -18
  464. package/lib/content/fields/nestable/FieldContent/NumberContent.js +0 -35
  465. package/lib/content/fields/nestable/FieldContent/RangeContent.d.ts +0 -18
  466. package/lib/content/fields/nestable/FieldContent/RangeContent.js +0 -35
  467. package/lib/content/fields/nestable/FieldContent/SelectContent.d.ts +0 -20
  468. package/lib/content/fields/nestable/FieldContent/SelectContent.js +0 -46
  469. package/lib/content/fields/nestable/FieldContent/TextContent.d.ts +0 -18
  470. package/lib/content/fields/nestable/FieldContent/TextContent.js +0 -35
  471. package/lib/content/fields/nestable/FieldContent/TimestampContent.d.ts +0 -18
  472. package/lib/content/fields/nestable/FieldContent/TimestampContent.js +0 -35
  473. package/lib/content/fields/nestable/FieldContent/common.d.ts +0 -1
  474. package/lib/content/fields/nestable/FieldContent/common.js +0 -4
  475. package/lib/content/fields/nestable/FieldContent/index.d.ts +0 -49
  476. package/lib/content/fields/nestable/FieldContent/index.js +0 -38
  477. package/lib/content/fields/nestable/GeoPointContent.d.ts +0 -33
  478. package/lib/content/fields/nestable/GeoPointContent.js +0 -31
  479. package/lib/content/fields/nestable/ImageContent.d.ts +0 -252
  480. package/lib/content/fields/nestable/ImageContent.js +0 -122
  481. package/lib/content/fields/nestable/IntegrationFieldContent.d.ts +0 -16
  482. package/lib/content/fields/nestable/IntegrationFieldContent.js +0 -28
  483. package/lib/content/fields/nestable/LinkContent.d.ts +0 -919
  484. package/lib/content/fields/nestable/LinkContent.js +0 -399
  485. package/lib/content/fields/nestable/NestableContent.d.ts +0 -1953
  486. package/lib/content/fields/nestable/NestableContent.js +0 -167
  487. package/lib/content/fields/nestable/RepeatableContent.d.ts +0 -182
  488. package/lib/content/fields/nestable/RepeatableContent.js +0 -146
  489. package/lib/content/fields/nestable/RichTextContent/Blocks.d.ts +0 -1261
  490. package/lib/content/fields/nestable/RichTextContent/Blocks.js +0 -170
  491. package/lib/content/fields/nestable/RichTextContent/index.d.ts +0 -1004
  492. package/lib/content/fields/nestable/RichTextContent/index.js +0 -28
  493. package/lib/content/fields/nestable/SeparatorContent.d.ts +0 -13
  494. package/lib/content/fields/nestable/SeparatorContent.js +0 -22
  495. package/lib/content/fields/nestable/TableContent.d.ts +0 -776
  496. package/lib/content/fields/nestable/TableContent.js +0 -167
  497. package/lib/content/fields/nestable/index.d.ts +0 -12
  498. package/lib/content/fields/nestable/index.js +0 -15
  499. package/lib/content/fields/slices/Slice/CompositeSliceContent.d.ts +0 -3934
  500. package/lib/content/fields/slices/Slice/CompositeSliceContent.js +0 -195
  501. package/lib/content/fields/slices/Slice/RepeatableContent.d.ts +0 -774
  502. package/lib/content/fields/slices/Slice/RepeatableContent.js +0 -21
  503. package/lib/content/fields/slices/Slice/SharedSliceContent.d.ts +0 -3937
  504. package/lib/content/fields/slices/Slice/SharedSliceContent.js +0 -215
  505. package/lib/content/fields/slices/Slice/SimpleSliceContent.d.ts +0 -1962
  506. package/lib/content/fields/slices/Slice/SimpleSliceContent.js +0 -130
  507. package/lib/content/fields/slices/Slice/SlicePrimaryContent.d.ts +0 -1952
  508. package/lib/content/fields/slices/Slice/SlicePrimaryContent.js +0 -30
  509. package/lib/content/fields/slices/Slice/index.d.ts +0 -6810
  510. package/lib/content/fields/slices/Slice/index.js +0 -45
  511. package/lib/content/fields/slices/SliceItem.d.ts +0 -6846
  512. package/lib/content/fields/slices/SliceItem.js +0 -116
  513. package/lib/content/fields/slices/SlicesContent.d.ts +0 -9827
  514. package/lib/content/fields/slices/SlicesContent.js +0 -465
  515. package/lib/content/fields/slices/index.d.ts +0 -3
  516. package/lib/content/fields/slices/index.js +0 -6
  517. package/lib/content/fields/withDefaultValues.d.ts +0 -9
  518. package/lib/content/fields/withDefaultValues.js +0 -79
  519. package/lib/content/helpers.d.ts +0 -9
  520. package/lib/content/helpers.js +0 -22
  521. package/lib/content/index.d.ts +0 -4
  522. package/lib/content/index.js +0 -7
  523. package/lib/content/utils.d.ts +0 -50
  524. package/lib/content/utils.js +0 -35
  525. package/lib/customtypes/CustomType.d.ts +0 -3680
  526. package/lib/customtypes/CustomType.js +0 -184
  527. package/lib/customtypes/Section.d.ts +0 -3635
  528. package/lib/customtypes/Section.js +0 -66
  529. package/lib/customtypes/diff/Changes.d.ts +0 -17
  530. package/lib/customtypes/diff/Changes.js +0 -9
  531. package/lib/customtypes/diff/SharedSlice.d.ts +0 -1624
  532. package/lib/customtypes/diff/SharedSlice.js +0 -55
  533. package/lib/customtypes/diff/Variation.d.ts +0 -1605
  534. package/lib/customtypes/diff/Variation.js +0 -113
  535. package/lib/customtypes/diff/Widgets.d.ts +0 -11
  536. package/lib/customtypes/diff/Widgets.js +0 -2
  537. package/lib/customtypes/diff/index.d.ts +0 -4
  538. package/lib/customtypes/diff/index.js +0 -7
  539. package/lib/customtypes/index.d.ts +0 -4
  540. package/lib/customtypes/index.js +0 -7
  541. package/lib/customtypes/widgets/Group.d.ts +0 -1352
  542. package/lib/customtypes/widgets/Group.js +0 -92
  543. package/lib/customtypes/widgets/UID.d.ts +0 -19
  544. package/lib/customtypes/widgets/UID.js +0 -21
  545. package/lib/customtypes/widgets/Widget.d.ts +0 -4457
  546. package/lib/customtypes/widgets/Widget.js +0 -49
  547. package/lib/customtypes/widgets/index.d.ts +0 -6
  548. package/lib/customtypes/widgets/index.js +0 -9
  549. package/lib/customtypes/widgets/nestable/BooleanField.d.ts +0 -20
  550. package/lib/customtypes/widgets/nestable/BooleanField.js +0 -21
  551. package/lib/customtypes/widgets/nestable/Color.d.ts +0 -17
  552. package/lib/customtypes/widgets/nestable/Color.js +0 -20
  553. package/lib/customtypes/widgets/nestable/Date.d.ts +0 -19
  554. package/lib/customtypes/widgets/nestable/Date.js +0 -21
  555. package/lib/customtypes/widgets/nestable/Embed.d.ts +0 -19
  556. package/lib/customtypes/widgets/nestable/Embed.js +0 -21
  557. package/lib/customtypes/widgets/nestable/GeoPoint.d.ts +0 -15
  558. package/lib/customtypes/widgets/nestable/GeoPoint.js +0 -19
  559. package/lib/customtypes/widgets/nestable/Image.d.ts +0 -44
  560. package/lib/customtypes/widgets/nestable/Image.js +0 -29
  561. package/lib/customtypes/widgets/nestable/IntegrationField.d.ts +0 -19
  562. package/lib/customtypes/widgets/nestable/IntegrationField.js +0 -21
  563. package/lib/customtypes/widgets/nestable/Link.d.ts +0 -196
  564. package/lib/customtypes/widgets/nestable/Link.js +0 -167
  565. package/lib/customtypes/widgets/nestable/NestableWidget.d.ts +0 -217
  566. package/lib/customtypes/widgets/nestable/NestableWidget.js +0 -39
  567. package/lib/customtypes/widgets/nestable/Number.d.ts +0 -23
  568. package/lib/customtypes/widgets/nestable/Number.js +0 -24
  569. package/lib/customtypes/widgets/nestable/Range.d.ts +0 -23
  570. package/lib/customtypes/widgets/nestable/Range.js +0 -24
  571. package/lib/customtypes/widgets/nestable/RichText.d.ts +0 -73
  572. package/lib/customtypes/widgets/nestable/RichText.js +0 -131
  573. package/lib/customtypes/widgets/nestable/Select.d.ts +0 -21
  574. package/lib/customtypes/widgets/nestable/Select.js +0 -22
  575. package/lib/customtypes/widgets/nestable/Separator.d.ts +0 -14
  576. package/lib/customtypes/widgets/nestable/Separator.js +0 -18
  577. package/lib/customtypes/widgets/nestable/Table.d.ts +0 -21
  578. package/lib/customtypes/widgets/nestable/Table.js +0 -30
  579. package/lib/customtypes/widgets/nestable/Text.d.ts +0 -19
  580. package/lib/customtypes/widgets/nestable/Text.js +0 -21
  581. package/lib/customtypes/widgets/nestable/Timestamp.d.ts +0 -19
  582. package/lib/customtypes/widgets/nestable/Timestamp.js +0 -21
  583. package/lib/customtypes/widgets/nestable/index.d.ts +0 -17
  584. package/lib/customtypes/widgets/nestable/index.js +0 -20
  585. package/lib/customtypes/widgets/shared/ImageConstraint.d.ts +0 -7
  586. package/lib/customtypes/widgets/shared/ImageConstraint.js +0 -31
  587. package/lib/customtypes/widgets/shared/index.d.ts +0 -1
  588. package/lib/customtypes/widgets/shared/index.js +0 -8
  589. package/lib/customtypes/widgets/slices/CompositeSlice.d.ts +0 -455
  590. package/lib/customtypes/widgets/slices/CompositeSlice.js +0 -63
  591. package/lib/customtypes/widgets/slices/LegacySlice.d.ts +0 -442
  592. package/lib/customtypes/widgets/slices/LegacySlice.js +0 -12
  593. package/lib/customtypes/widgets/slices/SharedSlice.d.ts +0 -1807
  594. package/lib/customtypes/widgets/slices/SharedSlice.js +0 -118
  595. package/lib/customtypes/widgets/slices/SharedSliceRef.d.ts +0 -5
  596. package/lib/customtypes/widgets/slices/SharedSliceRef.js +0 -9
  597. package/lib/customtypes/widgets/slices/Slice.d.ts +0 -6
  598. package/lib/customtypes/widgets/slices/Slice.js +0 -2
  599. package/lib/customtypes/widgets/slices/SlicePrimaryWidget.d.ts +0 -1259
  600. package/lib/customtypes/widgets/slices/SlicePrimaryWidget.js +0 -10
  601. package/lib/customtypes/widgets/slices/Slices.d.ts +0 -5917
  602. package/lib/customtypes/widgets/slices/Slices.js +0 -146
  603. package/lib/customtypes/widgets/slices/SlicesTypes.d.ts +0 -6
  604. package/lib/customtypes/widgets/slices/SlicesTypes.js +0 -11
  605. package/lib/customtypes/widgets/slices/index.d.ts +0 -8
  606. package/lib/customtypes/widgets/slices/index.js +0 -11
  607. package/lib/utils/Arrays.d.ts +0 -1
  608. package/lib/utils/Arrays.js +0 -13
  609. package/lib/utils/DocumentId.d.ts +0 -2
  610. package/lib/utils/DocumentId.js +0 -7
  611. package/lib/utils/Fields.d.ts +0 -6
  612. package/lib/utils/Fields.js +0 -2
  613. package/lib/utils/Objects.d.ts +0 -8
  614. package/lib/utils/Objects.js +0 -42
  615. package/lib/utils/index.d.ts +0 -4
  616. package/lib/utils/index.js +0 -8
  617. package/lib/validators/BasicTypes.d.ts +0 -10
  618. package/lib/validators/BasicTypes.js +0 -25
  619. package/lib/validators/DateFromString.d.ts +0 -3
  620. package/lib/validators/DateFromString.js +0 -11
  621. package/lib/validators/DateFromStringOrNumber.d.ts +0 -3
  622. package/lib/validators/DateFromStringOrNumber.js +0 -10
  623. package/lib/validators/DateFromTsMs.d.ts +0 -3
  624. package/lib/validators/DateFromTsMs.js +0 -10
  625. package/lib/validators/DefaultOrElse.d.ts +0 -5
  626. package/lib/validators/DefaultOrElse.js +0 -21
  627. package/lib/validators/IntFromNumber.d.ts +0 -5
  628. package/lib/validators/IntFromNumber.js +0 -14
  629. package/lib/validators/IntFromPixels.d.ts +0 -8
  630. package/lib/validators/IntFromPixels.js +0 -24
  631. package/lib/validators/NonEmptyString.d.ts +0 -3
  632. package/lib/validators/NonEmptyString.js +0 -6
  633. package/lib/validators/NonEmptyStringOrNull.d.ts +0 -3
  634. package/lib/validators/NonEmptyStringOrNull.js +0 -15
  635. package/lib/validators/NumberOrNull.d.ts +0 -3
  636. package/lib/validators/NumberOrNull.js +0 -6
  637. package/lib/validators/NumberRange.d.ts +0 -32
  638. package/lib/validators/NumberRange.js +0 -40
  639. package/lib/validators/StringFromBoolean.d.ts +0 -5
  640. package/lib/validators/StringFromBoolean.js +0 -10
  641. package/lib/validators/StringFromNumber.d.ts +0 -5
  642. package/lib/validators/StringFromNumber.js +0 -10
  643. package/lib/validators/StringOrNull.d.ts +0 -3
  644. package/lib/validators/StringOrNull.js +0 -6
  645. package/lib/validators/TrimmedString.d.ts +0 -5
  646. package/lib/validators/TrimmedString.js +0 -23
  647. package/lib/validators/function.d.ts +0 -34
  648. package/lib/validators/function.js +0 -100
  649. package/lib/validators/index.d.ts +0 -15
  650. package/lib/validators/index.js +0 -31
  651. package/src/common/Asset.ts +0 -25
  652. package/src/common/Embed.ts +0 -22
  653. package/src/common/HexaColorCode.ts +0 -11
  654. package/src/common/UUID.ts +0 -19
  655. package/src/common/WidgetKey.ts +0 -13
  656. package/src/common/index.ts +0 -3
  657. package/src/content/Document.ts +0 -539
  658. package/src/content/fields/EmptyContent.ts +0 -45
  659. package/src/content/fields/GroupContent.ts +0 -466
  660. package/src/content/fields/UIDContent.ts +0 -42
  661. package/src/content/fields/WidgetContent.ts +0 -76
  662. package/src/content/fields/index.ts +0 -6
  663. package/src/content/fields/nestable/BooleanContent.ts +0 -52
  664. package/src/content/fields/nestable/EmbedContent.ts +0 -74
  665. package/src/content/fields/nestable/FieldContent/ColorContent.ts +0 -49
  666. package/src/content/fields/nestable/FieldContent/DateContent.ts +0 -49
  667. package/src/content/fields/nestable/FieldContent/NumberContent.ts +0 -49
  668. package/src/content/fields/nestable/FieldContent/RangeContent.ts +0 -49
  669. package/src/content/fields/nestable/FieldContent/SelectContent.ts +0 -60
  670. package/src/content/fields/nestable/FieldContent/TextContent.ts +0 -49
  671. package/src/content/fields/nestable/FieldContent/TimestampContent.ts +0 -49
  672. package/src/content/fields/nestable/FieldContent/common.ts +0 -1
  673. package/src/content/fields/nestable/FieldContent/index.ts +0 -40
  674. package/src/content/fields/nestable/GeoPointContent.ts +0 -48
  675. package/src/content/fields/nestable/ImageContent.ts +0 -196
  676. package/src/content/fields/nestable/IntegrationFieldContent.ts +0 -51
  677. package/src/content/fields/nestable/LinkContent.ts +0 -651
  678. package/src/content/fields/nestable/NestableContent.ts +0 -241
  679. package/src/content/fields/nestable/RepeatableContent.ts +0 -224
  680. package/src/content/fields/nestable/RichTextContent/Blocks.ts +0 -238
  681. package/src/content/fields/nestable/RichTextContent/index.ts +0 -42
  682. package/src/content/fields/nestable/SeparatorContent.ts +0 -34
  683. package/src/content/fields/nestable/TableContent.ts +0 -234
  684. package/src/content/fields/nestable/index.ts +0 -12
  685. package/src/content/fields/slices/Slice/CompositeSliceContent.ts +0 -293
  686. package/src/content/fields/slices/Slice/RepeatableContent.ts +0 -29
  687. package/src/content/fields/slices/Slice/SharedSliceContent.ts +0 -305
  688. package/src/content/fields/slices/Slice/SimpleSliceContent.ts +0 -180
  689. package/src/content/fields/slices/Slice/SlicePrimaryContent.ts +0 -40
  690. package/src/content/fields/slices/Slice/index.ts +0 -52
  691. package/src/content/fields/slices/SliceItem.ts +0 -184
  692. package/src/content/fields/slices/SlicesContent.ts +0 -677
  693. package/src/content/fields/slices/index.ts +0 -3
  694. package/src/content/helpers.ts +0 -25
  695. package/src/content/index.ts +0 -4
  696. package/src/content/utils.ts +0 -145
  697. package/src/customtypes/CustomType.ts +0 -280
  698. package/src/customtypes/Section.ts +0 -98
  699. package/src/customtypes/diff/Variation.ts +0 -167
  700. package/src/customtypes/diff/Widgets.ts +0 -17
  701. package/src/customtypes/diff/index.ts +0 -4
  702. package/src/customtypes/index.ts +0 -4
  703. package/src/customtypes/widgets/Group.ts +0 -120
  704. package/src/customtypes/widgets/UID.ts +0 -27
  705. package/src/customtypes/widgets/Widget.ts +0 -83
  706. package/src/customtypes/widgets/index.ts +0 -6
  707. package/src/customtypes/widgets/nestable/BooleanField.ts +0 -29
  708. package/src/customtypes/widgets/nestable/Color.ts +0 -25
  709. package/src/customtypes/widgets/nestable/Date.ts +0 -27
  710. package/src/customtypes/widgets/nestable/Embed.ts +0 -27
  711. package/src/customtypes/widgets/nestable/GeoPoint.ts +0 -25
  712. package/src/customtypes/widgets/nestable/Image.ts +0 -39
  713. package/src/customtypes/widgets/nestable/IntegrationField.ts +0 -26
  714. package/src/customtypes/widgets/nestable/Link.ts +0 -313
  715. package/src/customtypes/widgets/nestable/NestableWidget.ts +0 -40
  716. package/src/customtypes/widgets/nestable/Number.ts +0 -30
  717. package/src/customtypes/widgets/nestable/Range.ts +0 -30
  718. package/src/customtypes/widgets/nestable/RichText.ts +0 -215
  719. package/src/customtypes/widgets/nestable/Select.ts +0 -34
  720. package/src/customtypes/widgets/nestable/Separator.ts +0 -24
  721. package/src/customtypes/widgets/nestable/Table.ts +0 -38
  722. package/src/customtypes/widgets/nestable/Text.ts +0 -27
  723. package/src/customtypes/widgets/nestable/Timestamp.ts +0 -27
  724. package/src/customtypes/widgets/nestable/index.ts +0 -17
  725. package/src/customtypes/widgets/shared/ImageConstraint.ts +0 -41
  726. package/src/customtypes/widgets/shared/index.ts +0 -1
  727. package/src/customtypes/widgets/slices/CompositeSlice.ts +0 -79
  728. package/src/customtypes/widgets/slices/LegacySlice.ts +0 -15
  729. package/src/customtypes/widgets/slices/SharedSlice.ts +0 -152
  730. package/src/customtypes/widgets/slices/SharedSliceRef.ts +0 -10
  731. package/src/customtypes/widgets/slices/Slice.ts +0 -7
  732. package/src/customtypes/widgets/slices/SlicePrimaryWidget.ts +0 -12
  733. package/src/customtypes/widgets/slices/Slices.ts +0 -184
  734. package/src/customtypes/widgets/slices/SlicesTypes.ts +0 -11
  735. package/src/customtypes/widgets/slices/index.ts +0 -8
  736. package/src/utils/Arrays.ts +0 -12
  737. package/src/utils/DocumentId.ts +0 -8
  738. package/src/utils/Fields.ts +0 -4
  739. package/src/utils/Objects.ts +0 -53
  740. package/src/utils/index.ts +0 -4
  741. package/src/validators/BasicTypes.ts +0 -55
  742. package/src/validators/DateFromString.ts +0 -19
  743. package/src/validators/DateFromStringOrNumber.ts +0 -17
  744. package/src/validators/DateFromTsMs.ts +0 -17
  745. package/src/validators/DefaultOrElse.ts +0 -24
  746. package/src/validators/IntFromNumber.ts +0 -22
  747. package/src/validators/IntFromPixels.ts +0 -32
  748. package/src/validators/NonEmptyString.ts +0 -8
  749. package/src/validators/NonEmptyStringOrNull.ts +0 -22
  750. package/src/validators/NumberOrNull.ts +0 -5
  751. package/src/validators/NumberRange.ts +0 -51
  752. package/src/validators/StringFromBoolean.ts +0 -19
  753. package/src/validators/StringFromNumber.ts +0 -19
  754. package/src/validators/StringOrNull.ts +0 -5
  755. package/src/validators/TrimmedString.ts +0 -33
  756. package/src/validators/function.ts +0 -115
  757. package/src/validators/index.ts +0 -15
  758. /package/src/{customtypes/diff/Changes.ts → model/diff/changes.ts} +0 -0
@@ -0,0 +1,616 @@
1
+ import type { DocumentContent } from "../content/document"
2
+ import { GroupContentType } from "../content/group"
3
+ import type { GroupContent, GroupItemContent } from "../content/group"
4
+ import { isNestableContent } from "../content/nestable"
5
+ import { isRepeatableContentValue, RepeatableContentType } from "../content/repeatable"
6
+ import type { RepeatableContent } from "../content/repeatable"
7
+ import { RichTextContentType } from "../content/richText"
8
+ import { CompositeSliceContentType, SharedSliceContentType } from "../content/slice"
9
+ import type { CompositeSliceContent, SharedSliceContent } from "../content/slice"
10
+ import {
11
+ type CompositeSliceItemContent,
12
+ type SharedSliceItemContent,
13
+ type LegacySliceItemContent,
14
+ type SliceItemContent,
15
+ type SlicesContent,
16
+ SlicesContentType,
17
+ } from "../content/slices"
18
+ import { TableContentType, type TableContent } from "../content/table"
19
+ import type { WidgetContent } from "../content/widget"
20
+ import type { StaticCustomTypeModel } from "../model/customType"
21
+ import type { GroupModel, NestedGroupModel } from "../model/group"
22
+ import type { LinkModel } from "../model/link"
23
+ import type { NestableModel } from "../model/nestable"
24
+ import type {
25
+ CompositeSliceModel,
26
+ LegacySliceModel,
27
+ SharedSliceVariationContentModel,
28
+ SliceContentModel,
29
+ } from "../model/slice"
30
+ import type { StaticSlicesModel } from "../model/slices"
31
+ import { TableCellModel } from "../model/table"
32
+ import type { TableModel } from "../model/table"
33
+ import type { StaticWidgetModel } from "../model/widget"
34
+ import * as contentPath from "./contentPath"
35
+ import * as customTypeModel from "./customTypeModel"
36
+
37
+ type TraverseDocumentContentWithModelConfig = {
38
+ model: StaticCustomTypeModel
39
+ transformWidget?: TraverseWidgetContentWithModelFunction
40
+ transformSlice?: TraverseSliceContentWithModelFunction
41
+ }
42
+
43
+ export function traverseDocumentContentWithModel(
44
+ document: DocumentContent,
45
+ config: TraverseDocumentContentWithModelConfig,
46
+ ): DocumentContent {
47
+ const { model, transformWidget, transformSlice } = config
48
+
49
+ // Remove tabs from custom type model
50
+ const flatModel = model ? customTypeModel.flatten(model) : {}
51
+
52
+ const traversed: DocumentContent = {}
53
+ for (const [key, model] of Object.entries(flatModel)) {
54
+ const path = contentPath.make(
55
+ { key: config.model.id, type: "CustomType" },
56
+ { key, type: "Widget" },
57
+ )
58
+
59
+ const traversedContent = traverseWidgetContentWithModel(path, key, key, document[key], {
60
+ model,
61
+ transformWidget,
62
+ transformSlice,
63
+ })
64
+ if (traversedContent) {
65
+ traversed[key] = traversedContent
66
+ }
67
+ }
68
+
69
+ return traversed
70
+ }
71
+
72
+ type TraverseSlicesContentWithModelConfig = {
73
+ model: StaticSlicesModel
74
+ transformWidget?: TraverseWidgetContentWithModelFunction
75
+ transformSlice?: TraverseSliceContentWithModelFunction
76
+ }
77
+
78
+ export function traverseSlicesContentWithModel(
79
+ path: contentPath.Path,
80
+ key: string,
81
+ apiID: string,
82
+ content: SlicesContent | undefined,
83
+ config: TraverseSlicesContentWithModelConfig,
84
+ ): SlicesContent | undefined {
85
+ const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =
86
+ config
87
+
88
+ if (!content) {
89
+ return transformWidget({
90
+ path,
91
+ key,
92
+ apiID,
93
+ model: config.model,
94
+ })
95
+ }
96
+
97
+ const traversed: SlicesContent["value"] = []
98
+ for (const sliceItemContent of content.value) {
99
+ const sliceModel = config.model.config?.choices?.[sliceItemContent.name]
100
+
101
+ let traversedSliceItemContent: SliceItemContent | undefined
102
+ if (sliceModel?.type === "SharedSlice") {
103
+ if (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {
104
+ // Happy path, content and model are both shared slices
105
+ const variationID = sliceItemContent.widget.variation
106
+ const variationModel = sliceModel.variations.find(
107
+ (variation) => variation.id === variationID,
108
+ )
109
+ if (variationModel) {
110
+ const model: SharedSliceVariationContentModel = {
111
+ type: "SharedSlice",
112
+ sliceName: sliceModel.id,
113
+ variationID: variationModel.id,
114
+ fields: {
115
+ primary: variationModel.primary || {},
116
+ items: variationModel.items || {},
117
+ },
118
+ }
119
+
120
+ traversedSliceItemContent = traverseSharedSliceContentWithModel(
121
+ path.concat({ key: sliceItemContent.key, type: "SharedSlice" }),
122
+ sliceItemContent.key,
123
+ sliceItemContent.name,
124
+ sliceItemContent as SharedSliceItemContent,
125
+ { model, transformWidget, transformSlice },
126
+ )
127
+ }
128
+ } else if (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {
129
+ // Migrated path, content is composite, model is shared slice
130
+ const variationModel = sliceModel.variations[0]
131
+ if (variationModel) {
132
+ const model: SharedSliceVariationContentModel = {
133
+ type: "SharedSlice",
134
+ sliceName: sliceModel.id,
135
+ variationID: variationModel.id,
136
+ fields: {
137
+ primary: variationModel.primary || {},
138
+ items: variationModel.items || {},
139
+ },
140
+ }
141
+
142
+ traversedSliceItemContent = traverseCompositeSliceContentWithModel(
143
+ path.concat({ key: sliceItemContent.key, type: "Slice" }),
144
+ sliceItemContent.key,
145
+ sliceItemContent.name,
146
+ sliceItemContent as CompositeSliceItemContent,
147
+ { model, transformWidget, transformSlice },
148
+ )
149
+ }
150
+ }
151
+ } else if (sliceModel?.type === "Slice") {
152
+ if (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {
153
+ traversedSliceItemContent = traverseCompositeSliceContentWithModel(
154
+ path.concat({ key: sliceItemContent.key, type: "Slice" }),
155
+ sliceItemContent.key,
156
+ sliceItemContent.name,
157
+ sliceItemContent as CompositeSliceItemContent,
158
+ { model: sliceModel, transformWidget, transformSlice },
159
+ )
160
+ }
161
+ } else if (
162
+ sliceModel &&
163
+ sliceItemContent.widget.__TYPE__ !== SharedSliceContentType &&
164
+ sliceItemContent.widget.__TYPE__ !== CompositeSliceContentType
165
+ ) {
166
+ traversedSliceItemContent = traverseLegacySliceContentWithModel(
167
+ path.concat({ key: sliceItemContent.key, type: "LegacySlice" }),
168
+ sliceItemContent.key,
169
+ sliceItemContent.name,
170
+ sliceItemContent as LegacySliceItemContent,
171
+ { model: sliceModel, transformWidget, transformSlice },
172
+ )
173
+ }
174
+
175
+ if (traversedSliceItemContent) {
176
+ traversed.push(traversedSliceItemContent)
177
+ }
178
+ }
179
+
180
+ return transformWidget({
181
+ path,
182
+ key,
183
+ apiID,
184
+ content: { ...content, value: traversed },
185
+ model: config.model,
186
+ })
187
+ }
188
+
189
+ type TraverseSharedSliceContentWithModelConfig = {
190
+ model: SharedSliceVariationContentModel
191
+ transformWidget?: TraverseWidgetContentWithModelFunction
192
+ transformSlice?: TraverseSliceContentWithModelFunction
193
+ }
194
+
195
+ export function traverseSharedSliceContentWithModel(
196
+ path: contentPath.Path,
197
+ key: string,
198
+ apiID: string,
199
+ content: SharedSliceItemContent | undefined,
200
+ config: TraverseSharedSliceContentWithModelConfig,
201
+ ): SharedSliceItemContent | undefined {
202
+ if (!content) {
203
+ return
204
+ }
205
+
206
+ const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =
207
+ config
208
+
209
+ const traversedPrimary: SharedSliceContent["primary"] = {}
210
+ for (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {
211
+ const traversedContent = traverseWidgetContentWithModel(
212
+ path.concat({ key: "primary", type: "primary" }, { key, type: "Widget" }),
213
+ key,
214
+ key,
215
+ content.widget.primary[key],
216
+ { model, transformWidget },
217
+ )
218
+
219
+ if (
220
+ traversedContent &&
221
+ (isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)
222
+ ) {
223
+ traversedPrimary[key] = traversedContent
224
+ }
225
+ }
226
+
227
+ const traversedItems = traverseGroupItemsContentWithModel(
228
+ path.concat({ key: "items", type: "items" }),
229
+ content.widget.items,
230
+ { model: config.model.fields.items ?? {}, transformWidget },
231
+ )
232
+
233
+ return transformSlice({
234
+ path,
235
+ key,
236
+ apiID,
237
+ content: {
238
+ ...content,
239
+ widget: { ...content.widget, primary: traversedPrimary, items: traversedItems },
240
+ },
241
+ model: config.model,
242
+ })
243
+ }
244
+
245
+ type TraverseCompositeSliceContentWithModelConfig = {
246
+ model: CompositeSliceModel | SharedSliceVariationContentModel
247
+ transformWidget?: TraverseWidgetContentWithModelFunction
248
+ transformSlice?: TraverseSliceContentWithModelFunction
249
+ }
250
+
251
+ export function traverseCompositeSliceContentWithModel(
252
+ path: contentPath.Path,
253
+ key: string,
254
+ apiID: string,
255
+ content: CompositeSliceItemContent | undefined,
256
+ config: TraverseCompositeSliceContentWithModelConfig,
257
+ ): CompositeSliceItemContent | SharedSliceItemContent | undefined {
258
+ if (!content) {
259
+ return
260
+ }
261
+
262
+ const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =
263
+ config
264
+
265
+ const primaryModel =
266
+ config.model?.type === "SharedSlice"
267
+ ? config.model?.fields.primary
268
+ : config.model?.["non-repeat"]
269
+ const traversedPrimary: CompositeSliceContent["nonRepeat"] = {}
270
+ for (const [key, model] of Object.entries(primaryModel ?? {})) {
271
+ const traversedContent = traverseWidgetContentWithModel(
272
+ path.concat({ key: "non-repeat", type: "primary" }, { key, type: "Widget" }),
273
+ key,
274
+ apiID,
275
+ content.widget.nonRepeat[key],
276
+ { model, transformWidget },
277
+ )
278
+
279
+ if (traversedContent && isNestableContent(traversedContent)) {
280
+ traversedPrimary[key] = traversedContent
281
+ }
282
+ }
283
+
284
+ const itemsModel =
285
+ config.model?.type === "SharedSlice" ? config.model?.fields.items : config.model?.repeat
286
+ const traversedItems = traverseGroupItemsContentWithModel(
287
+ path.concat({ key: "repeat", type: "items" }),
288
+ content.widget.repeat,
289
+ { model: itemsModel ?? {}, transformWidget },
290
+ )
291
+
292
+ return transformSlice({
293
+ path,
294
+ key,
295
+ apiID,
296
+ content: {
297
+ ...content,
298
+ widget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },
299
+ },
300
+ model: config.model,
301
+ })
302
+ }
303
+
304
+ type TraverseLegacySliceContentWithModelConfig = {
305
+ model: LegacySliceModel
306
+ transformWidget?: TraverseWidgetContentWithModelFunction
307
+ transformSlice?: TraverseSliceContentWithModelFunction
308
+ }
309
+
310
+ export function traverseLegacySliceContentWithModel(
311
+ path: contentPath.Path,
312
+ key: string,
313
+ apiID: string,
314
+ content: LegacySliceItemContent | undefined,
315
+ config: TraverseLegacySliceContentWithModelConfig,
316
+ ): LegacySliceItemContent | SharedSliceItemContent | undefined {
317
+ if (!content) {
318
+ return
319
+ }
320
+
321
+ const {
322
+ model,
323
+ transformWidget = (args) => args.content,
324
+ transformSlice = (args) => args.content,
325
+ } = config
326
+
327
+ const traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {
328
+ model,
329
+ transformWidget,
330
+ transformSlice,
331
+ })
332
+
333
+ if (
334
+ traversedContent &&
335
+ (isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)
336
+ ) {
337
+ return transformSlice({
338
+ path,
339
+ key,
340
+ apiID,
341
+ content: { ...content, widget: traversedContent },
342
+ model,
343
+ })
344
+ }
345
+ }
346
+
347
+ type TraverseGroupContentWithModelConfig = {
348
+ model: GroupModel
349
+ transformWidget: TraverseWidgetContentWithModelFunction
350
+ }
351
+
352
+ export function traverseGroupContentWithModel(
353
+ path: contentPath.Path,
354
+ key: string,
355
+ apiID: string,
356
+ content: GroupContent | undefined,
357
+ config: TraverseGroupContentWithModelConfig,
358
+ ): GroupContent | undefined {
359
+ const { model, transformWidget } = config
360
+
361
+ if (!content) {
362
+ return transformWidget({
363
+ path,
364
+ key,
365
+ apiID,
366
+ model,
367
+ })
368
+ }
369
+
370
+ const traversed = traverseGroupItemsContentWithModel(path, content.value, {
371
+ model: model.config?.fields ?? {},
372
+ transformWidget,
373
+ })
374
+
375
+ return transformWidget({
376
+ path,
377
+ key,
378
+ apiID,
379
+ content: { ...content, value: traversed },
380
+ model,
381
+ })
382
+ }
383
+
384
+ type TraverseGroupItemsContentWithModelConfig = {
385
+ model: Record<string, NestedGroupModel | NestableModel>
386
+ transformWidget: TraverseWidgetContentWithModelFunction
387
+ }
388
+
389
+ export function traverseGroupItemsContentWithModel(
390
+ path: contentPath.Path,
391
+ content: GroupItemContent[] | undefined,
392
+ config: TraverseGroupItemsContentWithModelConfig,
393
+ ): GroupItemContent[] {
394
+ const { transformWidget } = config
395
+
396
+ if (!content) {
397
+ return []
398
+ }
399
+
400
+ const traversed: GroupItemContent[] = []
401
+ for (const groupItemContent of content) {
402
+ const groupItemPath = path.concat({ key: groupItemContent.key, type: "GroupItem" })
403
+ const groupItemContentValue = Object.fromEntries(groupItemContent.value)
404
+
405
+ const traversedValue: GroupItemContent["value"] = []
406
+ for (const [key, model] of Object.entries(config.model)) {
407
+ const traversedContent = traverseWidgetContentWithModel(
408
+ groupItemPath.concat({ key, type: "Widget" }),
409
+ key,
410
+ key,
411
+ groupItemContentValue[key],
412
+ { model, transformWidget },
413
+ )
414
+
415
+ if (
416
+ traversedContent &&
417
+ (isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)
418
+ ) {
419
+ traversedValue.push([key, traversedContent])
420
+ }
421
+ }
422
+
423
+ traversed.push({ ...groupItemContent, value: traversedValue })
424
+ }
425
+
426
+ return traversed
427
+ }
428
+
429
+ type TraverseRepeatableContentWithModelConfig = {
430
+ model: LinkModel
431
+ transformWidget: TraverseWidgetContentWithModelFunction
432
+ }
433
+
434
+ export function traverseRepeatableContentWithModel(
435
+ path: contentPath.Path,
436
+ key: string,
437
+ apiID: string,
438
+ content: RepeatableContent | undefined,
439
+ config: TraverseRepeatableContentWithModelConfig,
440
+ ): RepeatableContent | undefined {
441
+ const { model, transformWidget } = config
442
+
443
+ if (!content) {
444
+ return transformWidget({
445
+ path,
446
+ key,
447
+ apiID,
448
+ model,
449
+ })
450
+ }
451
+
452
+ const nonRepeatModel =
453
+ model.type === "Link" && model.config
454
+ ? { ...model, config: { ...model.config, repeat: false } }
455
+ : model
456
+
457
+ const traversed: RepeatableContent["value"] = []
458
+ for (let index = 0; index < content.value.length; index++) {
459
+ const traversedContent = traverseWidgetContentWithModel(
460
+ path.concat({ key: index.toString(), type: "Widget" }),
461
+ key,
462
+ apiID,
463
+ content.value[index],
464
+ { model: nonRepeatModel, transformWidget },
465
+ )
466
+
467
+ if (traversedContent && isRepeatableContentValue(traversedContent)) {
468
+ traversed.push(traversedContent)
469
+ }
470
+ }
471
+
472
+ return transformWidget({
473
+ path,
474
+ key,
475
+ apiID,
476
+ content: { ...content, value: traversed },
477
+ model,
478
+ })
479
+ }
480
+
481
+ type TraverseTableContentWithModelConfig = {
482
+ model: TableModel
483
+ transformWidget: TraverseWidgetContentWithModelFunction
484
+ }
485
+
486
+ export function traverseTableContentWithModel(
487
+ path: contentPath.Path,
488
+ key: string,
489
+ apiID: string,
490
+ content: TableContent | undefined,
491
+ config: TraverseTableContentWithModelConfig,
492
+ ): TableContent | undefined {
493
+ const { model, transformWidget } = config
494
+
495
+ if (!content) {
496
+ return transformWidget({
497
+ path,
498
+ key,
499
+ apiID,
500
+ model,
501
+ })
502
+ }
503
+
504
+ const traversed: TableContent["content"] = []
505
+ for (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {
506
+ const traversedContent: TableContent["content"][number]["content"] = []
507
+ for (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {
508
+ const cellPath = path.concat({ key: [rowIndex, cellIndex].join(","), type: "Widget" })
509
+ const cell = content.content[rowIndex].content[cellIndex]
510
+
511
+ const transformed = transformWidget({
512
+ path: cellPath,
513
+ key,
514
+ apiID,
515
+ content: cell.content,
516
+ model: TableCellModel,
517
+ })
518
+
519
+ if (transformed && transformed.__TYPE__ === RichTextContentType) {
520
+ traversedContent.push({ ...cell, content: transformed })
521
+ } else {
522
+ traversedContent.push({
523
+ ...cell,
524
+ content: {
525
+ __TYPE__: RichTextContentType,
526
+ value: [],
527
+ },
528
+ })
529
+ }
530
+ }
531
+ traversed.push({ ...content.content[rowIndex], content: traversedContent })
532
+ }
533
+
534
+ return transformWidget({
535
+ path,
536
+ key,
537
+ apiID,
538
+ content: { ...content, content: traversed },
539
+ model,
540
+ })
541
+ }
542
+
543
+ // Internals
544
+ export type TraverseSliceContentWithModelFunction = <TContent extends SliceItemContent>(args: {
545
+ path: contentPath.Path
546
+ key: string
547
+ apiID: string
548
+ content?: TContent
549
+ model: SliceContentModel
550
+ }) => TContent | SharedSliceItemContent | undefined
551
+
552
+ export type TraverseWidgetContentWithModelFunction<
553
+ TContentTransformMode extends "preserve" | "widen" = "preserve",
554
+ > = <TContent extends WidgetContent>(args: {
555
+ path: contentPath.Path
556
+ key: string
557
+ apiID: string
558
+ content?: TContent
559
+ model: StaticWidgetModel
560
+ }) => (TContentTransformMode extends "preserve" ? TContent : WidgetContent) | undefined
561
+
562
+ type TraverseWidgetContentWithModelConfig = {
563
+ model: StaticWidgetModel
564
+ transformWidget?: TraverseWidgetContentWithModelFunction
565
+ transformSlice?: TraverseSliceContentWithModelFunction
566
+ }
567
+
568
+ function traverseWidgetContentWithModel(
569
+ path: contentPath.Path,
570
+ key: string,
571
+ apiID: string,
572
+ content: WidgetContent | undefined,
573
+ config: TraverseWidgetContentWithModelConfig,
574
+ ): WidgetContent | undefined {
575
+ const {
576
+ model,
577
+ transformWidget = (args) => args.content,
578
+ transformSlice = (args) => args.content,
579
+ } = config
580
+
581
+ if (model.type === "Slices" || model.type === "Choice") {
582
+ const slices = content?.__TYPE__ === SlicesContentType ? content : undefined
583
+ return traverseSlicesContentWithModel(path, key, apiID, slices, {
584
+ transformWidget,
585
+ transformSlice,
586
+ model,
587
+ })
588
+ }
589
+
590
+ if (model.type === "Group") {
591
+ const group = content?.__TYPE__ === GroupContentType ? content : undefined
592
+ return traverseGroupContentWithModel(path, key, apiID, group, { transformWidget, model })
593
+ }
594
+
595
+ if (model.type === "Link" && model.config?.repeat) {
596
+ const repeatable = content?.__TYPE__ === RepeatableContentType ? content : undefined
597
+ return traverseRepeatableContentWithModel(path, key, apiID, repeatable, {
598
+ transformWidget,
599
+ model,
600
+ })
601
+ }
602
+
603
+ if (model.type === "Table") {
604
+ const table = content?.__TYPE__ === TableContentType ? content : undefined
605
+ return traverseTableContentWithModel(path, key, apiID, table, { transformWidget, model })
606
+ }
607
+
608
+ const nestable =
609
+ content?.__TYPE__ !== SlicesContentType &&
610
+ content?.__TYPE__ !== GroupContentType &&
611
+ content?.__TYPE__ !== RepeatableContentType &&
612
+ content?.__TYPE__ !== TableContentType
613
+ ? content
614
+ : undefined
615
+ return transformWidget({ path, key, apiID, content: nestable, model })
616
+ }