@revealui/core 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +137 -30
  2. package/dist/api/rate-limit.d.ts +1 -1
  3. package/dist/api/rate-limit.d.ts.map +1 -1
  4. package/dist/api/rate-limit.js +16 -1
  5. package/dist/api/rest.js +2 -2
  6. package/dist/caching/cdn-config.d.ts +2 -2
  7. package/dist/caching/cdn-config.d.ts.map +1 -1
  8. package/dist/caching/cdn-config.js +1 -15
  9. package/dist/caching/edge-cache.d.ts.map +1 -1
  10. package/dist/caching/edge-cache.js +8 -4
  11. package/dist/caching/service-worker.d.ts +7 -18
  12. package/dist/caching/service-worker.d.ts.map +1 -1
  13. package/dist/caching/service-worker.js +2 -2
  14. package/dist/client/admin/utils/auth.d.ts +0 -4
  15. package/dist/client/admin/utils/auth.d.ts.map +1 -1
  16. package/dist/client/admin/utils/auth.js +0 -6
  17. package/dist/client/index.d.ts +0 -1
  18. package/dist/client/index.d.ts.map +1 -1
  19. package/dist/client/index.js +0 -2
  20. package/dist/collections/operations/create.js +2 -2
  21. package/dist/config/utils.d.ts.map +1 -1
  22. package/dist/config/utils.js +19 -5
  23. package/dist/database/safe-parse.d.ts +26 -0
  24. package/dist/database/safe-parse.d.ts.map +1 -0
  25. package/dist/database/safe-parse.js +42 -0
  26. package/dist/database/universal-postgres.d.ts.map +1 -1
  27. package/dist/database/universal-postgres.js +12 -12
  28. package/dist/dataloader.d.ts.map +1 -1
  29. package/dist/dataloader.js +16 -2
  30. package/dist/error-handling/error-reporter.d.ts +5 -4
  31. package/dist/error-handling/error-reporter.d.ts.map +1 -1
  32. package/dist/error-handling/error-reporter.js +19 -48
  33. package/dist/error-handling/index.d.ts +1 -1
  34. package/dist/error-handling/index.d.ts.map +1 -1
  35. package/dist/error-handling/index.js +1 -1
  36. package/dist/features.d.ts +5 -1
  37. package/dist/features.d.ts.map +1 -1
  38. package/dist/features.js +6 -3
  39. package/dist/generated/types/index.d.ts +0 -3
  40. package/dist/generated/types/index.d.ts.map +1 -1
  41. package/dist/generated/types/index.js +0 -7
  42. package/dist/index.d.ts +1 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +1 -3
  45. package/dist/instance/RevealUIInstance.d.ts.map +1 -1
  46. package/dist/instance/RevealUIInstance.js +44 -50
  47. package/dist/instance/methods/create.d.ts.map +1 -1
  48. package/dist/instance/methods/create.js +4 -1
  49. package/dist/instance/methods/delete.d.ts.map +1 -1
  50. package/dist/instance/methods/delete.js +4 -1
  51. package/dist/instance/methods/hooks.d.ts.map +1 -1
  52. package/dist/instance/methods/hooks.js +3 -1
  53. package/dist/instance/methods/update.d.ts.map +1 -1
  54. package/dist/instance/methods/update.js +4 -1
  55. package/dist/license.d.ts +14 -5
  56. package/dist/license.d.ts.map +1 -1
  57. package/dist/license.js +47 -11
  58. package/dist/observability/health-check.d.ts +1 -1
  59. package/dist/observability/health-check.d.ts.map +1 -1
  60. package/dist/observability/health-check.js +37 -7
  61. package/dist/optimization/code-splitting.d.ts +0 -13
  62. package/dist/optimization/code-splitting.d.ts.map +1 -1
  63. package/dist/optimization/code-splitting.js +0 -13
  64. package/dist/queries/queryBuilder.d.ts.map +1 -1
  65. package/dist/queries/queryBuilder.js +6 -3
  66. package/dist/security/auth.d.ts.map +1 -1
  67. package/dist/security/auth.js +8 -6
  68. package/dist/security/encryption.d.ts.map +1 -1
  69. package/dist/security/encryption.js +15 -4
  70. package/dist/security/gdpr.d.ts +1 -1
  71. package/dist/security/gdpr.d.ts.map +1 -1
  72. package/dist/security/gdpr.js +4 -9
  73. package/dist/types/generated.d.ts +0 -2
  74. package/dist/types/generated.d.ts.map +1 -1
  75. package/dist/types/generated.js +0 -1
  76. package/package.json +2 -11
@@ -1 +1 @@
1
- {"version":3,"file":"universal-postgres.d.ts","sourceRoot":"","sources":["../../src/database/universal-postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAkC,MAAM,mBAAmB,CAAA;AAGxF,MAAM,WAAW,8BAA8B;IAC7C;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAA;CAC5C;AAiGD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,GAAE,8BAAmC,GAC1C,eAAe,CAucjB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,UAAQ,GAAG,IAAI,CAa/D;AAGD,eAAe,wBAAwB,CAAA"}
1
+ {"version":3,"file":"universal-postgres.d.ts","sourceRoot":"","sources":["../../src/database/universal-postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAkC,MAAM,mBAAmB,CAAA;AAIxF,MAAM,WAAW,8BAA8B;IAC7C;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAA;CAC5C;AAiGD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,GAAE,8BAAmC,GAC1C,eAAe,CAqcjB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,UAAQ,GAAG,IAAI,CAa/D;AAGD,eAAe,wBAAwB,CAAA"}
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { defaultLogger } from '../instance/logger.js';
15
15
  import { logger } from '../observability/logger.js';
16
+ import { safeParseRevealDocuments } from './safe-parse.js';
16
17
  import { getSSLConfig } from './ssl-config.js';
17
18
  /**
18
19
  * Worker-isolated PGlite instances for parallel test execution
@@ -123,19 +124,18 @@ export function universalPostgresAdapter(config = {}) {
123
124
  // Neon serverless has limitations with $1, $2 style parameters
124
125
  // Using pg ensures full PostgreSQL compatibility
125
126
  const neonConnectionString = connectionString;
127
+ const { Pool: NeonPool } = await import('pg');
128
+ const neonPool = new NeonPool({
129
+ connectionString: neonConnectionString,
130
+ ssl: getSSLConfig(neonConnectionString),
131
+ });
126
132
  queryFn = async (queryString, values = []) => {
127
133
  try {
128
- // Use pg library for best compatibility with parameterized queries
129
- const { Pool } = await import('pg');
130
- const pool = new Pool({
131
- connectionString: neonConnectionString,
132
- ssl: getSSLConfig(neonConnectionString),
133
- });
134
- const client = await pool.connect();
134
+ const client = await neonPool.connect();
135
135
  try {
136
136
  const result = await client.query(queryString, values);
137
137
  return {
138
- rows: result.rows,
138
+ rows: safeParseRevealDocuments(result.rows),
139
139
  rowCount: result.rowCount || 0,
140
140
  };
141
141
  }
@@ -169,7 +169,7 @@ export function universalPostgresAdapter(config = {}) {
169
169
  try {
170
170
  const result = await client.query(queryString, values);
171
171
  return {
172
- rows: result.rows,
172
+ rows: safeParseRevealDocuments(result.rows),
173
173
  rowCount: result.rowCount || 0,
174
174
  };
175
175
  }
@@ -191,7 +191,7 @@ export function universalPostgresAdapter(config = {}) {
191
191
  try {
192
192
  const result = await client.query(queryString, values);
193
193
  return {
194
- rows: result.rows,
194
+ rows: safeParseRevealDocuments(result.rows),
195
195
  rowCount: result.rowCount || 0,
196
196
  };
197
197
  }
@@ -219,7 +219,7 @@ export function universalPostgresAdapter(config = {}) {
219
219
  queryFn = async (queryString, values = []) => {
220
220
  const result = await db.query(queryString, values);
221
221
  return {
222
- rows: result.rows,
222
+ rows: safeParseRevealDocuments(result.rows),
223
223
  rowCount: result.rowCount || 0,
224
224
  };
225
225
  };
@@ -239,7 +239,7 @@ export function universalPostgresAdapter(config = {}) {
239
239
  try {
240
240
  const result = await client.query(queryString, values);
241
241
  return {
242
- rows: result.rows,
242
+ rows: safeParseRevealDocuments(result.rows),
243
243
  rowCount: result.rowCount || 0,
244
244
  };
245
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dataloader.d.ts","sourceRoot":"","sources":["../src/dataloader.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACX,MAAM,kBAAkB,CAAA;AA8LzB,UAAU,kBAAmB,SAAQ,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC;IACjE,IAAI,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;CAC3F;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,aAAa,KAAG,kBAmBlD,CAAA;AA6CD,KAAK,kBAAkB,GAAG;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,mBAAmB,CAAA;IACnC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,cAAc,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAAA;CACtE,CAAA;AACD,eAAO,MAAM,wBAAwB,GAAI,mJAatC,kBAAkB,KAAG,MAcpB,CAAA"}
1
+ {"version":3,"file":"dataloader.d.ts","sourceRoot":"","sources":["../src/dataloader.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACX,MAAM,kBAAkB,CAAA;AA0MzB,UAAU,kBAAmB,SAAQ,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC;IACjE,IAAI,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;CAC3F;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,aAAa,KAAG,kBAmBlD,CAAA;AA6CD,KAAK,kBAAkB,GAAG;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,mBAAmB,CAAA;IACnC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,cAAc,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAAA;CACtE,CAAA;AACD,eAAO,MAAM,wBAAwB,GAAI,mJAatC,kBAAkB,KAAG,MAcpB,CAAA"}
@@ -1,7 +1,21 @@
1
1
  import DataLoader from 'dataloader';
2
2
  import { isValidID } from './utils/isValidID.js';
3
- const parseCacheKey = (value) => JSON.parse(value);
4
- const parseBatchKey = (value) => JSON.parse(value);
3
+ const parseCacheKey = (value) => {
4
+ try {
5
+ return JSON.parse(value);
6
+ }
7
+ catch {
8
+ throw new Error(`DataLoader: malformed cache key (not valid JSON): ${value.slice(0, 120)}`);
9
+ }
10
+ };
11
+ const parseBatchKey = (value) => {
12
+ try {
13
+ return JSON.parse(value);
14
+ }
15
+ catch {
16
+ throw new Error(`DataLoader: malformed batch key (not valid JSON): ${value.slice(0, 120)}`);
17
+ }
18
+ };
5
19
  // RevealUI uses `dataloader` to solve the classic N+1 problem.
6
20
  // We keep a list of all documents requested to be populated for any given request
7
21
  // and then batch together documents within the same collection,
@@ -141,11 +141,12 @@ export declare class ConsoleErrorReporter implements ErrorReporter {
141
141
  addBreadcrumb(breadcrumb: Breadcrumb): void;
142
142
  }
143
143
  /**
144
- * Sentry-compatible error reporter
144
+ * Logging-only error reporter (development / no external service)
145
+ *
146
+ * Logs errors via the internal logger. Replace with a real Sentry or
147
+ * Datadog integration when an external error-tracking service is needed.
145
148
  */
146
- export declare class SentryErrorReporter implements ErrorReporter {
147
- private dsn;
148
- constructor(dsn: string);
149
+ export declare class LoggingErrorReporter implements ErrorReporter {
149
150
  captureError(error: Error, context?: Partial<ErrorReport>): void;
150
151
  captureMessage(message: string, level?: ErrorLevel, context?: Partial<ErrorReport>): void;
151
152
  setUser(_user: UserContext | null): void;
@@ -1 +1 @@
1
- {"version":3,"file":"error-reporter.d.ts","sourceRoot":"","sources":["../../src/error-handling/error-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-reporter.d.ts","sourceRoot":"","sources":["../../src/error-handling/error-reporter.ts"],"names":[],"mappings":"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"}
@@ -260,58 +260,29 @@ export class ConsoleErrorReporter {
260
260
  }
261
261
  }
262
262
  /**
263
- * Sentry-compatible error reporter
263
+ * Logging-only error reporter (development / no external service)
264
+ *
265
+ * Logs errors via the internal logger. Replace with a real Sentry or
266
+ * Datadog integration when an external error-tracking service is needed.
264
267
  */
265
- export class SentryErrorReporter {
266
- dsn;
267
- constructor(dsn) {
268
- this.dsn = dsn;
269
- }
268
+ export class LoggingErrorReporter {
270
269
  captureError(error, context) {
271
- // This would integrate with Sentry SDK
272
- // For now, just log in development
273
- if (process.env.NODE_ENV === 'development') {
274
- logger.debug('[Sentry] Would report error', {
275
- error: error.message,
276
- ...context,
277
- });
278
- }
279
- // In production, use actual Sentry SDK:
280
- // Sentry.captureException(error, {
281
- // contexts: context?.context,
282
- // tags: context?.tags,
283
- // user: context?.user,
284
- // extra: context?.extra,
285
- // })
270
+ logger.debug('[ErrorReporter] Error captured', {
271
+ error: error.message,
272
+ ...context,
273
+ });
286
274
  }
287
275
  captureMessage(message, level, context) {
288
- if (process.env.NODE_ENV === 'development') {
289
- logger.debug('[Sentry] Would report message', {
290
- message,
291
- level,
292
- ...context,
293
- });
294
- }
295
- // Sentry.captureMessage(message, level)
296
- }
297
- setUser(_user) {
298
- // Sentry.setUser(user)
299
- }
300
- setContext(_context) {
301
- // Sentry.setContext('custom', context)
302
- }
303
- setTag(_key, _value) {
304
- // Sentry.setTag(key, value)
305
- }
306
- addBreadcrumb(_breadcrumb) {
307
- // Sentry.addBreadcrumb({
308
- // timestamp: breadcrumb.timestamp,
309
- // level: breadcrumb.level,
310
- // category: breadcrumb.category,
311
- // message: breadcrumb.message,
312
- // data: breadcrumb.data,
313
- // })
276
+ logger.debug('[ErrorReporter] Message captured', {
277
+ message,
278
+ level,
279
+ ...context,
280
+ });
314
281
  }
282
+ setUser(_user) { }
283
+ setContext(_context) { }
284
+ setTag(_key, _value) { }
285
+ addBreadcrumb(_breadcrumb) { }
315
286
  }
316
287
  /**
317
288
  * HTTP error reporter (send to custom endpoint)
@@ -405,7 +376,7 @@ export function initializeErrorReporting(config) {
405
376
  errorReporter.addReporter(new ConsoleErrorReporter());
406
377
  }
407
378
  if (config.dsn) {
408
- errorReporter.addReporter(new SentryErrorReporter(config.dsn));
379
+ errorReporter.addReporter(new LoggingErrorReporter());
409
380
  }
410
381
  // Set up global error handlers
411
382
  if (typeof window !== 'undefined') {
@@ -8,7 +8,7 @@ export { AdaptiveCircuitBreaker, Bulkhead, CircuitBreak, CircuitBreaker, Circuit
8
8
  export type { ErrorBoundaryProps, ErrorBoundaryState, ErrorBoundaryWithRetryProps, ErrorInfo, ErrorSeverity, } from './error-boundary';
9
9
  export { AuthenticationError, ErrorBoundary, ErrorBoundaryWithRetry, getErrorSeverity, isAuthenticationError, isNetworkError, isNotFoundError, isValidationError, NetworkError, NotFoundError, shouldRetryError, useErrorHandler, ValidationError, withErrorBoundary, } from './error-boundary';
10
10
  export type { Breadcrumb, ErrorContext, ErrorLevel, ErrorReport, ErrorReporter, UserContext, } from './error-reporter';
11
- export { ConsoleErrorReporter, ErrorFilters, ErrorReportingSystem, errorReporter, HTTPErrorReporter, initializeErrorReporting, SentryErrorReporter, trackAction, trackAPICall, trackNavigation, } from './error-reporter';
11
+ export { ConsoleErrorReporter, ErrorFilters, ErrorReportingSystem, errorReporter, HTTPErrorReporter, initializeErrorReporting, LoggingErrorReporter, trackAction, trackAPICall, trackNavigation, } from './error-reporter';
12
12
  export type { ErrorFallbackProps } from './fallback-components';
13
13
  export { DegradedServiceFallback, ErrorFallback, FeatureUnavailableFallback, InlineError, LoadingFallback, MaintenanceFallback, NetworkErrorFallback, NotFoundFallback, OfflineFallback, PermissionDeniedFallback, RetryBoundary, Skeleton, SuccessMessage, SuspenseFallback, Toast, } from './fallback-components';
14
14
  export type { RetryConfig, RetryOptions } from './retry';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error-handling/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,GACb,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,EAC3B,SAAS,EACT,aAAa,GACd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,0BAA0B,EAC1B,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,KAAK,GACN,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,KAAK,GACN,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error-handling/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,GACb,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,EAC3B,SAAS,EACT,aAAa,GACd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,0BAA0B,EAC1B,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,KAAK,GACN,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,KAAK,GACN,MAAM,SAAS,CAAA"}
@@ -8,7 +8,7 @@ export { AdaptiveCircuitBreaker, Bulkhead, CircuitBreak, CircuitBreaker, Circuit
8
8
  // Error boundaries
9
9
  export { AuthenticationError, ErrorBoundary, ErrorBoundaryWithRetry, getErrorSeverity, isAuthenticationError, isNetworkError, isNotFoundError, isValidationError, NetworkError, NotFoundError, shouldRetryError, useErrorHandler, ValidationError, withErrorBoundary, } from './error-boundary';
10
10
  // Error reporting
11
- export { ConsoleErrorReporter, ErrorFilters, ErrorReportingSystem, errorReporter, HTTPErrorReporter, initializeErrorReporting, SentryErrorReporter, trackAction, trackAPICall, trackNavigation, } from './error-reporter';
11
+ export { ConsoleErrorReporter, ErrorFilters, ErrorReportingSystem, errorReporter, HTTPErrorReporter, initializeErrorReporting, LoggingErrorReporter, trackAction, trackAPICall, trackNavigation, } from './error-reporter';
12
12
  // Fallback components
13
13
  export { DegradedServiceFallback, ErrorFallback, FeatureUnavailableFallback, InlineError, LoadingFallback, MaintenanceFallback, NetworkErrorFallback, NotFoundFallback, OfflineFallback, PermissionDeniedFallback, RetryBoundary, Skeleton, SuccessMessage, SuspenseFallback, Toast, } from './fallback-components';
14
14
  // Retry logic
@@ -13,7 +13,7 @@ import { type LicenseTier } from './license.js';
13
13
  export interface FeatureFlags {
14
14
  /** AI agent system (Pro: 1 provider, Enterprise: all providers) */
15
15
  ai: boolean;
16
- /** AI memory system — working + episodic + vector (Pro: basic, Enterprise: full) */
16
+ /** AI memory system — working + episodic + vector (Max: basic, Enterprise: full) */
17
17
  aiMemory: boolean;
18
18
  /** MCP server integration */
19
19
  mcp: boolean;
@@ -29,6 +29,10 @@ export interface FeatureFlags {
29
29
  whiteLabel: boolean;
30
30
  /** SSO/SAML authentication */
31
31
  sso: boolean;
32
+ /** BYOK server-side key storage (Max+) */
33
+ byokServerSide: boolean;
34
+ /** Multi-provider AI (Max+: 2 providers, Enterprise: all providers) */
35
+ aiMultiProvider: boolean;
32
36
  /** Audit logging and compliance trail */
33
37
  auditLog: boolean;
34
38
  /** Full real-time sync with conflict resolution */
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAE3D,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,EAAE,EAAE,OAAO,CAAA;IACX,oFAAoF;IACpF,QAAQ,EAAE,OAAO,CAAA;IACjB,6BAA6B;IAC7B,GAAG,EAAE,OAAO,CAAA;IACZ,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAA;IAClB,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAA;IACjB,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAA;IACpB,kCAAkC;IAClC,UAAU,EAAE,OAAO,CAAA;IACnB,8BAA8B;IAC9B,GAAG,EAAE,OAAO,CAAA;IACZ,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAA;IACjB,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAA;IACrB,2BAA2B;IAC3B,SAAS,EAAE,OAAO,CAAA;IAClB,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAA;IACrB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAA;CACnB;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,IAAI,YAAY,CAQ1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,YAAY,GAAG,OAAO,CAGrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAclE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,YAAY,GAAG,WAAW,CAExE;AAED;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAE3D,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,EAAE,EAAE,OAAO,CAAA;IACX,oFAAoF;IACpF,QAAQ,EAAE,OAAO,CAAA;IACjB,6BAA6B;IAC7B,GAAG,EAAE,OAAO,CAAA;IACZ,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAA;IAClB,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAA;IACjB,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAA;IACpB,kCAAkC;IAClC,UAAU,EAAE,OAAO,CAAA;IACnB,8BAA8B;IAC9B,GAAG,EAAE,OAAO,CAAA;IACZ,0CAA0C;IAC1C,cAAc,EAAE,OAAO,CAAA;IACvB,uEAAuE;IACvE,eAAe,EAAE,OAAO,CAAA;IACxB,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAA;IACjB,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAA;IACrB,2BAA2B;IAC3B,SAAS,EAAE,OAAO,CAAA;IAClB,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAA;IACrB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAA;CACnB;AAsBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,IAAI,YAAY,CAQ1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,YAAY,GAAG,OAAO,CAGrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAelE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,YAAY,GAAG,WAAW,CAExE;AAED;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
package/dist/features.js CHANGED
@@ -12,7 +12,6 @@ import { isLicensed } from './license.js';
12
12
  /** Feature-to-tier mapping: minimum tier required for each feature */
13
13
  const featureTierMap = {
14
14
  ai: 'pro',
15
- aiMemory: 'pro',
16
15
  mcp: 'pro',
17
16
  editors: 'pro',
18
17
  harnesses: 'pro',
@@ -21,10 +20,13 @@ const featureTierMap = {
21
20
  dashboard: 'pro',
22
21
  customDomain: 'pro',
23
22
  analytics: 'pro',
23
+ aiMemory: 'max',
24
+ byokServerSide: 'max',
25
+ aiMultiProvider: 'max',
26
+ auditLog: 'max',
24
27
  multiTenant: 'enterprise',
25
28
  whiteLabel: 'enterprise',
26
29
  sso: 'enterprise',
27
- auditLog: 'enterprise',
28
30
  };
29
31
  /**
30
32
  * Returns the current feature flags based on the active license tier.
@@ -69,7 +71,8 @@ export function getFeaturesForTier(tier) {
69
71
  const tierRank = {
70
72
  free: 0,
71
73
  pro: 1,
72
- enterprise: 2,
74
+ max: 2,
75
+ enterprise: 3,
73
76
  };
74
77
  const flags = {};
75
78
  for (const [feature, requiredTier] of Object.entries(featureTierMap)) {
@@ -10,9 +10,6 @@
10
10
  * They are generated by scripts and will be overwritten.
11
11
  */
12
12
  export * from './cms.js';
13
- import * as SupabaseNS from './supabase.js';
14
- export { SupabaseNS };
15
- export type { Database as SupabaseDatabase } from './supabase.js';
16
13
  import * as NeonNS from './neon.js';
17
14
  export { NeonNS };
18
15
  export type { Database as NeonDatabase } from './neon.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generated/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,cAAc,UAAU,CAAA;AAOxB,OAAO,KAAK,UAAU,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,CAAA;AACrB,YAAY,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAQjE,OAAO,KAAK,MAAM,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,YAAY,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generated/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,cAAc,UAAU,CAAA;AAQxB,OAAO,KAAK,MAAM,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,YAAY,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,WAAW,CAAA"}
@@ -11,13 +11,6 @@
11
11
  */
12
12
  // Re-export all generated types
13
13
  export * from './cms.js';
14
- // Re-export Supabase types
15
- // Note: Using namespace export to avoid Database type conflict with Neon
16
- // Access Database type: import { SupabaseNS } from '@revealui/core/generated/types'; type DB = SupabaseNS.Database
17
- // Or use alias: import { SupabaseDatabase } from '@revealui/core/generated/types'
18
- // Or import directly: import type { Database } from '@revealui/core/generated/types/supabase'
19
- import * as SupabaseNS from './supabase.js';
20
- export { SupabaseNS };
21
14
  // Re-export Neon types
22
15
  // Note: neon.ts re-exports types from @revealui/contracts/generated to break circular dependencies
23
16
  // Using namespace export to avoid Database type conflict with Supabase
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { createRESTHandlers, handleRESTRequest } from './api/rest.js';
2
2
  export { anyone, authenticated } from './auth/access.js';
3
3
  export type { FloatingToolbarPluginProps, ImageNodeData, RichTextEditorProps, SerializedImageNode, ToolbarPluginProps, } from './client/index.js';
4
- export { $createImageNode, $isImageNode, AdminDashboard, APIError, APIErrorType, apiClient, CollectionList, clearAuthToken, DocumentForm, FloatingToolbarPlugin, fetchBanner, fetchCard, fetchEvents, fetchFromCMS, fetchHero, fetchMainInfos, fetchVideos, generatePageMetadata, getAuthHeader, getAuthToken, ImageNode, ImageNodeComponent, ImagePlugin, ImageUploadButton, INSERT_IMAGE_COMMAND, NotFoundPage, OPEN_IMAGE_UPLOAD_COMMAND, RootLayout, RootPage, richTextEditorStyles, serializeConfig, setAuthToken, ToolbarPlugin, useRevealUI, withRevealUIAccess, } from './client/index.js';
4
+ export { $createImageNode, $isImageNode, AdminDashboard, APIError, APIErrorType, apiClient, CollectionList, clearAuthToken, DocumentForm, FloatingToolbarPlugin, generatePageMetadata, getAuthHeader, getAuthToken, ImageNode, ImageNodeComponent, ImagePlugin, ImageUploadButton, INSERT_IMAGE_COMMAND, NotFoundPage, OPEN_IMAGE_UPLOAD_COMMAND, RootLayout, RootPage, richTextEditorStyles, serializeConfig, setAuthToken, ToolbarPlugin, useRevealUI, withRevealUIAccess, } from './client/index.js';
5
5
  export { buildConfig } from './config/index.js';
6
6
  export { getRevealUI } from './config/runtime.js';
7
7
  export { deepMerge } from './config/utils.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,9 +10,7 @@ export { $createImageNode, $isImageNode,
10
10
  // Admin
11
11
  AdminDashboard, APIError, APIErrorType,
12
12
  // Re-export admin utils
13
- apiClient, CollectionList, clearAuthToken, DocumentForm, FloatingToolbarPlugin, fetchBanner, fetchCard, fetchEvents,
14
- // HTTP
15
- fetchFromCMS, fetchHero, fetchMainInfos, fetchVideos, generatePageMetadata, getAuthHeader, getAuthToken, ImageNode, ImageNodeComponent, ImagePlugin, ImageUploadButton, INSERT_IMAGE_COMMAND, NotFoundPage, OPEN_IMAGE_UPLOAD_COMMAND, RootLayout, RootPage,
13
+ apiClient, CollectionList, clearAuthToken, DocumentForm, FloatingToolbarPlugin, generatePageMetadata, getAuthHeader, getAuthToken, ImageNode, ImageNodeComponent, ImagePlugin, ImageUploadButton, INSERT_IMAGE_COMMAND, NotFoundPage, OPEN_IMAGE_UPLOAD_COMMAND, RootLayout, RootPage,
16
14
  // Rich text (exclude RichTextEditor component - use richtext/client)
17
15
  richTextEditorStyles, serializeConfig, setAuthToken,
18
16
  // UI
@@ -1 +1 @@
1
- {"version":3,"file":"RevealUIInstance.d.ts","sourceRoot":"","sources":["../../src/instance/RevealUIInstance.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,YAAY,EAQZ,gBAAgB,EAGjB,MAAM,mBAAmB,CAAA;AAS1B;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqZ5F"}
1
+ {"version":3,"file":"RevealUIInstance.d.ts","sourceRoot":"","sources":["../../src/instance/RevealUIInstance.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,YAAY,EAQZ,gBAAgB,EAGjB,MAAM,mBAAmB,CAAA;AAS1B;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgZ5F"}
@@ -17,62 +17,56 @@ import { update } from './methods/update.js';
17
17
  */
18
18
  export async function createRevealUIInstance(config) {
19
19
  const logger = createLogger();
20
- // Database connection is now lazy - only connect on first query
20
+ // Database connection is lazy only connect on first query.
21
+ // A single shared promise guards against concurrent init from multiple requests.
21
22
  let dbConnected = false;
23
+ let dbInitPromise = null;
22
24
  const ensureDbConnected = async () => {
23
- if (dbConnected) {
25
+ if (dbConnected)
24
26
  return;
25
- }
26
- if (!dbConnected && config.db) {
27
- await config.db.init?.();
28
- // Queue table creation BEFORE connect()
29
- // createTable() pushes promises to a queue that connect() will await
30
- if (config.collections && config.db?.createTable) {
31
- for (const collection of config.collections) {
32
- // Extract fields from collection config
33
- const fields = collection.fields || [];
34
- // Convert RevealUIField to Field format for createTable
35
- // Only include top-level fields that should be stored as columns
36
- // Complex types (array, group, blocks) are stored as JSON
37
- const tableFields = fields
38
- .filter((field) => {
39
- // Filter out fields that should be stored as JSON
40
- return field.name && !isJsonFieldType(field);
41
- })
42
- .map((field) => ({
43
- name: field.name || '',
44
- type: field.type || 'text',
45
- required: field.required,
46
- unique: field.unique,
47
- }));
48
- config.db.createTable(collection.slug, tableFields);
27
+ if (!dbInitPromise && config.db) {
28
+ const db = config.db; // capture to satisfy narrowing inside async IIFE
29
+ dbInitPromise = (async () => {
30
+ await db.init?.();
31
+ // Queue table creation BEFORE connect()
32
+ // createTable() pushes promises to a queue that connect() will await
33
+ if (config.collections && db.createTable) {
34
+ for (const collection of config.collections) {
35
+ const fields = collection.fields || [];
36
+ const tableFields = fields
37
+ .filter((field) => field.name && !isJsonFieldType(field))
38
+ .map((field) => ({
39
+ name: field.name || '',
40
+ type: field.type || 'text',
41
+ required: field.required,
42
+ unique: field.unique,
43
+ }));
44
+ db.createTable(collection.slug, tableFields);
45
+ }
49
46
  }
50
- }
51
- // Queue global table creation BEFORE connect()
52
- if (config.globals && config.db?.createGlobalTable) {
53
- for (const global of config.globals) {
54
- // Extract fields from global config
55
- const fields = global.fields || [];
56
- // Convert RevealUIField to Field format for createGlobalTable
57
- // Only include top-level fields that should be stored as columns
58
- const tableFields = fields
59
- .filter((field) => {
60
- // Filter out fields that should be stored as JSON
47
+ // Queue global table creation BEFORE connect()
48
+ if (config.globals && db.createGlobalTable) {
49
+ for (const global of config.globals) {
50
+ const fields = global.fields || [];
61
51
  const jsonTypes = ['array', 'group', 'blocks', 'richText'];
62
- return field.name && !jsonTypes.includes(field.type || '');
63
- })
64
- .map((field) => ({
65
- name: field.name || '',
66
- type: field.type || 'text',
67
- required: field.required,
68
- unique: field.unique,
69
- }));
70
- config.db.createGlobalTable(global.slug, tableFields);
52
+ const tableFields = fields
53
+ .filter((field) => field.name && !jsonTypes.includes(field.type || ''))
54
+ .map((field) => ({
55
+ name: field.name || '',
56
+ type: field.type || 'text',
57
+ required: field.required,
58
+ unique: field.unique,
59
+ }));
60
+ db.createGlobalTable(global.slug, tableFields);
61
+ }
71
62
  }
72
- }
73
- // Now connect() will wait for all queued table creation promises
74
- await config.db.connect?.();
75
- dbConnected = true;
63
+ // Now connect() will wait for all queued table creation promises
64
+ await db.connect?.();
65
+ dbConnected = true;
66
+ })();
67
+ }
68
+ if (dbInitPromise) {
69
+ await dbInitPromise;
76
70
  }
77
71
  };
78
72
  // Initialize collections and globals
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/instance/methods/create.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAIjG,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,gBAAgB,EAC1B,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACtC,OAAO,EAAE,mBAAmB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,cAAc,CAAC,CAyCzB"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/instance/methods/create.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAIjG,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,gBAAgB,EAC1B,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACtC,OAAO,EAAE,mBAAmB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,cAAc,CAAC,CA4CzB"}
@@ -16,7 +16,10 @@ export async function create(instance, ensureDbConnected, options) {
16
16
  const collectionConfig = instance.config.collections?.find((c) => c.slug === collection);
17
17
  // Enforce collection-level access control
18
18
  if (collectionConfig?.access?.create && options.req) {
19
- const canCreate = await collectionConfig.access.create({ req: options.req, data: options.data });
19
+ const canCreate = await collectionConfig.access.create({
20
+ req: options.req,
21
+ data: options.data,
22
+ });
20
23
  if (!canCreate) {
21
24
  throw new Error('Access denied: you do not have permission to create in this collection');
22
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/instance/methods/delete.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGjG,wBAAsB,YAAY,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACtC,OAAO,EAAE,mBAAmB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,cAAc,CAAC,CAqBzB"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/instance/methods/delete.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGjG,wBAAsB,YAAY,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACtC,OAAO,EAAE,mBAAmB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,cAAc,CAAC,CAwBzB"}
@@ -15,7 +15,10 @@ export async function deleteMethod(instance, ensureDbConnected, options) {
15
15
  // Enforce collection-level access control
16
16
  const collectionConfig = instance.config.collections?.find((c) => c.slug === collection);
17
17
  if (collectionConfig?.access?.delete && options.req) {
18
- const canDelete = await collectionConfig.access.delete({ req: options.req, id: options.id });
18
+ const canDelete = await collectionConfig.access.delete({
19
+ req: options.req,
20
+ id: options.id,
21
+ });
19
22
  if (!canDelete) {
20
23
  throw new Error('Access denied: you do not have permission to delete in this collection');
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/instance/methods/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EAEjB,gBAAgB,EACjB,MAAM,sBAAsB,CAAA;AAE7B;;GAEG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,qBAAqB,EAAE,GAAG,SAAS,EAC1C,IAAI,EAAE;IACJ,GAAG,EAAE,cAAc,CAAA;IACnB,OAAO,EAAE,iBAAiB,CAAA;CAC3B,EACD,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,cAAc,CAAC,CAwBzB"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/instance/methods/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EAEjB,gBAAgB,EACjB,MAAM,sBAAsB,CAAA;AAE7B;;GAEG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,qBAAqB,EAAE,GAAG,SAAS,EAC1C,IAAI,EAAE;IACJ,GAAG,EAAE,cAAc,CAAA;IACnB,OAAO,EAAE,iBAAiB,CAAA;CAC3B,EACD,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,cAAc,CAAC,CA0BzB"}
@@ -25,7 +25,9 @@ export async function callHooks(hooks, args, revealui) {
25
25
  }
26
26
  }
27
27
  catch (error) {
28
- revealui.logger.error(`Hook execution failed: ${error}`);
28
+ const msg = error instanceof Error ? error.message : String(error);
29
+ revealui.logger.error(`Hook execution failed: ${msg}`);
30
+ throw error;
29
31
  }
30
32
  }
31
33
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/instance/methods/update.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAIjG,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,gBAAgB,EAC1B,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACtC,OAAO,EAAE,mBAAmB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,cAAc,CAAC,CA6CzB"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/instance/methods/update.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAIjG,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,gBAAgB,EAC1B,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACtC,OAAO,EAAE,mBAAmB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,cAAc,CAAC,CAgDzB"}
@@ -16,7 +16,10 @@ export async function update(instance, ensureDbConnected, options) {
16
16
  const collectionConfig = instance.config.collections?.find((c) => c.slug === collection);
17
17
  // Enforce collection-level access control
18
18
  if (collectionConfig?.access?.update && options.req) {
19
- const canUpdate = await collectionConfig.access.update({ req: options.req, id: options.id });
19
+ const canUpdate = await collectionConfig.access.update({
20
+ req: options.req,
21
+ id: options.id,
22
+ });
20
23
  if (!canUpdate) {
21
24
  throw new Error('Access denied: you do not have permission to update in this collection');
22
25
  }