@revealui/contracts 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +160 -0
- package/dist/a2a/index.d.ts +383 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +276 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/actions/action-validator.d.ts +48 -0
- package/dist/actions/action-validator.d.ts.map +1 -0
- package/dist/actions/action-validator.js +288 -0
- package/dist/actions/action-validator.js.map +1 -0
- package/dist/actions/index.d.ts +7 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +7 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/agents/index.d.ts +628 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +511 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/types.d.ts +22 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/api/auth.d.ts +60 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/auth.js +84 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/chat.d.ts +45 -0
- package/dist/api/chat.d.ts.map +1 -0
- package/dist/api/chat.js +55 -0
- package/dist/api/chat.js.map +1 -0
- package/dist/api/gdpr.d.ts +39 -0
- package/dist/api/gdpr.d.ts.map +1 -0
- package/dist/api/gdpr.js +53 -0
- package/dist/api/gdpr.js.map +1 -0
- package/dist/cms/collection.d.ts +108 -0
- package/dist/cms/collection.d.ts.map +1 -0
- package/dist/cms/collection.js +144 -0
- package/dist/cms/collection.js.map +1 -0
- package/dist/cms/compat.d.ts +128 -0
- package/dist/cms/compat.d.ts.map +1 -0
- package/dist/cms/compat.js +141 -0
- package/dist/cms/compat.js.map +1 -0
- package/dist/cms/config-contract.d.ts +278 -0
- package/dist/cms/config-contract.d.ts.map +1 -0
- package/dist/cms/config-contract.js +220 -0
- package/dist/cms/config-contract.js.map +1 -0
- package/dist/cms/config.d.ts +351 -0
- package/dist/cms/config.d.ts.map +1 -0
- package/dist/cms/config.js +50 -0
- package/dist/cms/config.js.map +1 -0
- package/dist/cms/errors.d.ts +122 -0
- package/dist/cms/errors.d.ts.map +1 -0
- package/dist/cms/errors.js +163 -0
- package/dist/cms/errors.js.map +1 -0
- package/dist/cms/extensibility.d.ts +211 -0
- package/dist/cms/extensibility.d.ts.map +1 -0
- package/dist/cms/extensibility.js +313 -0
- package/dist/cms/extensibility.js.map +1 -0
- package/dist/cms/field.d.ts +69 -0
- package/dist/cms/field.d.ts.map +1 -0
- package/dist/cms/field.js +94 -0
- package/dist/cms/field.js.map +1 -0
- package/dist/cms/functions.d.ts +466 -0
- package/dist/cms/functions.d.ts.map +1 -0
- package/dist/cms/functions.js +19 -0
- package/dist/cms/functions.js.map +1 -0
- package/dist/cms/global.d.ts +45 -0
- package/dist/cms/global.d.ts.map +1 -0
- package/dist/cms/global.js +62 -0
- package/dist/cms/global.js.map +1 -0
- package/dist/cms/index.d.ts +23 -0
- package/dist/cms/index.d.ts.map +1 -0
- package/dist/cms/index.js +42 -0
- package/dist/cms/index.js.map +1 -0
- package/dist/cms/structure.d.ts +1601 -0
- package/dist/cms/structure.d.ts.map +1 -0
- package/dist/cms/structure.js +757 -0
- package/dist/cms/structure.js.map +1 -0
- package/dist/content/index.d.ts +1542 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +522 -0
- package/dist/content/index.js.map +1 -0
- package/dist/database/bridge.d.ts +177 -0
- package/dist/database/bridge.d.ts.map +1 -0
- package/dist/database/bridge.js +139 -0
- package/dist/database/bridge.js.map +1 -0
- package/dist/database/index.d.ts +8 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +9 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/type-bridge.d.ts +178 -0
- package/dist/database/type-bridge.d.ts.map +1 -0
- package/dist/database/type-bridge.js +154 -0
- package/dist/database/type-bridge.js.map +1 -0
- package/dist/entities/agent-context.d.ts +280 -0
- package/dist/entities/agent-context.d.ts.map +1 -0
- package/dist/entities/agent-context.js +390 -0
- package/dist/entities/agent-context.js.map +1 -0
- package/dist/entities/agent-memory.d.ts +661 -0
- package/dist/entities/agent-memory.d.ts.map +1 -0
- package/dist/entities/agent-memory.js +544 -0
- package/dist/entities/agent-memory.js.map +1 -0
- package/dist/entities/board.d.ts +95 -0
- package/dist/entities/board.d.ts.map +1 -0
- package/dist/entities/board.js +99 -0
- package/dist/entities/board.js.map +1 -0
- package/dist/entities/code-provenance.d.ts +270 -0
- package/dist/entities/code-provenance.d.ts.map +1 -0
- package/dist/entities/code-provenance.js +339 -0
- package/dist/entities/code-provenance.js.map +1 -0
- package/dist/entities/index.d.ts +22 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +22 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/media.d.ts +485 -0
- package/dist/entities/media.d.ts.map +1 -0
- package/dist/entities/media.js +606 -0
- package/dist/entities/media.js.map +1 -0
- package/dist/entities/page-revision.d.ts +390 -0
- package/dist/entities/page-revision.d.ts.map +1 -0
- package/dist/entities/page-revision.js +406 -0
- package/dist/entities/page-revision.js.map +1 -0
- package/dist/entities/page.d.ts +2349 -0
- package/dist/entities/page.d.ts.map +1 -0
- package/dist/entities/page.js +377 -0
- package/dist/entities/page.js.map +1 -0
- package/dist/entities/post.d.ts +619 -0
- package/dist/entities/post.d.ts.map +1 -0
- package/dist/entities/post.js +555 -0
- package/dist/entities/post.js.map +1 -0
- package/dist/entities/price.d.ts +772 -0
- package/dist/entities/price.d.ts.map +1 -0
- package/dist/entities/price.js +308 -0
- package/dist/entities/price.js.map +1 -0
- package/dist/entities/product.d.ts +753 -0
- package/dist/entities/product.d.ts.map +1 -0
- package/dist/entities/product.js +307 -0
- package/dist/entities/product.js.map +1 -0
- package/dist/entities/session.d.ts +222 -0
- package/dist/entities/session.d.ts.map +1 -0
- package/dist/entities/session.js +253 -0
- package/dist/entities/session.js.map +1 -0
- package/dist/entities/site.d.ts +387 -0
- package/dist/entities/site.d.ts.map +1 -0
- package/dist/entities/site.js +348 -0
- package/dist/entities/site.js.map +1 -0
- package/dist/entities/ticket-comment.d.ts +49 -0
- package/dist/entities/ticket-comment.d.ts.map +1 -0
- package/dist/entities/ticket-comment.js +58 -0
- package/dist/entities/ticket-comment.js.map +1 -0
- package/dist/entities/ticket-label.d.ts +64 -0
- package/dist/entities/ticket-label.d.ts.map +1 -0
- package/dist/entities/ticket-label.js +77 -0
- package/dist/entities/ticket-label.js.map +1 -0
- package/dist/entities/ticket.d.ts +204 -0
- package/dist/entities/ticket.d.ts.map +1 -0
- package/dist/entities/ticket.js +205 -0
- package/dist/entities/ticket.js.map +1 -0
- package/dist/entities/user.d.ts +336 -0
- package/dist/entities/user.d.ts.map +1 -0
- package/dist/entities/user.js +255 -0
- package/dist/entities/user.js.map +1 -0
- package/dist/foundation/contract.d.ts +221 -0
- package/dist/foundation/contract.d.ts.map +1 -0
- package/dist/foundation/contract.js +133 -0
- package/dist/foundation/contract.js.map +1 -0
- package/dist/foundation/index.d.ts +7 -0
- package/dist/foundation/index.d.ts.map +1 -0
- package/dist/foundation/index.js +7 -0
- package/dist/foundation/index.js.map +1 -0
- package/dist/generated/contracts.d.ts +1514 -0
- package/dist/generated/contracts.d.ts.map +1 -0
- package/dist/generated/contracts.js +959 -0
- package/dist/generated/contracts.js.map +1 -0
- package/dist/generated/database.d.ts +48 -0
- package/dist/generated/database.d.ts.map +1 -0
- package/dist/generated/database.js +17 -0
- package/dist/generated/database.js.map +1 -0
- package/dist/generated/zod-schemas.d.ts +14793 -0
- package/dist/generated/zod-schemas.d.ts.map +1 -0
- package/dist/generated/zod-schemas.js +547 -0
- package/dist/generated/zod-schemas.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/dist/representation/index.d.ts +304 -0
- package/dist/representation/index.d.ts.map +1 -0
- package/dist/representation/index.js +280 -0
- package/dist/representation/index.js.map +1 -0
- package/package.json +117 -0
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extensibility Contracts
|
|
3
|
+
*
|
|
4
|
+
* Contracts for extending the CMS type system with:
|
|
5
|
+
* - Custom field types (from plugins)
|
|
6
|
+
* - Plugin field extensions
|
|
7
|
+
* - Custom validation rules
|
|
8
|
+
*
|
|
9
|
+
* @module @revealui/contracts/core/contracts/extensibility
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod/v4';
|
|
12
|
+
// Global registry instance
|
|
13
|
+
const customFieldTypeRegistry = {};
|
|
14
|
+
/**
|
|
15
|
+
* Register a custom field type
|
|
16
|
+
*
|
|
17
|
+
* Call this from plugins to add new field types.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // In your plugin
|
|
22
|
+
* registerCustomFieldType('color-picker', {
|
|
23
|
+
* description: 'A color picker field',
|
|
24
|
+
* defaultValue: '#000000',
|
|
25
|
+
* validate: (value) => {
|
|
26
|
+
* if (typeof value !== 'string') return 'Color must be a string';
|
|
27
|
+
* if (!/^#[0-9a-f]{6}$/i.test(value)) return 'Invalid hex color';
|
|
28
|
+
* return true;
|
|
29
|
+
* },
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export function registerCustomFieldType(typeName, config) {
|
|
34
|
+
// Silently overwrite existing types - last registration wins
|
|
35
|
+
customFieldTypeRegistry[typeName] = config;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get a registered custom field type
|
|
39
|
+
*/
|
|
40
|
+
export function getCustomFieldType(typeName) {
|
|
41
|
+
return customFieldTypeRegistry[typeName];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get all registered custom field types
|
|
45
|
+
*/
|
|
46
|
+
export function getCustomFieldTypes() {
|
|
47
|
+
return { ...customFieldTypeRegistry };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Unregister a custom field type (mainly for testing)
|
|
51
|
+
*/
|
|
52
|
+
export function unregisterCustomFieldType(typeName) {
|
|
53
|
+
Reflect.deleteProperty(customFieldTypeRegistry, typeName);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Clear all custom field types (mainly for testing)
|
|
57
|
+
*/
|
|
58
|
+
export function clearCustomFieldTypes() {
|
|
59
|
+
for (const key of Object.keys(customFieldTypeRegistry)) {
|
|
60
|
+
Reflect.deleteProperty(customFieldTypeRegistry, key);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Built-in field types in RevealUI CMS
|
|
65
|
+
*/
|
|
66
|
+
export const BUILTIN_FIELD_TYPES = [
|
|
67
|
+
'text',
|
|
68
|
+
'textarea',
|
|
69
|
+
'number',
|
|
70
|
+
'email',
|
|
71
|
+
'password',
|
|
72
|
+
'code',
|
|
73
|
+
'date',
|
|
74
|
+
'checkbox',
|
|
75
|
+
'select',
|
|
76
|
+
'radio',
|
|
77
|
+
'relationship',
|
|
78
|
+
'upload',
|
|
79
|
+
'array',
|
|
80
|
+
'blocks',
|
|
81
|
+
'group',
|
|
82
|
+
'row',
|
|
83
|
+
'collapsible',
|
|
84
|
+
'tabs',
|
|
85
|
+
'richText',
|
|
86
|
+
'json',
|
|
87
|
+
'point',
|
|
88
|
+
'ui',
|
|
89
|
+
];
|
|
90
|
+
/**
|
|
91
|
+
* Check if a field type is valid (built-in or custom)
|
|
92
|
+
*/
|
|
93
|
+
export function isValidFieldType(type) {
|
|
94
|
+
return BUILTIN_FIELD_TYPES.includes(type) || type in customFieldTypeRegistry;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get all valid field types (built-in + custom)
|
|
98
|
+
*/
|
|
99
|
+
export function getValidFieldTypes() {
|
|
100
|
+
return [...BUILTIN_FIELD_TYPES, ...Object.keys(customFieldTypeRegistry)];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Extended field type schema that includes custom types
|
|
104
|
+
*
|
|
105
|
+
* Use this schema when validating field configs that may include
|
|
106
|
+
* custom field types from plugins.
|
|
107
|
+
*/
|
|
108
|
+
export const ExtendedFieldTypeSchema = z.string().refine((type) => isValidFieldType(type), {
|
|
109
|
+
message: `Invalid field type. Valid types: ${getValidFieldTypes().join(', ')}`,
|
|
110
|
+
});
|
|
111
|
+
// Registry of plugin extensions
|
|
112
|
+
const pluginExtensions = [];
|
|
113
|
+
/**
|
|
114
|
+
* Register a plugin field extension
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* registerPluginExtension({
|
|
119
|
+
* pluginName: 'seo-plugin',
|
|
120
|
+
* globalFields: [
|
|
121
|
+
* { name: 'metaTitle', type: 'text', admin: { position: 'sidebar' } },
|
|
122
|
+
* { name: 'metaDescription', type: 'textarea' },
|
|
123
|
+
* ],
|
|
124
|
+
* collectionFields: {
|
|
125
|
+
* posts: [
|
|
126
|
+
* { name: 'canonicalUrl', type: 'text' },
|
|
127
|
+
* ],
|
|
128
|
+
* },
|
|
129
|
+
* });
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export function registerPluginExtension(extension) {
|
|
133
|
+
// Register any custom field types from this plugin
|
|
134
|
+
if (extension.customFieldTypes) {
|
|
135
|
+
for (const { name, config } of extension.customFieldTypes) {
|
|
136
|
+
registerCustomFieldType(name, config);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
pluginExtensions.push(extension);
|
|
140
|
+
// Sort by priority
|
|
141
|
+
pluginExtensions.sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get all registered plugin extensions
|
|
145
|
+
*/
|
|
146
|
+
export function getPluginExtensions() {
|
|
147
|
+
return [...pluginExtensions];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Clear all plugin extensions (mainly for testing)
|
|
151
|
+
*/
|
|
152
|
+
export function clearPluginExtensions() {
|
|
153
|
+
pluginExtensions.length = 0;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Apply plugin field extensions to a collection config
|
|
157
|
+
*
|
|
158
|
+
* This is called during config finalization to add plugin-provided fields.
|
|
159
|
+
*
|
|
160
|
+
* @param config - The base collection config
|
|
161
|
+
* @returns The config with plugin fields added
|
|
162
|
+
*/
|
|
163
|
+
export function applyPluginExtensions(config) {
|
|
164
|
+
let result = { ...config, fields: [...config.fields] };
|
|
165
|
+
const { slug } = config;
|
|
166
|
+
for (const extension of pluginExtensions) {
|
|
167
|
+
// Add global fields
|
|
168
|
+
if (extension.globalFields) {
|
|
169
|
+
result = {
|
|
170
|
+
...result,
|
|
171
|
+
fields: [...result.fields, ...extension.globalFields],
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
// Add collection-specific fields
|
|
175
|
+
if (extension.collectionFields && slug in extension.collectionFields) {
|
|
176
|
+
const collectionSpecificFields = extension.collectionFields[slug];
|
|
177
|
+
if (collectionSpecificFields) {
|
|
178
|
+
result = {
|
|
179
|
+
...result,
|
|
180
|
+
fields: [...result.fields, ...collectionSpecificFields],
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Apply beforeFinalize hook
|
|
185
|
+
if (extension.beforeFinalize) {
|
|
186
|
+
result = extension.beforeFinalize(result);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return result;
|
|
190
|
+
}
|
|
191
|
+
// Global validation rules registry
|
|
192
|
+
const validationRules = {};
|
|
193
|
+
/**
|
|
194
|
+
* Register a custom validation rule
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```typescript
|
|
198
|
+
* registerValidationRule({
|
|
199
|
+
* name: 'slug-format',
|
|
200
|
+
* validate: (value) => {
|
|
201
|
+
* if (typeof value !== 'string') return 'Must be a string';
|
|
202
|
+
* if (!/^[a-z0-9-]+$/.test(value)) {
|
|
203
|
+
* return 'Slug must contain only lowercase letters, numbers, and hyphens';
|
|
204
|
+
* }
|
|
205
|
+
* return true;
|
|
206
|
+
* },
|
|
207
|
+
* description: 'Validates URL-safe slug format',
|
|
208
|
+
* });
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
export function registerValidationRule(rule) {
|
|
212
|
+
validationRules[rule.name] = rule;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Get a validation rule by name
|
|
216
|
+
*/
|
|
217
|
+
export function getValidationRule(name) {
|
|
218
|
+
return validationRules[name];
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Get all registered validation rules
|
|
222
|
+
*/
|
|
223
|
+
export function getValidationRules() {
|
|
224
|
+
return { ...validationRules };
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Run a validation rule against a value
|
|
228
|
+
*/
|
|
229
|
+
export function runValidationRule(ruleName, value, options) {
|
|
230
|
+
const rule = validationRules[ruleName];
|
|
231
|
+
if (!rule) {
|
|
232
|
+
return `Unknown validation rule: ${ruleName}`;
|
|
233
|
+
}
|
|
234
|
+
return rule.validate(value, options);
|
|
235
|
+
}
|
|
236
|
+
// ============================================
|
|
237
|
+
// TYPE EXTENSION UTILITIES
|
|
238
|
+
// ============================================
|
|
239
|
+
/**
|
|
240
|
+
* Merge field arrays, handling conflicts by name
|
|
241
|
+
*
|
|
242
|
+
* Later fields override earlier fields with the same name.
|
|
243
|
+
*/
|
|
244
|
+
export function mergeFields(base, additions) {
|
|
245
|
+
const fieldMap = new Map();
|
|
246
|
+
// Add base fields
|
|
247
|
+
for (const field of base) {
|
|
248
|
+
const { name } = field;
|
|
249
|
+
if (name) {
|
|
250
|
+
fieldMap.set(name, field);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
// Override/add additional fields
|
|
254
|
+
for (const field of additions) {
|
|
255
|
+
const { name } = field;
|
|
256
|
+
if (name) {
|
|
257
|
+
fieldMap.set(name, field);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// Rebuild array, preserving order of base with additions at end
|
|
261
|
+
const result = [];
|
|
262
|
+
const addedNames = new Set();
|
|
263
|
+
for (const field of base) {
|
|
264
|
+
const { name } = field;
|
|
265
|
+
if (name) {
|
|
266
|
+
const mappedField = fieldMap.get(name);
|
|
267
|
+
if (mappedField) {
|
|
268
|
+
result.push(mappedField);
|
|
269
|
+
addedNames.add(name);
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
result.push(field);
|
|
274
|
+
}
|
|
275
|
+
// Add any new fields not in base
|
|
276
|
+
for (const field of additions) {
|
|
277
|
+
const { name } = field;
|
|
278
|
+
if (name && !addedNames.has(name)) {
|
|
279
|
+
result.push(field);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return result;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Deep merge two collection configs
|
|
286
|
+
*/
|
|
287
|
+
export function mergeCollectionConfigs(base, overrides) {
|
|
288
|
+
const baseAccess = base.access ?? {};
|
|
289
|
+
const baseHooks = base.hooks ?? {};
|
|
290
|
+
const baseAdmin = base.admin ?? {};
|
|
291
|
+
const result = {
|
|
292
|
+
...base,
|
|
293
|
+
...overrides,
|
|
294
|
+
fields: overrides.fields ? mergeFields(base.fields, overrides.fields) : base.fields,
|
|
295
|
+
};
|
|
296
|
+
if (overrides.access) {
|
|
297
|
+
result.access = { ...baseAccess, ...overrides.access };
|
|
298
|
+
}
|
|
299
|
+
if (overrides.hooks) {
|
|
300
|
+
result.hooks = {
|
|
301
|
+
...baseHooks,
|
|
302
|
+
...overrides.hooks,
|
|
303
|
+
// Merge hook arrays
|
|
304
|
+
beforeChange: [...(baseHooks.beforeChange ?? []), ...(overrides.hooks.beforeChange ?? [])],
|
|
305
|
+
afterChange: [...(baseHooks.afterChange ?? []), ...(overrides.hooks.afterChange ?? [])],
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
if (overrides.admin) {
|
|
309
|
+
result.admin = { ...baseAdmin, ...overrides.admin };
|
|
310
|
+
}
|
|
311
|
+
return result;
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=extensibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensibility.js","sourceRoot":"","sources":["../../src/cms/extensibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field Contract
|
|
3
|
+
*
|
|
4
|
+
* Unified contract for Field configurations that combines:
|
|
5
|
+
* - TypeScript types (compile-time)
|
|
6
|
+
* - Zod schemas (runtime validation)
|
|
7
|
+
* - Validation functions
|
|
8
|
+
* - Type guards
|
|
9
|
+
*
|
|
10
|
+
* This is the single source of truth for Field definitions.
|
|
11
|
+
*
|
|
12
|
+
* @module @revealui/contracts/core/contracts/field
|
|
13
|
+
*/
|
|
14
|
+
import { type Contract, type ContractType } from '../foundation/contract.js';
|
|
15
|
+
import type { Field } from './config.js';
|
|
16
|
+
import { type FieldStructure } from './structure.js';
|
|
17
|
+
/**
|
|
18
|
+
* Field Contract
|
|
19
|
+
*
|
|
20
|
+
* This contract validates Field configurations at runtime
|
|
21
|
+
* and provides TypeScript types at compile time.
|
|
22
|
+
*/
|
|
23
|
+
export declare const FieldContract: Contract<FieldStructure>;
|
|
24
|
+
/**
|
|
25
|
+
* Type for Field configuration
|
|
26
|
+
* Extracted from the FieldContract
|
|
27
|
+
*/
|
|
28
|
+
export type FieldContractType = ContractType<typeof FieldContract>;
|
|
29
|
+
/**
|
|
30
|
+
* Validate a field configuration
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateField(data: unknown): ReturnType<typeof FieldContract.validate>;
|
|
33
|
+
/**
|
|
34
|
+
* Type guard for field configurations
|
|
35
|
+
*/
|
|
36
|
+
export declare function isFieldConfig(data: unknown): data is FieldContractType;
|
|
37
|
+
/**
|
|
38
|
+
* Parse field configuration (throws on validation failure)
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseField(data: unknown): FieldContractType;
|
|
41
|
+
/**
|
|
42
|
+
* Type guard for text fields
|
|
43
|
+
*/
|
|
44
|
+
export declare function isTextField(field: Field): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Type guard for number fields
|
|
47
|
+
*/
|
|
48
|
+
export declare function isNumberField(field: Field): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Type guard for relationship fields
|
|
51
|
+
*/
|
|
52
|
+
export declare function isRelationshipField(field: Field): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Type guard for array fields
|
|
55
|
+
*/
|
|
56
|
+
export declare function isArrayField(field: Field): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Type guard for group fields
|
|
59
|
+
*/
|
|
60
|
+
export declare function isGroupField(field: Field): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Type guard for layout fields (row, tabs, collapsible)
|
|
63
|
+
*/
|
|
64
|
+
export declare function isLayoutField(field: Field): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Check if a field has nested fields
|
|
67
|
+
*/
|
|
68
|
+
export declare function hasNestedFields(field: Field): boolean;
|
|
69
|
+
//# sourceMappingURL=field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/cms/field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAkB,MAAM,2BAA2B,CAAA;AAC5F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,gBAAgB,CAAA;AAE1E;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,cAAc,CAOjD,CAAA;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAA;AAElE;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAEtF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,iBAAiB,CAEtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAE3D;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAKrD"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field Contract
|
|
3
|
+
*
|
|
4
|
+
* Unified contract for Field configurations that combines:
|
|
5
|
+
* - TypeScript types (compile-time)
|
|
6
|
+
* - Zod schemas (runtime validation)
|
|
7
|
+
* - Validation functions
|
|
8
|
+
* - Type guards
|
|
9
|
+
*
|
|
10
|
+
* This is the single source of truth for Field definitions.
|
|
11
|
+
*
|
|
12
|
+
* @module @revealui/contracts/core/contracts/field
|
|
13
|
+
*/
|
|
14
|
+
import { createContract } from '../foundation/contract.js';
|
|
15
|
+
import { FieldStructureSchema } from './structure.js';
|
|
16
|
+
/**
|
|
17
|
+
* Field Contract
|
|
18
|
+
*
|
|
19
|
+
* This contract validates Field configurations at runtime
|
|
20
|
+
* and provides TypeScript types at compile time.
|
|
21
|
+
*/
|
|
22
|
+
export const FieldContract = createContract({
|
|
23
|
+
name: 'Field',
|
|
24
|
+
version: '1.0.0',
|
|
25
|
+
schema: FieldStructureSchema,
|
|
26
|
+
description: 'Field configuration contract',
|
|
27
|
+
docsUrl: 'https://revealui.dev/docs/api-reference/fields',
|
|
28
|
+
tags: ['field', 'config', 'cms'],
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Validate a field configuration
|
|
32
|
+
*/
|
|
33
|
+
export function validateField(data) {
|
|
34
|
+
return FieldContract.validate(data);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Type guard for field configurations
|
|
38
|
+
*/
|
|
39
|
+
export function isFieldConfig(data) {
|
|
40
|
+
return FieldContract.isType(data);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse field configuration (throws on validation failure)
|
|
44
|
+
*/
|
|
45
|
+
export function parseField(data) {
|
|
46
|
+
return FieldContract.parse(data);
|
|
47
|
+
}
|
|
48
|
+
// =============================================================================
|
|
49
|
+
// Type Guards
|
|
50
|
+
// =============================================================================
|
|
51
|
+
/**
|
|
52
|
+
* Type guard for text fields
|
|
53
|
+
*/
|
|
54
|
+
export function isTextField(field) {
|
|
55
|
+
return field.type === 'text';
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Type guard for number fields
|
|
59
|
+
*/
|
|
60
|
+
export function isNumberField(field) {
|
|
61
|
+
return field.type === 'number';
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Type guard for relationship fields
|
|
65
|
+
*/
|
|
66
|
+
export function isRelationshipField(field) {
|
|
67
|
+
return field.type === 'relationship';
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Type guard for array fields
|
|
71
|
+
*/
|
|
72
|
+
export function isArrayField(field) {
|
|
73
|
+
return field.type === 'array';
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Type guard for group fields
|
|
77
|
+
*/
|
|
78
|
+
export function isGroupField(field) {
|
|
79
|
+
return field.type === 'group';
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Type guard for layout fields (row, tabs, collapsible)
|
|
83
|
+
*/
|
|
84
|
+
export function isLayoutField(field) {
|
|
85
|
+
return ['row', 'tabs', 'collapsible'].includes(field.type);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Check if a field has nested fields
|
|
89
|
+
*/
|
|
90
|
+
export function hasNestedFields(field) {
|
|
91
|
+
return (['array', 'group', 'row', 'collapsible'].includes(field.type) ||
|
|
92
|
+
(field.type === 'tabs' && !!field.tabs));
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/cms/field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAoC,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE5F,OAAO,EAAuB,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAE1E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAA6B,cAAc,CAAC;IACpE,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,oBAAoB;IAC5B,WAAW,EAAE,8BAA8B;IAC3C,OAAO,EAAE,gDAAgD;IACzD,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;CACjC,CAAC,CAAA;AAQF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM,CAAA;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAA;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAY;IAC9C,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAA;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAA;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAA;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,OAAO,CACL,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7D,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CACxC,CAAA;AACH,CAAC"}
|