@se-studio/contentful-rest-api 1.25.1 → 1.25.2
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 +6 -0
- package/dist/converters/heroVideoEnricher.d.ts +1 -1
- package/dist/converters/heroVideoEnricher.d.ts.map +1 -1
- package/dist/converters/heroVideoEnricher.js +34 -4
- package/dist/converters/heroVideoEnricher.js.map +1 -1
- package/dist/converters/heroVideoEnv.d.ts +15 -0
- package/dist/converters/heroVideoEnv.d.ts.map +1 -1
- package/dist/converters/heroVideoEnv.js +17 -0
- package/dist/converters/heroVideoEnv.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
2
|
import type { IVisual } from '@se-studio/core-data-types';
|
|
3
|
-
export { type HeroVideoEnv, heroManifestUrl, readHeroVideoEnv, shouldRetryFailedHeroManifest, } from './heroVideoEnv';
|
|
3
|
+
export { HERO_PENDING_MANIFEST_REVALIDATE, HERO_STABLE_MANIFEST_REVALIDATE, type HeroVideoEnv, heroManifestCacheKey, heroManifestUrl, isStableHeroManifest, readHeroVideoEnv, shouldRetryFailedHeroManifest, } from './heroVideoEnv';
|
|
4
4
|
/**
|
|
5
5
|
* SE Studio mute-loop packs on R2: GET manifest, enqueue encode on miss or failed retry.
|
|
6
6
|
* No-op when HERO_VIDEO_* env is unset (ImageKit path remains).
|
|
@@ -1 +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;
|
|
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;AAclG,OAAO,EACL,gCAAgC,EAChC,+BAA+B,EAC/B,KAAK,YAAY,EACjB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC;AAkFxB;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FrF"}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
2
|
import { unstable_cache } from 'next/cache';
|
|
3
|
-
import { heroManifestUrl, readHeroVideoEnv, shouldRetryFailedHeroManifest, } from './heroVideoEnv.js';
|
|
4
|
-
export { heroManifestUrl, readHeroVideoEnv, shouldRetryFailedHeroManifest, } from './heroVideoEnv.js';
|
|
3
|
+
import { HERO_PENDING_MANIFEST_REVALIDATE, HERO_STABLE_MANIFEST_REVALIDATE, heroManifestCacheKey, heroManifestUrl, isStableHeroManifest, readHeroVideoEnv, shouldRetryFailedHeroManifest, } from './heroVideoEnv.js';
|
|
4
|
+
export { HERO_PENDING_MANIFEST_REVALIDATE, HERO_STABLE_MANIFEST_REVALIDATE, heroManifestCacheKey, heroManifestUrl, isStableHeroManifest, readHeroVideoEnv, shouldRetryFailedHeroManifest, } from './heroVideoEnv.js';
|
|
5
|
+
/** Thrown so `unstable_cache` does not persist pending/missing manifests in the stable profile. */
|
|
6
|
+
class HeroManifestNotStable extends Error {
|
|
7
|
+
constructor() {
|
|
8
|
+
super('hero-manifest-not-stable');
|
|
9
|
+
this.name = 'HeroManifestNotStable';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function isHeroManifestNotStable(err) {
|
|
13
|
+
return (err instanceof HeroManifestNotStable ||
|
|
14
|
+
(err instanceof Error && err.name === 'HeroManifestNotStable'));
|
|
15
|
+
}
|
|
5
16
|
function deliveryFromManifest(json) {
|
|
6
17
|
return {
|
|
7
18
|
status: json.status === 'ready' || json.status === 'rejected' || json.status === 'failed'
|
|
@@ -63,9 +74,28 @@ export async function seEnrichVideoAssets(assets) {
|
|
|
63
74
|
return;
|
|
64
75
|
}
|
|
65
76
|
const url = heroManifestUrl(env.origin, env.tenant, assetId);
|
|
66
|
-
const
|
|
77
|
+
const tags = [`asset#${assetId}`];
|
|
78
|
+
// Do not invoke the 60s cache on the ready path — Next inherits the
|
|
79
|
+
// lowest revalidate used during render as the page ISR TTL.
|
|
80
|
+
const getStableCached = unstable_cache(async () => {
|
|
81
|
+
const manifest = await fetchManifest(url);
|
|
82
|
+
if (isStableHeroManifest(manifest)) {
|
|
83
|
+
return manifest;
|
|
84
|
+
}
|
|
85
|
+
throw new HeroManifestNotStable();
|
|
86
|
+
}, heroManifestCacheKey('stable', env.tenant, assetId), { revalidate: HERO_STABLE_MANIFEST_REVALIDATE, tags });
|
|
87
|
+
const getPendingCached = unstable_cache(() => fetchManifest(url), heroManifestCacheKey('pending', env.tenant, assetId), { revalidate: HERO_PENDING_MANIFEST_REVALIDATE, tags });
|
|
67
88
|
try {
|
|
68
|
-
|
|
89
|
+
let manifest;
|
|
90
|
+
try {
|
|
91
|
+
manifest = await getStableCached();
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
if (!isHeroManifestNotStable(err)) {
|
|
95
|
+
throw err;
|
|
96
|
+
}
|
|
97
|
+
manifest = await getPendingCached();
|
|
98
|
+
}
|
|
69
99
|
if (manifest && !shouldRetryFailedHeroManifest(manifest)) {
|
|
70
100
|
const delivery = deliveryFromManifest(manifest);
|
|
71
101
|
video.heroDelivery = delivery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heroVideoEnricher.js","sourceRoot":"","sources":["../../src/converters/heroVideoEnricher.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,
|
|
1
|
+
{"version":3,"file":"heroVideoEnricher.js","sourceRoot":"","sources":["../../src/converters/heroVideoEnricher.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,21 @@ export interface HeroVideoEnv {
|
|
|
7
7
|
export declare function readHeroVideoEnv(env?: NodeJS.ProcessEnv): HeroVideoEnv | undefined;
|
|
8
8
|
export declare function heroManifestUrl(origin: string, tenant: string, assetId: string): string;
|
|
9
9
|
export declare const HERO_FAILED_RETRY_MS = 60000;
|
|
10
|
+
/**
|
|
11
|
+
* Data Cache TTLs for mute-loop manifests.
|
|
12
|
+
*
|
|
13
|
+
* Next.js App Router uses the lowest `revalidate` seen during a render as the
|
|
14
|
+
* page ISR interval. A 60s TTL on a *ready* pack therefore regenerates every
|
|
15
|
+
* marketing page that includes local video. Keep 60s only for non-terminal
|
|
16
|
+
* packs (pending encode / failed retry).
|
|
17
|
+
*/
|
|
18
|
+
export declare const HERO_STABLE_MANIFEST_REVALIDATE = false;
|
|
19
|
+
export declare const HERO_PENDING_MANIFEST_REVALIDATE = 60;
|
|
20
|
+
export declare function heroManifestCacheKey(kind: 'stable' | 'pending', tenant: string, assetId: string): string[];
|
|
21
|
+
/** Terminal packs that must not use the 60s Data Cache profile. */
|
|
22
|
+
export declare function isStableHeroManifest(manifest: {
|
|
23
|
+
status?: string;
|
|
24
|
+
} | undefined | null): boolean;
|
|
10
25
|
export declare function shouldRetryFailedHeroManifest(manifest: {
|
|
11
26
|
status?: string;
|
|
12
27
|
updatedAt?: string;
|
|
@@ -1 +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;AAED,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAE3C,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EACjD,KAAK,GAAE,MAAmB,GACzB,OAAO,CAYT"}
|
|
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;AAED,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAE3C;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AACrD,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAEV;AAED,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAE9F;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EACjD,KAAK,GAAE,MAAmB,GACzB,OAAO,CAYT"}
|
|
@@ -12,6 +12,23 @@ export function heroManifestUrl(origin, tenant, assetId) {
|
|
|
12
12
|
return `${origin}/${tenant}/${assetId}/manifest.json`;
|
|
13
13
|
}
|
|
14
14
|
export const HERO_FAILED_RETRY_MS = 60_000;
|
|
15
|
+
/**
|
|
16
|
+
* Data Cache TTLs for mute-loop manifests.
|
|
17
|
+
*
|
|
18
|
+
* Next.js App Router uses the lowest `revalidate` seen during a render as the
|
|
19
|
+
* page ISR interval. A 60s TTL on a *ready* pack therefore regenerates every
|
|
20
|
+
* marketing page that includes local video. Keep 60s only for non-terminal
|
|
21
|
+
* packs (pending encode / failed retry).
|
|
22
|
+
*/
|
|
23
|
+
export const HERO_STABLE_MANIFEST_REVALIDATE = false;
|
|
24
|
+
export const HERO_PENDING_MANIFEST_REVALIDATE = 60;
|
|
25
|
+
export function heroManifestCacheKey(kind, tenant, assetId) {
|
|
26
|
+
return [`hero-video-manifest-${kind}`, tenant, assetId];
|
|
27
|
+
}
|
|
28
|
+
/** Terminal packs that must not use the 60s Data Cache profile. */
|
|
29
|
+
export function isStableHeroManifest(manifest) {
|
|
30
|
+
return manifest?.status === 'ready' || manifest?.status === 'rejected';
|
|
31
|
+
}
|
|
15
32
|
export function shouldRetryFailedHeroManifest(manifest, nowMs = Date.now()) {
|
|
16
33
|
if (manifest.status !== 'failed') {
|
|
17
34
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heroVideoEnv.js","sourceRoot":"","sources":["../../src/converters/heroVideoEnv.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAAC,GAAG,GAAsB,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;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAE3C,MAAM,UAAU,6BAA6B,CAC3C,QAAiD,EACjD,KAAK,GAAW,IAAI,CAAC,GAAG,EAAE;IAE1B,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,GAAG,OAAO,IAAI,oBAAoB,CAAC;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"heroVideoEnv.js","sourceRoot":"","sources":["../../src/converters/heroVideoEnv.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAAC,GAAG,GAAsB,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;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AACrD,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD,MAAM,UAAU,oBAAoB,CAClC,IAA0B,EAC1B,MAAc,EACd,OAAe;IAEf,OAAO,CAAC,uBAAuB,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,oBAAoB,CAAC,QAAgD;IACnF,OAAO,QAAQ,EAAE,MAAM,KAAK,OAAO,IAAI,QAAQ,EAAE,MAAM,KAAK,UAAU,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,QAAiD,EACjD,KAAK,GAAW,IAAI,CAAC,GAAG,EAAE;IAE1B,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,GAAG,OAAO,IAAI,oBAAoB,CAAC;AACjD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/contentful-rest-api",
|
|
3
|
-
"version": "1.25.
|
|
3
|
+
"version": "1.25.2",
|
|
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",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"next": ">=15.5.0 <17"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@biomejs/biome": "^2.5.
|
|
71
|
+
"@biomejs/biome": "^2.5.10",
|
|
72
72
|
"@types/node": "^26.2.0",
|
|
73
73
|
"next": "^16.3.2",
|
|
74
74
|
"typescript": "^7.0.2",
|