@od-oneapp/seo 2026.1.1301

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.
Files changed (56) hide show
  1. package/README.md +586 -0
  2. package/dist/client-next.d.mts +46 -0
  3. package/dist/client-next.d.mts.map +1 -0
  4. package/dist/client-next.mjs +92 -0
  5. package/dist/client-next.mjs.map +1 -0
  6. package/dist/client.d.mts +16 -0
  7. package/dist/client.d.mts.map +1 -0
  8. package/dist/client.mjs +47 -0
  9. package/dist/client.mjs.map +1 -0
  10. package/dist/env.d.mts +31 -0
  11. package/dist/env.d.mts.map +1 -0
  12. package/dist/env.mjs +125 -0
  13. package/dist/env.mjs.map +1 -0
  14. package/dist/index.d.mts +30 -0
  15. package/dist/index.d.mts.map +1 -0
  16. package/dist/index.mjs +129 -0
  17. package/dist/index.mjs.map +1 -0
  18. package/dist/server-next.d.mts +230 -0
  19. package/dist/server-next.d.mts.map +1 -0
  20. package/dist/server-next.mjs +541 -0
  21. package/dist/server-next.mjs.map +1 -0
  22. package/dist/server.d.mts +3 -0
  23. package/dist/server.mjs +3 -0
  24. package/dist/structured-data-builders-ByJ4KCEf.mjs +176 -0
  25. package/dist/structured-data-builders-ByJ4KCEf.mjs.map +1 -0
  26. package/dist/structured-data-builders-CAgdYvmz.d.mts +74 -0
  27. package/dist/structured-data-builders-CAgdYvmz.d.mts.map +1 -0
  28. package/dist/structured-data.d.mts +16 -0
  29. package/dist/structured-data.d.mts.map +1 -0
  30. package/dist/structured-data.mjs +62 -0
  31. package/dist/structured-data.mjs.map +1 -0
  32. package/dist/validation.d.mts +20 -0
  33. package/dist/validation.d.mts.map +1 -0
  34. package/dist/validation.mjs +233 -0
  35. package/dist/validation.mjs.map +1 -0
  36. package/package.json +110 -0
  37. package/src/client-next.tsx +134 -0
  38. package/src/client.tsx +96 -0
  39. package/src/components/json-ld.tsx +74 -0
  40. package/src/components/structured-data.tsx +91 -0
  41. package/src/examples/app-router-sitemap.ts +109 -0
  42. package/src/examples/metadata-patterns.ts +528 -0
  43. package/src/examples/next-sitemap-config.ts +92 -0
  44. package/src/examples/nextjs-15-features.tsx +383 -0
  45. package/src/examples/nextjs-15-integration.ts +241 -0
  46. package/src/index.ts +87 -0
  47. package/src/server-next.ts +958 -0
  48. package/src/server.ts +27 -0
  49. package/src/types/metadata.ts +85 -0
  50. package/src/types/seo.ts +60 -0
  51. package/src/types/structured-data.ts +94 -0
  52. package/src/utils/i18n-enhanced.ts +148 -0
  53. package/src/utils/metadata-enhanced.ts +238 -0
  54. package/src/utils/metadata.ts +169 -0
  55. package/src/utils/structured-data-builders.ts +322 -0
  56. package/src/utils/validation.ts +284 -0
@@ -0,0 +1,230 @@
1
+ import { a as structuredData, i as createStructuredData, t as StructuredDataType } from "./structured-data-builders-CAgdYvmz.mjs";
2
+ import "./server.mjs";
3
+ import { Thing, WithContext } from "schema-dts";
4
+ import { Metadata, Metadata as Metadata$1, MetadataRoute, Viewport, Viewport as Viewport$1 } from "next";
5
+ import "server-only";
6
+
7
+ //#region src/server-next.d.ts
8
+ declare module 'next' {
9
+ interface OpenGraphMetadata {
10
+ type?: 'website' | 'article' | 'profile' | 'book' | 'music.song' | 'music.album' | 'video.movie' | 'video.episode' | 'video.tv_show' | 'video.other';
11
+ publishedTime?: string;
12
+ modifiedTime?: string;
13
+ expirationTime?: string;
14
+ authors?: string | string[];
15
+ section?: string;
16
+ tags?: string | string[];
17
+ username?: string;
18
+ firstName?: string;
19
+ lastName?: string;
20
+ article?: {
21
+ authors?: string[];
22
+ expirationTime?: string;
23
+ modifiedTime?: string;
24
+ publishedTime?: string;
25
+ section?: string;
26
+ tags?: string[];
27
+ };
28
+ }
29
+ interface TwitterMetadata {
30
+ card?: 'summary' | 'summary_large_image' | 'app' | 'player';
31
+ }
32
+ }
33
+ declare const viewport: Viewport$1;
34
+ type MetadataGenerator = Omit<Metadata$1, 'description' | 'title'> & {
35
+ applicationName?: string;
36
+ author?: Metadata$1['authors'];
37
+ description: string;
38
+ image?: string;
39
+ publisher?: string;
40
+ title: string;
41
+ twitterHandle?: string;
42
+ };
43
+ declare const createMetadata: ({
44
+ applicationName,
45
+ author,
46
+ description,
47
+ image,
48
+ publisher,
49
+ title,
50
+ twitterHandle,
51
+ ...properties
52
+ }: MetadataGenerator) => Metadata$1;
53
+ interface MetadataGeneratorOptions {
54
+ alternates?: {
55
+ canonical?: string;
56
+ languages?: Record<string, string>;
57
+ };
58
+ article?: {
59
+ authors?: string[];
60
+ expirationTime?: string;
61
+ modifiedTime?: string;
62
+ publishedTime?: string;
63
+ section?: string;
64
+ tags?: string[];
65
+ };
66
+ canonical?: string;
67
+ description: string;
68
+ image?: string | {
69
+ alt?: string;
70
+ height?: number;
71
+ url: string;
72
+ width?: number;
73
+ };
74
+ keywords?: string[];
75
+ noFollow?: boolean;
76
+ noIndex?: boolean;
77
+ title: string;
78
+ }
79
+ interface SEOConfig {
80
+ applicationName: string;
81
+ author: {
82
+ name: string;
83
+ url: string;
84
+ };
85
+ keywords?: string[];
86
+ locale?: string;
87
+ publisher: string;
88
+ themeColor?: string;
89
+ twitterHandle: string;
90
+ }
91
+ declare class SEOManager {
92
+ private config;
93
+ constructor(config: SEOConfig);
94
+ createErrorMetadata(statusCode: number): Metadata$1;
95
+ createMetadata(options: MetadataGeneratorOptions): Metadata$1;
96
+ }
97
+ declare const metadataTemplates: {
98
+ product: (product: {
99
+ name: string;
100
+ description: string;
101
+ price: number;
102
+ currency: string;
103
+ image: string;
104
+ availability: "InStock" | "OutOfStock";
105
+ brand?: string;
106
+ }) => Metadata$1;
107
+ article: (article: {
108
+ title: string;
109
+ description: string;
110
+ author: string;
111
+ publishedTime: Date;
112
+ modifiedTime?: Date;
113
+ image: string;
114
+ tags?: string[];
115
+ section?: string;
116
+ }) => Metadata$1;
117
+ profile: (profile: {
118
+ name: string;
119
+ bio: string;
120
+ image: string;
121
+ username?: string;
122
+ firstName?: string;
123
+ lastName?: string;
124
+ }) => Metadata$1;
125
+ };
126
+ declare const viewportPresets: {
127
+ default: Viewport$1;
128
+ mobileOptimized: Viewport$1;
129
+ tablet: Viewport$1;
130
+ desktop: Viewport$1;
131
+ };
132
+ declare function generateViewport(userAgent?: string): Viewport$1;
133
+ declare function generateI18nSitemap(routes: DynamicSitemapRoute[], locales: string[], defaultLocale?: string): MetadataRoute.Sitemap;
134
+ declare function generatePreviewMetadata(isDraft: boolean, metadata: Metadata$1, options?: {
135
+ draftIndicator?: string;
136
+ noIndexDrafts?: boolean;
137
+ }): Metadata$1;
138
+ declare function generateMetadataAsync({
139
+ params,
140
+ searchParams,
141
+ generator
142
+ }: {
143
+ params: Promise<Record<string, string>>;
144
+ searchParams: Promise<Record<string, string | string[] | undefined>>;
145
+ generator: (params: Record<string, string>, searchParams: Record<string, string | string[] | undefined>) => Promise<Metadata$1>;
146
+ }): Promise<Metadata$1>;
147
+ declare const generateMetadataEdge: (request: {
148
+ url: string;
149
+ }, options: {
150
+ title: string;
151
+ description: string;
152
+ image?: string;
153
+ siteName?: string;
154
+ }) => Promise<Metadata$1>;
155
+ interface NextSitemapConfig {
156
+ siteUrl: string;
157
+ generateRobotsTxt?: boolean;
158
+ robotsTxtOptions?: {
159
+ policies?: Array<{
160
+ userAgent: string;
161
+ allow?: string | string[];
162
+ disallow?: string | string[];
163
+ crawlDelay?: number;
164
+ }>;
165
+ additionalSitemaps?: string[];
166
+ };
167
+ exclude?: string[];
168
+ generateIndexSitemap?: boolean;
169
+ sitemapSize?: number;
170
+ changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
171
+ priority?: number;
172
+ transform?: (config: NextSitemapConfig, url: string) => {
173
+ loc: string;
174
+ lastmod?: string;
175
+ changefreq?: string;
176
+ priority?: number;
177
+ };
178
+ additionalPaths?: (config: NextSitemapConfig) => Promise<Array<{
179
+ loc: string;
180
+ lastmod?: string;
181
+ changefreq?: string;
182
+ priority?: number;
183
+ }>>;
184
+ }
185
+ declare function createSitemapConfig(config: NextSitemapConfig): NextSitemapConfig;
186
+ interface DynamicSitemapRoute {
187
+ url: string;
188
+ lastModified?: Date;
189
+ changeFrequency?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
190
+ priority?: number;
191
+ images?: Array<{
192
+ url: string;
193
+ title?: string;
194
+ alt?: string;
195
+ caption?: string;
196
+ geo_location?: string;
197
+ license?: string;
198
+ }>;
199
+ videos?: Array<{
200
+ thumbnail_url: string;
201
+ title: string;
202
+ description: string;
203
+ content_url?: string;
204
+ player_url?: string;
205
+ duration?: number;
206
+ expiration_date?: string;
207
+ rating?: number;
208
+ view_count?: number;
209
+ }>;
210
+ }
211
+ declare function generateSitemapObject(routes: DynamicSitemapRoute[]): MetadataRoute.Sitemap;
212
+ declare function convertToNextSitemap(nextjsSitemap: Array<{
213
+ url: string;
214
+ lastModified?: Date;
215
+ changeFrequency?: string;
216
+ priority?: number;
217
+ }>): Array<{
218
+ loc: string;
219
+ lastmod?: string;
220
+ changefreq?: string;
221
+ priority?: number;
222
+ }>;
223
+ interface NextSitemapIntegrationConfig extends NextSitemapConfig {
224
+ appDirSitemaps?: string[];
225
+ mergeAppDirRoutes?: boolean;
226
+ }
227
+ declare function createIntegratedSitemapConfig(config: NextSitemapIntegrationConfig): NextSitemapConfig;
228
+ //#endregion
229
+ export { DynamicSitemapRoute, type Metadata, NextSitemapConfig, NextSitemapIntegrationConfig, SEOManager, type StructuredDataType, type Thing, type Viewport, type WithContext, convertToNextSitemap, createIntegratedSitemapConfig, createMetadata, createSitemapConfig, createStructuredData, generateI18nSitemap, generateMetadataAsync, generateMetadataEdge, generatePreviewMetadata, generateSitemapObject, generateViewport, metadataTemplates, structuredData, viewport, viewportPresets };
230
+ //# sourceMappingURL=server-next.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-next.d.mts","names":[],"sources":["../src/server-next.ts"],"mappings":"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"}