@revealui/core 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/dist/api/compression.d.ts.map +1 -1
  2. package/dist/api/payload-optimization.d.ts.map +1 -1
  3. package/dist/api/rate-limit.d.ts +29 -28
  4. package/dist/api/rate-limit.d.ts.map +1 -1
  5. package/dist/api/rate-limit.js +63 -3
  6. package/dist/api/response-cache.d.ts.map +1 -1
  7. package/dist/api/response-cache.js +1 -1
  8. package/dist/api/rest.d.ts.map +1 -1
  9. package/dist/api/rest.js +3 -2
  10. package/dist/auth/access.d.ts.map +1 -1
  11. package/dist/auth/index.d.ts.map +1 -1
  12. package/dist/cache/query-cache.d.ts +12 -10
  13. package/dist/cache/query-cache.d.ts.map +1 -1
  14. package/dist/cache/query-cache.js +38 -42
  15. package/dist/caching/app-cache.d.ts +5 -0
  16. package/dist/caching/app-cache.d.ts.map +1 -1
  17. package/dist/caching/app-cache.js +9 -1
  18. package/dist/caching/cdn-config.d.ts.map +1 -1
  19. package/dist/caching/cdn-config.js +4 -0
  20. package/dist/caching/edge-cache.d.ts +1 -1
  21. package/dist/caching/edge-cache.d.ts.map +1 -1
  22. package/dist/caching/edge-cache.js +36 -7
  23. package/dist/caching/index.d.ts +6 -0
  24. package/dist/caching/index.d.ts.map +1 -0
  25. package/dist/caching/index.js +5 -0
  26. package/dist/caching/service-worker.d.ts +6 -3
  27. package/dist/caching/service-worker.d.ts.map +1 -1
  28. package/dist/caching/service-worker.js +3 -2
  29. package/dist/client/admin/RichText.d.ts +1 -1
  30. package/dist/client/admin/RichText.d.ts.map +1 -1
  31. package/dist/client/admin/components/AdminDashboard.d.ts.map +1 -1
  32. package/dist/client/admin/components/AdminDashboard.js +178 -205
  33. package/dist/client/admin/components/CollectionList.d.ts.map +1 -1
  34. package/dist/client/admin/components/DocumentForm.d.ts.map +1 -1
  35. package/dist/client/admin/components/DocumentForm.js +130 -6
  36. package/dist/client/admin/components/GlobalForm.d.ts.map +1 -1
  37. package/dist/client/admin/context/ServerFunctionContext.d.ts +8 -0
  38. package/dist/client/admin/context/ServerFunctionContext.d.ts.map +1 -0
  39. package/dist/client/admin/context/ServerFunctionContext.js +15 -0
  40. package/dist/client/admin/i18n/en.d.ts.map +1 -1
  41. package/dist/client/admin/index.d.ts +1 -0
  42. package/dist/client/admin/index.d.ts.map +1 -1
  43. package/dist/client/admin/index.js +1 -0
  44. package/dist/client/admin/layout.d.ts +1 -1
  45. package/dist/client/admin/layout.d.ts.map +1 -1
  46. package/dist/client/admin/layout.js +3 -2
  47. package/dist/client/admin/page.d.ts.map +1 -1
  48. package/dist/client/admin/utils/apiClient.d.ts.map +1 -1
  49. package/dist/client/admin/utils/apiClient.js +0 -4
  50. package/dist/client/admin/utils/index.d.ts +0 -1
  51. package/dist/client/admin/utils/index.d.ts.map +1 -1
  52. package/dist/client/admin/utils/index.js +0 -1
  53. package/dist/client/admin/utils/serializeConfig.d.ts.map +1 -1
  54. package/dist/client/hooks.d.ts.map +1 -1
  55. package/dist/client/index.d.ts.map +1 -1
  56. package/dist/client/richtext/RichTextEditor.d.ts.map +1 -1
  57. package/dist/client/richtext/components/ImageNodeComponent.d.ts.map +1 -1
  58. package/dist/client/richtext/components/ImageNodeComponent.js +0 -1
  59. package/dist/client/richtext/components/ImageUploadButton.d.ts +2 -0
  60. package/dist/client/richtext/components/ImageUploadButton.d.ts.map +1 -1
  61. package/dist/client/richtext/components/ImageUploadButton.js +30 -15
  62. package/dist/client/richtext/index.d.ts.map +1 -1
  63. package/dist/client/richtext/nodes/DecoratorBlockNode.d.ts.map +1 -1
  64. package/dist/client/richtext/nodes/ImageNode.d.ts.map +1 -1
  65. package/dist/client/richtext/plugins/CollaborationPlugin.d.ts.map +1 -1
  66. package/dist/client/richtext/plugins/CursorsOverlayPlugin.d.ts.map +1 -1
  67. package/dist/client/richtext/plugins/FloatingToolbarPlugin.d.ts.map +1 -1
  68. package/dist/client/richtext/plugins/ImagePlugin.d.ts.map +1 -1
  69. package/dist/client/richtext/plugins/ToolbarPlugin.d.ts.map +1 -1
  70. package/dist/client/ui/index.d.ts.map +1 -1
  71. package/dist/client/ui/index.js +1 -1
  72. package/dist/collections/CollectionOperations.d.ts +7 -7
  73. package/dist/collections/CollectionOperations.d.ts.map +1 -1
  74. package/dist/collections/CollectionOperations.js +15 -1
  75. package/dist/collections/hooks.d.ts.map +1 -1
  76. package/dist/collections/index.d.ts.map +1 -1
  77. package/dist/collections/operations/create.d.ts +2 -4
  78. package/dist/collections/operations/create.d.ts.map +1 -1
  79. package/dist/collections/operations/create.js +7 -5
  80. package/dist/collections/operations/createMany.d.ts +12 -0
  81. package/dist/collections/operations/createMany.d.ts.map +1 -0
  82. package/dist/collections/operations/createMany.js +43 -0
  83. package/dist/collections/operations/delete.d.ts +1 -1
  84. package/dist/collections/operations/delete.d.ts.map +1 -1
  85. package/dist/collections/operations/delete.js +31 -2
  86. package/dist/collections/operations/deleteMany.d.ts +11 -0
  87. package/dist/collections/operations/deleteMany.d.ts.map +1 -0
  88. package/dist/collections/operations/deleteMany.js +50 -0
  89. package/dist/collections/operations/fieldHooks.d.ts +2 -2
  90. package/dist/collections/operations/fieldHooks.d.ts.map +1 -1
  91. package/dist/collections/operations/fieldHooks.js +4 -4
  92. package/dist/collections/operations/find.d.ts +2 -4
  93. package/dist/collections/operations/find.d.ts.map +1 -1
  94. package/dist/collections/operations/find.js +115 -8
  95. package/dist/collections/operations/findById.d.ts +3 -4
  96. package/dist/collections/operations/findById.d.ts.map +1 -1
  97. package/dist/collections/operations/findById.js +53 -1
  98. package/dist/collections/operations/sqlAdapter.d.ts +23 -0
  99. package/dist/collections/operations/sqlAdapter.d.ts.map +1 -0
  100. package/dist/collections/operations/sqlAdapter.js +76 -0
  101. package/dist/collections/operations/update.d.ts +3 -5
  102. package/dist/collections/operations/update.d.ts.map +1 -1
  103. package/dist/collections/operations/update.js +103 -11
  104. package/dist/collections/operations/updateMany.d.ts +11 -0
  105. package/dist/collections/operations/updateMany.d.ts.map +1 -0
  106. package/dist/collections/operations/updateMany.js +52 -0
  107. package/dist/collections/registry.d.ts +12 -0
  108. package/dist/collections/registry.d.ts.map +1 -0
  109. package/dist/collections/registry.js +38 -0
  110. package/dist/config/index.d.ts.map +1 -1
  111. package/dist/config/runtime.d.ts.map +1 -1
  112. package/dist/config/utils.d.ts +0 -10
  113. package/dist/config/utils.d.ts.map +1 -1
  114. package/dist/config/utils.js +0 -13
  115. package/dist/database/index.d.ts +3 -0
  116. package/dist/database/index.d.ts.map +1 -1
  117. package/dist/database/index.js +1 -5
  118. package/dist/database/safe-parse.d.ts.map +1 -1
  119. package/dist/database/ssl-config.d.ts.map +1 -1
  120. package/dist/database/type-adapter.d.ts.map +1 -1
  121. package/dist/database/universal-postgres.d.ts.map +1 -1
  122. package/dist/database/universal-postgres.js +6 -1
  123. package/dist/dataloader.d.ts.map +1 -1
  124. package/dist/error-handling/circuit-breaker.d.ts +1 -1
  125. package/dist/error-handling/circuit-breaker.d.ts.map +1 -1
  126. package/dist/error-handling/circuit-breaker.js +11 -3
  127. package/dist/error-handling/error-boundary.d.ts.map +1 -1
  128. package/dist/error-handling/error-reporter.d.ts +1 -1
  129. package/dist/error-handling/error-reporter.d.ts.map +1 -1
  130. package/dist/error-handling/error-reporter.js +19 -5
  131. package/dist/error-handling/fallback-components.d.ts.map +1 -1
  132. package/dist/error-handling/fallback-components.js +1 -1
  133. package/dist/error-handling/index.d.ts +2 -4
  134. package/dist/error-handling/index.d.ts.map +1 -1
  135. package/dist/error-handling/index.js +1 -4
  136. package/dist/error-handling/retry.d.ts.map +1 -1
  137. package/dist/error-handling/retry.js +13 -8
  138. package/dist/factories/builders.d.ts.map +1 -1
  139. package/dist/factories/index.d.ts.map +1 -1
  140. package/dist/features.d.ts +0 -4
  141. package/dist/features.d.ts.map +1 -1
  142. package/dist/features.js +0 -2
  143. package/dist/fieldTraversal.d.ts.map +1 -1
  144. package/dist/fields/config/types.d.ts.map +1 -1
  145. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  146. package/dist/fields/getFieldPaths.d.ts.map +1 -1
  147. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  148. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  149. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  150. package/dist/generated/types/cms.d.ts.map +1 -1
  151. package/dist/generated/types/cms.js +0 -1
  152. package/dist/generated/types/neon.d.ts.map +1 -1
  153. package/dist/generated/types/neon.js +4 -2
  154. package/dist/globals/GlobalOperations.d.ts.map +1 -1
  155. package/dist/globals/GlobalOperations.js +4 -2
  156. package/dist/globals/index.d.ts.map +1 -1
  157. package/dist/index.d.ts +4 -4
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.js +4 -4
  160. package/dist/instance/RevealUIInstance.d.ts.map +1 -1
  161. package/dist/instance/RevealUIInstance.js +6 -19
  162. package/dist/instance/index.d.ts.map +1 -1
  163. package/dist/instance/logger.d.ts.map +1 -1
  164. package/dist/instance/methods/create.d.ts.map +1 -1
  165. package/dist/instance/methods/create.js +0 -3
  166. package/dist/instance/methods/delete.d.ts.map +1 -1
  167. package/dist/instance/methods/delete.js +1 -4
  168. package/dist/instance/methods/find.d.ts.map +1 -1
  169. package/dist/instance/methods/find.js +0 -3
  170. package/dist/instance/methods/findById.d.ts.map +1 -1
  171. package/dist/instance/methods/findById.js +0 -3
  172. package/dist/instance/methods/hooks.d.ts.map +1 -1
  173. package/dist/instance/methods/update.d.ts.map +1 -1
  174. package/dist/instance/methods/update.js +0 -3
  175. package/dist/jobs/index.d.ts +16 -0
  176. package/dist/jobs/index.d.ts.map +1 -0
  177. package/dist/jobs/index.js +14 -0
  178. package/dist/jobs/queue.d.ts +57 -0
  179. package/dist/jobs/queue.d.ts.map +1 -0
  180. package/dist/jobs/queue.js +134 -0
  181. package/dist/license-encryption.d.ts +21 -0
  182. package/dist/license-encryption.d.ts.map +1 -0
  183. package/dist/license-encryption.js +74 -0
  184. package/dist/license.d.ts +20 -3
  185. package/dist/license.d.ts.map +1 -1
  186. package/dist/license.js +73 -6
  187. package/dist/monitoring/alerts.d.ts.map +1 -1
  188. package/dist/monitoring/cleanup-manager.d.ts.map +1 -1
  189. package/dist/monitoring/health-monitor.d.ts.map +1 -1
  190. package/dist/monitoring/index.d.ts.map +1 -1
  191. package/dist/monitoring/process-registry.d.ts.map +1 -1
  192. package/dist/monitoring/query-monitor.d.ts.map +1 -1
  193. package/dist/monitoring/types.d.ts.map +1 -1
  194. package/dist/monitoring/zombie-detector.d.ts.map +1 -1
  195. package/dist/monitoring/zombie-detector.js +5 -0
  196. package/dist/nextjs/index.d.ts.map +1 -1
  197. package/dist/nextjs/utilities.d.ts.map +1 -1
  198. package/dist/nextjs/withRevealUI.d.ts.map +1 -1
  199. package/dist/observability/alerts.d.ts.map +1 -1
  200. package/dist/observability/alerts.js +1 -2
  201. package/dist/observability/health-check.d.ts +0 -4
  202. package/dist/observability/health-check.d.ts.map +1 -1
  203. package/dist/observability/health-check.js +0 -36
  204. package/dist/observability/index.d.ts.map +1 -1
  205. package/dist/observability/logger.d.ts.map +1 -1
  206. package/dist/observability/logger.js +1 -1
  207. package/dist/observability/metrics.d.ts.map +1 -1
  208. package/dist/observability/tracing.d.ts.map +1 -1
  209. package/dist/observability/tracing.js +0 -1
  210. package/dist/optimization/asset-optimizer.d.ts +6 -2
  211. package/dist/optimization/asset-optimizer.d.ts.map +1 -1
  212. package/dist/optimization/asset-optimizer.js +31 -7
  213. package/dist/optimization/bundle-analyzer.d.ts +1 -1
  214. package/dist/optimization/bundle-analyzer.d.ts.map +1 -1
  215. package/dist/optimization/bundle-analyzer.js +29 -5
  216. package/dist/optimization/code-splitting.d.ts +0 -10
  217. package/dist/optimization/code-splitting.d.ts.map +1 -1
  218. package/dist/optimization/code-splitting.js +0 -16
  219. package/dist/plugins/form-builder.d.ts.map +1 -1
  220. package/dist/plugins/index.d.ts.map +1 -1
  221. package/dist/plugins/nested-docs.d.ts +4 -0
  222. package/dist/plugins/nested-docs.d.ts.map +1 -1
  223. package/dist/plugins/nested-docs.js +50 -5
  224. package/dist/plugins/redirects.d.ts.map +1 -1
  225. package/dist/queries/index.d.ts.map +1 -1
  226. package/dist/queries/queryBuilder.d.ts.map +1 -1
  227. package/dist/queries/queryBuilder.js +9 -2
  228. package/dist/relationships/analyzer.d.ts.map +1 -1
  229. package/dist/relationships/analyzer.js +8 -0
  230. package/dist/relationships/index.d.ts.map +1 -1
  231. package/dist/relationships/populate-core.d.ts +57 -0
  232. package/dist/relationships/populate-core.d.ts.map +1 -0
  233. package/dist/relationships/populate-core.js +116 -0
  234. package/dist/relationships/populate-helpers.d.ts +5 -51
  235. package/dist/relationships/populate-helpers.d.ts.map +1 -1
  236. package/dist/relationships/populate-helpers.js +4 -109
  237. package/dist/relationships/population.d.ts +1 -9
  238. package/dist/relationships/population.d.ts.map +1 -1
  239. package/dist/relationships/population.js +8 -3
  240. package/dist/revealui.d.ts.map +1 -1
  241. package/dist/richtext/exports/client/rcc.d.ts.map +1 -1
  242. package/dist/richtext/exports/client/rcc.js +1 -1
  243. package/dist/richtext/exports/server/rsc.d.ts +17 -0
  244. package/dist/richtext/exports/server/rsc.d.ts.map +1 -1
  245. package/dist/richtext/exports/server/rsc.js +61 -5
  246. package/dist/richtext/index.d.ts.map +1 -1
  247. package/dist/richtext/lexical.d.ts.map +1 -1
  248. package/dist/security/audit.d.ts +1 -1
  249. package/dist/security/audit.d.ts.map +1 -1
  250. package/dist/security/audit.js +4 -2
  251. package/dist/security/auth.d.ts +29 -160
  252. package/dist/security/auth.d.ts.map +1 -1
  253. package/dist/security/auth.js +148 -367
  254. package/dist/security/authorization.d.ts +7 -31
  255. package/dist/security/authorization.d.ts.map +1 -1
  256. package/dist/security/authorization.js +72 -14
  257. package/dist/security/encryption.d.ts +56 -44
  258. package/dist/security/encryption.d.ts.map +1 -1
  259. package/dist/security/encryption.js +113 -96
  260. package/dist/security/gdpr-storage.d.ts +102 -0
  261. package/dist/security/gdpr-storage.d.ts.map +1 -0
  262. package/dist/security/gdpr-storage.js +65 -0
  263. package/dist/security/gdpr.d.ts +57 -37
  264. package/dist/security/gdpr.d.ts.map +1 -1
  265. package/dist/security/gdpr.js +155 -89
  266. package/dist/security/headers.d.ts +4 -2
  267. package/dist/security/headers.d.ts.map +1 -1
  268. package/dist/security/headers.js +35 -17
  269. package/dist/security/index.d.ts +3 -16
  270. package/dist/security/index.d.ts.map +1 -1
  271. package/dist/security/index.js +3 -16
  272. package/dist/server/index.d.ts.map +1 -1
  273. package/dist/server/renderPage.d.ts.map +1 -1
  274. package/dist/storage/index.d.ts +1 -0
  275. package/dist/storage/index.d.ts.map +1 -1
  276. package/dist/storage/index.js +2 -4
  277. package/dist/storage/vercel-blob.d.ts.map +1 -1
  278. package/dist/translations/index.d.ts.map +1 -1
  279. package/dist/types/access.d.ts.map +1 -1
  280. package/dist/types/api.d.ts.map +1 -1
  281. package/dist/types/cms.d.ts.map +1 -1
  282. package/dist/types/config.d.ts.map +1 -1
  283. package/dist/types/core.d.ts.map +1 -1
  284. package/dist/types/extensions.d.ts.map +1 -1
  285. package/dist/types/frontend.d.ts.map +1 -1
  286. package/dist/types/generated.d.ts.map +1 -1
  287. package/dist/types/hooks.d.ts.map +1 -1
  288. package/dist/types/index.d.ts +1 -1
  289. package/dist/types/index.d.ts.map +1 -1
  290. package/dist/types/interfaces/app.d.ts.map +1 -1
  291. package/dist/types/jobs.d.ts.map +1 -1
  292. package/dist/types/legacy.d.ts.map +1 -1
  293. package/dist/types/plugins.d.ts.map +1 -1
  294. package/dist/types/query.d.ts.map +1 -1
  295. package/dist/types/request.d.ts.map +1 -1
  296. package/dist/types/richtext.d.ts.map +1 -1
  297. package/dist/types/runtime.d.ts +59 -1
  298. package/dist/types/runtime.d.ts.map +1 -1
  299. package/dist/types/schema.d.ts.map +1 -1
  300. package/dist/types/user.d.ts.map +1 -1
  301. package/dist/utils/access-conversion.d.ts.map +1 -1
  302. package/dist/utils/api-wrapper.d.ts.map +1 -1
  303. package/dist/utils/api-wrapper.js +1 -1
  304. package/dist/utils/block-conversion.d.ts.map +1 -1
  305. package/dist/utils/cache.d.ts.map +1 -1
  306. package/dist/utils/deep-clone.js +0 -1
  307. package/dist/utils/error-responses.d.ts.map +1 -1
  308. package/dist/utils/errors.d.ts +36 -0
  309. package/dist/utils/errors.d.ts.map +1 -1
  310. package/dist/utils/errors.js +103 -0
  311. package/dist/utils/field-conversion.d.ts +1 -1
  312. package/dist/utils/field-conversion.d.ts.map +1 -1
  313. package/dist/utils/flattenResult.d.ts.map +1 -1
  314. package/dist/utils/flattenResult.js +0 -1
  315. package/dist/utils/getBlockSelect.d.ts.map +1 -1
  316. package/dist/utils/getSelectMode.d.ts.map +1 -1
  317. package/dist/utils/isValidID.d.ts.map +1 -1
  318. package/dist/utils/json-parsing.d.ts.map +1 -1
  319. package/dist/utils/logger-client.d.ts.map +1 -1
  320. package/dist/utils/logger-server.d.ts.map +1 -1
  321. package/dist/utils/logger.d.ts.map +1 -1
  322. package/dist/utils/request-context.d.ts.map +1 -1
  323. package/dist/utils/stripUnselectedFields.d.ts.map +1 -1
  324. package/dist/utils/type-guards.d.ts.map +1 -1
  325. package/package.json +39 -7
@@ -1 +1 @@
1
- {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/api/compression.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG5D,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AA0GD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,kBAAuB,IAC5D,SAAS,WAAW,EAAE,MAAM,MAAM,OAAO,CAAC,YAAY,CAAC,oCAItE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAExF;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,GAAG,UAAU,EACjC,cAAc,EAAE,UAAU,EAC1B,QAAQ,EAAE,MAAM,GACf,gBAAgB,CAelB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CtB,CAAA;AAEV;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,OAAO,EACb,QAAQ,GAAE,MAAM,GAAG,IAAa,EAChC,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAgB5F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG;IAC5D,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;CAChB,CAOA"}
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/api/compression.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7D,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AA4GD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,kBAAuB,IAC5D,SAAS,WAAW,EAAE,MAAM,MAAM,OAAO,CAAC,YAAY,CAAC,oCAItE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAExF;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,GAAG,UAAU,EACjC,cAAc,EAAE,UAAU,EAC1B,QAAQ,EAAE,MAAM,GACf,gBAAgB,CAelB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CtB,CAAC;AAEX;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,OAAO,EACb,QAAQ,GAAE,MAAM,GAAG,IAAa,EAChC,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAkB5F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG;IAC5D,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB,CAOA"}
@@ -1 +1 @@
1
- {"version":3,"file":"payload-optimization.d.ts","sourceRoot":"","sources":["../../src/api/payload-optimization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload-optimization.d.ts","sourceRoot":"","sources":["../../src/api/payload-optimization.ts"],"names":[],"mappings":"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"}
@@ -45,34 +45,35 @@ export declare function getRateLimitStats(): {
45
45
  expired: number;
46
46
  };
47
47
  /**
48
- * Rate limit presets
49
- */
50
- export declare const RATE_LIMIT_PRESETS: {
51
- readonly veryStrict: {
52
- readonly windowMs: number;
53
- readonly maxRequests: 10;
54
- };
55
- readonly strict: {
56
- readonly windowMs: number;
57
- readonly maxRequests: 30;
58
- };
59
- readonly standard: {
60
- readonly windowMs: number;
61
- readonly maxRequests: 100;
62
- };
63
- readonly relaxed: {
64
- readonly windowMs: number;
65
- readonly maxRequests: 500;
66
- };
67
- readonly hourly: {
68
- readonly windowMs: number;
69
- readonly maxRequests: 1000;
70
- };
71
- readonly daily: {
72
- readonly windowMs: number;
73
- readonly maxRequests: 10000;
74
- };
75
- };
48
+ * Rate limit preset configuration
49
+ */
50
+ export interface RateLimitPresetConfig {
51
+ /** Time window in milliseconds */
52
+ windowMs: number;
53
+ /** Maximum requests per window */
54
+ maxRequests: number;
55
+ }
56
+ /**
57
+ * Override one or more rate limit presets.
58
+ *
59
+ * Unknown keys create new presets; existing keys are merged with defaults.
60
+ */
61
+ export declare function configureRateLimitPresets(overrides: Record<string, Partial<RateLimitPresetConfig>>): void;
62
+ /**
63
+ * Get the current (possibly overridden) rate limit presets.
64
+ */
65
+ export declare function getRateLimitPresets(): Readonly<Record<string, RateLimitPresetConfig>>;
66
+ /**
67
+ * Reset all presets to their defaults.
68
+ */
69
+ export declare function resetRateLimitPresets(): void;
70
+ /**
71
+ * Rate limit presets — backward-compatible accessor.
72
+ *
73
+ * Reads from the mutable `rateLimitPresets` so overrides from
74
+ * `configureRateLimitPresets()` are reflected automatically.
75
+ */
76
+ export declare const RATE_LIMIT_PRESETS: Record<string, RateLimitPresetConfig>;
76
77
  /**
77
78
  * Rate limit by user ID
78
79
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/api/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG5D,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAA;IAC/C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAA;IACxC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,YAAY,CAAA;CACjD;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AA0BD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,eAAe,GACtB;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,CA0CA;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,IACjD,SAAS,WAAW,EAAE,MAAM,MAAM,OAAO,CAAC,YAAY,CAAC,oCAiBtE;AA8BD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CA6B1C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,GAAE,MAAc,GAAG,MAAM,CAAC,OAAO,CAOhF;AAED;;GAEG;AACH,wBAAgB,iBAAiB;;;;EAkBhC;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;CAoCrB,CAAA;AAEV;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,aAhKxD,WAAW,QAAQ,MAAM,OAAO,CAAC,YAAY,CAAC,oCAyKtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,aA9K1D,WAAW,QAAQ,MAAM,OAAO,CAAC,YAAY,CAAC,oCAsLtE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,aA3L5D,WAAW,QAAQ,MAAM,OAAO,CAAC,YAAY,CAAC,oCAqMtE;AAWD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,eAAe,GACtB;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CA4BA;AAYD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,eAAe,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAC/C;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CAqCA;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIhD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAEnE"}
1
+ {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/api/rate-limit.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,10 @@
5
5
  */
6
6
  import { NextResponse } from 'next/server';
7
7
  import { logger } from '../observability/logger.js';
8
- // In-memory store (replace with Redis in production)
8
+ // WARNING: In-memory store resets on every serverless cold start or process restart.
9
+ // This module is NOT used by any app in production (API uses apps/api/src/middleware/rate-limit.ts,
10
+ // CMS uses @revealui/auth/server which is DB-backed). Exported for framework consumers only.
11
+ // Replace with a database-backed store before using in production.
9
12
  const rateLimitStore = new Map();
10
13
  /**
11
14
  * Default key generator (by IP address)
@@ -163,9 +166,9 @@ export function getRateLimitStats() {
163
166
  };
164
167
  }
165
168
  /**
166
- * Rate limit presets
169
+ * Default rate limit presets (immutable reference copy)
167
170
  */
168
- export const RATE_LIMIT_PRESETS = {
171
+ const DEFAULT_RATE_LIMIT_PRESETS = {
169
172
  // Very strict (10 requests per minute)
170
173
  veryStrict: {
171
174
  windowMs: 60 * 1000,
@@ -197,6 +200,63 @@ export const RATE_LIMIT_PRESETS = {
197
200
  maxRequests: 10000,
198
201
  },
199
202
  };
203
+ /** Mutable presets (overridable via configureRateLimitPresets) */
204
+ let rateLimitPresets = {
205
+ ...DEFAULT_RATE_LIMIT_PRESETS,
206
+ };
207
+ /**
208
+ * Override one or more rate limit presets.
209
+ *
210
+ * Unknown keys create new presets; existing keys are merged with defaults.
211
+ */
212
+ export function configureRateLimitPresets(overrides) {
213
+ for (const [key, override] of Object.entries(overrides)) {
214
+ const base = DEFAULT_RATE_LIMIT_PRESETS[key] ?? {
215
+ windowMs: 60_000,
216
+ maxRequests: 100,
217
+ };
218
+ rateLimitPresets[key] = { ...base, ...override };
219
+ }
220
+ }
221
+ /**
222
+ * Get the current (possibly overridden) rate limit presets.
223
+ */
224
+ export function getRateLimitPresets() {
225
+ return rateLimitPresets;
226
+ }
227
+ /**
228
+ * Reset all presets to their defaults.
229
+ */
230
+ export function resetRateLimitPresets() {
231
+ rateLimitPresets = { ...DEFAULT_RATE_LIMIT_PRESETS };
232
+ }
233
+ /**
234
+ * Rate limit presets — backward-compatible accessor.
235
+ *
236
+ * Reads from the mutable `rateLimitPresets` so overrides from
237
+ * `configureRateLimitPresets()` are reflected automatically.
238
+ */
239
+ export const RATE_LIMIT_PRESETS = new Proxy({}, {
240
+ get(_target, prop) {
241
+ return rateLimitPresets[prop];
242
+ },
243
+ ownKeys() {
244
+ return Object.keys(rateLimitPresets);
245
+ },
246
+ getOwnPropertyDescriptor(_target, prop) {
247
+ if (prop in rateLimitPresets) {
248
+ return {
249
+ configurable: true,
250
+ enumerable: true,
251
+ value: rateLimitPresets[prop],
252
+ };
253
+ }
254
+ return undefined;
255
+ },
256
+ has(_target, prop) {
257
+ return prop in rateLimitPresets;
258
+ },
259
+ });
200
260
  /**
201
261
  * Rate limit by user ID
202
262
  */
@@ -1 +1 @@
1
- {"version":3,"file":"response-cache.d.ts","sourceRoot":"","sources":["../../src/api/response-cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG5D,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAiBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAW7D;AAyBD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA0B1F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAY9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAW1D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CA6B3F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,YAAiB,IAChD,SAAS,WAAW,EAAE,MAAM,MAAM,OAAO,CAAC,YAAY,CAAC,oCAqBtE;AAED;;GAEG;AACH,wBAAgB,aAAa;;;;;;EA0B5B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAc1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,GAAE,MAAc,GAAG,MAAM,CAAC,OAAO,CAO5E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAQ9E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,YAAY,CAKxD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+ChB,CAAA;AAEV;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC5B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAsCvC"}
1
+ {"version":3,"file":"response-cache.d.ts","sourceRoot":"","sources":["../../src/api/response-cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7D,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAiBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAW7D;AAyBD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA0B1F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAY9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAW1D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CA6B3F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,YAAiB,IAChD,SAAS,WAAW,EAAE,MAAM,MAAM,OAAO,CAAC,YAAY,CAAC,oCAqBtE;AAED;;GAEG;AACH,wBAAgB,aAAa;;;;;;EA0B5B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAc1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,GAAE,MAAc,GAAG,MAAM,CAAC,OAAO,CAO5E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAQ9E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,YAAY,CAKxD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+ChB,CAAC;AAEX;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC5B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAsCvC"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { NextResponse } from 'next/server';
7
7
  import { logger } from '../observability/logger.js';
8
- // In-memory cache store (replace with Redis in production)
8
+ // In-memory cache store (no external cache dependency needed)
9
9
  const cacheStore = new Map();
10
10
  /**
11
11
  * Generate cache key from request
@@ -1 +1 @@
1
- {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/api/rest.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EAGZ,cAAc,EAGd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,cAAc;IAC7C,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;IACV,GAAG,CAAC,EAAE,CAAC,CAAA;IACP,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpD;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AA4aD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAiGnB;AAGD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,GACzB;IACD,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/D,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAChE,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/D,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CACpE,CAcA"}
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/api/rest.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EAGZ,cAAc,EAGd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,cAAc;IAC7C,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACX,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AA8aD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAiGnB;AAGD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,GACzB;IACD,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChE,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACrE,CAaA"}
package/dist/api/rest.js CHANGED
@@ -24,7 +24,9 @@ function parseQueryParams(searchParams) {
24
24
  if (fallbackLocale) {
25
25
  options.fallbackLocale = fallbackLocale;
26
26
  }
27
- // Parse overrideAccess
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).
28
30
  const overrideAccess = searchParams.get('overrideAccess');
29
31
  if (overrideAccess !== null) {
30
32
  options.overrideAccess = overrideAccess === 'true';
@@ -449,7 +451,6 @@ export async function handleRESTRequest(request, config, revealui) {
449
451
  }
450
452
  // Route handlers for Next.js
451
453
  export function createRESTHandlers(config, revealui) {
452
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
453
454
  const handler = async (request, _context) => {
454
455
  return await handleRESTRequest(request, config, revealui);
455
456
  };
@@ -1 +1 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/auth/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,UAAU,aAAa;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAGD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAGD,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,aAAa,CAAA;CAAE,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAElG,eAAO,MAAM,MAAM,EAAE,oBAAiC,CAAA;AAEtD,eAAO,MAAM,aAAa,EAAE,oBAE3B,CAAA;AAED,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC"}
@@ -1,7 +1,9 @@
1
1
  /**
2
- * Query Result Caching with Redis
2
+ * Query Result Caching
3
3
  *
4
- * Implements multi-layer caching for database queries
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.
5
7
  */
6
8
  interface CacheOptions {
7
9
  ttl?: number;
@@ -22,19 +24,19 @@ export declare function cacheQuery<T>(key: string, queryFn: () => Promise<T>, op
22
24
  /**
23
25
  * Invalidate cache by key
24
26
  */
25
- export declare function invalidateCache(key: string): Promise<void>;
27
+ export declare function invalidateCache(key: string): void;
26
28
  /**
27
29
  * Invalidate cache by pattern
28
30
  */
29
- export declare function invalidateCachePattern(pattern: string): Promise<void>;
31
+ export declare function invalidateCachePattern(pattern: string): void;
30
32
  /**
31
33
  * Invalidate cache by tags
32
34
  */
33
- export declare function invalidateCacheTags(tags: string[]): Promise<void>;
35
+ export declare function invalidateCacheTags(tags: string[]): void;
34
36
  /**
35
37
  * Clear all cache
36
38
  */
37
- export declare function clearCache(): Promise<void>;
39
+ export declare function clearCache(): void;
38
40
  /**
39
41
  * Get cache statistics
40
42
  */
@@ -54,19 +56,19 @@ export declare function cacheCount(resource: string, filters: Record<string, unk
54
56
  /**
55
57
  * Invalidate resource cache
56
58
  */
57
- export declare function invalidateResource(resource: string): Promise<void>;
59
+ export declare function invalidateResource(resource: string): void;
58
60
  /**
59
61
  * Warm cache with data
60
62
  */
61
- export declare function warmCache<T>(key: string, data: T, ttl?: number): Promise<void>;
63
+ export declare function warmCache<T>(key: string, data: T, ttl?: number): void;
62
64
  /**
63
65
  * Get cached value without executing query
64
66
  */
65
- export declare function getCached<T>(key: string): Promise<T | null>;
67
+ export declare function getCached<T>(key: string): T | null;
66
68
  /**
67
69
  * Check if key exists in cache
68
70
  */
69
- export declare function cacheExists(key: string): Promise<boolean>;
71
+ export declare function cacheExists(key: string): boolean;
70
72
  /**
71
73
  * Memoize function with cache
72
74
  */
@@ -1 +1 @@
1
- {"version":3,"file":"query-cache.d.ts","sourceRoot":"","sources":["../../src/cache/query-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-cache.d.ts","sourceRoot":"","sources":["../../src/cache/query-cache.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  /**
2
- * Query Result Caching with Redis
2
+ * Query Result Caching
3
3
  *
4
- * Implements multi-layer caching for database queries
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.
5
7
  */
6
8
  import { logger } from '../observability/logger.js';
7
- // Mock Redis for now - replace with actual Redis connection
8
- class RedisCache {
9
+ class QueryCache {
9
10
  cache = new Map();
10
11
  stats = {
11
12
  hits: 0,
@@ -14,7 +15,7 @@ class RedisCache {
14
15
  deletes: 0,
15
16
  hitRate: 0,
16
17
  };
17
- async get(key) {
18
+ get(key) {
18
19
  const entry = this.cache.get(key);
19
20
  if (!entry) {
20
21
  this.stats.misses++;
@@ -31,17 +32,14 @@ class RedisCache {
31
32
  this.updateHitRate();
32
33
  return entry.value;
33
34
  }
34
- async set(key, value, ttl) {
35
+ set(key, value, ttlSeconds) {
35
36
  this.cache.set(key, {
36
37
  value,
37
- expires: Date.now() + ttl * 1000,
38
+ expires: Date.now() + ttlSeconds * 1000,
38
39
  });
39
40
  this.stats.sets++;
40
41
  }
41
- async setex(key, ttl, value) {
42
- await this.set(key, value, ttl);
43
- }
44
- async del(...keys) {
42
+ del(...keys) {
45
43
  let deleted = 0;
46
44
  for (const key of keys) {
47
45
  if (this.cache.delete(key)) {
@@ -51,11 +49,11 @@ class RedisCache {
51
49
  }
52
50
  return deleted;
53
51
  }
54
- async keys(pattern) {
52
+ keys(pattern) {
55
53
  const regex = new RegExp(pattern.replace('*', '.*'));
56
54
  return Array.from(this.cache.keys()).filter((key) => regex.test(key));
57
55
  }
58
- async flushall() {
56
+ clear() {
59
57
  this.cache.clear();
60
58
  }
61
59
  getStats() {
@@ -66,7 +64,7 @@ class RedisCache {
66
64
  this.stats.hitRate = total > 0 ? (this.stats.hits / total) * 100 : 0;
67
65
  }
68
66
  }
69
- const redis = new RedisCache();
67
+ const cache = new QueryCache();
70
68
  /**
71
69
  * Cache a query result
72
70
  */
@@ -75,7 +73,7 @@ export async function cacheQuery(key, queryFn, options = {}) {
75
73
  prefix = 'query', } = options;
76
74
  const cacheKey = `${prefix}:${key}`;
77
75
  // Try cache first
78
- const cached = await redis.get(cacheKey);
76
+ const cached = cache.get(cacheKey);
79
77
  if (cached) {
80
78
  try {
81
79
  return JSON.parse(cached);
@@ -89,7 +87,7 @@ export async function cacheQuery(key, queryFn, options = {}) {
89
87
  const result = await queryFn();
90
88
  // Cache result
91
89
  try {
92
- await redis.setex(cacheKey, ttl, JSON.stringify(result));
90
+ cache.set(cacheKey, JSON.stringify(result), ttl);
93
91
  }
94
92
  catch (error) {
95
93
  logger.error('Cache set error', error instanceof Error ? error : new Error(String(error)));
@@ -100,37 +98,37 @@ export async function cacheQuery(key, queryFn, options = {}) {
100
98
  /**
101
99
  * Invalidate cache by key
102
100
  */
103
- export async function invalidateCache(key) {
104
- await redis.del(key);
101
+ export function invalidateCache(key) {
102
+ cache.del(key);
105
103
  }
106
104
  /**
107
105
  * Invalidate cache by pattern
108
106
  */
109
- export async function invalidateCachePattern(pattern) {
110
- const keys = await redis.keys(pattern);
107
+ export function invalidateCachePattern(pattern) {
108
+ const keys = cache.keys(pattern);
111
109
  if (keys.length > 0) {
112
- await redis.del(...keys);
110
+ cache.del(...keys);
113
111
  }
114
112
  }
115
113
  /**
116
114
  * Invalidate cache by tags
117
115
  */
118
- export async function invalidateCacheTags(tags) {
116
+ export function invalidateCacheTags(tags) {
119
117
  for (const tag of tags) {
120
- await invalidateCachePattern(`*:tag:${tag}:*`);
118
+ invalidateCachePattern(`*:tag:${tag}:*`);
121
119
  }
122
120
  }
123
121
  /**
124
122
  * Clear all cache
125
123
  */
126
- export async function clearCache() {
127
- await redis.flushall();
124
+ export function clearCache() {
125
+ cache.clear();
128
126
  }
129
127
  /**
130
128
  * Get cache statistics
131
129
  */
132
130
  export function getCacheStats() {
133
- return redis.getStats();
131
+ return cache.getStats();
134
132
  }
135
133
  /**
136
134
  * Cache for list queries
@@ -164,20 +162,20 @@ export async function cacheCount(resource, filters, queryFn, ttl = 300) {
164
162
  /**
165
163
  * Invalidate resource cache
166
164
  */
167
- export async function invalidateResource(resource) {
168
- await invalidateCachePattern(`*:${resource}:*`);
165
+ export function invalidateResource(resource) {
166
+ invalidateCachePattern(`*:${resource}:*`);
169
167
  }
170
168
  /**
171
169
  * Warm cache with data
172
170
  */
173
- export async function warmCache(key, data, ttl = 300) {
174
- await redis.setex(`query:${key}`, ttl, JSON.stringify(data));
171
+ export function warmCache(key, data, ttl = 300) {
172
+ cache.set(`query:${key}`, JSON.stringify(data), ttl);
175
173
  }
176
174
  /**
177
175
  * Get cached value without executing query
178
176
  */
179
- export async function getCached(key) {
180
- const cached = await redis.get(`query:${key}`);
177
+ export function getCached(key) {
178
+ const cached = cache.get(`query:${key}`);
181
179
  if (!cached)
182
180
  return null;
183
181
  try {
@@ -190,8 +188,8 @@ export async function getCached(key) {
190
188
  /**
191
189
  * Check if key exists in cache
192
190
  */
193
- export async function cacheExists(key) {
194
- const cached = await redis.get(`query:${key}`);
191
+ export function cacheExists(key) {
192
+ const cached = cache.get(`query:${key}`);
195
193
  return cached !== null;
196
194
  }
197
195
  /**
@@ -229,20 +227,20 @@ export async function cacheSWR(key, queryFn, options = {}) {
229
227
  const cacheKey = `query:${key}`;
230
228
  const staleKey = `${cacheKey}:stale`;
231
229
  // Try fresh cache
232
- const cached = await redis.get(cacheKey);
230
+ const cached = cache.get(cacheKey);
233
231
  if (cached) {
234
232
  return JSON.parse(cached);
235
233
  }
236
234
  // Try stale cache while revalidating
237
- const stale = await redis.get(staleKey);
235
+ const stale = cache.get(staleKey);
238
236
  if (stale) {
239
237
  // Return stale data immediately
240
238
  const staleData = JSON.parse(stale);
241
239
  // Revalidate in background
242
240
  queryFn()
243
241
  .then((fresh) => {
244
- redis.setex(cacheKey, ttl, JSON.stringify(fresh));
245
- redis.setex(staleKey, staleTime, JSON.stringify(fresh));
242
+ cache.set(cacheKey, JSON.stringify(fresh), ttl);
243
+ cache.set(staleKey, JSON.stringify(fresh), staleTime);
246
244
  })
247
245
  .catch((error) => {
248
246
  logger.error('SWR revalidation error', error instanceof Error ? error : new Error(String(error)));
@@ -252,9 +250,7 @@ export async function cacheSWR(key, queryFn, options = {}) {
252
250
  // No cache, execute query
253
251
  const result = await queryFn();
254
252
  // Cache both fresh and stale
255
- await Promise.all([
256
- redis.setex(cacheKey, ttl, JSON.stringify(result)),
257
- redis.setex(staleKey, staleTime, JSON.stringify(result)),
258
- ]);
253
+ cache.set(cacheKey, JSON.stringify(result), ttl);
254
+ cache.set(staleKey, JSON.stringify(result), staleTime);
259
255
  return result;
260
256
  }
@@ -203,6 +203,7 @@ export interface CacheStats {
203
203
  export declare class CacheStatsTracker {
204
204
  private hits;
205
205
  private misses;
206
+ private _cacheSize;
206
207
  /**
207
208
  * Record cache hit
208
209
  */
@@ -211,6 +212,10 @@ export declare class CacheStatsTracker {
211
212
  * Record cache miss
212
213
  */
213
214
  recordMiss(): void;
215
+ /**
216
+ * Update the reported cache size (call from the cache implementation)
217
+ */
218
+ setCacheSize(size: number): void;
214
219
  /**
215
220
  * Get statistics
216
221
  */
@@ -1 +1 @@
1
- {"version":3,"file":"app-cache.d.ts","sourceRoot":"","sources":["../../src/caching/app-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-cache.d.ts","sourceRoot":"","sources":["../../src/caching/app-cache.ts"],"names":[],"mappings":"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"}
@@ -365,6 +365,7 @@ export class CachePersistence {
365
365
  export class CacheStatsTracker {
366
366
  hits = 0;
367
367
  misses = 0;
368
+ _cacheSize = 0;
368
369
  /**
369
370
  * Record cache hit
370
371
  */
@@ -377,6 +378,12 @@ export class CacheStatsTracker {
377
378
  recordMiss() {
378
379
  this.misses++;
379
380
  }
381
+ /**
382
+ * Update the reported cache size (call from the cache implementation)
383
+ */
384
+ setCacheSize(size) {
385
+ this._cacheSize = size;
386
+ }
380
387
  /**
381
388
  * Get statistics
382
389
  */
@@ -388,7 +395,7 @@ export class CacheStatsTracker {
388
395
  misses: this.misses,
389
396
  hitRate,
390
397
  totalQueries,
391
- cacheSize: 0, // Would need cache implementation
398
+ cacheSize: this._cacheSize,
392
399
  };
393
400
  }
394
401
  /**
@@ -397,6 +404,7 @@ export class CacheStatsTracker {
397
404
  reset() {
398
405
  this.hits = 0;
399
406
  this.misses = 0;
407
+ this._cacheSize = 0;
400
408
  }
401
409
  }
402
410
  /**