@ingram-tech/nk-seo 0.4.0 → 0.6.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 +142 -23
- package/dist/alternates.d.ts +49 -0
- package/dist/alternates.d.ts.map +1 -0
- package/dist/alternates.js +59 -0
- package/dist/alternates.js.map +1 -0
- package/dist/components.d.ts +1 -1
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +1 -1
- package/dist/components.js.map +1 -1
- package/dist/hreflang.d.ts +23 -21
- package/dist/hreflang.d.ts.map +1 -1
- package/dist/hreflang.js +16 -14
- package/dist/hreflang.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/json-ld.d.ts +1 -3
- package/dist/json-ld.d.ts.map +1 -1
- package/dist/json-ld.js +17 -5
- package/dist/json-ld.js.map +1 -1
- package/dist/metadata.d.ts +25 -2
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +27 -4
- package/dist/metadata.js.map +1 -1
- package/dist/og.d.ts +68 -0
- package/dist/og.d.ts.map +1 -0
- package/dist/og.js +62 -0
- package/dist/og.js.map +1 -0
- package/dist/routes.d.ts +91 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +78 -0
- package/dist/routes.js.map +1 -0
- package/dist/schema.d.ts +182 -27
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +32 -11
- package/dist/schema.js.map +1 -1
- package/dist/url.d.ts +14 -0
- package/dist/url.d.ts.map +1 -0
- package/dist/url.js +23 -0
- package/dist/url.js.map +1 -0
- package/package.json +7 -2
package/dist/schema.d.ts
CHANGED
|
@@ -1,27 +1,44 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Typed schema.org JSON-LD builders. Each returns a plain object ready to hand
|
|
3
|
-
* to `<JsonLd>` (from "@ingram-tech/nk-seo/components").
|
|
4
|
-
*
|
|
5
|
-
* The standalone builders take values as-is: pass **absolute** URLs for
|
|
6
|
-
* `url`/`image`/`logo` fields. If your pages work in site-relative paths and
|
|
7
|
-
* share one Organization, prefer {@link createSeo}, which resolves paths against
|
|
8
|
-
* a base URL and injects the publisher/provider for you.
|
|
9
|
-
*/
|
|
10
|
-
/** A schema.org node. Hand it to `<JsonLd data={...} />`. */
|
|
1
|
+
/** A loosely-typed schema.org node. The builders return more precise subtypes. */
|
|
11
2
|
export type JsonLdNode = Record<string, unknown>;
|
|
3
|
+
/** A top-level schema.org node: the payload plus its `@context`. */
|
|
4
|
+
export type WithContext<T> = T & {
|
|
5
|
+
"@context": "https://schema.org";
|
|
6
|
+
};
|
|
12
7
|
export interface FaqItem {
|
|
13
8
|
question: string;
|
|
14
9
|
answer: string;
|
|
15
10
|
}
|
|
11
|
+
export type QuestionNode = {
|
|
12
|
+
"@type": "Question";
|
|
13
|
+
name: string;
|
|
14
|
+
acceptedAnswer: {
|
|
15
|
+
"@type": "Answer";
|
|
16
|
+
text: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export type FaqPageNode = {
|
|
20
|
+
"@type": "FAQPage";
|
|
21
|
+
mainEntity: QuestionNode[];
|
|
22
|
+
};
|
|
16
23
|
/** FAQPage: marks up a list of question/answer pairs for FAQ rich results. */
|
|
17
|
-
export declare function faqPage(items: FaqItem[]):
|
|
24
|
+
export declare function faqPage(items: FaqItem[]): WithContext<FaqPageNode>;
|
|
18
25
|
export interface BreadcrumbItem {
|
|
19
26
|
name: string;
|
|
20
27
|
/** Absolute URL of the crumb. */
|
|
21
28
|
url: string;
|
|
22
29
|
}
|
|
30
|
+
export type ListItemNode = {
|
|
31
|
+
"@type": "ListItem";
|
|
32
|
+
position: number;
|
|
33
|
+
name: string;
|
|
34
|
+
item: string;
|
|
35
|
+
};
|
|
36
|
+
export type BreadcrumbListNode = {
|
|
37
|
+
"@type": "BreadcrumbList";
|
|
38
|
+
itemListElement: ListItemNode[];
|
|
39
|
+
};
|
|
23
40
|
/** BreadcrumbList: the trail of links Google shows in place of the raw URL. */
|
|
24
|
-
export declare function breadcrumbList(items: BreadcrumbItem[]):
|
|
41
|
+
export declare function breadcrumbList(items: BreadcrumbItem[]): WithContext<BreadcrumbListNode>;
|
|
25
42
|
export interface OrganizationInput {
|
|
26
43
|
name: string;
|
|
27
44
|
/** Absolute URL of the organization's site. */
|
|
@@ -36,16 +53,40 @@ export interface OrganizationInput {
|
|
|
36
53
|
/** Profile/social URLs that corroborate the entity (LinkedIn, Crunchbase…). */
|
|
37
54
|
sameAs?: string[];
|
|
38
55
|
}
|
|
56
|
+
export type PostalAddressNode = {
|
|
57
|
+
"@type": "PostalAddress";
|
|
58
|
+
} & PostalAddressInput;
|
|
59
|
+
export type ImageObjectNode = {
|
|
60
|
+
"@type": "ImageObject";
|
|
61
|
+
url: string;
|
|
62
|
+
};
|
|
63
|
+
export type OrganizationNode = {
|
|
64
|
+
"@type": "Organization";
|
|
65
|
+
name: string;
|
|
66
|
+
url?: string;
|
|
67
|
+
logo?: ImageObjectNode;
|
|
68
|
+
description?: string;
|
|
69
|
+
email?: string;
|
|
70
|
+
telephone?: string;
|
|
71
|
+
address?: PostalAddressNode;
|
|
72
|
+
sameAs?: string[];
|
|
73
|
+
};
|
|
39
74
|
/** Organization: the entity behind the site (for the knowledge panel). */
|
|
40
|
-
export declare function organization(input: OrganizationInput):
|
|
75
|
+
export declare function organization(input: OrganizationInput): WithContext<OrganizationNode>;
|
|
41
76
|
export interface WebsiteInput {
|
|
42
77
|
name: string;
|
|
43
78
|
/** Absolute URL of the site root. */
|
|
44
79
|
url: string;
|
|
45
80
|
publisher?: OrganizationInput;
|
|
46
81
|
}
|
|
82
|
+
export type WebsiteNode = {
|
|
83
|
+
"@type": "WebSite";
|
|
84
|
+
name: string;
|
|
85
|
+
url: string;
|
|
86
|
+
publisher?: OrganizationNode;
|
|
87
|
+
};
|
|
47
88
|
/** WebSite: identifies the site as an entity; pair with {@link organization}. */
|
|
48
|
-
export declare function website(input: WebsiteInput):
|
|
89
|
+
export declare function website(input: WebsiteInput): WithContext<WebsiteNode>;
|
|
49
90
|
export interface OfferInput {
|
|
50
91
|
priceCurrency: string;
|
|
51
92
|
/** Single price. Mutually exclusive with low/high (which emit an AggregateOffer). */
|
|
@@ -56,6 +97,20 @@ export interface OfferInput {
|
|
|
56
97
|
/** Absolute URL of the pricing/offer page. */
|
|
57
98
|
url?: string;
|
|
58
99
|
}
|
|
100
|
+
export type OfferNode = {
|
|
101
|
+
"@type": "Offer";
|
|
102
|
+
priceCurrency: string;
|
|
103
|
+
price?: string;
|
|
104
|
+
url?: string;
|
|
105
|
+
};
|
|
106
|
+
export type AggregateOfferNode = {
|
|
107
|
+
"@type": "AggregateOffer";
|
|
108
|
+
priceCurrency: string;
|
|
109
|
+
lowPrice?: string;
|
|
110
|
+
highPrice?: string;
|
|
111
|
+
offerCount?: string;
|
|
112
|
+
url?: string;
|
|
113
|
+
};
|
|
59
114
|
export interface SoftwareApplicationInput {
|
|
60
115
|
name: string;
|
|
61
116
|
description?: string;
|
|
@@ -67,8 +122,17 @@ export interface SoftwareApplicationInput {
|
|
|
67
122
|
operatingSystem?: string;
|
|
68
123
|
offers?: OfferInput;
|
|
69
124
|
}
|
|
125
|
+
export type SoftwareApplicationNode = {
|
|
126
|
+
"@type": "SoftwareApplication";
|
|
127
|
+
name: string;
|
|
128
|
+
applicationCategory?: string;
|
|
129
|
+
operatingSystem?: string;
|
|
130
|
+
url?: string;
|
|
131
|
+
description?: string;
|
|
132
|
+
offers?: OfferNode | AggregateOfferNode;
|
|
133
|
+
};
|
|
70
134
|
/** SoftwareApplication: marks a product page as an app for rich results. */
|
|
71
|
-
export declare function softwareApplication(input: SoftwareApplicationInput):
|
|
135
|
+
export declare function softwareApplication(input: SoftwareApplicationInput): WithContext<SoftwareApplicationNode>;
|
|
72
136
|
export interface ArticleAuthor {
|
|
73
137
|
name: string;
|
|
74
138
|
/** Absolute URL of the author's profile/page. */
|
|
@@ -89,8 +153,26 @@ export interface ArticleInput {
|
|
|
89
153
|
keywords?: string[];
|
|
90
154
|
publisher?: OrganizationInput;
|
|
91
155
|
}
|
|
156
|
+
export type ArticleAuthorNode = {
|
|
157
|
+
"@type": "Person";
|
|
158
|
+
name: string;
|
|
159
|
+
url?: string;
|
|
160
|
+
};
|
|
161
|
+
export type ArticleNode = {
|
|
162
|
+
"@type": "Article" | "BlogPosting" | "NewsArticle" | "ScholarlyArticle";
|
|
163
|
+
headline: string;
|
|
164
|
+
url: string;
|
|
165
|
+
mainEntityOfPage: string;
|
|
166
|
+
description?: string;
|
|
167
|
+
author?: ArticleAuthorNode[];
|
|
168
|
+
publisher?: OrganizationNode;
|
|
169
|
+
datePublished?: string;
|
|
170
|
+
dateModified?: string;
|
|
171
|
+
image?: string;
|
|
172
|
+
keywords?: string[];
|
|
173
|
+
};
|
|
92
174
|
/** Article (or BlogPosting/NewsArticle/ScholarlyArticle) for editorial pages. */
|
|
93
|
-
export declare function article(input: ArticleInput):
|
|
175
|
+
export declare function article(input: ArticleInput): WithContext<ArticleNode>;
|
|
94
176
|
export interface PersonInput {
|
|
95
177
|
name: string;
|
|
96
178
|
/** Absolute URL of the person's page/profile. */
|
|
@@ -107,8 +189,23 @@ export interface PersonInput {
|
|
|
107
189
|
/** Home location place name, e.g. "Brussels, Belgium". */
|
|
108
190
|
homeLocation?: string;
|
|
109
191
|
}
|
|
192
|
+
export type PersonNode = {
|
|
193
|
+
"@type": "Person";
|
|
194
|
+
name: string;
|
|
195
|
+
url?: string;
|
|
196
|
+
jobTitle?: string;
|
|
197
|
+
worksFor?: OrganizationNode;
|
|
198
|
+
image?: string;
|
|
199
|
+
description?: string;
|
|
200
|
+
email?: string;
|
|
201
|
+
sameAs?: string[];
|
|
202
|
+
homeLocation?: {
|
|
203
|
+
"@type": "Place";
|
|
204
|
+
name: string;
|
|
205
|
+
};
|
|
206
|
+
};
|
|
110
207
|
/** Person: identifies an individual as an entity (portfolio, team, author bios). */
|
|
111
|
-
export declare function person(input: PersonInput):
|
|
208
|
+
export declare function person(input: PersonInput): WithContext<PersonNode>;
|
|
112
209
|
export interface PostalAddressInput {
|
|
113
210
|
streetAddress?: string;
|
|
114
211
|
addressLocality?: string;
|
|
@@ -148,8 +245,36 @@ export interface LocalBusinessInput {
|
|
|
148
245
|
/** schema.org LocalBusiness subtype, e.g. "Store", "ArtGallery". Default "LocalBusiness". */
|
|
149
246
|
type?: string;
|
|
150
247
|
}
|
|
248
|
+
export type GeoCoordinatesNode = {
|
|
249
|
+
"@type": "GeoCoordinates";
|
|
250
|
+
latitude: number;
|
|
251
|
+
longitude: number;
|
|
252
|
+
};
|
|
253
|
+
export type AggregateRatingNode = {
|
|
254
|
+
"@type": "AggregateRating";
|
|
255
|
+
ratingValue: string;
|
|
256
|
+
reviewCount: string;
|
|
257
|
+
};
|
|
258
|
+
export type LocalBusinessNode = {
|
|
259
|
+
/** "LocalBusiness" or the subtype passed as `type`. */
|
|
260
|
+
"@type": string;
|
|
261
|
+
name: string;
|
|
262
|
+
url?: string;
|
|
263
|
+
description?: string;
|
|
264
|
+
image?: string[];
|
|
265
|
+
logo?: string;
|
|
266
|
+
email?: string;
|
|
267
|
+
telephone?: string;
|
|
268
|
+
priceRange?: string;
|
|
269
|
+
openingHours?: string | string[];
|
|
270
|
+
address?: PostalAddressNode;
|
|
271
|
+
geo?: GeoCoordinatesNode;
|
|
272
|
+
hasMap?: string;
|
|
273
|
+
aggregateRating?: AggregateRatingNode;
|
|
274
|
+
sameAs?: string[];
|
|
275
|
+
};
|
|
151
276
|
/** LocalBusiness (or a subtype): a physical business for local/maps SEO. */
|
|
152
|
-
export declare function localBusiness(input: LocalBusinessInput):
|
|
277
|
+
export declare function localBusiness(input: LocalBusinessInput): WithContext<LocalBusinessNode>;
|
|
153
278
|
export interface EventLocationInput {
|
|
154
279
|
name?: string;
|
|
155
280
|
/** Postal address string or a URL for online events. */
|
|
@@ -177,12 +302,40 @@ export interface EventInput {
|
|
|
177
302
|
eventStatus?: string;
|
|
178
303
|
attendanceMode?: "offline" | "online" | "mixed";
|
|
179
304
|
}
|
|
305
|
+
export type PlaceNode = {
|
|
306
|
+
"@type": "Place";
|
|
307
|
+
name?: string;
|
|
308
|
+
address?: string;
|
|
309
|
+
url?: string;
|
|
310
|
+
};
|
|
311
|
+
export type VirtualLocationNode = {
|
|
312
|
+
"@type": "VirtualLocation";
|
|
313
|
+
url?: string;
|
|
314
|
+
};
|
|
315
|
+
export type EventNode = {
|
|
316
|
+
"@type": "Event";
|
|
317
|
+
name: string;
|
|
318
|
+
startDate: string;
|
|
319
|
+
endDate: string;
|
|
320
|
+
eventStatus: string;
|
|
321
|
+
eventAttendanceMode?: string;
|
|
322
|
+
description?: string;
|
|
323
|
+
url?: string;
|
|
324
|
+
image?: string[];
|
|
325
|
+
location?: PlaceNode | VirtualLocationNode;
|
|
326
|
+
organizer?: OrganizationNode;
|
|
327
|
+
offers?: OfferNode | AggregateOfferNode;
|
|
328
|
+
};
|
|
180
329
|
/** Event: a scheduled happening (summit, workshop, conference) for event rich results. */
|
|
181
|
-
export declare function event(input: EventInput):
|
|
330
|
+
export declare function event(input: EventInput): WithContext<EventNode>;
|
|
182
331
|
export interface SeoConfig {
|
|
183
|
-
/** Absolute site origin, e.g. "https://
|
|
332
|
+
/** Absolute site origin, e.g. "https://acme.example". */
|
|
184
333
|
baseUrl: string;
|
|
185
|
-
/**
|
|
334
|
+
/**
|
|
335
|
+
* Shared publisher/provider, injected into article()/website()/organization().
|
|
336
|
+
* Its `url` and `logo` may be site-relative — they are resolved against
|
|
337
|
+
* `baseUrl`.
|
|
338
|
+
*/
|
|
186
339
|
organization?: OrganizationInput;
|
|
187
340
|
}
|
|
188
341
|
/** A path-aware version of a crumb: `path` is resolved against the base URL. */
|
|
@@ -193,6 +346,8 @@ export interface BreadcrumbPath {
|
|
|
193
346
|
/**
|
|
194
347
|
* Binds the builders to a site so callers pass site-relative paths instead of
|
|
195
348
|
* absolute URLs, and the configured Organization is injected automatically.
|
|
349
|
+
* Nested URL fields (`organization.url`/`logo`, `offers.url`, article `image`)
|
|
350
|
+
* are resolved too — JSON-LD must never ship relative URLs.
|
|
196
351
|
*
|
|
197
352
|
* @example
|
|
198
353
|
* const seo = createSeo({ baseUrl: getServerUrl(), organization: ORG });
|
|
@@ -204,21 +359,21 @@ export declare function createSeo(config: SeoConfig): {
|
|
|
204
359
|
/** FAQPage (path-free). */
|
|
205
360
|
faqPage: typeof faqPage;
|
|
206
361
|
/** BreadcrumbList from site-relative paths. */
|
|
207
|
-
breadcrumbs(items: BreadcrumbPath[]):
|
|
362
|
+
breadcrumbs(items: BreadcrumbPath[]): WithContext<BreadcrumbListNode>;
|
|
208
363
|
/** Organization from config (with optional per-call overrides). */
|
|
209
|
-
organization(overrides?: Partial<OrganizationInput>):
|
|
364
|
+
organization(overrides?: Partial<OrganizationInput>): WithContext<OrganizationNode>;
|
|
210
365
|
/** WebSite from config, defaulting name/url/publisher to the configured org. */
|
|
211
|
-
website(input?: Partial<WebsiteInput>):
|
|
212
|
-
/** SoftwareApplication; `path` (default "/")
|
|
366
|
+
website(input?: Partial<WebsiteInput>): WithContext<WebsiteNode>;
|
|
367
|
+
/** SoftwareApplication; `path` (default "/") and `offers.url` are resolved. */
|
|
213
368
|
softwareApplication(input: Omit<SoftwareApplicationInput, "url"> & {
|
|
214
369
|
path?: string;
|
|
215
|
-
}):
|
|
370
|
+
}): WithContext<SoftwareApplicationNode>;
|
|
216
371
|
/** Article; `path`/`image` are resolved and the configured org becomes publisher. */
|
|
217
372
|
article(input: Omit<ArticleInput, "url" | "image" | "publisher"> & {
|
|
218
373
|
path: string;
|
|
219
374
|
image?: string;
|
|
220
375
|
publisher?: OrganizationInput;
|
|
221
|
-
}):
|
|
376
|
+
}): WithContext<ArticleNode>;
|
|
222
377
|
};
|
|
223
378
|
export type Seo = ReturnType<typeof createSeo>;
|
|
224
379
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import { absoluteUrl } from "./url.js";
|
|
1
2
|
/**
|
|
2
|
-
* Typed schema.org JSON-LD builders. Each returns a
|
|
3
|
+
* Typed schema.org JSON-LD builders. Each returns a typed node ready to hand
|
|
3
4
|
* to `<JsonLd>` (from "@ingram-tech/nk-seo/components").
|
|
4
5
|
*
|
|
5
6
|
* The standalone builders take values as-is: pass **absolute** URLs for
|
|
6
7
|
* `url`/`image`/`logo` fields. If your pages work in site-relative paths and
|
|
7
8
|
* share one Organization, prefer {@link createSeo}, which resolves paths against
|
|
8
|
-
* a base URL and injects the
|
|
9
|
+
* a base URL (including nested `logo`/`offers.url` fields) and injects the
|
|
10
|
+
* publisher/provider for you.
|
|
9
11
|
*/
|
|
10
12
|
const CONTEXT = "https://schema.org";
|
|
11
13
|
/** FAQPage: marks up a list of question/answer pairs for FAQ rich results. */
|
|
@@ -132,7 +134,7 @@ export function article(input) {
|
|
|
132
134
|
/** Person: identifies an individual as an entity (portfolio, team, author bios). */
|
|
133
135
|
export function person(input) {
|
|
134
136
|
const worksFor = typeof input.worksFor === "string"
|
|
135
|
-
? {
|
|
137
|
+
? organizationNode({ name: input.worksFor })
|
|
136
138
|
: input.worksFor
|
|
137
139
|
? organizationNode(input.worksFor)
|
|
138
140
|
: undefined;
|
|
@@ -237,13 +239,24 @@ export function event(input) {
|
|
|
237
239
|
/**
|
|
238
240
|
* Binds the builders to a site so callers pass site-relative paths instead of
|
|
239
241
|
* absolute URLs, and the configured Organization is injected automatically.
|
|
242
|
+
* Nested URL fields (`organization.url`/`logo`, `offers.url`, article `image`)
|
|
243
|
+
* are resolved too — JSON-LD must never ship relative URLs.
|
|
240
244
|
*
|
|
241
245
|
* @example
|
|
242
246
|
* const seo = createSeo({ baseUrl: getServerUrl(), organization: ORG });
|
|
243
247
|
* <JsonLd data={seo.article({ path: `/blog/${slug}`, headline, datePublished })} />
|
|
244
248
|
*/
|
|
245
249
|
export function createSeo(config) {
|
|
246
|
-
const absolute = (path) =>
|
|
250
|
+
const absolute = (path) => absoluteUrl(path, config.baseUrl);
|
|
251
|
+
const resolveOrg = (org) => ({
|
|
252
|
+
...org,
|
|
253
|
+
...(org.url ? { url: absolute(org.url) } : {}),
|
|
254
|
+
...(org.logo ? { logo: absolute(org.logo) } : {}),
|
|
255
|
+
});
|
|
256
|
+
const resolveOffers = (offers) => ({
|
|
257
|
+
...offers,
|
|
258
|
+
...(offers.url ? { url: absolute(offers.url) } : {}),
|
|
259
|
+
});
|
|
247
260
|
return {
|
|
248
261
|
/** Resolve a site-relative path to an absolute URL. */
|
|
249
262
|
absolute,
|
|
@@ -258,7 +271,7 @@ export function createSeo(config) {
|
|
|
258
271
|
if (!config.organization) {
|
|
259
272
|
throw new Error("createSeo: organization() needs `organization` in config");
|
|
260
273
|
}
|
|
261
|
-
return organization({ ...config.organization, ...overrides });
|
|
274
|
+
return organization(resolveOrg({ ...config.organization, ...overrides }));
|
|
262
275
|
},
|
|
263
276
|
/** WebSite from config, defaulting name/url/publisher to the configured org. */
|
|
264
277
|
website(input) {
|
|
@@ -266,25 +279,33 @@ export function createSeo(config) {
|
|
|
266
279
|
if (!name) {
|
|
267
280
|
throw new Error("createSeo: website() needs a name or configured organization");
|
|
268
281
|
}
|
|
282
|
+
const publisher = input?.publisher ?? config.organization;
|
|
269
283
|
return website({
|
|
270
284
|
name,
|
|
271
|
-
url: input?.url ?? config.baseUrl,
|
|
272
|
-
publisher:
|
|
285
|
+
url: absolute(input?.url ?? config.baseUrl),
|
|
286
|
+
...(publisher ? { publisher: resolveOrg(publisher) } : {}),
|
|
273
287
|
});
|
|
274
288
|
},
|
|
275
|
-
/** SoftwareApplication; `path` (default "/")
|
|
289
|
+
/** SoftwareApplication; `path` (default "/") and `offers.url` are resolved. */
|
|
276
290
|
softwareApplication(input) {
|
|
277
|
-
const { path, ...rest } = input;
|
|
278
|
-
return softwareApplication({
|
|
291
|
+
const { path, offers, ...rest } = input;
|
|
292
|
+
return softwareApplication({
|
|
293
|
+
...rest,
|
|
294
|
+
url: absolute(path ?? "/"),
|
|
295
|
+
...(offers ? { offers: resolveOffers(offers) } : {}),
|
|
296
|
+
});
|
|
279
297
|
},
|
|
280
298
|
/** Article; `path`/`image` are resolved and the configured org becomes publisher. */
|
|
281
299
|
article(input) {
|
|
282
300
|
const { path, image, publisher, ...rest } = input;
|
|
301
|
+
const resolvedPublisher = publisher ?? config.organization;
|
|
283
302
|
return article({
|
|
284
303
|
...rest,
|
|
285
304
|
url: absolute(path),
|
|
286
305
|
...(image ? { image: absolute(image) } : {}),
|
|
287
|
-
|
|
306
|
+
...(resolvedPublisher
|
|
307
|
+
? { publisher: resolveOrg(resolvedPublisher) }
|
|
308
|
+
: {}),
|
|
288
309
|
});
|
|
289
310
|
},
|
|
290
311
|
};
|
package/dist/schema.js.map
CHANGED
|
@@ -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/dist/url.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves a site-relative path against a base origin; absolute http(s) URLs
|
|
3
|
+
* pass through untouched. The one URL-resolution rule for the whole package —
|
|
4
|
+
* every entry (builders, metadata, routes, hreflang) resolves through here so
|
|
5
|
+
* they can't drift (e.g. trailing-slash `baseUrl` producing `//` paths).
|
|
6
|
+
*
|
|
7
|
+
* Throws when the input escapes the site origin. A protocol-relative path
|
|
8
|
+
* (`//evil.com/x` — which a request to `https://site//evil.com/x` puts into
|
|
9
|
+
* `req.nextUrl.pathname` and thus into `x-pathname`) or a scheme'd value
|
|
10
|
+
* (`javascript:…`) would otherwise flow straight into a canonical/hreflang
|
|
11
|
+
* link, an SEO-hijack primitive once cached. Loud beats poisoned.
|
|
12
|
+
*/
|
|
13
|
+
export declare const absoluteUrl: (path: string, baseUrl: string) => string;
|
|
14
|
+
//# sourceMappingURL=url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,MAU3D,CAAC"}
|
package/dist/url.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves a site-relative path against a base origin; absolute http(s) URLs
|
|
3
|
+
* pass through untouched. The one URL-resolution rule for the whole package —
|
|
4
|
+
* every entry (builders, metadata, routes, hreflang) resolves through here so
|
|
5
|
+
* they can't drift (e.g. trailing-slash `baseUrl` producing `//` paths).
|
|
6
|
+
*
|
|
7
|
+
* Throws when the input escapes the site origin. A protocol-relative path
|
|
8
|
+
* (`//evil.com/x` — which a request to `https://site//evil.com/x` puts into
|
|
9
|
+
* `req.nextUrl.pathname` and thus into `x-pathname`) or a scheme'd value
|
|
10
|
+
* (`javascript:…`) would otherwise flow straight into a canonical/hreflang
|
|
11
|
+
* link, an SEO-hijack primitive once cached. Loud beats poisoned.
|
|
12
|
+
*/
|
|
13
|
+
export const absoluteUrl = (path, baseUrl) => {
|
|
14
|
+
if (/^https?:\/\//.test(path))
|
|
15
|
+
return path;
|
|
16
|
+
const base = new URL(baseUrl);
|
|
17
|
+
const resolved = new URL(path, base);
|
|
18
|
+
if (resolved.origin !== base.origin) {
|
|
19
|
+
throw new Error(`@ingram-tech/nk-seo: "${path}" resolves outside the site origin ${base.origin}`);
|
|
20
|
+
}
|
|
21
|
+
return resolved.toString();
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=url.js.map
|
package/dist/url.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,OAAe,EAAU,EAAE;IACpE,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACd,yBAAyB,IAAI,sCAAsC,IAAI,CAAC,MAAM,EAAE,CAChF,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC5B,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ingram-tech/nk-seo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.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",
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"publishConfig": {
|
|
13
13
|
"access": "public"
|
|
14
14
|
},
|
|
15
|
+
"sideEffects": false,
|
|
15
16
|
"files": [
|
|
16
17
|
"dist"
|
|
17
18
|
],
|
|
@@ -23,6 +24,10 @@
|
|
|
23
24
|
"./components": {
|
|
24
25
|
"types": "./dist/components.d.ts",
|
|
25
26
|
"import": "./dist/components.js"
|
|
27
|
+
},
|
|
28
|
+
"./og": {
|
|
29
|
+
"types": "./dist/og.d.ts",
|
|
30
|
+
"import": "./dist/og.js"
|
|
26
31
|
}
|
|
27
32
|
},
|
|
28
33
|
"scripts": {
|
|
@@ -31,7 +36,7 @@
|
|
|
31
36
|
"test": "vitest run"
|
|
32
37
|
},
|
|
33
38
|
"devDependencies": {
|
|
34
|
-
"@ingram-tech/nk-dev": "0.2.
|
|
39
|
+
"@ingram-tech/nk-dev": "0.2.5",
|
|
35
40
|
"@types/node": "^26.0.1",
|
|
36
41
|
"@types/react": "^19.2.17",
|
|
37
42
|
"next": "^16.0.0",
|