@se-studio/contentful-rest-api 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @se-studio/contentful-rest-api
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - feat: support slug-based and tag type filtering for related articles (plus strict author matching)
8
+
9
+ **@se-studio/contentful-rest-api**
10
+
11
+ - Extended `RelatedArticlesOptions` and `filterRelatedArticles` with `articleTypeSlugs`, `tagSlugs`, `tagTypeIds`/`tagTypeSlugs`, `authorSlugs`, and `strictAuthorMatch` (OR semantics with the existing ID-based filters).
12
+ - Tag scoring now correctly counts _distinct_ tags (prevents double-counting when the same tag matches via both an ID and a slug).
13
+ - Updated logging and the `@example` in the JSDoc.
14
+
15
+ **@se-studio/core-ui**
16
+
17
+ - Extended `LinkFetchOptions` (used by `getAll*Links` and `FetchHelpers` / `rendererConfig.fetchHelpers`) with the full set of related article filter fields. Added clear JSDoc noting that the article-specific filters only take effect for `getAllArticleLinks`.
18
+ - `createAppHelpers` now wraps `getAllArticleLinks` so that when any filter criteria (IDs or slugs for types/tags/authors/tagTypes, `strictAuthorMatch`, `excludeArticleIds`, `before`/`after`, `count`) are passed, it fetches the base list then runs it through `filterRelatedArticles` (preserving `errors` and correctly handling `allowUnindexed`).
19
+ - Re-exported `RelatedArticlesOptions` and `filterRelatedArticles` from `@se-studio/core-ui` for convenient use in apps.
20
+ - Added comprehensive tests covering the new filter combinations and the `getAllArticleLinks` wrapper integration.
21
+ - Minor hygiene improvements (import ordering per surgical changes guideline, one-line note that internal `getRelatedArticles`/`getRelatedPeople` now benefit from the richer filter).
22
+
23
+ This enables much more flexible "related content" collections and custom article lists directly from `fetchHelpers.getAllArticleLinks(...)` (or the app helpers) without duplicating filtering/ranking logic.
24
+
3
25
  ## 1.1.2
4
26
 
5
27
  ### Patch Changes
@@ -13,7 +13,12 @@ import type { RelatedArticlesOptions } from './types';
13
13
  * ```ts
14
14
  * const relatedArticles = filterRelatedArticles(allArticles, {
15
15
  * articleTypeIds: ['blog-type-id'],
16
- * tagIds: ['tag-1', 'tag-2'],
16
+ * articleTypeSlugs: ['resources/news'],
17
+ * tagIds: ['tag-1'],
18
+ * tagSlugs: ['tag-2'],
19
+ * tagTypeSlugs: ['condition'],
20
+ * authorSlugs: ['alice'],
21
+ * strictAuthorMatch: true,
17
22
  * excludeArticleIds: [currentArticle.id],
18
23
  * count: 3,
19
24
  * });
@@ -1 +1 @@
1
- {"version":3,"file":"related-articles.d.ts","sourceRoot":"","sources":["../../src/api/related-articles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,EAAE,sBAAsB,GAC9B,YAAY,EAAE,CAwGhB"}
1
+ {"version":3,"file":"related-articles.d.ts","sourceRoot":"","sources":["../../src/api/related-articles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,EAAE,sBAAsB,GAC9B,YAAY,EAAE,CA6JhB"}
@@ -12,21 +12,31 @@ import { getArticleAuthors } from '@se-studio/core-data-types';
12
12
  * ```ts
13
13
  * const relatedArticles = filterRelatedArticles(allArticles, {
14
14
  * articleTypeIds: ['blog-type-id'],
15
- * tagIds: ['tag-1', 'tag-2'],
15
+ * articleTypeSlugs: ['resources/news'],
16
+ * tagIds: ['tag-1'],
17
+ * tagSlugs: ['tag-2'],
18
+ * tagTypeSlugs: ['condition'],
19
+ * authorSlugs: ['alice'],
20
+ * strictAuthorMatch: true,
16
21
  * excludeArticleIds: [currentArticle.id],
17
22
  * count: 3,
18
23
  * });
19
24
  * ```
20
25
  */
21
26
  export function filterRelatedArticles(articles, options) {
22
- const { excludeArticleIds, articleTypeIds: rawArticleTypeIds, tagIds: rawTagIds, authorIds: rawAuthorIds, before, after, count, } = options;
23
- // Extract and deduplicate IDs from link objects
27
+ const { excludeArticleIds, articleTypeIds: rawArticleTypeIds, articleTypeSlugs: rawArticleTypeSlugs, tagIds: rawTagIds, tagSlugs: rawTagSlugs, tagTypeIds: rawTagTypeIds, tagTypeSlugs: rawTagTypeSlugs, authorIds: rawAuthorIds, authorSlugs: rawAuthorSlugs, strictAuthorMatch, before, after, count, } = options;
28
+ // Extract and deduplicate IDs/slugs
24
29
  const excludeIds = excludeArticleIds ? [...new Set(excludeArticleIds)] : [];
25
30
  const articleTypeIds = rawArticleTypeIds ? [...new Set(rawArticleTypeIds)] : [];
31
+ const articleTypeSlugs = rawArticleTypeSlugs ? [...new Set(rawArticleTypeSlugs)] : [];
26
32
  const tagIds = rawTagIds ? [...new Set(rawTagIds)] : [];
33
+ const tagSlugs = rawTagSlugs ? [...new Set(rawTagSlugs)] : [];
34
+ const tagTypeIds = rawTagTypeIds ? [...new Set(rawTagTypeIds)] : [];
35
+ const tagTypeSlugs = rawTagTypeSlugs ? [...new Set(rawTagTypeSlugs)] : [];
27
36
  const authorIds = rawAuthorIds ? [...new Set(rawAuthorIds)] : [];
37
+ const authorSlugs = rawAuthorSlugs ? [...new Set(rawAuthorSlugs)] : [];
28
38
  if (process.env.LOG_RELATED_ARTICLES) {
29
- console.log(`[RelatedArticles:filter] input: ${articles.length} articles, options: articleTypes=${(rawArticleTypeIds ?? []).join(',') || 'none'} tags=${(rawTagIds ?? []).join(',') || 'none'} authors=${(rawAuthorIds ?? []).join(',') || 'none'} count=${count ?? 'all'}`);
39
+ console.log(`[RelatedArticles:filter] input: ${articles.length} articles, options: articleTypes=${[...(rawArticleTypeIds ?? []), ...(rawArticleTypeSlugs ?? [])].join(',') || 'none'} tags=${[...(rawTagIds ?? []), ...(rawTagSlugs ?? [])].join(',') || 'none'} tagTypes=${[...(rawTagTypeIds ?? []), ...(rawTagTypeSlugs ?? [])].join(',') || 'none'} authors=${[...(rawAuthorIds ?? []), ...(rawAuthorSlugs ?? [])].join(',') || 'none'} strictAuthorMatch=${strictAuthorMatch ?? false} count=${count ?? 'all'}`);
30
40
  }
31
41
  // Score and filter articles
32
42
  const scoredArticles = articles
@@ -40,9 +50,15 @@ export function filterRelatedArticles(articles, options) {
40
50
  if (excludeIds.length > 0 && excludeIds.includes(article.id)) {
41
51
  return null;
42
52
  }
43
- // Filter: Article type (match any of the provided types)
44
- if (articleTypeIds.length > 0) {
45
- if (!article.articleType?.id || !articleTypeIds.includes(article.articleType.id)) {
53
+ // Filter: Article type (match any of the provided types by ID or slug)
54
+ if (articleTypeIds.length > 0 || articleTypeSlugs.length > 0) {
55
+ const matchesById = articleTypeIds.length > 0 &&
56
+ !!article.articleType?.id &&
57
+ articleTypeIds.includes(article.articleType.id);
58
+ const matchesBySlug = articleTypeSlugs.length > 0 &&
59
+ !!article.articleType?.slug &&
60
+ articleTypeSlugs.includes(article.articleType.slug);
61
+ if (!matchesById && !matchesBySlug) {
46
62
  return null;
47
63
  }
48
64
  }
@@ -56,21 +72,52 @@ export function filterRelatedArticles(articles, options) {
56
72
  return null;
57
73
  }
58
74
  }
59
- // Filter + score: Tag matching (must match at least one; more matches = higher score)
60
- if (tagIds.length > 0) {
61
- const articleTagIds = article.tags?.map((tag) => tag.id) ?? [];
62
- const matchingTags = tagIds.filter((tagId) => articleTagIds.includes(tagId));
63
- if (matchingTags.length === 0) {
75
+ // Filter + score: Tag matching by ID or slug (must match at least one; more matches = higher score)
76
+ if (tagIds.length > 0 || tagSlugs.length > 0) {
77
+ const articleTags = article.tags ?? [];
78
+ const matchingTagIds = new Set();
79
+ if (tagIds.length > 0) {
80
+ for (const id of tagIds) {
81
+ const tag = articleTags.find((t) => t.id === id);
82
+ if (tag?.id)
83
+ matchingTagIds.add(tag.id);
84
+ }
85
+ }
86
+ if (tagSlugs.length > 0) {
87
+ for (const slug of tagSlugs) {
88
+ const tag = articleTags.find((t) => t.slug === slug);
89
+ if (tag?.id)
90
+ matchingTagIds.add(tag.id);
91
+ }
92
+ }
93
+ const totalMatches = matchingTagIds.size;
94
+ if (totalMatches === 0) {
64
95
  return null;
65
96
  }
66
- score += matchingTags.length * 10; // Each matching tag adds 10 points
97
+ score += totalMatches * 10; // Each matching *distinct* tag adds 10 points
67
98
  }
68
- // Score: Author matching (match any of the provided authors)
69
- if (authorIds.length > 0) {
70
- const articleAuthorIds = getArticleAuthors(article)
71
- .map((person) => person.id)
72
- .filter(Boolean);
73
- if (articleAuthorIds.some((id) => authorIds.includes(id))) {
99
+ // Filter: Tag type matching (hard filter no scoring)
100
+ if (tagTypeIds.length > 0 || tagTypeSlugs.length > 0) {
101
+ const articleTags = article.tags ?? [];
102
+ const matchesById = tagTypeIds.length > 0 &&
103
+ articleTags.some((t) => t.tagType?.id && tagTypeIds.includes(t.tagType.id));
104
+ const matchesBySlug = tagTypeSlugs.length > 0 &&
105
+ articleTags.some((t) => t.tagType?.slug && tagTypeSlugs.includes(t.tagType.slug));
106
+ if (!matchesById && !matchesBySlug) {
107
+ return null;
108
+ }
109
+ }
110
+ // Filter/score: Author matching by ID or slug
111
+ if (authorIds.length > 0 || authorSlugs.length > 0) {
112
+ const articleAuthors = getArticleAuthors(article);
113
+ const matchesById = authorIds.length > 0 && articleAuthors.some((p) => p.id && authorIds.includes(p.id));
114
+ const matchesBySlug = authorSlugs.length > 0 &&
115
+ articleAuthors.some((p) => p.slug && authorSlugs.includes(p.slug));
116
+ const hasMatch = matchesById || matchesBySlug;
117
+ if (strictAuthorMatch && !hasMatch) {
118
+ return null;
119
+ }
120
+ if (hasMatch) {
74
121
  score += 5; // Matching author adds 5 points
75
122
  }
76
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"related-articles.js","sourceRoot":"","sources":["../../src/api/related-articles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,4BAA4B,CAAC;AAGlF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAwB,EACxB,OAA+B;IAE/B,MAAM,EACJ,iBAAiB,EACjB,cAAc,EAAE,iBAAiB,EACjC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,YAAY,EACvB,MAAM,EACN,KAAK,EACL,KAAK,GACN,GAAG,OAAO,CAAC;IAEZ,gDAAgD;IAChD,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CACT,mCAAmC,QAAQ,CAAC,MAAM,oCAAoC,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,UAAU,KAAK,IAAI,KAAK,EAAE,CAChQ,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,cAAc,GAAG,QAAQ;SAC5B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,+DAA+D;QAC/D,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,oCAAoC;QACpC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yDAAyD;QACzD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjF,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,MAAM,IAAI,WAAW,GAAG,MAAM,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,KAAK,IAAI,WAAW,GAAG,KAAK,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,sFAAsF;QACtF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,mCAAmC;QACxE,CAAC;QAED,6DAA6D;QAC7D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC;iBAChD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;iBAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;YACnB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC1D,KAAK,IAAI,CAAC,CAAC,CAAC,gCAAgC;YAC9C,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAoD,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAErF,wDAAwD;IACxD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3B,CAAC;QACD,mDAAmD;QACnD,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,YAAY,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CACT,mCAAmC,cAAc,CAAC,MAAM,sBAAsB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAC9J,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,MAAM,WAAW,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IAE1F,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"related-articles.js","sourceRoot":"","sources":["../../src/api/related-articles.ts"],"names":[],"mappings":"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"}
@@ -56,12 +56,24 @@ export interface SitemapConfig {
56
56
  export interface RelatedArticlesOptions {
57
57
  /** Articles to exclude from results */
58
58
  excludeArticleIds?: string[];
59
- /** Filter to articles matching any of these article types */
59
+ /** Filter to articles matching any of these article type IDs (OR) */
60
60
  articleTypeIds?: string[];
61
- /** Filter to articles matching any of these tags (OR); articles with more matches rank higher */
61
+ /** Filter to articles matching any of these article type slugs (OR) */
62
+ articleTypeSlugs?: string[];
63
+ /** Filter to articles matching any of these tag IDs (OR); articles with more matches rank higher */
62
64
  tagIds?: string[];
63
- /** Filter/rank by authors - articles with matching authors are ranked higher */
65
+ /** Filter to articles matching any of these tag slugs (OR); articles with more matches rank higher */
66
+ tagSlugs?: string[];
67
+ /** Filter to articles that have at least one tag belonging to any of these tag type IDs */
68
+ tagTypeIds?: string[];
69
+ /** Filter to articles that have at least one tag belonging to any of these tag type slugs */
70
+ tagTypeSlugs?: string[];
71
+ /** Filter/rank by author IDs - articles with matching authors are ranked higher */
64
72
  authorIds?: string[];
73
+ /** Filter/rank by author slugs - articles with matching authors are ranked higher */
74
+ authorSlugs?: string[];
75
+ /** When true, authorIds/authorSlugs become a hard filter (exclude non-matching) rather than just a ranking boost */
76
+ strictAuthorMatch?: boolean;
65
77
  /** Only include articles published before this date */
66
78
  before?: Date;
67
79
  /** Only include articles published after this date */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.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.1.2",
3
+ "version": "1.2.0",
4
4
  "description": "Type-safe Contentful REST API client with caching and rate limiting for Next.js applications",
5
5
  "repository": {
6
6
  "type": "git",