@se-studio/contentful-rest-api 1.18.0 → 1.19.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/CHANGELOG.md +19 -0
- package/dist/converters/animationEnricher.d.ts +12 -6
- package/dist/converters/animationEnricher.d.ts.map +1 -1
- package/dist/converters/animationEnricher.js +144 -23
- package/dist/converters/animationEnricher.js.map +1 -1
- package/dist/converters/asset.d.ts +7 -2
- package/dist/converters/asset.d.ts.map +1 -1
- package/dist/converters/asset.js +24 -3
- package/dist/converters/asset.js.map +1 -1
- package/dist/converters/banner.d.ts.map +1 -1
- package/dist/converters/banner.js +22 -2
- package/dist/converters/banner.js.map +1 -1
- package/dist/converters/index.d.ts +1 -1
- package/dist/converters/index.d.ts.map +1 -1
- package/dist/converters/index.js +1 -1
- package/dist/converters/index.js.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @se-studio/contentful-rest-api
|
|
2
2
|
|
|
3
|
+
## 1.19.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- DotLottie player for CMS animations (JSON and `.lottie`), with classic lottie-player fallback if DotLottie is not installed. Lazy load by default; honour loading/fetchPriority for eager (heroes). Server enrich reads dimensions and poster for CLS. WASM self-host helper (`/dotlottie/dotlottie-player.wasm`). Extension-first animation detection; hosted staged upload allows JSON/zip for animation packages. INavigation surfaces optional backgroundColour/textColour for footer chrome.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
- @se-studio/core-data-types@1.8.0
|
|
13
|
+
|
|
14
|
+
## 1.18.1
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- bfb7eb4: Copy banner CMS `ctaText` onto `ctaLink.text` (and fill external link `name` when empty) so site UIs that render `ctaLink.text` get the editor CTA label.
|
|
19
|
+
- Updated dependencies [bfb7eb4]
|
|
20
|
+
- @se-studio/core-data-types@1.7.1
|
|
21
|
+
|
|
3
22
|
## 1.18.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import type { IVisual } from '@se-studio/core-data-types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
* Decode a .lottie (zip) buffer and return dimensions from the primary animation JSON.
|
|
4
|
+
* Optionally returns an embedded raster poster if the package includes a common image asset.
|
|
5
|
+
*/
|
|
6
|
+
export declare function dimensionsFromDotLottieBuffer(buffer: Uint8Array): {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
posterSrc?: string;
|
|
10
|
+
} | null;
|
|
11
|
+
/**
|
|
12
|
+
* Enriches all animation visuals in the assets Map with dimensions (optimised SVG)
|
|
13
|
+
* and a posterSrc for the lazy shell / reduced-motion fallback.
|
|
14
|
+
* Mutates animation in place so values are available at render without async server components.
|
|
9
15
|
*/
|
|
10
16
|
export declare function enrichAnimationAssets(assets: Map<string, IVisual>): Promise<void>;
|
|
11
17
|
//# sourceMappingURL=animationEnricher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animationEnricher.d.ts","sourceRoot":"","sources":["../../src/converters/animationEnricher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"animationEnricher.d.ts","sourceRoot":"","sources":["../../src/converters/animationEnricher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,OAAO,EACR,MAAM,4BAA4B,CAAC;AAoCpC;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,UAAU,GAAG;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAoFP;AAqED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBvF"}
|
|
@@ -1,41 +1,160 @@
|
|
|
1
|
+
import { unzipSync } from 'fflate';
|
|
1
2
|
import { assetTag } from '../revalidation/tags.js';
|
|
2
3
|
function getLottieDimensions(lottieJson) {
|
|
3
4
|
const width = lottieJson.w || lottieJson.width || 0;
|
|
4
5
|
const height = lottieJson.h || lottieJson.height || 0;
|
|
5
6
|
return { width, height };
|
|
6
7
|
}
|
|
8
|
+
function blankSvg(width, height) {
|
|
9
|
+
return `<svg width="${width}" height="${height}" viewBox="0 0 ${width} ${height}" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet" style="width: 100%; height: 100%"></svg>`;
|
|
10
|
+
}
|
|
11
|
+
function optimisedFromDimensions(width, height) {
|
|
12
|
+
if (!width || !height)
|
|
13
|
+
return undefined;
|
|
14
|
+
return { width, height, data: blankSvg(width, height) };
|
|
15
|
+
}
|
|
16
|
+
/** Transparent SVG data URL — reserves space and works as a reduced-motion / lazy shell. */
|
|
17
|
+
function posterDataUrlFromSvg(svg) {
|
|
18
|
+
return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`;
|
|
19
|
+
}
|
|
7
20
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* tag so the result is invalidated when the Contentful asset is updated via webhook.
|
|
11
|
-
*
|
|
12
|
-
* @param animationSrc - Public URL of the Lottie JSON file
|
|
13
|
-
* @param assetId - Contentful asset ID for cache tagging
|
|
21
|
+
* Decode a .lottie (zip) buffer and return dimensions from the primary animation JSON.
|
|
22
|
+
* Optionally returns an embedded raster poster if the package includes a common image asset.
|
|
14
23
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
24
|
+
export function dimensionsFromDotLottieBuffer(buffer) {
|
|
25
|
+
let files;
|
|
26
|
+
try {
|
|
27
|
+
files = unzipSync(buffer);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const entries = Object.keys(files);
|
|
33
|
+
const manifestKey = entries.find((k) => k === 'manifest.json' || k.endsWith('/manifest.json'));
|
|
34
|
+
let animationPath;
|
|
35
|
+
if (manifestKey) {
|
|
36
|
+
const manifestBytes = files[manifestKey];
|
|
37
|
+
if (manifestBytes) {
|
|
38
|
+
try {
|
|
39
|
+
const manifest = JSON.parse(new TextDecoder().decode(manifestBytes));
|
|
40
|
+
const firstId = manifest.animations?.[0]?.id;
|
|
41
|
+
if (firstId) {
|
|
42
|
+
// Spec locations: a/<id>.json or animations/<id>.json
|
|
43
|
+
animationPath = entries.find((k) => k === `a/${firstId}.json` ||
|
|
44
|
+
k === `animations/${firstId}.json` ||
|
|
45
|
+
k.endsWith(`/${firstId}.json`));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// fall through to first JSON under a/ or animations/
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (!animationPath) {
|
|
54
|
+
animationPath = entries.find((k) => (k.startsWith('a/') || k.includes('/a/') || k.startsWith('animations/')) &&
|
|
55
|
+
k.endsWith('.json') &&
|
|
56
|
+
!k.endsWith('manifest.json'));
|
|
57
|
+
}
|
|
58
|
+
if (!animationPath) {
|
|
59
|
+
// Last resort: any non-manifest JSON
|
|
60
|
+
animationPath = entries.find((k) => k.endsWith('.json') && !k.endsWith('manifest.json'));
|
|
61
|
+
}
|
|
62
|
+
if (!animationPath)
|
|
63
|
+
return null;
|
|
64
|
+
const animBytes = files[animationPath];
|
|
65
|
+
if (!animBytes)
|
|
66
|
+
return null;
|
|
67
|
+
let json;
|
|
68
|
+
try {
|
|
69
|
+
json = JSON.parse(new TextDecoder().decode(animBytes));
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
const { width, height } = getLottieDimensions(json);
|
|
75
|
+
if (!width || !height)
|
|
76
|
+
return null;
|
|
77
|
+
// Opportunistic embedded still (not guaranteed to be frame 0).
|
|
78
|
+
const imageKey = entries.find((k) => /\.(png|jpe?g|webp)$/i.test(k));
|
|
79
|
+
let posterSrc;
|
|
80
|
+
if (imageKey) {
|
|
81
|
+
const imgBytes = files[imageKey];
|
|
82
|
+
if (imgBytes && imgBytes.byteLength > 0 && imgBytes.byteLength <= 100 * 1024) {
|
|
83
|
+
const ext = imageKey.split('.').pop()?.toLowerCase() ?? 'png';
|
|
84
|
+
const mime = ext === 'jpg' || ext === 'jpeg'
|
|
85
|
+
? 'image/jpeg'
|
|
86
|
+
: ext === 'webp'
|
|
87
|
+
? 'image/webp'
|
|
88
|
+
: 'image/png';
|
|
89
|
+
let binary = '';
|
|
90
|
+
const chunk = 0x8000;
|
|
91
|
+
for (let i = 0; i < imgBytes.length; i += chunk) {
|
|
92
|
+
binary += String.fromCharCode(...imgBytes.subarray(i, i + chunk));
|
|
93
|
+
}
|
|
94
|
+
posterSrc = `data:${mime};base64,${btoa(binary)}`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return { width, height, posterSrc };
|
|
98
|
+
}
|
|
99
|
+
async function fetchCached(url, assetId) {
|
|
100
|
+
const response = await fetch(url, {
|
|
17
101
|
cache: 'force-cache',
|
|
18
102
|
next: {
|
|
19
103
|
tags: [assetTag(assetId)],
|
|
20
104
|
},
|
|
21
105
|
});
|
|
22
|
-
if (!response.ok)
|
|
106
|
+
if (!response.ok)
|
|
107
|
+
return undefined;
|
|
108
|
+
return response;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Fetches a Lottie animation JSON and returns an optimised SVG placeholder
|
|
112
|
+
* capturing the animation's dimensions. Optionally sets a SVG data-URL poster.
|
|
113
|
+
*/
|
|
114
|
+
async function enrichLottieJson(animationSrc, assetId) {
|
|
115
|
+
const response = await fetchCached(animationSrc, assetId);
|
|
116
|
+
if (!response)
|
|
23
117
|
return undefined;
|
|
24
|
-
}
|
|
25
118
|
const json = (await response.json());
|
|
26
119
|
const { width, height } = getLottieDimensions(json);
|
|
27
|
-
|
|
120
|
+
const optimised = optimisedFromDimensions(width, height);
|
|
121
|
+
if (!optimised)
|
|
122
|
+
return undefined;
|
|
123
|
+
return {
|
|
124
|
+
optimised,
|
|
125
|
+
posterSrc: posterDataUrlFromSvg(optimised.data),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Fetches a .lottie package, unzips it, reads dimensions from the primary animation JSON.
|
|
130
|
+
*/
|
|
131
|
+
async function enrichDotLottie(animationSrc, assetId) {
|
|
132
|
+
const response = await fetchCached(animationSrc, assetId);
|
|
133
|
+
if (!response)
|
|
28
134
|
return undefined;
|
|
29
|
-
const
|
|
30
|
-
|
|
135
|
+
const buffer = new Uint8Array(await response.arrayBuffer());
|
|
136
|
+
const dims = dimensionsFromDotLottieBuffer(buffer);
|
|
137
|
+
if (!dims)
|
|
138
|
+
return undefined;
|
|
139
|
+
const optimised = optimisedFromDimensions(dims.width, dims.height);
|
|
140
|
+
if (!optimised)
|
|
141
|
+
return undefined;
|
|
142
|
+
return {
|
|
143
|
+
optimised,
|
|
144
|
+
// Prefer embedded raster; otherwise transparent SVG with correct aspect.
|
|
145
|
+
posterSrc: dims.posterSrc ?? posterDataUrlFromSvg(optimised.data),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
async function enrichOne(format, animationSrc, assetId) {
|
|
149
|
+
if (format === 'dotlottie') {
|
|
150
|
+
return enrichDotLottie(animationSrc, assetId);
|
|
151
|
+
}
|
|
152
|
+
return enrichLottieJson(animationSrc, assetId);
|
|
31
153
|
}
|
|
32
154
|
/**
|
|
33
|
-
* Enriches all animation visuals in the assets Map with
|
|
34
|
-
*
|
|
35
|
-
* Mutates animation
|
|
36
|
-
* time without requiring an async server component.
|
|
37
|
-
*
|
|
38
|
-
* @param assets - The Map<assetId, IVisual> built by convertAllAssets
|
|
155
|
+
* Enriches all animation visuals in the assets Map with dimensions (optimised SVG)
|
|
156
|
+
* and a posterSrc for the lazy shell / reduced-motion fallback.
|
|
157
|
+
* Mutates animation in place so values are available at render without async server components.
|
|
39
158
|
*/
|
|
40
159
|
export async function enrichAnimationAssets(assets) {
|
|
41
160
|
const animationEntries = Array.from(assets.entries()).filter(([, visual]) => visual.animation !== undefined);
|
|
@@ -43,13 +162,15 @@ export async function enrichAnimationAssets(assets) {
|
|
|
43
162
|
return;
|
|
44
163
|
await Promise.all(animationEntries.map(async ([assetId, visual]) => {
|
|
45
164
|
try {
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
165
|
+
const format = visual.animation.format ?? 'lottie-json';
|
|
166
|
+
const result = await enrichOne(format, visual.animation.animationSrc, assetId);
|
|
167
|
+
if (result) {
|
|
168
|
+
visual.animation.optimised = result.optimised;
|
|
169
|
+
visual.animation.posterSrc = result.posterSrc;
|
|
49
170
|
}
|
|
50
171
|
}
|
|
51
172
|
catch {
|
|
52
|
-
// Leave optimised undefined —
|
|
173
|
+
// Leave optimised/poster undefined — LazyAnimation handles missing case gracefully
|
|
53
174
|
}
|
|
54
175
|
}));
|
|
55
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animationEnricher.js","sourceRoot":"","sources":["../../src/converters/animationEnricher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"animationEnricher.js","sourceRoot":"","sources":["../../src/converters/animationEnricher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import type { IAnimation, IImage, IResponsiveVisual, IVideo, IVisual } from '@se-studio/core-data-types';
|
|
2
|
-
import type { Asset, Entry, UnresolvedLink } from 'contentful';
|
|
1
|
+
import type { AnimationFormat, IAnimation, IImage, IResponsiveVisual, IVideo, IVisual } from '@se-studio/core-data-types';
|
|
2
|
+
import type { Asset, AssetFile, Entry, UnresolvedLink } from 'contentful';
|
|
3
3
|
import type { DefaultChainModifier } from '../api';
|
|
4
4
|
import type { BaseExternalVideoSkeleton } from '../baseTypes/baseExternalVideo';
|
|
5
5
|
import type { BaseMediaSkeleton } from '../baseTypes/baseMedia';
|
|
6
6
|
import type { BaseConverterContext, ConverterContext } from './helpers';
|
|
7
|
+
/**
|
|
8
|
+
* Extension-first animation format (MIME is unreliable for `.lottie` uploads).
|
|
9
|
+
* Wrong extension ⇒ wrong player by design.
|
|
10
|
+
*/
|
|
11
|
+
export declare function animationFormatFromFile(file: AssetFile): AnimationFormat | undefined;
|
|
7
12
|
export declare function convertAssetToVisual(context: BaseConverterContext, asset?: Asset<DefaultChainModifier, string>, options?: Partial<IImage> | Partial<IVideo> | Partial<IAnimation>): IVisual | undefined;
|
|
8
13
|
export declare function createResponsiveVisual(visual: IVisual | undefined, mobileVisual: IVisual | undefined): IResponsiveVisual | undefined;
|
|
9
14
|
export declare const HIDE_MOBILE_BACKGROUND_FLAG = "Hide mobile background";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/converters/asset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,MAAM,EAEN,iBAAiB,EAEjB,MAAM,EAEN,OAAO,EACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/converters/asset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,MAAM,EAEN,iBAAiB,EAEjB,MAAM,EAEN,OAAO,EACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAe,SAAS,EAAY,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AASxE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS,CAcpF;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,EAC3C,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,GAChE,OAAO,GAAG,SAAS,CAgErB;AA2ID,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,YAAY,EAAE,OAAO,GAAG,SAAS,GAChC,iBAAiB,GAAG,SAAS,CAM/B;AAED,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,iBAAiB,GAAG,SAAS,EAC/C,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAC/B,iBAAiB,GAAG,SAAS,CAO/B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC5D,OAAO,GAAG,SAAS,CA6ErB;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GACpE,OAAO,GAAG,SAAS,CA+CrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,GAAG,SAAS,CA2BrB"}
|
package/dist/converters/asset.js
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import { buildDownloadAssetFromRawAsset, lookupAsset, makeContentfulDescription, makeContentfulTitle, stringOrUndefined, } from './helpers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Extension-first animation format (MIME is unreliable for `.lottie` uploads).
|
|
4
|
+
* Wrong extension ⇒ wrong player by design.
|
|
5
|
+
*/
|
|
6
|
+
export function animationFormatFromFile(file) {
|
|
7
|
+
const fileName = (file.fileName ?? '').toLowerCase();
|
|
8
|
+
const urlPath = (file.url ?? '').toLowerCase().split('?')[0] ?? '';
|
|
9
|
+
if (fileName.endsWith('.lottie') || urlPath.endsWith('.lottie')) {
|
|
10
|
+
return 'dotlottie';
|
|
11
|
+
}
|
|
12
|
+
if (fileName.endsWith('.json') || urlPath.endsWith('.json')) {
|
|
13
|
+
return 'lottie-json';
|
|
14
|
+
}
|
|
15
|
+
// Legacy: JSON Lottie often stored as application/json without a clear extension.
|
|
16
|
+
if (file.contentType === 'application/json') {
|
|
17
|
+
return 'lottie-json';
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
2
21
|
export function convertAssetToVisual(context, asset, options) {
|
|
3
22
|
if (!asset)
|
|
4
23
|
return undefined;
|
|
@@ -30,8 +49,9 @@ export function convertAssetToVisual(context, asset, options) {
|
|
|
30
49
|
video,
|
|
31
50
|
};
|
|
32
51
|
}
|
|
33
|
-
|
|
34
|
-
|
|
52
|
+
const animationFormat = animationFormatFromFile(file);
|
|
53
|
+
if (animationFormat) {
|
|
54
|
+
const animation = convertAssetToAnimation(file, fields, sys, animationFormat, options);
|
|
35
55
|
if (!animation)
|
|
36
56
|
return undefined;
|
|
37
57
|
return {
|
|
@@ -52,7 +72,7 @@ export function convertAssetToVisual(context, asset, options) {
|
|
|
52
72
|
}
|
|
53
73
|
return undefined;
|
|
54
74
|
}
|
|
55
|
-
function convertAssetToAnimation(file, fields, sys, options) {
|
|
75
|
+
function convertAssetToAnimation(file, fields, sys, format, options) {
|
|
56
76
|
const { id } = sys;
|
|
57
77
|
const { title, description } = fields;
|
|
58
78
|
const { url } = file;
|
|
@@ -62,6 +82,7 @@ function convertAssetToAnimation(file, fields, sys, options) {
|
|
|
62
82
|
...options,
|
|
63
83
|
id,
|
|
64
84
|
type: 'Animation',
|
|
85
|
+
format,
|
|
65
86
|
animationSrc: `https:${url}`,
|
|
66
87
|
name: makeContentfulTitle(title, id),
|
|
67
88
|
description: stringOrUndefined(description),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/converters/asset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/converters/asset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/converters/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,OAAO,
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/converters/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,OAAO,EAGR,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,WAAW,CAAC;AA0BjE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC7D,OAAO,CAqDT"}
|
|
@@ -7,6 +7,19 @@ function normalizePlacement(raw) {
|
|
|
7
7
|
}
|
|
8
8
|
return raw;
|
|
9
9
|
}
|
|
10
|
+
function bannerCtaLabel(ctaText) {
|
|
11
|
+
return typeof ctaText === 'string' ? ctaText.trim() : '';
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Copy CMS CTA Text onto the resolved link so site UIs can use `ctaLink.text`.
|
|
15
|
+
* Preserves an existing link `name` (e.g. page title on internal targets).
|
|
16
|
+
*/
|
|
17
|
+
function applyBannerCtaText(link, ctaText) {
|
|
18
|
+
const label = bannerCtaLabel(ctaText);
|
|
19
|
+
if (!label)
|
|
20
|
+
return link;
|
|
21
|
+
return { ...link, text: label, name: link.name || label };
|
|
22
|
+
}
|
|
10
23
|
/**
|
|
11
24
|
* Converts a Contentful banner entry to an IBanner object
|
|
12
25
|
*/
|
|
@@ -16,23 +29,30 @@ export function baseBannerConverter(context, entry) {
|
|
|
16
29
|
throw new Error(`Invalid content type: expected "banner", got "${sys.contentType.sys.id}"`);
|
|
17
30
|
}
|
|
18
31
|
const id = sys.id;
|
|
19
|
-
const { ctaInternalLink: rawCtaInternalLink, ctaExternalLink: rawCtaExternalLink, showOn: rawShowOn, hideOn: rawHideOn, theme, dismissType, placement: rawPlacement, ...simpleFields } = fields;
|
|
32
|
+
const { ctaText, ctaInternalLink: rawCtaInternalLink, ctaExternalLink: rawCtaExternalLink, showOn: rawShowOn, hideOn: rawHideOn, theme, dismissType, placement: rawPlacement, ...simpleFields } = fields;
|
|
20
33
|
const ctaInternalLink = rawCtaInternalLink
|
|
21
34
|
? resolveLink(context, sys.id, rawCtaInternalLink)
|
|
22
35
|
: undefined;
|
|
36
|
+
// Labels are stamped only via applyBannerCtaText (single path for internal + external).
|
|
23
37
|
const ctaExternalLink = rawCtaExternalLink
|
|
24
38
|
? {
|
|
25
39
|
type: 'External link',
|
|
40
|
+
id: sys.id,
|
|
41
|
+
name: '',
|
|
42
|
+
text: null,
|
|
26
43
|
href: rawCtaExternalLink,
|
|
27
44
|
}
|
|
28
45
|
: undefined;
|
|
46
|
+
const rawCtaLink = ctaInternalLink ?? ctaExternalLink;
|
|
47
|
+
const ctaLink = rawCtaLink ? applyBannerCtaText(rawCtaLink, ctaText) : undefined;
|
|
29
48
|
const showOn = rawShowOn ? lookupEntries(context, rawShowOn) : undefined;
|
|
30
49
|
const hideOn = rawHideOn ? lookupEntries(context, rawHideOn) : undefined;
|
|
31
50
|
return {
|
|
32
51
|
type: 'Banner',
|
|
33
52
|
...simpleFields,
|
|
34
53
|
id,
|
|
35
|
-
|
|
54
|
+
ctaText: ctaText ?? null,
|
|
55
|
+
ctaLink,
|
|
36
56
|
showOn,
|
|
37
57
|
hideOn,
|
|
38
58
|
theme: theme,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/converters/banner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/converters/banner.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* create custom converters for your specific needs.
|
|
7
7
|
*/
|
|
8
8
|
export type { IContentfulArticle, IContentfulArticleLink } from './article';
|
|
9
|
-
export { createResponsiveVisual } from './asset';
|
|
9
|
+
export { animationFormatFromFile, createResponsiveVisual } from './asset';
|
|
10
10
|
export type { IContentfulCollection } from './collection';
|
|
11
11
|
export { baseCollectionConverter } from './collection';
|
|
12
12
|
export type { IContentfulComponent } from './component';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAC1E,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,WAAW,EACX,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/converters/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* to typed objects. Use the base converters and compose with enhancers to
|
|
6
6
|
* create custom converters for your specific needs.
|
|
7
7
|
*/
|
|
8
|
-
export { createResponsiveVisual } from './asset.js';
|
|
8
|
+
export { animationFormatFromFile, createResponsiveVisual } from './asset.js';
|
|
9
9
|
export { baseCollectionConverter } from './collection.js';
|
|
10
10
|
export { baseComponentConverter } from './component.js';
|
|
11
11
|
export { baseDocumentConverter } from './document.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAIL,WAAW,GAEZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/contentful-rest-api",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.0",
|
|
4
4
|
"description": "Type-safe Contentful REST API client with caching and rate limiting for Next.js applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -60,8 +60,9 @@
|
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@contentful/rich-text-types": "^17.2.7",
|
|
62
62
|
"contentful": "^11.12.7",
|
|
63
|
+
"fflate": "^0.8.3",
|
|
63
64
|
"server-only": "0.0.1",
|
|
64
|
-
"@se-studio/core-data-types": "1.
|
|
65
|
+
"@se-studio/core-data-types": "1.8.0"
|
|
65
66
|
},
|
|
66
67
|
"peerDependencies": {
|
|
67
68
|
"next": ">=15.5.0 <16"
|