@prismicio/types-internal 3.17.0 → 4.0.0-canary.72def6d

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 (709) hide show
  1. package/README.md +41 -25
  2. package/dist/common/asset.d.ts +22 -0
  3. package/dist/common/asset.d.ts.map +1 -0
  4. package/dist/common/asset.js +21 -0
  5. package/dist/common/asset.js.map +1 -0
  6. package/dist/common/embed.d.ts +21 -0
  7. package/dist/common/embed.d.ts.map +1 -0
  8. package/dist/common/embed.js +20 -0
  9. package/dist/common/embed.js.map +1 -0
  10. package/dist/common/hexaColorCode.d.ts +8 -0
  11. package/dist/common/hexaColorCode.d.ts.map +1 -0
  12. package/dist/common/hexaColorCode.js +8 -0
  13. package/dist/common/hexaColorCode.js.map +1 -0
  14. package/dist/common/nonEmptyString.d.ts +8 -0
  15. package/dist/common/nonEmptyString.d.ts.map +1 -0
  16. package/dist/common/nonEmptyString.js +7 -0
  17. package/dist/common/nonEmptyString.js.map +1 -0
  18. package/dist/common/widgetKey.d.ts +8 -0
  19. package/dist/common/widgetKey.d.ts.map +1 -0
  20. package/dist/common/widgetKey.js +8 -0
  21. package/dist/common/widgetKey.js.map +1 -0
  22. package/dist/content/boolean.d.ts +11 -0
  23. package/dist/content/boolean.d.ts.map +1 -0
  24. package/dist/content/boolean.js +11 -0
  25. package/dist/content/boolean.js.map +1 -0
  26. package/dist/content/codec/boolean.js +31 -0
  27. package/dist/content/codec/boolean.js.map +1 -0
  28. package/dist/content/codec/document.js +49 -0
  29. package/dist/content/codec/document.js.map +1 -0
  30. package/dist/content/codec/embed.js +42 -0
  31. package/dist/content/codec/embed.js.map +1 -0
  32. package/dist/content/codec/empty.js +35 -0
  33. package/dist/content/codec/empty.js.map +1 -0
  34. package/dist/content/codec/field.js +41 -0
  35. package/dist/content/codec/field.js.map +1 -0
  36. package/dist/content/codec/geopoint.js +32 -0
  37. package/dist/content/codec/geopoint.js.map +1 -0
  38. package/dist/content/codec/group.js +127 -0
  39. package/dist/content/codec/group.js.map +1 -0
  40. package/dist/content/codec/image.js +44 -0
  41. package/dist/content/codec/image.js.map +1 -0
  42. package/dist/content/codec/integrationField.js +31 -0
  43. package/dist/content/codec/integrationField.js.map +1 -0
  44. package/dist/content/codec/legacyContentCtx.d.ts +72 -0
  45. package/dist/content/codec/legacyContentCtx.d.ts.map +1 -0
  46. package/dist/content/codec/legacyContentCtx.js +76 -0
  47. package/dist/content/codec/legacyContentCtx.js.map +1 -0
  48. package/dist/content/codec/link.js +93 -0
  49. package/dist/content/codec/link.js.map +1 -0
  50. package/dist/content/codec/nestable.js +91 -0
  51. package/dist/content/codec/nestable.js.map +1 -0
  52. package/dist/content/codec/repeatable.js +56 -0
  53. package/dist/content/codec/repeatable.js.map +1 -0
  54. package/dist/content/codec/richText.js +87 -0
  55. package/dist/content/codec/richText.js.map +1 -0
  56. package/dist/content/codec/separator.js +26 -0
  57. package/dist/content/codec/separator.js.map +1 -0
  58. package/dist/content/codec/slice.js +220 -0
  59. package/dist/content/codec/slice.js.map +1 -0
  60. package/dist/content/codec/slices.js +106 -0
  61. package/dist/content/codec/slices.js.map +1 -0
  62. package/dist/content/codec/table.js +56 -0
  63. package/dist/content/codec/table.js.map +1 -0
  64. package/dist/content/codec/uid.js +31 -0
  65. package/dist/content/codec/uid.js.map +1 -0
  66. package/dist/content/codec/widget.js +39 -0
  67. package/dist/content/codec/widget.js.map +1 -0
  68. package/dist/content/document.d.ts +3026 -0
  69. package/dist/content/document.d.ts.map +1 -0
  70. package/dist/content/document.js +9 -0
  71. package/dist/content/document.js.map +1 -0
  72. package/dist/content/embed.d.ts +24 -0
  73. package/dist/content/embed.d.ts.map +1 -0
  74. package/dist/content/embed.js +12 -0
  75. package/dist/content/embed.js.map +1 -0
  76. package/dist/content/empty.d.ts +11 -0
  77. package/dist/content/empty.d.ts.map +1 -0
  78. package/dist/content/empty.js +11 -0
  79. package/dist/content/empty.js.map +1 -0
  80. package/dist/content/field.d.ts +78 -0
  81. package/dist/content/field.d.ts.map +1 -0
  82. package/dist/content/field.js +52 -0
  83. package/dist/content/field.js.map +1 -0
  84. package/dist/content/geopoint.d.ts +14 -0
  85. package/dist/content/geopoint.d.ts.map +1 -0
  86. package/dist/content/geopoint.js +9 -0
  87. package/dist/content/geopoint.js.map +1 -0
  88. package/dist/content/group.d.ts +18 -0
  89. package/dist/content/group.d.ts.map +1 -0
  90. package/dist/content/group.js +19 -0
  91. package/dist/content/group.js.map +1 -0
  92. package/dist/content/image.d.ts +52 -0
  93. package/dist/content/image.d.ts.map +1 -0
  94. package/dist/content/image.js +10 -0
  95. package/dist/content/image.js.map +1 -0
  96. package/dist/content/integrationField.d.ts +11 -0
  97. package/dist/content/integrationField.d.ts.map +1 -0
  98. package/dist/content/integrationField.js +11 -0
  99. package/dist/content/integrationField.js.map +1 -0
  100. package/dist/content/legacy/boolean.js +7 -0
  101. package/dist/content/legacy/boolean.js.map +1 -0
  102. package/dist/content/legacy/document.js +15 -0
  103. package/dist/content/legacy/document.js.map +1 -0
  104. package/dist/content/legacy/embed.js +23 -0
  105. package/dist/content/legacy/embed.js.map +1 -0
  106. package/dist/content/legacy/empty.js +7 -0
  107. package/dist/content/legacy/empty.js.map +1 -0
  108. package/dist/content/legacy/field.js +7 -0
  109. package/dist/content/legacy/field.js.map +1 -0
  110. package/dist/content/legacy/geopoint.js +10 -0
  111. package/dist/content/legacy/geopoint.js.map +1 -0
  112. package/dist/content/legacy/group.js +10 -0
  113. package/dist/content/legacy/group.js.map +1 -0
  114. package/dist/content/legacy/image.d.ts +1 -0
  115. package/dist/content/legacy/image.js +33 -0
  116. package/dist/content/legacy/image.js.map +1 -0
  117. package/dist/content/legacy/integrationField.js +7 -0
  118. package/dist/content/legacy/integrationField.js.map +1 -0
  119. package/dist/content/legacy/link.js +88 -0
  120. package/dist/content/legacy/link.js.map +1 -0
  121. package/dist/content/legacy/nestable.js +32 -0
  122. package/dist/content/legacy/nestable.js.map +1 -0
  123. package/dist/content/legacy/repeatable.js +13 -0
  124. package/dist/content/legacy/repeatable.js.map +1 -0
  125. package/dist/content/legacy/richText.js +100 -0
  126. package/dist/content/legacy/richText.js.map +1 -0
  127. package/dist/content/legacy/separator.js +7 -0
  128. package/dist/content/legacy/separator.js.map +1 -0
  129. package/dist/content/legacy/slice.js +23 -0
  130. package/dist/content/legacy/slice.js.map +1 -0
  131. package/dist/content/legacy/slices.js +13 -0
  132. package/dist/content/legacy/slices.js.map +1 -0
  133. package/dist/content/legacy/table.js +19 -0
  134. package/dist/content/legacy/table.js.map +1 -0
  135. package/dist/content/legacy/uid.js +7 -0
  136. package/dist/content/legacy/uid.js.map +1 -0
  137. package/dist/content/link.d.ts +188 -0
  138. package/dist/content/link.d.ts.map +1 -0
  139. package/dist/content/link.js +50 -0
  140. package/dist/content/link.js.map +1 -0
  141. package/dist/content/nestable.d.ts +755 -0
  142. package/dist/content/nestable.d.ts.map +1 -0
  143. package/dist/content/nestable.js +38 -0
  144. package/dist/content/nestable.js.map +1 -0
  145. package/dist/content/repeatable.d.ts +192 -0
  146. package/dist/content/repeatable.d.ts.map +1 -0
  147. package/dist/content/repeatable.js +13 -0
  148. package/dist/content/repeatable.js.map +1 -0
  149. package/dist/content/richText.d.ts +141 -0
  150. package/dist/content/richText.d.ts.map +1 -0
  151. package/dist/content/richText.js +23 -0
  152. package/dist/content/richText.js.map +1 -0
  153. package/dist/content/separator.d.ts +10 -0
  154. package/dist/content/separator.d.ts.map +1 -0
  155. package/dist/content/separator.js +8 -0
  156. package/dist/content/separator.js.map +1 -0
  157. package/dist/content/slice.d.ts +4527 -0
  158. package/dist/content/slice.d.ts.map +1 -0
  159. package/dist/content/slice.js +27 -0
  160. package/dist/content/slice.js.map +1 -0
  161. package/dist/content/slices.d.ts +4536 -0
  162. package/dist/content/slices.d.ts.map +1 -0
  163. package/dist/content/slices.js +18 -0
  164. package/dist/content/slices.js.map +1 -0
  165. package/dist/content/table.d.ts +153 -0
  166. package/dist/content/table.d.ts.map +1 -0
  167. package/dist/content/table.js +13 -0
  168. package/dist/content/table.js.map +1 -0
  169. package/dist/content/uid.d.ts +11 -0
  170. package/dist/content/uid.d.ts.map +1 -0
  171. package/dist/content/uid.js +11 -0
  172. package/dist/content/uid.js.map +1 -0
  173. package/dist/content/widget.d.ts +3026 -0
  174. package/dist/content/widget.d.ts.map +1 -0
  175. package/dist/content/widget.js +16 -0
  176. package/dist/content/widget.js.map +1 -0
  177. package/dist/index.d.ts +50 -0
  178. package/dist/index.js +2 -0
  179. package/dist/io-ts.d.ts +68728 -0
  180. package/dist/io-ts.d.ts.map +1 -0
  181. package/dist/io-ts.js +215 -0
  182. package/dist/io-ts.js.map +1 -0
  183. package/dist/model/boolean.d.ts +16 -0
  184. package/dist/model/boolean.d.ts.map +1 -0
  185. package/dist/model/boolean.js +16 -0
  186. package/dist/model/boolean.js.map +1 -0
  187. package/dist/model/color.d.ts +15 -0
  188. package/dist/model/color.d.ts.map +1 -0
  189. package/dist/model/color.js +15 -0
  190. package/dist/model/color.js.map +1 -0
  191. package/dist/model/customType.d.ts +3357 -0
  192. package/dist/model/customType.d.ts.map +1 -0
  193. package/dist/model/customType.js +18 -0
  194. package/dist/model/customType.js.map +1 -0
  195. package/dist/model/date.d.ts +16 -0
  196. package/dist/model/date.d.ts.map +1 -0
  197. package/dist/model/date.js +16 -0
  198. package/dist/model/date.js.map +1 -0
  199. package/dist/model/embed.d.ts +16 -0
  200. package/dist/model/embed.d.ts.map +1 -0
  201. package/dist/model/embed.js +16 -0
  202. package/dist/model/embed.js.map +1 -0
  203. package/dist/model/geopoint.d.ts +14 -0
  204. package/dist/model/geopoint.d.ts.map +1 -0
  205. package/dist/model/geopoint.js +12 -0
  206. package/dist/model/geopoint.js.map +1 -0
  207. package/dist/model/group.d.ts +568 -0
  208. package/dist/model/group.d.ts.map +1 -0
  209. package/dist/model/group.js +23 -0
  210. package/dist/model/group.js.map +1 -0
  211. package/dist/model/image.d.ts +24 -0
  212. package/dist/model/image.d.ts.map +1 -0
  213. package/dist/model/image.js +41 -0
  214. package/dist/model/image.js.map +1 -0
  215. package/dist/model/integrationField.d.ts +16 -0
  216. package/dist/model/integrationField.d.ts.map +1 -0
  217. package/dist/model/integrationField.js +16 -0
  218. package/dist/model/integrationField.js.map +1 -0
  219. package/dist/model/link.d.ts +48 -0
  220. package/dist/model/link.d.ts.map +1 -0
  221. package/dist/model/link.js +94 -0
  222. package/dist/model/link.js.map +1 -0
  223. package/dist/model/nestable.d.ts +184 -0
  224. package/dist/model/nestable.d.ts.map +1 -0
  225. package/dist/model/nestable.js +40 -0
  226. package/dist/model/nestable.js.map +1 -0
  227. package/dist/model/number.d.ts +18 -0
  228. package/dist/model/number.d.ts.map +1 -0
  229. package/dist/model/number.js +19 -0
  230. package/dist/model/number.js.map +1 -0
  231. package/dist/model/range.d.ts +18 -0
  232. package/dist/model/range.d.ts.map +1 -0
  233. package/dist/model/range.js +19 -0
  234. package/dist/model/range.js.map +1 -0
  235. package/dist/model/richText.d.ts +28 -0
  236. package/dist/model/richText.d.ts.map +1 -0
  237. package/dist/model/richText.js +72 -0
  238. package/dist/model/richText.js.map +1 -0
  239. package/dist/model/section.d.ts +3337 -0
  240. package/dist/model/section.d.ts.map +1 -0
  241. package/dist/model/section.js +10 -0
  242. package/dist/model/section.js.map +1 -0
  243. package/dist/model/select.d.ts +17 -0
  244. package/dist/model/select.d.ts.map +1 -0
  245. package/dist/model/select.js +22 -0
  246. package/dist/model/select.js.map +1 -0
  247. package/dist/model/separator.d.ts +13 -0
  248. package/dist/model/separator.d.ts.map +1 -0
  249. package/dist/model/separator.js +11 -0
  250. package/dist/model/separator.js.map +1 -0
  251. package/dist/model/slice.d.ts +3681 -0
  252. package/dist/model/slice.d.ts.map +1 -0
  253. package/dist/model/slice.js +54 -0
  254. package/dist/model/slice.js.map +1 -0
  255. package/dist/model/slices.d.ts +2225 -0
  256. package/dist/model/slices.d.ts.map +1 -0
  257. package/dist/model/slices.js +29 -0
  258. package/dist/model/slices.js.map +1 -0
  259. package/dist/model/table.d.ts +13 -0
  260. package/dist/model/table.d.ts.map +1 -0
  261. package/dist/model/table.js +17 -0
  262. package/dist/model/table.js.map +1 -0
  263. package/dist/model/text.d.ts +16 -0
  264. package/dist/model/text.d.ts.map +1 -0
  265. package/dist/model/text.js +16 -0
  266. package/dist/model/text.js.map +1 -0
  267. package/dist/model/timestamp.d.ts +16 -0
  268. package/dist/model/timestamp.d.ts.map +1 -0
  269. package/dist/model/timestamp.js +16 -0
  270. package/dist/model/timestamp.js.map +1 -0
  271. package/dist/model/uid.d.ts +16 -0
  272. package/dist/model/uid.d.ts.map +1 -0
  273. package/dist/model/uid.js +16 -0
  274. package/dist/model/uid.js.map +1 -0
  275. package/dist/model/widget.d.ts +3360 -0
  276. package/dist/model/widget.d.ts.map +1 -0
  277. package/dist/model/widget.js +44 -0
  278. package/dist/model/widget.js.map +1 -0
  279. package/dist/zod4.d.ts +33521 -0
  280. package/dist/zod4.d.ts.map +1 -0
  281. package/dist/zod4.js +127 -0
  282. package/dist/zod4.js.map +1 -0
  283. package/package.json +54 -58
  284. package/src/common/asset.ts +29 -0
  285. package/src/common/embed.ts +27 -0
  286. package/src/common/hexaColorCode.ts +11 -0
  287. package/src/common/nonEmptyString.ts +9 -0
  288. package/src/common/widgetKey.ts +11 -0
  289. package/src/content/boolean.ts +23 -0
  290. package/src/content/codec/boolean.ts +38 -0
  291. package/src/content/codec/document.ts +60 -0
  292. package/src/content/codec/embed.ts +55 -0
  293. package/src/content/codec/empty.ts +49 -0
  294. package/src/content/codec/field.ts +96 -0
  295. package/src/content/codec/geopoint.ts +40 -0
  296. package/src/content/codec/group.ts +163 -0
  297. package/src/content/codec/image.ts +50 -0
  298. package/src/content/codec/integrationField.ts +38 -0
  299. package/src/content/{LegacyContentCtx.ts → codec/legacyContentCtx.ts} +25 -15
  300. package/src/content/codec/link.ts +103 -0
  301. package/src/content/codec/nestable.ts +146 -0
  302. package/src/content/codec/repeatable.ts +68 -0
  303. package/src/content/codec/richText.ts +113 -0
  304. package/src/content/codec/separator.ts +33 -0
  305. package/src/content/codec/slice.ts +274 -0
  306. package/src/content/codec/slices.ts +130 -0
  307. package/src/content/codec/table.ts +65 -0
  308. package/src/content/codec/uid.ts +36 -0
  309. package/src/content/codec/widget.ts +58 -0
  310. package/src/content/document.ts +8 -0
  311. package/src/content/embed.ts +12 -0
  312. package/src/content/empty.ts +10 -0
  313. package/src/content/field.ts +87 -0
  314. package/src/content/geopoint.ts +11 -0
  315. package/src/content/group.ts +96 -0
  316. package/src/content/image.ts +103 -0
  317. package/src/content/integrationField.ts +10 -0
  318. package/src/content/legacy/boolean.ts +5 -0
  319. package/src/content/legacy/document.ts +25 -0
  320. package/src/content/legacy/embed.ts +23 -0
  321. package/src/content/legacy/empty.ts +10 -0
  322. package/src/content/legacy/field.ts +8 -0
  323. package/src/content/legacy/geopoint.ts +10 -0
  324. package/src/content/legacy/group.ts +15 -0
  325. package/src/content/legacy/image.ts +43 -0
  326. package/src/content/legacy/integrationField.ts +5 -0
  327. package/src/content/legacy/link.ts +171 -0
  328. package/src/content/legacy/nestable.ts +31 -0
  329. package/src/content/legacy/repeatable.ts +20 -0
  330. package/src/content/legacy/richText.ts +165 -0
  331. package/src/content/legacy/separator.ts +6 -0
  332. package/src/content/legacy/slice.ts +37 -0
  333. package/src/content/legacy/slices.ts +17 -0
  334. package/src/content/legacy/table.ts +39 -0
  335. package/src/content/legacy/uid.ts +6 -0
  336. package/src/content/legacy/widget.ts +15 -0
  337. package/src/content/link.ts +131 -0
  338. package/src/content/nestable.ts +64 -0
  339. package/src/content/repeatable.ts +13 -0
  340. package/src/content/richText.ts +32 -0
  341. package/src/content/separator.ts +9 -0
  342. package/src/content/slice.ts +41 -0
  343. package/src/content/slices.ts +23 -0
  344. package/src/content/table.ts +14 -0
  345. package/src/content/uid.ts +10 -0
  346. package/src/content/utils.ts +37 -105
  347. package/src/content/widget.ts +17 -0
  348. package/src/content/{fields/withDefaultValues.ts → withDefaultValues.ts} +34 -39
  349. package/src/index.ts +78 -0
  350. package/src/io-ts.ts +313 -0
  351. package/src/model/boolean.ts +15 -0
  352. package/src/model/color.ts +14 -0
  353. package/src/model/customType.ts +26 -0
  354. package/src/model/date.ts +15 -0
  355. package/src/model/diff/index.ts +4 -0
  356. package/src/{customtypes/diff/SharedSlice.ts → model/diff/sharedSlice.ts} +16 -18
  357. package/src/model/diff/utils.ts +45 -0
  358. package/src/model/diff/variation.ts +152 -0
  359. package/src/model/diff/widgets.ts +15 -0
  360. package/src/model/embed.ts +15 -0
  361. package/src/model/geopoint.ts +13 -0
  362. package/src/model/group.ts +36 -0
  363. package/src/model/image.ts +54 -0
  364. package/src/model/integrationField.ts +15 -0
  365. package/src/model/link.ts +147 -0
  366. package/src/model/nestable.ts +39 -0
  367. package/src/model/number.ts +26 -0
  368. package/src/model/range.ts +26 -0
  369. package/src/model/richText.ts +106 -0
  370. package/src/model/section.ts +12 -0
  371. package/src/model/select.ts +30 -0
  372. package/src/model/separator.ts +12 -0
  373. package/src/model/slice.ts +94 -0
  374. package/src/model/slices.ts +54 -0
  375. package/src/model/table.ts +20 -0
  376. package/src/model/text.ts +15 -0
  377. package/src/model/timestamp.ts +15 -0
  378. package/src/model/uid.ts +15 -0
  379. package/src/model/widget.ts +52 -0
  380. package/src/zod4.ts +153 -0
  381. package/lib/common/Asset.d.ts +0 -16
  382. package/lib/common/Asset.js +0 -11
  383. package/lib/common/Embed.d.ts +0 -15
  384. package/lib/common/Embed.js +0 -10
  385. package/lib/common/HexaColorCode.d.ts +0 -4
  386. package/lib/common/HexaColorCode.js +0 -7
  387. package/lib/common/UUID.d.ts +0 -6
  388. package/lib/common/UUID.js +0 -8
  389. package/lib/common/WidgetKey.d.ts +0 -3
  390. package/lib/common/WidgetKey.js +0 -8
  391. package/lib/common/index.d.ts +0 -3
  392. package/lib/common/index.js +0 -6
  393. package/lib/content/Document.d.ts +0 -11813
  394. package/lib/content/Document.js +0 -364
  395. package/lib/content/LegacyContentCtx.d.ts +0 -64
  396. package/lib/content/LegacyContentCtx.js +0 -130
  397. package/lib/content/fields/EmptyContent.d.ts +0 -16
  398. package/lib/content/fields/EmptyContent.js +0 -30
  399. package/lib/content/fields/GroupContent.d.ts +0 -53
  400. package/lib/content/fields/GroupContent.js +0 -307
  401. package/lib/content/fields/UIDContent.d.ts +0 -16
  402. package/lib/content/fields/UIDContent.js +0 -25
  403. package/lib/content/fields/WidgetContent.d.ts +0 -11749
  404. package/lib/content/fields/WidgetContent.js +0 -57
  405. package/lib/content/fields/index.d.ts +0 -6
  406. package/lib/content/fields/index.js +0 -9
  407. package/lib/content/fields/nestable/BooleanContent.d.ts +0 -18
  408. package/lib/content/fields/nestable/BooleanContent.js +0 -35
  409. package/lib/content/fields/nestable/EmbedContent.d.ts +0 -78
  410. package/lib/content/fields/nestable/EmbedContent.js +0 -56
  411. package/lib/content/fields/nestable/FieldContent/ColorContent.d.ts +0 -18
  412. package/lib/content/fields/nestable/FieldContent/ColorContent.js +0 -35
  413. package/lib/content/fields/nestable/FieldContent/DateContent.d.ts +0 -18
  414. package/lib/content/fields/nestable/FieldContent/DateContent.js +0 -35
  415. package/lib/content/fields/nestable/FieldContent/NumberContent.d.ts +0 -18
  416. package/lib/content/fields/nestable/FieldContent/NumberContent.js +0 -35
  417. package/lib/content/fields/nestable/FieldContent/RangeContent.d.ts +0 -18
  418. package/lib/content/fields/nestable/FieldContent/RangeContent.js +0 -35
  419. package/lib/content/fields/nestable/FieldContent/SelectContent.d.ts +0 -20
  420. package/lib/content/fields/nestable/FieldContent/SelectContent.js +0 -46
  421. package/lib/content/fields/nestable/FieldContent/TextContent.d.ts +0 -18
  422. package/lib/content/fields/nestable/FieldContent/TextContent.js +0 -35
  423. package/lib/content/fields/nestable/FieldContent/TimestampContent.d.ts +0 -18
  424. package/lib/content/fields/nestable/FieldContent/TimestampContent.js +0 -35
  425. package/lib/content/fields/nestable/FieldContent/common.d.ts +0 -1
  426. package/lib/content/fields/nestable/FieldContent/common.js +0 -4
  427. package/lib/content/fields/nestable/FieldContent/index.d.ts +0 -49
  428. package/lib/content/fields/nestable/FieldContent/index.js +0 -38
  429. package/lib/content/fields/nestable/GeoPointContent.d.ts +0 -33
  430. package/lib/content/fields/nestable/GeoPointContent.js +0 -31
  431. package/lib/content/fields/nestable/ImageContent.d.ts +0 -252
  432. package/lib/content/fields/nestable/ImageContent.js +0 -122
  433. package/lib/content/fields/nestable/IntegrationFieldContent.d.ts +0 -16
  434. package/lib/content/fields/nestable/IntegrationFieldContent.js +0 -28
  435. package/lib/content/fields/nestable/LinkContent.d.ts +0 -919
  436. package/lib/content/fields/nestable/LinkContent.js +0 -399
  437. package/lib/content/fields/nestable/NestableContent.d.ts +0 -1953
  438. package/lib/content/fields/nestable/NestableContent.js +0 -167
  439. package/lib/content/fields/nestable/RepeatableContent.d.ts +0 -182
  440. package/lib/content/fields/nestable/RepeatableContent.js +0 -146
  441. package/lib/content/fields/nestable/RichTextContent/Blocks.d.ts +0 -1261
  442. package/lib/content/fields/nestable/RichTextContent/Blocks.js +0 -170
  443. package/lib/content/fields/nestable/RichTextContent/index.d.ts +0 -1004
  444. package/lib/content/fields/nestable/RichTextContent/index.js +0 -28
  445. package/lib/content/fields/nestable/SeparatorContent.d.ts +0 -13
  446. package/lib/content/fields/nestable/SeparatorContent.js +0 -22
  447. package/lib/content/fields/nestable/TableContent.d.ts +0 -776
  448. package/lib/content/fields/nestable/TableContent.js +0 -167
  449. package/lib/content/fields/nestable/index.d.ts +0 -12
  450. package/lib/content/fields/nestable/index.js +0 -15
  451. package/lib/content/fields/slices/Slice/CompositeSliceContent.d.ts +0 -3934
  452. package/lib/content/fields/slices/Slice/CompositeSliceContent.js +0 -195
  453. package/lib/content/fields/slices/Slice/RepeatableContent.d.ts +0 -774
  454. package/lib/content/fields/slices/Slice/RepeatableContent.js +0 -21
  455. package/lib/content/fields/slices/Slice/SharedSliceContent.d.ts +0 -3937
  456. package/lib/content/fields/slices/Slice/SharedSliceContent.js +0 -215
  457. package/lib/content/fields/slices/Slice/SimpleSliceContent.d.ts +0 -1962
  458. package/lib/content/fields/slices/Slice/SimpleSliceContent.js +0 -130
  459. package/lib/content/fields/slices/Slice/SlicePrimaryContent.d.ts +0 -1952
  460. package/lib/content/fields/slices/Slice/SlicePrimaryContent.js +0 -30
  461. package/lib/content/fields/slices/Slice/index.d.ts +0 -6810
  462. package/lib/content/fields/slices/Slice/index.js +0 -45
  463. package/lib/content/fields/slices/SliceItem.d.ts +0 -6846
  464. package/lib/content/fields/slices/SliceItem.js +0 -116
  465. package/lib/content/fields/slices/SlicesContent.d.ts +0 -9827
  466. package/lib/content/fields/slices/SlicesContent.js +0 -465
  467. package/lib/content/fields/slices/index.d.ts +0 -3
  468. package/lib/content/fields/slices/index.js +0 -6
  469. package/lib/content/fields/withDefaultValues.d.ts +0 -9
  470. package/lib/content/fields/withDefaultValues.js +0 -79
  471. package/lib/content/helpers.d.ts +0 -9
  472. package/lib/content/helpers.js +0 -22
  473. package/lib/content/index.d.ts +0 -4
  474. package/lib/content/index.js +0 -7
  475. package/lib/content/utils.d.ts +0 -50
  476. package/lib/content/utils.js +0 -35
  477. package/lib/customtypes/CustomType.d.ts +0 -3680
  478. package/lib/customtypes/CustomType.js +0 -184
  479. package/lib/customtypes/Section.d.ts +0 -3635
  480. package/lib/customtypes/Section.js +0 -66
  481. package/lib/customtypes/diff/Changes.d.ts +0 -17
  482. package/lib/customtypes/diff/Changes.js +0 -9
  483. package/lib/customtypes/diff/SharedSlice.d.ts +0 -1624
  484. package/lib/customtypes/diff/SharedSlice.js +0 -55
  485. package/lib/customtypes/diff/Variation.d.ts +0 -1605
  486. package/lib/customtypes/diff/Variation.js +0 -113
  487. package/lib/customtypes/diff/Widgets.d.ts +0 -11
  488. package/lib/customtypes/diff/Widgets.js +0 -2
  489. package/lib/customtypes/diff/index.d.ts +0 -4
  490. package/lib/customtypes/diff/index.js +0 -7
  491. package/lib/customtypes/index.d.ts +0 -4
  492. package/lib/customtypes/index.js +0 -7
  493. package/lib/customtypes/widgets/Group.d.ts +0 -1352
  494. package/lib/customtypes/widgets/Group.js +0 -92
  495. package/lib/customtypes/widgets/UID.d.ts +0 -19
  496. package/lib/customtypes/widgets/UID.js +0 -21
  497. package/lib/customtypes/widgets/Widget.d.ts +0 -4457
  498. package/lib/customtypes/widgets/Widget.js +0 -49
  499. package/lib/customtypes/widgets/index.d.ts +0 -6
  500. package/lib/customtypes/widgets/index.js +0 -9
  501. package/lib/customtypes/widgets/nestable/BooleanField.d.ts +0 -20
  502. package/lib/customtypes/widgets/nestable/BooleanField.js +0 -21
  503. package/lib/customtypes/widgets/nestable/Color.d.ts +0 -17
  504. package/lib/customtypes/widgets/nestable/Color.js +0 -20
  505. package/lib/customtypes/widgets/nestable/Date.d.ts +0 -19
  506. package/lib/customtypes/widgets/nestable/Date.js +0 -21
  507. package/lib/customtypes/widgets/nestable/Embed.d.ts +0 -19
  508. package/lib/customtypes/widgets/nestable/Embed.js +0 -21
  509. package/lib/customtypes/widgets/nestable/GeoPoint.d.ts +0 -15
  510. package/lib/customtypes/widgets/nestable/GeoPoint.js +0 -19
  511. package/lib/customtypes/widgets/nestable/Image.d.ts +0 -44
  512. package/lib/customtypes/widgets/nestable/Image.js +0 -29
  513. package/lib/customtypes/widgets/nestable/IntegrationField.d.ts +0 -19
  514. package/lib/customtypes/widgets/nestable/IntegrationField.js +0 -21
  515. package/lib/customtypes/widgets/nestable/Link.d.ts +0 -196
  516. package/lib/customtypes/widgets/nestable/Link.js +0 -167
  517. package/lib/customtypes/widgets/nestable/NestableWidget.d.ts +0 -217
  518. package/lib/customtypes/widgets/nestable/NestableWidget.js +0 -39
  519. package/lib/customtypes/widgets/nestable/Number.d.ts +0 -23
  520. package/lib/customtypes/widgets/nestable/Number.js +0 -24
  521. package/lib/customtypes/widgets/nestable/Range.d.ts +0 -23
  522. package/lib/customtypes/widgets/nestable/Range.js +0 -24
  523. package/lib/customtypes/widgets/nestable/RichText.d.ts +0 -73
  524. package/lib/customtypes/widgets/nestable/RichText.js +0 -131
  525. package/lib/customtypes/widgets/nestable/Select.d.ts +0 -21
  526. package/lib/customtypes/widgets/nestable/Select.js +0 -22
  527. package/lib/customtypes/widgets/nestable/Separator.d.ts +0 -14
  528. package/lib/customtypes/widgets/nestable/Separator.js +0 -18
  529. package/lib/customtypes/widgets/nestable/Table.d.ts +0 -21
  530. package/lib/customtypes/widgets/nestable/Table.js +0 -30
  531. package/lib/customtypes/widgets/nestable/Text.d.ts +0 -19
  532. package/lib/customtypes/widgets/nestable/Text.js +0 -21
  533. package/lib/customtypes/widgets/nestable/Timestamp.d.ts +0 -19
  534. package/lib/customtypes/widgets/nestable/Timestamp.js +0 -21
  535. package/lib/customtypes/widgets/nestable/index.d.ts +0 -17
  536. package/lib/customtypes/widgets/nestable/index.js +0 -20
  537. package/lib/customtypes/widgets/shared/ImageConstraint.d.ts +0 -7
  538. package/lib/customtypes/widgets/shared/ImageConstraint.js +0 -31
  539. package/lib/customtypes/widgets/shared/index.d.ts +0 -1
  540. package/lib/customtypes/widgets/shared/index.js +0 -8
  541. package/lib/customtypes/widgets/slices/CompositeSlice.d.ts +0 -455
  542. package/lib/customtypes/widgets/slices/CompositeSlice.js +0 -63
  543. package/lib/customtypes/widgets/slices/LegacySlice.d.ts +0 -442
  544. package/lib/customtypes/widgets/slices/LegacySlice.js +0 -12
  545. package/lib/customtypes/widgets/slices/SharedSlice.d.ts +0 -1807
  546. package/lib/customtypes/widgets/slices/SharedSlice.js +0 -118
  547. package/lib/customtypes/widgets/slices/SharedSliceRef.d.ts +0 -5
  548. package/lib/customtypes/widgets/slices/SharedSliceRef.js +0 -9
  549. package/lib/customtypes/widgets/slices/Slice.d.ts +0 -6
  550. package/lib/customtypes/widgets/slices/Slice.js +0 -2
  551. package/lib/customtypes/widgets/slices/SlicePrimaryWidget.d.ts +0 -1259
  552. package/lib/customtypes/widgets/slices/SlicePrimaryWidget.js +0 -10
  553. package/lib/customtypes/widgets/slices/Slices.d.ts +0 -5917
  554. package/lib/customtypes/widgets/slices/Slices.js +0 -146
  555. package/lib/customtypes/widgets/slices/SlicesTypes.d.ts +0 -6
  556. package/lib/customtypes/widgets/slices/SlicesTypes.js +0 -11
  557. package/lib/customtypes/widgets/slices/index.d.ts +0 -8
  558. package/lib/customtypes/widgets/slices/index.js +0 -11
  559. package/lib/utils/Arrays.d.ts +0 -1
  560. package/lib/utils/Arrays.js +0 -13
  561. package/lib/utils/DocumentId.d.ts +0 -2
  562. package/lib/utils/DocumentId.js +0 -7
  563. package/lib/utils/Fields.d.ts +0 -6
  564. package/lib/utils/Fields.js +0 -2
  565. package/lib/utils/Objects.d.ts +0 -8
  566. package/lib/utils/Objects.js +0 -42
  567. package/lib/utils/index.d.ts +0 -4
  568. package/lib/utils/index.js +0 -8
  569. package/lib/validators/BasicTypes.d.ts +0 -10
  570. package/lib/validators/BasicTypes.js +0 -25
  571. package/lib/validators/DateFromString.d.ts +0 -3
  572. package/lib/validators/DateFromString.js +0 -11
  573. package/lib/validators/DateFromStringOrNumber.d.ts +0 -3
  574. package/lib/validators/DateFromStringOrNumber.js +0 -10
  575. package/lib/validators/DateFromTsMs.d.ts +0 -3
  576. package/lib/validators/DateFromTsMs.js +0 -10
  577. package/lib/validators/DefaultOrElse.d.ts +0 -5
  578. package/lib/validators/DefaultOrElse.js +0 -21
  579. package/lib/validators/IntFromNumber.d.ts +0 -5
  580. package/lib/validators/IntFromNumber.js +0 -14
  581. package/lib/validators/IntFromPixels.d.ts +0 -8
  582. package/lib/validators/IntFromPixels.js +0 -24
  583. package/lib/validators/NonEmptyString.d.ts +0 -3
  584. package/lib/validators/NonEmptyString.js +0 -6
  585. package/lib/validators/NonEmptyStringOrNull.d.ts +0 -3
  586. package/lib/validators/NonEmptyStringOrNull.js +0 -15
  587. package/lib/validators/NumberOrNull.d.ts +0 -3
  588. package/lib/validators/NumberOrNull.js +0 -6
  589. package/lib/validators/NumberRange.d.ts +0 -32
  590. package/lib/validators/NumberRange.js +0 -40
  591. package/lib/validators/StringFromBoolean.d.ts +0 -5
  592. package/lib/validators/StringFromBoolean.js +0 -10
  593. package/lib/validators/StringFromNumber.d.ts +0 -5
  594. package/lib/validators/StringFromNumber.js +0 -10
  595. package/lib/validators/StringOrNull.d.ts +0 -3
  596. package/lib/validators/StringOrNull.js +0 -6
  597. package/lib/validators/TrimmedString.d.ts +0 -5
  598. package/lib/validators/TrimmedString.js +0 -23
  599. package/lib/validators/function.d.ts +0 -34
  600. package/lib/validators/function.js +0 -100
  601. package/lib/validators/index.d.ts +0 -15
  602. package/lib/validators/index.js +0 -31
  603. package/src/common/Asset.ts +0 -25
  604. package/src/common/Embed.ts +0 -22
  605. package/src/common/HexaColorCode.ts +0 -11
  606. package/src/common/UUID.ts +0 -19
  607. package/src/common/WidgetKey.ts +0 -13
  608. package/src/common/index.ts +0 -3
  609. package/src/content/Document.ts +0 -539
  610. package/src/content/fields/EmptyContent.ts +0 -45
  611. package/src/content/fields/GroupContent.ts +0 -466
  612. package/src/content/fields/UIDContent.ts +0 -42
  613. package/src/content/fields/WidgetContent.ts +0 -76
  614. package/src/content/fields/index.ts +0 -6
  615. package/src/content/fields/nestable/BooleanContent.ts +0 -52
  616. package/src/content/fields/nestable/EmbedContent.ts +0 -74
  617. package/src/content/fields/nestable/FieldContent/ColorContent.ts +0 -49
  618. package/src/content/fields/nestable/FieldContent/DateContent.ts +0 -49
  619. package/src/content/fields/nestable/FieldContent/NumberContent.ts +0 -49
  620. package/src/content/fields/nestable/FieldContent/RangeContent.ts +0 -49
  621. package/src/content/fields/nestable/FieldContent/SelectContent.ts +0 -60
  622. package/src/content/fields/nestable/FieldContent/TextContent.ts +0 -49
  623. package/src/content/fields/nestable/FieldContent/TimestampContent.ts +0 -49
  624. package/src/content/fields/nestable/FieldContent/common.ts +0 -1
  625. package/src/content/fields/nestable/FieldContent/index.ts +0 -40
  626. package/src/content/fields/nestable/GeoPointContent.ts +0 -48
  627. package/src/content/fields/nestable/ImageContent.ts +0 -196
  628. package/src/content/fields/nestable/IntegrationFieldContent.ts +0 -51
  629. package/src/content/fields/nestable/LinkContent.ts +0 -651
  630. package/src/content/fields/nestable/NestableContent.ts +0 -241
  631. package/src/content/fields/nestable/RepeatableContent.ts +0 -224
  632. package/src/content/fields/nestable/RichTextContent/Blocks.ts +0 -238
  633. package/src/content/fields/nestable/RichTextContent/index.ts +0 -42
  634. package/src/content/fields/nestable/SeparatorContent.ts +0 -34
  635. package/src/content/fields/nestable/TableContent.ts +0 -234
  636. package/src/content/fields/nestable/index.ts +0 -12
  637. package/src/content/fields/slices/Slice/CompositeSliceContent.ts +0 -293
  638. package/src/content/fields/slices/Slice/RepeatableContent.ts +0 -29
  639. package/src/content/fields/slices/Slice/SharedSliceContent.ts +0 -305
  640. package/src/content/fields/slices/Slice/SimpleSliceContent.ts +0 -180
  641. package/src/content/fields/slices/Slice/SlicePrimaryContent.ts +0 -40
  642. package/src/content/fields/slices/Slice/index.ts +0 -52
  643. package/src/content/fields/slices/SliceItem.ts +0 -184
  644. package/src/content/fields/slices/SlicesContent.ts +0 -677
  645. package/src/content/fields/slices/index.ts +0 -3
  646. package/src/content/helpers.ts +0 -25
  647. package/src/content/index.ts +0 -4
  648. package/src/customtypes/CustomType.ts +0 -280
  649. package/src/customtypes/Section.ts +0 -98
  650. package/src/customtypes/diff/Variation.ts +0 -167
  651. package/src/customtypes/diff/Widgets.ts +0 -17
  652. package/src/customtypes/diff/index.ts +0 -4
  653. package/src/customtypes/index.ts +0 -4
  654. package/src/customtypes/widgets/Group.ts +0 -120
  655. package/src/customtypes/widgets/UID.ts +0 -27
  656. package/src/customtypes/widgets/Widget.ts +0 -83
  657. package/src/customtypes/widgets/index.ts +0 -6
  658. package/src/customtypes/widgets/nestable/BooleanField.ts +0 -29
  659. package/src/customtypes/widgets/nestable/Color.ts +0 -25
  660. package/src/customtypes/widgets/nestable/Date.ts +0 -27
  661. package/src/customtypes/widgets/nestable/Embed.ts +0 -27
  662. package/src/customtypes/widgets/nestable/GeoPoint.ts +0 -25
  663. package/src/customtypes/widgets/nestable/Image.ts +0 -39
  664. package/src/customtypes/widgets/nestable/IntegrationField.ts +0 -26
  665. package/src/customtypes/widgets/nestable/Link.ts +0 -313
  666. package/src/customtypes/widgets/nestable/NestableWidget.ts +0 -40
  667. package/src/customtypes/widgets/nestable/Number.ts +0 -30
  668. package/src/customtypes/widgets/nestable/Range.ts +0 -30
  669. package/src/customtypes/widgets/nestable/RichText.ts +0 -215
  670. package/src/customtypes/widgets/nestable/Select.ts +0 -34
  671. package/src/customtypes/widgets/nestable/Separator.ts +0 -24
  672. package/src/customtypes/widgets/nestable/Table.ts +0 -38
  673. package/src/customtypes/widgets/nestable/Text.ts +0 -27
  674. package/src/customtypes/widgets/nestable/Timestamp.ts +0 -27
  675. package/src/customtypes/widgets/nestable/index.ts +0 -17
  676. package/src/customtypes/widgets/shared/ImageConstraint.ts +0 -41
  677. package/src/customtypes/widgets/shared/index.ts +0 -1
  678. package/src/customtypes/widgets/slices/CompositeSlice.ts +0 -79
  679. package/src/customtypes/widgets/slices/LegacySlice.ts +0 -15
  680. package/src/customtypes/widgets/slices/SharedSlice.ts +0 -152
  681. package/src/customtypes/widgets/slices/SharedSliceRef.ts +0 -10
  682. package/src/customtypes/widgets/slices/Slice.ts +0 -7
  683. package/src/customtypes/widgets/slices/SlicePrimaryWidget.ts +0 -12
  684. package/src/customtypes/widgets/slices/Slices.ts +0 -184
  685. package/src/customtypes/widgets/slices/SlicesTypes.ts +0 -11
  686. package/src/customtypes/widgets/slices/index.ts +0 -8
  687. package/src/utils/Arrays.ts +0 -12
  688. package/src/utils/DocumentId.ts +0 -8
  689. package/src/utils/Fields.ts +0 -4
  690. package/src/utils/Objects.ts +0 -53
  691. package/src/utils/index.ts +0 -4
  692. package/src/validators/BasicTypes.ts +0 -55
  693. package/src/validators/DateFromString.ts +0 -19
  694. package/src/validators/DateFromStringOrNumber.ts +0 -17
  695. package/src/validators/DateFromTsMs.ts +0 -17
  696. package/src/validators/DefaultOrElse.ts +0 -24
  697. package/src/validators/IntFromNumber.ts +0 -22
  698. package/src/validators/IntFromPixels.ts +0 -32
  699. package/src/validators/NonEmptyString.ts +0 -8
  700. package/src/validators/NonEmptyStringOrNull.ts +0 -22
  701. package/src/validators/NumberOrNull.ts +0 -5
  702. package/src/validators/NumberRange.ts +0 -51
  703. package/src/validators/StringFromBoolean.ts +0 -19
  704. package/src/validators/StringFromNumber.ts +0 -19
  705. package/src/validators/StringOrNull.ts +0 -5
  706. package/src/validators/TrimmedString.ts +0 -33
  707. package/src/validators/function.ts +0 -115
  708. package/src/validators/index.ts +0 -15
  709. /package/src/{customtypes/diff/Changes.ts → model/diff/changes.ts} +0 -0
@@ -0,0 +1,130 @@
1
+ import { SliceItemLegacySchema, SlicesLegacySchema } from "../legacy/slices"
2
+ import type { SliceItemLegacy, SlicesLegacy } from "../legacy/slices"
3
+ import { SliceItemContentSchema, SlicesContentSchema, SlicesContentType } from "../slices"
4
+ import type { SliceItemContent, SlicesContent } from "../slices"
5
+ import { type LegacyContentCtx, type LegacyCodec, getFieldCtx } from "./legacyContentCtx"
6
+ import { SliceLegacyCodec } from "./slice"
7
+
8
+ // Item
9
+ export const SliceItemLegacyCodec = (
10
+ ctx: LegacyContentCtx,
11
+ ): LegacyCodec<SliceItemContent, SliceItemLegacy> => ({
12
+ name: "SlicesItemLegacy",
13
+
14
+ is(input): input is SliceItemContent {
15
+ return SliceItemContentSchema.safeParse(input).success
16
+ },
17
+
18
+ decode(input) {
19
+ const parsed = SliceItemLegacySchema.safeParse(input)
20
+ if (!parsed.success) {
21
+ return parsed
22
+ }
23
+
24
+ const sliceName = parsed.data.key.split("$")[0]
25
+ const itemCtx = getFieldCtx({
26
+ fieldKey: sliceName,
27
+ contentKey: parsed.data.key,
28
+ ctx,
29
+ })
30
+ const result = SliceLegacyCodec(itemCtx).decode(parsed.data.value)
31
+
32
+ if (!result.success) {
33
+ return result
34
+ }
35
+
36
+ return {
37
+ success: true,
38
+ data: {
39
+ key: parsed.data.key,
40
+ name: sliceName,
41
+ maybeLabel: parsed.data.label || undefined,
42
+ widget: result.data,
43
+ },
44
+ }
45
+ },
46
+
47
+ encode(input) {
48
+ const itemCtx = getFieldCtx({
49
+ fieldKey: input.name,
50
+ contentKey: input.key,
51
+ ctx,
52
+ })
53
+ const result = SliceLegacyCodec(itemCtx).encode(input.widget)
54
+
55
+ if (!result) {
56
+ return {
57
+ content: {
58
+ key: input.key,
59
+ label: input.maybeLabel,
60
+ value: {},
61
+ },
62
+ types: {},
63
+ keys: {},
64
+ }
65
+ }
66
+
67
+ return {
68
+ content: {
69
+ key: input.key,
70
+ label: input.maybeLabel,
71
+ value: result.content,
72
+ },
73
+ types: result.types,
74
+ keys: result.keys,
75
+ }
76
+ },
77
+ })
78
+
79
+ // Slices
80
+ export const SlicesLegacyCodec = (
81
+ ctx: LegacyContentCtx,
82
+ ): LegacyCodec<SlicesContent, SlicesLegacy> => ({
83
+ name: "SlicesLegacy",
84
+
85
+ is(input): input is SlicesContent {
86
+ return SlicesContentSchema.safeParse(input).success
87
+ },
88
+
89
+ decode(input) {
90
+ const parsed = SlicesLegacySchema.safeParse(input)
91
+ if (!parsed.success) {
92
+ return parsed
93
+ }
94
+
95
+ const value: SlicesContent["value"] = []
96
+ for (let index = 0; index < parsed.data.length; index++) {
97
+ const item = parsed.data[index]
98
+ const result = SliceItemLegacyCodec(ctx).decode(item)
99
+ if (!result.success) {
100
+ return result
101
+ }
102
+ value.push(result.data)
103
+ }
104
+
105
+ return {
106
+ success: true,
107
+ data: { __TYPE__: SlicesContentType, value },
108
+ }
109
+ },
110
+
111
+ encode(input) {
112
+ const legacy: ReturnType<LegacyCodec<SlicesContent, SlicesLegacy>["encode"]> = {
113
+ content: [],
114
+ types: { [ctx.keyOfType]: "Slices" },
115
+ keys: {},
116
+ }
117
+
118
+ for (let index = 0; index < input.value.length; index++) {
119
+ const item = input.value[index]
120
+ const result = SliceItemLegacyCodec(ctx).encode(item)
121
+ if (!result) continue
122
+
123
+ legacy.content.push(result.content)
124
+ legacy.types = { ...legacy.types, ...result.types }
125
+ legacy.keys = { ...legacy.keys, ...result.keys }
126
+ }
127
+
128
+ return legacy
129
+ },
130
+ })
@@ -0,0 +1,65 @@
1
+ import { TableLegacySchema } from "../legacy/table"
2
+ import type { TableLegacy } from "../legacy/table"
3
+ import { RichTextContentType } from "../richText"
4
+ import { TableContentSchema, TableContentType } from "../table"
5
+ import type { TableContent } from "../table"
6
+ import type { LegacyContentCtx, LegacyCodec } from "./legacyContentCtx"
7
+ import { blockLegacyToValue, blockValueToLegacy } from "./richText"
8
+
9
+ export const TableLegacyCodec = (
10
+ ctx: LegacyContentCtx,
11
+ ): LegacyCodec<TableContent, TableLegacy> => ({
12
+ name: "TableLegacy",
13
+
14
+ is(input): input is TableContent {
15
+ return TableContentSchema.safeParse(input).success
16
+ },
17
+
18
+ decode(input) {
19
+ const parsed = TableLegacySchema.safeParse(input)
20
+ if (!parsed.success) {
21
+ return parsed
22
+ }
23
+
24
+ return {
25
+ success: true,
26
+ data: {
27
+ __TYPE__: TableContentType,
28
+ content: parsed.data.content.map((row) => {
29
+ return {
30
+ ...row,
31
+ content: row.content.map((cell) => {
32
+ return {
33
+ ...cell,
34
+ content: {
35
+ __TYPE__: RichTextContentType,
36
+ value: cell.content.map((block) => blockLegacyToValue(block)),
37
+ },
38
+ }
39
+ }),
40
+ }
41
+ }),
42
+ },
43
+ }
44
+ },
45
+
46
+ encode(input) {
47
+ return {
48
+ content: {
49
+ content: input.content.map((row) => {
50
+ return {
51
+ ...row,
52
+ content: row.content.map((cell) => {
53
+ return {
54
+ ...cell,
55
+ content: cell.content.value.map((block) => blockValueToLegacy(block)),
56
+ }
57
+ }),
58
+ }
59
+ }),
60
+ },
61
+ types: { [ctx.keyOfType]: "Table" },
62
+ keys: {},
63
+ }
64
+ },
65
+ })
@@ -0,0 +1,36 @@
1
+ import { UIDLegacySchema } from "../legacy/uid"
2
+ import type { UIDLegacy } from "../legacy/uid"
3
+ import { UIDContentSchema, UIDContentType } from "../uid"
4
+ import type { UIDContent } from "../uid"
5
+ import type { LegacyContentCtx, LegacyCodec } from "./legacyContentCtx"
6
+
7
+ export const UIDLegacyCodec = (ctx: LegacyContentCtx): LegacyCodec<UIDContent, UIDLegacy> => ({
8
+ name: "UIDLegacy",
9
+
10
+ is(input): input is UIDContent {
11
+ return UIDContentSchema.safeParse(input).success
12
+ },
13
+
14
+ decode(input) {
15
+ const parsed = UIDLegacySchema.safeParse(input)
16
+ if (!parsed.success) {
17
+ return parsed
18
+ }
19
+
20
+ return {
21
+ success: true,
22
+ data: {
23
+ __TYPE__: UIDContentType,
24
+ value: parsed.data,
25
+ },
26
+ }
27
+ },
28
+
29
+ encode(input) {
30
+ return {
31
+ content: input.value,
32
+ types: { [ctx.keyOfType]: "UID" },
33
+ keys: {},
34
+ }
35
+ },
36
+ })
@@ -0,0 +1,58 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { GroupContentType } from "../group"
4
+ import type { WidgetLegacy } from "../legacy/widget"
5
+ import { SlicesContentType } from "../slices"
6
+ import { UIDContentType } from "../uid"
7
+ import { WidgetContentSchema } from "../widget"
8
+ import type { WidgetContent } from "../widget"
9
+ import { GroupLegacyCodec } from "./group"
10
+ import type { LegacyCodec, LegacyContentCtx } from "./legacyContentCtx"
11
+ import { NestableLegacyCodec } from "./nestable"
12
+ import { SlicesLegacyCodec } from "./slices"
13
+ import { UIDLegacyCodec } from "./uid"
14
+
15
+ const UnsupportedWidgetLegacySchema = z.never()
16
+
17
+ export const WidgetLegacyCodec = (
18
+ ctx: LegacyContentCtx,
19
+ ): LegacyCodec<WidgetContent, WidgetLegacy, true> => ({
20
+ name: "WidgetLegacy",
21
+
22
+ is(input): input is WidgetContent {
23
+ return WidgetContentSchema.safeParse(input).success
24
+ },
25
+
26
+ decode(input) {
27
+ if (!ctx.fieldType) {
28
+ return UnsupportedWidgetLegacySchema.safeParse(
29
+ input,
30
+ ) as z.core.util.SafeParseError<WidgetLegacy>
31
+ }
32
+
33
+ switch (ctx.fieldType) {
34
+ case "UID":
35
+ return UIDLegacyCodec(ctx).decode(input)
36
+ case "Group":
37
+ return GroupLegacyCodec(ctx).decode(input)
38
+ case "Choice":
39
+ case "Slices":
40
+ return SlicesLegacyCodec(ctx).decode(input)
41
+ default:
42
+ return NestableLegacyCodec(ctx).decode(input)
43
+ }
44
+ },
45
+
46
+ encode(input) {
47
+ switch (input.__TYPE__) {
48
+ case UIDContentType:
49
+ return UIDLegacyCodec(ctx).encode(input)
50
+ case GroupContentType:
51
+ return GroupLegacyCodec(ctx).encode(input)
52
+ case SlicesContentType:
53
+ return SlicesLegacyCodec(ctx).encode(input)
54
+ default:
55
+ return NestableLegacyCodec(ctx).encode(input)
56
+ }
57
+ },
58
+ })
@@ -0,0 +1,8 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { WidgetKeySchema } from "../common/widgetKey"
4
+ import { WidgetContentSchema } from "./widget"
5
+
6
+ export const DocumentContentSchema = z.record(WidgetKeySchema, WidgetContentSchema)
7
+
8
+ export type DocumentContent = z.infer<typeof DocumentContentSchema>
@@ -0,0 +1,12 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { EmbedLegacySchema } from "./legacy/embed"
4
+
5
+ export const EmbedContentType = "EmbedContent" as const
6
+
7
+ export const EmbedContentSchema = z.extend(EmbedLegacySchema, {
8
+ __TYPE__: z.literal(EmbedContentType),
9
+ all: z.unknown(),
10
+ })
11
+
12
+ export type EmbedContent = z.infer<typeof EmbedContentSchema>
@@ -0,0 +1,10 @@
1
+ import { z } from "zod/mini"
2
+
3
+ export const EmptyContentType = "EmptyContent" as const
4
+
5
+ export const EmptyContentSchema = z.object({
6
+ type: z.string(),
7
+ __TYPE__: z.literal(EmptyContentType),
8
+ })
9
+
10
+ export type EmptyContent = z.infer<typeof EmptyContentSchema>
@@ -0,0 +1,87 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import type { SelectModel } from "../model/select"
4
+
5
+ export const FieldContentType = "FieldContent" as const
6
+ export const SelectFieldType = "Select" as const
7
+
8
+ // Text
9
+ export const TextContentSchema = z.object({
10
+ type: z.literal("Text"),
11
+ value: z.string().check(z.trim()),
12
+ __TYPE__: z.literal(FieldContentType),
13
+ })
14
+
15
+ // Color
16
+ export const ColorContentSchema = z.object({
17
+ type: z.literal("Color"),
18
+ value: z.string().check(z.trim()),
19
+ __TYPE__: z.literal(FieldContentType),
20
+ })
21
+
22
+ // Date
23
+ export const DateContentSchema = z.object({
24
+ type: z.literal("Date"),
25
+ value: z.string().check(z.trim()),
26
+ __TYPE__: z.literal(FieldContentType),
27
+ })
28
+
29
+ // Timestamp
30
+ export const TimestampContentSchema = z.object({
31
+ type: z.literal("Timestamp"),
32
+ value: z.string().check(z.trim()),
33
+ __TYPE__: z.literal(FieldContentType),
34
+ })
35
+
36
+ // Number
37
+ export const NumberContentSchema = z.object({
38
+ type: z.literal("Number"),
39
+ value: z.string().check(z.trim()),
40
+ __TYPE__: z.literal(FieldContentType),
41
+ })
42
+
43
+ // Range
44
+ export const RangeContentSchema = z.object({
45
+ type: z.literal("Range"),
46
+ value: z.string().check(z.trim()),
47
+ __TYPE__: z.literal(FieldContentType),
48
+ })
49
+
50
+ // Select
51
+ export const SelectContentSchema = z.object({
52
+ type: z.literal(SelectFieldType),
53
+ value: z.string().check(z.trim()),
54
+ __TYPE__: z.literal(FieldContentType),
55
+ })
56
+
57
+ // Fields
58
+ export const FieldContentSchema = z.union([
59
+ TextContentSchema,
60
+ ColorContentSchema,
61
+ DateContentSchema,
62
+ TimestampContentSchema,
63
+ NumberContentSchema,
64
+ RangeContentSchema,
65
+ SelectContentSchema,
66
+ ])
67
+
68
+ export type TextContent = z.infer<typeof TextContentSchema>
69
+ export type ColorContent = z.infer<typeof ColorContentSchema>
70
+ export type DateContent = z.infer<typeof DateContentSchema>
71
+ export type TimestampContent = z.infer<typeof TimestampContentSchema>
72
+ export type NumberContent = z.infer<typeof NumberContentSchema>
73
+ export type RangeContent = z.infer<typeof RangeContentSchema>
74
+ export type SelectContent = z.infer<typeof SelectContentSchema>
75
+ export type FieldContent = z.infer<typeof FieldContentSchema>
76
+
77
+ /**
78
+ * Returns the default value for a Select field based on its configuration.
79
+ */
80
+ export const SelectContentDefaultValue = (field: SelectModel): SelectContent | undefined =>
81
+ field.config?.default_value
82
+ ? {
83
+ __TYPE__: FieldContentType,
84
+ type: SelectFieldType,
85
+ value: field.config.default_value || "",
86
+ }
87
+ : undefined
@@ -0,0 +1,11 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { GeoPointLegacySchema } from "./legacy/geopoint"
4
+
5
+ export const GeoPointContentType = "GeoPointContent" as const
6
+
7
+ export const GeoPointContentSchema = z.extend(GeoPointLegacySchema, {
8
+ __TYPE__: z.literal(GeoPointContentType),
9
+ })
10
+
11
+ export type GeoPointContent = z.infer<typeof GeoPointContentSchema>
@@ -0,0 +1,96 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import type { GroupModel } from "../model/group"
4
+ import { NestableContentDefaultValue, NestableContentSchema } from "./nestable"
5
+ import type { NestableContent } from "./nestable"
6
+
7
+ // Item
8
+ export const GroupItemContentType = "GroupItemContent" as const
9
+
10
+ export const GroupItemContentSchema: z.ZodMiniType<GroupItemContent> = z.object({
11
+ __TYPE__: z.literal(GroupItemContentType),
12
+ key: z.string(),
13
+ value: z.array(
14
+ z.tuple([
15
+ z.string(),
16
+ z.union([
17
+ NestableContentSchema,
18
+ // `lazy` is used to handle circular dependency on GroupContentSchema
19
+ z.lazy(() => GroupContentSchema),
20
+ ]),
21
+ ]),
22
+ ),
23
+ })
24
+
25
+ // Manual type definition to handle circular dependency on GroupItemContentSchema
26
+ export type GroupItemContent = {
27
+ __TYPE__: typeof GroupItemContentType
28
+ key: string
29
+ value: [string, NestableContent | GroupContent][]
30
+ }
31
+
32
+ // Group
33
+ export const GroupContentType = "GroupContentType" as const
34
+
35
+ export const GroupContentSchema = z.object({
36
+ __TYPE__: z.literal(GroupContentType),
37
+ value: z.array(GroupItemContentSchema),
38
+ })
39
+
40
+ export type GroupContent = z.infer<typeof GroupContentSchema>
41
+
42
+ export const NestableAndGroupContentSchema = z.union([NestableContentSchema, GroupContentSchema])
43
+
44
+ export type NestableAndGroupContent = z.infer<typeof NestableAndGroupContentSchema>
45
+
46
+ // Default values for GroupContent
47
+ export function groupContentWithDefaultValues(
48
+ customType: GroupModel,
49
+ content: GroupContent,
50
+ ): GroupContent {
51
+ const fields = customType.config?.fields
52
+ if (!fields) return content
53
+
54
+ return {
55
+ ...content,
56
+ value: content.value.map((groupItem) => {
57
+ const updatedValue = Object.entries(fields).reduce<GroupItemContent["value"]>(
58
+ (acc, [fieldKey, fieldDef]) => {
59
+ const existingField = groupItem.value.find(([key]) => key === fieldKey)
60
+
61
+ if (existingField) {
62
+ return [...acc, existingField]
63
+ }
64
+
65
+ // Field is missing, check if we can add a default value
66
+ if (fieldDef.type === "Group") {
67
+ // Recursively apply defaults to nested groups
68
+ return [
69
+ ...acc,
70
+ [
71
+ fieldKey,
72
+ {
73
+ __TYPE__: GroupContentType,
74
+ value: [],
75
+ },
76
+ ],
77
+ ]
78
+ }
79
+
80
+ const defaultValue = NestableContentDefaultValue(fieldDef)
81
+ if (defaultValue) {
82
+ return [...acc, [fieldKey, defaultValue]]
83
+ }
84
+
85
+ return acc
86
+ },
87
+ [],
88
+ )
89
+
90
+ return {
91
+ ...groupItem,
92
+ value: updatedValue,
93
+ }
94
+ }),
95
+ }
96
+ }
@@ -0,0 +1,103 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { ImageViewLegacySchema, ImageLegacySchema } from "./legacy/image"
4
+
5
+ export const ImageContentType = "ImageContent" as const
6
+
7
+ export const ImageViewContentSchema = ImageViewLegacySchema
8
+
9
+ type ImageViewContent = z.infer<typeof ImageViewLegacySchema>
10
+
11
+ export const ImageContentSchema = z.extend(ImageLegacySchema, {
12
+ __TYPE__: z.literal(ImageContentType),
13
+ })
14
+
15
+ export type ImageContent = z.infer<typeof ImageContentSchema>
16
+
17
+ // Helpers
18
+
19
+ export interface CroppedImage {
20
+ zoom: number
21
+ /** X coordinate of the crop rect on the original image */
22
+ x: number
23
+ /** Y coordinate of the crop rect on the original image */
24
+ y: number
25
+
26
+ /** The width of the crop rect over the original image */
27
+ cropWidth: number
28
+ /** The height of the crop rect over the original image */
29
+ cropHeight: number
30
+
31
+ /** Final (user defined via W input) width of the image */
32
+ width: number
33
+ /** Final (user defined via H input) height of the image */
34
+ height: number
35
+ }
36
+
37
+ interface BuildCropUrlArgs {
38
+ origin: ImageContent["origin"]
39
+ /** Image crop parameters */
40
+ croppedImage: CroppedImage
41
+ }
42
+
43
+ export function buildCropUrl(args: BuildCropUrlArgs): string {
44
+ const { origin, croppedImage } = args
45
+ const { x, y, width, height, cropHeight, cropWidth } = croppedImage
46
+
47
+ const url = new URL(origin.url)
48
+
49
+ const hasResize = origin.height !== height || origin.width !== width
50
+
51
+ const hasCrop = x !== 0 || y !== 0 || cropHeight !== origin.height || cropWidth !== origin.width
52
+
53
+ if (hasCrop) {
54
+ const crop = [x, y, cropWidth, cropHeight].map(Math.round).join(",")
55
+
56
+ url.searchParams.set("rect", crop)
57
+ url.searchParams.set("w", width.toString())
58
+ url.searchParams.set("h", height.toString())
59
+ }
60
+
61
+ if (hasResize) {
62
+ url.searchParams.set("w", width.toString())
63
+ url.searchParams.set("h", height.toString())
64
+ }
65
+
66
+ return url.toString()
67
+ }
68
+
69
+ export function getCroppedImage({ contentView }: { contentView: ImageViewContent }): CroppedImage {
70
+ const {
71
+ edit: {
72
+ crop: { x, y },
73
+ zoom,
74
+ },
75
+ width,
76
+ height,
77
+ origin: { width: originWidth, height: originHeight },
78
+ } = contentView
79
+
80
+ let cropWidth
81
+ let cropHeight
82
+ const originAspect = originWidth / originHeight
83
+ const cropAspect = width / height
84
+ if (cropAspect >= originAspect) {
85
+ // crop and origin image would be the same width if zoom was equal to 1
86
+ cropWidth = originWidth / zoom
87
+ cropHeight = cropWidth / cropAspect
88
+ } else {
89
+ // crop and origin image would be the same height if zoom was equal to 1
90
+ cropHeight = originHeight / zoom
91
+ cropWidth = cropHeight * cropAspect
92
+ }
93
+
94
+ return {
95
+ x,
96
+ y,
97
+ width,
98
+ height,
99
+ zoom,
100
+ cropWidth,
101
+ cropHeight,
102
+ }
103
+ }
@@ -0,0 +1,10 @@
1
+ import { z } from "zod/mini"
2
+
3
+ export const IntegrationFieldContentType = "IntegrationFieldsContent" as const
4
+
5
+ export const IntegrationFieldContentSchema = z.object({
6
+ __TYPE__: z.literal(IntegrationFieldContentType),
7
+ value: z.string(),
8
+ })
9
+
10
+ export type IntegrationFieldContent = z.infer<typeof IntegrationFieldContentSchema>
@@ -0,0 +1,5 @@
1
+ import { z } from "zod/mini"
2
+
3
+ export const BooleanLegacySchema = z.boolean()
4
+
5
+ export type BooleanLegacy = z.infer<typeof BooleanLegacySchema>
@@ -0,0 +1,25 @@
1
+ import { z } from "zod/mini"
2
+
3
+ import { WidgetKeySchema } from "../../common/widgetKey"
4
+ import type { WidgetKey } from "../../common/widgetKey"
5
+
6
+ export const DocumentLegacySchema = z.pipe(
7
+ z.record(z.string(), z.unknown()),
8
+ z.transform((value) => {
9
+ const documentLegacy: Record<WidgetKey, unknown> = {}
10
+
11
+ for (const [widgetKey, widgetValue] of Object.entries(value)) {
12
+ // Keep v3 behavior: invalid widget keys are dropped, but the document
13
+ // decode still succeeds. Widget value validation happens later in
14
+ // DocumentLegacyCodec via WidgetLegacyCodec.
15
+ const result = WidgetKeySchema.safeParse(widgetKey)
16
+ if (result.success) {
17
+ documentLegacy[result.data] = widgetValue
18
+ }
19
+ }
20
+
21
+ return documentLegacy
22
+ }),
23
+ )
24
+
25
+ export type DocumentLegacy = z.infer<typeof DocumentLegacySchema>
@@ -0,0 +1,23 @@
1
+ import { z } from "zod/mini"
2
+
3
+ const EmbedShape = {
4
+ embed_url: z.string(),
5
+ type: z.string(),
6
+ version: z.nullish(z.union([z.string(), z.number()])),
7
+ title: z.nullish(z.string()),
8
+ author_name: z.nullish(z.string()),
9
+ author_url: z.nullish(z.string()),
10
+ provider_name: z.nullish(z.string()),
11
+ provider_url: z.nullish(z.string()),
12
+ cache_age: z.nullish(z.union([z.string(), z.number()])),
13
+ thumbnail_url: z.nullish(z.string()),
14
+ thumbnail_width: z.nullish(z.number()),
15
+ thumbnail_height: z.nullish(z.number()),
16
+ html: z.nullish(z.string()),
17
+ }
18
+
19
+ export const EmbedLegacySchema = z.object(EmbedShape)
20
+
21
+ export const EmbedLegacyLooseSchema = z.looseObject(EmbedShape)
22
+
23
+ export type EmbedLegacy = z.infer<typeof EmbedLegacySchema>