@puzzle-ui/seo 0.0.0-stage → 0.5.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.
Files changed (220) hide show
  1. package/README.md +755 -2
  2. package/dist/LICENSE +21 -0
  3. package/dist/context/config.cjs +82 -0
  4. package/dist/context/config.cjs.map +1 -0
  5. package/dist/context/config.d.cts +6 -0
  6. package/dist/context/config.d.ts +6 -0
  7. package/dist/context/config.js +80 -0
  8. package/dist/context/config.js.map +1 -0
  9. package/dist/context/index.cjs +6 -0
  10. package/dist/context/index.d.cts +4 -0
  11. package/dist/context/index.d.ts +4 -0
  12. package/dist/context/index.js +3 -0
  13. package/dist/context/types.d.cts +46 -0
  14. package/dist/context/types.d.ts +46 -0
  15. package/dist/core/graph.cjs +464 -0
  16. package/dist/core/graph.cjs.map +1 -0
  17. package/dist/core/graph.d.cts +62 -0
  18. package/dist/core/graph.d.ts +62 -0
  19. package/dist/core/graph.js +456 -0
  20. package/dist/core/graph.js.map +1 -0
  21. package/dist/core/index.cjs +11 -0
  22. package/dist/core/index.d.cts +3 -0
  23. package/dist/core/index.d.ts +3 -0
  24. package/dist/core/index.js +1 -0
  25. package/dist/core/types.d.cts +92 -0
  26. package/dist/core/types.d.ts +92 -0
  27. package/dist/index.cjs +96 -0
  28. package/dist/index.cjs.map +1 -0
  29. package/dist/index.d.cts +48 -0
  30. package/dist/index.d.ts +38 -0
  31. package/dist/index.js +19 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/metadata/index.cjs +4 -0
  34. package/dist/metadata/index.d.cts +3 -0
  35. package/dist/metadata/index.d.ts +3 -0
  36. package/dist/metadata/index.js +1 -0
  37. package/dist/metadata/resolve.cjs +122 -0
  38. package/dist/metadata/resolve.cjs.map +1 -0
  39. package/dist/metadata/resolve.d.cts +4 -0
  40. package/dist/metadata/resolve.d.ts +4 -0
  41. package/dist/metadata/resolve.js +121 -0
  42. package/dist/metadata/resolve.js.map +1 -0
  43. package/dist/metadata/types.d.cts +82 -0
  44. package/dist/metadata/types.d.ts +82 -0
  45. package/dist/next/index.cjs +13 -0
  46. package/dist/next/index.cjs.map +1 -0
  47. package/dist/next/index.d.cts +15 -0
  48. package/dist/next/index.d.ts +14 -0
  49. package/dist/next/index.js +12 -0
  50. package/dist/next/index.js.map +1 -0
  51. package/dist/react/context.cjs +30 -0
  52. package/dist/react/context.cjs.map +1 -0
  53. package/dist/react/context.d.cts +14 -0
  54. package/dist/react/context.d.ts +14 -0
  55. package/dist/react/context.js +27 -0
  56. package/dist/react/context.js.map +1 -0
  57. package/dist/react/index.cjs +48 -0
  58. package/dist/react/index.d.cts +6 -0
  59. package/dist/react/index.d.ts +6 -0
  60. package/dist/react/index.js +5 -0
  61. package/dist/react/metadata.cjs +100 -0
  62. package/dist/react/metadata.cjs.map +1 -0
  63. package/dist/react/metadata.d.cts +18 -0
  64. package/dist/react/metadata.d.ts +18 -0
  65. package/dist/react/metadata.js +99 -0
  66. package/dist/react/metadata.js.map +1 -0
  67. package/dist/react/provider.cjs +42 -0
  68. package/dist/react/provider.cjs.map +1 -0
  69. package/dist/react/provider.d.cts +3 -0
  70. package/dist/react/provider.d.ts +3 -0
  71. package/dist/react/provider.js +42 -0
  72. package/dist/react/provider.js.map +1 -0
  73. package/dist/react/schema-components.cjs +294 -0
  74. package/dist/react/schema-components.cjs.map +1 -0
  75. package/dist/react/schema-components.d.cts +84 -0
  76. package/dist/react/schema-components.d.ts +80 -0
  77. package/dist/react/schema-components.js +254 -0
  78. package/dist/react/schema-components.js.map +1 -0
  79. package/dist/react/types.d.cts +81 -0
  80. package/dist/react/types.d.ts +80 -0
  81. package/dist/react-router/index.cjs +13 -0
  82. package/dist/react-router/index.cjs.map +1 -0
  83. package/dist/react-router/index.d.cts +21 -0
  84. package/dist/react-router/index.d.ts +20 -0
  85. package/dist/react-router/index.js +12 -0
  86. package/dist/react-router/index.js.map +1 -0
  87. package/dist/robots/generate.cjs +88 -0
  88. package/dist/robots/generate.cjs.map +1 -0
  89. package/dist/robots/generate.d.cts +4 -0
  90. package/dist/robots/generate.d.ts +4 -0
  91. package/dist/robots/generate.js +86 -0
  92. package/dist/robots/generate.js.map +1 -0
  93. package/dist/robots/index.cjs +5 -0
  94. package/dist/robots/index.d.cts +3 -0
  95. package/dist/robots/index.d.ts +3 -0
  96. package/dist/robots/index.js +1 -0
  97. package/dist/robots/types.d.cts +27 -0
  98. package/dist/robots/types.d.ts +27 -0
  99. package/dist/schema/create-registry.cjs +12 -0
  100. package/dist/schema/create-registry.cjs.map +1 -0
  101. package/dist/schema/create-registry.d.cts +2 -0
  102. package/dist/schema/create-registry.d.ts +2 -0
  103. package/dist/schema/create-registry.js +12 -0
  104. package/dist/schema/create-registry.js.map +1 -0
  105. package/dist/schema/generated/index.d.cts +2 -0
  106. package/dist/schema/generated/schemaorg.cjs +36386 -0
  107. package/dist/schema/generated/schemaorg.cjs.map +1 -0
  108. package/dist/schema/generated/schemaorg.d.cts +945 -0
  109. package/dist/schema/generated/schemaorg.d.ts +945 -0
  110. package/dist/schema/generated/schemaorg.js +36384 -0
  111. package/dist/schema/generated/schemaorg.js.map +1 -0
  112. package/dist/schema/index.cjs +11 -0
  113. package/dist/schema/index.d.cts +7 -0
  114. package/dist/schema/index.d.ts +6 -0
  115. package/dist/schema/index.js +5 -0
  116. package/dist/schema/registry.cjs +194 -0
  117. package/dist/schema/registry.cjs.map +1 -0
  118. package/dist/schema/registry.d.cts +2 -0
  119. package/dist/schema/registry.d.ts +2 -0
  120. package/dist/schema/registry.js +194 -0
  121. package/dist/schema/registry.js.map +1 -0
  122. package/dist/schema/types.d.cts +79 -0
  123. package/dist/schema/types.d.ts +79 -0
  124. package/dist/schema/validate.cjs +131 -0
  125. package/dist/schema/validate.cjs.map +1 -0
  126. package/dist/schema/validate.d.cts +16 -0
  127. package/dist/schema/validate.d.ts +16 -0
  128. package/dist/schema/validate.js +131 -0
  129. package/dist/schema/validate.js.map +1 -0
  130. package/dist/server/handlers.cjs +96 -0
  131. package/dist/server/handlers.cjs.map +1 -0
  132. package/dist/server/handlers.d.cts +3 -0
  133. package/dist/server/handlers.d.ts +3 -0
  134. package/dist/server/handlers.js +95 -0
  135. package/dist/server/handlers.js.map +1 -0
  136. package/dist/server/index.cjs +6 -0
  137. package/dist/server/index.d.cts +4 -0
  138. package/dist/server/index.d.ts +4 -0
  139. package/dist/server/index.js +3 -0
  140. package/dist/server/routes.cjs +17 -0
  141. package/dist/server/routes.cjs.map +1 -0
  142. package/dist/server/routes.d.cts +2 -0
  143. package/dist/server/routes.d.ts +2 -0
  144. package/dist/server/routes.js +17 -0
  145. package/dist/server/routes.js.map +1 -0
  146. package/dist/server/types.d.cts +61 -0
  147. package/dist/server/types.d.ts +61 -0
  148. package/dist/sitemap/generate.cjs +147 -0
  149. package/dist/sitemap/generate.cjs.map +1 -0
  150. package/dist/sitemap/generate.d.cts +3 -0
  151. package/dist/sitemap/generate.d.ts +3 -0
  152. package/dist/sitemap/generate.js +146 -0
  153. package/dist/sitemap/generate.js.map +1 -0
  154. package/dist/sitemap/index.cjs +11 -0
  155. package/dist/sitemap/index.d.cts +4 -0
  156. package/dist/sitemap/index.d.ts +4 -0
  157. package/dist/sitemap/index.js +3 -0
  158. package/dist/sitemap/types.d.cts +82 -0
  159. package/dist/sitemap/types.d.ts +82 -0
  160. package/dist/sitemap/xml.cjs +215 -0
  161. package/dist/sitemap/xml.cjs.map +1 -0
  162. package/dist/sitemap/xml.d.cts +16 -0
  163. package/dist/sitemap/xml.d.ts +16 -0
  164. package/dist/sitemap/xml.js +210 -0
  165. package/dist/sitemap/xml.js.map +1 -0
  166. package/dist/tanstack/index.cjs +13 -0
  167. package/dist/tanstack/index.cjs.map +1 -0
  168. package/dist/tanstack/index.d.cts +19 -0
  169. package/dist/tanstack/index.d.ts +18 -0
  170. package/dist/tanstack/index.js +12 -0
  171. package/dist/tanstack/index.js.map +1 -0
  172. package/dist/testing/diagnostics.cjs +27 -0
  173. package/dist/testing/diagnostics.cjs.map +1 -0
  174. package/dist/testing/diagnostics.d.cts +3 -0
  175. package/dist/testing/diagnostics.d.ts +3 -0
  176. package/dist/testing/diagnostics.js +27 -0
  177. package/dist/testing/diagnostics.js.map +1 -0
  178. package/dist/testing/fixture.cjs +80 -0
  179. package/dist/testing/fixture.cjs.map +1 -0
  180. package/dist/testing/fixture.d.cts +4 -0
  181. package/dist/testing/fixture.d.ts +4 -0
  182. package/dist/testing/fixture.js +78 -0
  183. package/dist/testing/fixture.js.map +1 -0
  184. package/dist/testing/index.cjs +9 -0
  185. package/dist/testing/index.d.cts +5 -0
  186. package/dist/testing/index.d.ts +5 -0
  187. package/dist/testing/index.js +4 -0
  188. package/dist/testing/inspect.cjs +63 -0
  189. package/dist/testing/inspect.cjs.map +1 -0
  190. package/dist/testing/inspect.d.cts +5 -0
  191. package/dist/testing/inspect.d.ts +5 -0
  192. package/dist/testing/inspect.js +63 -0
  193. package/dist/testing/inspect.js.map +1 -0
  194. package/dist/testing/types.d.cts +40 -0
  195. package/dist/testing/types.d.ts +40 -0
  196. package/dist/urls/index.cjs +8 -0
  197. package/dist/urls/index.d.cts +3 -0
  198. package/dist/urls/index.d.ts +3 -0
  199. package/dist/urls/index.js +1 -0
  200. package/dist/urls/normalize.cjs +65 -0
  201. package/dist/urls/normalize.cjs.map +1 -0
  202. package/dist/urls/normalize.d.cts +14 -0
  203. package/dist/urls/normalize.d.ts +14 -0
  204. package/dist/urls/normalize.js +60 -0
  205. package/dist/urls/normalize.js.map +1 -0
  206. package/dist/urls/types.d.cts +22 -0
  207. package/dist/urls/types.d.ts +22 -0
  208. package/dist/validation/index.cjs +5 -0
  209. package/dist/validation/index.d.cts +3 -0
  210. package/dist/validation/index.d.ts +3 -0
  211. package/dist/validation/index.js +1 -0
  212. package/dist/validation/types.d.cts +75 -0
  213. package/dist/validation/types.d.ts +75 -0
  214. package/dist/validation/validate.cjs +452 -0
  215. package/dist/validation/validate.cjs.map +1 -0
  216. package/dist/validation/validate.d.cts +7 -0
  217. package/dist/validation/validate.d.ts +6 -0
  218. package/dist/validation/validate.js +450 -0
  219. package/dist/validation/validate.js.map +1 -0
  220. package/package.json +203 -4
@@ -0,0 +1,86 @@
1
+ import { normalizeSeoUrl } from "../urls/normalize.js";
2
+ // src/robots/generate.ts
3
+ const validateRule = (rule, index) => {
4
+ const issues = [];
5
+ const agents = Array.isArray(rule.userAgent) ? rule.userAgent : [rule.userAgent];
6
+ if (agents.length === 0 || agents.some((agent) => !agent.trim() || /[\r\n]/.test(agent))) issues.push({
7
+ code: "INVALID_USER_AGENT",
8
+ message: "Every robots rule requires a non-empty user-agent without newlines.",
9
+ path: `rules.${index}.userAgent`
10
+ });
11
+ if (rule.crawlDelay !== void 0 && (!Number.isFinite(rule.crawlDelay) || rule.crawlDelay < 0)) issues.push({
12
+ code: "INVALID_CRAWL_DELAY",
13
+ message: "Crawl-delay must be a non-negative number.",
14
+ path: `rules.${index}.crawlDelay`
15
+ });
16
+ for (const [name, paths] of [["allow", rule.allow], ["disallow", rule.disallow]]) {
17
+ if (!paths) continue;
18
+ for (const path of paths) if (!path.startsWith("/") || /[\r\n]/.test(path)) issues.push({
19
+ code: "INVALID_ROBOTS_PATH",
20
+ message: `${name} paths must start with / and contain no newlines.`,
21
+ path: `rules.${index}.${name}`
22
+ });
23
+ }
24
+ return issues;
25
+ };
26
+ const validateRobotsOptions = (options) => {
27
+ const issues = [];
28
+ if (!options.rules.length) issues.push({
29
+ code: "MISSING_RULES",
30
+ message: "At least one robots rule is required."
31
+ });
32
+ options.rules.forEach((rule, index) => {
33
+ issues.push(...validateRule(rule, index));
34
+ });
35
+ for (const sitemap of Array.isArray(options.sitemap) ? options.sitemap : options.sitemap ? [options.sitemap] : []) try {
36
+ normalizeSeoUrl(sitemap);
37
+ } catch {
38
+ issues.push({
39
+ code: "INVALID_SITEMAP_URL",
40
+ message: `Invalid sitemap URL: ${sitemap}.`
41
+ });
42
+ }
43
+ if (options.host && /[\r\n]/.test(options.host)) issues.push({
44
+ code: "INVALID_HOST",
45
+ message: "Robots host must not contain newlines."
46
+ });
47
+ return issues;
48
+ };
49
+ const serializeRule = (rule) => {
50
+ const lines = (Array.isArray(rule.userAgent) ? rule.userAgent : [rule.userAgent]).map((agent) => `User-agent: ${agent.trim()}`);
51
+ for (const path of rule.allow ?? []) lines.push(`Allow: ${path}`);
52
+ for (const path of rule.disallow ?? []) lines.push(`Disallow: ${path}`);
53
+ if (rule.crawlDelay !== void 0) lines.push(`Crawl-delay: ${rule.crawlDelay}`);
54
+ return lines;
55
+ };
56
+ const serializeRobotsTxt = (options) => {
57
+ const issues = validateRobotsOptions(options);
58
+ if (issues.length > 0) throw new Error(`Invalid robots configuration: ${issues.map((issue) => issue.message).join(" ")}`);
59
+ const groups = options.rules.map(serializeRule);
60
+ const lines = [];
61
+ groups.forEach((group, index) => {
62
+ if (index > 0) lines.push("");
63
+ lines.push(...group);
64
+ });
65
+ const sitemaps = [...new Set((Array.isArray(options.sitemap) ? options.sitemap : options.sitemap ? [options.sitemap] : []).map((url) => normalizeSeoUrl(url)))].sort();
66
+ if (sitemaps.length > 0) {
67
+ lines.push("");
68
+ for (const sitemap of sitemaps) lines.push(`Sitemap: ${sitemap}`);
69
+ }
70
+ if (options.host) lines.push(`Host: ${options.host}`);
71
+ return `${lines.join("\n")}\n`;
72
+ };
73
+ const generateRobotsTxt = (options) => {
74
+ const issues = validateRobotsOptions(options);
75
+ if (issues.length > 0) return {
76
+ content: "",
77
+ issues
78
+ };
79
+ return {
80
+ content: serializeRobotsTxt(options),
81
+ issues: []
82
+ };
83
+ };
84
+ export { generateRobotsTxt, serializeRobotsTxt, validateRobotsOptions };
85
+
86
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","names":[],"sources":["../../src/robots/generate.ts"],"sourcesContent":["import { normalizeSeoUrl } from \"../urls\";\n\nimport type {\n RobotsOptions,\n RobotsRule,\n RobotsResult,\n RobotsValidationIssue,\n} from \"./types\";\n\nconst validateRule = (\n rule: RobotsRule,\n index: number,\n): RobotsValidationIssue[] => {\n const issues: RobotsValidationIssue[] = [];\n\n const agents = Array.isArray(rule.userAgent)\n ? rule.userAgent\n : [rule.userAgent];\n\n if (\n agents.length === 0 ||\n agents.some((agent) => !agent.trim() || /[\\r\\n]/.test(agent))\n ) {\n issues.push({\n code: \"INVALID_USER_AGENT\",\n message:\n \"Every robots rule requires a non-empty user-agent without newlines.\",\n path: `rules.${index}.userAgent`,\n });\n }\n\n if (\n rule.crawlDelay !== undefined &&\n (!Number.isFinite(rule.crawlDelay) || rule.crawlDelay < 0)\n ) {\n issues.push({\n code: \"INVALID_CRAWL_DELAY\",\n message: \"Crawl-delay must be a non-negative number.\",\n path: `rules.${index}.crawlDelay`,\n });\n }\n\n for (const [name, paths] of [\n [\"allow\", rule.allow],\n [\"disallow\", rule.disallow],\n ] as const) {\n if (!paths) {\n continue;\n }\n\n for (const path of paths) {\n if (!path.startsWith(\"/\") || /[\\r\\n]/.test(path)) {\n issues.push({\n code: \"INVALID_ROBOTS_PATH\",\n message: `${name} paths must start with / and contain no newlines.`,\n path: `rules.${index}.${name}`,\n });\n }\n }\n }\n\n return issues;\n};\n\nexport const validateRobotsOptions = (\n options: RobotsOptions,\n): RobotsValidationIssue[] => {\n const issues: RobotsValidationIssue[] = [];\n\n if (!options.rules.length) {\n issues.push({\n code: \"MISSING_RULES\",\n message: \"At least one robots rule is required.\",\n });\n }\n\n options.rules.forEach((rule, index) => {\n issues.push(...validateRule(rule, index));\n });\n\n for (const sitemap of Array.isArray(options.sitemap)\n ? options.sitemap\n : options.sitemap\n ? [options.sitemap]\n : []) {\n try {\n normalizeSeoUrl(sitemap);\n } catch {\n issues.push({\n code: \"INVALID_SITEMAP_URL\",\n message: `Invalid sitemap URL: ${sitemap}.`,\n });\n }\n }\n\n if (options.host && /[\\r\\n]/.test(options.host)) {\n issues.push({\n code: \"INVALID_HOST\",\n message: \"Robots host must not contain newlines.\",\n });\n }\n\n return issues;\n};\n\nconst serializeRule = (rule: RobotsRule): string[] => {\n const agents = Array.isArray(rule.userAgent)\n ? rule.userAgent\n : [rule.userAgent];\n\n const lines = agents.map((agent) => `User-agent: ${agent.trim()}`);\n\n for (const path of rule.allow ?? []) {\n lines.push(`Allow: ${path}`);\n }\n\n for (const path of rule.disallow ?? []) {\n lines.push(`Disallow: ${path}`);\n }\n\n if (rule.crawlDelay !== undefined) {\n lines.push(`Crawl-delay: ${rule.crawlDelay}`);\n }\n\n return lines;\n};\n\nexport const serializeRobotsTxt = (options: RobotsOptions): string => {\n const issues = validateRobotsOptions(options);\n\n if (issues.length > 0) {\n throw new Error(\n `Invalid robots configuration: ${issues\n .map((issue) => issue.message)\n .join(\" \")}`,\n );\n }\n\n const groups = options.rules.map(serializeRule);\n\n const lines: string[] = [];\n\n groups.forEach((group, index) => {\n if (index > 0) {\n lines.push(\"\");\n }\n\n lines.push(...group);\n });\n\n const sitemaps = [\n ...new Set(\n (Array.isArray(options.sitemap)\n ? options.sitemap\n : options.sitemap\n ? [options.sitemap]\n : []\n ).map((url) => normalizeSeoUrl(url)),\n ),\n ].sort();\n\n if (sitemaps.length > 0) {\n lines.push(\"\");\n\n for (const sitemap of sitemaps) {\n lines.push(`Sitemap: ${sitemap}`);\n }\n }\n\n if (options.host) {\n lines.push(`Host: ${options.host}`);\n }\n\n return `${lines.join(\"\\n\")}\\n`;\n};\n\nexport const generateRobotsTxt = (options: RobotsOptions): RobotsResult => {\n const issues = validateRobotsOptions(options);\n\n if (issues.length > 0) {\n return {\n content: \"\",\n issues,\n };\n }\n\n return {\n content: serializeRobotsTxt(options),\n issues: [],\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_generate = require("./generate.cjs");
3
+ exports.generateRobotsTxt = require_generate.generateRobotsTxt;
4
+ exports.serializeRobotsTxt = require_generate.serializeRobotsTxt;
5
+ exports.validateRobotsOptions = require_generate.validateRobotsOptions;
@@ -0,0 +1,3 @@
1
+ import { RobotsDirective, RobotsOptions, RobotsPolicy, RobotsResult, RobotsRule, RobotsValidationIssue } from "./types.cjs";
2
+ import { generateRobotsTxt, serializeRobotsTxt, validateRobotsOptions } from "./generate.cjs";
3
+ export { type RobotsDirective, type RobotsOptions, type RobotsPolicy, type RobotsResult, type RobotsRule, type RobotsValidationIssue, generateRobotsTxt, serializeRobotsTxt, validateRobotsOptions };
@@ -0,0 +1,3 @@
1
+ import { RobotsDirective, RobotsOptions, RobotsPolicy, RobotsResult, RobotsRule, RobotsValidationIssue } from "./types.js";
2
+ import { generateRobotsTxt, serializeRobotsTxt, validateRobotsOptions } from "./generate.js";
3
+ export { type RobotsDirective, type RobotsOptions, type RobotsPolicy, type RobotsResult, type RobotsRule, type RobotsValidationIssue, generateRobotsTxt, serializeRobotsTxt, validateRobotsOptions };
@@ -0,0 +1 @@
1
+ export { generateRobotsTxt, serializeRobotsTxt, validateRobotsOptions } from "./generate.js";
@@ -0,0 +1,27 @@
1
+ export type RobotsDirective = "all" | "none" | "index" | "noindex" | "follow" | "nofollow" | "noarchive" | "nosnippet" | "notranslate" | "noimageindex";
2
+ export interface RobotsRule {
3
+ userAgent: string | string[];
4
+ allow?: string[];
5
+ disallow?: string[];
6
+ crawlDelay?: number;
7
+ }
8
+ export interface RobotsOptions {
9
+ rules: RobotsRule[];
10
+ sitemap?: string | string[];
11
+ host?: string;
12
+ }
13
+ export interface RobotsPolicy {
14
+ directives: RobotsDirective[];
15
+ maxSnippet?: number;
16
+ maxImagePreview?: "none" | "standard" | "large";
17
+ maxVideoPreview?: number;
18
+ }
19
+ export interface RobotsResult {
20
+ content: string;
21
+ issues: RobotsValidationIssue[];
22
+ }
23
+ export interface RobotsValidationIssue {
24
+ code: string;
25
+ message: string;
26
+ path?: string;
27
+ }
@@ -0,0 +1,27 @@
1
+ export type RobotsDirective = "all" | "none" | "index" | "noindex" | "follow" | "nofollow" | "noarchive" | "nosnippet" | "notranslate" | "noimageindex";
2
+ export interface RobotsRule {
3
+ userAgent: string | string[];
4
+ allow?: string[];
5
+ disallow?: string[];
6
+ crawlDelay?: number;
7
+ }
8
+ export interface RobotsOptions {
9
+ rules: RobotsRule[];
10
+ sitemap?: string | string[];
11
+ host?: string;
12
+ }
13
+ export interface RobotsPolicy {
14
+ directives: RobotsDirective[];
15
+ maxSnippet?: number;
16
+ maxImagePreview?: "none" | "standard" | "large";
17
+ maxVideoPreview?: number;
18
+ }
19
+ export interface RobotsResult {
20
+ content: string;
21
+ issues: RobotsValidationIssue[];
22
+ }
23
+ export interface RobotsValidationIssue {
24
+ code: string;
25
+ message: string;
26
+ path?: string;
27
+ }
@@ -0,0 +1,12 @@
1
+ const require_schemaorg = require("./generated/schemaorg.cjs");
2
+ const require_registry = require("./registry.cjs");
3
+ // src/schema/create-registry.ts
4
+ const createDefaultSchemaRegistry = (options = {}) => {
5
+ return require_registry.createSchemaRegistry({
6
+ ...options,
7
+ generated: require_schemaorg.generatedSchemaDefinitions
8
+ });
9
+ };
10
+ exports.createDefaultSchemaRegistry = createDefaultSchemaRegistry;
11
+
12
+ //# sourceMappingURL=create-registry.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-registry.cjs","names":["createSchemaRegistry","generatedSchemaDefinitions"],"sources":["../../src/schema/create-registry.ts"],"sourcesContent":["import { generatedSchemaDefinitions } from \"./generated\";\nimport { createSchemaRegistry } from \"./registry\";\nimport type {\n SchemaDefinition,\n SchemaRegistry,\n SchemaRegistryOptions,\n} from \"./types\";\n\nexport const createDefaultSchemaRegistry = (\n options: Omit<SchemaRegistryOptions, \"generated\"> = {},\n): SchemaRegistry => {\n return createSchemaRegistry({\n ...options,\n generated:\n generatedSchemaDefinitions as unknown as readonly SchemaDefinition[],\n });\n};\n"],"mappings":";;;AAQA,MAAa,+BACX,UAAoD,CAAC,MAClC;CACnB,OAAOA,iBAAAA,qBAAqB;EAC1B,GAAG;EACH,WACEC,kBAAAA;CACJ,CAAC;AACH"}
@@ -0,0 +1,2 @@
1
+ import { SchemaRegistry, SchemaRegistryOptions } from "./types.cjs";
2
+ export declare const createDefaultSchemaRegistry: (options?: Omit<SchemaRegistryOptions, "generated">) => SchemaRegistry;
@@ -0,0 +1,2 @@
1
+ import { SchemaRegistry, SchemaRegistryOptions } from "./types.js";
2
+ export declare const createDefaultSchemaRegistry: (options?: Omit<SchemaRegistryOptions, "generated">) => SchemaRegistry;
@@ -0,0 +1,12 @@
1
+ import { generatedSchemaDefinitions } from "./generated/schemaorg.js";
2
+ import { createSchemaRegistry } from "./registry.js";
3
+ // src/schema/create-registry.ts
4
+ const createDefaultSchemaRegistry = (options = {}) => {
5
+ return createSchemaRegistry({
6
+ ...options,
7
+ generated: generatedSchemaDefinitions
8
+ });
9
+ };
10
+ export { createDefaultSchemaRegistry };
11
+
12
+ //# sourceMappingURL=create-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-registry.js","names":[],"sources":["../../src/schema/create-registry.ts"],"sourcesContent":["import { generatedSchemaDefinitions } from \"./generated\";\nimport { createSchemaRegistry } from \"./registry\";\nimport type {\n SchemaDefinition,\n SchemaRegistry,\n SchemaRegistryOptions,\n} from \"./types\";\n\nexport const createDefaultSchemaRegistry = (\n options: Omit<SchemaRegistryOptions, \"generated\"> = {},\n): SchemaRegistry => {\n return createSchemaRegistry({\n ...options,\n generated:\n generatedSchemaDefinitions as unknown as readonly SchemaDefinition[],\n });\n};\n"],"mappings":";;;AAQA,MAAa,+BACX,UAAoD,CAAC,MAClC;CACnB,OAAO,qBAAqB;EAC1B,GAAG;EACH,WACE;CACJ,CAAC;AACH"}
@@ -0,0 +1,2 @@
1
+ import { SCHEMAORG_SOURCE_HASH, SCHEMAORG_VERSION, SchemaOrgPropertyNames, generatedSchemaDefinitions } from "./schemaorg.cjs";
2
+ export { SCHEMAORG_SOURCE_HASH, SCHEMAORG_VERSION, type SchemaOrgPropertyNames, generatedSchemaDefinitions };