@sonordev/site-kit 1.2.7

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 (300) hide show
  1. package/README.md +376 -0
  2. package/dist/SetupWizard-Cki06kB0.d.mts +12 -0
  3. package/dist/SetupWizard-Cki06kB0.d.ts +12 -0
  4. package/dist/analytics/index.d.mts +93 -0
  5. package/dist/analytics/index.d.ts +93 -0
  6. package/dist/analytics/index.js +89 -0
  7. package/dist/analytics/index.js.map +1 -0
  8. package/dist/analytics/index.mjs +71 -0
  9. package/dist/analytics/index.mjs.map +1 -0
  10. package/dist/api-CWtoFJCO.d.mts +137 -0
  11. package/dist/api-CWtoFJCO.d.ts +137 -0
  12. package/dist/blog/index.d.mts +305 -0
  13. package/dist/blog/index.d.ts +305 -0
  14. package/dist/blog/index.js +1578 -0
  15. package/dist/blog/index.js.map +1 -0
  16. package/dist/blog/index.mjs +1562 -0
  17. package/dist/blog/index.mjs.map +1 -0
  18. package/dist/blog/server.d.mts +229 -0
  19. package/dist/blog/server.d.ts +229 -0
  20. package/dist/blog/server.js +692 -0
  21. package/dist/blog/server.js.map +1 -0
  22. package/dist/blog/server.mjs +666 -0
  23. package/dist/blog/server.mjs.map +1 -0
  24. package/dist/chunk-24277A3Q.mjs +968 -0
  25. package/dist/chunk-24277A3Q.mjs.map +1 -0
  26. package/dist/chunk-373TK6TZ.js +321 -0
  27. package/dist/chunk-373TK6TZ.js.map +1 -0
  28. package/dist/chunk-3MYZS6PD.js +30 -0
  29. package/dist/chunk-3MYZS6PD.js.map +1 -0
  30. package/dist/chunk-43GBM4SX.js +283 -0
  31. package/dist/chunk-43GBM4SX.js.map +1 -0
  32. package/dist/chunk-4XPGGLVP.mjs +53 -0
  33. package/dist/chunk-4XPGGLVP.mjs.map +1 -0
  34. package/dist/chunk-622GAQP5.js +2008 -0
  35. package/dist/chunk-622GAQP5.js.map +1 -0
  36. package/dist/chunk-6BIPAKL4.mjs +28 -0
  37. package/dist/chunk-6BIPAKL4.mjs.map +1 -0
  38. package/dist/chunk-6ZCISNAB.mjs +343 -0
  39. package/dist/chunk-6ZCISNAB.mjs.map +1 -0
  40. package/dist/chunk-72MQFHYJ.js +1429 -0
  41. package/dist/chunk-72MQFHYJ.js.map +1 -0
  42. package/dist/chunk-7557OTHW.js +62 -0
  43. package/dist/chunk-7557OTHW.js.map +1 -0
  44. package/dist/chunk-7FUV73JZ.js +981 -0
  45. package/dist/chunk-7FUV73JZ.js.map +1 -0
  46. package/dist/chunk-7RF6PVHA.mjs +324 -0
  47. package/dist/chunk-7RF6PVHA.mjs.map +1 -0
  48. package/dist/chunk-7RYCHO6D.mjs +134 -0
  49. package/dist/chunk-7RYCHO6D.mjs.map +1 -0
  50. package/dist/chunk-7UKPRW25.mjs +1999 -0
  51. package/dist/chunk-7UKPRW25.mjs.map +1 -0
  52. package/dist/chunk-7URAOG2M.js +14864 -0
  53. package/dist/chunk-7URAOG2M.js.map +1 -0
  54. package/dist/chunk-AFAO3TGS.mjs +810 -0
  55. package/dist/chunk-AFAO3TGS.mjs.map +1 -0
  56. package/dist/chunk-BYLIU6XG.js +343 -0
  57. package/dist/chunk-BYLIU6XG.js.map +1 -0
  58. package/dist/chunk-D63MUKZ6.mjs +4423 -0
  59. package/dist/chunk-D63MUKZ6.mjs.map +1 -0
  60. package/dist/chunk-DDKW2FNA.js +390 -0
  61. package/dist/chunk-DDKW2FNA.js.map +1 -0
  62. package/dist/chunk-DQYMKR27.mjs +341 -0
  63. package/dist/chunk-DQYMKR27.mjs.map +1 -0
  64. package/dist/chunk-DW5UJKHH.js +221 -0
  65. package/dist/chunk-DW5UJKHH.js.map +1 -0
  66. package/dist/chunk-EEZCR6E6.js +50 -0
  67. package/dist/chunk-EEZCR6E6.js.map +1 -0
  68. package/dist/chunk-GCJXQ4AG.mjs +59 -0
  69. package/dist/chunk-GCJXQ4AG.mjs.map +1 -0
  70. package/dist/chunk-JGNQK2G6.mjs +14845 -0
  71. package/dist/chunk-JGNQK2G6.mjs.map +1 -0
  72. package/dist/chunk-JTLOJLWQ.mjs +563 -0
  73. package/dist/chunk-JTLOJLWQ.mjs.map +1 -0
  74. package/dist/chunk-K23A4G76.mjs +202 -0
  75. package/dist/chunk-K23A4G76.mjs.map +1 -0
  76. package/dist/chunk-KKU3K7RG.js +336 -0
  77. package/dist/chunk-KKU3K7RG.js.map +1 -0
  78. package/dist/chunk-KUGMH4ZF.js +571 -0
  79. package/dist/chunk-KUGMH4ZF.js.map +1 -0
  80. package/dist/chunk-LBVWVP72.js +110 -0
  81. package/dist/chunk-LBVWVP72.js.map +1 -0
  82. package/dist/chunk-LIVWLY2P.js +138 -0
  83. package/dist/chunk-LIVWLY2P.js.map +1 -0
  84. package/dist/chunk-M2T6R7BA.mjs +1003 -0
  85. package/dist/chunk-M2T6R7BA.mjs.map +1 -0
  86. package/dist/chunk-MV3QN7PW.mjs +47 -0
  87. package/dist/chunk-MV3QN7PW.mjs.map +1 -0
  88. package/dist/chunk-OB7E654K.js +72 -0
  89. package/dist/chunk-OB7E654K.js.map +1 -0
  90. package/dist/chunk-OIIKTGRL.mjs +380 -0
  91. package/dist/chunk-OIIKTGRL.mjs.map +1 -0
  92. package/dist/chunk-P3UWIUJS.mjs +1427 -0
  93. package/dist/chunk-P3UWIUJS.mjs.map +1 -0
  94. package/dist/chunk-PKN27UMH.mjs +136 -0
  95. package/dist/chunk-PKN27UMH.mjs.map +1 -0
  96. package/dist/chunk-QXV4667R.mjs +105 -0
  97. package/dist/chunk-QXV4667R.mjs.map +1 -0
  98. package/dist/chunk-S7FRYNSU.mjs +315 -0
  99. package/dist/chunk-S7FRYNSU.mjs.map +1 -0
  100. package/dist/chunk-TFLQX7K7.mjs +68 -0
  101. package/dist/chunk-TFLQX7K7.mjs.map +1 -0
  102. package/dist/chunk-UWE5PCYJ.mjs +279 -0
  103. package/dist/chunk-UWE5PCYJ.mjs.map +1 -0
  104. package/dist/chunk-UYFDNX2F.js +4469 -0
  105. package/dist/chunk-UYFDNX2F.js.map +1 -0
  106. package/dist/chunk-W4PALSGM.js +350 -0
  107. package/dist/chunk-W4PALSGM.js.map +1 -0
  108. package/dist/chunk-WECQ6KOB.js +1008 -0
  109. package/dist/chunk-WECQ6KOB.js.map +1 -0
  110. package/dist/chunk-XQQWI6WB.js +814 -0
  111. package/dist/chunk-XQQWI6WB.js.map +1 -0
  112. package/dist/chunk-XZJOZJB6.js +140 -0
  113. package/dist/chunk-XZJOZJB6.js.map +1 -0
  114. package/dist/chunk-ZSMWDLMK.js +63 -0
  115. package/dist/chunk-ZSMWDLMK.js.map +1 -0
  116. package/dist/cli/index.js +37243 -0
  117. package/dist/cli/index.js.map +1 -0
  118. package/dist/cli/index.mjs +37209 -0
  119. package/dist/cli/index.mjs.map +1 -0
  120. package/dist/commerce/index.d.mts +170 -0
  121. package/dist/commerce/index.d.ts +170 -0
  122. package/dist/commerce/index.js +174 -0
  123. package/dist/commerce/index.js.map +1 -0
  124. package/dist/commerce/index.mjs +5 -0
  125. package/dist/commerce/index.mjs.map +1 -0
  126. package/dist/commerce/server.d.mts +107 -0
  127. package/dist/commerce/server.d.ts +107 -0
  128. package/dist/commerce/server.js +187 -0
  129. package/dist/commerce/server.js.map +1 -0
  130. package/dist/commerce/server.mjs +177 -0
  131. package/dist/commerce/server.mjs.map +1 -0
  132. package/dist/config/index.d.mts +43 -0
  133. package/dist/config/index.d.ts +43 -0
  134. package/dist/config/index.js +66 -0
  135. package/dist/config/index.js.map +1 -0
  136. package/dist/config/index.mjs +64 -0
  137. package/dist/config/index.mjs.map +1 -0
  138. package/dist/engage/index.d.mts +33 -0
  139. package/dist/engage/index.d.ts +33 -0
  140. package/dist/engage/index.js +22 -0
  141. package/dist/engage/index.js.map +1 -0
  142. package/dist/engage/index.mjs +5 -0
  143. package/dist/engage/index.mjs.map +1 -0
  144. package/dist/forms/index.d.mts +437 -0
  145. package/dist/forms/index.d.ts +437 -0
  146. package/dist/forms/index.js +1168 -0
  147. package/dist/forms/index.js.map +1 -0
  148. package/dist/forms/index.mjs +1142 -0
  149. package/dist/forms/index.mjs.map +1 -0
  150. package/dist/generators-2XKQMPKH.mjs +4 -0
  151. package/dist/generators-2XKQMPKH.mjs.map +1 -0
  152. package/dist/generators-DTMO36DV.js +33 -0
  153. package/dist/generators-DTMO36DV.js.map +1 -0
  154. package/dist/images/index.d.mts +4 -0
  155. package/dist/images/index.d.ts +4 -0
  156. package/dist/images/index.js +46 -0
  157. package/dist/images/index.js.map +1 -0
  158. package/dist/images/index.mjs +5 -0
  159. package/dist/images/index.mjs.map +1 -0
  160. package/dist/images/server.d.mts +69 -0
  161. package/dist/images/server.d.ts +69 -0
  162. package/dist/images/server.js +21 -0
  163. package/dist/images/server.js.map +1 -0
  164. package/dist/images/server.mjs +4 -0
  165. package/dist/images/server.mjs.map +1 -0
  166. package/dist/index.d.mts +846 -0
  167. package/dist/index.d.ts +846 -0
  168. package/dist/index.js +2623 -0
  169. package/dist/index.js.map +1 -0
  170. package/dist/index.mjs +2416 -0
  171. package/dist/index.mjs.map +1 -0
  172. package/dist/layout/index.d.mts +53 -0
  173. package/dist/layout/index.d.ts +53 -0
  174. package/dist/layout/index.js +187 -0
  175. package/dist/layout/index.js.map +1 -0
  176. package/dist/layout/index.mjs +185 -0
  177. package/dist/layout/index.mjs.map +1 -0
  178. package/dist/llms/index.d.mts +448 -0
  179. package/dist/llms/index.d.ts +448 -0
  180. package/dist/llms/index.js +581 -0
  181. package/dist/llms/index.js.map +1 -0
  182. package/dist/llms/index.mjs +529 -0
  183. package/dist/llms/index.mjs.map +1 -0
  184. package/dist/manifest/index.d.mts +62 -0
  185. package/dist/manifest/index.d.ts +62 -0
  186. package/dist/manifest/index.js +85 -0
  187. package/dist/manifest/index.js.map +1 -0
  188. package/dist/manifest/index.mjs +83 -0
  189. package/dist/manifest/index.mjs.map +1 -0
  190. package/dist/middleware/index.d.mts +63 -0
  191. package/dist/middleware/index.d.ts +63 -0
  192. package/dist/middleware/index.js +54 -0
  193. package/dist/middleware/index.js.map +1 -0
  194. package/dist/middleware/index.mjs +51 -0
  195. package/dist/middleware/index.mjs.map +1 -0
  196. package/dist/migrator-2MQHOFDQ.mjs +4 -0
  197. package/dist/migrator-2MQHOFDQ.mjs.map +1 -0
  198. package/dist/migrator-THJCF6MZ.js +37 -0
  199. package/dist/migrator-THJCF6MZ.js.map +1 -0
  200. package/dist/redirects/index.d.mts +78 -0
  201. package/dist/redirects/index.d.ts +78 -0
  202. package/dist/redirects/index.js +26 -0
  203. package/dist/redirects/index.js.map +1 -0
  204. package/dist/redirects/index.mjs +5 -0
  205. package/dist/redirects/index.mjs.map +1 -0
  206. package/dist/reputation/index.d.mts +57 -0
  207. package/dist/reputation/index.d.ts +57 -0
  208. package/dist/reputation/index.js +21 -0
  209. package/dist/reputation/index.js.map +1 -0
  210. package/dist/reputation/index.mjs +4 -0
  211. package/dist/reputation/index.mjs.map +1 -0
  212. package/dist/robots/index.d.mts +38 -0
  213. package/dist/robots/index.d.ts +38 -0
  214. package/dist/robots/index.js +52 -0
  215. package/dist/robots/index.js.map +1 -0
  216. package/dist/robots/index.mjs +50 -0
  217. package/dist/robots/index.mjs.map +1 -0
  218. package/dist/routing-B5XS-6_W.d.mts +118 -0
  219. package/dist/routing-DZYzyDHw.d.ts +118 -0
  220. package/dist/scanner-GAF5PO5F.js +53 -0
  221. package/dist/scanner-GAF5PO5F.js.map +1 -0
  222. package/dist/scanner-LKJKW7IT.mjs +4 -0
  223. package/dist/scanner-LKJKW7IT.mjs.map +1 -0
  224. package/dist/securityHeaders-nwZ6nP4g.d.mts +24 -0
  225. package/dist/securityHeaders-nwZ6nP4g.d.ts +24 -0
  226. package/dist/seo/index.d.mts +600 -0
  227. package/dist/seo/index.d.ts +600 -0
  228. package/dist/seo/index.js +883 -0
  229. package/dist/seo/index.js.map +1 -0
  230. package/dist/seo/index.mjs +773 -0
  231. package/dist/seo/index.mjs.map +1 -0
  232. package/dist/seo/register-sitemap-cli.js +151 -0
  233. package/dist/seo/register-sitemap-cli.js.map +1 -0
  234. package/dist/seo/register-sitemap-cli.mjs +144 -0
  235. package/dist/seo/register-sitemap-cli.mjs.map +1 -0
  236. package/dist/seo/server.d.mts +107 -0
  237. package/dist/seo/server.d.ts +107 -0
  238. package/dist/seo/server.js +207 -0
  239. package/dist/seo/server.js.map +1 -0
  240. package/dist/seo/server.mjs +186 -0
  241. package/dist/seo/server.mjs.map +1 -0
  242. package/dist/server-api-EWXKOQZA.mjs +4 -0
  243. package/dist/server-api-EWXKOQZA.mjs.map +1 -0
  244. package/dist/server-api-GJPNRYUP.js +81 -0
  245. package/dist/server-api-GJPNRYUP.js.map +1 -0
  246. package/dist/setup/client.d.mts +60 -0
  247. package/dist/setup/client.d.ts +60 -0
  248. package/dist/setup/client.js +31 -0
  249. package/dist/setup/client.js.map +1 -0
  250. package/dist/setup/client.mjs +6 -0
  251. package/dist/setup/client.mjs.map +1 -0
  252. package/dist/setup/index.d.mts +5 -0
  253. package/dist/setup/index.d.ts +5 -0
  254. package/dist/setup/index.js +35 -0
  255. package/dist/setup/index.js.map +1 -0
  256. package/dist/setup/index.mjs +6 -0
  257. package/dist/setup/index.mjs.map +1 -0
  258. package/dist/setup/server.d.mts +14 -0
  259. package/dist/setup/server.d.ts +14 -0
  260. package/dist/setup/server.js +13 -0
  261. package/dist/setup/server.js.map +1 -0
  262. package/dist/setup/server.mjs +4 -0
  263. package/dist/setup/server.mjs.map +1 -0
  264. package/dist/site-config/index.d.mts +24 -0
  265. package/dist/site-config/index.d.ts +24 -0
  266. package/dist/site-config/index.js +17 -0
  267. package/dist/site-config/index.js.map +1 -0
  268. package/dist/site-config/index.mjs +4 -0
  269. package/dist/site-config/index.mjs.map +1 -0
  270. package/dist/sitemap/index.d.mts +96 -0
  271. package/dist/sitemap/index.d.ts +96 -0
  272. package/dist/sitemap/index.js +288 -0
  273. package/dist/sitemap/index.js.map +1 -0
  274. package/dist/sitemap/index.mjs +285 -0
  275. package/dist/sitemap/index.mjs.map +1 -0
  276. package/dist/socket-loader-J26QHHOB.js +16 -0
  277. package/dist/socket-loader-J26QHHOB.js.map +1 -0
  278. package/dist/socket-loader-R7S2YJ2J.mjs +14 -0
  279. package/dist/socket-loader-R7S2YJ2J.mjs.map +1 -0
  280. package/dist/types-0dmq3k20.d.mts +168 -0
  281. package/dist/types-0dmq3k20.d.ts +168 -0
  282. package/dist/types-Blb2QNkV.d.mts +263 -0
  283. package/dist/types-Blb2QNkV.d.ts +263 -0
  284. package/dist/types-BnCwwUX3.d.mts +250 -0
  285. package/dist/types-BnCwwUX3.d.ts +250 -0
  286. package/dist/types-CGlnp43R.d.mts +312 -0
  287. package/dist/types-CGlnp43R.d.ts +312 -0
  288. package/dist/types-D08004rU.d.mts +179 -0
  289. package/dist/types-D08004rU.d.ts +179 -0
  290. package/dist/types-DNSYU7qI.d.mts +127 -0
  291. package/dist/types-DNSYU7qI.d.ts +127 -0
  292. package/dist/types-KZP_VWZp.d.mts +266 -0
  293. package/dist/types-KZP_VWZp.d.ts +266 -0
  294. package/dist/useEventModal-BVTx69XE.d.mts +274 -0
  295. package/dist/useEventModal-Dx1dItTJ.d.ts +274 -0
  296. package/dist/web-vitals-444RLW3B.js +252 -0
  297. package/dist/web-vitals-444RLW3B.js.map +1 -0
  298. package/dist/web-vitals-KPICZIEF.mjs +241 -0
  299. package/dist/web-vitals-KPICZIEF.mjs.map +1 -0
  300. package/package.json +192 -0
@@ -0,0 +1,266 @@
1
+ import { Metadata } from 'next';
2
+
3
+ interface UptradeSEOConfig {
4
+ /** @deprecated Project is resolved from API key by the portal; no longer required */
5
+ projectId?: string;
6
+ supabaseUrl?: string;
7
+ supabaseKey?: string;
8
+ }
9
+ interface SEOPageData {
10
+ id: string;
11
+ project_id: string;
12
+ path: string;
13
+ url?: string;
14
+ managed_title?: string;
15
+ managed_meta_description?: string;
16
+ managed_og_title?: string;
17
+ managed_og_description?: string;
18
+ managed_og_image?: string;
19
+ managed_canonical?: string;
20
+ managed_robots?: string;
21
+ managed_keywords?: string[];
22
+ managed_h1?: string;
23
+ /** Auto-generated schema.org markup from Signal meta optimization */
24
+ managed_schema?: Record<string, unknown>;
25
+ /** LLM-optimized schema for AI visibility (detailed descriptions, keywords, etc.) */
26
+ managed_llm_schema?: Record<string, unknown>;
27
+ updated_at: string;
28
+ }
29
+ interface GetManagedMetadataOptions {
30
+ /** @deprecated Project is resolved from API key by the portal */
31
+ projectId?: string;
32
+ path: string;
33
+ fallback?: Metadata;
34
+ /** Override specific fields even if managed values exist */
35
+ overrides?: Partial<Metadata>;
36
+ /**
37
+ * When 'component', icons are omitted from the return so that ManagedFavicon in the layout
38
+ * is the single source. Use this when you render <ManagedFavicon /> in head.
39
+ * Default: 'metadata' (icons included from project logo_url).
40
+ */
41
+ favicon?: 'metadata' | 'component';
42
+ }
43
+ interface ManagedMetadataResult extends Metadata {
44
+ _managed: boolean;
45
+ _source: 'database' | 'fallback' | 'signal';
46
+ }
47
+ interface SchemaMarkup {
48
+ id: string;
49
+ project_id: string;
50
+ page_id?: string;
51
+ page_path?: string;
52
+ schema_type: string;
53
+ schema_json: Record<string, unknown>;
54
+ is_implemented: boolean;
55
+ validation_status: 'valid' | 'warning' | 'error';
56
+ }
57
+ interface ManagedSchemaProps {
58
+ /** @deprecated Project is resolved from API key by the portal */
59
+ projectId?: string;
60
+ path: string;
61
+ /** Additional schemas to merge */
62
+ additionalSchemas?: Record<string, unknown>[];
63
+ /** Schema types to include (default: all) */
64
+ includeTypes?: string[];
65
+ /** Schema types to exclude */
66
+ excludeTypes?: string[];
67
+ }
68
+ interface FAQItem {
69
+ id: string;
70
+ question: string;
71
+ answer: string;
72
+ order: number;
73
+ is_visible: boolean;
74
+ }
75
+ interface ManagedFAQData {
76
+ id: string;
77
+ project_id: string;
78
+ path: string;
79
+ title?: string;
80
+ description?: string;
81
+ items: FAQItem[];
82
+ include_schema: boolean;
83
+ updated_at: string;
84
+ }
85
+ interface ManagedFAQProps {
86
+ /** @deprecated Project is resolved from API key by the portal */
87
+ projectId?: string;
88
+ path: string;
89
+ /** Custom wrapper className */
90
+ className?: string;
91
+ /** Render FAQ item (custom rendering) */
92
+ renderItem?: (item: FAQItem, index: number) => React.ReactNode;
93
+ /** Include FAQ schema in page */
94
+ includeSchema?: boolean;
95
+ /** Show section title */
96
+ showTitle?: boolean;
97
+ }
98
+ interface ManagedLink {
99
+ id: string;
100
+ project_id: string;
101
+ source_path: string;
102
+ target_path: string;
103
+ target_url?: string;
104
+ anchor_text: string;
105
+ position: 'inline' | 'sidebar' | 'bottom' | 'related';
106
+ context?: string;
107
+ is_active: boolean;
108
+ priority: number;
109
+ }
110
+ interface ManagedInternalLinksProps {
111
+ /** @deprecated Project is resolved from API key by the portal */
112
+ projectId?: string;
113
+ path: string;
114
+ position?: 'inline' | 'sidebar' | 'bottom' | 'related';
115
+ /** Maximum links to show */
116
+ limit?: number;
117
+ className?: string;
118
+ /** Custom link renderer */
119
+ renderLink?: (link: ManagedLink) => React.ReactNode;
120
+ }
121
+ interface ManagedContentBlock {
122
+ id: string;
123
+ project_id: string;
124
+ path: string;
125
+ section: string;
126
+ content_type: 'html' | 'markdown' | 'json' | 'react';
127
+ content: string | Record<string, unknown>;
128
+ is_published: boolean;
129
+ published_at?: string;
130
+ updated_at: string;
131
+ }
132
+ interface ManagedContentProps {
133
+ /** @deprecated Project is resolved from API key by the portal */
134
+ projectId?: string;
135
+ path: string;
136
+ section: string;
137
+ /** Fallback content if none found */
138
+ fallback?: React.ReactNode;
139
+ className?: string;
140
+ /** For 'react' type, map of component names to components */
141
+ components?: Record<string, React.ComponentType<unknown>>;
142
+ /** Inject entity annotations from knowledge graph (data-sonor-entity attributes) */
143
+ injectEntityAnnotations?: boolean;
144
+ }
145
+ /**
146
+ * Entity from the knowledge graph (for content annotation)
147
+ */
148
+ interface SEOEntity {
149
+ id: string;
150
+ project_id: string;
151
+ entity_type: 'organization' | 'person' | 'service' | 'product' | 'location' | 'concept' | 'credential';
152
+ name: string;
153
+ slug: string;
154
+ properties: Record<string, unknown>;
155
+ knows_about: string[];
156
+ same_as: string[];
157
+ schema_type?: string;
158
+ is_primary: boolean;
159
+ }
160
+ interface ABTest {
161
+ id: string;
162
+ project_id: string;
163
+ path: string;
164
+ field: 'title' | 'description' | 'content';
165
+ variant_a: string;
166
+ variant_b: string;
167
+ traffic_split: number;
168
+ status: 'draft' | 'running' | 'paused' | 'completed';
169
+ winner?: 'a' | 'b';
170
+ started_at?: string;
171
+ ended_at?: string;
172
+ }
173
+ interface ABTestResult {
174
+ testId: string;
175
+ variant: 'a' | 'b';
176
+ value: string;
177
+ }
178
+ interface GetABVariantOptions {
179
+ /** @deprecated Project is resolved from API key by the portal */
180
+ projectId?: string;
181
+ path: string;
182
+ field: 'title' | 'description' | 'content';
183
+ /** Session/visitor ID for consistent variant assignment */
184
+ sessionId?: string;
185
+ }
186
+ interface ManagedRedirect {
187
+ id: string;
188
+ project_id: string;
189
+ source_path: string;
190
+ destination_path: string;
191
+ destination_url?: string;
192
+ status_code: 301 | 302 | 307 | 308;
193
+ is_active: boolean;
194
+ is_regex: boolean;
195
+ priority: number;
196
+ expires_at?: string;
197
+ }
198
+ interface GetRedirectOptions {
199
+ /** @deprecated Project is resolved from API key by the portal */
200
+ projectId?: string;
201
+ path: string;
202
+ }
203
+ interface RedirectResult {
204
+ destination: string;
205
+ statusCode: 301 | 302 | 307 | 308;
206
+ isExternal: boolean;
207
+ }
208
+ interface ManagedScript {
209
+ id: string;
210
+ project_id: string;
211
+ name: string;
212
+ script_type: 'inline' | 'external';
213
+ position: 'head' | 'body-start' | 'body-end';
214
+ content?: string;
215
+ src?: string;
216
+ async?: boolean;
217
+ defer?: boolean;
218
+ attributes?: Record<string, string>;
219
+ is_active: boolean;
220
+ load_on?: 'all' | 'specific';
221
+ paths?: string[];
222
+ priority: number;
223
+ }
224
+ interface ManagedScriptsProps {
225
+ /** @deprecated Project is resolved from API key by the portal */
226
+ projectId?: string;
227
+ position: 'head' | 'body-start' | 'body-end';
228
+ /** Current path for path-specific scripts */
229
+ path?: string;
230
+ }
231
+ interface RobotsDirective {
232
+ index: boolean;
233
+ follow: boolean;
234
+ noarchive?: boolean;
235
+ nosnippet?: boolean;
236
+ noimageindex?: boolean;
237
+ max_snippet?: number;
238
+ max_image_preview?: 'none' | 'standard' | 'large';
239
+ max_video_preview?: number;
240
+ }
241
+ interface GetRobotsOptions {
242
+ /** @deprecated Project is resolved from API key by the portal */
243
+ projectId?: string;
244
+ path: string;
245
+ }
246
+ interface SitemapEntry {
247
+ path: string;
248
+ url: string;
249
+ lastmod?: string;
250
+ changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
251
+ priority?: number;
252
+ images?: Array<{
253
+ url: string;
254
+ title?: string;
255
+ caption?: string;
256
+ }>;
257
+ }
258
+ interface GetSitemapEntriesOptions {
259
+ /** @deprecated Project is resolved from API key by the portal */
260
+ projectId?: string;
261
+ baseUrl: string;
262
+ /** Include only published/indexed pages */
263
+ publishedOnly?: boolean;
264
+ }
265
+
266
+ export type { ABTest as A, FAQItem as F, GetManagedMetadataOptions as G, ManagedMetadataResult as M, RedirectResult as R, SEOPageData as S, UptradeSEOConfig as U, SchemaMarkup as a, ManagedSchemaProps as b, ManagedFAQData as c, ManagedFAQProps as d, ManagedLink as e, ManagedInternalLinksProps as f, ManagedContentBlock as g, ManagedContentProps as h, SEOEntity as i, ABTestResult as j, GetABVariantOptions as k, ManagedRedirect as l, GetRedirectOptions as m, ManagedScript as n, ManagedScriptsProps as o, RobotsDirective as p, GetRobotsOptions as q, SitemapEntry as r, GetSitemapEntriesOptions as s };
@@ -0,0 +1,266 @@
1
+ import { Metadata } from 'next';
2
+
3
+ interface UptradeSEOConfig {
4
+ /** @deprecated Project is resolved from API key by the portal; no longer required */
5
+ projectId?: string;
6
+ supabaseUrl?: string;
7
+ supabaseKey?: string;
8
+ }
9
+ interface SEOPageData {
10
+ id: string;
11
+ project_id: string;
12
+ path: string;
13
+ url?: string;
14
+ managed_title?: string;
15
+ managed_meta_description?: string;
16
+ managed_og_title?: string;
17
+ managed_og_description?: string;
18
+ managed_og_image?: string;
19
+ managed_canonical?: string;
20
+ managed_robots?: string;
21
+ managed_keywords?: string[];
22
+ managed_h1?: string;
23
+ /** Auto-generated schema.org markup from Signal meta optimization */
24
+ managed_schema?: Record<string, unknown>;
25
+ /** LLM-optimized schema for AI visibility (detailed descriptions, keywords, etc.) */
26
+ managed_llm_schema?: Record<string, unknown>;
27
+ updated_at: string;
28
+ }
29
+ interface GetManagedMetadataOptions {
30
+ /** @deprecated Project is resolved from API key by the portal */
31
+ projectId?: string;
32
+ path: string;
33
+ fallback?: Metadata;
34
+ /** Override specific fields even if managed values exist */
35
+ overrides?: Partial<Metadata>;
36
+ /**
37
+ * When 'component', icons are omitted from the return so that ManagedFavicon in the layout
38
+ * is the single source. Use this when you render <ManagedFavicon /> in head.
39
+ * Default: 'metadata' (icons included from project logo_url).
40
+ */
41
+ favicon?: 'metadata' | 'component';
42
+ }
43
+ interface ManagedMetadataResult extends Metadata {
44
+ _managed: boolean;
45
+ _source: 'database' | 'fallback' | 'signal';
46
+ }
47
+ interface SchemaMarkup {
48
+ id: string;
49
+ project_id: string;
50
+ page_id?: string;
51
+ page_path?: string;
52
+ schema_type: string;
53
+ schema_json: Record<string, unknown>;
54
+ is_implemented: boolean;
55
+ validation_status: 'valid' | 'warning' | 'error';
56
+ }
57
+ interface ManagedSchemaProps {
58
+ /** @deprecated Project is resolved from API key by the portal */
59
+ projectId?: string;
60
+ path: string;
61
+ /** Additional schemas to merge */
62
+ additionalSchemas?: Record<string, unknown>[];
63
+ /** Schema types to include (default: all) */
64
+ includeTypes?: string[];
65
+ /** Schema types to exclude */
66
+ excludeTypes?: string[];
67
+ }
68
+ interface FAQItem {
69
+ id: string;
70
+ question: string;
71
+ answer: string;
72
+ order: number;
73
+ is_visible: boolean;
74
+ }
75
+ interface ManagedFAQData {
76
+ id: string;
77
+ project_id: string;
78
+ path: string;
79
+ title?: string;
80
+ description?: string;
81
+ items: FAQItem[];
82
+ include_schema: boolean;
83
+ updated_at: string;
84
+ }
85
+ interface ManagedFAQProps {
86
+ /** @deprecated Project is resolved from API key by the portal */
87
+ projectId?: string;
88
+ path: string;
89
+ /** Custom wrapper className */
90
+ className?: string;
91
+ /** Render FAQ item (custom rendering) */
92
+ renderItem?: (item: FAQItem, index: number) => React.ReactNode;
93
+ /** Include FAQ schema in page */
94
+ includeSchema?: boolean;
95
+ /** Show section title */
96
+ showTitle?: boolean;
97
+ }
98
+ interface ManagedLink {
99
+ id: string;
100
+ project_id: string;
101
+ source_path: string;
102
+ target_path: string;
103
+ target_url?: string;
104
+ anchor_text: string;
105
+ position: 'inline' | 'sidebar' | 'bottom' | 'related';
106
+ context?: string;
107
+ is_active: boolean;
108
+ priority: number;
109
+ }
110
+ interface ManagedInternalLinksProps {
111
+ /** @deprecated Project is resolved from API key by the portal */
112
+ projectId?: string;
113
+ path: string;
114
+ position?: 'inline' | 'sidebar' | 'bottom' | 'related';
115
+ /** Maximum links to show */
116
+ limit?: number;
117
+ className?: string;
118
+ /** Custom link renderer */
119
+ renderLink?: (link: ManagedLink) => React.ReactNode;
120
+ }
121
+ interface ManagedContentBlock {
122
+ id: string;
123
+ project_id: string;
124
+ path: string;
125
+ section: string;
126
+ content_type: 'html' | 'markdown' | 'json' | 'react';
127
+ content: string | Record<string, unknown>;
128
+ is_published: boolean;
129
+ published_at?: string;
130
+ updated_at: string;
131
+ }
132
+ interface ManagedContentProps {
133
+ /** @deprecated Project is resolved from API key by the portal */
134
+ projectId?: string;
135
+ path: string;
136
+ section: string;
137
+ /** Fallback content if none found */
138
+ fallback?: React.ReactNode;
139
+ className?: string;
140
+ /** For 'react' type, map of component names to components */
141
+ components?: Record<string, React.ComponentType<unknown>>;
142
+ /** Inject entity annotations from knowledge graph (data-sonor-entity attributes) */
143
+ injectEntityAnnotations?: boolean;
144
+ }
145
+ /**
146
+ * Entity from the knowledge graph (for content annotation)
147
+ */
148
+ interface SEOEntity {
149
+ id: string;
150
+ project_id: string;
151
+ entity_type: 'organization' | 'person' | 'service' | 'product' | 'location' | 'concept' | 'credential';
152
+ name: string;
153
+ slug: string;
154
+ properties: Record<string, unknown>;
155
+ knows_about: string[];
156
+ same_as: string[];
157
+ schema_type?: string;
158
+ is_primary: boolean;
159
+ }
160
+ interface ABTest {
161
+ id: string;
162
+ project_id: string;
163
+ path: string;
164
+ field: 'title' | 'description' | 'content';
165
+ variant_a: string;
166
+ variant_b: string;
167
+ traffic_split: number;
168
+ status: 'draft' | 'running' | 'paused' | 'completed';
169
+ winner?: 'a' | 'b';
170
+ started_at?: string;
171
+ ended_at?: string;
172
+ }
173
+ interface ABTestResult {
174
+ testId: string;
175
+ variant: 'a' | 'b';
176
+ value: string;
177
+ }
178
+ interface GetABVariantOptions {
179
+ /** @deprecated Project is resolved from API key by the portal */
180
+ projectId?: string;
181
+ path: string;
182
+ field: 'title' | 'description' | 'content';
183
+ /** Session/visitor ID for consistent variant assignment */
184
+ sessionId?: string;
185
+ }
186
+ interface ManagedRedirect {
187
+ id: string;
188
+ project_id: string;
189
+ source_path: string;
190
+ destination_path: string;
191
+ destination_url?: string;
192
+ status_code: 301 | 302 | 307 | 308;
193
+ is_active: boolean;
194
+ is_regex: boolean;
195
+ priority: number;
196
+ expires_at?: string;
197
+ }
198
+ interface GetRedirectOptions {
199
+ /** @deprecated Project is resolved from API key by the portal */
200
+ projectId?: string;
201
+ path: string;
202
+ }
203
+ interface RedirectResult {
204
+ destination: string;
205
+ statusCode: 301 | 302 | 307 | 308;
206
+ isExternal: boolean;
207
+ }
208
+ interface ManagedScript {
209
+ id: string;
210
+ project_id: string;
211
+ name: string;
212
+ script_type: 'inline' | 'external';
213
+ position: 'head' | 'body-start' | 'body-end';
214
+ content?: string;
215
+ src?: string;
216
+ async?: boolean;
217
+ defer?: boolean;
218
+ attributes?: Record<string, string>;
219
+ is_active: boolean;
220
+ load_on?: 'all' | 'specific';
221
+ paths?: string[];
222
+ priority: number;
223
+ }
224
+ interface ManagedScriptsProps {
225
+ /** @deprecated Project is resolved from API key by the portal */
226
+ projectId?: string;
227
+ position: 'head' | 'body-start' | 'body-end';
228
+ /** Current path for path-specific scripts */
229
+ path?: string;
230
+ }
231
+ interface RobotsDirective {
232
+ index: boolean;
233
+ follow: boolean;
234
+ noarchive?: boolean;
235
+ nosnippet?: boolean;
236
+ noimageindex?: boolean;
237
+ max_snippet?: number;
238
+ max_image_preview?: 'none' | 'standard' | 'large';
239
+ max_video_preview?: number;
240
+ }
241
+ interface GetRobotsOptions {
242
+ /** @deprecated Project is resolved from API key by the portal */
243
+ projectId?: string;
244
+ path: string;
245
+ }
246
+ interface SitemapEntry {
247
+ path: string;
248
+ url: string;
249
+ lastmod?: string;
250
+ changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
251
+ priority?: number;
252
+ images?: Array<{
253
+ url: string;
254
+ title?: string;
255
+ caption?: string;
256
+ }>;
257
+ }
258
+ interface GetSitemapEntriesOptions {
259
+ /** @deprecated Project is resolved from API key by the portal */
260
+ projectId?: string;
261
+ baseUrl: string;
262
+ /** Include only published/indexed pages */
263
+ publishedOnly?: boolean;
264
+ }
265
+
266
+ export type { ABTest as A, FAQItem as F, GetManagedMetadataOptions as G, ManagedMetadataResult as M, RedirectResult as R, SEOPageData as S, UptradeSEOConfig as U, SchemaMarkup as a, ManagedSchemaProps as b, ManagedFAQData as c, ManagedFAQProps as d, ManagedLink as e, ManagedInternalLinksProps as f, ManagedContentBlock as g, ManagedContentProps as h, SEOEntity as i, ABTestResult as j, GetABVariantOptions as k, ManagedRedirect as l, GetRedirectOptions as m, ManagedScript as n, ManagedScriptsProps as o, RobotsDirective as p, GetRobotsOptions as q, SitemapEntry as r, GetSitemapEntriesOptions as s };