@unhead/schema-org 0.1.1 → 0.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/dist/index.cjs +11 -4
- package/dist/index.d.ts +6 -5
- package/dist/index.mjs +10 -4
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -261,7 +261,7 @@ const webSiteResolver = defineSchemaOrgResolver({
|
|
|
261
261
|
}
|
|
262
262
|
});
|
|
263
263
|
|
|
264
|
-
const
|
|
264
|
+
const listItemResolver = defineSchemaOrgResolver({
|
|
265
265
|
cast(node) {
|
|
266
266
|
if (typeof node === "string") {
|
|
267
267
|
node = {
|
|
@@ -276,6 +276,8 @@ const resolveListItem = defineSchemaOrgResolver({
|
|
|
276
276
|
resolve(node, ctx) {
|
|
277
277
|
if (typeof node.item === "string")
|
|
278
278
|
node.item = resolveWithBase(ctx.meta.host, node.item);
|
|
279
|
+
else if (typeof node.item === "object")
|
|
280
|
+
node.item = resolveRelation(node.item, ctx);
|
|
279
281
|
return node;
|
|
280
282
|
}
|
|
281
283
|
});
|
|
@@ -289,7 +291,7 @@ const breadcrumbResolver = defineSchemaOrgResolver({
|
|
|
289
291
|
resolve(breadcrumb, ctx) {
|
|
290
292
|
if (breadcrumb.itemListElement) {
|
|
291
293
|
let index = 1;
|
|
292
|
-
breadcrumb.itemListElement = resolveRelation(breadcrumb.itemListElement, ctx,
|
|
294
|
+
breadcrumb.itemListElement = resolveRelation(breadcrumb.itemListElement, ctx, listItemResolver, {
|
|
293
295
|
array: true,
|
|
294
296
|
afterResolve(node) {
|
|
295
297
|
setIfEmpty(node, "position", index++);
|
|
@@ -770,7 +772,7 @@ const itemListResolver = defineSchemaOrgResolver({
|
|
|
770
772
|
resolve(node, ctx) {
|
|
771
773
|
if (node.itemListElement) {
|
|
772
774
|
let index = 1;
|
|
773
|
-
node.itemListElement = resolveRelation(node.itemListElement, ctx,
|
|
775
|
+
node.itemListElement = resolveRelation(node.itemListElement, ctx, listItemResolver, {
|
|
774
776
|
array: true,
|
|
775
777
|
afterResolve(node2) {
|
|
776
778
|
setIfEmpty(node2, "position", index++);
|
|
@@ -1545,6 +1547,8 @@ function loadResolver(resolver) {
|
|
|
1545
1547
|
return courseResolver;
|
|
1546
1548
|
case "itemList":
|
|
1547
1549
|
return itemListResolver;
|
|
1550
|
+
case "listItem":
|
|
1551
|
+
return listItemResolver;
|
|
1548
1552
|
case "movie":
|
|
1549
1553
|
return movieResolver;
|
|
1550
1554
|
case "searchAction":
|
|
@@ -1581,6 +1585,7 @@ const resolveMeta = (meta) => {
|
|
|
1581
1585
|
meta.url = meta.canonicalUrl;
|
|
1582
1586
|
meta.url = joinURL(meta.host, meta.path);
|
|
1583
1587
|
return {
|
|
1588
|
+
...meta,
|
|
1584
1589
|
host: meta.host,
|
|
1585
1590
|
url: meta.url,
|
|
1586
1591
|
currency: meta.currency,
|
|
@@ -1832,6 +1837,7 @@ const defineWebSite = (input) => provideResolver(input, "webSite");
|
|
|
1832
1837
|
const defineBook = (input) => provideResolver(input, "book");
|
|
1833
1838
|
const defineCourse = (input) => provideResolver(input, "course");
|
|
1834
1839
|
const defineItemList = (input) => provideResolver(input, "itemList");
|
|
1840
|
+
const defineListItem = (input) => provideResolver(input, "listItem");
|
|
1835
1841
|
const defineMovie = (input) => provideResolver(input, "movie");
|
|
1836
1842
|
const defineSearchAction = (input) => provideResolver(input, "searchAction");
|
|
1837
1843
|
const defineReadAction = (input) => provideResolver(input, "readAction");
|
|
@@ -1884,6 +1890,7 @@ exports.defineHowTo = defineHowTo;
|
|
|
1884
1890
|
exports.defineHowToStep = defineHowToStep;
|
|
1885
1891
|
exports.defineImage = defineImage;
|
|
1886
1892
|
exports.defineItemList = defineItemList;
|
|
1893
|
+
exports.defineListItem = defineListItem;
|
|
1887
1894
|
exports.defineLocalBusiness = defineLocalBusiness;
|
|
1888
1895
|
exports.defineMovie = defineMovie;
|
|
1889
1896
|
exports.defineOffer = defineOffer;
|
|
@@ -1909,6 +1916,7 @@ exports.howToStepDirectionResolver = howToStepDirectionResolver;
|
|
|
1909
1916
|
exports.howToStepResolver = howToStepResolver;
|
|
1910
1917
|
exports.imageResolver = imageResolver;
|
|
1911
1918
|
exports.itemListResolver = itemListResolver;
|
|
1919
|
+
exports.listItemResolver = listItemResolver;
|
|
1912
1920
|
exports.localBusinessResolver = localBusinessResolver;
|
|
1913
1921
|
exports.movieResolver = movieResolver;
|
|
1914
1922
|
exports.offerResolver = offerResolver;
|
|
@@ -1921,7 +1929,6 @@ exports.questionResolver = questionResolver;
|
|
|
1921
1929
|
exports.ratingResolver = ratingResolver;
|
|
1922
1930
|
exports.readActionResolver = readActionResolver;
|
|
1923
1931
|
exports.recipeResolver = recipeResolver;
|
|
1924
|
-
exports.resolveListItem = resolveListItem;
|
|
1925
1932
|
exports.resolveMeta = resolveMeta;
|
|
1926
1933
|
exports.resolveNode = resolveNode;
|
|
1927
1934
|
exports.resolveNodeId = resolveNodeId;
|
package/dist/index.d.ts
CHANGED
|
@@ -189,7 +189,7 @@ interface VideoObject extends VideoSimple {
|
|
|
189
189
|
*/
|
|
190
190
|
declare const videoResolver: SchemaOrgNodeDefinition<VideoObject>;
|
|
191
191
|
|
|
192
|
-
type ValidArticleSubTypes = 'Article' | 'AdvertiserContentArticle' | 'NewsArticle' | 'Report' | 'SatiricalArticle' | 'ScholarlyArticle' | 'SocialMediaPosting' | 'TechArticle';
|
|
192
|
+
type ValidArticleSubTypes = 'Article' | 'BlogPosting' | 'AdvertiserContentArticle' | 'NewsArticle' | 'Report' | 'SatiricalArticle' | 'ScholarlyArticle' | 'SocialMediaPosting' | 'TechArticle';
|
|
193
193
|
interface ArticleSimple extends Thing {
|
|
194
194
|
['@type']?: Arrayable<ValidArticleSubTypes>;
|
|
195
195
|
/**
|
|
@@ -436,13 +436,13 @@ interface ListItemSimple extends Thing {
|
|
|
436
436
|
/**
|
|
437
437
|
* The name of the page in question, as it appears in the breadcrumb navigation.
|
|
438
438
|
*/
|
|
439
|
-
name
|
|
439
|
+
name?: string;
|
|
440
440
|
/**
|
|
441
441
|
* The unmodified canonical URL of the page in question.
|
|
442
442
|
* - If a relative path is provided, it will be resolved to absolute.
|
|
443
443
|
* - Item is not required for the last entry
|
|
444
444
|
*/
|
|
445
|
-
item?: string;
|
|
445
|
+
item?: string | Thing;
|
|
446
446
|
/**
|
|
447
447
|
* An integer (starting at 1), counting the 'depth' of the page from (including) the homepage.
|
|
448
448
|
*/
|
|
@@ -450,7 +450,7 @@ interface ListItemSimple extends Thing {
|
|
|
450
450
|
}
|
|
451
451
|
interface ListItem extends ListItemSimple {
|
|
452
452
|
}
|
|
453
|
-
declare const
|
|
453
|
+
declare const listItemResolver: SchemaOrgNodeDefinition<ListItem>;
|
|
454
454
|
|
|
455
455
|
interface ItemListSimple extends Thing {
|
|
456
456
|
/**
|
|
@@ -1489,6 +1489,7 @@ declare const defineWebSite: <T extends Record<string, any>>(input?: (WebSite &
|
|
|
1489
1489
|
declare const defineBook: <T extends Record<string, any>>(input?: (Book & T) | undefined) => Book & T;
|
|
1490
1490
|
declare const defineCourse: <T extends Record<string, any>>(input?: (Course & T) | undefined) => Course & T;
|
|
1491
1491
|
declare const defineItemList: <T extends Record<string, any>>(input?: (ItemList & T) | undefined) => ItemList & T;
|
|
1492
|
+
declare const defineListItem: <T extends Record<string, any>>(input?: (ListItem & T) | undefined) => ListItem & T;
|
|
1492
1493
|
declare const defineMovie: <T extends Record<string, any>>(input?: (Movie & T) | undefined) => Movie & T;
|
|
1493
1494
|
declare const defineSearchAction: <T extends Record<string, any>>(input?: (SearchAction & T) | undefined) => SearchAction & T;
|
|
1494
1495
|
declare const defineReadAction: <T extends Record<string, any>>(input?: (ReadAction & T) | undefined) => ReadAction & T;
|
|
@@ -1496,4 +1497,4 @@ declare const defineSoftwareApp: <T extends Record<string, any>>(input?: (Softwa
|
|
|
1496
1497
|
declare const defineBookEdition: <T extends Record<string, any>>(input?: (BookEdition & T) | undefined) => BookEdition & T;
|
|
1497
1498
|
declare function useSchemaOrg(input?: any): any;
|
|
1498
1499
|
|
|
1499
|
-
export { AggregateOffer, AggregateOfferSimple, AggregateRating, AggregateRatingSimple, Arrayable, Article, ArticleSimple, Book, BookEdition, BookEditionSimple, BookSimple, BreadcrumbList, BreadcrumbSimple, Comment$1 as Comment, CommentSimple, Course, CourseSimple, Event, EventSimple, HowTo, HowToDirection, HowToId, HowToSimple, HowToStep, HowToStepSimple, Id, IdReference, Identity, ImageObject, ImageSimple, ItemList, ItemListSimple, ListItem, ListItemSimple, LocalBusiness, LocalBusinessSimple, MetaInput, Movie, MovieSimple, NodeRelation, NodeRelations, NutritionInformation, Offer, OfferSimple, OpeningHoursSimple, OpeningHoursSpecification, OptionalSchemaOrgPrefix, Organization, OrganizationSimple, Person, PersonSimple, Place, PlaceSimple, PostalAddress, PostalAddressSimple, PrimaryArticleId, PrimaryBookId, PrimaryBreadcrumbId, PrimaryEventId, PrimaryWebPageId, PrimaryWebSiteId, Product, ProductId, ProductSimple, Question, QuestionSimple, Rating, RatingSimple, ReadAction, ReadActionInput, Recipe, RecipeId, RecipeSimple, ResolvableDate, ResolvedMeta, Review, ReviewSimple, SchemaOrgGraph, SchemaOrgNode, SchemaOrgNodeDefinition, SchemaOrgUnheadPlugin, SearchAction, SearchActionInput, SoftwareApp, SoftwareAppSimple, Thing, UserConfig, VideoObject, VideoSimple, VirtualLocation, VirtualLocationSimple, WebPage, WebPageSimple, WebSite, WebSiteSimple, WithResolver, addressResolver, aggregateOfferResolver, aggregateRatingResolver, articleResolver, bookEditionResolver, bookResolver, breadcrumbResolver, commentResolver, courseResolver, createSchemaOrgGraph, dedupeNodes, defineAddress, defineAggregateOffer, defineAggregateRating, defineArticle, defineBook, defineBookEdition, defineBreadcrumb, defineComment, defineCourse, defineEvent, defineHowTo, defineHowToStep, defineImage, defineItemList, defineLocalBusiness, defineMovie, defineOffer, defineOpeningHours, defineOrganization, definePerson, definePlace, defineProduct, defineQuestion, defineReadAction, defineRecipe, defineReview, defineSchemaOrgResolver, defineSearchAction, defineSoftwareApp, defineVideo, defineVirtualLocation, defineWebPage, defineWebSite, eventResolver, howToResolver, howToStepDirectionResolver, howToStepResolver, imageResolver, itemListResolver, localBusinessResolver, movieResolver, offerResolver, openingHoursResolver, organizationResolver, personResolver, placeResolver, productResolver, questionResolver, ratingResolver, readActionResolver, recipeResolver,
|
|
1500
|
+
export { AggregateOffer, AggregateOfferSimple, AggregateRating, AggregateRatingSimple, Arrayable, Article, ArticleSimple, Book, BookEdition, BookEditionSimple, BookSimple, BreadcrumbList, BreadcrumbSimple, Comment$1 as Comment, CommentSimple, Course, CourseSimple, Event, EventSimple, HowTo, HowToDirection, HowToId, HowToSimple, HowToStep, HowToStepSimple, Id, IdReference, Identity, ImageObject, ImageSimple, ItemList, ItemListSimple, ListItem, ListItemSimple, LocalBusiness, LocalBusinessSimple, MetaInput, Movie, MovieSimple, NodeRelation, NodeRelations, NutritionInformation, Offer, OfferSimple, OpeningHoursSimple, OpeningHoursSpecification, OptionalSchemaOrgPrefix, Organization, OrganizationSimple, Person, PersonSimple, Place, PlaceSimple, PostalAddress, PostalAddressSimple, PrimaryArticleId, PrimaryBookId, PrimaryBreadcrumbId, PrimaryEventId, PrimaryWebPageId, PrimaryWebSiteId, Product, ProductId, ProductSimple, Question, QuestionSimple, Rating, RatingSimple, ReadAction, ReadActionInput, Recipe, RecipeId, RecipeSimple, ResolvableDate, ResolvedMeta, Review, ReviewSimple, SchemaOrgGraph, SchemaOrgNode, SchemaOrgNodeDefinition, SchemaOrgUnheadPlugin, SearchAction, SearchActionInput, SoftwareApp, SoftwareAppSimple, Thing, UserConfig, VideoObject, VideoSimple, VirtualLocation, VirtualLocationSimple, WebPage, WebPageSimple, WebSite, WebSiteSimple, WithResolver, addressResolver, aggregateOfferResolver, aggregateRatingResolver, articleResolver, bookEditionResolver, bookResolver, breadcrumbResolver, commentResolver, courseResolver, createSchemaOrgGraph, dedupeNodes, defineAddress, defineAggregateOffer, defineAggregateRating, defineArticle, defineBook, defineBookEdition, defineBreadcrumb, defineComment, defineCourse, defineEvent, defineHowTo, defineHowToStep, defineImage, defineItemList, defineListItem, defineLocalBusiness, defineMovie, defineOffer, defineOpeningHours, defineOrganization, definePerson, definePlace, defineProduct, defineQuestion, defineReadAction, defineRecipe, defineReview, defineSchemaOrgResolver, defineSearchAction, defineSoftwareApp, defineVideo, defineVirtualLocation, defineWebPage, defineWebSite, eventResolver, howToResolver, howToStepDirectionResolver, howToStepResolver, imageResolver, itemListResolver, listItemResolver, localBusinessResolver, movieResolver, offerResolver, openingHoursResolver, organizationResolver, personResolver, placeResolver, productResolver, questionResolver, ratingResolver, readActionResolver, recipeResolver, resolveMeta, resolveNode, resolveNodeId, resolveRelation, reviewResolver, searchActionResolver, softwareAppResolver, useSchemaOrg, videoResolver, virtualLocationResolver, webPageResolver, webSiteResolver };
|
package/dist/index.mjs
CHANGED
|
@@ -259,7 +259,7 @@ const webSiteResolver = defineSchemaOrgResolver({
|
|
|
259
259
|
}
|
|
260
260
|
});
|
|
261
261
|
|
|
262
|
-
const
|
|
262
|
+
const listItemResolver = defineSchemaOrgResolver({
|
|
263
263
|
cast(node) {
|
|
264
264
|
if (typeof node === "string") {
|
|
265
265
|
node = {
|
|
@@ -274,6 +274,8 @@ const resolveListItem = defineSchemaOrgResolver({
|
|
|
274
274
|
resolve(node, ctx) {
|
|
275
275
|
if (typeof node.item === "string")
|
|
276
276
|
node.item = resolveWithBase(ctx.meta.host, node.item);
|
|
277
|
+
else if (typeof node.item === "object")
|
|
278
|
+
node.item = resolveRelation(node.item, ctx);
|
|
277
279
|
return node;
|
|
278
280
|
}
|
|
279
281
|
});
|
|
@@ -287,7 +289,7 @@ const breadcrumbResolver = defineSchemaOrgResolver({
|
|
|
287
289
|
resolve(breadcrumb, ctx) {
|
|
288
290
|
if (breadcrumb.itemListElement) {
|
|
289
291
|
let index = 1;
|
|
290
|
-
breadcrumb.itemListElement = resolveRelation(breadcrumb.itemListElement, ctx,
|
|
292
|
+
breadcrumb.itemListElement = resolveRelation(breadcrumb.itemListElement, ctx, listItemResolver, {
|
|
291
293
|
array: true,
|
|
292
294
|
afterResolve(node) {
|
|
293
295
|
setIfEmpty(node, "position", index++);
|
|
@@ -768,7 +770,7 @@ const itemListResolver = defineSchemaOrgResolver({
|
|
|
768
770
|
resolve(node, ctx) {
|
|
769
771
|
if (node.itemListElement) {
|
|
770
772
|
let index = 1;
|
|
771
|
-
node.itemListElement = resolveRelation(node.itemListElement, ctx,
|
|
773
|
+
node.itemListElement = resolveRelation(node.itemListElement, ctx, listItemResolver, {
|
|
772
774
|
array: true,
|
|
773
775
|
afterResolve(node2) {
|
|
774
776
|
setIfEmpty(node2, "position", index++);
|
|
@@ -1543,6 +1545,8 @@ function loadResolver(resolver) {
|
|
|
1543
1545
|
return courseResolver;
|
|
1544
1546
|
case "itemList":
|
|
1545
1547
|
return itemListResolver;
|
|
1548
|
+
case "listItem":
|
|
1549
|
+
return listItemResolver;
|
|
1546
1550
|
case "movie":
|
|
1547
1551
|
return movieResolver;
|
|
1548
1552
|
case "searchAction":
|
|
@@ -1579,6 +1583,7 @@ const resolveMeta = (meta) => {
|
|
|
1579
1583
|
meta.url = meta.canonicalUrl;
|
|
1580
1584
|
meta.url = joinURL(meta.host, meta.path);
|
|
1581
1585
|
return {
|
|
1586
|
+
...meta,
|
|
1582
1587
|
host: meta.host,
|
|
1583
1588
|
url: meta.url,
|
|
1584
1589
|
currency: meta.currency,
|
|
@@ -1830,6 +1835,7 @@ const defineWebSite = (input) => provideResolver(input, "webSite");
|
|
|
1830
1835
|
const defineBook = (input) => provideResolver(input, "book");
|
|
1831
1836
|
const defineCourse = (input) => provideResolver(input, "course");
|
|
1832
1837
|
const defineItemList = (input) => provideResolver(input, "itemList");
|
|
1838
|
+
const defineListItem = (input) => provideResolver(input, "listItem");
|
|
1833
1839
|
const defineMovie = (input) => provideResolver(input, "movie");
|
|
1834
1840
|
const defineSearchAction = (input) => provideResolver(input, "searchAction");
|
|
1835
1841
|
const defineReadAction = (input) => provideResolver(input, "readAction");
|
|
@@ -1847,4 +1853,4 @@ function useSchemaOrg(input) {
|
|
|
1847
1853
|
}, { mode: process.env.NODE_ENV === "development" ? "all" : "server" });
|
|
1848
1854
|
}
|
|
1849
1855
|
|
|
1850
|
-
export { HowToId, PrimaryArticleId, PrimaryBookId, PrimaryBreadcrumbId, PrimaryEventId, PrimaryWebPageId, PrimaryWebSiteId, ProductId, RecipeId, SchemaOrgUnheadPlugin, addressResolver, aggregateOfferResolver, aggregateRatingResolver, articleResolver, bookEditionResolver, bookResolver, breadcrumbResolver, commentResolver, courseResolver, createSchemaOrgGraph, dedupeNodes, defineAddress, defineAggregateOffer, defineAggregateRating, defineArticle, defineBook, defineBookEdition, defineBreadcrumb, defineComment, defineCourse, defineEvent, defineHowTo, defineHowToStep, defineImage, defineItemList, defineLocalBusiness, defineMovie, defineOffer, defineOpeningHours, defineOrganization, definePerson, definePlace, defineProduct, defineQuestion, defineReadAction, defineRecipe, defineReview, defineSchemaOrgResolver, defineSearchAction, defineSoftwareApp, defineVideo, defineVirtualLocation, defineWebPage, defineWebSite, eventResolver, howToResolver, howToStepDirectionResolver, howToStepResolver, imageResolver, itemListResolver, localBusinessResolver, movieResolver, offerResolver, openingHoursResolver, organizationResolver, personResolver, placeResolver, productResolver, questionResolver, ratingResolver, readActionResolver, recipeResolver,
|
|
1856
|
+
export { HowToId, PrimaryArticleId, PrimaryBookId, PrimaryBreadcrumbId, PrimaryEventId, PrimaryWebPageId, PrimaryWebSiteId, ProductId, RecipeId, SchemaOrgUnheadPlugin, addressResolver, aggregateOfferResolver, aggregateRatingResolver, articleResolver, bookEditionResolver, bookResolver, breadcrumbResolver, commentResolver, courseResolver, createSchemaOrgGraph, dedupeNodes, defineAddress, defineAggregateOffer, defineAggregateRating, defineArticle, defineBook, defineBookEdition, defineBreadcrumb, defineComment, defineCourse, defineEvent, defineHowTo, defineHowToStep, defineImage, defineItemList, defineListItem, defineLocalBusiness, defineMovie, defineOffer, defineOpeningHours, defineOrganization, definePerson, definePlace, defineProduct, defineQuestion, defineReadAction, defineRecipe, defineReview, defineSchemaOrgResolver, defineSearchAction, defineSoftwareApp, defineVideo, defineVirtualLocation, defineWebPage, defineWebSite, eventResolver, howToResolver, howToStepDirectionResolver, howToStepResolver, imageResolver, itemListResolver, listItemResolver, localBusinessResolver, movieResolver, offerResolver, openingHoursResolver, organizationResolver, personResolver, placeResolver, productResolver, questionResolver, ratingResolver, readActionResolver, recipeResolver, resolveMeta, resolveNode, resolveNodeId, resolveRelation, reviewResolver, searchActionResolver, softwareAppResolver, useSchemaOrg, videoResolver, virtualLocationResolver, webPageResolver, webSiteResolver };
|
package/package.json
CHANGED