@prismicio/types-internal 2.2.0-alpha.2 → 2.2.0-alpha.21

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 (244) hide show
  1. package/lib/common/Asset.d.ts +16 -0
  2. package/lib/common/Asset.js +11 -0
  3. package/lib/common/Embed.d.ts +15 -0
  4. package/lib/common/Embed.js +10 -0
  5. package/lib/common/UUID.d.ts +7 -0
  6. package/lib/common/UUID.js +8 -0
  7. package/lib/common/index.d.ts +2 -0
  8. package/lib/common/index.js +2 -0
  9. package/lib/content/Document.d.ts +40 -40
  10. package/lib/content/fields/GroupContent.d.ts +12 -12
  11. package/lib/content/fields/WidgetContent.d.ts +56 -56
  12. package/lib/content/fields/nestable/NestableContent.d.ts +7 -7
  13. package/lib/content/fields/nestable/RichTextContent/Blocks.d.ts +35 -12
  14. package/lib/content/fields/nestable/RichTextContent/Blocks.js +5 -5
  15. package/lib/content/fields/nestable/RichTextContent/index.d.ts +9 -9
  16. package/lib/content/fields/slices/Slice/CompositeSliceContent.d.ts +14 -14
  17. package/lib/content/fields/slices/Slice/RepeatableContent.d.ts +5 -5
  18. package/lib/content/fields/slices/Slice/RepeatableContent.js +0 -1
  19. package/lib/content/fields/slices/Slice/SharedSliceContent.d.ts +14 -14
  20. package/lib/content/fields/slices/Slice/SimpleSliceContent.d.ts +14 -14
  21. package/lib/content/fields/slices/Slice/index.d.ts +30 -30
  22. package/lib/content/fields/slices/SliceItem.d.ts +30 -30
  23. package/lib/content/fields/slices/SlicesContent.d.ts +42 -42
  24. package/lib/customtypes/CustomType.d.ts +2 -0
  25. package/lib/customtypes/CustomType.js +8 -1
  26. package/lib/import/converters/Document.d.ts +2 -2
  27. package/lib/import/converters/Document.js +6 -6
  28. package/lib/import/converters/fields/Slices/SharedSlice.d.ts +4 -0
  29. package/lib/import/converters/fields/Slices/SharedSlice.js +19 -0
  30. package/lib/import/converters/fields/Slices/SharedSliceContent.d.ts +10 -0
  31. package/lib/import/converters/fields/Slices/SharedSliceContent.js +58 -0
  32. package/lib/import/converters/fields/Slices/Slices.d.ts +4 -0
  33. package/lib/import/converters/fields/Slices/Slices.js +16 -0
  34. package/lib/import/converters/fields/Slices/index.d.ts +1 -0
  35. package/lib/import/converters/fields/Slices/index.js +4 -0
  36. package/lib/import/converters/fields/UID.d.ts +1 -1
  37. package/lib/import/converters/fields/UID.js +0 -2
  38. package/lib/import/converters/fields/index.d.ts +1 -0
  39. package/lib/import/converters/fields/index.js +1 -0
  40. package/lib/import/converters/fields/nestable/Embed.d.ts +2 -1
  41. package/lib/import/converters/fields/nestable/Embed.js +24 -5
  42. package/lib/import/converters/fields/nestable/GeoPoint.d.ts +3 -0
  43. package/lib/import/converters/fields/nestable/GeoPoint.js +15 -0
  44. package/lib/import/converters/fields/nestable/GeooPoint.d.ts +3 -0
  45. package/lib/import/converters/fields/nestable/GeooPoint.js +15 -0
  46. package/lib/import/converters/fields/nestable/Image.d.ts +6 -18
  47. package/lib/import/converters/fields/nestable/Image.js +47 -24
  48. package/lib/import/converters/fields/nestable/Link.d.ts +3 -2
  49. package/lib/import/converters/fields/nestable/Link.js +62 -11
  50. package/lib/import/converters/fields/nestable/Nestable.d.ts +4 -3
  51. package/lib/import/converters/fields/nestable/Nestable.js +9 -3
  52. package/lib/import/converters/fields/nestable/RichText/embedBlock.d.ts +4 -0
  53. package/lib/import/converters/fields/nestable/RichText/embedBlock.js +14 -0
  54. package/lib/import/converters/fields/nestable/RichText/imageBlock.d.ts +4 -0
  55. package/lib/import/converters/fields/nestable/RichText/imageBlock.js +12 -0
  56. package/lib/import/converters/fields/nestable/RichText/index.d.ts +4 -0
  57. package/lib/import/converters/fields/nestable/RichText/index.js +22 -0
  58. package/lib/import/converters/fields/nestable/RichText/textBlock.d.ts +4 -0
  59. package/lib/import/converters/fields/nestable/RichText/textBlock.js +34 -0
  60. package/lib/import/converters/fields/nestable/RichText.d.ts +4 -0
  61. package/lib/import/converters/fields/nestable/RichText.js +55 -0
  62. package/lib/import/converters/fields/nestable/index.d.ts +3 -0
  63. package/lib/import/converters/fields/nestable/index.js +3 -0
  64. package/lib/import/validators/Document.js +4 -9
  65. package/lib/import/validators/fields/ImportField.d.ts +68 -68
  66. package/lib/import/validators/fields/ImportField.js +8 -4
  67. package/lib/import/validators/fields/ImportSlices/ImportSlices.d.ts +8 -0
  68. package/lib/import/validators/fields/ImportSlices/ImportSlices.js +29 -0
  69. package/lib/import/validators/fields/ImportSlices/SharedSlice/SharedSlice.d.ts +14 -0
  70. package/lib/import/validators/fields/ImportSlices/SharedSlice/SharedSlice.js +61 -0
  71. package/lib/import/validators/fields/ImportSlices/SharedSlice/errors.d.ts +4 -0
  72. package/lib/import/validators/fields/ImportSlices/SharedSlice/errors.js +7 -0
  73. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/OptionalSharedSliceId.d.ts +2 -0
  74. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/OptionalSharedSliceId.js +15 -0
  75. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/SharedSliceContent.d.ts +17 -0
  76. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/SharedSliceContent.js +30 -0
  77. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/SharedSliceContentEntry.d.ts +43 -0
  78. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/SharedSliceContentEntry.js +69 -0
  79. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/errors.d.ts +4 -0
  80. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/errors.js +6 -0
  81. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/index.d.ts +2 -0
  82. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/index.js +5 -0
  83. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/types.d.ts +1 -0
  84. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/types.js +2 -0
  85. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceId.d.ts +9 -0
  86. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceId.js +39 -0
  87. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceType.d.ts +11 -0
  88. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceType.js +24 -0
  89. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceVariation.d.ts +11 -0
  90. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceVariation.js +24 -0
  91. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/index.d.ts +5 -0
  92. package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/index.js +8 -0
  93. package/lib/import/validators/fields/ImportSlices/SharedSlice/index.d.ts +3 -0
  94. package/lib/import/validators/fields/ImportSlices/SharedSlice/index.js +6 -0
  95. package/lib/import/validators/fields/ImportSlices/SharedSlice/utils.d.ts +339 -0
  96. package/lib/import/validators/fields/ImportSlices/SharedSlice/utils.js +11 -0
  97. package/lib/import/validators/fields/ImportSlices/index.d.ts +1 -0
  98. package/lib/import/validators/fields/ImportSlices/index.js +4 -0
  99. package/lib/import/validators/fields/ImportSlices/utils.d.ts +4 -0
  100. package/lib/import/validators/fields/ImportSlices/utils.js +35 -0
  101. package/lib/import/validators/fields/UID.d.ts +2 -2
  102. package/lib/import/validators/fields/UID.js +1 -1
  103. package/lib/import/validators/fields/nestable/Embed.d.ts +8 -22
  104. package/lib/import/validators/fields/nestable/Embed.js +5 -28
  105. package/lib/import/validators/fields/nestable/GeoPoint.d.ts +13 -0
  106. package/lib/import/validators/fields/nestable/GeoPoint.js +13 -0
  107. package/lib/import/validators/fields/nestable/Image/default.d.ts +22 -0
  108. package/lib/import/validators/fields/nestable/Image/default.js +19 -0
  109. package/lib/import/validators/fields/nestable/Image/index.d.ts +45 -0
  110. package/lib/import/validators/fields/nestable/Image/index.js +41 -0
  111. package/lib/import/validators/fields/nestable/Image/merge.d.ts +23 -0
  112. package/lib/import/validators/fields/nestable/Image/merge.js +44 -0
  113. package/lib/import/validators/fields/nestable/Image/model.d.ts +18 -0
  114. package/lib/import/validators/fields/nestable/Image/model.js +2 -0
  115. package/lib/import/validators/fields/nestable/Image/validators.d.ts +35 -0
  116. package/lib/import/validators/fields/nestable/Image/validators.js +31 -0
  117. package/lib/import/validators/fields/nestable/ImportRichText/ImportBlock.d.ts +6 -0
  118. package/lib/import/validators/fields/nestable/ImportRichText/ImportBlock.js +25 -0
  119. package/lib/import/validators/fields/nestable/ImportRichText/ImportRichText.d.ts +24 -0
  120. package/lib/import/validators/fields/nestable/ImportRichText/ImportRichText.js +26 -0
  121. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportBlockType.d.ts +6 -0
  122. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportBlockType.js +18 -0
  123. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportEmbedBlock.d.ts +10 -0
  124. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportEmbedBlock.js +11 -0
  125. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportImageBlock.d.ts +8 -0
  126. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportImageBlock.js +11 -0
  127. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportTextBlock.d.ts +70 -0
  128. package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportTextBlock.js +43 -0
  129. package/lib/import/validators/fields/nestable/ImportRichText/blocks/Span.d.ts +65 -0
  130. package/lib/import/validators/fields/nestable/ImportRichText/blocks/Span.js +20 -0
  131. package/lib/import/validators/fields/nestable/ImportRichText/blocks/index.d.ts +4 -0
  132. package/lib/import/validators/fields/nestable/ImportRichText/blocks/index.js +7 -0
  133. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/HyperlinkSpan.d.ts +24 -0
  134. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/HyperlinkSpan.js +18 -0
  135. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/SpanLocation.d.ts +5 -0
  136. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/SpanLocation.js +10 -0
  137. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/TextSpan.d.ts +17 -0
  138. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/TextSpan.js +22 -0
  139. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/index.d.ts +2 -0
  140. package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/index.js +5 -0
  141. package/lib/import/validators/fields/nestable/ImportRichText/index.d.ts +2 -0
  142. package/lib/import/validators/fields/nestable/ImportRichText/index.js +7 -0
  143. package/lib/import/validators/fields/nestable/Link.d.ts +33 -0
  144. package/lib/import/validators/fields/nestable/Link.js +16 -11
  145. package/lib/import/validators/fields/nestable/Nestable.d.ts +65 -62
  146. package/lib/import/validators/fields/nestable/Nestable.js +18 -6
  147. package/lib/import/validators/fields/nestable/index.d.ts +5 -1
  148. package/lib/import/validators/fields/nestable/index.js +7 -1
  149. package/lib/utils/DocumentId.d.ts +2 -0
  150. package/lib/utils/DocumentId.js +7 -0
  151. package/lib/utils/Objects.d.ts +1 -1
  152. package/lib/utils/Objects.js +1 -1
  153. package/lib/utils/io-ts.d.ts +2 -0
  154. package/lib/utils/io-ts.js +22 -0
  155. package/lib/validators/BasicTypes.d.ts +0 -1
  156. package/lib/validators/BasicTypes.js +7 -8
  157. package/lib/validators/DefaultOrElse.js +1 -1
  158. package/lib/validators/NonEmptyString.js +1 -1
  159. package/lib/validators/NumberRange.d.ts +32 -0
  160. package/lib/validators/NumberRange.js +40 -0
  161. package/lib/validators/function.d.ts +20 -0
  162. package/lib/validators/function.js +41 -1
  163. package/lib/validators/index.d.ts +1 -0
  164. package/lib/validators/index.js +3 -1
  165. package/package.json +4 -2
  166. package/src/common/Asset.ts +25 -0
  167. package/src/common/Embed.ts +22 -0
  168. package/src/common/UUID.ts +19 -0
  169. package/src/common/index.ts +2 -0
  170. package/src/content/fields/nestable/RichTextContent/Blocks.ts +1 -1
  171. package/src/content/fields/slices/Slice/RepeatableContent.ts +0 -1
  172. package/src/customtypes/CustomType.ts +13 -0
  173. package/src/import/converters/Document.ts +10 -7
  174. package/src/import/converters/fields/Slices/SharedSlice.ts +24 -0
  175. package/src/import/converters/fields/Slices/SharedSliceContent.ts +94 -0
  176. package/src/import/converters/fields/Slices/Slices.ts +20 -0
  177. package/src/import/converters/fields/Slices/index.ts +1 -0
  178. package/src/import/converters/fields/UID.ts +1 -5
  179. package/src/import/converters/fields/index.ts +1 -0
  180. package/src/import/converters/fields/nestable/Embed.ts +29 -7
  181. package/src/import/converters/fields/nestable/GeoPoint.ts +16 -0
  182. package/src/import/converters/fields/nestable/Image.ts +69 -44
  183. package/src/import/converters/fields/nestable/Link.ts +77 -0
  184. package/src/import/converters/fields/nestable/Nestable.ts +17 -6
  185. package/src/import/converters/fields/nestable/RichText/embedBlock.ts +14 -0
  186. package/src/import/converters/fields/nestable/RichText/imageBlock.ts +14 -0
  187. package/src/import/converters/fields/nestable/RichText/index.ts +23 -0
  188. package/src/import/converters/fields/nestable/RichText/textBlock.ts +35 -0
  189. package/src/import/converters/fields/nestable/index.ts +3 -0
  190. package/src/import/validators/Document.ts +4 -12
  191. package/src/import/validators/fields/ImportField.ts +12 -6
  192. package/src/import/validators/fields/ImportSlices/ImportSlices.ts +54 -0
  193. package/src/import/validators/fields/ImportSlices/SharedSlice/SharedSlice.ts +116 -0
  194. package/src/import/validators/fields/ImportSlices/SharedSlice/errors.ts +6 -0
  195. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/OptionalSharedSliceId.ts +20 -0
  196. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/SharedSliceContent.ts +64 -0
  197. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/SharedSliceContentEntry.ts +100 -0
  198. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/errors.ts +10 -0
  199. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/index.ts +2 -0
  200. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceContent/types.ts +1 -0
  201. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceId.ts +65 -0
  202. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceType.ts +45 -0
  203. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceVariation.ts +45 -0
  204. package/src/import/validators/fields/ImportSlices/SharedSlice/fields/index.ts +5 -0
  205. package/src/import/validators/fields/ImportSlices/SharedSlice/index.ts +3 -0
  206. package/src/import/validators/fields/ImportSlices/SharedSlice/utils.ts +21 -0
  207. package/src/import/validators/fields/ImportSlices/index.ts +1 -0
  208. package/src/import/validators/fields/ImportSlices/utils.ts +43 -0
  209. package/src/import/validators/fields/UID.ts +2 -2
  210. package/src/import/validators/fields/nestable/Embed.ts +6 -51
  211. package/src/import/validators/fields/nestable/GeoPoint.ts +21 -0
  212. package/src/import/validators/fields/nestable/Image/default.ts +25 -0
  213. package/src/import/validators/fields/nestable/Image/index.ts +73 -0
  214. package/src/import/validators/fields/nestable/Image/merge.ts +64 -0
  215. package/src/import/validators/fields/nestable/Image/model.ts +18 -0
  216. package/src/import/validators/fields/nestable/Image/validators.ts +45 -0
  217. package/src/import/validators/fields/nestable/ImportRichText/ImportBlock.ts +39 -0
  218. package/src/import/validators/fields/nestable/ImportRichText/ImportRichText.ts +41 -0
  219. package/src/import/validators/fields/nestable/ImportRichText/blocks/ImportBlockType.ts +44 -0
  220. package/src/import/validators/fields/nestable/ImportRichText/blocks/ImportEmbedBlock.ts +13 -0
  221. package/src/import/validators/fields/nestable/ImportRichText/blocks/ImportImageBlock.ts +13 -0
  222. package/src/import/validators/fields/nestable/ImportRichText/blocks/ImportTextBlock.ts +56 -0
  223. package/src/import/validators/fields/nestable/ImportRichText/blocks/Span.ts +44 -0
  224. package/src/import/validators/fields/nestable/ImportRichText/blocks/index.ts +4 -0
  225. package/src/import/validators/fields/nestable/ImportRichText/blocks/spans/HyperlinkSpan.ts +24 -0
  226. package/src/import/validators/fields/nestable/ImportRichText/blocks/spans/SpanLocation.ts +8 -0
  227. package/src/import/validators/fields/nestable/ImportRichText/blocks/spans/TextSpan.ts +26 -0
  228. package/src/import/validators/fields/nestable/ImportRichText/blocks/spans/index.ts +2 -0
  229. package/src/import/validators/fields/nestable/ImportRichText/index.ts +2 -0
  230. package/src/import/validators/fields/nestable/Link.ts +59 -0
  231. package/src/import/validators/fields/nestable/Nestable.ts +19 -4
  232. package/src/import/validators/fields/nestable/index.ts +5 -1
  233. package/src/utils/DocumentId.ts +8 -0
  234. package/src/utils/Objects.ts +2 -2
  235. package/src/utils/io-ts.ts +29 -0
  236. package/src/validators/BasicTypes.ts +13 -11
  237. package/src/validators/DefaultOrElse.ts +1 -1
  238. package/src/validators/NonEmptyString.ts +4 -5
  239. package/src/validators/NumberRange.ts +51 -0
  240. package/src/validators/function.ts +44 -0
  241. package/src/validators/index.ts +1 -0
  242. package/lib/import/validators/fields/nestable/Image.d.ts +0 -24
  243. package/lib/import/validators/fields/nestable/Image.js +0 -45
  244. package/src/import/validators/fields/nestable/Image.ts +0 -90
@@ -2,8 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.uidConverter = void 0;
4
4
  const uidConverter = (field) => {
5
- if (field === null)
6
- return;
7
5
  return {
8
6
  value: field,
9
7
  __TYPE__: "UIDContent",
@@ -1,2 +1,3 @@
1
1
  export * from "./nestable";
2
+ export * from "./Slices";
2
3
  export * from "./UID";
@@ -2,4 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  (0, tslib_1.__exportStar)(require("./nestable"), exports);
5
+ (0, tslib_1.__exportStar)(require("./Slices"), exports);
5
6
  (0, tslib_1.__exportStar)(require("./UID"), exports);
@@ -1,3 +1,4 @@
1
+ import type { Embed } from "../../../../common";
1
2
  import type { EmbedContent } from "../../../../content";
2
3
  import type { ImportEmbed } from "../../../validators";
3
- export declare const embedConverter: (field: ImportEmbed["value"]) => EmbedContent | undefined;
4
+ export declare const embedConverter: (field: ImportEmbed["value"], embeds: Record<string, Embed | undefined>) => EmbedContent | undefined;
@@ -1,13 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.embedConverter = void 0;
4
- const embedConverter = (field) => {
4
+ const common_1 = require("../../../../common");
5
+ const Objects_1 = require("../../../../utils/Objects");
6
+ const embedConverter = (field, embeds) => {
5
7
  if (field === null)
6
8
  return;
7
- return {
8
- ...field,
9
+ const embed = (0, common_1.getEmbedOrThrow)(embeds)(field.embed_url);
10
+ return (0, Objects_1.withOptionals)({
11
+ embed_url: field.embed_url,
12
+ type: embed.type,
13
+ all: {
14
+ embed_url: field.embed_url,
15
+ ...embed,
16
+ },
9
17
  __TYPE__: "EmbedContent",
10
- };
11
- return;
18
+ }, [
19
+ ["version", embed.version],
20
+ ["title", embed.title],
21
+ ["author_name", embed.author_name],
22
+ ["author_url", embed.author_url],
23
+ ["provider_name", embed.provider_name],
24
+ ["provider_url", embed.provider_url],
25
+ ["cache_age", embed.cache_age],
26
+ ["thumbnail_url", embed.thumbnail_url],
27
+ ["thumbnail_width", embed.thumbnail_width],
28
+ ["thumbnail_height", embed.thumbnail_height],
29
+ ["html", embed.html],
30
+ ]);
12
31
  };
13
32
  exports.embedConverter = embedConverter;
@@ -0,0 +1,3 @@
1
+ import type { GeoPointContent } from "../../../../content";
2
+ import type { ImportGeoPoint } from "../../../validators";
3
+ export declare const geopointConverter: (field: ImportGeoPoint["value"]) => GeoPointContent | undefined;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.geopointConverter = void 0;
4
+ const geopointConverter = (field) => {
5
+ if (field === null)
6
+ return;
7
+ return {
8
+ position: {
9
+ lat: field.latitude,
10
+ lng: field.longitude,
11
+ },
12
+ __TYPE__: "GeoPointContent",
13
+ };
14
+ };
15
+ exports.geopointConverter = geopointConverter;
@@ -0,0 +1,3 @@
1
+ import type { GeoPointContent } from "../../../../content";
2
+ import type { ImportGeoPoint } from "../../../validators";
3
+ export declare const geopointConverter: (field: ImportGeoPoint["value"]) => GeoPointContent | undefined;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.geopointConverter = void 0;
4
+ const geopointConverter = (field) => {
5
+ if (field === null)
6
+ return;
7
+ return {
8
+ position: {
9
+ lat: field.latitude,
10
+ lng: field.longitude,
11
+ },
12
+ __TYPE__: "GeoPointContent",
13
+ };
14
+ };
15
+ exports.geopointConverter = geopointConverter;
@@ -1,18 +1,6 @@
1
- import type { ImageContent } from "../../../../content";
2
- import type { ImportImage } from "../../../validators";
3
- export declare type Asset = {
4
- id: string;
5
- last_modified: string;
6
- kind: "image" | "all";
7
- filename?: string;
8
- extension?: string;
9
- size?: string;
10
- origin_url: string;
11
- url: string;
12
- width?: number;
13
- height?: number;
14
- notes?: string;
15
- credits?: string;
16
- alt?: string;
17
- };
18
- export declare const imageConverter: (field: ImportImage["value"], images: Map<string, Asset>) => ImageContent | undefined;
1
+ import type { Asset } from "../../../../common";
2
+ import type { ImageContent, ImageContentView } from "../../../../content";
3
+ import type { ImageField, ImportImage } from "../../../validators";
4
+ import type { ImportImageBlock } from "../../../validators/fields/nestable/ImportRichText/blocks";
5
+ export declare function convertImageView<Input extends ImageField | ImportImageBlock>(inputImage: Input, image: Asset): ImageContentView;
6
+ export declare const imageConverter: (imageField: ImportImage["value"], assets: Record<Asset["id"], Asset | undefined>) => ImageContent | undefined;
@@ -1,44 +1,67 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.imageConverter = void 0;
3
+ exports.imageConverter = exports.convertImageView = void 0;
4
+ const common_1 = require("../../../../common");
4
5
  const Objects_1 = require("../../../../utils/Objects");
5
- function convertImage(field, image) {
6
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
6
+ function convertImageView(inputImage, image) {
7
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
8
+ // We can do that because anyway all properties being read
9
+ const imageField = {
10
+ ...inputImage,
11
+ edit: "edit" in inputImage
12
+ ? inputImage.edit
13
+ : {
14
+ x: 0,
15
+ y: 0,
16
+ zoom: 1,
17
+ },
18
+ dimensions: "dimensions" in inputImage ? inputImage.dimensions : {},
19
+ };
7
20
  return (0, Objects_1.withOptionals)({
8
21
  origin: {
9
- id: field.id,
22
+ id: image.id,
10
23
  url: image.origin_url,
11
- width: image.width,
12
- height: image.height,
24
+ // All images returned form Asset API should have width and height properties.
25
+ width: (_a = image.width) !== null && _a !== void 0 ? _a : 0,
26
+ height: (_b = image.height) !== null && _b !== void 0 ? _b : 0,
13
27
  },
14
- width: (_b = (_a = field.edit) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : image.width,
15
- height: (_d = (_c = field.edit) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : image.height,
28
+ // All images returned form Asset API should have width and height properties.
29
+ // Image width and height will be only applied if there are no constraints and user didn't overwrite it
30
+ width: (_e = (_d = (_c = imageField === null || imageField === void 0 ? void 0 : imageField.dimensions) === null || _c === void 0 ? void 0 : _c.width) !== null && _d !== void 0 ? _d : image.width) !== null && _e !== void 0 ? _e : 0,
31
+ height: (_h = (_g = (_f = imageField === null || imageField === void 0 ? void 0 : imageField.dimensions) === null || _f === void 0 ? void 0 : _f.height) !== null && _g !== void 0 ? _g : image.height) !== null && _h !== void 0 ? _h : 0,
32
+ // If edit is not provided, we crop constraint width and height from the left upper corner.
33
+ // WARN: If constraints are greater than image dimensions cut outside the image (background will fill extra space).
16
34
  edit: {
17
- zoom: (_f = (_e = field.edit) === null || _e === void 0 ? void 0 : _e.zoom) !== null && _f !== void 0 ? _f : 1,
35
+ zoom: (_k = (_j = imageField.edit) === null || _j === void 0 ? void 0 : _j.zoom) !== null && _k !== void 0 ? _k : 1,
18
36
  crop: {
19
- x: (_h = (_g = field.edit) === null || _g === void 0 ? void 0 : _g.x) !== null && _h !== void 0 ? _h : 0,
20
- y: (_k = (_j = field.edit) === null || _j === void 0 ? void 0 : _j.y) !== null && _k !== void 0 ? _k : 0,
37
+ x: (_m = (_l = imageField.edit) === null || _l === void 0 ? void 0 : _l.x) !== null && _m !== void 0 ? _m : 0,
38
+ y: (_p = (_o = imageField.edit) === null || _o === void 0 ? void 0 : _o.y) !== null && _p !== void 0 ? _p : 0,
21
39
  },
22
- background: (_m = (_l = field.edit) === null || _l === void 0 ? void 0 : _l.background) !== null && _m !== void 0 ? _m : "transparent",
40
+ background: (_r = (_q = imageField.edit) === null || _q === void 0 ? void 0 : _q.background) !== null && _r !== void 0 ? _r : (image.extension === "png" ? "transparent" : "#ffffff"),
23
41
  },
24
42
  url: image.url,
25
43
  }, [
26
- ["alt", field.alt || image.alt],
27
- ["credits", field.credit || image.credits],
44
+ ["alt", (imageField === null || imageField === void 0 ? void 0 : imageField.alt) || image.alt],
45
+ ["credits", (imageField === null || imageField === void 0 ? void 0 : imageField.copyright) || image.credits],
28
46
  ]);
29
47
  }
30
- const imageConverter = (field, images) => {
31
- const getImageById = (id) => {
32
- const image = images.get(id);
33
- if (!image)
34
- throw new Error(`Missing asset with id '${id}'`);
35
- return image;
36
- };
37
- if (!field)
48
+ exports.convertImageView = convertImageView;
49
+ function convertThumbnails(imageField, assets) {
50
+ return Object.entries(imageField.thumbnails).reduce((acc, [thumbnailName, thumbnail]) => {
51
+ return {
52
+ ...acc,
53
+ [thumbnailName]: convertImageView(thumbnail, (0, common_1.getAssetOrThrow)(assets)(thumbnail.id)),
54
+ };
55
+ }, {});
56
+ }
57
+ // All assets from `imageField` must be present in `assets`
58
+ // If not then function will throw an error
59
+ const imageConverter = (imageField, assets) => {
60
+ if (!imageField)
38
61
  return;
39
62
  return {
40
- ...convertImage(field, getImageById(field.id)),
41
- thumbnails: (0, Objects_1.mapValues)(field.thumbnails, (thumbnail) => convertImage(thumbnail, getImageById(thumbnail.id))),
63
+ ...convertImageView(imageField, (0, common_1.getAssetOrThrow)(assets)(imageField.id)),
64
+ thumbnails: convertThumbnails(imageField, assets),
42
65
  __TYPE__: "ImageContent",
43
66
  };
44
67
  };
@@ -1,3 +1,4 @@
1
- import type { ImportLink } from "../../../validators";
1
+ import type { Asset } from "../../../../common";
2
2
  import type { LinkContent } from "../../../../content";
3
- export declare const linkConverter: (field: ImportLink["value"]) => LinkContent | undefined;
3
+ import type { ImportLink } from "../../../validators";
4
+ export declare const linkConverter: (field: ImportLink["value"], assets: Record<string, Asset | undefined>) => LinkContent | undefined;
@@ -1,19 +1,70 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.linkConverter = void 0;
4
- const linkConverter = (field) => {
5
- if (field === null)
6
- return;
7
- if (field.link_type === "Document" || field.link_type === "Media") {
8
- throw new Error("`Document` and `Media` links are not yet supported");
9
- }
10
- return {
4
+ const common_1 = require("../../../../common");
5
+ const webLinkConverter = (field) => ({
6
+ value: {
7
+ url: field.url,
8
+ target: field.target,
9
+ __TYPE__: "ExternalLink",
10
+ },
11
+ __TYPE__: "LinkContent",
12
+ });
13
+ const documentLinkConverter = (field) => ({
14
+ value: {
15
+ id: field.id,
16
+ __TYPE__: "DocumentLink",
17
+ },
18
+ __TYPE__: "LinkContent",
19
+ });
20
+ const fileLinkConverter = (field, asset) => {
21
+ var _a;
22
+ return ({
23
+ value: {
24
+ id: field.id,
25
+ url: asset.origin_url,
26
+ name: (_a = asset.filename) !== null && _a !== void 0 ? _a : "unknown.jpg",
27
+ kind: asset.kind,
28
+ size: asset.size ? String(asset.size) : "0",
29
+ __TYPE__: "FileLink",
30
+ },
31
+ __TYPE__: "LinkContent",
32
+ });
33
+ };
34
+ const imageLinkConverter = (field, asset) => {
35
+ var _a, _b, _c;
36
+ return ({
11
37
  value: {
12
- url: field.url,
13
- target: field.target,
14
- __TYPE__: "ExternalLink",
38
+ id: field.id,
39
+ url: asset.origin_url,
40
+ height: String((_a = asset.height) !== null && _a !== void 0 ? _a : 1),
41
+ width: String((_b = asset.width) !== null && _b !== void 0 ? _b : 1),
42
+ name: (_c = asset.filename) !== null && _c !== void 0 ? _c : "unknown.jpg",
43
+ kind: asset.kind,
44
+ size: asset.size ? String(asset.size) : "0",
45
+ __TYPE__: "ImageLink",
15
46
  },
16
47
  __TYPE__: "LinkContent",
17
- };
48
+ });
49
+ };
50
+ const linkConverter = (field, assets) => {
51
+ if (field === null) {
52
+ return;
53
+ }
54
+ switch (field.link_type) {
55
+ case "Web":
56
+ return webLinkConverter(field);
57
+ case "Document":
58
+ return documentLinkConverter(field);
59
+ case "Media": {
60
+ const asset = (0, common_1.getAssetOrThrow)(assets)(field.id);
61
+ switch (asset.kind) {
62
+ case "all":
63
+ return fileLinkConverter(field, asset);
64
+ case "image":
65
+ return imageLinkConverter(field, asset);
66
+ }
67
+ }
68
+ }
18
69
  };
19
70
  exports.linkConverter = linkConverter;
@@ -1,4 +1,5 @@
1
- import type { WidgetContent } from "../../../../content";
1
+ import type { Asset } from "../../../../common";
2
+ import type { Embed } from "../../../../common/Embed";
3
+ import type { NestableContent } from "../../../../content";
2
4
  import type { ImportNestable } from "../../../validators";
3
- import { Asset } from ".";
4
- export declare function convertNestableWidget(field: ImportNestable, images: Map<string, Asset>): WidgetContent | undefined;
5
+ export declare function convertNestableWidget(field: ImportNestable, assets: Record<Asset["id"], Asset | undefined>, embeds: Record<string, Embed | undefined>): NestableContent | undefined;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.convertNestableWidget = void 0;
4
4
  const _1 = require(".");
5
- function convertNestableWidget(field, images) {
5
+ function convertNestableWidget(field, assets, embeds) {
6
6
  switch (field.type) {
7
7
  case "Boolean":
8
8
  return (0, _1.booleanConverter)(field.value);
@@ -19,9 +19,15 @@ function convertNestableWidget(field, images) {
19
19
  case "Timestamp":
20
20
  return (0, _1.timestampConverter)(field.value);
21
21
  case "Embed":
22
- return (0, _1.embedConverter)(field.value);
22
+ return (0, _1.embedConverter)(field.value, embeds);
23
+ case "GeoPoint":
24
+ return (0, _1.geopointConverter)(field.value);
25
+ case "Link":
26
+ return (0, _1.linkConverter)(field.value, assets);
23
27
  case "Image":
24
- return (0, _1.imageConverter)(field.value, images);
28
+ return (0, _1.imageConverter)(field.value, assets);
29
+ case "StructuredText":
30
+ return (0, _1.richTextConverter)(field.value, assets, embeds);
25
31
  default:
26
32
  throw new Error(`Unsupported type of nestable converter ${JSON.stringify(field)}`);
27
33
  }
@@ -0,0 +1,4 @@
1
+ import type { Embed } from "../../../../../common";
2
+ import type { EmbedBlock } from "../../../../../content";
3
+ import type { ImportEmbedBlock } from "../../../../validators/fields/nestable/ImportRichText/blocks";
4
+ export declare function embedBlockConverter(block: ImportEmbedBlock, embeds: Record<string, Embed | undefined>): EmbedBlock;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.embedBlockConverter = void 0;
4
+ const Embed_1 = require("../Embed");
5
+ function embedBlockConverter(block, embeds) {
6
+ const embedData = (0, Embed_1.embedConverter)(block.oembed, embeds);
7
+ if (!embedData)
8
+ throw new Error("Failed to convert embed data");
9
+ return {
10
+ type: block.type,
11
+ data: embedData,
12
+ };
13
+ }
14
+ exports.embedBlockConverter = embedBlockConverter;
@@ -0,0 +1,4 @@
1
+ import { Asset } from "../../../../../common";
2
+ import type { ImageBlock } from "../../../../../content";
3
+ import type { ImportImageBlock } from "../../../../validators/fields/nestable/ImportRichText/blocks";
4
+ export declare function imageBlockConverter(block: ImportImageBlock, assets: Record<Asset["id"], Asset | undefined>): ImageBlock;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.imageBlockConverter = void 0;
4
+ const common_1 = require("../../../../../common");
5
+ const Image_1 = require("../Image");
6
+ function imageBlockConverter(block, assets) {
7
+ return {
8
+ type: block.type,
9
+ data: (0, Image_1.convertImageView)(block, (0, common_1.getAssetOrThrow)(assets)(block.id)),
10
+ };
11
+ }
12
+ exports.imageBlockConverter = imageBlockConverter;
@@ -0,0 +1,4 @@
1
+ import type { Asset, Embed } from "../../../../../common";
2
+ import type { RichTextContent } from "../../../../../content";
3
+ import type { ImportRichText } from "../../../../validators";
4
+ export declare const richTextConverter: (richTextField: ImportRichText["value"], assets: Record<Asset["id"], Asset | undefined>, embeds: Record<string, Embed | undefined>) => RichTextContent | undefined;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.richTextConverter = void 0;
4
+ const content_1 = require("../../../../../content");
5
+ const embedBlock_1 = require("./embedBlock");
6
+ const imageBlock_1 = require("./imageBlock");
7
+ const textBlock_1 = require("./textBlock");
8
+ const richTextConverter = (richTextField, assets, embeds) => {
9
+ if (richTextField === null)
10
+ return;
11
+ return {
12
+ __TYPE__: content_1.RichTextContentType,
13
+ value: richTextField.map((block) => {
14
+ if (block.type === "image")
15
+ return (0, imageBlock_1.imageBlockConverter)(block, assets);
16
+ else if (block.type === "embed")
17
+ return (0, embedBlock_1.embedBlockConverter)(block, embeds);
18
+ return (0, textBlock_1.textBlockConverter)(block, assets);
19
+ }),
20
+ };
21
+ };
22
+ exports.richTextConverter = richTextConverter;
@@ -0,0 +1,4 @@
1
+ import type { Asset } from "../../../../../common";
2
+ import type { TextBlock } from "../../../../../content";
3
+ import type { ImportTextBlock } from "../../../../validators/fields/nestable/ImportRichText/blocks";
4
+ export declare function textBlockConverter(block: ImportTextBlock, assets: Record<Asset["id"], Asset | undefined>): TextBlock;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.textBlockConverter = void 0;
4
+ const Link_1 = require("../Link");
5
+ function textBlockConverter(block, assets) {
6
+ return {
7
+ type: block.type,
8
+ content: {
9
+ text: block.text,
10
+ ...block.spans ? { spans: spansConverter(block.spans, assets) } : {}
11
+ },
12
+ ...block.direction ? { direction: block.direction } : {},
13
+ };
14
+ }
15
+ exports.textBlockConverter = textBlockConverter;
16
+ function spansConverter(spans, assets) {
17
+ return spans.map(span => {
18
+ var _a;
19
+ if (span.type === 'hyperlink') {
20
+ const { __TYPE__, ...data } = ((_a = (0, Link_1.linkConverter)(span.data, assets)) === null || _a === void 0 ? void 0 : _a.value) || {};
21
+ return {
22
+ type: span.type,
23
+ start: span.start,
24
+ end: span.end,
25
+ data: data
26
+ };
27
+ }
28
+ return {
29
+ type: span.type,
30
+ start: span.start,
31
+ end: span.end
32
+ };
33
+ });
34
+ }
@@ -0,0 +1,4 @@
1
+ import type { Asset, Embed } from "../../../../common";
2
+ import type { RichTextContent } from "../../../../content";
3
+ import type { ImportRichText } from "../../../validators";
4
+ export declare const richTextConverter: (richTextField: ImportRichText["value"], assets: Record<Asset["id"], Asset | undefined>, embeds: Record<string, Embed | undefined>) => RichTextContent | undefined;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.richTextConverter = void 0;
4
+ const content_1 = require("../../../../content");
5
+ const Embed_1 = require("./Embed");
6
+ const Image_1 = require("./Image");
7
+ const Link_1 = require("./Link");
8
+ const richTextBlockConverter = (importBlock, assets, embeds) => {
9
+ var _a, _b, _c;
10
+ if (importBlock.type === "image") {
11
+ return {
12
+ type: importBlock.type,
13
+ data: (0, Image_1.imageBlockConverter)(importBlock, assets),
14
+ };
15
+ }
16
+ else if (importBlock.type === "embed") {
17
+ const embedData = (0, Embed_1.embedConverter)(importBlock.oembed, embeds);
18
+ if (!embedData)
19
+ throw new Error("Failed to convert embed data");
20
+ return {
21
+ type: importBlock.type,
22
+ data: embedData,
23
+ };
24
+ }
25
+ else {
26
+ // Text block
27
+ return {
28
+ type: importBlock.type,
29
+ direction: (_a = importBlock.direction) !== null && _a !== void 0 ? _a : "ltr",
30
+ content: {
31
+ text: importBlock.text,
32
+ spans: (_c = (_b = importBlock.spans) === null || _b === void 0 ? void 0 : _b.map((span) => {
33
+ const linkData = span.type === "hyperlink"
34
+ ? (0, Link_1.linkConverter)(span.data, assets)
35
+ : undefined;
36
+ return {
37
+ type: span.type,
38
+ start: span.start,
39
+ end: span.end,
40
+ data: linkData,
41
+ };
42
+ })) !== null && _c !== void 0 ? _c : [],
43
+ },
44
+ };
45
+ }
46
+ };
47
+ const richTextConverter = (richTextField, assets, embeds) => {
48
+ if (richTextField === null)
49
+ return;
50
+ return {
51
+ __TYPE__: content_1.RichTextContentType,
52
+ value: richTextField.map((block) => richTextBlockConverter(block, assets, embeds)),
53
+ };
54
+ };
55
+ exports.richTextConverter = richTextConverter;
@@ -2,9 +2,12 @@ export * from "./Boolean";
2
2
  export * from "./Color";
3
3
  export * from "./Date";
4
4
  export * from "./Embed";
5
+ export * from "./GeoPoint";
5
6
  export * from "./Image";
7
+ export * from "./Link";
6
8
  export * from "./Nestable";
7
9
  export * from "./Number";
10
+ export * from "./RichText";
8
11
  export * from "./Select";
9
12
  export * from "./Text";
10
13
  export * from "./Timestamp";
@@ -5,9 +5,12 @@ const tslib_1 = require("tslib");
5
5
  (0, tslib_1.__exportStar)(require("./Color"), exports);
6
6
  (0, tslib_1.__exportStar)(require("./Date"), exports);
7
7
  (0, tslib_1.__exportStar)(require("./Embed"), exports);
8
+ (0, tslib_1.__exportStar)(require("./GeoPoint"), exports);
8
9
  (0, tslib_1.__exportStar)(require("./Image"), exports);
10
+ (0, tslib_1.__exportStar)(require("./Link"), exports);
9
11
  (0, tslib_1.__exportStar)(require("./Nestable"), exports);
10
12
  (0, tslib_1.__exportStar)(require("./Number"), exports);
13
+ (0, tslib_1.__exportStar)(require("./RichText"), exports);
11
14
  (0, tslib_1.__exportStar)(require("./Select"), exports);
12
15
  (0, tslib_1.__exportStar)(require("./Text"), exports);
13
16
  (0, tslib_1.__exportStar)(require("./Timestamp"), exports);
@@ -6,16 +6,11 @@ const fp_ts_1 = require("fp-ts");
6
6
  const Either_1 = require("fp-ts/Either");
7
7
  const function_1 = require("fp-ts/lib/function");
8
8
  const t = (0, tslib_1.__importStar)(require("io-ts"));
9
- const io_ts_types_1 = require("io-ts-types");
9
+ const customtypes_1 = require("../../customtypes");
10
10
  const Objects_1 = require("../../utils/Objects");
11
+ const function_2 = require("../../validators/function");
11
12
  const ImportField_1 = require("./fields/ImportField");
12
- const rawImportDocument = (0, io_ts_types_1.withMessage)(t.record(t.string, t.unknown), () => "document is not an object");
13
- function flattenCustomTypeFields(customType) {
14
- return Object.values(customType.json).reduce((acc, tab) => ({
15
- ...acc,
16
- ...tab,
17
- }));
18
- }
13
+ const rawImportDocument = (0, function_2.withCustomError)(t.UnknownRecord, () => "document is not an object");
19
14
  function validateField(document, customType) {
20
15
  return (key, content, model) => {
21
16
  // the field is not defined in the custom type -> extra field or typo
@@ -49,7 +44,7 @@ function validateField(document, customType) {
49
44
  };
50
45
  }
51
46
  function validateDocument(customType, rawDoc) {
52
- const fieldModels = flattenCustomTypeFields(customType);
47
+ const fieldModels = (0, customtypes_1.flattenCustomTypeFields)(customType);
53
48
  const { document, errors } = Object.entries(rawDoc).reduce((acc, [fieldKey, fieldValue]) => {
54
49
  const parsedField = validateField(rawDoc, customType)(fieldKey, fieldValue, fieldModels[fieldKey]);
55
50
  if ((0, Either_1.isLeft)(parsedField))