@ingram-tech/nk-seo 0.6.1 → 0.7.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/README.md CHANGED
@@ -5,8 +5,9 @@ keep re-implementing:
5
5
 
6
6
  1. **`<JsonLd>`** + **typed schema.org builders** — `faqPage`, `breadcrumbList`,
7
7
  `article`, `softwareApplication`, `organization`, `website`, `person`,
8
- `localBusiness`, `event`, and a `createSeo` factory that resolves site-relative
9
- paths and injects your publisher.
8
+ `localBusiness`, `event`, `dataset`, `definedTerm`/`definedTermSet`, and a
9
+ `createSeo` factory that resolves site-relative paths and injects your
10
+ publisher.
10
11
  2. **`createMetadata`** — a Next `Metadata` factory: canonical + OpenGraph +
11
12
  Twitter card from one title/description/path.
12
13
  3. **`createSitemap` / `createRobots`** — `app/sitemap.ts` and `app/robots.ts`
@@ -75,6 +76,53 @@ or an array (e.g. `[organization(org), website(site)]` on the homepage), and
75
76
  escapes `<` on serialization so CMS-sourced strings can't break out of the
76
77
  `<script>` tag.
77
78
 
79
+ ### Properties the builders don't cover
80
+
81
+ schema.org is much larger than any builder surface, so every builder takes an
82
+ `extra` object shallow-merged over the built payload (it wins on conflict).
83
+ Reach for it rather than dropping the whole node back to a literal:
84
+
85
+ ```ts
86
+ website({
87
+ name: "Acme",
88
+ url: "https://example.com",
89
+ extra: {
90
+ alternateName: "ACME",
91
+ inLanguage: ["en", "fr"],
92
+ potentialAction: {
93
+ "@type": "SearchAction",
94
+ target: "https://example.com/search?q={search_term_string}",
95
+ "query-input": "required name=search_term_string",
96
+ },
97
+ },
98
+ });
99
+ ```
100
+
101
+ `extra` works on nested inputs too — `publisher: { name: "Acme", extra: {…} }`.
102
+ Values passed this way aren't reflected in the returned node type.
103
+
104
+ For a node type no builder covers, `<JsonLd data={…} />` takes **any** object or
105
+ array of objects. Hand-written nodes still get the `<` / U+2028 escaping, which
106
+ is the security-relevant half of the package — worth preferring over
107
+ `dangerouslySetInnerHTML` even with no builder involved.
108
+
109
+ `article` covers `Article`, `BlogPosting`, `NewsArticle`, `ScholarlyArticle`,
110
+ `TechArticle` (the right type for API/developer docs) and `Report` via `type`.
111
+ `dataset` and `definedTerm`/`definedTermSet` mark up data and controlled
112
+ vocabularies:
113
+
114
+ ```ts
115
+ <JsonLd
116
+ data={seo.definedTerm({
117
+ name: "Computer programming",
118
+ termCode: "62.01",
119
+ path: "/code/62.01",
120
+ inDefinedTermSet: { name: "Acme classification", path: "/", version: "2025" },
121
+ extra: { inLanguage: "en" },
122
+ })}
123
+ />
124
+ ```
125
+
78
126
  ## Page metadata
79
127
 
80
128
  ```ts
@@ -103,10 +151,26 @@ export const metadata = pageMetadata({
103
151
 
104
152
  Produces `title`, `description`, a self-referencing `alternates.canonical`,
105
153
  `openGraph`, and a `summary_large_image` Twitter card. Pass `noIndex`, `keywords`,
106
- `type: "article"`, or per-page `openGraph`/`twitter` overrides as needed. With
154
+ `type: "article"`, or per-page `alternates`/`openGraph`/`twitter` overrides as
155
+ needed — each is merged into the generated object and wins on conflict. With
107
156
  `titleTemplate` set, `pageMetadata.root()` emits `title.template`, so plain page
108
157
  titles render as "Services | Acme" without every page appending the suffix.
109
158
 
159
+ On a localized site the per-page `alternates` and `locale` are what make the
160
+ factory usable — `alternates.languages` is what Next renders as
161
+ `<link rel="alternate" hreflang>`, and `og:locale` has to vary per page:
162
+
163
+ ```ts
164
+ import { hreflangAlternates } from "@ingram-tech/nk-seo";
165
+
166
+ const { languages } = hreflangAlternates(HREFLANG_CONFIG, `/${locale}/about`);
167
+ return pageMetadata({
168
+ title, description, path: `/${locale}/about`,
169
+ alternates: { languages },
170
+ locale: "fr_BE", // overrides the site-wide `locale`
171
+ });
172
+ ```
173
+
110
174
  ## Sitemap & robots
111
175
 
112
176
  ```ts
@@ -171,17 +235,50 @@ Pass `logo` (absolute URL or data URI) to replace the accent-square mark with
171
235
  your logo, and `fonts` + `fontFamily` to render with the brand typeface —
172
236
  `fonts` is forwarded to `ImageResponse`, which takes raw TTF/OTF/WOFF data.
173
237
 
238
+ ### Two ways the generated card silently doesn't reach your pages
239
+
240
+ Both fail with a green build and no warning; only fetching each page type shows
241
+ them.
242
+
243
+ **A page's own `openGraph` drops the inherited image.** Next attaches a
244
+ file-convention image to the segment that declares it, and sibling metadata
245
+ objects are *replaced*, not deep-merged — so any page whose `generateMetadata`
246
+ returns an `openGraph` object (i.e. any page setting `og:title`/`og:url`) emits
247
+ no `og:image` at all. The home page, sitting in the same segment as the image
248
+ file, looks perfectly correct throughout. Build the list once and spread it into
249
+ every page:
250
+
251
+ ```ts
252
+ import { ogImageMetadata } from "@ingram-tech/nk-seo";
253
+
254
+ const images = ogImageMetadata({ baseUrl, path: "/opengraph-image", alt: "Acme" });
255
+ return { title, openGraph: { title, url, images } };
256
+ ```
257
+
258
+ `createMetadata`'s `defaultImage` / per-page `image` already do this — point
259
+ either at the image route and every page it builds carries the card.
260
+
261
+ **Locale-negotiating middleware eats the image route.** A site that redirects
262
+ any path lacking a locale prefix also redirects `/opengraph-image`, so the card
263
+ URL never resolves. Put the file at `app/[locale]/opengraph-image.tsx` instead:
264
+ it dodges the redirect and gives per-locale cards from `params`. That is the
265
+ better default for any localized site.
266
+
174
267
  The template encodes the Satori rule that trips everyone up: every node with
175
268
  more than one child sets `display: flex`, and text nodes are never mixed with
176
269
  sibling elements — so the headline stays a plain string and the accent rides on
177
270
  the mark, not a coloured `<span>` inside the title.
178
271
 
179
- No linter or type-check validates Satori-supported CSS (`ImageResponse` accepts
180
- all of `React.CSSProperties`; Satori silently drops what it doesn't know), so
181
- the only real validator is rendering. This package renders its template through
182
- the real satori + resvg pipeline in its own tests; if a site hand-rolls extra
183
- cards, give it the same guard a vitest file (node environment) that renders
184
- each `opengraph-image.tsx` and asserts a valid PNG comes out.
272
+ Type-check won't help here: `ImageResponse` accepts all of
273
+ `React.CSSProperties` and Satori silently drops what it doesn't know. Two guards
274
+ cover that. `@ingram-tech/nk-dev`'s oxlint plugin ships `nextkit/satori-css`,
275
+ which flags unsupported style properties, `calc()`, and the two structural rules
276
+ in files that import `next/og` or are an `opengraph-image`/`twitter-image`
277
+ convention. And rendering remains the final validator: this package renders its
278
+ template through the real satori + resvg pipeline in its own tests, so a site
279
+ hand-rolling extra cards should add the same guard — a vitest file (node
280
+ environment) that renders each `opengraph-image.tsx` and asserts a valid PNG
281
+ comes out.
185
282
 
186
283
  ## Hreflang & canonical
187
284
 
@@ -219,6 +316,22 @@ import { HreflangLinks } from "@ingram-tech/nk-seo/components";
219
316
  />
220
317
  ```
221
318
 
319
+ Sites that prefix **every** locale — where `/about` redirects to `/en/about`
320
+ and no bare path exists — pass `prefixDefaultLocale`, which prefixes the default
321
+ locale too and points `x-default` at that prefixed URL. Without it the bare path
322
+ is emitted for both `en` and `x-default`, annotating URLs that redirect (Google
323
+ wants every hreflang target to answer 200 directly).
324
+
325
+ ```tsx
326
+ <HreflangLinks
327
+ baseUrl="https://example.com"
328
+ locales={["en", "fr", "nl"]}
329
+ strategy="prefix"
330
+ defaultLocale="en"
331
+ prefixDefaultLocale
332
+ />
333
+ ```
334
+
222
335
  Pass `pathname` explicitly if you don't use the `x-pathname` header. When
223
336
  neither is available the component **throws** instead of guessing — a silent
224
337
  fallback would canonicalize every page to the homepage, the kind of site-wide
@@ -234,5 +347,7 @@ Two rules of the road:
234
347
  (possibly `/fr/…`-prefixed) pathname; the query strategy can't see the query
235
348
  string server-side, so pass `currentLocale` from your locale negotiation.
236
349
  - Building metadata instead of rendering links? The pure `hreflangAlternates`
237
- (package root) returns the same `{ canonical, links }` for use in
238
- `generateMetadata`.
350
+ (package root) returns the same links for use in `generateMetadata`:
351
+ `{ canonical, links, languages }`, where `languages` is already keyed by
352
+ hreflang for `Metadata.alternates.languages` (or `createMetadata`'s
353
+ per-page `alternates`).
@@ -12,13 +12,23 @@ export interface HreflangConfig {
12
12
  * How locale is encoded in the alternate URLs:
13
13
  * - `"query"` (default): `${baseUrl}${path}?${param}=${locale}` for every locale.
14
14
  * - `"prefix"`: the default locale stays at the bare path; others get
15
- * `/${locale}${path}` (matches a localized-rewrite setup).
15
+ * `/${locale}${path}` (matches a localized-rewrite setup). Set
16
+ * {@link HreflangConfig.prefixDefaultLocale} for sites that prefix every
17
+ * locale instead.
16
18
  */
17
19
  strategy?: "query" | "prefix";
18
20
  /** Query-param name for the `"query"` strategy. Default `"hl"`. */
19
21
  param?: string;
20
- /** Default (unprefixed) locale for the `"prefix"` strategy. */
22
+ /** Default locale. Required for `"prefix"`; it is what `x-default` resolves to. */
21
23
  defaultLocale?: string;
24
+ /**
25
+ * `"prefix"` only: prefix the default locale too (`/en/about`, never
26
+ * `/about`), and point `x-default` at that prefixed URL. For sites whose
27
+ * locale negotiation redirects every bare path — emitting the bare path as
28
+ * an alternate would annotate a URL that 3xx-redirects, which is the bug the
29
+ * mandatory `defaultLocale` exists to prevent.
30
+ */
31
+ prefixDefaultLocale?: boolean;
22
32
  /**
23
33
  * Locale of the page being rendered. Determines the self-referencing
24
34
  * canonical: a localized variant that canonicalizes to another URL makes
@@ -38,8 +48,14 @@ export interface HreflangLink {
38
48
  export interface HreflangAlternates {
39
49
  /** Self-referencing canonical URL of `pathname`. */
40
50
  canonical: string;
41
- /** One link per locale, plus the trailing `x-default` (→ canonical). */
51
+ /** One link per locale, plus the trailing `x-default`. */
42
52
  links: HreflangLink[];
53
+ /**
54
+ * The same links keyed by `hrefLang` (`x-default` included) — the shape Next
55
+ * wants for `Metadata.alternates.languages` / `createMetadata`'s
56
+ * `alternates`.
57
+ */
58
+ languages: Record<string, string>;
43
59
  }
44
60
  /**
45
61
  * Computes the self-referencing canonical plus per-locale hreflang alternate
@@ -1 +1 @@
1
- {"version":3,"file":"alternates.d.ts","sourceRoot":"","sources":["../src/alternates.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC9B,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC5B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IAClC,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,KAAK,EAAE,YAAY,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,GACd,kBAAkB,CA2DpB"}
1
+ {"version":3,"file":"alternates.d.ts","sourceRoot":"","sources":["../src/alternates.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC9B,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC5B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IAClC,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,GACd,kBAAkB,CA8EpB"}
@@ -4,10 +4,12 @@ import { absoluteUrl } from "./url.js";
4
4
  * URLs (and an `x-default`) for `pathname`.
5
5
  */
6
6
  export function hreflangAlternates(config, pathname) {
7
- const { strategy = "query", param = "hl", defaultLocale, hrefLangTags } = config;
7
+ const { strategy = "query", param = "hl", defaultLocale, prefixDefaultLocale, hrefLangTags, } = config;
8
8
  if (strategy === "prefix" && !defaultLocale) {
9
- // Without it every locale gets a prefix while canonical/x-default point
10
- // at a bare path that is no locale's URL — a silent SEO bug.
9
+ // Without it canonical/x-default point at a bare path that is no
10
+ // locale's URL — a silent SEO bug. (With `prefixDefaultLocale` no bare
11
+ // path is emitted at all, but x-default still has to resolve to *some*
12
+ // locale, so the requirement stands.)
11
13
  throw new Error("hreflangAlternates: `defaultLocale` is required for the prefix strategy.");
12
14
  }
13
15
  // Prefix strategy: accept both the bare and the locale-prefixed form of the
@@ -26,34 +28,40 @@ export function hreflangAlternates(config, pathname) {
26
28
  }
27
29
  currentLocale ??= defaultLocale;
28
30
  }
29
- /** The default-locale URL the bare path; also serves as x-default. */
30
- const defaultUrl = absoluteUrl(basePath, config.baseUrl);
31
+ /** The bare (locale-free) URL of the path. */
32
+ const bareUrl = absoluteUrl(basePath, config.baseUrl);
33
+ const prefixedUrl = (locale) => absoluteUrl(`/${locale}${basePath === "/" ? "" : basePath}`, config.baseUrl);
31
34
  const hrefFor = (locale) => {
32
35
  if (strategy === "prefix") {
33
- if (locale === defaultLocale)
34
- return defaultUrl;
35
- const clean = basePath === "/" ? "" : basePath;
36
- return absoluteUrl(`/${locale}${clean}`, config.baseUrl);
36
+ if (locale === defaultLocale && !prefixDefaultLocale)
37
+ return bareUrl;
38
+ return prefixedUrl(locale);
37
39
  }
38
- return `${defaultUrl}${defaultUrl.includes("?") ? "&" : "?"}${param}=${locale}`;
40
+ return `${bareUrl}${bareUrl.includes("?") ? "&" : "?"}${param}=${locale}`;
39
41
  };
42
+ /** x-default: the default locale's own URL, prefixed or not. */
43
+ const defaultUrl = strategy === "prefix" && prefixDefaultLocale && defaultLocale
44
+ ? prefixedUrl(defaultLocale)
45
+ : bareUrl;
40
46
  // Self-referencing canonical: the current variant's own URL. Canonicalizing
41
47
  // a localized variant to the bare path makes Google treat the variants as
42
48
  // duplicates and ignore the hreflang annotations entirely.
43
49
  const canonical = currentLocale &&
44
- currentLocale !== defaultLocale &&
50
+ (currentLocale !== defaultLocale || prefixDefaultLocale) &&
45
51
  config.locales.includes(currentLocale)
46
52
  ? hrefFor(currentLocale)
47
53
  : defaultUrl;
54
+ const links = [
55
+ ...config.locales.map((locale) => ({
56
+ hrefLang: hrefLangTags?.[locale] ?? locale,
57
+ href: hrefFor(locale),
58
+ })),
59
+ { hrefLang: "x-default", href: defaultUrl },
60
+ ];
48
61
  return {
49
62
  canonical,
50
- links: [
51
- ...config.locales.map((locale) => ({
52
- hrefLang: hrefLangTags?.[locale] ?? locale,
53
- href: hrefFor(locale),
54
- })),
55
- { hrefLang: "x-default", href: defaultUrl },
56
- ],
63
+ links,
64
+ languages: Object.fromEntries(links.map((link) => [link.hrefLang, link.href])),
57
65
  };
58
66
  }
59
67
  //# sourceMappingURL=alternates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alternates.js","sourceRoot":"","sources":["../src/alternates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAgDvC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CACjC,MAAsB,EACtB,QAAgB;IAEhB,MAAM,EAAE,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IACjF,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,IAAI,KAAK,CACd,0EAA0E,CAC1E,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,qEAAqE;IACrE,0BAA0B;IAC1B,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACzC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,QAAQ,KAAK,IAAI,MAAM,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;gBACpD,aAAa,KAAK,MAAM,CAAC;gBACzB,MAAM;YACP,CAAC;QACF,CAAC;QACD,aAAa,KAAK,aAAa,CAAC;IACjC,CAAC;IAED,wEAAwE;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,CAAC,MAAc,EAAU,EAAE;QAC1C,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,MAAM,KAAK,aAAa;gBAAE,OAAO,UAAU,CAAC;YAChD,MAAM,KAAK,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/C,OAAO,WAAW,CAAC,IAAI,MAAM,GAAG,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;IACjF,CAAC,CAAC;IAEF,4EAA4E;IAC5E,0EAA0E;IAC1E,2DAA2D;IAC3D,MAAM,SAAS,GACd,aAAa;QACb,aAAa,KAAK,aAAa;QAC/B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QACrC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QACxB,CAAC,CAAC,UAAU,CAAC;IAEf,OAAO;QACN,SAAS;QACT,KAAK,EAAE;YACN,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAClC,QAAQ,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,MAAM;gBAC1C,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;aACrB,CAAC,CAAC;YACH,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;SAC3C;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"alternates.js","sourceRoot":"","sources":["../src/alternates.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { type AggregateOfferNode, type AggregateRatingInput, type AggregateRatingNode, article, type ArticleAuthor, type ArticleAuthorNode, type ArticleInput, type ArticleNode, breadcrumbList, type BreadcrumbItem, type BreadcrumbListNode, type BreadcrumbPath, createSeo, event, type EventInput, type EventLocationInput, type EventNode, faqPage, type FaqItem, type FaqPageNode, type GeoCoordinatesNode, type GeoInput, type ImageObjectNode, type JsonLdNode, type ListItemNode, localBusiness, type LocalBusinessInput, type LocalBusinessNode, type OfferInput, type OfferNode, organization, type OrganizationInput, type OrganizationNode, person, type PersonInput, type PersonNode, type PlaceNode, type PostalAddressInput, type PostalAddressNode, type QuestionNode, type Seo, type SeoConfig, softwareApplication, type SoftwareApplicationInput, type SoftwareApplicationNode, type VirtualLocationNode, website, type WebsiteInput, type WebsiteNode, type WithContext, } from "./schema.js";
2
- export { createMetadata, type MetadataSiteConfig, type PageMetadata, type PageMetadataInput, type RootMetadataInput, } from "./metadata.js";
1
+ export { type AggregateOfferNode, type AggregateRatingInput, type AggregateRatingNode, article, type ArticleAuthor, type ArticleAuthorNode, type ArticleInput, type ArticleNode, type ArticleType, breadcrumbList, type BreadcrumbItem, type BreadcrumbListNode, type BreadcrumbPath, createSeo, type DataDownloadInput, type DataDownloadNode, dataset, type DatasetInput, type DatasetNode, definedTerm, type DefinedTermInput, type DefinedTermNode, definedTermSet, type DefinedTermSetInput, type DefinedTermSetNode, event, type EventInput, type EventLocationInput, type EventNode, faqPage, type FaqItem, type FaqPageNode, type GeoCoordinatesNode, type GeoInput, type ImageObjectNode, type JsonLdNode, type ListItemNode, localBusiness, type LocalBusinessInput, type LocalBusinessNode, type OfferInput, type OfferNode, organization, type OrganizationInput, type OrganizationNode, person, type PersonInput, type PersonNode, type PlaceNode, type PostalAddressInput, type PostalAddressNode, type QuestionNode, type Seo, type SeoConfig, softwareApplication, type SoftwareApplicationInput, type SoftwareApplicationNode, type VirtualLocationNode, website, type WebsiteInput, type WebsiteNode, type WithContext, type WithExtra, } from "./schema.js";
2
+ export { createMetadata, type MetadataSiteConfig, ogImageMetadata, type OgImageMetadataInput, type PageMetadata, type PageMetadataInput, type RootMetadataInput, } from "./metadata.js";
3
3
  export { createRobots, createSitemap, type RobotsConfig, type SitemapConfig, type SitemapLanguages, type SitemapRoute, } from "./routes.js";
4
4
  export { hreflangAlternates, type HreflangAlternates, type HreflangConfig, type HreflangLink, } from "./alternates.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,SAAS,EACT,KAAK,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,OAAO,EACP,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,GAAG,EACR,KAAK,SAAS,EACd,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,YAAY,EACZ,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,YAAY,GACjB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,SAAS,EACT,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,OAAO,EACP,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,GAAG,EACR,KAAK,SAAS,EACd,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,cAAc,EACd,KAAK,kBAAkB,EACvB,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,YAAY,EACZ,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,YAAY,GACjB,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -2,8 +2,8 @@
2
2
  // route handlers / sitemap.ts can import these without pulling in the renderer.
3
3
  // The <JsonLd> and <HreflangLinks> components live at
4
4
  // "@ingram-tech/nk-seo/components".
5
- export { article, breadcrumbList, createSeo, event, faqPage, localBusiness, organization, person, softwareApplication, website, } from "./schema.js";
6
- export { createMetadata, } from "./metadata.js";
5
+ export { article, breadcrumbList, createSeo, dataset, definedTerm, definedTermSet, event, faqPage, localBusiness, organization, person, softwareApplication, website, } from "./schema.js";
6
+ export { createMetadata, ogImageMetadata, } from "./metadata.js";
7
7
  export { createRobots, createSitemap, } from "./routes.js";
8
8
  export { hreflangAlternates, } from "./alternates.js";
9
9
  //# 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,8EAA8E;AAC9E,gFAAgF;AAChF,sDAAsD;AACtD,oCAAoC;AACpC,OAAO,EAIN,OAAO,EAKP,cAAc,EAId,SAAS,EACT,KAAK,EAIL,OAAO,EAQP,aAAa,EAKb,YAAY,EAGZ,MAAM,EASN,mBAAmB,EAInB,OAAO,GAIP,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,cAAc,GAKd,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,YAAY,EACZ,aAAa,GAKb,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,kBAAkB,GAIlB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gFAAgF;AAChF,sDAAsD;AACtD,oCAAoC;AACpC,OAAO,EAIN,OAAO,EAMP,cAAc,EAId,SAAS,EAGT,OAAO,EAGP,WAAW,EAGX,cAAc,EAGd,KAAK,EAIL,OAAO,EAQP,aAAa,EAKb,YAAY,EAGZ,MAAM,EASN,mBAAmB,EAInB,OAAO,GAKP,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,cAAc,EAEd,eAAe,GAKf,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,YAAY,EACZ,aAAa,GAKb,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,kBAAkB,GAIlB,MAAM,iBAAiB,CAAC"}
@@ -16,7 +16,10 @@ export interface MetadataSiteConfig {
16
16
  defaultImage?: string;
17
17
  defaultImageWidth?: number;
18
18
  defaultImageHeight?: number;
19
- /** OpenGraph locale, e.g. "en_US". */
19
+ /**
20
+ * Default OpenGraph locale, e.g. "en_US". On a multilingual site set the
21
+ * per-page `locale` instead (or as well, as the fallback).
22
+ */
20
23
  locale?: string;
21
24
  /** Twitter `@handle` for `site`. */
22
25
  twitterSite?: string;
@@ -34,6 +37,18 @@ export interface PageMetadataInput {
34
37
  type?: "website" | "article";
35
38
  keywords?: Metadata["keywords"];
36
39
  noIndex?: boolean;
40
+ /**
41
+ * OpenGraph locale for this page, e.g. "fr_BE". Overrides `site.locale` —
42
+ * on a multilingual site `og:locale` has to vary per page.
43
+ */
44
+ locale?: string;
45
+ /**
46
+ * Merged into the generated `alternates` (wins on conflict). The reason it
47
+ * exists: `alternates.languages` is per-page on a localized site, and
48
+ * spreading the result to bolt it on drops the rest of the object.
49
+ * `hreflangAlternates()` returns a ready-made `languages` map.
50
+ */
51
+ alternates?: Partial<NonNullable<Metadata["alternates"]>>;
37
52
  /** Merged into the generated `openGraph` (wins on conflict). */
38
53
  openGraph?: Partial<NonNullable<Metadata["openGraph"]>>;
39
54
  /** Merged into the generated `twitter` (wins on conflict). */
@@ -74,4 +89,43 @@ export declare function createMetadata(site: MetadataSiteConfig): {
74
89
  root: (input?: RootMetadataInput) => Metadata;
75
90
  };
76
91
  export type PageMetadata = ReturnType<typeof createMetadata>;
92
+ /** Inputs for {@link ogImageMetadata}. */
93
+ export interface OgImageMetadataInput {
94
+ /** Absolute site origin, e.g. "https://acme.example". */
95
+ baseUrl: string;
96
+ /**
97
+ * Path of the image route — the route the `opengraph-image.tsx` file
98
+ * convention serves, e.g. "/opengraph-image" or "/en/opengraph-image" when
99
+ * the file sits under `app/[locale]/`.
100
+ */
101
+ path: string;
102
+ alt: string;
103
+ /** Defaults to the 1200×630 the `/og` template renders. */
104
+ width?: number;
105
+ height?: number;
106
+ }
107
+ /**
108
+ * Builds the `openGraph.images` entry for a card served by Next's
109
+ * `opengraph-image` file convention.
110
+ *
111
+ * Next attaches a file-convention image only to the segment that declares it,
112
+ * and a page's own `openGraph` object *replaces* the inherited one rather than
113
+ * merging into it — so any page returning `openGraph` from `generateMetadata`
114
+ * silently loses the card. Build the list once and spread it into every page.
115
+ *
116
+ * `createMetadata`'s `defaultImage` / per-page `image` already do this; reach
117
+ * for the standalone helper when you assemble `Metadata` by hand.
118
+ *
119
+ * @example
120
+ * const images = ogImageMetadata({
121
+ * baseUrl, path: `/${locale}/opengraph-image`, alt: "Acme",
122
+ * });
123
+ * return { title, openGraph: { title, url, images } };
124
+ */
125
+ export declare function ogImageMetadata(input: OgImageMetadataInput): {
126
+ url: string;
127
+ width: number;
128
+ height: number;
129
+ alt: string;
130
+ }[];
77
131
  //# sourceMappingURL=metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGrC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACxD,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CACpD;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IACjC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB;YAGzB,iBAAiB,GAAG,QAAQ;mBA+CR,iBAAiB,KAAQ,QAAQ;EAalF;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGrC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1D,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACxD,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CACpD;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IACjC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB;YAGzB,iBAAiB,GAAG,QAAQ;mBAgDR,iBAAiB,KAAQ,QAAQ;EAalF;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAE7D,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB;IACpC,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB;;;;;IAS1D"}
package/dist/metadata.js CHANGED
@@ -27,12 +27,13 @@ export function createMetadata(site) {
27
27
  const imagePath = input.image ?? site.defaultImage;
28
28
  const imageUrl = imagePath ? absolute(imagePath) : undefined;
29
29
  const url = absolute(input.path);
30
+ const locale = input.locale ?? site.locale;
30
31
  return {
31
32
  metadataBase: new URL(site.baseUrl),
32
33
  title: input.title,
33
34
  description: input.description,
34
35
  ...(input.keywords ? { keywords: input.keywords } : {}),
35
- alternates: { canonical: url },
36
+ alternates: { canonical: url, ...input.alternates },
36
37
  // noindex but follow: keep link equity flowing through the page. Use a
37
38
  // full robots override in the page's own metadata for nofollow too.
38
39
  ...(input.noIndex ? { robots: { index: false, follow: true } } : {}),
@@ -42,7 +43,7 @@ export function createMetadata(site) {
42
43
  type: input.type ?? "website",
43
44
  url,
44
45
  siteName: site.siteName,
45
- ...(site.locale ? { locale: site.locale } : {}),
46
+ ...(locale ? { locale } : {}),
46
47
  ...(imageUrl
47
48
  ? {
48
49
  images: [
@@ -81,4 +82,32 @@ export function createMetadata(site) {
81
82
  };
82
83
  return pageMetadata;
83
84
  }
85
+ /**
86
+ * Builds the `openGraph.images` entry for a card served by Next's
87
+ * `opengraph-image` file convention.
88
+ *
89
+ * Next attaches a file-convention image only to the segment that declares it,
90
+ * and a page's own `openGraph` object *replaces* the inherited one rather than
91
+ * merging into it — so any page returning `openGraph` from `generateMetadata`
92
+ * silently loses the card. Build the list once and spread it into every page.
93
+ *
94
+ * `createMetadata`'s `defaultImage` / per-page `image` already do this; reach
95
+ * for the standalone helper when you assemble `Metadata` by hand.
96
+ *
97
+ * @example
98
+ * const images = ogImageMetadata({
99
+ * baseUrl, path: `/${locale}/opengraph-image`, alt: "Acme",
100
+ * });
101
+ * return { title, openGraph: { title, url, images } };
102
+ */
103
+ export function ogImageMetadata(input) {
104
+ return [
105
+ {
106
+ url: absoluteUrl(input.path, input.baseUrl),
107
+ width: input.width ?? 1200,
108
+ height: input.height ?? 630,
109
+ alt: input.alt,
110
+ },
111
+ ];
112
+ }
84
113
  //# sourceMappingURL=metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -1,5 +1,15 @@
1
1
  /** A loosely-typed schema.org node. The builders return more precise subtypes. */
2
2
  export type JsonLdNode = Record<string, unknown>;
3
+ /**
4
+ * Escape hatch carried by every builder input: properties shallow-merged over
5
+ * the built payload (they win on conflict). schema.org is far larger than any
6
+ * builder surface, and without this one extra property — an `inLanguage`, an
7
+ * `about`, a `potentialAction` — forces the whole node back to a hand-written
8
+ * literal. Fields passed here are not reflected in the returned node type.
9
+ */
10
+ export interface WithExtra {
11
+ extra?: JsonLdNode;
12
+ }
3
13
  /** A top-level schema.org node: the payload plus its `@context`. */
4
14
  export type WithContext<T> = T & {
5
15
  "@context": "https://schema.org";
@@ -21,7 +31,7 @@ export type FaqPageNode = {
21
31
  mainEntity: QuestionNode[];
22
32
  };
23
33
  /** FAQPage: marks up a list of question/answer pairs for FAQ rich results. */
24
- export declare function faqPage(items: FaqItem[]): WithContext<FaqPageNode>;
34
+ export declare function faqPage(items: FaqItem[], extra?: JsonLdNode): WithContext<FaqPageNode>;
25
35
  export interface BreadcrumbItem {
26
36
  name: string;
27
37
  /** Absolute URL of the crumb. */
@@ -38,8 +48,8 @@ export type BreadcrumbListNode = {
38
48
  itemListElement: ListItemNode[];
39
49
  };
40
50
  /** BreadcrumbList: the trail of links Google shows in place of the raw URL. */
41
- export declare function breadcrumbList(items: BreadcrumbItem[]): WithContext<BreadcrumbListNode>;
42
- export interface OrganizationInput {
51
+ export declare function breadcrumbList(items: BreadcrumbItem[], extra?: JsonLdNode): WithContext<BreadcrumbListNode>;
52
+ export interface OrganizationInput extends WithExtra {
43
53
  name: string;
44
54
  /** Absolute URL of the organization's site. */
45
55
  url?: string;
@@ -73,7 +83,7 @@ export type OrganizationNode = {
73
83
  };
74
84
  /** Organization: the entity behind the site (for the knowledge panel). */
75
85
  export declare function organization(input: OrganizationInput): WithContext<OrganizationNode>;
76
- export interface WebsiteInput {
86
+ export interface WebsiteInput extends WithExtra {
77
87
  name: string;
78
88
  /** Absolute URL of the site root. */
79
89
  url: string;
@@ -111,7 +121,7 @@ export type AggregateOfferNode = {
111
121
  offerCount?: string;
112
122
  url?: string;
113
123
  };
114
- export interface SoftwareApplicationInput {
124
+ export interface SoftwareApplicationInput extends WithExtra {
115
125
  name: string;
116
126
  description?: string;
117
127
  /** Absolute URL of the app/marketing page. */
@@ -133,17 +143,22 @@ export type SoftwareApplicationNode = {
133
143
  };
134
144
  /** SoftwareApplication: marks a product page as an app for rich results. */
135
145
  export declare function softwareApplication(input: SoftwareApplicationInput): WithContext<SoftwareApplicationNode>;
146
+ /**
147
+ * schema.org Article subtypes worth marking up. `TechArticle` is the right node
148
+ * for API/developer docs (`proficiencyLevel`/`dependencies` via `extra`).
149
+ */
150
+ export type ArticleType = "Article" | "BlogPosting" | "NewsArticle" | "ScholarlyArticle" | "TechArticle" | "Report";
136
151
  export interface ArticleAuthor {
137
152
  name: string;
138
153
  /** Absolute URL of the author's profile/page. */
139
154
  url?: string;
140
155
  }
141
- export interface ArticleInput {
156
+ export interface ArticleInput extends WithExtra {
142
157
  headline: string;
143
158
  /** Absolute canonical URL of the article. */
144
159
  url: string;
145
160
  description?: string;
146
- type?: "Article" | "BlogPosting" | "NewsArticle" | "ScholarlyArticle";
161
+ type?: ArticleType;
147
162
  datePublished?: string;
148
163
  /** Defaults to `datePublished` when omitted. */
149
164
  dateModified?: string;
@@ -159,7 +174,7 @@ export type ArticleAuthorNode = {
159
174
  url?: string;
160
175
  };
161
176
  export type ArticleNode = {
162
- "@type": "Article" | "BlogPosting" | "NewsArticle" | "ScholarlyArticle";
177
+ "@type": ArticleType;
163
178
  headline: string;
164
179
  url: string;
165
180
  mainEntityOfPage: string;
@@ -171,9 +186,9 @@ export type ArticleNode = {
171
186
  image?: string;
172
187
  keywords?: string[];
173
188
  };
174
- /** Article (or BlogPosting/NewsArticle/ScholarlyArticle) for editorial pages. */
189
+ /** Article (or one of its {@link ArticleType} subtypes) for editorial pages. */
175
190
  export declare function article(input: ArticleInput): WithContext<ArticleNode>;
176
- export interface PersonInput {
191
+ export interface PersonInput extends WithExtra {
177
192
  name: string;
178
193
  /** Absolute URL of the person's page/profile. */
179
194
  url?: string;
@@ -222,7 +237,7 @@ export interface AggregateRatingInput {
222
237
  ratingValue: string | number;
223
238
  reviewCount: string | number;
224
239
  }
225
- export interface LocalBusinessInput {
240
+ export interface LocalBusinessInput extends WithExtra {
226
241
  name: string;
227
242
  /** Absolute URL of the business site. */
228
243
  url?: string;
@@ -284,7 +299,7 @@ export interface EventLocationInput {
284
299
  /** Set true for a fully virtual event (emits VirtualLocation). */
285
300
  online?: boolean;
286
301
  }
287
- export interface EventInput {
302
+ export interface EventInput extends WithExtra {
288
303
  name: string;
289
304
  /** ISO 8601 start, e.g. "2026-09-30" or "2026-09-30T09:00:00+02:00". */
290
305
  startDate: string;
@@ -328,6 +343,103 @@ export type EventNode = {
328
343
  };
329
344
  /** Event: a scheduled happening (summit, workshop, conference) for event rich results. */
330
345
  export declare function event(input: EventInput): WithContext<EventNode>;
346
+ export interface DataDownloadInput {
347
+ /** Absolute URL of the file/endpoint. */
348
+ contentUrl: string;
349
+ /** IANA media type or a format name, e.g. "text/csv", "application/json". */
350
+ encodingFormat?: string;
351
+ name?: string;
352
+ }
353
+ export interface DatasetInput extends WithExtra {
354
+ name: string;
355
+ description: string;
356
+ /** Absolute URL of the dataset's landing page. */
357
+ url?: string;
358
+ /** Stable identifier(s): DOI, URI, registry code. */
359
+ identifier?: string | string[];
360
+ /** License URL, e.g. "https://creativecommons.org/licenses/by/4.0/". */
361
+ license?: string;
362
+ keywords?: string[];
363
+ /** BCP 47 language tag(s) of the dataset's contents. */
364
+ inLanguage?: string | string[];
365
+ /** ISO 8601 interval, e.g. "2008-01-01/2025-12-31". */
366
+ temporalCoverage?: string;
367
+ /** Place name or ISO country code the data covers. */
368
+ spatialCoverage?: string;
369
+ dateModified?: string;
370
+ /** Downloadable distributions of the data. */
371
+ distribution?: DataDownloadInput[];
372
+ /** Google shows a free-access badge; omit rather than guess. */
373
+ isAccessibleForFree?: boolean;
374
+ creator?: OrganizationInput;
375
+ publisher?: OrganizationInput;
376
+ }
377
+ export type DataDownloadNode = {
378
+ "@type": "DataDownload";
379
+ contentUrl: string;
380
+ encodingFormat?: string;
381
+ name?: string;
382
+ };
383
+ export type DatasetNode = {
384
+ "@type": "Dataset";
385
+ name: string;
386
+ description: string;
387
+ url?: string;
388
+ identifier?: string | string[];
389
+ license?: string;
390
+ keywords?: string[];
391
+ inLanguage?: string | string[];
392
+ temporalCoverage?: string;
393
+ spatialCoverage?: string;
394
+ dateModified?: string;
395
+ distribution?: DataDownloadNode[];
396
+ isAccessibleForFree?: boolean;
397
+ creator?: OrganizationNode;
398
+ publisher?: OrganizationNode;
399
+ };
400
+ /** Dataset: a published data collection, for Google's dataset search. */
401
+ export declare function dataset(input: DatasetInput): WithContext<DatasetNode>;
402
+ export interface DefinedTermSetInput extends WithExtra {
403
+ name: string;
404
+ /** Absolute URL of the set's landing page. */
405
+ url?: string;
406
+ description?: string;
407
+ /** Version/edition of the vocabulary, e.g. "2025". */
408
+ version?: string;
409
+ inLanguage?: string | string[];
410
+ }
411
+ export type DefinedTermSetNode = {
412
+ "@type": "DefinedTermSet";
413
+ name: string;
414
+ url?: string;
415
+ description?: string;
416
+ version?: string;
417
+ inLanguage?: string | string[];
418
+ };
419
+ /** DefinedTermSet: the vocabulary/classification a term belongs to. */
420
+ export declare function definedTermSet(input: DefinedTermSetInput): WithContext<DefinedTermSetNode>;
421
+ export interface DefinedTermInput extends WithExtra {
422
+ name: string;
423
+ description?: string;
424
+ /** Absolute URL of the term's own page. */
425
+ url?: string;
426
+ /** The code identifying the term inside its set, e.g. "62.01". */
427
+ termCode?: string;
428
+ inLanguage?: string | string[];
429
+ /** The vocabulary this term belongs to — its absolute URL, or a full set. */
430
+ inDefinedTermSet?: string | DefinedTermSetInput;
431
+ }
432
+ export type DefinedTermNode = {
433
+ "@type": "DefinedTerm";
434
+ name: string;
435
+ description?: string;
436
+ url?: string;
437
+ termCode?: string;
438
+ inLanguage?: string | string[];
439
+ inDefinedTermSet?: string | DefinedTermSetNode;
440
+ };
441
+ /** DefinedTerm: one entry of a controlled vocabulary or classification. */
442
+ export declare function definedTerm(input: DefinedTermInput): WithContext<DefinedTermNode>;
331
443
  export interface SeoConfig {
332
444
  /** Absolute site origin, e.g. "https://acme.example". */
333
445
  baseUrl: string;
@@ -374,6 +486,18 @@ export declare function createSeo(config: SeoConfig): {
374
486
  image?: string;
375
487
  publisher?: OrganizationInput;
376
488
  }): WithContext<ArticleNode>;
489
+ /** Dataset; `path` is resolved and the configured org becomes publisher. */
490
+ dataset(input: Omit<DatasetInput, "url" | "publisher"> & {
491
+ path?: string;
492
+ publisher?: OrganizationInput;
493
+ }): WithContext<DatasetNode>;
494
+ /** DefinedTerm; `path` and the term set's `path` are resolved. */
495
+ definedTerm(input: Omit<DefinedTermInput, "url" | "inDefinedTermSet"> & {
496
+ path?: string;
497
+ inDefinedTermSet?: string | (Omit<DefinedTermSetInput, "url"> & {
498
+ path?: string;
499
+ });
500
+ }): WithContext<DefinedTermNode>;
377
501
  };
378
502
  export type Seo = ReturnType<typeof createSeo>;
379
503
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js CHANGED
@@ -11,7 +11,7 @@ import { absoluteUrl } from "./url.js";
11
11
  */
12
12
  const CONTEXT = "https://schema.org";
13
13
  /** FAQPage: marks up a list of question/answer pairs for FAQ rich results. */
14
- export function faqPage(items) {
14
+ export function faqPage(items, extra) {
15
15
  return {
16
16
  "@context": CONTEXT,
17
17
  "@type": "FAQPage",
@@ -20,10 +20,11 @@ export function faqPage(items) {
20
20
  name: item.question,
21
21
  acceptedAnswer: { "@type": "Answer", text: item.answer },
22
22
  })),
23
+ ...extra,
23
24
  };
24
25
  }
25
26
  /** BreadcrumbList: the trail of links Google shows in place of the raw URL. */
26
- export function breadcrumbList(items) {
27
+ export function breadcrumbList(items, extra) {
27
28
  return {
28
29
  "@context": CONTEXT,
29
30
  "@type": "BreadcrumbList",
@@ -33,6 +34,7 @@ export function breadcrumbList(items) {
33
34
  name: item.name,
34
35
  item: item.url,
35
36
  })),
37
+ ...extra,
36
38
  };
37
39
  }
38
40
  /** Organization node without `@context`, for embedding as publisher/provider. */
@@ -49,6 +51,7 @@ function organizationNode(input) {
49
51
  ? { address: { "@type": "PostalAddress", ...input.address } }
50
52
  : {}),
51
53
  ...(input.sameAs?.length ? { sameAs: input.sameAs } : {}),
54
+ ...input.extra,
52
55
  };
53
56
  }
54
57
  /** Organization: the entity behind the site (for the knowledge panel). */
@@ -63,6 +66,7 @@ export function website(input) {
63
66
  name: input.name,
64
67
  url: input.url,
65
68
  ...(input.publisher ? { publisher: organizationNode(input.publisher) } : {}),
69
+ ...input.extra,
66
70
  };
67
71
  }
68
72
  function offerNode(offer) {
@@ -103,9 +107,10 @@ export function softwareApplication(input) {
103
107
  ...(input.url ? { url: input.url } : {}),
104
108
  ...(input.description ? { description: input.description } : {}),
105
109
  ...(input.offers ? { offers: offerNode(input.offers) } : {}),
110
+ ...input.extra,
106
111
  };
107
112
  }
108
- /** Article (or BlogPosting/NewsArticle/ScholarlyArticle) for editorial pages. */
113
+ /** Article (or one of its {@link ArticleType} subtypes) for editorial pages. */
109
114
  export function article(input) {
110
115
  const dateModified = input.dateModified ?? input.datePublished;
111
116
  return {
@@ -129,6 +134,7 @@ export function article(input) {
129
134
  ...(dateModified ? { dateModified } : {}),
130
135
  ...(input.image ? { image: input.image } : {}),
131
136
  ...(input.keywords?.length ? { keywords: input.keywords } : {}),
137
+ ...input.extra,
132
138
  };
133
139
  }
134
140
  /** Person: identifies an individual as an entity (portfolio, team, author bios). */
@@ -152,6 +158,7 @@ export function person(input) {
152
158
  ...(input.homeLocation
153
159
  ? { homeLocation: { "@type": "Place", name: input.homeLocation } }
154
160
  : {}),
161
+ ...input.extra,
155
162
  };
156
163
  }
157
164
  /** LocalBusiness (or a subtype): a physical business for local/maps SEO. */
@@ -193,6 +200,7 @@ export function localBusiness(input) {
193
200
  }
194
201
  : {}),
195
202
  ...(input.sameAs?.length ? { sameAs: input.sameAs } : {}),
203
+ ...input.extra,
196
204
  };
197
205
  }
198
206
  const ATTENDANCE_MODE = {
@@ -234,6 +242,77 @@ export function event(input) {
234
242
  ...(input.location ? { location: eventLocationNode(input.location) } : {}),
235
243
  ...(input.organizer ? { organizer: organizationNode(input.organizer) } : {}),
236
244
  ...(input.offers ? { offers: offerNode(input.offers) } : {}),
245
+ ...input.extra,
246
+ };
247
+ }
248
+ /** Dataset: a published data collection, for Google's dataset search. */
249
+ export function dataset(input) {
250
+ return {
251
+ "@context": CONTEXT,
252
+ "@type": "Dataset",
253
+ name: input.name,
254
+ description: input.description,
255
+ ...(input.url ? { url: input.url } : {}),
256
+ ...(input.identifier ? { identifier: input.identifier } : {}),
257
+ ...(input.license ? { license: input.license } : {}),
258
+ ...(input.keywords?.length ? { keywords: input.keywords } : {}),
259
+ ...(input.inLanguage ? { inLanguage: input.inLanguage } : {}),
260
+ ...(input.temporalCoverage ? { temporalCoverage: input.temporalCoverage } : {}),
261
+ ...(input.spatialCoverage ? { spatialCoverage: input.spatialCoverage } : {}),
262
+ ...(input.dateModified ? { dateModified: input.dateModified } : {}),
263
+ ...(input.distribution?.length
264
+ ? {
265
+ distribution: input.distribution.map((item) => ({
266
+ "@type": "DataDownload",
267
+ contentUrl: item.contentUrl,
268
+ ...(item.encodingFormat
269
+ ? { encodingFormat: item.encodingFormat }
270
+ : {}),
271
+ ...(item.name ? { name: item.name } : {}),
272
+ })),
273
+ }
274
+ : {}),
275
+ ...(input.isAccessibleForFree !== undefined
276
+ ? { isAccessibleForFree: input.isAccessibleForFree }
277
+ : {}),
278
+ ...(input.creator ? { creator: organizationNode(input.creator) } : {}),
279
+ ...(input.publisher ? { publisher: organizationNode(input.publisher) } : {}),
280
+ ...input.extra,
281
+ };
282
+ }
283
+ /** DefinedTermSet node without `@context`, for embedding as inDefinedTermSet. */
284
+ function definedTermSetNode(input) {
285
+ return {
286
+ "@type": "DefinedTermSet",
287
+ name: input.name,
288
+ ...(input.url ? { url: input.url } : {}),
289
+ ...(input.description ? { description: input.description } : {}),
290
+ ...(input.version ? { version: input.version } : {}),
291
+ ...(input.inLanguage ? { inLanguage: input.inLanguage } : {}),
292
+ ...input.extra,
293
+ };
294
+ }
295
+ /** DefinedTermSet: the vocabulary/classification a term belongs to. */
296
+ export function definedTermSet(input) {
297
+ return { "@context": CONTEXT, ...definedTermSetNode(input) };
298
+ }
299
+ /** DefinedTerm: one entry of a controlled vocabulary or classification. */
300
+ export function definedTerm(input) {
301
+ const set = typeof input.inDefinedTermSet === "string"
302
+ ? input.inDefinedTermSet
303
+ : input.inDefinedTermSet
304
+ ? definedTermSetNode(input.inDefinedTermSet)
305
+ : undefined;
306
+ return {
307
+ "@context": CONTEXT,
308
+ "@type": "DefinedTerm",
309
+ name: input.name,
310
+ ...(input.description ? { description: input.description } : {}),
311
+ ...(input.url ? { url: input.url } : {}),
312
+ ...(input.termCode ? { termCode: input.termCode } : {}),
313
+ ...(input.inLanguage ? { inLanguage: input.inLanguage } : {}),
314
+ ...(set ? { inDefinedTermSet: set } : {}),
315
+ ...input.extra,
237
316
  };
238
317
  }
239
318
  /**
@@ -308,6 +387,35 @@ export function createSeo(config) {
308
387
  : {}),
309
388
  });
310
389
  },
390
+ /** Dataset; `path` is resolved and the configured org becomes publisher. */
391
+ dataset(input) {
392
+ const { path, publisher, ...rest } = input;
393
+ const resolvedPublisher = publisher ?? config.organization;
394
+ return dataset({
395
+ ...rest,
396
+ ...(path ? { url: absolute(path) } : {}),
397
+ ...(resolvedPublisher
398
+ ? { publisher: resolveOrg(resolvedPublisher) }
399
+ : {}),
400
+ });
401
+ },
402
+ /** DefinedTerm; `path` and the term set's `path` are resolved. */
403
+ definedTerm(input) {
404
+ const { path, inDefinedTermSet, ...rest } = input;
405
+ let set;
406
+ if (typeof inDefinedTermSet === "string") {
407
+ set = absolute(inDefinedTermSet);
408
+ }
409
+ else if (inDefinedTermSet) {
410
+ const { path: setPath, ...setRest } = inDefinedTermSet;
411
+ set = { ...setRest, ...(setPath ? { url: absolute(setPath) } : {}) };
412
+ }
413
+ return definedTerm({
414
+ ...rest,
415
+ ...(path ? { url: absolute(path) } : {}),
416
+ ...(set ? { inDefinedTermSet: set } : {}),
417
+ });
418
+ },
311
419
  };
312
420
  }
313
421
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ingram-tech/nk-seo",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "SEO primitives for Next.js sites: typed schema.org JSON-LD builders, a <JsonLd> tag, a Metadata factory (canonical + OG + Twitter), and configurable hreflang alternates.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -31,16 +31,16 @@
31
31
  }
32
32
  },
33
33
  "scripts": {
34
- "build": "tsc -p tsconfig.json",
34
+ "build": "tsc -p tsconfig.build.json",
35
35
  "type-check": "tsc -p tsconfig.json --noEmit",
36
36
  "test": "vitest run"
37
37
  },
38
38
  "devDependencies": {
39
- "@ingram-tech/nk-dev": "0.5.0",
40
- "@types/node": "^26.1.1",
41
- "@types/react": "^19.2.17",
42
- "next": "^16.2.10",
43
- "react": "^19.2.7",
39
+ "@ingram-tech/nk-dev": "0.10.0",
40
+ "@types/node": "^26.1.2",
41
+ "@types/react": "^19.2.18",
42
+ "next": "^16.2.12",
43
+ "react": "^19.2.8",
44
44
  "typescript": "^7.0.2",
45
45
  "vitest": "^4.1.10"
46
46
  },