@unhead/schema-org 2.0.0-alpha.2 → 2.0.0-alpha.21

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.
@@ -1,1642 +0,0 @@
1
- import * as _unhead_schema from '@unhead/schema';
2
-
3
- interface DefinedRegion extends Thing {
4
- /**
5
- * The two-letter country code, in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1) format.
6
- */
7
- addressCountry: string;
8
- /**
9
- * If you include this property, the region must be a 2- or 3-digit ISO 3166-2 subdivision code, without country prefix. Currently, Google Search only supports the US, Australia, and Japan. Examples: "NY" (for US, state of New York), "NSW" (for Australia, state of New South Wales), or "03" (for Japan, Iwate prefecture).
10
- *
11
- * Do not provide both a region and postal code information.
12
- */
13
- addressRegion?: string;
14
- /**
15
- * The postal code. For example, 94043. Currently postal codes are supported for Australia, Canada, and the US.
16
- */
17
- postalCode?: string;
18
- }
19
-
20
- interface MonetaryAmountSimple extends Thing {
21
- /**
22
- * The currency in which the monetary amount is expressed.
23
- */
24
- currency: string;
25
- /**
26
- * The value of the quantitative value or property value node.
27
- */
28
- value: number | QuantitativeValue;
29
- }
30
- interface MonetaryAmount extends MonetaryAmountSimple {
31
- }
32
- interface QuantitativeSimple extends Thing {
33
- value?: number;
34
- minValue?: number;
35
- maxValue?: number;
36
- unitCode?: string;
37
- unitText?: 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR';
38
- }
39
- interface QuantitativeValue extends QuantitativeSimple {
40
- }
41
-
42
- interface ShippingDeliveryTime extends Thing {
43
- /**
44
- * The typical delay between the receipt of the order and the goods leaving the warehouse.
45
- */
46
- handlingTime?: QuantitativeValue;
47
- /**
48
- * The typical delay between when the order has been sent for delivery and when the goods reach the final customer.
49
- */
50
- transitTime?: QuantitativeValue;
51
- }
52
-
53
- interface OfferShippingDetails extends Thing {
54
- '@type'?: 'OfferShippingDetails';
55
- /**
56
- * The total delay between the receipt of the order and the goods reaching the final customer.
57
- */
58
- 'deliveryTime': ShippingDeliveryTime;
59
- 'shippingDestination': DefinedRegion;
60
- /**
61
- * Information about the cost of shipping to the specified destination. At least one of shippingRate.value or shippingRate.maxValue must be specified, along with shippingRate.currency.
62
- *
63
- * You can only specify one shippingRate per OfferShippingDetails property. To indicate multiple rates for your product, specify multiple OfferShippingDetail properties.
64
- */
65
- 'shippingRate': MonetaryAmount;
66
- }
67
-
68
- type DayOfWeek = 'Friday' | 'Monday' | 'PublicHolidays' | 'Saturday' | 'Sunday' | 'Thursday' | 'Tuesday' | 'Wednesday';
69
- type Time = `${number}${number}:${number}${number}`;
70
- interface OpeningHoursSimple extends Thing {
71
- '@type'?: 'OpeningHoursSpecification';
72
- /**
73
- * The day of the week for which these opening hours are valid.
74
- */
75
- 'dayOfWeek': Arrayable<DayOfWeek>;
76
- /**
77
- * The opening hour of the place or service on the given day(s) of the week.
78
- */
79
- 'opens'?: Time;
80
- /**
81
- * The closing hour of the place or service on the given day(s) of the week.
82
- */
83
- 'closes'?: Time;
84
- /**
85
- * The date when the item becomes valid.
86
- */
87
- 'validFrom'?: ResolvableDate;
88
- /**
89
- * The date after when the item is not valid. For example, the end of an offer, salary period, or a period of opening hours.
90
- */
91
- 'validThrough'?: ResolvableDate;
92
- }
93
- interface OpeningHoursSpecification extends OpeningHoursSimple {
94
- }
95
- declare const openingHoursResolver: SchemaOrgNodeDefinition<OpeningHoursSpecification>;
96
-
97
- type ItemAvailability = 'BackOrder' | 'Discontinued' | 'InStock' | 'InStoreOnly' | 'LimitedAvailability' | 'OnlineOnly' | 'OutOfStock' | 'PreOrder' | 'PreSale' | 'SoldOut';
98
- type OfferItemCondition = 'NewCondition' | 'RefurbishedCondition' | 'UsedCondition';
99
- interface OfferSimple extends Thing {
100
- '@type'?: 'Offer';
101
- /**
102
- * Condition of the item offered for sale.
103
- */
104
- 'itemCondition'?: OptionalSchemaOrgPrefix<OfferItemCondition>;
105
- /**
106
- * A schema.org URL representing a schema itemAvailability value (e.g., https://schema.org/OutOfStock).
107
- */
108
- 'availability'?: OptionalSchemaOrgPrefix<ItemAvailability>;
109
- /**
110
- * The price, omitting any currency symbols, and using '.' to indicate a decimal place.
111
- */
112
- 'price': number | string;
113
- /**
114
- * The currency used to describe the product price, in three-letter ISO 4217 format.
115
- */
116
- 'priceCurrency'?: string;
117
- /**
118
- * @todo A PriceSpecification object, including a valueAddedTaxIncluded property (of either true or false).
119
- */
120
- 'priceSpecification'?: unknown;
121
- /**
122
- * The date after which the price is no longer available.
123
- */
124
- 'priceValidUntil'?: ResolvableDate;
125
- 'url'?: string;
126
- /**
127
- * Nested information about the return policies associated with an Offer. If you decide to add hasMerchantReturnPolicy, add the required and recommended MerchantReturnPolicy properties.
128
- */
129
- 'hasMerchantReturnPolicy'?: NodeRelation<OpeningHoursSpecification>;
130
- /**
131
- * Nested information about the shipping policies and options associated with an Offer. If you decide to add shippingDetails, add the required and recommended OfferShippingDetails properties.
132
- */
133
- 'shippingDetails'?: OfferShippingDetails;
134
- }
135
- interface Offer extends OfferSimple {
136
- }
137
- declare const offerResolver: SchemaOrgNodeDefinition<Offer>;
138
-
139
- interface AggregateOfferSimple extends Thing {
140
- /**
141
- * The lowest price of the group, omitting any currency symbols, and using '.' to indicate a decimal place.
142
- */
143
- lowPrice: number | string;
144
- /**
145
- * The highest price of the group, omitting any currency symbols, and using '.' to indicate a decimal place.
146
- */
147
- highPrice: number | string;
148
- /**
149
- * The currency used to describe the product price, in a three-letter ISO 4217 format.
150
- */
151
- priceCurrency?: string;
152
- /**
153
- * The number of offers in the group
154
- */
155
- offerCount?: number | string;
156
- /**
157
- * An array of Offer pieces, referenced by ID.
158
- */
159
- offers?: NodeRelations<Offer>;
160
- }
161
- interface AggregateOffer extends AggregateOfferSimple {
162
- }
163
- declare const aggregateOfferResolver: SchemaOrgNodeDefinition<AggregateOffer>;
164
-
165
- interface AggregateRatingSimple extends Thing {
166
- '@type'?: 'AggregateRating';
167
- /**
168
- * The total number of ratings for the item on your site. At least one of ratingCount or reviewCount is required.
169
- */
170
- 'ratingCount'?: number | string;
171
- /**
172
- * Specifies the number of people who provided a review with or without an accompanying rating. At least one of ratingCount or reviewCount is required.
173
- */
174
- 'reviewCount'?: number | string;
175
- /**
176
- * A numerical quality rating for the item, either a number, fraction, or percentage
177
- * (for example, "4", "60%", or "6 / 10").
178
- * Google understands the scale for fractions and percentages,
179
- * since the scale is implied in the fraction itself or the percentage.
180
- * The default scale for numbers is a 5-point scale, where 1 is the lowest value and 5 is the highest value.
181
- * If another scale is intended, use bestRating and worstRating.
182
- */
183
- 'ratingValue': number | string;
184
- /**
185
- * The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.
186
- */
187
- 'bestRating'?: number | string;
188
- /**
189
- * The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.
190
- */
191
- 'worstRating'?: number | string;
192
- }
193
- interface AggregateRating extends AggregateRatingSimple {
194
- }
195
- declare const aggregateRatingResolver: SchemaOrgNodeDefinition<AggregateRating>;
196
-
197
- interface ImageSimple extends Thing {
198
- /**
199
- * The URL of the image file (e.g., /images/cat.jpg).
200
- */
201
- url: string;
202
- /**
203
- * The fully-qualified, absolute URL of the image file (e.g., https://www.example.com/images/cat.jpg).
204
- * Note: The contentUrl and url properties are intentionally duplicated.
205
- */
206
- contentUrl?: string;
207
- /**
208
- * A text string describing the image.
209
- * - Fall back to the image alt attribute if no specific caption field exists or is defined.
210
- */
211
- caption?: string;
212
- /**
213
- * The height of the image in pixels.
214
- * - Must be used with width.
215
- */
216
- height?: number;
217
- /**
218
- * The width of the image in pixels.
219
- * - Must be used with height.
220
- */
221
- width?: number;
222
- /**
223
- * The language code for the textual content; e.g., en-GB.
224
- * - Only needed when providing a caption.
225
- */
226
- inLanguage?: string;
227
- }
228
- interface ImageObject extends ImageSimple {
229
- }
230
- /**
231
- * Describes an individual image (usually in the context of an embedded media object).
232
- */
233
- declare const imageResolver: SchemaOrgNodeDefinition<ImageObject>;
234
-
235
- interface VideoSimple extends Thing {
236
- /**
237
- * The title of the video.
238
- */
239
- name?: string;
240
- /**
241
- * A description of the video (falling back to the caption, then to 'No description').
242
- */
243
- description?: string;
244
- /**
245
- * A reference-by-ID to an imageObject.
246
- */
247
- thumbnail?: NodeRelation<ImageObject>;
248
- /**
249
- * A URL pointing to the video thumbnail image file. Follow the [thumbnail image guidelines](https://developers.google.com/search/docs/appearance/video#provide-a-high-quality-thumbnail).
250
- */
251
- thumbnailUrl?: Arrayable<string>;
252
- /**
253
- * The date the video was published, in ISO 8601 format (e.g., 2020-01-20).
254
- */
255
- uploadDate?: ResolvableDate;
256
- /**
257
- * Whether the video should be considered 'family friendly'
258
- */
259
- isFamilyFriendly?: boolean;
260
- /**
261
- * The URL of the image file (e.g., /images/cat.jpg).
262
- */
263
- url: string;
264
- /**
265
- * The fully-qualified, absolute URL of the image file (e.g., https://www.example.com/images/cat.jpg).
266
- * Note: The contentUrl and url properties are intentionally duplicated.
267
- */
268
- contentUrl?: string;
269
- /**
270
- * A text string describing the image.
271
- * - Fall back to the image alt attribute if no specific caption field exists or is defined.
272
- */
273
- caption?: string;
274
- /**
275
- * The height of the image in pixels.
276
- * - Must be used with width.
277
- */
278
- height?: number;
279
- /**
280
- * The width of the image in pixels.
281
- * - Must be used with height.
282
- */
283
- width?: number;
284
- /**
285
- * The language code for the textual content; e.g., en-GB.
286
- * - Only needed when providing a caption.
287
- */
288
- inLanguage?: string;
289
- /**
290
- * The duration of the video in ISO 8601 format.
291
- */
292
- duration?: string;
293
- /**
294
- * A URL pointing to a player for the video.
295
- */
296
- embedUrl?: string;
297
- }
298
- interface VideoObject extends VideoSimple {
299
- }
300
- /**
301
- * Describes an individual video (usually in the context of an embedded media object).
302
- */
303
- declare const videoResolver: SchemaOrgNodeDefinition<VideoObject>;
304
-
305
- type ValidArticleSubTypes = 'Article' | 'BlogPosting' | 'AdvertiserContentArticle' | 'NewsArticle' | 'Report' | 'SatiricalArticle' | 'ScholarlyArticle' | 'SocialMediaPosting' | 'TechArticle';
306
- interface ArticleSimple extends Thing {
307
- ['@type']?: Arrayable<ValidArticleSubTypes>;
308
- /**
309
- * The headline of the article (falling back to the title of the WebPage).
310
- * Headlines should not exceed 110 characters.
311
- */
312
- headline?: string;
313
- /**
314
- * A summary of the article (falling back to the page's meta description content).
315
- */
316
- description?: string;
317
- /**
318
- * A reference-by-ID to the WebPage node.
319
- */
320
- isPartOf?: IdReference;
321
- /**
322
- * The time at which the article was originally published, in ISO 8601 format; e.g., 2015-10-31T16:10:29+00:00.
323
- */
324
- datePublished?: ResolvableDate;
325
- /**
326
- * The time at which the article was last modified, in ISO 8601 format; e.g., 2015-10-31T16:10:29+00:00.
327
- */
328
- dateModified?: ResolvableDate;
329
- /**
330
- * A reference-by-ID to the author of the article.
331
- */
332
- author?: NodeRelations<Identity>;
333
- /**
334
- * A reference-by-ID to the publisher of the article.
335
- */
336
- publisher?: NodeRelations<Identity>;
337
- /**
338
- * An array of all videos in the article content, referenced by ID.
339
- */
340
- video?: NodeRelations<VideoObject>;
341
- /**
342
- * An image object or referenced by ID.
343
- * - Must be at least 696 pixels wide.
344
- * - Must be of the following formats+file extensions: .jpg, .png, .gif ,or .webp.
345
- *
346
- * Must have markup of it somewhere on the page.
347
- */
348
- image?: NodeRelations<ImageObject | string>;
349
- /**
350
- * An array of references by ID to comment pieces.
351
- */
352
- comment?: NodeRelations<Comment>;
353
- /**
354
- * A thumbnail image relevant to the Article.
355
- */
356
- thumbnailUrl?: string;
357
- /**
358
- * An integer value of the number of comments associated with the article.
359
- */
360
- commentCount?: number;
361
- /**
362
- * An integer value of the number of words in the article.
363
- */
364
- wordCount?: number;
365
- /**
366
- * An array of keywords which the article has (e.g., ["cats","dogs","cake"]).
367
- */
368
- keywords?: string[];
369
- /**
370
- * An array of category names which the article belongs to (e.g., ["cats","dogs","cake"]).
371
- */
372
- articleSection?: string[];
373
- /**
374
- * The language code for the article; e.g., en-GB.
375
- */
376
- inLanguage?: string;
377
- /**
378
- * A SpeakableSpecification object which identifies any content elements suitable for spoken results.
379
- */
380
- speakable?: unknown;
381
- /**
382
- * The year from which the article holds copyright status.
383
- */
384
- copyrightYear?: string;
385
- /**
386
- * A reference-by-ID to the Organization or Person who holds the copyright.
387
- */
388
- copyrightHolder?: NodeRelations<Identity>;
389
- }
390
- interface Article extends ArticleSimple {
391
- }
392
- declare const PrimaryArticleId = "#article";
393
- /**
394
- * Describes an Article on a WebPage.
395
- */
396
- declare const articleResolver: SchemaOrgNodeDefinition<Article>;
397
-
398
- /**
399
- * A list item, e.g. a step in a checklist or how-to description.
400
- */
401
- interface ListItemSimple extends Thing {
402
- '@type'?: 'ListItem';
403
- /**
404
- * The name of the page in question, as it appears in the breadcrumb navigation.
405
- */
406
- 'name'?: string;
407
- /**
408
- * The unmodified canonical URL of the page in question.
409
- * - If a relative path is provided, it will be resolved to absolute.
410
- * - Item is not required for the last entry
411
- */
412
- 'item'?: string | Thing;
413
- /**
414
- * An integer (starting at 1), counting the 'depth' of the page from (including) the homepage.
415
- */
416
- 'position'?: number;
417
- }
418
- interface ListItem extends ListItemSimple {
419
- }
420
- declare const listItemResolver: SchemaOrgNodeDefinition<ListItem>;
421
-
422
- interface ItemListSimple extends Thing {
423
- /**
424
- * Resolved item list
425
- */
426
- itemListElement: NodeRelations<ListItem>;
427
- /**
428
- * Type of ordering (e.g. Ascending, Descending, Unordered).
429
- *
430
- * @default undefined
431
- */
432
- itemListOrder?: 'Ascending' | 'Descending' | 'Unordered';
433
- /**
434
- * The number of items in an ItemList.
435
- * Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination);
436
- * in such cases, the numberOfItems would be for the entire list.
437
- *
438
- * @default undefined
439
- */
440
- numberOfItems?: number;
441
- }
442
- interface ItemList extends ItemListSimple {
443
- }
444
- declare const itemListResolver: SchemaOrgNodeDefinition<ItemList>;
445
-
446
- /**
447
- * A BreadcrumbList is an ItemList consisting of a chain of linked Web pages,
448
- * typically described using at least their URL and their name, and typically ending with the current page.
449
- */
450
- interface BreadcrumbSimple extends ItemList {
451
- '@type'?: 'BreadcrumbList';
452
- }
453
- interface BreadcrumbList extends BreadcrumbSimple {
454
- }
455
- declare const PrimaryBreadcrumbId = "#breadcrumb";
456
- /**
457
- * Describes the hierarchical position a WebPage within a WebSite.
458
- */
459
- declare const breadcrumbResolver: SchemaOrgNodeDefinition<BreadcrumbList>;
460
-
461
- interface PostalAddressSimple extends Thing {
462
- /**
463
- * The building number and street (e.g., 123 fake road ).
464
- */
465
- streetAddress: string;
466
- /**
467
- * The postal code.
468
- */
469
- postalCode: string;
470
- /**
471
- * The two-digit country-code representing the country (e.g., US ).
472
- */
473
- addressCountry: string;
474
- /**
475
- * The town, city or equivalent.
476
- */
477
- addressLocality?: string;
478
- /**
479
- * The region or district.
480
- */
481
- addressRegion?: string;
482
- /**
483
- * A PO box number.
484
- */
485
- postOfficeBoxNumber?: string;
486
- }
487
- interface PostalAddress extends PostalAddressSimple {
488
- }
489
- declare const addressResolver: SchemaOrgNodeDefinition<PostalAddress>;
490
-
491
- /**
492
- * An organization such as a school, NGO, corporation, club, etc.
493
- */
494
- interface OrganizationSimple extends Thing {
495
- /**
496
- * A reference-by-ID to an image of the organization's logo.
497
- *
498
- * - The image must be 112x112px, at a minimum.
499
- * - Make sure the image looks how you intend it to look on a purely white background
500
- * (for example, if the logo is mostly white or gray,
501
- * it may not look how you want it to look when displayed on a white background).
502
- */
503
- logo?: NodeRelation<ImageObject | string>;
504
- /**
505
- * The site's home URL.
506
- */
507
- url?: string;
508
- /**
509
- * The name of the Organization.
510
- */
511
- name: string;
512
- /**
513
- * An array of URLs representing declared social/authoritative profiles of the organization
514
- * (e.g., a Wikipedia page, or Facebook profile).
515
- */
516
- sameAs?: Arrayable<string>;
517
- /**
518
- * An array of images which represent the organization (including the logo ), referenced by ID.
519
- */
520
- image?: NodeRelations<ImageObject | string>;
521
- /**
522
- * A reference-by-ID to an PostalAddress piece.
523
- */
524
- address?: NodeRelations<PostalAddress>;
525
- }
526
- interface Organization extends OrganizationSimple {
527
- }
528
- /**
529
- * Describes an organization (a company, business or institution).
530
- * Most commonly used to identify the publisher of a WebSite.
531
- *
532
- * May be transformed into a more specific type
533
- * (such as Corporation or LocalBusiness) if the required conditions are met.
534
- */
535
- declare const organizationResolver: SchemaOrgNodeDefinition<Organization>;
536
-
537
- /**
538
- * A person (alive, dead, undead, or fictional).
539
- */
540
- interface PersonSimple extends Thing {
541
- /**
542
- * The full name of the Person.
543
- */
544
- name: string;
545
- /**
546
- * The user bio, truncated to 250 characters.
547
- */
548
- description?: string;
549
- /**
550
- * An array of URLs representing declared social/authoritative profiles of the person
551
- * (e.g., a Wikipedia page, or Facebook profile).
552
- */
553
- sameAs?: Arrayable<string>;
554
- /**
555
- * An array of images which represent the person, referenced by ID.
556
- */
557
- image?: NodeRelations<ImageObject | string>;
558
- /**
559
- * The URL of the users' profile page (if they're affiliated with the site in question),
560
- * or to their personal homepage/website.
561
- */
562
- url?: string;
563
- }
564
- interface Person extends PersonSimple {
565
- }
566
- /**
567
- * Describes an individual person. Most commonly used to identify the author of a piece of content (such as an Article or Comment).
568
- */
569
- declare const personResolver: SchemaOrgNodeDefinition<Person>;
570
-
571
- type SearchTarget = string | `${string}{search_term_string}${string | undefined}`;
572
- interface SearchActionInput {
573
- /**
574
- * An object of type EntryPoint, with a relative URL which describes the URL pattern of the internal search function
575
- * (e.g., /search?query={search_term_string}).
576
- */
577
- target?: SearchTarget;
578
- /**
579
- * Alias: The search term string as described in the target (e.g., search_term_string).
580
- * @default search_term_string
581
- */
582
- queryInput?: string;
583
- }
584
- interface SearchAction {
585
- '@type'?: 'SearchAction';
586
- /**
587
- * An object of type EntryPoint, with a relative URL which describes the URL pattern of the internal search function
588
- * (e.g., /search?query={search_term_string}).
589
- */
590
- 'target': SearchTarget | {
591
- '@type'?: 'EntryPoint';
592
- 'urlTemplate'?: SearchTarget;
593
- };
594
- /**
595
- * The search term string as described in the target (e.g., search_term_string).
596
- */
597
- 'query-input'?: {
598
- '@type'?: 'PropertyValueSpecification';
599
- 'valueRequired'?: boolean;
600
- 'valueName'?: 'search_term_string';
601
- };
602
- }
603
- declare const searchActionResolver: SchemaOrgNodeDefinition<SearchAction>;
604
-
605
- /**
606
- * A WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.
607
- */
608
- interface WebSiteSimple extends Thing {
609
- /**
610
- * The site's home URL (excluding a trailing slash).
611
- */
612
- url?: string;
613
- /**
614
- * The name of the website.
615
- */
616
- name: string;
617
- /**
618
- * A description of the website (e.g., the site's tagline).
619
- */
620
- description?: string;
621
- /**
622
- * A reference-by-ID to the Organization which publishes the WebSite
623
- * (or an array of Organization and Person in the case that the website represents an individual).
624
- */
625
- publisher?: NodeRelations<Identity>;
626
- /**
627
- * A SearchAction object describing the site's internal search.
628
- */
629
- potentialAction?: Arrayable<(SearchAction | unknown)>;
630
- /**
631
- * The language code for the WebSite; e.g., en-GB.
632
- * If the website is available in multiple languages, then output an array of inLanguage values.
633
- */
634
- inLanguage?: Arrayable<string>;
635
- }
636
- interface WebSite extends WebSiteSimple {
637
- }
638
- declare const PrimaryWebSiteId = "#website";
639
- declare const webSiteResolver: SchemaOrgNodeDefinition<WebSite>;
640
-
641
- interface ReadActionInput {
642
- target?: string[];
643
- }
644
- interface ReadAction {
645
- '@type'?: 'ReadAction';
646
- /**
647
- * An object of type EntryPoint, with a relative URL which describes the URL pattern of the internal search function
648
- * (e.g., /search?query={search_term_string}).
649
- */
650
- 'target': string[];
651
- }
652
- declare const readActionResolver: SchemaOrgNodeDefinition<ReadAction>;
653
-
654
- type ValidSubTypes = 'WebPage' | 'AboutPage' | 'CheckoutPage' | 'CollectionPage' | 'ContactPage' | 'FAQPage' | 'ItemPage' | 'MedicalWebPage' | 'ProfilePage' | 'QAPage' | 'RealEstateListing' | 'SearchResultsPage';
655
- /**
656
- * A web page.
657
- * Every web page is implicitly assumed to be declared to be of type WebPage,
658
- * so the various properties about that webpage, such as breadcrumb may be used.
659
- */
660
- interface WebPageSimple extends Thing {
661
- ['@type']?: Arrayable<ValidSubTypes>;
662
- /**
663
- * The unmodified canonical URL of the page.
664
- */
665
- url?: string;
666
- /**
667
- * The title of the page.
668
- */
669
- name?: string;
670
- /**
671
- * The page's meta description content.
672
- */
673
- description?: string;
674
- /**
675
- * A reference-by-ID to the WebSite node.
676
- */
677
- isPartOf?: NodeRelation<WebSite>;
678
- /**
679
- * A reference-by-ID to the Organisation node.
680
- * Note: Only for the home page.
681
- */
682
- about?: NodeRelation<Organization>;
683
- /**
684
- * A reference-by-ID to the author of the web page.
685
- */
686
- author?: NodeRelation<Person | string>;
687
- /**
688
- * The language code for the page; e.g., en-GB.
689
- */
690
- inLanguage?: Arrayable<string>;
691
- /**
692
- * The time at which the page was originally published, in ISO 8601 format; e.g., 2015-10-31T16:10:29+00:00.
693
- */
694
- datePublished?: ResolvableDate;
695
- /**
696
- * The time at which the page was last modified, in ISO 8601 format; e.g., 2015-10-31T16:10:29+00:00.
697
- */
698
- dateModified?: ResolvableDate;
699
- /**
700
- * A reference-by-ID to a node representing the page's featured image.
701
- */
702
- primaryImageOfPage?: NodeRelation<ImageObject | string>;
703
- /**
704
- * A reference-by-ID to a node representing the page's breadrumb structure.
705
- */
706
- breadcrumb?: NodeRelation<BreadcrumbList>;
707
- /**
708
- * An array of all videos in the page content, referenced by ID.
709
- */
710
- video?: NodeRelations<VideoObject>;
711
- /**
712
- * A SpeakableSpecification object which identifies any content elements suitable for spoken results.
713
- */
714
- speakable?: unknown;
715
- /**
716
- * Potential actions for this web page.
717
- *
718
- * Note it's on by default for most page types.
719
- */
720
- potentialAction?: Arrayable<(ReadAction | unknown)>;
721
- }
722
- interface WebPage extends WebPageSimple {
723
- }
724
- declare const PrimaryWebPageId = "#webpage";
725
- declare const webPageResolver: SchemaOrgNodeDefinition<WebPage>;
726
-
727
- interface BookSimple extends Thing {
728
- /**
729
- * The title of the book.
730
- */
731
- name: string;
732
- /**
733
- * A description of the course. Display limit of 60 characters.
734
- */
735
- description?: string;
736
- /**
737
- * A reference to an Organization piece, representing brand associated with the Product.
738
- */
739
- author?: NodeRelation<Identity>;
740
- /**
741
- * The URL on your website where the book is introduced or described.
742
- */
743
- url?: string;
744
- /**
745
- * The URL of a reference page that identifies the work. For example, a Wikipedia, Wikidata, VIAF, or Library of Congress page for the book.
746
- */
747
- sameAs?: Arrayable<string>;
748
- /**
749
- * The edition(s) of the work.
750
- */
751
- workExample: NodeRelations<BookEdition>;
752
- }
753
- interface Book extends BookSimple {
754
- }
755
- type BookFormat = OptionalSchemaOrgPrefix<'AudiobookFormat'> | OptionalSchemaOrgPrefix<'EBook'> | OptionalSchemaOrgPrefix<'Hardcover'> | OptionalSchemaOrgPrefix<'Paperback'>;
756
- interface BookEditionSimple extends Thing {
757
- /**
758
- * The title of the edition. Only use this when the title of the edition is different from the title of the work.
759
- */
760
- name?: string;
761
- /**
762
- * The format of the edition.
763
- */
764
- bookFormat: BookFormat;
765
- /**
766
- * The main language of the content in the edition. Use one of the two-letter codes from the list of ISO 639-1 alpha-2 codes.
767
- */
768
- inLanguage?: string;
769
- /**
770
- * The ISBN-13 of the edition. If you have ISBN-10, convert it into ISBN-13.
771
- */
772
- isbn: string;
773
- /**
774
- * The action to be triggered for users to purchase or download the book.
775
- */
776
- potentialAction?: Arrayable<ReadAction | any>;
777
- /**
778
- * The author(s) of the edition.
779
- */
780
- author?: NodeRelations<Identity>;
781
- /**
782
- * The edition information of the book. For example, 2nd Edition.
783
- */
784
- bookEdition?: string;
785
- /**
786
- * The date of publication of the edition in YYYY-MM-DD or YYYY format. This can be either a specific date or only a specific year.
787
- */
788
- datePublished?: ResolvableDate;
789
- /**
790
- * The external or other ID that unambiguously identifies this edition. Multiple identifiers are allowed. For more details, refer to PropertyValue (identifier).
791
- */
792
- identifier?: unknown;
793
- /**
794
- * The URL of a reference web page that unambiguously indicates the edition. For example, a Wikipedia page for this specific edition. Don't reuse the sameAs of the Work.
795
- */
796
- sameAs?: Arrayable<string>;
797
- /**
798
- * The URL on your website where the edition is introduced or described. It can be the same as workExample.target.urlTemplate.
799
- */
800
- url?: string;
801
- }
802
- interface BookEdition extends BookEditionSimple {
803
- }
804
- declare const bookEditionResolver: SchemaOrgNodeDefinition<BookEdition>;
805
- declare const PrimaryBookId = "#book";
806
- declare const bookResolver: SchemaOrgNodeDefinition<Book>;
807
-
808
- interface CommentSimple extends Thing {
809
- /**
810
- * The textual content of the comment, stripping HTML tags.
811
- */
812
- text: string;
813
- /**
814
- * A reference by ID to the parent Article (or WebPage, when no Article is present).
815
- */
816
- about?: IdReference;
817
- /**
818
- * A reference by ID to the Person who wrote the comment.
819
- */
820
- author: NodeRelation<Person>;
821
- }
822
- interface Comment$1 extends CommentSimple {
823
- }
824
- /**
825
- * Describes a review. Usually in the context of an Article or a WebPage.
826
- */
827
- declare const commentResolver: SchemaOrgNodeDefinition<Comment$1>;
828
-
829
- /**
830
- * Any offered product or service.
831
- * For example: a pair of shoes; a concert ticket; the rental of a car;
832
- * a haircut; or an episode of a TV show streamed online.
833
- */
834
- interface CourseSimple extends Thing {
835
- /**
836
- * The title of the course.
837
- */
838
- name: string;
839
- /**
840
- * A description of the course. Display limit of 60 characters.
841
- */
842
- description?: string;
843
- /**
844
- * A reference to an Organization piece, representing brand associated with the Product.
845
- */
846
- provider?: NodeRelation<Organization>;
847
- }
848
- interface Course extends CourseSimple {
849
- }
850
- declare const courseResolver: SchemaOrgNodeDefinition<Course>;
851
-
852
- interface PlaceSimple extends Thing {
853
- '@type'?: 'Place';
854
- 'name': string;
855
- 'address': NodeRelation<PostalAddress | string>;
856
- 'latitude'?: number | string;
857
- 'longitude'?: number | string;
858
- }
859
- interface Place extends PlaceSimple {
860
- }
861
- /**
862
- * Describes a HowTo guide, which contains a series of steps.
863
- */
864
- declare const placeResolver: SchemaOrgNodeDefinition<Place>;
865
-
866
- interface VirtualLocationSimple extends Thing {
867
- '@type'?: 'VirtualLocation';
868
- 'url': string;
869
- }
870
- interface VirtualLocation extends VirtualLocationSimple {
871
- }
872
- /**
873
- * Describes a HowTo guide, which contains a series of steps.
874
- */
875
- declare const virtualLocationResolver: SchemaOrgNodeDefinition<VirtualLocation>;
876
-
877
- type EventAttendanceModeTypes = 'OfflineEventAttendanceMode' | 'OnlineEventAttendanceMode' | 'MixedEventAttendanceMode';
878
- type EventStatusTypes = 'EventCancelled' | 'EventMovedOnline' | 'EventPostponed' | 'EventRescheduled' | 'EventScheduled';
879
- interface EventSimple extends Thing {
880
- /**
881
- * Description of the event.
882
- * Describe all details of the event to make it easier for users to understand and attend the event.
883
- */
884
- description?: string;
885
- /**
886
- * The end date and time of the item (in ISO 8601 date format).
887
- */
888
- endDate?: ResolvableDate;
889
- /**
890
- * The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.
891
- */
892
- eventAttendanceMode?: OptionalSchemaOrgPrefix<EventAttendanceModeTypes>;
893
- /**
894
- * An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.
895
- */
896
- eventStatus?: OptionalSchemaOrgPrefix<EventStatusTypes>;
897
- /**
898
- * Repeated ImageObject or URL
899
- *
900
- * URL of an image or logo for the event or tour.
901
- * Including an image helps users understand and engage with your event.
902
- * We recommend that images are 1920px wide (the minimum width is 720px).
903
- */
904
- image?: NodeRelations<ImageObject | string>;
905
- /**
906
- * The location of the event.
907
- * There are different requirements depending on if the event is happening online or at a physical location
908
- */
909
- location?: NodeRelations<Place | VirtualLocation | string>;
910
- /**
911
- * An offer to provide this item—for example, an offer to sell a product,
912
- * rent the DVD of a movie, perform a service, or give away tickets to an event.
913
- * Use businessFunction to indicate the kind of transaction offered, i.e. sell, lease, etc.
914
- * This property can also be used to describe a Demand.
915
- * While this property is listed as expected on a number of common types, it can be used in others.
916
- * In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.
917
- */
918
- offers?: NodeRelations<Offer | string>;
919
- /**
920
- * An organizer of an Event.
921
- */
922
- organizer?: NodeRelation<Identity>;
923
- /**
924
- * A performer at the event—for example, a presenter, musician, musical group or actor.
925
- */
926
- performer?: NodeRelation<Person>;
927
- /**
928
- * Used in conjunction with eventStatus for rescheduled or cancelled events.
929
- * This property contains the previously scheduled start date.
930
- * For rescheduled events, the startDate property should be used for the newly scheduled start date.
931
- * In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.
932
- */
933
- previousStartDate?: ResolvableDate;
934
- /**
935
- * The start date and time of the item (in ISO 8601 date format).
936
- */
937
- startDate?: ResolvableDate;
938
- }
939
- interface Event extends EventSimple {
940
- }
941
- declare const PrimaryEventId = "#event";
942
- /**
943
- * Describes an Article on a WebPage.
944
- */
945
- declare const eventResolver: SchemaOrgNodeDefinition<Event>;
946
-
947
- type ValidLocalBusinessSubTypes = 'AnimalShelter' | 'ArchiveOrganization' | 'AutomotiveBusiness' | 'ChildCare' | 'Dentist' | 'DryCleaningOrLaundry' | 'EmergencyService' | 'EmploymentAgency' | 'EntertainmentBusiness' | 'FinancialService' | 'FoodEstablishment' | 'GovernmentOffice' | 'HealthAndBeautyBusiness' | 'HomeAndConstructionBusiness' | 'InternetCafe' | 'LegalService' | 'Library' | 'LodgingBusiness' | 'MedicalBusiness' | 'ProfessionalService' | 'RadioStation' | 'RealEstateAgent' | 'RecyclingCenter' | 'SelfStorage' | 'ShoppingCenter' | 'SportsActivityLocation' | 'Store' | 'TelevisionStation' | 'TouristInformationCenter' | 'TravelAgency';
948
- interface LocalBusinessSimple extends Organization {
949
- '@type'?: ['Organization', 'LocalBusiness'] | ['Organization', 'LocalBusiness', ValidLocalBusinessSubTypes] | ValidLocalBusinessSubTypes;
950
- /**
951
- * The primary public telephone number of the business.
952
- */
953
- 'telephone'?: string;
954
- /**
955
- * The primary public email address of the business.
956
- */
957
- 'email'?: string;
958
- /**
959
- * The primary public fax number of the business.
960
- */
961
- 'faxNumber'?: string;
962
- /**
963
- * The price range of the business, represented by a string of dollar symbols (e.g., $, $$, or $$$ ).
964
- */
965
- 'priceRange'?: string;
966
- /**
967
- * An array of GeoShape, Place or string definitions.
968
- */
969
- 'areaServed'?: unknown;
970
- /**
971
- * A GeoCoordinates object.
972
- */
973
- 'geo'?: unknown;
974
- /**
975
- * The VAT ID of the business.
976
- */
977
- 'vatID'?: string;
978
- /**
979
- * The tax ID of the business.
980
- */
981
- 'taxID'?: string;
982
- /**
983
- * The currency accepted.
984
- */
985
- 'currenciesAccepted'?: string;
986
- /**
987
- * The operating hours of the business.
988
- */
989
- 'openingHoursSpecification'?: NodeRelations<OpeningHoursSpecification>;
990
- }
991
- interface LocalBusiness extends LocalBusinessSimple {
992
- }
993
- /**
994
- * Describes a business which allows public visitation.
995
- * Typically, used to represent the business 'behind' the website, or on a page about a specific business.
996
- */
997
- declare const localBusinessResolver: SchemaOrgNodeDefinition<LocalBusiness>;
998
-
999
- interface RatingSimple extends Thing {
1000
- '@type'?: 'Rating';
1001
- /**
1002
- * A numerical quality rating for the item, either a number, fraction, or percentage
1003
- * (for example, "4", "60%", or "6 / 10").
1004
- * Google understands the scale for fractions and percentages,
1005
- * since the scale is implied in the fraction itself or the percentage.
1006
- * The default scale for numbers is a 5-point scale, where 1 is the lowest value and 5 is the highest value.
1007
- * If another scale is intended, use bestRating and worstRating.
1008
- */
1009
- 'ratingValue': number | string;
1010
- /**
1011
- * The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.
1012
- */
1013
- 'bestRating'?: number;
1014
- /**
1015
- * The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.
1016
- */
1017
- 'worstRating'?: number;
1018
- }
1019
- interface Rating extends RatingSimple {
1020
- }
1021
- declare const ratingResolver: SchemaOrgNodeDefinition<Rating>;
1022
-
1023
- type ValidFoodEstablishmentSubTypes = 'Bakery' | 'BarOrPub' | 'Brewery' | 'Dentist' | 'CafeOrCoffeeShop' | 'Distillery' | 'FastFoodRestaurant' | 'IceCreamShop' | 'Restaurant' | 'Winery';
1024
- interface FoodEstablishmentSimple extends Omit<LocalBusiness, '@type'> {
1025
- '@type'?: ['Organization', 'LocalBusiness', 'FoodEstablishment'] | ['Organization', 'LocalBusiness', 'FoodEstablishment', ValidFoodEstablishmentSubTypes] | ValidFoodEstablishmentSubTypes;
1026
- /**
1027
- * Indicates whether a FoodEstablishment accepts reservations.
1028
- */
1029
- 'acceptsReservations'?: string | boolean;
1030
- /**
1031
- * URL of the menu.
1032
- */
1033
- 'hasMenu'?: string;
1034
- /**
1035
- * The cuisine of the restaurant.
1036
- */
1037
- 'servesCuisine'?: string;
1038
- /**
1039
- * An official rating for a lodging business or food establishment
1040
- */
1041
- 'starRating'?: NodeRelations<Rating>;
1042
- }
1043
- interface FoodEstablishment extends FoodEstablishmentSimple {
1044
- }
1045
- /**
1046
- * Describes a business which allows public visitation.
1047
- * Typically, used to represent the business 'behind' the website, or on a page about a specific business.
1048
- */
1049
- declare const foodEstablishmentResolver: SchemaOrgNodeDefinition<FoodEstablishment>;
1050
-
1051
- interface HowToDirection extends Thing {
1052
- /**
1053
- * The text of the direction or tip.
1054
- */
1055
- text: string;
1056
- }
1057
- /**
1058
- * Describes a HowTo guide, which contains a series of steps.
1059
- */
1060
- declare const howToStepDirectionResolver: SchemaOrgNodeDefinition<HowToDirection>;
1061
-
1062
- interface HowToStepSimple extends Thing {
1063
- /**
1064
- * A link to a fragment identifier (an 'ID anchor') of the individual step
1065
- * (e.g., https://www.example.com/example-page/#recipe-step-5).
1066
- */
1067
- url?: string;
1068
- /**
1069
- * The instruction string
1070
- * ("e.g., "Bake at 200*C for 40 minutes, or until golden-brown, stirring periodically throughout").
1071
- */
1072
- text: string;
1073
- /**
1074
- * The word or short phrase summarizing the step (for example, "Attach wires to post" or "Dig").
1075
- * Don't use non-descriptive text (for example, "Step 1: [text]") or other form of step number (for example, "1. [text]").
1076
- */
1077
- name?: string;
1078
- /**
1079
- * An image representing the step, referenced by ID.
1080
- */
1081
- image?: NodeRelations<ImageObject | string>;
1082
- /**
1083
- * A video for this step or a clip of the video.
1084
- */
1085
- video?: NodeRelations<VideoObject | string>;
1086
- /**
1087
- * A list of detailed substeps, including directions or tips.
1088
- */
1089
- itemListElement?: NodeRelations<HowToDirection | string>[];
1090
- }
1091
- interface HowToStep extends HowToStepSimple {
1092
- }
1093
- /**
1094
- * Describes a HowTo guide, which contains a series of steps.
1095
- */
1096
- declare const howToStepResolver: SchemaOrgNodeDefinition<HowToStep>;
1097
-
1098
- /**
1099
- * Instructions that explain how to achieve a result by performing a sequence of steps.
1100
- */
1101
- interface HowToSimple extends Thing {
1102
- /**
1103
- * A string describing the guide.
1104
- */
1105
- name: string;
1106
- /**
1107
- * An array of howToStep objects
1108
- */
1109
- step: NodeRelations<HowToStep | string>[];
1110
- /**
1111
- * The total time required to perform all instructions or directions (including time to prepare the supplies),
1112
- * in ISO 8601 duration format.
1113
- */
1114
- totalTime?: string;
1115
- /**
1116
- * Introduction or description content relating to the HowTo guide.
1117
- */
1118
- description?: string;
1119
- /**
1120
- * The language code for the guide; e.g., en-GB.
1121
- */
1122
- inLanguage?: string;
1123
- /**
1124
- * The estimated cost of the supplies consumed when performing instructions.
1125
- */
1126
- estimatedCost?: string | unknown;
1127
- /**
1128
- * Image of the completed how-to.
1129
- */
1130
- image?: NodeRelations<ImageObject | string>;
1131
- /**
1132
- * A supply consumed when performing instructions or a direction.
1133
- */
1134
- supply?: string | unknown;
1135
- /**
1136
- * An object used (but not consumed) when performing instructions or a direction.
1137
- */
1138
- tool?: string | unknown;
1139
- /**
1140
- * A video of the how-to. Follow the list of required and recommended Video properties.
1141
- * Mark steps of the video with hasPart.
1142
- */
1143
- video?: NodeRelations<VideoObject | string>;
1144
- }
1145
- interface HowTo extends HowToSimple {
1146
- }
1147
- declare const HowToId = "#howto";
1148
- /**
1149
- * Describes a HowTo guide, which contains a series of steps.
1150
- */
1151
- declare const howToResolver: SchemaOrgNodeDefinition<HowTo>;
1152
-
1153
- /**
1154
- * A listing that describes a job opening in a certain organization.
1155
- */
1156
- interface JobPostingSimple extends Thing {
1157
- /**
1158
- * The original date that employer posted the job in ISO 8601 format.
1159
- * For example, "2017-01-24" or "2017-01-24T19:33:17+00:00".
1160
- */
1161
- datePosted: ResolvableDate;
1162
- /**
1163
- * The full description of the job in HTML format.
1164
- *
1165
- * The description must be a complete representation of the job, including job responsibilities, qualifications,
1166
- * skills, working hours, education requirements, and experience requirements. The description can't be the same as
1167
- * the title
1168
- */
1169
- description: string;
1170
- /**
1171
- * The organization offering the job position. This must be the name of the company (for example, "Starbucks, Inc"),
1172
- * and not the specific location that is hiring (for example, "Starbucks on Main Street").
1173
- */
1174
- hiringOrganization: NodeRelation<Organization>;
1175
- /**
1176
- * The physical location(s) of the business where the employee will report to work (such as an office or worksite),
1177
- * not the location where the job was posted. Include as many properties as possible. The more properties you provide,
1178
- * the higher quality the job posting is to our users. Note that you must include the addressCountry property.
1179
- */
1180
- jobLocation: NodeRelation<Place>;
1181
- /**
1182
- * The title of the job (not the title of the posting). For example, "Software Engineer" or "Barista"
1183
- */
1184
- title: string;
1185
- /**
1186
- * The actual base salary for the job, as provided by the employer (not an estimate).
1187
- */
1188
- baseSalary?: MonetaryAmount;
1189
- /**
1190
- * Type of employment
1191
- */
1192
- employmentType?: EmploymentType | EmploymentType[];
1193
- /**
1194
- * The date when the job posting will expire in ISO 8601 format. For example, "2017-02-24"
1195
- * or "2017-02-24T19:33:17+00:00".
1196
- */
1197
- validThrough?: ResolvableDate;
1198
- /**
1199
- * A description of the job location (e.g. TELECOMMUTE for telecommute jobs).
1200
- */
1201
- jobLocationType?: 'TELECOMMUTE';
1202
- /**
1203
- * Indicates whether the URL that's associated with this job posting enables direct application for the job.
1204
- */
1205
- directApply?: boolean;
1206
- }
1207
- interface JobPosting extends JobPostingSimple {
1208
- }
1209
- declare const jobPostingResolver: SchemaOrgNodeDefinition<JobPosting>;
1210
- type EmploymentType = 'FULL_TIME' | 'PART_TIME' | 'CONTRACTOR' | 'TEMPORARY' | 'INTERN' | 'VOLUNTEER' | 'PER_DIEM' | 'OTHER';
1211
-
1212
- interface ReviewSimple extends Thing {
1213
- /**
1214
- * A title for the review.
1215
- */
1216
- name?: string;
1217
- /**
1218
- * The author of the review.
1219
- */
1220
- author: NodeRelation<Person | string>;
1221
- /**
1222
- * An answer object, with a text property which contains the answer to the question.
1223
- */
1224
- reviewRating: NodeRelation<Rating | number>;
1225
- /**
1226
- * The language code for the question; e.g., en-GB.
1227
- */
1228
- inLanguage?: string;
1229
- /**
1230
- * The date that the review was published, in ISO 8601 date format.
1231
- */
1232
- datePublished?: ResolvableDate;
1233
- /**
1234
- * The text content of the review.
1235
- */
1236
- reviewBody?: string;
1237
- }
1238
- interface Review extends ReviewSimple {
1239
- }
1240
- declare const reviewResolver: SchemaOrgNodeDefinition<Review>;
1241
-
1242
- interface MovieSimple extends Thing {
1243
- /**
1244
- * An image that represents the movie.
1245
- */
1246
- image: NodeRelations<string | ImageObject>;
1247
- /**
1248
- * The name of the movie.
1249
- */
1250
- name: string;
1251
- /**
1252
- * Annotation for the average review score assigned to the movie.
1253
- */
1254
- aggregateRating?: NodeRelation<AggregateRating>;
1255
- /**
1256
- * The date the movie was released.
1257
- */
1258
- dateCreated?: ResolvableDate;
1259
- /**
1260
- * The director of the movie.
1261
- */
1262
- director?: NodeRelations<Person | string>;
1263
- /**
1264
- * The director of the movie.
1265
- */
1266
- actor?: NodeRelations<Person | string>;
1267
- /**
1268
- * A nested Review of the movie.
1269
- */
1270
- review?: NodeRelations<Review>;
1271
- /**
1272
- * The trailer of a movie or TV/radio series, season, episode, etc.
1273
- */
1274
- trailer?: NodeRelations<string | VideoObject>;
1275
- }
1276
- interface Movie extends MovieSimple {
1277
- }
1278
- declare const movieResolver: SchemaOrgNodeDefinition<Movie>;
1279
-
1280
- /**
1281
- * Any offered product or service.
1282
- * For example: a pair of shoes; a concert ticket; the rental of a car;
1283
- * a haircut; or an episode of a TV show streamed online.
1284
- */
1285
- interface ProductSimple extends Thing {
1286
- /**
1287
- * The name of the product.
1288
- */
1289
- name: string;
1290
- /**
1291
- * A reference-by-ID to one or more imageObject's which represent the product.
1292
- * - Must be at least 696 pixels wide.
1293
- * - Must be of the following formats+file extensions: .jpg, .png, .gif ,or .webp.
1294
- */
1295
- image: NodeRelations<ImageObject | string>;
1296
- /**
1297
- * An array of references-by-ID to one or more Offer or aggregateOffer pieces.
1298
- */
1299
- offers?: NodeRelations<Offer | number>;
1300
- /**
1301
- * A reference to an Organization piece, representing brand associated with the Product.
1302
- */
1303
- brand?: NodeRelation<Organization>;
1304
- /**
1305
- * A reference to an Organization piece which represents the WebSite.
1306
- */
1307
- seller?: NodeRelation<Organization>;
1308
- /**
1309
- * A text description of the product.
1310
- */
1311
- description?: string;
1312
- /**
1313
- * An array of references-by-id to one or more Review pieces.
1314
- */
1315
- review?: NodeRelations<Review>;
1316
- /**
1317
- * A merchant-specific identifier for the Product.
1318
- */
1319
- sku?: string;
1320
- /**
1321
- * An AggregateRating object.
1322
- */
1323
- aggregateRating?: NodeRelation<AggregateRating>;
1324
- /**
1325
- * An AggregateOffer object.
1326
- */
1327
- aggregateOffer?: NodeRelation<AggregateOffer>;
1328
- /**
1329
- * A reference to an Organization piece, representing the brand which produces the Product.
1330
- */
1331
- manufacturer?: NodeRelation<Organization>;
1332
- }
1333
- interface Product extends ProductSimple {
1334
- }
1335
- declare const ProductId = "#product";
1336
- declare const productResolver: SchemaOrgNodeDefinition<Product>;
1337
-
1338
- /**
1339
- * An answer offered to a question; perhaps correct, perhaps opinionated or wrong.
1340
- */
1341
- interface AnswerSimple extends Thing {
1342
- text: string;
1343
- }
1344
- interface Answer extends AnswerSimple {
1345
- }
1346
-
1347
- /**
1348
- * A specific question - e.g. from a user seeking answers online, or collected in a Frequently Asked Questions (FAQ) document.
1349
- */
1350
- interface QuestionSimple extends Thing {
1351
- /**
1352
- * The text content of the question.
1353
- */
1354
- name: string;
1355
- /**
1356
- * An answer object, with a text property which contains the answer to the question.
1357
- */
1358
- acceptedAnswer: NodeRelation<Answer | string>;
1359
- /**
1360
- * The language code for the question; e.g., en-GB.
1361
- */
1362
- inLanguage?: string;
1363
- /**
1364
- * Alias for `name`
1365
- */
1366
- question?: string;
1367
- /**
1368
- * Alias for `acceptedAnswer`
1369
- */
1370
- answer?: string;
1371
- }
1372
- interface Question extends QuestionSimple {
1373
- }
1374
- /**
1375
- * Describes a Question. Most commonly used in FAQPage or QAPage content.
1376
- */
1377
- declare const questionResolver: SchemaOrgNodeDefinition<Question>;
1378
-
1379
- interface RecipeSimple extends Thing {
1380
- /**
1381
- * A string describing the recipe.
1382
- */
1383
- name?: string;
1384
- /**
1385
- * An image representing the completed recipe, referenced by ID.
1386
- */
1387
- image?: NodeRelation<ImageObject | string>;
1388
- /**
1389
- * An array of strings representing each ingredient and quantity (e.g., "3 apples").
1390
- */
1391
- recipeIngredient: string[];
1392
- /**
1393
- * An array of HowToStep objects.
1394
- */
1395
- recipeInstructions: NodeRelations<HowToStep | string>;
1396
- /**
1397
- * A string describing the recipe.
1398
- */
1399
- description?: string;
1400
- /**
1401
- * The cooking time in ISO 8601 format.
1402
- */
1403
- cookTime?: string;
1404
- /**
1405
- * The time required to prepare the recipe.
1406
- */
1407
- prepTime?: string;
1408
- /**
1409
- * A NutritionInformation node, with a calories property which defines a calorie count as a string (e.g., "270 calories").
1410
- */
1411
- nutrition?: NutritionInformation;
1412
- /**
1413
- * The number of servings the recipe creates (not the number of individual items, if these are different), as a string
1414
- * (e.g., "6", rather than 6).
1415
- */
1416
- recipeYield?: string;
1417
- /**
1418
- * An array of strings representing the tools required in the recipe.
1419
- */
1420
- tools?: string[];
1421
- /**
1422
- * An array of keywords describing the recipe.
1423
- */
1424
- keywords?: string[];
1425
- /**
1426
- * A string describing the cuisine type (e.g., "American" or "Spanish").
1427
- */
1428
- recipeCuisine?: string;
1429
- /**
1430
- * The category of the recipe.
1431
- */
1432
- recipeCategory?: 'Appetizer' | 'Breakfast' | 'Brunch' | 'Dessert' | 'Dinner' | 'Drink' | 'Lunch' | 'Main course' | 'Sauce' | 'Side dish' | 'Snack' | 'Starter' | (string & Record<never, never>);
1433
- /**
1434
- * A RestrictedDiet node, with a value (or array of values
1435
- */
1436
- suitableForDiet?: Partial<'DiabeticDiet' | 'GlutenFreeDiet' | 'HalalDiet' | 'HinduDiet' | 'KosherDiet' | 'LowCalorieDiet' | 'LowFatDiet' | 'LowLactoseDiet' | 'LowSaltDiet' | 'VeganDiet' | 'VegetarianDiet'>[];
1437
- /**
1438
- * A reference to a video representing the recipe instructions, by ID.
1439
- */
1440
- video?: NodeRelations<VideoObject | IdReference>;
1441
- /**
1442
- * The language code for the guide; e.g., en-GB.
1443
- */
1444
- inLanguage?: string;
1445
- /**
1446
- * A reference-by-ID to the author of the article.
1447
- */
1448
- author?: NodeRelation<Person>;
1449
- /**
1450
- * The date when the recipe was added, in ISO 8601 format.
1451
- */
1452
- datePublished?: ResolvableDate;
1453
- }
1454
- interface Recipe extends RecipeSimple {
1455
- }
1456
- interface NutritionInformation extends Thing {
1457
- '@type': 'NutritionInformation';
1458
- /**
1459
- * A calorie count as a string (e.g., "270 calories").
1460
- */
1461
- 'calories': string;
1462
- }
1463
- declare const RecipeId = "#recipe";
1464
- declare const recipeResolver: SchemaOrgNodeDefinition<Recipe>;
1465
-
1466
- type ApplicationCategory = 'GameApplication' | 'SocialNetworkingApplication' | 'TravelApplication' | 'ShoppingApplication' | 'SportsApplication' | 'LifestyleApplication' | 'BusinessApplication' | 'DesignApplication' | 'DeveloperApplication' | 'DriverApplication' | 'EducationalApplication' | 'HealthApplication' | 'FinanceApplication' | 'SecurityApplication' | 'BrowserApplication' | 'CommunicationApplication' | 'DesktopEnhancementApplication' | 'EntertainmentApplication' | 'MultimediaApplication' | 'HomeApplication' | 'UtilitiesApplication' | 'ReferenceApplication';
1467
- interface SoftwareAppSimple extends Thing {
1468
- '@type'?: Arrayable<'SoftwareApplication' | 'MobileApplication' | 'VideoGame' | 'WebApplication'>;
1469
- /**
1470
- * The name of the app.
1471
- */
1472
- 'name'?: string;
1473
- /**
1474
- * An offer to sell the app.
1475
- * For developers, offers can indicate the marketplaces that carry the application.
1476
- * For marketplaces, use offers to indicate the price of the app for a specific app instance.
1477
- */
1478
- 'offers': NodeRelations<Offer>;
1479
- /**
1480
- * The average review score of the app.
1481
- */
1482
- 'aggregateRating'?: NodeRelation<AggregateRating>;
1483
- /**
1484
- * A single review of the app.
1485
- */
1486
- 'review'?: NodeRelation<Review>;
1487
- /**
1488
- * The type of app (for example, BusinessApplication or GameApplication). The value must be a supported app type.
1489
- */
1490
- 'applicationCategory'?: ApplicationCategory;
1491
- /**
1492
- * The operating system(s) required to use the app (for example, Windows 7, OSX 10.6, Android 1.6)
1493
- */
1494
- 'operatingSystem'?: string;
1495
- }
1496
- interface SoftwareApp extends SoftwareAppSimple {
1497
- }
1498
- declare const softwareAppResolver: SchemaOrgNodeDefinition<SoftwareApp>;
1499
-
1500
- type Arrayable<T> = T | Array<T>;
1501
- type NodeRelation<T> = T | IdReference;
1502
- type NodeRelations<T> = Arrayable<NodeRelation<T>>;
1503
- type Identity = Person | Organization;
1504
- type ResolvableDate = string | Date;
1505
- type OptionalSchemaOrgPrefix<T extends string> = T | `https://schema.org/${T}`;
1506
- interface ResolvedMeta {
1507
- host: string;
1508
- url: string;
1509
- currency?: string;
1510
- inLanguage?: string;
1511
- image?: string;
1512
- title?: string;
1513
- description?: string;
1514
- datePublished?: string;
1515
- dateModified?: string;
1516
- trailingSlash?: boolean;
1517
- }
1518
- interface MetaInput {
1519
- /**
1520
- * Whether to inject the scripts at the end of the body or in the head.
1521
- */
1522
- tagPosition?: 'body' | 'head';
1523
- trailingSlash?: boolean;
1524
- host: string;
1525
- url?: string;
1526
- path?: string;
1527
- currency?: string;
1528
- image?: string;
1529
- inLanguage?: string;
1530
- title?: string;
1531
- description?: string;
1532
- datePublished?: Date | string;
1533
- dateModified?: Date | string;
1534
- /**
1535
- * @deprecated use tagPosition
1536
- */
1537
- position?: 'body' | 'head';
1538
- /**
1539
- * @deprecated use `language`
1540
- */
1541
- defaultLanguage?: string;
1542
- /**
1543
- * @deprecated use `currency`
1544
- */
1545
- defaultCurrency?: string;
1546
- /**
1547
- * @deprecated use `host`
1548
- */
1549
- canonicalHost?: string;
1550
- /**
1551
- * @deprecated use `url` or `path`
1552
- */
1553
- canonicalUrl?: string;
1554
- /**
1555
- * @deprecated use root keys.
1556
- */
1557
- meta?: MetaInput;
1558
- }
1559
- interface UserConfig extends MetaInput {
1560
- }
1561
- interface SchemaOrgNodeDefinition<ResolvedInput> {
1562
- alias?: string;
1563
- cast?: (node: any, ctx: SchemaOrgGraph) => ResolvedInput;
1564
- idPrefix?: 'host' | 'url' | ['host' | 'url', string];
1565
- inheritMeta?: (keyof ResolvedMeta | {
1566
- key: keyof ResolvedInput;
1567
- meta: keyof ResolvedMeta;
1568
- })[];
1569
- defaults?: Partial<ResolvedInput> | ((ctx: SchemaOrgGraph) => Partial<any>);
1570
- required?: (keyof ResolvedInput)[];
1571
- resolve?: (node: ResolvedInput, ctx: SchemaOrgGraph) => ResolvedInput;
1572
- resolveRootNode?: (node: ResolvedInput, ctx: SchemaOrgGraph) => void;
1573
- }
1574
- interface Thing {
1575
- '@type'?: Arrayable<string>;
1576
- '@id'?: Id;
1577
- /**
1578
- * A reference-by-ID to the WebPage node.
1579
- */
1580
- 'mainEntityOfPage'?: Arrayable<IdReference>;
1581
- /**
1582
- * A reference-by-ID to the WebPage node.
1583
- */
1584
- 'mainEntity'?: Arrayable<IdReference>;
1585
- /**
1586
- * An image object or referenced by ID.
1587
- * - Must be at least 696 pixels wide.
1588
- * - Must be of the following formats+file extensions: .jpg, .png, .gif ,or .webp.
1589
- */
1590
- 'image'?: NodeRelations<ImageObject | string>;
1591
- /**
1592
- * The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.
1593
- */
1594
- 'translationOfWork'?: NodeRelations<Thing>;
1595
- /**
1596
- * A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.
1597
- */
1598
- 'workTranslation'?: NodeRelations<Thing>;
1599
- /**
1600
- * Allow any arbitrary keys
1601
- */
1602
- [key: string]: any;
1603
- }
1604
- interface SchemaOrgNode extends Thing {
1605
- _resolver?: SchemaOrgNodeDefinition<any>;
1606
- _dedupeStrategy?: 'replace' | 'merge';
1607
- }
1608
- type WithResolver<T> = T & {
1609
- _resolver?: SchemaOrgNodeDefinition<T>;
1610
- };
1611
- interface IdReference {
1612
- /** IRI identifying the canonical address of this object. */
1613
- '@id': string;
1614
- }
1615
- type Id = string | `#${string}` | `https://${string}#${string}`;
1616
-
1617
- interface SchemaOrgGraph {
1618
- nodes: SchemaOrgNode[];
1619
- meta: ResolvedMeta;
1620
- push: <T extends Arrayable<Thing>>(node: T) => void;
1621
- resolveGraph: (meta: MetaInput) => SchemaOrgNode[];
1622
- find: <T extends Thing>(id: Id | string) => T | null;
1623
- }
1624
- declare function createSchemaOrgGraph(): SchemaOrgGraph;
1625
-
1626
- interface PluginSchemaOrgOptions {
1627
- minify?: boolean;
1628
- trailingSlash?: boolean;
1629
- }
1630
- declare function UnheadSchemaOrg(options?: PluginSchemaOrgOptions): _unhead_schema.HeadPluginInput;
1631
- /**
1632
- * @deprecated Providing a plugin is no longer required. You can remove this code.
1633
- */
1634
- declare function PluginSchemaOrg(options?: PluginSchemaOrgOptions & {
1635
- resolveMeta?: () => Record<string, any>;
1636
- }): _unhead_schema.HeadPluginInput;
1637
- /**
1638
- * @deprecated Providing a plugin is no longer required. You can remove this code.
1639
- */
1640
- declare function SchemaOrgUnheadPlugin(config: MetaInput, meta: () => Partial<MetaInput> | Promise<Partial<MetaInput>>, options?: PluginSchemaOrgOptions): _unhead_schema.HeadPluginInput;
1641
-
1642
- export { PrimaryBookId as $, type Arrayable as A, type BreadcrumbList as B, type Comment$1 as C, aggregateOfferResolver as D, type Event as E, type FoodEstablishment as F, type AggregateRatingSimple as G, type HowTo as H, type ImageObject as I, type JobPosting as J, aggregateRatingResolver as K, type LocalBusiness as L, type MetaInput as M, type ArticleSimple as N, type Offer as O, type PostalAddress as P, type Question as Q, type ResolvedMeta as R, type SchemaOrgNodeDefinition as S, type Thing as T, PrimaryArticleId as U, type VirtualLocation as V, type WebPage as W, articleResolver as X, type BookSimple as Y, type BookEditionSimple as Z, bookEditionResolver as _, type SchemaOrgGraph as a, videoResolver as a$, bookResolver as a0, type BreadcrumbSimple as a1, PrimaryBreadcrumbId as a2, breadcrumbResolver as a3, type CommentSimple as a4, commentResolver as a5, type CourseSimple as a6, courseResolver as a7, type EventSimple as a8, PrimaryEventId as a9, type OfferSimple as aA, offerResolver as aB, type OpeningHoursSimple as aC, openingHoursResolver as aD, type OrganizationSimple as aE, organizationResolver as aF, type PersonSimple as aG, personResolver as aH, type PostalAddressSimple as aI, addressResolver as aJ, type ProductSimple as aK, ProductId as aL, productResolver as aM, type QuestionSimple as aN, questionResolver as aO, type RatingSimple as aP, type Rating as aQ, ratingResolver as aR, type RecipeSimple as aS, type NutritionInformation as aT, RecipeId as aU, recipeResolver as aV, type ReviewSimple as aW, reviewResolver as aX, type SoftwareAppSimple as aY, softwareAppResolver as aZ, type VideoSimple as a_, eventResolver as aa, type PlaceSimple as ab, placeResolver as ac, type VirtualLocationSimple as ad, virtualLocationResolver as ae, type FoodEstablishmentSimple as af, foodEstablishmentResolver as ag, type HowToSimple as ah, HowToId as ai, howToResolver as aj, type HowToStepSimple as ak, howToStepResolver as al, type HowToDirection as am, howToStepDirectionResolver as an, type ImageSimple as ao, imageResolver as ap, type ItemListSimple as aq, itemListResolver as ar, type JobPostingSimple as as, jobPostingResolver as at, type ListItemSimple as au, listItemResolver as av, type LocalBusinessSimple as aw, localBusinessResolver as ax, type MovieSimple as ay, movieResolver as az, type SchemaOrgNode as b, type WebPageSimple as b0, PrimaryWebPageId as b1, webPageResolver as b2, type ReadActionInput as b3, readActionResolver as b4, type WebSiteSimple as b5, PrimaryWebSiteId as b6, webSiteResolver as b7, type SearchActionInput as b8, searchActionResolver as b9, type PluginSchemaOrgOptions as ba, UnheadSchemaOrg as bb, PluginSchemaOrg as bc, SchemaOrgUnheadPlugin as bd, type NodeRelation as be, type NodeRelations as bf, type Identity as bg, type ResolvableDate as bh, type OptionalSchemaOrgPrefix as bi, type UserConfig as bj, type WithResolver as bk, type IdReference as bl, type Id as bm, type AggregateOffer as c, type AggregateRating as d, type Article as e, type Place as f, type HowToStep as g, type OpeningHoursSpecification as h, type Organization as i, type Person as j, type Product as k, type Recipe as l, type Review as m, type VideoObject as n, type WebSite as o, type Book as p, type Course as q, type ItemList as r, type ListItem as s, type Movie as t, type SearchAction as u, type ReadAction as v, type SoftwareApp as w, type BookEdition as x, createSchemaOrgGraph as y, type AggregateOfferSimple as z };