@prismicio/types-internal 3.16.0 → 3.16.1-alpha.0

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 (235) hide show
  1. package/lib/content/fields/RepeatableContent.d.ts +51 -123
  2. package/lib/content/fields/RepeatableContent.js +10 -14
  3. package/lib/content/fields/nestable/RichTextContent/Block.d.ts +1036 -0
  4. package/lib/content/fields/nestable/RichTextContent/Block.js +31 -0
  5. package/lib/content/fields/nestable/RichTextContent/EmbedBlock.d.ts +60 -0
  6. package/lib/content/fields/nestable/RichTextContent/EmbedBlock.js +53 -0
  7. package/lib/content/fields/nestable/RichTextContent/ImageBlock.d.ts +203 -0
  8. package/lib/content/fields/nestable/RichTextContent/ImageBlock.js +36 -0
  9. package/lib/content/fields/nestable/RichTextContent/TableBlock.d.ts +500 -0
  10. package/lib/content/fields/nestable/RichTextContent/TableBlock.js +21 -0
  11. package/lib/content/fields/nestable/RichTextContent/TextBlock.d.ts +590 -0
  12. package/lib/content/fields/nestable/RichTextContent/TextBlock.js +80 -0
  13. package/lib/scripts/release.d.ts +1 -0
  14. package/lib/scripts/release.js +34 -0
  15. package/lib/src/_internal/utils.d.ts +36 -0
  16. package/lib/src/_internal/utils.js +20 -0
  17. package/lib/src/common/Asset.d.ts +16 -0
  18. package/lib/src/common/Asset.js +11 -0
  19. package/lib/src/common/Embed.d.ts +15 -0
  20. package/lib/src/common/Embed.js +10 -0
  21. package/lib/src/common/HexaColorCode.d.ts +4 -0
  22. package/lib/src/common/HexaColorCode.js +7 -0
  23. package/lib/src/common/UUID.d.ts +6 -0
  24. package/lib/src/common/UUID.js +8 -0
  25. package/lib/src/common/WidgetKey.d.ts +3 -0
  26. package/lib/src/common/WidgetKey.js +8 -0
  27. package/lib/src/common/index.d.ts +3 -0
  28. package/lib/src/common/index.js +6 -0
  29. package/lib/src/content/Document.d.ts +11803 -0
  30. package/lib/src/content/Document.js +266 -0
  31. package/lib/src/content/LegacyContentCtx.d.ts +64 -0
  32. package/lib/src/content/LegacyContentCtx.js +130 -0
  33. package/lib/src/content/fields/EmptyContent.d.ts +16 -0
  34. package/lib/src/content/fields/EmptyContent.js +30 -0
  35. package/lib/src/content/fields/GroupContent.d.ts +42 -0
  36. package/lib/src/content/fields/GroupContent.js +208 -0
  37. package/lib/src/content/fields/UIDContent.d.ts +16 -0
  38. package/lib/src/content/fields/UIDContent.js +25 -0
  39. package/lib/src/content/fields/WidgetContent.d.ts +11749 -0
  40. package/lib/src/content/fields/WidgetContent.js +57 -0
  41. package/lib/src/content/fields/index.d.ts +6 -0
  42. package/lib/src/content/fields/index.js +9 -0
  43. package/lib/src/content/fields/nestable/BooleanContent.d.ts +18 -0
  44. package/lib/src/content/fields/nestable/BooleanContent.js +35 -0
  45. package/lib/src/content/fields/nestable/EmbedContent.d.ts +78 -0
  46. package/lib/src/content/fields/nestable/EmbedContent.js +56 -0
  47. package/lib/src/content/fields/nestable/FieldContent/ColorContent.d.ts +18 -0
  48. package/lib/src/content/fields/nestable/FieldContent/ColorContent.js +35 -0
  49. package/lib/src/content/fields/nestable/FieldContent/DateContent.d.ts +18 -0
  50. package/lib/src/content/fields/nestable/FieldContent/DateContent.js +35 -0
  51. package/lib/src/content/fields/nestable/FieldContent/NumberContent.d.ts +18 -0
  52. package/lib/src/content/fields/nestable/FieldContent/NumberContent.js +35 -0
  53. package/lib/src/content/fields/nestable/FieldContent/RangeContent.d.ts +18 -0
  54. package/lib/src/content/fields/nestable/FieldContent/RangeContent.js +35 -0
  55. package/lib/src/content/fields/nestable/FieldContent/SelectContent.d.ts +20 -0
  56. package/lib/src/content/fields/nestable/FieldContent/SelectContent.js +46 -0
  57. package/lib/src/content/fields/nestable/FieldContent/TextContent.d.ts +18 -0
  58. package/lib/src/content/fields/nestable/FieldContent/TextContent.js +35 -0
  59. package/lib/src/content/fields/nestable/FieldContent/TimestampContent.d.ts +18 -0
  60. package/lib/src/content/fields/nestable/FieldContent/TimestampContent.js +35 -0
  61. package/lib/src/content/fields/nestable/FieldContent/common.d.ts +1 -0
  62. package/lib/src/content/fields/nestable/FieldContent/common.js +4 -0
  63. package/lib/src/content/fields/nestable/FieldContent/index.d.ts +49 -0
  64. package/lib/src/content/fields/nestable/FieldContent/index.js +38 -0
  65. package/lib/src/content/fields/nestable/GeoPointContent.d.ts +33 -0
  66. package/lib/src/content/fields/nestable/GeoPointContent.js +31 -0
  67. package/lib/src/content/fields/nestable/ImageContent.d.ts +227 -0
  68. package/lib/src/content/fields/nestable/ImageContent.js +73 -0
  69. package/lib/src/content/fields/nestable/IntegrationFieldContent.d.ts +16 -0
  70. package/lib/src/content/fields/nestable/IntegrationFieldContent.js +28 -0
  71. package/lib/src/content/fields/nestable/LinkContent.d.ts +919 -0
  72. package/lib/src/content/fields/nestable/LinkContent.js +399 -0
  73. package/lib/src/content/fields/nestable/NestableContent.d.ts +1953 -0
  74. package/lib/src/content/fields/nestable/NestableContent.js +167 -0
  75. package/lib/src/content/fields/nestable/RepeatableContent.d.ts +176 -0
  76. package/lib/src/content/fields/nestable/RepeatableContent.js +104 -0
  77. package/lib/src/content/fields/nestable/RichTextContent/Blocks.d.ts +1261 -0
  78. package/lib/src/content/fields/nestable/RichTextContent/Blocks.js +170 -0
  79. package/lib/src/content/fields/nestable/RichTextContent/index.d.ts +1004 -0
  80. package/lib/src/content/fields/nestable/RichTextContent/index.js +28 -0
  81. package/lib/src/content/fields/nestable/SeparatorContent.d.ts +13 -0
  82. package/lib/src/content/fields/nestable/SeparatorContent.js +22 -0
  83. package/lib/src/content/fields/nestable/TableContent.d.ts +770 -0
  84. package/lib/src/content/fields/nestable/TableContent.js +121 -0
  85. package/lib/src/content/fields/nestable/index.d.ts +12 -0
  86. package/lib/src/content/fields/nestable/index.js +15 -0
  87. package/lib/src/content/fields/slices/Slice/CompositeSliceContent.d.ts +3934 -0
  88. package/lib/src/content/fields/slices/Slice/CompositeSliceContent.js +195 -0
  89. package/lib/src/content/fields/slices/Slice/RepeatableContent.d.ts +774 -0
  90. package/lib/src/content/fields/slices/Slice/RepeatableContent.js +21 -0
  91. package/lib/src/content/fields/slices/Slice/SharedSliceContent.d.ts +3937 -0
  92. package/lib/src/content/fields/slices/Slice/SharedSliceContent.js +215 -0
  93. package/lib/src/content/fields/slices/Slice/SimpleSliceContent.d.ts +1962 -0
  94. package/lib/src/content/fields/slices/Slice/SimpleSliceContent.js +130 -0
  95. package/lib/src/content/fields/slices/Slice/SlicePrimaryContent.d.ts +1952 -0
  96. package/lib/src/content/fields/slices/Slice/SlicePrimaryContent.js +30 -0
  97. package/lib/src/content/fields/slices/Slice/index.d.ts +6810 -0
  98. package/lib/src/content/fields/slices/Slice/index.js +45 -0
  99. package/lib/src/content/fields/slices/SliceItem.d.ts +6846 -0
  100. package/lib/src/content/fields/slices/SliceItem.js +116 -0
  101. package/lib/src/content/fields/slices/SlicesContent.d.ts +9809 -0
  102. package/lib/src/content/fields/slices/SlicesContent.js +187 -0
  103. package/lib/src/content/fields/slices/index.d.ts +3 -0
  104. package/lib/src/content/fields/slices/index.js +6 -0
  105. package/lib/src/content/fields/withDefaultValues.d.ts +9 -0
  106. package/lib/src/content/fields/withDefaultValues.js +79 -0
  107. package/lib/src/content/index.d.ts +3 -0
  108. package/lib/src/content/index.js +6 -0
  109. package/lib/src/content/utils.d.ts +14 -0
  110. package/lib/src/content/utils.js +33 -0
  111. package/lib/src/customtypes/CustomType.d.ts +3680 -0
  112. package/lib/src/customtypes/CustomType.js +184 -0
  113. package/lib/src/customtypes/Section.d.ts +3635 -0
  114. package/lib/src/customtypes/Section.js +66 -0
  115. package/lib/src/customtypes/diff/Changes.d.ts +17 -0
  116. package/lib/src/customtypes/diff/Changes.js +9 -0
  117. package/lib/src/customtypes/diff/SharedSlice.d.ts +1624 -0
  118. package/lib/src/customtypes/diff/SharedSlice.js +55 -0
  119. package/lib/src/customtypes/diff/Variation.d.ts +1605 -0
  120. package/lib/src/customtypes/diff/Variation.js +113 -0
  121. package/lib/src/customtypes/diff/Widgets.d.ts +11 -0
  122. package/lib/src/customtypes/diff/Widgets.js +2 -0
  123. package/lib/src/customtypes/diff/index.d.ts +4 -0
  124. package/lib/src/customtypes/diff/index.js +7 -0
  125. package/lib/src/customtypes/index.d.ts +4 -0
  126. package/lib/src/customtypes/index.js +7 -0
  127. package/lib/src/customtypes/widgets/Group.d.ts +1352 -0
  128. package/lib/src/customtypes/widgets/Group.js +92 -0
  129. package/lib/src/customtypes/widgets/UID.d.ts +19 -0
  130. package/lib/src/customtypes/widgets/UID.js +21 -0
  131. package/lib/src/customtypes/widgets/Widget.d.ts +4457 -0
  132. package/lib/src/customtypes/widgets/Widget.js +49 -0
  133. package/lib/src/customtypes/widgets/index.d.ts +6 -0
  134. package/lib/src/customtypes/widgets/index.js +9 -0
  135. package/lib/src/customtypes/widgets/nestable/BooleanField.d.ts +20 -0
  136. package/lib/src/customtypes/widgets/nestable/BooleanField.js +21 -0
  137. package/lib/src/customtypes/widgets/nestable/Color.d.ts +17 -0
  138. package/lib/src/customtypes/widgets/nestable/Color.js +20 -0
  139. package/lib/src/customtypes/widgets/nestable/Date.d.ts +19 -0
  140. package/lib/src/customtypes/widgets/nestable/Date.js +21 -0
  141. package/lib/src/customtypes/widgets/nestable/Embed.d.ts +19 -0
  142. package/lib/src/customtypes/widgets/nestable/Embed.js +21 -0
  143. package/lib/src/customtypes/widgets/nestable/GeoPoint.d.ts +15 -0
  144. package/lib/src/customtypes/widgets/nestable/GeoPoint.js +19 -0
  145. package/lib/src/customtypes/widgets/nestable/Image.d.ts +44 -0
  146. package/lib/src/customtypes/widgets/nestable/Image.js +29 -0
  147. package/lib/src/customtypes/widgets/nestable/IntegrationField.d.ts +19 -0
  148. package/lib/src/customtypes/widgets/nestable/IntegrationField.js +21 -0
  149. package/lib/src/customtypes/widgets/nestable/Link.d.ts +196 -0
  150. package/lib/src/customtypes/widgets/nestable/Link.js +167 -0
  151. package/lib/src/customtypes/widgets/nestable/NestableWidget.d.ts +217 -0
  152. package/lib/src/customtypes/widgets/nestable/NestableWidget.js +39 -0
  153. package/lib/src/customtypes/widgets/nestable/Number.d.ts +23 -0
  154. package/lib/src/customtypes/widgets/nestable/Number.js +24 -0
  155. package/lib/src/customtypes/widgets/nestable/Range.d.ts +23 -0
  156. package/lib/src/customtypes/widgets/nestable/Range.js +24 -0
  157. package/lib/src/customtypes/widgets/nestable/RichText.d.ts +73 -0
  158. package/lib/src/customtypes/widgets/nestable/RichText.js +131 -0
  159. package/lib/src/customtypes/widgets/nestable/Select.d.ts +21 -0
  160. package/lib/src/customtypes/widgets/nestable/Select.js +22 -0
  161. package/lib/src/customtypes/widgets/nestable/Separator.d.ts +14 -0
  162. package/lib/src/customtypes/widgets/nestable/Separator.js +18 -0
  163. package/lib/src/customtypes/widgets/nestable/Table.d.ts +21 -0
  164. package/lib/src/customtypes/widgets/nestable/Table.js +30 -0
  165. package/lib/src/customtypes/widgets/nestable/Text.d.ts +19 -0
  166. package/lib/src/customtypes/widgets/nestable/Text.js +21 -0
  167. package/lib/src/customtypes/widgets/nestable/Timestamp.d.ts +19 -0
  168. package/lib/src/customtypes/widgets/nestable/Timestamp.js +21 -0
  169. package/lib/src/customtypes/widgets/nestable/index.d.ts +17 -0
  170. package/lib/src/customtypes/widgets/nestable/index.js +20 -0
  171. package/lib/src/customtypes/widgets/shared/ImageConstraint.d.ts +7 -0
  172. package/lib/src/customtypes/widgets/shared/ImageConstraint.js +31 -0
  173. package/lib/src/customtypes/widgets/shared/index.d.ts +1 -0
  174. package/lib/src/customtypes/widgets/shared/index.js +8 -0
  175. package/lib/src/customtypes/widgets/slices/CompositeSlice.d.ts +455 -0
  176. package/lib/src/customtypes/widgets/slices/CompositeSlice.js +63 -0
  177. package/lib/src/customtypes/widgets/slices/LegacySlice.d.ts +442 -0
  178. package/lib/src/customtypes/widgets/slices/LegacySlice.js +12 -0
  179. package/lib/src/customtypes/widgets/slices/SharedSlice.d.ts +1807 -0
  180. package/lib/src/customtypes/widgets/slices/SharedSlice.js +118 -0
  181. package/lib/src/customtypes/widgets/slices/SharedSliceRef.d.ts +5 -0
  182. package/lib/src/customtypes/widgets/slices/SharedSliceRef.js +9 -0
  183. package/lib/src/customtypes/widgets/slices/Slice.d.ts +6 -0
  184. package/lib/src/customtypes/widgets/slices/Slice.js +2 -0
  185. package/lib/src/customtypes/widgets/slices/SlicePrimaryWidget.d.ts +1259 -0
  186. package/lib/src/customtypes/widgets/slices/SlicePrimaryWidget.js +10 -0
  187. package/lib/src/customtypes/widgets/slices/Slices.d.ts +5917 -0
  188. package/lib/src/customtypes/widgets/slices/Slices.js +146 -0
  189. package/lib/src/customtypes/widgets/slices/SlicesTypes.d.ts +6 -0
  190. package/lib/src/customtypes/widgets/slices/SlicesTypes.js +11 -0
  191. package/lib/src/customtypes/widgets/slices/index.d.ts +8 -0
  192. package/lib/src/customtypes/widgets/slices/index.js +11 -0
  193. package/lib/src/utils/Arrays.d.ts +1 -0
  194. package/lib/src/utils/Arrays.js +13 -0
  195. package/lib/src/utils/DocumentId.d.ts +2 -0
  196. package/lib/src/utils/DocumentId.js +7 -0
  197. package/lib/src/utils/Objects.d.ts +8 -0
  198. package/lib/src/utils/Objects.js +42 -0
  199. package/lib/src/utils/index.d.ts +3 -0
  200. package/lib/src/utils/index.js +7 -0
  201. package/lib/src/validators/BasicTypes.d.ts +10 -0
  202. package/lib/src/validators/BasicTypes.js +25 -0
  203. package/lib/src/validators/DateFromString.d.ts +3 -0
  204. package/lib/src/validators/DateFromString.js +11 -0
  205. package/lib/src/validators/DateFromStringOrNumber.d.ts +3 -0
  206. package/lib/src/validators/DateFromStringOrNumber.js +10 -0
  207. package/lib/src/validators/DateFromTsMs.d.ts +3 -0
  208. package/lib/src/validators/DateFromTsMs.js +10 -0
  209. package/lib/src/validators/DefaultOrElse.d.ts +5 -0
  210. package/lib/src/validators/DefaultOrElse.js +21 -0
  211. package/lib/src/validators/IntFromNumber.d.ts +5 -0
  212. package/lib/src/validators/IntFromNumber.js +14 -0
  213. package/lib/src/validators/IntFromPixels.d.ts +8 -0
  214. package/lib/src/validators/IntFromPixels.js +24 -0
  215. package/lib/src/validators/NonEmptyString.d.ts +3 -0
  216. package/lib/src/validators/NonEmptyString.js +6 -0
  217. package/lib/src/validators/NonEmptyStringOrNull.d.ts +3 -0
  218. package/lib/src/validators/NonEmptyStringOrNull.js +15 -0
  219. package/lib/src/validators/NumberOrNull.d.ts +3 -0
  220. package/lib/src/validators/NumberOrNull.js +6 -0
  221. package/lib/src/validators/NumberRange.d.ts +32 -0
  222. package/lib/src/validators/NumberRange.js +40 -0
  223. package/lib/src/validators/StringFromBoolean.d.ts +5 -0
  224. package/lib/src/validators/StringFromBoolean.js +10 -0
  225. package/lib/src/validators/StringFromNumber.d.ts +5 -0
  226. package/lib/src/validators/StringFromNumber.js +10 -0
  227. package/lib/src/validators/StringOrNull.d.ts +3 -0
  228. package/lib/src/validators/StringOrNull.js +6 -0
  229. package/lib/src/validators/TrimmedString.d.ts +5 -0
  230. package/lib/src/validators/TrimmedString.js +23 -0
  231. package/lib/src/validators/function.d.ts +34 -0
  232. package/lib/src/validators/function.js +100 -0
  233. package/lib/src/validators/index.d.ts +15 -0
  234. package/lib/src/validators/index.js +31 -0
  235. package/package.json +1 -1
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Block = exports.BlockLegacy = exports.TextBlockLegacy = exports.TextBlock = exports.checkEmbedBlock = exports.EmbedBlock = exports.checkImageBlock = exports.ImageBlock = exports.ValidatedSpans = exports.SpanLegacy = exports.Span = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fp_ts_1 = require("fp-ts");
6
+ const Either_1 = require("fp-ts/lib/Either");
7
+ const function_1 = require("fp-ts/lib/function");
8
+ const t = (0, tslib_1.__importStar)(require("io-ts"));
9
+ const io_ts_types_1 = require("io-ts-types");
10
+ const nestable_1 = require("../../../../customtypes/widgets/nestable");
11
+ const validators_1 = require("../../../../validators");
12
+ const function_2 = require("../../../../validators/function");
13
+ const EmbedContent_1 = require("../EmbedContent");
14
+ const ImageContent_1 = require("../ImageContent");
15
+ const LinkContent_1 = require("../LinkContent");
16
+ const linkSpan = (linkCodec) => t.strict({
17
+ data: linkCodec,
18
+ start: t.number,
19
+ end: t.number,
20
+ type: t.literal(nestable_1.RichTextNodeType.hyperlink),
21
+ });
22
+ const labelSpan = t.strict({
23
+ data: (0, io_ts_types_1.withFallback)(t.string, ""),
24
+ start: t.number,
25
+ end: t.number,
26
+ type: t.literal("label"),
27
+ });
28
+ const basicSpan = t.strict({
29
+ start: t.number,
30
+ end: t.number,
31
+ type: t.keyof({
32
+ [nestable_1.RichTextNodeType.strong]: null,
33
+ [nestable_1.RichTextNodeType.em]: null,
34
+ "list-item": null, // legacy case that should not happen, we shouldn't support this in new page builder or migration API
35
+ }),
36
+ });
37
+ exports.Span = t.union([linkSpan(LinkContent_1.FilledLink), labelSpan, basicSpan]);
38
+ exports.SpanLegacy = t.union([
39
+ linkSpan(LinkContent_1.FilledLinkLegacy),
40
+ labelSpan,
41
+ basicSpan,
42
+ ]);
43
+ const ValidatedSpans = (spanCodec) => {
44
+ return new t.Type("ValidatedSpans", (spans) => Array.isArray(spans) && spans.every(spanCodec.is), (spans, c) => {
45
+ if (Array.isArray(spans)) {
46
+ const res = spans
47
+ .reduce((acc, maybeSpan) => {
48
+ const decodedSpan = spanCodec.decode(maybeSpan);
49
+ if ((0, Either_1.isLeft)(decodedSpan))
50
+ return acc;
51
+ return [...acc, decodedSpan.right];
52
+ }, [])
53
+ .sort((m1, m2) => m1.start - m2.start);
54
+ return t.success(res);
55
+ }
56
+ else
57
+ return t.failure(spans, c);
58
+ }, (m) => {
59
+ return m.reduce((acc, meta) => {
60
+ const encoded = spanCodec.encode(meta);
61
+ return [...acc, encoded];
62
+ }, []);
63
+ });
64
+ };
65
+ exports.ValidatedSpans = ValidatedSpans;
66
+ // We allow any codec here and let TypeScript infer the resulting codec.
67
+ // Typing it more precisely creates conflicts.
68
+ //
69
+ // Using `t.Mixed` rather than `t.Type<A, O>` causes `data.linkTo` to be
70
+ // typed as `any`. It seems to be an issue with the `nullable` helper.
71
+ const ImageBlockCodec = (linkCodec) => t.exact(t.intersection([
72
+ t.type({
73
+ type: t.literal(nestable_1.RichTextNodeType.image),
74
+ data: t.intersection([
75
+ ImageContent_1.ImageContentView,
76
+ t.partial({
77
+ linkTo: (0, function_2.nullable)(linkCodec),
78
+ }),
79
+ ]),
80
+ }),
81
+ t.partial({
82
+ label: validators_1.StringOrNull,
83
+ direction: validators_1.StringOrNull,
84
+ }),
85
+ ]));
86
+ exports.ImageBlock = ImageBlockCodec(LinkContent_1.FilledLink);
87
+ const ImageBlockLegacy = ImageBlockCodec(LinkContent_1.FilledLinkLegacy);
88
+ function checkImageBlock(block) {
89
+ return block.type === nestable_1.RichTextNodeType.image;
90
+ }
91
+ exports.checkImageBlock = checkImageBlock;
92
+ const embedBlockLegacyCodec = t.exact(t.intersection([
93
+ t.type({
94
+ type: t.literal(nestable_1.RichTextNodeType.embed),
95
+ data: t.unknown,
96
+ }),
97
+ t.partial({
98
+ label: validators_1.StringOrNull,
99
+ direction: validators_1.StringOrNull,
100
+ }),
101
+ ]));
102
+ const EmbedBlockLegacy = new t.Type("EmbedBlockLegacy", (u) => u.type === "embed", (block) => (0, function_1.pipe)(embedBlockLegacyCodec.decode(block), fp_ts_1.either.chain((decodedBlock) => {
103
+ return fp_ts_1.either.map((decodedData) => {
104
+ return [decodedBlock, decodedData];
105
+ })(EmbedContent_1.EmbedContentLegacy.decode(decodedBlock.data));
106
+ }), fp_ts_1.either.map(([block, parsedData]) => {
107
+ return exports.EmbedBlock.encode({
108
+ ...block,
109
+ data: {
110
+ ...parsedData,
111
+ __TYPE__: EmbedContent_1.EmbedContentType,
112
+ all: block.data,
113
+ },
114
+ });
115
+ })), (embedBlock) => {
116
+ return {
117
+ ...embedBlockLegacyCodec.encode(embedBlock),
118
+ data: EmbedContent_1.EmbedContentLegacy.encode(embedBlock.data),
119
+ };
120
+ });
121
+ exports.EmbedBlock = t.exact(t.intersection([
122
+ t.type({
123
+ type: t.literal(nestable_1.RichTextNodeType.embed),
124
+ data: EmbedContent_1.EmbedContent,
125
+ }),
126
+ t.partial({
127
+ label: validators_1.StringOrNull,
128
+ direction: validators_1.StringOrNull,
129
+ }),
130
+ ]));
131
+ function checkEmbedBlock(block) {
132
+ return block.type === nestable_1.RichTextNodeType.embed;
133
+ }
134
+ exports.checkEmbedBlock = checkEmbedBlock;
135
+ const TextBlockCodec = (spanCodec) => t.exact(t.intersection([
136
+ t.type({
137
+ type: (0, function_2.refineType)(nestable_1.RichTextNodeTypeCodec, `string which isn't ${nestable_1.RichTextNodeType.image} ${nestable_1.RichTextNodeType.embed}`, (s) => s !== nestable_1.RichTextNodeType.image && s !== nestable_1.RichTextNodeType.embed),
138
+ content: t.intersection([
139
+ t.type({
140
+ text: t.string,
141
+ }),
142
+ t.partial({
143
+ spans: (0, exports.ValidatedSpans)(spanCodec),
144
+ }),
145
+ ]),
146
+ }),
147
+ t.partial({
148
+ label: t.string,
149
+ direction: t.string,
150
+ }),
151
+ ]));
152
+ /* These Text block will decode codec A and encode from codec B to A */
153
+ exports.TextBlock = TextBlockCodec(exports.Span);
154
+ exports.TextBlockLegacy = TextBlockCodec(exports.SpanLegacy);
155
+ const legacyBlockCodec = t.union([
156
+ EmbedBlockLegacy,
157
+ ImageBlockLegacy,
158
+ exports.TextBlockLegacy,
159
+ ]);
160
+ exports.BlockLegacy = new t.Type("BlockLegacy", (u) => EmbedBlockLegacy.is(u) || ImageBlockLegacy.is(u) || exports.TextBlockLegacy.is(u), (legacyBlock) => legacyBlockCodec.decode(legacyBlock), (block) => {
161
+ return (() => {
162
+ if (exports.ImageBlock.is(block))
163
+ return ImageBlockLegacy.encode(block);
164
+ else if (exports.EmbedBlock.is(block))
165
+ return EmbedBlockLegacy.encode(block);
166
+ else
167
+ return exports.TextBlockLegacy.encode(block);
168
+ })();
169
+ });
170
+ exports.Block = t.union([exports.ImageBlock, exports.EmbedBlock, exports.TextBlock]);