@revealui/core 0.0.1-pre.4 → 0.2.1

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 (622) hide show
  1. package/LICENSE +22 -202
  2. package/README.md +108 -152
  3. package/dist/api/compression.d.ts +83 -0
  4. package/dist/api/compression.d.ts.map +1 -0
  5. package/dist/api/compression.js +233 -0
  6. package/dist/api/payload-optimization.d.ts +138 -0
  7. package/dist/api/payload-optimization.d.ts.map +1 -0
  8. package/dist/api/payload-optimization.js +320 -0
  9. package/dist/api/rate-limit.d.ts +113 -0
  10. package/dist/api/rate-limit.d.ts.map +1 -0
  11. package/dist/api/rate-limit.js +316 -0
  12. package/dist/api/response-cache.d.ts +125 -0
  13. package/dist/api/response-cache.d.ts.map +1 -0
  14. package/dist/api/response-cache.js +335 -0
  15. package/dist/api/rest.d.ts +54 -0
  16. package/dist/api/rest.d.ts.map +1 -0
  17. package/dist/api/rest.js +464 -0
  18. package/dist/auth/access.d.ts +25 -0
  19. package/dist/auth/access.d.ts.map +1 -0
  20. package/dist/auth/access.js +20 -0
  21. package/dist/auth/index.d.ts +2 -0
  22. package/dist/auth/index.d.ts.map +1 -0
  23. package/dist/auth/index.js +2 -0
  24. package/dist/cache/query-cache.d.ts +98 -0
  25. package/dist/cache/query-cache.d.ts.map +1 -0
  26. package/dist/cache/query-cache.js +260 -0
  27. package/dist/caching/app-cache.d.ts +237 -0
  28. package/dist/caching/app-cache.d.ts.map +1 -0
  29. package/dist/caching/app-cache.js +430 -0
  30. package/dist/caching/cdn-config.d.ts +155 -0
  31. package/dist/caching/cdn-config.d.ts.map +1 -0
  32. package/dist/caching/cdn-config.js +411 -0
  33. package/dist/caching/edge-cache.d.ts +177 -0
  34. package/dist/caching/edge-cache.d.ts.map +1 -0
  35. package/dist/caching/edge-cache.js +385 -0
  36. package/dist/caching/service-worker.d.ts +154 -0
  37. package/dist/caching/service-worker.d.ts.map +1 -0
  38. package/dist/caching/service-worker.js +437 -0
  39. package/dist/client/admin/RichText.d.ts +12 -0
  40. package/dist/client/admin/RichText.d.ts.map +1 -0
  41. package/dist/client/admin/RichText.js +5 -0
  42. package/dist/client/admin/components/AdminDashboard.d.ts +7 -0
  43. package/dist/client/admin/components/AdminDashboard.d.ts.map +1 -0
  44. package/dist/client/admin/components/AdminDashboard.js +318 -0
  45. package/dist/client/admin/components/CollectionList.d.ts +16 -0
  46. package/dist/client/admin/components/CollectionList.d.ts.map +1 -0
  47. package/dist/client/admin/components/CollectionList.js +67 -0
  48. package/dist/client/admin/components/DocumentForm.d.ts +11 -0
  49. package/dist/client/admin/components/DocumentForm.d.ts.map +1 -0
  50. package/dist/client/admin/components/DocumentForm.js +99 -0
  51. package/dist/client/admin/components/GlobalForm.d.ts +11 -0
  52. package/dist/client/admin/components/GlobalForm.d.ts.map +1 -0
  53. package/dist/client/admin/components/GlobalForm.js +74 -0
  54. package/dist/client/admin/i18n/en.d.ts +25 -0
  55. package/dist/client/admin/i18n/en.d.ts.map +1 -0
  56. package/dist/client/admin/i18n/en.js +25 -0
  57. package/dist/client/admin/index.d.ts +10 -0
  58. package/dist/client/admin/index.d.ts.map +1 -0
  59. package/dist/client/admin/index.js +10 -0
  60. package/dist/client/admin/layout.d.ts +10 -0
  61. package/dist/client/admin/layout.d.ts.map +1 -0
  62. package/dist/client/admin/layout.js +6 -0
  63. package/dist/client/admin/page.d.ts +38 -0
  64. package/dist/client/admin/page.d.ts.map +1 -0
  65. package/dist/client/admin/page.js +15 -0
  66. package/dist/client/admin/utils/apiClient.d.ts +110 -0
  67. package/dist/client/admin/utils/apiClient.d.ts.map +1 -0
  68. package/dist/client/admin/utils/apiClient.js +220 -0
  69. package/dist/client/admin/utils/auth.d.ts +23 -0
  70. package/dist/client/admin/utils/auth.d.ts.map +1 -0
  71. package/dist/client/admin/utils/auth.js +52 -0
  72. package/dist/client/admin/utils/index.d.ts +6 -0
  73. package/dist/client/admin/utils/index.d.ts.map +1 -0
  74. package/dist/client/admin/utils/index.js +5 -0
  75. package/dist/client/admin/utils/serializeConfig.d.ts +7 -0
  76. package/dist/client/admin/utils/serializeConfig.d.ts.map +1 -0
  77. package/dist/client/admin/utils/serializeConfig.js +35 -0
  78. package/dist/client/hooks.d.ts +18 -0
  79. package/dist/client/hooks.d.ts.map +1 -0
  80. package/dist/client/hooks.js +29 -0
  81. package/dist/client/http/client.d.ts +15 -0
  82. package/dist/client/http/client.d.ts.map +1 -0
  83. package/dist/client/http/client.js +49 -0
  84. package/dist/client/http/fetchBanner.d.ts +18 -0
  85. package/dist/client/http/fetchBanner.d.ts.map +1 -0
  86. package/dist/client/http/fetchBanner.js +44 -0
  87. package/dist/client/http/fetchCard.d.ts +18 -0
  88. package/dist/client/http/fetchCard.d.ts.map +1 -0
  89. package/dist/client/http/fetchCard.js +46 -0
  90. package/dist/client/http/fetchEvents.d.ts +18 -0
  91. package/dist/client/http/fetchEvents.d.ts.map +1 -0
  92. package/dist/client/http/fetchEvents.js +44 -0
  93. package/dist/client/http/fetchHero.d.ts +17 -0
  94. package/dist/client/http/fetchHero.d.ts.map +1 -0
  95. package/dist/client/http/fetchHero.js +55 -0
  96. package/dist/client/http/fetchMainInfos.d.ts +17 -0
  97. package/dist/client/http/fetchMainInfos.d.ts.map +1 -0
  98. package/dist/client/http/fetchMainInfos.js +44 -0
  99. package/dist/client/http/fetchVideos.d.ts +13 -0
  100. package/dist/client/http/fetchVideos.d.ts.map +1 -0
  101. package/dist/client/http/fetchVideos.js +36 -0
  102. package/dist/client/http/index.d.ts +19 -0
  103. package/dist/client/http/index.d.ts.map +1 -0
  104. package/dist/client/http/index.js +11 -0
  105. package/dist/client/index.d.ts +11 -0
  106. package/dist/client/index.d.ts.map +1 -0
  107. package/dist/client/index.js +13 -0
  108. package/dist/client/richtext/RichTextEditor.d.ts +48 -0
  109. package/dist/client/richtext/RichTextEditor.d.ts.map +1 -0
  110. package/dist/client/richtext/RichTextEditor.js +360 -0
  111. package/dist/client/richtext/components/ImageNodeComponent.d.ts +9 -0
  112. package/dist/client/richtext/components/ImageNodeComponent.d.ts.map +1 -0
  113. package/dist/client/richtext/components/ImageNodeComponent.js +99 -0
  114. package/dist/client/richtext/components/ImageUploadButton.d.ts +11 -0
  115. package/dist/client/richtext/components/ImageUploadButton.d.ts.map +1 -0
  116. package/dist/client/richtext/components/ImageUploadButton.js +103 -0
  117. package/dist/client/richtext/index.d.ts +92 -0
  118. package/dist/client/richtext/index.d.ts.map +1 -0
  119. package/dist/client/richtext/index.js +74 -0
  120. package/dist/client/richtext/nodes/DecoratorBlockNode.d.ts +20 -0
  121. package/dist/client/richtext/nodes/DecoratorBlockNode.d.ts.map +1 -0
  122. package/dist/client/richtext/nodes/DecoratorBlockNode.js +29 -0
  123. package/dist/client/richtext/nodes/ImageNode.d.ts +51 -0
  124. package/dist/client/richtext/nodes/ImageNode.d.ts.map +1 -0
  125. package/dist/client/richtext/nodes/ImageNode.js +95 -0
  126. package/dist/client/richtext/plugins/CollaborationPlugin.d.ts +13 -0
  127. package/dist/client/richtext/plugins/CollaborationPlugin.d.ts.map +1 -0
  128. package/dist/client/richtext/plugins/CollaborationPlugin.js +8 -0
  129. package/dist/client/richtext/plugins/CursorsOverlayPlugin.d.ts +4 -0
  130. package/dist/client/richtext/plugins/CursorsOverlayPlugin.d.ts.map +1 -0
  131. package/dist/client/richtext/plugins/CursorsOverlayPlugin.js +50 -0
  132. package/dist/client/richtext/plugins/FloatingToolbarPlugin.d.ts +7 -0
  133. package/dist/client/richtext/plugins/FloatingToolbarPlugin.d.ts.map +1 -0
  134. package/dist/client/richtext/plugins/FloatingToolbarPlugin.js +248 -0
  135. package/dist/client/richtext/plugins/ImagePlugin.d.ts +3 -0
  136. package/dist/client/richtext/plugins/ImagePlugin.d.ts.map +1 -0
  137. package/dist/client/richtext/plugins/ImagePlugin.js +73 -0
  138. package/dist/client/richtext/plugins/PastePlugin.d.ts +2 -0
  139. package/dist/client/richtext/plugins/PastePlugin.d.ts.map +1 -0
  140. package/dist/client/richtext/plugins/PastePlugin.js +36 -0
  141. package/dist/client/richtext/plugins/ToolbarPlugin.d.ts +8 -0
  142. package/dist/client/richtext/plugins/ToolbarPlugin.d.ts.map +1 -0
  143. package/dist/client/richtext/plugins/ToolbarPlugin.js +204 -0
  144. package/dist/client/ui/index.d.ts +111 -0
  145. package/dist/client/ui/index.d.ts.map +1 -0
  146. package/dist/client/ui/index.js +130 -0
  147. package/dist/collections/CollectionOperations.d.ts +27 -0
  148. package/dist/collections/CollectionOperations.d.ts.map +1 -0
  149. package/dist/collections/CollectionOperations.js +34 -0
  150. package/dist/collections/hooks.d.ts +11 -0
  151. package/dist/collections/hooks.d.ts.map +1 -0
  152. package/dist/collections/hooks.js +35 -0
  153. package/dist/collections/index.d.ts +2 -0
  154. package/dist/collections/index.d.ts.map +1 -0
  155. package/dist/collections/index.js +1 -0
  156. package/dist/collections/operations/create.d.ts +10 -0
  157. package/dist/collections/operations/create.d.ts.map +1 -0
  158. package/dist/collections/operations/create.js +101 -0
  159. package/dist/collections/operations/delete.d.ts +10 -0
  160. package/dist/collections/operations/delete.d.ts.map +1 -0
  161. package/dist/collections/operations/delete.js +16 -0
  162. package/dist/collections/operations/fieldHooks.d.ts +21 -0
  163. package/dist/collections/operations/fieldHooks.d.ts.map +1 -0
  164. package/dist/collections/operations/fieldHooks.js +51 -0
  165. package/dist/collections/operations/find.d.ts +10 -0
  166. package/dist/collections/operations/find.d.ts.map +1 -0
  167. package/dist/collections/operations/find.js +124 -0
  168. package/dist/collections/operations/findById.d.ts +15 -0
  169. package/dist/collections/operations/findById.d.ts.map +1 -0
  170. package/dist/collections/operations/findById.js +59 -0
  171. package/dist/collections/operations/update.d.ts +10 -0
  172. package/dist/collections/operations/update.d.ts.map +1 -0
  173. package/dist/collections/operations/update.js +134 -0
  174. package/dist/config/index.d.ts +9 -0
  175. package/dist/config/index.d.ts.map +1 -0
  176. package/dist/config/index.js +61 -0
  177. package/dist/config/runtime.d.ts +22 -0
  178. package/dist/config/runtime.d.ts.map +1 -0
  179. package/dist/config/runtime.js +32 -0
  180. package/dist/config/utils.d.ts +12 -0
  181. package/dist/config/utils.d.ts.map +1 -0
  182. package/dist/config/utils.js +34 -0
  183. package/dist/database/index.d.ts +1 -0
  184. package/dist/database/index.d.ts.map +1 -0
  185. package/dist/database/index.js +6 -0
  186. package/dist/database/safe-parse.d.ts +26 -0
  187. package/dist/database/safe-parse.d.ts.map +1 -0
  188. package/dist/database/safe-parse.js +42 -0
  189. package/dist/database/ssl-config.d.ts +9 -0
  190. package/dist/database/ssl-config.d.ts.map +1 -0
  191. package/dist/database/ssl-config.js +7 -0
  192. package/dist/database/type-adapter.d.ts +113 -0
  193. package/dist/database/type-adapter.d.ts.map +1 -0
  194. package/dist/database/type-adapter.js +97 -0
  195. package/dist/database/universal-postgres.d.ts +45 -0
  196. package/dist/database/universal-postgres.d.ts.map +1 -0
  197. package/dist/database/universal-postgres.js +526 -0
  198. package/dist/dataloader.d.ts +26 -0
  199. package/dist/dataloader.d.ts.map +1 -0
  200. package/dist/dataloader.js +176 -0
  201. package/dist/error-handling/circuit-breaker.d.ts +262 -0
  202. package/dist/error-handling/circuit-breaker.d.ts.map +1 -0
  203. package/dist/error-handling/circuit-breaker.js +542 -0
  204. package/dist/error-handling/error-boundary.d.ts +94 -0
  205. package/dist/error-handling/error-boundary.d.ts.map +1 -0
  206. package/dist/error-handling/error-boundary.js +285 -0
  207. package/dist/error-handling/error-reporter.d.ts +214 -0
  208. package/dist/error-handling/error-reporter.d.ts.map +1 -0
  209. package/dist/error-handling/error-reporter.js +477 -0
  210. package/dist/error-handling/fallback-components.d.ts +131 -0
  211. package/dist/error-handling/fallback-components.d.ts.map +1 -0
  212. package/dist/error-handling/fallback-components.js +371 -0
  213. package/dist/error-handling/index.d.ts +16 -0
  214. package/dist/error-handling/index.d.ts.map +1 -0
  215. package/dist/error-handling/index.js +15 -0
  216. package/dist/error-handling/retry.d.ts +194 -0
  217. package/dist/error-handling/retry.d.ts.map +1 -0
  218. package/dist/error-handling/retry.js +450 -0
  219. package/dist/errors/index.d.ts +23 -0
  220. package/dist/errors/index.d.ts.map +1 -0
  221. package/dist/errors/index.js +40 -0
  222. package/dist/factories/builders.d.ts +50 -0
  223. package/dist/factories/builders.d.ts.map +1 -0
  224. package/dist/factories/builders.js +77 -0
  225. package/dist/factories/index.d.ts +2 -0
  226. package/dist/factories/index.d.ts.map +1 -0
  227. package/dist/factories/index.js +1 -0
  228. package/dist/features.d.ts +86 -0
  229. package/dist/features.d.ts.map +1 -0
  230. package/dist/features.js +92 -0
  231. package/dist/fieldTraversal.d.ts +26 -0
  232. package/dist/fieldTraversal.d.ts.map +1 -0
  233. package/dist/fieldTraversal.js +132 -0
  234. package/dist/fields/config/types.d.ts +48 -0
  235. package/dist/fields/config/types.d.ts.map +1 -0
  236. package/dist/fields/config/types.js +20 -0
  237. package/dist/fields/getDefaultValue.d.ts +16 -0
  238. package/dist/fields/getDefaultValue.d.ts.map +1 -0
  239. package/dist/fields/getDefaultValue.js +20 -0
  240. package/dist/fields/getFieldPaths.d.ts +25 -0
  241. package/dist/fields/getFieldPaths.d.ts.map +1 -0
  242. package/dist/fields/getFieldPaths.js +23 -0
  243. package/dist/fields/hooks/afterRead/index.d.ts +36 -0
  244. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -0
  245. package/dist/fields/hooks/afterRead/index.js +70 -0
  246. package/dist/fields/hooks/afterRead/promise.d.ts +46 -0
  247. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -0
  248. package/dist/fields/hooks/afterRead/promise.js +178 -0
  249. package/dist/fields/hooks/afterRead/traverseFields.d.ts +44 -0
  250. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -0
  251. package/dist/fields/hooks/afterRead/traverseFields.js +37 -0
  252. package/dist/generated/agents/index.d.ts +8 -0
  253. package/dist/generated/agents/index.d.ts.map +1 -0
  254. package/dist/generated/agents/index.js +7 -0
  255. package/dist/generated/components/index.d.ts +8 -0
  256. package/dist/generated/components/index.d.ts.map +1 -0
  257. package/dist/generated/components/index.js +7 -0
  258. package/dist/generated/functions/index.d.ts +8 -0
  259. package/dist/generated/functions/index.d.ts.map +1 -0
  260. package/dist/generated/functions/index.js +7 -0
  261. package/dist/generated/hooks/index.d.ts +8 -0
  262. package/dist/generated/hooks/index.d.ts.map +1 -0
  263. package/dist/generated/hooks/index.js +7 -0
  264. package/dist/generated/index.d.ts +10 -0
  265. package/dist/generated/index.d.ts.map +1 -0
  266. package/dist/generated/index.js +9 -0
  267. package/dist/generated/plans/index.d.ts +8 -0
  268. package/dist/generated/plans/index.d.ts.map +1 -0
  269. package/dist/generated/plans/index.js +7 -0
  270. package/dist/generated/prompts/index.d.ts +8 -0
  271. package/dist/generated/prompts/index.d.ts.map +1 -0
  272. package/dist/generated/prompts/index.js +7 -0
  273. package/dist/generated/tools/index.d.ts +8 -0
  274. package/dist/generated/tools/index.d.ts.map +1 -0
  275. package/dist/generated/tools/index.js +7 -0
  276. package/dist/generated/types/cms.d.ts +1766 -0
  277. package/dist/generated/types/cms.d.ts.map +1 -0
  278. package/dist/generated/types/cms.js +12 -0
  279. package/dist/generated/types/index.d.ts +16 -0
  280. package/dist/generated/types/index.d.ts.map +1 -0
  281. package/dist/generated/types/index.js +21 -0
  282. package/dist/generated/types/neon.d.ts +11 -0
  283. package/dist/generated/types/neon.d.ts.map +1 -0
  284. package/dist/generated/types/neon.js +11 -0
  285. package/dist/generated/types/supabase.d.ts +193 -0
  286. package/dist/generated/types/supabase.d.ts.map +1 -0
  287. package/dist/generated/types/supabase.js +5 -0
  288. package/dist/globals/GlobalOperations.d.ts +24 -0
  289. package/dist/globals/GlobalOperations.d.ts.map +1 -0
  290. package/dist/globals/GlobalOperations.js +149 -0
  291. package/dist/globals/index.d.ts +2 -0
  292. package/dist/globals/index.d.ts.map +1 -0
  293. package/dist/globals/index.js +1 -0
  294. package/dist/index.d.ts +64 -1
  295. package/dist/index.d.ts.map +1 -0
  296. package/dist/index.js +126 -33
  297. package/dist/instance/RevealUIInstance.d.ts +6 -0
  298. package/dist/instance/RevealUIInstance.d.ts.map +1 -0
  299. package/dist/instance/RevealUIInstance.js +306 -0
  300. package/dist/instance/index.d.ts +3 -0
  301. package/dist/instance/index.d.ts.map +1 -0
  302. package/dist/instance/index.js +2 -0
  303. package/dist/instance/logger.d.ts +31 -0
  304. package/dist/instance/logger.d.ts.map +1 -0
  305. package/dist/instance/logger.js +42 -0
  306. package/dist/instance/methods/create.d.ts +10 -0
  307. package/dist/instance/methods/create.d.ts.map +1 -0
  308. package/dist/instance/methods/create.js +41 -0
  309. package/dist/instance/methods/delete.d.ts +10 -0
  310. package/dist/instance/methods/delete.d.ts.map +1 -0
  311. package/dist/instance/methods/delete.js +27 -0
  312. package/dist/instance/methods/find.d.ts +10 -0
  313. package/dist/instance/methods/find.d.ts.map +1 -0
  314. package/dist/instance/methods/find.js +23 -0
  315. package/dist/instance/methods/findById.d.ts +13 -0
  316. package/dist/instance/methods/findById.d.ts.map +1 -0
  317. package/dist/instance/methods/findById.js +23 -0
  318. package/dist/instance/methods/hooks.d.ts +14 -0
  319. package/dist/instance/methods/hooks.d.ts.map +1 -0
  320. package/dist/instance/methods/hooks.js +34 -0
  321. package/dist/instance/methods/update.d.ts +10 -0
  322. package/dist/instance/methods/update.d.ts.map +1 -0
  323. package/dist/instance/methods/update.js +45 -0
  324. package/dist/license.d.ts +82 -0
  325. package/dist/license.d.ts.map +1 -0
  326. package/dist/license.js +193 -0
  327. package/dist/monitoring/alerts.d.ts +118 -0
  328. package/dist/monitoring/alerts.d.ts.map +1 -0
  329. package/dist/monitoring/alerts.js +324 -0
  330. package/dist/monitoring/cleanup-manager.d.ts +71 -0
  331. package/dist/monitoring/cleanup-manager.d.ts.map +1 -0
  332. package/dist/monitoring/cleanup-manager.js +226 -0
  333. package/dist/monitoring/health-monitor.d.ts +22 -0
  334. package/dist/monitoring/health-monitor.d.ts.map +1 -0
  335. package/dist/monitoring/health-monitor.js +142 -0
  336. package/dist/monitoring/index.d.ts +14 -0
  337. package/dist/monitoring/index.d.ts.map +1 -0
  338. package/dist/monitoring/index.js +17 -0
  339. package/dist/monitoring/process-registry.d.ts +97 -0
  340. package/dist/monitoring/process-registry.d.ts.map +1 -0
  341. package/dist/monitoring/process-registry.js +222 -0
  342. package/dist/monitoring/query-monitor.d.ts +153 -0
  343. package/dist/monitoring/query-monitor.d.ts.map +1 -0
  344. package/dist/monitoring/query-monitor.js +209 -0
  345. package/dist/monitoring/types.d.ts +231 -0
  346. package/dist/monitoring/types.d.ts.map +1 -0
  347. package/dist/monitoring/types.js +42 -0
  348. package/dist/monitoring/zombie-detector.d.ts +81 -0
  349. package/dist/monitoring/zombie-detector.d.ts.map +1 -0
  350. package/dist/monitoring/zombie-detector.js +231 -0
  351. package/dist/nextjs/index.d.ts +4 -0
  352. package/dist/nextjs/index.d.ts.map +1 -0
  353. package/dist/nextjs/index.js +3 -0
  354. package/dist/nextjs/utilities.d.ts +5 -0
  355. package/dist/nextjs/utilities.d.ts.map +1 -0
  356. package/dist/nextjs/utilities.js +16 -0
  357. package/dist/nextjs/withRevealUI.d.ts +20 -0
  358. package/dist/nextjs/withRevealUI.d.ts.map +1 -0
  359. package/dist/nextjs/withRevealUI.js +181 -0
  360. package/dist/observability/alerts.d.ts +138 -0
  361. package/dist/observability/alerts.d.ts.map +1 -0
  362. package/dist/observability/alerts.js +390 -0
  363. package/dist/observability/health-check.d.ts +95 -0
  364. package/dist/observability/health-check.d.ts.map +1 -0
  365. package/dist/observability/health-check.js +375 -0
  366. package/dist/observability/index.d.ts +12 -0
  367. package/dist/observability/index.d.ts.map +1 -0
  368. package/dist/observability/index.js +11 -0
  369. package/dist/observability/logger.d.ts +47 -0
  370. package/dist/observability/logger.d.ts.map +1 -0
  371. package/dist/observability/logger.js +140 -0
  372. package/dist/observability/metrics.d.ts +205 -0
  373. package/dist/observability/metrics.d.ts.map +1 -0
  374. package/dist/observability/metrics.js +429 -0
  375. package/dist/observability/tracing.d.ts +149 -0
  376. package/dist/observability/tracing.d.ts.map +1 -0
  377. package/dist/observability/tracing.js +381 -0
  378. package/dist/optimization/asset-optimizer.d.ts +202 -0
  379. package/dist/optimization/asset-optimizer.d.ts.map +1 -0
  380. package/dist/optimization/asset-optimizer.js +312 -0
  381. package/dist/optimization/build-optimizer.d.ts +202 -0
  382. package/dist/optimization/build-optimizer.d.ts.map +1 -0
  383. package/dist/optimization/build-optimizer.js +271 -0
  384. package/dist/optimization/bundle-analyzer.d.ts +98 -0
  385. package/dist/optimization/bundle-analyzer.d.ts.map +1 -0
  386. package/dist/optimization/bundle-analyzer.js +322 -0
  387. package/dist/optimization/code-splitting.d.ts +131 -0
  388. package/dist/optimization/code-splitting.d.ts.map +1 -0
  389. package/dist/optimization/code-splitting.js +277 -0
  390. package/dist/plugin/index.d.ts +12 -0
  391. package/dist/plugin/index.d.ts.map +1 -0
  392. package/dist/plugin/index.js +4 -0
  393. package/dist/plugins/form-builder.d.ts +115 -0
  394. package/dist/plugins/form-builder.d.ts.map +1 -0
  395. package/dist/plugins/form-builder.js +239 -0
  396. package/dist/plugins/index.d.ts +5 -0
  397. package/dist/plugins/index.d.ts.map +1 -0
  398. package/dist/plugins/index.js +4 -0
  399. package/dist/plugins/nested-docs.d.ts +8 -0
  400. package/dist/plugins/nested-docs.d.ts.map +1 -0
  401. package/dist/plugins/nested-docs.js +67 -0
  402. package/dist/plugins/redirects.d.ts +17 -0
  403. package/dist/plugins/redirects.d.ts.map +1 -0
  404. package/dist/plugins/redirects.js +62 -0
  405. package/dist/queries/index.d.ts +2 -0
  406. package/dist/queries/index.d.ts.map +1 -0
  407. package/dist/queries/index.js +1 -0
  408. package/dist/queries/queryBuilder.d.ts +47 -0
  409. package/dist/queries/queryBuilder.d.ts.map +1 -0
  410. package/dist/queries/queryBuilder.js +255 -0
  411. package/dist/relationships/analyzer.d.ts +39 -0
  412. package/dist/relationships/analyzer.d.ts.map +1 -0
  413. package/dist/relationships/analyzer.js +127 -0
  414. package/dist/relationships/index.d.ts +3 -0
  415. package/dist/relationships/index.d.ts.map +1 -0
  416. package/dist/relationships/index.js +2 -0
  417. package/dist/relationships/populate-helpers.d.ts +104 -0
  418. package/dist/relationships/populate-helpers.d.ts.map +1 -0
  419. package/dist/relationships/populate-helpers.js +187 -0
  420. package/dist/relationships/population.d.ts +42 -0
  421. package/dist/relationships/population.d.ts.map +1 -0
  422. package/dist/relationships/population.js +188 -0
  423. package/dist/revealui.d.ts +46 -0
  424. package/dist/revealui.d.ts.map +1 -0
  425. package/dist/revealui.js +92 -0
  426. package/dist/richtext/exports/client/rcc.d.ts +37 -0
  427. package/dist/richtext/exports/client/rcc.d.ts.map +1 -0
  428. package/dist/richtext/exports/client/rcc.js +182 -0
  429. package/dist/richtext/exports/server/rsc.d.ts +117 -0
  430. package/dist/richtext/exports/server/rsc.d.ts.map +1 -0
  431. package/dist/richtext/exports/server/rsc.js +288 -0
  432. package/dist/richtext/index.d.ts +161 -0
  433. package/dist/richtext/index.d.ts.map +1 -0
  434. package/dist/richtext/index.js +243 -0
  435. package/dist/richtext/lexical.d.ts +23 -0
  436. package/dist/richtext/lexical.d.ts.map +1 -0
  437. package/dist/richtext/lexical.js +35 -0
  438. package/dist/security/audit.d.ts +188 -0
  439. package/dist/security/audit.d.ts.map +1 -0
  440. package/dist/security/audit.js +431 -0
  441. package/dist/security/auth.d.ts +241 -0
  442. package/dist/security/auth.d.ts.map +1 -0
  443. package/dist/security/auth.js +476 -0
  444. package/dist/security/authorization.d.ts +235 -0
  445. package/dist/security/authorization.d.ts.map +1 -0
  446. package/dist/security/authorization.js +434 -0
  447. package/dist/security/encryption.d.ts +214 -0
  448. package/dist/security/encryption.d.ts.map +1 -0
  449. package/dist/security/encryption.js +517 -0
  450. package/dist/security/gdpr.d.ts +300 -0
  451. package/dist/security/gdpr.d.ts.map +1 -0
  452. package/dist/security/gdpr.js +465 -0
  453. package/dist/security/headers.d.ts +182 -0
  454. package/dist/security/headers.d.ts.map +1 -0
  455. package/dist/security/headers.js +402 -0
  456. package/dist/security/index.d.ts +19 -0
  457. package/dist/security/index.d.ts.map +1 -0
  458. package/dist/security/index.js +18 -0
  459. package/dist/server/index.d.ts +21 -0
  460. package/dist/server/index.d.ts.map +1 -0
  461. package/dist/server/index.js +28 -0
  462. package/dist/server/renderPage.d.ts +69 -0
  463. package/dist/server/renderPage.d.ts.map +1 -0
  464. package/dist/server/renderPage.js +109 -0
  465. package/dist/storage/index.d.ts +1 -0
  466. package/dist/storage/index.d.ts.map +1 -0
  467. package/dist/storage/index.js +4 -0
  468. package/dist/storage/vercel-blob.d.ts +17 -0
  469. package/dist/storage/vercel-blob.d.ts.map +1 -0
  470. package/dist/storage/vercel-blob.js +83 -0
  471. package/dist/translations/index.d.ts +17 -0
  472. package/dist/translations/index.d.ts.map +1 -0
  473. package/dist/translations/index.js +1 -0
  474. package/dist/types/access.d.ts +67 -0
  475. package/dist/types/access.d.ts.map +1 -0
  476. package/dist/types/access.js +8 -0
  477. package/dist/types/api.d.ts +57 -0
  478. package/dist/types/api.d.ts.map +1 -0
  479. package/dist/types/api.js +8 -0
  480. package/dist/types/cms.d.ts +8 -0
  481. package/dist/types/cms.d.ts.map +1 -0
  482. package/dist/types/cms.js +6 -0
  483. package/dist/types/config.d.ts +152 -0
  484. package/dist/types/config.d.ts.map +1 -0
  485. package/dist/types/config.js +9 -0
  486. package/dist/types/core.d.ts +11 -0
  487. package/dist/types/core.d.ts.map +1 -0
  488. package/dist/types/core.js +9 -0
  489. package/dist/types/extensions.d.ts +116 -0
  490. package/dist/types/extensions.d.ts.map +1 -0
  491. package/dist/types/extensions.js +8 -0
  492. package/dist/types/frontend.d.ts +53 -0
  493. package/dist/types/frontend.d.ts.map +1 -0
  494. package/dist/types/frontend.js +7 -0
  495. package/dist/types/generated.d.ts +12 -0
  496. package/dist/types/generated.d.ts.map +1 -0
  497. package/dist/types/generated.js +10 -0
  498. package/dist/types/hooks.d.ts +53 -0
  499. package/dist/types/hooks.d.ts.map +1 -0
  500. package/dist/types/hooks.js +8 -0
  501. package/dist/types/index.d.ts +49 -0
  502. package/dist/types/index.d.ts.map +1 -0
  503. package/dist/types/index.js +61 -0
  504. package/dist/types/interfaces/app.d.ts +50 -0
  505. package/dist/types/interfaces/app.d.ts.map +1 -0
  506. package/dist/types/interfaces/app.js +5 -0
  507. package/dist/types/jobs.d.ts +112 -0
  508. package/dist/types/jobs.d.ts.map +1 -0
  509. package/dist/types/jobs.js +7 -0
  510. package/dist/types/legacy.d.ts +147 -0
  511. package/dist/types/legacy.d.ts.map +1 -0
  512. package/dist/types/legacy.js +8 -0
  513. package/dist/types/plugins.d.ts +17 -0
  514. package/dist/types/plugins.d.ts.map +1 -0
  515. package/dist/types/plugins.js +8 -0
  516. package/dist/types/query.d.ts +99 -0
  517. package/dist/types/query.d.ts.map +1 -0
  518. package/dist/types/query.js +24 -0
  519. package/dist/types/request.d.ts +40 -0
  520. package/dist/types/request.d.ts.map +1 -0
  521. package/dist/types/request.js +8 -0
  522. package/dist/types/richtext.d.ts +23 -0
  523. package/dist/types/richtext.d.ts.map +1 -0
  524. package/dist/types/richtext.js +8 -0
  525. package/dist/types/runtime.d.ts +216 -0
  526. package/dist/types/runtime.d.ts.map +1 -0
  527. package/dist/types/runtime.js +9 -0
  528. package/dist/types/schema.d.ts +9 -0
  529. package/dist/types/schema.d.ts.map +1 -0
  530. package/dist/types/schema.js +7 -0
  531. package/dist/types/user.d.ts +48 -0
  532. package/dist/types/user.d.ts.map +1 -0
  533. package/dist/types/user.js +8 -0
  534. package/dist/utils/access-conversion.d.ts +17 -0
  535. package/dist/utils/access-conversion.d.ts.map +1 -0
  536. package/dist/utils/access-conversion.js +96 -0
  537. package/dist/utils/api-wrapper.d.ts +63 -0
  538. package/dist/utils/api-wrapper.d.ts.map +1 -0
  539. package/dist/utils/api-wrapper.js +151 -0
  540. package/dist/utils/block-conversion.d.ts +21 -0
  541. package/dist/utils/block-conversion.d.ts.map +1 -0
  542. package/dist/utils/block-conversion.js +109 -0
  543. package/dist/utils/cache.d.ts +86 -0
  544. package/dist/utils/cache.d.ts.map +1 -0
  545. package/dist/utils/cache.js +154 -0
  546. package/dist/utils/deep-clone.d.ts +25 -0
  547. package/dist/utils/deep-clone.d.ts.map +1 -0
  548. package/dist/utils/deep-clone.js +115 -0
  549. package/dist/utils/error-responses.d.ts +57 -0
  550. package/dist/utils/error-responses.d.ts.map +1 -0
  551. package/dist/utils/error-responses.js +96 -0
  552. package/dist/utils/errors.d.ts +97 -0
  553. package/dist/utils/errors.d.ts.map +1 -0
  554. package/dist/utils/errors.js +397 -0
  555. package/dist/utils/field-conversion.d.ts +40 -0
  556. package/dist/utils/field-conversion.d.ts.map +1 -0
  557. package/dist/utils/field-conversion.js +275 -0
  558. package/dist/utils/flattenResult.d.ts +7 -0
  559. package/dist/utils/flattenResult.d.ts.map +1 -0
  560. package/dist/utils/flattenResult.js +23 -0
  561. package/dist/utils/getBlockSelect.d.ts +12 -0
  562. package/dist/utils/getBlockSelect.d.ts.map +1 -0
  563. package/dist/utils/getBlockSelect.js +12 -0
  564. package/dist/utils/getSelectMode.d.ts +8 -0
  565. package/dist/utils/getSelectMode.d.ts.map +1 -0
  566. package/dist/utils/getSelectMode.js +21 -0
  567. package/dist/utils/isValidID.d.ts +5 -0
  568. package/dist/utils/isValidID.d.ts.map +1 -0
  569. package/dist/utils/isValidID.js +13 -0
  570. package/dist/utils/json-parsing.d.ts +48 -0
  571. package/dist/utils/json-parsing.d.ts.map +1 -0
  572. package/dist/utils/json-parsing.js +130 -0
  573. package/dist/utils/jwt-validation.d.ts +14 -0
  574. package/dist/utils/jwt-validation.d.ts.map +1 -0
  575. package/dist/utils/jwt-validation.js +36 -0
  576. package/dist/utils/logger-client.d.ts +32 -0
  577. package/dist/utils/logger-client.d.ts.map +1 -0
  578. package/dist/utils/logger-client.js +55 -0
  579. package/dist/utils/logger-server.d.ts +32 -0
  580. package/dist/utils/logger-server.d.ts.map +1 -0
  581. package/dist/utils/logger-server.js +68 -0
  582. package/dist/utils/logger.d.ts +14 -0
  583. package/dist/utils/logger.d.ts.map +1 -0
  584. package/dist/utils/logger.js +12 -0
  585. package/dist/utils/request-context.d.ts +143 -0
  586. package/dist/utils/request-context.d.ts.map +1 -0
  587. package/dist/utils/request-context.js +168 -0
  588. package/dist/utils/request-headers.d.ts +15 -0
  589. package/dist/utils/request-headers.d.ts.map +1 -0
  590. package/dist/utils/request-headers.js +31 -0
  591. package/dist/utils/stripUnselectedFields.d.ts +10 -0
  592. package/dist/utils/stripUnselectedFields.d.ts.map +1 -0
  593. package/dist/utils/stripUnselectedFields.js +20 -0
  594. package/dist/utils/type-guards.d.ts +33 -0
  595. package/dist/utils/type-guards.d.ts.map +1 -0
  596. package/dist/utils/type-guards.js +63 -0
  597. package/dist/utils/user.d.ts +14 -0
  598. package/dist/utils/user.d.ts.map +1 -0
  599. package/dist/utils/user.js +15 -0
  600. package/package.json +241 -724
  601. package/LICENSE_SUMMARY.md +0 -55
  602. package/NOTICE +0 -34
  603. package/dist/exports/RenderErrorPage.js +0 -3
  604. package/dist/exports/__internal.js +0 -3
  605. package/dist/exports/abort.js +0 -3
  606. package/dist/exports/bin-entry.js +0 -5
  607. package/dist/exports/client.js +0 -3
  608. package/dist/exports/config.js +0 -1
  609. package/dist/exports/helpers.js +0 -1
  610. package/dist/exports/index.js +0 -33
  611. package/dist/exports/plugin.js +0 -3
  612. package/dist/exports/prerender.js +0 -3
  613. package/dist/exports/router.js +0 -3
  614. package/dist/exports/routing.js +0 -3
  615. package/dist/exports/server.js +0 -3
  616. package/dist/exports/setup.js +0 -3
  617. package/dist/exports/types.js +0 -1
  618. package/dist/integration/styles.css +0 -141
  619. package/dist/shared/RenderErrorPage.d.ts +0 -3
  620. package/dist/shared/RenderErrorPage.js +0 -3
  621. package/dist/shared/abort.js +0 -3
  622. package/dist/shared/route/routing.js +0 -3
@@ -0,0 +1,385 @@
1
+ /**
2
+ * Edge Caching and ISR (Incremental Static Regeneration)
3
+ *
4
+ * Utilities for Next.js edge caching, ISR, and on-demand revalidation
5
+ */
6
+ import { logger } from '../observability/logger.js';
7
+ export const ISR_PRESETS = {
8
+ // Revalidate every request
9
+ always: {
10
+ revalidate: 0,
11
+ },
12
+ // Revalidate every minute
13
+ minute: {
14
+ revalidate: 60,
15
+ },
16
+ // Revalidate every 5 minutes
17
+ fiveMinutes: {
18
+ revalidate: 300,
19
+ },
20
+ // Revalidate every hour
21
+ hourly: {
22
+ revalidate: 3600,
23
+ },
24
+ // Revalidate daily
25
+ daily: {
26
+ revalidate: 86400,
27
+ },
28
+ // Never revalidate (static)
29
+ never: {
30
+ revalidate: false,
31
+ },
32
+ };
33
+ /**
34
+ * Generate static params for ISR
35
+ */
36
+ export async function generateStaticParams(fetchFn, mapFn) {
37
+ try {
38
+ const items = await fetchFn();
39
+ return items.map(mapFn);
40
+ }
41
+ catch (error) {
42
+ logger.error('Failed to generate static params', error instanceof Error ? error : new Error(String(error)));
43
+ return [];
44
+ }
45
+ }
46
+ /**
47
+ * Revalidate tag
48
+ */
49
+ export async function revalidateTag(tag, secret) {
50
+ try {
51
+ const url = new URL('/api/revalidate', process.env.NEXT_PUBLIC_URL || 'http://localhost:3000');
52
+ const headers = { 'Content-Type': 'application/json' };
53
+ if (secret) {
54
+ headers['x-revalidate-secret'] = secret;
55
+ }
56
+ const response = await fetch(url.toString(), {
57
+ method: 'POST',
58
+ headers,
59
+ body: JSON.stringify({ tag }),
60
+ });
61
+ const data = await response.json();
62
+ return {
63
+ revalidated: response.ok,
64
+ error: data.error,
65
+ };
66
+ }
67
+ catch (error) {
68
+ return {
69
+ revalidated: false,
70
+ error: error instanceof Error ? error.message : 'Unknown error',
71
+ };
72
+ }
73
+ }
74
+ /**
75
+ * Revalidate path
76
+ */
77
+ export async function revalidatePath(path, secret) {
78
+ try {
79
+ const url = new URL('/api/revalidate', process.env.NEXT_PUBLIC_URL || 'http://localhost:3000');
80
+ const headers = { 'Content-Type': 'application/json' };
81
+ if (secret) {
82
+ headers['x-revalidate-secret'] = secret;
83
+ }
84
+ const response = await fetch(url.toString(), {
85
+ method: 'POST',
86
+ headers,
87
+ body: JSON.stringify({ path }),
88
+ });
89
+ const data = await response.json();
90
+ return {
91
+ revalidated: response.ok,
92
+ error: data.error,
93
+ };
94
+ }
95
+ catch (error) {
96
+ return {
97
+ revalidated: false,
98
+ error: error instanceof Error ? error.message : 'Unknown error',
99
+ };
100
+ }
101
+ }
102
+ /**
103
+ * Revalidate multiple paths
104
+ */
105
+ export async function revalidatePaths(paths, secret) {
106
+ const results = await Promise.allSettled(paths.map((path) => revalidatePath(path, secret)));
107
+ let revalidated = 0;
108
+ let failed = 0;
109
+ const errors = [];
110
+ for (let i = 0; i < results.length; i++) {
111
+ const result = results[i];
112
+ const path = paths[i];
113
+ if (!(result && path)) {
114
+ continue;
115
+ }
116
+ if (result.status === 'fulfilled' && result.value.revalidated) {
117
+ revalidated++;
118
+ }
119
+ else {
120
+ failed++;
121
+ const error = result.status === 'fulfilled'
122
+ ? result.value.error || 'Unknown error'
123
+ : String(result.reason) || 'Unknown error';
124
+ errors.push({ path, error });
125
+ }
126
+ }
127
+ return { revalidated, failed, errors };
128
+ }
129
+ /**
130
+ * Revalidate multiple tags
131
+ */
132
+ export async function revalidateTags(tags, secret) {
133
+ const results = await Promise.allSettled(tags.map((tag) => revalidateTag(tag, secret)));
134
+ let revalidated = 0;
135
+ let failed = 0;
136
+ const errors = [];
137
+ for (let i = 0; i < results.length; i++) {
138
+ const result = results[i];
139
+ const tag = tags[i];
140
+ if (!(result && tag)) {
141
+ continue;
142
+ }
143
+ if (result.status === 'fulfilled' && result.value.revalidated) {
144
+ revalidated++;
145
+ }
146
+ else {
147
+ failed++;
148
+ const error = result.status === 'fulfilled'
149
+ ? result.value.error || 'Unknown error'
150
+ : String(result.reason) || 'Unknown error';
151
+ errors.push({ tag, error });
152
+ }
153
+ }
154
+ return { revalidated, failed, errors };
155
+ }
156
+ /**
157
+ * Create edge cached fetch
158
+ */
159
+ export function createEdgeCachedFetch(config = {}) {
160
+ return async (url, options) => {
161
+ const fetchOptions = {
162
+ ...options,
163
+ ...config,
164
+ next: {
165
+ ...options?.next,
166
+ ...config.next,
167
+ },
168
+ };
169
+ const response = await fetch(url, fetchOptions);
170
+ if (!response.ok) {
171
+ throw new Error(`Fetch failed: ${response.statusText}`);
172
+ }
173
+ return response.json();
174
+ };
175
+ }
176
+ /**
177
+ * Unstable cache wrapper (Next.js 14+)
178
+ */
179
+ export function createCachedFunction(fn, _options = {}) {
180
+ // In production, this would use Next.js unstable_cache
181
+ // For now, return the function as-is
182
+ return fn;
183
+ }
184
+ export class EdgeRateLimiter {
185
+ config;
186
+ cache = new Map();
187
+ constructor(config) {
188
+ this.config = config;
189
+ }
190
+ /**
191
+ * Check rate limit
192
+ */
193
+ check(request) {
194
+ const key = this.config.key
195
+ ? this.config.key(request)
196
+ : request.headers.get('x-forwarded-for') || 'unknown';
197
+ const now = Date.now();
198
+ let entry = this.cache.get(key);
199
+ // Reset if window expired
200
+ if (!entry || now > entry.resetTime) {
201
+ entry = {
202
+ count: 0,
203
+ resetTime: now + this.config.window,
204
+ };
205
+ this.cache.set(key, entry);
206
+ }
207
+ // Increment count
208
+ entry.count++;
209
+ const allowed = entry.count <= this.config.limit;
210
+ const remaining = Math.max(0, this.config.limit - entry.count);
211
+ return {
212
+ allowed,
213
+ limit: this.config.limit,
214
+ remaining,
215
+ reset: entry.resetTime,
216
+ };
217
+ }
218
+ /**
219
+ * Clean up expired entries
220
+ */
221
+ cleanup() {
222
+ const now = Date.now();
223
+ for (const [key, entry] of this.cache.entries()) {
224
+ if (now > entry.resetTime) {
225
+ this.cache.delete(key);
226
+ }
227
+ }
228
+ }
229
+ }
230
+ export function getGeoLocation(request) {
231
+ // Vercel edge headers
232
+ const country = request.headers.get('x-vercel-ip-country');
233
+ const region = request.headers.get('x-vercel-ip-country-region');
234
+ const city = request.headers.get('x-vercel-ip-city');
235
+ const latitude = request.headers.get('x-vercel-ip-latitude');
236
+ const longitude = request.headers.get('x-vercel-ip-longitude');
237
+ if (!country) {
238
+ // Cloudflare headers
239
+ const cfCountry = request.headers.get('cf-ipcountry');
240
+ if (cfCountry) {
241
+ return {
242
+ country: cfCountry,
243
+ };
244
+ }
245
+ return null;
246
+ }
247
+ return {
248
+ country: country || undefined,
249
+ region: region || undefined,
250
+ city: city ? decodeURIComponent(city) : undefined,
251
+ latitude: latitude ? parseFloat(latitude) : undefined,
252
+ longitude: longitude ? parseFloat(longitude) : undefined,
253
+ };
254
+ }
255
+ /**
256
+ * Edge A/B testing with cache
257
+ */
258
+ export function getABTestVariant(request, testName, variants) {
259
+ // Check cookie first
260
+ const cookieName = `ab-test-${testName}`;
261
+ const cookieVariant = request.cookies.get(cookieName)?.value;
262
+ if (cookieVariant && variants.includes(cookieVariant)) {
263
+ return cookieVariant;
264
+ }
265
+ // Assign variant based on IP hash
266
+ const ip = request.headers.get('x-forwarded-for') || 'unknown';
267
+ const hash = simpleHash(ip + testName);
268
+ const variantIndex = hash % variants.length;
269
+ const variant = variants[variantIndex];
270
+ if (!variant) {
271
+ throw new Error('No variant found for A/B test');
272
+ }
273
+ return variant;
274
+ }
275
+ /**
276
+ * Simple hash function
277
+ */
278
+ function simpleHash(str) {
279
+ let hash = 0;
280
+ for (let i = 0; i < str.length; i++) {
281
+ const char = str.charCodeAt(i);
282
+ hash = (hash << 5) - hash + char;
283
+ hash = hash & hash;
284
+ }
285
+ return Math.abs(hash);
286
+ }
287
+ export function getPersonalizationConfig(request) {
288
+ const userAgent = request.headers.get('user-agent') || '';
289
+ const device = getDeviceType(userAgent);
290
+ const location = getGeoLocation(request);
291
+ return {
292
+ userId: request.cookies.get('user-id')?.value,
293
+ location: location || undefined,
294
+ device,
295
+ };
296
+ }
297
+ /**
298
+ * Detect device type
299
+ */
300
+ function getDeviceType(userAgent) {
301
+ if (/mobile/i.test(userAgent) && !/tablet|ipad/i.test(userAgent)) {
302
+ return 'mobile';
303
+ }
304
+ if (/tablet|ipad/i.test(userAgent)) {
305
+ return 'tablet';
306
+ }
307
+ return 'desktop';
308
+ }
309
+ /**
310
+ * Edge cache headers helper
311
+ */
312
+ export function setEdgeCacheHeaders(response, config) {
313
+ const cacheControl = [];
314
+ if (config.maxAge !== undefined) {
315
+ cacheControl.push(`max-age=${config.maxAge}`);
316
+ }
317
+ if (config.sMaxAge !== undefined) {
318
+ cacheControl.push(`s-maxage=${config.sMaxAge}`);
319
+ }
320
+ if (config.staleWhileRevalidate !== undefined) {
321
+ cacheControl.push(`stale-while-revalidate=${config.staleWhileRevalidate}`);
322
+ }
323
+ if (cacheControl.length > 0) {
324
+ response.headers.set('Cache-Control', cacheControl.join(', '));
325
+ }
326
+ if (config.tags && config.tags.length > 0) {
327
+ response.headers.set('Cache-Tag', config.tags.join(','));
328
+ }
329
+ return response;
330
+ }
331
+ /**
332
+ * Preload links for critical resources
333
+ */
334
+ export function addPreloadLinks(response, resources) {
335
+ const links = resources.map((resource) => {
336
+ const attrs = [`<${resource.href}>`, `rel="preload"`, `as="${resource.as}"`];
337
+ if (resource.type) {
338
+ attrs.push(`type="${resource.type}"`);
339
+ }
340
+ if (resource.crossorigin) {
341
+ attrs.push('crossorigin');
342
+ }
343
+ return attrs.join('; ');
344
+ });
345
+ if (links.length > 0) {
346
+ response.headers.set('Link', links.join(', '));
347
+ }
348
+ return response;
349
+ }
350
+ /**
351
+ * Cache warming for ISR pages
352
+ */
353
+ export async function warmISRCache(paths, baseURL = process.env.NEXT_PUBLIC_URL || 'http://localhost:3000') {
354
+ const results = await Promise.allSettled(paths.map(async (path) => {
355
+ const url = new URL(path, baseURL);
356
+ const response = await fetch(url.toString());
357
+ if (!response.ok) {
358
+ throw new Error(`${response.status} ${response.statusText}`);
359
+ }
360
+ return true;
361
+ }));
362
+ let warmed = 0;
363
+ let failed = 0;
364
+ const errors = [];
365
+ for (let i = 0; i < results.length; i++) {
366
+ const result = results[i];
367
+ const path = paths[i];
368
+ if (!(result && path)) {
369
+ continue;
370
+ }
371
+ if (result.status === 'fulfilled') {
372
+ warmed++;
373
+ }
374
+ else {
375
+ failed++;
376
+ errors.push({
377
+ path,
378
+ error: result.reason instanceof Error
379
+ ? result.reason.message
380
+ : String(result.reason) || 'Unknown error',
381
+ });
382
+ }
383
+ }
384
+ return { warmed, failed, errors };
385
+ }
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Service Worker Utilities
3
+ *
4
+ * Utilities for service worker registration, caching strategies, and offline support
5
+ */
6
+ /**
7
+ * Service Worker Configuration
8
+ */
9
+ export interface ServiceWorkerConfig {
10
+ scope?: string;
11
+ updateViaCache?: 'all' | 'imports' | 'none';
12
+ scriptURL?: string;
13
+ }
14
+ export declare const DEFAULT_SW_CONFIG: ServiceWorkerConfig;
15
+ /**
16
+ * Register service worker
17
+ */
18
+ export declare function registerServiceWorker(config?: ServiceWorkerConfig): Promise<ServiceWorkerRegistration | null>;
19
+ /**
20
+ * Unregister service worker
21
+ */
22
+ export declare function unregisterServiceWorker(): Promise<boolean>;
23
+ /**
24
+ * Update service worker
25
+ */
26
+ export declare function updateServiceWorker(): Promise<void>;
27
+ /**
28
+ * Skip waiting and activate new service worker
29
+ */
30
+ export declare function skipWaitingAndActivate(): Promise<void>;
31
+ /**
32
+ * Cache Strategies
33
+ */
34
+ export declare const CACHE_STRATEGIES: {
35
+ readonly networkFirst: "network-first";
36
+ readonly cacheFirst: "cache-first";
37
+ readonly networkOnly: "network-only";
38
+ readonly cacheOnly: "cache-only";
39
+ readonly staleWhileRevalidate: "stale-while-revalidate";
40
+ };
41
+ export type CacheStrategy = (typeof CACHE_STRATEGIES)[keyof typeof CACHE_STRATEGIES];
42
+ /**
43
+ * Cache Configuration
44
+ */
45
+ export interface CacheConfig {
46
+ name: string;
47
+ version: number;
48
+ maxAge?: number;
49
+ maxEntries?: number;
50
+ strategy?: CacheStrategy;
51
+ }
52
+ /**
53
+ * Default cache configurations
54
+ */
55
+ export declare const DEFAULT_CACHES: Record<string, CacheConfig>;
56
+ /**
57
+ * Generate cache name
58
+ */
59
+ export declare function generateCacheName(config: CacheConfig): string;
60
+ /**
61
+ * Service worker message types
62
+ */
63
+ export declare const SW_MESSAGES: {
64
+ readonly SKIP_WAITING: "SKIP_WAITING";
65
+ readonly CLAIM_CLIENTS: "CLAIM_CLIENTS";
66
+ readonly CLEAR_CACHE: "CLEAR_CACHE";
67
+ readonly CACHE_URLS: "CACHE_URLS";
68
+ readonly DELETE_CACHE: "DELETE_CACHE";
69
+ readonly GET_CACHE_SIZE: "GET_CACHE_SIZE";
70
+ };
71
+ /**
72
+ * Post message to service worker
73
+ */
74
+ export declare function postMessageToSW(type: string, payload?: unknown): Promise<unknown>;
75
+ /**
76
+ * Clear all caches
77
+ */
78
+ export declare function clearAllCaches(): Promise<void>;
79
+ /**
80
+ * Clear specific cache
81
+ */
82
+ export declare function clearCache(cacheName: string): Promise<void>;
83
+ /**
84
+ * Precache URLs
85
+ */
86
+ export declare function precacheURLs(urls: string[]): Promise<void>;
87
+ /**
88
+ * Get cache size
89
+ */
90
+ export declare function getCacheSize(): Promise<{
91
+ quota: number;
92
+ usage: number;
93
+ available: number;
94
+ }>;
95
+ /**
96
+ * Check if service worker is supported
97
+ */
98
+ export declare function isServiceWorkerSupported(): boolean;
99
+ /**
100
+ * Check if service worker is registered
101
+ */
102
+ export declare function isServiceWorkerRegistered(): Promise<boolean>;
103
+ /**
104
+ * Get service worker state
105
+ */
106
+ export declare function getServiceWorkerState(): Promise<{
107
+ registered: boolean;
108
+ installing: boolean;
109
+ waiting: boolean;
110
+ active: boolean;
111
+ controller: boolean;
112
+ }>;
113
+ export interface ServiceWorkerHook {
114
+ register: () => Promise<ServiceWorkerRegistration | null>;
115
+ unregister: () => Promise<boolean>;
116
+ update: () => Promise<void>;
117
+ skipWaitingAndActivate: () => Promise<void>;
118
+ state: Promise<{
119
+ registered: boolean;
120
+ installing: boolean;
121
+ waiting: boolean;
122
+ active: boolean;
123
+ controller: boolean;
124
+ }>;
125
+ }
126
+ /**
127
+ * React hook for service worker
128
+ */
129
+ export declare function useServiceWorker(config?: ServiceWorkerConfig): ServiceWorkerHook;
130
+ /**
131
+ * Offline detection
132
+ */
133
+ export declare function isOffline(): boolean;
134
+ /**
135
+ * Listen for online/offline events
136
+ */
137
+ export declare function onNetworkChange(callback: (online: boolean) => void): () => void;
138
+ /**
139
+ * Background sync registration
140
+ */
141
+ export declare function registerBackgroundSync(tag: string): Promise<void>;
142
+ /**
143
+ * Push notification permission
144
+ */
145
+ export declare function requestNotificationPermission(): Promise<NotificationPermission>;
146
+ /**
147
+ * Subscribe to push notifications
148
+ */
149
+ export declare function subscribeToPush(vapidPublicKey: string): Promise<PushSubscription | null>;
150
+ /**
151
+ * Unsubscribe from push notifications
152
+ */
153
+ export declare function unsubscribeFromPush(): Promise<boolean>;
154
+ //# sourceMappingURL=service-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-worker.d.ts","sourceRoot":"","sources":["../../src/caching/service-worker.ts"],"names":[],"mappings":"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"}