@unhead/schema-org 0.1.2 → 0.2.1

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 CHANGED
@@ -261,7 +261,7 @@ const webSiteResolver = defineSchemaOrgResolver({
261
261
  }
262
262
  });
263
263
 
264
- const resolveListItem = defineSchemaOrgResolver({
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, resolveListItem, {
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, resolveListItem, {
775
+ node.itemListElement = resolveRelation(node.itemListElement, ctx, listItemResolver, {
774
776
  array: true,
775
777
  afterResolve(node2) {
776
778
  setIfEmpty(node2, "position", index++);
@@ -844,6 +846,47 @@ const reviewResolver = defineSchemaOrgResolver({
844
846
  }
845
847
  });
846
848
 
849
+ const videoResolver = defineSchemaOrgResolver({
850
+ cast(input) {
851
+ if (typeof input === "string") {
852
+ input = {
853
+ url: input
854
+ };
855
+ }
856
+ return input;
857
+ },
858
+ alias: "video",
859
+ defaults: {
860
+ "@type": "VideoObject"
861
+ },
862
+ inheritMeta: [
863
+ { meta: "title", key: "name" },
864
+ "description",
865
+ "image",
866
+ "inLanguage",
867
+ { meta: "datePublished", key: "uploadDate" }
868
+ ],
869
+ idPrefix: "host",
870
+ resolve(video, ctx) {
871
+ if (video.uploadDate)
872
+ video.uploadDate = resolvableDateToIso(video.uploadDate);
873
+ video.url = resolveWithBase(ctx.meta.host, video.url);
874
+ if (video.caption && !video.description)
875
+ video.description = video.caption;
876
+ if (!video.description)
877
+ video.description = "No description";
878
+ if (video.thumbnailUrl)
879
+ video.thumbnailUrl = resolveRelation(video.thumbnailUrl, ctx, imageResolver);
880
+ return video;
881
+ },
882
+ resolveRootNode(video, { find }) {
883
+ if (video.image && !video.thumbnailUrl) {
884
+ const firstImage = asArray(video.image)[0];
885
+ setIfEmpty(video, "thumbnailUrl", find(firstImage["@id"])?.url);
886
+ }
887
+ }
888
+ });
889
+
847
890
  const movieResolver = defineSchemaOrgResolver({
848
891
  defaults: {
849
892
  "@type": "Movie"
@@ -852,6 +895,8 @@ const movieResolver = defineSchemaOrgResolver({
852
895
  node.aggregateRating = resolveRelation(node.aggregateRating, ctx, aggregateRatingResolver);
853
896
  node.review = resolveRelation(node.review, ctx, reviewResolver);
854
897
  node.director = resolveRelation(node.director, ctx, personResolver);
898
+ node.actor = resolveRelation(node.actor, ctx, personResolver);
899
+ node.trailer = resolveRelation(node.trailer, ctx, videoResolver);
855
900
  if (node.dateCreated)
856
901
  node.dateCreated = resolvableDateToDate(node.dateCreated);
857
902
  return node;
@@ -1448,47 +1493,6 @@ const softwareAppResolver = defineSchemaOrgResolver({
1448
1493
  }
1449
1494
  });
1450
1495
 
1451
- const videoResolver = defineSchemaOrgResolver({
1452
- cast(input) {
1453
- if (typeof input === "string") {
1454
- input = {
1455
- url: input
1456
- };
1457
- }
1458
- return input;
1459
- },
1460
- alias: "video",
1461
- defaults: {
1462
- "@type": "VideoObject"
1463
- },
1464
- inheritMeta: [
1465
- { meta: "title", key: "name" },
1466
- "description",
1467
- "image",
1468
- "inLanguage",
1469
- { meta: "datePublished", key: "uploadDate" }
1470
- ],
1471
- idPrefix: "host",
1472
- resolve(video, ctx) {
1473
- if (video.uploadDate)
1474
- video.uploadDate = resolvableDateToIso(video.uploadDate);
1475
- video.url = resolveWithBase(ctx.meta.host, video.url);
1476
- if (video.caption && !video.description)
1477
- video.description = video.caption;
1478
- if (!video.description)
1479
- video.description = "No description";
1480
- if (video.thumbnailUrl)
1481
- video.thumbnailUrl = resolveRelation(video.thumbnailUrl, ctx, imageResolver);
1482
- return video;
1483
- },
1484
- resolveRootNode(video, { find }) {
1485
- if (video.image && !video.thumbnailUrl) {
1486
- const firstImage = asArray(video.image)[0];
1487
- setIfEmpty(video, "thumbnailUrl", find(firstImage["@id"])?.url);
1488
- }
1489
- }
1490
- });
1491
-
1492
1496
  function loadResolver(resolver) {
1493
1497
  switch (resolver) {
1494
1498
  case "address":
@@ -1545,6 +1549,8 @@ function loadResolver(resolver) {
1545
1549
  return courseResolver;
1546
1550
  case "itemList":
1547
1551
  return itemListResolver;
1552
+ case "listItem":
1553
+ return listItemResolver;
1548
1554
  case "movie":
1549
1555
  return movieResolver;
1550
1556
  case "searchAction":
@@ -1833,6 +1839,7 @@ const defineWebSite = (input) => provideResolver(input, "webSite");
1833
1839
  const defineBook = (input) => provideResolver(input, "book");
1834
1840
  const defineCourse = (input) => provideResolver(input, "course");
1835
1841
  const defineItemList = (input) => provideResolver(input, "itemList");
1842
+ const defineListItem = (input) => provideResolver(input, "listItem");
1836
1843
  const defineMovie = (input) => provideResolver(input, "movie");
1837
1844
  const defineSearchAction = (input) => provideResolver(input, "searchAction");
1838
1845
  const defineReadAction = (input) => provideResolver(input, "readAction");
@@ -1885,6 +1892,7 @@ exports.defineHowTo = defineHowTo;
1885
1892
  exports.defineHowToStep = defineHowToStep;
1886
1893
  exports.defineImage = defineImage;
1887
1894
  exports.defineItemList = defineItemList;
1895
+ exports.defineListItem = defineListItem;
1888
1896
  exports.defineLocalBusiness = defineLocalBusiness;
1889
1897
  exports.defineMovie = defineMovie;
1890
1898
  exports.defineOffer = defineOffer;
@@ -1910,6 +1918,7 @@ exports.howToStepDirectionResolver = howToStepDirectionResolver;
1910
1918
  exports.howToStepResolver = howToStepResolver;
1911
1919
  exports.imageResolver = imageResolver;
1912
1920
  exports.itemListResolver = itemListResolver;
1921
+ exports.listItemResolver = listItemResolver;
1913
1922
  exports.localBusinessResolver = localBusinessResolver;
1914
1923
  exports.movieResolver = movieResolver;
1915
1924
  exports.offerResolver = offerResolver;
@@ -1922,7 +1931,6 @@ exports.questionResolver = questionResolver;
1922
1931
  exports.ratingResolver = ratingResolver;
1923
1932
  exports.readActionResolver = readActionResolver;
1924
1933
  exports.recipeResolver = recipeResolver;
1925
- exports.resolveListItem = resolveListItem;
1926
1934
  exports.resolveMeta = resolveMeta;
1927
1935
  exports.resolveNode = resolveNode;
1928
1936
  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: string;
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 resolveListItem: SchemaOrgNodeDefinition<ListItem>;
453
+ declare const listItemResolver: SchemaOrgNodeDefinition<ListItem>;
454
454
 
455
455
  interface ItemListSimple extends Thing {
456
456
  /**
@@ -1086,11 +1086,19 @@ interface MovieSimple extends Thing {
1086
1086
  /**
1087
1087
  * The director of the movie.
1088
1088
  */
1089
- director?: NodeRelation<Person | string>;
1089
+ director?: NodeRelations<Person | string>;
1090
+ /**
1091
+ * The director of the movie.
1092
+ */
1093
+ actor?: NodeRelations<Person | string>;
1090
1094
  /**
1091
1095
  * A nested Review of the movie.
1092
1096
  */
1093
1097
  review?: NodeRelations<Review>;
1098
+ /**
1099
+ * The trailer of a movie or TV/radio series, season, episode, etc.
1100
+ */
1101
+ trailer?: NodeRelations<string | VideoObject>;
1094
1102
  }
1095
1103
  interface Movie extends MovieSimple {
1096
1104
  }
@@ -1489,6 +1497,7 @@ declare const defineWebSite: <T extends Record<string, any>>(input?: (WebSite &
1489
1497
  declare const defineBook: <T extends Record<string, any>>(input?: (Book & T) | undefined) => Book & T;
1490
1498
  declare const defineCourse: <T extends Record<string, any>>(input?: (Course & T) | undefined) => Course & T;
1491
1499
  declare const defineItemList: <T extends Record<string, any>>(input?: (ItemList & T) | undefined) => ItemList & T;
1500
+ declare const defineListItem: <T extends Record<string, any>>(input?: (ListItem & T) | undefined) => ListItem & T;
1492
1501
  declare const defineMovie: <T extends Record<string, any>>(input?: (Movie & T) | undefined) => Movie & T;
1493
1502
  declare const defineSearchAction: <T extends Record<string, any>>(input?: (SearchAction & T) | undefined) => SearchAction & T;
1494
1503
  declare const defineReadAction: <T extends Record<string, any>>(input?: (ReadAction & T) | undefined) => ReadAction & T;
@@ -1496,4 +1505,4 @@ declare const defineSoftwareApp: <T extends Record<string, any>>(input?: (Softwa
1496
1505
  declare const defineBookEdition: <T extends Record<string, any>>(input?: (BookEdition & T) | undefined) => BookEdition & T;
1497
1506
  declare function useSchemaOrg(input?: any): any;
1498
1507
 
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, resolveListItem, resolveMeta, resolveNode, resolveNodeId, resolveRelation, reviewResolver, searchActionResolver, softwareAppResolver, useSchemaOrg, videoResolver, virtualLocationResolver, webPageResolver, webSiteResolver };
1508
+ 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 resolveListItem = defineSchemaOrgResolver({
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, resolveListItem, {
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, resolveListItem, {
773
+ node.itemListElement = resolveRelation(node.itemListElement, ctx, listItemResolver, {
772
774
  array: true,
773
775
  afterResolve(node2) {
774
776
  setIfEmpty(node2, "position", index++);
@@ -842,6 +844,47 @@ const reviewResolver = defineSchemaOrgResolver({
842
844
  }
843
845
  });
844
846
 
847
+ const videoResolver = defineSchemaOrgResolver({
848
+ cast(input) {
849
+ if (typeof input === "string") {
850
+ input = {
851
+ url: input
852
+ };
853
+ }
854
+ return input;
855
+ },
856
+ alias: "video",
857
+ defaults: {
858
+ "@type": "VideoObject"
859
+ },
860
+ inheritMeta: [
861
+ { meta: "title", key: "name" },
862
+ "description",
863
+ "image",
864
+ "inLanguage",
865
+ { meta: "datePublished", key: "uploadDate" }
866
+ ],
867
+ idPrefix: "host",
868
+ resolve(video, ctx) {
869
+ if (video.uploadDate)
870
+ video.uploadDate = resolvableDateToIso(video.uploadDate);
871
+ video.url = resolveWithBase(ctx.meta.host, video.url);
872
+ if (video.caption && !video.description)
873
+ video.description = video.caption;
874
+ if (!video.description)
875
+ video.description = "No description";
876
+ if (video.thumbnailUrl)
877
+ video.thumbnailUrl = resolveRelation(video.thumbnailUrl, ctx, imageResolver);
878
+ return video;
879
+ },
880
+ resolveRootNode(video, { find }) {
881
+ if (video.image && !video.thumbnailUrl) {
882
+ const firstImage = asArray(video.image)[0];
883
+ setIfEmpty(video, "thumbnailUrl", find(firstImage["@id"])?.url);
884
+ }
885
+ }
886
+ });
887
+
845
888
  const movieResolver = defineSchemaOrgResolver({
846
889
  defaults: {
847
890
  "@type": "Movie"
@@ -850,6 +893,8 @@ const movieResolver = defineSchemaOrgResolver({
850
893
  node.aggregateRating = resolveRelation(node.aggregateRating, ctx, aggregateRatingResolver);
851
894
  node.review = resolveRelation(node.review, ctx, reviewResolver);
852
895
  node.director = resolveRelation(node.director, ctx, personResolver);
896
+ node.actor = resolveRelation(node.actor, ctx, personResolver);
897
+ node.trailer = resolveRelation(node.trailer, ctx, videoResolver);
853
898
  if (node.dateCreated)
854
899
  node.dateCreated = resolvableDateToDate(node.dateCreated);
855
900
  return node;
@@ -1446,47 +1491,6 @@ const softwareAppResolver = defineSchemaOrgResolver({
1446
1491
  }
1447
1492
  });
1448
1493
 
1449
- const videoResolver = defineSchemaOrgResolver({
1450
- cast(input) {
1451
- if (typeof input === "string") {
1452
- input = {
1453
- url: input
1454
- };
1455
- }
1456
- return input;
1457
- },
1458
- alias: "video",
1459
- defaults: {
1460
- "@type": "VideoObject"
1461
- },
1462
- inheritMeta: [
1463
- { meta: "title", key: "name" },
1464
- "description",
1465
- "image",
1466
- "inLanguage",
1467
- { meta: "datePublished", key: "uploadDate" }
1468
- ],
1469
- idPrefix: "host",
1470
- resolve(video, ctx) {
1471
- if (video.uploadDate)
1472
- video.uploadDate = resolvableDateToIso(video.uploadDate);
1473
- video.url = resolveWithBase(ctx.meta.host, video.url);
1474
- if (video.caption && !video.description)
1475
- video.description = video.caption;
1476
- if (!video.description)
1477
- video.description = "No description";
1478
- if (video.thumbnailUrl)
1479
- video.thumbnailUrl = resolveRelation(video.thumbnailUrl, ctx, imageResolver);
1480
- return video;
1481
- },
1482
- resolveRootNode(video, { find }) {
1483
- if (video.image && !video.thumbnailUrl) {
1484
- const firstImage = asArray(video.image)[0];
1485
- setIfEmpty(video, "thumbnailUrl", find(firstImage["@id"])?.url);
1486
- }
1487
- }
1488
- });
1489
-
1490
1494
  function loadResolver(resolver) {
1491
1495
  switch (resolver) {
1492
1496
  case "address":
@@ -1543,6 +1547,8 @@ function loadResolver(resolver) {
1543
1547
  return courseResolver;
1544
1548
  case "itemList":
1545
1549
  return itemListResolver;
1550
+ case "listItem":
1551
+ return listItemResolver;
1546
1552
  case "movie":
1547
1553
  return movieResolver;
1548
1554
  case "searchAction":
@@ -1831,6 +1837,7 @@ const defineWebSite = (input) => provideResolver(input, "webSite");
1831
1837
  const defineBook = (input) => provideResolver(input, "book");
1832
1838
  const defineCourse = (input) => provideResolver(input, "course");
1833
1839
  const defineItemList = (input) => provideResolver(input, "itemList");
1840
+ const defineListItem = (input) => provideResolver(input, "listItem");
1834
1841
  const defineMovie = (input) => provideResolver(input, "movie");
1835
1842
  const defineSearchAction = (input) => provideResolver(input, "searchAction");
1836
1843
  const defineReadAction = (input) => provideResolver(input, "readAction");
@@ -1848,4 +1855,4 @@ function useSchemaOrg(input) {
1848
1855
  }, { mode: process.env.NODE_ENV === "development" ? "all" : "server" });
1849
1856
  }
1850
1857
 
1851
- 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, resolveListItem, resolveMeta, resolveNode, resolveNodeId, resolveRelation, reviewResolver, searchActionResolver, softwareAppResolver, useSchemaOrg, videoResolver, virtualLocationResolver, webPageResolver, webSiteResolver };
1858
+ 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unhead/schema-org",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "packageManager": "pnpm@7.8.0",
5
5
  "description": "Node Schema.org for Simple and Automated Google Rich Results",
6
6
  "author": "Harlan Wilton <harlan@harlanzw.com>",