@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.
Files changed (81) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/api/context.d.ts.map +1 -1
  3. package/dist/api/context.js +0 -2
  4. package/dist/api/context.js.map +1 -1
  5. package/dist/api/index.d.ts +0 -1
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/api/index.js +0 -1
  8. package/dist/api/index.js.map +1 -1
  9. package/dist/api/listing-fetch-params.d.ts +2 -2
  10. package/dist/api/listing-fetch-params.d.ts.map +1 -1
  11. package/dist/api/listing-fetch-params.js +2 -2
  12. package/dist/api/listing-fetch-params.js.map +1 -1
  13. package/dist/api/named-download.d.ts +27 -0
  14. package/dist/api/named-download.d.ts.map +1 -0
  15. package/dist/api/named-download.js +111 -0
  16. package/dist/api/named-download.js.map +1 -0
  17. package/dist/api/preview.d.ts.map +1 -1
  18. package/dist/api/preview.js +13 -9
  19. package/dist/api/preview.js.map +1 -1
  20. package/dist/api/server-asset.d.ts +12 -0
  21. package/dist/api/server-asset.d.ts.map +1 -1
  22. package/dist/api/server-asset.js +91 -33
  23. package/dist/api/server-asset.js.map +1 -1
  24. package/dist/baseTypes/basePerson.d.ts +8 -0
  25. package/dist/baseTypes/basePerson.d.ts.map +1 -1
  26. package/dist/baseTypes/basePersonType.d.ts +64 -0
  27. package/dist/baseTypes/basePersonType.d.ts.map +1 -0
  28. package/dist/baseTypes/basePersonType.js +2 -0
  29. package/dist/baseTypes/basePersonType.js.map +1 -0
  30. package/dist/converters/helpers.d.ts +9 -6
  31. package/dist/converters/helpers.d.ts.map +1 -1
  32. package/dist/converters/helpers.js.map +1 -1
  33. package/dist/converters/index.d.ts +0 -1
  34. package/dist/converters/index.d.ts.map +1 -1
  35. package/dist/converters/index.js +0 -1
  36. package/dist/converters/index.js.map +1 -1
  37. package/dist/converters/link.d.ts.map +1 -1
  38. package/dist/converters/link.js +4 -1
  39. package/dist/converters/link.js.map +1 -1
  40. package/dist/converters/person.d.ts.map +1 -1
  41. package/dist/converters/person.js +47 -6
  42. package/dist/converters/person.js.map +1 -1
  43. package/dist/index.d.ts +2 -2
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +2 -2
  46. package/dist/index.js.map +1 -1
  47. package/dist/revalidation/entry-handlers.d.ts.map +1 -1
  48. package/dist/revalidation/entry-handlers.js +9 -1
  49. package/dist/revalidation/entry-handlers.js.map +1 -1
  50. package/dist/revalidation/tags.d.ts +2 -0
  51. package/dist/revalidation/tags.d.ts.map +1 -1
  52. package/dist/revalidation/tags.js +5 -0
  53. package/dist/revalidation/tags.js.map +1 -1
  54. package/dist/revalidation/utils.d.ts.map +1 -1
  55. package/dist/revalidation/utils.js +4 -1
  56. package/dist/revalidation/utils.js.map +1 -1
  57. package/dist/revalidation/webhook-content-types.d.ts +1 -1
  58. package/dist/revalidation/webhook-content-types.d.ts.map +1 -1
  59. package/dist/revalidation/webhook-content-types.js +1 -0
  60. package/dist/revalidation/webhook-content-types.js.map +1 -1
  61. package/dist/routing/marketing-site-url-calculators.d.ts.map +1 -1
  62. package/dist/routing/marketing-site-url-calculators.js +1 -1
  63. package/dist/routing/marketing-site-url-calculators.js.map +1 -1
  64. package/dist/server.d.ts +1 -1
  65. package/dist/server.d.ts.map +1 -1
  66. package/dist/server.js +1 -1
  67. package/dist/server.js.map +1 -1
  68. package/docs/llms.md +13 -11
  69. package/package.json +5 -5
  70. package/dist/api/document.d.ts +0 -8
  71. package/dist/api/document.d.ts.map +0 -1
  72. package/dist/api/document.js +0 -84
  73. package/dist/api/document.js.map +0 -1
  74. package/dist/baseTypes/baseDocument.d.ts +0 -70
  75. package/dist/baseTypes/baseDocument.d.ts.map +0 -1
  76. package/dist/baseTypes/baseDocument.js +0 -2
  77. package/dist/baseTypes/baseDocument.js.map +0 -1
  78. package/dist/converters/document.d.ts +0 -14
  79. package/dist/converters/document.d.ts.map +0 -1
  80. package/dist/converters/document.js +0 -51
  81. 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":"AAaA,OAAO,KAAK,EACV,oBAAoB,EAKpB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAc/B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,cAAc,GAAG,oBAAoB,CA0C/F"}
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"}
@@ -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,
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/api/context.ts"],"names":[],"mappings":"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"}
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"}
@@ -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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
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
@@ -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,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,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"}
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,gRACgP,CAAC;AAEhR,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,wKACqI,CAAC;AAExK,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"}
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":"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"}
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,CA6JlC"}
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"}
@@ -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 getArticleTypeSlug(fields, includes) {
246
- const articleTypeField = asEntryLink(fields.articleType);
247
- if (!articleTypeField) {
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(articleTypeField.fields, 'slug');
251
+ const resolvedSlug = readStringField(link.fields, 'slug');
251
252
  if (resolvedSlug) {
252
253
  return resolvedSlug;
253
254
  }
254
- const articleTypeId = articleTypeField.sys.id;
255
- if (!articleTypeId || !includes) {
255
+ const linkedId = link.sys.id;
256
+ if (!linkedId || !includes) {
256
257
  return undefined;
257
258
  }
258
- const articleTypeEntry = includes.find((inc) => inc.sys.id === articleTypeId);
259
- return readStringField(articleTypeEntry?.fields, 'slug');
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
@@ -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;AAGjD;;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;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,aAItD,WAAW,cACR,mBAAmB,KAC9B,OAAO,CAAC,QAAQ,CAAC,CAkFrB"}
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"}
@@ -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 (hasQuery || filenameMismatch) {
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: redirectLocation,
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
- const assetUrl = `https:${file.url}`;
76
- // Fetch the actual file from Contentful CDN
77
- // We disable the Next.js data cache for the file binary to avoid the 2MB limit warning.
78
- // The final response is still cached by the browser/CDN via Cache-Control headers.
79
- const fileResponse = await fetch(assetUrl, {
80
- cache: 'no-store',
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
- if (!fileResponse.ok) {
83
- return Response.json({ error: 'Failed to fetch file' }, { status: 502 });
84
- }
85
- const headers = new Headers();
86
- headers.set('Content-Type', file.contentType);
87
- const disposition = isBrowserViewable(file.contentType) ? 'inline' : 'attachment';
88
- headers.set('Content-Disposition', `${disposition}; filename="${canonicalFilename}"`);
89
- if (file.details?.size) {
90
- headers.set('Content-Length', String(file.details.size));
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
- headers.set('Cache-Control', `public, max-age=${revalidate}, s-maxage=${revalidate}`);
93
- // PDF/binary docs cannot use HTML <link rel="canonical">; Google honors this header.
94
- headers.set('Link', `<${canonicalAbsolute}>; rel="canonical"`);
95
- return new Response(fileResponse.body, {
96
- status: 200,
97
- headers,
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
  };