@masters-ws/react-seo 1.2.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,9 +1,18 @@
1
1
  import {
2
+ JsonLd,
3
+ cleanSchema,
4
+ generateArticleMetadata,
2
5
  generateArticleSchema,
3
6
  generateBookSchema,
4
7
  generateBreadcrumbSchema,
8
+ generateCategoryMetadata,
9
+ generateCollectionPageSchema,
5
10
  generateEventSchema,
6
11
  generateFAQSchema,
12
+ generateHomepageMetadata,
13
+ generateHowToSchema,
14
+ generateItemListSchema,
15
+ generateJobPostingSchema,
7
16
  generateLocalBusinessSchema,
8
17
  generateMovieSchema,
9
18
  generateOrganizationSchema,
@@ -11,12 +20,16 @@ import {
11
20
  generatePaginationLinks,
12
21
  generatePodcastEpisodeSchema,
13
22
  generatePodcastSchema,
23
+ generateProductMetadata,
14
24
  generateProductSchema,
25
+ generateRecipeSchema,
15
26
  generateSoftwareSchema,
16
27
  generateVideoSchema,
28
+ generateWebPageSchema,
17
29
  generateWebSiteSchema,
18
- toNextMetadata
19
- } from "./chunk-QD5UVA5B.mjs";
30
+ toNextMetadata,
31
+ validateSEO
32
+ } from "./chunk-L6YRMB7H.mjs";
20
33
 
21
34
  // src/components/SEOProvider.tsx
22
35
  import { createContext, useContext } from "react";
@@ -355,7 +368,13 @@ var SeoLocalBusiness = ({ business }) => {
355
368
 
356
369
  // src/components/SeoCategory.tsx
357
370
  import { jsx as jsx10 } from "react/jsx-runtime";
358
- var SeoCategory = ({ category, page = 1, totalPage = 1, ...rest }) => {
371
+ var SeoCategory = ({
372
+ category,
373
+ page = 1,
374
+ totalPage = 1,
375
+ pageSuffix = "Page",
376
+ ...rest
377
+ }) => {
359
378
  const hasNext = page < totalPage;
360
379
  const hasPrev = page > 1;
361
380
  const baseUrl = category.url.split("?")[0];
@@ -366,7 +385,7 @@ var SeoCategory = ({ category, page = 1, totalPage = 1, ...rest }) => {
366
385
  SEO,
367
386
  {
368
387
  type: "website",
369
- title: `${category.name}${page > 1 ? ` - \u0635\u0641\u062D\u0629 ${page}` : ""}`,
388
+ title: `${category.name}${page > 1 ? ` - ${pageSuffix} ${page}` : ""}`,
370
389
  description: category.description,
371
390
  image: category.image,
372
391
  canonical,
@@ -386,19 +405,28 @@ var SeoCategory = ({ category, page = 1, totalPage = 1, ...rest }) => {
386
405
 
387
406
  // src/components/SeoTag.tsx
388
407
  import { jsx as jsx11 } from "react/jsx-runtime";
389
- var SeoTag = ({ tag, page = 1, totalPage = 1, ...rest }) => {
408
+ var SeoTag = ({
409
+ tag,
410
+ page = 1,
411
+ totalPage = 1,
412
+ titlePrefix = "Tag",
413
+ pageSuffix = "Page",
414
+ defaultDescription,
415
+ ...rest
416
+ }) => {
390
417
  const hasNext = page < totalPage;
391
418
  const hasPrev = page > 1;
392
419
  const baseUrl = tag.url.split("?")[0];
393
420
  const nextUrl = hasNext ? `${baseUrl}?page=${page + 1}` : void 0;
394
421
  const prevUrl = hasPrev ? page === 2 ? baseUrl : `${baseUrl}?page=${page - 1}` : void 0;
395
422
  const canonical = page === 1 ? baseUrl : `${baseUrl}?page=${page}`;
423
+ const desc = tag.description || (defaultDescription ? defaultDescription.replace("{name}", tag.name) : `All posts tagged with ${tag.name}`);
396
424
  return /* @__PURE__ */ jsx11(
397
425
  SEO,
398
426
  {
399
427
  type: "website",
400
- title: `\u062A\u0627\u063A: ${tag.name}${page > 1 ? ` - \u0635\u0641\u062D\u0629 ${page}` : ""}`,
401
- description: tag.description || `\u0643\u0644 \u0627\u0644\u0645\u0642\u0627\u0644\u0627\u062A \u0627\u0644\u0645\u062A\u0639\u0644\u0642\u0629 \u0628\u0640 ${tag.name}`,
428
+ title: `${titlePrefix}: ${tag.name}${page > 1 ? ` - ${pageSuffix} ${page}` : ""}`,
429
+ description: desc,
402
430
  canonical,
403
431
  next: nextUrl,
404
432
  prev: prevUrl,
@@ -409,7 +437,13 @@ var SeoTag = ({ tag, page = 1, totalPage = 1, ...rest }) => {
409
437
 
410
438
  // src/components/SeoAuthor.tsx
411
439
  import { jsx as jsx12 } from "react/jsx-runtime";
412
- var SeoAuthor = ({ author, page = 1, totalPage = 1, ...rest }) => {
440
+ var SeoAuthor = ({
441
+ author,
442
+ page = 1,
443
+ totalPage = 1,
444
+ pageSuffix = "Page",
445
+ ...rest
446
+ }) => {
413
447
  const hasNext = page < totalPage;
414
448
  const hasPrev = page > 1;
415
449
  const baseUrl = author.url.split("?")[0];
@@ -420,7 +454,7 @@ var SeoAuthor = ({ author, page = 1, totalPage = 1, ...rest }) => {
420
454
  SEO,
421
455
  {
422
456
  type: "profile",
423
- title: `${author.name}${page > 1 ? ` - \u0635\u0641\u062D\u0629 ${page}` : ""}`,
457
+ title: `${author.name}${page > 1 ? ` - ${pageSuffix} ${page}` : ""}`,
424
458
  description: author.description,
425
459
  image: author.image,
426
460
  canonical,
@@ -598,6 +632,7 @@ var SeoJobPosting = ({ job }) => {
598
632
  };
599
633
  export {
600
634
  Breadcrumb,
635
+ JsonLd,
601
636
  SEO,
602
637
  SEOProvider,
603
638
  SeoArticle,
@@ -614,11 +649,19 @@ export {
614
649
  SeoReview,
615
650
  SeoTag,
616
651
  SeoVideo,
652
+ cleanSchema,
653
+ generateArticleMetadata,
617
654
  generateArticleSchema,
618
655
  generateBookSchema,
619
656
  generateBreadcrumbSchema,
657
+ generateCategoryMetadata,
658
+ generateCollectionPageSchema,
620
659
  generateEventSchema,
621
660
  generateFAQSchema,
661
+ generateHomepageMetadata,
662
+ generateHowToSchema,
663
+ generateItemListSchema,
664
+ generateJobPostingSchema,
622
665
  generateLocalBusinessSchema,
623
666
  generateMovieSchema,
624
667
  generateOrganizationSchema,
@@ -626,10 +669,14 @@ export {
626
669
  generatePaginationLinks,
627
670
  generatePodcastEpisodeSchema,
628
671
  generatePodcastSchema,
672
+ generateProductMetadata,
629
673
  generateProductSchema,
674
+ generateRecipeSchema,
630
675
  generateSoftwareSchema,
631
676
  generateVideoSchema,
677
+ generateWebPageSchema,
632
678
  generateWebSiteSchema,
633
679
  toNextMetadata,
634
- useSEOConfig
680
+ useSEOConfig,
681
+ validateSEO
635
682
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masters-ws/react-seo",
3
- "version": "1.2.1",
3
+ "version": "1.4.0",
4
4
  "description": "Professional high-performance SEO package for React/Next.js. Zero-dependency core for Next.js App Router, optional Helmet components for React.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",