@revealui/core 0.5.4 → 0.5.6
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.
- package/README.md +30 -24
- package/dist/api/rate-limit.d.ts +1 -1
- package/dist/api/rate-limit.js +3 -3
- package/dist/api/response-cache.d.ts.map +1 -1
- package/dist/api/response-cache.js +3 -1
- package/dist/api/rest.d.ts +1 -1
- package/dist/api/rest.js +2 -2
- package/dist/cache/query-cache.d.ts +1 -1
- package/dist/cache/query-cache.js +1 -1
- package/dist/caching/index.d.ts +1 -1
- package/dist/caching/index.js +1 -1
- package/dist/client/admin/components/AdminDashboard.d.ts.map +1 -1
- package/dist/client/admin/components/AdminDashboard.js +46 -3
- package/dist/client/admin/components/CollectionList.d.ts +3 -1
- package/dist/client/admin/components/CollectionList.d.ts.map +1 -1
- package/dist/client/admin/components/CollectionList.js +51 -2
- package/dist/client/admin/components/DocumentForm.js +2 -2
- package/dist/client/admin/page.js +1 -1
- package/dist/client/admin/utils/apiClient.d.ts +17 -1
- package/dist/client/admin/utils/apiClient.d.ts.map +1 -1
- package/dist/client/admin/utils/apiClient.js +25 -1
- package/dist/client/hooks.d.ts +1 -1
- package/dist/client/hooks.js +1 -1
- package/dist/client/richtext/RichTextEditor.js +1 -1
- package/dist/client/richtext/plugins/PastePlugin.d.ts.map +1 -1
- package/dist/client/richtext/plugins/PastePlugin.js +30 -0
- package/dist/client/ui/index.d.ts +2 -2
- package/dist/client/ui/index.js +2 -2
- package/dist/collections/operations/fieldHooks.d.ts +2 -2
- package/dist/collections/operations/fieldHooks.js +2 -2
- package/dist/collections/operations/update.js +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/runtime.d.ts +3 -3
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/config/runtime.js +2 -2
- package/dist/config/utils.d.ts.map +1 -1
- package/dist/config/utils.js +5 -0
- package/dist/database/safe-parse.d.ts +1 -1
- package/dist/database/safe-parse.js +3 -3
- package/dist/database/universal-postgres.d.ts +1 -1
- package/dist/database/universal-postgres.js +1 -1
- package/dist/error-handling/error-reporter.js +4 -4
- package/dist/features.d.ts +10 -10
- package/dist/features.d.ts.map +1 -1
- package/dist/features.js +4 -4
- package/dist/generated/index.d.ts +1 -1
- package/dist/generated/index.js +1 -1
- package/dist/generated/types/{cms.d.ts → admin.d.ts} +2 -2
- package/dist/generated/types/admin.d.ts.map +1 -0
- package/dist/generated/types/{cms.js → admin.js} +1 -1
- package/dist/generated/types/index.d.ts +2 -2
- package/dist/generated/types/index.d.ts.map +1 -1
- package/dist/generated/types/index.js +2 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -8
- package/dist/instance/RevealUIInstance.js +2 -2
- package/dist/jobs/queue.d.ts +1 -1
- package/dist/jobs/queue.d.ts.map +1 -1
- package/dist/license-encryption.js +2 -2
- package/dist/license.d.ts +2 -2
- package/dist/license.d.ts.map +1 -1
- package/dist/license.js +15 -6
- package/dist/monitoring/zombie-detector.js +1 -1
- package/dist/observability/health-check.js +1 -1
- package/dist/plugins/nested-docs.d.ts +1 -1
- package/dist/plugins/nested-docs.d.ts.map +1 -1
- package/dist/plugins/nested-docs.js +1 -1
- package/dist/relationships/analyzer.d.ts +1 -1
- package/dist/relationships/analyzer.js +2 -2
- package/dist/relationships/populate-core.d.ts +1 -1
- package/dist/relationships/populate-core.d.ts.map +1 -1
- package/dist/relationships/populate-core.js +5 -1
- package/dist/relationships/population.js +1 -1
- package/dist/richtext/exports/client/rcc.js +1 -1
- package/dist/richtext/exports/server/rsc.js +1 -1
- package/dist/richtext/index.d.ts +1 -1
- package/dist/richtext/index.js +1 -1
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.js +1 -1
- package/dist/server/renderPage.js +1 -1
- package/dist/types/admin.d.ts +8 -0
- package/dist/types/admin.d.ts.map +1 -0
- package/dist/types/admin.js +6 -0
- package/dist/types/config.d.ts +2 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +1 -1
- package/dist/types/extensions.d.ts +2 -2
- package/dist/types/extensions.d.ts.map +1 -1
- package/dist/types/extensions.js +1 -1
- package/dist/types/generated.d.ts +4 -4
- package/dist/types/generated.d.ts.map +1 -1
- package/dist/types/generated.js +2 -2
- package/dist/types/hooks.d.ts +1 -1
- package/dist/types/hooks.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -6
- package/dist/types/jobs.d.ts +1 -1
- package/dist/types/jobs.js +1 -1
- package/dist/types/legacy.d.ts +2 -2
- package/dist/types/legacy.d.ts.map +1 -1
- package/dist/types/legacy.js +1 -1
- package/dist/types/plugins.d.ts +1 -1
- package/dist/types/plugins.d.ts.map +1 -1
- package/dist/types/query.d.ts +2 -2
- package/dist/types/query.d.ts.map +1 -1
- package/dist/types/runtime.d.ts +2 -2
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/schema.d.ts +1 -1
- package/dist/types/schema.d.ts.map +1 -1
- package/dist/utils/error-responses.js +1 -1
- package/dist/utils/field-conversion.js +1 -1
- package/dist/utils/type-guards.d.ts +1 -1
- package/dist/utils/type-guards.d.ts.map +1 -1
- package/package.json +41 -22
- package/dist/generated/types/cms.d.ts.map +0 -1
- package/dist/types/cms.d.ts +0 -8
- package/dist/types/cms.d.ts.map +0 -1
- package/dist/types/cms.js +0 -6
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Main RevealUI exports
|
|
2
|
+
* Main RevealUI exports - re-exports core (server) and client functionality.
|
|
3
3
|
*
|
|
4
4
|
* WARNING: Importing from '@revealui/core' pulls in BOTH server-only deps (pg,
|
|
5
5
|
* bcryptjs, PGlite) and client-side React code. For tree-shaking safety, prefer
|
|
@@ -43,7 +43,7 @@ export { getRevealUI as getRevealUINext, withRevealUI, } from './nextjs/index.js
|
|
|
43
43
|
export { formBuilderPlugin } from './plugins/form-builder.js';
|
|
44
44
|
export { nestedDocsPlugin } from './plugins/nested-docs.js';
|
|
45
45
|
export { redirectsPlugin } from './plugins/redirects.js';
|
|
46
|
-
// Core RevealUI
|
|
46
|
+
// Core RevealUI admin implementation
|
|
47
47
|
export {
|
|
48
48
|
// Field traversal utilities
|
|
49
49
|
afterChangeTraverseFields, afterReadTraverseFields, beforeChangeTraverseFields, beforeValidateTraverseFields,
|
|
@@ -77,7 +77,7 @@ export { flattenFields, isJsonFieldType, isObject } from './utils/type-guards.js
|
|
|
77
77
|
// =============================================================================
|
|
78
78
|
// BASE TYPES FROM SCHEMA (Single Source of Truth)
|
|
79
79
|
// =============================================================================
|
|
80
|
-
// These are the authoritative types from @revealui/contracts/
|
|
80
|
+
// These are the authoritative types from @revealui/contracts/admin.
|
|
81
81
|
// They are re-exported here for convenience.
|
|
82
82
|
export { applyPluginExtensions, assertValidSlug,
|
|
83
83
|
// Validation utilities
|
|
@@ -86,13 +86,13 @@ ConfigValidationError,
|
|
|
86
86
|
defineCollection, defineField, defineGlobal,
|
|
87
87
|
// Validation types
|
|
88
88
|
// type FieldValidateFunction,
|
|
89
|
-
|
|
89
|
+
fromAdminCollectionConfig, fromAdminGlobalConfig, getCustomFieldType, getRevealUIExtensions,
|
|
90
90
|
// RevealUI extensions
|
|
91
91
|
hasRevealUIExtensions, isValidFieldType, isValidSlug, mergeCollectionConfigs, mergeFields,
|
|
92
92
|
// Extensibility
|
|
93
93
|
registerCustomFieldType, registerPluginExtension, safeValidate,
|
|
94
|
-
//
|
|
95
|
-
|
|
94
|
+
// admin compatibility
|
|
95
|
+
toAdminCollectionConfig, toAdminGlobalConfig, toSlug, validateWithErrors, } from '@revealui/contracts/admin';
|
|
96
96
|
// =============================================================================
|
|
97
97
|
// ADDITIONAL TYPE EXPORTS
|
|
98
98
|
// =============================================================================
|
|
@@ -104,11 +104,11 @@ export { serializeLexicalState } from './richtext/index.js';
|
|
|
104
104
|
* ## Import Guide
|
|
105
105
|
*
|
|
106
106
|
* ### Base Types (from schema - single source of truth)
|
|
107
|
-
* For standard RevealUI
|
|
107
|
+
* For standard RevealUI admin types that work everywhere:
|
|
108
108
|
* ```typescript
|
|
109
109
|
* import { CollectionConfig, GlobalConfig, Field } from '@revealui/core'
|
|
110
110
|
* // OR directly from schema:
|
|
111
|
-
* import { CollectionConfig, GlobalConfig, Field } from '@revealui/contracts/
|
|
111
|
+
* import { CollectionConfig, GlobalConfig, Field } from '@revealui/contracts/admin'
|
|
112
112
|
* ```
|
|
113
113
|
*
|
|
114
114
|
* ### Extended Types (RevealUI-specific)
|
|
@@ -17,7 +17,7 @@ import { update } from './methods/update.js';
|
|
|
17
17
|
*/
|
|
18
18
|
export async function createRevealUIInstance(config) {
|
|
19
19
|
const logger = createLogger();
|
|
20
|
-
// Database connection is lazy
|
|
20
|
+
// Database connection is lazy - only connect on first query.
|
|
21
21
|
// A single shared promise guards against concurrent init from multiple requests.
|
|
22
22
|
let dbConnected = false;
|
|
23
23
|
let dbInitPromise = null;
|
|
@@ -134,7 +134,7 @@ export async function createRevealUIInstance(config) {
|
|
|
134
134
|
}
|
|
135
135
|
// Verify password against bcrypt hash
|
|
136
136
|
if (!hashedPassword.startsWith('$2')) {
|
|
137
|
-
// Reject plain-text passwords
|
|
137
|
+
// Reject plain-text passwords - they must be migrated first
|
|
138
138
|
throw new Error('Invalid credentials');
|
|
139
139
|
}
|
|
140
140
|
const isPasswordValid = await bcrypt.compare(data.password, hashedPassword);
|
package/dist/jobs/queue.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* The jobs table must exist (see packages/db/src/schema/jobs.ts).
|
|
8
8
|
*/
|
|
9
|
-
/** Minimal database executor
|
|
9
|
+
/** Minimal database executor - accepts raw SQL strings */
|
|
10
10
|
export interface DatabaseExecutor {
|
|
11
11
|
execute(query: string, params?: unknown[]): Promise<{
|
|
12
12
|
rows: Record<string, unknown>[];
|
package/dist/jobs/queue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/jobs/queue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/jobs/queue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;CAC1F;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CAC3C;AASD,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5D,MAAM,WAAW,QAAQ;IACvB,8CAA8C;IAC9C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1F,0DAA0D;IAC1D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9C,+BAA+B;IAC/B,IAAI,IAAI,IAAI,CAAC;IACb,yCAAyC;IACzC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAMD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAClC,QAAQ,CAwJV"}
|
|
@@ -44,7 +44,7 @@ export function encryptLicenseKey(plaintext) {
|
|
|
44
44
|
*/
|
|
45
45
|
export function decryptLicenseKey(stored) {
|
|
46
46
|
if (!stored.startsWith(ENC_PREFIX)) {
|
|
47
|
-
return stored; // plaintext
|
|
47
|
+
return stored; // plaintext - backward compatible
|
|
48
48
|
}
|
|
49
49
|
const key = getEncryptionKey();
|
|
50
50
|
if (!key) {
|
|
@@ -53,7 +53,7 @@ export function decryptLicenseKey(stored) {
|
|
|
53
53
|
}
|
|
54
54
|
const parts = stored.slice(ENC_PREFIX.length).split(':');
|
|
55
55
|
if (parts.length !== 3) {
|
|
56
|
-
throw new Error('Malformed encrypted license key
|
|
56
|
+
throw new Error('Malformed encrypted license key - expected enc:<iv>:<ciphertext>:<tag>');
|
|
57
57
|
}
|
|
58
58
|
const [ivHex, ciphertextHex, tagHex] = parts;
|
|
59
59
|
const iv = Buffer.from(ivHex, 'hex');
|
package/dist/license.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ export type LicenseTier = 'free' | 'pro' | 'max' | 'enterprise';
|
|
|
11
11
|
/** Decoded license payload schema */
|
|
12
12
|
declare const licensePayloadSchema: z.ZodObject<{
|
|
13
13
|
tier: z.ZodEnum<{
|
|
14
|
-
pro: "pro";
|
|
15
14
|
max: "max";
|
|
15
|
+
pro: "pro";
|
|
16
16
|
enterprise: "enterprise";
|
|
17
17
|
}>;
|
|
18
18
|
customerId: z.ZodString;
|
|
@@ -80,7 +80,7 @@ export declare function getMaxUsers(): number;
|
|
|
80
80
|
export declare function getMaxAgentTasks(): number;
|
|
81
81
|
/**
|
|
82
82
|
* Generates a signed license key JWT.
|
|
83
|
-
* This is a server-only function
|
|
83
|
+
* This is a server-only function - requires the private key.
|
|
84
84
|
*
|
|
85
85
|
* @param payload - License payload (tier, customerId, limits, perpetual flag)
|
|
86
86
|
* @param privateKey - RS256 private key (PEM format)
|
package/dist/license.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,8BAA8B;AAC9B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,YAAY,CAAC;AAEhE,qCAAqC;AACrC,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;iBAqBxB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,8BAA8B;AAC9B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,YAAY,CAAC;AAEhE,qCAAqC;AACrC,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;iBAqBxB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf;AAkBD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAElF;AAoCD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA0BhC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAkC9D;AAaD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAG5C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAGzD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAqB7D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAMpC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAMpC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,KAAK,CAAC,EAC5C,UAAU,EAAE,MAAM,EAClB,gBAAgB,GAAE,MAAM,GAAG,IAAyB,EACpD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC"}
|
package/dist/license.js
CHANGED
|
@@ -25,16 +25,25 @@ const licensePayloadSchema = z.object({
|
|
|
25
25
|
/**
|
|
26
26
|
* True for one-time perpetual purchases.
|
|
27
27
|
* When set, the exp claim is omitted from the JWT and isLicensed() skips
|
|
28
|
-
* expiry checks
|
|
28
|
+
* expiry checks - the license is valid as long as it hasn't been revoked.
|
|
29
29
|
*/
|
|
30
30
|
perpetual: z.boolean().optional(),
|
|
31
31
|
/** License issued-at timestamp */
|
|
32
32
|
iat: z.number().optional(),
|
|
33
|
-
/** License expiration timestamp
|
|
33
|
+
/** License expiration timestamp - absent for perpetual licenses */
|
|
34
34
|
exp: z.number().optional(),
|
|
35
35
|
});
|
|
36
|
+
const DEFAULT_TTL_MS = 15_000; // 15 seconds - revoked licenses lose access quickly
|
|
36
37
|
const DEFAULT_CACHE_CONFIG = {
|
|
37
|
-
ttlMs:
|
|
38
|
+
ttlMs: (() => {
|
|
39
|
+
const envTtl = process.env.LICENSE_CACHE_TTL_MS;
|
|
40
|
+
if (envTtl) {
|
|
41
|
+
const parsed = Number.parseInt(envTtl, 10);
|
|
42
|
+
if (Number.isFinite(parsed) && parsed > 0)
|
|
43
|
+
return parsed;
|
|
44
|
+
}
|
|
45
|
+
return DEFAULT_TTL_MS;
|
|
46
|
+
})(),
|
|
38
47
|
};
|
|
39
48
|
let cacheConfig = { ...DEFAULT_CACHE_CONFIG };
|
|
40
49
|
let cachedAt = 0;
|
|
@@ -57,7 +66,7 @@ let cachedState = {
|
|
|
57
66
|
*/
|
|
58
67
|
function getPublicKey() {
|
|
59
68
|
const raw = process.env.REVEALUI_LICENSE_PUBLIC_KEY ?? null;
|
|
60
|
-
// Docker/env files store PEM as single-line with literal \n
|
|
69
|
+
// Docker/env files store PEM as single-line with literal \n - restore real newlines
|
|
61
70
|
return raw ? raw.replace(/\\n/g, '\n') : null;
|
|
62
71
|
}
|
|
63
72
|
/**
|
|
@@ -179,7 +188,7 @@ export function isLicensed(requiredTier) {
|
|
|
179
188
|
// Free tier is always available
|
|
180
189
|
if (requiredTier === 'free')
|
|
181
190
|
return true;
|
|
182
|
-
// Perpetual licenses never expire
|
|
191
|
+
// Perpetual licenses never expire - skip the exp check entirely
|
|
183
192
|
if (!cachedState.payload?.perpetual && cachedState.payload?.exp) {
|
|
184
193
|
const nowSeconds = Math.floor(Date.now() / 1000);
|
|
185
194
|
if (cachedState.payload.exp < nowSeconds) {
|
|
@@ -230,7 +239,7 @@ export function getMaxAgentTasks() {
|
|
|
230
239
|
}
|
|
231
240
|
/**
|
|
232
241
|
* Generates a signed license key JWT.
|
|
233
|
-
* This is a server-only function
|
|
242
|
+
* This is a server-only function - requires the private key.
|
|
234
243
|
*
|
|
235
244
|
* @param payload - License payload (tier, customerId, limits, perpetual flag)
|
|
236
245
|
* @param privateKey - RS256 private key (PEM format)
|
|
@@ -28,7 +28,7 @@ class ZombieDetector {
|
|
|
28
28
|
return;
|
|
29
29
|
// Skip on serverless environments where ps is unavailable or meaningless
|
|
30
30
|
if (process.env.VERCEL === '1' || process.env.AWS_LAMBDA_FUNCTION_NAME) {
|
|
31
|
-
logger.debug('Zombie detection skipped
|
|
31
|
+
logger.debug('Zombie detection skipped - serverless environment detected');
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
34
|
logger.info('Starting zombie process detector', {
|
|
@@ -115,7 +115,7 @@ export function createDatabaseHealthCheck(queryFn) {
|
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
117
|
catch (error) {
|
|
118
|
-
// Surface the root cause
|
|
118
|
+
// Surface the root cause - Drizzle wraps Neon errors with "Failed query: ..."
|
|
119
119
|
// but the actual HTTP/connection error is in .cause
|
|
120
120
|
let message = error instanceof Error ? error.message : 'Database connection failed';
|
|
121
121
|
if (error instanceof Error && error.cause instanceof Error) {
|
|
@@ -3,7 +3,7 @@ export interface NestedDocsPluginConfig {
|
|
|
3
3
|
collections?: string[];
|
|
4
4
|
parentFieldSlug?: string;
|
|
5
5
|
breadcrumbsFieldSlug?: string;
|
|
6
|
-
/** Drizzle DB client getter
|
|
6
|
+
/** Drizzle DB client getter - if not provided, breadcrumbs will be empty */
|
|
7
7
|
getDb?: () => unknown;
|
|
8
8
|
/** Label field to use for breadcrumb labels (defaults to 'title') */
|
|
9
9
|
labelField?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested-docs.d.ts","sourceRoot":"","sources":["../../src/plugins/nested-docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,
|
|
1
|
+
{"version":3,"file":"nested-docs.d.ts","sourceRoot":"","sources":["../../src/plugins/nested-docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC;IACtB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAgED,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,sBAA2B,GAAG,MAAM,CA2F5E"}
|
|
@@ -16,7 +16,7 @@ async function buildBreadcrumbs(db, collectionSlug, parentId, parentFieldSlug, l
|
|
|
16
16
|
}
|
|
17
17
|
while (currentId && depth < maxDepth) {
|
|
18
18
|
try {
|
|
19
|
-
// Use parameterized query
|
|
19
|
+
// Use parameterized query - $1 is the only user-controlled value
|
|
20
20
|
const result = await db.execute({
|
|
21
21
|
sql: `SELECT id, "${labelField}", "${parentFieldSlug}" FROM "${collectionSlug}" WHERE id = $1 LIMIT 1`,
|
|
22
22
|
params: [currentId],
|
|
@@ -6,7 +6,7 @@ import type { RelationshipMetadata } from '../types/query.js';
|
|
|
6
6
|
* Analyzes a collection config and extracts all relationship fields with their metadata.
|
|
7
7
|
* This is the foundation for depth-based relationship population.
|
|
8
8
|
*
|
|
9
|
-
* Based on RevealUI
|
|
9
|
+
* Based on RevealUI admin analysis:
|
|
10
10
|
* - Simple relationships (single, no hasMany): Direct Foreign Keys
|
|
11
11
|
* - hasMany relationships: Junction Tables
|
|
12
12
|
* - Polymorphic relationships (relationTo array): Junction Tables with multiple FK columns
|
|
@@ -58,7 +58,7 @@ export function getRelationshipFields(config, collectionSlug) {
|
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* Creates relationship metadata for a single field.
|
|
61
|
-
* Determines storage type based on field properties following RevealUI
|
|
61
|
+
* Determines storage type based on field properties following RevealUI admin patterns.
|
|
62
62
|
*/
|
|
63
63
|
function createRelationshipMetadata(field, fieldPath, parentTableName, isLocalized = false) {
|
|
64
64
|
// Skip if not a relationship field
|
|
@@ -72,7 +72,7 @@ function createRelationshipMetadata(field, fieldPath, parentTableName, isLocaliz
|
|
|
72
72
|
const relationTo = field.relationTo;
|
|
73
73
|
const hasMany = field.hasMany ?? false;
|
|
74
74
|
const isPolymorphic = Array.isArray(relationTo);
|
|
75
|
-
// Determine storage type based on RevealUI
|
|
75
|
+
// Determine storage type based on RevealUI admin analysis
|
|
76
76
|
let storageType;
|
|
77
77
|
if (isPolymorphic) {
|
|
78
78
|
storageType = 'polymorphic';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"populate-core.d.ts","sourceRoot":"","sources":["../../src/relationships/populate-core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,uDAAuD;AACvD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,4BAA4B;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,iDAAiD;IACjD,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,yBAAyB,EAChC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE;IACH,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,CAAC;CACH,GACA,YAAY,CAwCd;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvF;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,KAAK,EAAE,yBAAyB,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;CAC1B,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"populate-core.d.ts","sourceRoot":"","sources":["../../src/relationships/populate-core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,uDAAuD;AACvD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,4BAA4B;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,iDAAiD;IACjD,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,yBAAyB,EAChC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE;IACH,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,CAAC;CACH,GACA,YAAY,CAwCd;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvF;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,KAAK,EAAE,yBAAyB,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;CAC1B,GAAG,IAAI,CA2DP"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Population Core
|
|
2
|
+
* Population Core - Pure Types & Utilities
|
|
3
3
|
*
|
|
4
4
|
* This module contains types and pure utility functions for relationship
|
|
5
5
|
* population that have NO imports from the afterRead chain, breaking the
|
|
@@ -60,6 +60,10 @@ export function shouldPopulateRelationship(currentDepth, depth) {
|
|
|
60
60
|
export function updateDocumentWithPopulatedValue(args) {
|
|
61
61
|
const { dataReference, field, relationshipValue, location } = args;
|
|
62
62
|
const { index, key } = location;
|
|
63
|
+
// Prevent prototype pollution via crafted field names
|
|
64
|
+
if (field.name === '__proto__' || field.name === 'constructor' || field.name === 'prototype') {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
63
67
|
// Case 1: Localized array field (has both index and key)
|
|
64
68
|
if (typeof index === 'number' && typeof key === 'string') {
|
|
65
69
|
const fieldRecord = dataReference[field.name];
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { fieldHasMaxDepth, fieldShouldBeLocalized, fieldSupportsMany, } from '../fields/config/types.js';
|
|
3
3
|
// Pure utilities from populate-core (no circular dependency)
|
|
4
4
|
import { extractRelationInfo, shouldPopulateRelationship, updateDocumentWithPopulatedValue, } from './populate-core.js';
|
|
5
|
-
// Helpers that depend on afterRead (static import
|
|
5
|
+
// Helpers that depend on afterRead (static import - safe because populate-core
|
|
6
6
|
// broke the cycle: population no longer imports from populate-helpers for the
|
|
7
7
|
// functions that afterRead/promise.ts needs)
|
|
8
8
|
import { applyNestedPopulation, loadRelatedDocument } from './populate-helpers.js';
|
|
@@ -151,7 +151,7 @@ function serializeNode(node, index, options) {
|
|
|
151
151
|
const Tag = isHeader ? 'th' : 'td';
|
|
152
152
|
return (_jsx(Tag, { colSpan: tableCellNode.colSpan, rowSpan: tableCellNode.rowSpan, children: serializeChildren(n.children, options) }, index));
|
|
153
153
|
}
|
|
154
|
-
// Unknown node type
|
|
154
|
+
// Unknown node type - try to render children
|
|
155
155
|
if (n.children) {
|
|
156
156
|
return _jsx(Fragment, { children: serializeChildren(n.children, options) }, index);
|
|
157
157
|
}
|
package/dist/richtext/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* RevealUI Rich Text Editor - Lexical Integration
|
|
3
3
|
*
|
|
4
4
|
* Uses vanilla Lexical npm packages for rich text editing.
|
|
5
|
-
* Provides
|
|
5
|
+
* Provides an admin-compatible API for configuring the editor.
|
|
6
6
|
*/
|
|
7
7
|
export type { EditorState, LexicalEditor, LexicalNode, SerializedEditorState, SerializedLexicalNode, } from 'lexical';
|
|
8
8
|
export { $createParagraphNode, $createTextNode, $getRoot, $getSelection, $isRangeSelection, CLEAR_EDITOR_COMMAND, CLEAR_HISTORY_COMMAND, COMMAND_PRIORITY_CRITICAL, COMMAND_PRIORITY_HIGH, COMMAND_PRIORITY_LOW, COMMAND_PRIORITY_NORMAL, createEditor, FORMAT_TEXT_COMMAND, } from 'lexical';
|
package/dist/richtext/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* RevealUI Rich Text Editor - Lexical Integration
|
|
3
3
|
*
|
|
4
4
|
* Uses vanilla Lexical npm packages for rich text editing.
|
|
5
|
-
* Provides
|
|
5
|
+
* Provides an admin-compatible API for configuring the editor.
|
|
6
6
|
*/
|
|
7
7
|
// Re-export from vanilla Lexical packages
|
|
8
8
|
export { $createParagraphNode, $createTextNode, $getRoot, $getSelection, $isRangeSelection, CLEAR_EDITOR_COMMAND, CLEAR_HISTORY_COMMAND, COMMAND_PRIORITY_CRITICAL, COMMAND_PRIORITY_HIGH, COMMAND_PRIORITY_LOW, COMMAND_PRIORITY_NORMAL, createEditor, FORMAT_TEXT_COMMAND, } from 'lexical';
|
package/dist/security/index.d.ts
CHANGED
package/dist/security/index.js
CHANGED
|
@@ -95,7 +95,7 @@ export function renderPage(pageData, context) {
|
|
|
95
95
|
const data = pageData && typeof pageData === 'object' ? pageData : {};
|
|
96
96
|
const title = typeof data.title === 'string' ? data.title : 'Page';
|
|
97
97
|
const content = typeof data.content === 'string' ? data.content : '';
|
|
98
|
-
const description = typeof data.description === 'string' ? data.description : 'Generated by RevealUI
|
|
98
|
+
const description = typeof data.description === 'string' ? data.description : 'Generated by RevealUI admin';
|
|
99
99
|
// Escape title and description, but allow content to contain safe HTML
|
|
100
100
|
const escapedTitle = escapeHtml(title);
|
|
101
101
|
return renderHTMLShell({
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @revealui/core/types/admin
|
|
3
|
+
*
|
|
4
|
+
* Admin-specific types including generated types from RevealUI config.
|
|
5
|
+
*/
|
|
6
|
+
export type * from '../generated/types/admin.js';
|
|
7
|
+
export type { Config } from '../generated/types/admin.js';
|
|
8
|
+
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/types/admin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,mBAAmB,6BAA6B,CAAC;AAEjD,YAAY,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* RevealUI Configuration Types
|
|
3
3
|
*
|
|
4
4
|
* Defines RevealUI-specific configuration interfaces that extend
|
|
5
|
-
* the base
|
|
5
|
+
* the base admin configuration types.
|
|
6
6
|
*
|
|
7
7
|
* @module @revealui/core/types/config
|
|
8
8
|
*/
|
|
9
|
-
import type { CollectionConfig, GlobalConfig, UnknownRecord } from '@revealui/contracts/
|
|
9
|
+
import type { CollectionConfig, GlobalConfig, UnknownRecord } from '@revealui/contracts/admin';
|
|
10
10
|
import type { RevealDocument } from './query.js';
|
|
11
11
|
import type { RevealRequest } from './request.js';
|
|
12
12
|
import type { DatabaseAdapter, RevealUIInstance } from './runtime.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* RevealUI Framework Extension Types
|
|
3
3
|
*
|
|
4
|
-
* Defines RevealUI-specific extensions for the
|
|
4
|
+
* Defines RevealUI-specific extensions for the runtime engine.
|
|
5
5
|
*
|
|
6
6
|
* @module @revealui/core/types/extensions
|
|
7
7
|
*/
|
|
8
|
-
import type { CollectionConfig, Field } from '@revealui/contracts/
|
|
8
|
+
import type { CollectionConfig, Field } from '@revealui/contracts/admin';
|
|
9
9
|
import type { ComponentType } from 'react';
|
|
10
10
|
import type { Access, RevealUIAccessResult } from './access.js';
|
|
11
11
|
import type { RevealUIFieldValidator, RevealUIValidationRule } from './hooks.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/types/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/types/extensions.ts"],"names":[],"mappings":"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"}
|
package/dist/types/extensions.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @revealui/core/types/generated
|
|
3
3
|
*
|
|
4
|
-
* Generated types from RevealUI
|
|
4
|
+
* Generated types from RevealUI admin configuration.
|
|
5
5
|
* This file re-exports types from @revealui/core/generated.
|
|
6
6
|
*
|
|
7
7
|
* Types are generated from:
|
|
8
|
-
* -
|
|
8
|
+
* - admin config: apps/admin/revealui.config.ts
|
|
9
9
|
*/
|
|
10
|
-
export type { Config as GeneratedConfig } from '../generated/types/
|
|
11
|
-
export type GeneratedTypes = import('../generated/types/
|
|
10
|
+
export type { Config as GeneratedConfig } from '../generated/types/admin.js';
|
|
11
|
+
export type GeneratedTypes = import('../generated/types/admin.js').Config;
|
|
12
12
|
//# sourceMappingURL=generated.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/types/generated.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/types/generated.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG7E,MAAM,MAAM,cAAc,GAAG,OAAO,6BAA6B,EAAE,MAAM,CAAC"}
|
package/dist/types/generated.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @revealui/core/types/generated
|
|
3
3
|
*
|
|
4
|
-
* Generated types from RevealUI
|
|
4
|
+
* Generated types from RevealUI admin configuration.
|
|
5
5
|
* This file re-exports types from @revealui/core/generated.
|
|
6
6
|
*
|
|
7
7
|
* Types are generated from:
|
|
8
|
-
* -
|
|
8
|
+
* - admin config: apps/admin/revealui.config.ts
|
|
9
9
|
*/
|
|
10
10
|
export {};
|
package/dist/types/hooks.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module @revealui/core/types/hooks
|
|
7
7
|
*/
|
|
8
|
-
import type { Field } from '@revealui/contracts/
|
|
8
|
+
import type { Field } from '@revealui/contracts/admin';
|
|
9
9
|
import type { RevealDataObject, RevealDocument } from './query.js';
|
|
10
10
|
import type { RevealRequest } from './request.js';
|
|
11
11
|
/** RevealUI's extended hook context */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAMlD,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACnD,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAMD,0CAA0C;AAC1C,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE;IAClD,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACpD,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAMrB,+BAA+B;AAC/B,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,mBAAmB,KACzB,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CACnD;AAED,+BAA+B;AAC/B,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE;IACJ,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B,GAAG,EAAE,aAAa,CAAC;CACpB,KACE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* RevealUI
|
|
2
|
+
* RevealUI admin Framework - Type System
|
|
3
3
|
*
|
|
4
|
-
* This module consolidates the
|
|
4
|
+
* This module consolidates the admin type system using @revealui/contracts
|
|
5
5
|
* as the single source of truth, while extending with RevealUI-specific features.
|
|
6
6
|
*
|
|
7
7
|
* ## Architecture
|
|
8
8
|
*
|
|
9
|
-
* 1. **Contracts** (@revealui/contracts/
|
|
9
|
+
* 1. **Contracts** (@revealui/contracts/admin)
|
|
10
10
|
* - Core field, collection, and global schemas
|
|
11
11
|
* - Runtime validation with Zod
|
|
12
12
|
* - Type inference from schemas
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
*
|
|
21
21
|
* @packageDocumentation
|
|
22
22
|
*/
|
|
23
|
-
export { type AccessArgs, type AccessFunction, type AccessResult, type AfterChangeHookArgs, type AfterReadHookArgs, type ArrayField, ArrayFieldSchema, type AuthConfig, AuthConfigSchema, applyPluginExtensions, assertValidSlug, type BeforeChangeHookArgs, COLLECTION_SCHEMA_VERSION, type CollectionAccess, type CollectionAccessConfig, CollectionAccessSchema, type CollectionAdminConfig, CollectionAdminConfigSchema, type CollectionAfterChangeHook, type CollectionAfterReadHook, type CollectionBeforeChangeHook, type CollectionBeforeReadHook, type CollectionBeforeValidateHook, type CollectionConfig, CollectionConfigSchema, type CollectionHooks, type CollectionHooksConfig, CollectionHooksSchema, type CollectionLabels, CollectionLabelsSchema, type CollectionStructure, CollectionStructureSchema, type Config, ConfigValidationError, type CustomFieldTypeConfig, createAuthCollectionConfig, createCollectionConfig, createGlobalConfig, createUploadCollectionConfig, defineCollection, defineField, defineGlobal, ExtendedFieldTypeSchema, FIELD_SCHEMA_VERSION, type Field, type FieldAccess as SchemaFieldAccess, type FieldAccessArgs, type FieldAccessConfig, FieldAccessConfigSchema, type FieldAccessFunction, type FieldAdminConfig, FieldAdminConfigSchema, type FieldHooksConfig, FieldHooksConfigSchema, type FieldOption, FieldOptionSchema, FieldSchema, type FieldStructure, FieldStructureSchema, type FieldType, FieldTypeSchema, type FieldValidateArgs,
|
|
23
|
+
export { type AccessArgs, type AccessFunction, type AccessResult, type AfterChangeHookArgs, type AfterReadHookArgs, type ArrayField, ArrayFieldSchema, type AuthConfig, AuthConfigSchema, applyPluginExtensions, assertValidSlug, type BeforeChangeHookArgs, COLLECTION_SCHEMA_VERSION, type CollectionAccess, type CollectionAccessConfig, CollectionAccessSchema, type CollectionAdminConfig, CollectionAdminConfigSchema, type CollectionAfterChangeHook, type CollectionAfterReadHook, type CollectionBeforeChangeHook, type CollectionBeforeReadHook, type CollectionBeforeValidateHook, type CollectionConfig, CollectionConfigSchema, type CollectionHooks, type CollectionHooksConfig, CollectionHooksSchema, type CollectionLabels, CollectionLabelsSchema, type CollectionStructure, CollectionStructureSchema, type Config, ConfigValidationError, type CustomFieldTypeConfig, createAuthCollectionConfig, createCollectionConfig, createGlobalConfig, createUploadCollectionConfig, defineCollection, defineField, defineGlobal, ExtendedFieldTypeSchema, FIELD_SCHEMA_VERSION, type Field, type FieldAccess as SchemaFieldAccess, type FieldAccessArgs, type FieldAccessConfig, FieldAccessConfigSchema, type FieldAccessFunction, type FieldAdminConfig, FieldAdminConfigSchema, type FieldHooksConfig, FieldHooksConfigSchema, type FieldOption, FieldOptionSchema, FieldSchema, type FieldStructure, FieldStructureSchema, type FieldType, FieldTypeSchema, type FieldValidateArgs, fromAdminCollectionConfig, fromAdminGlobalConfig, GLOBAL_SCHEMA_VERSION, type GlobalAccess, type GlobalAccessConfig, GlobalAccessSchema, type GlobalAdminConfig, GlobalAdminConfigSchema, type GlobalConfig, GlobalConfigSchema, type GlobalHooks, type GlobalHooksConfig, GlobalHooksSchema, type GlobalLabels, GlobalLabelsSchema, type GlobalStructure, GlobalStructureSchema, type GlobalVersionsConfig, GlobalVersionsConfigSchema, type GroupField, GroupFieldSchema, getCustomFieldType, getRevealUIExtensions, hasNestedFields, hasRevealUIExtensions, isArrayField, isGroupField, isLayoutField, isNumberField, isRelationshipField, isTextField, isValidFieldType, isValidSlug, mergeCollectionConfigs, mergeFields, type NumberField, NumberFieldSchema, type PluginFieldExtension, type RelationshipField, RelationshipFieldSchema, type RevealUICollectionConfig as SchemaRevealUICollectionConfig, type RevealUIExtensions, type RevealUIGlobalConfig as SchemaRevealUIGlobalConfig, type RowField, RowFieldSchema, registerCustomFieldType, registerPluginExtension, type SanitizedCollectionConfig, SanitizedCollectionConfigSchema, type SanitizedConfig, type SanitizedGlobalConfig, SanitizedGlobalConfigSchema, type SelectField, SelectFieldSchema, safeValidate, type TabDefinition, TabDefinitionSchema, type TabsField, TabsFieldSchema, type TextField, TextFieldSchema, toAdminCollectionConfig, toAdminGlobalConfig, toSlug, type UploadConfig, UploadConfigSchema, type ValidationResult, type VersionConfig, VersionsConfigSchema, validateWithErrors, type Where, } from '@revealui/contracts/admin';
|
|
24
24
|
export { type Document, type JsonObject, type PopulateType, type RelationshipMetadata, type RevealDataObject, type RevealDocument, type RevealDocumentWithMeta, type RevealOperator, RevealOperators, type RevealSelect, type RevealSort, type RevealValue, type RevealWhere, type RevealWhereField, type SelectMode, type SelectType, type TypedFallbackLocale, type TypeWithID, type WhereClause, } from './query.js';
|
|
25
25
|
export type { Permission, RevealUIPermission, RevealUITenant, RevealUIUser, RevealUser, User, } from './user.js';
|
|
26
26
|
export type { RequestContext, RevealRequest, } from './request.js';
|