@prismicio/types-internal 2.2.1 → 2.3.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.
- package/lib/content/Document.d.ts +10 -4
- package/lib/content/Document.js +45 -11
- package/lib/content/fields/GroupContent.d.ts +1 -0
- package/lib/content/fields/GroupContent.js +13 -1
- package/lib/content/fields/nestable/BooleanContent.d.ts +2 -0
- package/lib/content/fields/nestable/BooleanContent.js +11 -1
- package/lib/content/fields/nestable/FieldContent/SelectContent.d.ts +2 -0
- package/lib/content/fields/nestable/FieldContent/SelectContent.js +12 -1
- package/lib/content/fields/nestable/NestableContent.d.ts +2 -0
- package/lib/content/fields/nestable/NestableContent.js +12 -1
- package/lib/content/fields/slices/Slice/CompositeSliceContent.d.ts +1 -0
- package/lib/content/fields/slices/Slice/CompositeSliceContent.js +13 -1
- package/lib/content/fields/slices/Slice/SharedSliceContent.d.ts +2 -1
- package/lib/content/fields/slices/Slice/SharedSliceContent.js +16 -1
- package/lib/content/fields/slices/SliceItem.d.ts +3 -0
- package/lib/content/fields/slices/SliceItem.js +24 -1
- package/lib/content/fields/slices/SlicesContent.d.ts +1 -0
- package/lib/content/fields/slices/SlicesContent.js +23 -1
- package/lib/content/fields/withDefaultValues.d.ts +6 -0
- package/lib/content/fields/withDefaultValues.js +38 -0
- package/lib/import/converters/Document.d.ts +4 -0
- package/lib/import/converters/Document.js +21 -0
- package/lib/import/converters/fields/Group.d.ts +4 -0
- package/lib/import/converters/fields/Group.js +14 -0
- package/lib/import/converters/fields/RepeatableZone.d.ts +317 -0
- package/lib/import/converters/fields/RepeatableZone.js +15 -0
- package/lib/import/converters/fields/RepeatableZoneItem.d.ts +11 -0
- package/lib/import/converters/fields/RepeatableZoneItem.js +19 -0
- package/lib/import/converters/fields/Slices/SharedSlice.d.ts +4 -0
- package/lib/import/converters/fields/Slices/SharedSlice.js +19 -0
- package/lib/import/converters/fields/Slices/SharedSliceContent.d.ts +10 -0
- package/lib/import/converters/fields/Slices/SharedSliceContent.js +23 -0
- package/lib/import/converters/fields/Slices/Slices.d.ts +4 -0
- package/lib/import/converters/fields/Slices/Slices.js +16 -0
- package/lib/import/converters/fields/Slices/index.d.ts +1 -0
- package/lib/import/converters/fields/Slices/index.js +4 -0
- package/lib/import/converters/fields/UID.d.ts +3 -0
- package/lib/import/converters/fields/UID.js +10 -0
- package/lib/import/converters/fields/index.d.ts +4 -0
- package/lib/import/converters/fields/index.js +7 -0
- package/lib/import/converters/fields/nestable/Boolean.d.ts +3 -0
- package/lib/import/converters/fields/nestable/Boolean.js +12 -0
- package/lib/import/converters/fields/nestable/Color.d.ts +3 -0
- package/lib/import/converters/fields/nestable/Color.js +13 -0
- package/lib/import/converters/fields/nestable/Date.d.ts +3 -0
- package/lib/import/converters/fields/nestable/Date.js +15 -0
- package/lib/import/converters/fields/nestable/Embed.d.ts +4 -0
- package/lib/import/converters/fields/nestable/Embed.js +32 -0
- package/lib/import/converters/fields/nestable/GeoPoint.d.ts +3 -0
- package/lib/import/converters/fields/nestable/GeoPoint.js +15 -0
- package/lib/import/converters/fields/nestable/Image.d.ts +28 -0
- package/lib/import/converters/fields/nestable/Image.js +67 -0
- package/lib/import/converters/fields/nestable/Link.d.ts +4 -0
- package/lib/import/converters/fields/nestable/Link.js +70 -0
- package/lib/import/converters/fields/nestable/Nestable.d.ts +5 -0
- package/lib/import/converters/fields/nestable/Nestable.js +35 -0
- package/lib/import/converters/fields/nestable/Number.d.ts +3 -0
- package/lib/import/converters/fields/nestable/Number.js +13 -0
- package/lib/import/converters/fields/nestable/RichText/embedBlock.d.ts +4 -0
- package/lib/import/converters/fields/nestable/RichText/embedBlock.js +14 -0
- package/lib/import/converters/fields/nestable/RichText/imageBlock.d.ts +4 -0
- package/lib/import/converters/fields/nestable/RichText/imageBlock.js +12 -0
- package/lib/import/converters/fields/nestable/RichText/index.d.ts +4 -0
- package/lib/import/converters/fields/nestable/RichText/index.js +22 -0
- package/lib/import/converters/fields/nestable/RichText/textBlock.d.ts +4 -0
- package/lib/import/converters/fields/nestable/RichText/textBlock.js +54 -0
- package/lib/import/converters/fields/nestable/Select.d.ts +3 -0
- package/lib/import/converters/fields/nestable/Select.js +13 -0
- package/lib/import/converters/fields/nestable/Text.d.ts +3 -0
- package/lib/import/converters/fields/nestable/Text.js +13 -0
- package/lib/import/converters/fields/nestable/Timestamp.d.ts +3 -0
- package/lib/import/converters/fields/nestable/Timestamp.js +13 -0
- package/lib/import/converters/fields/nestable/index.d.ts +13 -0
- package/lib/import/converters/fields/nestable/index.js +16 -0
- package/lib/import/converters/index.d.ts +2 -0
- package/lib/import/converters/index.js +5 -0
- package/lib/import/index.d.ts +2 -0
- package/lib/import/index.js +5 -0
- package/lib/import/validators/Document.d.ts +6 -0
- package/lib/import/validators/Document.js +64 -0
- package/lib/import/validators/fields/ImportContent.d.ts +5 -0
- package/lib/import/validators/fields/ImportContent.js +21 -0
- package/lib/import/validators/fields/ImportField.d.ts +141 -0
- package/lib/import/validators/fields/ImportField.js +33 -0
- package/lib/import/validators/fields/ImportGroup.d.ts +345 -0
- package/lib/import/validators/fields/ImportGroup.js +27 -0
- package/lib/import/validators/fields/ImportSlices/ImportSlices.d.ts +8 -0
- package/lib/import/validators/fields/ImportSlices/ImportSlices.js +30 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/SharedSlice.d.ts +16 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/SharedSlice.js +61 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/errors.d.ts +4 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/errors.js +7 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/OptionalSharedSliceId.d.ts +2 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/OptionalSharedSliceId.js +15 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceId.d.ts +9 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceId.js +39 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceType.d.ts +11 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceType.js +24 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceVariation.d.ts +11 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/SharedSliceVariation.js +24 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/index.d.ts +4 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/fields/index.js +7 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/index.d.ts +3 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/index.js +6 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/utils.d.ts +342 -0
- package/lib/import/validators/fields/ImportSlices/SharedSlice/utils.js +11 -0
- package/lib/import/validators/fields/ImportSlices/index.d.ts +1 -0
- package/lib/import/validators/fields/ImportSlices/index.js +4 -0
- package/lib/import/validators/fields/ImportSlices/utils.d.ts +4 -0
- package/lib/import/validators/fields/ImportSlices/utils.js +35 -0
- package/lib/import/validators/fields/RepeatableZone.d.ts +11 -0
- package/lib/import/validators/fields/RepeatableZone.js +14 -0
- package/lib/import/validators/fields/RepeatableZoneItem.d.ts +11 -0
- package/lib/import/validators/fields/RepeatableZoneItem.js +39 -0
- package/lib/import/validators/fields/UID.d.ts +6 -0
- package/lib/import/validators/fields/UID.js +15 -0
- package/lib/import/validators/fields/index.d.ts +4 -0
- package/lib/import/validators/fields/index.js +7 -0
- package/lib/import/validators/fields/nestable/Boolean.d.ts +6 -0
- package/lib/import/validators/fields/nestable/Boolean.js +6 -0
- package/lib/import/validators/fields/nestable/Color.d.ts +6 -0
- package/lib/import/validators/fields/nestable/Color.js +15 -0
- package/lib/import/validators/fields/nestable/Date.d.ts +6 -0
- package/lib/import/validators/fields/nestable/Date.js +19 -0
- package/lib/import/validators/fields/nestable/Embed.d.ts +13 -0
- package/lib/import/validators/fields/nestable/Embed.js +31 -0
- package/lib/import/validators/fields/nestable/GeoPoint.d.ts +13 -0
- package/lib/import/validators/fields/nestable/GeoPoint.js +13 -0
- package/lib/import/validators/fields/nestable/Image/default.d.ts +22 -0
- package/lib/import/validators/fields/nestable/Image/default.js +19 -0
- package/lib/import/validators/fields/nestable/Image/index.d.ts +26 -0
- package/lib/import/validators/fields/nestable/Image/index.js +32 -0
- package/lib/import/validators/fields/nestable/Image/merge.d.ts +23 -0
- package/lib/import/validators/fields/nestable/Image/merge.js +44 -0
- package/lib/import/validators/fields/nestable/Image/model.d.ts +18 -0
- package/lib/import/validators/fields/nestable/Image/model.js +2 -0
- package/lib/import/validators/fields/nestable/Image/validators.d.ts +132 -0
- package/lib/import/validators/fields/nestable/Image/validators.js +43 -0
- package/lib/import/validators/fields/nestable/ImportRichText/ImportBlock.d.ts +6 -0
- package/lib/import/validators/fields/nestable/ImportRichText/ImportBlock.js +25 -0
- package/lib/import/validators/fields/nestable/ImportRichText/ImportRichText.d.ts +24 -0
- package/lib/import/validators/fields/nestable/ImportRichText/ImportRichText.js +32 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportBlockType.d.ts +6 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportBlockType.js +18 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportEmbedBlock.d.ts +10 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportEmbedBlock.js +11 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportImageBlock.d.ts +22 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportImageBlock.js +13 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportTextBlock.d.ts +78 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/ImportTextBlock.js +43 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/Span.d.ts +79 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/Span.js +27 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/index.d.ts +4 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/index.js +7 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/HyperlinkSpan.d.ts +24 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/HyperlinkSpan.js +18 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/LabelSpan.d.ts +12 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/LabelSpan.js +16 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/SpanLocation.d.ts +5 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/SpanLocation.js +10 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/TextSpan.d.ts +15 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/TextSpan.js +20 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/index.d.ts +2 -0
- package/lib/import/validators/fields/nestable/ImportRichText/blocks/spans/index.js +5 -0
- package/lib/import/validators/fields/nestable/ImportRichText/index.d.ts +2 -0
- package/lib/import/validators/fields/nestable/ImportRichText/index.js +7 -0
- package/lib/import/validators/fields/nestable/Link.d.ts +53 -0
- package/lib/import/validators/fields/nestable/Link.js +35 -0
- package/lib/import/validators/fields/nestable/Nestable.d.ts +192 -0
- package/lib/import/validators/fields/nestable/Nestable.js +71 -0
- package/lib/import/validators/fields/nestable/Number.d.ts +17 -0
- package/lib/import/validators/fields/nestable/Number.js +17 -0
- package/lib/import/validators/fields/nestable/Select.d.ts +16 -0
- package/lib/import/validators/fields/nestable/Select.js +19 -0
- package/lib/import/validators/fields/nestable/Text.d.ts +6 -0
- package/lib/import/validators/fields/nestable/Text.js +6 -0
- package/lib/import/validators/fields/nestable/Timestamp.d.ts +7 -0
- package/lib/import/validators/fields/nestable/Timestamp.js +19 -0
- package/lib/import/validators/fields/nestable/index.d.ts +14 -0
- package/lib/import/validators/fields/nestable/index.js +19 -0
- package/lib/import/validators/index.d.ts +2 -0
- package/lib/import/validators/index.js +5 -0
- package/package.json +1 -1
- package/src/content/Document.ts +68 -14
- package/src/content/fields/GroupContent.ts +16 -0
- package/src/content/fields/nestable/BooleanContent.ts +11 -0
- package/src/content/fields/nestable/FieldContent/SelectContent.ts +12 -1
- package/src/content/fields/nestable/NestableContent.ts +16 -0
- package/src/content/fields/slices/Slice/CompositeSliceContent.ts +25 -0
- package/src/content/fields/slices/Slice/SharedSliceContent.ts +32 -1
- package/src/content/fields/slices/SliceItem.ts +43 -1
- package/src/content/fields/slices/SlicesContent.ts +30 -0
- package/src/content/fields/withDefaultValues.ts +48 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.imageConverter = exports.convertImageView = void 0;
|
|
4
|
+
const common_1 = require("../../../../common");
|
|
5
|
+
const Objects_1 = require("../../../../utils/Objects");
|
|
6
|
+
function convertImageView(inputImage, image) {
|
|
7
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
8
|
+
// We can do that because anyway all properties being read
|
|
9
|
+
const imageField = {
|
|
10
|
+
...inputImage,
|
|
11
|
+
edit: {
|
|
12
|
+
x: 0,
|
|
13
|
+
y: 0,
|
|
14
|
+
zoom: 1,
|
|
15
|
+
...inputImage.edit,
|
|
16
|
+
},
|
|
17
|
+
dimensions: (_a = inputImage.dimensions) !== null && _a !== void 0 ? _a : {},
|
|
18
|
+
};
|
|
19
|
+
return (0, Objects_1.withOptionals)({
|
|
20
|
+
origin: {
|
|
21
|
+
id: image.id,
|
|
22
|
+
url: image.origin_url,
|
|
23
|
+
// All images returned form Asset API should have width and height properties.
|
|
24
|
+
width: (_b = image.width) !== null && _b !== void 0 ? _b : 0,
|
|
25
|
+
height: (_c = image.height) !== null && _c !== void 0 ? _c : 0,
|
|
26
|
+
},
|
|
27
|
+
// All images returned form Asset API should have width and height properties.
|
|
28
|
+
// Image width and height will be only applied if there are no constraints and user didn't overwrite it
|
|
29
|
+
width: (_f = (_e = (_d = imageField === null || imageField === void 0 ? void 0 : imageField.dimensions) === null || _d === void 0 ? void 0 : _d.width) !== null && _e !== void 0 ? _e : image.width) !== null && _f !== void 0 ? _f : 0,
|
|
30
|
+
height: (_j = (_h = (_g = imageField === null || imageField === void 0 ? void 0 : imageField.dimensions) === null || _g === void 0 ? void 0 : _g.height) !== null && _h !== void 0 ? _h : image.height) !== null && _j !== void 0 ? _j : 0,
|
|
31
|
+
// If edit is not provided, we crop constraint width and height from the left upper corner.
|
|
32
|
+
// WARN: If constraints are greater than image dimensions cut outside the image (background will fill extra space).
|
|
33
|
+
edit: {
|
|
34
|
+
zoom: (_l = (_k = imageField.edit) === null || _k === void 0 ? void 0 : _k.zoom) !== null && _l !== void 0 ? _l : 1,
|
|
35
|
+
crop: {
|
|
36
|
+
x: (_o = (_m = imageField.edit) === null || _m === void 0 ? void 0 : _m.x) !== null && _o !== void 0 ? _o : 0,
|
|
37
|
+
y: (_q = (_p = imageField.edit) === null || _p === void 0 ? void 0 : _p.y) !== null && _q !== void 0 ? _q : 0,
|
|
38
|
+
},
|
|
39
|
+
background: (_s = (_r = imageField.edit) === null || _r === void 0 ? void 0 : _r.background) !== null && _s !== void 0 ? _s : (image.extension === "png" ? "transparent" : "#ffffff"),
|
|
40
|
+
},
|
|
41
|
+
url: image.url,
|
|
42
|
+
}, [
|
|
43
|
+
["alt", (imageField === null || imageField === void 0 ? void 0 : imageField.alt) || image.alt],
|
|
44
|
+
["credits", (imageField === null || imageField === void 0 ? void 0 : imageField.copyright) || image.credits],
|
|
45
|
+
]);
|
|
46
|
+
}
|
|
47
|
+
exports.convertImageView = convertImageView;
|
|
48
|
+
function convertThumbnails(imageField, assets) {
|
|
49
|
+
return Object.entries(imageField.thumbnails).reduce((acc, [thumbnailName, thumbnail]) => {
|
|
50
|
+
return {
|
|
51
|
+
...acc,
|
|
52
|
+
[thumbnailName]: convertImageView(thumbnail, (0, common_1.getAssetOrThrow)(assets)(thumbnail.id)),
|
|
53
|
+
};
|
|
54
|
+
}, {});
|
|
55
|
+
}
|
|
56
|
+
// All assets from `imageField` must be present in `assets`
|
|
57
|
+
// If not then function will throw an error
|
|
58
|
+
const imageConverter = (imageField, assets) => {
|
|
59
|
+
if (!imageField)
|
|
60
|
+
return;
|
|
61
|
+
return {
|
|
62
|
+
...convertImageView(imageField, (0, common_1.getAssetOrThrow)(assets)(imageField.id)),
|
|
63
|
+
thumbnails: convertThumbnails(imageField, assets),
|
|
64
|
+
__TYPE__: "ImageContent",
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
exports.imageConverter = imageConverter;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Asset } from "../../../../common";
|
|
2
|
+
import type { LinkContent } from "../../../../content";
|
|
3
|
+
import type { ImportLink } from "../../../validators";
|
|
4
|
+
export declare const linkConverter: (field: ImportLink["value"], assets: Record<string, Asset | undefined>) => LinkContent | undefined;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.linkConverter = void 0;
|
|
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 ({
|
|
37
|
+
value: {
|
|
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",
|
|
46
|
+
},
|
|
47
|
+
__TYPE__: "LinkContent",
|
|
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
|
+
}
|
|
69
|
+
};
|
|
70
|
+
exports.linkConverter = linkConverter;
|
|
@@ -0,0 +1,5 @@
|
|
|
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
|
+
export declare function convertNestableWidget(field: ImportNestable, assets: Record<Asset["id"], Asset | undefined>, embeds: Record<string, Embed | undefined>): NestableContent | undefined;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertNestableWidget = void 0;
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
function convertNestableWidget(field, assets, embeds) {
|
|
6
|
+
switch (field.type) {
|
|
7
|
+
case "Boolean":
|
|
8
|
+
return (0, _1.booleanConverter)(field.value);
|
|
9
|
+
case "Color":
|
|
10
|
+
return (0, _1.colorConverter)(field.value);
|
|
11
|
+
case "Select":
|
|
12
|
+
return (0, _1.selectConverter)(field.value);
|
|
13
|
+
case "Number":
|
|
14
|
+
return (0, _1.numberConverter)(field.value);
|
|
15
|
+
case "Text":
|
|
16
|
+
return (0, _1.textConverter)(field.value);
|
|
17
|
+
case "Date":
|
|
18
|
+
return (0, _1.dateConverter)(field.value);
|
|
19
|
+
case "Timestamp":
|
|
20
|
+
return (0, _1.timestampConverter)(field.value);
|
|
21
|
+
case "Embed":
|
|
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);
|
|
27
|
+
case "Image":
|
|
28
|
+
return (0, _1.imageConverter)(field.value, assets);
|
|
29
|
+
case "StructuredText":
|
|
30
|
+
return (0, _1.richTextConverter)(field.value, assets, embeds);
|
|
31
|
+
default:
|
|
32
|
+
throw new Error(`Unsupported type of nestable converter ${JSON.stringify(field)}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.convertNestableWidget = convertNestableWidget;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.numberConverter = void 0;
|
|
4
|
+
const numberConverter = (field) => {
|
|
5
|
+
if (field === null)
|
|
6
|
+
return;
|
|
7
|
+
return {
|
|
8
|
+
type: "Number",
|
|
9
|
+
value: field.toString(),
|
|
10
|
+
__TYPE__: "FieldContent",
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
exports.numberConverter = numberConverter;
|
|
@@ -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,54 @@
|
|
|
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
|
+
...(() => {
|
|
11
|
+
if (block.spans) {
|
|
12
|
+
const convertedSpans = spansConverter(block.spans, assets);
|
|
13
|
+
if (!convertedSpans)
|
|
14
|
+
return {};
|
|
15
|
+
return { spans: convertedSpans };
|
|
16
|
+
}
|
|
17
|
+
return {};
|
|
18
|
+
})(),
|
|
19
|
+
},
|
|
20
|
+
...(block.direction ? { direction: block.direction } : {}),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
exports.textBlockConverter = textBlockConverter;
|
|
24
|
+
function spansConverter(spans, assets) {
|
|
25
|
+
return spans.reduce((acc, span) => {
|
|
26
|
+
switch (span.type) {
|
|
27
|
+
case "em":
|
|
28
|
+
case "strong":
|
|
29
|
+
return [...acc, span];
|
|
30
|
+
case "label":
|
|
31
|
+
return [
|
|
32
|
+
...acc,
|
|
33
|
+
{
|
|
34
|
+
...span,
|
|
35
|
+
data: span.data.label,
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
case "hyperlink": {
|
|
39
|
+
const convertedLink = (0, Link_1.linkConverter)(span.data, assets);
|
|
40
|
+
if (!convertedLink)
|
|
41
|
+
return acc;
|
|
42
|
+
return [
|
|
43
|
+
...acc,
|
|
44
|
+
{
|
|
45
|
+
type: span.type,
|
|
46
|
+
start: span.start,
|
|
47
|
+
end: span.end,
|
|
48
|
+
data: convertedLink.value,
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}, []);
|
|
54
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.selectConverter = void 0;
|
|
4
|
+
const selectConverter = (field) => {
|
|
5
|
+
if (field === null)
|
|
6
|
+
return;
|
|
7
|
+
return {
|
|
8
|
+
type: "Select",
|
|
9
|
+
value: field,
|
|
10
|
+
__TYPE__: "FieldContent",
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
exports.selectConverter = selectConverter;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.textConverter = void 0;
|
|
4
|
+
const textConverter = (field) => {
|
|
5
|
+
if (field === null)
|
|
6
|
+
return;
|
|
7
|
+
return {
|
|
8
|
+
type: "Text",
|
|
9
|
+
value: field,
|
|
10
|
+
__TYPE__: "FieldContent",
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
exports.textConverter = textConverter;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.timestampConverter = void 0;
|
|
4
|
+
const timestampConverter = (field) => {
|
|
5
|
+
if (field === null)
|
|
6
|
+
return;
|
|
7
|
+
return {
|
|
8
|
+
type: "Timestamp",
|
|
9
|
+
value: field.toISOString(),
|
|
10
|
+
__TYPE__: "FieldContent",
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
exports.timestampConverter = timestampConverter;
|
|
@@ -0,0 +1,13 @@
|
|
|
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";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
(0, tslib_1.__exportStar)(require("./Boolean"), exports);
|
|
5
|
+
(0, tslib_1.__exportStar)(require("./Color"), exports);
|
|
6
|
+
(0, tslib_1.__exportStar)(require("./Date"), exports);
|
|
7
|
+
(0, tslib_1.__exportStar)(require("./Embed"), exports);
|
|
8
|
+
(0, tslib_1.__exportStar)(require("./GeoPoint"), exports);
|
|
9
|
+
(0, tslib_1.__exportStar)(require("./Image"), exports);
|
|
10
|
+
(0, tslib_1.__exportStar)(require("./Link"), exports);
|
|
11
|
+
(0, tslib_1.__exportStar)(require("./Nestable"), exports);
|
|
12
|
+
(0, tslib_1.__exportStar)(require("./Number"), exports);
|
|
13
|
+
(0, tslib_1.__exportStar)(require("./RichText"), exports);
|
|
14
|
+
(0, tslib_1.__exportStar)(require("./Select"), exports);
|
|
15
|
+
(0, tslib_1.__exportStar)(require("./Text"), exports);
|
|
16
|
+
(0, tslib_1.__exportStar)(require("./Timestamp"), exports);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as t from "io-ts";
|
|
2
|
+
import type { WidgetKey } from "../../common";
|
|
3
|
+
import type { StaticCustomType } from "../../customtypes";
|
|
4
|
+
import { ImportField } from "./fields/ImportField";
|
|
5
|
+
export declare type ImportDocument = Record<WidgetKey, ImportField>;
|
|
6
|
+
export declare const ImportDocument: (customType: StaticCustomType) => t.Type<ImportDocument, ImportDocument, unknown>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImportDocument = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const fp_ts_1 = require("fp-ts");
|
|
6
|
+
const Either_1 = require("fp-ts/Either");
|
|
7
|
+
const function_1 = require("fp-ts/lib/function");
|
|
8
|
+
const t = (0, tslib_1.__importStar)(require("io-ts"));
|
|
9
|
+
const customtypes_1 = require("../../customtypes");
|
|
10
|
+
const Objects_1 = require("../../utils/Objects");
|
|
11
|
+
const function_2 = require("../../validators/function");
|
|
12
|
+
const ImportField_1 = require("./fields/ImportField");
|
|
13
|
+
const rawImportDocument = (0, function_2.withCustomError)(t.UnknownRecord, () => "document is not an object");
|
|
14
|
+
function validateField(document, customType) {
|
|
15
|
+
return (key, content, model) => {
|
|
16
|
+
// the field is not defined in the custom type -> extra field or typo
|
|
17
|
+
if (!model) {
|
|
18
|
+
const error = {
|
|
19
|
+
value: content,
|
|
20
|
+
context: [{ key: key, type: t.unknown }],
|
|
21
|
+
message: `The field ${key} is not part of the Custom type`,
|
|
22
|
+
};
|
|
23
|
+
return fp_ts_1.either.left([error]);
|
|
24
|
+
}
|
|
25
|
+
// retrieving the right codec then testing out fieldValue with it.
|
|
26
|
+
const { result, codec } = ImportField_1.ImportField.decode(model)(content);
|
|
27
|
+
// error.context is pointing at root when it should point to a `fieldKey`.
|
|
28
|
+
// We need to override the context to make it right.
|
|
29
|
+
if ((0, Either_1.isLeft)(result)) {
|
|
30
|
+
const errors = result.left.map((error) => {
|
|
31
|
+
const contextHead = error.context[0];
|
|
32
|
+
const context = [
|
|
33
|
+
{ key: "", actual: document, type: (0, exports.ImportDocument)(customType) },
|
|
34
|
+
contextHead
|
|
35
|
+
? { ...contextHead, key: key }
|
|
36
|
+
: { key: key, actual: content, type: codec },
|
|
37
|
+
...error.context.slice(1),
|
|
38
|
+
];
|
|
39
|
+
return { ...error, context };
|
|
40
|
+
});
|
|
41
|
+
return fp_ts_1.either.left(errors);
|
|
42
|
+
}
|
|
43
|
+
return fp_ts_1.either.right(result.right);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function validateDocument(customType, rawDoc) {
|
|
47
|
+
const fieldModels = (0, customtypes_1.flattenCustomTypeFields)(customType);
|
|
48
|
+
const { document, errors } = Object.entries(rawDoc).reduce((acc, [fieldKey, fieldValue]) => {
|
|
49
|
+
const parsedField = validateField(rawDoc, customType)(fieldKey, fieldValue, fieldModels[fieldKey]);
|
|
50
|
+
if ((0, Either_1.isLeft)(parsedField))
|
|
51
|
+
return { ...acc, errors: [...acc.errors, ...parsedField.left] };
|
|
52
|
+
return {
|
|
53
|
+
...acc,
|
|
54
|
+
document: { ...acc.document, [fieldKey]: parsedField.right },
|
|
55
|
+
};
|
|
56
|
+
}, { document: {}, errors: [] });
|
|
57
|
+
if (errors.length > 0)
|
|
58
|
+
return fp_ts_1.either.left(errors);
|
|
59
|
+
return fp_ts_1.either.right(document);
|
|
60
|
+
}
|
|
61
|
+
const ImportDocument = (customType) => new t.Type("ImportDocument", (u) => (0, Objects_1.isObject)(u), (raw) => {
|
|
62
|
+
return (0, function_1.pipe)(rawImportDocument.decode(raw), fp_ts_1.either.chain((doc) => validateDocument(customType, doc)));
|
|
63
|
+
}, t.identity);
|
|
64
|
+
exports.ImportDocument = ImportDocument;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as t from "io-ts";
|
|
2
|
+
export declare const ImportContent: <T extends "Boolean" | "Color" | "Date" | "Embed" | "GeoPoint" | "Image" | "IntegrationFields" | "Link" | "Number" | "Range" | "StructuredText" | "Select" | "Separator" | "Text" | "Timestamp" | "Group" | "Choice" | "Slices" | "UID", A, O = A>(type: T, valueCodec: t.Type<A, O, unknown>) => t.Type<{
|
|
3
|
+
type: T;
|
|
4
|
+
value: A;
|
|
5
|
+
}, O, unknown>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImportContent = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const fp_ts_1 = require("fp-ts");
|
|
6
|
+
const function_1 = require("fp-ts/lib/function");
|
|
7
|
+
const t = (0, tslib_1.__importStar)(require("io-ts"));
|
|
8
|
+
const Objects_1 = require("../../../utils/Objects");
|
|
9
|
+
const ImportContent = (type, valueCodec) => new t.Type(`ImportField: ${valueCodec.name}`, (u) => {
|
|
10
|
+
if (!(0, Objects_1.isObject)(u))
|
|
11
|
+
return false;
|
|
12
|
+
return type === u["type"] && valueCodec.is(u["value"]);
|
|
13
|
+
}, (u, c) => {
|
|
14
|
+
return (0, function_1.pipe)(valueCodec.validate(u, c), fp_ts_1.either.map((decodedValue) => {
|
|
15
|
+
return {
|
|
16
|
+
type,
|
|
17
|
+
value: decodedValue,
|
|
18
|
+
};
|
|
19
|
+
}));
|
|
20
|
+
}, (field) => field.value);
|
|
21
|
+
exports.ImportContent = ImportContent;
|