convex-cms 0.0.16 → 0.0.17
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/admin/dist/types/admin/src/components/ui/field.d.ts +1 -1
- package/admin/dist/types/admin/src/lib/cmsExports.d.ts +6 -6
- package/admin/dist/types/admin/src/lib/cmsExports.d.ts.map +1 -1
- package/admin/src/lib/cmsExports.ts +8 -8
- package/admin-dist/assets/index-DagpgVMo.js +104 -0
- package/admin-dist/embed/favicon.ico +0 -0
- package/admin-dist/embed/index.js +30961 -0
- package/admin-dist/embed/index.js.map +1 -0
- package/admin-dist/index.html +1 -1
- package/package.json +12 -5
- package/admin/dist/types/src/client/admin/bulk.d.ts +0 -79
- package/admin/dist/types/src/client/admin/bulk.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/contentLock.d.ts +0 -118
- package/admin/dist/types/src/client/admin/contentLock.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/contentTypes.d.ts +0 -1627
- package/admin/dist/types/src/client/admin/contentTypes.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/dashboard.d.ts +0 -16
- package/admin/dist/types/src/client/admin/dashboard.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/entries.d.ts +0 -357
- package/admin/dist/types/src/client/admin/entries.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/index.d.ts +0 -7502
- package/admin/dist/types/src/client/admin/index.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/media.d.ts +0 -1038
- package/admin/dist/types/src/client/admin/media.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/settings.d.ts +0 -50
- package/admin/dist/types/src/client/admin/settings.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/taxonomies.d.ts +0 -339
- package/admin/dist/types/src/client/admin/taxonomies.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/trash.d.ts +0 -90
- package/admin/dist/types/src/client/admin/trash.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/types.d.ts +0 -594
- package/admin/dist/types/src/client/admin/types.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/users.d.ts +0 -58
- package/admin/dist/types/src/client/admin/users.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/validators.d.ts +0 -7732
- package/admin/dist/types/src/client/admin/validators.d.ts.map +0 -1
- package/admin/dist/types/src/client/admin/versions.d.ts +0 -106
- package/admin/dist/types/src/client/admin/versions.d.ts.map +0 -1
- package/admin/dist/types/src/client/adminConfig.d.ts +0 -125
- package/admin/dist/types/src/client/adminConfig.d.ts.map +0 -1
- package/admin/dist/types/src/client/config.d.ts +0 -155
- package/admin/dist/types/src/client/config.d.ts.map +0 -1
- package/admin/dist/types/src/client/field-types.d.ts +0 -55
- package/admin/dist/types/src/client/field-types.d.ts.map +0 -1
- package/admin/dist/types/src/client/fields.d.ts +0 -70
- package/admin/dist/types/src/client/fields.d.ts.map +0 -1
- package/admin/dist/types/src/client/registry.d.ts +0 -77
- package/admin/dist/types/src/client/registry.d.ts.map +0 -1
- package/admin/dist/types/src/client/schema/defineContentType.d.ts +0 -233
- package/admin/dist/types/src/client/schema/defineContentType.d.ts.map +0 -1
- package/admin/dist/types/src/client/schema/types.d.ts +0 -540
- package/admin/dist/types/src/client/schema/types.d.ts.map +0 -1
- package/admin/dist/types/src/client/types.d.ts +0 -449
- package/admin/dist/types/src/client/types.d.ts.map +0 -1
- package/admin/dist/types/src/client/utils/toSlug.d.ts +0 -60
- package/admin/dist/types/src/client/utils/toSlug.d.ts.map +0 -1
- package/admin/dist/types/src/client/workflows.d.ts +0 -51
- package/admin/dist/types/src/client/workflows.d.ts.map +0 -1
- package/admin/dist/types/src/component/_generated/component.d.ts +0 -4813
- package/admin/dist/types/src/component/_generated/component.d.ts.map +0 -1
- package/admin/dist/types/src/component/_generated/dataModel.d.ts +0 -46
- package/admin/dist/types/src/component/_generated/dataModel.d.ts.map +0 -1
- package/admin/dist/types/src/component/_generated/server.d.ts +0 -121
- package/admin/dist/types/src/component/_generated/server.d.ts.map +0 -1
- package/admin/dist/types/src/component/contentEntryMutations.d.ts +0 -551
- package/admin/dist/types/src/component/contentEntryMutations.d.ts.map +0 -1
- package/admin/dist/types/src/component/contentLock.d.ts +0 -328
- package/admin/dist/types/src/component/contentLock.d.ts.map +0 -1
- package/admin/dist/types/src/component/contentTypeMutations.d.ts +0 -1253
- package/admin/dist/types/src/component/contentTypeMutations.d.ts.map +0 -1
- package/admin/dist/types/src/component/documentTypes.d.ts +0 -186
- package/admin/dist/types/src/component/documentTypes.d.ts.map +0 -1
- package/admin/dist/types/src/component/eventEmitter.d.ts +0 -309
- package/admin/dist/types/src/component/eventEmitter.d.ts.map +0 -1
- package/admin/dist/types/src/component/lib/errors.d.ts +0 -306
- package/admin/dist/types/src/component/lib/errors.d.ts.map +0 -1
- package/admin/dist/types/src/component/lib/metadataExtractor.d.ts +0 -245
- package/admin/dist/types/src/component/lib/metadataExtractor.d.ts.map +0 -1
- package/admin/dist/types/src/component/lib/mutationAuth.d.ts +0 -95
- package/admin/dist/types/src/component/lib/mutationAuth.d.ts.map +0 -1
- package/admin/dist/types/src/component/lib/slugGenerator.d.ts +0 -71
- package/admin/dist/types/src/component/lib/slugGenerator.d.ts.map +0 -1
- package/admin/dist/types/src/component/lib/slugUniqueness.d.ts +0 -131
- package/admin/dist/types/src/component/lib/slugUniqueness.d.ts.map +0 -1
- package/admin/dist/types/src/component/lib/softDelete.d.ts +0 -18
- package/admin/dist/types/src/component/lib/softDelete.d.ts.map +0 -1
- package/admin/dist/types/src/component/localeFields.d.ts +0 -508
- package/admin/dist/types/src/component/localeFields.d.ts.map +0 -1
- package/admin/dist/types/src/component/mediaAssetMutations.d.ts +0 -282
- package/admin/dist/types/src/component/mediaAssetMutations.d.ts.map +0 -1
- package/admin/dist/types/src/component/schema.d.ts +0 -5248
- package/admin/dist/types/src/component/schema.d.ts.map +0 -1
- package/admin/dist/types/src/component/validation.d.ts +0 -407
- package/admin/dist/types/src/component/validation.d.ts.map +0 -1
- package/admin/dist/types/src/component/validators.d.ts +0 -5722
- package/admin/dist/types/src/component/validators.d.ts.map +0 -1
- package/admin/dist/types/src/react/index.d.ts +0 -493
- package/admin/dist/types/src/react/index.d.ts.map +0 -1
- package/admin-dist/assets/index-DTgANhXL.js +0 -104
|
@@ -1,449 +0,0 @@
|
|
|
1
|
-
/** TypeScript type definitions for the Convex CMS component. */
|
|
2
|
-
import type { Infer } from "convex/values";
|
|
3
|
-
import type { MediaVariant as MediaVariantType, ContentVersion as ContentVersionType, StringifyIds } from "../component/documentTypes.js";
|
|
4
|
-
import * as validators from "../component/validators.js";
|
|
5
|
-
import * as schema from "../component/schema.js";
|
|
6
|
-
import type { ContentStatus } from "../component/validators.js";
|
|
7
|
-
import type { FieldTypeDefinition } from "./field-types.js";
|
|
8
|
-
import type { WorkflowConfig } from "./workflows.js";
|
|
9
|
-
/** Locale code following IETF BCP 47 format */
|
|
10
|
-
export type LocaleCode = string;
|
|
11
|
-
/** Feature flags for enabling/disabling CMS capabilities */
|
|
12
|
-
export interface FeatureFlags {
|
|
13
|
-
/** @default true */
|
|
14
|
-
versioning?: boolean;
|
|
15
|
-
/** @default true */
|
|
16
|
-
scheduling?: boolean;
|
|
17
|
-
/** @default false */
|
|
18
|
-
localization?: boolean;
|
|
19
|
-
/** @default true */
|
|
20
|
-
mediaManagement?: boolean;
|
|
21
|
-
/** @default true */
|
|
22
|
-
contentLocking?: boolean;
|
|
23
|
-
/** @default true - when disabled, deletions are permanent */
|
|
24
|
-
softDelete?: boolean;
|
|
25
|
-
/** @default true */
|
|
26
|
-
searchIndexing?: boolean;
|
|
27
|
-
}
|
|
28
|
-
import type { GenericMutationCtx, GenericDataModel } from "convex/server";
|
|
29
|
-
/**
|
|
30
|
-
* Convex context for CMS authorization hooks (Pick pattern per Convex docs).
|
|
31
|
-
* Cast to your app's MutationCtx in hook implementations for full type safety.
|
|
32
|
-
*/
|
|
33
|
-
export type CmsHookContext = Pick<GenericMutationCtx<GenericDataModel>, "db" | "auth" | "runMutation" | "runQuery">;
|
|
34
|
-
export interface GetUserRoleContext {
|
|
35
|
-
userId: string;
|
|
36
|
-
}
|
|
37
|
-
export type CmsOperation = "contentTypes.create" | "contentTypes.update" | "contentTypes.delete" | "contentTypes.read" | "contentEntries.create" | "contentEntries.update" | "contentEntries.delete" | "contentEntries.read" | "contentEntries.publish" | "contentEntries.unpublish" | "contentEntries.restore" | "contentEntries.schedule" | "mediaItems.create" | "mediaItems.update" | "mediaItems.delete" | "mediaItems.read" | "mediaItems.move" | "versions.read" | "versions.rollback";
|
|
38
|
-
/** Context passed to authorization hooks */
|
|
39
|
-
export interface AuthorizationHookContext {
|
|
40
|
-
/** Convex context for database/auth access */
|
|
41
|
-
ctx: CmsHookContext;
|
|
42
|
-
operation: CmsOperation;
|
|
43
|
-
userId?: string;
|
|
44
|
-
role?: string | null;
|
|
45
|
-
resourceId?: string;
|
|
46
|
-
resourceOwnerId?: string;
|
|
47
|
-
contentTypeId?: string;
|
|
48
|
-
contentTypeName?: string;
|
|
49
|
-
operationData?: Record<string, unknown>;
|
|
50
|
-
}
|
|
51
|
-
export interface AuthorizationHookResult {
|
|
52
|
-
allowed: boolean;
|
|
53
|
-
reason?: string;
|
|
54
|
-
/** Modified data to use instead of original (allows hooks to transform input) */
|
|
55
|
-
modifiedData?: Record<string, unknown>;
|
|
56
|
-
}
|
|
57
|
-
/** Extends AuthorizationHookContext with the default RBAC decision */
|
|
58
|
-
export interface AuthorizeHookContext extends AuthorizationHookContext {
|
|
59
|
-
defaultDecision: {
|
|
60
|
-
allowed: boolean;
|
|
61
|
-
reason?: string;
|
|
62
|
-
/** Possible: 'NO_ROLE', 'UNKNOWN_ROLE', 'PERMISSION_DENIED', 'OWNERSHIP_REQUIRED' */
|
|
63
|
-
code?: string;
|
|
64
|
-
grantedScope?: "all" | "own";
|
|
65
|
-
ownershipVerified?: boolean;
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Hook called AFTER RBAC check. Can override RBAC decisions based on custom logic.
|
|
70
|
-
* Receives context.defaultDecision showing what RBAC decided.
|
|
71
|
-
*/
|
|
72
|
-
export type AuthorizeHook = (context: AuthorizeHookContext) => Promise<AuthorizationHookResult> | AuthorizationHookResult;
|
|
73
|
-
/** Hook for custom permission logic beyond built-in RBAC */
|
|
74
|
-
export type AuthorizationHook = (context: AuthorizationHookContext) => Promise<AuthorizationHookResult> | AuthorizationHookResult;
|
|
75
|
-
/**
|
|
76
|
-
* Authorization hooks configuration.
|
|
77
|
-
*
|
|
78
|
-
* Hook execution order:
|
|
79
|
-
* 1. beforeRbac (can skip RBAC)
|
|
80
|
-
* 2. RBAC check (if not skipped)
|
|
81
|
-
* 3. authorize (receives RBAC decision, can override)
|
|
82
|
-
* 4. afterRbac (only if authorize allowed)
|
|
83
|
-
* 5. operationHooks (only if afterRbac allowed)
|
|
84
|
-
* 6. onDeny (if any step denied)
|
|
85
|
-
*/
|
|
86
|
-
export interface AuthorizationHooks {
|
|
87
|
-
/** Runs before RBAC. Return {allowed: false} for early rejection, or {allowed: true, skipRbac: true} to bypass RBAC */
|
|
88
|
-
beforeRbac?: AuthorizationHook;
|
|
89
|
-
/** Runs after RBAC passes. Add restrictions (team membership, quotas, etc.) */
|
|
90
|
-
afterRbac?: AuthorizationHook;
|
|
91
|
-
/** Runs after RBAC regardless of outcome. Can override RBAC decisions. */
|
|
92
|
-
authorize?: AuthorizeHook;
|
|
93
|
-
/** Runs when authorization denied. Return {allowed: true} to override denial */
|
|
94
|
-
onDeny?: AuthorizationHook;
|
|
95
|
-
/** Operation-specific hooks run after general hooks */
|
|
96
|
-
operationHooks?: Partial<Record<CmsOperation, AuthorizationHook>>;
|
|
97
|
-
}
|
|
98
|
-
export type OperationCategory = "read" | "write" | "publish" | "media" | "admin";
|
|
99
|
-
export interface RateLimitHookContext {
|
|
100
|
-
operation: CmsOperation;
|
|
101
|
-
operationCategory: OperationCategory;
|
|
102
|
-
userId?: string;
|
|
103
|
-
role?: string | null;
|
|
104
|
-
contentTypeId?: string;
|
|
105
|
-
contentTypeName?: string;
|
|
106
|
-
/** Additional metadata (IP address, session ID, API key, user tier, etc.) */
|
|
107
|
-
metadata?: Record<string, unknown>;
|
|
108
|
-
timestamp: number;
|
|
109
|
-
}
|
|
110
|
-
export interface RateLimitCheckResult {
|
|
111
|
-
allowed: boolean;
|
|
112
|
-
retryAt?: number;
|
|
113
|
-
reason?: string;
|
|
114
|
-
rateLimitInfo?: {
|
|
115
|
-
limitName?: string;
|
|
116
|
-
remaining?: number;
|
|
117
|
-
limit?: number;
|
|
118
|
-
windowMs?: number;
|
|
119
|
-
isSoftLimit?: boolean;
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
export interface RateLimitConsumeResult extends RateLimitCheckResult {
|
|
123
|
-
consumed: boolean;
|
|
124
|
-
}
|
|
125
|
-
/** Called BEFORE operation to check rate limit (should NOT modify state) */
|
|
126
|
-
export type RateLimitCheckHook = (context: RateLimitHookContext) => Promise<RateLimitCheckResult> | RateLimitCheckResult;
|
|
127
|
-
/** Called AFTER check passes to record usage */
|
|
128
|
-
export type RateLimitConsumeHook = (context: RateLimitHookContext) => Promise<RateLimitConsumeResult> | RateLimitConsumeResult;
|
|
129
|
-
/** Dynamic rate limit configuration based on user tier, operation, etc. */
|
|
130
|
-
export type RateLimitConfigHook = (context: RateLimitHookContext) => Promise<RateLimitConfigResult> | RateLimitConfigResult;
|
|
131
|
-
export interface RateLimitConfigResult {
|
|
132
|
-
enabled: boolean;
|
|
133
|
-
config?: {
|
|
134
|
-
rate: number;
|
|
135
|
-
period: number;
|
|
136
|
-
capacity?: number;
|
|
137
|
-
maxReserved?: number;
|
|
138
|
-
};
|
|
139
|
-
key?: string;
|
|
140
|
-
cost?: number;
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Rate limiting hooks configuration.
|
|
144
|
-
* Hook order: getConfig → check → consume (if check passed)
|
|
145
|
-
*/
|
|
146
|
-
export interface RateLimitHooks {
|
|
147
|
-
check?: RateLimitCheckHook;
|
|
148
|
-
consume?: RateLimitConsumeHook;
|
|
149
|
-
getConfig?: RateLimitConfigHook;
|
|
150
|
-
/** @default false */
|
|
151
|
-
skipForAdmin?: boolean;
|
|
152
|
-
excludeOperations?: CmsOperation[];
|
|
153
|
-
excludeCategories?: OperationCategory[];
|
|
154
|
-
/** Override global hooks for specific operations */
|
|
155
|
-
operationHooks?: Partial<Record<CmsOperation, {
|
|
156
|
-
check?: RateLimitCheckHook;
|
|
157
|
-
consume?: RateLimitConsumeHook;
|
|
158
|
-
getConfig?: RateLimitConfigHook;
|
|
159
|
-
}>>;
|
|
160
|
-
onRateLimited?: (context: RateLimitHookContext, result: RateLimitCheckResult) => void | Promise<void>;
|
|
161
|
-
}
|
|
162
|
-
export type GetUserRoleResult = string | null;
|
|
163
|
-
/** Maps user IDs to CMS roles ('admin', 'editor', 'author', 'viewer', or custom) */
|
|
164
|
-
export type GetUserRoleHook = (ctx: CmsHookContext, context: GetUserRoleContext) => Promise<GetUserRoleResult> | GetUserRoleResult;
|
|
165
|
-
/** Minimal CMS configuration - just provide getUserRole hook */
|
|
166
|
-
export interface CmsConfig {
|
|
167
|
-
getUserRole: GetUserRoleHook;
|
|
168
|
-
/** @default "en" */
|
|
169
|
-
defaultLocale?: LocaleCode;
|
|
170
|
-
}
|
|
171
|
-
/** CMS configuration with feature flags */
|
|
172
|
-
export interface CmsConfigWithFeatures extends CmsConfig {
|
|
173
|
-
features?: FeatureFlags;
|
|
174
|
-
supportedLocales?: LocaleCode[];
|
|
175
|
-
}
|
|
176
|
-
/** Full CMS configuration with hooks, custom roles, and advanced options */
|
|
177
|
-
export interface FullCmsConfig extends CmsConfigWithFeatures {
|
|
178
|
-
authorizationHooks?: AuthorizationHooks;
|
|
179
|
-
rateLimitHooks?: RateLimitHooks;
|
|
180
|
-
customRoles?: Array<CustomRoleInput>;
|
|
181
|
-
/** @default false */
|
|
182
|
-
skipRbac?: boolean;
|
|
183
|
-
}
|
|
184
|
-
/** Development-only config - WARNING: Never use in production! */
|
|
185
|
-
export interface CmsDevConfig {
|
|
186
|
-
/** Bypasses all authorization - only for local development */
|
|
187
|
-
permissiveMode: true;
|
|
188
|
-
/** @default "en" */
|
|
189
|
-
defaultLocale?: LocaleCode;
|
|
190
|
-
}
|
|
191
|
-
export type SimplifiedCmsConfig = CmsConfig | CmsConfigWithFeatures | FullCmsConfig | CmsDevConfig;
|
|
192
|
-
/** Full CMS component configuration. For simpler setups, use CmsConfig or CmsConfigWithFeatures. */
|
|
193
|
-
export interface ComponentConfig {
|
|
194
|
-
/** @default "en" */
|
|
195
|
-
defaultLocale?: LocaleCode;
|
|
196
|
-
/** @default ["en"] */
|
|
197
|
-
supportedLocales?: LocaleCode[];
|
|
198
|
-
/** Locale fallback chains (e.g., "es-MX": ["es-ES", "en-US"]) */
|
|
199
|
-
localeFallbackChains?: Record<LocaleCode, LocaleCode[]>;
|
|
200
|
-
/** Auto-generate fallback chains from BCP 47 hierarchy. @default true */
|
|
201
|
-
autoGenerateLocaleFallbacks?: boolean;
|
|
202
|
-
features?: FeatureFlags;
|
|
203
|
-
/** @default 50 (0 for unlimited) */
|
|
204
|
-
maxVersionsPerEntry?: number;
|
|
205
|
-
/** @default 300000 (5 minutes) */
|
|
206
|
-
lockDurationMs?: number;
|
|
207
|
-
/** @default 52428800 (50MB) */
|
|
208
|
-
maxMediaFileSize?: number;
|
|
209
|
-
getUserRole?: GetUserRoleHook;
|
|
210
|
-
authorizationHooks?: AuthorizationHooks;
|
|
211
|
-
rateLimitHooks?: RateLimitHooks;
|
|
212
|
-
/** Skip built-in RBAC (use authorizationHooks instead). @default false */
|
|
213
|
-
skipRbac?: boolean;
|
|
214
|
-
/** WARNING: Never enable in production! @default false */
|
|
215
|
-
permissiveMode?: boolean;
|
|
216
|
-
/** Validate hooks at init time instead of runtime */
|
|
217
|
-
requireHooks?: Array<"getUserRole" | "authorizationHooks" | "rateLimitHooks">;
|
|
218
|
-
customRoles?: Array<CustomRoleInput>;
|
|
219
|
-
/** Content type schema for type-safe access */
|
|
220
|
-
schema?: ContentSchemaConfig;
|
|
221
|
-
/** Custom field type definitions (extends built-in types) */
|
|
222
|
-
fieldTypes?: FieldTypeDefinition[];
|
|
223
|
-
/** Custom workflow configuration (replaces default draft/published/archived/scheduled) */
|
|
224
|
-
workflow?: WorkflowConfig;
|
|
225
|
-
/** Per-content-type workflow overrides */
|
|
226
|
-
contentTypeWorkflows?: Record<string, WorkflowConfig>;
|
|
227
|
-
}
|
|
228
|
-
export type ContentSchemaConfig = {
|
|
229
|
-
definitions: Record<string, ContentTypeDefinitionBase>;
|
|
230
|
-
getDefinition(name: string): ContentTypeDefinitionBase | undefined;
|
|
231
|
-
getContentTypeNames(): string[];
|
|
232
|
-
hasContentType(name: string): boolean;
|
|
233
|
-
};
|
|
234
|
-
export interface ContentTypeDefinitionBase {
|
|
235
|
-
readonly name: string;
|
|
236
|
-
readonly validator: unknown;
|
|
237
|
-
readonly meta: {
|
|
238
|
-
displayName: string;
|
|
239
|
-
description?: string;
|
|
240
|
-
titleField?: string;
|
|
241
|
-
slugField?: string;
|
|
242
|
-
singleton?: boolean;
|
|
243
|
-
};
|
|
244
|
-
readonly _type: "content_type_definition";
|
|
245
|
-
}
|
|
246
|
-
export interface CustomRoleInput {
|
|
247
|
-
name: string;
|
|
248
|
-
displayName: string;
|
|
249
|
-
description: string;
|
|
250
|
-
permissions: CustomPermission[];
|
|
251
|
-
isSystem?: boolean;
|
|
252
|
-
extendsRole?: string;
|
|
253
|
-
}
|
|
254
|
-
export interface CustomRoleDefinition {
|
|
255
|
-
name: string;
|
|
256
|
-
displayName: string;
|
|
257
|
-
description: string;
|
|
258
|
-
permissions: CustomPermission[];
|
|
259
|
-
isSystem: boolean;
|
|
260
|
-
extendsRole?: string;
|
|
261
|
-
}
|
|
262
|
-
export interface CustomPermission {
|
|
263
|
-
resource: "contentTypes" | "contentEntries" | "mediaItems" | "settings";
|
|
264
|
-
action: "create" | "read" | "update" | "delete" | "publish" | "unpublish" | "restore" | "manage" | "move";
|
|
265
|
-
scope?: "all" | "own";
|
|
266
|
-
contentTypes?: string[];
|
|
267
|
-
excludeContentTypes?: string[];
|
|
268
|
-
}
|
|
269
|
-
/** Configuration with all defaults applied */
|
|
270
|
-
export type ResolvedComponentConfig = Required<Omit<ComponentConfig, "getUserRole" | "authorizationHooks" | "rateLimitHooks" | "localeFallbackChains" | "customRoles" | "requireHooks" | "schema" | "fieldTypes" | "workflow" | "contentTypeWorkflows">> & {
|
|
271
|
-
getUserRole?: GetUserRoleHook;
|
|
272
|
-
authorizationHooks?: AuthorizationHooks;
|
|
273
|
-
rateLimitHooks?: RateLimitHooks;
|
|
274
|
-
localeFallbackChains: Record<LocaleCode, LocaleCode[]>;
|
|
275
|
-
customRoles: Record<string, CustomRoleDefinition>;
|
|
276
|
-
requireHooks: Array<"getUserRole" | "authorizationHooks" | "rateLimitHooks">;
|
|
277
|
-
schema?: ContentSchemaConfig;
|
|
278
|
-
fieldTypes?: FieldTypeDefinition[];
|
|
279
|
-
workflow?: WorkflowConfig;
|
|
280
|
-
contentTypeWorkflows?: Record<string, WorkflowConfig>;
|
|
281
|
-
};
|
|
282
|
-
export declare const DEFAULT_CONFIG: Omit<ResolvedComponentConfig, "getUserRole" | "authorizationHooks" | "rateLimitHooks">;
|
|
283
|
-
export type RequiredHookName = "getUserRole" | "authorizationHooks" | "rateLimitHooks";
|
|
284
|
-
/** Thrown when requireHooks validation fails at init time */
|
|
285
|
-
export declare class MissingHookError extends Error {
|
|
286
|
-
readonly hookName: RequiredHookName;
|
|
287
|
-
readonly suggestion: string;
|
|
288
|
-
readonly affectedMethods: string[];
|
|
289
|
-
constructor(hookName: RequiredHookName);
|
|
290
|
-
}
|
|
291
|
-
/** Thrown when mutation attempted without getUserRole configured (and not in permissiveMode) */
|
|
292
|
-
export declare class AuthorizationNotConfiguredError extends Error {
|
|
293
|
-
readonly operation: string;
|
|
294
|
-
readonly suggestion: string;
|
|
295
|
-
constructor(operation: string);
|
|
296
|
-
}
|
|
297
|
-
/** @throws MissingHookError if a required hook is not configured */
|
|
298
|
-
export declare function validateRequiredHooks(config?: ComponentConfig): void;
|
|
299
|
-
export declare function resolveConfig(config?: ComponentConfig): ResolvedComponentConfig;
|
|
300
|
-
export type { FieldType } from "../component/validators.js";
|
|
301
|
-
export type FieldOptions = StringifyIds<Infer<typeof schema.textFieldDefinitionValidator>["options"] | Infer<typeof schema.numberFieldDefinitionValidator>["options"] | Infer<typeof schema.booleanFieldDefinitionValidator>["options"] | Infer<typeof schema.richTextFieldDefinitionValidator>["options"] | Infer<typeof schema.mediaFieldDefinitionValidator>["options"] | Infer<typeof schema.selectFieldDefinitionValidator>["options"] | Infer<typeof schema.tagsFieldDefinitionValidator>["options"] | Infer<typeof schema.categoryFieldDefinitionValidator>["options"] | Infer<typeof schema.jsonFieldDefinitionValidator>["options"] | Infer<typeof schema.referenceFieldDefinitionValidator>["options"] | Infer<typeof schema.multiSelectFieldDefinitionValidator>["options"] | Infer<typeof schema.dateFieldDefinitionValidator>["options"] | Infer<typeof schema.datetimeFieldDefinitionValidator>["options"]>;
|
|
302
|
-
export type SortDirection = "asc" | "desc";
|
|
303
|
-
export type SystemSortField = "_creationTime" | "_id" | "firstPublishedAt" | "lastPublishedAt" | "scheduledPublishAt" | "version";
|
|
304
|
-
/** System field or custom data field (prefix with "data.") */
|
|
305
|
-
export type SortField = SystemSortField | `data.${string}` | string;
|
|
306
|
-
export interface SortOptions {
|
|
307
|
-
sortField: SortField;
|
|
308
|
-
sortDirection: SortDirection;
|
|
309
|
-
}
|
|
310
|
-
export type FilterOperator = "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "contains" | "startsWith" | "endsWith" | "in" | "notIn";
|
|
311
|
-
export interface FieldFilter {
|
|
312
|
-
field: string;
|
|
313
|
-
operator: FilterOperator;
|
|
314
|
-
value: unknown;
|
|
315
|
-
}
|
|
316
|
-
export type SingleReference = string;
|
|
317
|
-
export type MultipleReferences = string[];
|
|
318
|
-
export type ReferenceValue = SingleReference | MultipleReferences;
|
|
319
|
-
export interface ResolvedReference {
|
|
320
|
-
id: string;
|
|
321
|
-
contentTypeName: string;
|
|
322
|
-
contentTypeDisplayName: string;
|
|
323
|
-
slug: string;
|
|
324
|
-
status: ContentStatus;
|
|
325
|
-
data: Record<string, unknown>;
|
|
326
|
-
exists: boolean;
|
|
327
|
-
}
|
|
328
|
-
export interface DeepResolveOptions {
|
|
329
|
-
/** @default 1 (0=no resolve, 1=immediate refs, 2+=nested) */
|
|
330
|
-
maxDepth?: number;
|
|
331
|
-
/** @default true */
|
|
332
|
-
resolveMedia?: boolean;
|
|
333
|
-
/** @default true */
|
|
334
|
-
resolveContent?: boolean;
|
|
335
|
-
/** @default false */
|
|
336
|
-
publishedOnly?: boolean;
|
|
337
|
-
/** @default false */
|
|
338
|
-
includeDeleted?: boolean;
|
|
339
|
-
fields?: string[];
|
|
340
|
-
onlyFields?: string[];
|
|
341
|
-
excludeFields?: string[];
|
|
342
|
-
/** @default false - adds _originalId field when true */
|
|
343
|
-
preserveOriginalIds?: boolean;
|
|
344
|
-
}
|
|
345
|
-
export interface ResolvedContentEntry {
|
|
346
|
-
id: string;
|
|
347
|
-
contentTypeName: string;
|
|
348
|
-
contentTypeDisplayName: string;
|
|
349
|
-
slug: string;
|
|
350
|
-
status: ContentStatus;
|
|
351
|
-
data: Record<string, unknown>;
|
|
352
|
-
exists: boolean;
|
|
353
|
-
locale?: string;
|
|
354
|
-
version?: number;
|
|
355
|
-
_circularReferences?: string[];
|
|
356
|
-
_unresolvedReferences?: Record<string, string[]>;
|
|
357
|
-
_originalId?: string;
|
|
358
|
-
}
|
|
359
|
-
export interface BatchResolveResult {
|
|
360
|
-
resolved: ResolvedContentEntry[];
|
|
361
|
-
unresolved: string[];
|
|
362
|
-
circularReferencesDetected: number;
|
|
363
|
-
}
|
|
364
|
-
export type { FieldDefinition } from "../component/documentTypes.js";
|
|
365
|
-
export type { ContentStatus } from "../component/validators.js";
|
|
366
|
-
export type { MediaType, VariantType, VariantStatus } from "../component/validators.js";
|
|
367
|
-
export type MediaVariant = MediaVariantType;
|
|
368
|
-
export type MediaVariantWithUrl = MediaVariant & {
|
|
369
|
-
url: string | null;
|
|
370
|
-
};
|
|
371
|
-
export type { ContentType, ContentEntry, ContentVersion, MediaAsset, MediaFolder, MediaVariant as MediaVariantDoc, Taxonomy, TaxonomyTerm, } from "../component/documentTypes.js";
|
|
372
|
-
export type FieldChangeType = "added" | "removed" | "modified" | "unchanged";
|
|
373
|
-
export interface FieldChange {
|
|
374
|
-
field: string;
|
|
375
|
-
changeType: FieldChangeType;
|
|
376
|
-
oldValue?: unknown;
|
|
377
|
-
newValue?: unknown;
|
|
378
|
-
}
|
|
379
|
-
export interface VersionComparison {
|
|
380
|
-
fromVersion: ContentVersionType;
|
|
381
|
-
toVersion: ContentVersionType;
|
|
382
|
-
changes: FieldChange[];
|
|
383
|
-
slugChanged: boolean;
|
|
384
|
-
statusChanged: boolean;
|
|
385
|
-
summary: {
|
|
386
|
-
fieldsAdded: number;
|
|
387
|
-
fieldsRemoved: number;
|
|
388
|
-
fieldsModified: number;
|
|
389
|
-
totalChanges: number;
|
|
390
|
-
};
|
|
391
|
-
}
|
|
392
|
-
export interface VersionHistoryOptions {
|
|
393
|
-
entryId: string;
|
|
394
|
-
publishedOnly?: boolean;
|
|
395
|
-
paginationOpts: PaginationOpts;
|
|
396
|
-
}
|
|
397
|
-
/** Standard Convex pagination result (compatible with usePaginatedQuery) */
|
|
398
|
-
export interface PaginationResult<T> {
|
|
399
|
-
page: T[];
|
|
400
|
-
continueCursor: string | null;
|
|
401
|
-
isDone: boolean;
|
|
402
|
-
}
|
|
403
|
-
export interface PaginationOpts {
|
|
404
|
-
numItems: number;
|
|
405
|
-
/** Pass null for first page */
|
|
406
|
-
cursor: string | null;
|
|
407
|
-
}
|
|
408
|
-
type ContentQueryArgsBase = StringifyIds<Infer<typeof validators.contentQueryArgs>>;
|
|
409
|
-
/** Options for querying content entries with pagination */
|
|
410
|
-
export interface ContentQueryOptions extends Omit<ContentQueryArgsBase, 'cursor' | 'limit'> {
|
|
411
|
-
fieldFilters?: FieldFilter[];
|
|
412
|
-
sortField?: SortField;
|
|
413
|
-
sortDirection?: SortDirection;
|
|
414
|
-
paginationOpts: PaginationOpts;
|
|
415
|
-
}
|
|
416
|
-
export type MediaQueryOptions = StringifyIds<Infer<typeof validators.mediaQueryArgs>>;
|
|
417
|
-
export interface ComponentApi {
|
|
418
|
-
contentTypes: {
|
|
419
|
-
create: unknown;
|
|
420
|
-
update: unknown;
|
|
421
|
-
delete: unknown;
|
|
422
|
-
get: unknown;
|
|
423
|
-
list: unknown;
|
|
424
|
-
};
|
|
425
|
-
contentEntries: {
|
|
426
|
-
create: unknown;
|
|
427
|
-
update: unknown;
|
|
428
|
-
delete: unknown;
|
|
429
|
-
get: unknown;
|
|
430
|
-
list: unknown;
|
|
431
|
-
publish: unknown;
|
|
432
|
-
unpublish: unknown;
|
|
433
|
-
schedule: unknown;
|
|
434
|
-
};
|
|
435
|
-
versions: {
|
|
436
|
-
list: unknown;
|
|
437
|
-
get: unknown;
|
|
438
|
-
rollback: unknown;
|
|
439
|
-
};
|
|
440
|
-
mediaItems: {
|
|
441
|
-
create: unknown;
|
|
442
|
-
update: unknown;
|
|
443
|
-
delete: unknown;
|
|
444
|
-
get: unknown;
|
|
445
|
-
list: unknown;
|
|
446
|
-
move: unknown;
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a display name to a URL-safe slug.
|
|
3
|
-
*
|
|
4
|
-
* @example
|
|
5
|
-
* ```typescript
|
|
6
|
-
* toSlug("Blog Post") // "blog_post"
|
|
7
|
-
* toSlug("FAQ Page") // "faq_page"
|
|
8
|
-
* toSlug("Product Review") // "product_review"
|
|
9
|
-
* toSlug("About Us") // "about_us"
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
export declare function toSlug(displayName: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Replaces spaces with underscores in a string type.
|
|
15
|
-
* "Blog Post" → "Blog_Post"
|
|
16
|
-
*/
|
|
17
|
-
type ReplaceSpaces<S extends string> = S extends `${infer Head} ${infer Tail}` ? ReplaceSpaces<`${Head}_${Tail}`> : S;
|
|
18
|
-
/**
|
|
19
|
-
* Collapses multiple underscores into single underscores.
|
|
20
|
-
* "Blog__Post" → "Blog_Post"
|
|
21
|
-
*/
|
|
22
|
-
type CollapseUnderscores<S extends string> = S extends `${infer Head}__${infer Tail}` ? CollapseUnderscores<`${Head}_${Tail}`> : S;
|
|
23
|
-
/**
|
|
24
|
-
* Removes leading underscores.
|
|
25
|
-
* "_Blog_Post" → "Blog_Post"
|
|
26
|
-
*/
|
|
27
|
-
type TrimLeadingUnderscore<S extends string> = S extends `_${infer Rest}` ? TrimLeadingUnderscore<Rest> : S;
|
|
28
|
-
/**
|
|
29
|
-
* Removes trailing underscores.
|
|
30
|
-
* "Blog_Post_" → "Blog_Post"
|
|
31
|
-
*/
|
|
32
|
-
type TrimTrailingUnderscore<S extends string> = S extends `${infer Rest}_` ? TrimTrailingUnderscore<Rest> : S;
|
|
33
|
-
/**
|
|
34
|
-
* Type-level slug conversion.
|
|
35
|
-
* Converts a display name to its slug form at the type level.
|
|
36
|
-
*
|
|
37
|
-
* Handles common patterns:
|
|
38
|
-
* - "Blog Post" → "blog_post" (space-separated words)
|
|
39
|
-
* - "blog_post" → "blog_post" (already a slug)
|
|
40
|
-
* - "BlogPost" → "blogpost" (camelCase, simplified)
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* ```typescript
|
|
44
|
-
* type Slug1 = ToSlugType<"Blog Post">; // "blog_post"
|
|
45
|
-
* type Slug2 = ToSlugType<"Roadmap Item">; // "roadmap_item"
|
|
46
|
-
* type Slug3 = ToSlugType<"faq_page">; // "faq_page"
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
export type ToSlugType<T extends string> = Lowercase<TrimTrailingUnderscore<TrimLeadingUnderscore<CollapseUnderscores<ReplaceSpaces<T>>>>>;
|
|
50
|
-
/**
|
|
51
|
-
* Validates that a slug follows the content type naming rules.
|
|
52
|
-
*
|
|
53
|
-
* Rules:
|
|
54
|
-
* - Lowercase letters, numbers, and underscores only
|
|
55
|
-
* - Must start with a letter
|
|
56
|
-
* - 1-50 characters
|
|
57
|
-
*/
|
|
58
|
-
export declare function isValidSlug(slug: string): boolean;
|
|
59
|
-
export {};
|
|
60
|
-
//# sourceMappingURL=toSlug.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toSlug.d.ts","sourceRoot":"","sources":["../../../../../../src/client/utils/toSlug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAOlD;AAQD;;;GAGG;AACH,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GAC1E,aAAa,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,GAChC,CAAC,CAAC;AAEN;;;GAGG;AACH,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,KAAK,MAAM,IAAI,EAAE,GACjF,mBAAmB,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,GACtC,CAAC,CAAC;AAEN;;;GAGG;AACH,KAAK,qBAAqB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,IAAI,EAAE,GACrE,qBAAqB,CAAC,IAAI,CAAC,GAC3B,CAAC,CAAC;AAEN;;;GAGG;AACH,KAAK,sBAAsB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,GAAG,GACtE,sBAAsB,CAAC,IAAI,CAAC,GAC5B,CAAC,CAAC;AAEN;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,SAAS,CAClD,sBAAsB,CACpB,qBAAqB,CACnB,mBAAmB,CACjB,aAAa,CAAC,CAAC,CAAC,CACjB,CACF,CACF,CACF,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom Workflow States
|
|
3
|
-
*
|
|
4
|
-
* Allows defining custom workflow states and transitions beyond the
|
|
5
|
-
* default draft/published/archived/scheduled states.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* const editorialWorkflow = defineWorkflow({
|
|
9
|
-
* states: [
|
|
10
|
-
* { name: "draft", displayName: "Draft", color: "gray" },
|
|
11
|
-
* { name: "in_review", displayName: "In Review", color: "yellow" },
|
|
12
|
-
* { name: "approved", displayName: "Approved", color: "blue" },
|
|
13
|
-
* { name: "published", displayName: "Published", color: "green", isPublished: true },
|
|
14
|
-
* { name: "archived", displayName: "Archived", color: "red" },
|
|
15
|
-
* ],
|
|
16
|
-
* transitions: {
|
|
17
|
-
* draft: ["in_review"],
|
|
18
|
-
* in_review: ["approved", "draft"],
|
|
19
|
-
* approved: ["published", "in_review"],
|
|
20
|
-
* published: ["archived", "draft"],
|
|
21
|
-
* archived: ["draft"],
|
|
22
|
-
* },
|
|
23
|
-
* });
|
|
24
|
-
*/
|
|
25
|
-
export type WorkflowStateColor = "gray" | "yellow" | "blue" | "green" | "red" | "purple" | "orange";
|
|
26
|
-
export interface WorkflowState {
|
|
27
|
-
name: string;
|
|
28
|
-
displayName: string;
|
|
29
|
-
color: WorkflowStateColor;
|
|
30
|
-
icon?: string;
|
|
31
|
-
isPublished?: boolean;
|
|
32
|
-
description?: string;
|
|
33
|
-
}
|
|
34
|
-
export interface WorkflowConfig {
|
|
35
|
-
states: WorkflowState[];
|
|
36
|
-
transitions: Record<string, string[]>;
|
|
37
|
-
initialState?: string;
|
|
38
|
-
}
|
|
39
|
-
export declare const DEFAULT_WORKFLOW: WorkflowConfig;
|
|
40
|
-
export declare function defineWorkflow(config: WorkflowConfig): WorkflowConfig;
|
|
41
|
-
export declare function getWorkflowState(workflow: WorkflowConfig, stateName: string): WorkflowState | undefined;
|
|
42
|
-
export declare function getAvailableTransitions(workflow: WorkflowConfig, currentState: string): WorkflowState[];
|
|
43
|
-
export declare function canTransition(workflow: WorkflowConfig, from: string, to: string): boolean;
|
|
44
|
-
export declare function isPublishedState(workflow: WorkflowConfig, stateName: string): boolean;
|
|
45
|
-
export declare function getInitialState(workflow: WorkflowConfig): string;
|
|
46
|
-
export declare function getAllPublishedStates(workflow: WorkflowConfig): WorkflowState[];
|
|
47
|
-
export declare function validateWorkflowTransition(workflow: WorkflowConfig, from: string, to: string): {
|
|
48
|
-
valid: boolean;
|
|
49
|
-
error?: string;
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=workflows.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../../../src/client/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,EAAE,cAoB9B,CAAC;AAEF,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAsBrE;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,GAChB,aAAa,GAAG,SAAS,CAE3B;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,GACnB,aAAa,EAAE,CAKjB;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAEzF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAGrF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAEhE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,aAAa,EAAE,CAE/E;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAcpC"}
|