@prismicio/types-internal 3.17.0 → 4.0.0-canary.4689e2d

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 (769) hide show
  1. package/README.md +36 -20
  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 +54 -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 +28 -0
  125. package/dist/content/legacy/image.d.ts.map +1 -0
  126. package/dist/content/legacy/image.js +33 -0
  127. package/dist/content/legacy/image.js.map +1 -0
  128. package/dist/content/legacy/integrationField.d.ts +1 -0
  129. package/dist/content/legacy/integrationField.js +7 -0
  130. package/dist/content/legacy/integrationField.js.map +1 -0
  131. package/dist/content/legacy/link.d.ts +41 -0
  132. package/dist/content/legacy/link.d.ts.map +1 -0
  133. package/dist/content/legacy/link.js +88 -0
  134. package/dist/content/legacy/link.js.map +1 -0
  135. package/dist/content/legacy/nestable.d.ts +1 -0
  136. package/dist/content/legacy/nestable.js +32 -0
  137. package/dist/content/legacy/nestable.js.map +1 -0
  138. package/dist/content/legacy/repeatable.d.ts +1 -0
  139. package/dist/content/legacy/repeatable.js +7 -0
  140. package/dist/content/legacy/repeatable.js.map +1 -0
  141. package/dist/content/legacy/richText.d.ts +110 -0
  142. package/dist/content/legacy/richText.d.ts.map +1 -0
  143. package/dist/content/legacy/richText.js +100 -0
  144. package/dist/content/legacy/richText.js.map +1 -0
  145. package/dist/content/legacy/separator.d.ts +1 -0
  146. package/dist/content/legacy/separator.js +7 -0
  147. package/dist/content/legacy/separator.js.map +1 -0
  148. package/dist/content/legacy/slice.js +22 -0
  149. package/dist/content/legacy/slice.js.map +1 -0
  150. package/dist/content/legacy/slices.js +13 -0
  151. package/dist/content/legacy/slices.js.map +1 -0
  152. package/dist/content/legacy/table.d.ts +1 -0
  153. package/dist/content/legacy/table.js +19 -0
  154. package/dist/content/legacy/table.js.map +1 -0
  155. package/dist/content/legacy/uid.js +7 -0
  156. package/dist/content/legacy/uid.js.map +1 -0
  157. package/dist/content/link.d.ts +140 -0
  158. package/dist/content/link.d.ts.map +1 -0
  159. package/dist/content/link.js +53 -0
  160. package/dist/content/link.js.map +1 -0
  161. package/dist/content/nestable.d.ts +19 -0
  162. package/dist/content/nestable.d.ts.map +1 -0
  163. package/dist/content/nestable.js +56 -0
  164. package/dist/content/nestable.js.map +1 -0
  165. package/dist/content/repeatable.d.ts +32 -0
  166. package/dist/content/repeatable.d.ts.map +1 -0
  167. package/dist/content/repeatable.js +17 -0
  168. package/dist/content/repeatable.js.map +1 -0
  169. package/dist/content/richText.d.ts +91 -0
  170. package/dist/content/richText.d.ts.map +1 -0
  171. package/dist/content/richText.js +24 -0
  172. package/dist/content/richText.js.map +1 -0
  173. package/dist/content/separator.d.ts +10 -0
  174. package/dist/content/separator.d.ts.map +1 -0
  175. package/dist/content/separator.js +8 -0
  176. package/dist/content/separator.js.map +1 -0
  177. package/dist/content/slice.d.ts +24 -0
  178. package/dist/content/slice.d.ts.map +1 -0
  179. package/dist/content/slice.js +27 -0
  180. package/dist/content/slice.js.map +1 -0
  181. package/dist/content/slices.d.ts +56 -0
  182. package/dist/content/slices.d.ts.map +1 -0
  183. package/dist/content/slices.js +24 -0
  184. package/dist/content/slices.js.map +1 -0
  185. package/dist/content/table.d.ts +21 -0
  186. package/dist/content/table.d.ts.map +1 -0
  187. package/dist/content/table.js +13 -0
  188. package/dist/content/table.js.map +1 -0
  189. package/dist/content/uid.d.ts +11 -0
  190. package/dist/content/uid.d.ts.map +1 -0
  191. package/dist/content/uid.js +11 -0
  192. package/dist/content/uid.js.map +1 -0
  193. package/dist/content/widget.d.ts +11 -0
  194. package/dist/content/widget.d.ts.map +1 -0
  195. package/dist/content/widget.js +16 -0
  196. package/dist/content/widget.js.map +1 -0
  197. package/dist/helpers/contentPath.d.ts +15 -0
  198. package/dist/helpers/contentPath.d.ts.map +1 -0
  199. package/dist/helpers/contentPath.js +30 -0
  200. package/dist/helpers/contentPath.js.map +1 -0
  201. package/dist/helpers/customTypeModel.d.ts +15 -0
  202. package/dist/helpers/customTypeModel.d.ts.map +1 -0
  203. package/dist/helpers/customTypeModel.js +85 -0
  204. package/dist/helpers/customTypeModel.js.map +1 -0
  205. package/dist/helpers/documentContent.d.ts +20 -0
  206. package/dist/helpers/documentContent.d.ts.map +1 -0
  207. package/dist/helpers/documentContent.js +64 -0
  208. package/dist/helpers/documentContent.js.map +1 -0
  209. package/dist/helpers/imageContent.d.ts +33 -0
  210. package/dist/helpers/imageContent.d.ts.map +1 -0
  211. package/dist/helpers/imageContent.js +55 -0
  212. package/dist/helpers/imageContent.js.map +1 -0
  213. package/dist/helpers/sliceContent.d.ts +12 -0
  214. package/dist/helpers/sliceContent.d.ts.map +1 -0
  215. package/dist/helpers/sliceContent.js +60 -0
  216. package/dist/helpers/sliceContent.js.map +1 -0
  217. package/dist/helpers/traverseContent.d.ts +84 -0
  218. package/dist/helpers/traverseContent.d.ts.map +1 -0
  219. package/dist/helpers/traverseContent.js +376 -0
  220. package/dist/helpers/traverseContent.js.map +1 -0
  221. package/dist/helpers/traverseContentWithModel.d.ts +84 -0
  222. package/dist/helpers/traverseContentWithModel.d.ts.map +1 -0
  223. package/dist/helpers/traverseContentWithModel.js +388 -0
  224. package/dist/helpers/traverseContentWithModel.js.map +1 -0
  225. package/dist/helpers/withDefaultContent.d.ts +21 -0
  226. package/dist/helpers/withDefaultContent.d.ts.map +1 -0
  227. package/dist/helpers/withDefaultContent.js +120 -0
  228. package/dist/helpers/withDefaultContent.js.map +1 -0
  229. package/dist/index.d.ts +59 -0
  230. package/dist/index.js +14 -0
  231. package/dist/io-ts.d.ts +4792 -0
  232. package/dist/io-ts.d.ts.map +1 -0
  233. package/dist/io-ts.js +224 -0
  234. package/dist/io-ts.js.map +1 -0
  235. package/dist/model/boolean.d.ts +16 -0
  236. package/dist/model/boolean.d.ts.map +1 -0
  237. package/dist/model/boolean.js +16 -0
  238. package/dist/model/boolean.js.map +1 -0
  239. package/dist/model/color.d.ts +15 -0
  240. package/dist/model/color.d.ts.map +1 -0
  241. package/dist/model/color.js +15 -0
  242. package/dist/model/color.js.map +1 -0
  243. package/dist/model/customType.d.ts +31 -0
  244. package/dist/model/customType.d.ts.map +1 -0
  245. package/dist/model/customType.js +18 -0
  246. package/dist/model/customType.js.map +1 -0
  247. package/dist/model/date.d.ts +16 -0
  248. package/dist/model/date.d.ts.map +1 -0
  249. package/dist/model/date.js +16 -0
  250. package/dist/model/date.js.map +1 -0
  251. package/dist/model/embed.d.ts +16 -0
  252. package/dist/model/embed.d.ts.map +1 -0
  253. package/dist/model/embed.js +16 -0
  254. package/dist/model/embed.js.map +1 -0
  255. package/dist/model/geopoint.d.ts +14 -0
  256. package/dist/model/geopoint.d.ts.map +1 -0
  257. package/dist/model/geopoint.js +12 -0
  258. package/dist/model/geopoint.js.map +1 -0
  259. package/dist/model/group.d.ts +567 -0
  260. package/dist/model/group.d.ts.map +1 -0
  261. package/dist/model/group.js +23 -0
  262. package/dist/model/group.js.map +1 -0
  263. package/dist/model/image.d.ts +24 -0
  264. package/dist/model/image.d.ts.map +1 -0
  265. package/dist/model/image.js +41 -0
  266. package/dist/model/image.js.map +1 -0
  267. package/dist/model/integrationField.d.ts +16 -0
  268. package/dist/model/integrationField.d.ts.map +1 -0
  269. package/dist/model/integrationField.js +16 -0
  270. package/dist/model/integrationField.js.map +1 -0
  271. package/dist/model/link.d.ts +48 -0
  272. package/dist/model/link.d.ts.map +1 -0
  273. package/dist/model/link.js +94 -0
  274. package/dist/model/link.js.map +1 -0
  275. package/dist/model/nestable.d.ts +23 -0
  276. package/dist/model/nestable.d.ts.map +1 -0
  277. package/dist/model/nestable.js +40 -0
  278. package/dist/model/nestable.js.map +1 -0
  279. package/dist/model/number.d.ts +18 -0
  280. package/dist/model/number.d.ts.map +1 -0
  281. package/dist/model/number.js +19 -0
  282. package/dist/model/number.js.map +1 -0
  283. package/dist/model/range.d.ts +18 -0
  284. package/dist/model/range.d.ts.map +1 -0
  285. package/dist/model/range.js +19 -0
  286. package/dist/model/range.js.map +1 -0
  287. package/dist/model/richText.d.ts +43 -0
  288. package/dist/model/richText.d.ts.map +1 -0
  289. package/dist/model/richText.js +73 -0
  290. package/dist/model/richText.js.map +1 -0
  291. package/dist/model/section.d.ts +11 -0
  292. package/dist/model/section.d.ts.map +1 -0
  293. package/dist/model/section.js +10 -0
  294. package/dist/model/section.js.map +1 -0
  295. package/dist/model/select.d.ts +17 -0
  296. package/dist/model/select.d.ts.map +1 -0
  297. package/dist/model/select.js +22 -0
  298. package/dist/model/select.js.map +1 -0
  299. package/dist/model/separator.d.ts +13 -0
  300. package/dist/model/separator.d.ts.map +1 -0
  301. package/dist/model/separator.js +11 -0
  302. package/dist/model/separator.js.map +1 -0
  303. package/dist/model/slice.d.ts +2084 -0
  304. package/dist/model/slice.d.ts.map +1 -0
  305. package/dist/model/slice.js +68 -0
  306. package/dist/model/slice.js.map +1 -0
  307. package/dist/model/slices.d.ts +33 -0
  308. package/dist/model/slices.d.ts.map +1 -0
  309. package/dist/model/slices.js +29 -0
  310. package/dist/model/slices.js.map +1 -0
  311. package/dist/model/table.d.ts +14 -0
  312. package/dist/model/table.d.ts.map +1 -0
  313. package/dist/model/table.js +22 -0
  314. package/dist/model/table.js.map +1 -0
  315. package/dist/model/text.d.ts +16 -0
  316. package/dist/model/text.d.ts.map +1 -0
  317. package/dist/model/text.js +16 -0
  318. package/dist/model/text.js.map +1 -0
  319. package/dist/model/timestamp.d.ts +16 -0
  320. package/dist/model/timestamp.d.ts.map +1 -0
  321. package/dist/model/timestamp.js +16 -0
  322. package/dist/model/timestamp.js.map +1 -0
  323. package/dist/model/uid.d.ts +16 -0
  324. package/dist/model/uid.d.ts.map +1 -0
  325. package/dist/model/uid.js +16 -0
  326. package/dist/model/uid.js.map +1 -0
  327. package/dist/model/widget.d.ts +58 -0
  328. package/dist/model/widget.d.ts.map +1 -0
  329. package/dist/model/widget.js +50 -0
  330. package/dist/model/widget.js.map +1 -0
  331. package/dist/zod4.d.ts +2840 -0
  332. package/dist/zod4.d.ts.map +1 -0
  333. package/dist/zod4.js +136 -0
  334. package/dist/zod4.js.map +1 -0
  335. package/package.json +62 -58
  336. package/src/common/asset.ts +29 -0
  337. package/src/common/embed.ts +27 -0
  338. package/src/common/hexaColorCode.ts +11 -0
  339. package/src/common/nonEmptyString.ts +9 -0
  340. package/src/common/widgetKey.ts +11 -0
  341. package/src/content/boolean.ts +10 -0
  342. package/src/content/codec/boolean.ts +38 -0
  343. package/src/content/codec/document.ts +60 -0
  344. package/src/content/codec/embed.ts +55 -0
  345. package/src/content/codec/empty.ts +49 -0
  346. package/src/content/codec/field.ts +96 -0
  347. package/src/content/codec/geopoint.ts +40 -0
  348. package/src/content/codec/group.ts +163 -0
  349. package/src/content/codec/image.ts +50 -0
  350. package/src/content/codec/integrationField.ts +38 -0
  351. package/src/content/{LegacyContentCtx.ts → codec/legacyContentCtx.ts} +17 -17
  352. package/src/content/codec/link.ts +103 -0
  353. package/src/content/codec/nestable.ts +146 -0
  354. package/src/content/codec/repeatable.ts +68 -0
  355. package/src/content/codec/richText.ts +117 -0
  356. package/src/content/codec/separator.ts +33 -0
  357. package/src/content/codec/slice.ts +276 -0
  358. package/src/content/codec/slices.ts +130 -0
  359. package/src/content/codec/table.ts +65 -0
  360. package/src/content/codec/uid.ts +36 -0
  361. package/src/content/codec/widget.ts +58 -0
  362. package/src/content/document.ts +8 -0
  363. package/src/content/embed.ts +12 -0
  364. package/src/content/empty.ts +10 -0
  365. package/src/content/field.ts +80 -0
  366. package/src/content/geopoint.ts +11 -0
  367. package/src/content/group.ts +46 -0
  368. package/src/content/image.ts +15 -0
  369. package/src/content/integrationField.ts +10 -0
  370. package/src/content/legacy/boolean.ts +5 -0
  371. package/src/content/legacy/document.ts +25 -0
  372. package/src/content/legacy/embed.ts +23 -0
  373. package/src/content/legacy/empty.ts +10 -0
  374. package/src/content/legacy/field.ts +8 -0
  375. package/src/content/legacy/geopoint.ts +10 -0
  376. package/src/content/legacy/group.ts +23 -0
  377. package/src/content/legacy/image.ts +43 -0
  378. package/src/content/legacy/integrationField.ts +5 -0
  379. package/src/content/legacy/link.ts +194 -0
  380. package/src/content/legacy/nestable.ts +55 -0
  381. package/src/content/legacy/repeatable.ts +7 -0
  382. package/src/content/legacy/richText.ts +200 -0
  383. package/src/content/legacy/separator.ts +6 -0
  384. package/src/content/legacy/slice.ts +38 -0
  385. package/src/content/legacy/slices.ts +17 -0
  386. package/src/content/legacy/table.ts +39 -0
  387. package/src/content/legacy/uid.ts +6 -0
  388. package/src/content/legacy/widget.ts +19 -0
  389. package/src/content/link.ts +165 -0
  390. package/src/content/nestable.ts +107 -0
  391. package/src/content/repeatable.ts +21 -0
  392. package/src/content/richText.ts +60 -0
  393. package/src/content/separator.ts +9 -0
  394. package/src/content/slice.ts +41 -0
  395. package/src/content/slices.ts +57 -0
  396. package/src/content/table.ts +14 -0
  397. package/src/content/uid.ts +10 -0
  398. package/src/content/widget.ts +21 -0
  399. package/src/helpers/contentPath.ts +35 -0
  400. package/src/helpers/customTypeModel.ts +113 -0
  401. package/src/helpers/documentContent.ts +108 -0
  402. package/src/helpers/imageContent.ts +84 -0
  403. package/src/helpers/sliceContent.ts +86 -0
  404. package/src/helpers/traverseContent.ts +597 -0
  405. package/src/helpers/traverseContentWithModel.ts +616 -0
  406. package/src/helpers/withDefaultContent.ts +180 -0
  407. package/src/index.ts +136 -0
  408. package/src/io-ts.ts +363 -0
  409. package/src/model/boolean.ts +15 -0
  410. package/src/model/color.ts +14 -0
  411. package/src/model/customType.ts +26 -0
  412. package/src/model/date.ts +15 -0
  413. package/src/model/diff/index.ts +4 -0
  414. package/src/{customtypes/diff/SharedSlice.ts → model/diff/sharedSlice.ts} +16 -18
  415. package/src/model/diff/utils.ts +45 -0
  416. package/src/model/diff/variation.ts +155 -0
  417. package/src/model/diff/widgets.ts +15 -0
  418. package/src/model/embed.ts +15 -0
  419. package/src/model/geopoint.ts +13 -0
  420. package/src/model/group.ts +39 -0
  421. package/src/model/image.ts +54 -0
  422. package/src/model/integrationField.ts +15 -0
  423. package/src/model/link.ts +141 -0
  424. package/src/model/nestable.ts +71 -0
  425. package/src/model/number.ts +26 -0
  426. package/src/model/range.ts +26 -0
  427. package/src/model/richText.ts +109 -0
  428. package/src/model/section.ts +12 -0
  429. package/src/model/select.ts +30 -0
  430. package/src/model/separator.ts +12 -0
  431. package/src/model/slice.ts +131 -0
  432. package/src/model/slices.ts +54 -0
  433. package/src/model/table.ts +29 -0
  434. package/src/model/text.ts +15 -0
  435. package/src/model/timestamp.ts +15 -0
  436. package/src/model/uid.ts +15 -0
  437. package/src/model/widget.ts +67 -0
  438. package/src/zod4.ts +199 -0
  439. package/lib/common/Asset.d.ts +0 -16
  440. package/lib/common/Asset.js +0 -11
  441. package/lib/common/Embed.d.ts +0 -15
  442. package/lib/common/Embed.js +0 -10
  443. package/lib/common/HexaColorCode.d.ts +0 -4
  444. package/lib/common/HexaColorCode.js +0 -7
  445. package/lib/common/UUID.d.ts +0 -6
  446. package/lib/common/UUID.js +0 -8
  447. package/lib/common/WidgetKey.d.ts +0 -3
  448. package/lib/common/WidgetKey.js +0 -8
  449. package/lib/common/index.d.ts +0 -3
  450. package/lib/common/index.js +0 -6
  451. package/lib/content/Document.d.ts +0 -11813
  452. package/lib/content/Document.js +0 -364
  453. package/lib/content/LegacyContentCtx.d.ts +0 -64
  454. package/lib/content/LegacyContentCtx.js +0 -130
  455. package/lib/content/fields/EmptyContent.d.ts +0 -16
  456. package/lib/content/fields/EmptyContent.js +0 -30
  457. package/lib/content/fields/GroupContent.d.ts +0 -53
  458. package/lib/content/fields/GroupContent.js +0 -307
  459. package/lib/content/fields/UIDContent.d.ts +0 -16
  460. package/lib/content/fields/UIDContent.js +0 -25
  461. package/lib/content/fields/WidgetContent.d.ts +0 -11749
  462. package/lib/content/fields/WidgetContent.js +0 -57
  463. package/lib/content/fields/index.d.ts +0 -6
  464. package/lib/content/fields/index.js +0 -9
  465. package/lib/content/fields/nestable/BooleanContent.d.ts +0 -18
  466. package/lib/content/fields/nestable/BooleanContent.js +0 -35
  467. package/lib/content/fields/nestable/EmbedContent.d.ts +0 -78
  468. package/lib/content/fields/nestable/EmbedContent.js +0 -56
  469. package/lib/content/fields/nestable/FieldContent/ColorContent.d.ts +0 -18
  470. package/lib/content/fields/nestable/FieldContent/ColorContent.js +0 -35
  471. package/lib/content/fields/nestable/FieldContent/DateContent.d.ts +0 -18
  472. package/lib/content/fields/nestable/FieldContent/DateContent.js +0 -35
  473. package/lib/content/fields/nestable/FieldContent/NumberContent.d.ts +0 -18
  474. package/lib/content/fields/nestable/FieldContent/NumberContent.js +0 -35
  475. package/lib/content/fields/nestable/FieldContent/RangeContent.d.ts +0 -18
  476. package/lib/content/fields/nestable/FieldContent/RangeContent.js +0 -35
  477. package/lib/content/fields/nestable/FieldContent/SelectContent.d.ts +0 -20
  478. package/lib/content/fields/nestable/FieldContent/SelectContent.js +0 -46
  479. package/lib/content/fields/nestable/FieldContent/TextContent.d.ts +0 -18
  480. package/lib/content/fields/nestable/FieldContent/TextContent.js +0 -35
  481. package/lib/content/fields/nestable/FieldContent/TimestampContent.d.ts +0 -18
  482. package/lib/content/fields/nestable/FieldContent/TimestampContent.js +0 -35
  483. package/lib/content/fields/nestable/FieldContent/common.d.ts +0 -1
  484. package/lib/content/fields/nestable/FieldContent/common.js +0 -4
  485. package/lib/content/fields/nestable/FieldContent/index.d.ts +0 -49
  486. package/lib/content/fields/nestable/FieldContent/index.js +0 -38
  487. package/lib/content/fields/nestable/GeoPointContent.d.ts +0 -33
  488. package/lib/content/fields/nestable/GeoPointContent.js +0 -31
  489. package/lib/content/fields/nestable/ImageContent.d.ts +0 -252
  490. package/lib/content/fields/nestable/ImageContent.js +0 -122
  491. package/lib/content/fields/nestable/IntegrationFieldContent.d.ts +0 -16
  492. package/lib/content/fields/nestable/IntegrationFieldContent.js +0 -28
  493. package/lib/content/fields/nestable/LinkContent.d.ts +0 -919
  494. package/lib/content/fields/nestable/LinkContent.js +0 -399
  495. package/lib/content/fields/nestable/NestableContent.d.ts +0 -1953
  496. package/lib/content/fields/nestable/NestableContent.js +0 -167
  497. package/lib/content/fields/nestable/RepeatableContent.d.ts +0 -182
  498. package/lib/content/fields/nestable/RepeatableContent.js +0 -146
  499. package/lib/content/fields/nestable/RichTextContent/Blocks.d.ts +0 -1261
  500. package/lib/content/fields/nestable/RichTextContent/Blocks.js +0 -170
  501. package/lib/content/fields/nestable/RichTextContent/index.d.ts +0 -1004
  502. package/lib/content/fields/nestable/RichTextContent/index.js +0 -28
  503. package/lib/content/fields/nestable/SeparatorContent.d.ts +0 -13
  504. package/lib/content/fields/nestable/SeparatorContent.js +0 -22
  505. package/lib/content/fields/nestable/TableContent.d.ts +0 -776
  506. package/lib/content/fields/nestable/TableContent.js +0 -167
  507. package/lib/content/fields/nestable/index.d.ts +0 -12
  508. package/lib/content/fields/nestable/index.js +0 -15
  509. package/lib/content/fields/slices/Slice/CompositeSliceContent.d.ts +0 -3934
  510. package/lib/content/fields/slices/Slice/CompositeSliceContent.js +0 -195
  511. package/lib/content/fields/slices/Slice/RepeatableContent.d.ts +0 -774
  512. package/lib/content/fields/slices/Slice/RepeatableContent.js +0 -21
  513. package/lib/content/fields/slices/Slice/SharedSliceContent.d.ts +0 -3937
  514. package/lib/content/fields/slices/Slice/SharedSliceContent.js +0 -215
  515. package/lib/content/fields/slices/Slice/SimpleSliceContent.d.ts +0 -1962
  516. package/lib/content/fields/slices/Slice/SimpleSliceContent.js +0 -130
  517. package/lib/content/fields/slices/Slice/SlicePrimaryContent.d.ts +0 -1952
  518. package/lib/content/fields/slices/Slice/SlicePrimaryContent.js +0 -30
  519. package/lib/content/fields/slices/Slice/index.d.ts +0 -6810
  520. package/lib/content/fields/slices/Slice/index.js +0 -45
  521. package/lib/content/fields/slices/SliceItem.d.ts +0 -6846
  522. package/lib/content/fields/slices/SliceItem.js +0 -116
  523. package/lib/content/fields/slices/SlicesContent.d.ts +0 -9827
  524. package/lib/content/fields/slices/SlicesContent.js +0 -465
  525. package/lib/content/fields/slices/index.d.ts +0 -3
  526. package/lib/content/fields/slices/index.js +0 -6
  527. package/lib/content/fields/withDefaultValues.d.ts +0 -9
  528. package/lib/content/fields/withDefaultValues.js +0 -79
  529. package/lib/content/helpers.d.ts +0 -9
  530. package/lib/content/helpers.js +0 -22
  531. package/lib/content/index.d.ts +0 -4
  532. package/lib/content/index.js +0 -7
  533. package/lib/content/utils.d.ts +0 -50
  534. package/lib/content/utils.js +0 -35
  535. package/lib/customtypes/CustomType.d.ts +0 -3680
  536. package/lib/customtypes/CustomType.js +0 -184
  537. package/lib/customtypes/Section.d.ts +0 -3635
  538. package/lib/customtypes/Section.js +0 -66
  539. package/lib/customtypes/diff/Changes.d.ts +0 -17
  540. package/lib/customtypes/diff/Changes.js +0 -9
  541. package/lib/customtypes/diff/SharedSlice.d.ts +0 -1624
  542. package/lib/customtypes/diff/SharedSlice.js +0 -55
  543. package/lib/customtypes/diff/Variation.d.ts +0 -1605
  544. package/lib/customtypes/diff/Variation.js +0 -113
  545. package/lib/customtypes/diff/Widgets.d.ts +0 -11
  546. package/lib/customtypes/diff/Widgets.js +0 -2
  547. package/lib/customtypes/diff/index.d.ts +0 -4
  548. package/lib/customtypes/diff/index.js +0 -7
  549. package/lib/customtypes/index.d.ts +0 -4
  550. package/lib/customtypes/index.js +0 -7
  551. package/lib/customtypes/widgets/Group.d.ts +0 -1352
  552. package/lib/customtypes/widgets/Group.js +0 -92
  553. package/lib/customtypes/widgets/UID.d.ts +0 -19
  554. package/lib/customtypes/widgets/UID.js +0 -21
  555. package/lib/customtypes/widgets/Widget.d.ts +0 -4457
  556. package/lib/customtypes/widgets/Widget.js +0 -49
  557. package/lib/customtypes/widgets/index.d.ts +0 -6
  558. package/lib/customtypes/widgets/index.js +0 -9
  559. package/lib/customtypes/widgets/nestable/BooleanField.d.ts +0 -20
  560. package/lib/customtypes/widgets/nestable/BooleanField.js +0 -21
  561. package/lib/customtypes/widgets/nestable/Color.d.ts +0 -17
  562. package/lib/customtypes/widgets/nestable/Color.js +0 -20
  563. package/lib/customtypes/widgets/nestable/Date.d.ts +0 -19
  564. package/lib/customtypes/widgets/nestable/Date.js +0 -21
  565. package/lib/customtypes/widgets/nestable/Embed.d.ts +0 -19
  566. package/lib/customtypes/widgets/nestable/Embed.js +0 -21
  567. package/lib/customtypes/widgets/nestable/GeoPoint.d.ts +0 -15
  568. package/lib/customtypes/widgets/nestable/GeoPoint.js +0 -19
  569. package/lib/customtypes/widgets/nestable/Image.d.ts +0 -44
  570. package/lib/customtypes/widgets/nestable/Image.js +0 -29
  571. package/lib/customtypes/widgets/nestable/IntegrationField.d.ts +0 -19
  572. package/lib/customtypes/widgets/nestable/IntegrationField.js +0 -21
  573. package/lib/customtypes/widgets/nestable/Link.d.ts +0 -196
  574. package/lib/customtypes/widgets/nestable/Link.js +0 -167
  575. package/lib/customtypes/widgets/nestable/NestableWidget.d.ts +0 -217
  576. package/lib/customtypes/widgets/nestable/NestableWidget.js +0 -39
  577. package/lib/customtypes/widgets/nestable/Number.d.ts +0 -23
  578. package/lib/customtypes/widgets/nestable/Number.js +0 -24
  579. package/lib/customtypes/widgets/nestable/Range.d.ts +0 -23
  580. package/lib/customtypes/widgets/nestable/Range.js +0 -24
  581. package/lib/customtypes/widgets/nestable/RichText.d.ts +0 -73
  582. package/lib/customtypes/widgets/nestable/RichText.js +0 -131
  583. package/lib/customtypes/widgets/nestable/Select.d.ts +0 -21
  584. package/lib/customtypes/widgets/nestable/Select.js +0 -22
  585. package/lib/customtypes/widgets/nestable/Separator.d.ts +0 -14
  586. package/lib/customtypes/widgets/nestable/Separator.js +0 -18
  587. package/lib/customtypes/widgets/nestable/Table.d.ts +0 -21
  588. package/lib/customtypes/widgets/nestable/Table.js +0 -30
  589. package/lib/customtypes/widgets/nestable/Text.d.ts +0 -19
  590. package/lib/customtypes/widgets/nestable/Text.js +0 -21
  591. package/lib/customtypes/widgets/nestable/Timestamp.d.ts +0 -19
  592. package/lib/customtypes/widgets/nestable/Timestamp.js +0 -21
  593. package/lib/customtypes/widgets/nestable/index.d.ts +0 -17
  594. package/lib/customtypes/widgets/nestable/index.js +0 -20
  595. package/lib/customtypes/widgets/shared/ImageConstraint.d.ts +0 -7
  596. package/lib/customtypes/widgets/shared/ImageConstraint.js +0 -31
  597. package/lib/customtypes/widgets/shared/index.d.ts +0 -1
  598. package/lib/customtypes/widgets/shared/index.js +0 -8
  599. package/lib/customtypes/widgets/slices/CompositeSlice.d.ts +0 -455
  600. package/lib/customtypes/widgets/slices/CompositeSlice.js +0 -63
  601. package/lib/customtypes/widgets/slices/LegacySlice.d.ts +0 -442
  602. package/lib/customtypes/widgets/slices/LegacySlice.js +0 -12
  603. package/lib/customtypes/widgets/slices/SharedSlice.d.ts +0 -1807
  604. package/lib/customtypes/widgets/slices/SharedSlice.js +0 -118
  605. package/lib/customtypes/widgets/slices/SharedSliceRef.d.ts +0 -5
  606. package/lib/customtypes/widgets/slices/SharedSliceRef.js +0 -9
  607. package/lib/customtypes/widgets/slices/Slice.d.ts +0 -6
  608. package/lib/customtypes/widgets/slices/Slice.js +0 -2
  609. package/lib/customtypes/widgets/slices/SlicePrimaryWidget.d.ts +0 -1259
  610. package/lib/customtypes/widgets/slices/SlicePrimaryWidget.js +0 -10
  611. package/lib/customtypes/widgets/slices/Slices.d.ts +0 -5917
  612. package/lib/customtypes/widgets/slices/Slices.js +0 -146
  613. package/lib/customtypes/widgets/slices/SlicesTypes.d.ts +0 -6
  614. package/lib/customtypes/widgets/slices/SlicesTypes.js +0 -11
  615. package/lib/customtypes/widgets/slices/index.d.ts +0 -8
  616. package/lib/customtypes/widgets/slices/index.js +0 -11
  617. package/lib/utils/Arrays.d.ts +0 -1
  618. package/lib/utils/Arrays.js +0 -13
  619. package/lib/utils/DocumentId.d.ts +0 -2
  620. package/lib/utils/DocumentId.js +0 -7
  621. package/lib/utils/Fields.d.ts +0 -6
  622. package/lib/utils/Fields.js +0 -2
  623. package/lib/utils/Objects.d.ts +0 -8
  624. package/lib/utils/Objects.js +0 -42
  625. package/lib/utils/index.d.ts +0 -4
  626. package/lib/utils/index.js +0 -8
  627. package/lib/validators/BasicTypes.d.ts +0 -10
  628. package/lib/validators/BasicTypes.js +0 -25
  629. package/lib/validators/DateFromString.d.ts +0 -3
  630. package/lib/validators/DateFromString.js +0 -11
  631. package/lib/validators/DateFromStringOrNumber.d.ts +0 -3
  632. package/lib/validators/DateFromStringOrNumber.js +0 -10
  633. package/lib/validators/DateFromTsMs.d.ts +0 -3
  634. package/lib/validators/DateFromTsMs.js +0 -10
  635. package/lib/validators/DefaultOrElse.d.ts +0 -5
  636. package/lib/validators/DefaultOrElse.js +0 -21
  637. package/lib/validators/IntFromNumber.d.ts +0 -5
  638. package/lib/validators/IntFromNumber.js +0 -14
  639. package/lib/validators/IntFromPixels.d.ts +0 -8
  640. package/lib/validators/IntFromPixels.js +0 -24
  641. package/lib/validators/NonEmptyString.d.ts +0 -3
  642. package/lib/validators/NonEmptyString.js +0 -6
  643. package/lib/validators/NonEmptyStringOrNull.d.ts +0 -3
  644. package/lib/validators/NonEmptyStringOrNull.js +0 -15
  645. package/lib/validators/NumberOrNull.d.ts +0 -3
  646. package/lib/validators/NumberOrNull.js +0 -6
  647. package/lib/validators/NumberRange.d.ts +0 -32
  648. package/lib/validators/NumberRange.js +0 -40
  649. package/lib/validators/StringFromBoolean.d.ts +0 -5
  650. package/lib/validators/StringFromBoolean.js +0 -10
  651. package/lib/validators/StringFromNumber.d.ts +0 -5
  652. package/lib/validators/StringFromNumber.js +0 -10
  653. package/lib/validators/StringOrNull.d.ts +0 -3
  654. package/lib/validators/StringOrNull.js +0 -6
  655. package/lib/validators/TrimmedString.d.ts +0 -5
  656. package/lib/validators/TrimmedString.js +0 -23
  657. package/lib/validators/function.d.ts +0 -34
  658. package/lib/validators/function.js +0 -100
  659. package/lib/validators/index.d.ts +0 -15
  660. package/lib/validators/index.js +0 -31
  661. package/src/common/Asset.ts +0 -25
  662. package/src/common/Embed.ts +0 -22
  663. package/src/common/HexaColorCode.ts +0 -11
  664. package/src/common/UUID.ts +0 -19
  665. package/src/common/WidgetKey.ts +0 -13
  666. package/src/common/index.ts +0 -3
  667. package/src/content/Document.ts +0 -539
  668. package/src/content/fields/EmptyContent.ts +0 -45
  669. package/src/content/fields/GroupContent.ts +0 -466
  670. package/src/content/fields/UIDContent.ts +0 -42
  671. package/src/content/fields/WidgetContent.ts +0 -76
  672. package/src/content/fields/index.ts +0 -6
  673. package/src/content/fields/nestable/BooleanContent.ts +0 -52
  674. package/src/content/fields/nestable/EmbedContent.ts +0 -74
  675. package/src/content/fields/nestable/FieldContent/ColorContent.ts +0 -49
  676. package/src/content/fields/nestable/FieldContent/DateContent.ts +0 -49
  677. package/src/content/fields/nestable/FieldContent/NumberContent.ts +0 -49
  678. package/src/content/fields/nestable/FieldContent/RangeContent.ts +0 -49
  679. package/src/content/fields/nestable/FieldContent/SelectContent.ts +0 -60
  680. package/src/content/fields/nestable/FieldContent/TextContent.ts +0 -49
  681. package/src/content/fields/nestable/FieldContent/TimestampContent.ts +0 -49
  682. package/src/content/fields/nestable/FieldContent/common.ts +0 -1
  683. package/src/content/fields/nestable/FieldContent/index.ts +0 -40
  684. package/src/content/fields/nestable/GeoPointContent.ts +0 -48
  685. package/src/content/fields/nestable/ImageContent.ts +0 -196
  686. package/src/content/fields/nestable/IntegrationFieldContent.ts +0 -51
  687. package/src/content/fields/nestable/LinkContent.ts +0 -651
  688. package/src/content/fields/nestable/NestableContent.ts +0 -241
  689. package/src/content/fields/nestable/RepeatableContent.ts +0 -224
  690. package/src/content/fields/nestable/RichTextContent/Blocks.ts +0 -238
  691. package/src/content/fields/nestable/RichTextContent/index.ts +0 -42
  692. package/src/content/fields/nestable/SeparatorContent.ts +0 -34
  693. package/src/content/fields/nestable/TableContent.ts +0 -234
  694. package/src/content/fields/nestable/index.ts +0 -12
  695. package/src/content/fields/slices/Slice/CompositeSliceContent.ts +0 -293
  696. package/src/content/fields/slices/Slice/RepeatableContent.ts +0 -29
  697. package/src/content/fields/slices/Slice/SharedSliceContent.ts +0 -305
  698. package/src/content/fields/slices/Slice/SimpleSliceContent.ts +0 -180
  699. package/src/content/fields/slices/Slice/SlicePrimaryContent.ts +0 -40
  700. package/src/content/fields/slices/Slice/index.ts +0 -52
  701. package/src/content/fields/slices/SliceItem.ts +0 -184
  702. package/src/content/fields/slices/SlicesContent.ts +0 -677
  703. package/src/content/fields/slices/index.ts +0 -3
  704. package/src/content/fields/withDefaultValues.ts +0 -119
  705. package/src/content/helpers.ts +0 -25
  706. package/src/content/index.ts +0 -4
  707. package/src/content/utils.ts +0 -145
  708. package/src/customtypes/CustomType.ts +0 -280
  709. package/src/customtypes/Section.ts +0 -98
  710. package/src/customtypes/diff/Variation.ts +0 -167
  711. package/src/customtypes/diff/Widgets.ts +0 -17
  712. package/src/customtypes/diff/index.ts +0 -4
  713. package/src/customtypes/index.ts +0 -4
  714. package/src/customtypes/widgets/Group.ts +0 -120
  715. package/src/customtypes/widgets/UID.ts +0 -27
  716. package/src/customtypes/widgets/Widget.ts +0 -83
  717. package/src/customtypes/widgets/index.ts +0 -6
  718. package/src/customtypes/widgets/nestable/BooleanField.ts +0 -29
  719. package/src/customtypes/widgets/nestable/Color.ts +0 -25
  720. package/src/customtypes/widgets/nestable/Date.ts +0 -27
  721. package/src/customtypes/widgets/nestable/Embed.ts +0 -27
  722. package/src/customtypes/widgets/nestable/GeoPoint.ts +0 -25
  723. package/src/customtypes/widgets/nestable/Image.ts +0 -39
  724. package/src/customtypes/widgets/nestable/IntegrationField.ts +0 -26
  725. package/src/customtypes/widgets/nestable/Link.ts +0 -313
  726. package/src/customtypes/widgets/nestable/NestableWidget.ts +0 -40
  727. package/src/customtypes/widgets/nestable/Number.ts +0 -30
  728. package/src/customtypes/widgets/nestable/Range.ts +0 -30
  729. package/src/customtypes/widgets/nestable/RichText.ts +0 -215
  730. package/src/customtypes/widgets/nestable/Select.ts +0 -34
  731. package/src/customtypes/widgets/nestable/Separator.ts +0 -24
  732. package/src/customtypes/widgets/nestable/Table.ts +0 -38
  733. package/src/customtypes/widgets/nestable/Text.ts +0 -27
  734. package/src/customtypes/widgets/nestable/Timestamp.ts +0 -27
  735. package/src/customtypes/widgets/nestable/index.ts +0 -17
  736. package/src/customtypes/widgets/shared/ImageConstraint.ts +0 -41
  737. package/src/customtypes/widgets/shared/index.ts +0 -1
  738. package/src/customtypes/widgets/slices/CompositeSlice.ts +0 -79
  739. package/src/customtypes/widgets/slices/LegacySlice.ts +0 -15
  740. package/src/customtypes/widgets/slices/SharedSlice.ts +0 -152
  741. package/src/customtypes/widgets/slices/SharedSliceRef.ts +0 -10
  742. package/src/customtypes/widgets/slices/Slice.ts +0 -7
  743. package/src/customtypes/widgets/slices/SlicePrimaryWidget.ts +0 -12
  744. package/src/customtypes/widgets/slices/Slices.ts +0 -184
  745. package/src/customtypes/widgets/slices/SlicesTypes.ts +0 -11
  746. package/src/customtypes/widgets/slices/index.ts +0 -8
  747. package/src/utils/Arrays.ts +0 -12
  748. package/src/utils/DocumentId.ts +0 -8
  749. package/src/utils/Fields.ts +0 -4
  750. package/src/utils/Objects.ts +0 -53
  751. package/src/utils/index.ts +0 -4
  752. package/src/validators/BasicTypes.ts +0 -55
  753. package/src/validators/DateFromString.ts +0 -19
  754. package/src/validators/DateFromStringOrNumber.ts +0 -17
  755. package/src/validators/DateFromTsMs.ts +0 -17
  756. package/src/validators/DefaultOrElse.ts +0 -24
  757. package/src/validators/IntFromNumber.ts +0 -22
  758. package/src/validators/IntFromPixels.ts +0 -32
  759. package/src/validators/NonEmptyString.ts +0 -8
  760. package/src/validators/NonEmptyStringOrNull.ts +0 -22
  761. package/src/validators/NumberOrNull.ts +0 -5
  762. package/src/validators/NumberRange.ts +0 -51
  763. package/src/validators/StringFromBoolean.ts +0 -19
  764. package/src/validators/StringFromNumber.ts +0 -19
  765. package/src/validators/StringOrNull.ts +0 -5
  766. package/src/validators/TrimmedString.ts +0 -33
  767. package/src/validators/function.ts +0 -115
  768. package/src/validators/index.ts +0 -15
  769. /package/src/{customtypes/diff/Changes.ts → model/diff/changes.ts} +0 -0
@@ -0,0 +1,180 @@
1
+ import { BooleanContentType } from "../content/boolean"
2
+ import type { DocumentContent } from "../content/document"
3
+ import { FieldContentType, SelectFieldType } from "../content/field"
4
+ import type { GroupContent, GroupItemContent } from "../content/group"
5
+ import { GroupContentType } from "../content/group"
6
+ import type { SliceContent } from "../content/slice"
7
+ import { CompositeSliceContentType, SharedSliceContentType } from "../content/slice"
8
+ import type { SlicesContent } from "../content/slices"
9
+ import { SlicesContentType } from "../content/slices"
10
+ import type { WidgetContent } from "../content/widget"
11
+ import type { StaticCustomTypeModel } from "../model/customType"
12
+ import type { GroupModel } from "../model/group"
13
+ import type { NestableModel } from "../model/nestable"
14
+ import type { StaticSliceModel } from "../model/slice"
15
+ import type { StaticWidgetModel } from "../model/widget"
16
+ import * as customTypeModel from "./customTypeModel"
17
+
18
+ export function document(content: DocumentContent, model: StaticCustomTypeModel): DocumentContent {
19
+ return record(content, customTypeModel.flatten(model))
20
+ }
21
+
22
+ export function slice(content: SliceContent, model: StaticSliceModel | undefined): SliceContent {
23
+ if (!model) {
24
+ return content
25
+ }
26
+
27
+ if (model.type === "SharedSlice") {
28
+ if (content.__TYPE__ !== SharedSliceContentType) {
29
+ return content
30
+ }
31
+
32
+ const variation = model.variations.find((variation) => variation.id === content.variation)
33
+ if (!variation) {
34
+ return content
35
+ }
36
+
37
+ return {
38
+ ...content,
39
+ primary: record(content.primary, variation?.primary),
40
+ items: items(content.items, variation?.items),
41
+ }
42
+ }
43
+
44
+ if (model.type === "Slice") {
45
+ if (content.__TYPE__ !== CompositeSliceContentType) {
46
+ return content
47
+ }
48
+
49
+ return {
50
+ ...content,
51
+ nonRepeat: record(content.nonRepeat, model["non-repeat"]),
52
+ repeat: items(content.repeat, model.repeat),
53
+ }
54
+ }
55
+
56
+ if (
57
+ content.__TYPE__ === SharedSliceContentType ||
58
+ content.__TYPE__ === CompositeSliceContentType
59
+ ) {
60
+ return content
61
+ }
62
+
63
+ return widget(content, model)
64
+ }
65
+
66
+ export function widget<TContent extends WidgetContent | undefined>(
67
+ content: TContent,
68
+ model: StaticWidgetModel | undefined,
69
+ ): TContent {
70
+ if (!model) {
71
+ return content
72
+ }
73
+
74
+ if (
75
+ (model.type === "Slices" || model.type === "Choice") &&
76
+ content?.__TYPE__ === SlicesContentType
77
+ ) {
78
+ if (!model.config?.choices) return content
79
+
80
+ const value: SlicesContent["value"] = []
81
+ for (const sliceItem of content.value) {
82
+ value.push({
83
+ ...sliceItem,
84
+ widget: slice(sliceItem.widget, model.config.choices[sliceItem.name]),
85
+ })
86
+ }
87
+
88
+ return { ...content, value }
89
+ }
90
+
91
+ if (model.type === "Group") {
92
+ if (content?.__TYPE__ !== GroupContentType) {
93
+ return <TContent>{
94
+ __TYPE__: GroupContentType,
95
+ value: items([], model.config?.fields),
96
+ }
97
+ }
98
+
99
+ return { ...content, value: items(content.value, model.config?.fields) }
100
+ }
101
+
102
+ if (model.type === "Boolean" && !content) {
103
+ if (model.config?.default_value === undefined) {
104
+ return <TContent>undefined
105
+ }
106
+
107
+ return <TContent>{
108
+ __TYPE__: BooleanContentType,
109
+ value: model.config.default_value,
110
+ }
111
+ }
112
+
113
+ if (model.type === "Select" && !content) {
114
+ if (!model.config?.default_value) {
115
+ return <TContent>undefined
116
+ }
117
+
118
+ return <TContent>{
119
+ __TYPE__: FieldContentType,
120
+ type: SelectFieldType,
121
+ value: model.config.default_value,
122
+ }
123
+ }
124
+
125
+ return content
126
+ }
127
+
128
+ export function items(
129
+ items: GroupContent["value"],
130
+ fields: Record<string, GroupModel | NestableModel> | undefined,
131
+ ): GroupContent["value"] {
132
+ if (!fields) {
133
+ return items
134
+ }
135
+
136
+ const itemsWithDefaults: GroupContent["value"] = []
137
+ for (const item of items) {
138
+ const itemValue: GroupItemContent["value"] = []
139
+
140
+ const missingFields = { ...fields }
141
+ for (const [key, value] of item.value) {
142
+ delete missingFields[key]
143
+ itemValue.push([key, widget(value, fields[key])])
144
+ }
145
+ for (const [key, field] of Object.entries(missingFields)) {
146
+ const content = widget(undefined, field)
147
+ if (content) {
148
+ itemValue.push([key, content])
149
+ }
150
+ }
151
+
152
+ itemsWithDefaults.push({ ...item, value: itemValue })
153
+ }
154
+
155
+ return itemsWithDefaults
156
+ }
157
+
158
+ function record<TContent extends WidgetContent>(
159
+ record: Record<string, TContent>,
160
+ fields: Record<string, StaticWidgetModel> | undefined,
161
+ ): Record<string, TContent> {
162
+ if (!fields) {
163
+ return record
164
+ }
165
+
166
+ const missingFields = { ...fields }
167
+ const recordWithDefaults: Record<string, TContent> = {}
168
+ for (const [key, value] of Object.entries(record)) {
169
+ delete missingFields[key]
170
+ recordWithDefaults[key] = widget(value, fields[key])
171
+ }
172
+ for (const [key, field] of Object.entries(missingFields)) {
173
+ const content = widget(undefined, field)
174
+ if (content) {
175
+ recordWithDefaults[key] = content
176
+ }
177
+ }
178
+
179
+ return recordWithDefaults
180
+ }
package/src/index.ts ADDED
@@ -0,0 +1,136 @@
1
+ // Common
2
+ export type { Asset } from "./common/asset"
3
+ export type { Embed } from "./common/embed"
4
+ export type { HexaColorCode } from "./common/hexaColorCode"
5
+ export type { NonEmptyString } from "./common/nonEmptyString"
6
+ export type { WidgetKey } from "./common/widgetKey"
7
+
8
+ // Content
9
+ export type { BooleanContent } from "./content/boolean"
10
+ export type { DocumentContent } from "./content/document"
11
+ export type { EmbedContent } from "./content/embed"
12
+ export type { EmptyContent } from "./content/empty"
13
+ export type {
14
+ ColorContent,
15
+ DateContent,
16
+ NumberContent,
17
+ RangeContent,
18
+ SelectContent,
19
+ TextContent,
20
+ TimestampContent,
21
+ FieldContent,
22
+ } from "./content/field"
23
+ export type { GeoPointContent } from "./content/geopoint"
24
+ export type { GroupContent, GroupItemContent } from "./content/group"
25
+ export type { ImageContent, ImageContentView } from "./content/image"
26
+ export type { IntegrationFieldContent } from "./content/integrationField"
27
+ export type { EmptyLinkContent, FilledLinkContent, LinkContent } from "./content/link"
28
+ export type { NestableContent } from "./content/nestable"
29
+ export type { RepeatableContent } from "./content/repeatable"
30
+ export type {
31
+ RichTextContent,
32
+ RichTextContentBlock,
33
+ RichTextContentTextBlock,
34
+ RichTextContentImageBlock,
35
+ RichTextContentEmbedBlock,
36
+ RichTextContentSpan,
37
+ RichTextNodeTypes,
38
+ } from "./content/richText"
39
+ export { RichTextNodeType } from "./content/richText"
40
+ export type { SeparatorContent } from "./content/separator"
41
+ export type {
42
+ LegacySliceContent,
43
+ CompositeSliceContent,
44
+ SharedSliceContent,
45
+ SliceContent,
46
+ } from "./content/slice"
47
+ export type {
48
+ LegacySliceItemContent,
49
+ CompositeSliceItemContent,
50
+ SharedSliceItemContent,
51
+ SliceItemContent,
52
+ SlicesContent,
53
+ } from "./content/slices"
54
+ export type { TableContent } from "./content/table"
55
+ export type { UIDContent } from "./content/uid"
56
+ export type { WidgetContent } from "./content/widget"
57
+
58
+ // Model
59
+ export type { BooleanModel } from "./model/boolean"
60
+ export type { ColorModel } from "./model/color"
61
+ export type { StaticCustomTypeModel, CustomTypeModel } from "./model/customType"
62
+ export type { DateModel } from "./model/date"
63
+ export type { EmbedModel } from "./model/embed"
64
+ export type { GeoPointModel } from "./model/geopoint"
65
+ export type { GroupModel, NestedGroupModel } from "./model/group"
66
+ export type { ImageModel } from "./model/image"
67
+ export type { IntegrationFieldModel } from "./model/integrationField"
68
+ export type { LinkModel } from "./model/link"
69
+ export type { NestableModel } from "./model/nestable"
70
+ export type { NumberModel } from "./model/number"
71
+ export type { RangeModel } from "./model/range"
72
+ export type { RichTextModel, RichTextModelNodeTypes } from "./model/richText"
73
+ export { RichTextModelNodeType } from "./model/richText"
74
+ export type { StaticSectionModel, DynamicSectionModel } from "./model/section"
75
+ export type { SelectModel } from "./model/select"
76
+ export type { SeparatorModel } from "./model/separator"
77
+ export type {
78
+ LegacySliceModel,
79
+ CompositeSliceModel,
80
+ SharedSliceModel,
81
+ SharedSliceRefModel,
82
+ SharedSliceModelVariation,
83
+ SharedSliceVariationContentModel,
84
+ StaticSliceModel,
85
+ DynamicSliceModel,
86
+ SliceContentModel,
87
+ SliceModelType,
88
+ } from "./model/slice"
89
+ export type { DynamicSlicesModel, StaticSlicesModel } from "./model/slices"
90
+ export type { TableModel } from "./model/table"
91
+ export { TableCellModelNodeTypes } from "./model/table"
92
+ export type { TextModel } from "./model/text"
93
+ export type { TimestampModel } from "./model/timestamp"
94
+ export type { UIDModel } from "./model/uid"
95
+ export type { StaticWidgetModel, DynamicWidgetModel, FieldModelType } from "./model/widget"
96
+
97
+ // Legacy
98
+ export { LegacyContentCtx, getFieldCtx, defaultCtx } from "./content/codec/legacyContentCtx"
99
+
100
+ // Helpers
101
+ export * as contentPath from "./helpers/contentPath"
102
+ export * as customTypeModel from "./helpers/customTypeModel"
103
+ export * as documentContent from "./helpers/documentContent"
104
+ export * as sliceContent from "./helpers/sliceContent"
105
+ export * as withDefaultContent from "./helpers/withDefaultContent"
106
+ export * as imageContent from "./helpers/imageContent"
107
+ export {
108
+ traverseDocumentContent,
109
+ traverseSlicesContent,
110
+ traverseSharedSliceContent,
111
+ traverseCompositeSliceContent,
112
+ traverseLegacySliceContent,
113
+ traverseGroupContent,
114
+ traverseGroupItemsContent,
115
+ traverseRepeatableContent,
116
+ traverseTableContent,
117
+ } from "./helpers/traverseContent"
118
+ export type {
119
+ TraverseSliceContentFunction,
120
+ TraverseWidgetContentFunction,
121
+ } from "./helpers/traverseContent"
122
+ export {
123
+ traverseDocumentContentWithModel,
124
+ traverseSlicesContentWithModel,
125
+ traverseSharedSliceContentWithModel,
126
+ traverseCompositeSliceContentWithModel,
127
+ traverseLegacySliceContentWithModel,
128
+ traverseGroupContentWithModel,
129
+ traverseGroupItemsContentWithModel,
130
+ traverseRepeatableContentWithModel,
131
+ traverseTableContentWithModel,
132
+ } from "./helpers/traverseContentWithModel"
133
+ export type {
134
+ TraverseSliceContentWithModelFunction,
135
+ TraverseWidgetContentWithModelFunction,
136
+ } from "./helpers/traverseContentWithModel"
package/src/io-ts.ts ADDED
@@ -0,0 +1,363 @@
1
+ import * as t from "io-ts"
2
+ import type { ZodMiniType } from "zod/mini"
3
+
4
+ // Common
5
+ import { AssetSchema as rawAssetSchema } from "./common/asset"
6
+ import { EmbedSchema as rawEmbedSchema } from "./common/embed"
7
+ import { HexaColorCodeSchema as rawHexaColorCodeSchema } from "./common/hexaColorCode"
8
+ import { NonEmptyStringSchema as rawNonEmptyStringSchema } from "./common/nonEmptyString"
9
+ import { WidgetKeySchema as rawWidgetKeySchema } from "./common/widgetKey"
10
+ // Content
11
+ import { BooleanContentSchema as rawBooleanContentSchema } from "./content/boolean"
12
+ import { BooleanLegacyCodec } from "./content/codec/boolean"
13
+ import { DocumentLegacyCodec } from "./content/codec/document"
14
+ import { EmbedLegacyCodec } from "./content/codec/embed"
15
+ import { EmptyLegacyCodec } from "./content/codec/empty"
16
+ import {
17
+ ColorLegacyCodec,
18
+ DateLegacyCodec,
19
+ NumberLegacyCodec,
20
+ RangeLegacyCodec,
21
+ SelectLegacyCodec,
22
+ TextLegacyCodec,
23
+ TimestampLegacyCodec,
24
+ } from "./content/codec/field"
25
+ import { GeoPointLegacyCodec } from "./content/codec/geopoint"
26
+ import { GroupItemLegacyCodec, GroupLegacyCodec } from "./content/codec/group"
27
+ import { ImageLegacyCodec } from "./content/codec/image"
28
+ import { IntegrationFieldLegacyCodec } from "./content/codec/integrationField"
29
+ import type { LegacyCodec } from "./content/codec/legacyContentCtx"
30
+ import { LinkLegacyCodec } from "./content/codec/link"
31
+ import { NestableLegacyCodec } from "./content/codec/nestable"
32
+ import { RepeatableLegacyCodec } from "./content/codec/repeatable"
33
+ import { RichTextLegacyCodec } from "./content/codec/richText"
34
+ import { SeparatorLegacyCodec } from "./content/codec/separator"
35
+ import {
36
+ CompositeSliceLegacyCodec,
37
+ SharedSliceLegacyCodec,
38
+ LegacySliceLegacyCodec,
39
+ SliceLegacyCodec,
40
+ } from "./content/codec/slice"
41
+ import { SliceItemLegacyCodec, SlicesLegacyCodec } from "./content/codec/slices"
42
+ import { TableLegacyCodec } from "./content/codec/table"
43
+ import { UIDLegacyCodec } from "./content/codec/uid"
44
+ import { WidgetLegacyCodec } from "./content/codec/widget"
45
+ import { DocumentContentSchema as rawDocumentContentSchema } from "./content/document"
46
+ import { EmbedContentSchema as rawEmbedContentSchema } from "./content/embed"
47
+ import { EmptyContentSchema as rawEmptyContentSchema } from "./content/empty"
48
+ import {
49
+ ColorContentSchema as rawColorContentSchema,
50
+ DateContentSchema as rawDateContentSchema,
51
+ NumberContentSchema as rawNumberContentSchema,
52
+ RangeContentSchema as rawRangeContentSchema,
53
+ SelectContentSchema as rawSelectContentSchema,
54
+ TextContentSchema as rawTextContentSchema,
55
+ TimestampContentSchema as rawTimestampContentSchema,
56
+ FieldContentSchema as rawFieldContentSchema,
57
+ } from "./content/field"
58
+ import { GeoPointContentSchema as rawGeoPointContentSchema } from "./content/geopoint"
59
+ import {
60
+ GroupContentSchema as rawGroupContentSchema,
61
+ GroupItemContentSchema as rawGroupItemContentSchema,
62
+ } from "./content/group"
63
+ import {
64
+ ImageContentSchema as rawImageContentSchema,
65
+ ImageContentViewSchema as rawImageContentViewSchema,
66
+ } from "./content/image"
67
+ import { IntegrationFieldContentSchema as rawIntegrationFieldContentSchema } from "./content/integrationField"
68
+ import {
69
+ EmptyLinkContentSchema as rawEmptyLinkContentSchema,
70
+ FilledLinkContentSchema as rawFilledLinkContentSchema,
71
+ LinkContentSchema as rawLinkContentSchema,
72
+ } from "./content/link"
73
+ import { NestableContentSchema as rawNestableContentSchema } from "./content/nestable"
74
+ import { RepeatableContentSchema as rawRepeatableContentSchema } from "./content/repeatable"
75
+ import {
76
+ RichTextContentSchema as rawRichTextContentSchema,
77
+ RichTextContentBlockSchema as rawRichTextContentBlockSchema,
78
+ RichTextContentSpanSchema as rawRichTextContentSpanSchema,
79
+ } from "./content/richText"
80
+ import { SeparatorContentSchema as rawSeparatorContentSchema } from "./content/separator"
81
+ import {
82
+ LegacySliceContentSchema as rawLegacySliceContentSchema,
83
+ CompositeSliceContentSchema as rawCompositeSliceContentSchema,
84
+ SharedSliceContentSchema as rawSharedSliceContentSchema,
85
+ SliceContentSchema as rawSliceContentSchema,
86
+ } from "./content/slice"
87
+ import {
88
+ LegacySliceItemContentSchema as rawLegacySliceItemContentSchema,
89
+ CompositeSliceItemContentSchema as rawCompositeSliceItemContentSchema,
90
+ SharedSliceItemContentSchema as rawSharedSliceItemContentSchema,
91
+ SliceItemContentSchema as rawSliceItemContentSchema,
92
+ SlicesContentSchema as rawSlicesContentSchema,
93
+ } from "./content/slices"
94
+ import { TableContentSchema as rawTableContentSchema } from "./content/table"
95
+ import { UIDContentSchema as rawUIDContentSchema } from "./content/uid"
96
+ import { WidgetContentSchema as rawWidgetContentSchema } from "./content/widget"
97
+ // Model
98
+ import { BooleanModelSchema as rawBooleanModelSchema } from "./model/boolean"
99
+ import { ColorModelSchema as rawColorModelSchema } from "./model/color"
100
+ import {
101
+ StaticCustomTypeModelSchema as rawStaticCustomTypeModelSchema,
102
+ CustomTypeModelSchema as rawCustomTypeModelSchema,
103
+ } from "./model/customType"
104
+ import { DateModelSchema as rawDateModelSchema } from "./model/date"
105
+ import { EmbedModelSchema as rawEmbedModelSchema } from "./model/embed"
106
+ import { GeoPointModelSchema as rawGeoPointModelSchema } from "./model/geopoint"
107
+ import {
108
+ GroupModelSchema as rawGroupModelSchema,
109
+ NestedGroupModelSchema as rawNestedGroupModelSchema,
110
+ } from "./model/group"
111
+ import { ImageModelSchema as rawImageModelSchema } from "./model/image"
112
+ import { IntegrationFieldModelSchema as rawIntegrationFieldModelSchema } from "./model/integrationField"
113
+ import { LinkModelSchema as rawLinkModelSchema } from "./model/link"
114
+ import { NestableModelSchema as rawNestableModelSchema } from "./model/nestable"
115
+ import { NumberModelSchema as rawNumberModelSchema } from "./model/number"
116
+ import { RangeModelSchema as rawRangeModelSchema } from "./model/range"
117
+ import { RichTextModelSchema as rawRichTextModelSchema } from "./model/richText"
118
+ import {
119
+ StaticSectionModelSchema as rawStaticSectionModelSchema,
120
+ DynamicSectionModelSchema as rawDynamicSectionModelSchema,
121
+ } from "./model/section"
122
+ import { SelectModelSchema as rawSelectModelSchema } from "./model/select"
123
+ import { SeparatorModelSchema as rawSeparatorModelSchema } from "./model/separator"
124
+ import {
125
+ LegacySliceModelSchema as rawLegacySliceModelSchema,
126
+ CompositeSliceModelSchema as rawCompositeSliceModelSchema,
127
+ SharedSliceModelSchema as rawSharedSliceModelSchema,
128
+ SharedSliceModelVariationSchema as rawSharedSliceModelVariationSchema,
129
+ SharedSliceRefModelSchema as rawSharedSliceRefModelSchema,
130
+ StaticSliceModelSchema as rawStaticSliceModelSchema,
131
+ DynamicSliceModelSchema as rawDynamicSliceModelSchema,
132
+ SliceContentModelSchema as rawSliceContentModelSchema,
133
+ } from "./model/slice"
134
+ import {
135
+ DynamicSlicesModelSchema as rawDynamicSlicesModelSchema,
136
+ StaticSlicesModelSchema as rawStaticSlicesModelSchema,
137
+ } from "./model/slices"
138
+ import { TableModelSchema as rawTableModelSchema } from "./model/table"
139
+ import { TextModelSchema as rawTextModelSchema } from "./model/text"
140
+ import { TimestampModelSchema as rawTimestampModelSchema } from "./model/timestamp"
141
+ import { UIDModelSchema as rawUIDModelSchema } from "./model/uid"
142
+ import {
143
+ StaticWidgetModelSchema as rawStaticWidgetModelSchema,
144
+ DynamicWidgetModelSchema as rawDynamicWidgetModelSchema,
145
+ } from "./model/widget"
146
+
147
+ // Common
148
+ export const AssetSchema = toIOTS(rawAssetSchema)
149
+ export const EmbedSchema = toIOTS(rawEmbedSchema)
150
+ export const HexaColorCodeSchema = toIOTS(rawHexaColorCodeSchema)
151
+ export const NonEmptyStringSchema = toIOTS(rawNonEmptyStringSchema)
152
+ export const WidgetKeySchema = toIOTS(rawWidgetKeySchema)
153
+
154
+ // Content
155
+ export const BooleanContentSchema = toIOTS(rawBooleanContentSchema)
156
+ export const ColorContentSchema = toIOTS(rawColorContentSchema)
157
+ export const DateContentSchema = toIOTS(rawDateContentSchema)
158
+ export const EmptyContentSchema = toIOTS(rawEmptyContentSchema)
159
+ export const GeoPointContentSchema = toIOTS(rawGeoPointContentSchema)
160
+ export const FilledLinkContentSchema = toIOTS(rawFilledLinkContentSchema)
161
+ export const EmptyLinkContentSchema = toIOTS(rawEmptyLinkContentSchema)
162
+ export const LinkContentSchema = toIOTS(rawLinkContentSchema)
163
+ export const NumberContentSchema = toIOTS(rawNumberContentSchema)
164
+ export const RangeContentSchema = toIOTS(rawRangeContentSchema)
165
+ export const SelectContentSchema = toIOTS(rawSelectContentSchema)
166
+ export const SeparatorContentSchema = toIOTS(rawSeparatorContentSchema)
167
+ export const SharedSliceContentSchema = toIOTS(rawSharedSliceContentSchema)
168
+ export const TextContentSchema = toIOTS(rawTextContentSchema)
169
+ export const TimestampContentSchema = toIOTS(rawTimestampContentSchema)
170
+ export const FieldContentSchema = toIOTS(rawFieldContentSchema)
171
+ export const UIDContentSchema = toIOTS(rawUIDContentSchema)
172
+ export const IntegrationFieldContentSchema = toIOTS(rawIntegrationFieldContentSchema)
173
+ export const EmbedContentSchema = toIOTS(rawEmbedContentSchema)
174
+ export const ImageContentViewSchema = toIOTS(rawImageContentViewSchema)
175
+ export const ImageContentSchema = toIOTS(rawImageContentSchema)
176
+ export const RichTextContentSchema = toIOTS(rawRichTextContentSchema)
177
+ export const RichTextContentBlockSchema = toIOTS(rawRichTextContentBlockSchema)
178
+ export const RichTextContentSpanSchema = toIOTS(rawRichTextContentSpanSchema)
179
+ export const TableContentSchema = toIOTS(rawTableContentSchema)
180
+ export const RepeatableContentSchema = toIOTS(rawRepeatableContentSchema)
181
+ export const NestableContentSchema = toIOTS(rawNestableContentSchema)
182
+ export const GroupContentSchema = toIOTS(rawGroupContentSchema)
183
+ export const GroupItemContentSchema = toIOTS(rawGroupItemContentSchema)
184
+ export const CompositeSliceContentSchema = toIOTS(rawCompositeSliceContentSchema)
185
+ export const LegacySliceContentSchema = toIOTS(rawLegacySliceContentSchema)
186
+ export const SliceContentSchema = toIOTS(rawSliceContentSchema)
187
+ export const LegacySliceItemContentSchema = toIOTS(rawLegacySliceItemContentSchema)
188
+ export const CompositeSliceItemContentSchema = toIOTS(rawCompositeSliceItemContentSchema)
189
+ export const SharedSliceItemContentSchema = toIOTS(rawSharedSliceItemContentSchema)
190
+ export const SliceItemContentSchema = toIOTS(rawSliceItemContentSchema)
191
+ export const SlicesContentSchema = toIOTS(rawSlicesContentSchema)
192
+ export const WidgetContentSchema = toIOTS(rawWidgetContentSchema)
193
+ export const DocumentContentSchema = toIOTS(rawDocumentContentSchema)
194
+
195
+ // Content legacy
196
+ export const BooleanLegacy = toIOTSCodec(BooleanLegacyCodec)
197
+ export const EmptyLegacy = toIOTSCodec(EmptyLegacyCodec)
198
+ export const TextLegacy = toIOTSCodec(TextLegacyCodec)
199
+ export const ColorLegacy = toIOTSCodec(ColorLegacyCodec)
200
+ export const DateLegacy = toIOTSCodec(DateLegacyCodec)
201
+ export const TimestampLegacy = toIOTSCodec(TimestampLegacyCodec)
202
+ export const NumberLegacy = toIOTSCodec(NumberLegacyCodec)
203
+ export const RangeLegacy = toIOTSCodec(RangeLegacyCodec)
204
+ export const SelectLegacy = toIOTSCodec(SelectLegacyCodec)
205
+ export const GeoPointLegacy = toIOTSCodec(GeoPointLegacyCodec)
206
+ export const EmbedLegacy = toIOTSCodec(EmbedLegacyCodec)
207
+ export const ImageLegacy = toIOTSCodec(ImageLegacyCodec)
208
+ export const LinkLegacy = toIOTSCodec(LinkLegacyCodec)
209
+ export const RepeatableLegacy = toIOTSCodec(RepeatableLegacyCodec)
210
+ export const RichTextLegacy = toIOTSCodec(RichTextLegacyCodec)
211
+ export const SeparatorLegacy = toIOTSCodec(SeparatorLegacyCodec)
212
+ export const IntegrationFieldLegacy = toIOTSCodec(IntegrationFieldLegacyCodec)
213
+ export const TableLegacy = toIOTSCodec(TableLegacyCodec)
214
+ export const NestableLegacy = toIOTSCodec(NestableLegacyCodec)
215
+ export const UIDLegacy = toIOTSCodec(UIDLegacyCodec)
216
+ export const GroupItemLegacy = toIOTSCodec(GroupItemLegacyCodec)
217
+ export const GroupLegacy = toIOTSCodec(GroupLegacyCodec)
218
+ export const LegacySliceLegacy = toIOTSCodec(LegacySliceLegacyCodec)
219
+ export const CompositeSliceLegacy = toIOTSCodec(CompositeSliceLegacyCodec)
220
+ export const SharedSliceLegacy = toIOTSCodec(SharedSliceLegacyCodec)
221
+ export const SliceLegacy = toIOTSCodec(SliceLegacyCodec)
222
+ export const SliceItemLegacy = toIOTSCodec(SliceItemLegacyCodec)
223
+ export const SlicesLegacy = toIOTSCodec(SlicesLegacyCodec)
224
+ export const WidgetLegacy = toIOTSCodec(WidgetLegacyCodec)
225
+ export const DocumentLegacy = toIOTSCodec(DocumentLegacyCodec)
226
+
227
+ // Model
228
+ export const BooleanModelSchema = toIOTS(rawBooleanModelSchema)
229
+ export const ColorModelSchema = toIOTS(rawColorModelSchema)
230
+ export const DateModelSchema = toIOTS(rawDateModelSchema)
231
+ export const EmbedModelSchema = toIOTS(rawEmbedModelSchema)
232
+ export const GeoPointModelSchema = toIOTS(rawGeoPointModelSchema)
233
+ export const ImageModelSchema = toIOTS(rawImageModelSchema)
234
+ export const IntegrationFieldModelSchema = toIOTS(rawIntegrationFieldModelSchema)
235
+ export const LinkModelSchema = toIOTS(rawLinkModelSchema)
236
+ export const NestableModelSchema = toIOTS(rawNestableModelSchema)
237
+ export const NumberModelSchema = toIOTS(rawNumberModelSchema)
238
+ export const RangeModelSchema = toIOTS(rawRangeModelSchema)
239
+ export const RichTextModelSchema = toIOTS(rawRichTextModelSchema)
240
+ export const SelectModelSchema = toIOTS(rawSelectModelSchema)
241
+ export const SeparatorModelSchema = toIOTS(rawSeparatorModelSchema)
242
+ export const SharedSliceModelSchema = toIOTS(rawSharedSliceModelSchema)
243
+ export const TableModelSchema = toIOTS(rawTableModelSchema)
244
+ export const TextModelSchema = toIOTS(rawTextModelSchema)
245
+ export const TimestampModelSchema = toIOTS(rawTimestampModelSchema)
246
+ export const UIDModelSchema = toIOTS(rawUIDModelSchema)
247
+ export const GroupModelSchema = toIOTS(rawGroupModelSchema)
248
+ export const NestedGroupModelSchema = toIOTS(rawNestedGroupModelSchema)
249
+ export const SharedSliceModelVariationSchema = toIOTS(rawSharedSliceModelVariationSchema)
250
+ export const SharedSliceRefModelSchema = toIOTS(rawSharedSliceRefModelSchema)
251
+ export const CompositeSliceModelSchema = toIOTS(rawCompositeSliceModelSchema)
252
+ export const LegacySliceModelSchema = toIOTS(rawLegacySliceModelSchema)
253
+ export const DynamicSliceModelSchema = toIOTS(rawDynamicSliceModelSchema)
254
+ export const StaticSliceModelSchema = toIOTS(rawStaticSliceModelSchema)
255
+ export const SliceContentModelSchema = toIOTS(rawSliceContentModelSchema)
256
+ export const DynamicSlicesModelSchema = toIOTS(rawDynamicSlicesModelSchema)
257
+ export const StaticSlicesModelSchema = toIOTS(rawStaticSlicesModelSchema)
258
+ export const StaticWidgetModelSchema = toIOTS(rawStaticWidgetModelSchema)
259
+ export const DynamicWidgetModelSchema = toIOTS(rawDynamicWidgetModelSchema)
260
+ export const StaticSectionModelSchema = toIOTS(rawStaticSectionModelSchema)
261
+ export const DynamicSectionModelSchema = toIOTS(rawDynamicSectionModelSchema)
262
+ export const StaticCustomTypeModelSchema = toIOTS(rawStaticCustomTypeModelSchema)
263
+ export const CustomTypeModelSchema = toIOTS(rawCustomTypeModelSchema)
264
+
265
+ function toIOTS<T>(type: ZodMiniType<T>): t.Type<T> {
266
+ return new t.Type<T>(
267
+ "Type",
268
+ (input): input is T => type.safeParse(input).success,
269
+ (input, context) => {
270
+ const result = type.safeParse(input)
271
+ return result.success
272
+ ? t.success(result.data)
273
+ : t.failure(
274
+ input,
275
+ context,
276
+ result.error.issues.map((issue) => formatIssue(issue, input)).join("\n"),
277
+ )
278
+ },
279
+ t.identity,
280
+ )
281
+ }
282
+
283
+ function toIOTSCodec<TArgs extends unknown[], A, LegacyRaw, AllowUndefined extends boolean>(
284
+ codecFactory: (...args: TArgs) => LegacyCodec<A, LegacyRaw, AllowUndefined>,
285
+ ): (
286
+ ...args: TArgs
287
+ ) => t.Type<A, ReturnType<LegacyCodec<A, LegacyRaw, AllowUndefined>["fromContent"]>, unknown> {
288
+ return (...args: TArgs) => {
289
+ const codec = codecFactory(...args)
290
+ return new t.Type<
291
+ A,
292
+ ReturnType<LegacyCodec<A, LegacyRaw, AllowUndefined>["fromContent"]>,
293
+ unknown
294
+ >(
295
+ codec.name,
296
+ codec.is,
297
+ (input, context) => {
298
+ const result = codec.toContent(input)
299
+ return result.success
300
+ ? t.success(result.data)
301
+ : t.failure(
302
+ input,
303
+ context,
304
+ result.error.issues.map((issue) => formatIssue(issue, input)).join("\n"),
305
+ )
306
+ },
307
+ codec.fromContent,
308
+ )
309
+ }
310
+ }
311
+
312
+ interface ZodIssue {
313
+ code: string
314
+ message: string
315
+ path?: PropertyKey[]
316
+ expected?: string
317
+ values?: unknown[]
318
+ keys?: string[]
319
+ }
320
+
321
+ function resolveValue(input: unknown, path: PropertyKey[]): unknown {
322
+ let current = input
323
+ for (const key of path) {
324
+ if (current == null || typeof current !== "object") return undefined
325
+ current = (current as Record<PropertyKey, unknown>)[key]
326
+ }
327
+ return current
328
+ }
329
+
330
+ function formatValue(value: unknown): string {
331
+ if (value === null) return "null"
332
+ if (value === undefined) return "undefined"
333
+ if (typeof value === "string") return JSON.stringify(value)
334
+ return String(value)
335
+ }
336
+
337
+ function formatIssue(issue: ZodIssue, input: unknown): string {
338
+ if (issue.code === "custom" && issue.message !== "Invalid input") {
339
+ return issue.message
340
+ }
341
+
342
+ const value = resolveValue(input, issue.path ?? [])
343
+ const pathStr = issue.path?.length ? issue.path.join(".") : undefined
344
+
345
+ if (issue.code === "invalid_value" && issue.values) {
346
+ const expected = issue.values.map(formatValue).join(", ")
347
+ return pathStr
348
+ ? `Invalid value ${formatValue(value)} at .${pathStr}: expected ${expected}`
349
+ : `Invalid value ${formatValue(value)}: expected ${expected}`
350
+ }
351
+
352
+ if (issue.code === "invalid_type" && issue.expected) {
353
+ return pathStr
354
+ ? `Invalid value ${formatValue(value)} at .${pathStr}: expected ${issue.expected}`
355
+ : `Invalid value ${formatValue(value)}: expected ${issue.expected}`
356
+ }
357
+
358
+ if (issue.code === "unrecognized_keys" && issue.keys) {
359
+ return `Unrecognized key(s): ${issue.keys.join(", ")}`
360
+ }
361
+
362
+ return issue.message
363
+ }