@revealui/mcp 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/LICENSE +22 -0
  2. package/LICENSE.commercial +112 -0
  3. package/README.md +3 -0
  4. package/dist/adapters/db.d.ts.map +1 -0
  5. package/dist/adapters/db.js.map +1 -0
  6. package/dist/config/index.d.ts.map +1 -0
  7. package/dist/config/index.js.map +1 -0
  8. package/dist/contracts.d.ts.map +1 -0
  9. package/dist/contracts.js.map +1 -0
  10. package/dist/hypervisor.d.ts.map +1 -0
  11. package/dist/hypervisor.js.map +1 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/{packages/mcp/src/servers → servers}/adapter.d.ts +11 -1
  15. package/dist/servers/adapter.d.ts.map +1 -0
  16. package/dist/{packages/mcp/src/servers → servers}/adapter.js +20 -4
  17. package/dist/servers/adapter.js.map +1 -0
  18. package/dist/servers/revealui-content.d.ts +21 -0
  19. package/dist/servers/revealui-content.d.ts.map +1 -0
  20. package/dist/servers/revealui-content.js +199 -0
  21. package/dist/servers/revealui-content.js.map +1 -0
  22. package/dist/servers/revealui-email.d.ts +18 -0
  23. package/dist/servers/revealui-email.d.ts.map +1 -0
  24. package/dist/servers/revealui-email.js +185 -0
  25. package/dist/servers/revealui-email.js.map +1 -0
  26. package/dist/servers/revealui-stripe.d.ts +19 -0
  27. package/dist/servers/revealui-stripe.d.ts.map +1 -0
  28. package/dist/servers/revealui-stripe.js +211 -0
  29. package/dist/servers/revealui-stripe.js.map +1 -0
  30. package/package.json +47 -8
  31. package/.env.example +0 -9
  32. package/MCP_MAINTENANCE.md +0 -265
  33. package/__tests__/crdt.integration.test.ts +0 -156
  34. package/configs/README.md +0 -77
  35. package/configs/claude-template.json +0 -54
  36. package/dist/packages/core/src/database/ssl-config.d.ts +0 -9
  37. package/dist/packages/core/src/database/ssl-config.d.ts.map +0 -1
  38. package/dist/packages/core/src/database/ssl-config.js +0 -8
  39. package/dist/packages/core/src/database/ssl-config.js.map +0 -1
  40. package/dist/packages/core/src/features.d.ts +0 -86
  41. package/dist/packages/core/src/features.d.ts.map +0 -1
  42. package/dist/packages/core/src/features.js +0 -93
  43. package/dist/packages/core/src/features.js.map +0 -1
  44. package/dist/packages/core/src/license.d.ts +0 -75
  45. package/dist/packages/core/src/license.d.ts.map +0 -1
  46. package/dist/packages/core/src/license.js +0 -174
  47. package/dist/packages/core/src/license.js.map +0 -1
  48. package/dist/packages/core/src/monitoring/alerts.d.ts +0 -118
  49. package/dist/packages/core/src/monitoring/alerts.d.ts.map +0 -1
  50. package/dist/packages/core/src/monitoring/alerts.js +0 -325
  51. package/dist/packages/core/src/monitoring/alerts.js.map +0 -1
  52. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts +0 -71
  53. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts.map +0 -1
  54. package/dist/packages/core/src/monitoring/cleanup-manager.js +0 -227
  55. package/dist/packages/core/src/monitoring/cleanup-manager.js.map +0 -1
  56. package/dist/packages/core/src/monitoring/health-monitor.d.ts +0 -22
  57. package/dist/packages/core/src/monitoring/health-monitor.d.ts.map +0 -1
  58. package/dist/packages/core/src/monitoring/health-monitor.js +0 -143
  59. package/dist/packages/core/src/monitoring/health-monitor.js.map +0 -1
  60. package/dist/packages/core/src/monitoring/index.d.ts +0 -14
  61. package/dist/packages/core/src/monitoring/index.d.ts.map +0 -1
  62. package/dist/packages/core/src/monitoring/index.js +0 -18
  63. package/dist/packages/core/src/monitoring/index.js.map +0 -1
  64. package/dist/packages/core/src/monitoring/process-registry.d.ts +0 -97
  65. package/dist/packages/core/src/monitoring/process-registry.d.ts.map +0 -1
  66. package/dist/packages/core/src/monitoring/process-registry.js +0 -223
  67. package/dist/packages/core/src/monitoring/process-registry.js.map +0 -1
  68. package/dist/packages/core/src/monitoring/types.d.ts +0 -231
  69. package/dist/packages/core/src/monitoring/types.d.ts.map +0 -1
  70. package/dist/packages/core/src/monitoring/types.js +0 -43
  71. package/dist/packages/core/src/monitoring/types.js.map +0 -1
  72. package/dist/packages/core/src/monitoring/zombie-detector.d.ts +0 -81
  73. package/dist/packages/core/src/monitoring/zombie-detector.d.ts.map +0 -1
  74. package/dist/packages/core/src/monitoring/zombie-detector.js +0 -232
  75. package/dist/packages/core/src/monitoring/zombie-detector.js.map +0 -1
  76. package/dist/packages/core/src/observability/logger.d.ts +0 -47
  77. package/dist/packages/core/src/observability/logger.d.ts.map +0 -1
  78. package/dist/packages/core/src/observability/logger.js +0 -141
  79. package/dist/packages/core/src/observability/logger.js.map +0 -1
  80. package/dist/packages/core/src/utils/logger-server.d.ts +0 -32
  81. package/dist/packages/core/src/utils/logger-server.d.ts.map +0 -1
  82. package/dist/packages/core/src/utils/logger-server.js +0 -69
  83. package/dist/packages/core/src/utils/logger-server.js.map +0 -1
  84. package/dist/packages/core/src/utils/request-context.d.ts +0 -143
  85. package/dist/packages/core/src/utils/request-context.d.ts.map +0 -1
  86. package/dist/packages/core/src/utils/request-context.js +0 -169
  87. package/dist/packages/core/src/utils/request-context.js.map +0 -1
  88. package/dist/packages/dev/src/code-validator/index.d.ts +0 -20
  89. package/dist/packages/dev/src/code-validator/index.d.ts.map +0 -1
  90. package/dist/packages/dev/src/code-validator/index.js +0 -20
  91. package/dist/packages/dev/src/code-validator/index.js.map +0 -1
  92. package/dist/packages/dev/src/code-validator/types.d.ts +0 -67
  93. package/dist/packages/dev/src/code-validator/types.d.ts.map +0 -1
  94. package/dist/packages/dev/src/code-validator/types.js +0 -7
  95. package/dist/packages/dev/src/code-validator/types.js.map +0 -1
  96. package/dist/packages/dev/src/code-validator/validator.d.ts +0 -48
  97. package/dist/packages/dev/src/code-validator/validator.d.ts.map +0 -1
  98. package/dist/packages/dev/src/code-validator/validator.js +0 -176
  99. package/dist/packages/dev/src/code-validator/validator.js.map +0 -1
  100. package/dist/packages/mcp/src/adapters/db.d.ts.map +0 -1
  101. package/dist/packages/mcp/src/adapters/db.js.map +0 -1
  102. package/dist/packages/mcp/src/config/index.d.ts.map +0 -1
  103. package/dist/packages/mcp/src/config/index.js.map +0 -1
  104. package/dist/packages/mcp/src/contracts.d.ts.map +0 -1
  105. package/dist/packages/mcp/src/contracts.js.map +0 -1
  106. package/dist/packages/mcp/src/hypervisor.d.ts.map +0 -1
  107. package/dist/packages/mcp/src/hypervisor.js.map +0 -1
  108. package/dist/packages/mcp/src/index.d.ts.map +0 -1
  109. package/dist/packages/mcp/src/index.js.map +0 -1
  110. package/dist/packages/mcp/src/servers/adapter.d.ts.map +0 -1
  111. package/dist/packages/mcp/src/servers/adapter.js.map +0 -1
  112. package/dist/packages/mcp/src/servers/code-validator.d.ts +0 -24
  113. package/dist/packages/mcp/src/servers/code-validator.d.ts.map +0 -1
  114. package/dist/packages/mcp/src/servers/code-validator.js +0 -156
  115. package/dist/packages/mcp/src/servers/code-validator.js.map +0 -1
  116. package/dist/packages/mcp/src/servers/neon.d.ts +0 -11
  117. package/dist/packages/mcp/src/servers/neon.d.ts.map +0 -1
  118. package/dist/packages/mcp/src/servers/neon.js +0 -90
  119. package/dist/packages/mcp/src/servers/neon.js.map +0 -1
  120. package/dist/packages/mcp/src/servers/next-devtools.d.ts +0 -11
  121. package/dist/packages/mcp/src/servers/next-devtools.d.ts.map +0 -1
  122. package/dist/packages/mcp/src/servers/next-devtools.js +0 -215
  123. package/dist/packages/mcp/src/servers/next-devtools.js.map +0 -1
  124. package/dist/packages/mcp/src/servers/playwright.d.ts +0 -11
  125. package/dist/packages/mcp/src/servers/playwright.d.ts.map +0 -1
  126. package/dist/packages/mcp/src/servers/playwright.js +0 -68
  127. package/dist/packages/mcp/src/servers/playwright.js.map +0 -1
  128. package/dist/packages/mcp/src/servers/stripe.d.ts +0 -11
  129. package/dist/packages/mcp/src/servers/stripe.d.ts.map +0 -1
  130. package/dist/packages/mcp/src/servers/stripe.js +0 -86
  131. package/dist/packages/mcp/src/servers/stripe.js.map +0 -1
  132. package/dist/packages/mcp/src/servers/supabase.d.ts +0 -11
  133. package/dist/packages/mcp/src/servers/supabase.d.ts.map +0 -1
  134. package/dist/packages/mcp/src/servers/supabase.js +0 -144
  135. package/dist/packages/mcp/src/servers/supabase.js.map +0 -1
  136. package/dist/packages/mcp/src/servers/vercel.d.ts +0 -11
  137. package/dist/packages/mcp/src/servers/vercel.d.ts.map +0 -1
  138. package/dist/packages/mcp/src/servers/vercel.js +0 -87
  139. package/dist/packages/mcp/src/servers/vercel.js.map +0 -1
  140. package/dist/packages/mcp/src/servers/vultr-test.d.ts +0 -3
  141. package/dist/packages/mcp/src/servers/vultr-test.d.ts.map +0 -1
  142. package/dist/packages/mcp/src/servers/vultr-test.js +0 -82
  143. package/dist/packages/mcp/src/servers/vultr-test.js.map +0 -1
  144. package/dist/scripts/lib/analyzers/console-analyzer.d.ts +0 -188
  145. package/dist/scripts/lib/analyzers/console-analyzer.d.ts.map +0 -1
  146. package/dist/scripts/lib/analyzers/console-analyzer.js +0 -432
  147. package/dist/scripts/lib/analyzers/console-analyzer.js.map +0 -1
  148. package/dist/scripts/lib/analyzers/index.d.ts +0 -11
  149. package/dist/scripts/lib/analyzers/index.d.ts.map +0 -1
  150. package/dist/scripts/lib/analyzers/index.js +0 -11
  151. package/dist/scripts/lib/analyzers/index.js.map +0 -1
  152. package/dist/scripts/lib/args.d.ts +0 -104
  153. package/dist/scripts/lib/args.d.ts.map +0 -1
  154. package/dist/scripts/lib/args.js +0 -304
  155. package/dist/scripts/lib/args.js.map +0 -1
  156. package/dist/scripts/lib/cache.d.ts +0 -185
  157. package/dist/scripts/lib/cache.d.ts.map +0 -1
  158. package/dist/scripts/lib/cache.js +0 -390
  159. package/dist/scripts/lib/cache.js.map +0 -1
  160. package/dist/scripts/lib/cli/dispatch.d.ts +0 -116
  161. package/dist/scripts/lib/cli/dispatch.d.ts.map +0 -1
  162. package/dist/scripts/lib/cli/dispatch.js +0 -206
  163. package/dist/scripts/lib/cli/dispatch.js.map +0 -1
  164. package/dist/scripts/lib/cli/index.d.ts +0 -10
  165. package/dist/scripts/lib/cli/index.d.ts.map +0 -1
  166. package/dist/scripts/lib/cli/index.js +0 -10
  167. package/dist/scripts/lib/cli/index.js.map +0 -1
  168. package/dist/scripts/lib/database/ssl-config.d.ts +0 -26
  169. package/dist/scripts/lib/database/ssl-config.d.ts.map +0 -1
  170. package/dist/scripts/lib/database/ssl-config.js +0 -47
  171. package/dist/scripts/lib/database/ssl-config.js.map +0 -1
  172. package/dist/scripts/lib/errors.d.ts +0 -218
  173. package/dist/scripts/lib/errors.d.ts.map +0 -1
  174. package/dist/scripts/lib/errors.js +0 -543
  175. package/dist/scripts/lib/errors.js.map +0 -1
  176. package/dist/scripts/lib/exec.d.ts +0 -107
  177. package/dist/scripts/lib/exec.d.ts.map +0 -1
  178. package/dist/scripts/lib/exec.js +0 -232
  179. package/dist/scripts/lib/exec.js.map +0 -1
  180. package/dist/scripts/lib/index.d.ts +0 -50
  181. package/dist/scripts/lib/index.d.ts.map +0 -1
  182. package/dist/scripts/lib/index.js +0 -65
  183. package/dist/scripts/lib/index.js.map +0 -1
  184. package/dist/scripts/lib/logger.d.ts +0 -50
  185. package/dist/scripts/lib/logger.d.ts.map +0 -1
  186. package/dist/scripts/lib/logger.js +0 -159
  187. package/dist/scripts/lib/logger.js.map +0 -1
  188. package/dist/scripts/lib/output.d.ts +0 -149
  189. package/dist/scripts/lib/output.d.ts.map +0 -1
  190. package/dist/scripts/lib/output.js +0 -263
  191. package/dist/scripts/lib/output.js.map +0 -1
  192. package/dist/scripts/lib/parallel.d.ts +0 -164
  193. package/dist/scripts/lib/parallel.d.ts.map +0 -1
  194. package/dist/scripts/lib/parallel.js +0 -355
  195. package/dist/scripts/lib/parallel.js.map +0 -1
  196. package/dist/scripts/lib/paths.d.ts +0 -92
  197. package/dist/scripts/lib/paths.d.ts.map +0 -1
  198. package/dist/scripts/lib/paths.js +0 -171
  199. package/dist/scripts/lib/paths.js.map +0 -1
  200. package/dist/scripts/lib/state/adapters/memory.d.ts +0 -42
  201. package/dist/scripts/lib/state/adapters/memory.d.ts.map +0 -1
  202. package/dist/scripts/lib/state/adapters/memory.js +0 -110
  203. package/dist/scripts/lib/state/adapters/memory.js.map +0 -1
  204. package/dist/scripts/lib/state/adapters/pglite.d.ts +0 -46
  205. package/dist/scripts/lib/state/adapters/pglite.d.ts.map +0 -1
  206. package/dist/scripts/lib/state/adapters/pglite.js +0 -256
  207. package/dist/scripts/lib/state/adapters/pglite.js.map +0 -1
  208. package/dist/scripts/lib/state/index.d.ts +0 -16
  209. package/dist/scripts/lib/state/index.d.ts.map +0 -1
  210. package/dist/scripts/lib/state/index.js +0 -16
  211. package/dist/scripts/lib/state/index.js.map +0 -1
  212. package/dist/scripts/lib/state/types.d.ts +0 -111
  213. package/dist/scripts/lib/state/types.d.ts.map +0 -1
  214. package/dist/scripts/lib/state/types.js +0 -8
  215. package/dist/scripts/lib/state/types.js.map +0 -1
  216. package/dist/scripts/lib/state/workflow-state.d.ts +0 -110
  217. package/dist/scripts/lib/state/workflow-state.d.ts.map +0 -1
  218. package/dist/scripts/lib/state/workflow-state.js +0 -331
  219. package/dist/scripts/lib/state/workflow-state.js.map +0 -1
  220. package/dist/scripts/lib/telemetry.d.ts +0 -194
  221. package/dist/scripts/lib/telemetry.d.ts.map +0 -1
  222. package/dist/scripts/lib/telemetry.js +0 -394
  223. package/dist/scripts/lib/telemetry.js.map +0 -1
  224. package/dist/scripts/lib/utils.d.ts +0 -270
  225. package/dist/scripts/lib/utils.d.ts.map +0 -1
  226. package/dist/scripts/lib/utils.js +0 -473
  227. package/dist/scripts/lib/utils.js.map +0 -1
  228. package/dist/scripts/lib/validation/database.d.ts +0 -83
  229. package/dist/scripts/lib/validation/database.d.ts.map +0 -1
  230. package/dist/scripts/lib/validation/database.js +0 -199
  231. package/dist/scripts/lib/validation/database.js.map +0 -1
  232. package/dist/scripts/lib/validation/env.d.ts +0 -80
  233. package/dist/scripts/lib/validation/env.d.ts.map +0 -1
  234. package/dist/scripts/lib/validation/env.js +0 -246
  235. package/dist/scripts/lib/validation/env.js.map +0 -1
  236. package/dist/scripts/lib/validation/index.d.ts +0 -16
  237. package/dist/scripts/lib/validation/index.d.ts.map +0 -1
  238. package/dist/scripts/lib/validation/index.js +0 -16
  239. package/dist/scripts/lib/validation/index.js.map +0 -1
  240. package/dist/scripts/lib/validation/post-execution.d.ts +0 -74
  241. package/dist/scripts/lib/validation/post-execution.d.ts.map +0 -1
  242. package/dist/scripts/lib/validation/post-execution.js +0 -110
  243. package/dist/scripts/lib/validation/post-execution.js.map +0 -1
  244. package/dist/scripts/lib/validation/pre-execution.d.ts +0 -165
  245. package/dist/scripts/lib/validation/pre-execution.d.ts.map +0 -1
  246. package/dist/scripts/lib/validation/pre-execution.js +0 -466
  247. package/dist/scripts/lib/validation/pre-execution.js.map +0 -1
  248. package/dist/scripts/lib/validators/documentation-validator.d.ts +0 -242
  249. package/dist/scripts/lib/validators/documentation-validator.d.ts.map +0 -1
  250. package/dist/scripts/lib/validators/documentation-validator.js +0 -584
  251. package/dist/scripts/lib/validators/documentation-validator.js.map +0 -1
  252. package/dist/scripts/lib/validators/index.d.ts +0 -11
  253. package/dist/scripts/lib/validators/index.d.ts.map +0 -1
  254. package/dist/scripts/lib/validators/index.js +0 -11
  255. package/dist/scripts/lib/validators/index.js.map +0 -1
  256. package/docker-compose.yml +0 -46
  257. package/docs/INDEX.md +0 -88
  258. package/docs/README.md +0 -774
  259. package/docs/SETUP.md +0 -264
  260. package/docs/servers/code-validator.md +0 -586
  261. package/eslint.config.js +0 -7
  262. package/migrations/0001_add_crdt_columns.sql +0 -8
  263. package/migrations/0001_rollback.sql +0 -6
  264. package/migrations/005_performance_indexes.sql +0 -190
  265. package/migrations/backfill_crdt_meta.js +0 -45
  266. package/src/__tests__/hypervisor.test.ts +0 -212
  267. package/src/adapters/db.ts +0 -180
  268. package/src/config/config.json +0 -49
  269. package/src/config/index.ts +0 -30
  270. package/src/contracts.ts +0 -221
  271. package/src/hypervisor.ts +0 -464
  272. package/src/index.ts +0 -87
  273. package/src/servers/adapter.ts +0 -643
  274. package/src/servers/code-validator.ts +0 -188
  275. package/src/servers/neon.ts +0 -103
  276. package/src/servers/next-devtools.ts +0 -230
  277. package/src/servers/playwright.ts +0 -77
  278. package/src/servers/stripe.ts +0 -99
  279. package/src/servers/supabase.ts +0 -161
  280. package/src/servers/vercel.ts +0 -100
  281. package/src/servers/vultr-test.ts +0 -97
  282. package/tsconfig.json +0 -12
  283. package/vitest.config.ts +0 -22
  284. /package/dist/{packages/mcp/src/adapters → adapters}/db.d.ts +0 -0
  285. /package/dist/{packages/mcp/src/adapters → adapters}/db.js +0 -0
  286. /package/dist/{packages/mcp/src/config → config}/index.d.ts +0 -0
  287. /package/dist/{packages/mcp/src/config → config}/index.js +0 -0
  288. /package/dist/{packages/mcp/src/contracts.d.ts → contracts.d.ts} +0 -0
  289. /package/dist/{packages/mcp/src/contracts.js → contracts.js} +0 -0
  290. /package/dist/{packages/mcp/src/hypervisor.d.ts → hypervisor.d.ts} +0 -0
  291. /package/dist/{packages/mcp/src/hypervisor.js → hypervisor.js} +0 -0
  292. /package/dist/{packages/mcp/src/index.d.ts → index.d.ts} +0 -0
  293. /package/dist/{packages/mcp/src/index.js → index.js} +0 -0
@@ -1,93 +0,0 @@
1
- /**
2
- * Feature flag system for RevealUI Pro/Enterprise tiers.
3
- *
4
- * Gates premium features based on the current license tier.
5
- * Free (OSS) users get the core CMS framework.
6
- * Pro/Enterprise users unlock AI, advanced sync, dashboard, etc.
7
- *
8
- * @dependencies
9
- * - ./license.ts - License validation and tier checking
10
- */
11
- import { isLicensed } from './license.js';
12
- /** Feature-to-tier mapping: minimum tier required for each feature */
13
- const featureTierMap = {
14
- ai: 'pro',
15
- mcp: 'pro',
16
- editors: 'pro',
17
- harnesses: 'pro',
18
- payments: 'pro',
19
- advancedSync: 'pro',
20
- dashboard: 'pro',
21
- customDomain: 'pro',
22
- analytics: 'pro',
23
- aiMemory: 'max',
24
- byokServerSide: 'max',
25
- aiMultiProvider: 'max',
26
- auditLog: 'max',
27
- multiTenant: 'enterprise',
28
- whiteLabel: 'enterprise',
29
- sso: 'enterprise',
30
- };
31
- /**
32
- * Returns the current feature flags based on the active license tier.
33
- *
34
- * @example
35
- * ```typescript
36
- * import { getFeatures } from '@revealui/core/features'
37
- *
38
- * const features = getFeatures()
39
- * if (features.ai) {
40
- * // Enable AI agent system
41
- * }
42
- * ```
43
- */
44
- export function getFeatures() {
45
- const flags = {};
46
- for (const [feature, requiredTier] of Object.entries(featureTierMap)) {
47
- flags[feature] = isLicensed(requiredTier);
48
- }
49
- return flags;
50
- }
51
- /**
52
- * Check if a specific feature is enabled.
53
- *
54
- * @example
55
- * ```typescript
56
- * import { isFeatureEnabled } from '@revealui/core/features'
57
- *
58
- * if (isFeatureEnabled('ai')) {
59
- * // AI is available
60
- * }
61
- * ```
62
- */
63
- export function isFeatureEnabled(feature) {
64
- const requiredTier = featureTierMap[feature];
65
- return isLicensed(requiredTier);
66
- }
67
- /**
68
- * Returns all features available at a given tier (useful for pricing pages).
69
- */
70
- export function getFeaturesForTier(tier) {
71
- const tierRank = {
72
- free: 0,
73
- pro: 1,
74
- max: 2,
75
- enterprise: 3,
76
- };
77
- const flags = {};
78
- for (const [feature, requiredTier] of Object.entries(featureTierMap)) {
79
- flags[feature] = tierRank[tier] >= tierRank[requiredTier];
80
- }
81
- return flags;
82
- }
83
- /**
84
- * Returns the minimum tier required for a given feature.
85
- */
86
- export function getRequiredTier(feature) {
87
- return featureTierMap[feature];
88
- }
89
- /**
90
- * Returns the current license tier. Convenience re-export.
91
- */
92
- export { getCurrentTier } from './license.js';
93
- //# sourceMappingURL=features.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../../../../core/src/features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAA;AAsC3D,sEAAsE;AACtE,MAAM,cAAc,GAA4C;IAC9D,EAAE,EAAE,KAAK;IACT,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,YAAY;CAClB,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,EAAkB,CAAA;IAEhC,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACrE,KAAK,CAAC,OAA6B,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA2B;IAC1D,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC5C,OAAO,UAAU,CAAC,YAAY,CAAC,CAAA;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IAClD,MAAM,QAAQ,GAAgC;QAC5C,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,UAAU,EAAE,CAAC;KACd,CAAA;IAED,MAAM,KAAK,GAAG,EAAkB,CAAA;IAEhC,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACrE,KAAK,CAAC,OAA6B,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAA;IACjF,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAA2B;IACzD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
@@ -1,75 +0,0 @@
1
- /**
2
- * License validation for RevealUI Pro/Enterprise tiers.
3
- *
4
- * @dependencies
5
- * - jose - JWT token verification (Web Crypto API)
6
- * - zod - Schema validation for license payloads
7
- */
8
- import { z } from 'zod';
9
- /** Available license tiers */
10
- export type LicenseTier = 'free' | 'pro' | 'max' | 'enterprise';
11
- /** Decoded license payload schema */
12
- declare const licensePayloadSchema: z.ZodObject<{
13
- tier: z.ZodEnum<{
14
- pro: "pro";
15
- max: "max";
16
- enterprise: "enterprise";
17
- }>;
18
- customerId: z.ZodString;
19
- domains: z.ZodOptional<z.ZodArray<z.ZodString>>;
20
- maxSites: z.ZodOptional<z.ZodNumber>;
21
- maxUsers: z.ZodOptional<z.ZodNumber>;
22
- iat: z.ZodOptional<z.ZodNumber>;
23
- exp: z.ZodOptional<z.ZodNumber>;
24
- }, z.core.$strip>;
25
- export type LicensePayload = z.infer<typeof licensePayloadSchema>;
26
- /**
27
- * Validates a license key JWT and returns the decoded payload.
28
- * Returns null if the key is invalid, expired, or missing.
29
- */
30
- export declare function validateLicenseKey(licenseKey: string, publicKey: string): Promise<LicensePayload | null>;
31
- /**
32
- * Initialize the license system. Call once at application startup.
33
- * Reads REVEALUI_LICENSE_KEY and REVEALUI_LICENSE_PUBLIC_KEY from environment.
34
- *
35
- * @returns The resolved license tier
36
- */
37
- export declare function initializeLicense(): Promise<LicenseTier>;
38
- /**
39
- * Returns the current license tier.
40
- * If the license hasn't been initialized, returns 'free'.
41
- */
42
- export declare function getCurrentTier(): LicenseTier;
43
- /**
44
- * Returns the full license payload, or null if no valid license.
45
- */
46
- export declare function getLicensePayload(): LicensePayload | null;
47
- /**
48
- * Checks whether the current license is at least the given tier.
49
- * Also validates that the license has not expired (checks JWT exp claim).
50
- */
51
- export declare function isLicensed(requiredTier: LicenseTier): boolean;
52
- /**
53
- * Returns the maximum number of sites allowed by the current license.
54
- */
55
- export declare function getMaxSites(): number;
56
- /**
57
- * Returns the maximum number of users/editors allowed by the current license.
58
- */
59
- export declare function getMaxUsers(): number;
60
- /**
61
- * Generates a signed license key JWT.
62
- * This is a server-only function — requires the private key.
63
- *
64
- * @param payload - License payload (tier, customerId, limits)
65
- * @param privateKey - RS256 or ES256 private key (PEM format)
66
- * @param expiresInSeconds - JWT expiration in seconds. Defaults to 1 year.
67
- * @returns Signed JWT string
68
- */
69
- export declare function generateLicenseKey(payload: Omit<LicensePayload, 'iat' | 'exp'>, privateKey: string, expiresInSeconds?: number): Promise<string>;
70
- /**
71
- * Reset license state. Primarily for testing.
72
- */
73
- export declare function resetLicenseState(): void;
74
- export {};
75
- //# sourceMappingURL=license.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../../../../core/src/license.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,8BAA8B;AAC9B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,YAAY,CAAA;AAE/D,qCAAqC;AACrC,QAAA,MAAM,oBAAoB;;;;;;;;;;;;iBAexB,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AA+BjE;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAgBhC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAuB9D;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAEzD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAoB7D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAKpC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAKpC;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,KAAK,CAAC,EAC5C,UAAU,EAAE,MAAM,EAClB,gBAAgB,SAAqB,GACpC,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -1,174 +0,0 @@
1
- /**
2
- * License validation for RevealUI Pro/Enterprise tiers.
3
- *
4
- * @dependencies
5
- * - jose - JWT token verification (Web Crypto API)
6
- * - zod - Schema validation for license payloads
7
- */
8
- import { importPKCS8, importSPKI, jwtVerify, SignJWT } from 'jose';
9
- import { z } from 'zod';
10
- /** Decoded license payload schema */
11
- const licensePayloadSchema = z.object({
12
- /** License tier */
13
- tier: z.enum(['pro', 'max', 'enterprise']),
14
- /** Organization or customer ID */
15
- customerId: z.string(),
16
- /** Licensed domain(s) */
17
- domains: z.array(z.string()).optional(),
18
- /** Maximum number of sites allowed */
19
- maxSites: z.number().int().positive().optional(),
20
- /** Maximum number of users/editors allowed */
21
- maxUsers: z.number().int().positive().optional(),
22
- /** License issued-at timestamp */
23
- iat: z.number().optional(),
24
- /** License expiration timestamp */
25
- exp: z.number().optional(),
26
- });
27
- let cachedState = {
28
- tier: 'free',
29
- payload: null,
30
- validatedAt: null,
31
- };
32
- /**
33
- * The public key used to verify license JWTs.
34
- * In production, this is fetched from the license server.
35
- * For local development, it reads from REVEALUI_LICENSE_PUBLIC_KEY env var.
36
- */
37
- function getPublicKey() {
38
- return process.env.REVEALUI_LICENSE_PUBLIC_KEY ?? null;
39
- }
40
- /**
41
- * Reads the license key from environment.
42
- */
43
- function getLicenseKey() {
44
- return process.env.REVEALUI_LICENSE_KEY ?? null;
45
- }
46
- /**
47
- * Validates a license key JWT and returns the decoded payload.
48
- * Returns null if the key is invalid, expired, or missing.
49
- */
50
- export async function validateLicenseKey(licenseKey, publicKey) {
51
- try {
52
- const key = await importSPKI(publicKey, 'RS256');
53
- const { payload } = await jwtVerify(licenseKey, key, {
54
- algorithms: ['RS256', 'ES256'],
55
- });
56
- const result = licensePayloadSchema.safeParse(payload);
57
- if (!result.success) {
58
- return null;
59
- }
60
- return result.data;
61
- }
62
- catch {
63
- return null;
64
- }
65
- }
66
- /**
67
- * Initialize the license system. Call once at application startup.
68
- * Reads REVEALUI_LICENSE_KEY and REVEALUI_LICENSE_PUBLIC_KEY from environment.
69
- *
70
- * @returns The resolved license tier
71
- */
72
- export async function initializeLicense() {
73
- const licenseKey = getLicenseKey();
74
- const publicKey = getPublicKey();
75
- if (!(licenseKey && publicKey)) {
76
- cachedState = { tier: 'free', payload: null, validatedAt: Date.now() };
77
- return 'free';
78
- }
79
- const payload = await validateLicenseKey(licenseKey, publicKey);
80
- if (!payload) {
81
- cachedState = { tier: 'free', payload: null, validatedAt: Date.now() };
82
- return 'free';
83
- }
84
- cachedState = {
85
- tier: payload.tier,
86
- payload,
87
- validatedAt: Date.now(),
88
- };
89
- return payload.tier;
90
- }
91
- /**
92
- * Returns the current license tier.
93
- * If the license hasn't been initialized, returns 'free'.
94
- */
95
- export function getCurrentTier() {
96
- return cachedState.tier;
97
- }
98
- /**
99
- * Returns the full license payload, or null if no valid license.
100
- */
101
- export function getLicensePayload() {
102
- return cachedState.payload;
103
- }
104
- /**
105
- * Checks whether the current license is at least the given tier.
106
- * Also validates that the license has not expired (checks JWT exp claim).
107
- */
108
- export function isLicensed(requiredTier) {
109
- const tierRank = {
110
- free: 0,
111
- pro: 1,
112
- max: 2,
113
- enterprise: 3,
114
- };
115
- // Free tier is always available
116
- if (requiredTier === 'free')
117
- return true;
118
- // Check expiration if present
119
- if (cachedState.payload?.exp) {
120
- const nowSeconds = Math.floor(Date.now() / 1000);
121
- if (cachedState.payload.exp < nowSeconds) {
122
- return false;
123
- }
124
- }
125
- return tierRank[cachedState.tier] >= tierRank[requiredTier];
126
- }
127
- /**
128
- * Returns the maximum number of sites allowed by the current license.
129
- */
130
- export function getMaxSites() {
131
- if (cachedState.tier === 'enterprise')
132
- return Infinity;
133
- if (cachedState.tier === 'max')
134
- return cachedState.payload?.maxSites ?? 15;
135
- if (cachedState.tier === 'pro')
136
- return cachedState.payload?.maxSites ?? 5;
137
- return 1;
138
- }
139
- /**
140
- * Returns the maximum number of users/editors allowed by the current license.
141
- */
142
- export function getMaxUsers() {
143
- if (cachedState.tier === 'enterprise')
144
- return Infinity;
145
- if (cachedState.tier === 'max')
146
- return cachedState.payload?.maxUsers ?? 100;
147
- if (cachedState.tier === 'pro')
148
- return cachedState.payload?.maxUsers ?? 25;
149
- return 3;
150
- }
151
- /**
152
- * Generates a signed license key JWT.
153
- * This is a server-only function — requires the private key.
154
- *
155
- * @param payload - License payload (tier, customerId, limits)
156
- * @param privateKey - RS256 or ES256 private key (PEM format)
157
- * @param expiresInSeconds - JWT expiration in seconds. Defaults to 1 year.
158
- * @returns Signed JWT string
159
- */
160
- export async function generateLicenseKey(payload, privateKey, expiresInSeconds = 365 * 24 * 60 * 60) {
161
- const key = await importPKCS8(privateKey, 'RS256');
162
- return new SignJWT({ ...payload })
163
- .setProtectedHeader({ alg: 'RS256' })
164
- .setIssuedAt()
165
- .setExpirationTime(`${expiresInSeconds}s`)
166
- .sign(key);
167
- }
168
- /**
169
- * Reset license state. Primarily for testing.
170
- */
171
- export function resetLicenseState() {
172
- cachedState = { tier: 'free', payload: null, validatedAt: null };
173
- }
174
- //# sourceMappingURL=license.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"license.js","sourceRoot":"","sources":["../../../../../core/src/license.ts"],"names":[],"mappings":"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"}
@@ -1,118 +0,0 @@
1
- /**
2
- * Alert System
3
- *
4
- * Manages alert channels (logger, Sentry, console) and alert delivery.
5
- * Provides configurable thresholds and aggregation for production.
6
- */
7
- import type { Alert } from './types.js';
8
- /**
9
- * Sentry interface for dependency injection and testing
10
- */
11
- interface SentryClient {
12
- captureMessage: (message: string, context?: unknown) => void;
13
- setUser: (user: unknown) => void;
14
- }
15
- /**
16
- * Alert channel type
17
- */
18
- type AlertChannel = 'logger' | 'sentry' | 'console';
19
- /**
20
- * Alert configuration
21
- */
22
- interface AlertConfig {
23
- /** Enabled channels */
24
- channels: AlertChannel[];
25
- /** Aggregate alerts in production (log every N minutes instead of immediately) */
26
- aggregateInProduction: boolean;
27
- /** Aggregation interval in milliseconds */
28
- aggregationInterval: number;
29
- /** Enable Sentry in production only */
30
- sentryProductionOnly: boolean;
31
- }
32
- /**
33
- * Alert manager class
34
- */
35
- declare class AlertManager {
36
- private config;
37
- private alertQueue;
38
- private aggregationTimer;
39
- private lastAggregationTime;
40
- private sentryClient;
41
- constructor(config?: Partial<AlertConfig>, sentryClient?: SentryClient | null);
42
- /**
43
- * Send an alert through configured channels
44
- */
45
- sendAlert(alert: Alert): void;
46
- /**
47
- * Send multiple alerts
48
- */
49
- sendAlerts(alerts: Alert[]): void;
50
- /**
51
- * Deliver an alert to configured channels
52
- */
53
- private deliverAlert;
54
- /**
55
- * Send alert to logger
56
- */
57
- private sendToLogger;
58
- /**
59
- * Send alert to console (uses logger for structured output)
60
- */
61
- private sendToConsole;
62
- /**
63
- * Send alert to Sentry
64
- */
65
- private sendToSentry;
66
- /**
67
- * Start aggregation timer
68
- */
69
- private startAggregation;
70
- /**
71
- * Flush aggregated alerts
72
- */
73
- private flushAlerts;
74
- /**
75
- * Stop aggregation timer
76
- */
77
- stopAggregation(): void;
78
- /**
79
- * Check if running in production
80
- */
81
- private isProduction;
82
- /**
83
- * Get alert queue stats
84
- */
85
- getStats(): {
86
- queueSize: number;
87
- lastAggregationTime: number;
88
- aggregationEnabled: boolean;
89
- };
90
- /**
91
- * Configure alert channels
92
- */
93
- setChannels(channels: AlertChannel[]): void;
94
- /**
95
- * Cleanup resources
96
- */
97
- dispose(): void;
98
- }
99
- /**
100
- * Singleton instance
101
- */
102
- export declare const alertManager: AlertManager;
103
- /**
104
- * Export AlertManager class for testing
105
- */
106
- export { AlertManager };
107
- /**
108
- * Export types for testing
109
- */
110
- export type { AlertChannel, SentryClient };
111
- /**
112
- * Convenience functions
113
- */
114
- export declare function sendAlert(alert: Alert): void;
115
- export declare function sendAlerts(alerts: Alert[]): void;
116
- export declare function getAlertStats(): ReturnType<typeof alertManager.getStats>;
117
- export declare function setAlertChannels(channels: AlertChannel[]): void;
118
- //# sourceMappingURL=alerts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../../../../../core/src/monitoring/alerts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC;;GAEG;AACH,UAAU,YAAY;IACpB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5D,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACjC;AAsCD;;GAEG;AACH,KAAK,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEnD;;GAEG;AACH,UAAU,WAAW;IACnB,uBAAuB;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAA;IAExB,kFAAkF;IAClF,qBAAqB,EAAE,OAAO,CAAA;IAE9B,2CAA2C;IAC3C,mBAAmB,EAAE,MAAM,CAAA;IAE3B,uCAAuC;IACvC,oBAAoB,EAAE,OAAO,CAAA;CAC9B;AAYD;;GAEG;AACH,cAAM,YAAY;IAChB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,mBAAmB,CAAI;IAC/B,OAAO,CAAC,YAAY,CAA4B;gBAEpC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;IAUjF;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAU7B;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAMjC;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAuBpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmEpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwCnB;;OAEG;IACH,eAAe,IAAI,IAAI;IAOvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAA;QACjB,mBAAmB,EAAE,MAAM,CAAA;QAC3B,kBAAkB,EAAE,OAAO,CAAA;KAC5B;IAQD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI;IAI3C;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAA;AAE9C;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB;;GAEG;AACH,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,CAAA;AAE1C;;GAEG;AAEH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAE5C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAEhD;AAED,wBAAgB,aAAa,IAAI,UAAU,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAExE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAE/D"}