@prenta/core 0.118.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 (1408) hide show
  1. package/CHANGELOG.md +2974 -0
  2. package/LICENSE +21 -0
  3. package/README.md +33 -0
  4. package/dist/a11y/index.d.ts +25 -0
  5. package/dist/a11y/index.d.ts.map +1 -0
  6. package/dist/a11y/index.js +91 -0
  7. package/dist/a11y/index.js.map +1 -0
  8. package/dist/actions.d.ts +130 -0
  9. package/dist/actions.d.ts.map +1 -0
  10. package/dist/actions.js +1324 -0
  11. package/dist/actions.js.map +1 -0
  12. package/dist/ai/brand-voice-alignment.d.ts +17 -0
  13. package/dist/ai/brand-voice-alignment.d.ts.map +1 -0
  14. package/dist/ai/brand-voice-alignment.js +40 -0
  15. package/dist/ai/brand-voice-alignment.js.map +1 -0
  16. package/dist/ai/brand-voice-analyze.d.ts +71 -0
  17. package/dist/ai/brand-voice-analyze.d.ts.map +1 -0
  18. package/dist/ai/brand-voice-analyze.js +151 -0
  19. package/dist/ai/brand-voice-analyze.js.map +1 -0
  20. package/dist/ai/brand-voice-document.d.ts +56 -0
  21. package/dist/ai/brand-voice-document.d.ts.map +1 -0
  22. package/dist/ai/brand-voice-document.js +335 -0
  23. package/dist/ai/brand-voice-document.js.map +1 -0
  24. package/dist/ai/brand-voice-fix.d.ts +26 -0
  25. package/dist/ai/brand-voice-fix.d.ts.map +1 -0
  26. package/dist/ai/brand-voice-fix.js +97 -0
  27. package/dist/ai/brand-voice-fix.js.map +1 -0
  28. package/dist/ai/brand-voice-save.d.ts +11 -0
  29. package/dist/ai/brand-voice-save.d.ts.map +1 -0
  30. package/dist/ai/brand-voice-save.js +51 -0
  31. package/dist/ai/brand-voice-save.js.map +1 -0
  32. package/dist/ai/brand-voice-sources.d.ts +16 -0
  33. package/dist/ai/brand-voice-sources.d.ts.map +1 -0
  34. package/dist/ai/brand-voice-sources.js +106 -0
  35. package/dist/ai/brand-voice-sources.js.map +1 -0
  36. package/dist/ai/brand-voice-structured.d.ts +87 -0
  37. package/dist/ai/brand-voice-structured.d.ts.map +1 -0
  38. package/dist/ai/brand-voice-structured.js +438 -0
  39. package/dist/ai/brand-voice-structured.js.map +1 -0
  40. package/dist/ai/brand-voice.d.ts +40 -0
  41. package/dist/ai/brand-voice.d.ts.map +1 -0
  42. package/dist/ai/brand-voice.js +103 -0
  43. package/dist/ai/brand-voice.js.map +1 -0
  44. package/dist/ai/catalog.d.ts +35 -0
  45. package/dist/ai/catalog.d.ts.map +1 -0
  46. package/dist/ai/catalog.js +370 -0
  47. package/dist/ai/catalog.js.map +1 -0
  48. package/dist/ai/config-store.d.ts +55 -0
  49. package/dist/ai/config-store.d.ts.map +1 -0
  50. package/dist/ai/config-store.js +177 -0
  51. package/dist/ai/config-store.js.map +1 -0
  52. package/dist/ai/content-writing-generate.d.ts +19 -0
  53. package/dist/ai/content-writing-generate.d.ts.map +1 -0
  54. package/dist/ai/content-writing-generate.js +64 -0
  55. package/dist/ai/content-writing-generate.js.map +1 -0
  56. package/dist/ai/feature-defaults.d.ts +20 -0
  57. package/dist/ai/feature-defaults.d.ts.map +1 -0
  58. package/dist/ai/feature-defaults.js +104 -0
  59. package/dist/ai/feature-defaults.js.map +1 -0
  60. package/dist/ai/index.d.ts +24 -0
  61. package/dist/ai/index.d.ts.map +1 -0
  62. package/dist/ai/index.js +24 -0
  63. package/dist/ai/index.js.map +1 -0
  64. package/dist/ai/models.d.ts +37 -0
  65. package/dist/ai/models.d.ts.map +1 -0
  66. package/dist/ai/models.js +126 -0
  67. package/dist/ai/models.js.map +1 -0
  68. package/dist/ai/providers/anthropic.d.ts +10 -0
  69. package/dist/ai/providers/anthropic.d.ts.map +1 -0
  70. package/dist/ai/providers/anthropic.js +63 -0
  71. package/dist/ai/providers/anthropic.js.map +1 -0
  72. package/dist/ai/providers/custom.d.ts +12 -0
  73. package/dist/ai/providers/custom.d.ts.map +1 -0
  74. package/dist/ai/providers/custom.js +76 -0
  75. package/dist/ai/providers/custom.js.map +1 -0
  76. package/dist/ai/providers/http.d.ts +66 -0
  77. package/dist/ai/providers/http.d.ts.map +1 -0
  78. package/dist/ai/providers/http.js +185 -0
  79. package/dist/ai/providers/http.js.map +1 -0
  80. package/dist/ai/providers/index.d.ts +18 -0
  81. package/dist/ai/providers/index.d.ts.map +1 -0
  82. package/dist/ai/providers/index.js +28 -0
  83. package/dist/ai/providers/index.js.map +1 -0
  84. package/dist/ai/providers/openai.d.ts +11 -0
  85. package/dist/ai/providers/openai.d.ts.map +1 -0
  86. package/dist/ai/providers/openai.js +44 -0
  87. package/dist/ai/providers/openai.js.map +1 -0
  88. package/dist/ai/providers/xai.d.ts +10 -0
  89. package/dist/ai/providers/xai.d.ts.map +1 -0
  90. package/dist/ai/providers/xai.js +38 -0
  91. package/dist/ai/providers/xai.js.map +1 -0
  92. package/dist/ai/resolve.d.ts +41 -0
  93. package/dist/ai/resolve.d.ts.map +1 -0
  94. package/dist/ai/resolve.js +143 -0
  95. package/dist/ai/resolve.js.map +1 -0
  96. package/dist/ai/runtime.d.ts +88 -0
  97. package/dist/ai/runtime.d.ts.map +1 -0
  98. package/dist/ai/runtime.js +192 -0
  99. package/dist/ai/runtime.js.map +1 -0
  100. package/dist/ai/sampling.d.ts +17 -0
  101. package/dist/ai/sampling.d.ts.map +1 -0
  102. package/dist/ai/sampling.js +51 -0
  103. package/dist/ai/sampling.js.map +1 -0
  104. package/dist/ai/types.d.ts +193 -0
  105. package/dist/ai/types.d.ts.map +1 -0
  106. package/dist/ai/types.js +11 -0
  107. package/dist/ai/types.js.map +1 -0
  108. package/dist/ai/usage.d.ts +18 -0
  109. package/dist/ai/usage.d.ts.map +1 -0
  110. package/dist/ai/usage.js +70 -0
  111. package/dist/ai/usage.js.map +1 -0
  112. package/dist/api/collection-introspection.d.ts +46 -0
  113. package/dist/api/collection-introspection.d.ts.map +1 -0
  114. package/dist/api/collection-introspection.js +82 -0
  115. package/dist/api/collection-introspection.js.map +1 -0
  116. package/dist/api/guarded-db.d.ts +14 -0
  117. package/dist/api/guarded-db.d.ts.map +1 -0
  118. package/dist/api/guarded-db.js +62 -0
  119. package/dist/api/guarded-db.js.map +1 -0
  120. package/dist/api/handler-factory.d.ts +7 -0
  121. package/dist/api/handler-factory.d.ts.map +1 -0
  122. package/dist/api/handler-factory.js +380 -0
  123. package/dist/api/handler-factory.js.map +1 -0
  124. package/dist/api/handlers.d.ts +8 -0
  125. package/dist/api/handlers.d.ts.map +1 -0
  126. package/dist/api/handlers.js +62 -0
  127. package/dist/api/handlers.js.map +1 -0
  128. package/dist/api/index.d.ts +8 -0
  129. package/dist/api/index.d.ts.map +1 -0
  130. package/dist/api/index.js +8 -0
  131. package/dist/api/index.js.map +1 -0
  132. package/dist/api/openapi.d.ts +3 -0
  133. package/dist/api/openapi.d.ts.map +1 -0
  134. package/dist/api/openapi.js +539 -0
  135. package/dist/api/openapi.js.map +1 -0
  136. package/dist/api/route-helpers.d.ts +369 -0
  137. package/dist/api/route-helpers.d.ts.map +1 -0
  138. package/dist/api/route-helpers.js +1574 -0
  139. package/dist/api/route-helpers.js.map +1 -0
  140. package/dist/api/router.d.ts +21 -0
  141. package/dist/api/router.d.ts.map +1 -0
  142. package/dist/api/router.js +75 -0
  143. package/dist/api/router.js.map +1 -0
  144. package/dist/api/routes/ai-seo.d.ts +3 -0
  145. package/dist/api/routes/ai-seo.d.ts.map +1 -0
  146. package/dist/api/routes/ai-seo.js +482 -0
  147. package/dist/api/routes/ai-seo.js.map +1 -0
  148. package/dist/api/routes/ai-settings.d.ts +3 -0
  149. package/dist/api/routes/ai-settings.d.ts.map +1 -0
  150. package/dist/api/routes/ai-settings.js +1078 -0
  151. package/dist/api/routes/ai-settings.js.map +1 -0
  152. package/dist/api/routes/auth.d.ts +3 -0
  153. package/dist/api/routes/auth.d.ts.map +1 -0
  154. package/dist/api/routes/auth.js +877 -0
  155. package/dist/api/routes/auth.js.map +1 -0
  156. package/dist/api/routes/collab.d.ts +3 -0
  157. package/dist/api/routes/collab.d.ts.map +1 -0
  158. package/dist/api/routes/collab.js +426 -0
  159. package/dist/api/routes/collab.js.map +1 -0
  160. package/dist/api/routes/dashboard.d.ts +7 -0
  161. package/dist/api/routes/dashboard.d.ts.map +1 -0
  162. package/dist/api/routes/dashboard.js +540 -0
  163. package/dist/api/routes/dashboard.js.map +1 -0
  164. package/dist/api/routes/documents.d.ts +11 -0
  165. package/dist/api/routes/documents.d.ts.map +1 -0
  166. package/dist/api/routes/documents.js +340 -0
  167. package/dist/api/routes/documents.js.map +1 -0
  168. package/dist/api/routes/email-settings.d.ts +3 -0
  169. package/dist/api/routes/email-settings.d.ts.map +1 -0
  170. package/dist/api/routes/email-settings.js +248 -0
  171. package/dist/api/routes/email-settings.js.map +1 -0
  172. package/dist/api/routes/folders.d.ts +3 -0
  173. package/dist/api/routes/folders.d.ts.map +1 -0
  174. package/dist/api/routes/folders.js +195 -0
  175. package/dist/api/routes/folders.js.map +1 -0
  176. package/dist/api/routes/forms.d.ts +3 -0
  177. package/dist/api/routes/forms.d.ts.map +1 -0
  178. package/dist/api/routes/forms.js +776 -0
  179. package/dist/api/routes/forms.js.map +1 -0
  180. package/dist/api/routes/globals.d.ts +3 -0
  181. package/dist/api/routes/globals.d.ts.map +1 -0
  182. package/dist/api/routes/globals.js +157 -0
  183. package/dist/api/routes/globals.js.map +1 -0
  184. package/dist/api/routes/media.d.ts +3 -0
  185. package/dist/api/routes/media.d.ts.map +1 -0
  186. package/dist/api/routes/media.js +807 -0
  187. package/dist/api/routes/media.js.map +1 -0
  188. package/dist/api/routes/meta.d.ts +3 -0
  189. package/dist/api/routes/meta.d.ts.map +1 -0
  190. package/dist/api/routes/meta.js +97 -0
  191. package/dist/api/routes/meta.js.map +1 -0
  192. package/dist/api/routes/navigations.d.ts +7 -0
  193. package/dist/api/routes/navigations.d.ts.map +1 -0
  194. package/dist/api/routes/navigations.js +81 -0
  195. package/dist/api/routes/navigations.js.map +1 -0
  196. package/dist/api/routes/page-templates.d.ts +3 -0
  197. package/dist/api/routes/page-templates.d.ts.map +1 -0
  198. package/dist/api/routes/page-templates.js +265 -0
  199. package/dist/api/routes/page-templates.js.map +1 -0
  200. package/dist/api/routes/presence.d.ts +3 -0
  201. package/dist/api/routes/presence.d.ts.map +1 -0
  202. package/dist/api/routes/presence.js +35 -0
  203. package/dist/api/routes/presence.js.map +1 -0
  204. package/dist/api/routes/preview.d.ts +3 -0
  205. package/dist/api/routes/preview.d.ts.map +1 -0
  206. package/dist/api/routes/preview.js +111 -0
  207. package/dist/api/routes/preview.js.map +1 -0
  208. package/dist/api/routes/redirects.d.ts +3 -0
  209. package/dist/api/routes/redirects.d.ts.map +1 -0
  210. package/dist/api/routes/redirects.js +937 -0
  211. package/dist/api/routes/redirects.js.map +1 -0
  212. package/dist/api/routes/saved-sections.d.ts +3 -0
  213. package/dist/api/routes/saved-sections.d.ts.map +1 -0
  214. package/dist/api/routes/saved-sections.js +1071 -0
  215. package/dist/api/routes/saved-sections.js.map +1 -0
  216. package/dist/api/routes/scheduling.d.ts +3 -0
  217. package/dist/api/routes/scheduling.d.ts.map +1 -0
  218. package/dist/api/routes/scheduling.js +391 -0
  219. package/dist/api/routes/scheduling.js.map +1 -0
  220. package/dist/api/routes/sections.d.ts +3 -0
  221. package/dist/api/routes/sections.d.ts.map +1 -0
  222. package/dist/api/routes/sections.js +512 -0
  223. package/dist/api/routes/sections.js.map +1 -0
  224. package/dist/api/routes/security-center.d.ts +3 -0
  225. package/dist/api/routes/security-center.d.ts.map +1 -0
  226. package/dist/api/routes/security-center.js +71 -0
  227. package/dist/api/routes/security-center.js.map +1 -0
  228. package/dist/api/routes/seo-public.d.ts +14 -0
  229. package/dist/api/routes/seo-public.d.ts.map +1 -0
  230. package/dist/api/routes/seo-public.js +1366 -0
  231. package/dist/api/routes/seo-public.js.map +1 -0
  232. package/dist/api/routes/seo.d.ts +8 -0
  233. package/dist/api/routes/seo.d.ts.map +1 -0
  234. package/dist/api/routes/seo.js +2256 -0
  235. package/dist/api/routes/seo.js.map +1 -0
  236. package/dist/api/routes/system.d.ts +3 -0
  237. package/dist/api/routes/system.d.ts.map +1 -0
  238. package/dist/api/routes/system.js +353 -0
  239. package/dist/api/routes/system.js.map +1 -0
  240. package/dist/api/routes/url-resolution.d.ts +3 -0
  241. package/dist/api/routes/url-resolution.d.ts.map +1 -0
  242. package/dist/api/routes/url-resolution.js +522 -0
  243. package/dist/api/routes/url-resolution.js.map +1 -0
  244. package/dist/api/routes/users.d.ts +3 -0
  245. package/dist/api/routes/users.d.ts.map +1 -0
  246. package/dist/api/routes/users.js +1177 -0
  247. package/dist/api/routes/users.js.map +1 -0
  248. package/dist/api/routes/webhooks.d.ts +3 -0
  249. package/dist/api/routes/webhooks.d.ts.map +1 -0
  250. package/dist/api/routes/webhooks.js +422 -0
  251. package/dist/api/routes/webhooks.js.map +1 -0
  252. package/dist/appearance/color.d.ts +24 -0
  253. package/dist/appearance/color.d.ts.map +1 -0
  254. package/dist/appearance/color.js +90 -0
  255. package/dist/appearance/color.js.map +1 -0
  256. package/dist/appearance/favicon-icon.d.ts +12 -0
  257. package/dist/appearance/favicon-icon.d.ts.map +1 -0
  258. package/dist/appearance/favicon-icon.js +58 -0
  259. package/dist/appearance/favicon-icon.js.map +1 -0
  260. package/dist/appearance/favicon-paths.d.ts +6 -0
  261. package/dist/appearance/favicon-paths.d.ts.map +1 -0
  262. package/dist/appearance/favicon-paths.js +6 -0
  263. package/dist/appearance/favicon-paths.js.map +1 -0
  264. package/dist/appearance/index.d.ts +15 -0
  265. package/dist/appearance/index.d.ts.map +1 -0
  266. package/dist/appearance/index.js +7 -0
  267. package/dist/appearance/index.js.map +1 -0
  268. package/dist/appearance/logo-shape.d.ts +26 -0
  269. package/dist/appearance/logo-shape.d.ts.map +1 -0
  270. package/dist/appearance/logo-shape.js +62 -0
  271. package/dist/appearance/logo-shape.js.map +1 -0
  272. package/dist/appearance/resolve.d.ts +52 -0
  273. package/dist/appearance/resolve.d.ts.map +1 -0
  274. package/dist/appearance/resolve.js +219 -0
  275. package/dist/appearance/resolve.js.map +1 -0
  276. package/dist/appearance/theme-tokens.d.ts +49 -0
  277. package/dist/appearance/theme-tokens.d.ts.map +1 -0
  278. package/dist/appearance/theme-tokens.js +229 -0
  279. package/dist/appearance/theme-tokens.js.map +1 -0
  280. package/dist/appearance/types.d.ts +110 -0
  281. package/dist/appearance/types.d.ts.map +1 -0
  282. package/dist/appearance/types.js +16 -0
  283. package/dist/appearance/types.js.map +1 -0
  284. package/dist/astro-cache.d.ts +80 -0
  285. package/dist/astro-cache.d.ts.map +1 -0
  286. package/dist/astro-cache.js +108 -0
  287. package/dist/astro-cache.js.map +1 -0
  288. package/dist/astro-content.d.ts +81 -0
  289. package/dist/astro-content.d.ts.map +1 -0
  290. package/dist/astro-content.js +151 -0
  291. package/dist/astro-content.js.map +1 -0
  292. package/dist/astro-redirects.d.ts +38 -0
  293. package/dist/astro-redirects.d.ts.map +1 -0
  294. package/dist/astro-redirects.js +45 -0
  295. package/dist/astro-redirects.js.map +1 -0
  296. package/dist/astro-security.d.ts +34 -0
  297. package/dist/astro-security.d.ts.map +1 -0
  298. package/dist/astro-security.js +31 -0
  299. package/dist/astro-security.js.map +1 -0
  300. package/dist/astro-site.d.ts +69 -0
  301. package/dist/astro-site.d.ts.map +1 -0
  302. package/dist/astro-site.js +81 -0
  303. package/dist/astro-site.js.map +1 -0
  304. package/dist/auth/index.d.ts +17 -0
  305. package/dist/auth/index.d.ts.map +1 -0
  306. package/dist/auth/index.js +12 -0
  307. package/dist/auth/index.js.map +1 -0
  308. package/dist/auth/invite-email.d.ts +12 -0
  309. package/dist/auth/invite-email.d.ts.map +1 -0
  310. package/dist/auth/invite-email.js +57 -0
  311. package/dist/auth/invite-email.js.map +1 -0
  312. package/dist/auth/invites.d.ts +72 -0
  313. package/dist/auth/invites.d.ts.map +1 -0
  314. package/dist/auth/invites.js +279 -0
  315. package/dist/auth/invites.js.map +1 -0
  316. package/dist/auth/mfa-pending.d.ts +24 -0
  317. package/dist/auth/mfa-pending.d.ts.map +1 -0
  318. package/dist/auth/mfa-pending.js +38 -0
  319. package/dist/auth/mfa-pending.js.map +1 -0
  320. package/dist/auth/oauth.d.ts +139 -0
  321. package/dist/auth/oauth.d.ts.map +1 -0
  322. package/dist/auth/oauth.js +376 -0
  323. package/dist/auth/oauth.js.map +1 -0
  324. package/dist/auth/password.d.ts +57 -0
  325. package/dist/auth/password.d.ts.map +1 -0
  326. package/dist/auth/password.js +150 -0
  327. package/dist/auth/password.js.map +1 -0
  328. package/dist/auth/providers/github.d.ts +9 -0
  329. package/dist/auth/providers/github.d.ts.map +1 -0
  330. package/dist/auth/providers/github.js +10 -0
  331. package/dist/auth/providers/github.js.map +1 -0
  332. package/dist/auth/providers/google.d.ts +9 -0
  333. package/dist/auth/providers/google.d.ts.map +1 -0
  334. package/dist/auth/providers/google.js +10 -0
  335. package/dist/auth/providers/google.js.map +1 -0
  336. package/dist/auth/providers/microsoft.d.ts +9 -0
  337. package/dist/auth/providers/microsoft.d.ts.map +1 -0
  338. package/dist/auth/providers/microsoft.js +11 -0
  339. package/dist/auth/providers/microsoft.js.map +1 -0
  340. package/dist/auth/reset-email.d.ts +10 -0
  341. package/dist/auth/reset-email.d.ts.map +1 -0
  342. package/dist/auth/reset-email.js +30 -0
  343. package/dist/auth/reset-email.js.map +1 -0
  344. package/dist/auth/reset.d.ts +42 -0
  345. package/dist/auth/reset.d.ts.map +1 -0
  346. package/dist/auth/reset.js +142 -0
  347. package/dist/auth/reset.js.map +1 -0
  348. package/dist/auth/roles.d.ts +51 -0
  349. package/dist/auth/roles.d.ts.map +1 -0
  350. package/dist/auth/roles.js +159 -0
  351. package/dist/auth/roles.js.map +1 -0
  352. package/dist/auth/session.d.ts +38 -0
  353. package/dist/auth/session.d.ts.map +1 -0
  354. package/dist/auth/session.js +106 -0
  355. package/dist/auth/session.js.map +1 -0
  356. package/dist/auth/team.d.ts +99 -0
  357. package/dist/auth/team.d.ts.map +1 -0
  358. package/dist/auth/team.js +327 -0
  359. package/dist/auth/team.js.map +1 -0
  360. package/dist/auth/totp.d.ts +31 -0
  361. package/dist/auth/totp.d.ts.map +1 -0
  362. package/dist/auth/totp.js +134 -0
  363. package/dist/auth/totp.js.map +1 -0
  364. package/dist/auth/user-admin.d.ts +119 -0
  365. package/dist/auth/user-admin.d.ts.map +1 -0
  366. package/dist/auth/user-admin.js +292 -0
  367. package/dist/auth/user-admin.js.map +1 -0
  368. package/dist/backup/index.d.ts +19 -0
  369. package/dist/backup/index.d.ts.map +1 -0
  370. package/dist/backup/index.js +24 -0
  371. package/dist/backup/index.js.map +1 -0
  372. package/dist/billing/stripe-meter.d.ts +22 -0
  373. package/dist/billing/stripe-meter.d.ts.map +1 -0
  374. package/dist/billing/stripe-meter.js +101 -0
  375. package/dist/billing/stripe-meter.js.map +1 -0
  376. package/dist/brand-voice/index.d.ts +7 -0
  377. package/dist/brand-voice/index.d.ts.map +1 -0
  378. package/dist/brand-voice/index.js +7 -0
  379. package/dist/brand-voice/index.js.map +1 -0
  380. package/dist/cache/http.d.ts +140 -0
  381. package/dist/cache/http.d.ts.map +1 -0
  382. package/dist/cache/http.js +213 -0
  383. package/dist/cache/http.js.map +1 -0
  384. package/dist/cache/index.d.ts +15 -0
  385. package/dist/cache/index.d.ts.map +1 -0
  386. package/dist/cache/index.js +32 -0
  387. package/dist/cache/index.js.map +1 -0
  388. package/dist/client.d.ts +51 -0
  389. package/dist/client.d.ts.map +1 -0
  390. package/dist/client.js +59 -0
  391. package/dist/client.js.map +1 -0
  392. package/dist/codegen/index.d.ts +4 -0
  393. package/dist/codegen/index.d.ts.map +1 -0
  394. package/dist/codegen/index.js +366 -0
  395. package/dist/codegen/index.js.map +1 -0
  396. package/dist/collections/index.d.ts +19 -0
  397. package/dist/collections/index.d.ts.map +1 -0
  398. package/dist/collections/index.js +30 -0
  399. package/dist/collections/index.js.map +1 -0
  400. package/dist/collections/presets.d.ts +90 -0
  401. package/dist/collections/presets.d.ts.map +1 -0
  402. package/dist/collections/presets.js +573 -0
  403. package/dist/collections/presets.js.map +1 -0
  404. package/dist/config/define.d.ts +8 -0
  405. package/dist/config/define.d.ts.map +1 -0
  406. package/dist/config/define.js +7 -0
  407. package/dist/config/define.js.map +1 -0
  408. package/dist/config/index.d.ts +31 -0
  409. package/dist/config/index.d.ts.map +1 -0
  410. package/dist/config/index.js +196 -0
  411. package/dist/config/index.js.map +1 -0
  412. package/dist/config/runtime.d.ts +107 -0
  413. package/dist/config/runtime.d.ts.map +1 -0
  414. package/dist/config/runtime.js +77 -0
  415. package/dist/config/runtime.js.map +1 -0
  416. package/dist/config/types.d.ts +924 -0
  417. package/dist/config/types.d.ts.map +1 -0
  418. package/dist/config/types.js +2 -0
  419. package/dist/config/types.js.map +1 -0
  420. package/dist/content/ai-api.d.ts +21 -0
  421. package/dist/content/ai-api.d.ts.map +1 -0
  422. package/dist/content/ai-api.js +25 -0
  423. package/dist/content/ai-api.js.map +1 -0
  424. package/dist/content/content-graph.d.ts +25 -0
  425. package/dist/content/content-graph.d.ts.map +1 -0
  426. package/dist/content/content-graph.js +40 -0
  427. package/dist/content/content-graph.js.map +1 -0
  428. package/dist/content/extract.d.ts +7 -0
  429. package/dist/content/extract.d.ts.map +1 -0
  430. package/dist/content/extract.js +33 -0
  431. package/dist/content/extract.js.map +1 -0
  432. package/dist/content/index.d.ts +9 -0
  433. package/dist/content/index.d.ts.map +1 -0
  434. package/dist/content/index.js +6 -0
  435. package/dist/content/index.js.map +1 -0
  436. package/dist/content/slug.d.ts +40 -0
  437. package/dist/content/slug.d.ts.map +1 -0
  438. package/dist/content/slug.js +78 -0
  439. package/dist/content/slug.js.map +1 -0
  440. package/dist/content/structured-data.d.ts +163 -0
  441. package/dist/content/structured-data.d.ts.map +1 -0
  442. package/dist/content/structured-data.js +479 -0
  443. package/dist/content/structured-data.js.map +1 -0
  444. package/dist/content-health/cron.d.ts +68 -0
  445. package/dist/content-health/cron.d.ts.map +1 -0
  446. package/dist/content-health/cron.js +167 -0
  447. package/dist/content-health/cron.js.map +1 -0
  448. package/dist/content-health/scanner.d.ts +119 -0
  449. package/dist/content-health/scanner.d.ts.map +1 -0
  450. package/dist/content-health/scanner.js +257 -0
  451. package/dist/content-health/scanner.js.map +1 -0
  452. package/dist/cron/index.d.ts +90 -0
  453. package/dist/cron/index.d.ts.map +1 -0
  454. package/dist/cron/index.js +299 -0
  455. package/dist/cron/index.js.map +1 -0
  456. package/dist/db/adapters/mysql.d.ts +5 -0
  457. package/dist/db/adapters/mysql.d.ts.map +1 -0
  458. package/dist/db/adapters/mysql.js +26 -0
  459. package/dist/db/adapters/mysql.js.map +1 -0
  460. package/dist/db/adapters/postgres.d.ts +7 -0
  461. package/dist/db/adapters/postgres.d.ts.map +1 -0
  462. package/dist/db/adapters/postgres.js +25 -0
  463. package/dist/db/adapters/postgres.js.map +1 -0
  464. package/dist/db/adapters/sqlite.d.ts +5 -0
  465. package/dist/db/adapters/sqlite.d.ts.map +1 -0
  466. package/dist/db/adapters/sqlite.js +27 -0
  467. package/dist/db/adapters/sqlite.js.map +1 -0
  468. package/dist/db/client-types.d.ts +75 -0
  469. package/dist/db/client-types.d.ts.map +1 -0
  470. package/dist/db/client-types.js +2 -0
  471. package/dist/db/client-types.js.map +1 -0
  472. package/dist/db/create-adapter.d.ts +11 -0
  473. package/dist/db/create-adapter.d.ts.map +1 -0
  474. package/dist/db/create-adapter.js +43 -0
  475. package/dist/db/create-adapter.js.map +1 -0
  476. package/dist/db/find-in-batches.d.ts +12 -0
  477. package/dist/db/find-in-batches.d.ts.map +1 -0
  478. package/dist/db/find-in-batches.js +20 -0
  479. package/dist/db/find-in-batches.js.map +1 -0
  480. package/dist/db/index.d.ts +9 -0
  481. package/dist/db/index.d.ts.map +1 -0
  482. package/dist/db/index.js +5 -0
  483. package/dist/db/index.js.map +1 -0
  484. package/dist/db/model-types.d.ts +602 -0
  485. package/dist/db/model-types.d.ts.map +1 -0
  486. package/dist/db/model-types.js +14 -0
  487. package/dist/db/model-types.js.map +1 -0
  488. package/dist/db.d.ts +20 -0
  489. package/dist/db.d.ts.map +1 -0
  490. package/dist/db.js +35 -0
  491. package/dist/db.js.map +1 -0
  492. package/dist/diagnostics/api-metrics.d.ts +135 -0
  493. package/dist/diagnostics/api-metrics.d.ts.map +1 -0
  494. package/dist/diagnostics/api-metrics.js +376 -0
  495. package/dist/diagnostics/api-metrics.js.map +1 -0
  496. package/dist/diagnostics/env.d.ts +44 -0
  497. package/dist/diagnostics/env.d.ts.map +1 -0
  498. package/dist/diagnostics/env.js +354 -0
  499. package/dist/diagnostics/env.js.map +1 -0
  500. package/dist/diagnostics/logger.d.ts +38 -0
  501. package/dist/diagnostics/logger.d.ts.map +1 -0
  502. package/dist/diagnostics/logger.js +89 -0
  503. package/dist/diagnostics/logger.js.map +1 -0
  504. package/dist/diagnostics/sentry.d.ts +8 -0
  505. package/dist/diagnostics/sentry.d.ts.map +1 -0
  506. package/dist/diagnostics/sentry.js +54 -0
  507. package/dist/diagnostics/sentry.js.map +1 -0
  508. package/dist/email/resolve.d.ts +27 -0
  509. package/dist/email/resolve.d.ts.map +1 -0
  510. package/dist/email/resolve.js +68 -0
  511. package/dist/email/resolve.js.map +1 -0
  512. package/dist/email/sender.d.ts +71 -0
  513. package/dist/email/sender.d.ts.map +1 -0
  514. package/dist/email/sender.js +41 -0
  515. package/dist/email/sender.js.map +1 -0
  516. package/dist/email/settings-store.d.ts +116 -0
  517. package/dist/email/settings-store.d.ts.map +1 -0
  518. package/dist/email/settings-store.js +222 -0
  519. package/dist/email/settings-store.js.map +1 -0
  520. package/dist/fields/component-block.d.ts +23 -0
  521. package/dist/fields/component-block.d.ts.map +1 -0
  522. package/dist/fields/component-block.js +137 -0
  523. package/dist/fields/component-block.js.map +1 -0
  524. package/dist/fields/index.d.ts +19 -0
  525. package/dist/fields/index.d.ts.map +1 -0
  526. package/dist/fields/index.js +95 -0
  527. package/dist/fields/index.js.map +1 -0
  528. package/dist/fields/presets.d.ts +144 -0
  529. package/dist/fields/presets.d.ts.map +1 -0
  530. package/dist/fields/presets.js +350 -0
  531. package/dist/fields/presets.js.map +1 -0
  532. package/dist/fields/relations.d.ts +87 -0
  533. package/dist/fields/relations.d.ts.map +1 -0
  534. package/dist/fields/relations.js +231 -0
  535. package/dist/fields/relations.js.map +1 -0
  536. package/dist/forms/analytics.d.ts +62 -0
  537. package/dist/forms/analytics.d.ts.map +1 -0
  538. package/dist/forms/analytics.js +95 -0
  539. package/dist/forms/analytics.js.map +1 -0
  540. package/dist/forms/attribution.d.ts +175 -0
  541. package/dist/forms/attribution.d.ts.map +1 -0
  542. package/dist/forms/attribution.js +577 -0
  543. package/dist/forms/attribution.js.map +1 -0
  544. package/dist/forms/client-validation.d.ts +50 -0
  545. package/dist/forms/client-validation.d.ts.map +1 -0
  546. package/dist/forms/client-validation.js +215 -0
  547. package/dist/forms/client-validation.js.map +1 -0
  548. package/dist/forms/delivery.d.ts +89 -0
  549. package/dist/forms/delivery.d.ts.map +1 -0
  550. package/dist/forms/delivery.js +477 -0
  551. package/dist/forms/delivery.js.map +1 -0
  552. package/dist/forms/encryption.d.ts +20 -0
  553. package/dist/forms/encryption.d.ts.map +1 -0
  554. package/dist/forms/encryption.js +80 -0
  555. package/dist/forms/encryption.js.map +1 -0
  556. package/dist/forms/entries.d.ts +68 -0
  557. package/dist/forms/entries.d.ts.map +1 -0
  558. package/dist/forms/entries.js +557 -0
  559. package/dist/forms/entries.js.map +1 -0
  560. package/dist/forms/files.d.ts +38 -0
  561. package/dist/forms/files.d.ts.map +1 -0
  562. package/dist/forms/files.js +134 -0
  563. package/dist/forms/files.js.map +1 -0
  564. package/dist/forms/index.d.ts +21 -0
  565. package/dist/forms/index.d.ts.map +1 -0
  566. package/dist/forms/index.js +20 -0
  567. package/dist/forms/index.js.map +1 -0
  568. package/dist/forms/notify.d.ts +80 -0
  569. package/dist/forms/notify.d.ts.map +1 -0
  570. package/dist/forms/notify.js +357 -0
  571. package/dist/forms/notify.js.map +1 -0
  572. package/dist/forms/prefetch.d.ts +17 -0
  573. package/dist/forms/prefetch.d.ts.map +1 -0
  574. package/dist/forms/prefetch.js +36 -0
  575. package/dist/forms/prefetch.js.map +1 -0
  576. package/dist/forms/public-html.d.ts +22 -0
  577. package/dist/forms/public-html.d.ts.map +1 -0
  578. package/dist/forms/public-html.js +145 -0
  579. package/dist/forms/public-html.js.map +1 -0
  580. package/dist/forms/service.d.ts +102 -0
  581. package/dist/forms/service.d.ts.map +1 -0
  582. package/dist/forms/service.js +625 -0
  583. package/dist/forms/service.js.map +1 -0
  584. package/dist/forms/spam.d.ts +33 -0
  585. package/dist/forms/spam.d.ts.map +1 -0
  586. package/dist/forms/spam.js +93 -0
  587. package/dist/forms/spam.js.map +1 -0
  588. package/dist/forms/submission.d.ts +132 -0
  589. package/dist/forms/submission.d.ts.map +1 -0
  590. package/dist/forms/submission.js +348 -0
  591. package/dist/forms/submission.js.map +1 -0
  592. package/dist/forms/types.d.ts +259 -0
  593. package/dist/forms/types.d.ts.map +1 -0
  594. package/dist/forms/types.js +20 -0
  595. package/dist/forms/types.js.map +1 -0
  596. package/dist/forms/validation.d.ts +19 -0
  597. package/dist/forms/validation.d.ts.map +1 -0
  598. package/dist/forms/validation.js +166 -0
  599. package/dist/forms/validation.js.map +1 -0
  600. package/dist/forms/webhooks.d.ts +60 -0
  601. package/dist/forms/webhooks.d.ts.map +1 -0
  602. package/dist/forms/webhooks.js +360 -0
  603. package/dist/forms/webhooks.js.map +1 -0
  604. package/dist/forms/webmcp.d.ts +36 -0
  605. package/dist/forms/webmcp.d.ts.map +1 -0
  606. package/dist/forms/webmcp.js +67 -0
  607. package/dist/forms/webmcp.js.map +1 -0
  608. package/dist/forms/xlsx.d.ts +10 -0
  609. package/dist/forms/xlsx.d.ts.map +1 -0
  610. package/dist/forms/xlsx.js +207 -0
  611. package/dist/forms/xlsx.js.map +1 -0
  612. package/dist/generated/browser.d.ts +220 -0
  613. package/dist/generated/browser.js +17 -0
  614. package/dist/generated/client.d.ts +239 -0
  615. package/dist/generated/client.js +34 -0
  616. package/dist/generated/commonInputTypes.d.ts +887 -0
  617. package/dist/generated/commonInputTypes.js +10 -0
  618. package/dist/generated/enums.d.ts +83 -0
  619. package/dist/generated/enums.js +81 -0
  620. package/dist/generated/internal/class.d.ts +517 -0
  621. package/dist/generated/internal/class.js +52 -0
  622. package/dist/generated/internal/prismaNamespace.d.ts +4184 -0
  623. package/dist/generated/internal/prismaNamespace.js +932 -0
  624. package/dist/generated/internal/prismaNamespaceBrowser.d.ts +968 -0
  625. package/dist/generated/internal/prismaNamespaceBrowser.js +903 -0
  626. package/dist/generated/models/AiCrawlerHit.d.ts +1115 -0
  627. package/dist/generated/models/AiCrawlerHit.js +1 -0
  628. package/dist/generated/models/ApiKey.d.ts +1388 -0
  629. package/dist/generated/models/ApiKey.js +1 -0
  630. package/dist/generated/models/ApiRequestMetric.d.ts +1229 -0
  631. package/dist/generated/models/ApiRequestMetric.js +1 -0
  632. package/dist/generated/models/AuditLog.d.ts +1062 -0
  633. package/dist/generated/models/AuditLog.js +1 -0
  634. package/dist/generated/models/BackupRecord.d.ts +1100 -0
  635. package/dist/generated/models/BackupRecord.js +1 -0
  636. package/dist/generated/models/ContentIssue.d.ts +1318 -0
  637. package/dist/generated/models/ContentIssue.js +1 -0
  638. package/dist/generated/models/ContentLock.d.ts +1295 -0
  639. package/dist/generated/models/ContentLock.js +1 -0
  640. package/dist/generated/models/ContentTemplate.d.ts +1254 -0
  641. package/dist/generated/models/ContentTemplate.js +1 -0
  642. package/dist/generated/models/Document.d.ts +3443 -0
  643. package/dist/generated/models/Document.js +1 -0
  644. package/dist/generated/models/Folder.d.ts +1689 -0
  645. package/dist/generated/models/Folder.js +1 -0
  646. package/dist/generated/models/FormDeliveryAttempt.d.ts +1705 -0
  647. package/dist/generated/models/FormDeliveryAttempt.js +1 -0
  648. package/dist/generated/models/FormSchemaVersion.d.ts +1105 -0
  649. package/dist/generated/models/FormSchemaVersion.js +1 -0
  650. package/dist/generated/models/FormSubmission.d.ts +2125 -0
  651. package/dist/generated/models/FormSubmission.js +1 -0
  652. package/dist/generated/models/FormSubmissionFile.d.ts +1438 -0
  653. package/dist/generated/models/FormSubmissionFile.js +1 -0
  654. package/dist/generated/models/FormWebhook.d.ts +1271 -0
  655. package/dist/generated/models/FormWebhook.js +1 -0
  656. package/dist/generated/models/InAppNotification.d.ts +1295 -0
  657. package/dist/generated/models/InAppNotification.js +1 -0
  658. package/dist/generated/models/Invite.d.ts +1240 -0
  659. package/dist/generated/models/Invite.js +1 -0
  660. package/dist/generated/models/Media.d.ts +2759 -0
  661. package/dist/generated/models/Media.js +1 -0
  662. package/dist/generated/models/MediaUsage.d.ts +1301 -0
  663. package/dist/generated/models/MediaUsage.js +1 -0
  664. package/dist/generated/models/OAuthAccount.d.ts +1300 -0
  665. package/dist/generated/models/OAuthAccount.js +1 -0
  666. package/dist/generated/models/PageTemplate.d.ts +1118 -0
  667. package/dist/generated/models/PageTemplate.js +1 -0
  668. package/dist/generated/models/PasswordResetToken.d.ts +1225 -0
  669. package/dist/generated/models/PasswordResetToken.js +1 -0
  670. package/dist/generated/models/Redirect.d.ts +1342 -0
  671. package/dist/generated/models/Redirect.js +1 -0
  672. package/dist/generated/models/Redirect404Hit.d.ts +1107 -0
  673. package/dist/generated/models/Redirect404Hit.js +1 -0
  674. package/dist/generated/models/RedirectSuggestion.d.ts +1185 -0
  675. package/dist/generated/models/RedirectSuggestion.js +1 -0
  676. package/dist/generated/models/SavedSection.d.ts +1156 -0
  677. package/dist/generated/models/SavedSection.js +1 -0
  678. package/dist/generated/models/ScriptTag.d.ts +1291 -0
  679. package/dist/generated/models/ScriptTag.js +1 -0
  680. package/dist/generated/models/SeoAuditRun.d.ts +1570 -0
  681. package/dist/generated/models/SeoAuditRun.js +1 -0
  682. package/dist/generated/models/SeoIssue.d.ts +1873 -0
  683. package/dist/generated/models/SeoIssue.js +1 -0
  684. package/dist/generated/models/Session.d.ts +1330 -0
  685. package/dist/generated/models/Session.js +1 -0
  686. package/dist/generated/models/Site.d.ts +1062 -0
  687. package/dist/generated/models/Site.js +1 -0
  688. package/dist/generated/models/User.d.ts +4344 -0
  689. package/dist/generated/models/User.js +1 -0
  690. package/dist/generated/models/Version.d.ts +1334 -0
  691. package/dist/generated/models/Version.js +1 -0
  692. package/dist/generated/models/WebhookDeliveryLog.d.ts +1479 -0
  693. package/dist/generated/models/WebhookDeliveryLog.js +1 -0
  694. package/dist/generated/models/WebhookEndpoint.d.ts +1331 -0
  695. package/dist/generated/models/WebhookEndpoint.js +1 -0
  696. package/dist/generated/models/WorkflowState.d.ts +1436 -0
  697. package/dist/generated/models/WorkflowState.js +1 -0
  698. package/dist/generated/models.d.ts +37 -0
  699. package/dist/generated/models.js +1 -0
  700. package/dist/graphql/index.d.ts +11 -0
  701. package/dist/graphql/index.d.ts.map +1 -0
  702. package/dist/graphql/index.js +74 -0
  703. package/dist/graphql/index.js.map +1 -0
  704. package/dist/graphql/resolvers.d.ts +8 -0
  705. package/dist/graphql/resolvers.d.ts.map +1 -0
  706. package/dist/graphql/resolvers.js +89 -0
  707. package/dist/graphql/resolvers.js.map +1 -0
  708. package/dist/graphql/schema-builder.d.ts +3 -0
  709. package/dist/graphql/schema-builder.d.ts.map +1 -0
  710. package/dist/graphql/schema-builder.js +103 -0
  711. package/dist/graphql/schema-builder.js.map +1 -0
  712. package/dist/health/index.d.ts +27 -0
  713. package/dist/health/index.d.ts.map +1 -0
  714. package/dist/health/index.js +43 -0
  715. package/dist/health/index.js.map +1 -0
  716. package/dist/i18n/index.d.ts +22 -0
  717. package/dist/i18n/index.d.ts.map +1 -0
  718. package/dist/i18n/index.js +37 -0
  719. package/dist/i18n/index.js.map +1 -0
  720. package/dist/index.d.ts +125 -0
  721. package/dist/index.d.ts.map +1 -0
  722. package/dist/index.js +132 -0
  723. package/dist/index.js.map +1 -0
  724. package/dist/media/content-hash.d.ts +3 -0
  725. package/dist/media/content-hash.d.ts.map +1 -0
  726. package/dist/media/content-hash.js +11 -0
  727. package/dist/media/content-hash.js.map +1 -0
  728. package/dist/media/denormalize.d.ts +23 -0
  729. package/dist/media/denormalize.d.ts.map +1 -0
  730. package/dist/media/denormalize.js +170 -0
  731. package/dist/media/denormalize.js.map +1 -0
  732. package/dist/media/index.d.ts +8 -0
  733. package/dist/media/index.d.ts.map +1 -0
  734. package/dist/media/index.js +5 -0
  735. package/dist/media/index.js.map +1 -0
  736. package/dist/media/merge-document-media.d.ts +23 -0
  737. package/dist/media/merge-document-media.d.ts.map +1 -0
  738. package/dist/media/merge-document-media.js +146 -0
  739. package/dist/media/merge-document-media.js.map +1 -0
  740. package/dist/media/metadata-patch.d.ts +21 -0
  741. package/dist/media/metadata-patch.d.ts.map +1 -0
  742. package/dist/media/metadata-patch.js +37 -0
  743. package/dist/media/metadata-patch.js.map +1 -0
  744. package/dist/media/optimize.d.ts +61 -0
  745. package/dist/media/optimize.d.ts.map +1 -0
  746. package/dist/media/optimize.js +168 -0
  747. package/dist/media/optimize.js.map +1 -0
  748. package/dist/media/seo.d.ts +110 -0
  749. package/dist/media/seo.d.ts.map +1 -0
  750. package/dist/media/seo.js +263 -0
  751. package/dist/media/seo.js.map +1 -0
  752. package/dist/media/usage-sync.d.ts +37 -0
  753. package/dist/media/usage-sync.d.ts.map +1 -0
  754. package/dist/media/usage-sync.js +234 -0
  755. package/dist/media/usage-sync.js.map +1 -0
  756. package/dist/middleware.d.ts +17 -0
  757. package/dist/middleware.d.ts.map +1 -0
  758. package/dist/middleware.js +159 -0
  759. package/dist/middleware.js.map +1 -0
  760. package/dist/multisite/index.d.ts +20 -0
  761. package/dist/multisite/index.d.ts.map +1 -0
  762. package/dist/multisite/index.js +26 -0
  763. package/dist/multisite/index.js.map +1 -0
  764. package/dist/navigation/unresolved-targets.d.ts +35 -0
  765. package/dist/navigation/unresolved-targets.d.ts.map +1 -0
  766. package/dist/navigation/unresolved-targets.js +109 -0
  767. package/dist/navigation/unresolved-targets.js.map +1 -0
  768. package/dist/next/preview.d.ts +10 -0
  769. package/dist/next/preview.d.ts.map +1 -0
  770. package/dist/next/preview.js +17 -0
  771. package/dist/next/preview.js.map +1 -0
  772. package/dist/next/script-tags.d.ts +15 -0
  773. package/dist/next/script-tags.d.ts.map +1 -0
  774. package/dist/next/script-tags.js +58 -0
  775. package/dist/next/script-tags.js.map +1 -0
  776. package/dist/next-site.d.ts +29 -0
  777. package/dist/next-site.d.ts.map +1 -0
  778. package/dist/next-site.js +60 -0
  779. package/dist/next-site.js.map +1 -0
  780. package/dist/next.d.ts +33 -0
  781. package/dist/next.d.ts.map +1 -0
  782. package/dist/next.js +142 -0
  783. package/dist/next.js.map +1 -0
  784. package/dist/notifications/index.d.ts +20 -0
  785. package/dist/notifications/index.d.ts.map +1 -0
  786. package/dist/notifications/index.js +22 -0
  787. package/dist/notifications/index.js.map +1 -0
  788. package/dist/page-builder/a11y-fix.d.ts +20 -0
  789. package/dist/page-builder/a11y-fix.d.ts.map +1 -0
  790. package/dist/page-builder/a11y-fix.js +182 -0
  791. package/dist/page-builder/a11y-fix.js.map +1 -0
  792. package/dist/page-builder/ai-pipeline.d.ts +43 -0
  793. package/dist/page-builder/ai-pipeline.d.ts.map +1 -0
  794. package/dist/page-builder/ai-pipeline.js +165 -0
  795. package/dist/page-builder/ai-pipeline.js.map +1 -0
  796. package/dist/page-builder/blocks.d.ts +27 -0
  797. package/dist/page-builder/blocks.d.ts.map +1 -0
  798. package/dist/page-builder/blocks.js +313 -0
  799. package/dist/page-builder/blocks.js.map +1 -0
  800. package/dist/page-builder/design-scorer.d.ts +27 -0
  801. package/dist/page-builder/design-scorer.d.ts.map +1 -0
  802. package/dist/page-builder/design-scorer.js +612 -0
  803. package/dist/page-builder/design-scorer.js.map +1 -0
  804. package/dist/page-builder/index.d.ts +18 -0
  805. package/dist/page-builder/index.d.ts.map +1 -0
  806. package/dist/page-builder/index.js +20 -0
  807. package/dist/page-builder/index.js.map +1 -0
  808. package/dist/page-builder/schema.d.ts +107 -0
  809. package/dist/page-builder/schema.d.ts.map +1 -0
  810. package/dist/page-builder/schema.js +90 -0
  811. package/dist/page-builder/schema.js.map +1 -0
  812. package/dist/page-builder/seo-analyzer.d.ts +61 -0
  813. package/dist/page-builder/seo-analyzer.d.ts.map +1 -0
  814. package/dist/page-builder/seo-analyzer.js +778 -0
  815. package/dist/page-builder/seo-analyzer.js.map +1 -0
  816. package/dist/page-builder/templates.d.ts +9 -0
  817. package/dist/page-builder/templates.d.ts.map +1 -0
  818. package/dist/page-builder/templates.js +742 -0
  819. package/dist/page-builder/templates.js.map +1 -0
  820. package/dist/page-builder/tree.d.ts +17 -0
  821. package/dist/page-builder/tree.d.ts.map +1 -0
  822. package/dist/page-builder/tree.js +160 -0
  823. package/dist/page-builder/tree.js.map +1 -0
  824. package/dist/page-builder/types.d.ts +112 -0
  825. package/dist/page-builder/types.d.ts.map +1 -0
  826. package/dist/page-builder/types.js +4 -0
  827. package/dist/page-builder/types.js.map +1 -0
  828. package/dist/page-builder/validate.d.ts +6 -0
  829. package/dist/page-builder/validate.d.ts.map +1 -0
  830. package/dist/page-builder/validate.js +87 -0
  831. package/dist/page-builder/validate.js.map +1 -0
  832. package/dist/plan/features.d.ts +17 -0
  833. package/dist/plan/features.d.ts.map +1 -0
  834. package/dist/plan/features.js +73 -0
  835. package/dist/plan/features.js.map +1 -0
  836. package/dist/posts/query.d.ts +50 -0
  837. package/dist/posts/query.d.ts.map +1 -0
  838. package/dist/posts/query.js +105 -0
  839. package/dist/posts/query.js.map +1 -0
  840. package/dist/presence/index.d.ts +24 -0
  841. package/dist/presence/index.d.ts.map +1 -0
  842. package/dist/presence/index.js +99 -0
  843. package/dist/presence/index.js.map +1 -0
  844. package/dist/preview/event-bus.d.ts +39 -0
  845. package/dist/preview/event-bus.d.ts.map +1 -0
  846. package/dist/preview/event-bus.js +73 -0
  847. package/dist/preview/event-bus.js.map +1 -0
  848. package/dist/preview/index.d.ts +36 -0
  849. package/dist/preview/index.d.ts.map +1 -0
  850. package/dist/preview/index.js +68 -0
  851. package/dist/preview/index.js.map +1 -0
  852. package/dist/preview/sse-stream.d.ts +47 -0
  853. package/dist/preview/sse-stream.d.ts.map +1 -0
  854. package/dist/preview/sse-stream.js +111 -0
  855. package/dist/preview/sse-stream.js.map +1 -0
  856. package/dist/privacy/index.d.ts +33 -0
  857. package/dist/privacy/index.d.ts.map +1 -0
  858. package/dist/privacy/index.js +15 -0
  859. package/dist/privacy/index.js.map +1 -0
  860. package/dist/public-redirects.d.ts +78 -0
  861. package/dist/public-redirects.d.ts.map +1 -0
  862. package/dist/public-redirects.js +187 -0
  863. package/dist/public-redirects.js.map +1 -0
  864. package/dist/public-security-headers.d.ts +27 -0
  865. package/dist/public-security-headers.d.ts.map +1 -0
  866. package/dist/public-security-headers.js +40 -0
  867. package/dist/public-security-headers.js.map +1 -0
  868. package/dist/publishing/publish-sync.d.ts +50 -0
  869. package/dist/publishing/publish-sync.d.ts.map +1 -0
  870. package/dist/publishing/publish-sync.js +124 -0
  871. package/dist/publishing/publish-sync.js.map +1 -0
  872. package/dist/purge/adapters.d.ts +60 -0
  873. package/dist/purge/adapters.d.ts.map +1 -0
  874. package/dist/purge/adapters.js +81 -0
  875. package/dist/purge/adapters.js.map +1 -0
  876. package/dist/purge/index.d.ts +12 -0
  877. package/dist/purge/index.d.ts.map +1 -0
  878. package/dist/purge/index.js +10 -0
  879. package/dist/purge/index.js.map +1 -0
  880. package/dist/purge/receiver.d.ts +95 -0
  881. package/dist/purge/receiver.d.ts.map +1 -0
  882. package/dist/purge/receiver.js +176 -0
  883. package/dist/purge/receiver.js.map +1 -0
  884. package/dist/realtime/comments.d.ts +217 -0
  885. package/dist/realtime/comments.d.ts.map +1 -0
  886. package/dist/realtime/comments.js +282 -0
  887. package/dist/realtime/comments.js.map +1 -0
  888. package/dist/realtime/gateway.d.ts +107 -0
  889. package/dist/realtime/gateway.d.ts.map +1 -0
  890. package/dist/realtime/gateway.js +215 -0
  891. package/dist/realtime/gateway.js.map +1 -0
  892. package/dist/realtime/index.d.ts +21 -0
  893. package/dist/realtime/index.d.ts.map +1 -0
  894. package/dist/realtime/index.js +27 -0
  895. package/dist/realtime/index.js.map +1 -0
  896. package/dist/realtime/notification-bus.d.ts +60 -0
  897. package/dist/realtime/notification-bus.d.ts.map +1 -0
  898. package/dist/realtime/notification-bus.js +77 -0
  899. package/dist/realtime/notification-bus.js.map +1 -0
  900. package/dist/realtime/notification-stream.d.ts +50 -0
  901. package/dist/realtime/notification-stream.d.ts.map +1 -0
  902. package/dist/realtime/notification-stream.js +148 -0
  903. package/dist/realtime/notification-stream.js.map +1 -0
  904. package/dist/realtime/notifications.d.ts +201 -0
  905. package/dist/realtime/notifications.d.ts.map +1 -0
  906. package/dist/realtime/notifications.js +233 -0
  907. package/dist/realtime/notifications.js.map +1 -0
  908. package/dist/realtime/persistence.d.ts +72 -0
  909. package/dist/realtime/persistence.d.ts.map +1 -0
  910. package/dist/realtime/persistence.js +53 -0
  911. package/dist/realtime/persistence.js.map +1 -0
  912. package/dist/realtime/sse.d.ts +20 -0
  913. package/dist/realtime/sse.d.ts.map +1 -0
  914. package/dist/realtime/sse.js +31 -0
  915. package/dist/realtime/sse.js.map +1 -0
  916. package/dist/redirects/auto.d.ts +45 -0
  917. package/dist/redirects/auto.d.ts.map +1 -0
  918. package/dist/redirects/auto.js +60 -0
  919. package/dist/redirects/auto.js.map +1 -0
  920. package/dist/redirects/fix-link.d.ts +15 -0
  921. package/dist/redirects/fix-link.d.ts.map +1 -0
  922. package/dist/redirects/fix-link.js +66 -0
  923. package/dist/redirects/fix-link.js.map +1 -0
  924. package/dist/redirects/graph.d.ts +92 -0
  925. package/dist/redirects/graph.d.ts.map +1 -0
  926. package/dist/redirects/graph.js +176 -0
  927. package/dist/redirects/graph.js.map +1 -0
  928. package/dist/redirects/index.d.ts +17 -0
  929. package/dist/redirects/index.d.ts.map +1 -0
  930. package/dist/redirects/index.js +10 -0
  931. package/dist/redirects/index.js.map +1 -0
  932. package/dist/redirects/legitimacy.d.ts +23 -0
  933. package/dist/redirects/legitimacy.d.ts.map +1 -0
  934. package/dist/redirects/legitimacy.js +64 -0
  935. package/dist/redirects/legitimacy.js.map +1 -0
  936. package/dist/redirects/recovery.d.ts +92 -0
  937. package/dist/redirects/recovery.d.ts.map +1 -0
  938. package/dist/redirects/recovery.js +210 -0
  939. package/dist/redirects/recovery.js.map +1 -0
  940. package/dist/redirects/rerank.d.ts +24 -0
  941. package/dist/redirects/rerank.d.ts.map +1 -0
  942. package/dist/redirects/rerank.js +82 -0
  943. package/dist/redirects/rerank.js.map +1 -0
  944. package/dist/redirects/suggest.d.ts +23 -0
  945. package/dist/redirects/suggest.d.ts.map +1 -0
  946. package/dist/redirects/suggest.js +80 -0
  947. package/dist/redirects/suggest.js.map +1 -0
  948. package/dist/redirects/typo.d.ts +10 -0
  949. package/dist/redirects/typo.d.ts.map +1 -0
  950. package/dist/redirects/typo.js +51 -0
  951. package/dist/redirects/typo.js.map +1 -0
  952. package/dist/redirects/validate-destination.d.ts +13 -0
  953. package/dist/redirects/validate-destination.d.ts.map +1 -0
  954. package/dist/redirects/validate-destination.js +51 -0
  955. package/dist/redirects/validate-destination.js.map +1 -0
  956. package/dist/relationships/index.d.ts +13 -0
  957. package/dist/relationships/index.d.ts.map +1 -0
  958. package/dist/relationships/index.js +12 -0
  959. package/dist/relationships/index.js.map +1 -0
  960. package/dist/scheduling/index.d.ts +45 -0
  961. package/dist/scheduling/index.d.ts.map +1 -0
  962. package/dist/scheduling/index.js +141 -0
  963. package/dist/scheduling/index.js.map +1 -0
  964. package/dist/script-tags/index.d.ts +3 -0
  965. package/dist/script-tags/index.d.ts.map +1 -0
  966. package/dist/script-tags/index.js +3 -0
  967. package/dist/script-tags/index.js.map +1 -0
  968. package/dist/script-tags/invalidate.d.ts +3 -0
  969. package/dist/script-tags/invalidate.d.ts.map +1 -0
  970. package/dist/script-tags/invalidate.js +16 -0
  971. package/dist/script-tags/invalidate.js.map +1 -0
  972. package/dist/script-tags/resolve.d.ts +41 -0
  973. package/dist/script-tags/resolve.d.ts.map +1 -0
  974. package/dist/script-tags/resolve.js +130 -0
  975. package/dist/script-tags/resolve.js.map +1 -0
  976. package/dist/search/index.d.ts +25 -0
  977. package/dist/search/index.d.ts.map +1 -0
  978. package/dist/search/index.js +189 -0
  979. package/dist/search/index.js.map +1 -0
  980. package/dist/sections/bridge.d.ts +8 -0
  981. package/dist/sections/bridge.d.ts.map +1 -0
  982. package/dist/sections/bridge.js +211 -0
  983. package/dist/sections/bridge.js.map +1 -0
  984. package/dist/sections/define.d.ts +21 -0
  985. package/dist/sections/define.d.ts.map +1 -0
  986. package/dist/sections/define.js +160 -0
  987. package/dist/sections/define.js.map +1 -0
  988. package/dist/sections/embed.d.ts +24 -0
  989. package/dist/sections/embed.d.ts.map +1 -0
  990. package/dist/sections/embed.js +78 -0
  991. package/dist/sections/embed.js.map +1 -0
  992. package/dist/sections/fields.d.ts +37 -0
  993. package/dist/sections/fields.d.ts.map +1 -0
  994. package/dist/sections/fields.js +50 -0
  995. package/dist/sections/fields.js.map +1 -0
  996. package/dist/sections/helpers.d.ts +149 -0
  997. package/dist/sections/helpers.d.ts.map +1 -0
  998. package/dist/sections/helpers.js +373 -0
  999. package/dist/sections/helpers.js.map +1 -0
  1000. package/dist/sections/index.d.ts +22 -0
  1001. package/dist/sections/index.d.ts.map +1 -0
  1002. package/dist/sections/index.js +18 -0
  1003. package/dist/sections/index.js.map +1 -0
  1004. package/dist/sections/media-enrich.d.ts +45 -0
  1005. package/dist/sections/media-enrich.d.ts.map +1 -0
  1006. package/dist/sections/media-enrich.js +137 -0
  1007. package/dist/sections/media-enrich.js.map +1 -0
  1008. package/dist/sections/migrate.d.ts +42 -0
  1009. package/dist/sections/migrate.d.ts.map +1 -0
  1010. package/dist/sections/migrate.js +66 -0
  1011. package/dist/sections/migrate.js.map +1 -0
  1012. package/dist/sections/registry.d.ts +46 -0
  1013. package/dist/sections/registry.d.ts.map +1 -0
  1014. package/dist/sections/registry.js +598 -0
  1015. package/dist/sections/registry.js.map +1 -0
  1016. package/dist/sections/types.d.ts +192 -0
  1017. package/dist/sections/types.d.ts.map +1 -0
  1018. package/dist/sections/types.js +21 -0
  1019. package/dist/sections/types.js.map +1 -0
  1020. package/dist/sections/validate.d.ts +12 -0
  1021. package/dist/sections/validate.d.ts.map +1 -0
  1022. package/dist/sections/validate.js +186 -0
  1023. package/dist/sections/validate.js.map +1 -0
  1024. package/dist/sections/widget-embed.d.ts +45 -0
  1025. package/dist/sections/widget-embed.d.ts.map +1 -0
  1026. package/dist/sections/widget-embed.js +129 -0
  1027. package/dist/sections/widget-embed.js.map +1 -0
  1028. package/dist/security/access.d.ts +35 -0
  1029. package/dist/security/access.d.ts.map +1 -0
  1030. package/dist/security/access.js +133 -0
  1031. package/dist/security/access.js.map +1 -0
  1032. package/dist/security/anomaly-detection.d.ts +17 -0
  1033. package/dist/security/anomaly-detection.d.ts.map +1 -0
  1034. package/dist/security/anomaly-detection.js +39 -0
  1035. package/dist/security/anomaly-detection.js.map +1 -0
  1036. package/dist/security/api-key-enhanced.d.ts +68 -0
  1037. package/dist/security/api-key-enhanced.d.ts.map +1 -0
  1038. package/dist/security/api-key-enhanced.js +76 -0
  1039. package/dist/security/api-key-enhanced.js.map +1 -0
  1040. package/dist/security/audit.d.ts +46 -0
  1041. package/dist/security/audit.d.ts.map +1 -0
  1042. package/dist/security/audit.js +67 -0
  1043. package/dist/security/audit.js.map +1 -0
  1044. package/dist/security/breach-check.d.ts +3 -0
  1045. package/dist/security/breach-check.d.ts.map +1 -0
  1046. package/dist/security/breach-check.js +27 -0
  1047. package/dist/security/breach-check.js.map +1 -0
  1048. package/dist/security/captcha.d.ts +67 -0
  1049. package/dist/security/captcha.d.ts.map +1 -0
  1050. package/dist/security/captcha.js +186 -0
  1051. package/dist/security/captcha.js.map +1 -0
  1052. package/dist/security/center/gather.d.ts +20 -0
  1053. package/dist/security/center/gather.d.ts.map +1 -0
  1054. package/dist/security/center/gather.js +240 -0
  1055. package/dist/security/center/gather.js.map +1 -0
  1056. package/dist/security/center/index.d.ts +13 -0
  1057. package/dist/security/center/index.d.ts.map +1 -0
  1058. package/dist/security/center/index.js +4 -0
  1059. package/dist/security/center/index.js.map +1 -0
  1060. package/dist/security/center/settings.d.ts +48 -0
  1061. package/dist/security/center/settings.d.ts.map +1 -0
  1062. package/dist/security/center/settings.js +218 -0
  1063. package/dist/security/center/settings.js.map +1 -0
  1064. package/dist/security/center/status.d.ts +10 -0
  1065. package/dist/security/center/status.d.ts.map +1 -0
  1066. package/dist/security/center/status.js +249 -0
  1067. package/dist/security/center/status.js.map +1 -0
  1068. package/dist/security/center/summaries.d.ts +21 -0
  1069. package/dist/security/center/summaries.d.ts.map +1 -0
  1070. package/dist/security/center/summaries.js +65 -0
  1071. package/dist/security/center/summaries.js.map +1 -0
  1072. package/dist/security/center/types.d.ts +142 -0
  1073. package/dist/security/center/types.d.ts.map +1 -0
  1074. package/dist/security/center/types.js +12 -0
  1075. package/dist/security/center/types.js.map +1 -0
  1076. package/dist/security/client-ip.d.ts +23 -0
  1077. package/dist/security/client-ip.d.ts.map +1 -0
  1078. package/dist/security/client-ip.js +97 -0
  1079. package/dist/security/client-ip.js.map +1 -0
  1080. package/dist/security/cors.d.ts +11 -0
  1081. package/dist/security/cors.d.ts.map +1 -0
  1082. package/dist/security/cors.js +33 -0
  1083. package/dist/security/cors.js.map +1 -0
  1084. package/dist/security/csp-nonces.d.ts +5 -0
  1085. package/dist/security/csp-nonces.d.ts.map +1 -0
  1086. package/dist/security/csp-nonces.js +24 -0
  1087. package/dist/security/csp-nonces.js.map +1 -0
  1088. package/dist/security/csrf.d.ts +5 -0
  1089. package/dist/security/csrf.d.ts.map +1 -0
  1090. package/dist/security/csrf.js +20 -0
  1091. package/dist/security/csrf.js.map +1 -0
  1092. package/dist/security/encrypted-fields.d.ts +14 -0
  1093. package/dist/security/encrypted-fields.d.ts.map +1 -0
  1094. package/dist/security/encrypted-fields.js +94 -0
  1095. package/dist/security/encrypted-fields.js.map +1 -0
  1096. package/dist/security/headers.d.ts +11 -0
  1097. package/dist/security/headers.d.ts.map +1 -0
  1098. package/dist/security/headers.js +32 -0
  1099. package/dist/security/headers.js.map +1 -0
  1100. package/dist/security/index.d.ts +40 -0
  1101. package/dist/security/index.d.ts.map +1 -0
  1102. package/dist/security/index.js +26 -0
  1103. package/dist/security/index.js.map +1 -0
  1104. package/dist/security/internal-keys.d.ts +15 -0
  1105. package/dist/security/internal-keys.d.ts.map +1 -0
  1106. package/dist/security/internal-keys.js +33 -0
  1107. package/dist/security/internal-keys.js.map +1 -0
  1108. package/dist/security/ip-allowlist.d.ts +15 -0
  1109. package/dist/security/ip-allowlist.d.ts.map +1 -0
  1110. package/dist/security/ip-allowlist.js +141 -0
  1111. package/dist/security/ip-allowlist.js.map +1 -0
  1112. package/dist/security/ip-canon.d.ts +71 -0
  1113. package/dist/security/ip-canon.d.ts.map +1 -0
  1114. package/dist/security/ip-canon.js +352 -0
  1115. package/dist/security/ip-canon.js.map +1 -0
  1116. package/dist/security/middleware.d.ts +20 -0
  1117. package/dist/security/middleware.d.ts.map +1 -0
  1118. package/dist/security/middleware.js +45 -0
  1119. package/dist/security/middleware.js.map +1 -0
  1120. package/dist/security/rate-limit-policy.d.ts +40 -0
  1121. package/dist/security/rate-limit-policy.d.ts.map +1 -0
  1122. package/dist/security/rate-limit-policy.js +57 -0
  1123. package/dist/security/rate-limit-policy.js.map +1 -0
  1124. package/dist/security/rate-limit.d.ts +55 -0
  1125. package/dist/security/rate-limit.d.ts.map +1 -0
  1126. package/dist/security/rate-limit.js +298 -0
  1127. package/dist/security/rate-limit.js.map +1 -0
  1128. package/dist/security/reauth.d.ts +16 -0
  1129. package/dist/security/reauth.d.ts.map +1 -0
  1130. package/dist/security/reauth.js +56 -0
  1131. package/dist/security/reauth.js.map +1 -0
  1132. package/dist/security/redact.d.ts +12 -0
  1133. package/dist/security/redact.d.ts.map +1 -0
  1134. package/dist/security/redact.js +44 -0
  1135. package/dist/security/redact.js.map +1 -0
  1136. package/dist/security/safe-fetch.d.ts +57 -0
  1137. package/dist/security/safe-fetch.d.ts.map +1 -0
  1138. package/dist/security/safe-fetch.js +71 -0
  1139. package/dist/security/safe-fetch.js.map +1 -0
  1140. package/dist/security/sanitize-document.d.ts +14 -0
  1141. package/dist/security/sanitize-document.d.ts.map +1 -0
  1142. package/dist/security/sanitize-document.js +117 -0
  1143. package/dist/security/sanitize-document.js.map +1 -0
  1144. package/dist/security/sanitize.d.ts +13 -0
  1145. package/dist/security/sanitize.d.ts.map +1 -0
  1146. package/dist/security/sanitize.js +64 -0
  1147. package/dist/security/sanitize.js.map +1 -0
  1148. package/dist/security/secret-storage.d.ts +22 -0
  1149. package/dist/security/secret-storage.d.ts.map +1 -0
  1150. package/dist/security/secret-storage.js +75 -0
  1151. package/dist/security/secret-storage.js.map +1 -0
  1152. package/dist/security/security-txt.d.ts +12 -0
  1153. package/dist/security/security-txt.d.ts.map +1 -0
  1154. package/dist/security/security-txt.js +19 -0
  1155. package/dist/security/security-txt.js.map +1 -0
  1156. package/dist/security/session-limits.d.ts +17 -0
  1157. package/dist/security/session-limits.d.ts.map +1 -0
  1158. package/dist/security/session-limits.js +14 -0
  1159. package/dist/security/session-limits.js.map +1 -0
  1160. package/dist/security/upload.d.ts +32 -0
  1161. package/dist/security/upload.d.ts.map +1 -0
  1162. package/dist/security/upload.js +129 -0
  1163. package/dist/security/upload.js.map +1 -0
  1164. package/dist/security/webhook.d.ts +30 -0
  1165. package/dist/security/webhook.d.ts.map +1 -0
  1166. package/dist/security/webhook.js +133 -0
  1167. package/dist/security/webhook.js.map +1 -0
  1168. package/dist/seo/ai-bots.d.ts +56 -0
  1169. package/dist/seo/ai-bots.d.ts.map +1 -0
  1170. package/dist/seo/ai-bots.js +125 -0
  1171. package/dist/seo/ai-bots.js.map +1 -0
  1172. package/dist/seo/ai-crawler-log.d.ts +14 -0
  1173. package/dist/seo/ai-crawler-log.d.ts.map +1 -0
  1174. package/dist/seo/ai-crawler-log.js +48 -0
  1175. package/dist/seo/ai-crawler-log.js.map +1 -0
  1176. package/dist/seo/alt-text.d.ts +39 -0
  1177. package/dist/seo/alt-text.d.ts.map +1 -0
  1178. package/dist/seo/alt-text.js +67 -0
  1179. package/dist/seo/alt-text.js.map +1 -0
  1180. package/dist/seo/analysis.d.ts +75 -0
  1181. package/dist/seo/analysis.d.ts.map +1 -0
  1182. package/dist/seo/analysis.js +641 -0
  1183. package/dist/seo/analysis.js.map +1 -0
  1184. package/dist/seo/audit-engine.d.ts +124 -0
  1185. package/dist/seo/audit-engine.d.ts.map +1 -0
  1186. package/dist/seo/audit-engine.js +534 -0
  1187. package/dist/seo/audit-engine.js.map +1 -0
  1188. package/dist/seo/audit-runner.d.ts +84 -0
  1189. package/dist/seo/audit-runner.d.ts.map +1 -0
  1190. package/dist/seo/audit-runner.js +372 -0
  1191. package/dist/seo/audit-runner.js.map +1 -0
  1192. package/dist/seo/audit-signals.d.ts +28 -0
  1193. package/dist/seo/audit-signals.d.ts.map +1 -0
  1194. package/dist/seo/audit-signals.js +133 -0
  1195. package/dist/seo/audit-signals.js.map +1 -0
  1196. package/dist/seo/config-store.d.ts +99 -0
  1197. package/dist/seo/config-store.d.ts.map +1 -0
  1198. package/dist/seo/config-store.js +194 -0
  1199. package/dist/seo/config-store.js.map +1 -0
  1200. package/dist/seo/confirm-broken-links.d.ts +48 -0
  1201. package/dist/seo/confirm-broken-links.d.ts.map +1 -0
  1202. package/dist/seo/confirm-broken-links.js +135 -0
  1203. package/dist/seo/confirm-broken-links.js.map +1 -0
  1204. package/dist/seo/content-markdown.d.ts +26 -0
  1205. package/dist/seo/content-markdown.d.ts.map +1 -0
  1206. package/dist/seo/content-markdown.js +235 -0
  1207. package/dist/seo/content-markdown.js.map +1 -0
  1208. package/dist/seo/document-content.d.ts +18 -0
  1209. package/dist/seo/document-content.d.ts.map +1 -0
  1210. package/dist/seo/document-content.js +80 -0
  1211. package/dist/seo/document-content.js.map +1 -0
  1212. package/dist/seo/document-path.d.ts +33 -0
  1213. package/dist/seo/document-path.d.ts.map +1 -0
  1214. package/dist/seo/document-path.js +44 -0
  1215. package/dist/seo/document-path.js.map +1 -0
  1216. package/dist/seo/feeds.d.ts +44 -0
  1217. package/dist/seo/feeds.d.ts.map +1 -0
  1218. package/dist/seo/feeds.js +95 -0
  1219. package/dist/seo/feeds.js.map +1 -0
  1220. package/dist/seo/fix-brief-export.d.ts +47 -0
  1221. package/dist/seo/fix-brief-export.d.ts.map +1 -0
  1222. package/dist/seo/fix-brief-export.js +224 -0
  1223. package/dist/seo/fix-brief-export.js.map +1 -0
  1224. package/dist/seo/index-status.d.ts +56 -0
  1225. package/dist/seo/index-status.d.ts.map +1 -0
  1226. package/dist/seo/index-status.js +193 -0
  1227. package/dist/seo/index-status.js.map +1 -0
  1228. package/dist/seo/index.d.ts +68 -0
  1229. package/dist/seo/index.d.ts.map +1 -0
  1230. package/dist/seo/index.js +36 -0
  1231. package/dist/seo/index.js.map +1 -0
  1232. package/dist/seo/issue-batch-briefs.d.ts +37 -0
  1233. package/dist/seo/issue-batch-briefs.d.ts.map +1 -0
  1234. package/dist/seo/issue-batch-briefs.js +85 -0
  1235. package/dist/seo/issue-batch-briefs.js.map +1 -0
  1236. package/dist/seo/issue-content-brief.d.ts +51 -0
  1237. package/dist/seo/issue-content-brief.d.ts.map +1 -0
  1238. package/dist/seo/issue-content-brief.js +267 -0
  1239. package/dist/seo/issue-content-brief.js.map +1 -0
  1240. package/dist/seo/issue-content-research.d.ts +51 -0
  1241. package/dist/seo/issue-content-research.d.ts.map +1 -0
  1242. package/dist/seo/issue-content-research.js +303 -0
  1243. package/dist/seo/issue-content-research.js.map +1 -0
  1244. package/dist/seo/issue-fix-ai.d.ts +39 -0
  1245. package/dist/seo/issue-fix-ai.d.ts.map +1 -0
  1246. package/dist/seo/issue-fix-ai.js +320 -0
  1247. package/dist/seo/issue-fix-ai.js.map +1 -0
  1248. package/dist/seo/issue-fix-redirect.d.ts +18 -0
  1249. package/dist/seo/issue-fix-redirect.d.ts.map +1 -0
  1250. package/dist/seo/issue-fix-redirect.js +153 -0
  1251. package/dist/seo/issue-fix-redirect.js.map +1 -0
  1252. package/dist/seo/issue-fix.d.ts +72 -0
  1253. package/dist/seo/issue-fix.d.ts.map +1 -0
  1254. package/dist/seo/issue-fix.js +266 -0
  1255. package/dist/seo/issue-fix.js.map +1 -0
  1256. package/dist/seo/link-graph.d.ts +54 -0
  1257. package/dist/seo/link-graph.d.ts.map +1 -0
  1258. package/dist/seo/link-graph.js +0 -0
  1259. package/dist/seo/link-graph.js.map +1 -0
  1260. package/dist/seo/link-probe.d.ts +49 -0
  1261. package/dist/seo/link-probe.d.ts.map +1 -0
  1262. package/dist/seo/link-probe.js +147 -0
  1263. package/dist/seo/link-probe.js.map +1 -0
  1264. package/dist/seo/llms-select.d.ts +34 -0
  1265. package/dist/seo/llms-select.d.ts.map +1 -0
  1266. package/dist/seo/llms-select.js +67 -0
  1267. package/dist/seo/llms-select.js.map +1 -0
  1268. package/dist/seo/llms-txt.d.ts +40 -0
  1269. package/dist/seo/llms-txt.d.ts.map +1 -0
  1270. package/dist/seo/llms-txt.js +177 -0
  1271. package/dist/seo/llms-txt.js.map +1 -0
  1272. package/dist/seo/meta-tags.d.ts +108 -0
  1273. package/dist/seo/meta-tags.d.ts.map +1 -0
  1274. package/dist/seo/meta-tags.js +353 -0
  1275. package/dist/seo/meta-tags.js.map +1 -0
  1276. package/dist/seo/migrate-meta.d.ts +23 -0
  1277. package/dist/seo/migrate-meta.d.ts.map +1 -0
  1278. package/dist/seo/migrate-meta.js +114 -0
  1279. package/dist/seo/migrate-meta.js.map +1 -0
  1280. package/dist/seo/migrate-schema.d.ts +28 -0
  1281. package/dist/seo/migrate-schema.d.ts.map +1 -0
  1282. package/dist/seo/migrate-schema.js +119 -0
  1283. package/dist/seo/migrate-schema.js.map +1 -0
  1284. package/dist/seo/page-meta.d.ts +179 -0
  1285. package/dist/seo/page-meta.d.ts.map +1 -0
  1286. package/dist/seo/page-meta.js +710 -0
  1287. package/dist/seo/page-meta.js.map +1 -0
  1288. package/dist/seo/public-site-url.d.ts +16 -0
  1289. package/dist/seo/public-site-url.d.ts.map +1 -0
  1290. package/dist/seo/public-site-url.js +39 -0
  1291. package/dist/seo/public-site-url.js.map +1 -0
  1292. package/dist/seo/resolve-path.d.ts +22 -0
  1293. package/dist/seo/resolve-path.d.ts.map +1 -0
  1294. package/dist/seo/resolve-path.js +53 -0
  1295. package/dist/seo/resolve-path.js.map +1 -0
  1296. package/dist/seo/rewrite-public-origin.d.ts +12 -0
  1297. package/dist/seo/rewrite-public-origin.d.ts.map +1 -0
  1298. package/dist/seo/rewrite-public-origin.js +17 -0
  1299. package/dist/seo/rewrite-public-origin.js.map +1 -0
  1300. package/dist/seo/robots.d.ts +45 -0
  1301. package/dist/seo/robots.d.ts.map +1 -0
  1302. package/dist/seo/robots.js +90 -0
  1303. package/dist/seo/robots.js.map +1 -0
  1304. package/dist/seo/schema-sync.d.ts +65 -0
  1305. package/dist/seo/schema-sync.d.ts.map +1 -0
  1306. package/dist/seo/schema-sync.js +163 -0
  1307. package/dist/seo/schema-sync.js.map +1 -0
  1308. package/dist/seo/score.d.ts +132 -0
  1309. package/dist/seo/score.d.ts.map +1 -0
  1310. package/dist/seo/score.js +216 -0
  1311. package/dist/seo/score.js.map +1 -0
  1312. package/dist/seo/serving-origin.d.ts +42 -0
  1313. package/dist/seo/serving-origin.d.ts.map +1 -0
  1314. package/dist/seo/serving-origin.js +83 -0
  1315. package/dist/seo/serving-origin.js.map +1 -0
  1316. package/dist/seo/site-identity.d.ts +60 -0
  1317. package/dist/seo/site-identity.d.ts.map +1 -0
  1318. package/dist/seo/site-identity.js +109 -0
  1319. package/dist/seo/site-identity.js.map +1 -0
  1320. package/dist/seo/sitemap-notify.d.ts +123 -0
  1321. package/dist/seo/sitemap-notify.d.ts.map +1 -0
  1322. package/dist/seo/sitemap-notify.js +270 -0
  1323. package/dist/seo/sitemap-notify.js.map +1 -0
  1324. package/dist/seo/sitemap-public.d.ts +43 -0
  1325. package/dist/seo/sitemap-public.d.ts.map +1 -0
  1326. package/dist/seo/sitemap-public.js +213 -0
  1327. package/dist/seo/sitemap-public.js.map +1 -0
  1328. package/dist/seo/title-templates.d.ts +80 -0
  1329. package/dist/seo/title-templates.d.ts.map +1 -0
  1330. package/dist/seo/title-templates.js +175 -0
  1331. package/dist/seo/title-templates.js.map +1 -0
  1332. package/dist/server-site.d.ts +55 -0
  1333. package/dist/server-site.d.ts.map +1 -0
  1334. package/dist/server-site.js +184 -0
  1335. package/dist/server-site.js.map +1 -0
  1336. package/dist/setup/index.d.ts +68 -0
  1337. package/dist/setup/index.d.ts.map +1 -0
  1338. package/dist/setup/index.js +153 -0
  1339. package/dist/setup/index.js.map +1 -0
  1340. package/dist/site.d.ts +178 -0
  1341. package/dist/site.d.ts.map +1 -0
  1342. package/dist/site.js +222 -0
  1343. package/dist/site.js.map +1 -0
  1344. package/dist/storage/auto-wire.d.ts +14 -0
  1345. package/dist/storage/auto-wire.d.ts.map +1 -0
  1346. package/dist/storage/auto-wire.js +60 -0
  1347. package/dist/storage/auto-wire.js.map +1 -0
  1348. package/dist/storage/index.d.ts +21 -0
  1349. package/dist/storage/index.d.ts.map +1 -0
  1350. package/dist/storage/index.js +14 -0
  1351. package/dist/storage/index.js.map +1 -0
  1352. package/dist/templates/index.d.ts +16 -0
  1353. package/dist/templates/index.d.ts.map +1 -0
  1354. package/dist/templates/index.js +23 -0
  1355. package/dist/templates/index.js.map +1 -0
  1356. package/dist/upgrade/changelog.d.ts +18 -0
  1357. package/dist/upgrade/changelog.d.ts.map +1 -0
  1358. package/dist/upgrade/changelog.js +60 -0
  1359. package/dist/upgrade/changelog.js.map +1 -0
  1360. package/dist/upgrade/index.d.ts +7 -0
  1361. package/dist/upgrade/index.d.ts.map +1 -0
  1362. package/dist/upgrade/index.js +4 -0
  1363. package/dist/upgrade/index.js.map +1 -0
  1364. package/dist/upgrade/upgrade-pr.d.ts +16 -0
  1365. package/dist/upgrade/upgrade-pr.d.ts.map +1 -0
  1366. package/dist/upgrade/upgrade-pr.js +128 -0
  1367. package/dist/upgrade/upgrade-pr.js.map +1 -0
  1368. package/dist/upgrade/version-check.d.ts +59 -0
  1369. package/dist/upgrade/version-check.d.ts.map +1 -0
  1370. package/dist/upgrade/version-check.js +142 -0
  1371. package/dist/upgrade/version-check.js.map +1 -0
  1372. package/dist/validation/publish.d.ts +53 -0
  1373. package/dist/validation/publish.d.ts.map +1 -0
  1374. package/dist/validation/publish.js +75 -0
  1375. package/dist/validation/publish.js.map +1 -0
  1376. package/dist/webhooks/index.d.ts +99 -0
  1377. package/dist/webhooks/index.d.ts.map +1 -0
  1378. package/dist/webhooks/index.js +387 -0
  1379. package/dist/webhooks/index.js.map +1 -0
  1380. package/dist/webhooks/signing.d.ts +68 -0
  1381. package/dist/webhooks/signing.d.ts.map +1 -0
  1382. package/dist/webhooks/signing.js +98 -0
  1383. package/dist/webhooks/signing.js.map +1 -0
  1384. package/dist/workflow/index.d.ts +8 -0
  1385. package/dist/workflow/index.d.ts.map +1 -0
  1386. package/dist/workflow/index.js +56 -0
  1387. package/dist/workflow/index.js.map +1 -0
  1388. package/dist/workflows/index.d.ts +30 -0
  1389. package/dist/workflows/index.d.ts.map +1 -0
  1390. package/dist/workflows/index.js +14 -0
  1391. package/dist/workflows/index.js.map +1 -0
  1392. package/package.json +250 -0
  1393. package/prisma/migrations/0001_init/migration.sql +941 -0
  1394. package/prisma/migrations/0002_media_usage_field_path/migration.sql +11 -0
  1395. package/prisma/migrations/0003_ai_crawler_hits/migration.sql +21 -0
  1396. package/prisma/migrations/0004_drop_search_vector/migration.sql +4 -0
  1397. package/prisma/migrations/0005_script_tag_delivery_controls/migration.sql +8 -0
  1398. package/prisma/migrations/0006_totp_last_step/migration.sql +4 -0
  1399. package/prisma/migrations/0007_workflow_fk_drop_dead_enums/migration.sql +27 -0
  1400. package/prisma/migrations/0008_form_delivery_attempts/migration.sql +29 -0
  1401. package/prisma/migrations/0009_webhook_secret_rotation/migration.sql +6 -0
  1402. package/prisma/migrations/0010_media_is_decorative/migration.sql +3 -0
  1403. package/prisma/migrations/0011_media_content_hash/migration.sql +4 -0
  1404. package/prisma/migrations/0012_rename_to_prenta/migration.sql +89 -0
  1405. package/prisma/migrations/migration_lock.toml +3 -0
  1406. package/prisma/schema.prisma +995 -0
  1407. package/prisma/seed.ts +82 -0
  1408. package/schema-fragments/cms-schema.prisma +526 -0
package/dist/db.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Lazy-initialized Prisma client singleton.
3
+ *
4
+ * The database connection is NOT established at import time or during cold start.
5
+ * It only connects when the first CMS operation (admin action, content query, etc.)
6
+ * actually calls `getDB()`. This means:
7
+ *
8
+ * - Frontend pages that don't query CMS content never touch the database
9
+ * - The admin panel code only triggers a connection when the route is accessed
10
+ * - Serverless cold starts that don't hit CMS paths incur zero DB overhead
11
+ */
12
+ /** Returns the lazily-initialized Prisma client. Connection is established on first call. */
13
+ export declare function getDB<T = unknown>(): T;
14
+ /** Initialize the database client. Called once during CMS bootstrap. */
15
+ export declare function initDB(client: unknown): void;
16
+ /** Check whether the database client has been initialized without triggering creation. */
17
+ export declare function isDBInitialized(): boolean;
18
+ export { createDatabaseClient, createDatabaseClientFromEnv, detectProvider, } from './db/create-adapter.js';
19
+ export type { DatabaseConfig, DatabaseProvider } from './db/create-adapter.js';
20
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,6FAA6F;AAC7F,wBAAgB,KAAK,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC,CAYtC;AAED,wEAAwE;AACxE,wBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAE5C;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAGD,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA"}
package/dist/db.js ADDED
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Lazy-initialized Prisma client singleton.
3
+ *
4
+ * The database connection is NOT established at import time or during cold start.
5
+ * It only connects when the first CMS operation (admin action, content query, etc.)
6
+ * actually calls `getDB()`. This means:
7
+ *
8
+ * - Frontend pages that don't query CMS content never touch the database
9
+ * - The admin panel code only triggers a connection when the route is accessed
10
+ * - Serverless cold starts that don't hit CMS paths incur zero DB overhead
11
+ */
12
+ let _client = null;
13
+ /** Returns the lazily-initialized Prisma client. Connection is established on first call. */
14
+ export function getDB() {
15
+ if (!_client) {
16
+ // The actual PrismaClient import and instantiation happens here,
17
+ // deferred until first use rather than at module evaluation time.
18
+ // In production this would import from the generated client:
19
+ // const { PrismaClient } = await import('../generated/client.js')
20
+ // _client = new PrismaClient()
21
+ throw new Error('Database client not initialized. Call initDB() with your Prisma client instance first.');
22
+ }
23
+ return _client;
24
+ }
25
+ /** Initialize the database client. Called once during CMS bootstrap. */
26
+ export function initDB(client) {
27
+ _client = client;
28
+ }
29
+ /** Check whether the database client has been initialized without triggering creation. */
30
+ export function isDBInitialized() {
31
+ return _client !== null;
32
+ }
33
+ // Database adapters
34
+ export { createDatabaseClient, createDatabaseClientFromEnv, detectProvider, } from './db/create-adapter.js';
35
+ //# sourceMappingURL=db.js.map
package/dist/db.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,IAAI,OAAO,GAAmB,IAAI,CAAA;AAElC,6FAA6F;AAC7F,MAAM,UAAU,KAAK;IACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,iEAAiE;QACjE,kEAAkE;QAClE,6DAA6D;QAC7D,oEAAoE;QACpE,iCAAiC;QACjC,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAA;IACH,CAAC;IACD,OAAO,OAAY,CAAA;AACrB,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,MAAM,CAAC,MAAe;IACpC,OAAO,GAAG,MAAM,CAAA;AAClB,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,KAAK,IAAI,CAAA;AACzB,CAAC;AAED,oBAAoB;AACpB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,GACf,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * API request instrumentation that powers the Dashboard "Delivery API"
3
+ * tiles (request volume / error rate / avg latency / p95).
4
+ *
5
+ * ## Why per-minute aggregated buckets and not per-request rows
6
+ *
7
+ * A single 24-hour window at 100 req/s on 20 routes is ~17M raw rows,
8
+ * but the same window aggregated to (minute × route × status-bucket)
9
+ * is ≤ 1440 × 20 × 5 = 144k rows — and in practice far less because
10
+ * most route/minute combinations have zero traffic. The reader
11
+ * (`/stats/api-delivery`) folds the last 1440 minute buckets into
12
+ * four scalars; the writer does one atomic UPSERT per request via
13
+ * raw SQL.
14
+ *
15
+ * ## Why p95 via histogram and not from raw samples
16
+ *
17
+ * Storing a histogram per bucket gives us percentile estimates with
18
+ * ~10% error vs ground truth while keeping the table tiny. The
19
+ * `LATENCY_BUCKETS` boundary list is log-scale (powers of 2 in
20
+ * milliseconds) so it covers ~1 ms heartbeats through multi-second
21
+ * outliers in 12 columns. p95 falls out as a `findIndex` once the
22
+ * histogram is merged across all minute buckets in the window.
23
+ *
24
+ * ## Why fire-and-forget and not awaited
25
+ *
26
+ * Metric recording MUST NOT slow the user-facing response. The
27
+ * `record()` call dispatches the UPSERT to a `void`-discarded promise
28
+ * so a slow DB round-trip never blocks the request that produced
29
+ * the metric. Errors are swallowed at the source — losing a metric
30
+ * sample is strictly preferable to surfacing a metric-pipeline error
31
+ * to the user.
32
+ *
33
+ * ## Why we self-exempt the dashboard polling routes
34
+ *
35
+ * The dashboard refetches `/stats` and `/stats/api-delivery` on a
36
+ * timer. If we counted those requests they'd dominate the volume
37
+ * tile and inflate the error rate (a logged-out tab would hit
38
+ * `/stats` and get 401 repeatedly). The route-normaliser excludes
39
+ * them explicitly — see `shouldRecord`.
40
+ */
41
+ /**
42
+ * Upper bound (exclusive) of each histogram bucket, in milliseconds.
43
+ * The last bucket is `>= 1024 ms` (no upper bound).
44
+ *
45
+ * Indexed:
46
+ * 0: <1ms 1: 1-2ms 2: 2-4ms 3: 4-8ms
47
+ * 4: 8-16ms 5: 16-32ms 6: 32-64ms 7: 64-128ms
48
+ * 8: 128-256 9: 256-512 10: 512-1024 11: >=1024
49
+ */
50
+ export declare const LATENCY_BUCKETS: readonly [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024];
51
+ export declare const HISTOGRAM_LENGTH: number;
52
+ export type StatusBucket = '2xx' | '3xx' | '4xx' | '5xx' | 'other';
53
+ export interface ApiMetricSample {
54
+ /** Request path, CMS-relative — e.g. `/collections/posts/abc123`. */
55
+ pathname: string;
56
+ status: number;
57
+ /** Response time in milliseconds. May be a float. */
58
+ durationMs: number;
59
+ }
60
+ /**
61
+ * Bucket a status code into one of 5 families. We keep the 1xx family
62
+ * out of the public type because no CMS route ever responds with one;
63
+ * if it ever happens, the `other` bucket catches it instead of
64
+ * silently being lost.
65
+ */
66
+ export declare function statusBucketOf(status: number): StatusBucket;
67
+ /**
68
+ * Return the index (0..HISTOGRAM_LENGTH-1) of the histogram bucket
69
+ * that this latency falls into. NaN / negative values fall in bucket
70
+ * 0 (treated as "<1ms") so a metric write never crashes on a bad
71
+ * input.
72
+ */
73
+ export declare function histogramBucketIndex(durationMs: number): number;
74
+ /**
75
+ * Build a fresh histogram array with a single sample placed in the
76
+ * correct bucket. Used to produce the JSON payload for an INSERT.
77
+ */
78
+ export declare function makeHistogramFor(durationMs: number): number[];
79
+ /**
80
+ * Element-wise add two histograms. Tolerant of either operand being
81
+ * missing or shorter than `HISTOGRAM_LENGTH` — defends against schema
82
+ * mismatches (e.g. an old row written before a bucket boundary change).
83
+ */
84
+ export declare function mergeHistograms(a: number[] | null | undefined, b: number[]): number[];
85
+ /**
86
+ * Snap a Date to the start of its UTC minute. Returns a new Date —
87
+ * never mutates the input.
88
+ */
89
+ export declare function bucketStartFor(now?: Date | number): Date;
90
+ /**
91
+ * Estimate percentile-N from a merged histogram. Returns the upper
92
+ * bound of the bucket that contains the requested percentile —
93
+ * which is the right "user-visible" answer (we are happy to say
94
+ * "p95 < 256ms" rather than guess the exact value inside the
95
+ * 128-256 bucket).
96
+ *
97
+ * For the overflow bucket (no upper bound), we report
98
+ * `LATENCY_BUCKETS[last]` as a lower-bound estimate; callers
99
+ * displaying this should annotate with a "≥" prefix if they want
100
+ * to expose the open-ended nature.
101
+ */
102
+ export declare function estimatePercentile(histogram: number[], percentile: number): number;
103
+ /**
104
+ * Normalise a request path to bound metric-row cardinality.
105
+ *
106
+ * /collections/posts/abc123 → /collections/posts/:id
107
+ * /globals/site-settings → /globals/:slug
108
+ * /collections/posts/abc123/restore→ /collections/posts/:id/restore
109
+ * /unknown/long/path/that/leaks → /other
110
+ *
111
+ * The "/other" bucket catches anything we don't explicitly know
112
+ * about so a single hostile client with random URLs can't blow up
113
+ * the table.
114
+ */
115
+ export declare function normalizeRoute(pathname: string): string;
116
+ /**
117
+ * Routes that the dashboard polls itself, plus webhooks the cron
118
+ * fires. Counting these would either (a) cause feedback loops
119
+ * inflating the volume tile or (b) report cron-only traffic the
120
+ * editor never produces. The instrumentation skips them.
121
+ */
122
+ export declare function shouldRecord(normalizedRoute: string): boolean;
123
+ /**
124
+ * Record one API request to the metrics table. **Fire-and-forget** —
125
+ * callers MUST NOT `await` this. Errors are swallowed; the next
126
+ * request retries, and 1-minute aggregates are robust to occasional
127
+ * write loss.
128
+ *
129
+ * Writes a single SQL UPSERT so two concurrent requests landing in
130
+ * the same bucket interleave cleanly via Postgres's MVCC + the
131
+ * unique-on-conflict path. The histogram column is merged
132
+ * element-wise inside SQL, so we never read-modify-write from JS.
133
+ */
134
+ export declare function recordApiRequest(sample: ApiMetricSample): void;
135
+ //# sourceMappingURL=api-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-metrics.d.ts","sourceRoot":"","sources":["../../src/diagnostics/api-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAUH;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,wDAAyD,CAAA;AAErF,eAAO,MAAM,gBAAgB,QAA6B,CAAA;AAE1D,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAA;AAElE,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAA;CACnB;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAM3D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAI7D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAMrF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,IAAI,GAAG,MAAmB,GAAG,IAAI,CAGpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAalF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiBvD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAE7D;AAmGD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAY9D"}
@@ -0,0 +1,376 @@
1
+ /**
2
+ * API request instrumentation that powers the Dashboard "Delivery API"
3
+ * tiles (request volume / error rate / avg latency / p95).
4
+ *
5
+ * ## Why per-minute aggregated buckets and not per-request rows
6
+ *
7
+ * A single 24-hour window at 100 req/s on 20 routes is ~17M raw rows,
8
+ * but the same window aggregated to (minute × route × status-bucket)
9
+ * is ≤ 1440 × 20 × 5 = 144k rows — and in practice far less because
10
+ * most route/minute combinations have zero traffic. The reader
11
+ * (`/stats/api-delivery`) folds the last 1440 minute buckets into
12
+ * four scalars; the writer does one atomic UPSERT per request via
13
+ * raw SQL.
14
+ *
15
+ * ## Why p95 via histogram and not from raw samples
16
+ *
17
+ * Storing a histogram per bucket gives us percentile estimates with
18
+ * ~10% error vs ground truth while keeping the table tiny. The
19
+ * `LATENCY_BUCKETS` boundary list is log-scale (powers of 2 in
20
+ * milliseconds) so it covers ~1 ms heartbeats through multi-second
21
+ * outliers in 12 columns. p95 falls out as a `findIndex` once the
22
+ * histogram is merged across all minute buckets in the window.
23
+ *
24
+ * ## Why fire-and-forget and not awaited
25
+ *
26
+ * Metric recording MUST NOT slow the user-facing response. The
27
+ * `record()` call dispatches the UPSERT to a `void`-discarded promise
28
+ * so a slow DB round-trip never blocks the request that produced
29
+ * the metric. Errors are swallowed at the source — losing a metric
30
+ * sample is strictly preferable to surfacing a metric-pipeline error
31
+ * to the user.
32
+ *
33
+ * ## Why we self-exempt the dashboard polling routes
34
+ *
35
+ * The dashboard refetches `/stats` and `/stats/api-delivery` on a
36
+ * timer. If we counted those requests they'd dominate the volume
37
+ * tile and inflate the error rate (a logged-out tab would hit
38
+ * `/stats` and get 401 repeatedly). The route-normaliser excludes
39
+ * them explicitly — see `shouldRecord`.
40
+ */
41
+ import { createLogger } from './logger.js';
42
+ import { getDB } from '../db.js';
43
+ const logger = createLogger('api-metrics');
44
+ // ─── Public constants ──────────────────────────────────────────────────────
45
+ /**
46
+ * Upper bound (exclusive) of each histogram bucket, in milliseconds.
47
+ * The last bucket is `>= 1024 ms` (no upper bound).
48
+ *
49
+ * Indexed:
50
+ * 0: <1ms 1: 1-2ms 2: 2-4ms 3: 4-8ms
51
+ * 4: 8-16ms 5: 16-32ms 6: 32-64ms 7: 64-128ms
52
+ * 8: 128-256 9: 256-512 10: 512-1024 11: >=1024
53
+ */
54
+ export const LATENCY_BUCKETS = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024];
55
+ export const HISTOGRAM_LENGTH = LATENCY_BUCKETS.length + 1; // 12
56
+ // ─── Pure helpers ──────────────────────────────────────────────────────────
57
+ /**
58
+ * Bucket a status code into one of 5 families. We keep the 1xx family
59
+ * out of the public type because no CMS route ever responds with one;
60
+ * if it ever happens, the `other` bucket catches it instead of
61
+ * silently being lost.
62
+ */
63
+ export function statusBucketOf(status) {
64
+ if (status >= 200 && status < 300)
65
+ return '2xx';
66
+ if (status >= 300 && status < 400)
67
+ return '3xx';
68
+ if (status >= 400 && status < 500)
69
+ return '4xx';
70
+ if (status >= 500 && status < 600)
71
+ return '5xx';
72
+ return 'other';
73
+ }
74
+ /**
75
+ * Return the index (0..HISTOGRAM_LENGTH-1) of the histogram bucket
76
+ * that this latency falls into. NaN / negative values fall in bucket
77
+ * 0 (treated as "<1ms") so a metric write never crashes on a bad
78
+ * input.
79
+ */
80
+ export function histogramBucketIndex(durationMs) {
81
+ if (!Number.isFinite(durationMs) || durationMs < 1)
82
+ return 0;
83
+ for (let i = 0; i < LATENCY_BUCKETS.length; i++) {
84
+ if (durationMs < LATENCY_BUCKETS[i])
85
+ return i;
86
+ }
87
+ return LATENCY_BUCKETS.length; // overflow bucket
88
+ }
89
+ /**
90
+ * Build a fresh histogram array with a single sample placed in the
91
+ * correct bucket. Used to produce the JSON payload for an INSERT.
92
+ */
93
+ export function makeHistogramFor(durationMs) {
94
+ const arr = new Array(HISTOGRAM_LENGTH).fill(0);
95
+ arr[histogramBucketIndex(durationMs)] = 1;
96
+ return arr;
97
+ }
98
+ /**
99
+ * Element-wise add two histograms. Tolerant of either operand being
100
+ * missing or shorter than `HISTOGRAM_LENGTH` — defends against schema
101
+ * mismatches (e.g. an old row written before a bucket boundary change).
102
+ */
103
+ export function mergeHistograms(a, b) {
104
+ const out = new Array(HISTOGRAM_LENGTH).fill(0);
105
+ for (let i = 0; i < HISTOGRAM_LENGTH; i++) {
106
+ out[i] = (a?.[i] ?? 0) + (b[i] ?? 0);
107
+ }
108
+ return out;
109
+ }
110
+ /**
111
+ * Snap a Date to the start of its UTC minute. Returns a new Date —
112
+ * never mutates the input.
113
+ */
114
+ export function bucketStartFor(now = new Date()) {
115
+ const ms = typeof now === 'number' ? now : now.getTime();
116
+ return new Date(ms - (ms % 60_000));
117
+ }
118
+ /**
119
+ * Estimate percentile-N from a merged histogram. Returns the upper
120
+ * bound of the bucket that contains the requested percentile —
121
+ * which is the right "user-visible" answer (we are happy to say
122
+ * "p95 < 256ms" rather than guess the exact value inside the
123
+ * 128-256 bucket).
124
+ *
125
+ * For the overflow bucket (no upper bound), we report
126
+ * `LATENCY_BUCKETS[last]` as a lower-bound estimate; callers
127
+ * displaying this should annotate with a "≥" prefix if they want
128
+ * to expose the open-ended nature.
129
+ */
130
+ export function estimatePercentile(histogram, percentile) {
131
+ const total = histogram.reduce((s, v) => s + v, 0);
132
+ if (total === 0)
133
+ return 0;
134
+ const target = total * percentile;
135
+ let acc = 0;
136
+ for (let i = 0; i < HISTOGRAM_LENGTH; i++) {
137
+ acc += histogram[i] ?? 0;
138
+ if (acc >= target) {
139
+ if (i < LATENCY_BUCKETS.length)
140
+ return LATENCY_BUCKETS[i];
141
+ return LATENCY_BUCKETS[LATENCY_BUCKETS.length - 1] * 2; // overflow estimate
142
+ }
143
+ }
144
+ return 0;
145
+ }
146
+ /**
147
+ * Normalise a request path to bound metric-row cardinality.
148
+ *
149
+ * /collections/posts/abc123 → /collections/posts/:id
150
+ * /globals/site-settings → /globals/:slug
151
+ * /collections/posts/abc123/restore→ /collections/posts/:id/restore
152
+ * /unknown/long/path/that/leaks → /other
153
+ *
154
+ * The "/other" bucket catches anything we don't explicitly know
155
+ * about so a single hostile client with random URLs can't blow up
156
+ * the table.
157
+ */
158
+ export function normalizeRoute(pathname) {
159
+ // Strip query string + trailing slash (except root).
160
+ let p = pathname.split('?')[0] ?? '/';
161
+ if (p.length > 1 && p.endsWith('/'))
162
+ p = p.slice(0, -1);
163
+ // Strip the `/api/cms` prefix if still present — depending on where
164
+ // we instrument, the path may or may not have been rewritten yet.
165
+ if (p.startsWith('/api/cms'))
166
+ p = p.slice('/api/cms'.length) || '/';
167
+ // Static or top-level routes — pass through verbatim.
168
+ if (KNOWN_STATIC_ROUTES.has(p))
169
+ return p;
170
+ // Pattern matchers for cardinality-bounding.
171
+ for (const { pattern, replacement } of ROUTE_PATTERNS) {
172
+ if (pattern.test(p))
173
+ return p.replace(pattern, replacement);
174
+ }
175
+ return '/other';
176
+ }
177
+ /**
178
+ * Routes that the dashboard polls itself, plus webhooks the cron
179
+ * fires. Counting these would either (a) cause feedback loops
180
+ * inflating the volume tile or (b) report cron-only traffic the
181
+ * editor never produces. The instrumentation skips them.
182
+ */
183
+ export function shouldRecord(normalizedRoute) {
184
+ return !SKIP_ROUTES.has(normalizedRoute);
185
+ }
186
+ // ─── Lookup tables (kept module-scope so they're built once) ───────────────
187
+ /**
188
+ * Verbatim routes — the dashboard, auth, health, etc. Keep this
189
+ * small; if your CMS exposes many top-level routes, prefer
190
+ * `ROUTE_PATTERNS` so the table stays bounded.
191
+ */
192
+ const KNOWN_STATIC_ROUTES = new Set([
193
+ '/',
194
+ '/health',
195
+ '/stats',
196
+ '/stats/api-delivery',
197
+ '/stats/content-health',
198
+ '/auth/login',
199
+ '/auth/logout',
200
+ '/auth/me',
201
+ '/auth/csrf',
202
+ '/auth/forgot-password',
203
+ '/auth/reset-password',
204
+ '/auth/totp/login',
205
+ '/setup/status',
206
+ '/setup/create-admin',
207
+ '/search',
208
+ '/users',
209
+ '/api-keys',
210
+ '/notifications',
211
+ '/notifications/stream',
212
+ '/notifications/read-all',
213
+ '/media',
214
+ '/media/upload',
215
+ '/media/bulk-update',
216
+ '/media/bulk-delete',
217
+ '/forms',
218
+ '/seo/config',
219
+ '/seo/analyze',
220
+ '/redirects',
221
+ '/script-tags',
222
+ '/saved-sections',
223
+ '/page-templates',
224
+ '/webhooks',
225
+ '/webhooks/test',
226
+ ]);
227
+ /**
228
+ * Skip these from the metric — they're either the dashboard polling
229
+ * itself (feedback loop) or cron-only traffic that distorts the
230
+ * editor-facing tiles.
231
+ */
232
+ const SKIP_ROUTES = new Set([
233
+ '/stats',
234
+ '/stats/api-delivery',
235
+ '/stats/content-health',
236
+ '/health',
237
+ '/notifications/stream', // long-lived SSE; counting once on open is misleading
238
+ ]);
239
+ const ROUTE_PATTERNS = [
240
+ {
241
+ pattern: /^\/collections\/[^/]+\/[^/]+\/restore$/,
242
+ replacement: '/collections/:slug/:id/restore',
243
+ },
244
+ {
245
+ pattern: /^\/collections\/[^/]+\/[^/]+\/versions(?:\/[^/]+)?$/,
246
+ replacement: '/collections/:slug/:id/versions',
247
+ },
248
+ {
249
+ pattern: /^\/collections\/[^/]+\/[^/]+\/duplicate$/,
250
+ replacement: '/collections/:slug/:id/duplicate',
251
+ },
252
+ { pattern: /^\/collections\/[^/]+\/[^/]+$/, replacement: '/collections/:slug/:id' },
253
+ { pattern: /^\/collections\/[^/]+$/, replacement: '/collections/:slug' },
254
+ { pattern: /^\/globals\/[^/]+$/, replacement: '/globals/:slug' },
255
+ { pattern: /^\/media\/[^/]+$/, replacement: '/media/:id' },
256
+ { pattern: /^\/forms\/[^/]+\/submit$/, replacement: '/forms/:id/submit' },
257
+ { pattern: /^\/forms\/[^/]+\/submissions(?:\/[^/]+)?$/, replacement: '/forms/:id/submissions' },
258
+ { pattern: /^\/forms\/[^/]+$/, replacement: '/forms/:id' },
259
+ { pattern: /^\/users\/[^/]+$/, replacement: '/users/:id' },
260
+ { pattern: /^\/api-keys\/[^/]+$/, replacement: '/api-keys/:id' },
261
+ { pattern: /^\/redirects\/[^/]+$/, replacement: '/redirects/:id' },
262
+ { pattern: /^\/script-tags\/[^/]+$/, replacement: '/script-tags/:id' },
263
+ { pattern: /^\/saved-sections\/[^/]+$/, replacement: '/saved-sections/:id' },
264
+ { pattern: /^\/page-templates\/[^/]+$/, replacement: '/page-templates/:id' },
265
+ { pattern: /^\/webhooks\/[^/]+(?:\/.+)?$/, replacement: '/webhooks/:id' },
266
+ { pattern: /^\/notifications\/[^/]+\/read$/, replacement: '/notifications/:id/read' },
267
+ { pattern: /^\/cron\/.+/, replacement: '/cron/:job' },
268
+ { pattern: /^\/dev\/.+/, replacement: '/dev/:fn' },
269
+ { pattern: /^\/seo\/.+/, replacement: '/seo/:fn' },
270
+ { pattern: /^\/share\/.+/, replacement: '/share/:token' },
271
+ { pattern: /^\/preview\/.+/, replacement: '/preview/:fn' },
272
+ { pattern: /^\/page-builder\/.+/, replacement: '/page-builder/:fn' },
273
+ { pattern: /^\/ai\/.+/, replacement: '/ai/:fn' },
274
+ { pattern: /^\/auth\/.+/, replacement: '/auth/:fn' },
275
+ { pattern: /^\/resolve(?:\/.+)?$/, replacement: '/resolve' },
276
+ ];
277
+ // ─── Writer ────────────────────────────────────────────────────────────────
278
+ /**
279
+ * Record one API request to the metrics table. **Fire-and-forget** —
280
+ * callers MUST NOT `await` this. Errors are swallowed; the next
281
+ * request retries, and 1-minute aggregates are robust to occasional
282
+ * write loss.
283
+ *
284
+ * Writes a single SQL UPSERT so two concurrent requests landing in
285
+ * the same bucket interleave cleanly via Postgres's MVCC + the
286
+ * unique-on-conflict path. The histogram column is merged
287
+ * element-wise inside SQL, so we never read-modify-write from JS.
288
+ */
289
+ export function recordApiRequest(sample) {
290
+ const route = normalizeRoute(sample.pathname);
291
+ if (!shouldRecord(route))
292
+ return;
293
+ // Schedule the write but do not await. Returning `void` is the
294
+ // contract — callers shouldn't be tempted to `.then()` on it.
295
+ void writeMetricBucket({
296
+ bucketStart: bucketStartFor(),
297
+ route,
298
+ statusBucket: statusBucketOf(sample.status),
299
+ durationMs: sample.durationMs,
300
+ });
301
+ }
302
+ async function writeMetricBucket(args) {
303
+ let db;
304
+ try {
305
+ db = getDB();
306
+ }
307
+ catch {
308
+ // DB not initialised yet (e.g. dev server hot-reload race) —
309
+ // skip silently. There's nothing useful to log here and we
310
+ // don't want a stack trace on every dropped sample.
311
+ return;
312
+ }
313
+ // Some hosts ship a Prisma client that doesn't include the
314
+ // `apiRequestMetric` model (e.g. third-party deploys that copied
315
+ // an older schema). Guard so we degrade silently rather than 500ing
316
+ // every request.
317
+ if (!db || typeof db.$executeRawUnsafe !== 'function' || !('apiRequestMetric' in db)) {
318
+ return;
319
+ }
320
+ const histogram = makeHistogramFor(args.durationMs);
321
+ try {
322
+ // Atomic INSERT...ON CONFLICT DO UPDATE. The histogram merge is
323
+ // expressed as a `jsonb_build_array` over the existing + new
324
+ // bucket counts so we never read the prior row from JS.
325
+ //
326
+ // CUID-ish ID generation via gen_random_uuid() keeps the ID
327
+ // schema-compatible with the model's `@default(cuid())` (both
328
+ // are 26+ char ASCII strings; Prisma's cuid is preferred but
329
+ // SQL-level UUIDs are accepted by the column type and not
330
+ // surfaced to consumers).
331
+ await db.$executeRawUnsafe(`
332
+ INSERT INTO "prenta_api_request_metrics"
333
+ ("id", "bucketStart", "route", "statusBucket", "count", "sumLatencyMs", "maxLatencyMs", "latencyHistogram", "updatedAt")
334
+ VALUES (
335
+ 'm_' || replace(gen_random_uuid()::text, '-', ''),
336
+ $1::timestamp,
337
+ $2,
338
+ $3,
339
+ 1,
340
+ $4,
341
+ $4,
342
+ $5::jsonb,
343
+ NOW()
344
+ )
345
+ ON CONFLICT ("bucketStart", "route", "statusBucket") DO UPDATE
346
+ SET "count" = "prenta_api_request_metrics"."count" + 1,
347
+ "sumLatencyMs" = "prenta_api_request_metrics"."sumLatencyMs" + EXCLUDED."sumLatencyMs",
348
+ "maxLatencyMs" = GREATEST("prenta_api_request_metrics"."maxLatencyMs", EXCLUDED."maxLatencyMs"),
349
+ "latencyHistogram" = (
350
+ SELECT jsonb_agg(
351
+ COALESCE(("prenta_api_request_metrics"."latencyHistogram"->>i)::int, 0) +
352
+ COALESCE((EXCLUDED."latencyHistogram"->>i)::int, 0)
353
+ ORDER BY i
354
+ )
355
+ FROM generate_series(0, ${HISTOGRAM_LENGTH - 1}) AS i
356
+ ),
357
+ "updatedAt" = NOW()
358
+ `, args.bucketStart, args.route, args.statusBucket, args.durationMs, JSON.stringify(histogram));
359
+ }
360
+ catch (err) {
361
+ // Throttle the log so a misconfigured DB doesn't drown the
362
+ // logger. We rate-limit *log lines*, not metric writes — every
363
+ // request still attempts a write, but only one error/minute
364
+ // surfaces in console.
365
+ rateLimitedWarn('recordApiRequest write failed', err instanceof Error ? err.message : String(err));
366
+ }
367
+ }
368
+ let lastWarnAt = 0;
369
+ function rateLimitedWarn(msg, detail) {
370
+ const now = Date.now();
371
+ if (now - lastWarnAt < 60_000)
372
+ return;
373
+ lastWarnAt = now;
374
+ logger.warn(msg, { detail });
375
+ }
376
+ //# sourceMappingURL=api-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-metrics.js","sourceRoot":"","sources":["../../src/diagnostics/api-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Environment shape validation for the Prenta CMS runtime.
3
+ *
4
+ * The `/health` and admin diagnostics endpoints surface this so operators
5
+ * notice mis-configured secrets *before* a runtime call hits them. We never
6
+ * return the values themselves — only the validation verdict and a redacted
7
+ * preview where it helps debugging (e.g. "first 4 hex chars match").
8
+ *
9
+ * Why a dedicated module:
10
+ * - Centralises all "is this env var well-formed" rules so consumers don't
11
+ * re-invent length / hex / placeholder checks per call site.
12
+ * - Fails closed on shape errors (e.g. a 31-char CMS_SECRET, an
13
+ * `aes256-local-dev-key-...` placeholder still in production) which the
14
+ * prior `presence-only` check missed entirely (audit issue M6).
15
+ */
16
+ export type EnvCheckSeverity = 'ok' | 'warn' | 'error' | 'missing';
17
+ export interface EnvCheck {
18
+ /** Variable name, e.g. `CMS_SECRET`. */
19
+ name: string;
20
+ /** Verdict bucket. */
21
+ status: EnvCheckSeverity;
22
+ /** Human-readable message safe to surface to the operator. */
23
+ message: string;
24
+ /** True when the var is required for production deploys. */
25
+ required: boolean;
26
+ }
27
+ export interface EnvCheckSummary {
28
+ ok: boolean;
29
+ /** Number of variables in `error` or `missing` (required) state. */
30
+ errorCount: number;
31
+ /** Number of variables in `warn` state. */
32
+ warnCount: number;
33
+ checks: EnvCheck[];
34
+ }
35
+ interface EnvSource {
36
+ get(name: string): string | undefined;
37
+ }
38
+ /**
39
+ * Validate the shape of every well-known runtime env var. Pass a custom
40
+ * `source` to test without mutating `process.env`.
41
+ */
42
+ export declare function validateEnvShape(source?: EnvSource): EnvCheckSummary;
43
+ export {};
44
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/diagnostics/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;AAElE,MAAM,WAAW,QAAQ;IACvB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,sBAAsB;IACtB,MAAM,EAAE,gBAAgB,CAAA;IACxB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAA;IACX,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAA;IAClB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,QAAQ,EAAE,CAAA;CACnB;AAoDD,UAAU,SAAS;IACjB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACtC;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,SAAuB,GAAG,eAAe,CA2RjF"}