@se-studio/contentful-rest-api 1.16.2 → 1.16.3

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,11 @@
1
1
  # @se-studio/contentful-rest-api
2
2
 
3
+ ## 1.16.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 859e6f8: Include resolved `structuredData` on `IFetchedTemplate` from `contentfulTemplateRest` (parity with `resolveTemplate`).
8
+
3
9
  ## 1.16.2
4
10
 
5
11
  ### Patch Changes
@@ -1,6 +1,9 @@
1
- import type { INavigation, ISvgImage, ITyped } from '@se-studio/core-data-types';
2
- import type { BaseConverterContext } from '../converters/helpers';
1
+ import type { INavigation, ISchema, ISvgImage, ITyped } from '@se-studio/core-data-types';
2
+ import type { Entry } from 'contentful';
3
+ import type { BaseTemplateSkeleton } from '../baseTypes/baseTemplate';
4
+ import type { BaseConverterContext, ConverterContext } from '../converters/helpers';
3
5
  import type { CmsResponse, ContentfulConfig, FetchOptions } from '../types';
6
+ import type { DefaultChainModifier } from './types';
4
7
  /**
5
8
  * Fetched template data structure
6
9
  * Extends the resolved template with id and label for direct fetching
@@ -16,7 +19,14 @@ export interface IFetchedTemplate {
16
19
  textColour?: string;
17
20
  stickyNav: boolean;
18
21
  icons?: ReadonlyArray<ISvgImage>;
22
+ /** Schema.org Mustache templates linked on the template (parity with page resolveTemplate). */
23
+ structuredData: ReadonlyArray<ISchema>;
19
24
  }
25
+ /**
26
+ * Converts a template entry to IFetchedTemplate (includes resolved structuredData).
27
+ * Exported for unit tests; used by {@link contentfulTemplateRest}.
28
+ */
29
+ export declare function convertTemplateEntry(context: ConverterContext, entry: Entry<BaseTemplateSkeleton, DefaultChainModifier, string>): IFetchedTemplate;
20
30
  /**
21
31
  * Fetches a template from Contentful by cmsLabel
22
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/api/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGjF,OAAO,KAAK,EAAE,oBAAoB,EAAoB,MAAM,uBAAuB,CAAC;AAIpF,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI5E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CAClC;AA2DD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAc/C"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/api/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIpF,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACjC,+FAA+F;IAC/F,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC/D,gBAAgB,CAuDlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAc/C"}
@@ -1,11 +1,12 @@
1
1
  import { collectIconsFromContent, collectIconsFromNavigation } from '../converters/iconCollector.js';
2
2
  import { resolveNavigationOrStub } from '../converters/navigationItem.js';
3
- import { resolvePageContent } from '../converters/resolver.js';
3
+ import { resolvePageContent, resolveSchema } from '../converters/resolver.js';
4
4
  import { fetchSingleEntity } from './helpers.js';
5
5
  /**
6
- * Converts a template entry to IFetchedTemplate
6
+ * Converts a template entry to IFetchedTemplate (includes resolved structuredData).
7
+ * Exported for unit tests; used by {@link contentfulTemplateRest}.
7
8
  */
8
- function templateConverter(context, entry) {
9
+ export function convertTemplateEntry(context, entry) {
9
10
  const { fields, sys } = entry;
10
11
  const id = sys.id;
11
12
  // Resolve content arrays
@@ -33,6 +34,9 @@ function templateConverter(context, entry) {
33
34
  seenIconIds.add(icon.id);
34
35
  return true;
35
36
  });
37
+ const structuredData = fields.structuredData
38
+ ?.map((link) => resolveSchema(context, id, link))
39
+ .filter((item) => item !== null) ?? [];
36
40
  return {
37
41
  id,
38
42
  cmsLabel: fields.cmsLabel,
@@ -44,6 +48,7 @@ function templateConverter(context, entry) {
44
48
  textColour: fields.textColour,
45
49
  stickyNav,
46
50
  icons: icons.length > 0 ? icons : undefined,
51
+ structuredData,
47
52
  };
48
53
  }
49
54
  /**
@@ -80,7 +85,7 @@ export async function contentfulTemplateRest(context, config, cmsLabel, options)
80
85
  cacheTagType: 'template',
81
86
  cacheTagIdentifier: cmsLabel,
82
87
  query: { 'fields.cmsLabel': cmsLabel },
83
- resolver: (ctx, entry) => templateConverter(ctx, entry),
88
+ resolver: (ctx, entry) => convertTemplateEntry(ctx, entry),
84
89
  errorLogContext: { cmsLabel },
85
90
  }, { include: 7, ...options });
86
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/api/template.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAoB9C;;GAEG;AACH,SAAS,iBAAiB,CACxB,OAAyB,EACzB,KAAgE;IAEhE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IAElB,yBAAyB;IACzB,MAAM,UAAU,GACd,MAAM,CAAC,UAAU;QACf,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;SAC3D,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IAE3D,MAAM,WAAW,GACf,MAAM,CAAC,WAAW;QAChB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;SAC3D,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IAE3D,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE/D,4BAA4B;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;IAEhE,6DAA6D;IAC7D,MAAM,YAAY,GAAG,uBAAuB,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAEvD,oCAAoC;IACpC,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU;QACV,WAAW;QACX,IAAI;QACJ,MAAM;QACN,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS;QACT,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA6B,EAC7B,MAAwB,EACxB,QAAgB,EAChB,OAAqB;IAErB,OAAO,iBAAiB,CACtB,OAAO,EACP,MAAM,EACN;QACE,WAAW,EAAE,UAAU;QACvB,YAAY,EAAE,UAAU;QACxB,kBAAkB,EAAE,QAAQ;QAC5B,KAAK,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE;QACtC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC;QACvD,eAAe,EAAE,EAAE,QAAQ,EAAE;KAC9B,EACD,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/api/template.ts"],"names":[],"mappings":"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"}
package/docs/llms.md CHANGED
@@ -37,7 +37,7 @@ import {
37
37
  contentfulTagTypeRest,
38
38
  contentfulPersonRest,
39
39
  contentfulBannerRest,
40
- contentfulTemplateRest,
40
+ contentfulTemplateRest, // IFetchedTemplate includes structuredData (Schema.org Mustache list)
41
41
  contentfulComponentRest,
42
42
  contentfulCustomTypeRest,
43
43
  contentfulAssetRest,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/contentful-rest-api",
3
- "version": "1.16.2",
3
+ "version": "1.16.3",
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",