@prismicio/types-internal 2.2.0 → 2.2.1-remove-import.alpha-1

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 (258) hide show
  1. package/lib/common/UUID.d.ts +1 -2
  2. package/package.json +1 -1
  3. package/src/common/UUID.ts +1 -1
  4. package/lib/import/converters/Document.d.ts +0 -4
  5. package/lib/import/converters/Document.js +0 -21
  6. package/lib/import/converters/fields/Group.d.ts +0 -4
  7. package/lib/import/converters/fields/Group.js +0 -14
  8. package/lib/import/converters/fields/RepeatableZone.d.ts +0 -317
  9. package/lib/import/converters/fields/RepeatableZone.js +0 -15
  10. package/lib/import/converters/fields/RepeatableZoneItem.d.ts +0 -11
  11. package/lib/import/converters/fields/RepeatableZoneItem.js +0 -19
  12. package/lib/import/converters/fields/Slices/SharedSlice.d.ts +0 -4
  13. package/lib/import/converters/fields/Slices/SharedSlice.js +0 -19
  14. package/lib/import/converters/fields/Slices/SharedSliceContent.d.ts +0 -10
  15. package/lib/import/converters/fields/Slices/SharedSliceContent.js +0 -23
  16. package/lib/import/converters/fields/Slices/Slices.d.ts +0 -4
  17. package/lib/import/converters/fields/Slices/Slices.js +0 -16
  18. package/lib/import/converters/fields/Slices/index.d.ts +0 -1
  19. package/lib/import/converters/fields/Slices/index.js +0 -4
  20. package/lib/import/converters/fields/UID.d.ts +0 -3
  21. package/lib/import/converters/fields/UID.js +0 -10
  22. package/lib/import/converters/fields/index.d.ts +0 -4
  23. package/lib/import/converters/fields/index.js +0 -7
  24. package/lib/import/converters/fields/nestable/Boolean.d.ts +0 -3
  25. package/lib/import/converters/fields/nestable/Boolean.js +0 -12
  26. package/lib/import/converters/fields/nestable/Color.d.ts +0 -3
  27. package/lib/import/converters/fields/nestable/Color.js +0 -13
  28. package/lib/import/converters/fields/nestable/Date.d.ts +0 -3
  29. package/lib/import/converters/fields/nestable/Date.js +0 -15
  30. package/lib/import/converters/fields/nestable/Embed.d.ts +0 -4
  31. package/lib/import/converters/fields/nestable/Embed.js +0 -32
  32. package/lib/import/converters/fields/nestable/GeoPoint.d.ts +0 -3
  33. package/lib/import/converters/fields/nestable/GeoPoint.js +0 -15
  34. package/lib/import/converters/fields/nestable/Image.d.ts +0 -28
  35. package/lib/import/converters/fields/nestable/Image.js +0 -67
  36. package/lib/import/converters/fields/nestable/Link.d.ts +0 -4
  37. package/lib/import/converters/fields/nestable/Link.js +0 -70
  38. package/lib/import/converters/fields/nestable/Nestable.d.ts +0 -5
  39. package/lib/import/converters/fields/nestable/Nestable.js +0 -35
  40. package/lib/import/converters/fields/nestable/Number.d.ts +0 -3
  41. package/lib/import/converters/fields/nestable/Number.js +0 -13
  42. package/lib/import/converters/fields/nestable/RichText/embedBlock.d.ts +0 -4
  43. package/lib/import/converters/fields/nestable/RichText/embedBlock.js +0 -14
  44. package/lib/import/converters/fields/nestable/RichText/imageBlock.d.ts +0 -4
  45. package/lib/import/converters/fields/nestable/RichText/imageBlock.js +0 -12
  46. package/lib/import/converters/fields/nestable/RichText/index.d.ts +0 -4
  47. package/lib/import/converters/fields/nestable/RichText/index.js +0 -22
  48. package/lib/import/converters/fields/nestable/RichText/textBlock.d.ts +0 -4
  49. package/lib/import/converters/fields/nestable/RichText/textBlock.js +0 -54
  50. package/lib/import/converters/fields/nestable/Select.d.ts +0 -3
  51. package/lib/import/converters/fields/nestable/Select.js +0 -13
  52. package/lib/import/converters/fields/nestable/Text.d.ts +0 -3
  53. package/lib/import/converters/fields/nestable/Text.js +0 -13
  54. package/lib/import/converters/fields/nestable/Timestamp.d.ts +0 -3
  55. package/lib/import/converters/fields/nestable/Timestamp.js +0 -13
  56. package/lib/import/converters/fields/nestable/index.d.ts +0 -13
  57. package/lib/import/converters/fields/nestable/index.js +0 -16
  58. package/lib/import/converters/index.d.ts +0 -2
  59. package/lib/import/converters/index.js +0 -5
  60. package/lib/import/index.d.ts +0 -2
  61. package/lib/import/index.js +0 -5
  62. package/lib/import/validators/Document.d.ts +0 -6
  63. package/lib/import/validators/Document.js +0 -64
  64. package/lib/import/validators/fields/ImportContent.d.ts +0 -5
  65. package/lib/import/validators/fields/ImportContent.js +0 -21
  66. package/lib/import/validators/fields/ImportField.d.ts +0 -141
  67. package/lib/import/validators/fields/ImportField.js +0 -33
  68. package/lib/import/validators/fields/ImportGroup.d.ts +0 -345
  69. package/lib/import/validators/fields/ImportGroup.js +0 -27
  70. package/lib/import/validators/fields/ImportSlices/ImportSlices.d.ts +0 -8
  71. package/lib/import/validators/fields/ImportSlices/ImportSlices.js +0 -30
  72. package/lib/import/validators/fields/ImportSlices/SharedSlice/SharedSlice.d.ts +0 -16
  73. package/lib/import/validators/fields/ImportSlices/SharedSlice/SharedSlice.js +0 -61
  74. package/lib/import/validators/fields/ImportSlices/SharedSlice/errors.d.ts +0 -4
  75. package/lib/import/validators/fields/ImportSlices/SharedSlice/errors.js +0 -7
  76. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/OptionalSharedSliceId.d.ts +0 -2
  77. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/OptionalSharedSliceId.js +0 -15
  78. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/SharedSliceContent.d.ts +0 -17
  79. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/SharedSliceContent.js +0 -30
  80. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/SharedSliceContentEntry.d.ts +0 -43
  81. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/SharedSliceContentEntry.js +0 -69
  82. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/errors.d.ts +0 -4
  83. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/errors.js +0 -6
  84. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/index.d.ts +0 -2
  85. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/index.js +0 -5
  86. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/types.d.ts +0 -1
  87. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/types.js +0 -2
  88. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceId.d.ts +0 -9
  89. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceId.js +0 -39
  90. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceType.d.ts +0 -11
  91. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceType.js +0 -24
  92. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceVariation.d.ts +0 -11
  93. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceVariation.js +0 -24
  94. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/index.d.ts +0 -4
  95. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/index.js +0 -7
  96. package/lib/import/validators/fields/ImportSlices/SharedSlice/index.d.ts +0 -3
  97. package/lib/import/validators/fields/ImportSlices/SharedSlice/index.js +0 -6
  98. package/lib/import/validators/fields/ImportSlices/SharedSlice/utils.d.ts +0 -342
  99. package/lib/import/validators/fields/ImportSlices/SharedSlice/utils.js +0 -11
  100. package/lib/import/validators/fields/ImportSlices/index.d.ts +0 -1
  101. package/lib/import/validators/fields/ImportSlices/index.js +0 -4
  102. package/lib/import/validators/fields/ImportSlices/utils.d.ts +0 -4
  103. package/lib/import/validators/fields/ImportSlices/utils.js +0 -35
  104. package/lib/import/validators/fields/RepeatableZone.d.ts +0 -11
  105. package/lib/import/validators/fields/RepeatableZone.js +0 -14
  106. package/lib/import/validators/fields/RepeatableZoneItem.d.ts +0 -11
  107. package/lib/import/validators/fields/RepeatableZoneItem.js +0 -39
  108. package/lib/import/validators/fields/UID.d.ts +0 -6
  109. package/lib/import/validators/fields/UID.js +0 -15
  110. package/lib/import/validators/fields/index.d.ts +0 -4
  111. package/lib/import/validators/fields/index.js +0 -7
  112. package/lib/import/validators/fields/nestable/Boolean.d.ts +0 -6
  113. package/lib/import/validators/fields/nestable/Boolean.js +0 -6
  114. package/lib/import/validators/fields/nestable/Color.d.ts +0 -6
  115. package/lib/import/validators/fields/nestable/Color.js +0 -15
  116. package/lib/import/validators/fields/nestable/Date.d.ts +0 -6
  117. package/lib/import/validators/fields/nestable/Date.js +0 -19
  118. package/lib/import/validators/fields/nestable/Embed.d.ts +0 -13
  119. package/lib/import/validators/fields/nestable/Embed.js +0 -31
  120. package/lib/import/validators/fields/nestable/GeoPoint.d.ts +0 -13
  121. package/lib/import/validators/fields/nestable/GeoPoint.js +0 -13
  122. package/lib/import/validators/fields/nestable/Image/default.d.ts +0 -22
  123. package/lib/import/validators/fields/nestable/Image/default.js +0 -19
  124. package/lib/import/validators/fields/nestable/Image/index.d.ts +0 -45
  125. package/lib/import/validators/fields/nestable/Image/index.js +0 -41
  126. package/lib/import/validators/fields/nestable/Image/merge.d.ts +0 -23
  127. package/lib/import/validators/fields/nestable/Image/merge.js +0 -44
  128. package/lib/import/validators/fields/nestable/Image/model.d.ts +0 -18
  129. package/lib/import/validators/fields/nestable/Image/model.js +0 -2
  130. package/lib/import/validators/fields/nestable/Image/validators.d.ts +0 -35
  131. package/lib/import/validators/fields/nestable/Image/validators.js +0 -31
  132. package/lib/import/validators/fields/nestable/ImportRichText/ImportBlock.d.ts +0 -6
  133. package/lib/import/validators/fields/nestable/ImportRichText/ImportBlock.js +0 -25
  134. package/lib/import/validators/fields/nestable/ImportRichText/ImportRichText.d.ts +0 -24
  135. package/lib/import/validators/fields/nestable/ImportRichText/ImportRichText.js +0 -32
  136. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportBlockType.d.ts +0 -6
  137. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportBlockType.js +0 -18
  138. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportEmbedBlock.d.ts +0 -10
  139. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportEmbedBlock.js +0 -11
  140. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportImageBlock.d.ts +0 -22
  141. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportImageBlock.js +0 -13
  142. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportTextBlock.d.ts +0 -78
  143. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportTextBlock.js +0 -43
  144. package/lib/import/validators/fields/nestable/ImportRichText/blocks/Span.d.ts +0 -79
  145. package/lib/import/validators/fields/nestable/ImportRichText/blocks/Span.js +0 -27
  146. package/lib/import/validators/fields/nestable/ImportRichText/blocks/index.d.ts +0 -4
  147. package/lib/import/validators/fields/nestable/ImportRichText/blocks/index.js +0 -7
  148. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/HyperlinkSpan.d.ts +0 -24
  149. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/HyperlinkSpan.js +0 -18
  150. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/LabelSpan.d.ts +0 -12
  151. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/LabelSpan.js +0 -16
  152. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/SpanLocation.d.ts +0 -5
  153. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/SpanLocation.js +0 -10
  154. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/TextSpan.d.ts +0 -15
  155. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/TextSpan.js +0 -20
  156. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/index.d.ts +0 -2
  157. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/index.js +0 -5
  158. package/lib/import/validators/fields/nestable/ImportRichText/index.d.ts +0 -2
  159. package/lib/import/validators/fields/nestable/ImportRichText/index.js +0 -7
  160. package/lib/import/validators/fields/nestable/Link.d.ts +0 -53
  161. package/lib/import/validators/fields/nestable/Link.js +0 -35
  162. package/lib/import/validators/fields/nestable/Nestable.d.ts +0 -192
  163. package/lib/import/validators/fields/nestable/Nestable.js +0 -71
  164. package/lib/import/validators/fields/nestable/Number.d.ts +0 -17
  165. package/lib/import/validators/fields/nestable/Number.js +0 -17
  166. package/lib/import/validators/fields/nestable/Select.d.ts +0 -16
  167. package/lib/import/validators/fields/nestable/Select.js +0 -19
  168. package/lib/import/validators/fields/nestable/Text.d.ts +0 -6
  169. package/lib/import/validators/fields/nestable/Text.js +0 -6
  170. package/lib/import/validators/fields/nestable/Timestamp.d.ts +0 -7
  171. package/lib/import/validators/fields/nestable/Timestamp.js +0 -19
  172. package/lib/import/validators/fields/nestable/index.d.ts +0 -14
  173. package/lib/import/validators/fields/nestable/index.js +0 -19
  174. package/lib/import/validators/index.d.ts +0 -2
  175. package/lib/import/validators/index.js +0 -5
  176. package/lib/utils/io-ts.d.ts +0 -2
  177. package/lib/utils/io-ts.js +0 -22
  178. package/src/import/converters/Document.ts +0 -38
  179. package/src/import/converters/fields/Group.ts +0 -18
  180. package/src/import/converters/fields/RepeatableZone.ts +0 -19
  181. package/src/import/converters/fields/RepeatableZoneItem.ts +0 -32
  182. package/src/import/converters/fields/Slices/SharedSlice.ts +0 -24
  183. package/src/import/converters/fields/Slices/SharedSliceContent.ts +0 -27
  184. package/src/import/converters/fields/Slices/Slices.ts +0 -20
  185. package/src/import/converters/fields/Slices/index.ts +0 -1
  186. package/src/import/converters/fields/UID.ts +0 -9
  187. package/src/import/converters/fields/index.ts +0 -4
  188. package/src/import/converters/fields/nestable/Boolean.ts +0 -13
  189. package/src/import/converters/fields/nestable/Color.ts +0 -14
  190. package/src/import/converters/fields/nestable/Date.ts +0 -17
  191. package/src/import/converters/fields/nestable/Embed.ts +0 -37
  192. package/src/import/converters/fields/nestable/GeoPoint.ts +0 -16
  193. package/src/import/converters/fields/nestable/Image.ts +0 -91
  194. package/src/import/converters/fields/nestable/Link.ts +0 -77
  195. package/src/import/converters/fields/nestable/Nestable.ts +0 -55
  196. package/src/import/converters/fields/nestable/Number.ts +0 -14
  197. package/src/import/converters/fields/nestable/RichText/embedBlock.ts +0 -17
  198. package/src/import/converters/fields/nestable/RichText/imageBlock.ts +0 -17
  199. package/src/import/converters/fields/nestable/RichText/index.ts +0 -23
  200. package/src/import/converters/fields/nestable/RichText/textBlock.ts +0 -62
  201. package/src/import/converters/fields/nestable/Select.ts +0 -14
  202. package/src/import/converters/fields/nestable/Text.ts +0 -14
  203. package/src/import/converters/fields/nestable/Timestamp.ts +0 -14
  204. package/src/import/converters/fields/nestable/index.ts +0 -13
  205. package/src/import/converters/index.ts +0 -2
  206. package/src/import/index.ts +0 -2
  207. package/src/import/validators/Document.ts +0 -103
  208. package/src/import/validators/fields/ImportContent.ts +0 -30
  209. package/src/import/validators/fields/ImportField.ts +0 -36
  210. package/src/import/validators/fields/ImportGroup.ts +0 -45
  211. package/src/import/validators/fields/ImportSlices/ImportSlices.ts +0 -56
  212. package/src/import/validators/fields/ImportSlices/SharedSlice/SharedSlice.ts +0 -104
  213. package/src/import/validators/fields/ImportSlices/SharedSlice/errors.ts +0 -6
  214. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/OptionalSharedSliceId.ts +0 -20
  215. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceId.ts +0 -65
  216. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceType.ts +0 -45
  217. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceVariation.ts +0 -45
  218. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/index.ts +0 -4
  219. package/src/import/validators/fields/ImportSlices/SharedSlice/index.ts +0 -3
  220. package/src/import/validators/fields/ImportSlices/SharedSlice/utils.ts +0 -21
  221. package/src/import/validators/fields/ImportSlices/index.ts +0 -1
  222. package/src/import/validators/fields/ImportSlices/utils.ts +0 -43
  223. package/src/import/validators/fields/RepeatableZone.ts +0 -21
  224. package/src/import/validators/fields/RepeatableZoneItem.ts +0 -64
  225. package/src/import/validators/fields/UID.ts +0 -27
  226. package/src/import/validators/fields/index.ts +0 -4
  227. package/src/import/validators/fields/nestable/Boolean.ts +0 -7
  228. package/src/import/validators/fields/nestable/Color.ts +0 -28
  229. package/src/import/validators/fields/nestable/Date.ts +0 -34
  230. package/src/import/validators/fields/nestable/Embed.ts +0 -41
  231. package/src/import/validators/fields/nestable/GeoPoint.ts +0 -21
  232. package/src/import/validators/fields/nestable/Image/default.ts +0 -25
  233. package/src/import/validators/fields/nestable/Image/index.ts +0 -73
  234. package/src/import/validators/fields/nestable/Image/merge.ts +0 -64
  235. package/src/import/validators/fields/nestable/Image/model.ts +0 -18
  236. package/src/import/validators/fields/nestable/Image/validators.ts +0 -45
  237. package/src/import/validators/fields/nestable/ImportRichText/ImportBlock.ts +0 -39
  238. package/src/import/validators/fields/nestable/ImportRichText/ImportRichText.ts +0 -54
  239. package/src/import/validators/fields/nestable/ImportRichText/blocks/ImportBlockType.ts +0 -44
  240. package/src/import/validators/fields/nestable/ImportRichText/blocks/ImportEmbedBlock.ts +0 -13
  241. package/src/import/validators/fields/nestable/ImportRichText/blocks/ImportImageBlock.ts +0 -17
  242. package/src/import/validators/fields/nestable/ImportRichText/blocks/ImportTextBlock.ts +0 -56
  243. package/src/import/validators/fields/nestable/ImportRichText/blocks/Span.ts +0 -48
  244. package/src/import/validators/fields/nestable/ImportRichText/blocks/index.ts +0 -4
  245. package/src/import/validators/fields/nestable/ImportRichText/blocks/spans/HyperlinkSpan.ts +0 -24
  246. package/src/import/validators/fields/nestable/ImportRichText/blocks/spans/LabelSpan.ts +0 -19
  247. package/src/import/validators/fields/nestable/ImportRichText/blocks/spans/SpanLocation.ts +0 -8
  248. package/src/import/validators/fields/nestable/ImportRichText/blocks/spans/TextSpan.ts +0 -24
  249. package/src/import/validators/fields/nestable/ImportRichText/blocks/spans/index.ts +0 -2
  250. package/src/import/validators/fields/nestable/ImportRichText/index.ts +0 -2
  251. package/src/import/validators/fields/nestable/Link.ts +0 -59
  252. package/src/import/validators/fields/nestable/Nestable.ts +0 -88
  253. package/src/import/validators/fields/nestable/Number.ts +0 -38
  254. package/src/import/validators/fields/nestable/Select.ts +0 -38
  255. package/src/import/validators/fields/nestable/Text.ts +0 -7
  256. package/src/import/validators/fields/nestable/Timestamp.ts +0 -39
  257. package/src/import/validators/fields/nestable/index.ts +0 -14
  258. package/src/import/validators/index.ts +0 -2
@@ -1,55 +0,0 @@
1
- import type { Asset } from "../../../../common"
2
- import type { Embed } from "../../../../common/Embed"
3
- import type { NestableContent } from "../../../../content"
4
- import type { ImportNestable } from "../../../validators"
5
- import {
6
- booleanConverter,
7
- colorConverter,
8
- dateConverter,
9
- embedConverter,
10
- geopointConverter,
11
- imageConverter,
12
- linkConverter,
13
- numberConverter,
14
- richTextConverter,
15
- selectConverter,
16
- textConverter,
17
- timestampConverter,
18
- } from "."
19
-
20
- export function convertNestableWidget(
21
- field: ImportNestable,
22
- assets: Record<Asset["id"], Asset | undefined>,
23
- embeds: Record<string, Embed | undefined>,
24
- ): NestableContent | undefined {
25
- switch (field.type) {
26
- case "Boolean":
27
- return booleanConverter(field.value)
28
- case "Color":
29
- return colorConverter(field.value)
30
- case "Select":
31
- return selectConverter(field.value)
32
- case "Number":
33
- return numberConverter(field.value)
34
- case "Text":
35
- return textConverter(field.value)
36
- case "Date":
37
- return dateConverter(field.value)
38
- case "Timestamp":
39
- return timestampConverter(field.value)
40
- case "Embed":
41
- return embedConverter(field.value, embeds)
42
- case "GeoPoint":
43
- return geopointConverter(field.value)
44
- case "Link":
45
- return linkConverter(field.value, assets)
46
- case "Image":
47
- return imageConverter(field.value, assets)
48
- case "StructuredText":
49
- return richTextConverter(field.value, assets, embeds)
50
- default:
51
- throw new Error(
52
- `Unsupported type of nestable converter ${JSON.stringify(field)}`,
53
- )
54
- }
55
- }
@@ -1,14 +0,0 @@
1
- import type { NumberContent } from "../../../../content"
2
- import type { ImportNumber } from "../../../validators"
3
-
4
- export const numberConverter = (
5
- field: ImportNumber["value"],
6
- ): NumberContent | undefined => {
7
- if (field === null) return
8
-
9
- return {
10
- type: "Number",
11
- value: field.toString(),
12
- __TYPE__: "FieldContent",
13
- }
14
- }
@@ -1,17 +0,0 @@
1
- import type { Embed } from "../../../../../common"
2
- import type { EmbedBlock } from "../../../../../content"
3
- import type { ImportEmbedBlock } from "../../../../validators/fields/nestable/ImportRichText/blocks"
4
- import { embedConverter } from "../Embed"
5
-
6
- export function embedBlockConverter(
7
- block: ImportEmbedBlock,
8
- embeds: Record<string, Embed | undefined>,
9
- ): EmbedBlock {
10
- const embedData = embedConverter(block.oembed, embeds)
11
-
12
- if (!embedData) throw new Error("Failed to convert embed data")
13
- return {
14
- type: block.type,
15
- data: embedData,
16
- }
17
- }
@@ -1,17 +0,0 @@
1
- import { Asset, getAssetOrThrow } from "../../../../../common"
2
- import type { ImageBlock } from "../../../../../content"
3
- import type { ImportImageBlock } from "../../../../validators/fields/nestable/ImportRichText/blocks"
4
- import { convertImageView } from "../Image"
5
-
6
- export function imageBlockConverter(
7
- block: ImportImageBlock,
8
- assets: Record<Asset["id"], Asset | undefined>,
9
- ): ImageBlock {
10
- return {
11
- type: block.type,
12
- data: convertImageView<ImportImageBlock>(
13
- block,
14
- getAssetOrThrow(assets)(block.id),
15
- ),
16
- }
17
- }
@@ -1,23 +0,0 @@
1
- import type { Asset, Embed } from "../../../../../common"
2
- import type { RichTextContent } from "../../../../../content"
3
- import { RichTextContentType } from "../../../../../content"
4
- import type { ImportRichText } from "../../../../validators"
5
- import { embedBlockConverter } from "./embedBlock"
6
- import { imageBlockConverter } from "./imageBlock"
7
- import { textBlockConverter } from "./textBlock"
8
-
9
- export const richTextConverter = (
10
- richTextField: ImportRichText["value"],
11
- assets: Record<Asset["id"], Asset | undefined>,
12
- embeds: Record<string, Embed | undefined>,
13
- ): RichTextContent | undefined => {
14
- if (richTextField === null) return
15
- return {
16
- __TYPE__: RichTextContentType,
17
- value: richTextField.map((block) => {
18
- if (block.type === "image") return imageBlockConverter(block, assets)
19
- else if (block.type === "embed") return embedBlockConverter(block, embeds)
20
- return textBlockConverter(block, assets)
21
- }),
22
- }
23
- }
@@ -1,62 +0,0 @@
1
- import type { Asset } from "../../../../../common"
2
- import type { Span, TextBlock } from "../../../../../content"
3
- import type { ImportTextBlock } from "../../../../validators/fields/nestable/ImportRichText/blocks"
4
- import { linkConverter } from "../Link"
5
-
6
- export function textBlockConverter(
7
- block: ImportTextBlock,
8
- assets: Record<Asset["id"], Asset | undefined>,
9
- ): TextBlock {
10
- return {
11
- type: block.type,
12
- content: {
13
- text: block.text,
14
- ...(() => {
15
- if (block.spans) {
16
- const convertedSpans = spansConverter(block.spans, assets)
17
- if (!convertedSpans) return {}
18
-
19
- return { spans: convertedSpans }
20
- }
21
- return {}
22
- })(),
23
- },
24
- ...(block.direction ? { direction: block.direction } : {}),
25
- }
26
- }
27
-
28
- function spansConverter(
29
- spans: NonNullable<ImportTextBlock["spans"]>,
30
- assets: Record<Asset["id"], Asset | undefined>,
31
- ): Span[] {
32
- return spans.reduce<Span[]>((acc, span) => {
33
- switch (span.type) {
34
- case "em":
35
- case "strong":
36
- return [...acc, span]
37
- case "label":
38
- return [
39
- ...acc,
40
- {
41
- ...span,
42
- data: span.data.label,
43
- },
44
- ]
45
-
46
- case "hyperlink": {
47
- const convertedLink = linkConverter(span.data, assets)
48
- if (!convertedLink) return acc
49
-
50
- return [
51
- ...acc,
52
- {
53
- type: span.type,
54
- start: span.start,
55
- end: span.end,
56
- data: convertedLink.value,
57
- },
58
- ]
59
- }
60
- }
61
- }, [])
62
- }
@@ -1,14 +0,0 @@
1
- import type { SelectContent } from "../../../../content"
2
- import type { ImportSelect } from "../../../validators"
3
-
4
- export const selectConverter = (
5
- field: ImportSelect["value"],
6
- ): SelectContent | undefined => {
7
- if (field === null) return
8
-
9
- return {
10
- type: "Select",
11
- value: field,
12
- __TYPE__: "FieldContent",
13
- }
14
- }
@@ -1,14 +0,0 @@
1
- import type { TextContent } from "../../../../content"
2
- import type { ImportText } from "../../../validators"
3
-
4
- export const textConverter = (
5
- field: ImportText["value"],
6
- ): TextContent | undefined => {
7
- if (field === null) return
8
-
9
- return {
10
- type: "Text",
11
- value: field,
12
- __TYPE__: "FieldContent",
13
- }
14
- }
@@ -1,14 +0,0 @@
1
- import type { TimestampContent } from "../../../../content"
2
- import type { ImportTimestamp } from "../../../validators"
3
-
4
- export const timestampConverter = (
5
- field: ImportTimestamp["value"],
6
- ): TimestampContent | undefined => {
7
- if (field === null) return
8
-
9
- return {
10
- type: "Timestamp",
11
- value: field.toISOString(),
12
- __TYPE__: "FieldContent",
13
- }
14
- }
@@ -1,13 +0,0 @@
1
- export * from "./Boolean"
2
- export * from "./Color"
3
- export * from "./Date"
4
- export * from "./Embed"
5
- export * from "./GeoPoint"
6
- export * from "./Image"
7
- export * from "./Link"
8
- export * from "./Nestable"
9
- export * from "./Number"
10
- export * from "./RichText"
11
- export * from "./Select"
12
- export * from "./Text"
13
- export * from "./Timestamp"
@@ -1,2 +0,0 @@
1
- export * from "./Document"
2
- export * from "./fields"
@@ -1,2 +0,0 @@
1
- export * from "./converters"
2
- export * from "./validators"
@@ -1,103 +0,0 @@
1
- import { either } from "fp-ts"
2
- import { Either, isLeft } from "fp-ts/Either"
3
- import { pipe } from "fp-ts/lib/function"
4
- import * as t from "io-ts"
5
-
6
- import type { WidgetKey } from "../../common"
7
- import type { StaticCustomType, StaticWidget } from "../../customtypes"
8
- import { flattenCustomTypeFields } from "../../customtypes"
9
- import { isObject } from "../../utils/Objects"
10
- import { withCustomError } from "../../validators/function"
11
- import { ImportField } from "./fields/ImportField"
12
-
13
- const rawImportDocument = withCustomError(
14
- t.UnknownRecord,
15
- () => "document is not an object",
16
- )
17
-
18
- function validateField(
19
- document: Record<string, unknown>,
20
- customType: StaticCustomType,
21
- ) {
22
- return (
23
- key: string,
24
- content: unknown,
25
- model?: StaticWidget,
26
- ): Either<t.Errors, ImportField> => {
27
- // the field is not defined in the custom type -> extra field or typo
28
- if (!model) {
29
- const error: t.ValidationError = {
30
- value: content,
31
- context: [{ key: key, type: t.unknown }],
32
- message: `The field ${key} is not part of the Custom type`,
33
- }
34
- return either.left([error])
35
- }
36
-
37
- // retrieving the right codec then testing out fieldValue with it.
38
- const { result, codec } = ImportField.decode(model)(content)
39
-
40
- // error.context is pointing at root when it should point to a `fieldKey`.
41
- // We need to override the context to make it right.
42
- if (isLeft(result)) {
43
- const errors: t.Errors = result.left.map((error) => {
44
- const contextHead = error.context[0]
45
- const context = [
46
- { key: "", actual: document, type: ImportDocument(customType) },
47
- contextHead
48
- ? { ...contextHead, key: key }
49
- : { key: key, actual: content, type: codec },
50
- ...error.context.slice(1),
51
- ]
52
-
53
- return { ...error, context }
54
- })
55
- return either.left(errors)
56
- }
57
- return either.right(result.right)
58
- }
59
- }
60
-
61
- function validateDocument(
62
- customType: StaticCustomType,
63
- rawDoc: Record<string, unknown>,
64
- ) {
65
- const fieldModels = flattenCustomTypeFields(customType)
66
- const { document, errors } = Object.entries(rawDoc).reduce<{
67
- document: ImportDocument
68
- errors: t.Errors
69
- }>(
70
- (acc, [fieldKey, fieldValue]) => {
71
- const parsedField = validateField(rawDoc, customType)(
72
- fieldKey,
73
- fieldValue,
74
- fieldModels[fieldKey],
75
- )
76
-
77
- if (isLeft(parsedField))
78
- return { ...acc, errors: [...acc.errors, ...parsedField.left] }
79
-
80
- return {
81
- ...acc,
82
- document: { ...acc.document, [fieldKey]: parsedField.right },
83
- }
84
- },
85
- { document: {}, errors: [] },
86
- )
87
- if (errors.length > 0) return either.left(errors)
88
- return either.right(document)
89
- }
90
-
91
- export type ImportDocument = Record<WidgetKey, ImportField>
92
- export const ImportDocument = (customType: StaticCustomType) =>
93
- new t.Type<ImportDocument, ImportDocument, unknown>(
94
- "ImportDocument",
95
- (u): u is ImportDocument => isObject(u),
96
- (raw: unknown) => {
97
- return pipe(
98
- rawImportDocument.decode(raw),
99
- either.chain((doc) => validateDocument(customType, doc)),
100
- )
101
- },
102
- t.identity,
103
- )
@@ -1,30 +0,0 @@
1
- import { either } from "fp-ts"
2
- import { pipe } from "fp-ts/lib/function"
3
- import * as t from "io-ts"
4
-
5
- import type { FieldType } from "../../../customtypes"
6
- import { isObject } from "../../../utils/Objects"
7
-
8
- export const ImportContent = <T extends FieldType, A, O = A>(
9
- type: T,
10
- valueCodec: t.Type<A, O>,
11
- ) =>
12
- new t.Type<{ type: T; value: A }, O>(
13
- `ImportField: ${valueCodec.name}`,
14
- (u: unknown): u is { type: T; value: A } => {
15
- if (!isObject(u)) return false
16
- return type === u["type"] && valueCodec.is(u["value"])
17
- },
18
- (u: unknown, c) => {
19
- return pipe(
20
- valueCodec.validate(u, c),
21
- either.map((decodedValue) => {
22
- return {
23
- type,
24
- value: decodedValue,
25
- }
26
- }),
27
- )
28
- },
29
- (field) => field.value as unknown as O,
30
- )
@@ -1,36 +0,0 @@
1
- import type { StaticWidget } from "../../../customtypes"
2
- import { ImportGroup } from "./ImportGroup"
3
- import { ImportSlices } from "./ImportSlices"
4
- import { ImportNestable } from "./nestable"
5
-
6
- export type ImportField = ImportSlices | ImportNestable | ImportGroup
7
-
8
- export const ImportField = {
9
- is(u: unknown): u is ImportField {
10
- return ImportField.is(u)
11
- },
12
- decode: (field: StaticWidget) => {
13
- return (content: unknown) => {
14
- switch (field.type) {
15
- case "UID":
16
- throw new Error(
17
- `The field '${field.type}' should be put at the root level of the document`,
18
- )
19
- case "Slices":
20
- return {
21
- codec: ImportSlices(field),
22
- result: ImportSlices(field).decode(content),
23
- }
24
- case "Group":
25
- return {
26
- codec: ImportGroup(field),
27
- result: ImportGroup(field).decode(content),
28
- }
29
- case "Choice":
30
- throw new Error(`Unsupported type of field ${field.type}`)
31
- default:
32
- return ImportNestable.decode(field)(content)
33
- }
34
- }
35
- },
36
- }
@@ -1,45 +0,0 @@
1
- import * as E from "fp-ts/Either"
2
- import { pipe } from "fp-ts/function"
3
- import * as t from "io-ts"
4
-
5
- import type { Group } from "../../../customtypes"
6
- import { EmptyArrayOrElse } from "../../../validators"
7
- import { withCustomError } from "../../../validators/function"
8
- import { ImportContent } from "./ImportContent"
9
- import { RepeatableZone } from "./RepeatableZone"
10
-
11
- export const ImportGroupValue = (groupCustomType?: Group) => {
12
- const fieldsModel = groupCustomType?.config?.fields ?? {}
13
- const groupArrayCodec = RepeatableZone(fieldsModel)
14
-
15
- return withCustomError(
16
- new t.Type<RepeatableZone>(
17
- groupArrayCodec.name,
18
- groupArrayCodec.is,
19
- (u, c) =>
20
- pipe(
21
- groupArrayCodec.validate(u, c),
22
- E.chain((groups) => {
23
- if (
24
- groupCustomType?.config?.repeat === false &&
25
- groups.length > 1
26
- ) {
27
- return t.failure(
28
- groups,
29
- c,
30
- "The custom type for this group field does not allow multiple group items",
31
- )
32
- }
33
- return t.success(groups)
34
- }),
35
- ),
36
- t.identity,
37
- ),
38
- () => "The group field value must be an array",
39
- )
40
- }
41
-
42
- export const ImportGroup = (groupCustomType?: Group) =>
43
- ImportContent("Group", EmptyArrayOrElse(ImportGroupValue(groupCustomType)))
44
-
45
- export type ImportGroup = t.TypeOf<ReturnType<typeof ImportGroup>>
@@ -1,56 +0,0 @@
1
- import * as E from "fp-ts/Either"
2
- import { pipe } from "fp-ts/function"
3
- import * as t from "io-ts"
4
-
5
- import type { StaticSlices } from "../../../../customtypes"
6
- import { EmptyArrayOrElse } from "../../../../validators"
7
- import { ImportContent } from "../ImportContent"
8
- import { SharedSlice } from "./SharedSlice"
9
- import {
10
- extractSupportedSlices,
11
- findImportSharedSliceDuplicateIds,
12
- } from "./utils"
13
-
14
- export const ImportSlices = (staticSlices: StaticSlices) => {
15
- const supportedSlices = extractSupportedSlices(staticSlices)
16
-
17
- // For now we only support the SharedSlice, however if we want to support more in the future
18
- // we would have to change the codec here to something like this: t.array(t.union([ImportSharedSlice(sharedSlices), NewSliceCodec(newSliceCustomTypes)])).
19
- const SharedSliceCodec = SharedSlice(supportedSlices)
20
- const SlicesArrayCodec = t.array(SharedSliceCodec)
21
-
22
- return ImportContent(
23
- "Slices",
24
- EmptyArrayOrElse(
25
- new t.ArrayType<typeof SharedSliceCodec, SharedSlice[]>(
26
- SlicesArrayCodec.name,
27
- (u): u is SharedSlice[] => SlicesArrayCodec.is(u),
28
- (u, c) => {
29
- return pipe(
30
- SlicesArrayCodec.validate(u, c),
31
- E.chain((slices) => {
32
- // This part might not make sense for all Slice types in the future, but for now we only support the SharedSlice
33
- // In case we support more in the future, we would have to filter only the relevant type for this check
34
- const sharedSliceDuplicates =
35
- findImportSharedSliceDuplicateIds(slices)
36
- if (sharedSliceDuplicates.length > 0) {
37
- return t.failure(
38
- slices,
39
- [],
40
- `Duplicate slice IDs detected: ${sharedSliceDuplicates.join(
41
- ", ",
42
- )}`,
43
- )
44
- }
45
- return t.success(slices)
46
- }),
47
- )
48
- },
49
- t.identity,
50
- SharedSliceCodec,
51
- ),
52
- ),
53
- )
54
- }
55
-
56
- export type ImportSlices = t.TypeOf<ReturnType<typeof ImportSlices>>
@@ -1,104 +0,0 @@
1
- import * as E from "fp-ts/Either"
2
- import { pipe } from "fp-ts/function"
3
- import * as t from "io-ts"
4
-
5
- import type { SharedSlice as SharedSliceCustomType } from "../../../../../customtypes"
6
- import { NonEmptyString, String } from "../../../../../validators"
7
- import { RepeatableZone } from "../../RepeatableZone"
8
- import { RepeatableZoneItem } from "../../RepeatableZoneItem"
9
- import {
10
- OptionalSharedSliceId,
11
- SharedSliceId,
12
- SharedSliceType,
13
- SharedSliceVariation,
14
- } from "./fields"
15
-
16
- export type SharedSlice = {
17
- id: SharedSliceId | null | undefined
18
- slice_type: string
19
- name: string
20
- variation: string
21
- primary: RepeatableZoneItem | null | undefined
22
- items: RepeatableZone | null | undefined
23
- slice_label: string | null | undefined
24
- version: string | null | undefined
25
- }
26
-
27
- const SharedSliceShape = t.strict({
28
- id: OptionalSharedSliceId,
29
- slice_type: NonEmptyString,
30
- name: String,
31
- variation: NonEmptyString,
32
- primary: t.union([t.undefined, t.null, t.record(NonEmptyString, t.unknown)]),
33
- items: t.union([
34
- t.undefined,
35
- t.null,
36
- t.array(t.record(NonEmptyString, t.unknown)),
37
- ]),
38
- slice_label: t.union([t.undefined, t.null, String]),
39
- version: t.union([t.undefined, t.null, String]),
40
- })
41
-
42
- export const SharedSlice = (sharedSlices: SharedSliceCustomType[]) =>
43
- new t.Type<SharedSlice>(
44
- "SharedSlice",
45
- (u): u is SharedSlice => SharedSliceShape.is(u),
46
- (u, c) =>
47
- pipe(
48
- // We validate the base fields that we can validate directly based on the provided 'sharedSlices'
49
- t
50
- .type({
51
- id: OptionalSharedSliceId,
52
- slice_type: SharedSliceType(sharedSlices),
53
- slice_label: t.union([t.undefined, t.null, String]),
54
- version: t.union([t.undefined, t.null, String]),
55
- })
56
- .validate(u, c),
57
- E.chain((decoded) =>
58
- pipe(
59
- // We validate the 'variation' field, for which we need the SharedSlice custom type retrieved in the first step
60
- t
61
- .type({
62
- variation: SharedSliceVariation(decoded.slice_type.data),
63
- })
64
- .validate(u, c),
65
- E.map(({ variation }) => ({ ...decoded, variation })),
66
- ),
67
- ),
68
- E.chain((decoded) =>
69
- pipe(
70
- // We validate the 'primary' and 'items' content fields, for which we need the Variation custom type retrieved in the previous step
71
- t
72
- .partial({
73
- primary: RepeatableZoneItem(
74
- decoded.variation.data.primary ?? {},
75
- ),
76
- items: RepeatableZone(decoded.variation.data.items ?? {}),
77
- })
78
- .validate(u, c),
79
- E.map(({ primary, items }) => ({ ...decoded, primary, items })),
80
- ),
81
- ),
82
- E.map(
83
- ({
84
- id,
85
- slice_type,
86
- variation,
87
- primary,
88
- items,
89
- slice_label,
90
- version,
91
- }) => ({
92
- id,
93
- slice_type: slice_type.slice_type,
94
- name: slice_type.data.name,
95
- variation: variation.variation,
96
- primary,
97
- items,
98
- slice_label,
99
- version: version ?? variation.data.version,
100
- }),
101
- ),
102
- ),
103
- t.identity,
104
- )
@@ -1,6 +0,0 @@
1
- export const SharedSliceErrors = {
2
- SliceTypeNotFound: (slice_type: string) =>
3
- `Shared slice '${slice_type}' not found in this slice zone in the document's custom type`,
4
- VariationNotFound: (variation: string, slice_type: string) =>
5
- `Variation '${variation}' not found for Slice '${slice_type}'`,
6
- } as const
@@ -1,20 +0,0 @@
1
- import * as t from "io-ts"
2
-
3
- import { SharedSliceId } from "./SharedSliceId"
4
-
5
- // Wrapping the 'SharedSliceId' codec in an optional codec here for the sake of error reporting.
6
- // When using t.union([t.undefined, t.null, SharedSliceId]) we get a nested error context
7
- // with the actual decoding error at position 2 in the context array.
8
- // To avoid mutating the error context we create this new wrapper codec so that the error context will always have desired depth.
9
- export const OptionalSharedSliceId = new t.Type<
10
- SharedSliceId | null | undefined
11
- >(
12
- "OptionalSharedSliceId",
13
- (u): u is SharedSliceId | null | undefined =>
14
- u === null || u === undefined || SharedSliceId.is(u),
15
- (u, c) => {
16
- if (u === null || u === undefined) return t.success(u)
17
- return SharedSliceId.validate(u, c)
18
- },
19
- t.identity,
20
- )