@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,60 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { EmbedContentSchema } from "./embed"
4
+ import { ImageContentViewSchema } from "./image"
5
+ import {
6
+ getEmbedBlockSchema,
7
+ getImageBlockSchema,
8
+ getSpanSchema,
9
+ getTextBlockSchema,
10
+ } from "./legacy/richText"
11
+ import type { Span } from "./legacy/richText"
12
+ import type { FilledLinkContentValue } from "./link"
13
+ import { FilledLinkContentValueSchema } from "./link"
14
+
15
+ export { RichTextNodeType } from "./legacy/richText"
16
+ export type { RichTextNodeTypes } from "./legacy/richText"
17
+
18
+ // Spans
19
+ export type RichTextContentSpan = Span<FilledLinkContentValue>
20
+
21
+ export const RichTextContentSpanSchema: z.ZodMiniType<RichTextContentSpan> = getSpanSchema(
22
+ FilledLinkContentValueSchema,
23
+ )
24
+
25
+ // Blocks
26
+ const RichTextContentTextBlockSchema = getTextBlockSchema(FilledLinkContentValueSchema)
27
+ export type RichTextContentTextBlock = z.infer<typeof RichTextContentTextBlockSchema>
28
+
29
+ const RichTextContentImageBlockSchema = getImageBlockSchema(
30
+ ImageContentViewSchema,
31
+ FilledLinkContentValueSchema,
32
+ )
33
+ export type RichTextContentImageBlock = z.infer<typeof RichTextContentImageBlockSchema>
34
+
35
+ const RichTextContentEmbedBlockSchema = getEmbedBlockSchema(EmbedContentSchema)
36
+ export type RichTextContentEmbedBlock = z.infer<typeof RichTextContentEmbedBlockSchema>
37
+
38
+ export const RichTextContentBlockSchema: z.ZodMiniType<RichTextContentBlock> = z.union([
39
+ RichTextContentTextBlockSchema,
40
+ RichTextContentImageBlockSchema,
41
+ RichTextContentEmbedBlockSchema,
42
+ ])
43
+
44
+ // Used by content/codec/richText
45
+ export type RichTextContentBlock =
46
+ | RichTextContentTextBlock
47
+ | RichTextContentImageBlock
48
+ | RichTextContentEmbedBlock
49
+
50
+ export const RichTextContentType = "StructuredTextContent" as const
51
+
52
+ export type RichTextContent = {
53
+ __TYPE__: typeof RichTextContentType
54
+ value: RichTextContentBlock[]
55
+ }
56
+
57
+ export const RichTextContentSchema: z.ZodMiniType<RichTextContent> = z.object({
58
+ __TYPE__: z.literal(RichTextContentType),
59
+ value: z.array(RichTextContentBlockSchema),
60
+ })
@@ -0,0 +1,9 @@
1
+ import { z } from "zod/mini"
2
+
3
+ export const SeparatorContentType = "SeparatorContent" as const
4
+
5
+ export const SeparatorContentSchema = z.object({
6
+ __TYPE__: z.literal(SeparatorContentType),
7
+ })
8
+
9
+ export type SeparatorContent = z.infer<typeof SeparatorContentSchema>
@@ -0,0 +1,41 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { GroupItemContentSchema, NestableAndGroupContentSchema } from "./group"
4
+ import { NestableContentSchema } from "./nestable"
5
+
6
+ // Legacy (before 2020)
7
+ export const LegacySliceContentSchema = NestableAndGroupContentSchema
8
+
9
+ export type LegacySliceContent = z.infer<typeof LegacySliceContentSchema>
10
+
11
+ // Composite (2020 to 2021)
12
+ export const CompositeSliceContentType = "CompositeSliceContent" as const
13
+
14
+ export const CompositeSliceContentSchema = z.object({
15
+ __TYPE__: z.literal(CompositeSliceContentType),
16
+ nonRepeat: z.record(z.string(), NestableContentSchema),
17
+ repeat: z.array(GroupItemContentSchema),
18
+ })
19
+
20
+ export type CompositeSliceContent = z.infer<typeof CompositeSliceContentSchema>
21
+
22
+ // Shared (2021 to present)
23
+ export const SharedSliceContentType = "SharedSliceContent" as const
24
+
25
+ export const SharedSliceContentSchema = z.object({
26
+ __TYPE__: z.literal(SharedSliceContentType),
27
+ variation: z.string(),
28
+ primary: z.record(z.string(), NestableAndGroupContentSchema),
29
+ items: z.array(GroupItemContentSchema),
30
+ })
31
+
32
+ export type SharedSliceContent = z.infer<typeof SharedSliceContentSchema>
33
+
34
+ // All
35
+ export const SliceContentSchema: z.ZodMiniType<SliceContent> = z.union([
36
+ LegacySliceContentSchema,
37
+ CompositeSliceContentSchema,
38
+ SharedSliceContentSchema,
39
+ ])
40
+
41
+ export type SliceContent = LegacySliceContent | CompositeSliceContent | SharedSliceContent
@@ -0,0 +1,57 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import {
4
+ CompositeSliceContentSchema,
5
+ SharedSliceContentSchema,
6
+ LegacySliceContentSchema,
7
+ SliceContentSchema,
8
+ } from "./slice"
9
+
10
+ // Item
11
+ const getSliceItemContentSchema = <
12
+ TWidgetSchema extends
13
+ | typeof LegacySliceContentSchema
14
+ | typeof CompositeSliceContentSchema
15
+ | typeof SharedSliceContentSchema
16
+ | typeof SliceContentSchema,
17
+ >(
18
+ widgetSchema: TWidgetSchema,
19
+ ) => {
20
+ return z.object({
21
+ key: z.string(),
22
+ name: z.string(),
23
+ maybeLabel: z.optional(z.string()),
24
+ widget: widgetSchema,
25
+ })
26
+ }
27
+
28
+ export const LegacySliceItemContentSchema = getSliceItemContentSchema(LegacySliceContentSchema)
29
+
30
+ export type LegacySliceItemContent = z.infer<typeof LegacySliceItemContentSchema>
31
+
32
+ export const CompositeSliceItemContentSchema = getSliceItemContentSchema(
33
+ CompositeSliceContentSchema,
34
+ )
35
+
36
+ export type CompositeSliceItemContent = z.infer<typeof CompositeSliceItemContentSchema>
37
+
38
+ export const SharedSliceItemContentSchema = getSliceItemContentSchema(SharedSliceContentSchema)
39
+
40
+ export type SharedSliceItemContent = z.infer<typeof SharedSliceItemContentSchema>
41
+
42
+ // All
43
+ export const SliceItemContentSchema = getSliceItemContentSchema(SliceContentSchema)
44
+
45
+ export type SliceItemContent = z.infer<typeof SliceItemContentSchema>
46
+
47
+ // Slices
48
+
49
+ // Typo (missing `s`) is legacy...
50
+ export const SlicesContentType = "SliceContentType" as const
51
+
52
+ export const SlicesContentSchema = z.object({
53
+ __TYPE__: z.literal(SlicesContentType),
54
+ value: z.array(SliceItemContentSchema),
55
+ })
56
+
57
+ export type SlicesContent = z.infer<typeof SlicesContentSchema>
@@ -0,0 +1,14 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { getTableRowSchema } from "./legacy/table"
4
+ import { RichTextContentSchema } from "./richText"
5
+
6
+ export const TableContentType = "TableContent" as const
7
+
8
+ // Table
9
+ export const TableContentSchema = z.object({
10
+ __TYPE__: z.literal(TableContentType),
11
+ content: z.array(getTableRowSchema(RichTextContentSchema)),
12
+ })
13
+
14
+ export type TableContent = z.infer<typeof TableContentSchema>
@@ -0,0 +1,10 @@
1
+ import { z } from "zod/mini"
2
+
3
+ export const UIDContentType = "UIDContent" as const
4
+
5
+ export const UIDContentSchema = z.object({
6
+ __TYPE__: z.literal(UIDContentType),
7
+ value: z.string(),
8
+ })
9
+
10
+ export type UIDContent = z.infer<typeof UIDContentSchema>
@@ -0,0 +1,21 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import type { GroupContent } from "./group"
4
+ import { GroupContentSchema } from "./group"
5
+ import type { NestableContent } from "./nestable"
6
+ import { NestableContentSchema } from "./nestable"
7
+ import type { SlicesContent } from "./slices"
8
+ import { SlicesContentSchema } from "./slices"
9
+ import type { UIDContent } from "./uid"
10
+ import { UIDContentSchema } from "./uid"
11
+
12
+ export const WidgetContentSchema: z.ZodMiniType<WidgetContent> = z.union([
13
+ GroupContentSchema,
14
+ NestableContentSchema,
15
+ UIDContentSchema,
16
+ SlicesContentSchema,
17
+ ])
18
+
19
+ export type WidgetContent = GroupContent | NestableContent | UIDContent | SlicesContent
20
+
21
+ export type ContentType = WidgetContent["__TYPE__"]
@@ -0,0 +1,35 @@
1
+ export type Part = {
2
+ type:
3
+ | "CustomType"
4
+ | "Widget"
5
+ | "SharedSlice"
6
+ | "Slice"
7
+ | "LegacySlice"
8
+ | "GroupItem"
9
+ | "primary"
10
+ | "items"
11
+ | "RepeatableItem"
12
+ key: string
13
+ }
14
+
15
+ export type Path = ReadonlyArray<Part>
16
+
17
+ const PATH_SEPARATOR = "::"
18
+
19
+ export function serialize(path: Path): string {
20
+ return path.map((part) => part.key).join(PATH_SEPARATOR)
21
+ }
22
+
23
+ export function current(path: Path): Part | undefined {
24
+ return path[path.length - 1]
25
+ }
26
+
27
+ export function append(path: string, strElement: string): string {
28
+ return path + PATH_SEPARATOR + strElement
29
+ }
30
+
31
+ export function make(...entries: (Pick<Part, "type"> & Partial<Pick<Part, "key">>)[]): Path {
32
+ return entries.reduce<Path>((acc, { key, type }) => {
33
+ return key ? acc.concat({ key, type }) : acc
34
+ }, [])
35
+ }
@@ -0,0 +1,113 @@
1
+ import type { CustomTypeModel, StaticCustomTypeModel } from "../model/customType"
2
+ import type { StaticSectionModel } from "../model/section"
3
+ import type { SharedSliceModel, StaticSliceModel } from "../model/slice"
4
+
5
+ export function toStatic(
6
+ customType: CustomTypeModel,
7
+ sharedSlices: Map<string, SharedSliceModel> | Record<string, SharedSliceModel>,
8
+ ): StaticCustomTypeModel {
9
+ const json: StaticCustomTypeModel["json"] = {}
10
+
11
+ const sharedSlicesMap =
12
+ sharedSlices instanceof Map ? sharedSlices : new Map(Object.entries(sharedSlices))
13
+
14
+ for (const [tabKey, tab] of Object.entries(customType.json)) {
15
+ const tabJSON: StaticCustomTypeModel["json"][string] = {}
16
+ for (const [key, widget] of Object.entries(tab)) {
17
+ switch (widget.type) {
18
+ case "Slices":
19
+ case "Choice":
20
+ const choices: Record<string, StaticSliceModel> = {}
21
+ for (const [id, model] of Object.entries(widget.config?.choices || {})) {
22
+ if (model.type === "SharedSlice") {
23
+ const sharedSlice = sharedSlicesMap.get(id)
24
+ if (sharedSlice) {
25
+ choices[id] = sharedSlice
26
+ }
27
+ } else {
28
+ choices[id] = model
29
+ }
30
+ }
31
+
32
+ tabJSON[key] = {
33
+ ...widget,
34
+ config: { ...widget.config, choices },
35
+ }
36
+ break
37
+ default:
38
+ tabJSON[key] = widget
39
+ }
40
+ }
41
+
42
+ json[tabKey] = tabJSON
43
+ }
44
+
45
+ return { ...customType, json }
46
+ }
47
+
48
+ export function flatten(customType: StaticCustomTypeModel): StaticSectionModel {
49
+ return Object.values(customType.json).reduce((acc, fields) => ({ ...acc, ...fields }), {})
50
+ }
51
+
52
+ export function collectSharedSlices(
53
+ customType: StaticCustomTypeModel,
54
+ ): Record<string, SharedSliceModel> {
55
+ const sharedSlices: Record<string, SharedSliceModel> = {}
56
+
57
+ const flattened = flatten(customType)
58
+ for (const widget of Object.values(flattened)) {
59
+ if (widget.type === "Slices" || widget.type === "Choice") {
60
+ for (const [id, model] of Object.entries(widget.config?.choices || {})) {
61
+ if (model.type === "SharedSlice") {
62
+ sharedSlices[id] = model
63
+ }
64
+ }
65
+ }
66
+ }
67
+
68
+ return sharedSlices
69
+ }
70
+
71
+ export function filterMissingSharedSlices<
72
+ TCustomType extends StaticCustomTypeModel | CustomTypeModel,
73
+ >(
74
+ customType: TCustomType,
75
+ sharedSlices: Map<string, SharedSliceModel> | Record<string, SharedSliceModel>,
76
+ ): TCustomType {
77
+ const json: TCustomType["json"] = {}
78
+
79
+ const sharedSlicesMap =
80
+ sharedSlices instanceof Map ? sharedSlices : new Map(Object.entries(sharedSlices))
81
+
82
+ for (const [tabKey, tab] of Object.entries(customType.json)) {
83
+ const tabJSON: typeof tab = {}
84
+ for (const [key, widget] of Object.entries(tab)) {
85
+ switch (widget.type) {
86
+ case "Slices":
87
+ case "Choice":
88
+ const choices: Required<typeof widget>["config"]["choices"] = {}
89
+ for (const [id, model] of Object.entries(widget.config?.choices || {})) {
90
+ if (model.type === "SharedSlice") {
91
+ if (sharedSlicesMap.get(id)) {
92
+ choices[id] = model
93
+ }
94
+ } else {
95
+ choices[id] = model
96
+ }
97
+ }
98
+
99
+ tabJSON[key] = {
100
+ ...widget,
101
+ config: { ...widget.config, choices },
102
+ }
103
+ break
104
+ default:
105
+ tabJSON[key] = widget
106
+ }
107
+ }
108
+
109
+ json[tabKey] = tabJSON
110
+ }
111
+
112
+ return { ...customType, json }
113
+ }
@@ -0,0 +1,108 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { DocumentLegacyCodec } from "../content/codec/document"
4
+ import { defaultCtx } from "../content/codec/legacyContentCtx"
5
+ import type { DocumentContent } from "../content/document"
6
+ import type { DocumentLegacy } from "../content/legacy/document"
7
+ import { DocumentLegacySchema } from "../content/legacy/document"
8
+ import { isNestableContent } from "../content/nestable"
9
+ import type { CompositeSliceItemContent, LegacySliceItemContent } from "../content/slices"
10
+ import type { WidgetContent } from "../content/widget"
11
+ import type { StaticCustomTypeModel } from "../model/customType"
12
+ import type { FieldOrSliceType } from "../model/widget"
13
+ import { FieldOrSliceTypeSchema } from "../model/widget"
14
+ import * as contentPath from "./contentPath"
15
+ import * as customTypeModel from "./customTypeModel"
16
+ import * as sliceContent from "./sliceContent"
17
+ import { traverseDocumentContent } from "./traverseContent"
18
+
19
+ export function collectWidgets<TWidgetContent extends WidgetContent>(
20
+ document: DocumentContent,
21
+ test: (
22
+ content: WidgetContent,
23
+ args: {
24
+ path: contentPath.Path
25
+ key: string
26
+ apiID: string
27
+ },
28
+ ) => content is TWidgetContent,
29
+ ): Record<string, TWidgetContent> {
30
+ const collected: Record<string, TWidgetContent> = {}
31
+
32
+ traverseDocumentContent(document, {
33
+ transformWidget: ({ content, ...args }) => {
34
+ if (test(content, args)) {
35
+ collected[contentPath.serialize(args.path)] = content
36
+ }
37
+
38
+ return content
39
+ },
40
+ })
41
+
42
+ return collected
43
+ }
44
+
45
+ export function fromLegacy(
46
+ legacy: DocumentLegacy,
47
+ model: StaticCustomTypeModel,
48
+ ): DocumentContent | undefined {
49
+ const parsed = DocumentLegacySchema.safeParse(legacy)
50
+ if (!parsed.success) {
51
+ return
52
+ }
53
+
54
+ const types = new Map<string, FieldOrSliceType>()
55
+ const keys = new Map<string, string>()
56
+ const widgets: DocumentLegacy = {}
57
+ for (const [key, value] of Object.entries(parsed.data)) {
58
+ if (key.endsWith("_TYPE")) {
59
+ const parsed = FieldOrSliceTypeSchema.safeParse(value)
60
+ if (parsed.success) {
61
+ types.set(key.substring(0, key.length - 5), parsed.data)
62
+ }
63
+ } else if (key.endsWith("_KEY")) {
64
+ const parsed = z.uuidv4().safeParse(value)
65
+ if (parsed.success) {
66
+ keys.set(key.substring(0, key.length - 4), parsed.data)
67
+ }
68
+ } else if (!key.endsWith("_POSITION")) {
69
+ widgets[key] = value
70
+ }
71
+ }
72
+
73
+ const result = DocumentLegacyCodec(defaultCtx("", types, keys)).toContent(widgets)
74
+ if (!result.success) {
75
+ return
76
+ }
77
+
78
+ const needsMigration = Object.values(customTypeModel.collectSharedSlices(model)).some((slice) =>
79
+ Boolean(slice.legacyPaths),
80
+ )
81
+
82
+ if (needsMigration) {
83
+ return traverseDocumentContent(result.data, {
84
+ model,
85
+ transformSlice: ({ content, model }) => {
86
+ if (model?.type === "SharedSlice") {
87
+ if (content.widget.__TYPE__ === "CompositeSliceContent") {
88
+ return sliceContent.compositeToShared(content as CompositeSliceItemContent, model)
89
+ } else if (
90
+ content.widget.__TYPE__ === "GroupContentType" ||
91
+ isNestableContent(content.widget)
92
+ ) {
93
+ return sliceContent.legacyToShared(content as LegacySliceItemContent, model)
94
+ }
95
+ }
96
+ return content
97
+ },
98
+ })
99
+ }
100
+
101
+ return result.data
102
+ }
103
+
104
+ export function toLegacy(document: DocumentContent): DocumentLegacy {
105
+ const { content, types, keys } = DocumentLegacyCodec(defaultCtx("")).fromContent(document)
106
+
107
+ return { ...content, ...types, ...keys }
108
+ }
@@ -0,0 +1,84 @@
1
+ import type { ImageContent, ImageContentView } from "../content/image"
2
+
3
+ export interface CroppedImage {
4
+ zoom: number
5
+ /** X coordinate of the crop rect on the original image */
6
+ x: number
7
+ /** Y coordinate of the crop rect on the original image */
8
+ y: number
9
+
10
+ /** The width of the crop rect over the original image */
11
+ cropWidth: number
12
+ /** The height of the crop rect over the original image */
13
+ cropHeight: number
14
+
15
+ /** Final (user defined via W input) width of the image */
16
+ width: number
17
+ /** Final (user defined via H input) height of the image */
18
+ height: number
19
+ }
20
+
21
+ export function buildCropURL(args: {
22
+ origin: ImageContent["origin"]
23
+ croppedImage: CroppedImage
24
+ }): string {
25
+ const { origin, croppedImage } = args
26
+ const { x, y, width, height, cropHeight, cropWidth } = croppedImage
27
+
28
+ const url = new URL(origin.url)
29
+
30
+ const hasResize = origin.height !== height || origin.width !== width
31
+
32
+ const hasCrop = x !== 0 || y !== 0 || cropHeight !== origin.height || cropWidth !== origin.width
33
+
34
+ if (hasCrop) {
35
+ const crop = [x, y, cropWidth, cropHeight].map(Math.round).join(",")
36
+
37
+ url.searchParams.set("rect", crop)
38
+ url.searchParams.set("w", width.toString())
39
+ url.searchParams.set("h", height.toString())
40
+ }
41
+
42
+ if (hasResize) {
43
+ url.searchParams.set("w", width.toString())
44
+ url.searchParams.set("h", height.toString())
45
+ }
46
+
47
+ return url.toString()
48
+ }
49
+
50
+ export function getCroppedImage({ contentView }: { contentView: ImageContentView }): CroppedImage {
51
+ const {
52
+ edit: {
53
+ crop: { x, y },
54
+ zoom,
55
+ },
56
+ width,
57
+ height,
58
+ origin: { width: originWidth, height: originHeight },
59
+ } = contentView
60
+
61
+ let cropWidth
62
+ let cropHeight
63
+ const originAspect = originWidth / originHeight
64
+ const cropAspect = width / height
65
+ if (cropAspect >= originAspect) {
66
+ // crop and origin image would be the same width if zoom was equal to 1
67
+ cropWidth = originWidth / zoom
68
+ cropHeight = cropWidth / cropAspect
69
+ } else {
70
+ // crop and origin image would be the same height if zoom was equal to 1
71
+ cropHeight = originHeight / zoom
72
+ cropWidth = cropHeight * cropAspect
73
+ }
74
+
75
+ return {
76
+ x,
77
+ y,
78
+ width,
79
+ height,
80
+ zoom,
81
+ cropWidth,
82
+ cropHeight,
83
+ }
84
+ }
@@ -0,0 +1,86 @@
1
+ import type { GroupItemContent } from "../content/group"
2
+ import type { SharedSliceContent } from "../content/slice"
3
+ import type {
4
+ CompositeSliceItemContent,
5
+ LegacySliceItemContent,
6
+ SharedSliceItemContent,
7
+ } from "../content/slices"
8
+ import type { SharedSliceVariationContentModel } from "../model/slice"
9
+
10
+ export const legacyToShared = (
11
+ content: LegacySliceItemContent,
12
+ model: SharedSliceVariationContentModel,
13
+ ): SharedSliceItemContent => {
14
+ const sliceUUID = content.key.split("$")[1]
15
+
16
+ const primary: SharedSliceContent["primary"] = {}
17
+ const items: SharedSliceContent["items"] = []
18
+ if (content.widget.__TYPE__ === "GroupContentType") {
19
+ // Group content
20
+ for (const item of content.widget.value) {
21
+ const value: GroupItemContent["value"] = []
22
+
23
+ for (const [key, nestable] of item.value) {
24
+ if (model.fields.items?.[key]) {
25
+ value.push([key, nestable])
26
+ }
27
+ }
28
+
29
+ items.push({ ...item, value })
30
+ }
31
+ } else if (model.fields.primary?.[content.name]) {
32
+ // Nestable content
33
+ primary[content.name] = content.widget
34
+ }
35
+
36
+ return {
37
+ key: `${model.sliceName}$${sliceUUID}`,
38
+ name: model.sliceName,
39
+ maybeLabel: content.maybeLabel,
40
+ widget: {
41
+ __TYPE__: "SharedSliceContent",
42
+ variation: model.variationID,
43
+ primary,
44
+ items,
45
+ },
46
+ }
47
+ }
48
+
49
+ export const compositeToShared = (
50
+ content: CompositeSliceItemContent,
51
+ model: SharedSliceVariationContentModel,
52
+ ): SharedSliceItemContent => {
53
+ const sliceUUID = content.key.split("$")[1]
54
+
55
+ const primary: SharedSliceContent["primary"] = {}
56
+ for (const [key, value] of Object.entries(content.widget.nonRepeat)) {
57
+ if (model.fields.primary?.[key]) {
58
+ primary[key] = value
59
+ }
60
+ }
61
+
62
+ const items: SharedSliceContent["items"] = []
63
+ for (const item of content.widget.repeat) {
64
+ const value: GroupItemContent["value"] = []
65
+
66
+ for (const [key, nestable] of item.value) {
67
+ if (model.fields.items?.[key]) {
68
+ value.push([key, nestable])
69
+ }
70
+ }
71
+
72
+ items.push({ ...item, value })
73
+ }
74
+
75
+ return {
76
+ key: `${model.sliceName}$${sliceUUID}`,
77
+ name: model.sliceName,
78
+ maybeLabel: content.maybeLabel,
79
+ widget: {
80
+ __TYPE__: "SharedSliceContent",
81
+ variation: model.variationID,
82
+ primary,
83
+ items,
84
+ },
85
+ }
86
+ }