@unhead/schema-org 1.11.0 → 1.11.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
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const plugin = require('./shared/schema-org.53313bde.cjs');
3
+ const plugin = require('./shared/schema-org.e643866f.cjs');
4
4
  const unhead = require('unhead');
5
5
  require('ufo');
6
6
 
@@ -115,7 +115,7 @@ function defineSoftwareApp(input) {
115
115
  function defineBookEdition(input) {
116
116
  return provideResolver(input, "bookEdition");
117
117
  }
118
- function useSchemaOrg(input) {
118
+ function useSchemaOrg(input, options) {
119
119
  const head = unhead.getActiveHead();
120
120
  if (!head)
121
121
  return;
@@ -128,7 +128,7 @@ function useSchemaOrg(input) {
128
128
  nodes: input
129
129
  }
130
130
  ]
131
- });
131
+ }, options);
132
132
  }
133
133
 
134
134
  exports.HowToId = plugin.HowToId;
package/dist/index.d.cts CHANGED
@@ -1,6 +1,7 @@
1
- import { T as Thing, S as SchemaOrgNodeDefinition, M as MetaInput, R as ResolvedMeta, a as SchemaOrgGraph, A as Arrayable, b as SchemaOrgNode, P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition } from './shared/schema-org.d2b719c3.cjs';
2
- export { z as AggregateOfferSimple, G as AggregateRatingSimple, N as ArticleSimple, Z as BookEditionSimple, Y as BookSimple, a1 as BreadcrumbSimple, a4 as CommentSimple, a6 as CourseSimple, a8 as EventSimple, af as FoodEstablishmentSimple, am as HowToDirection, ai as HowToId, ah as HowToSimple, ak as HowToStepSimple, bm as Id, bl as IdReference, bg as Identity, ao as ImageSimple, aq as ItemListSimple, as as JobPostingSimple, au as ListItemSimple, aw as LocalBusinessSimple, ay as MovieSimple, be as NodeRelation, bf as NodeRelations, aT as NutritionInformation, aA as OfferSimple, aC as OpeningHoursSimple, bi as OptionalSchemaOrgPrefix, aE as OrganizationSimple, aG as PersonSimple, ab as PlaceSimple, bc as PluginSchemaOrg, ba as PluginSchemaOrgOptions, aI as PostalAddressSimple, U as PrimaryArticleId, $ as PrimaryBookId, a2 as PrimaryBreadcrumbId, a9 as PrimaryEventId, b1 as PrimaryWebPageId, b6 as PrimaryWebSiteId, aL as ProductId, aK as ProductSimple, aN as QuestionSimple, aQ as Rating, aP as RatingSimple, b3 as ReadActionInput, aU as RecipeId, aS as RecipeSimple, bh as ResolvableDate, aW as ReviewSimple, bd as SchemaOrgUnheadPlugin, b8 as SearchActionInput, aY as SoftwareAppSimple, bb as UnheadSchemaOrg, bj as UserConfig, a_ as VideoSimple, ad as VirtualLocationSimple, b0 as WebPageSimple, b5 as WebSiteSimple, bk as WithResolver, aJ as addressResolver, D as aggregateOfferResolver, K as aggregateRatingResolver, X as articleResolver, _ as bookEditionResolver, a0 as bookResolver, a3 as breadcrumbResolver, a5 as commentResolver, a7 as courseResolver, y as createSchemaOrgGraph, aa as eventResolver, ag as foodEstablishmentResolver, aj as howToResolver, an as howToStepDirectionResolver, al as howToStepResolver, ap as imageResolver, ar as itemListResolver, at as jobPostingResolver, av as listItemResolver, ax as localBusinessResolver, az as movieResolver, aB as offerResolver, aD as openingHoursResolver, aF as organizationResolver, aH as personResolver, ac as placeResolver, aM as productResolver, aO as questionResolver, aR as ratingResolver, b4 as readActionResolver, aV as recipeResolver, aX as reviewResolver, b9 as searchActionResolver, aZ as softwareAppResolver, a$ as videoResolver, ae as virtualLocationResolver, b2 as webPageResolver, b7 as webSiteResolver } from './shared/schema-org.d2b719c3.cjs';
1
+ import { T as Thing, S as SchemaOrgNodeDefinition, M as MetaInput, R as ResolvedMeta, a as SchemaOrgGraph, A as Arrayable, b as SchemaOrgNode, P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition } from './shared/schema-org.cc40ee34.cjs';
2
+ export { z as AggregateOfferSimple, G as AggregateRatingSimple, N as ArticleSimple, Z as BookEditionSimple, Y as BookSimple, a1 as BreadcrumbSimple, a4 as CommentSimple, a6 as CourseSimple, a8 as EventSimple, af as FoodEstablishmentSimple, am as HowToDirection, ai as HowToId, ah as HowToSimple, ak as HowToStepSimple, bm as Id, bl as IdReference, bg as Identity, ao as ImageSimple, aq as ItemListSimple, as as JobPostingSimple, au as ListItemSimple, aw as LocalBusinessSimple, ay as MovieSimple, be as NodeRelation, bf as NodeRelations, aT as NutritionInformation, aA as OfferSimple, aC as OpeningHoursSimple, bi as OptionalSchemaOrgPrefix, aE as OrganizationSimple, aG as PersonSimple, ab as PlaceSimple, bc as PluginSchemaOrg, ba as PluginSchemaOrgOptions, aI as PostalAddressSimple, U as PrimaryArticleId, $ as PrimaryBookId, a2 as PrimaryBreadcrumbId, a9 as PrimaryEventId, b1 as PrimaryWebPageId, b6 as PrimaryWebSiteId, aL as ProductId, aK as ProductSimple, aN as QuestionSimple, aQ as Rating, aP as RatingSimple, b3 as ReadActionInput, aU as RecipeId, aS as RecipeSimple, bh as ResolvableDate, aW as ReviewSimple, bd as SchemaOrgUnheadPlugin, b8 as SearchActionInput, aY as SoftwareAppSimple, bb as UnheadSchemaOrg, bj as UserConfig, a_ as VideoSimple, ad as VirtualLocationSimple, b0 as WebPageSimple, b5 as WebSiteSimple, bk as WithResolver, aJ as addressResolver, D as aggregateOfferResolver, K as aggregateRatingResolver, X as articleResolver, _ as bookEditionResolver, a0 as bookResolver, a3 as breadcrumbResolver, a5 as commentResolver, a7 as courseResolver, y as createSchemaOrgGraph, aa as eventResolver, ag as foodEstablishmentResolver, aj as howToResolver, an as howToStepDirectionResolver, al as howToStepResolver, ap as imageResolver, ar as itemListResolver, at as jobPostingResolver, av as listItemResolver, ax as localBusinessResolver, az as movieResolver, aB as offerResolver, aD as openingHoursResolver, aF as organizationResolver, aH as personResolver, ac as placeResolver, aM as productResolver, aO as questionResolver, aR as ratingResolver, b4 as readActionResolver, aV as recipeResolver, aX as reviewResolver, b9 as searchActionResolver, aZ as softwareAppResolver, a$ as videoResolver, ae as virtualLocationResolver, b2 as webPageResolver, b7 as webSiteResolver } from './shared/schema-org.cc40ee34.cjs';
3
3
  import * as _unhead_schema from '@unhead/schema';
4
+ import { HeadEntryOptions } from '@unhead/schema';
4
5
  import * as unhead from 'unhead';
5
6
 
6
7
  declare function defineSchemaOrgResolver<T extends Thing>(schema: SchemaOrgNodeDefinition<T>): SchemaOrgNodeDefinition<T>;
@@ -69,7 +70,7 @@ declare function defineReadAction<T extends Record<string, any>>(input?: ReadAct
69
70
  declare function defineSoftwareApp<T extends Record<string, any>>(input?: SoftwareApp & T): SoftwareApp & T;
70
71
  declare function defineBookEdition<T extends Record<string, any>>(input?: BookEdition & T): BookEdition & T;
71
72
  type UseSchemaOrgInput = Arrayable<Thing | Record<string, any>>;
72
- declare function useSchemaOrg(input: UseSchemaOrgInput): void | _unhead_schema.ActiveHeadEntry<unhead.UseHeadInput<{
73
+ declare function useSchemaOrg(input: UseSchemaOrgInput, options?: Pick<HeadEntryOptions, 'tagDuplicateStrategy'>): void | _unhead_schema.ActiveHeadEntry<unhead.UseHeadInput<{
73
74
  script: {
74
75
  nodes: UseSchemaOrgInput;
75
76
  };
package/dist/index.d.mts CHANGED
@@ -1,6 +1,7 @@
1
- import { T as Thing, S as SchemaOrgNodeDefinition, M as MetaInput, R as ResolvedMeta, a as SchemaOrgGraph, A as Arrayable, b as SchemaOrgNode, P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition } from './shared/schema-org.d2b719c3.mjs';
2
- export { z as AggregateOfferSimple, G as AggregateRatingSimple, N as ArticleSimple, Z as BookEditionSimple, Y as BookSimple, a1 as BreadcrumbSimple, a4 as CommentSimple, a6 as CourseSimple, a8 as EventSimple, af as FoodEstablishmentSimple, am as HowToDirection, ai as HowToId, ah as HowToSimple, ak as HowToStepSimple, bm as Id, bl as IdReference, bg as Identity, ao as ImageSimple, aq as ItemListSimple, as as JobPostingSimple, au as ListItemSimple, aw as LocalBusinessSimple, ay as MovieSimple, be as NodeRelation, bf as NodeRelations, aT as NutritionInformation, aA as OfferSimple, aC as OpeningHoursSimple, bi as OptionalSchemaOrgPrefix, aE as OrganizationSimple, aG as PersonSimple, ab as PlaceSimple, bc as PluginSchemaOrg, ba as PluginSchemaOrgOptions, aI as PostalAddressSimple, U as PrimaryArticleId, $ as PrimaryBookId, a2 as PrimaryBreadcrumbId, a9 as PrimaryEventId, b1 as PrimaryWebPageId, b6 as PrimaryWebSiteId, aL as ProductId, aK as ProductSimple, aN as QuestionSimple, aQ as Rating, aP as RatingSimple, b3 as ReadActionInput, aU as RecipeId, aS as RecipeSimple, bh as ResolvableDate, aW as ReviewSimple, bd as SchemaOrgUnheadPlugin, b8 as SearchActionInput, aY as SoftwareAppSimple, bb as UnheadSchemaOrg, bj as UserConfig, a_ as VideoSimple, ad as VirtualLocationSimple, b0 as WebPageSimple, b5 as WebSiteSimple, bk as WithResolver, aJ as addressResolver, D as aggregateOfferResolver, K as aggregateRatingResolver, X as articleResolver, _ as bookEditionResolver, a0 as bookResolver, a3 as breadcrumbResolver, a5 as commentResolver, a7 as courseResolver, y as createSchemaOrgGraph, aa as eventResolver, ag as foodEstablishmentResolver, aj as howToResolver, an as howToStepDirectionResolver, al as howToStepResolver, ap as imageResolver, ar as itemListResolver, at as jobPostingResolver, av as listItemResolver, ax as localBusinessResolver, az as movieResolver, aB as offerResolver, aD as openingHoursResolver, aF as organizationResolver, aH as personResolver, ac as placeResolver, aM as productResolver, aO as questionResolver, aR as ratingResolver, b4 as readActionResolver, aV as recipeResolver, aX as reviewResolver, b9 as searchActionResolver, aZ as softwareAppResolver, a$ as videoResolver, ae as virtualLocationResolver, b2 as webPageResolver, b7 as webSiteResolver } from './shared/schema-org.d2b719c3.mjs';
1
+ import { T as Thing, S as SchemaOrgNodeDefinition, M as MetaInput, R as ResolvedMeta, a as SchemaOrgGraph, A as Arrayable, b as SchemaOrgNode, P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition } from './shared/schema-org.cc40ee34.mjs';
2
+ export { z as AggregateOfferSimple, G as AggregateRatingSimple, N as ArticleSimple, Z as BookEditionSimple, Y as BookSimple, a1 as BreadcrumbSimple, a4 as CommentSimple, a6 as CourseSimple, a8 as EventSimple, af as FoodEstablishmentSimple, am as HowToDirection, ai as HowToId, ah as HowToSimple, ak as HowToStepSimple, bm as Id, bl as IdReference, bg as Identity, ao as ImageSimple, aq as ItemListSimple, as as JobPostingSimple, au as ListItemSimple, aw as LocalBusinessSimple, ay as MovieSimple, be as NodeRelation, bf as NodeRelations, aT as NutritionInformation, aA as OfferSimple, aC as OpeningHoursSimple, bi as OptionalSchemaOrgPrefix, aE as OrganizationSimple, aG as PersonSimple, ab as PlaceSimple, bc as PluginSchemaOrg, ba as PluginSchemaOrgOptions, aI as PostalAddressSimple, U as PrimaryArticleId, $ as PrimaryBookId, a2 as PrimaryBreadcrumbId, a9 as PrimaryEventId, b1 as PrimaryWebPageId, b6 as PrimaryWebSiteId, aL as ProductId, aK as ProductSimple, aN as QuestionSimple, aQ as Rating, aP as RatingSimple, b3 as ReadActionInput, aU as RecipeId, aS as RecipeSimple, bh as ResolvableDate, aW as ReviewSimple, bd as SchemaOrgUnheadPlugin, b8 as SearchActionInput, aY as SoftwareAppSimple, bb as UnheadSchemaOrg, bj as UserConfig, a_ as VideoSimple, ad as VirtualLocationSimple, b0 as WebPageSimple, b5 as WebSiteSimple, bk as WithResolver, aJ as addressResolver, D as aggregateOfferResolver, K as aggregateRatingResolver, X as articleResolver, _ as bookEditionResolver, a0 as bookResolver, a3 as breadcrumbResolver, a5 as commentResolver, a7 as courseResolver, y as createSchemaOrgGraph, aa as eventResolver, ag as foodEstablishmentResolver, aj as howToResolver, an as howToStepDirectionResolver, al as howToStepResolver, ap as imageResolver, ar as itemListResolver, at as jobPostingResolver, av as listItemResolver, ax as localBusinessResolver, az as movieResolver, aB as offerResolver, aD as openingHoursResolver, aF as organizationResolver, aH as personResolver, ac as placeResolver, aM as productResolver, aO as questionResolver, aR as ratingResolver, b4 as readActionResolver, aV as recipeResolver, aX as reviewResolver, b9 as searchActionResolver, aZ as softwareAppResolver, a$ as videoResolver, ae as virtualLocationResolver, b2 as webPageResolver, b7 as webSiteResolver } from './shared/schema-org.cc40ee34.mjs';
3
3
  import * as _unhead_schema from '@unhead/schema';
4
+ import { HeadEntryOptions } from '@unhead/schema';
4
5
  import * as unhead from 'unhead';
5
6
 
6
7
  declare function defineSchemaOrgResolver<T extends Thing>(schema: SchemaOrgNodeDefinition<T>): SchemaOrgNodeDefinition<T>;
@@ -69,7 +70,7 @@ declare function defineReadAction<T extends Record<string, any>>(input?: ReadAct
69
70
  declare function defineSoftwareApp<T extends Record<string, any>>(input?: SoftwareApp & T): SoftwareApp & T;
70
71
  declare function defineBookEdition<T extends Record<string, any>>(input?: BookEdition & T): BookEdition & T;
71
72
  type UseSchemaOrgInput = Arrayable<Thing | Record<string, any>>;
72
- declare function useSchemaOrg(input: UseSchemaOrgInput): void | _unhead_schema.ActiveHeadEntry<unhead.UseHeadInput<{
73
+ declare function useSchemaOrg(input: UseSchemaOrgInput, options?: Pick<HeadEntryOptions, 'tagDuplicateStrategy'>): void | _unhead_schema.ActiveHeadEntry<unhead.UseHeadInput<{
73
74
  script: {
74
75
  nodes: UseSchemaOrgInput;
75
76
  };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { T as Thing, S as SchemaOrgNodeDefinition, M as MetaInput, R as ResolvedMeta, a as SchemaOrgGraph, A as Arrayable, b as SchemaOrgNode, P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition } from './shared/schema-org.d2b719c3.js';
2
- export { z as AggregateOfferSimple, G as AggregateRatingSimple, N as ArticleSimple, Z as BookEditionSimple, Y as BookSimple, a1 as BreadcrumbSimple, a4 as CommentSimple, a6 as CourseSimple, a8 as EventSimple, af as FoodEstablishmentSimple, am as HowToDirection, ai as HowToId, ah as HowToSimple, ak as HowToStepSimple, bm as Id, bl as IdReference, bg as Identity, ao as ImageSimple, aq as ItemListSimple, as as JobPostingSimple, au as ListItemSimple, aw as LocalBusinessSimple, ay as MovieSimple, be as NodeRelation, bf as NodeRelations, aT as NutritionInformation, aA as OfferSimple, aC as OpeningHoursSimple, bi as OptionalSchemaOrgPrefix, aE as OrganizationSimple, aG as PersonSimple, ab as PlaceSimple, bc as PluginSchemaOrg, ba as PluginSchemaOrgOptions, aI as PostalAddressSimple, U as PrimaryArticleId, $ as PrimaryBookId, a2 as PrimaryBreadcrumbId, a9 as PrimaryEventId, b1 as PrimaryWebPageId, b6 as PrimaryWebSiteId, aL as ProductId, aK as ProductSimple, aN as QuestionSimple, aQ as Rating, aP as RatingSimple, b3 as ReadActionInput, aU as RecipeId, aS as RecipeSimple, bh as ResolvableDate, aW as ReviewSimple, bd as SchemaOrgUnheadPlugin, b8 as SearchActionInput, aY as SoftwareAppSimple, bb as UnheadSchemaOrg, bj as UserConfig, a_ as VideoSimple, ad as VirtualLocationSimple, b0 as WebPageSimple, b5 as WebSiteSimple, bk as WithResolver, aJ as addressResolver, D as aggregateOfferResolver, K as aggregateRatingResolver, X as articleResolver, _ as bookEditionResolver, a0 as bookResolver, a3 as breadcrumbResolver, a5 as commentResolver, a7 as courseResolver, y as createSchemaOrgGraph, aa as eventResolver, ag as foodEstablishmentResolver, aj as howToResolver, an as howToStepDirectionResolver, al as howToStepResolver, ap as imageResolver, ar as itemListResolver, at as jobPostingResolver, av as listItemResolver, ax as localBusinessResolver, az as movieResolver, aB as offerResolver, aD as openingHoursResolver, aF as organizationResolver, aH as personResolver, ac as placeResolver, aM as productResolver, aO as questionResolver, aR as ratingResolver, b4 as readActionResolver, aV as recipeResolver, aX as reviewResolver, b9 as searchActionResolver, aZ as softwareAppResolver, a$ as videoResolver, ae as virtualLocationResolver, b2 as webPageResolver, b7 as webSiteResolver } from './shared/schema-org.d2b719c3.js';
1
+ import { T as Thing, S as SchemaOrgNodeDefinition, M as MetaInput, R as ResolvedMeta, a as SchemaOrgGraph, A as Arrayable, b as SchemaOrgNode, P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition } from './shared/schema-org.cc40ee34.js';
2
+ export { z as AggregateOfferSimple, G as AggregateRatingSimple, N as ArticleSimple, Z as BookEditionSimple, Y as BookSimple, a1 as BreadcrumbSimple, a4 as CommentSimple, a6 as CourseSimple, a8 as EventSimple, af as FoodEstablishmentSimple, am as HowToDirection, ai as HowToId, ah as HowToSimple, ak as HowToStepSimple, bm as Id, bl as IdReference, bg as Identity, ao as ImageSimple, aq as ItemListSimple, as as JobPostingSimple, au as ListItemSimple, aw as LocalBusinessSimple, ay as MovieSimple, be as NodeRelation, bf as NodeRelations, aT as NutritionInformation, aA as OfferSimple, aC as OpeningHoursSimple, bi as OptionalSchemaOrgPrefix, aE as OrganizationSimple, aG as PersonSimple, ab as PlaceSimple, bc as PluginSchemaOrg, ba as PluginSchemaOrgOptions, aI as PostalAddressSimple, U as PrimaryArticleId, $ as PrimaryBookId, a2 as PrimaryBreadcrumbId, a9 as PrimaryEventId, b1 as PrimaryWebPageId, b6 as PrimaryWebSiteId, aL as ProductId, aK as ProductSimple, aN as QuestionSimple, aQ as Rating, aP as RatingSimple, b3 as ReadActionInput, aU as RecipeId, aS as RecipeSimple, bh as ResolvableDate, aW as ReviewSimple, bd as SchemaOrgUnheadPlugin, b8 as SearchActionInput, aY as SoftwareAppSimple, bb as UnheadSchemaOrg, bj as UserConfig, a_ as VideoSimple, ad as VirtualLocationSimple, b0 as WebPageSimple, b5 as WebSiteSimple, bk as WithResolver, aJ as addressResolver, D as aggregateOfferResolver, K as aggregateRatingResolver, X as articleResolver, _ as bookEditionResolver, a0 as bookResolver, a3 as breadcrumbResolver, a5 as commentResolver, a7 as courseResolver, y as createSchemaOrgGraph, aa as eventResolver, ag as foodEstablishmentResolver, aj as howToResolver, an as howToStepDirectionResolver, al as howToStepResolver, ap as imageResolver, ar as itemListResolver, at as jobPostingResolver, av as listItemResolver, ax as localBusinessResolver, az as movieResolver, aB as offerResolver, aD as openingHoursResolver, aF as organizationResolver, aH as personResolver, ac as placeResolver, aM as productResolver, aO as questionResolver, aR as ratingResolver, b4 as readActionResolver, aV as recipeResolver, aX as reviewResolver, b9 as searchActionResolver, aZ as softwareAppResolver, a$ as videoResolver, ae as virtualLocationResolver, b2 as webPageResolver, b7 as webSiteResolver } from './shared/schema-org.cc40ee34.js';
3
3
  import * as _unhead_schema from '@unhead/schema';
4
+ import { HeadEntryOptions } from '@unhead/schema';
4
5
  import * as unhead from 'unhead';
5
6
 
6
7
  declare function defineSchemaOrgResolver<T extends Thing>(schema: SchemaOrgNodeDefinition<T>): SchemaOrgNodeDefinition<T>;
@@ -69,7 +70,7 @@ declare function defineReadAction<T extends Record<string, any>>(input?: ReadAct
69
70
  declare function defineSoftwareApp<T extends Record<string, any>>(input?: SoftwareApp & T): SoftwareApp & T;
70
71
  declare function defineBookEdition<T extends Record<string, any>>(input?: BookEdition & T): BookEdition & T;
71
72
  type UseSchemaOrgInput = Arrayable<Thing | Record<string, any>>;
72
- declare function useSchemaOrg(input: UseSchemaOrgInput): void | _unhead_schema.ActiveHeadEntry<unhead.UseHeadInput<{
73
+ declare function useSchemaOrg(input: UseSchemaOrgInput, options?: Pick<HeadEntryOptions, 'tagDuplicateStrategy'>): void | _unhead_schema.ActiveHeadEntry<unhead.UseHeadInput<{
73
74
  script: {
74
75
  nodes: UseSchemaOrgInput;
75
76
  };
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { U as UnheadSchemaOrg } from './shared/schema-org.a1962b95.mjs';
2
- export { H as HowToId, a1 as PluginSchemaOrg, P as PrimaryArticleId, k as PrimaryBookId, m as PrimaryBreadcrumbId, s as PrimaryEventId, X as PrimaryWebPageId, _ as PrimaryWebSiteId, M as ProductId, R as RecipeId, a2 as SchemaOrgUnheadPlugin, L as addressResolver, g as aggregateOfferResolver, h as aggregateRatingResolver, i as articleResolver, j as bookEditionResolver, l as bookResolver, o as breadcrumbResolver, p as commentResolver, q as courseResolver, c as createSchemaOrgGraph, f as dedupeNodes, d as defineSchemaOrgResolver, t as eventResolver, w as foodEstablishmentResolver, x as howToResolver, z as howToStepDirectionResolver, y as howToStepResolver, A as imageResolver, B as itemListResolver, C as jobPostingResolver, D as listItemResolver, E as localBusinessResolver, F as movieResolver, n as normaliseNodes, G as offerResolver, I as openingHoursResolver, J as organizationResolver, K as personResolver, u as placeResolver, N as productResolver, O as questionResolver, Q as ratingResolver, Z as readActionResolver, S as recipeResolver, r as resolveMeta, a as resolveNode, b as resolveNodeId, e as resolveRelation, T as reviewResolver, a0 as searchActionResolver, V as softwareAppResolver, W as videoResolver, v as virtualLocationResolver, Y as webPageResolver, $ as webSiteResolver } from './shared/schema-org.a1962b95.mjs';
1
+ import { U as UnheadSchemaOrg } from './shared/schema-org.35c43c4d.mjs';
2
+ export { H as HowToId, a1 as PluginSchemaOrg, P as PrimaryArticleId, k as PrimaryBookId, m as PrimaryBreadcrumbId, s as PrimaryEventId, X as PrimaryWebPageId, _ as PrimaryWebSiteId, M as ProductId, R as RecipeId, a2 as SchemaOrgUnheadPlugin, L as addressResolver, g as aggregateOfferResolver, h as aggregateRatingResolver, i as articleResolver, j as bookEditionResolver, l as bookResolver, o as breadcrumbResolver, p as commentResolver, q as courseResolver, c as createSchemaOrgGraph, f as dedupeNodes, d as defineSchemaOrgResolver, t as eventResolver, w as foodEstablishmentResolver, x as howToResolver, z as howToStepDirectionResolver, y as howToStepResolver, A as imageResolver, B as itemListResolver, C as jobPostingResolver, D as listItemResolver, E as localBusinessResolver, F as movieResolver, n as normaliseNodes, G as offerResolver, I as openingHoursResolver, J as organizationResolver, K as personResolver, u as placeResolver, N as productResolver, O as questionResolver, Q as ratingResolver, Z as readActionResolver, S as recipeResolver, r as resolveMeta, a as resolveNode, b as resolveNodeId, e as resolveRelation, T as reviewResolver, a0 as searchActionResolver, V as softwareAppResolver, W as videoResolver, v as virtualLocationResolver, Y as webPageResolver, $ as webSiteResolver } from './shared/schema-org.35c43c4d.mjs';
3
3
  import { getActiveHead, useHead } from 'unhead';
4
4
  import 'ufo';
5
5
 
@@ -114,7 +114,7 @@ function defineSoftwareApp(input) {
114
114
  function defineBookEdition(input) {
115
115
  return provideResolver(input, "bookEdition");
116
116
  }
117
- function useSchemaOrg(input) {
117
+ function useSchemaOrg(input, options) {
118
118
  const head = getActiveHead();
119
119
  if (!head)
120
120
  return;
@@ -127,7 +127,7 @@ function useSchemaOrg(input) {
127
127
  nodes: input
128
128
  }
129
129
  ]
130
- });
130
+ }, options);
131
131
  }
132
132
 
133
133
  export { UnheadSchemaOrg, defineAddress, defineAggregateOffer, defineAggregateRating, defineArticle, defineBook, defineBookEdition, defineBreadcrumb, defineComment, defineCourse, defineEvent, defineFoodEstablishment, defineHowTo, defineHowToStep, defineImage, defineItemList, defineJobPosting, defineListItem, defineLocalBusiness, defineMovie, defineOffer, defineOpeningHours, defineOrganization, definePerson, definePlace, defineProduct, defineQuestion, defineReadAction, defineRecipe, defineReview, defineSearchAction, defineSoftwareApp, defineVideo, defineVirtualLocation, defineWebPage, defineWebSite, useSchemaOrg };
@@ -2045,10 +2045,14 @@ function uniqueBy(array, predicate) {
2045
2045
  }
2046
2046
  const merge = createDefu((object, key, value) => {
2047
2047
  if (Array.isArray(object[key])) {
2048
- object[key] = [.../* @__PURE__ */ new Set([...object[key], ...value])];
2049
- if (key === "itemListElement") {
2050
- object[key] = [...uniqueBy(object[key], (item) => item.position)];
2048
+ if (Array.isArray(value)) {
2049
+ object[key] = [.../* @__PURE__ */ new Set([...object[key], ...value])];
2050
+ if (key === "itemListElement") {
2051
+ object[key] = [...uniqueBy(object[key], (item) => item.position)];
2052
+ }
2053
+ return true;
2051
2054
  }
2055
+ object[key] = merge(object[key], Array.isArray(value) ? value : [value]);
2052
2056
  return true;
2053
2057
  }
2054
2058
  });
@@ -2057,7 +2061,7 @@ function dedupeNodes(nodes) {
2057
2061
  for (const key of nodes.keys()) {
2058
2062
  const n = nodes[key];
2059
2063
  const nodeKey = resolveAsGraphKey(n["@id"] || hash(n));
2060
- if (dedupedNodes[nodeKey])
2064
+ if (dedupedNodes[nodeKey] && n._dedupeStrategy !== "replace")
2061
2065
  dedupedNodes[nodeKey] = merge(nodes[key], dedupedNodes[nodeKey]);
2062
2066
  else
2063
2067
  dedupedNodes[nodeKey] = nodes[key];
@@ -2099,8 +2103,14 @@ const baseRelationNodes = [
2099
2103
  function createSchemaOrgGraph() {
2100
2104
  const ctx = {
2101
2105
  find(id) {
2102
- const key = resolveAsGraphKey(id);
2103
- return ctx.nodes.filter((n) => !!n["@id"]).find((n) => resolveAsGraphKey(n["@id"]) === key);
2106
+ let resolver = (s) => s;
2107
+ if (id[0] === "#") {
2108
+ resolver = resolveAsGraphKey;
2109
+ } else if (id[0] === "/") {
2110
+ resolver = (s) => s.replace(/(https?:)?\/\//, "").split("/")[0];
2111
+ }
2112
+ const key = resolver(id);
2113
+ return ctx.nodes.filter((n) => !!n["@id"]).find((n) => resolver(n["@id"]) === key);
2104
2114
  },
2105
2115
  push(input) {
2106
2116
  asArray(input).forEach((node) => {
@@ -2164,6 +2174,7 @@ function SchemaOrgUnheadPlugin(config, meta, options) {
2164
2174
  for (const node of Array.isArray(nodes) ? nodes : [nodes]) {
2165
2175
  const newNode = {
2166
2176
  ...node,
2177
+ _dedupeStrategy: tag.tagDuplicateStrategy,
2167
2178
  _resolver: loadResolver(await node._resolver)
2168
2179
  };
2169
2180
  graph.push(newNode);
@@ -1603,6 +1603,7 @@ interface Thing {
1603
1603
  }
1604
1604
  interface SchemaOrgNode extends Thing {
1605
1605
  _resolver?: SchemaOrgNodeDefinition<any>;
1606
+ _dedupeStrategy?: 'replace' | 'merge';
1606
1607
  }
1607
1608
  type WithResolver<T> = T & {
1608
1609
  _resolver?: SchemaOrgNodeDefinition<T>;
@@ -1603,6 +1603,7 @@ interface Thing {
1603
1603
  }
1604
1604
  interface SchemaOrgNode extends Thing {
1605
1605
  _resolver?: SchemaOrgNodeDefinition<any>;
1606
+ _dedupeStrategy?: 'replace' | 'merge';
1606
1607
  }
1607
1608
  type WithResolver<T> = T & {
1608
1609
  _resolver?: SchemaOrgNodeDefinition<T>;
@@ -1603,6 +1603,7 @@ interface Thing {
1603
1603
  }
1604
1604
  interface SchemaOrgNode extends Thing {
1605
1605
  _resolver?: SchemaOrgNodeDefinition<any>;
1606
+ _dedupeStrategy?: 'replace' | 'merge';
1606
1607
  }
1607
1608
  type WithResolver<T> = T & {
1608
1609
  _resolver?: SchemaOrgNodeDefinition<T>;
@@ -2047,10 +2047,14 @@ function uniqueBy(array, predicate) {
2047
2047
  }
2048
2048
  const merge = createDefu((object, key, value) => {
2049
2049
  if (Array.isArray(object[key])) {
2050
- object[key] = [.../* @__PURE__ */ new Set([...object[key], ...value])];
2051
- if (key === "itemListElement") {
2052
- object[key] = [...uniqueBy(object[key], (item) => item.position)];
2050
+ if (Array.isArray(value)) {
2051
+ object[key] = [.../* @__PURE__ */ new Set([...object[key], ...value])];
2052
+ if (key === "itemListElement") {
2053
+ object[key] = [...uniqueBy(object[key], (item) => item.position)];
2054
+ }
2055
+ return true;
2053
2056
  }
2057
+ object[key] = merge(object[key], Array.isArray(value) ? value : [value]);
2054
2058
  return true;
2055
2059
  }
2056
2060
  });
@@ -2059,7 +2063,7 @@ function dedupeNodes(nodes) {
2059
2063
  for (const key of nodes.keys()) {
2060
2064
  const n = nodes[key];
2061
2065
  const nodeKey = resolveAsGraphKey(n["@id"] || hash(n));
2062
- if (dedupedNodes[nodeKey])
2066
+ if (dedupedNodes[nodeKey] && n._dedupeStrategy !== "replace")
2063
2067
  dedupedNodes[nodeKey] = merge(nodes[key], dedupedNodes[nodeKey]);
2064
2068
  else
2065
2069
  dedupedNodes[nodeKey] = nodes[key];
@@ -2101,8 +2105,14 @@ const baseRelationNodes = [
2101
2105
  function createSchemaOrgGraph() {
2102
2106
  const ctx = {
2103
2107
  find(id) {
2104
- const key = resolveAsGraphKey(id);
2105
- return ctx.nodes.filter((n) => !!n["@id"]).find((n) => resolveAsGraphKey(n["@id"]) === key);
2108
+ let resolver = (s) => s;
2109
+ if (id[0] === "#") {
2110
+ resolver = resolveAsGraphKey;
2111
+ } else if (id[0] === "/") {
2112
+ resolver = (s) => s.replace(/(https?:)?\/\//, "").split("/")[0];
2113
+ }
2114
+ const key = resolver(id);
2115
+ return ctx.nodes.filter((n) => !!n["@id"]).find((n) => resolver(n["@id"]) === key);
2106
2116
  },
2107
2117
  push(input) {
2108
2118
  asArray(input).forEach((node) => {
@@ -2166,6 +2176,7 @@ function SchemaOrgUnheadPlugin(config, meta, options) {
2166
2176
  for (const node of Array.isArray(nodes) ? nodes : [nodes]) {
2167
2177
  const newNode = {
2168
2178
  ...node,
2179
+ _dedupeStrategy: tag.tagDuplicateStrategy,
2169
2180
  _resolver: loadResolver(await node._resolver)
2170
2181
  };
2171
2182
  graph.push(newNode);
package/dist/vue.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const plugin = require('./shared/schema-org.53313bde.cjs');
3
+ const plugin = require('./shared/schema-org.e643866f.cjs');
4
4
  const vue = require('vue');
5
5
  const vue$1 = require('@unhead/vue');
6
6
  require('ufo');
package/dist/vue.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition, A as Arrayable, T as Thing } from './shared/schema-org.d2b719c3.cjs';
2
- export { M as MetaInput, bc as PluginSchemaOrg, bd as SchemaOrgUnheadPlugin, bj as UserConfig } from './shared/schema-org.d2b719c3.cjs';
1
+ import { P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition, A as Arrayable, T as Thing } from './shared/schema-org.cc40ee34.cjs';
2
+ export { M as MetaInput, bc as PluginSchemaOrg, bd as SchemaOrgUnheadPlugin, bj as UserConfig } from './shared/schema-org.cc40ee34.cjs';
3
3
  import { ComponentResolver } from 'unplugin-vue-components';
4
4
  import { defineComponent } from 'vue';
5
5
  import * as _unhead_vue from '@unhead/vue';
package/dist/vue.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition, A as Arrayable, T as Thing } from './shared/schema-org.d2b719c3.mjs';
2
- export { M as MetaInput, bc as PluginSchemaOrg, bd as SchemaOrgUnheadPlugin, bj as UserConfig } from './shared/schema-org.d2b719c3.mjs';
1
+ import { P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition, A as Arrayable, T as Thing } from './shared/schema-org.cc40ee34.mjs';
2
+ export { M as MetaInput, bc as PluginSchemaOrg, bd as SchemaOrgUnheadPlugin, bj as UserConfig } from './shared/schema-org.cc40ee34.mjs';
3
3
  import { ComponentResolver } from 'unplugin-vue-components';
4
4
  import { defineComponent } from 'vue';
5
5
  import * as _unhead_vue from '@unhead/vue';
package/dist/vue.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition, A as Arrayable, T as Thing } from './shared/schema-org.d2b719c3.js';
2
- export { M as MetaInput, bc as PluginSchemaOrg, bd as SchemaOrgUnheadPlugin, bj as UserConfig } from './shared/schema-org.d2b719c3.js';
1
+ import { P as PostalAddress, c as AggregateOffer, d as AggregateRating, e as Article, B as BreadcrumbList, C as Comment, E as Event, F as FoodEstablishment, V as VirtualLocation, f as Place, H as HowTo, g as HowToStep, I as ImageObject, J as JobPosting, L as LocalBusiness, O as Offer, h as OpeningHoursSpecification, i as Organization, j as Person, k as Product, Q as Question, l as Recipe, m as Review, n as VideoObject, W as WebPage, o as WebSite, p as Book, q as Course, r as ItemList, s as ListItem, t as Movie, u as SearchAction, v as ReadAction, w as SoftwareApp, x as BookEdition, A as Arrayable, T as Thing } from './shared/schema-org.cc40ee34.js';
2
+ export { M as MetaInput, bc as PluginSchemaOrg, bd as SchemaOrgUnheadPlugin, bj as UserConfig } from './shared/schema-org.cc40ee34.js';
3
3
  import { ComponentResolver } from 'unplugin-vue-components';
4
4
  import { defineComponent } from 'vue';
5
5
  import * as _unhead_vue from '@unhead/vue';
package/dist/vue.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { U as UnheadSchemaOrg } from './shared/schema-org.a1962b95.mjs';
2
- export { a1 as PluginSchemaOrg, a2 as SchemaOrgUnheadPlugin } from './shared/schema-org.a1962b95.mjs';
1
+ import { U as UnheadSchemaOrg } from './shared/schema-org.35c43c4d.mjs';
2
+ export { a1 as PluginSchemaOrg, a2 as SchemaOrgUnheadPlugin } from './shared/schema-org.35c43c4d.mjs';
3
3
  import { defineComponent, ref, computed, unref, h } from 'vue';
4
4
  import { injectHead, useHead } from '@unhead/vue';
5
5
  import 'ufo';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@unhead/schema-org",
3
3
  "type": "module",
4
- "version": "1.11.0",
4
+ "version": "1.11.1",
5
5
  "description": "Unhead Schema.org for Simple and Automated Google Rich Results",
6
6
  "author": "Harlan Wilton <harlan@harlanzw.com>",
7
7
  "license": "MIT",
@@ -49,10 +49,10 @@
49
49
  },
50
50
  "devDependencies": {
51
51
  "unplugin-vue-components": "^0.27.4",
52
- "@unhead/schema": "1.11.0",
53
- "@unhead/vue": "1.11.0",
54
- "@unhead/shared": "1.11.0",
55
- "unhead": "1.11.0"
52
+ "@unhead/vue": "1.11.1",
53
+ "unhead": "1.11.1",
54
+ "@unhead/schema": "1.11.1",
55
+ "@unhead/shared": "1.11.1"
56
56
  },
57
57
  "scripts": {
58
58
  "build": "unbuild .",