@revealui/core 0.0.0-canary-20260409021642

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 (522) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +171 -0
  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 +114 -0
  10. package/dist/api/rate-limit.d.ts.map +1 -0
  11. package/dist/api/rate-limit.js +376 -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 +465 -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 +100 -0
  25. package/dist/cache/query-cache.d.ts.map +1 -0
  26. package/dist/cache/query-cache.js +266 -0
  27. package/dist/caching/index.d.ts +6 -0
  28. package/dist/caching/index.d.ts.map +1 -0
  29. package/dist/caching/index.js +5 -0
  30. package/dist/client/admin/RichText.d.ts +12 -0
  31. package/dist/client/admin/RichText.d.ts.map +1 -0
  32. package/dist/client/admin/RichText.js +5 -0
  33. package/dist/client/admin/components/AdminDashboard.d.ts +7 -0
  34. package/dist/client/admin/components/AdminDashboard.d.ts.map +1 -0
  35. package/dist/client/admin/components/AdminDashboard.js +308 -0
  36. package/dist/client/admin/components/CollectionList.d.ts +16 -0
  37. package/dist/client/admin/components/CollectionList.d.ts.map +1 -0
  38. package/dist/client/admin/components/CollectionList.js +67 -0
  39. package/dist/client/admin/components/DocumentForm.d.ts +11 -0
  40. package/dist/client/admin/components/DocumentForm.d.ts.map +1 -0
  41. package/dist/client/admin/components/DocumentForm.js +223 -0
  42. package/dist/client/admin/components/GlobalForm.d.ts +11 -0
  43. package/dist/client/admin/components/GlobalForm.d.ts.map +1 -0
  44. package/dist/client/admin/components/GlobalForm.js +74 -0
  45. package/dist/client/admin/context/ServerFunctionContext.d.ts +8 -0
  46. package/dist/client/admin/context/ServerFunctionContext.d.ts.map +1 -0
  47. package/dist/client/admin/context/ServerFunctionContext.js +15 -0
  48. package/dist/client/admin/i18n/en.d.ts +25 -0
  49. package/dist/client/admin/i18n/en.d.ts.map +1 -0
  50. package/dist/client/admin/i18n/en.js +25 -0
  51. package/dist/client/admin/index.d.ts +11 -0
  52. package/dist/client/admin/index.d.ts.map +1 -0
  53. package/dist/client/admin/index.js +11 -0
  54. package/dist/client/admin/layout.d.ts +10 -0
  55. package/dist/client/admin/layout.d.ts.map +1 -0
  56. package/dist/client/admin/layout.js +7 -0
  57. package/dist/client/admin/page.d.ts +38 -0
  58. package/dist/client/admin/page.d.ts.map +1 -0
  59. package/dist/client/admin/page.js +15 -0
  60. package/dist/client/admin/utils/apiClient.d.ts +110 -0
  61. package/dist/client/admin/utils/apiClient.d.ts.map +1 -0
  62. package/dist/client/admin/utils/apiClient.js +216 -0
  63. package/dist/client/admin/utils/index.d.ts +5 -0
  64. package/dist/client/admin/utils/index.d.ts.map +1 -0
  65. package/dist/client/admin/utils/index.js +4 -0
  66. package/dist/client/admin/utils/serializeConfig.d.ts +7 -0
  67. package/dist/client/admin/utils/serializeConfig.d.ts.map +1 -0
  68. package/dist/client/admin/utils/serializeConfig.js +35 -0
  69. package/dist/client/hooks.d.ts +18 -0
  70. package/dist/client/hooks.d.ts.map +1 -0
  71. package/dist/client/hooks.js +29 -0
  72. package/dist/client/index.d.ts +11 -0
  73. package/dist/client/index.d.ts.map +1 -0
  74. package/dist/client/index.js +13 -0
  75. package/dist/client/richtext/RichTextEditor.d.ts +48 -0
  76. package/dist/client/richtext/RichTextEditor.d.ts.map +1 -0
  77. package/dist/client/richtext/RichTextEditor.js +360 -0
  78. package/dist/client/richtext/components/ImageNodeComponent.d.ts +9 -0
  79. package/dist/client/richtext/components/ImageNodeComponent.d.ts.map +1 -0
  80. package/dist/client/richtext/components/ImageNodeComponent.js +98 -0
  81. package/dist/client/richtext/components/ImageUploadButton.d.ts +13 -0
  82. package/dist/client/richtext/components/ImageUploadButton.d.ts.map +1 -0
  83. package/dist/client/richtext/components/ImageUploadButton.js +118 -0
  84. package/dist/client/richtext/index.d.ts +92 -0
  85. package/dist/client/richtext/index.d.ts.map +1 -0
  86. package/dist/client/richtext/index.js +74 -0
  87. package/dist/client/richtext/nodes/DecoratorBlockNode.d.ts +20 -0
  88. package/dist/client/richtext/nodes/DecoratorBlockNode.d.ts.map +1 -0
  89. package/dist/client/richtext/nodes/DecoratorBlockNode.js +29 -0
  90. package/dist/client/richtext/nodes/ImageNode.d.ts +51 -0
  91. package/dist/client/richtext/nodes/ImageNode.d.ts.map +1 -0
  92. package/dist/client/richtext/nodes/ImageNode.js +95 -0
  93. package/dist/client/richtext/plugins/CollaborationPlugin.d.ts +13 -0
  94. package/dist/client/richtext/plugins/CollaborationPlugin.d.ts.map +1 -0
  95. package/dist/client/richtext/plugins/CollaborationPlugin.js +8 -0
  96. package/dist/client/richtext/plugins/CursorsOverlayPlugin.d.ts +4 -0
  97. package/dist/client/richtext/plugins/CursorsOverlayPlugin.d.ts.map +1 -0
  98. package/dist/client/richtext/plugins/CursorsOverlayPlugin.js +50 -0
  99. package/dist/client/richtext/plugins/FloatingToolbarPlugin.d.ts +7 -0
  100. package/dist/client/richtext/plugins/FloatingToolbarPlugin.d.ts.map +1 -0
  101. package/dist/client/richtext/plugins/FloatingToolbarPlugin.js +246 -0
  102. package/dist/client/richtext/plugins/ImagePlugin.d.ts +3 -0
  103. package/dist/client/richtext/plugins/ImagePlugin.d.ts.map +1 -0
  104. package/dist/client/richtext/plugins/ImagePlugin.js +73 -0
  105. package/dist/client/richtext/plugins/PastePlugin.d.ts +2 -0
  106. package/dist/client/richtext/plugins/PastePlugin.d.ts.map +1 -0
  107. package/dist/client/richtext/plugins/PastePlugin.js +36 -0
  108. package/dist/client/richtext/plugins/ToolbarPlugin.d.ts +8 -0
  109. package/dist/client/richtext/plugins/ToolbarPlugin.d.ts.map +1 -0
  110. package/dist/client/richtext/plugins/ToolbarPlugin.js +204 -0
  111. package/dist/client/ui/index.d.ts +111 -0
  112. package/dist/client/ui/index.d.ts.map +1 -0
  113. package/dist/client/ui/index.js +130 -0
  114. package/dist/collections/CollectionOperations.d.ts +27 -0
  115. package/dist/collections/CollectionOperations.d.ts.map +1 -0
  116. package/dist/collections/CollectionOperations.js +48 -0
  117. package/dist/collections/hooks.d.ts +11 -0
  118. package/dist/collections/hooks.d.ts.map +1 -0
  119. package/dist/collections/hooks.js +35 -0
  120. package/dist/collections/index.d.ts +2 -0
  121. package/dist/collections/index.d.ts.map +1 -0
  122. package/dist/collections/index.js +1 -0
  123. package/dist/collections/operations/create.d.ts +9 -0
  124. package/dist/collections/operations/create.d.ts.map +1 -0
  125. package/dist/collections/operations/create.js +130 -0
  126. package/dist/collections/operations/createMany.d.ts +12 -0
  127. package/dist/collections/operations/createMany.d.ts.map +1 -0
  128. package/dist/collections/operations/createMany.js +43 -0
  129. package/dist/collections/operations/delete.d.ts +10 -0
  130. package/dist/collections/operations/delete.d.ts.map +1 -0
  131. package/dist/collections/operations/delete.js +45 -0
  132. package/dist/collections/operations/deleteMany.d.ts +11 -0
  133. package/dist/collections/operations/deleteMany.d.ts.map +1 -0
  134. package/dist/collections/operations/deleteMany.js +50 -0
  135. package/dist/collections/operations/fieldHooks.d.ts +21 -0
  136. package/dist/collections/operations/fieldHooks.d.ts.map +1 -0
  137. package/dist/collections/operations/fieldHooks.js +51 -0
  138. package/dist/collections/operations/find.d.ts +8 -0
  139. package/dist/collections/operations/find.d.ts.map +1 -0
  140. package/dist/collections/operations/find.js +231 -0
  141. package/dist/collections/operations/findById.d.ts +14 -0
  142. package/dist/collections/operations/findById.d.ts.map +1 -0
  143. package/dist/collections/operations/findById.js +111 -0
  144. package/dist/collections/operations/sqlAdapter.d.ts +23 -0
  145. package/dist/collections/operations/sqlAdapter.d.ts.map +1 -0
  146. package/dist/collections/operations/sqlAdapter.js +108 -0
  147. package/dist/collections/operations/update.d.ts +8 -0
  148. package/dist/collections/operations/update.d.ts.map +1 -0
  149. package/dist/collections/operations/update.js +226 -0
  150. package/dist/collections/operations/updateMany.d.ts +11 -0
  151. package/dist/collections/operations/updateMany.d.ts.map +1 -0
  152. package/dist/collections/operations/updateMany.js +52 -0
  153. package/dist/collections/registry.d.ts +12 -0
  154. package/dist/collections/registry.d.ts.map +1 -0
  155. package/dist/collections/registry.js +38 -0
  156. package/dist/config/index.d.ts +9 -0
  157. package/dist/config/index.d.ts.map +1 -0
  158. package/dist/config/index.js +61 -0
  159. package/dist/config/runtime.d.ts +22 -0
  160. package/dist/config/runtime.d.ts.map +1 -0
  161. package/dist/config/runtime.js +32 -0
  162. package/dist/config/utils.d.ts +2 -0
  163. package/dist/config/utils.d.ts.map +1 -0
  164. package/dist/config/utils.js +21 -0
  165. package/dist/database/index.d.ts +4 -0
  166. package/dist/database/index.d.ts.map +1 -0
  167. package/dist/database/index.js +2 -0
  168. package/dist/database/safe-parse.d.ts +26 -0
  169. package/dist/database/safe-parse.d.ts.map +1 -0
  170. package/dist/database/safe-parse.js +42 -0
  171. package/dist/database/ssl-config.d.ts +9 -0
  172. package/dist/database/ssl-config.d.ts.map +1 -0
  173. package/dist/database/ssl-config.js +7 -0
  174. package/dist/database/type-adapter.d.ts +113 -0
  175. package/dist/database/type-adapter.d.ts.map +1 -0
  176. package/dist/database/type-adapter.js +97 -0
  177. package/dist/database/universal-postgres.d.ts +45 -0
  178. package/dist/database/universal-postgres.d.ts.map +1 -0
  179. package/dist/database/universal-postgres.js +531 -0
  180. package/dist/dataloader.d.ts +26 -0
  181. package/dist/dataloader.d.ts.map +1 -0
  182. package/dist/dataloader.js +176 -0
  183. package/dist/error-handling/error-boundary.d.ts +94 -0
  184. package/dist/error-handling/error-boundary.d.ts.map +1 -0
  185. package/dist/error-handling/error-boundary.js +285 -0
  186. package/dist/error-handling/error-reporter.d.ts +214 -0
  187. package/dist/error-handling/error-reporter.d.ts.map +1 -0
  188. package/dist/error-handling/error-reporter.js +491 -0
  189. package/dist/error-handling/fallback-components.d.ts +131 -0
  190. package/dist/error-handling/fallback-components.d.ts.map +1 -0
  191. package/dist/error-handling/fallback-components.js +371 -0
  192. package/dist/error-handling/index.d.ts +14 -0
  193. package/dist/error-handling/index.d.ts.map +1 -0
  194. package/dist/error-handling/index.js +12 -0
  195. package/dist/factories/builders.d.ts +50 -0
  196. package/dist/factories/builders.d.ts.map +1 -0
  197. package/dist/factories/builders.js +77 -0
  198. package/dist/factories/index.d.ts +2 -0
  199. package/dist/factories/index.d.ts.map +1 -0
  200. package/dist/factories/index.js +1 -0
  201. package/dist/features.d.ts +88 -0
  202. package/dist/features.d.ts.map +1 -0
  203. package/dist/features.js +105 -0
  204. package/dist/fieldTraversal.d.ts +26 -0
  205. package/dist/fieldTraversal.d.ts.map +1 -0
  206. package/dist/fieldTraversal.js +132 -0
  207. package/dist/fields/config/types.d.ts +48 -0
  208. package/dist/fields/config/types.d.ts.map +1 -0
  209. package/dist/fields/config/types.js +20 -0
  210. package/dist/fields/getDefaultValue.d.ts +16 -0
  211. package/dist/fields/getDefaultValue.d.ts.map +1 -0
  212. package/dist/fields/getDefaultValue.js +20 -0
  213. package/dist/fields/getFieldPaths.d.ts +25 -0
  214. package/dist/fields/getFieldPaths.d.ts.map +1 -0
  215. package/dist/fields/getFieldPaths.js +23 -0
  216. package/dist/fields/hooks/afterRead/index.d.ts +36 -0
  217. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -0
  218. package/dist/fields/hooks/afterRead/index.js +70 -0
  219. package/dist/fields/hooks/afterRead/promise.d.ts +46 -0
  220. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -0
  221. package/dist/fields/hooks/afterRead/promise.js +178 -0
  222. package/dist/fields/hooks/afterRead/traverseFields.d.ts +44 -0
  223. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -0
  224. package/dist/fields/hooks/afterRead/traverseFields.js +37 -0
  225. package/dist/generated/index.d.ts +10 -0
  226. package/dist/generated/index.d.ts.map +1 -0
  227. package/dist/generated/index.js +9 -0
  228. package/dist/generated/types/cms.d.ts +1766 -0
  229. package/dist/generated/types/cms.d.ts.map +1 -0
  230. package/dist/generated/types/cms.js +11 -0
  231. package/dist/generated/types/index.d.ts +16 -0
  232. package/dist/generated/types/index.d.ts.map +1 -0
  233. package/dist/generated/types/index.js +21 -0
  234. package/dist/generated/types/neon.d.ts +11 -0
  235. package/dist/generated/types/neon.d.ts.map +1 -0
  236. package/dist/generated/types/neon.js +13 -0
  237. package/dist/globals/GlobalOperations.d.ts +24 -0
  238. package/dist/globals/GlobalOperations.d.ts.map +1 -0
  239. package/dist/globals/GlobalOperations.js +165 -0
  240. package/dist/globals/index.d.ts +2 -0
  241. package/dist/globals/index.d.ts.map +1 -0
  242. package/dist/globals/index.js +1 -0
  243. package/dist/index.d.ts +75 -0
  244. package/dist/index.d.ts.map +1 -0
  245. package/dist/index.js +136 -0
  246. package/dist/instance/RevealUIInstance.d.ts +6 -0
  247. package/dist/instance/RevealUIInstance.d.ts.map +1 -0
  248. package/dist/instance/RevealUIInstance.js +293 -0
  249. package/dist/instance/index.d.ts +3 -0
  250. package/dist/instance/index.d.ts.map +1 -0
  251. package/dist/instance/index.js +2 -0
  252. package/dist/instance/logger.d.ts +31 -0
  253. package/dist/instance/logger.d.ts.map +1 -0
  254. package/dist/instance/logger.js +42 -0
  255. package/dist/instance/methods/create.d.ts +10 -0
  256. package/dist/instance/methods/create.d.ts.map +1 -0
  257. package/dist/instance/methods/create.js +38 -0
  258. package/dist/instance/methods/delete.d.ts +10 -0
  259. package/dist/instance/methods/delete.d.ts.map +1 -0
  260. package/dist/instance/methods/delete.js +24 -0
  261. package/dist/instance/methods/find.d.ts +10 -0
  262. package/dist/instance/methods/find.d.ts.map +1 -0
  263. package/dist/instance/methods/find.js +20 -0
  264. package/dist/instance/methods/findById.d.ts +13 -0
  265. package/dist/instance/methods/findById.d.ts.map +1 -0
  266. package/dist/instance/methods/findById.js +20 -0
  267. package/dist/instance/methods/hooks.d.ts +14 -0
  268. package/dist/instance/methods/hooks.d.ts.map +1 -0
  269. package/dist/instance/methods/hooks.js +34 -0
  270. package/dist/instance/methods/update.d.ts +10 -0
  271. package/dist/instance/methods/update.d.ts.map +1 -0
  272. package/dist/instance/methods/update.js +42 -0
  273. package/dist/jobs/index.d.ts +16 -0
  274. package/dist/jobs/index.d.ts.map +1 -0
  275. package/dist/jobs/index.js +14 -0
  276. package/dist/jobs/queue.d.ts +57 -0
  277. package/dist/jobs/queue.d.ts.map +1 -0
  278. package/dist/jobs/queue.js +134 -0
  279. package/dist/license-encryption.d.ts +21 -0
  280. package/dist/license-encryption.d.ts.map +1 -0
  281. package/dist/license-encryption.js +74 -0
  282. package/dist/license.d.ts +99 -0
  283. package/dist/license.d.ts.map +1 -0
  284. package/dist/license.js +262 -0
  285. package/dist/monitoring/alerts.d.ts +118 -0
  286. package/dist/monitoring/alerts.d.ts.map +1 -0
  287. package/dist/monitoring/alerts.js +324 -0
  288. package/dist/monitoring/cleanup-manager.d.ts +71 -0
  289. package/dist/monitoring/cleanup-manager.d.ts.map +1 -0
  290. package/dist/monitoring/cleanup-manager.js +226 -0
  291. package/dist/monitoring/health-monitor.d.ts +22 -0
  292. package/dist/monitoring/health-monitor.d.ts.map +1 -0
  293. package/dist/monitoring/health-monitor.js +142 -0
  294. package/dist/monitoring/index.d.ts +14 -0
  295. package/dist/monitoring/index.d.ts.map +1 -0
  296. package/dist/monitoring/index.js +17 -0
  297. package/dist/monitoring/process-registry.d.ts +97 -0
  298. package/dist/monitoring/process-registry.d.ts.map +1 -0
  299. package/dist/monitoring/process-registry.js +222 -0
  300. package/dist/monitoring/query-monitor.d.ts +153 -0
  301. package/dist/monitoring/query-monitor.d.ts.map +1 -0
  302. package/dist/monitoring/query-monitor.js +209 -0
  303. package/dist/monitoring/types.d.ts +231 -0
  304. package/dist/monitoring/types.d.ts.map +1 -0
  305. package/dist/monitoring/types.js +42 -0
  306. package/dist/monitoring/zombie-detector.d.ts +81 -0
  307. package/dist/monitoring/zombie-detector.d.ts.map +1 -0
  308. package/dist/monitoring/zombie-detector.js +236 -0
  309. package/dist/nextjs/index.d.ts +4 -0
  310. package/dist/nextjs/index.d.ts.map +1 -0
  311. package/dist/nextjs/index.js +3 -0
  312. package/dist/nextjs/utilities.d.ts +5 -0
  313. package/dist/nextjs/utilities.d.ts.map +1 -0
  314. package/dist/nextjs/utilities.js +16 -0
  315. package/dist/nextjs/withRevealUI.d.ts +20 -0
  316. package/dist/nextjs/withRevealUI.d.ts.map +1 -0
  317. package/dist/nextjs/withRevealUI.js +181 -0
  318. package/dist/observability/alerts.d.ts +138 -0
  319. package/dist/observability/alerts.d.ts.map +1 -0
  320. package/dist/observability/alerts.js +389 -0
  321. package/dist/observability/health-check.d.ts +91 -0
  322. package/dist/observability/health-check.d.ts.map +1 -0
  323. package/dist/observability/health-check.js +345 -0
  324. package/dist/observability/index.d.ts +12 -0
  325. package/dist/observability/index.d.ts.map +1 -0
  326. package/dist/observability/index.js +11 -0
  327. package/dist/observability/logger.d.ts +47 -0
  328. package/dist/observability/logger.d.ts.map +1 -0
  329. package/dist/observability/logger.js +140 -0
  330. package/dist/observability/metrics.d.ts +205 -0
  331. package/dist/observability/metrics.d.ts.map +1 -0
  332. package/dist/observability/metrics.js +429 -0
  333. package/dist/observability/tracing.d.ts +149 -0
  334. package/dist/observability/tracing.d.ts.map +1 -0
  335. package/dist/observability/tracing.js +380 -0
  336. package/dist/plugins/form-builder.d.ts +115 -0
  337. package/dist/plugins/form-builder.d.ts.map +1 -0
  338. package/dist/plugins/form-builder.js +239 -0
  339. package/dist/plugins/index.d.ts +5 -0
  340. package/dist/plugins/index.d.ts.map +1 -0
  341. package/dist/plugins/index.js +4 -0
  342. package/dist/plugins/nested-docs.d.ts +12 -0
  343. package/dist/plugins/nested-docs.d.ts.map +1 -0
  344. package/dist/plugins/nested-docs.js +111 -0
  345. package/dist/plugins/redirects.d.ts +17 -0
  346. package/dist/plugins/redirects.d.ts.map +1 -0
  347. package/dist/plugins/redirects.js +62 -0
  348. package/dist/queries/index.d.ts +2 -0
  349. package/dist/queries/index.d.ts.map +1 -0
  350. package/dist/queries/index.js +1 -0
  351. package/dist/queries/queryBuilder.d.ts +47 -0
  352. package/dist/queries/queryBuilder.d.ts.map +1 -0
  353. package/dist/queries/queryBuilder.js +276 -0
  354. package/dist/relationships/analyzer.d.ts +39 -0
  355. package/dist/relationships/analyzer.d.ts.map +1 -0
  356. package/dist/relationships/analyzer.js +135 -0
  357. package/dist/relationships/index.d.ts +3 -0
  358. package/dist/relationships/index.d.ts.map +1 -0
  359. package/dist/relationships/index.js +2 -0
  360. package/dist/relationships/populate-core.d.ts +57 -0
  361. package/dist/relationships/populate-core.d.ts.map +1 -0
  362. package/dist/relationships/populate-core.js +116 -0
  363. package/dist/relationships/populate-helpers.d.ts +58 -0
  364. package/dist/relationships/populate-helpers.d.ts.map +1 -0
  365. package/dist/relationships/populate-helpers.js +82 -0
  366. package/dist/relationships/population.d.ts +34 -0
  367. package/dist/relationships/population.d.ts.map +1 -0
  368. package/dist/relationships/population.js +193 -0
  369. package/dist/revealui.d.ts +46 -0
  370. package/dist/revealui.d.ts.map +1 -0
  371. package/dist/revealui.js +92 -0
  372. package/dist/richtext/exports/client/rcc.d.ts +37 -0
  373. package/dist/richtext/exports/client/rcc.d.ts.map +1 -0
  374. package/dist/richtext/exports/client/rcc.js +182 -0
  375. package/dist/richtext/exports/server/rsc.d.ts +134 -0
  376. package/dist/richtext/exports/server/rsc.d.ts.map +1 -0
  377. package/dist/richtext/exports/server/rsc.js +344 -0
  378. package/dist/richtext/index.d.ts +161 -0
  379. package/dist/richtext/index.d.ts.map +1 -0
  380. package/dist/richtext/index.js +243 -0
  381. package/dist/richtext/lexical.d.ts +23 -0
  382. package/dist/richtext/lexical.d.ts.map +1 -0
  383. package/dist/richtext/lexical.js +35 -0
  384. package/dist/security/index.d.ts +6 -0
  385. package/dist/security/index.d.ts.map +1 -0
  386. package/dist/security/index.js +5 -0
  387. package/dist/server/index.d.ts +21 -0
  388. package/dist/server/index.d.ts.map +1 -0
  389. package/dist/server/index.js +28 -0
  390. package/dist/server/renderPage.d.ts +69 -0
  391. package/dist/server/renderPage.d.ts.map +1 -0
  392. package/dist/server/renderPage.js +109 -0
  393. package/dist/storage/index.d.ts +2 -0
  394. package/dist/storage/index.d.ts.map +1 -0
  395. package/dist/storage/index.js +2 -0
  396. package/dist/storage/vercel-blob.d.ts +17 -0
  397. package/dist/storage/vercel-blob.d.ts.map +1 -0
  398. package/dist/storage/vercel-blob.js +86 -0
  399. package/dist/translations/index.d.ts +17 -0
  400. package/dist/translations/index.d.ts.map +1 -0
  401. package/dist/translations/index.js +1 -0
  402. package/dist/types/access.d.ts +67 -0
  403. package/dist/types/access.d.ts.map +1 -0
  404. package/dist/types/access.js +8 -0
  405. package/dist/types/api.d.ts +57 -0
  406. package/dist/types/api.d.ts.map +1 -0
  407. package/dist/types/api.js +8 -0
  408. package/dist/types/cms.d.ts +8 -0
  409. package/dist/types/cms.d.ts.map +1 -0
  410. package/dist/types/cms.js +6 -0
  411. package/dist/types/config.d.ts +152 -0
  412. package/dist/types/config.d.ts.map +1 -0
  413. package/dist/types/config.js +9 -0
  414. package/dist/types/core.d.ts +11 -0
  415. package/dist/types/core.d.ts.map +1 -0
  416. package/dist/types/core.js +9 -0
  417. package/dist/types/extensions.d.ts +116 -0
  418. package/dist/types/extensions.d.ts.map +1 -0
  419. package/dist/types/extensions.js +8 -0
  420. package/dist/types/frontend.d.ts +53 -0
  421. package/dist/types/frontend.d.ts.map +1 -0
  422. package/dist/types/frontend.js +7 -0
  423. package/dist/types/generated.d.ts +12 -0
  424. package/dist/types/generated.d.ts.map +1 -0
  425. package/dist/types/generated.js +10 -0
  426. package/dist/types/hooks.d.ts +53 -0
  427. package/dist/types/hooks.d.ts.map +1 -0
  428. package/dist/types/hooks.js +8 -0
  429. package/dist/types/index.d.ts +49 -0
  430. package/dist/types/index.d.ts.map +1 -0
  431. package/dist/types/index.js +61 -0
  432. package/dist/types/interfaces/app.d.ts +50 -0
  433. package/dist/types/interfaces/app.d.ts.map +1 -0
  434. package/dist/types/interfaces/app.js +5 -0
  435. package/dist/types/jobs.d.ts +112 -0
  436. package/dist/types/jobs.d.ts.map +1 -0
  437. package/dist/types/jobs.js +7 -0
  438. package/dist/types/legacy.d.ts +147 -0
  439. package/dist/types/legacy.d.ts.map +1 -0
  440. package/dist/types/legacy.js +8 -0
  441. package/dist/types/plugins.d.ts +17 -0
  442. package/dist/types/plugins.d.ts.map +1 -0
  443. package/dist/types/plugins.js +8 -0
  444. package/dist/types/query.d.ts +99 -0
  445. package/dist/types/query.d.ts.map +1 -0
  446. package/dist/types/query.js +24 -0
  447. package/dist/types/request.d.ts +40 -0
  448. package/dist/types/request.d.ts.map +1 -0
  449. package/dist/types/request.js +8 -0
  450. package/dist/types/richtext.d.ts +23 -0
  451. package/dist/types/richtext.d.ts.map +1 -0
  452. package/dist/types/richtext.js +8 -0
  453. package/dist/types/runtime.d.ts +275 -0
  454. package/dist/types/runtime.d.ts.map +1 -0
  455. package/dist/types/runtime.js +9 -0
  456. package/dist/types/schema.d.ts +9 -0
  457. package/dist/types/schema.d.ts.map +1 -0
  458. package/dist/types/schema.js +7 -0
  459. package/dist/types/user.d.ts +48 -0
  460. package/dist/types/user.d.ts.map +1 -0
  461. package/dist/types/user.js +8 -0
  462. package/dist/utils/access-conversion.d.ts +17 -0
  463. package/dist/utils/access-conversion.d.ts.map +1 -0
  464. package/dist/utils/access-conversion.js +96 -0
  465. package/dist/utils/api-wrapper.d.ts +63 -0
  466. package/dist/utils/api-wrapper.d.ts.map +1 -0
  467. package/dist/utils/api-wrapper.js +151 -0
  468. package/dist/utils/block-conversion.d.ts +21 -0
  469. package/dist/utils/block-conversion.d.ts.map +1 -0
  470. package/dist/utils/block-conversion.js +109 -0
  471. package/dist/utils/cache.d.ts +86 -0
  472. package/dist/utils/cache.d.ts.map +1 -0
  473. package/dist/utils/cache.js +154 -0
  474. package/dist/utils/deep-clone.d.ts +25 -0
  475. package/dist/utils/deep-clone.d.ts.map +1 -0
  476. package/dist/utils/deep-clone.js +114 -0
  477. package/dist/utils/error-responses.d.ts +57 -0
  478. package/dist/utils/error-responses.d.ts.map +1 -0
  479. package/dist/utils/error-responses.js +95 -0
  480. package/dist/utils/errors.d.ts +133 -0
  481. package/dist/utils/errors.d.ts.map +1 -0
  482. package/dist/utils/errors.js +500 -0
  483. package/dist/utils/field-conversion.d.ts +40 -0
  484. package/dist/utils/field-conversion.d.ts.map +1 -0
  485. package/dist/utils/field-conversion.js +275 -0
  486. package/dist/utils/flattenResult.d.ts +7 -0
  487. package/dist/utils/flattenResult.d.ts.map +1 -0
  488. package/dist/utils/flattenResult.js +22 -0
  489. package/dist/utils/getBlockSelect.d.ts +12 -0
  490. package/dist/utils/getBlockSelect.d.ts.map +1 -0
  491. package/dist/utils/getBlockSelect.js +12 -0
  492. package/dist/utils/getSelectMode.d.ts +8 -0
  493. package/dist/utils/getSelectMode.d.ts.map +1 -0
  494. package/dist/utils/getSelectMode.js +21 -0
  495. package/dist/utils/isValidID.d.ts +5 -0
  496. package/dist/utils/isValidID.d.ts.map +1 -0
  497. package/dist/utils/isValidID.js +13 -0
  498. package/dist/utils/json-parsing.d.ts +48 -0
  499. package/dist/utils/json-parsing.d.ts.map +1 -0
  500. package/dist/utils/json-parsing.js +130 -0
  501. package/dist/utils/logger-client.d.ts +32 -0
  502. package/dist/utils/logger-client.d.ts.map +1 -0
  503. package/dist/utils/logger-client.js +55 -0
  504. package/dist/utils/logger-server.d.ts +32 -0
  505. package/dist/utils/logger-server.d.ts.map +1 -0
  506. package/dist/utils/logger-server.js +68 -0
  507. package/dist/utils/logger.d.ts +14 -0
  508. package/dist/utils/logger.d.ts.map +1 -0
  509. package/dist/utils/logger.js +12 -0
  510. package/dist/utils/request-context.d.ts +143 -0
  511. package/dist/utils/request-context.d.ts.map +1 -0
  512. package/dist/utils/request-context.js +168 -0
  513. package/dist/utils/stripUnselectedFields.d.ts +10 -0
  514. package/dist/utils/stripUnselectedFields.d.ts.map +1 -0
  515. package/dist/utils/stripUnselectedFields.js +20 -0
  516. package/dist/utils/type-guards.d.ts +33 -0
  517. package/dist/utils/type-guards.d.ts.map +1 -0
  518. package/dist/utils/type-guards.js +63 -0
  519. package/dist/utils/user.d.ts +14 -0
  520. package/dist/utils/user.d.ts.map +1 -0
  521. package/dist/utils/user.js +15 -0
  522. package/package.json +302 -0
@@ -0,0 +1,465 @@
1
+ /**
2
+ * RevealUI REST API Implementation
3
+ *
4
+ * Based on RevealUI CMS REST API but adapted for RevealUI.
5
+ *
6
+ * WARNING: This module is server-only.
7
+ * Do NOT import in client-side code or edge runtime.
8
+ */
9
+ import { defaultLogger } from '../instance/logger.js';
10
+ function parseQueryParams(searchParams) {
11
+ const options = {};
12
+ // Parse depth
13
+ const depth = searchParams.get('depth');
14
+ if (depth) {
15
+ options.depth = parseInt(depth, 10);
16
+ }
17
+ // Parse locale
18
+ const locale = searchParams.get('locale');
19
+ if (locale) {
20
+ options.locale = locale;
21
+ }
22
+ // Parse fallbackLocale
23
+ const fallbackLocale = searchParams.get('fallbackLocale');
24
+ if (fallbackLocale) {
25
+ options.fallbackLocale = fallbackLocale;
26
+ }
27
+ // Parse overrideAccess — SECURITY: This flag bypasses collection access control.
28
+ // It is stripped from external API requests below to prevent abuse.
29
+ // Only server-side code should set overrideAccess=true (e.g., internal hooks, seed scripts).
30
+ const overrideAccess = searchParams.get('overrideAccess');
31
+ if (overrideAccess !== null) {
32
+ options.overrideAccess = overrideAccess === 'true';
33
+ }
34
+ // Parse showHiddenFields
35
+ const showHiddenFields = searchParams.get('showHiddenFields');
36
+ if (showHiddenFields !== null) {
37
+ options.showHiddenFields = showHiddenFields === 'true';
38
+ }
39
+ // Parse draft
40
+ const draft = searchParams.get('draft');
41
+ if (draft !== null) {
42
+ options.draft = draft === 'true';
43
+ }
44
+ // Parse where (JSON)
45
+ const where = searchParams.get('where');
46
+ if (where) {
47
+ try {
48
+ options.where = JSON.parse(where);
49
+ }
50
+ catch {
51
+ // Invalid JSON, ignore
52
+ }
53
+ }
54
+ // Parse limit
55
+ const limit = searchParams.get('limit');
56
+ if (limit) {
57
+ options.limit = parseInt(limit, 10);
58
+ }
59
+ // Parse page
60
+ const page = searchParams.get('page');
61
+ if (page) {
62
+ options.page = parseInt(page, 10);
63
+ }
64
+ // Parse sort
65
+ const sort = searchParams.get('sort');
66
+ if (sort) {
67
+ options.sort = sort;
68
+ }
69
+ // Parse select (JSON)
70
+ const select = searchParams.get('select');
71
+ if (select) {
72
+ try {
73
+ options.select = JSON.parse(select);
74
+ }
75
+ catch {
76
+ // Invalid JSON, ignore
77
+ }
78
+ }
79
+ // Parse populate (JSON)
80
+ const populate = searchParams.get('populate');
81
+ if (populate) {
82
+ try {
83
+ options.populate = JSON.parse(populate);
84
+ }
85
+ catch {
86
+ // Invalid JSON, ignore
87
+ }
88
+ }
89
+ return options;
90
+ }
91
+ function createRevealRequest(request) {
92
+ const url = new URL(request.url);
93
+ return {
94
+ revealui: undefined, // Will be set by the handler
95
+ user: undefined,
96
+ locale: url.searchParams.get('locale') || undefined,
97
+ fallbackLocale: url.searchParams.get('fallbackLocale') || undefined,
98
+ context: {},
99
+ transactionID: undefined,
100
+ url: request.url,
101
+ method: request.method,
102
+ headers: request.headers,
103
+ json: () => request.json(),
104
+ text: () => request.text(),
105
+ formData: () => request.formData(),
106
+ arrayBuffer: () => request.arrayBuffer(),
107
+ blob: () => request.blob(),
108
+ };
109
+ }
110
+ /**
111
+ * Type guard to check if config has cors property
112
+ */
113
+ function hasCorsProperty(config) {
114
+ return typeof config === 'object' && config !== null && 'cors' in config;
115
+ }
116
+ /**
117
+ * Type guard to check if config has reveal.corsOrigins property (Config from @revealui/config)
118
+ */
119
+ function hasRevealCorsOrigins(config) {
120
+ return (typeof config === 'object' &&
121
+ config !== null &&
122
+ 'reveal' in config &&
123
+ typeof config.reveal === 'object' &&
124
+ config.reveal !== null);
125
+ }
126
+ /**
127
+ * Extract CORS origins from config
128
+ */
129
+ function getCorsOriginsFromConfig(config) {
130
+ if (!config) {
131
+ return [];
132
+ }
133
+ // Check for cors property (RevealConfig from schema/core or runtime config)
134
+ if (hasCorsProperty(config)) {
135
+ const corsConfig = config.cors;
136
+ if (typeof corsConfig === 'string') {
137
+ return [corsConfig];
138
+ }
139
+ if (Array.isArray(corsConfig)) {
140
+ return corsConfig;
141
+ }
142
+ if (corsConfig && typeof corsConfig === 'object' && 'origins' in corsConfig) {
143
+ return corsConfig.origins;
144
+ }
145
+ }
146
+ // Check for reveal.corsOrigins (Config from @revealui/config)
147
+ if (hasRevealCorsOrigins(config)) {
148
+ const corsOrigins = config.reveal?.corsOrigins;
149
+ if (Array.isArray(corsOrigins)) {
150
+ return corsOrigins;
151
+ }
152
+ }
153
+ return [];
154
+ }
155
+ /**
156
+ * Get allowed CORS origin for a request
157
+ * Checks config first, then environment variable, then allows all for development
158
+ */
159
+ function getAllowedOrigin(request, config) {
160
+ let allowedOrigins = getCorsOriginsFromConfig(config);
161
+ // Fallback to environment variable
162
+ if (allowedOrigins.length === 0 && process.env.REVEALUI_CORS_ORIGINS) {
163
+ allowedOrigins = process.env.REVEALUI_CORS_ORIGINS.split(',').map((s) => s.trim());
164
+ }
165
+ const origin = request.headers.get('origin');
166
+ // If config has specific origins and request origin matches, use it
167
+ if (allowedOrigins.length > 0 && origin && allowedOrigins.includes(origin)) {
168
+ return origin;
169
+ }
170
+ // In development, allow all origins for convenience
171
+ // In production, this should never be reached if CORS is properly configured
172
+ if (process.env.NODE_ENV === 'development') {
173
+ return '*';
174
+ }
175
+ // In production, if no allowed origins configured, deny all (secure default)
176
+ // This prevents accidental exposure in production
177
+ return origin || '';
178
+ }
179
+ /**
180
+ * Get standard CORS headers for a response
181
+ */
182
+ function getCORSHeaders(request, config) {
183
+ return {
184
+ 'Access-Control-Allow-Origin': getAllowedOrigin(request, config),
185
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
186
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization, X-Requested-With',
187
+ 'Access-Control-Allow-Credentials': 'true',
188
+ };
189
+ }
190
+ /**
191
+ * Handle CORS preflight requests
192
+ * Note: Next.js middleware (proxy.ts) handles CORS for actual requests
193
+ * This function only handles OPTIONS preflight requests
194
+ */
195
+ function handleCORS(request, config) {
196
+ if (request.method === 'OPTIONS') {
197
+ return new Response(null, {
198
+ status: 200,
199
+ headers: {
200
+ ...getCORSHeaders(request, config),
201
+ 'Access-Control-Max-Age': '86400',
202
+ },
203
+ });
204
+ }
205
+ return null;
206
+ }
207
+ async function handleCollectionOperation(method, collection, id, revealui, request, options) {
208
+ try {
209
+ let result;
210
+ switch (method) {
211
+ case 'GET':
212
+ if (id) {
213
+ // Find by ID
214
+ result = await revealui.findByID({
215
+ collection,
216
+ id,
217
+ ...options,
218
+ });
219
+ }
220
+ else {
221
+ // Find multiple
222
+ result = await revealui.find({
223
+ collection,
224
+ ...options,
225
+ });
226
+ }
227
+ break;
228
+ case 'POST': {
229
+ // Create
230
+ const createData = (await request.json());
231
+ result = await revealui.create({
232
+ collection,
233
+ data: createData,
234
+ ...options,
235
+ });
236
+ break;
237
+ }
238
+ case 'PATCH': {
239
+ if (!id) {
240
+ return new Response(JSON.stringify({ message: 'ID required for update operation' }), {
241
+ status: 400,
242
+ headers: { 'Content-Type': 'application/json' },
243
+ });
244
+ }
245
+ // Update
246
+ const updateData = (await request.json());
247
+ result = await revealui.update({
248
+ collection,
249
+ id,
250
+ data: updateData,
251
+ ...options,
252
+ });
253
+ break;
254
+ }
255
+ case 'DELETE':
256
+ if (!id) {
257
+ return new Response(JSON.stringify({ message: 'ID required for delete operation' }), {
258
+ status: 400,
259
+ headers: { 'Content-Type': 'application/json' },
260
+ });
261
+ }
262
+ // Delete
263
+ result = await revealui.delete({
264
+ collection,
265
+ id,
266
+ ...options,
267
+ });
268
+ break;
269
+ default:
270
+ return new Response(JSON.stringify({ message: 'Method not allowed' }), {
271
+ status: 405,
272
+ headers: { 'Content-Type': 'application/json' },
273
+ });
274
+ }
275
+ return new Response(JSON.stringify(result), {
276
+ status: 200,
277
+ headers: {
278
+ 'Content-Type': 'application/json',
279
+ ...getCORSHeaders(request, revealui.config),
280
+ },
281
+ });
282
+ }
283
+ catch (error) {
284
+ const message = error instanceof Error ? error.message : 'Internal server error';
285
+ const status = 'status' in error ? error.status : 500;
286
+ // Log error with context for debugging
287
+ defaultLogger.error('RevealUI Collection API Error:', {
288
+ collection,
289
+ method: request.method,
290
+ error: error instanceof Error
291
+ ? {
292
+ message: error.message,
293
+ name: error.name,
294
+ stack: process.env.NODE_ENV === 'development' ? error.stack : undefined,
295
+ }
296
+ : error,
297
+ });
298
+ // Sanitize error message for client (don't expose internal details)
299
+ const clientMessage = status >= 500 ? 'An internal server error occurred' : message;
300
+ return new Response(JSON.stringify({
301
+ message: clientMessage,
302
+ errors: [{ message: clientMessage }],
303
+ }), {
304
+ status,
305
+ headers: {
306
+ 'Content-Type': 'application/json',
307
+ ...getCORSHeaders(request, revealui.config),
308
+ },
309
+ });
310
+ }
311
+ }
312
+ async function handleGlobalOperation(method, global, revealui, request, options) {
313
+ try {
314
+ let result;
315
+ switch (method) {
316
+ case 'GET':
317
+ // Find global
318
+ result = (await revealui.globals[global]?.find(options)) ?? null;
319
+ break;
320
+ case 'POST':
321
+ case 'PATCH': {
322
+ // Update global
323
+ const updateData = (await request.json());
324
+ result =
325
+ (await revealui.globals[global]?.update({
326
+ data: updateData,
327
+ ...options,
328
+ })) ?? null;
329
+ break;
330
+ }
331
+ default:
332
+ return new Response(JSON.stringify({ message: 'Method not allowed' }), {
333
+ status: 405,
334
+ headers: { 'Content-Type': 'application/json' },
335
+ });
336
+ }
337
+ return new Response(JSON.stringify(result), {
338
+ status: 200,
339
+ headers: {
340
+ 'Content-Type': 'application/json',
341
+ ...getCORSHeaders(request, revealui.config),
342
+ },
343
+ });
344
+ }
345
+ catch (error) {
346
+ const message = error instanceof Error ? error.message : 'Internal server error';
347
+ const status = 'status' in error ? error.status : 500;
348
+ // Log error with context for debugging
349
+ defaultLogger.error('RevealUI Global API Error:', {
350
+ global,
351
+ method: request.method,
352
+ error: error instanceof Error
353
+ ? {
354
+ message: error.message,
355
+ name: error.name,
356
+ stack: process.env.NODE_ENV === 'development' ? error.stack : undefined,
357
+ }
358
+ : error,
359
+ });
360
+ // Sanitize error message for client (don't expose internal details)
361
+ const clientMessage = status >= 500 ? 'An internal server error occurred' : message;
362
+ return new Response(JSON.stringify({
363
+ message: clientMessage,
364
+ errors: [{ message: clientMessage }],
365
+ }), {
366
+ status,
367
+ headers: {
368
+ 'Content-Type': 'application/json',
369
+ ...getCORSHeaders(request, revealui.config),
370
+ },
371
+ });
372
+ }
373
+ }
374
+ export async function handleRESTRequest(request, config, revealui) {
375
+ // Handle CORS preflight requests
376
+ // Note: Next.js middleware (proxy.ts) handles CORS for actual requests
377
+ const corsResponse = handleCORS(request, config);
378
+ if (corsResponse) {
379
+ return corsResponse;
380
+ }
381
+ const url = new URL(request.url);
382
+ let pathParts = url.pathname.split('/').filter(Boolean);
383
+ // Skip 'api' prefix if present (Next.js routes include /api in the path)
384
+ if (pathParts[0] === 'api') {
385
+ pathParts = pathParts.slice(1);
386
+ }
387
+ // Parse query parameters
388
+ const options = parseQueryParams(url.searchParams);
389
+ // Create reveal request
390
+ const revealRequest = createRevealRequest(request);
391
+ revealRequest.revealui = revealui;
392
+ try {
393
+ // Route handling
394
+ if (pathParts[0] === 'collections' && pathParts[1]) {
395
+ const collection = pathParts[1];
396
+ const id = pathParts[2]; // Optional ID
397
+ if (!revealui.collections[collection]) {
398
+ return new Response(JSON.stringify({ message: `Collection '${collection}' not found` }), {
399
+ status: 404,
400
+ headers: { 'Content-Type': 'application/json' },
401
+ });
402
+ }
403
+ return await handleCollectionOperation(request.method, collection, id, revealui, request, options);
404
+ }
405
+ else if (pathParts[0] === 'globals' && pathParts[1]) {
406
+ const global = pathParts[1];
407
+ if (!revealui.globals[global]) {
408
+ return new Response(JSON.stringify({ message: `Global '${global}' not found` }), {
409
+ status: 404,
410
+ headers: { 'Content-Type': 'application/json' },
411
+ });
412
+ }
413
+ return await handleGlobalOperation(request.method, global, revealui, request, options);
414
+ }
415
+ else {
416
+ return new Response(JSON.stringify({ message: 'Route not found' }), {
417
+ status: 404,
418
+ headers: { 'Content-Type': 'application/json' },
419
+ });
420
+ }
421
+ }
422
+ catch (error) {
423
+ // Extract error message safely
424
+ const message = error instanceof Error ? error.message : 'Internal server error';
425
+ // Log error with context for debugging
426
+ defaultLogger.error('RevealUI REST API Error:', {
427
+ message,
428
+ path: url.pathname,
429
+ method: request.method,
430
+ error: error instanceof Error
431
+ ? {
432
+ message: error.message,
433
+ name: error.name,
434
+ stack: process.env.NODE_ENV === 'development' ? error.stack : undefined,
435
+ }
436
+ : error,
437
+ });
438
+ // Sanitize error message for client (don't expose internal details)
439
+ const clientMessage = 'An internal server error occurred';
440
+ return new Response(JSON.stringify({
441
+ message: clientMessage,
442
+ errors: [{ message: clientMessage }],
443
+ }), {
444
+ status: 500,
445
+ headers: {
446
+ 'Content-Type': 'application/json',
447
+ ...getCORSHeaders(request, config),
448
+ },
449
+ });
450
+ }
451
+ }
452
+ // Route handlers for Next.js
453
+ export function createRESTHandlers(config, revealui) {
454
+ const handler = async (request, _context) => {
455
+ return await handleRESTRequest(request, config, revealui);
456
+ };
457
+ return {
458
+ GET: handler,
459
+ POST: handler,
460
+ PUT: handler,
461
+ DELETE: handler,
462
+ PATCH: handler,
463
+ OPTIONS: handler,
464
+ };
465
+ }
@@ -0,0 +1,25 @@
1
+ import type { AccessResult } from '../types/index.js';
2
+ interface UserWithRoles {
3
+ id?: string | number;
4
+ email?: string;
5
+ roles?: string[];
6
+ }
7
+ interface AccessRequest {
8
+ user?: UserWithRoles | null;
9
+ revealui?: unknown;
10
+ }
11
+ type RevealAccessFunction = (args: {
12
+ req: AccessRequest;
13
+ }) => AccessResult | Promise<AccessResult>;
14
+ export declare const anyone: RevealAccessFunction;
15
+ export declare const authenticated: RevealAccessFunction;
16
+ export declare function isAdmin({ req }: {
17
+ req: AccessRequest;
18
+ }): boolean;
19
+ export declare function isSuperAdmin({ req }: {
20
+ req: AccessRequest;
21
+ }): boolean;
22
+ export declare function hasRole(role: string): RevealAccessFunction;
23
+ export declare function hasAnyRole(roles: string[]): RevealAccessFunction;
24
+ export {};
25
+ //# sourceMappingURL=access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/auth/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,UAAU,aAAa;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAGD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,aAAa,CAAA;CAAE,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEnG,eAAO,MAAM,MAAM,EAAE,oBAAiC,CAAC;AAEvD,eAAO,MAAM,aAAa,EAAE,oBAE3B,CAAC;AAEF,wBAAgB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,EAAE,aAAa,CAAA;CAAE,GAAG,OAAO,CAEhE;AAED,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,EAAE,aAAa,CAAA;CAAE,GAAG,OAAO,CAErE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAI1D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAIhE"}
@@ -0,0 +1,20 @@
1
+ export const anyone = () => true;
2
+ export const authenticated = ({ req }) => {
3
+ return !!req.user;
4
+ };
5
+ export function isAdmin({ req }) {
6
+ return !!req.user && !!req.user.roles?.includes('admin');
7
+ }
8
+ export function isSuperAdmin({ req }) {
9
+ return !!req.user && !!req.user.roles?.includes('super-admin');
10
+ }
11
+ export function hasRole(role) {
12
+ return ({ req }) => {
13
+ return !!req.user && !!req.user.roles?.includes(role);
14
+ };
15
+ }
16
+ export function hasAnyRole(roles) {
17
+ return ({ req }) => {
18
+ return !!req.user && roles.some((role) => req.user?.roles?.includes(role));
19
+ };
20
+ }
@@ -0,0 +1,2 @@
1
+ export * from './access.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ // Re-export auth utilities
2
+ export * from './access.js';
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Query Result Caching
3
+ *
4
+ * In-memory Map-based cache for database queries. No external dependencies
5
+ * (Redis, Memcached, etc.) — RevealUI uses PostgreSQL + ElectricSQL/PGlite
6
+ * for all persistence and sync.
7
+ */
8
+ interface CacheOptions {
9
+ ttl?: number;
10
+ prefix?: string;
11
+ tags?: string[];
12
+ }
13
+ interface CacheStats {
14
+ hits: number;
15
+ misses: number;
16
+ sets: number;
17
+ deletes: number;
18
+ hitRate: number;
19
+ }
20
+ /**
21
+ * Cache a query result
22
+ */
23
+ export declare function cacheQuery<T>(key: string, queryFn: () => Promise<T>, options?: CacheOptions): Promise<T>;
24
+ /**
25
+ * Invalidate cache by key
26
+ */
27
+ export declare function invalidateCache(key: string): void;
28
+ /**
29
+ * Invalidate cache by pattern
30
+ */
31
+ export declare function invalidateCachePattern(pattern: string): void;
32
+ /**
33
+ * Invalidate cache by tags
34
+ */
35
+ export declare function invalidateCacheTags(tags: string[]): void;
36
+ /**
37
+ * Clear all cache
38
+ */
39
+ export declare function clearCache(): void;
40
+ /**
41
+ * Get cache statistics
42
+ */
43
+ export declare function getCacheStats(): CacheStats;
44
+ /**
45
+ * Cache for list queries
46
+ */
47
+ export declare function cacheList<T>(resource: string, filters: Record<string, unknown>, queryFn: () => Promise<T[]>, ttl?: number): Promise<T[]>;
48
+ /**
49
+ * Cache for single item queries
50
+ */
51
+ export declare function cacheItem<T>(resource: string, id: string | number, queryFn: () => Promise<T>, ttl?: number): Promise<T>;
52
+ /**
53
+ * Cache for count queries
54
+ */
55
+ export declare function cacheCount(resource: string, filters: Record<string, unknown>, queryFn: () => Promise<number>, ttl?: number): Promise<number>;
56
+ /**
57
+ * Invalidate resource cache
58
+ */
59
+ export declare function invalidateResource(resource: string): void;
60
+ /**
61
+ * Warm cache with data
62
+ */
63
+ export declare function warmCache<T>(key: string, data: T, ttl?: number): void;
64
+ /**
65
+ * Get cached value without executing query
66
+ */
67
+ export declare function getCached<T>(key: string): T | null;
68
+ /**
69
+ * Check if key exists in cache
70
+ */
71
+ export declare function cacheExists(key: string): boolean;
72
+ /**
73
+ * Memoize function with cache
74
+ */
75
+ export declare function memoize<T extends (...args: unknown[]) => Promise<unknown>>(fn: T, options?: CacheOptions): T;
76
+ /**
77
+ * Create cache wrapper for query function
78
+ */
79
+ export declare function withCache<T extends (...args: unknown[]) => Promise<unknown>>(queryFn: T, options: {
80
+ keyFn: (...args: Parameters<T>) => string;
81
+ ttl?: number;
82
+ prefix?: string;
83
+ }): T;
84
+ /**
85
+ * Batch cache operations
86
+ */
87
+ export declare function batchCache<T>(operations: Array<{
88
+ key: string;
89
+ queryFn: () => Promise<T>;
90
+ ttl?: number;
91
+ }>): Promise<T[]>;
92
+ /**
93
+ * Cache with stale-while-revalidate pattern
94
+ */
95
+ export declare function cacheSWR<T>(key: string, queryFn: () => Promise<T>, options?: {
96
+ ttl?: number;
97
+ staleTime?: number;
98
+ }): Promise<T>;
99
+ export {};
100
+ //# sourceMappingURL=query-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-cache.d.ts","sourceRoot":"","sources":["../../src/cache/query-cache.ts"],"names":[],"mappings":"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"}