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.
Files changed (99) hide show
  1. package/admin/dist/types/admin/src/components/ui/field.d.ts +1 -1
  2. package/admin/dist/types/admin/src/lib/cmsExports.d.ts +6 -6
  3. package/admin/dist/types/admin/src/lib/cmsExports.d.ts.map +1 -1
  4. package/admin/src/lib/cmsExports.ts +8 -8
  5. package/admin-dist/assets/index-DagpgVMo.js +104 -0
  6. package/admin-dist/embed/favicon.ico +0 -0
  7. package/admin-dist/embed/index.js +30961 -0
  8. package/admin-dist/embed/index.js.map +1 -0
  9. package/admin-dist/index.html +1 -1
  10. package/package.json +12 -5
  11. package/admin/dist/types/src/client/admin/bulk.d.ts +0 -79
  12. package/admin/dist/types/src/client/admin/bulk.d.ts.map +0 -1
  13. package/admin/dist/types/src/client/admin/contentLock.d.ts +0 -118
  14. package/admin/dist/types/src/client/admin/contentLock.d.ts.map +0 -1
  15. package/admin/dist/types/src/client/admin/contentTypes.d.ts +0 -1627
  16. package/admin/dist/types/src/client/admin/contentTypes.d.ts.map +0 -1
  17. package/admin/dist/types/src/client/admin/dashboard.d.ts +0 -16
  18. package/admin/dist/types/src/client/admin/dashboard.d.ts.map +0 -1
  19. package/admin/dist/types/src/client/admin/entries.d.ts +0 -357
  20. package/admin/dist/types/src/client/admin/entries.d.ts.map +0 -1
  21. package/admin/dist/types/src/client/admin/index.d.ts +0 -7502
  22. package/admin/dist/types/src/client/admin/index.d.ts.map +0 -1
  23. package/admin/dist/types/src/client/admin/media.d.ts +0 -1038
  24. package/admin/dist/types/src/client/admin/media.d.ts.map +0 -1
  25. package/admin/dist/types/src/client/admin/settings.d.ts +0 -50
  26. package/admin/dist/types/src/client/admin/settings.d.ts.map +0 -1
  27. package/admin/dist/types/src/client/admin/taxonomies.d.ts +0 -339
  28. package/admin/dist/types/src/client/admin/taxonomies.d.ts.map +0 -1
  29. package/admin/dist/types/src/client/admin/trash.d.ts +0 -90
  30. package/admin/dist/types/src/client/admin/trash.d.ts.map +0 -1
  31. package/admin/dist/types/src/client/admin/types.d.ts +0 -594
  32. package/admin/dist/types/src/client/admin/types.d.ts.map +0 -1
  33. package/admin/dist/types/src/client/admin/users.d.ts +0 -58
  34. package/admin/dist/types/src/client/admin/users.d.ts.map +0 -1
  35. package/admin/dist/types/src/client/admin/validators.d.ts +0 -7732
  36. package/admin/dist/types/src/client/admin/validators.d.ts.map +0 -1
  37. package/admin/dist/types/src/client/admin/versions.d.ts +0 -106
  38. package/admin/dist/types/src/client/admin/versions.d.ts.map +0 -1
  39. package/admin/dist/types/src/client/adminConfig.d.ts +0 -125
  40. package/admin/dist/types/src/client/adminConfig.d.ts.map +0 -1
  41. package/admin/dist/types/src/client/config.d.ts +0 -155
  42. package/admin/dist/types/src/client/config.d.ts.map +0 -1
  43. package/admin/dist/types/src/client/field-types.d.ts +0 -55
  44. package/admin/dist/types/src/client/field-types.d.ts.map +0 -1
  45. package/admin/dist/types/src/client/fields.d.ts +0 -70
  46. package/admin/dist/types/src/client/fields.d.ts.map +0 -1
  47. package/admin/dist/types/src/client/registry.d.ts +0 -77
  48. package/admin/dist/types/src/client/registry.d.ts.map +0 -1
  49. package/admin/dist/types/src/client/schema/defineContentType.d.ts +0 -233
  50. package/admin/dist/types/src/client/schema/defineContentType.d.ts.map +0 -1
  51. package/admin/dist/types/src/client/schema/types.d.ts +0 -540
  52. package/admin/dist/types/src/client/schema/types.d.ts.map +0 -1
  53. package/admin/dist/types/src/client/types.d.ts +0 -449
  54. package/admin/dist/types/src/client/types.d.ts.map +0 -1
  55. package/admin/dist/types/src/client/utils/toSlug.d.ts +0 -60
  56. package/admin/dist/types/src/client/utils/toSlug.d.ts.map +0 -1
  57. package/admin/dist/types/src/client/workflows.d.ts +0 -51
  58. package/admin/dist/types/src/client/workflows.d.ts.map +0 -1
  59. package/admin/dist/types/src/component/_generated/component.d.ts +0 -4813
  60. package/admin/dist/types/src/component/_generated/component.d.ts.map +0 -1
  61. package/admin/dist/types/src/component/_generated/dataModel.d.ts +0 -46
  62. package/admin/dist/types/src/component/_generated/dataModel.d.ts.map +0 -1
  63. package/admin/dist/types/src/component/_generated/server.d.ts +0 -121
  64. package/admin/dist/types/src/component/_generated/server.d.ts.map +0 -1
  65. package/admin/dist/types/src/component/contentEntryMutations.d.ts +0 -551
  66. package/admin/dist/types/src/component/contentEntryMutations.d.ts.map +0 -1
  67. package/admin/dist/types/src/component/contentLock.d.ts +0 -328
  68. package/admin/dist/types/src/component/contentLock.d.ts.map +0 -1
  69. package/admin/dist/types/src/component/contentTypeMutations.d.ts +0 -1253
  70. package/admin/dist/types/src/component/contentTypeMutations.d.ts.map +0 -1
  71. package/admin/dist/types/src/component/documentTypes.d.ts +0 -186
  72. package/admin/dist/types/src/component/documentTypes.d.ts.map +0 -1
  73. package/admin/dist/types/src/component/eventEmitter.d.ts +0 -309
  74. package/admin/dist/types/src/component/eventEmitter.d.ts.map +0 -1
  75. package/admin/dist/types/src/component/lib/errors.d.ts +0 -306
  76. package/admin/dist/types/src/component/lib/errors.d.ts.map +0 -1
  77. package/admin/dist/types/src/component/lib/metadataExtractor.d.ts +0 -245
  78. package/admin/dist/types/src/component/lib/metadataExtractor.d.ts.map +0 -1
  79. package/admin/dist/types/src/component/lib/mutationAuth.d.ts +0 -95
  80. package/admin/dist/types/src/component/lib/mutationAuth.d.ts.map +0 -1
  81. package/admin/dist/types/src/component/lib/slugGenerator.d.ts +0 -71
  82. package/admin/dist/types/src/component/lib/slugGenerator.d.ts.map +0 -1
  83. package/admin/dist/types/src/component/lib/slugUniqueness.d.ts +0 -131
  84. package/admin/dist/types/src/component/lib/slugUniqueness.d.ts.map +0 -1
  85. package/admin/dist/types/src/component/lib/softDelete.d.ts +0 -18
  86. package/admin/dist/types/src/component/lib/softDelete.d.ts.map +0 -1
  87. package/admin/dist/types/src/component/localeFields.d.ts +0 -508
  88. package/admin/dist/types/src/component/localeFields.d.ts.map +0 -1
  89. package/admin/dist/types/src/component/mediaAssetMutations.d.ts +0 -282
  90. package/admin/dist/types/src/component/mediaAssetMutations.d.ts.map +0 -1
  91. package/admin/dist/types/src/component/schema.d.ts +0 -5248
  92. package/admin/dist/types/src/component/schema.d.ts.map +0 -1
  93. package/admin/dist/types/src/component/validation.d.ts +0 -407
  94. package/admin/dist/types/src/component/validation.d.ts.map +0 -1
  95. package/admin/dist/types/src/component/validators.d.ts +0 -5722
  96. package/admin/dist/types/src/component/validators.d.ts.map +0 -1
  97. package/admin/dist/types/src/react/index.d.ts +0 -493
  98. package/admin/dist/types/src/react/index.d.ts.map +0 -1
  99. package/admin-dist/assets/index-DTgANhXL.js +0 -104
@@ -1,1253 +0,0 @@
1
- /**
2
- * Content Type Mutation Functions
3
- *
4
- * Provides mutation functions for creating, updating, and managing content types.
5
- * Content types define the schema/blueprint for content entries in the CMS.
6
- */
7
- /**
8
- * Describes a potential breaking change when updating a content type.
9
- */
10
- interface BreakingChange {
11
- /** Type of breaking change detected */
12
- type: "FIELD_REMOVED" | "FIELD_TYPE_CHANGED" | "FIELD_MADE_REQUIRED" | "SELECT_OPTIONS_REMOVED" | "REFERENCE_TYPES_RESTRICTED" | "VALIDATION_TIGHTENED";
13
- /** The field name affected */
14
- fieldName: string;
15
- /** Human-readable description of the breaking change */
16
- message: string;
17
- /** Number of entries affected by this change */
18
- affectedEntriesCount: number;
19
- }
20
- /**
21
- * Mutation to create a new content type.
22
- *
23
- * Creates a content type definition with a unique name, display name, and
24
- * field definitions. The content type can then be used to create content entries.
25
- *
26
- * @param name - Unique machine-readable name (e.g., "blog_post")
27
- * @param displayName - Human-readable name (e.g., "Blog Post")
28
- * @param description - Optional description of the content type
29
- * @param fields - Array of field definitions
30
- * @param icon - Optional icon identifier for UI
31
- * @param singleton - If true, only one entry of this type can exist
32
- * @param slugField - Field name to use for slug generation (defaults to first text field)
33
- * @param titleField - Field name to use as display title (defaults to first text field)
34
- * @param sortOrder - Custom sort order for admin UI
35
- * @param createdBy - User ID who is creating this content type
36
- *
37
- * @returns The created content type document
38
- *
39
- * @throws Error if the name is not unique
40
- * @throws Error if the name format is invalid
41
- * @throws Error if field definitions are invalid
42
- *
43
- * @example
44
- * ```typescript
45
- * const blogPost = await ctx.runMutation(api.contentTypeMutations.createContentType, {
46
- * name: "blog_post",
47
- * displayName: "Blog Post",
48
- * description: "Articles for the company blog",
49
- * fields: [
50
- * { name: "title", label: "Title", type: "text", required: true },
51
- * { name: "content", label: "Content", type: "richText", required: true },
52
- * { name: "published_date", label: "Published Date", type: "date", required: false },
53
- * ],
54
- * slugField: "title",
55
- * titleField: "title",
56
- * createdBy: currentUserId,
57
- * });
58
- * ```
59
- */
60
- export declare const createContentType: import("convex/server").RegisteredMutation<"public", {
61
- description?: string | undefined;
62
- icon?: string | undefined;
63
- _auth?: {
64
- resourceOwnerId?: string | undefined;
65
- role: string | null;
66
- userId: string;
67
- } | undefined;
68
- singleton?: boolean | undefined;
69
- slugField?: string | undefined;
70
- sortOrder?: number | undefined;
71
- titleField?: string | undefined;
72
- fields: ({
73
- description?: string | undefined;
74
- options?: {
75
- pattern?: string | undefined;
76
- minLength?: number | undefined;
77
- maxLength?: number | undefined;
78
- patternMessage?: string | undefined;
79
- placeholder?: string | undefined;
80
- multiline?: boolean | undefined;
81
- } | undefined;
82
- searchable?: boolean | undefined;
83
- localized?: boolean | undefined;
84
- defaultValue?: any;
85
- group?: string | undefined;
86
- type: "text";
87
- label: string;
88
- required: boolean;
89
- name: string;
90
- } | {
91
- description?: string | undefined;
92
- options?: {
93
- min?: number | undefined;
94
- max?: number | undefined;
95
- step?: number | undefined;
96
- precision?: number | undefined;
97
- prefix?: string | undefined;
98
- suffix?: string | undefined;
99
- } | undefined;
100
- searchable?: boolean | undefined;
101
- localized?: boolean | undefined;
102
- defaultValue?: any;
103
- group?: string | undefined;
104
- type: "number";
105
- label: string;
106
- required: boolean;
107
- name: string;
108
- } | {
109
- description?: string | undefined;
110
- options?: {
111
- trueLabel?: string | undefined;
112
- falseLabel?: string | undefined;
113
- } | undefined;
114
- searchable?: boolean | undefined;
115
- localized?: boolean | undefined;
116
- defaultValue?: any;
117
- group?: string | undefined;
118
- type: "boolean";
119
- label: string;
120
- required: boolean;
121
- name: string;
122
- } | {
123
- description?: string | undefined;
124
- options?: {
125
- maxLength?: number | undefined;
126
- placeholder?: string | undefined;
127
- allowedBlocks?: string[] | undefined;
128
- allowedMarks?: string[] | undefined;
129
- } | undefined;
130
- searchable?: boolean | undefined;
131
- localized?: boolean | undefined;
132
- defaultValue?: any;
133
- group?: string | undefined;
134
- type: "richText";
135
- label: string;
136
- required: boolean;
137
- name: string;
138
- } | {
139
- description?: string | undefined;
140
- options?: {
141
- allowedMimeTypes?: string[] | undefined;
142
- maxFileSize?: number | undefined;
143
- mediaType?: "image" | "video" | "audio" | "document" | "other" | undefined;
144
- multiple?: boolean | undefined;
145
- maxItems?: number | undefined;
146
- } | undefined;
147
- searchable?: boolean | undefined;
148
- localized?: boolean | undefined;
149
- defaultValue?: any;
150
- group?: string | undefined;
151
- type: "media";
152
- label: string;
153
- required: boolean;
154
- name: string;
155
- } | {
156
- description?: string | undefined;
157
- options?: {
158
- options?: {
159
- value: string;
160
- label: string;
161
- }[] | undefined;
162
- } | undefined;
163
- searchable?: boolean | undefined;
164
- localized?: boolean | undefined;
165
- defaultValue?: any;
166
- group?: string | undefined;
167
- type: "select";
168
- label: string;
169
- required: boolean;
170
- name: string;
171
- } | {
172
- description?: string | undefined;
173
- options?: {
174
- taxonomyId?: string | undefined;
175
- taxonomyName?: string | undefined;
176
- allowCreate?: boolean | undefined;
177
- maxTags?: number | undefined;
178
- minTags?: number | undefined;
179
- } | undefined;
180
- searchable?: boolean | undefined;
181
- localized?: boolean | undefined;
182
- defaultValue?: any;
183
- group?: string | undefined;
184
- type: "tags";
185
- label: string;
186
- required: boolean;
187
- name: string;
188
- } | {
189
- description?: string | undefined;
190
- options?: {
191
- taxonomyId?: string | undefined;
192
- taxonomyName?: string | undefined;
193
- allowMultiple?: boolean | undefined;
194
- maxSelections?: number | undefined;
195
- depth?: number | undefined;
196
- } | undefined;
197
- searchable?: boolean | undefined;
198
- localized?: boolean | undefined;
199
- defaultValue?: any;
200
- group?: string | undefined;
201
- type: "category";
202
- label: string;
203
- required: boolean;
204
- name: string;
205
- } | {
206
- description?: string | undefined;
207
- options?: {
208
- schema?: any;
209
- } | undefined;
210
- searchable?: boolean | undefined;
211
- localized?: boolean | undefined;
212
- defaultValue?: any;
213
- group?: string | undefined;
214
- type: "json";
215
- label: string;
216
- required: boolean;
217
- name: string;
218
- } | {
219
- description?: string | undefined;
220
- options?: {
221
- multiple?: boolean | undefined;
222
- maxItems?: number | undefined;
223
- allowedContentTypes?: string[] | undefined;
224
- minItems?: number | undefined;
225
- } | undefined;
226
- searchable?: boolean | undefined;
227
- localized?: boolean | undefined;
228
- defaultValue?: any;
229
- group?: string | undefined;
230
- type: "reference";
231
- label: string;
232
- required: boolean;
233
- name: string;
234
- } | {
235
- description?: string | undefined;
236
- options?: {
237
- options?: {
238
- value: string;
239
- label: string;
240
- }[] | undefined;
241
- maxSelections?: number | undefined;
242
- minSelections?: number | undefined;
243
- } | undefined;
244
- searchable?: boolean | undefined;
245
- localized?: boolean | undefined;
246
- defaultValue?: any;
247
- group?: string | undefined;
248
- type: "multiSelect";
249
- label: string;
250
- required: boolean;
251
- name: string;
252
- } | {
253
- description?: string | undefined;
254
- options?: {
255
- format?: string | undefined;
256
- min?: number | undefined;
257
- max?: number | undefined;
258
- } | undefined;
259
- searchable?: boolean | undefined;
260
- localized?: boolean | undefined;
261
- defaultValue?: any;
262
- group?: string | undefined;
263
- type: "date";
264
- label: string;
265
- required: boolean;
266
- name: string;
267
- } | {
268
- description?: string | undefined;
269
- options?: {
270
- format?: string | undefined;
271
- min?: number | undefined;
272
- max?: number | undefined;
273
- timezone?: string | undefined;
274
- } | undefined;
275
- searchable?: boolean | undefined;
276
- localized?: boolean | undefined;
277
- defaultValue?: any;
278
- group?: string | undefined;
279
- type: "datetime";
280
- label: string;
281
- required: boolean;
282
- name: string;
283
- } | {
284
- description?: string | undefined;
285
- options?: {
286
- min?: number | undefined;
287
- max?: number | undefined;
288
- defaultCurrency?: string | undefined;
289
- allowedCurrencies?: string[] | undefined;
290
- } | undefined;
291
- searchable?: boolean | undefined;
292
- localized?: boolean | undefined;
293
- defaultValue?: any;
294
- group?: string | undefined;
295
- type: "money";
296
- label: string;
297
- required: boolean;
298
- name: string;
299
- } | {
300
- description?: string | undefined;
301
- options?: {
302
- maxItems?: number | undefined;
303
- minItems?: number | undefined;
304
- subFields?: any;
305
- itemLabel?: string | undefined;
306
- } | undefined;
307
- searchable?: boolean | undefined;
308
- localized?: boolean | undefined;
309
- defaultValue?: any;
310
- group?: string | undefined;
311
- type: "arrayObject";
312
- label: string;
313
- required: boolean;
314
- name: string;
315
- })[];
316
- createdBy: string;
317
- displayName: string;
318
- name: string;
319
- }, Promise<{
320
- _id: import("convex/values").GenericId<"contentTypes">;
321
- _creationTime: number;
322
- description?: string | undefined;
323
- icon?: string | undefined;
324
- updatedBy?: string | undefined;
325
- singleton?: boolean | undefined;
326
- slugField?: string | undefined;
327
- sortOrder?: number | undefined;
328
- titleField?: string | undefined;
329
- deletedAt?: number | undefined;
330
- fields: ({
331
- description?: string | undefined;
332
- options?: {
333
- pattern?: string | undefined;
334
- minLength?: number | undefined;
335
- maxLength?: number | undefined;
336
- patternMessage?: string | undefined;
337
- placeholder?: string | undefined;
338
- multiline?: boolean | undefined;
339
- } | undefined;
340
- searchable?: boolean | undefined;
341
- localized?: boolean | undefined;
342
- defaultValue?: any;
343
- group?: string | undefined;
344
- type: "text";
345
- label: string;
346
- required: boolean;
347
- name: string;
348
- } | {
349
- description?: string | undefined;
350
- options?: {
351
- min?: number | undefined;
352
- max?: number | undefined;
353
- step?: number | undefined;
354
- precision?: number | undefined;
355
- prefix?: string | undefined;
356
- suffix?: string | undefined;
357
- } | undefined;
358
- searchable?: boolean | undefined;
359
- localized?: boolean | undefined;
360
- defaultValue?: any;
361
- group?: string | undefined;
362
- type: "number";
363
- label: string;
364
- required: boolean;
365
- name: string;
366
- } | {
367
- description?: string | undefined;
368
- options?: {
369
- trueLabel?: string | undefined;
370
- falseLabel?: string | undefined;
371
- } | undefined;
372
- searchable?: boolean | undefined;
373
- localized?: boolean | undefined;
374
- defaultValue?: any;
375
- group?: string | undefined;
376
- type: "boolean";
377
- label: string;
378
- required: boolean;
379
- name: string;
380
- } | {
381
- description?: string | undefined;
382
- options?: {
383
- maxLength?: number | undefined;
384
- placeholder?: string | undefined;
385
- allowedBlocks?: string[] | undefined;
386
- allowedMarks?: string[] | undefined;
387
- } | undefined;
388
- searchable?: boolean | undefined;
389
- localized?: boolean | undefined;
390
- defaultValue?: any;
391
- group?: string | undefined;
392
- type: "richText";
393
- label: string;
394
- required: boolean;
395
- name: string;
396
- } | {
397
- description?: string | undefined;
398
- options?: {
399
- allowedMimeTypes?: string[] | undefined;
400
- maxFileSize?: number | undefined;
401
- mediaType?: "image" | "video" | "audio" | "document" | "other" | undefined;
402
- multiple?: boolean | undefined;
403
- maxItems?: number | undefined;
404
- } | undefined;
405
- searchable?: boolean | undefined;
406
- localized?: boolean | undefined;
407
- defaultValue?: any;
408
- group?: string | undefined;
409
- type: "media";
410
- label: string;
411
- required: boolean;
412
- name: string;
413
- } | {
414
- description?: string | undefined;
415
- options?: {
416
- options?: {
417
- value: string;
418
- label: string;
419
- }[] | undefined;
420
- } | undefined;
421
- searchable?: boolean | undefined;
422
- localized?: boolean | undefined;
423
- defaultValue?: any;
424
- group?: string | undefined;
425
- type: "select";
426
- label: string;
427
- required: boolean;
428
- name: string;
429
- } | {
430
- description?: string | undefined;
431
- options?: {
432
- taxonomyId?: string | undefined;
433
- taxonomyName?: string | undefined;
434
- allowCreate?: boolean | undefined;
435
- maxTags?: number | undefined;
436
- minTags?: number | undefined;
437
- } | undefined;
438
- searchable?: boolean | undefined;
439
- localized?: boolean | undefined;
440
- defaultValue?: any;
441
- group?: string | undefined;
442
- type: "tags";
443
- label: string;
444
- required: boolean;
445
- name: string;
446
- } | {
447
- description?: string | undefined;
448
- options?: {
449
- taxonomyId?: string | undefined;
450
- taxonomyName?: string | undefined;
451
- allowMultiple?: boolean | undefined;
452
- maxSelections?: number | undefined;
453
- depth?: number | undefined;
454
- } | undefined;
455
- searchable?: boolean | undefined;
456
- localized?: boolean | undefined;
457
- defaultValue?: any;
458
- group?: string | undefined;
459
- type: "category";
460
- label: string;
461
- required: boolean;
462
- name: string;
463
- } | {
464
- description?: string | undefined;
465
- options?: {
466
- schema?: any;
467
- } | undefined;
468
- searchable?: boolean | undefined;
469
- localized?: boolean | undefined;
470
- defaultValue?: any;
471
- group?: string | undefined;
472
- type: "json";
473
- label: string;
474
- required: boolean;
475
- name: string;
476
- } | {
477
- description?: string | undefined;
478
- options?: {
479
- multiple?: boolean | undefined;
480
- maxItems?: number | undefined;
481
- allowedContentTypes?: string[] | undefined;
482
- minItems?: number | undefined;
483
- } | undefined;
484
- searchable?: boolean | undefined;
485
- localized?: boolean | undefined;
486
- defaultValue?: any;
487
- group?: string | undefined;
488
- type: "reference";
489
- label: string;
490
- required: boolean;
491
- name: string;
492
- } | {
493
- description?: string | undefined;
494
- options?: {
495
- options?: {
496
- value: string;
497
- label: string;
498
- }[] | undefined;
499
- maxSelections?: number | undefined;
500
- minSelections?: number | undefined;
501
- } | undefined;
502
- searchable?: boolean | undefined;
503
- localized?: boolean | undefined;
504
- defaultValue?: any;
505
- group?: string | undefined;
506
- type: "multiSelect";
507
- label: string;
508
- required: boolean;
509
- name: string;
510
- } | {
511
- description?: string | undefined;
512
- options?: {
513
- format?: string | undefined;
514
- min?: number | undefined;
515
- max?: number | undefined;
516
- } | undefined;
517
- searchable?: boolean | undefined;
518
- localized?: boolean | undefined;
519
- defaultValue?: any;
520
- group?: string | undefined;
521
- type: "date";
522
- label: string;
523
- required: boolean;
524
- name: string;
525
- } | {
526
- description?: string | undefined;
527
- options?: {
528
- format?: string | undefined;
529
- min?: number | undefined;
530
- max?: number | undefined;
531
- timezone?: string | undefined;
532
- } | undefined;
533
- searchable?: boolean | undefined;
534
- localized?: boolean | undefined;
535
- defaultValue?: any;
536
- group?: string | undefined;
537
- type: "datetime";
538
- label: string;
539
- required: boolean;
540
- name: string;
541
- } | {
542
- description?: string | undefined;
543
- options?: {
544
- min?: number | undefined;
545
- max?: number | undefined;
546
- defaultCurrency?: string | undefined;
547
- allowedCurrencies?: string[] | undefined;
548
- } | undefined;
549
- searchable?: boolean | undefined;
550
- localized?: boolean | undefined;
551
- defaultValue?: any;
552
- group?: string | undefined;
553
- type: "money";
554
- label: string;
555
- required: boolean;
556
- name: string;
557
- } | {
558
- description?: string | undefined;
559
- options?: {
560
- maxItems?: number | undefined;
561
- minItems?: number | undefined;
562
- subFields?: any;
563
- itemLabel?: string | undefined;
564
- } | undefined;
565
- searchable?: boolean | undefined;
566
- localized?: boolean | undefined;
567
- defaultValue?: any;
568
- group?: string | undefined;
569
- type: "arrayObject";
570
- label: string;
571
- required: boolean;
572
- name: string;
573
- })[];
574
- createdBy: string;
575
- displayName: string;
576
- name: string;
577
- isActive: boolean;
578
- }>>;
579
- /**
580
- * Mutation to update an existing content type's fields and configuration.
581
- *
582
- * Includes validation to prevent breaking changes to fields with existing content.
583
- * When breaking changes are detected and `force` is not set to true, the mutation
584
- * will throw an error with details about the breaking changes.
585
- *
586
- * **Breaking Change Detection:**
587
- * - Removing fields that have data in existing entries
588
- * - Changing field types (e.g., text → number)
589
- * - Making optional fields required when entries have empty values
590
- * - Removing select/multiSelect options that are in use
591
- * - Restricting allowed reference content types
592
- * - Tightening validation rules (increased minLength, decreased maxLength)
593
- *
594
- * @param id - The content type ID to update
595
- * @param displayName - Optional new display name
596
- * @param description - Optional new description
597
- * @param fields - Optional new field definitions (replaces all existing fields)
598
- * @param icon - Optional new icon
599
- * @param singleton - Optional singleton flag
600
- * @param slugField - Optional field name for slug generation
601
- * @param titleField - Optional field name for display title
602
- * @param sortOrder - Optional new sort order
603
- * @param isActive - Optional active status
604
- * @param updatedBy - User ID making the update (for audit trail)
605
- * @param force - If true, allow breaking changes (default: false)
606
- *
607
- * @returns The updated content type, with breakingChanges if force was used
608
- *
609
- * @throws Error if the content type does not exist
610
- * @throws Error if breaking changes are detected and force is not true
611
- * @throws Error if field definitions are invalid
612
- *
613
- * @example
614
- * ```typescript
615
- * // Simple update (no breaking changes)
616
- * const updated = await ctx.runMutation(api.contentTypeMutations.updateContentType, {
617
- * id: contentTypeId,
618
- * displayName: "Updated Blog Post",
619
- * description: "New description",
620
- * updatedBy: currentUserId,
621
- * });
622
- *
623
- * // Update fields (will check for breaking changes)
624
- * const updated = await ctx.runMutation(api.contentTypeMutations.updateContentType, {
625
- * id: contentTypeId,
626
- * fields: [
627
- * { name: "title", label: "Title", type: "text", required: true },
628
- * { name: "content", label: "Content", type: "richText", required: true },
629
- * { name: "author", label: "Author", type: "text", required: false }, // New field
630
- * ],
631
- * updatedBy: currentUserId,
632
- * });
633
- *
634
- * // Force update with breaking changes
635
- * const updated = await ctx.runMutation(api.contentTypeMutations.updateContentType, {
636
- * id: contentTypeId,
637
- * fields: newFields,
638
- * force: true, // Acknowledge potential data loss
639
- * updatedBy: currentUserId,
640
- * });
641
- * ```
642
- */
643
- export declare const updateContentType: import("convex/server").RegisteredMutation<"public", {
644
- description?: string | undefined;
645
- icon?: string | undefined;
646
- fields?: ({
647
- description?: string | undefined;
648
- options?: {
649
- pattern?: string | undefined;
650
- minLength?: number | undefined;
651
- maxLength?: number | undefined;
652
- patternMessage?: string | undefined;
653
- placeholder?: string | undefined;
654
- multiline?: boolean | undefined;
655
- } | undefined;
656
- searchable?: boolean | undefined;
657
- localized?: boolean | undefined;
658
- defaultValue?: any;
659
- group?: string | undefined;
660
- type: "text";
661
- label: string;
662
- required: boolean;
663
- name: string;
664
- } | {
665
- description?: string | undefined;
666
- options?: {
667
- min?: number | undefined;
668
- max?: number | undefined;
669
- step?: number | undefined;
670
- precision?: number | undefined;
671
- prefix?: string | undefined;
672
- suffix?: string | undefined;
673
- } | undefined;
674
- searchable?: boolean | undefined;
675
- localized?: boolean | undefined;
676
- defaultValue?: any;
677
- group?: string | undefined;
678
- type: "number";
679
- label: string;
680
- required: boolean;
681
- name: string;
682
- } | {
683
- description?: string | undefined;
684
- options?: {
685
- trueLabel?: string | undefined;
686
- falseLabel?: string | undefined;
687
- } | undefined;
688
- searchable?: boolean | undefined;
689
- localized?: boolean | undefined;
690
- defaultValue?: any;
691
- group?: string | undefined;
692
- type: "boolean";
693
- label: string;
694
- required: boolean;
695
- name: string;
696
- } | {
697
- description?: string | undefined;
698
- options?: {
699
- maxLength?: number | undefined;
700
- placeholder?: string | undefined;
701
- allowedBlocks?: string[] | undefined;
702
- allowedMarks?: string[] | undefined;
703
- } | undefined;
704
- searchable?: boolean | undefined;
705
- localized?: boolean | undefined;
706
- defaultValue?: any;
707
- group?: string | undefined;
708
- type: "richText";
709
- label: string;
710
- required: boolean;
711
- name: string;
712
- } | {
713
- description?: string | undefined;
714
- options?: {
715
- allowedMimeTypes?: string[] | undefined;
716
- maxFileSize?: number | undefined;
717
- mediaType?: "image" | "video" | "audio" | "document" | "other" | undefined;
718
- multiple?: boolean | undefined;
719
- maxItems?: number | undefined;
720
- } | undefined;
721
- searchable?: boolean | undefined;
722
- localized?: boolean | undefined;
723
- defaultValue?: any;
724
- group?: string | undefined;
725
- type: "media";
726
- label: string;
727
- required: boolean;
728
- name: string;
729
- } | {
730
- description?: string | undefined;
731
- options?: {
732
- options?: {
733
- value: string;
734
- label: string;
735
- }[] | undefined;
736
- } | undefined;
737
- searchable?: boolean | undefined;
738
- localized?: boolean | undefined;
739
- defaultValue?: any;
740
- group?: string | undefined;
741
- type: "select";
742
- label: string;
743
- required: boolean;
744
- name: string;
745
- } | {
746
- description?: string | undefined;
747
- options?: {
748
- taxonomyId?: string | undefined;
749
- taxonomyName?: string | undefined;
750
- allowCreate?: boolean | undefined;
751
- maxTags?: number | undefined;
752
- minTags?: number | undefined;
753
- } | undefined;
754
- searchable?: boolean | undefined;
755
- localized?: boolean | undefined;
756
- defaultValue?: any;
757
- group?: string | undefined;
758
- type: "tags";
759
- label: string;
760
- required: boolean;
761
- name: string;
762
- } | {
763
- description?: string | undefined;
764
- options?: {
765
- taxonomyId?: string | undefined;
766
- taxonomyName?: string | undefined;
767
- allowMultiple?: boolean | undefined;
768
- maxSelections?: number | undefined;
769
- depth?: number | undefined;
770
- } | undefined;
771
- searchable?: boolean | undefined;
772
- localized?: boolean | undefined;
773
- defaultValue?: any;
774
- group?: string | undefined;
775
- type: "category";
776
- label: string;
777
- required: boolean;
778
- name: string;
779
- } | {
780
- description?: string | undefined;
781
- options?: {
782
- schema?: any;
783
- } | undefined;
784
- searchable?: boolean | undefined;
785
- localized?: boolean | undefined;
786
- defaultValue?: any;
787
- group?: string | undefined;
788
- type: "json";
789
- label: string;
790
- required: boolean;
791
- name: string;
792
- } | {
793
- description?: string | undefined;
794
- options?: {
795
- multiple?: boolean | undefined;
796
- maxItems?: number | undefined;
797
- allowedContentTypes?: string[] | undefined;
798
- minItems?: number | undefined;
799
- } | undefined;
800
- searchable?: boolean | undefined;
801
- localized?: boolean | undefined;
802
- defaultValue?: any;
803
- group?: string | undefined;
804
- type: "reference";
805
- label: string;
806
- required: boolean;
807
- name: string;
808
- } | {
809
- description?: string | undefined;
810
- options?: {
811
- options?: {
812
- value: string;
813
- label: string;
814
- }[] | undefined;
815
- maxSelections?: number | undefined;
816
- minSelections?: number | undefined;
817
- } | undefined;
818
- searchable?: boolean | undefined;
819
- localized?: boolean | undefined;
820
- defaultValue?: any;
821
- group?: string | undefined;
822
- type: "multiSelect";
823
- label: string;
824
- required: boolean;
825
- name: string;
826
- } | {
827
- description?: string | undefined;
828
- options?: {
829
- format?: string | undefined;
830
- min?: number | undefined;
831
- max?: number | undefined;
832
- } | undefined;
833
- searchable?: boolean | undefined;
834
- localized?: boolean | undefined;
835
- defaultValue?: any;
836
- group?: string | undefined;
837
- type: "date";
838
- label: string;
839
- required: boolean;
840
- name: string;
841
- } | {
842
- description?: string | undefined;
843
- options?: {
844
- format?: string | undefined;
845
- min?: number | undefined;
846
- max?: number | undefined;
847
- timezone?: string | undefined;
848
- } | undefined;
849
- searchable?: boolean | undefined;
850
- localized?: boolean | undefined;
851
- defaultValue?: any;
852
- group?: string | undefined;
853
- type: "datetime";
854
- label: string;
855
- required: boolean;
856
- name: string;
857
- } | {
858
- description?: string | undefined;
859
- options?: {
860
- min?: number | undefined;
861
- max?: number | undefined;
862
- defaultCurrency?: string | undefined;
863
- allowedCurrencies?: string[] | undefined;
864
- } | undefined;
865
- searchable?: boolean | undefined;
866
- localized?: boolean | undefined;
867
- defaultValue?: any;
868
- group?: string | undefined;
869
- type: "money";
870
- label: string;
871
- required: boolean;
872
- name: string;
873
- } | {
874
- description?: string | undefined;
875
- options?: {
876
- maxItems?: number | undefined;
877
- minItems?: number | undefined;
878
- subFields?: any;
879
- itemLabel?: string | undefined;
880
- } | undefined;
881
- searchable?: boolean | undefined;
882
- localized?: boolean | undefined;
883
- defaultValue?: any;
884
- group?: string | undefined;
885
- type: "arrayObject";
886
- label: string;
887
- required: boolean;
888
- name: string;
889
- })[] | undefined;
890
- updatedBy?: string | undefined;
891
- displayName?: string | undefined;
892
- _auth?: {
893
- resourceOwnerId?: string | undefined;
894
- role: string | null;
895
- userId: string;
896
- } | undefined;
897
- singleton?: boolean | undefined;
898
- slugField?: string | undefined;
899
- sortOrder?: number | undefined;
900
- titleField?: string | undefined;
901
- force?: boolean | undefined;
902
- isActive?: boolean | undefined;
903
- id: import("convex/values").GenericId<"contentTypes">;
904
- }, Promise<{
905
- breakingChanges: BreakingChange[] | undefined;
906
- _id: import("convex/values").GenericId<"contentTypes">;
907
- _creationTime: number;
908
- description?: string | undefined;
909
- icon?: string | undefined;
910
- updatedBy?: string | undefined;
911
- singleton?: boolean | undefined;
912
- slugField?: string | undefined;
913
- sortOrder?: number | undefined;
914
- titleField?: string | undefined;
915
- deletedAt?: number | undefined;
916
- fields: ({
917
- description?: string | undefined;
918
- options?: {
919
- pattern?: string | undefined;
920
- minLength?: number | undefined;
921
- maxLength?: number | undefined;
922
- patternMessage?: string | undefined;
923
- placeholder?: string | undefined;
924
- multiline?: boolean | undefined;
925
- } | undefined;
926
- searchable?: boolean | undefined;
927
- localized?: boolean | undefined;
928
- defaultValue?: any;
929
- group?: string | undefined;
930
- type: "text";
931
- label: string;
932
- required: boolean;
933
- name: string;
934
- } | {
935
- description?: string | undefined;
936
- options?: {
937
- min?: number | undefined;
938
- max?: number | undefined;
939
- step?: number | undefined;
940
- precision?: number | undefined;
941
- prefix?: string | undefined;
942
- suffix?: string | undefined;
943
- } | undefined;
944
- searchable?: boolean | undefined;
945
- localized?: boolean | undefined;
946
- defaultValue?: any;
947
- group?: string | undefined;
948
- type: "number";
949
- label: string;
950
- required: boolean;
951
- name: string;
952
- } | {
953
- description?: string | undefined;
954
- options?: {
955
- trueLabel?: string | undefined;
956
- falseLabel?: string | undefined;
957
- } | undefined;
958
- searchable?: boolean | undefined;
959
- localized?: boolean | undefined;
960
- defaultValue?: any;
961
- group?: string | undefined;
962
- type: "boolean";
963
- label: string;
964
- required: boolean;
965
- name: string;
966
- } | {
967
- description?: string | undefined;
968
- options?: {
969
- maxLength?: number | undefined;
970
- placeholder?: string | undefined;
971
- allowedBlocks?: string[] | undefined;
972
- allowedMarks?: string[] | undefined;
973
- } | undefined;
974
- searchable?: boolean | undefined;
975
- localized?: boolean | undefined;
976
- defaultValue?: any;
977
- group?: string | undefined;
978
- type: "richText";
979
- label: string;
980
- required: boolean;
981
- name: string;
982
- } | {
983
- description?: string | undefined;
984
- options?: {
985
- allowedMimeTypes?: string[] | undefined;
986
- maxFileSize?: number | undefined;
987
- mediaType?: "image" | "video" | "audio" | "document" | "other" | undefined;
988
- multiple?: boolean | undefined;
989
- maxItems?: number | undefined;
990
- } | undefined;
991
- searchable?: boolean | undefined;
992
- localized?: boolean | undefined;
993
- defaultValue?: any;
994
- group?: string | undefined;
995
- type: "media";
996
- label: string;
997
- required: boolean;
998
- name: string;
999
- } | {
1000
- description?: string | undefined;
1001
- options?: {
1002
- options?: {
1003
- value: string;
1004
- label: string;
1005
- }[] | undefined;
1006
- } | undefined;
1007
- searchable?: boolean | undefined;
1008
- localized?: boolean | undefined;
1009
- defaultValue?: any;
1010
- group?: string | undefined;
1011
- type: "select";
1012
- label: string;
1013
- required: boolean;
1014
- name: string;
1015
- } | {
1016
- description?: string | undefined;
1017
- options?: {
1018
- taxonomyId?: string | undefined;
1019
- taxonomyName?: string | undefined;
1020
- allowCreate?: boolean | undefined;
1021
- maxTags?: number | undefined;
1022
- minTags?: number | undefined;
1023
- } | undefined;
1024
- searchable?: boolean | undefined;
1025
- localized?: boolean | undefined;
1026
- defaultValue?: any;
1027
- group?: string | undefined;
1028
- type: "tags";
1029
- label: string;
1030
- required: boolean;
1031
- name: string;
1032
- } | {
1033
- description?: string | undefined;
1034
- options?: {
1035
- taxonomyId?: string | undefined;
1036
- taxonomyName?: string | undefined;
1037
- allowMultiple?: boolean | undefined;
1038
- maxSelections?: number | undefined;
1039
- depth?: number | undefined;
1040
- } | undefined;
1041
- searchable?: boolean | undefined;
1042
- localized?: boolean | undefined;
1043
- defaultValue?: any;
1044
- group?: string | undefined;
1045
- type: "category";
1046
- label: string;
1047
- required: boolean;
1048
- name: string;
1049
- } | {
1050
- description?: string | undefined;
1051
- options?: {
1052
- schema?: any;
1053
- } | undefined;
1054
- searchable?: boolean | undefined;
1055
- localized?: boolean | undefined;
1056
- defaultValue?: any;
1057
- group?: string | undefined;
1058
- type: "json";
1059
- label: string;
1060
- required: boolean;
1061
- name: string;
1062
- } | {
1063
- description?: string | undefined;
1064
- options?: {
1065
- multiple?: boolean | undefined;
1066
- maxItems?: number | undefined;
1067
- allowedContentTypes?: string[] | undefined;
1068
- minItems?: number | undefined;
1069
- } | undefined;
1070
- searchable?: boolean | undefined;
1071
- localized?: boolean | undefined;
1072
- defaultValue?: any;
1073
- group?: string | undefined;
1074
- type: "reference";
1075
- label: string;
1076
- required: boolean;
1077
- name: string;
1078
- } | {
1079
- description?: string | undefined;
1080
- options?: {
1081
- options?: {
1082
- value: string;
1083
- label: string;
1084
- }[] | undefined;
1085
- maxSelections?: number | undefined;
1086
- minSelections?: number | undefined;
1087
- } | undefined;
1088
- searchable?: boolean | undefined;
1089
- localized?: boolean | undefined;
1090
- defaultValue?: any;
1091
- group?: string | undefined;
1092
- type: "multiSelect";
1093
- label: string;
1094
- required: boolean;
1095
- name: string;
1096
- } | {
1097
- description?: string | undefined;
1098
- options?: {
1099
- format?: string | undefined;
1100
- min?: number | undefined;
1101
- max?: number | undefined;
1102
- } | undefined;
1103
- searchable?: boolean | undefined;
1104
- localized?: boolean | undefined;
1105
- defaultValue?: any;
1106
- group?: string | undefined;
1107
- type: "date";
1108
- label: string;
1109
- required: boolean;
1110
- name: string;
1111
- } | {
1112
- description?: string | undefined;
1113
- options?: {
1114
- format?: string | undefined;
1115
- min?: number | undefined;
1116
- max?: number | undefined;
1117
- timezone?: string | undefined;
1118
- } | undefined;
1119
- searchable?: boolean | undefined;
1120
- localized?: boolean | undefined;
1121
- defaultValue?: any;
1122
- group?: string | undefined;
1123
- type: "datetime";
1124
- label: string;
1125
- required: boolean;
1126
- name: string;
1127
- } | {
1128
- description?: string | undefined;
1129
- options?: {
1130
- min?: number | undefined;
1131
- max?: number | undefined;
1132
- defaultCurrency?: string | undefined;
1133
- allowedCurrencies?: string[] | undefined;
1134
- } | undefined;
1135
- searchable?: boolean | undefined;
1136
- localized?: boolean | undefined;
1137
- defaultValue?: any;
1138
- group?: string | undefined;
1139
- type: "money";
1140
- label: string;
1141
- required: boolean;
1142
- name: string;
1143
- } | {
1144
- description?: string | undefined;
1145
- options?: {
1146
- maxItems?: number | undefined;
1147
- minItems?: number | undefined;
1148
- subFields?: any;
1149
- itemLabel?: string | undefined;
1150
- } | undefined;
1151
- searchable?: boolean | undefined;
1152
- localized?: boolean | undefined;
1153
- defaultValue?: any;
1154
- group?: string | undefined;
1155
- type: "arrayObject";
1156
- label: string;
1157
- required: boolean;
1158
- name: string;
1159
- })[];
1160
- createdBy: string;
1161
- displayName: string;
1162
- name: string;
1163
- isActive: boolean;
1164
- }>>;
1165
- /**
1166
- * Result type for the delete content type mutation.
1167
- * Includes information about any cascade-deleted entries.
1168
- */
1169
- export declare const deleteContentTypeResult: import("convex/values").VObject<{
1170
- success: boolean;
1171
- deletedVersionsCount: number;
1172
- deletedId: import("convex/values").GenericId<"contentTypes">;
1173
- deletedEntriesCount: number;
1174
- wasHardDelete: boolean;
1175
- }, {
1176
- /** Whether the deletion was successful */
1177
- success: import("convex/values").VBoolean<boolean, "required">;
1178
- /** The ID of the deleted content type */
1179
- deletedId: import("convex/values").VId<import("convex/values").GenericId<"contentTypes">, "required">;
1180
- /** Number of content entries that were deleted (when cascade=true) */
1181
- deletedEntriesCount: import("convex/values").VFloat64<number, "required">;
1182
- /** Number of content versions that were deleted (when cascade=true and hardDelete=true) */
1183
- deletedVersionsCount: import("convex/values").VFloat64<number, "required">;
1184
- /** Whether this was a hard delete (permanent) or soft delete */
1185
- wasHardDelete: import("convex/values").VBoolean<boolean, "required">;
1186
- }, "required", "success" | "deletedVersionsCount" | "deletedId" | "deletedEntriesCount" | "wasHardDelete">;
1187
- /**
1188
- * Mutation to delete a content type.
1189
- *
1190
- * Supports two deletion strategies via the `cascade` flag:
1191
- * 1. **Cascade delete** (`cascade: true`): Deletes all content entries of this type
1192
- * before deleting the content type itself.
1193
- * 2. **Prevent if entries exist** (`cascade: false` or not specified): Fails the
1194
- * deletion if any content entries exist for this type.
1195
- *
1196
- * Also supports two deletion modes via the `hardDelete` flag:
1197
- * - **Soft delete** (default): Sets `deletedAt` timestamp, entries remain in database
1198
- * - **Hard delete** (`hardDelete: true`): Permanently removes from database
1199
- *
1200
- * @param id - The content type ID to delete
1201
- * @param cascade - If true, delete all entries of this type first. Default: false
1202
- * @param hardDelete - If true, permanently delete. Default: false (soft delete)
1203
- * @param deletedBy - User ID performing the deletion (for audit trail)
1204
- *
1205
- * @returns Object with deletion results including counts of deleted entries/versions
1206
- *
1207
- * @throws Error if content type does not exist
1208
- * @throws Error if content type is already deleted (soft deleted)
1209
- * @throws Error if cascade is false and content entries exist
1210
- *
1211
- * @example
1212
- * ```typescript
1213
- * // Soft delete - fails if entries exist
1214
- * const result = await ctx.runMutation(api.contentTypeMutations.deleteContentType, {
1215
- * id: contentTypeId,
1216
- * deletedBy: currentUserId,
1217
- * });
1218
- *
1219
- * // Cascade soft delete - deletes all entries too
1220
- * const result = await ctx.runMutation(api.contentTypeMutations.deleteContentType, {
1221
- * id: contentTypeId,
1222
- * cascade: true,
1223
- * deletedBy: currentUserId,
1224
- * });
1225
- *
1226
- * // Hard delete with cascade - permanently removes everything
1227
- * const result = await ctx.runMutation(api.contentTypeMutations.deleteContentType, {
1228
- * id: contentTypeId,
1229
- * cascade: true,
1230
- * hardDelete: true,
1231
- * deletedBy: currentUserId,
1232
- * });
1233
- * ```
1234
- */
1235
- export declare const deleteContentType: import("convex/server").RegisteredMutation<"public", {
1236
- deletedBy?: string | undefined;
1237
- hardDelete?: boolean | undefined;
1238
- _auth?: {
1239
- resourceOwnerId?: string | undefined;
1240
- role: string | null;
1241
- userId: string;
1242
- } | undefined;
1243
- cascade?: boolean | undefined;
1244
- id: import("convex/values").GenericId<"contentTypes">;
1245
- }, Promise<{
1246
- success: boolean;
1247
- deletedId: import("convex/values").GenericId<"contentTypes">;
1248
- deletedEntriesCount: number;
1249
- deletedVersionsCount: number;
1250
- wasHardDelete: boolean;
1251
- }>>;
1252
- export {};
1253
- //# sourceMappingURL=contentTypeMutations.d.ts.map