@se-studio/contentful-rest-api 1.20.0 → 1.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/converters/enrichAssets.d.ts +1 -1
- package/dist/converters/enrichAssets.d.ts.map +1 -1
- package/dist/converters/enrichAssets.js +7 -2
- package/dist/converters/enrichAssets.js.map +1 -1
- package/dist/converters/heroVideoEnricher.d.ts +9 -0
- package/dist/converters/heroVideoEnricher.d.ts.map +1 -0
- package/dist/converters/heroVideoEnricher.js +94 -0
- package/dist/converters/heroVideoEnricher.js.map +1 -0
- package/dist/converters/heroVideoEnv.d.ts +9 -0
- package/dist/converters/heroVideoEnv.d.ts.map +1 -0
- package/dist/converters/heroVideoEnv.js +14 -0
- package/dist/converters/heroVideoEnv.js.map +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @se-studio/contentful-rest-api
|
|
2
2
|
|
|
3
|
+
## 1.21.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Hero loop objects use the source filename (`{slug}-1080.mp4`, `{slug}-poster.webp`). Error boxes outline the reserved aspect ratio and show size, duration, and file name.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @se-studio/core-data-types@1.10.1
|
|
10
|
+
|
|
11
|
+
## 1.21.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- Add pull-based mute hero-loop video delivery (ffmpeg 720/1080 + poster). Sites opt in with HERO*VIDEO*\* env; ImageKit remains the default for other sites.
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies
|
|
20
|
+
- @se-studio/core-data-types@1.10.0
|
|
21
|
+
|
|
3
22
|
## 1.20.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
|
@@ -5,7 +5,7 @@ import type { FetchOptions } from '../types';
|
|
|
5
5
|
* Runs asset-enrichment steps in parallel and returns the map of pre-fetched oEmbed data for
|
|
6
6
|
* ConverterContext.
|
|
7
7
|
*
|
|
8
|
-
* - enrichVideoAssets:
|
|
8
|
+
* - enrichHeroVideoAssets / enrichVideoAssets: hero-loop pull pack or ImageKit dimensions
|
|
9
9
|
* - enrichAnimationAssets: fetches Lottie SVG placeholders (mutates assets)
|
|
10
10
|
* - enrichExternalVideoEmbeds: fetches oEmbed data for external video entries
|
|
11
11
|
* - enrichPictureBlurPlaceholders: optional; when `fetchOptions.enrichPictureBlurPlaceholders`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrichAssets.d.ts","sourceRoot":"","sources":["../../src/converters/enrichAssets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"enrichAssets.d.ts","sourceRoot":"","sources":["../../src/converters/enrichAssets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAQ7C;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC5C,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,+BAA+B,CAAC,GACjE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiBnC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { enrichAnimationAssets } from './animationEnricher.js';
|
|
2
2
|
import { enrichExternalVideoEmbeds } from './externalVideoEnricher.js';
|
|
3
|
+
import { enrichHeroVideoAssets } from './heroVideoEnricher.js';
|
|
4
|
+
import { readHeroVideoEnv } from './heroVideoEnv.js';
|
|
3
5
|
import { enrichPictureBlurPlaceholders } from './pictureBlurEnricher.js';
|
|
4
6
|
import { enrichVideoAssets } from './videoEnricher.js';
|
|
5
7
|
/**
|
|
6
8
|
* Runs asset-enrichment steps in parallel and returns the map of pre-fetched oEmbed data for
|
|
7
9
|
* ConverterContext.
|
|
8
10
|
*
|
|
9
|
-
* - enrichVideoAssets:
|
|
11
|
+
* - enrichHeroVideoAssets / enrichVideoAssets: hero-loop pull pack or ImageKit dimensions
|
|
10
12
|
* - enrichAnimationAssets: fetches Lottie SVG placeholders (mutates assets)
|
|
11
13
|
* - enrichExternalVideoEmbeds: fetches oEmbed data for external video entries
|
|
12
14
|
* - enrichPictureBlurPlaceholders: optional; when `fetchOptions.enrichPictureBlurPlaceholders`,
|
|
@@ -20,8 +22,11 @@ export async function enrichAllAssets(assets, includes, fetchOptions) {
|
|
|
20
22
|
const pictureBlur = fetchOptions?.enrichPictureBlurPlaceholders === true
|
|
21
23
|
? enrichPictureBlurPlaceholders(assets)
|
|
22
24
|
: Promise.resolve();
|
|
25
|
+
const videoEnrichment = readHeroVideoEnv()
|
|
26
|
+
? enrichHeroVideoAssets(assets)
|
|
27
|
+
: enrichVideoAssets(assets);
|
|
23
28
|
const [, , externalVideoEmbeds] = await Promise.all([
|
|
24
|
-
|
|
29
|
+
videoEnrichment,
|
|
25
30
|
enrichAnimationAssets(assets),
|
|
26
31
|
enrichExternalVideoEmbeds(includes),
|
|
27
32
|
pictureBlur,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrichAssets.js","sourceRoot":"","sources":["../../src/converters/enrichAssets.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA4B,EAC5B,QAA4C,EAC5C,YAAkE;IAElE,MAAM,WAAW,GACf,YAAY,EAAE,6BAA6B,KAAK,IAAI;QAClD,CAAC,CAAC,6BAA6B,CAAC,MAAM,CAAC;QACvC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAExB,MAAM,CAAC,EAAE,AAAD,EAAG,mBAAmB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,
|
|
1
|
+
{"version":3,"file":"enrichAssets.js","sourceRoot":"","sources":["../../src/converters/enrichAssets.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA4B,EAC5B,QAA4C,EAC5C,YAAkE;IAElE,MAAM,WAAW,GACf,YAAY,EAAE,6BAA6B,KAAK,IAAI;QAClD,CAAC,CAAC,6BAA6B,CAAC,MAAM,CAAC;QACvC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAExB,MAAM,eAAe,GAAG,gBAAgB,EAAE;QACxC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC;QAC/B,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE9B,MAAM,CAAC,EAAE,AAAD,EAAG,mBAAmB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,eAAe;QACf,qBAAqB,CAAC,MAAM,CAAC;QAC7B,yBAAyB,CAAC,QAAQ,CAAC;QACnC,WAAW;KACZ,CAAC,CAAC;IACH,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import 'server-only';
|
|
2
|
+
import type { IVisual } from '@se-studio/core-data-types';
|
|
3
|
+
export { type HeroVideoEnv, heroManifestUrl, readHeroVideoEnv } from './heroVideoEnv';
|
|
4
|
+
/**
|
|
5
|
+
* Pull-model hero packs: GET manifest, enqueue encode on miss.
|
|
6
|
+
* No-op when HERO_VIDEO_* env is unset (ImageKit path remains).
|
|
7
|
+
*/
|
|
8
|
+
export declare function enrichHeroVideoAssets(assets: Map<string, IVisual>): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=heroVideoEnricher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heroVideoEnricher.d.ts","sourceRoot":"","sources":["../../src/converters/heroVideoEnricher.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,KAAK,EAA0C,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAKlG,OAAO,EAAE,KAAK,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAmEtF;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DvF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import 'server-only';
|
|
2
|
+
import { unstable_cache } from 'next/cache';
|
|
3
|
+
import { heroManifestUrl, readHeroVideoEnv } from './heroVideoEnv.js';
|
|
4
|
+
export { heroManifestUrl, readHeroVideoEnv } from './heroVideoEnv.js';
|
|
5
|
+
function deliveryFromManifest(json) {
|
|
6
|
+
return {
|
|
7
|
+
status: json.status === 'ready' || json.status === 'rejected' || json.status === 'failed'
|
|
8
|
+
? json.status
|
|
9
|
+
: 'pending',
|
|
10
|
+
error: json.error,
|
|
11
|
+
width: json.width,
|
|
12
|
+
height: json.height,
|
|
13
|
+
durationSec: json.durationSec,
|
|
14
|
+
poster: json.poster,
|
|
15
|
+
src720: json.variants?.[720],
|
|
16
|
+
src1080: json.variants?.[1080],
|
|
17
|
+
sourceName: json.sourceName,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
async function fetchManifest(url) {
|
|
21
|
+
const response = await fetch(url, { method: 'GET', cache: 'no-store' });
|
|
22
|
+
if (response.status === 404) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
console.warn(`[hero-video] manifest failed status=${String(response.status)} url=${url}`);
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
return (await response.json());
|
|
30
|
+
}
|
|
31
|
+
async function requestEncode(env, body) {
|
|
32
|
+
const response = await fetch(`${env.encodeUrl}/api/v1/hero-video`, {
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers: {
|
|
35
|
+
authorization: `Bearer ${env.apiKey}`,
|
|
36
|
+
'content-type': 'application/json',
|
|
37
|
+
},
|
|
38
|
+
body: JSON.stringify(body),
|
|
39
|
+
});
|
|
40
|
+
if (!response.ok && response.status !== 202 && response.status !== 409) {
|
|
41
|
+
console.warn(`[hero-video] encode enqueue failed status=${String(response.status)} assetId=${body.assetId}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Pull-model hero packs: GET manifest, enqueue encode on miss.
|
|
46
|
+
* No-op when HERO_VIDEO_* env is unset (ImageKit path remains).
|
|
47
|
+
*/
|
|
48
|
+
export async function enrichHeroVideoAssets(assets) {
|
|
49
|
+
const env = readHeroVideoEnv();
|
|
50
|
+
if (!env) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const videoEntries = Array.from(assets.entries()).filter(([, visual]) => visual.video?.type === 'Local video' || visual.video?.type === 'Full video');
|
|
54
|
+
if (videoEntries.length === 0) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
await Promise.all(videoEntries.map(async ([assetId, visual]) => {
|
|
58
|
+
const video = visual.video;
|
|
59
|
+
const sourceUrl = video.type === 'Full video'
|
|
60
|
+
? (video.full?.videoUrl ?? video.preview?.videoUrl)
|
|
61
|
+
: video.preview.videoUrl;
|
|
62
|
+
if (!sourceUrl) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const url = heroManifestUrl(env.origin, env.tenant, assetId);
|
|
66
|
+
const getCached = unstable_cache(() => fetchManifest(url), ['hero-video-manifest', env.tenant, assetId], { revalidate: 60, tags: [`asset#${assetId}`] });
|
|
67
|
+
try {
|
|
68
|
+
const manifest = await getCached();
|
|
69
|
+
if (manifest) {
|
|
70
|
+
const delivery = deliveryFromManifest(manifest);
|
|
71
|
+
video.heroDelivery = delivery;
|
|
72
|
+
if (delivery.width && delivery.height) {
|
|
73
|
+
video.width = delivery.width;
|
|
74
|
+
video.height = delivery.height;
|
|
75
|
+
}
|
|
76
|
+
if (delivery.poster) {
|
|
77
|
+
video.poster = delivery.poster;
|
|
78
|
+
}
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
video.heroDelivery = { status: 'pending' };
|
|
82
|
+
await requestEncode(env, {
|
|
83
|
+
tenant: env.tenant,
|
|
84
|
+
assetId,
|
|
85
|
+
sourceUrl,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
console.error(`[hero-video] enrich threw assetId=${assetId}`, err);
|
|
90
|
+
video.heroDelivery = { status: 'failed', error: 'encode_failed' };
|
|
91
|
+
}
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=heroVideoEnricher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heroVideoEnricher.js","sourceRoot":"","sources":["../../src/converters/heroVideoEnricher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface HeroVideoEnv {
|
|
2
|
+
origin: string;
|
|
3
|
+
tenant: string;
|
|
4
|
+
encodeUrl: string;
|
|
5
|
+
apiKey: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function readHeroVideoEnv(env?: NodeJS.ProcessEnv): HeroVideoEnv | undefined;
|
|
8
|
+
export declare function heroManifestUrl(origin: string, tenant: string, assetId: string): string;
|
|
9
|
+
//# sourceMappingURL=heroVideoEnv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heroVideoEnv.d.ts","sourceRoot":"","sources":["../../src/converters/heroVideoEnv.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,YAAY,GAAG,SAAS,CAS/F;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function readHeroVideoEnv(env = process.env) {
|
|
2
|
+
const origin = env.HERO_VIDEO_ORIGIN?.replace(/\/$/, '');
|
|
3
|
+
const tenant = env.HERO_VIDEO_TENANT;
|
|
4
|
+
const encodeUrl = env.HERO_VIDEO_ENCODE_URL?.replace(/\/$/, '');
|
|
5
|
+
const apiKey = env.HERO_VIDEO_API_KEY;
|
|
6
|
+
if (!origin || !tenant || !encodeUrl || !apiKey) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
return { origin, tenant, encodeUrl, apiKey };
|
|
10
|
+
}
|
|
11
|
+
export function heroManifestUrl(origin, tenant, assetId) {
|
|
12
|
+
return `${origin}/${tenant}/${assetId}/manifest.json`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=heroVideoEnv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heroVideoEnv.js","sourceRoot":"","sources":["../../src/converters/heroVideoEnv.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnE,MAAM,MAAM,GAAG,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACrC,MAAM,SAAS,GAAG,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC;IACtC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc,EAAE,OAAe;IAC7E,OAAO,GAAG,MAAM,IAAI,MAAM,IAAI,OAAO,gBAAgB,CAAC;AACxD,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.21.1",
|
|
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",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"contentful": "^11.12.7",
|
|
63
63
|
"fflate": "^0.8.3",
|
|
64
64
|
"server-only": "0.0.1",
|
|
65
|
-
"@se-studio/core-data-types": "1.
|
|
65
|
+
"@se-studio/core-data-types": "1.10.1"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"next": ">=15.5.0 <16"
|