@se-studio/contentful-rest-api 1.28.8 → 2.0.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/context.d.ts.map +1 -1
- package/dist/api/context.js +0 -2
- package/dist/api/context.js.map +1 -1
- package/dist/api/index.d.ts +0 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +0 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/listing-fetch-params.d.ts +2 -2
- package/dist/api/listing-fetch-params.d.ts.map +1 -1
- package/dist/api/listing-fetch-params.js +2 -2
- package/dist/api/listing-fetch-params.js.map +1 -1
- package/dist/api/named-download.d.ts +27 -0
- package/dist/api/named-download.d.ts.map +1 -0
- package/dist/api/named-download.js +111 -0
- package/dist/api/named-download.js.map +1 -0
- package/dist/api/preview.d.ts.map +1 -1
- package/dist/api/preview.js +13 -9
- package/dist/api/preview.js.map +1 -1
- package/dist/api/server-asset.d.ts +12 -0
- package/dist/api/server-asset.d.ts.map +1 -1
- package/dist/api/server-asset.js +91 -33
- package/dist/api/server-asset.js.map +1 -1
- package/dist/baseTypes/basePerson.d.ts +8 -0
- package/dist/baseTypes/basePerson.d.ts.map +1 -1
- package/dist/baseTypes/basePersonType.d.ts +64 -0
- package/dist/baseTypes/basePersonType.d.ts.map +1 -0
- package/dist/baseTypes/basePersonType.js +2 -0
- package/dist/baseTypes/basePersonType.js.map +1 -0
- package/dist/converters/helpers.d.ts +9 -6
- package/dist/converters/helpers.d.ts.map +1 -1
- package/dist/converters/helpers.js.map +1 -1
- package/dist/converters/index.d.ts +0 -1
- package/dist/converters/index.d.ts.map +1 -1
- package/dist/converters/index.js +0 -1
- package/dist/converters/index.js.map +1 -1
- package/dist/converters/link.d.ts.map +1 -1
- package/dist/converters/link.js +4 -1
- package/dist/converters/link.js.map +1 -1
- package/dist/converters/person.d.ts.map +1 -1
- package/dist/converters/person.js +47 -6
- package/dist/converters/person.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/revalidation/entry-handlers.d.ts.map +1 -1
- package/dist/revalidation/entry-handlers.js +9 -1
- package/dist/revalidation/entry-handlers.js.map +1 -1
- package/dist/revalidation/tags.d.ts +2 -0
- package/dist/revalidation/tags.d.ts.map +1 -1
- package/dist/revalidation/tags.js +5 -0
- package/dist/revalidation/tags.js.map +1 -1
- package/dist/revalidation/utils.d.ts.map +1 -1
- package/dist/revalidation/utils.js +4 -1
- package/dist/revalidation/utils.js.map +1 -1
- package/dist/revalidation/webhook-content-types.d.ts +1 -1
- package/dist/revalidation/webhook-content-types.d.ts.map +1 -1
- package/dist/revalidation/webhook-content-types.js +1 -0
- package/dist/revalidation/webhook-content-types.js.map +1 -1
- package/dist/routing/marketing-site-url-calculators.d.ts.map +1 -1
- package/dist/routing/marketing-site-url-calculators.js +1 -1
- package/dist/routing/marketing-site-url-calculators.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/docs/llms.md +13 -11
- package/package.json +5 -5
- package/dist/api/document.d.ts +0 -8
- package/dist/api/document.d.ts.map +0 -1
- package/dist/api/document.js +0 -84
- package/dist/api/document.js.map +0 -1
- package/dist/baseTypes/baseDocument.d.ts +0 -70
- package/dist/baseTypes/baseDocument.d.ts.map +0 -1
- package/dist/baseTypes/baseDocument.js +0 -2
- package/dist/baseTypes/baseDocument.js.map +0 -1
- package/dist/converters/document.d.ts +0 -14
- package/dist/converters/document.d.ts.map +0 -1
- package/dist/converters/document.js +0 -51
- package/dist/converters/document.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @se-studio/contentful-rest-api
|
|
2
2
|
|
|
3
|
+
## 2.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- f1e0e8c: Remove the unused document content-type API. A download link can opt into `/download/{filename}` with `urlCalculators.namedDownload` and `createNamedDownloadHandler`. Sites that do not set the calculator keep `/download/{assetId}/{filename}`.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [f1e0e8c]
|
|
12
|
+
- @se-studio/core-data-types@2.0.0
|
|
13
|
+
|
|
14
|
+
## 1.29.0
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- 0eb26d3: Add an optional person type. A person with a type uses that type's slug as the public path prefix. People with no type keep the site people path. A hidden person stays in an article byline as a name with no link. Schema entries linked on the person type are merged onto that person's profile, the same way an article type's schema entries are merged onto its articles.
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [0eb26d3]
|
|
23
|
+
- @se-studio/core-data-types@1.14.0
|
|
24
|
+
|
|
3
25
|
## 1.28.8
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/api/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/api/context.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,oBAAoB,EAKpB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAc/B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,cAAc,GAAG,oBAAoB,CAyC/F"}
|
package/dist/api/context.js
CHANGED
|
@@ -3,7 +3,6 @@ import { baseBannerConverter } from '../converters/banner.js';
|
|
|
3
3
|
import { baseCollectionConverter } from '../converters/collection.js';
|
|
4
4
|
import { baseComponentConverter } from '../converters/component.js';
|
|
5
5
|
import { baseCustomTypeConverter, baseCustomTypeLinkConverter } from '../converters/customType.js';
|
|
6
|
-
import { baseDocumentConverter } from '../converters/document.js';
|
|
7
6
|
import { baseExternalComponentConverter } from '../converters/externalComponent.js';
|
|
8
7
|
import { baseHtmlComponentConverter } from '../converters/htmlComponent.js';
|
|
9
8
|
import { baseLinkConverter } from '../converters/link.js';
|
|
@@ -62,7 +61,6 @@ export function createBaseConverterContext(urlCalculators) {
|
|
|
62
61
|
componentResolver: baseComponentConverter,
|
|
63
62
|
collectionResolver: baseCollectionConverter,
|
|
64
63
|
bannerResolver: baseBannerConverter,
|
|
65
|
-
documentResolver: baseDocumentConverter,
|
|
66
64
|
redirectResolver: baseRedirectConverter,
|
|
67
65
|
linkResolver,
|
|
68
66
|
contentResolver,
|
package/dist/api/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/api/context.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/api/context.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AASjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEvF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,0BAA0B,CAAC,cAA8B;IACvE,MAAM,YAAY,GAAoB,IAAI,GAAG,EAAE,CAAC;IAChD,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,qBAA6C,CAAC,CAAC;IACxE,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,wBAA8D,CAAC,CAAC;IAC5F,YAAY,CAAC,GAAG,CACd,aAAa,EACb,4BAAsE,CACvE,CAAC;IACF,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,oBAA4C,CAAC,CAAC;IACtE,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAA4D,CAAC,CAAC;IACzF,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,4BAAoD,CAAC,CAAC;IACtF,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAyC,CAAC,CAAC;IACpE,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,2BAAmD,CAAC,CAAC;IACpF,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,wBAAgD,CAAC,CAAC;IAE9E,MAAM,eAAe,GAAuB,IAAI,GAAG,EAAE,CAAC;IACtD,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,uBAAkD,CAAC,CAAC;IACtF,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,sBAAiD,CAAC,CAAC;IACpF,eAAe,CAAC,GAAG,CACjB,mBAAmB,EACnB,8BAAyD,CAC1D,CAAC;IACF,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,0BAAqD,CAAC,CAAC;IAE5F,OAAO;QACL,YAAY,EAAE,iBAAiB;QAC/B,sBAAsB,EAAE,2BAA2B;QACnD,eAAe,EAAE,oBAAoB;QACrC,mBAAmB,EAAE,wBAAwB;QAC7C,WAAW,EAAE,gBAAgB;QAC7B,eAAe,EAAE,oBAAoB;QACrC,cAAc,EAAE,mBAAmB;QACnC,kBAAkB,EAAE,uBAAuB;QAC3C,iBAAiB,EAAE,sBAAsB;QACzC,kBAAkB,EAAE,uBAAuB;QAC3C,cAAc,EAAE,mBAAmB;QACnC,gBAAgB,EAAE,qBAAqB;QACvC,YAAY;QACZ,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -14,7 +14,6 @@ export { type BreadcrumbLookup, type BreadcrumbLookupEntry, getBreadcrumbLookup,
|
|
|
14
14
|
export { type AnyEntryRestResult, contentfulAnyEntryRest, contentfulComponentRest, } from './componentPreview';
|
|
15
15
|
export { createBaseConverterContext } from './context';
|
|
16
16
|
export { contentfulCustomTypeRest } from './custom-type';
|
|
17
|
-
export { contentfulDocumentsRest } from './document';
|
|
18
17
|
export { ARTICLE_LINK_FIELDS, ARTICLE_LINK_FIELDS_LIGHT, ARTICLE_LISTING_FIELDS, buildFetchOptions, coreGetContentfulConfig, getDefaultInclude, getListingLinkFetchParams, resolveIncludeDepth, } from './helpers';
|
|
19
18
|
export { contentfulAllArticleLinks, contentfulAllArticleLinksForIntegrity, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, } from './links';
|
|
20
19
|
export type { CmsContentType, ConverterResolutionScope } from './listing-fetch-params';
|
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,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,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;
|
|
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
|
@@ -15,7 +15,6 @@ export { contentfulAnyEntryRest, contentfulComponentRest, } from './componentPre
|
|
|
15
15
|
// Context
|
|
16
16
|
export { createBaseConverterContext } from './context.js';
|
|
17
17
|
export { contentfulCustomTypeRest } from './custom-type.js';
|
|
18
|
-
export { contentfulDocumentsRest } from './document.js';
|
|
19
18
|
// Internal helpers (exported for extension by projects)
|
|
20
19
|
export { ARTICLE_LINK_FIELDS, ARTICLE_LINK_FIELDS_LIGHT, ARTICLE_LISTING_FIELDS, buildFetchOptions, coreGetContentfulConfig, getDefaultInclude, getListingLinkFetchParams, resolveIncludeDepth, } from './helpers.js';
|
|
21
20
|
// All links fetchers
|
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,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,
|
|
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,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,aAAa,EACb,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,kBAAkB,GAEnB,MAAM,QAAQ,CAAC;AAChB,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"}
|
|
@@ -48,7 +48,7 @@ export declare const ARTICLE_LISTING_FIELDS = "sys,fields.cmsLabel,fields.title,
|
|
|
48
48
|
export declare const ARTICLE_LINK_FIELDS = "sys,fields.cmsLabel,fields.title,fields.subtitle,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.tags,fields.articleType,fields.date,fields.author,fields.authors,fields.externalLink,fields.download,fields.visuals,fields.description,fields.summary,fields.icon,fields.topContent,fields.content,fields.bottomContent";
|
|
49
49
|
export declare const ARTICLE_TYPE_LINK_FIELDS = "sys,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden";
|
|
50
50
|
export declare const TAG_LINK_FIELDS = "sys,fields.cmsLabel,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.show,fields.tagType";
|
|
51
|
-
export declare const PERSON_LINK_FIELDS = "sys,fields.name,fields.slug,fields.media,fields.bio,fields.jobTitle,fields.phoneNumber,fields.emailAddress,fields.location,fields.linkedIn,fields.twitter,fields.website,fields.quote,fields.visuals,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden";
|
|
51
|
+
export declare const PERSON_LINK_FIELDS = "sys,fields.name,fields.slug,fields.personType,fields.media,fields.bio,fields.jobTitle,fields.phoneNumber,fields.emailAddress,fields.location,fields.linkedIn,fields.twitter,fields.website,fields.quote,fields.visuals,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden";
|
|
52
52
|
export declare const CUSTOM_TYPE_LINK_FIELDS = "sys,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.indexPageName";
|
|
53
53
|
/** Fields present on every tagType schema (see BaseTagTypeSkeleton). */
|
|
54
54
|
export declare const TAG_TYPE_MINIMAL_FIELDS = "sys,fields.name,fields.show";
|
|
@@ -61,7 +61,7 @@ export declare const CUSTOM_TYPE_LISTING_FIELDS = "sys,fields.name,fields.slug,f
|
|
|
61
61
|
export declare const TAG_TYPE_LISTING_FIELDS = "sys,fields.name,fields.show";
|
|
62
62
|
export declare const PAGE_LISTING_FIELDS = "sys,fields.cmsLabel,fields.title,fields.slug,fields.description,fields.metaTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden";
|
|
63
63
|
export declare const ARTICLE_LISTING_SINGLE_FIELDS = "sys,fields.cmsLabel,fields.title,fields.subtitle,fields.slug,fields.description,fields.metaTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.articleType,fields.date,fields.author,fields.authors,fields.icon";
|
|
64
|
-
export declare const PERSON_LISTING_FIELDS = "sys,fields.name,fields.slug,fields.description,fields.metaTitle,fields.jobTitle,fields.media,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden";
|
|
64
|
+
export declare const PERSON_LISTING_FIELDS = "sys,fields.name,fields.slug,fields.personType,fields.description,fields.metaTitle,fields.jobTitle,fields.media,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden";
|
|
65
65
|
export declare function getListingLinkFetchParams(contentType: CmsContentType): {
|
|
66
66
|
select: string;
|
|
67
67
|
include: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing-fetch-params.d.ts","sourceRoot":"","sources":["../../src/api/listing-fetch-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,kFAAkF;AAClF,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,SAAS,GACT,aAAa,GACb,KAAK,GACL,SAAS,GACT,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,qBAAqB,EAAE,wBAGnC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,wBAGtC,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,EAAE,wBAGhC,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,eAAwB,EACjC,oBAAoB,GAAE,oBAAgC,GACrD,wBAAwB,CAQ1B;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,sBAAsB,CAAC,GACnE,wBAAwB,CAK1B;AAsBD,uGAAuG;AACvG,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,cAAc,EAC3B,OAAO,GAAE,eAAwB,GAChC,MAAM,CAGR;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,cAAc,EAC3B,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,eAAe,CAAA;CAAE,EAC7D,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAQR;AAED,eAAO,MAAM,gBAAgB,gLACkJ,CAAC;AAEhL,eAAO,MAAM,sBAAsB,6VACyT,CAAC;AAE7V,kHAAkH;AAClH,eAAO,MAAM,mBAAmB,mZAAoF,CAAC;AAErH,eAAO,MAAM,wBAAwB,mJAC6G,CAAC;AAEnJ,eAAO,MAAM,eAAe,8LACiK,CAAC;AAE9L,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"listing-fetch-params.d.ts","sourceRoot":"","sources":["../../src/api/listing-fetch-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,kFAAkF;AAClF,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,SAAS,GACT,aAAa,GACb,KAAK,GACL,SAAS,GACT,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,qBAAqB,EAAE,wBAGnC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,wBAGtC,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,EAAE,wBAGhC,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,eAAwB,EACjC,oBAAoB,GAAE,oBAAgC,GACrD,wBAAwB,CAQ1B;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,sBAAsB,CAAC,GACnE,wBAAwB,CAK1B;AAsBD,uGAAuG;AACvG,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,cAAc,EAC3B,OAAO,GAAE,eAAwB,GAChC,MAAM,CAGR;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,cAAc,EAC3B,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,eAAe,CAAA;CAAE,EAC7D,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAQR;AAED,eAAO,MAAM,gBAAgB,gLACkJ,CAAC;AAEhL,eAAO,MAAM,sBAAsB,6VACyT,CAAC;AAE7V,kHAAkH;AAClH,eAAO,MAAM,mBAAmB,mZAAoF,CAAC;AAErH,eAAO,MAAM,wBAAwB,mJAC6G,CAAC;AAEnJ,eAAO,MAAM,eAAe,8LACiK,CAAC;AAE9L,eAAO,MAAM,kBAAkB,kSACkQ,CAAC;AAElS,eAAO,MAAM,uBAAuB,wKACmI,CAAC;AAExK,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AAErE,sGAAsG;AACtG,eAAO,MAAM,oBAAoB,4CAA4C,CAAC;AAE9E,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,kOAA2D,CAAC;AAE3F,eAAO,MAAM,2BAA2B,8LACqJ,CAAC;AAE9L,eAAO,MAAM,0BAA0B,8LACsJ,CAAC;AAE9L,eAAO,MAAM,uBAAuB,gCAA0B,CAAC;AAE/D,eAAO,MAAM,mBAAmB,iLACgJ,CAAC;AAEjL,eAAO,MAAM,6BAA6B,yQAC8N,CAAC;AAEzQ,eAAO,MAAM,qBAAqB,0LACuJ,CAAC;AAE1L,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,cAAc,GAAG;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAqBA;AAED,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAmB5F"}
|
|
@@ -65,7 +65,7 @@ export const ARTICLE_LISTING_FIELDS = 'sys,fields.cmsLabel,fields.title,fields.s
|
|
|
65
65
|
export const ARTICLE_LINK_FIELDS = `${ARTICLE_LISTING_FIELDS},fields.topContent,fields.content,fields.bottomContent`;
|
|
66
66
|
export const ARTICLE_TYPE_LINK_FIELDS = 'sys,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden';
|
|
67
67
|
export const TAG_LINK_FIELDS = 'sys,fields.cmsLabel,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.show,fields.tagType';
|
|
68
|
-
export const PERSON_LINK_FIELDS = 'sys,fields.name,fields.slug,fields.media,fields.bio,fields.jobTitle,fields.phoneNumber,fields.emailAddress,fields.location,fields.linkedIn,fields.twitter,fields.website,fields.quote,fields.visuals,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden';
|
|
68
|
+
export const PERSON_LINK_FIELDS = 'sys,fields.name,fields.slug,fields.personType,fields.media,fields.bio,fields.jobTitle,fields.phoneNumber,fields.emailAddress,fields.location,fields.linkedIn,fields.twitter,fields.website,fields.quote,fields.visuals,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden';
|
|
69
69
|
export const CUSTOM_TYPE_LINK_FIELDS = 'sys,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.indexPageName';
|
|
70
70
|
/** Fields present on every tagType schema (see BaseTagTypeSkeleton). */
|
|
71
71
|
export const TAG_TYPE_MINIMAL_FIELDS = 'sys,fields.name,fields.show';
|
|
@@ -78,7 +78,7 @@ export const CUSTOM_TYPE_LISTING_FIELDS = 'sys,fields.name,fields.slug,fields.in
|
|
|
78
78
|
export const TAG_TYPE_LISTING_FIELDS = TAG_TYPE_MINIMAL_FIELDS;
|
|
79
79
|
export const PAGE_LISTING_FIELDS = 'sys,fields.cmsLabel,fields.title,fields.slug,fields.description,fields.metaTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden';
|
|
80
80
|
export const ARTICLE_LISTING_SINGLE_FIELDS = 'sys,fields.cmsLabel,fields.title,fields.subtitle,fields.slug,fields.description,fields.metaTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.articleType,fields.date,fields.author,fields.authors,fields.icon';
|
|
81
|
-
export const PERSON_LISTING_FIELDS = 'sys,fields.name,fields.slug,fields.description,fields.metaTitle,fields.jobTitle,fields.media,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden';
|
|
81
|
+
export const PERSON_LISTING_FIELDS = 'sys,fields.name,fields.slug,fields.personType,fields.description,fields.metaTitle,fields.jobTitle,fields.media,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden';
|
|
82
82
|
export function getListingLinkFetchParams(contentType) {
|
|
83
83
|
switch (contentType) {
|
|
84
84
|
case 'page':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing-fetch-params.js","sourceRoot":"","sources":["../../src/api/listing-fetch-params.ts"],"names":[],"mappings":"AAuCA,MAAM,CAAC,MAAM,qBAAqB,GAA6B;IAC7D,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAA6B;IAChE,iBAAiB,EAAE,KAAK;IACxB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,iBAAiB,EAAE,KAAK;IACxB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAChC,OAAO,GAAoB,MAAM,EACjC,oBAAoB,GAAyB,SAAS;IAEtD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,wBAAwB,CAAC;IAClC,CAAC;IACD,IAAI,oBAAoB,KAAK,MAAM,EAAE,CAAC;QACpC,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,OAAoE;IAEpE,OAAO,kBAAkB,CACvB,OAAO,CAAC,YAAY,IAAI,MAAM,EAC9B,OAAO,CAAC,oBAAoB,IAAI,SAAS,CAC1C,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAmC;IAC5D,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;IACd,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,wBAAwB,GAAmC;IAC/D,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;IACd,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,uGAAuG;AACvG,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,WAA2B,EAC3B,OAAO,GAAoB,MAAM;IAEjC,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IACvF,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,WAA2B,EAC3B,OAA6D,EAC7D,eAAwB;IAExB,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,OAAO,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAC3B,6KAA6K,CAAC;AAEhL,MAAM,CAAC,MAAM,sBAAsB,GACjC,0VAA0V,CAAC;AAE7V,kHAAkH;AAClH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,sBAAsB,wDAAwD,CAAC;AAErH,MAAM,CAAC,MAAM,wBAAwB,GACnC,gJAAgJ,CAAC;AAEnJ,MAAM,CAAC,MAAM,eAAe,GAC1B,2LAA2L,CAAC;AAE9L,MAAM,CAAC,MAAM,kBAAkB,GAC7B,
|
|
1
|
+
{"version":3,"file":"listing-fetch-params.js","sourceRoot":"","sources":["../../src/api/listing-fetch-params.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ContentfulConfig, FetchOptions } from '../types';
|
|
2
|
+
export interface NamedDownloadFile {
|
|
3
|
+
assetId: string;
|
|
4
|
+
fileName: string;
|
|
5
|
+
contentType: string;
|
|
6
|
+
url: string;
|
|
7
|
+
size?: number;
|
|
8
|
+
}
|
|
9
|
+
export type NamedDownloadResolution = {
|
|
10
|
+
status: 'found';
|
|
11
|
+
file: NamedDownloadFile;
|
|
12
|
+
} | {
|
|
13
|
+
status: 'missing';
|
|
14
|
+
} | {
|
|
15
|
+
status: 'ambiguous';
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* One filename may be used by several links when they point at the same asset.
|
|
19
|
+
* Two different assets with that filename is not a match.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveNamedDownload(filename: string, files: readonly NamedDownloadFile[]): NamedDownloadResolution;
|
|
22
|
+
/**
|
|
23
|
+
* Loads link entries that have `downloadAsset` set and returns the one asset
|
|
24
|
+
* whose filename matches. Does not query the asset library by filename.
|
|
25
|
+
*/
|
|
26
|
+
export declare function findNamedDownloadAsset(config: ContentfulConfig, filename: string, options?: FetchOptions): Promise<NamedDownloadResolution>;
|
|
27
|
+
//# sourceMappingURL=named-download.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-download.d.ts","sourceRoot":"","sources":["../../src/api/named-download.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAClC,uBAAuB,CAWzB;AAmED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,YAAiC,GACzC,OAAO,CAAC,uBAAuB,CAAC,CA8ClC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { getContentfulClient } from '../client.js';
|
|
2
|
+
import { getCacheTags } from '../revalidation/utils.js';
|
|
3
|
+
import { withCmsQueryContext } from '../telemetry/queryContext.js';
|
|
4
|
+
/**
|
|
5
|
+
* One filename may be used by several links when they point at the same asset.
|
|
6
|
+
* Two different assets with that filename is not a match.
|
|
7
|
+
*/
|
|
8
|
+
export function resolveNamedDownload(filename, files) {
|
|
9
|
+
const matches = new Map();
|
|
10
|
+
for (const file of files) {
|
|
11
|
+
if (file.fileName !== filename)
|
|
12
|
+
continue;
|
|
13
|
+
if (!matches.has(file.assetId))
|
|
14
|
+
matches.set(file.assetId, file);
|
|
15
|
+
}
|
|
16
|
+
if (matches.size === 0)
|
|
17
|
+
return { status: 'missing' };
|
|
18
|
+
if (matches.size > 1)
|
|
19
|
+
return { status: 'ambiguous' };
|
|
20
|
+
const file = matches.values().next().value;
|
|
21
|
+
if (!file)
|
|
22
|
+
return { status: 'missing' };
|
|
23
|
+
return { status: 'found', file };
|
|
24
|
+
}
|
|
25
|
+
function asFile(value) {
|
|
26
|
+
if (!value || typeof value !== 'object')
|
|
27
|
+
return undefined;
|
|
28
|
+
const record = value;
|
|
29
|
+
if (typeof record.fileName === 'string' || typeof record.url === 'string') {
|
|
30
|
+
return record;
|
|
31
|
+
}
|
|
32
|
+
const localized = record['en-US'] ?? Object.values(record)[0];
|
|
33
|
+
return asFile(localized);
|
|
34
|
+
}
|
|
35
|
+
function assetIdFromDownloadField(value) {
|
|
36
|
+
if (!value || typeof value !== 'object')
|
|
37
|
+
return undefined;
|
|
38
|
+
const record = value;
|
|
39
|
+
const sys = record.sys;
|
|
40
|
+
if (typeof sys?.id === 'string' && sys.id.length > 0)
|
|
41
|
+
return sys.id;
|
|
42
|
+
return assetIdFromDownloadField(record['en-US']);
|
|
43
|
+
}
|
|
44
|
+
function filesFromPage(page) {
|
|
45
|
+
const assets = new Map();
|
|
46
|
+
for (const asset of page.includes?.Asset ?? []) {
|
|
47
|
+
const assetId = asset.sys?.id;
|
|
48
|
+
const file = asFile(asset.fields?.file);
|
|
49
|
+
if (!assetId || !file?.fileName || !file.url || !file.contentType)
|
|
50
|
+
continue;
|
|
51
|
+
assets.set(assetId, {
|
|
52
|
+
assetId,
|
|
53
|
+
fileName: file.fileName,
|
|
54
|
+
contentType: file.contentType,
|
|
55
|
+
url: file.url.startsWith('//') ? `https:${file.url}` : file.url,
|
|
56
|
+
size: file.details?.size,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
const files = [];
|
|
60
|
+
for (const item of page.items ?? []) {
|
|
61
|
+
const assetId = assetIdFromDownloadField(item.fields?.downloadAsset);
|
|
62
|
+
if (!assetId)
|
|
63
|
+
continue;
|
|
64
|
+
const file = assets.get(assetId);
|
|
65
|
+
if (file)
|
|
66
|
+
files.push(file);
|
|
67
|
+
}
|
|
68
|
+
return files;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Loads link entries that have `downloadAsset` set and returns the one asset
|
|
72
|
+
* whose filename matches. Does not query the asset library by filename.
|
|
73
|
+
*/
|
|
74
|
+
export async function findNamedDownloadAsset(config, filename, options = { preview: false }) {
|
|
75
|
+
const preview = options.preview;
|
|
76
|
+
const client = getContentfulClient(config, preview);
|
|
77
|
+
const tags = [
|
|
78
|
+
...getCacheTags('link', undefined, preview),
|
|
79
|
+
...getCacheTags('asset', undefined, preview),
|
|
80
|
+
];
|
|
81
|
+
const pageSize = 100;
|
|
82
|
+
let skip = 0;
|
|
83
|
+
const files = [];
|
|
84
|
+
for (;;) {
|
|
85
|
+
const pageNumber = Math.floor(skip / pageSize) + 1;
|
|
86
|
+
const page = await withCmsQueryContext({
|
|
87
|
+
operation: pageNumber > 1 ? `Reading download links (page ${pageNumber})` : 'Reading download links',
|
|
88
|
+
}, () => client.getEntries({
|
|
89
|
+
content_type: 'link',
|
|
90
|
+
'fields.downloadAsset[exists]': true,
|
|
91
|
+
include: 1,
|
|
92
|
+
locale: options.locale ?? 'en-US',
|
|
93
|
+
limit: pageSize,
|
|
94
|
+
skip,
|
|
95
|
+
}, {
|
|
96
|
+
...options,
|
|
97
|
+
next: {
|
|
98
|
+
...options.next,
|
|
99
|
+
tags: [...tags, ...(options.next?.tags ?? [])],
|
|
100
|
+
revalidate: options.next?.revalidate,
|
|
101
|
+
},
|
|
102
|
+
}));
|
|
103
|
+
files.push(...filesFromPage(page));
|
|
104
|
+
const total = typeof page.total === 'number' ? page.total : files.length;
|
|
105
|
+
skip += page.items?.length ?? 0;
|
|
106
|
+
if (skip >= total || (page.items?.length ?? 0) === 0)
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
return resolveNamedDownload(filename, files);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=named-download.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-download.js","sourceRoot":"","sources":["../../src/api/named-download.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/api/preview.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAuB,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEnG,YAAY,EACV,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAC/B,oBAAoB,CAatB;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GACtC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/api/preview.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAuB,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEnG,YAAY,EACV,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAC/B,oBAAoB,CAatB;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GACtC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA8JlC"}
|
package/dist/api/preview.js
CHANGED
|
@@ -162,11 +162,12 @@ export async function getPreviewEntryInfo(context, config, entryId, options) {
|
|
|
162
162
|
const slug = readStringField(fields, 'slug');
|
|
163
163
|
if (!slug)
|
|
164
164
|
return null;
|
|
165
|
+
const personTypeSlug = getLinkedSlug(fields, includes, 'personType');
|
|
165
166
|
return {
|
|
166
167
|
contentType: 'person',
|
|
167
168
|
entryId,
|
|
168
169
|
slug,
|
|
169
|
-
href: context.urlCalculators.person(slug),
|
|
170
|
+
href: context.urlCalculators.person(slug, personTypeSlug),
|
|
170
171
|
};
|
|
171
172
|
}
|
|
172
173
|
case 'customType': {
|
|
@@ -242,20 +243,23 @@ function getPageTestControlEntry(fields, includes) {
|
|
|
242
243
|
* Extracts the article type slug from an article entry.
|
|
243
244
|
* Looks in the entry's articleType field, falling back to includes if needed.
|
|
244
245
|
*/
|
|
245
|
-
function
|
|
246
|
-
const
|
|
247
|
-
if (!
|
|
246
|
+
function getLinkedSlug(fields, includes, fieldId) {
|
|
247
|
+
const link = asEntryLink(fields[fieldId]);
|
|
248
|
+
if (!link) {
|
|
248
249
|
return undefined;
|
|
249
250
|
}
|
|
250
|
-
const resolvedSlug = readStringField(
|
|
251
|
+
const resolvedSlug = readStringField(link.fields, 'slug');
|
|
251
252
|
if (resolvedSlug) {
|
|
252
253
|
return resolvedSlug;
|
|
253
254
|
}
|
|
254
|
-
const
|
|
255
|
-
if (!
|
|
255
|
+
const linkedId = link.sys.id;
|
|
256
|
+
if (!linkedId || !includes) {
|
|
256
257
|
return undefined;
|
|
257
258
|
}
|
|
258
|
-
const
|
|
259
|
-
return readStringField(
|
|
259
|
+
const included = includes.find((inc) => inc.sys.id === linkedId);
|
|
260
|
+
return readStringField(included?.fields, 'slug');
|
|
261
|
+
}
|
|
262
|
+
function getArticleTypeSlug(fields, includes) {
|
|
263
|
+
return getLinkedSlug(fields, includes, 'articleType');
|
|
260
264
|
}
|
|
261
265
|
//# sourceMappingURL=preview.js.map
|
package/dist/api/preview.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/api/preview.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/api/preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,8 @@ export interface DownloadRouteParams {
|
|
|
48
48
|
* Filename comes from Contentful so only one path identity exists per asset.
|
|
49
49
|
*/
|
|
50
50
|
export declare function buildCanonicalDownloadPath(assetId: string, canonicalFilename: string): string;
|
|
51
|
+
/** Public path for a download link, keyed by the asset filename. */
|
|
52
|
+
export declare function buildNamedDownloadPath(filename: string): string;
|
|
51
53
|
/**
|
|
52
54
|
* Creates a Next.js App Router GET handler for downloading/viewing Contentful assets.
|
|
53
55
|
*
|
|
@@ -64,4 +66,14 @@ export declare function buildCanonicalDownloadPath(assetId: string, canonicalFil
|
|
|
64
66
|
* @returns GET handler function for Next.js route
|
|
65
67
|
*/
|
|
66
68
|
export declare function createDownloadHandler(config: DownloadHandlerConfig): (request: NextRequest, { params }: DownloadRouteParams) => Promise<Response>;
|
|
69
|
+
export interface NamedDownloadRouteParams {
|
|
70
|
+
params: Promise<{
|
|
71
|
+
filename: string;
|
|
72
|
+
}>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* GET handler for `/download/{filename}`.
|
|
76
|
+
* Serves a file only when a link entry's download asset has that filename.
|
|
77
|
+
*/
|
|
78
|
+
export declare function createNamedDownloadHandler(config: DownloadHandlerConfig): (request: NextRequest, { params }: NamedDownloadRouteParams) => Promise<Response>;
|
|
67
79
|
//# sourceMappingURL=server-asset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-asset.d.ts","sourceRoot":"","sources":["../../src/api/server-asset.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"server-asset.d.ts","sourceRoot":"","sources":["../../src/api/server-asset.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIjD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,gBAAgB,CAAC;IAEnD;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAcD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAE7F;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AA2DD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,aAItD,WAAW,cACR,mBAAmB,KAC9B,OAAO,CAAC,QAAQ,CAAC,CAsDrB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,qBAAqB,aAI3D,WAAW,cACR,wBAAwB,KACnC,OAAO,CAAC,QAAQ,CAAC,CA+BrB"}
|
package/dist/api/server-asset.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
2
|
import { contentfulAssetRest, isBrowserViewable } from './asset.js';
|
|
3
|
+
import { findNamedDownloadAsset } from './named-download.js';
|
|
3
4
|
function decodeFilenameParam(filename) {
|
|
4
5
|
try {
|
|
5
6
|
return decodeURIComponent(filename);
|
|
@@ -18,6 +19,47 @@ function stripTrailingSlash(url) {
|
|
|
18
19
|
export function buildCanonicalDownloadPath(assetId, canonicalFilename) {
|
|
19
20
|
return `/download/${assetId}/${encodeURIComponent(canonicalFilename)}`;
|
|
20
21
|
}
|
|
22
|
+
/** Public path for a download link, keyed by the asset filename. */
|
|
23
|
+
export function buildNamedDownloadPath(filename) {
|
|
24
|
+
return `/download/${encodeURIComponent(filename)}`;
|
|
25
|
+
}
|
|
26
|
+
async function proxyContentfulFile(options) {
|
|
27
|
+
const { request, file, canonicalPath, baseUrl, revalidate } = options;
|
|
28
|
+
const requestUrl = new URL(request.url);
|
|
29
|
+
const requestOrigin = stripTrailingSlash(requestUrl.origin);
|
|
30
|
+
const canonicalOrigin = baseUrl ? stripTrailingSlash(baseUrl) : requestOrigin;
|
|
31
|
+
const redirectLocation = `${requestOrigin}${canonicalPath}`;
|
|
32
|
+
const canonicalAbsolute = `${canonicalOrigin}${canonicalPath}`;
|
|
33
|
+
if (options.redirectWhenQuery !== false && requestUrl.search.length > 0) {
|
|
34
|
+
return new Response(null, {
|
|
35
|
+
status: 301,
|
|
36
|
+
headers: {
|
|
37
|
+
Location: redirectLocation,
|
|
38
|
+
'Cache-Control': 'public, max-age=3600',
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
const assetUrl = file.url.startsWith('//') ? `https:${file.url}` : file.url;
|
|
43
|
+
const fileResponse = await fetch(assetUrl, {
|
|
44
|
+
cache: 'no-store',
|
|
45
|
+
});
|
|
46
|
+
if (!fileResponse.ok) {
|
|
47
|
+
return Response.json({ error: 'Failed to fetch file' }, { status: 502 });
|
|
48
|
+
}
|
|
49
|
+
const headers = new Headers();
|
|
50
|
+
headers.set('Content-Type', file.contentType);
|
|
51
|
+
const disposition = isBrowserViewable(file.contentType) ? 'inline' : 'attachment';
|
|
52
|
+
headers.set('Content-Disposition', `${disposition}; filename="${file.fileName}"`);
|
|
53
|
+
if (file.size) {
|
|
54
|
+
headers.set('Content-Length', String(file.size));
|
|
55
|
+
}
|
|
56
|
+
headers.set('Cache-Control', `public, max-age=${revalidate}, s-maxage=${revalidate}`);
|
|
57
|
+
headers.set('Link', `<${canonicalAbsolute}>; rel="canonical"`);
|
|
58
|
+
return new Response(fileResponse.body, {
|
|
59
|
+
status: 200,
|
|
60
|
+
headers,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
21
63
|
/**
|
|
22
64
|
* Creates a Next.js App Router GET handler for downloading/viewing Contentful assets.
|
|
23
65
|
*
|
|
@@ -52,53 +94,69 @@ export function createDownloadHandler(config) {
|
|
|
52
94
|
const canonicalFilename = typeof file.fileName === 'string' && file.fileName.length > 0
|
|
53
95
|
? file.fileName
|
|
54
96
|
: decodedFilename;
|
|
55
|
-
const requestUrl = new URL(request.url);
|
|
56
|
-
const requestOrigin = stripTrailingSlash(requestUrl.origin);
|
|
57
|
-
const canonicalOrigin = baseUrl ? stripTrailingSlash(baseUrl) : requestOrigin;
|
|
58
97
|
const canonicalPath = buildCanonicalDownloadPath(assetId, canonicalFilename);
|
|
59
|
-
// Redirects stay on the host that received the request (preview/local safe).
|
|
60
|
-
const redirectLocation = `${requestOrigin}${canonicalPath}`;
|
|
61
|
-
// Canonical signal prefers configured production baseUrl when provided.
|
|
62
|
-
const canonicalAbsolute = `${canonicalOrigin}${canonicalPath}`;
|
|
63
|
-
const hasQuery = requestUrl.search.length > 0;
|
|
64
98
|
const filenameMismatch = decodedFilename !== canonicalFilename;
|
|
65
|
-
if (
|
|
99
|
+
if (filenameMismatch) {
|
|
100
|
+
const requestOrigin = stripTrailingSlash(new URL(request.url).origin);
|
|
66
101
|
return new Response(null, {
|
|
67
102
|
status: 301,
|
|
68
103
|
headers: {
|
|
69
|
-
Location:
|
|
70
|
-
// Short cache so corrected identity propagates quickly after renames.
|
|
104
|
+
Location: `${requestOrigin}${canonicalPath}`,
|
|
71
105
|
'Cache-Control': 'public, max-age=3600',
|
|
72
106
|
},
|
|
73
107
|
});
|
|
74
108
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
109
|
+
return proxyContentfulFile({
|
|
110
|
+
request,
|
|
111
|
+
file: {
|
|
112
|
+
url: file.url,
|
|
113
|
+
contentType: file.contentType,
|
|
114
|
+
fileName: canonicalFilename,
|
|
115
|
+
size: file.details?.size,
|
|
116
|
+
},
|
|
117
|
+
canonicalPath,
|
|
118
|
+
baseUrl,
|
|
119
|
+
revalidate,
|
|
81
120
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
console.error('[Download] Error proxying file:', error);
|
|
124
|
+
return Response.json({ error: 'Internal server error' }, { status: 500 });
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* GET handler for `/download/{filename}`.
|
|
130
|
+
* Serves a file only when a link entry's download asset has that filename.
|
|
131
|
+
*/
|
|
132
|
+
export function createNamedDownloadHandler(config) {
|
|
133
|
+
const { getConfig, revalidate = 86400, preview = false, baseUrl } = config;
|
|
134
|
+
return async function GET(request, { params }) {
|
|
135
|
+
// Next decodes this segment once. Decoding again changes a name that contains %XX.
|
|
136
|
+
const { filename } = await params;
|
|
137
|
+
try {
|
|
138
|
+
const resolution = await findNamedDownloadAsset(getConfig(preview), filename, {
|
|
139
|
+
preview,
|
|
140
|
+
next: { revalidate },
|
|
141
|
+
});
|
|
142
|
+
if (resolution.status !== 'found') {
|
|
143
|
+
return Response.json({ error: 'Asset not found' }, { status: 404 });
|
|
91
144
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
145
|
+
return proxyContentfulFile({
|
|
146
|
+
request,
|
|
147
|
+
file: {
|
|
148
|
+
url: resolution.file.url,
|
|
149
|
+
contentType: resolution.file.contentType,
|
|
150
|
+
fileName: resolution.file.fileName,
|
|
151
|
+
size: resolution.file.size,
|
|
152
|
+
},
|
|
153
|
+
canonicalPath: buildNamedDownloadPath(resolution.file.fileName),
|
|
154
|
+
baseUrl,
|
|
155
|
+
revalidate,
|
|
98
156
|
});
|
|
99
157
|
}
|
|
100
158
|
catch (error) {
|
|
101
|
-
console.error('[Download] Error proxying file:', error);
|
|
159
|
+
console.error('[Download] Error proxying named file:', error);
|
|
102
160
|
return Response.json({ error: 'Internal server error' }, { status: 500 });
|
|
103
161
|
}
|
|
104
162
|
};
|