@se-studio/contentful-rest-api 1.18.1 → 1.20.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 +22 -0
- package/dist/api/asset.d.ts +1 -0
- package/dist/api/asset.d.ts.map +1 -1
- package/dist/api/asset.js +1 -0
- package/dist/api/asset.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/media-library.d.ts +59 -0
- package/dist/api/media-library.d.ts.map +1 -0
- package/dist/api/media-library.js +315 -0
- package/dist/api/media-library.js.map +1 -0
- package/dist/client.d.ts +6 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +54 -6
- package/dist/client.js.map +1 -1
- 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/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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/docs/llms.md +5 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @se-studio/contentful-rest-api
|
|
2
2
|
|
|
3
|
+
## 1.20.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 760c9c4: Add cms-dev media library: list all space images, videos, animations, and external video entries with HTML grid, JSON, and Markdown agent surfaces (`/cms/media`, `/cms/media.json`, `/cms/media.md`). Shared media-library types live in core-data-types; agent routes are production-gated and use private cache for Preview data.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [760c9c4]
|
|
12
|
+
- @se-studio/core-data-types@1.9.0
|
|
13
|
+
|
|
14
|
+
## 1.19.0
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- 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.
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies
|
|
23
|
+
- @se-studio/core-data-types@1.8.0
|
|
24
|
+
|
|
3
25
|
## 1.18.1
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
package/dist/api/asset.d.ts
CHANGED
|
@@ -24,4 +24,5 @@ export declare function isBrowserViewable(contentType: string): boolean;
|
|
|
24
24
|
* @returns The asset response or null if not found
|
|
25
25
|
*/
|
|
26
26
|
export declare function contentfulAssetRest(config: ContentfulConfig, assetId: string, options: FetchOptions): Promise<ContentfulAssetResponse | null>;
|
|
27
|
+
export { assetToMediaLibraryItem, buildAssetThumbUrl, clampMediaLibraryLimit, clampMediaLibraryPage, contentfulAssetsPageRest, isAnimationAsset, isMediaLibraryKind, listAnimationsPage, listMediaLibraryPage, MEDIA_LIBRARY_DEFAULT_LIMIT, MEDIA_LIBRARY_KINDS, MEDIA_LIBRARY_MAX_LIMIT, MEDIA_LIBRARY_THUMB_WIDTH, type MediaLibraryItem, type MediaLibraryKind, type MediaLibraryPage, mediaLibraryKindForAsset, mediaLibraryPageToMarkdown, } from './media-library';
|
|
27
28
|
//# sourceMappingURL=asset.d.ts.map
|
package/dist/api/asset.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/api/asset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,uBAAuB,EAAuB,MAAM,WAAW,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAc/D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAO9D;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAazC"}
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/api/asset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,uBAAuB,EAAuB,MAAM,WAAW,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAc/D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAO9D;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAazC;AAED,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
|
package/dist/api/asset.js
CHANGED
|
@@ -52,4 +52,5 @@ export async function contentfulAssetRest(config, assetId, options) {
|
|
|
52
52
|
},
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
|
+
export { assetToMediaLibraryItem, buildAssetThumbUrl, clampMediaLibraryLimit, clampMediaLibraryPage, contentfulAssetsPageRest, isAnimationAsset, isMediaLibraryKind, listAnimationsPage, listMediaLibraryPage, MEDIA_LIBRARY_DEFAULT_LIMIT, MEDIA_LIBRARY_KINDS, MEDIA_LIBRARY_MAX_LIMIT, MEDIA_LIBRARY_THUMB_WIDTH, mediaLibraryKindForAsset, mediaLibraryPageToMarkdown, } from './media-library.js';
|
|
55
56
|
//# sourceMappingURL=asset.js.map
|
package/dist/api/asset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/api/asset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAgC,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,UAAU;IACV,iBAAiB;IACjB,kBAAkB;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,qCAAqC;IACrC,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,sBAAsB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAwB,EACxB,OAAe,EACf,OAAqB;IAErB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5D,gCAAgC;IAChC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnE,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC9B,GAAG,OAAO;QACV,IAAI,EAAE;YACJ,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,IAAI,KAAK,EAAE,mBAAmB;YACnE,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;SACrD;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/api/asset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAgC,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,UAAU;IACV,iBAAiB;IACjB,kBAAkB;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,qCAAqC;IACrC,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,sBAAsB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAwB,EACxB,OAAe,EACf,OAAqB;IAErB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5D,gCAAgC;IAChC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnE,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC9B,GAAG,OAAO;QACV,IAAI,EAAE;YACJ,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,IAAI,KAAK,EAAE,mBAAmB;YACnE,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;SACrD;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EAIzB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type { CmsFetchProfile } from '../types';
|
|
|
8
8
|
export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, type RedirectMap, type RedirectMapEntry, } from '../utils/redirectMap';
|
|
9
9
|
export { contentfulArticleRest } from './article';
|
|
10
10
|
export { type ArticleTypeFetchOptions, contentfulArticleTypeRest } from './article-type';
|
|
11
|
-
export { contentfulAssetRest, isBrowserViewable, } from './asset';
|
|
11
|
+
export { assetToMediaLibraryItem, buildAssetThumbUrl, clampMediaLibraryLimit, clampMediaLibraryPage, contentfulAssetRest, contentfulAssetsPageRest, isAnimationAsset, isBrowserViewable, isMediaLibraryKind, listAnimationsPage, listMediaLibraryPage, MEDIA_LIBRARY_DEFAULT_LIMIT, MEDIA_LIBRARY_KINDS, MEDIA_LIBRARY_MAX_LIMIT, MEDIA_LIBRARY_THUMB_WIDTH, type MediaLibraryItem, type MediaLibraryKind, type MediaLibraryPage, mediaLibraryKindForAsset, mediaLibraryPageToMarkdown, } from './asset';
|
|
12
12
|
export { contentfulBannerRest } from './banner';
|
|
13
13
|
export { type BreadcrumbLookup, type BreadcrumbLookupEntry, getBreadcrumbLookup, } from './breadcrumb';
|
|
14
14
|
export { type AnyEntryRestResult, contentfulAnyEntryRest, contentfulComponentRest, } from './componentPreview';
|
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,sCAAsC,EACtC,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,KAAK,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
|
package/dist/api/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, } from '../ut
|
|
|
8
8
|
// Single entity fetchers
|
|
9
9
|
export { contentfulArticleRest } from './article.js';
|
|
10
10
|
export { contentfulArticleTypeRest } from './article-type.js';
|
|
11
|
-
export { contentfulAssetRest, isBrowserViewable, } from './asset.js';
|
|
11
|
+
export { assetToMediaLibraryItem, buildAssetThumbUrl, clampMediaLibraryLimit, clampMediaLibraryPage, contentfulAssetRest, contentfulAssetsPageRest, isAnimationAsset, isBrowserViewable, isMediaLibraryKind, listAnimationsPage, listMediaLibraryPage, MEDIA_LIBRARY_DEFAULT_LIMIT, MEDIA_LIBRARY_KINDS, MEDIA_LIBRARY_MAX_LIMIT, MEDIA_LIBRARY_THUMB_WIDTH, mediaLibraryKindForAsset, mediaLibraryPageToMarkdown, } from './asset.js';
|
|
12
12
|
export { contentfulBannerRest } from './banner.js';
|
|
13
13
|
export { getBreadcrumbLookup, } from './breadcrumb.js';
|
|
14
14
|
export { contentfulAnyEntryRest, contentfulComponentRest, } from './componentPreview.js';
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,gBAAgB,EAChB,sCAAsC,GAGvC,MAAM,sBAAsB,CAAC;AAC9B,yBAAyB;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAgC,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,gBAAgB,EAChB,sCAAsC,GAGvC,MAAM,sBAAsB,CAAC;AAC9B,yBAAyB;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAgC,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EAIzB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAGL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,UAAU;AACV,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,wDAAwD;AACxD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,qBAAqB;AACrB,OAAO,EACL,yBAAyB,EACzB,qCAAqC,EACrC,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,gCAAgC,EAChC,aAAa,EACb,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAA2B,MAAM,UAAU,CAAC;AACzE,UAAU;AACV,OAAO,EAEL,mBAAmB,EAMnB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,mBAAmB;AACnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,UAAU;AACV,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,EACnC,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAwB,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAA4B,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAyB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CMS media library — list all space assets/entries for cms-dev inventory pages.
|
|
3
|
+
*/
|
|
4
|
+
import { isMediaLibraryKind, MEDIA_LIBRARY_KINDS, type MediaLibraryItem, type MediaLibraryKind, type MediaLibraryPage } from '@se-studio/core-data-types';
|
|
5
|
+
import { type ContentfulAssetResponse, type ContentfulResponse } from '../client';
|
|
6
|
+
import type { ContentfulConfig, FetchOptions } from '../types';
|
|
7
|
+
export { isMediaLibraryKind, MEDIA_LIBRARY_KINDS, type MediaLibraryItem, type MediaLibraryKind, type MediaLibraryPage, };
|
|
8
|
+
export declare const MEDIA_LIBRARY_DEFAULT_LIMIT = 50;
|
|
9
|
+
export declare const MEDIA_LIBRARY_MAX_LIMIT = 100;
|
|
10
|
+
export declare const MEDIA_LIBRARY_THUMB_WIDTH = 320;
|
|
11
|
+
export declare function clampMediaLibraryLimit(limit: number | undefined): number;
|
|
12
|
+
export declare function clampMediaLibraryPage(page: number | undefined): number;
|
|
13
|
+
/**
|
|
14
|
+
* True when an asset looks like a Lottie / DotLottie animation source.
|
|
15
|
+
* Non-Lottie JSON may still match application/json (shown as possible animations).
|
|
16
|
+
*/
|
|
17
|
+
export declare function isAnimationAsset(contentType: string | null | undefined, fileName: string | null | undefined): boolean;
|
|
18
|
+
export declare function mediaLibraryKindForAsset(contentType: string | null | undefined, fileName: string | null | undefined): Exclude<MediaLibraryKind, 'external-videos'> | null;
|
|
19
|
+
/**
|
|
20
|
+
* Build a Contentful Images API thumbnail URL. Only for images.ctfassets.net hosts.
|
|
21
|
+
*/
|
|
22
|
+
export declare function buildAssetThumbUrl(rawUrl: string | null | undefined, width?: number): string | null;
|
|
23
|
+
export declare function assetToMediaLibraryItem(asset: ContentfulAssetResponse, kind: Exclude<MediaLibraryKind, 'external-videos'>): MediaLibraryItem;
|
|
24
|
+
export type ContentfulAssetsPageOptions = {
|
|
25
|
+
preview?: boolean;
|
|
26
|
+
limit?: number;
|
|
27
|
+
skip?: number;
|
|
28
|
+
/** Contentful mimetype_group: image | video | … */
|
|
29
|
+
mimetypeGroup?: string;
|
|
30
|
+
order?: string;
|
|
31
|
+
fetchOptions?: Partial<FetchOptions>;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* One page of Contentful assets (CDA/CPA `/assets`).
|
|
35
|
+
*/
|
|
36
|
+
export declare function contentfulAssetsPageRest(config: ContentfulConfig, options?: ContentfulAssetsPageOptions): Promise<ContentfulResponse<ContentfulAssetResponse>>;
|
|
37
|
+
/**
|
|
38
|
+
* List one page of the media library for a given kind.
|
|
39
|
+
*/
|
|
40
|
+
export declare function listMediaLibraryPage(config: ContentfulConfig, kind: MediaLibraryKind, options?: {
|
|
41
|
+
page?: number;
|
|
42
|
+
limit?: number;
|
|
43
|
+
preview?: boolean;
|
|
44
|
+
fetchOptions?: Partial<FetchOptions>;
|
|
45
|
+
}): Promise<MediaLibraryPage>;
|
|
46
|
+
/** Exported for unit tests — scan all assets, filter animations, slice page. */
|
|
47
|
+
export declare function listAnimationsPage(config: ContentfulConfig, opts: {
|
|
48
|
+
page: number;
|
|
49
|
+
limit: number;
|
|
50
|
+
skip: number;
|
|
51
|
+
preview: boolean;
|
|
52
|
+
generatedAt: string;
|
|
53
|
+
fetchOptions?: Partial<FetchOptions>;
|
|
54
|
+
}): Promise<MediaLibraryPage>;
|
|
55
|
+
/**
|
|
56
|
+
* Render a media library page as Markdown for agents.
|
|
57
|
+
*/
|
|
58
|
+
export declare function mediaLibraryPageToMarkdown(page: MediaLibraryPage): string;
|
|
59
|
+
//# sourceMappingURL=media-library.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-library.d.ts","sourceRoot":"","sources":["../../src/api/media-library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CMS media library — list all space assets/entries for cms-dev inventory pages.
|
|
3
|
+
*/
|
|
4
|
+
import { isMediaLibraryKind, MEDIA_LIBRARY_KINDS, } from '@se-studio/core-data-types';
|
|
5
|
+
import { getContentfulClient, } from '../client.js';
|
|
6
|
+
export { isMediaLibraryKind, MEDIA_LIBRARY_KINDS, };
|
|
7
|
+
export const MEDIA_LIBRARY_DEFAULT_LIMIT = 50;
|
|
8
|
+
export const MEDIA_LIBRARY_MAX_LIMIT = 100;
|
|
9
|
+
export const MEDIA_LIBRARY_THUMB_WIDTH = 320;
|
|
10
|
+
const DEFAULT_ORDER = '-sys.updatedAt';
|
|
11
|
+
const CACHE_TAG = 'cms-media-library';
|
|
12
|
+
const DEFAULT_REVALIDATE = 300;
|
|
13
|
+
/** Contentful max assets per request. */
|
|
14
|
+
const ANIMATION_SCAN_PAGE_SIZE = 1000;
|
|
15
|
+
/** Safety only — 100 × 1000 = 100k assets. Beyond this, set truncated. */
|
|
16
|
+
const ANIMATION_SCAN_MAX_PAGES = 100;
|
|
17
|
+
export function clampMediaLibraryLimit(limit) {
|
|
18
|
+
if (limit == null || Number.isNaN(limit) || limit < 1) {
|
|
19
|
+
return MEDIA_LIBRARY_DEFAULT_LIMIT;
|
|
20
|
+
}
|
|
21
|
+
return Math.min(Math.floor(limit), MEDIA_LIBRARY_MAX_LIMIT);
|
|
22
|
+
}
|
|
23
|
+
export function clampMediaLibraryPage(page) {
|
|
24
|
+
if (page == null || Number.isNaN(page) || page < 1) {
|
|
25
|
+
return 1;
|
|
26
|
+
}
|
|
27
|
+
return Math.floor(page);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* True when an asset looks like a Lottie / DotLottie animation source.
|
|
31
|
+
* Non-Lottie JSON may still match application/json (shown as possible animations).
|
|
32
|
+
*/
|
|
33
|
+
export function isAnimationAsset(contentType, fileName) {
|
|
34
|
+
const name = (fileName ?? '').toLowerCase();
|
|
35
|
+
if (name.endsWith('.lottie'))
|
|
36
|
+
return true;
|
|
37
|
+
// Exclude npm package manifests that sometimes land in media spaces
|
|
38
|
+
if (name === 'package.json' || name.endsWith('package-lock.json')) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
const mime = (contentType ?? '').toLowerCase();
|
|
42
|
+
if (mime === 'application/json')
|
|
43
|
+
return true;
|
|
44
|
+
if (name.endsWith('.json') &&
|
|
45
|
+
(mime === '' || mime === 'text/plain' || mime.startsWith('application/'))) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
export function mediaLibraryKindForAsset(contentType, fileName) {
|
|
51
|
+
const mime = (contentType ?? '').toLowerCase();
|
|
52
|
+
if (mime.startsWith('image/'))
|
|
53
|
+
return 'images';
|
|
54
|
+
if (mime.startsWith('video/'))
|
|
55
|
+
return 'videos';
|
|
56
|
+
if (isAnimationAsset(contentType, fileName))
|
|
57
|
+
return 'animations';
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Build a Contentful Images API thumbnail URL. Only for images.ctfassets.net hosts.
|
|
62
|
+
*/
|
|
63
|
+
export function buildAssetThumbUrl(rawUrl, width = MEDIA_LIBRARY_THUMB_WIDTH) {
|
|
64
|
+
if (!rawUrl)
|
|
65
|
+
return null;
|
|
66
|
+
const absolute = rawUrl.startsWith('//') ? `https:${rawUrl}` : rawUrl;
|
|
67
|
+
let parsed;
|
|
68
|
+
try {
|
|
69
|
+
parsed = new URL(absolute);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
if (!parsed.hostname.endsWith('ctfassets.net')) {
|
|
75
|
+
return absolute;
|
|
76
|
+
}
|
|
77
|
+
// Images API only applies to images.ctfassets.net
|
|
78
|
+
if (!parsed.hostname.startsWith('images.')) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
parsed.searchParams.set('w', String(width));
|
|
82
|
+
parsed.searchParams.set('h', String(width));
|
|
83
|
+
parsed.searchParams.set('fit', 'fill');
|
|
84
|
+
parsed.searchParams.set('f', 'faces');
|
|
85
|
+
parsed.searchParams.set('q', '75');
|
|
86
|
+
return parsed.toString();
|
|
87
|
+
}
|
|
88
|
+
function normalizeAssetUrl(url) {
|
|
89
|
+
if (!url)
|
|
90
|
+
return null;
|
|
91
|
+
return url.startsWith('//') ? `https:${url}` : url;
|
|
92
|
+
}
|
|
93
|
+
export function assetToMediaLibraryItem(asset, kind) {
|
|
94
|
+
const file = asset.fields?.file;
|
|
95
|
+
const contentType = file?.contentType ?? null;
|
|
96
|
+
const fileName = file?.fileName ?? null;
|
|
97
|
+
const url = normalizeAssetUrl(file?.url);
|
|
98
|
+
const width = file?.details?.image?.width ?? null;
|
|
99
|
+
const height = file?.details?.image?.height ?? null;
|
|
100
|
+
const sizeBytes = file?.details?.size ?? null;
|
|
101
|
+
return {
|
|
102
|
+
kind,
|
|
103
|
+
id: asset.sys.id,
|
|
104
|
+
title: asset.fields?.title ?? null,
|
|
105
|
+
fileName,
|
|
106
|
+
description: asset.fields?.description ?? null,
|
|
107
|
+
contentType,
|
|
108
|
+
url,
|
|
109
|
+
thumbUrl: kind === 'images' ? buildAssetThumbUrl(url) : null,
|
|
110
|
+
width,
|
|
111
|
+
height,
|
|
112
|
+
sizeBytes,
|
|
113
|
+
updatedAt: asset.sys.updatedAt ?? null,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function listFetchOptions(preview, options) {
|
|
117
|
+
// Preview drafts must not stick in the Next Data Cache for minutes without webhook tags.
|
|
118
|
+
const cache = options?.cache ?? (preview ? 'no-store' : 'force-cache');
|
|
119
|
+
return {
|
|
120
|
+
preview,
|
|
121
|
+
cache,
|
|
122
|
+
next: {
|
|
123
|
+
revalidate: options?.next?.revalidate ?? (preview ? false : DEFAULT_REVALIDATE),
|
|
124
|
+
tags: [CACHE_TAG, ...(options?.next?.tags ?? [])],
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* One page of Contentful assets (CDA/CPA `/assets`).
|
|
130
|
+
*/
|
|
131
|
+
export async function contentfulAssetsPageRest(config, options = {}) {
|
|
132
|
+
const preview = options.preview ?? true;
|
|
133
|
+
const client = getContentfulClient(config, preview);
|
|
134
|
+
const limit = options.limit ?? MEDIA_LIBRARY_DEFAULT_LIMIT;
|
|
135
|
+
const skip = options.skip ?? 0;
|
|
136
|
+
const query = {
|
|
137
|
+
limit,
|
|
138
|
+
skip,
|
|
139
|
+
order: options.order ?? DEFAULT_ORDER,
|
|
140
|
+
};
|
|
141
|
+
if (options.mimetypeGroup) {
|
|
142
|
+
query.mimetype_group = options.mimetypeGroup;
|
|
143
|
+
}
|
|
144
|
+
return client.getAssets(query, listFetchOptions(preview, options.fetchOptions));
|
|
145
|
+
}
|
|
146
|
+
function assetMapFromIncludes(includes) {
|
|
147
|
+
const map = new Map();
|
|
148
|
+
for (const asset of includes?.Asset ?? []) {
|
|
149
|
+
if (asset?.sys?.id) {
|
|
150
|
+
map.set(asset.sys.id, asset);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return map;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* List one page of the media library for a given kind.
|
|
157
|
+
*/
|
|
158
|
+
export async function listMediaLibraryPage(config, kind, options = {}) {
|
|
159
|
+
const page = clampMediaLibraryPage(options.page);
|
|
160
|
+
const limit = clampMediaLibraryLimit(options.limit);
|
|
161
|
+
const preview = options.preview ?? true;
|
|
162
|
+
const skip = (page - 1) * limit;
|
|
163
|
+
const generatedAt = new Date().toISOString();
|
|
164
|
+
if (kind === 'external-videos') {
|
|
165
|
+
return listExternalVideosPage(config, {
|
|
166
|
+
page,
|
|
167
|
+
limit,
|
|
168
|
+
skip,
|
|
169
|
+
preview,
|
|
170
|
+
generatedAt,
|
|
171
|
+
fetchOptions: options.fetchOptions,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
if (kind === 'images' || kind === 'videos') {
|
|
175
|
+
const mimetypeGroup = kind === 'images' ? 'image' : 'video';
|
|
176
|
+
const response = await contentfulAssetsPageRest(config, {
|
|
177
|
+
preview,
|
|
178
|
+
limit,
|
|
179
|
+
skip,
|
|
180
|
+
mimetypeGroup,
|
|
181
|
+
fetchOptions: options.fetchOptions,
|
|
182
|
+
});
|
|
183
|
+
const items = response.items.map((asset) => assetToMediaLibraryItem(asset, kind));
|
|
184
|
+
return {
|
|
185
|
+
kind,
|
|
186
|
+
page,
|
|
187
|
+
limit,
|
|
188
|
+
total: response.total,
|
|
189
|
+
items,
|
|
190
|
+
generatedAt,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
// animations — scan all asset pages and filter (no reliable mimetype_group)
|
|
194
|
+
return listAnimationsPage(config, {
|
|
195
|
+
page,
|
|
196
|
+
limit,
|
|
197
|
+
skip,
|
|
198
|
+
preview,
|
|
199
|
+
generatedAt,
|
|
200
|
+
fetchOptions: options.fetchOptions,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
/** Exported for unit tests — scan all assets, filter animations, slice page. */
|
|
204
|
+
export async function listAnimationsPage(config, opts) {
|
|
205
|
+
const matched = [];
|
|
206
|
+
let scanned = 0;
|
|
207
|
+
let totalAssets = 0;
|
|
208
|
+
let truncated = false;
|
|
209
|
+
for (let p = 0; p < ANIMATION_SCAN_MAX_PAGES; p++) {
|
|
210
|
+
const response = await contentfulAssetsPageRest(config, {
|
|
211
|
+
preview: opts.preview,
|
|
212
|
+
limit: ANIMATION_SCAN_PAGE_SIZE,
|
|
213
|
+
skip: p * ANIMATION_SCAN_PAGE_SIZE,
|
|
214
|
+
fetchOptions: opts.fetchOptions,
|
|
215
|
+
});
|
|
216
|
+
totalAssets = response.total;
|
|
217
|
+
if (response.items.length === 0)
|
|
218
|
+
break;
|
|
219
|
+
for (const asset of response.items) {
|
|
220
|
+
const file = asset.fields?.file;
|
|
221
|
+
if (!isAnimationAsset(file?.contentType, file?.fileName))
|
|
222
|
+
continue;
|
|
223
|
+
matched.push(assetToMediaLibraryItem(asset, 'animations'));
|
|
224
|
+
}
|
|
225
|
+
scanned += response.items.length;
|
|
226
|
+
if (scanned >= totalAssets)
|
|
227
|
+
break;
|
|
228
|
+
// Hit safety cap without finishing the space
|
|
229
|
+
if (p === ANIMATION_SCAN_MAX_PAGES - 1 && scanned < totalAssets) {
|
|
230
|
+
truncated = true;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
const items = matched.slice(opts.skip, opts.skip + opts.limit);
|
|
234
|
+
return {
|
|
235
|
+
kind: 'animations',
|
|
236
|
+
page: opts.page,
|
|
237
|
+
limit: opts.limit,
|
|
238
|
+
total: matched.length,
|
|
239
|
+
items,
|
|
240
|
+
generatedAt: opts.generatedAt,
|
|
241
|
+
...(truncated ? { truncated: true } : {}),
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
async function listExternalVideosPage(config, opts) {
|
|
245
|
+
const client = getContentfulClient(config, opts.preview);
|
|
246
|
+
const response = await client.getEntries({
|
|
247
|
+
content_type: 'externalVideo',
|
|
248
|
+
limit: opts.limit,
|
|
249
|
+
skip: opts.skip,
|
|
250
|
+
order: DEFAULT_ORDER,
|
|
251
|
+
include: 1,
|
|
252
|
+
}, listFetchOptions(opts.preview, opts.fetchOptions));
|
|
253
|
+
const assets = assetMapFromIncludes(response.includes);
|
|
254
|
+
const items = response.items.map((entry) => {
|
|
255
|
+
const posterId = entry.fields?.posterImage?.sys?.id;
|
|
256
|
+
const poster = posterId ? assets.get(posterId) : undefined;
|
|
257
|
+
const posterFile = poster?.fields?.file;
|
|
258
|
+
const posterUrl = normalizeAssetUrl(posterFile?.url);
|
|
259
|
+
return {
|
|
260
|
+
kind: 'external-videos',
|
|
261
|
+
id: entry.sys.id,
|
|
262
|
+
title: entry.fields?.name ?? null,
|
|
263
|
+
fileName: null,
|
|
264
|
+
description: null,
|
|
265
|
+
contentType: 'externalVideo',
|
|
266
|
+
url: entry.fields?.url ?? null,
|
|
267
|
+
thumbUrl: buildAssetThumbUrl(posterUrl),
|
|
268
|
+
width: posterFile?.details?.image?.width ?? null,
|
|
269
|
+
height: posterFile?.details?.image?.height ?? null,
|
|
270
|
+
sizeBytes: null,
|
|
271
|
+
updatedAt: entry.sys.updatedAt ?? null,
|
|
272
|
+
externalUrl: entry.fields?.url ?? null,
|
|
273
|
+
};
|
|
274
|
+
});
|
|
275
|
+
return {
|
|
276
|
+
kind: 'external-videos',
|
|
277
|
+
page: opts.page,
|
|
278
|
+
limit: opts.limit,
|
|
279
|
+
total: response.total,
|
|
280
|
+
items,
|
|
281
|
+
generatedAt: opts.generatedAt,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Render a media library page as Markdown for agents.
|
|
286
|
+
*/
|
|
287
|
+
export function mediaLibraryPageToMarkdown(page) {
|
|
288
|
+
const totalPages = Math.max(1, Math.ceil(page.total / page.limit) || 1);
|
|
289
|
+
const lines = [
|
|
290
|
+
`# CMS media — ${page.kind} (page ${page.page}/${totalPages}, total ${page.total})`,
|
|
291
|
+
'',
|
|
292
|
+
`Generated: ${page.generatedAt}`,
|
|
293
|
+
];
|
|
294
|
+
if (page.truncated) {
|
|
295
|
+
lines.push('');
|
|
296
|
+
lines.push('> **truncated:** asset scan hit the safety cap; `total` may under-count animations.');
|
|
297
|
+
}
|
|
298
|
+
lines.push('', '| id | title | fileName | description | dimensions | contentType | url |', '|----|-------|----------|-------------|------------|-------------|-----|');
|
|
299
|
+
for (const item of page.items) {
|
|
300
|
+
const dims = item.width != null && item.height != null ? `${item.width}×${item.height}` : '—';
|
|
301
|
+
lines.push(`| ${escapeMdCell(item.id)} | ${escapeMdCell(item.title)} | ${escapeMdCell(item.fileName)} | ${escapeMdCell(item.description)} | ${dims} | ${escapeMdCell(item.contentType)} | ${escapeMdCell(item.externalUrl ?? item.url)} |`);
|
|
302
|
+
}
|
|
303
|
+
if (page.items.length === 0) {
|
|
304
|
+
lines.push('');
|
|
305
|
+
lines.push('_No items on this page._');
|
|
306
|
+
}
|
|
307
|
+
lines.push('');
|
|
308
|
+
return lines.join('\n');
|
|
309
|
+
}
|
|
310
|
+
function escapeMdCell(value) {
|
|
311
|
+
if (value == null || value === '')
|
|
312
|
+
return '—';
|
|
313
|
+
return value.replace(/\|/g, '\\|').replace(/\r?\n/g, ' ').trim();
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=media-library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-library.js","sourceRoot":"","sources":["../../src/api/media-library.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -82,12 +82,12 @@ export declare class ContentfulFetchClient {
|
|
|
82
82
|
*/
|
|
83
83
|
getEntries<T = any>(query: ContentfulQuery, options?: FetchOptions): Promise<ContentfulResponse<T>>;
|
|
84
84
|
/**
|
|
85
|
-
* Fetches a
|
|
86
|
-
* and
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
*
|
|
85
|
+
* Fetches a page of assets from Contentful (`GET /assets`) with rate limiting
|
|
86
|
+
* and retry on 429.
|
|
87
|
+
*/
|
|
88
|
+
getAssets(query?: ContentfulQuery, options?: FetchOptions): Promise<ContentfulResponse<ContentfulAssetResponse>>;
|
|
89
|
+
/**
|
|
90
|
+
* Fetches a single asset by ID. Returns null for 404.
|
|
91
91
|
*/
|
|
92
92
|
getAsset(assetId: string, options?: FetchOptions): Promise<ContentfulAssetResponse | null>;
|
|
93
93
|
}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAGtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAgB3E;;;GAGG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,GAAG,EAAE;QACH,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,SAAS,OAAO,YAAY,EAAE,iBAAiB,GACnD,KAAK,CAAC,OAAO,YAAY,EAAE,KAAK,CAAC,CAAC,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAC,GACvE,CAAC,EAAE,CAAC;IACR,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;QACd,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE;gBACN,KAAK,EAAE,MAAM,CAAC;gBACd,MAAM,EAAE,MAAM,CAAC;aAChB,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE;QACH,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,OAAO,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAwFD;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;gBAExC,MAAM,EAAE,gBAAgB,EAAE,OAAO,UAAQ;IAWrD;;;;;;;;;OASG;IACG,UAAU,CAAC,CAAC,GAAG,GAAG,EACtB,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAqEjC
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -150,12 +150,60 @@ export class ContentfulFetchClient {
|
|
|
150
150
|
throw new ContentfulError('Max retries exceeded', 500);
|
|
151
151
|
}
|
|
152
152
|
/**
|
|
153
|
-
* Fetches a
|
|
154
|
-
* and
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
153
|
+
* Fetches a page of assets from Contentful (`GET /assets`) with rate limiting
|
|
154
|
+
* and retry on 429.
|
|
155
|
+
*/
|
|
156
|
+
async getAssets(query = {}, options) {
|
|
157
|
+
const queryString = buildQueryString(query);
|
|
158
|
+
const url = `${this.baseUrl}/assets?${queryString}`;
|
|
159
|
+
const fetchOptions = {
|
|
160
|
+
headers: {
|
|
161
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
162
|
+
'Content-Type': 'application/json',
|
|
163
|
+
},
|
|
164
|
+
...(options?.cache && { cache: options.cache }),
|
|
165
|
+
...(options?.next && { next: options.next }),
|
|
166
|
+
};
|
|
167
|
+
for (let attempt = 0; attempt <= this.retryConfig.maxRetries; attempt++) {
|
|
168
|
+
try {
|
|
169
|
+
await this.rateLimiter.acquire();
|
|
170
|
+
if (process.env.LOG_CMS_FETCH) {
|
|
171
|
+
console.log(`[CMS fetch] ${url}`);
|
|
172
|
+
}
|
|
173
|
+
const fetchStart = performance.now();
|
|
174
|
+
const response = await fetch(url, fetchOptions);
|
|
175
|
+
const fetchMs = Math.round(performance.now() - fetchStart);
|
|
176
|
+
if (response.ok) {
|
|
177
|
+
const { bytes, text } = await readResponseBodyWithSize(response);
|
|
178
|
+
logCmsQuery({ url, bytes, ms: fetchMs });
|
|
179
|
+
return JSON.parse(text);
|
|
180
|
+
}
|
|
181
|
+
if (response.status === 429 && attempt < this.retryConfig.maxRetries) {
|
|
182
|
+
const retryAfter = parseRetryAfter(response);
|
|
183
|
+
const delay = calculateBackoffDelay(attempt, this.retryConfig, retryAfter);
|
|
184
|
+
if (process.env.LOG_CMS)
|
|
185
|
+
console.warn(`[Contentful] Rate limited (429), retrying in ${delay}ms (attempt ${attempt + 1}/${this.retryConfig.maxRetries}). ` +
|
|
186
|
+
`Queue: ${this.rateLimiter.getQueueLength()} waiting. ` +
|
|
187
|
+
`API: ${this.isPreview ? 'preview' : 'delivery'}`);
|
|
188
|
+
const pauseSeconds = getRateLimitPauseSeconds(retryAfter, this.isPreview);
|
|
189
|
+
this.rateLimiter.pause(pauseSeconds);
|
|
190
|
+
await sleep(delay);
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
throw await parseErrorResponse(response);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (error instanceof ContentfulError) {
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
console.error('[Contentful] Unexpected error in assets request', error);
|
|
200
|
+
throw new ContentfulError('Unexpected error in assets request', 500);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
throw new ContentfulError('Max retries exceeded', 500);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Fetches a single asset by ID. Returns null for 404.
|
|
159
207
|
*/
|
|
160
208
|
async getAsset(assetId, options) {
|
|
161
209
|
const url = `${this.baseUrl}/assets/${assetId}`;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,wBAAwB,EACxB,cAAc,GAEf,MAAM,eAAe,CAAC;AAmEvB;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAsB;IAC9C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAErC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,QAAkB;IACzC,MAAM,gBAAgB,GACpB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9F,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IACnD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,QAAkB;IAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;IACnC,IAAI,SAAc,CAAC;IAEnB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,EAAE,OAAO,IAAI,yBAAyB,UAAU,EAAE,CAAC;IAE5E,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,GAAG;YACN,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE1C,KAAK,GAAG;YACN,OAAO,IAAI,kBAAkB,CAC3B,SAAS,EAAE,GAAG,EAAE,EAAE,IAAI,SAAS,EAC/B,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CACrC,CAAC;QAEJ,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,wCAAwC;YACxC,MAAM,gBAAgB,GACpB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC9F,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC;QAED,KAAK,GAAG;YACN,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEjD;YACE,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AASD;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACf,OAAO,CAAS;IAChB,WAAW,CAAS;IACpB,WAAW,CAAc;IACzB,SAAS,CAAU;IACnB,WAAW,CAAwB;IAEpD,YAAY,MAAwB,EAAE,OAAO,GAAG,KAAK;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC;QAEnD,IAAI,CAAC,OAAO,GAAG,WAAW,IAAI,WAAW,MAAM,CAAC,OAAO,iBAAiB,WAAW,EAAE,CAAC;QACtF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,UAAU,CACd,KAAsB,EACtB,OAAsB;QAEtB,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,YAAY,WAAW,EAAE,CAAC;QAErD,MAAM,YAAY,GAAoB;YACpC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;gBAC3C,cAAc,EAAE,kBAAkB;aACnC;YACD,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;SAC7C,CAAC;QAEF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,8CAA8C;gBAC9C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAEjC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;gBACpC,CAAC;gBAED,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC;gBAE3D,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;oBACjE,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC;gBACnD,CAAC;gBAED,kDAAkD;gBAClD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;oBACrE,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC7C,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;oBAE3E,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO;wBACrB,OAAO,CAAC,IAAI,CACV,gDAAgD,KAAK,eAAe,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK;4BACjH,UAAU,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,YAAY;4BACvD,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CACpD,CAAC;oBAEJ,4DAA4D;oBAC5D,MAAM,YAAY,GAAG,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC1E,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAErC,oCAAoC;oBACpC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,6DAA6D;gBAC7D,MAAM,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;oBACrC,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;gBACjE,MAAM,IAAI,eAAe,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,0CAA0C;QAC1C,MAAM,IAAI,eAAe,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CACb,QAAyB,EAAE,EAC3B,OAAsB;QAEtB,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,WAAW,WAAW,EAAE,CAAC;QAEpD,MAAM,YAAY,GAAoB;YACpC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;gBAC3C,cAAc,EAAE,kBAAkB;aACnC;YACD,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;SAC7C,CAAC;QAEF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAEjC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;gBACpC,CAAC;gBAED,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC;gBAE3D,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;oBACjE,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgD,CAAC;gBACzE,CAAC;gBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;oBACrE,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC7C,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;oBAE3E,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO;wBACrB,OAAO,CAAC,IAAI,CACV,gDAAgD,KAAK,eAAe,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK;4BACjH,UAAU,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,YAAY;4BACvD,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CACpD,CAAC;oBAEJ,MAAM,YAAY,GAAG,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC1E,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBACrC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;oBACrC,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;gBACxE,MAAM,IAAI,eAAe,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,eAAe,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,OAAsB;QACpD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,WAAW,OAAO,EAAE,CAAC;QAEhD,MAAM,YAAY,GAAoB;YACpC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;gBAC3C,cAAc,EAAE,kBAAkB;aACnC;YACD,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;SAC7C,CAAC;QAEF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,8CAA8C;gBAC9C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAEjC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;gBACpC,CAAC;gBAED,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC;gBAE3D,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;oBACjE,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;gBACrD,CAAC;gBAED,wCAAwC;gBACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,kDAAkD;gBAClD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;oBACrE,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC7C,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;oBAE3E,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO;wBACrB,OAAO,CAAC,IAAI,CACV,gDAAgD,KAAK,eAAe,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK;4BACjH,UAAU,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,YAAY;4BACvD,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CACpD,CAAC;oBAEJ,4DAA4D;oBAC5D,MAAM,YAAY,GAAG,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC1E,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAErC,oCAAoC;oBACpC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,6DAA6D;gBAC7D,MAAM,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;oBACrC,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;gBACvE,MAAM,IAAI,eAAe,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,eAAe,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAwB;IAC7D,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAwB;IACpE,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAwB,EACxB,OAAgB;IAEhB,OAAO,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC1F,CAAC"}
|
|
@@ -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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"}
|
|
@@ -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/dist/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* );
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
export { type AnyEntryRestResult, type ArticleTypeFetchOptions, type BreadcrumbLookup, type BreadcrumbLookupEntry, type BuiltinPreviewContentType, buildFetchOptions, buildFlatNavigationCacheOptions, type CmsContentType, type CmsFetchProfile, type ConverterResolutionScope, contentfulAllArticleLinks, contentfulAllArticleLinksForIntegrity, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, contentfulAnyEntryRest, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries, contentfulAssetRest, contentfulBannerRest, contentfulComponentRest, contentfulCustomTypeRest, contentfulDocumentsRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulRedirectsRest, contentfulTagRest, contentfulTagSitemapEntries, contentfulTagTypeRest, contentfulTemplateRest, coreGetContentfulConfig, createBaseConverterContext, createSitemapProvider, type DefaultChainModifier, FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, filterRelatedArticles, getAllSitemapEntries, getBreadcrumbLookup, getDefaultInclude, getListingLinkFetchParams, getNavigation, getPreviewEntryInfo, getResolutionScope, getResolutionScopeFromOptions, type IContentfulRichText, type IFetchedTemplate, type ISitemapEntry, isBrowserViewable, LISTING_RESOLUTION_SCOPE, PAGE_CONTENT_SCOPE, PAGE_RESOLUTION_SCOPE, type PersonFetchOptions, type PreviewContentType, type PreviewEntryInclude, type PreviewEntryInfo, type PreviewEntryResolveInput, type PreviewEntryResolver, type RelatedArticlesOptions, resolveIncludeDepth, type SitemapChangeFrequency, type SitemapConfig, type SitemapContentTypeConfig, type SitemapEntryProvider, slugPreviewResolver, type TagFetchOptions, type TagTypeFetchOptions, withFlatNavRequestCache, } from './api';
|
|
20
|
+
export { type AnyEntryRestResult, type ArticleTypeFetchOptions, assetToMediaLibraryItem, type BreadcrumbLookup, type BreadcrumbLookupEntry, type BuiltinPreviewContentType, buildAssetThumbUrl, buildFetchOptions, buildFlatNavigationCacheOptions, type CmsContentType, type CmsFetchProfile, type ConverterResolutionScope, clampMediaLibraryLimit, clampMediaLibraryPage, contentfulAllArticleLinks, contentfulAllArticleLinksForIntegrity, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, contentfulAnyEntryRest, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries, contentfulAssetRest, contentfulAssetsPageRest, contentfulBannerRest, contentfulComponentRest, contentfulCustomTypeRest, contentfulDocumentsRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulRedirectsRest, contentfulTagRest, contentfulTagSitemapEntries, contentfulTagTypeRest, contentfulTemplateRest, coreGetContentfulConfig, createBaseConverterContext, createSitemapProvider, type DefaultChainModifier, FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, filterRelatedArticles, getAllSitemapEntries, getBreadcrumbLookup, getDefaultInclude, getListingLinkFetchParams, getNavigation, getPreviewEntryInfo, getResolutionScope, getResolutionScopeFromOptions, type IContentfulRichText, type IFetchedTemplate, type ISitemapEntry, isAnimationAsset, isBrowserViewable, isMediaLibraryKind, LISTING_RESOLUTION_SCOPE, listAnimationsPage, listMediaLibraryPage, MEDIA_LIBRARY_DEFAULT_LIMIT, MEDIA_LIBRARY_KINDS, MEDIA_LIBRARY_MAX_LIMIT, MEDIA_LIBRARY_THUMB_WIDTH, type MediaLibraryItem, type MediaLibraryKind, type MediaLibraryPage, mediaLibraryKindForAsset, mediaLibraryPageToMarkdown, PAGE_CONTENT_SCOPE, PAGE_RESOLUTION_SCOPE, type PersonFetchOptions, type PreviewContentType, type PreviewEntryInclude, type PreviewEntryInfo, type PreviewEntryResolveInput, type PreviewEntryResolver, type RelatedArticlesOptions, resolveIncludeDepth, type SitemapChangeFrequency, type SitemapConfig, type SitemapContentTypeConfig, type SitemapEntryProvider, slugPreviewResolver, type TagFetchOptions, type TagTypeFetchOptions, withFlatNavRequestCache, } from './api';
|
|
21
21
|
export type { ContentfulFetchClient as ContentfulClient } from './client';
|
|
22
22
|
export { type ContentfulFetchClient, createContentfulClient, createContentfulPreviewClient, getContentfulClient, } from './client';
|
|
23
23
|
export type { ContentResolverFunction } from './converters';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAE5B,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAE1B,KAAK,yBAAyB,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,+BAA+B,EAC/B,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,qCAAqC,EACrC,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,mCAAmC,EACnC,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,mBAAmB,EACnB,gCAAgC,EAChC,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EAEb,mBAAmB,EACnB,kBAAkB,EAClB,6BAA6B,EAC7B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,uBAAuB,GACxB,MAAM,OAAO,CAAC;AAEf,YAAY,EAAE,qBAAqB,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE1E,OAAO,EACL,KAAK,qBAAqB,EAC1B,sBAAsB,EACtB,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EACL,KAAK,oBAAoB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,WAAW,EACX,gCAAgC,EAChC,sBAAsB,EACtB,4BAA4B,EAC5B,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,OAAO,EACP,UAAU,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,WAAW,EACX,SAAS,EACT,YAAY,EAEZ,sBAAsB,EACtB,yBAAyB,EACzB,OAAO,EACP,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa,EAEb,OAAO,EACP,cAAc,EACd,SAAS,EACT,OAAO,EACP,cAAc,EACd,SAAS,EACT,wCAAwC,EACxC,4CAA4C,EAC5C,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,EACN,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iCAAiC,EACjC,KAAK,2BAA2B,GACjC,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,KAAK,sBAAsB,EAC3B,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,KAAK,kBAAkB,EACvB,cAAc,EACd,WAAW,EACX,QAAQ,EACR,KAAK,mBAAmB,EACxB,eAAe,EACf,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAChB,sCAAsC,EACtC,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
20
|
// API functions
|
|
21
|
-
export {
|
|
22
|
-
// Asset/download
|
|
23
|
-
contentfulAssetRest, contentfulBannerRest, contentfulComponentRest, contentfulCustomTypeRest, contentfulDocumentsRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulRedirectsRest, contentfulTagRest, contentfulTagSitemapEntries, contentfulTagTypeRest, contentfulTemplateRest, coreGetContentfulConfig, createBaseConverterContext, createSitemapProvider, FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, filterRelatedArticles, getAllSitemapEntries, getBreadcrumbLookup, getDefaultInclude, getListingLinkFetchParams, getNavigation,
|
|
21
|
+
export {
|
|
22
|
+
// Asset/download + media library
|
|
23
|
+
assetToMediaLibraryItem, buildAssetThumbUrl, buildFetchOptions, buildFlatNavigationCacheOptions, clampMediaLibraryLimit, clampMediaLibraryPage, contentfulAllArticleLinks, contentfulAllArticleLinksForIntegrity, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, contentfulAnyEntryRest, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries, contentfulAssetRest, contentfulAssetsPageRest, contentfulBannerRest, contentfulComponentRest, contentfulCustomTypeRest, contentfulDocumentsRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulRedirectsRest, contentfulTagRest, contentfulTagSitemapEntries, contentfulTagTypeRest, contentfulTemplateRest, coreGetContentfulConfig, createBaseConverterContext, createSitemapProvider, FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, filterRelatedArticles, getAllSitemapEntries, getBreadcrumbLookup, getDefaultInclude, getListingLinkFetchParams, getNavigation,
|
|
24
24
|
// Preview
|
|
25
|
-
getPreviewEntryInfo, getResolutionScope, getResolutionScopeFromOptions, isBrowserViewable, LISTING_RESOLUTION_SCOPE, PAGE_CONTENT_SCOPE, PAGE_RESOLUTION_SCOPE, resolveIncludeDepth, slugPreviewResolver, withFlatNavRequestCache, } from './api/index.js';
|
|
25
|
+
getPreviewEntryInfo, getResolutionScope, getResolutionScopeFromOptions, isAnimationAsset, isBrowserViewable, isMediaLibraryKind, LISTING_RESOLUTION_SCOPE, listAnimationsPage, listMediaLibraryPage, MEDIA_LIBRARY_DEFAULT_LIMIT, MEDIA_LIBRARY_KINDS, MEDIA_LIBRARY_MAX_LIMIT, MEDIA_LIBRARY_THUMB_WIDTH, mediaLibraryKindForAsset, mediaLibraryPageToMarkdown, PAGE_CONTENT_SCOPE, PAGE_RESOLUTION_SCOPE, resolveIncludeDepth, slugPreviewResolver, withFlatNavRequestCache, } from './api/index.js';
|
|
26
26
|
// Client exports
|
|
27
27
|
export { createContentfulClient, createContentfulPreviewClient, getContentfulClient, } from './client.js';
|
|
28
28
|
// Converter exports
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,gBAAgB;AAChB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/docs/llms.md
CHANGED
|
@@ -41,9 +41,14 @@ import {
|
|
|
41
41
|
contentfulComponentRest,
|
|
42
42
|
contentfulCustomTypeRest,
|
|
43
43
|
contentfulAssetRest,
|
|
44
|
+
listMediaLibraryPage, // cms-dev media inventory (images/videos/animations/external-videos)
|
|
45
|
+
mediaLibraryPageToMarkdown,
|
|
44
46
|
contentfulAnyEntryRest, // generic fallback by entry ID
|
|
45
47
|
} from '@se-studio/contentful-rest-api';
|
|
46
48
|
|
|
49
|
+
// Media library page (Preview API by default) — thumbnails via buildAssetThumbUrl
|
|
50
|
+
// const media = await listMediaLibraryPage(config, 'images', { page: 1, limit: 50, preview: true });
|
|
51
|
+
|
|
47
52
|
// Fetch a page by slug
|
|
48
53
|
const page = await contentfulPageRest(config, 'home', {
|
|
49
54
|
preview: false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/contentful-rest-api",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.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.9.0"
|
|
65
66
|
},
|
|
66
67
|
"peerDependencies": {
|
|
67
68
|
"next": ">=15.5.0 <16"
|