@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,55 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import type { BooleanLegacy } from "./boolean"
4
+ import { BooleanLegacySchema } from "./boolean"
5
+ import type { EmbedLegacy } from "./embed"
6
+ import { EmbedLegacyLooseSchema } from "./embed"
7
+ import type { EmptyLegacy } from "./empty"
8
+ import { EmptyLegacySchema } from "./empty"
9
+ import type { StringLegacy } from "./field"
10
+ import { StringLegacySchema } from "./field"
11
+ import type { GeoPointLegacy } from "./geopoint"
12
+ import { GeoPointLegacySchema } from "./geopoint"
13
+ import type { ImageLegacy } from "./image"
14
+ import { ImageLegacySchema } from "./image"
15
+ import type { IntegrationFieldLegacy } from "./integrationField"
16
+ import { IntegrationFieldLegacySchema } from "./integrationField"
17
+ import type { LinkLegacy } from "./link"
18
+ import { LinkLegacySchema } from "./link"
19
+ import type { RepeatableLegacy } from "./repeatable"
20
+ import { RepeatableLegacySchema } from "./repeatable"
21
+ import type { RichTextLegacy } from "./richText"
22
+ import { RichTextLegacySchema } from "./richText"
23
+ import type { SeparatorLegacy } from "./separator"
24
+ import { SeparatorLegacySchema } from "./separator"
25
+ import type { TableLegacy } from "./table"
26
+ import { TableLegacySchema } from "./table"
27
+
28
+ export const NestableLegacySchema: z.ZodMiniType<NestableLegacy> = z.union([
29
+ EmptyLegacySchema,
30
+ BooleanLegacySchema,
31
+ EmbedLegacyLooseSchema,
32
+ StringLegacySchema,
33
+ GeoPointLegacySchema,
34
+ ImageLegacySchema,
35
+ IntegrationFieldLegacySchema,
36
+ LinkLegacySchema,
37
+ RepeatableLegacySchema,
38
+ RichTextLegacySchema,
39
+ SeparatorLegacySchema,
40
+ TableLegacySchema,
41
+ ])
42
+
43
+ export type NestableLegacy =
44
+ | EmptyLegacy
45
+ | BooleanLegacy
46
+ | EmbedLegacy
47
+ | StringLegacy
48
+ | GeoPointLegacy
49
+ | ImageLegacy
50
+ | IntegrationFieldLegacy
51
+ | LinkLegacy
52
+ | RepeatableLegacy
53
+ | RichTextLegacy
54
+ | SeparatorLegacy
55
+ | TableLegacy
@@ -0,0 +1,7 @@
1
+ import { z } from "zod/mini"
2
+
3
+ // Keep the legacy schema non-lossy; item-level link decoding lives in
4
+ // `codec/repeatable.ts`, where the field model is available.
5
+ export const RepeatableLegacySchema = z.array(z.unknown())
6
+
7
+ export type RepeatableLegacy = z.infer<typeof RepeatableLegacySchema>
@@ -0,0 +1,200 @@
1
+ import { z } from "zod/mini"
2
+
3
+ // It's important to only import the types here to
4
+ // avoid runtime circular dependencies!
5
+ import type { EmbedContentSchema } from "../embed"
6
+ import type { ImageContentViewSchema } from "../image"
7
+ import type { FilledLinkContentValue, FilledLinkContentValueSchema } from "../link"
8
+ import { EmbedLegacyLooseSchema } from "./embed"
9
+ import { ImageLegacyViewSchema } from "./image"
10
+ import { FilledLinkLegacyValueSchema } from "./link"
11
+ import type { FilledLinkLegacyValue } from "./link"
12
+
13
+ export const RichTextNodeType = {
14
+ heading1: "heading1",
15
+ heading2: "heading2",
16
+ heading3: "heading3",
17
+ heading4: "heading4",
18
+ heading5: "heading5",
19
+ heading6: "heading6",
20
+ paragraph: "paragraph",
21
+ preformatted: "preformatted",
22
+ oListItem: "o-list-item",
23
+ listItem: "list-item",
24
+ image: "image",
25
+ embed: "embed",
26
+ hyperlink: "hyperlink",
27
+ strong: "strong",
28
+ em: "em",
29
+ } as const
30
+
31
+ export type RichTextNodeTypes = (typeof RichTextNodeType)[keyof typeof RichTextNodeType]
32
+
33
+ // Spans
34
+ type HyperlinkSpan<TData extends FilledLinkLegacyValue | FilledLinkContentValue> = {
35
+ type: typeof RichTextNodeType.hyperlink
36
+ start: number
37
+ end: number
38
+ data: TData
39
+ }
40
+
41
+ const getHyperlinkSpanSchema = <
42
+ TData extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,
43
+ >(
44
+ data: TData,
45
+ ) =>
46
+ z.object({
47
+ type: z.literal(RichTextNodeType.hyperlink),
48
+ start: z.number(),
49
+ end: z.number(),
50
+ data,
51
+ })
52
+
53
+ type LabelSpan = {
54
+ type: "label"
55
+ start: number
56
+ end: number
57
+ data: string
58
+ }
59
+
60
+ const LabelSpanSchema: z.ZodMiniType<LabelSpan> = z.object({
61
+ type: z.literal("label"),
62
+ start: z.number(),
63
+ end: z.number(),
64
+ data: z.pipe(
65
+ z.unknown(),
66
+ z.transform((value) => (typeof value === "string" && value.length > 0 ? value : "")),
67
+ ),
68
+ })
69
+
70
+ type BasicSpan = {
71
+ type: typeof RichTextNodeType.strong | typeof RichTextNodeType.em | "list-item"
72
+ start: number
73
+ end: number
74
+ }
75
+
76
+ const BasicSpanSchema: z.ZodMiniType<BasicSpan> = z.object({
77
+ type: z.union([
78
+ z.literal(RichTextNodeType.strong),
79
+ z.literal(RichTextNodeType.em),
80
+ z.literal("list-item"), // legacy case
81
+ ]),
82
+ start: z.number(),
83
+ end: z.number(),
84
+ })
85
+
86
+ export type Span<TLink extends FilledLinkLegacyValue | FilledLinkContentValue> =
87
+ | HyperlinkSpan<TLink>
88
+ | LabelSpan
89
+ | BasicSpan
90
+
91
+ // oxlint-disable-next-line explicit-module-boundary-types
92
+ export const getSpanSchema = <
93
+ TLinkSchema extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,
94
+ >(
95
+ linkSchema: TLinkSchema,
96
+ ) => z.union([getHyperlinkSpanSchema(linkSchema), LabelSpanSchema, BasicSpanSchema])
97
+
98
+ // Text blocks
99
+ const TextBlockTypeSchema = z.union([
100
+ z.literal(RichTextNodeType.paragraph),
101
+ z.literal(RichTextNodeType.heading1),
102
+ z.literal(RichTextNodeType.heading2),
103
+ z.literal(RichTextNodeType.heading3),
104
+ z.literal(RichTextNodeType.heading4),
105
+ z.literal(RichTextNodeType.heading5),
106
+ z.literal(RichTextNodeType.heading6),
107
+ z.literal(RichTextNodeType.preformatted),
108
+ z.literal(RichTextNodeType.oListItem),
109
+ z.literal(RichTextNodeType.listItem),
110
+ ])
111
+
112
+ // oxlint-disable-next-line explicit-module-boundary-types
113
+ export const getTextBlockSchema = <
114
+ TLinkSchema extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,
115
+ >(
116
+ linkSchema: TLinkSchema,
117
+ ) =>
118
+ z.object({
119
+ type: TextBlockTypeSchema,
120
+ content: z.object({
121
+ text: z.string(),
122
+ spans: z.optional(
123
+ z.pipe(
124
+ z.array(z.unknown()),
125
+ z.transform((spans) => {
126
+ const spanSchema = getSpanSchema(linkSchema)
127
+
128
+ // Filter out invalid spans and order them by start position
129
+ return spans
130
+ .flatMap((maybeSpan) => {
131
+ const parsed = spanSchema.safeParse(maybeSpan)
132
+ return parsed.success ? [parsed.data] : []
133
+ })
134
+ .sort((a, b) => a.start - b.start)
135
+ }),
136
+ ),
137
+ ),
138
+ }),
139
+ label: z.optional(z.string()),
140
+ direction: z.optional(z.string()),
141
+ })
142
+
143
+ const TextBlockLegacySchema = getTextBlockSchema(FilledLinkLegacyValueSchema)
144
+
145
+ type TextBlockLegacy = z.infer<typeof TextBlockLegacySchema>
146
+
147
+ // Image block
148
+
149
+ // oxlint-disable-next-line explicit-module-boundary-types
150
+ export const getImageBlockSchema = <
151
+ TData extends typeof ImageLegacyViewSchema | typeof ImageContentViewSchema,
152
+ TLinkTo extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,
153
+ >(
154
+ data: TData,
155
+ linkTo: TLinkTo,
156
+ ) =>
157
+ z.object({
158
+ type: z.literal(RichTextNodeType.image),
159
+ data: z.extend(data, { linkTo: z.nullish(linkTo) }),
160
+ label: z.nullish(z.string()),
161
+ direction: z.nullish(z.string()),
162
+ })
163
+
164
+ const ImageBlockLegacySchema = getImageBlockSchema(
165
+ ImageLegacyViewSchema,
166
+ FilledLinkLegacyValueSchema,
167
+ )
168
+
169
+ type ImageBlockLegacy = z.infer<typeof ImageBlockLegacySchema>
170
+
171
+ // Embed block
172
+ // oxlint-disable-next-line explicit-module-boundary-types
173
+ export const getEmbedBlockSchema = <
174
+ TData extends typeof EmbedLegacyLooseSchema | typeof EmbedContentSchema,
175
+ >(
176
+ data: TData,
177
+ ) =>
178
+ z.object({
179
+ type: z.literal(RichTextNodeType.embed),
180
+ data,
181
+ label: z.nullish(z.string()),
182
+ direction: z.nullish(z.string()),
183
+ })
184
+
185
+ const EmbedBlockLegacySchema = getEmbedBlockSchema(EmbedLegacyLooseSchema)
186
+
187
+ type EmbedBlockLegacy = z.infer<typeof EmbedBlockLegacySchema>
188
+
189
+ // Blocks
190
+ export const RichTextLegacyBlockSchema: z.ZodMiniType<RichTextLegacyBlock> = z.union([
191
+ TextBlockLegacySchema,
192
+ ImageBlockLegacySchema,
193
+ EmbedBlockLegacySchema,
194
+ ])
195
+
196
+ export type RichTextLegacyBlock = TextBlockLegacy | ImageBlockLegacy | EmbedBlockLegacy
197
+
198
+ export const RichTextLegacySchema = z.array(RichTextLegacyBlockSchema)
199
+
200
+ export type RichTextLegacy = z.infer<typeof RichTextLegacySchema>
@@ -0,0 +1,6 @@
1
+ import { z } from "zod/mini"
2
+
3
+ // v3 SeparatorLegacy decode accepts any input and normalizes to SeparatorContent.
4
+ export const SeparatorLegacySchema = z.unknown()
5
+
6
+ export type SeparatorLegacy = z.infer<typeof SeparatorLegacySchema>
@@ -0,0 +1,38 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { GroupItemLegacySchema, NestableAndGroupLegacySchema } from "./group"
4
+
5
+ // Legacy (before 2020)
6
+ export const LegacySliceLegacySchema = NestableAndGroupLegacySchema
7
+
8
+ export type LegacySliceLegacy = z.infer<typeof LegacySliceLegacySchema>
9
+
10
+ // Composite (2020 to 2021)
11
+ // Keep non-repeat values raw here: array-shaped legacy payloads are ambiguous until
12
+ // `codec/slice.ts` resolves the field model and picks the right decoder.
13
+ export const CompositeSliceLegacySchema = z.object({
14
+ "non-repeat": z.optional(z.record(z.string(), z.unknown())),
15
+ repeat: z.optional(z.array(GroupItemLegacySchema)),
16
+ })
17
+
18
+ export type CompositeSliceLegacy = z.infer<typeof CompositeSliceLegacySchema>
19
+
20
+ // Shared (2021 to present)
21
+ // Keep primary values raw here: array-shaped legacy payloads are ambiguous until
22
+ // `codec/slice.ts` resolves the field model and picks the right decoder.
23
+ export const SharedSliceLegacySchema = z.object({
24
+ variation: z.string(),
25
+ primary: z.transform((value) => z.record(z.string(), z.unknown()).safeParse(value).data || {}),
26
+ items: z.transform((value) => z.array(GroupItemLegacySchema).safeParse(value).data || []),
27
+ })
28
+
29
+ export type SharedSliceLegacy = z.infer<typeof SharedSliceLegacySchema>
30
+
31
+ // All
32
+ export const SliceLegacySchema: z.ZodMiniType<SliceLegacy> = z.union([
33
+ LegacySliceLegacySchema,
34
+ CompositeSliceLegacySchema,
35
+ SharedSliceLegacySchema,
36
+ ])
37
+
38
+ export type SliceLegacy = LegacySliceLegacy | CompositeSliceLegacy | SharedSliceLegacy
@@ -0,0 +1,17 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { SliceLegacySchema } from "./slice"
4
+
5
+ // Item
6
+ export const SliceItemLegacySchema = z.object({
7
+ key: z.string(),
8
+ label: z.nullish(z.string()),
9
+ value: SliceLegacySchema,
10
+ })
11
+
12
+ export type SliceItemLegacy = z.infer<typeof SliceItemLegacySchema>
13
+
14
+ // Slices
15
+ export const SlicesLegacySchema = z.array(SliceItemLegacySchema)
16
+
17
+ export type SlicesLegacy = z.infer<typeof SlicesLegacySchema>
@@ -0,0 +1,39 @@
1
+ import { z } from "zod/mini"
2
+
3
+ // It's important to only import the types here to
4
+ // avoid runtime circular dependencies!
5
+ import type { RichTextContentSchema } from "../richText"
6
+ import { RichTextLegacySchema } from "./richText"
7
+
8
+ // Cell
9
+ const getTableCellSchema = <
10
+ TContent extends typeof RichTextLegacySchema | typeof RichTextContentSchema,
11
+ >(
12
+ content: TContent,
13
+ ) =>
14
+ z.object({
15
+ key: z.transform((value) => z.uuidv4().safeParse(value).data || crypto.randomUUID()),
16
+ type: z.union([z.literal("tableHeader"), z.literal("tableCell")]),
17
+ content,
18
+ columnWidth: z.optional(z.number()),
19
+ })
20
+
21
+ // Row
22
+ // oxlint-disable-next-line explicit-module-boundary-types
23
+ export const getTableRowSchema = <
24
+ TRichText extends typeof RichTextLegacySchema | typeof RichTextContentSchema,
25
+ >(
26
+ richTextSchema: TRichText,
27
+ ) =>
28
+ z.strictObject({
29
+ key: z.transform((value) => z.uuidv4().safeParse(value).data || crypto.randomUUID()),
30
+ type: z.literal("tableRow"),
31
+ content: z.array(getTableCellSchema(richTextSchema)),
32
+ })
33
+
34
+ // Table
35
+ export const TableLegacySchema = z.strictObject({
36
+ content: z.array(getTableRowSchema(RichTextLegacySchema)),
37
+ })
38
+
39
+ export type TableLegacy = z.infer<typeof TableLegacySchema>
@@ -0,0 +1,6 @@
1
+ import { z } from "zod/mini"
2
+
3
+ // TODO: Can't we add business logic UID shape validation here? (not uniqueness but format)
4
+ export const UIDLegacySchema = z.string()
5
+
6
+ export type UIDLegacy = z.infer<typeof UIDLegacySchema>
@@ -0,0 +1,19 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import type { GroupLegacy } from "./group"
4
+ import { GroupLegacySchema } from "./group"
5
+ import type { NestableLegacy } from "./nestable"
6
+ import { NestableLegacySchema } from "./nestable"
7
+ import type { SlicesLegacy } from "./slices"
8
+ import { SlicesLegacySchema } from "./slices"
9
+ import type { UIDLegacy } from "./uid"
10
+ import { UIDLegacySchema } from "./uid"
11
+
12
+ export const WidgetLegacySchema: z.ZodMiniType<WidgetLegacy> = z.union([
13
+ UIDLegacySchema,
14
+ GroupLegacySchema,
15
+ SlicesLegacySchema,
16
+ NestableLegacySchema,
17
+ ])
18
+
19
+ export type WidgetLegacy = UIDLegacy | GroupLegacy | SlicesLegacy | NestableLegacy
@@ -0,0 +1,165 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import {
4
+ EmptyDocumentLinkLegacyValueSchema,
5
+ EmptyImageLinkLegacyValueSchema,
6
+ FilledDocumentLinkLegacyValueSchema,
7
+ FilledFileLinkLegacyValueSchema,
8
+ FilledImageLinkLegacyValueSchema,
9
+ EmptyMediaLinkLegacyValueSchema,
10
+ FilledExternalLinkLegacyValueSchema,
11
+ EmptyExternalLinkLegacyValueSchema,
12
+ AnyLinkLegacySchema,
13
+ LinkType,
14
+ EmptyFileLinkLegacyValueSchema,
15
+ } from "./legacy/link"
16
+
17
+ // Image
18
+ const FilledImageLinkContentValueSchema = z.extend(FilledImageLinkLegacyValueSchema, {
19
+ __TYPE__: z.literal(LinkType.Image),
20
+ })
21
+
22
+ const EmptyImageLinkContentValueSchema = z.extend(EmptyImageLinkLegacyValueSchema, {
23
+ __TYPE__: z.literal(LinkType.Image),
24
+ })
25
+
26
+ // File
27
+ const FilledFileLinkContentValueSchema = z.extend(FilledFileLinkLegacyValueSchema, {
28
+ __TYPE__: z.literal(LinkType.File),
29
+ })
30
+
31
+ const EmptyFileLinkContentValueSchema = z.extend(EmptyFileLinkLegacyValueSchema, {
32
+ __TYPE__: z.literal(LinkType.File),
33
+ })
34
+
35
+ // Media
36
+ const EmptyMediaLinkContentValueSchema = z.extend(EmptyMediaLinkLegacyValueSchema, {
37
+ __TYPE__: z.literal(LinkType.Media),
38
+ })
39
+
40
+ // Document
41
+ const FilledDocumentLinkContentValueSchema = z.extend(FilledDocumentLinkLegacyValueSchema, {
42
+ __TYPE__: z.literal(LinkType.Document),
43
+ })
44
+
45
+ const EmptyDocumentLinkContentValueSchema = z.extend(EmptyDocumentLinkLegacyValueSchema, {
46
+ __TYPE__: z.literal(LinkType.Document),
47
+ })
48
+
49
+ // External
50
+ const FilledExternalLinkContentValueSchema = z.extend(FilledExternalLinkLegacyValueSchema, {
51
+ __TYPE__: z.literal(LinkType.External),
52
+ })
53
+
54
+ const EmptyExternalLinkContentValueSchema = z.extend(EmptyExternalLinkLegacyValueSchema, {
55
+ __TYPE__: z.literal(LinkType.External),
56
+ })
57
+
58
+ // Any
59
+ const AnyLinkContentValueSchema = z.extend(AnyLinkLegacySchema, {
60
+ __TYPE__: z.literal(LinkType.Any),
61
+ })
62
+
63
+ // All
64
+
65
+ // Used by content/richText
66
+ export const FilledLinkContentValueSchema: z.ZodMiniType<FilledLinkContentValue> = z.union([
67
+ FilledImageLinkContentValueSchema,
68
+ FilledFileLinkContentValueSchema,
69
+ FilledDocumentLinkContentValueSchema,
70
+ FilledExternalLinkContentValueSchema,
71
+ ])
72
+
73
+ // Used by content/legacy/link
74
+ type FilledImageLinkContentValue = z.infer<typeof FilledImageLinkContentValueSchema>
75
+ type FilledFileLinkContentValue = z.infer<typeof FilledFileLinkContentValueSchema>
76
+ type FilledDocumentLinkContentValue = z.infer<typeof FilledDocumentLinkContentValueSchema>
77
+ type FilledExternalLinkContentValue = z.infer<typeof FilledExternalLinkContentValueSchema>
78
+ export type FilledLinkContentValue =
79
+ | FilledImageLinkContentValue
80
+ | FilledFileLinkContentValue
81
+ | FilledDocumentLinkContentValue
82
+ | FilledExternalLinkContentValue
83
+
84
+ const EmptyLinkContentValueSchema: z.ZodMiniType<EmptyLinkContentValue> = z.union([
85
+ EmptyImageLinkContentValueSchema,
86
+ EmptyFileLinkContentValueSchema,
87
+ EmptyMediaLinkContentValueSchema,
88
+ EmptyDocumentLinkContentValueSchema,
89
+ EmptyExternalLinkContentValueSchema,
90
+ AnyLinkContentValueSchema,
91
+ ])
92
+
93
+ // Used by content/codec/link
94
+ type EmptyImageLinkContentValue = z.infer<typeof EmptyImageLinkContentValueSchema>
95
+ type EmptyFileLinkContentValue = z.infer<typeof EmptyFileLinkContentValueSchema>
96
+ type EmptyMediaLinkContentValue = z.infer<typeof EmptyMediaLinkContentValueSchema>
97
+ type EmptyDocumentLinkContentValue = z.infer<typeof EmptyDocumentLinkContentValueSchema>
98
+ type EmptyExternalLinkContentValue = z.infer<typeof EmptyExternalLinkContentValueSchema>
99
+ type AnyLinkContentValue = z.infer<typeof AnyLinkContentValueSchema>
100
+ export type EmptyLinkContentValue =
101
+ | EmptyImageLinkContentValue
102
+ | EmptyFileLinkContentValue
103
+ | EmptyMediaLinkContentValue
104
+ | EmptyDocumentLinkContentValue
105
+ | EmptyExternalLinkContentValue
106
+ | AnyLinkContentValue
107
+
108
+ const LinkContentValueSchema: z.ZodMiniType<LinkContentValue> = z.union([
109
+ FilledLinkContentValueSchema,
110
+ EmptyLinkContentValueSchema,
111
+ ])
112
+
113
+ // Used by content/codec/link
114
+ export type LinkContentValue = FilledLinkContentValue | EmptyLinkContentValue
115
+
116
+ // Content
117
+ export const LinkContentType = "LinkContent" as const
118
+
119
+ const getLinkContentSchema = <TValue extends LinkContentValue>(value: z.ZodMiniType<TValue>) =>
120
+ z.object({
121
+ __TYPE__: z.literal(LinkContentType),
122
+ key: z.transform((value) => z.uuidv4().safeParse(value).data || crypto.randomUUID()),
123
+ // We cannot use z.extend here because we're working with unions.
124
+ // z.intersection wouldn't work also for the same reason.
125
+ value: z.pipe(
126
+ z.pipe(
127
+ z.pipe(
128
+ z.record(z.string(), z.unknown()),
129
+ z.transform(
130
+ ({
131
+ text,
132
+ variant,
133
+ ...value
134
+ }): {
135
+ text?: unknown
136
+ variant?: unknown
137
+ value: Record<string, unknown>
138
+ } => ({ text, variant, value }),
139
+ ),
140
+ ),
141
+ z.object({
142
+ text: z.optional(z.string()),
143
+ variant: z.optional(z.string()),
144
+ value: value as z.ZodMiniType<TValue, Record<string, unknown>>,
145
+ }),
146
+ ),
147
+ z.transform(({ text, variant, value }) => ({
148
+ ...(text ? { text } : {}),
149
+ ...(variant ? { variant } : {}),
150
+ ...value,
151
+ })),
152
+ ),
153
+ })
154
+
155
+ export const FilledLinkContentSchema = getLinkContentSchema(FilledLinkContentValueSchema)
156
+
157
+ export type FilledLinkContent = z.infer<typeof FilledLinkContentSchema>
158
+
159
+ export const EmptyLinkContentSchema = getLinkContentSchema(EmptyLinkContentValueSchema)
160
+
161
+ export type EmptyLinkContent = z.infer<typeof EmptyLinkContentSchema>
162
+
163
+ export const LinkContentSchema = getLinkContentSchema(LinkContentValueSchema)
164
+
165
+ export type LinkContent = z.infer<typeof LinkContentSchema>
@@ -0,0 +1,107 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import type { BooleanContent } from "./boolean"
4
+ import { BooleanContentSchema, BooleanContentType } from "./boolean"
5
+ import type { EmbedContent } from "./embed"
6
+ import { EmbedContentSchema, EmbedContentType } from "./embed"
7
+ import type { EmptyContent } from "./empty"
8
+ import { EmptyContentSchema, EmptyContentType } from "./empty"
9
+ import type {
10
+ ColorContent,
11
+ DateContent,
12
+ NumberContent,
13
+ RangeContent,
14
+ SelectContent,
15
+ TextContent,
16
+ TimestampContent,
17
+ } from "./field"
18
+ import {
19
+ ColorContentSchema,
20
+ DateContentSchema,
21
+ FieldContentType,
22
+ NumberContentSchema,
23
+ RangeContentSchema,
24
+ SelectContentSchema,
25
+ TextContentSchema,
26
+ TimestampContentSchema,
27
+ } from "./field"
28
+ import type { GeoPointContent } from "./geopoint"
29
+ import { GeoPointContentSchema, GeoPointContentType } from "./geopoint"
30
+ import type { ImageContent } from "./image"
31
+ import { ImageContentSchema, ImageContentType } from "./image"
32
+ import type { IntegrationFieldContent } from "./integrationField"
33
+ import { IntegrationFieldContentSchema, IntegrationFieldContentType } from "./integrationField"
34
+ import type { LinkContent } from "./link"
35
+ import { LinkContentSchema, LinkContentType } from "./link"
36
+ import type { RepeatableContent } from "./repeatable"
37
+ import { RepeatableContentSchema, RepeatableContentType } from "./repeatable"
38
+ import type { RichTextContent } from "./richText"
39
+ import { RichTextContentSchema, RichTextContentType } from "./richText"
40
+ import type { SeparatorContent } from "./separator"
41
+ import { SeparatorContentSchema, SeparatorContentType } from "./separator"
42
+ import type { TableContent } from "./table"
43
+ import { TableContentSchema, TableContentType } from "./table"
44
+
45
+ export const NestableContentSchema: z.ZodMiniType<NestableContent> = z.union([
46
+ EmptyContentSchema,
47
+ BooleanContentSchema,
48
+ ColorContentSchema,
49
+ DateContentSchema,
50
+ EmbedContentSchema,
51
+ GeoPointContentSchema,
52
+ ImageContentSchema,
53
+ IntegrationFieldContentSchema,
54
+ LinkContentSchema,
55
+ NumberContentSchema,
56
+ RangeContentSchema,
57
+ RepeatableContentSchema,
58
+ RichTextContentSchema,
59
+ SelectContentSchema,
60
+ SeparatorContentSchema,
61
+ TableContentSchema,
62
+ TextContentSchema,
63
+ TimestampContentSchema,
64
+ ])
65
+
66
+ export type NestableContent =
67
+ | EmptyContent
68
+ | BooleanContent
69
+ | ColorContent
70
+ | DateContent
71
+ | EmbedContent
72
+ | GeoPointContent
73
+ | ImageContent
74
+ | IntegrationFieldContent
75
+ | LinkContent
76
+ | NumberContent
77
+ | RangeContent
78
+ | RepeatableContent
79
+ | RichTextContent
80
+ | SelectContent
81
+ | SeparatorContent
82
+ | TableContent
83
+ | TextContent
84
+ | TimestampContent
85
+
86
+ const NestableContentTypes = [
87
+ EmptyContentType,
88
+ BooleanContentType,
89
+ EmbedContentType,
90
+ FieldContentType,
91
+ GeoPointContentType,
92
+ ImageContentType,
93
+ IntegrationFieldContentType,
94
+ LinkContentType,
95
+ RepeatableContentType,
96
+ RichTextContentType,
97
+ SeparatorContentType,
98
+ TableContentType,
99
+ ]
100
+ type NestableContentType = (typeof NestableContentTypes)[number]
101
+
102
+ /** @internal */
103
+ export function isNestableContent(content: {
104
+ __TYPE__: string
105
+ }): content is { __TYPE__: NestableContentType } {
106
+ return (NestableContentTypes as string[]).includes(content.__TYPE__)
107
+ }
@@ -0,0 +1,21 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { LinkContentSchema, LinkContentType } from "./link"
4
+
5
+ export const RepeatableContentType = "RepeatableContent" as const
6
+
7
+ export const RepeatableContentSchema = z.object({
8
+ __TYPE__: z.literal(RepeatableContentType),
9
+ type: z.literal("Link"),
10
+ value: z.array(LinkContentSchema),
11
+ })
12
+
13
+ export type RepeatableContent = z.infer<typeof RepeatableContentSchema>
14
+
15
+ const RepeatableContentTypes = [LinkContentType]
16
+ type RepeatableContentType = (typeof RepeatableContentTypes)[number]
17
+ export function isRepeatableContentValue(content: {
18
+ __TYPE__: string
19
+ }): content is { __TYPE__: RepeatableContentType } {
20
+ return (RepeatableContentTypes as string[]).includes(content.__TYPE__)
21
+ }