@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,581 @@
1
+ 'use strict';
2
+
3
+ var chunkDDKW2FNA_js = require('../chunk-DDKW2FNA.js');
4
+ require('../chunk-ZSMWDLMK.js');
5
+ var fs = require('fs');
6
+ var path = require('path');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function createLLMsTxtHandler(options = {}) {
10
+ const { preferStatic = true, ...generateOptions } = options;
11
+ return async function GET() {
12
+ try {
13
+ if (preferStatic) {
14
+ const staticPath = path.join(process.cwd(), "public", "llms.txt");
15
+ if (fs.existsSync(staticPath)) {
16
+ const markdown2 = fs.readFileSync(staticPath, "utf-8");
17
+ return new Response(markdown2, {
18
+ status: 200,
19
+ headers: {
20
+ "Content-Type": "text/plain; charset=utf-8",
21
+ "Cache-Control": "public, max-age=3600, s-maxage=3600"
22
+ }
23
+ });
24
+ }
25
+ }
26
+ const { markdown, metadata } = await chunkDDKW2FNA_js.generateLLMsTxt(generateOptions);
27
+ return new Response(markdown, {
28
+ status: 200,
29
+ headers: {
30
+ "Content-Type": "text/plain; charset=utf-8",
31
+ "Cache-Control": "public, max-age=3600, s-maxage=3600",
32
+ "X-Generated-At": metadata.generated_at,
33
+ "X-Sections": metadata.sections.join(",")
34
+ }
35
+ });
36
+ } catch (error) {
37
+ console.error("@sonordev/llms: Error generating llms.txt:", error);
38
+ return new Response("# Error\n\nUnable to generate llms.txt content.", {
39
+ status: 500,
40
+ headers: { "Content-Type": "text/plain; charset=utf-8" }
41
+ });
42
+ }
43
+ };
44
+ }
45
+ function createLLMsFullTxtHandler(options = {}) {
46
+ const { preferStatic = true, ...generateOptions } = options;
47
+ return async function GET() {
48
+ try {
49
+ if (preferStatic) {
50
+ const staticPath = path.join(process.cwd(), "public", "llms-full.txt");
51
+ if (fs.existsSync(staticPath)) {
52
+ const markdown2 = fs.readFileSync(staticPath, "utf-8");
53
+ return new Response(markdown2, {
54
+ status: 200,
55
+ headers: {
56
+ "Content-Type": "text/plain; charset=utf-8",
57
+ "Cache-Control": "public, max-age=3600, s-maxage=3600"
58
+ }
59
+ });
60
+ }
61
+ }
62
+ const { markdown, metadata } = await chunkDDKW2FNA_js.generateLLMsFullTxt(generateOptions);
63
+ return new Response(markdown, {
64
+ status: 200,
65
+ headers: {
66
+ "Content-Type": "text/plain; charset=utf-8",
67
+ "Cache-Control": "public, max-age=3600, s-maxage=3600",
68
+ "X-Generated-At": metadata.generated_at,
69
+ "X-Sections": metadata.sections.join(",")
70
+ }
71
+ });
72
+ } catch (error) {
73
+ console.error("@sonordev/llms: Error generating llms-full.txt:", error);
74
+ return new Response("# Error\n\nUnable to generate llms-full.txt content.", {
75
+ status: 500,
76
+ headers: { "Content-Type": "text/plain; charset=utf-8" }
77
+ });
78
+ }
79
+ };
80
+ }
81
+ function SpeakableSchema({
82
+ type,
83
+ name,
84
+ url,
85
+ speakable,
86
+ additionalProperties = {}
87
+ }) {
88
+ const schema = createSpeakableSchema(type, name, url, speakable, additionalProperties);
89
+ return /* @__PURE__ */ jsxRuntime.jsx(
90
+ "script",
91
+ {
92
+ type: "application/ld+json",
93
+ dangerouslySetInnerHTML: {
94
+ __html: JSON.stringify(schema, null, 0)
95
+ }
96
+ }
97
+ );
98
+ }
99
+ function createSpeakableSchema(type, name, url, speakable, additionalProperties = {}) {
100
+ const speakableSpec = {
101
+ "@type": "SpeakableSpecification"
102
+ };
103
+ if (speakable.cssSelectors?.length) {
104
+ speakableSpec.cssSelector = speakable.cssSelectors;
105
+ } else if (speakable.xPaths?.length) {
106
+ speakableSpec.xpath = speakable.xPaths;
107
+ } else {
108
+ speakableSpec.cssSelector = [
109
+ "h1",
110
+ "[data-speakable]",
111
+ ".page-summary",
112
+ ".key-points",
113
+ 'meta[name="description"]'
114
+ ];
115
+ }
116
+ return {
117
+ "@context": "https://schema.org",
118
+ "@type": type,
119
+ name,
120
+ url,
121
+ speakable: speakableSpec,
122
+ ...additionalProperties
123
+ };
124
+ }
125
+ var DEFAULT_SPEAKABLE_SELECTORS = {
126
+ /** Standard page elements */
127
+ page: ["h1", 'meta[name="description"]', ".page-summary"],
128
+ /** Article/blog post elements */
129
+ article: ["h1", ".article-summary", ".article-intro", 'meta[name="description"]'],
130
+ /** Service page elements */
131
+ service: ["h1", ".service-overview", ".key-benefits", 'meta[name="description"]'],
132
+ /** FAQ page elements */
133
+ faq: ["h1", ".faq-intro", ".faq-item"],
134
+ /** Contact page elements */
135
+ contact: ["h1", ".contact-intro", ".business-hours", ".contact-info"]
136
+ };
137
+ function getSpeakableSelectorsForPage(pageType) {
138
+ return DEFAULT_SPEAKABLE_SELECTORS[pageType] || DEFAULT_SPEAKABLE_SELECTORS.page;
139
+ }
140
+ function AEOBlock({
141
+ id,
142
+ type,
143
+ question,
144
+ speakable = true,
145
+ entityId,
146
+ children,
147
+ className = ""
148
+ }) {
149
+ const blockId = id || `aeo-${type}-${Math.random().toString(36).slice(2, 8)}`;
150
+ const baseClasses = `aeo-block aeo-${type}`;
151
+ const combinedClasses = className ? `${baseClasses} ${className}` : baseClasses;
152
+ const sonorAttrs = {
153
+ "data-sonor-ai": type,
154
+ "data-sonor-block": "true",
155
+ ...entityId && { "data-sonor-entity": entityId }
156
+ };
157
+ if (type === "answer" && question) {
158
+ return /* @__PURE__ */ jsxRuntime.jsxs(
159
+ "section",
160
+ {
161
+ id: blockId,
162
+ className: combinedClasses,
163
+ "data-speakable": speakable ? "true" : void 0,
164
+ "data-aeo-type": type,
165
+ ...sonorAttrs,
166
+ itemScope: true,
167
+ itemType: "https://schema.org/Question",
168
+ children: [
169
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { itemProp: "name", className: "aeo-question", children: question }),
170
+ /* @__PURE__ */ jsxRuntime.jsx(
171
+ "div",
172
+ {
173
+ itemScope: true,
174
+ itemType: "https://schema.org/Answer",
175
+ itemProp: "acceptedAnswer",
176
+ className: "aeo-answer",
177
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { itemProp: "text", children })
178
+ }
179
+ )
180
+ ]
181
+ }
182
+ );
183
+ }
184
+ if (type === "definition") {
185
+ return /* @__PURE__ */ jsxRuntime.jsx(
186
+ "section",
187
+ {
188
+ id: blockId,
189
+ className: combinedClasses,
190
+ "data-speakable": speakable ? "true" : void 0,
191
+ "data-aeo-type": type,
192
+ ...sonorAttrs,
193
+ children
194
+ }
195
+ );
196
+ }
197
+ if (type === "steps") {
198
+ return /* @__PURE__ */ jsxRuntime.jsx(
199
+ "section",
200
+ {
201
+ id: blockId,
202
+ className: combinedClasses,
203
+ "data-speakable": speakable ? "true" : void 0,
204
+ "data-aeo-type": type,
205
+ ...sonorAttrs,
206
+ itemScope: true,
207
+ itemType: "https://schema.org/HowTo",
208
+ children
209
+ }
210
+ );
211
+ }
212
+ return /* @__PURE__ */ jsxRuntime.jsx(
213
+ "section",
214
+ {
215
+ id: blockId,
216
+ className: combinedClasses,
217
+ "data-speakable": speakable ? "true" : void 0,
218
+ "data-aeo-type": type,
219
+ ...sonorAttrs,
220
+ children
221
+ }
222
+ );
223
+ }
224
+ function AEOSummary({
225
+ title = "Key Points",
226
+ points,
227
+ speakable = true,
228
+ entityId,
229
+ className = ""
230
+ }) {
231
+ const baseClasses = "aeo-summary";
232
+ const combinedClasses = className ? `${baseClasses} ${className}` : baseClasses;
233
+ return /* @__PURE__ */ jsxRuntime.jsxs(
234
+ "div",
235
+ {
236
+ className: combinedClasses,
237
+ "data-speakable": speakable ? "true" : void 0,
238
+ "data-aeo-type": "summary",
239
+ "data-sonor-ai": "summary",
240
+ "data-sonor-block": "true",
241
+ ...entityId && { "data-sonor-entity": entityId },
242
+ children: [
243
+ title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "aeo-summary-title", children: title }),
244
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "aeo-summary-points", children: points.map((point, index) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "aeo-summary-point", children: point }, index)) })
245
+ ]
246
+ }
247
+ );
248
+ }
249
+ function AEODefinition({
250
+ term,
251
+ definition,
252
+ speakable = true,
253
+ entityId,
254
+ source,
255
+ className = ""
256
+ }) {
257
+ const baseClasses = "aeo-definition";
258
+ const combinedClasses = className ? `${baseClasses} ${className}` : baseClasses;
259
+ return /* @__PURE__ */ jsxRuntime.jsxs(
260
+ "dl",
261
+ {
262
+ className: combinedClasses,
263
+ "data-speakable": speakable ? "true" : void 0,
264
+ "data-aeo-type": "definition",
265
+ "data-sonor-ai": "definition",
266
+ "data-sonor-block": "true",
267
+ ...entityId && { "data-sonor-entity": entityId },
268
+ ...source && { "data-sonor-source": source },
269
+ itemScope: true,
270
+ itemType: "https://schema.org/DefinedTerm",
271
+ children: [
272
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "aeo-term", itemProp: "name", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { children: term }) }),
273
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "aeo-definition-text", itemProp: "description", children: definition })
274
+ ]
275
+ }
276
+ );
277
+ }
278
+ function AEOSteps({
279
+ title,
280
+ children,
281
+ speakable = true,
282
+ entityId,
283
+ className = ""
284
+ }) {
285
+ const baseClasses = "aeo-steps";
286
+ const combinedClasses = className ? `${baseClasses} ${className}` : baseClasses;
287
+ return /* @__PURE__ */ jsxRuntime.jsxs(
288
+ "section",
289
+ {
290
+ className: combinedClasses,
291
+ "data-speakable": speakable ? "true" : void 0,
292
+ "data-aeo-type": "steps",
293
+ "data-sonor-ai": "steps",
294
+ "data-sonor-block": "true",
295
+ ...entityId && { "data-sonor-entity": entityId },
296
+ itemScope: true,
297
+ itemType: "https://schema.org/HowTo",
298
+ children: [
299
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "aeo-steps-title", itemProp: "name", children: title }),
300
+ /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "aeo-steps-list", children })
301
+ ]
302
+ }
303
+ );
304
+ }
305
+ function AEOStep({
306
+ number,
307
+ name,
308
+ children
309
+ }) {
310
+ return /* @__PURE__ */ jsxRuntime.jsxs(
311
+ "li",
312
+ {
313
+ className: "aeo-step",
314
+ itemScope: true,
315
+ itemType: "https://schema.org/HowToStep",
316
+ itemProp: "step",
317
+ children: [
318
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "aeo-step-number", itemProp: "position", children: number }),
319
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "aeo-step-name", itemProp: "name", children: name }),
320
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aeo-step-content", itemProp: "text", children })
321
+ ]
322
+ }
323
+ );
324
+ }
325
+ function AEOComparison({
326
+ title,
327
+ items,
328
+ labelA,
329
+ labelB,
330
+ speakable = true,
331
+ entityId,
332
+ className = ""
333
+ }) {
334
+ const baseClasses = "aeo-comparison";
335
+ const combinedClasses = className ? `${baseClasses} ${className}` : baseClasses;
336
+ return /* @__PURE__ */ jsxRuntime.jsxs(
337
+ "section",
338
+ {
339
+ className: combinedClasses,
340
+ "data-speakable": speakable ? "true" : void 0,
341
+ "data-aeo-type": "comparison",
342
+ "data-sonor-ai": "comparison",
343
+ "data-sonor-block": "true",
344
+ ...entityId && { "data-sonor-entity": entityId },
345
+ children: [
346
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "aeo-comparison-title", children: title }),
347
+ /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "aeo-comparison-table", children: [
348
+ /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
349
+ /* @__PURE__ */ jsxRuntime.jsx("th", { children: "Aspect" }),
350
+ /* @__PURE__ */ jsxRuntime.jsx("th", { children: labelA }),
351
+ /* @__PURE__ */ jsxRuntime.jsx("th", { children: labelB })
352
+ ] }) }),
353
+ /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
354
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "aeo-comparison-aspect", children: item.aspect }),
355
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "aeo-comparison-a", children: item.optionA }),
356
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "aeo-comparison-b", children: item.optionB })
357
+ ] }, index)) })
358
+ ] })
359
+ ]
360
+ }
361
+ );
362
+ }
363
+ function AEOClaim({
364
+ source,
365
+ sourceUrl,
366
+ confidence = 1,
367
+ claimType = "fact",
368
+ retrievedAt,
369
+ children,
370
+ className = ""
371
+ }) {
372
+ const baseClasses = "aeo-claim";
373
+ const combinedClasses = className ? `${baseClasses} ${className}` : baseClasses;
374
+ return /* @__PURE__ */ jsxRuntime.jsxs(
375
+ "span",
376
+ {
377
+ className: combinedClasses,
378
+ "data-sonor-claim": "true",
379
+ "data-sonor-source": source,
380
+ ...sourceUrl && { "data-sonor-source-url": sourceUrl },
381
+ "data-sonor-confidence": confidence.toString(),
382
+ "data-sonor-claim-type": claimType,
383
+ ...retrievedAt && { "data-sonor-retrieved": retrievedAt },
384
+ itemScope: true,
385
+ itemType: "https://schema.org/Claim",
386
+ children: [
387
+ /* @__PURE__ */ jsxRuntime.jsx("span", { itemProp: "text", children }),
388
+ sourceUrl ? /* @__PURE__ */ jsxRuntime.jsx("meta", { itemProp: "citation", content: sourceUrl }) : /* @__PURE__ */ jsxRuntime.jsx("meta", { itemProp: "citation", content: source })
389
+ ]
390
+ }
391
+ );
392
+ }
393
+ function AEOEntity({
394
+ entityId,
395
+ entityType,
396
+ name,
397
+ url,
398
+ children,
399
+ className = ""
400
+ }) {
401
+ const baseClasses = "aeo-entity";
402
+ const combinedClasses = className ? `${baseClasses} aeo-entity-${entityType} ${className}` : `${baseClasses} aeo-entity-${entityType}`;
403
+ return /* @__PURE__ */ jsxRuntime.jsxs(
404
+ "span",
405
+ {
406
+ className: combinedClasses,
407
+ "data-sonor-entity": entityId,
408
+ "data-sonor-entity-type": entityType,
409
+ "data-sonor-entity-name": name,
410
+ ...url && { "data-sonor-entity-url": url },
411
+ itemScope: true,
412
+ itemType: `https://schema.org/${entityType === "organization" ? "Organization" : entityType === "person" ? "Person" : entityType === "location" ? "Place" : "Thing"}`,
413
+ children: [
414
+ /* @__PURE__ */ jsxRuntime.jsx("span", { itemProp: "name", children }),
415
+ url && /* @__PURE__ */ jsxRuntime.jsx("link", { itemProp: "url", href: url })
416
+ ]
417
+ }
418
+ );
419
+ }
420
+ function AEOProvenanceList({
421
+ sources,
422
+ title = "Sources & References",
423
+ className = ""
424
+ }) {
425
+ const baseClasses = "aeo-provenance-list";
426
+ const combinedClasses = className ? `${baseClasses} ${className}` : baseClasses;
427
+ const getSchemaType = (sourceType) => {
428
+ switch (sourceType) {
429
+ case "legal_statute":
430
+ return "https://schema.org/Legislation";
431
+ case "research_paper":
432
+ return "https://schema.org/ScholarlyArticle";
433
+ case "news_article":
434
+ return "https://schema.org/NewsArticle";
435
+ case "press_release":
436
+ return "https://schema.org/NewsArticle";
437
+ default:
438
+ return "https://schema.org/CreativeWork";
439
+ }
440
+ };
441
+ return /* @__PURE__ */ jsxRuntime.jsxs(
442
+ "aside",
443
+ {
444
+ className: combinedClasses,
445
+ "data-sonor-provenance": "list",
446
+ "data-sonor-source-count": sources.length.toString(),
447
+ itemScope: true,
448
+ itemType: "https://schema.org/ItemList",
449
+ children: [
450
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "aeo-provenance-title", itemProp: "name", children: title }),
451
+ /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "aeo-provenance-sources", children: sources.map((source, index) => /* @__PURE__ */ jsxRuntime.jsxs(
452
+ "li",
453
+ {
454
+ className: "aeo-provenance-item",
455
+ "data-sonor-source-id": source.id,
456
+ "data-sonor-source-type": source.source_type,
457
+ ...source.confidence && { "data-sonor-confidence": source.confidence.toString() },
458
+ itemScope: true,
459
+ itemType: getSchemaType(source.source_type),
460
+ itemProp: "itemListElement",
461
+ children: [
462
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "aeo-provenance-number", children: [
463
+ "[",
464
+ index + 1,
465
+ "]"
466
+ ] }),
467
+ source.url ? /* @__PURE__ */ jsxRuntime.jsx(
468
+ "a",
469
+ {
470
+ href: source.url,
471
+ className: "aeo-provenance-link",
472
+ itemProp: "url",
473
+ target: "_blank",
474
+ rel: "noopener noreferrer",
475
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { itemProp: "name", children: source.title })
476
+ }
477
+ ) : /* @__PURE__ */ jsxRuntime.jsx("span", { itemProp: "name", children: source.title }),
478
+ source.publisher && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "aeo-provenance-publisher", itemProp: "publisher", children: [
479
+ "\u2014 ",
480
+ source.publisher
481
+ ] }),
482
+ source.published_at && /* @__PURE__ */ jsxRuntime.jsxs(
483
+ "time",
484
+ {
485
+ className: "aeo-provenance-date",
486
+ itemProp: "datePublished",
487
+ dateTime: source.published_at,
488
+ children: [
489
+ "(",
490
+ new Date(source.published_at).toLocaleDateString(),
491
+ ")"
492
+ ]
493
+ }
494
+ ),
495
+ source.identifier && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "aeo-provenance-identifier", "data-sonor-identifier": source.identifier, children: source.identifier }),
496
+ source.excerpt && /* @__PURE__ */ jsxRuntime.jsx("blockquote", { className: "aeo-provenance-excerpt", itemProp: "description", children: source.excerpt })
497
+ ]
498
+ },
499
+ source.id
500
+ )) })
501
+ ]
502
+ }
503
+ );
504
+ }
505
+ function AEOCitedContent({
506
+ children,
507
+ sources,
508
+ showSourcesList = true,
509
+ className = ""
510
+ }) {
511
+ const baseClasses = "aeo-cited-content";
512
+ const combinedClasses = className ? `${baseClasses} ${className}` : baseClasses;
513
+ return /* @__PURE__ */ jsxRuntime.jsxs(
514
+ "section",
515
+ {
516
+ className: combinedClasses,
517
+ "data-sonor-ai": "cited-content",
518
+ "data-sonor-provenance": "inline",
519
+ "data-sonor-source-count": sources.length.toString(),
520
+ children: [
521
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aeo-cited-body", children }),
522
+ showSourcesList && sources.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(AEOProvenanceList, { sources, title: "References" })
523
+ ]
524
+ }
525
+ );
526
+ }
527
+
528
+ Object.defineProperty(exports, "generateLLMsFullTxt", {
529
+ enumerable: true,
530
+ get: function () { return chunkDDKW2FNA_js.generateLLMsFullTxt; }
531
+ });
532
+ Object.defineProperty(exports, "generateLLMsTxt", {
533
+ enumerable: true,
534
+ get: function () { return chunkDDKW2FNA_js.generateLLMsTxt; }
535
+ });
536
+ Object.defineProperty(exports, "getBusinessInfo", {
537
+ enumerable: true,
538
+ get: function () { return chunkDDKW2FNA_js.getBusinessInfo; }
539
+ });
540
+ Object.defineProperty(exports, "getFAQItems", {
541
+ enumerable: true,
542
+ get: function () { return chunkDDKW2FNA_js.getFAQItems; }
543
+ });
544
+ Object.defineProperty(exports, "getLLMsData", {
545
+ enumerable: true,
546
+ get: function () { return chunkDDKW2FNA_js.getLLMsData; }
547
+ });
548
+ Object.defineProperty(exports, "getOptimizedLLMsTxt", {
549
+ enumerable: true,
550
+ get: function () { return chunkDDKW2FNA_js.getOptimizedLLMsTxt; }
551
+ });
552
+ Object.defineProperty(exports, "getPageSummaries", {
553
+ enumerable: true,
554
+ get: function () { return chunkDDKW2FNA_js.getPageSummaries; }
555
+ });
556
+ Object.defineProperty(exports, "getServices", {
557
+ enumerable: true,
558
+ get: function () { return chunkDDKW2FNA_js.getServices; }
559
+ });
560
+ Object.defineProperty(exports, "writeLLMsTxtToPublic", {
561
+ enumerable: true,
562
+ get: function () { return chunkDDKW2FNA_js.writeLLMsTxtToPublic; }
563
+ });
564
+ exports.AEOBlock = AEOBlock;
565
+ exports.AEOCitedContent = AEOCitedContent;
566
+ exports.AEOClaim = AEOClaim;
567
+ exports.AEOComparison = AEOComparison;
568
+ exports.AEODefinition = AEODefinition;
569
+ exports.AEOEntity = AEOEntity;
570
+ exports.AEOProvenanceList = AEOProvenanceList;
571
+ exports.AEOStep = AEOStep;
572
+ exports.AEOSteps = AEOSteps;
573
+ exports.AEOSummary = AEOSummary;
574
+ exports.DEFAULT_SPEAKABLE_SELECTORS = DEFAULT_SPEAKABLE_SELECTORS;
575
+ exports.SpeakableSchema = SpeakableSchema;
576
+ exports.createLLMsFullTxtHandler = createLLMsFullTxtHandler;
577
+ exports.createLLMsTxtHandler = createLLMsTxtHandler;
578
+ exports.createSpeakableSchema = createSpeakableSchema;
579
+ exports.getSpeakableSelectorsForPage = getSpeakableSelectorsForPage;
580
+ //# sourceMappingURL=index.js.map
581
+ //# sourceMappingURL=index.js.map