@se-studio/contentful-rest-api 1.3.4 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/api/context.d.ts.map +1 -1
  3. package/dist/api/context.js +2 -1
  4. package/dist/api/context.js.map +1 -1
  5. package/dist/api/index.d.ts +1 -1
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/api/index.js +1 -1
  8. package/dist/api/index.js.map +1 -1
  9. package/dist/api/redirects.d.ts +3 -3
  10. package/dist/api/redirects.js +3 -3
  11. package/dist/baseTypes/baseLink.d.ts +2 -2
  12. package/dist/baseTypes/baseLink.d.ts.map +1 -1
  13. package/dist/baseTypes/baseRedirect.d.ts +11 -68
  14. package/dist/baseTypes/baseRedirect.d.ts.map +1 -1
  15. package/dist/baseTypes/baseShared.d.ts +3 -1
  16. package/dist/baseTypes/baseShared.d.ts.map +1 -1
  17. package/dist/converters/helpers.d.ts +1 -0
  18. package/dist/converters/helpers.d.ts.map +1 -1
  19. package/dist/converters/helpers.js.map +1 -1
  20. package/dist/converters/index.d.ts +1 -1
  21. package/dist/converters/index.d.ts.map +1 -1
  22. package/dist/converters/index.js +1 -1
  23. package/dist/converters/index.js.map +1 -1
  24. package/dist/converters/redirect.d.ts +5 -5
  25. package/dist/converters/redirect.d.ts.map +1 -1
  26. package/dist/converters/redirect.js +20 -75
  27. package/dist/converters/redirect.js.map +1 -1
  28. package/dist/converters/tagType.d.ts +8 -1
  29. package/dist/converters/tagType.d.ts.map +1 -1
  30. package/dist/converters/tagType.js +20 -1
  31. package/dist/converters/tagType.js.map +1 -1
  32. package/dist/index.d.ts +1 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/utils/redirectMap.d.ts +20 -5
  37. package/dist/utils/redirectMap.d.ts.map +1 -1
  38. package/dist/utils/redirectMap.js +101 -11
  39. package/dist/utils/redirectMap.js.map +1 -1
  40. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,68 @@
1
1
  # @se-studio/contentful-rest-api
2
2
 
3
+ ## 1.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Bulk version bump: patch for all packages
8
+ - Updated dependencies
9
+ - @se-studio/core-data-types@1.4.1
10
+
11
+ ## 1.5.0
12
+
13
+ ### Minor Changes
14
+
15
+ - Exclude redirect sources from sitemaps + robust protection against self and circular redirects.
16
+
17
+ - `buildRedirectMap` now normalizes internal paths (leading + trailing `/` to match urlCalculators + sitemap conventions) and reliably drops self-redirects (A → A). It also detects longer redirect cycles (A → B → A, etc.), drops the participating `from` rules from the baked map, and emits a `console.warn` during construction (visible in build/generate scripts).
18
+ - New exported utility: `filterSitemapEntriesExcludingRedirects(entries, redirectMap)`. Works on any `{ url: string }[]` (SitemapEntry, ISitemapEntry, etc.).
19
+ - The standard marketing site sitemap helper now accepts an optional `redirectMap` in `getSitemapEntries({ includeUnindexed, redirectMap })`. When provided, any URL that is the source of an active redirect is excluded from the generated sitemap entries. This is the recommended way to keep sitemaps clean when using editor-managed redirects.
20
+ - Widened the public `getSitemapEntries` option type in app helpers (additive; existing callers unaffected).
21
+ - Updated example app sitemaps (main + unindexed) to demonstrate fetching the map and passing it.
22
+ - Skill docs (`se-marketing-sites-redirects`) now include a "Redirects and sitemaps" section with usage patterns + notes on the improved cycle/self protection. Also updated routing docs.
23
+ - `buildRedirectMap` / `RedirectMap` / `getRedirectMap` behaviour for the middleware baked map is now safer (no self-loops or cycles will be baked).
24
+
25
+ Consumers using the `marketingSiteSitemap` helper + `getRedirectMap` at build time can now easily exclude redirect sources from both their static redirect map (for middleware) and their sitemaps in one consistent way.
26
+
27
+ See the redirect skill for the full recommended build-time pattern and the new filter helper.
28
+
29
+ ## 1.4.1
30
+
31
+ ### Patch Changes
32
+
33
+ - Improve redirect map builder (normalization for trailing slashes per project convention, self-redirect and cycle detection with warnings) and export `filterSitemapEntriesExcludingRedirects`. Wire sitemap helpers to accept optional `redirectMap` and exclude matching entries from generated sitemaps (main, unindexed, and additional). Update related tests, re-exports, example sitemap routes, docs/routing.md, and the redirects skill. (Supports cleaner sitemaps by omitting URLs that will 301.)
34
+
35
+ ## 1.4.0
36
+
37
+ ### Minor Changes
38
+
39
+ - Simplify Redirect content model + add tagType as a first-class internal link target.
40
+
41
+ The original redirect content type (added in the previous minor) used a verbose Contentful model with separate `fromPage`/`fromArticle`/etc. reference fields (and same for "to"). This has been replaced with the clean model:
42
+
43
+ - `fromPath` (raw/custom) + `fromInternal` (single Link→Entry)
44
+ - `toPath` (raw/external) + `toInternal` (single Link→Entry)
45
+
46
+ Both internal fields are restricted via `linkContentType` validation to: page, article, articleType, person, tag, customType, tagType.
47
+
48
+ Updated:
49
+
50
+ - Migration `scripts/migrations/18-create-redirect-content-type.js` (now a clean create for the good model; delete any previous "Redirect" CT first if you ran the old multi-field version).
51
+ - `BaseRedirectSkeleton`, `baseRedirectConverter`, and `IRedirect` (provenance is now `fromInternal`/`toInternal` as `IInternalLink`).
52
+ - `UrlCalculators` now requires a `tagType(slug)` function (to support selecting tag type indexes as redirect targets).
53
+ - Added `baseTagTypeLinkConverter`, registered the resolver, extended `BaseLink` / `InternalType` / exported `ITagTypeLink` + guard.
54
+
55
+ Docs and the `se-marketing-sites-redirects` skill have been updated with the new CT shape, help text guidance, and testing steps.
56
+
57
+ Consumers will need to implement `tagType` in their urlCalculators (and pass it through `createBaseConverterContext`) to select Tag Type entries in redirects and to satisfy the updated type.
58
+
59
+ The runtime redirect map, middleware, and `buildRedirectMap` behaviour are unchanged.
60
+
61
+ ### Patch Changes
62
+
63
+ - Updated dependencies
64
+ - @se-studio/core-data-types@1.4.0
65
+
3
66
  ## 1.3.4
4
67
 
5
68
  ### Patch Changes
@@ -1 +1 @@
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"}
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,CA0C/F"}
@@ -11,7 +11,7 @@ import { basePageConverter, basePageLinkConverter, basePageVariantLinkConverter,
11
11
  import { basePersonConverter, basePersonLinkConverter } from '../converters/person';
12
12
  import { baseRedirectConverter } from '../converters/redirect';
13
13
  import { baseTagConverter, baseTagLinkConverter } from '../converters/tag';
14
- import { baseTagTypeConverter } from '../converters/tagType';
14
+ import { baseTagTypeConverter, baseTagTypeLinkConverter } from '../converters/tagType';
15
15
  /**
16
16
  * Creates a base converter context with default resolvers for all content types.
17
17
  *
@@ -43,6 +43,7 @@ export function createBaseConverterContext(urlCalculators) {
43
43
  linkResolver.set('pageVariant', basePageVariantLinkConverter);
44
44
  linkResolver.set('link', baseLinkConverter);
45
45
  linkResolver.set('customType', baseCustomTypeLinkConverter);
46
+ linkResolver.set('tagType', baseTagTypeLinkConverter);
46
47
  const contentResolver = new Map();
47
48
  contentResolver.set('collection', baseCollectionConverter);
48
49
  contentResolver.set('component', baseComponentConverter);
@@ -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,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,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;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;IAEpF,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;QACd,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC"}
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;QACd,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Provides type-safe functions for fetching content from Contentful
5
5
  * with support for caching, retry logic, and error handling.
6
6
  */
7
- export { buildRedirectMap, type RedirectMap, type RedirectMapEntry } from '../utils/redirectMap';
7
+ export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, type RedirectMap, type RedirectMapEntry, } from '../utils/redirectMap';
8
8
  export { contentfulArticleRest } from './article';
9
9
  export { type ArticleTypeFetchOptions, contentfulArticleTypeRest } from './article-type';
10
10
  export { contentfulAssetRest, isBrowserViewable, } from './asset';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,KAAK,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,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;AAEzD,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAChG,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,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,EAAE,KAAK,eAAe,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG3E,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,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,GAClB,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;AAEzD,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAChG,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,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,EAAE,KAAK,eAAe,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG3E,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
package/dist/api/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Provides type-safe functions for fetching content from Contentful
5
5
  * with support for caching, retry logic, and error handling.
6
6
  */
7
- export { buildRedirectMap } from '../utils/redirectMap';
7
+ export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, } from '../utils/redirectMap';
8
8
  // Single entity fetchers
9
9
  export { contentfulArticleRest } from './article';
10
10
  export { contentfulArticleTypeRest } from './article-type';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAA2C,MAAM,sBAAsB,CAAC;AACjG,yBAAyB;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAgC,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,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,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,qBAAqB;AACrB,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAA2B,MAAM,UAAU,CAAC;AACzE,UAAU;AACV,OAAO,EAAE,mBAAmB,EAAkD,MAAM,WAAW,CAAC;AAChG,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;AAEH,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,GAClB,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,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,qBAAqB;AACrB,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAA2B,MAAM,UAAU,CAAC;AACzE,UAAU;AACV,OAAO,EAAE,mBAAmB,EAAkD,MAAM,WAAW,CAAC;AAChG,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"}
@@ -8,9 +8,9 @@ export { buildRedirectMap, type RedirectMap, type RedirectMapEntry } from '../ut
8
8
  * Returns published redirects (when not in preview). The list is small by design
9
9
  * (typically < a few hundred rules) so a full enumeration with pagination is fine.
10
10
  *
11
- * The converter resolves any reference links (fromPage, toArticle, etc.) into
12
- * concrete fromPath / to strings so callers (build-time bake or future sync)
13
- * only ever see simple path → target maps.
11
+ * The converter resolves any fromInternal / toInternal reference into
12
+ * concrete fromPath / to strings (using the project's urlCalculators) so callers
13
+ * (build-time bake or future sync) only ever see simple path → target maps.
14
14
  */
15
15
  export declare function contentfulRedirectsRest(context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<CmsResponse<IRedirect[] | null>>;
16
16
  //# sourceMappingURL=redirects.d.ts.map
@@ -11,9 +11,9 @@ export { buildRedirectMap } from '../utils/redirectMap';
11
11
  * Returns published redirects (when not in preview). The list is small by design
12
12
  * (typically < a few hundred rules) so a full enumeration with pagination is fine.
13
13
  *
14
- * The converter resolves any reference links (fromPage, toArticle, etc.) into
15
- * concrete fromPath / to strings so callers (build-time bake or future sync)
16
- * only ever see simple path → target maps.
14
+ * The converter resolves any fromInternal / toInternal reference into
15
+ * concrete fromPath / to strings (using the project's urlCalculators) so callers
16
+ * (build-time bake or future sync) only ever see simple path → target maps.
17
17
  */
18
18
  export async function contentfulRedirectsRest(context, config, options) {
19
19
  const client = getContentfulClient(config, options.preview);
@@ -1,5 +1,5 @@
1
1
  import type { EntryFieldTypes, EntrySkeletonType } from 'contentful';
2
- import type { BaseArticleSkeleton, BaseArticleTypeSkeleton, BasePageSkeleton, BasePageVariantSkeleton, BasePersonSkeleton, BaseTagSkeleton } from './baseShared';
2
+ import type { BaseArticleSkeleton, BaseArticleTypeSkeleton, BasePageSkeleton, BasePageVariantSkeleton, BasePersonSkeleton, BaseTagSkeleton, BaseTagTypeSkeleton } from './baseShared';
3
3
  interface BaseLinkFields {
4
4
  /**
5
5
  * Field type definition for field 'name' (Name)
@@ -30,7 +30,7 @@ interface BaseLinkFields {
30
30
  * @name Internal
31
31
  * @localized false
32
32
  */
33
- internal?: EntryFieldTypes.EntryLink<BaseArticleSkeleton | BaseArticleTypeSkeleton | BasePageSkeleton | BasePageVariantSkeleton | BasePersonSkeleton | BaseTagSkeleton>;
33
+ internal?: EntryFieldTypes.EntryLink<BaseArticleSkeleton | BaseArticleTypeSkeleton | BasePageSkeleton | BasePageVariantSkeleton | BasePersonSkeleton | BaseTagSkeleton | BaseTagTypeSkeleton>;
34
34
  /**
35
35
  * Field type definition for field 'external' (External)
36
36
  * @name External
@@ -1 +1 @@
1
- {"version":3,"file":"baseLink.d.ts","sourceRoot":"","sources":["../../src/baseTypes/baseLink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB,UAAU,cAAc;IACtB;;;;OAIG;IACH,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7B;;;;OAIG;IACH,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAClC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,SAAS,CAChC,mBAAmB,GACnB,uBAAuB,GACvB,gBAAgB,GAChB,uBAAuB,GACvB,kBAAkB,GAClB,eAAe,CAClB,CAAC;IACF;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC;IACnC;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC;IACrC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C;;;;OAIG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC;IACvC;;;;OAIG;IACH,aAAa,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC;IAC1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC;;;;OAIG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAC3C;;;;OAIG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IACtC;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;CAC1C;AAED,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"baseLink.d.ts","sourceRoot":"","sources":["../../src/baseTypes/baseLink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,UAAU,cAAc;IACtB;;;;OAIG;IACH,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7B;;;;OAIG;IACH,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAClC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,SAAS,CAChC,mBAAmB,GACnB,uBAAuB,GACvB,gBAAgB,GAChB,uBAAuB,GACvB,kBAAkB,GAClB,eAAe,GACf,mBAAmB,CACtB,CAAC;IACF;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC;IACnC;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC;IACrC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C;;;;OAIG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC;IACvC;;;;OAIG;IACH,aAAa,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC;IAC1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC;;;;OAIG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAC3C;;;;OAIG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IACtC;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;CAC1C;AAED,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC"}
@@ -5,6 +5,7 @@ import type { BaseCustomTypeSkeleton } from './baseCustomType';
5
5
  import type { BasePageSkeleton } from './basePage';
6
6
  import type { BasePersonSkeleton } from './basePerson';
7
7
  import type { BaseTagSkeleton } from './baseTag';
8
+ import type { BaseTagTypeSkeleton } from './baseTagType';
8
9
  interface BaseRedirectFields {
9
10
  /**
10
11
  * Field type definition for field 'cmsLabel' (CMS Label)
@@ -16,88 +17,30 @@ interface BaseRedirectFields {
16
17
  * Field type definition for field 'fromPath' (From path (raw / custom))
17
18
  * @name From path (raw / custom)
18
19
  * @localized false
19
- * @summary Type a full path starting with / when not using one of the reference pickers below.
20
+ * @summary Type a full path starting with / when not using the From internal picker.
20
21
  */
21
22
  fromPath?: EntryFieldTypes.Symbol;
22
23
  /**
23
- * Field type definition for field 'fromPage' (From Page)
24
- * @name From Page
24
+ * Field type definition for field 'fromInternal' (From internal)
25
+ * @name From internal
25
26
  * @localized false
27
+ * @summary Single reference to a page, article, article type, person, tag, custom type or tag type.
26
28
  */
27
- fromPage?: EntryFieldTypes.EntryLink<BasePageSkeleton>;
28
- /**
29
- * Field type definition for field 'fromArticle' (From Article)
30
- * @name From Article
31
- * @localized false
32
- */
33
- fromArticle?: EntryFieldTypes.EntryLink<BaseArticleSkeleton>;
34
- /**
35
- * Field type definition for field 'fromArticleType' (From Article Type)
36
- * @name From Article Type
37
- * @localized false
38
- */
39
- fromArticleType?: EntryFieldTypes.EntryLink<BaseArticleTypeSkeleton>;
40
- /**
41
- * Field type definition for field 'fromPerson' (From Person)
42
- * @name From Person
43
- * @localized false
44
- */
45
- fromPerson?: EntryFieldTypes.EntryLink<BasePersonSkeleton>;
46
- /**
47
- * Field type definition for field 'fromTag' (From Tag)
48
- * @name From Tag
49
- * @localized false
50
- */
51
- fromTag?: EntryFieldTypes.EntryLink<BaseTagSkeleton>;
52
- /**
53
- * Field type definition for field 'fromCustomType' (From Custom Type)
54
- * @name From Custom Type
55
- * @localized false
56
- */
57
- fromCustomType?: EntryFieldTypes.EntryLink<BaseCustomTypeSkeleton>;
29
+ fromInternal?: EntryFieldTypes.EntryLink<BasePageSkeleton | BaseArticleSkeleton | BaseArticleTypeSkeleton | BasePersonSkeleton | BaseTagSkeleton | BaseCustomTypeSkeleton | BaseTagTypeSkeleton>;
58
30
  /**
59
31
  * Field type definition for field 'toPath' (To path or URL (raw))
60
32
  * @name To path or URL (raw)
61
33
  * @localized false
62
- * @summary Type a path (starting with /) or a full external https:// URL. Use a reference picker below for internal CMS pages/articles when possible.
34
+ * @summary Type a path (starting with /) or a full external https:// URL. Use the To internal picker for CMS destinations when possible.
63
35
  */
64
36
  toPath?: EntryFieldTypes.Symbol;
65
37
  /**
66
- * Field type definition for field 'toPage' (To Page)
67
- * @name To Page
68
- * @localized false
69
- */
70
- toPage?: EntryFieldTypes.EntryLink<BasePageSkeleton>;
71
- /**
72
- * Field type definition for field 'toArticle' (To Article)
73
- * @name To Article
74
- * @localized false
75
- */
76
- toArticle?: EntryFieldTypes.EntryLink<BaseArticleSkeleton>;
77
- /**
78
- * Field type definition for field 'toArticleType' (To Article Type)
79
- * @name To Article Type
80
- * @localized false
81
- */
82
- toArticleType?: EntryFieldTypes.EntryLink<BaseArticleTypeSkeleton>;
83
- /**
84
- * Field type definition for field 'toPerson' (To Person)
85
- * @name To Person
86
- * @localized false
87
- */
88
- toPerson?: EntryFieldTypes.EntryLink<BasePersonSkeleton>;
89
- /**
90
- * Field type definition for field 'toTag' (To Tag)
91
- * @name To Tag
92
- * @localized false
93
- */
94
- toTag?: EntryFieldTypes.EntryLink<BaseTagSkeleton>;
95
- /**
96
- * Field type definition for field 'toCustomType' (To Custom Type)
97
- * @name To Custom Type
38
+ * Field type definition for field 'toInternal' (To internal)
39
+ * @name To internal
98
40
  * @localized false
41
+ * @summary Single reference to a page, article, article type, person, tag, custom type or tag type.
99
42
  */
100
- toCustomType?: EntryFieldTypes.EntryLink<BaseCustomTypeSkeleton>;
43
+ toInternal?: EntryFieldTypes.EntryLink<BasePageSkeleton | BaseArticleSkeleton | BaseArticleTypeSkeleton | BasePersonSkeleton | BaseTagSkeleton | BaseCustomTypeSkeleton | BaseTagTypeSkeleton>;
101
44
  /**
102
45
  * Field type definition for field 'statusCode' (Status code)
103
46
  * @name Status code
@@ -1 +1 @@
1
- {"version":3,"file":"baseRedirect.d.ts","sourceRoot":"","sources":["../../src/baseTypes/baseRedirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,UAAU,kBAAkB;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAElC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAElC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAEvD;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAE7D;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAErE;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAE3D;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAErD;;;;OAIG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAEnE;;;;;OAKG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAEhC;;;;OAIG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAErD;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAE3D;;;;OAIG;IACH,aAAa,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAEnE;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAEzD;;;;OAIG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAEnD;;;;OAIG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAEjE;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAEpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC;IAEjC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,UAAU,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC"}
1
+ {"version":3,"file":"baseRedirect.d.ts","sourceRoot":"","sources":["../../src/baseTypes/baseRedirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,UAAU,kBAAkB;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAElC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAElC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,SAAS,CACpC,gBAAgB,GAChB,mBAAmB,GACnB,uBAAuB,GACvB,kBAAkB,GAClB,eAAe,GACf,sBAAsB,GACtB,mBAAmB,CACtB,CAAC;IAEF;;;;;OAKG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAEhC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,SAAS,CAClC,gBAAgB,GAChB,mBAAmB,GACnB,uBAAuB,GACvB,kBAAkB,GAClB,eAAe,GACf,sBAAsB,GACtB,mBAAmB,CACtB,CAAC;IAEF;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAEpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC;IAEjC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,UAAU,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC"}
@@ -4,6 +4,7 @@ export type { BasePageSkeleton } from './basePage';
4
4
  export type { BasePageVariantSkeleton } from './basePageVariant';
5
5
  export type { BasePersonSkeleton } from './basePerson';
6
6
  export type { BaseTagSkeleton } from './baseTag';
7
+ export type { BaseTagTypeSkeleton } from './baseTagType';
7
8
  import type { BaseArticleSkeleton } from './baseArticle';
8
9
  import type { BaseArticleTypeSkeleton } from './baseArticleType';
9
10
  import type { BaseCollectionSkeleton } from './baseCollection';
@@ -18,6 +19,7 @@ import type { BasePageSkeleton } from './basePage';
18
19
  import type { BasePageVariantSkeleton } from './basePageVariant';
19
20
  import type { BasePersonSkeleton } from './basePerson';
20
21
  import type { BaseTagSkeleton } from './baseTag';
22
+ import type { BaseTagTypeSkeleton } from './baseTagType';
21
23
  export type BaseContent = BaseCollectionSkeleton | BaseComponentSkeleton | BaseExternalComponentSkeleton | BaseExternalVideoSkeleton | BaseHtmlComponentSkeleton | BaseMediaSkeleton | BasePersonSkeleton;
22
- export type BaseLink = BaseArticleSkeleton | BaseArticleTypeSkeleton | BaseLinkSkeleton | BasePageSkeleton | BasePageVariantSkeleton | BasePersonSkeleton | BaseTagSkeleton | BaseCustomTypeSkeleton;
24
+ export type BaseLink = BaseArticleSkeleton | BaseArticleTypeSkeleton | BaseLinkSkeleton | BasePageSkeleton | BasePageVariantSkeleton | BasePersonSkeleton | BaseTagSkeleton | BaseTagTypeSkeleton | BaseCustomTypeSkeleton;
23
25
  //# sourceMappingURL=baseShared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseShared.d.ts","sourceRoot":"","sources":["../../src/baseTypes/baseShared.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,MAAM,WAAW,GACnB,sBAAsB,GACtB,qBAAqB,GACrB,6BAA6B,GAC7B,yBAAyB,GACzB,yBAAyB,GACzB,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,QAAQ,GAChB,mBAAmB,GACnB,uBAAuB,GACvB,gBAAgB,GAChB,gBAAgB,GAChB,uBAAuB,GACvB,kBAAkB,GAClB,eAAe,GACf,sBAAsB,CAAC"}
1
+ {"version":3,"file":"baseShared.d.ts","sourceRoot":"","sources":["../../src/baseTypes/baseShared.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,MAAM,WAAW,GACnB,sBAAsB,GACtB,qBAAqB,GACrB,6BAA6B,GAC7B,yBAAyB,GACzB,yBAAyB,GACzB,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,QAAQ,GAChB,mBAAmB,GACnB,uBAAuB,GACvB,gBAAgB,GAChB,gBAAgB,GAChB,uBAAuB,GACvB,kBAAkB,GAClB,eAAe,GACf,mBAAmB,GACnB,sBAAsB,CAAC"}
@@ -84,6 +84,7 @@ export type UrlCalculators = {
84
84
  person: (slug: string) => string;
85
85
  team: () => string;
86
86
  customType: (slug: string) => string;
87
+ tagType: (slug: string) => string;
87
88
  download: (assetId: string, filename: string) => string;
88
89
  };
89
90
  export type BaseConverterContext = {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/converters/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/converters/helpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/converters/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/converters/helpers.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,5 @@ export { mergeAlternatePageContentsInTree } from './pageVariantMerge';
21
21
  export type { IContentfulPerson } from './person';
22
22
  export { baseRedirectConverter } from './redirect';
23
23
  export { resolveLink, resolveLinks, resolveRichTextDocument, } from './resolver';
24
- export { baseTagTypeConverter } from './tagType';
24
+ export { baseTagTypeConverter, baseTagTypeLinkConverter } from './tagType';
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -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;AACjD,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,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,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AACtE,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,MAAM,WAAW,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,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjD,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,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,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AACtE,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"}
@@ -16,5 +16,5 @@ export { basePageConverter, calculatePageHref, calculatePageVariantHref, } from
16
16
  export { mergeAlternatePageContentsInTree } from './pageVariantMerge';
17
17
  export { baseRedirectConverter } from './redirect';
18
18
  export { resolveLink, resolveLinks, resolveRichTextDocument, } from './resolver';
19
- export { baseTagTypeConverter } from './tagType';
19
+ export { baseTagTypeConverter, baseTagTypeLinkConverter } from './tagType';
20
20
  //# sourceMappingURL=index.js.map
@@ -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;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,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,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,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,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAEtE,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"}
@@ -7,13 +7,13 @@ import type { ConverterContext } from './helpers';
7
7
  * Converts a Contentful redirect entry to an IRedirect object.
8
8
  *
9
9
  * The effective `fromPath` and `to` are always concrete strings:
10
- * - If a reference link (fromPage, toArticle, etc.) is populated, its resolved
11
- * IInternalLink.href is used (this is what makes "pick a page" work for
12
- * non-technical editors without them typing slugs).
13
- * - Otherwise the raw `fromPath` / `toPath` symbol is used (for old URLs,
10
+ * - If the single `fromInternal` / `toInternal` reference is populated, its
11
+ * resolved IInternalLink.href is used (this is what makes picking a page/article/tagType
12
+ * etc. work for non-technical editors without them typing slugs).
13
+ * - Otherwise the raw `fromPath` / `toPath` symbol is used (for old/vanity URLs,
14
14
  * external targets, etc.).
15
15
  *
16
- * Reference wins over raw when both are supplied (editors should normally
16
+ * Internal reference wins over raw when both are supplied (editors should normally
17
17
  * use one or the other; the UI help text will guide them).
18
18
  */
19
19
  export declare function baseRedirectConverter(context: ConverterContext, entry: Entry<BaseRedirectSkeleton, DefaultChainModifier, string>): IRedirect;
@@ -1 +1 @@
1
- {"version":3,"file":"redirect.d.ts","sourceRoot":"","sources":["../../src/converters/redirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAsB,MAAM,4BAA4B,CAAC;AAC/F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC/D,SAAS,CAuHX"}
1
+ {"version":3,"file":"redirect.d.ts","sourceRoot":"","sources":["../../src/converters/redirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAsB,MAAM,4BAA4B,CAAC;AAC/F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC/D,SAAS,CAoDX"}
@@ -3,13 +3,13 @@ import { resolveLink } from './resolver';
3
3
  * Converts a Contentful redirect entry to an IRedirect object.
4
4
  *
5
5
  * The effective `fromPath` and `to` are always concrete strings:
6
- * - If a reference link (fromPage, toArticle, etc.) is populated, its resolved
7
- * IInternalLink.href is used (this is what makes "pick a page" work for
8
- * non-technical editors without them typing slugs).
9
- * - Otherwise the raw `fromPath` / `toPath` symbol is used (for old URLs,
6
+ * - If the single `fromInternal` / `toInternal` reference is populated, its
7
+ * resolved IInternalLink.href is used (this is what makes picking a page/article/tagType
8
+ * etc. work for non-technical editors without them typing slugs).
9
+ * - Otherwise the raw `fromPath` / `toPath` symbol is used (for old/vanity URLs,
10
10
  * external targets, etc.).
11
11
  *
12
- * Reference wins over raw when both are supplied (editors should normally
12
+ * Internal reference wins over raw when both are supplied (editors should normally
13
13
  * use one or the other; the UI help text will guide them).
14
14
  */
15
15
  export function baseRedirectConverter(context, entry) {
@@ -18,64 +18,19 @@ export function baseRedirectConverter(context, entry) {
18
18
  throw new Error(`Invalid content type: expected "redirect", got "${sys.contentType.sys.id}"`);
19
19
  }
20
20
  const id = sys.id;
21
- const { fromPath: rawFromPath, fromPage: rawFromPage, fromArticle: rawFromArticle, fromArticleType: rawFromArticleType, fromPerson: rawFromPerson, fromTag: rawFromTag, fromCustomType: rawFromCustomType, toPath: rawToPath, toPage: rawToPage, toArticle: rawToArticle, toArticleType: rawToArticleType, toPerson: rawToPerson, toTag: rawToTag, toCustomType: rawToCustomType, statusCode, active, note, ...simpleFields } = fields;
22
- // Resolve any provided reference links (these already carry the correct .href
23
- // computed by the project's urlCalculators via the link converters).
24
- const fromPage = rawFromPage
25
- ? resolveLink(context, id, rawFromPage)
26
- : undefined;
27
- const fromArticle = rawFromArticle
28
- ? resolveLink(context, id, rawFromArticle)
29
- : undefined;
30
- const fromArticleType = rawFromArticleType
31
- ? resolveLink(context, id, rawFromArticleType)
32
- : undefined;
33
- const fromPerson = rawFromPerson
34
- ? resolveLink(context, id, rawFromPerson)
35
- : undefined;
36
- const fromTag = rawFromTag
37
- ? resolveLink(context, id, rawFromTag)
38
- : undefined;
39
- const fromCustomType = rawFromCustomType
40
- ? resolveLink(context, id, rawFromCustomType)
41
- : undefined;
42
- const toPage = rawToPage
43
- ? resolveLink(context, id, rawToPage)
44
- : undefined;
45
- const toArticle = rawToArticle
46
- ? resolveLink(context, id, rawToArticle)
47
- : undefined;
48
- const toArticleType = rawToArticleType
49
- ? resolveLink(context, id, rawToArticleType)
50
- : undefined;
51
- const toPerson = rawToPerson
52
- ? resolveLink(context, id, rawToPerson)
53
- : undefined;
54
- const toTag = rawToTag
55
- ? resolveLink(context, id, rawToTag)
56
- : undefined;
57
- const toCustomType = rawToCustomType
58
- ? resolveLink(context, id, rawToCustomType)
59
- : undefined;
60
- // Effective fromPath: prefer the first populated reference's href, fall back to raw symbol.
61
- // (We check in a deterministic order; projects rarely populate more than one.)
62
- const fromPath = fromPage?.href ||
63
- fromArticle?.href ||
64
- fromArticleType?.href ||
65
- fromPerson?.href ||
66
- fromTag?.href ||
67
- fromCustomType?.href ||
68
- rawFromPath ||
69
- '';
70
- // Effective to: prefer reference href, fall back to raw (which may be a full external URL).
71
- const to = toPage?.href ||
72
- toArticle?.href ||
73
- toArticleType?.href ||
74
- toPerson?.href ||
75
- toTag?.href ||
76
- toCustomType?.href ||
77
- rawToPath ||
78
- '';
21
+ const { fromPath: rawFromPath, fromInternal: rawFromInternal, toPath: rawToPath, toInternal: rawToInternal, statusCode, active, note, ...simpleFields } = fields;
22
+ // Resolve the (at most one) internal reference on each side. These carry the correct
23
+ // .href computed by the project's urlCalculators via the link converters.
24
+ const fromInternal = rawFromInternal
25
+ ? resolveLink(context, id, rawFromInternal)
26
+ : undefined;
27
+ const toInternal = rawToInternal
28
+ ? resolveLink(context, id, rawToInternal)
29
+ : undefined;
30
+ // Effective fromPath: prefer the internal reference's href, fall back to raw symbol.
31
+ const fromPath = fromInternal?.href || rawFromPath || '';
32
+ // Effective to: prefer internal reference href, fall back to raw (which may be a full external URL).
33
+ const to = toInternal?.href || rawToPath || '';
79
34
  const normalizedStatus = statusCode
80
35
  ? Number.parseInt(statusCode, 10)
81
36
  : 301;
@@ -87,18 +42,8 @@ export function baseRedirectConverter(context, entry) {
87
42
  statusCode: normalizedStatus,
88
43
  active: active ?? true,
89
44
  note: note ?? null,
90
- ...(fromPage ? { fromPage } : {}),
91
- ...(fromArticle ? { fromArticle } : {}),
92
- ...(fromArticleType ? { fromArticleType } : {}),
93
- ...(fromPerson ? { fromPerson } : {}),
94
- ...(fromTag ? { fromTag } : {}),
95
- ...(fromCustomType ? { fromCustomType } : {}),
96
- ...(toPage ? { toPage } : {}),
97
- ...(toArticle ? { toArticle } : {}),
98
- ...(toArticleType ? { toArticleType } : {}),
99
- ...(toPerson ? { toPerson } : {}),
100
- ...(toTag ? { toTag } : {}),
101
- ...(toCustomType ? { toCustomType } : {}),
45
+ ...(fromInternal ? { fromInternal } : {}),
46
+ ...(toInternal ? { toInternal } : {}),
102
47
  ...simpleFields,
103
48
  };
104
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redirect.js","sourceRoot":"","sources":["../../src/converters/redirect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redirect.js","sourceRoot":"","sources":["../../src/converters/redirect.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAyB,EACzB,KAAgE;IAEhE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE9B,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,mDAAmD,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IAElB,MAAM,EACJ,QAAQ,EAAE,WAAW,EACrB,YAAY,EAAE,eAAe,EAC7B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,aAAa,EACzB,UAAU,EACV,MAAM,EACN,IAAI,EACJ,GAAG,YAAY,EAChB,GAAG,MAAM,CAAC;IAEX,qFAAqF;IACrF,0EAA0E;IAC1E,MAAM,YAAY,GAAG,eAAe;QAClC,CAAC,CAAE,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,eAAe,CAA+B;QAC1E,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,UAAU,GAAG,aAAa;QAC9B,CAAC,CAAE,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,CAA+B;QACxE,CAAC,CAAC,SAAS,CAAC;IAEd,qFAAqF;IACrF,MAAM,QAAQ,GAAG,YAAY,EAAE,IAAI,IAAK,WAAkC,IAAI,EAAE,CAAC;IAEjF,qGAAqG;IACrG,MAAM,EAAE,GAAG,UAAU,EAAE,IAAI,IAAK,SAAgC,IAAI,EAAE,CAAC;IAEvE,MAAM,gBAAgB,GAAG,UAAU;QACjC,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAwB;QACzD,CAAC,CAAC,GAAG,CAAC;IAER,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,EAAE;QACF,QAAQ,EAAE,QAAQ,IAAK,WAAsB,IAAI,EAAE;QACnD,EAAE,EAAE,EAAE,IAAK,SAAoB,IAAI,EAAE;QACrC,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM,IAAI,IAAI;QACtB,IAAI,EAAG,IAA2B,IAAI,IAAI;QAC1C,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,YAAY;KAChB,CAAC;AACJ,CAAC"}
@@ -1,8 +1,15 @@
1
- import type { IBaseTagType } from '@se-studio/core-data-types';
1
+ import type { IBaseTagType, IInternalLink } from '@se-studio/core-data-types';
2
2
  import type { Entry } from 'contentful';
3
3
  import type { DefaultChainModifier } from '../api';
4
4
  import type { BaseCustomTypeSkeleton } from '../baseTypes/baseCustomType';
5
5
  import type { BaseTagTypeSkeleton } from '../baseTypes/baseTagType';
6
6
  import { type ConverterContext } from './helpers';
7
7
  export declare function baseTagTypeConverter(context: ConverterContext, entry: Entry<BaseTagTypeSkeleton, DefaultChainModifier, string>, customTypeEntry?: Entry<BaseCustomTypeSkeleton, DefaultChainModifier, string>): IBaseTagType;
8
+ /**
9
+ * Converts a Contentful tagType entry to an IInternalLink (for use as redirect target,
10
+ * navigation internal link, etc.).
11
+ *
12
+ * Projects must implement `urlCalculators.tagType(slug)` for the href to be correct.
13
+ */
14
+ export declare function baseTagTypeLinkConverter(context: ConverterContext, entry: Entry<BaseTagTypeSkeleton, DefaultChainModifier, string>): IInternalLink;
8
15
  //# sourceMappingURL=tagType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tagType.d.ts","sourceRoot":"","sources":["../../src/converters/tagType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIvE,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAC/D,eAAe,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC5E,YAAY,CAgCd"}
1
+ {"version":3,"file":"tagType.d.ts","sourceRoot":"","sources":["../../src/converters/tagType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAU,MAAM,4BAA4B,CAAC;AACtF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAuB,KAAK,gBAAgB,EAAsB,MAAM,WAAW,CAAC;AAI3F,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAC/D,eAAe,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC5E,YAAY,CAgCd;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC9D,aAAa,CAqBf"}
@@ -1,4 +1,4 @@
1
- import { addPositionMetadata } from './helpers';
1
+ import { addPositionMetadata, createInternalLink } from './helpers';
2
2
  import { resolvePageContent } from './resolver';
3
3
  import { resolveTemplate } from './template';
4
4
  export function baseTagTypeConverter(context, entry, customTypeEntry) {
@@ -24,4 +24,23 @@ export function baseTagTypeConverter(context, entry, customTypeEntry) {
24
24
  ...(contents.length > 0 && { contents }),
25
25
  };
26
26
  }
27
+ /**
28
+ * Converts a Contentful tagType entry to an IInternalLink (for use as redirect target,
29
+ * navigation internal link, etc.).
30
+ *
31
+ * Projects must implement `urlCalculators.tagType(slug)` for the href to be correct.
32
+ */
33
+ export function baseTagTypeLinkConverter(context, entry) {
34
+ const { sys, fields } = entry;
35
+ if (sys.contentType.sys.id !== 'tagType') {
36
+ throw new Error(`Invalid content type: expected "tagType", got "${sys.contentType.sys.id}"`);
37
+ }
38
+ const { name, slug, show, ...simpleFields } = fields;
39
+ return createInternalLink(sys.id, {
40
+ name,
41
+ title: name,
42
+ slug: slug ?? '',
43
+ ...simpleFields,
44
+ }, context, context.urlCalculators.tagType(slug ?? ''), 'TagType', { show });
45
+ }
27
46
  //# sourceMappingURL=tagType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tagType.js","sourceRoot":"","sources":["../../src/converters/tagType.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAyB,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,KAA+D,EAC/D,eAA6E;IAE7E,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACnB,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,iBAAiB,EAAE,YAAY,EAC/B,mBAAmB,EAAE,eAAe,GACrC,GAAG,MAAM,CAAC;IAEX,oDAAoD;IACpD,IAAI,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClD,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,UAAU,GACd,eAAe;QACb,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;SAC/C,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3D,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IAErF,OAAO;QACL,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,IAAI,IAAI,IAAI;QAClB,IAAI;QACJ,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;KACzC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tagType.js","sourceRoot":"","sources":["../../src/converters/tagType.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAyB,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,KAA+D,EAC/D,eAA6E;IAE7E,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACnB,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,iBAAiB,EAAE,YAAY,EAC/B,mBAAmB,EAAE,eAAe,GACrC,GAAG,MAAM,CAAC;IAEX,oDAAoD;IACpD,IAAI,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClD,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,UAAU,GACd,eAAe;QACb,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;SAC/C,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3D,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IAErF,OAAO;QACL,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,IAAI,IAAI,IAAI;QAClB,IAAI;QACJ,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;KACzC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAyB,EACzB,KAA+D;IAE/D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9B,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;IAErD,OAAO,kBAAkB,CACvB,GAAG,CAAC,EAAE,EACN;QACE,IAAI;QACJ,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,GAAG,YAAY;KAChB,EACD,OAAO,EACP,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAC1C,SAAS,EACT,EAAE,IAAI,EAAE,CACT,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -25,5 +25,5 @@ export { type BaseConverterContext, baseCollectionConverter, baseComponentConver
25
25
  export { AllTags, ArticleTag, ArticleTypeTag, AssetTag, articleTag, articleTypeIndexTag, articleTypeTag, assetTag, BannerTag, CustomTypeTag, customTypeTag, GlobalTag, getCacheTags, getCacheTagsForPreview, getCacheTagsForProduction, LocationTag, locationTag, NavigationTag, PageTag, PageVariantTag, PersonTag, pageTag, pageVariantTag, personTag, TagTag, TemplateTag, tagTag, templateTag, } from './revalidation';
26
26
  export type { CmsError, CmsResponse, ContentfulConfig, FetchOptions, RetryConfig, } from './types';
27
27
  export { type ArticleForTagSelection, AuthenticationError, arrayOrUndefined, ContentfulError, calculateBackoffDelay, EntryNotFoundError, filterVisibleTags, getPrimaryTag, getRetryAfter, isContentfulError, isRateLimitError, isRetryableError, isTagShowEnabled, isTagVisible, isValidDate, notEmpty, type PrimaryTagSelector, RateLimitError, RateLimiter, safeDate, type TagVisibilityFields, ValidationError, withRetry, } from './utils';
28
- export { buildRedirectMap, type RedirectMap, type RedirectMapEntry } from './utils/redirectMap';
28
+ export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, type RedirectMap, type RedirectMapEntry, } from './utils/redirectMap';
29
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,mCAAmC,EAEnC,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,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,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EAEnB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAClB,iBAAiB,EACjB,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,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,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,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,OAAO,EACP,UAAU,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY,EAEZ,sBAAsB,EACtB,yBAAyB,EACzB,WAAW,EACX,WAAW,EACX,aAAa,EAEb,OAAO,EACP,cAAc,EACd,SAAS,EACT,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,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
@@ -35,5 +35,5 @@ getCacheTagsForPreview, getCacheTagsForProduction, LocationTag, locationTag, Nav
35
35
  PageTag, PageVariantTag, PersonTag, pageTag, pageVariantTag, personTag, TagTag, TemplateTag, tagTag, templateTag, } from './revalidation';
36
36
  // Error handling and retry utilities
37
37
  export { AuthenticationError, arrayOrUndefined, ContentfulError, calculateBackoffDelay, EntryNotFoundError, filterVisibleTags, getPrimaryTag, getRetryAfter, isContentfulError, isRateLimitError, isRetryableError, isTagShowEnabled, isTagVisible, isValidDate, notEmpty, RateLimitError, RateLimiter, safeDate, ValidationError, withRetry, } from './utils';
38
- export { buildRedirectMap } from './utils/redirectMap';
38
+ export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, } from './utils/redirectMap';
39
39
  //# sourceMappingURL=index.js.map
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,EAKL,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,mCAAmC;AACnC,2BAA2B;AAC3B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EAErB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB;AACnB,UAAU;AACV,mBAAmB,EAKnB,iBAAiB,GAYlB,MAAM,OAAO,CAAC;AAGf,iBAAiB;AACjB,OAAO,EAEL,sBAAsB,EACtB,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,oBAAoB;AACpB,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,iBAAiB,EAEjB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EAOtB,WAAW,EACX,gCAAgC,EAChC,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,GAExB,MAAM,cAAc,CAAC;AACtB,yBAAyB;AACzB,OAAO,EACL,OAAO,EACP,UAAU,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY;AACZ,oBAAoB;AACpB,sBAAsB,EACtB,yBAAyB,EACzB,WAAW,EACX,WAAW,EACX,aAAa;AACb,8BAA8B;AAC9B,OAAO,EACP,cAAc,EACd,SAAS,EACT,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,GACZ,MAAM,gBAAgB,CAAC;AASxB,qCAAqC;AACrC,OAAO,EAEL,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,EAER,cAAc,EACd,WAAW,EACX,QAAQ,EAER,eAAe,EACf,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAA2C,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,gBAAgB;AAChB,OAAO,EAKL,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,mCAAmC;AACnC,2BAA2B;AAC3B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EAErB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB;AACnB,UAAU;AACV,mBAAmB,EAKnB,iBAAiB,GAYlB,MAAM,OAAO,CAAC;AAGf,iBAAiB;AACjB,OAAO,EAEL,sBAAsB,EACtB,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,oBAAoB;AACpB,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,iBAAiB,EAEjB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EAOtB,WAAW,EACX,gCAAgC,EAChC,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,GAExB,MAAM,cAAc,CAAC;AACtB,yBAAyB;AACzB,OAAO,EACL,OAAO,EACP,UAAU,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY;AACZ,oBAAoB;AACpB,sBAAsB,EACtB,yBAAyB,EACzB,WAAW,EACX,WAAW,EACX,aAAa;AACb,8BAA8B;AAC9B,OAAO,EACP,cAAc,EACd,SAAS,EACT,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,GACZ,MAAM,gBAAgB,CAAC;AASxB,qCAAqC;AACrC,OAAO,EAEL,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,EAER,cAAc,EACd,WAAW,EACX,QAAQ,EAER,eAAe,EACf,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAChB,sCAAsC,GAGvC,MAAM,qBAAqB,CAAC"}
@@ -14,12 +14,27 @@ export type RedirectMap = Record<string, RedirectMapEntry>;
14
14
  *
15
15
  * - Filters out inactive redirects.
16
16
  * - Prefers explicit statusCode; defaults to 301.
17
- * - Does light normalization (ensures leading /; the app's trailingSlash: true
18
- * convention means callers should store rules with trailing slashes for
19
- * internal paths).
17
+ * - Normalizes paths: ensures leading `/` (unless external) and trailing `/`
18
+ * for internal paths (aligns with the project's trailingSlash: true convention
19
+ * used by UrlCalculators and sitemap hrefs).
20
+ * - Drops self-redirects (A → A) after normalization.
21
+ * - Detects and drops rules that participate in redirect cycles (A → B → A, etc.).
22
+ * A console warning is emitted for cycles (visible during build/generate scripts).
20
23
  *
21
- * This is intentionally side-effect free and safe to run in a Next.js build
22
- * script or edge middleware context.
24
+ * This is intentionally side-effect free (except build-visible warnings) and safe
25
+ * to run in a Next.js build script or edge middleware context.
23
26
  */
24
27
  export declare function buildRedirectMap(redirects: IRedirect[] | null | undefined): RedirectMap;
28
+ /**
29
+ * Filter a list of sitemap-like entries, removing any whose `url` (after light
30
+ * normalization for trailing slash) is the source ("from") of an active redirect.
31
+ *
32
+ * Use this (or pass `redirectMap` to `getSitemapEntries`) so that URLs which
33
+ * redirect away do not appear in your sitemap.
34
+ *
35
+ * Works for any `{ url: string }` shape (SitemapEntry, ISitemapEntry, etc.).
36
+ */
37
+ export declare function filterSitemapEntriesExcludingRedirects<T extends {
38
+ url: string;
39
+ }>(entries: T[], redirectMap: RedirectMap): T[];
25
40
  //# sourceMappingURL=redirectMap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redirectMap.d.ts","sourceRoot":"","sources":["../../src/utils/redirectMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CAC/B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,CA0BvF"}
1
+ {"version":3,"file":"redirectMap.d.ts","sourceRoot":"","sources":["../../src/utils/redirectMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CAC/B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAW3D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,CA8EvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,sCAAsC,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAC9E,OAAO,EAAE,CAAC,EAAE,EACZ,WAAW,EAAE,WAAW,GACvB,CAAC,EAAE,CAoBL"}
@@ -1,15 +1,29 @@
1
+ function normalizeRedirectPath(p) {
2
+ if (!p)
3
+ return '';
4
+ let s = p.trim();
5
+ const isExternal = /^https?:\/\//i.test(s);
6
+ if (!isExternal && !s.startsWith('/'))
7
+ s = `/${s}`;
8
+ if (!isExternal && !s.endsWith('/'))
9
+ s = `${s}/`;
10
+ return s;
11
+ }
1
12
  /**
2
13
  * Pure helper that turns a list of IRedirect (from Contentful) into the simple
3
14
  * map used by middleware at runtime or baked into a static module at build.
4
15
  *
5
16
  * - Filters out inactive redirects.
6
17
  * - Prefers explicit statusCode; defaults to 301.
7
- * - Does light normalization (ensures leading /; the app's trailingSlash: true
8
- * convention means callers should store rules with trailing slashes for
9
- * internal paths).
18
+ * - Normalizes paths: ensures leading `/` (unless external) and trailing `/`
19
+ * for internal paths (aligns with the project's trailingSlash: true convention
20
+ * used by UrlCalculators and sitemap hrefs).
21
+ * - Drops self-redirects (A → A) after normalization.
22
+ * - Detects and drops rules that participate in redirect cycles (A → B → A, etc.).
23
+ * A console warning is emitted for cycles (visible during build/generate scripts).
10
24
  *
11
- * This is intentionally side-effect free and safe to run in a Next.js build
12
- * script or edge middleware context.
25
+ * This is intentionally side-effect free (except build-visible warnings) and safe
26
+ * to run in a Next.js build script or edge middleware context.
13
27
  */
14
28
  export function buildRedirectMap(redirects) {
15
29
  const map = {};
@@ -19,21 +33,97 @@ export function buildRedirectMap(redirects) {
19
33
  for (const r of redirects) {
20
34
  if (r.active === false)
21
35
  continue;
22
- let from = r.fromPath || '';
36
+ const from = normalizeRedirectPath(r.fromPath || '');
23
37
  if (!from)
24
38
  continue;
25
- if (!from.startsWith('/'))
26
- from = `/${from}`;
27
- // Basic self-loop guard (don't bake a rule that points to itself)
28
- const to = r.to || '';
39
+ const to = normalizeRedirectPath(r.to || '');
29
40
  if (!to)
30
41
  continue;
31
- if (to === from)
42
+ // Self-loop guard (after normalization)
43
+ if (from === to)
32
44
  continue;
33
45
  const status = (r.statusCode ?? 301);
34
46
  // Last one wins if duplicates (editors should avoid); keeps it simple.
35
47
  map[from] = { to, status };
36
48
  }
49
+ // Cycle detection: walk the graph of internal redirects and drop any 'from' that
50
+ // participates in a cycle. We do this after the initial map so we have a clean
51
+ // from->to graph of only the candidates.
52
+ const fromTo = {};
53
+ for (const [f, e] of Object.entries(map)) {
54
+ // Only follow if the target is itself a redirect source (internal hop)
55
+ if (map[e.to]) {
56
+ fromTo[f] = e.to;
57
+ }
58
+ }
59
+ function findCycle(start) {
60
+ const path = [];
61
+ const seen = new Set();
62
+ let cur = start;
63
+ while (cur) {
64
+ if (seen.has(cur)) {
65
+ // cycle detected; return the cycle portion
66
+ const idx = path.indexOf(cur);
67
+ return idx >= 0 ? path.slice(idx).concat(cur) : path.concat(cur);
68
+ }
69
+ seen.add(cur);
70
+ path.push(cur);
71
+ cur = fromTo[cur];
72
+ }
73
+ return null;
74
+ }
75
+ const cyclicFroms = new Set();
76
+ for (const f of Object.keys(fromTo)) {
77
+ if (!cyclicFroms.has(f)) {
78
+ const cycle = findCycle(f);
79
+ if (cycle) {
80
+ for (const node of cycle) {
81
+ if (fromTo[node] !== undefined)
82
+ cyclicFroms.add(node);
83
+ }
84
+ }
85
+ }
86
+ }
87
+ if (cyclicFroms.size > 0) {
88
+ if (typeof console !== 'undefined' && console.warn) {
89
+ console.warn(`[redirects] Dropping ${cyclicFroms.size} redirect rule(s) that participate in cycle(s):`, Array.from(cyclicFroms));
90
+ }
91
+ for (const bad of cyclicFroms) {
92
+ delete map[bad];
93
+ }
94
+ }
37
95
  return map;
38
96
  }
97
+ /**
98
+ * Filter a list of sitemap-like entries, removing any whose `url` (after light
99
+ * normalization for trailing slash) is the source ("from") of an active redirect.
100
+ *
101
+ * Use this (or pass `redirectMap` to `getSitemapEntries`) so that URLs which
102
+ * redirect away do not appear in your sitemap.
103
+ *
104
+ * Works for any `{ url: string }` shape (SitemapEntry, ISitemapEntry, etc.).
105
+ */
106
+ export function filterSitemapEntriesExcludingRedirects(entries, redirectMap) {
107
+ if (!redirectMap || Object.keys(redirectMap).length === 0) {
108
+ return entries;
109
+ }
110
+ const froms = new Set(Object.keys(redirectMap));
111
+ return entries.filter((entry) => {
112
+ const u = entry.url || '';
113
+ if (!u)
114
+ return true;
115
+ if (froms.has(u))
116
+ return false;
117
+ // Robustness for trailing slash differences (map keys are normalized with trailing / for internals)
118
+ if (u.endsWith('/')) {
119
+ if (froms.has(u.slice(0, -1)))
120
+ return false;
121
+ }
122
+ else {
123
+ if (froms.has(`${u}/`))
124
+ return false;
125
+ }
126
+ return true;
127
+ });
128
+ }
39
129
  //# sourceMappingURL=redirectMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redirectMap.js","sourceRoot":"","sources":["../../src/utils/redirectMap.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAyC;IACxE,MAAM,GAAG,GAAgB,EAAE,CAAC;IAE5B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK;YAAE,SAAS;QAEjC,IAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAE7C,kEAAkE;QAClE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,IAAI,EAAE,KAAK,IAAI;YAAE,SAAS;QAE1B,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAA+B,CAAC;QAEnE,uEAAuE;QACvE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"redirectMap.js","sourceRoot":"","sources":["../../src/utils/redirectMap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/contentful-rest-api",
3
- "version": "1.3.4",
3
+ "version": "1.5.1",
4
4
  "description": "Type-safe Contentful REST API client with caching and rate limiting for Next.js applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -51,7 +51,7 @@
51
51
  "@contentful/rich-text-types": "^17.2.7",
52
52
  "contentful": "^11.12.3",
53
53
  "server-only": "0.0.1",
54
- "@se-studio/core-data-types": "1.3.1"
54
+ "@se-studio/core-data-types": "1.4.1"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "next": ">=15.5.0"