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 +0,0 @@
1
- {"version":3,"file":"contentTypeMutations.d.ts","sourceRoot":"","sources":["../../../../../src/component/contentTypeMutations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuCH;;GAEG;AACH,UAAU,cAAc;IACtB,uCAAuC;IACvC,IAAI,EACA,eAAe,GACf,oBAAoB,GACpB,qBAAqB,GACrB,wBAAwB,GACxB,4BAA4B,GAC5B,sBAAsB,CAAC;IAC3B,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAmUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqG5B,CAAC;AAgCH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiK5B,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;IAClC,0CAA0C;;IAE1C,yCAAyC;;IAEzC,sEAAsE;;IAEtE,2FAA2F;;IAE3F,gEAAgE;;0GAEhE,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;GAmH5B,CAAC"}
@@ -1,186 +0,0 @@
1
- /**
2
- * Derived TypeScript Types for CMS Documents
3
- *
4
- * This module provides TypeScript types derived from validators using Convex's `Infer<>`.
5
- * These types are the single source of truth for document shapes throughout the codebase.
6
- *
7
- * Two type variants are provided:
8
- * 1. **Internal types** (with `Id<TableName>`) - For use within Convex functions
9
- * 2. **Client types** (with `string` IDs) - For use at API boundaries where IDs are serialized
10
- *
11
- * @example
12
- * ```typescript
13
- * // Internal use (within Convex functions)
14
- * import type { ContentTypeInternal } from "./documentTypes.js";
15
- * const type: ContentTypeInternal = await ctx.db.get(id);
16
- *
17
- * // Client use (API boundary)
18
- * import type { ContentType } from "./documentTypes.js";
19
- * const type: ContentType = await cms.contentTypes.get(ctx, { id });
20
- * ```
21
- */
22
- import type { Infer } from "convex/values";
23
- import type { GenericId } from "convex/values";
24
- import * as validators from "./validators.js";
25
- /**
26
- * Recursively converts all `Id<T>` types to `string` for API boundary serialization.
27
- * This is used when passing documents from Convex functions to client code,
28
- * where Convex IDs are serialized as strings.
29
- */
30
- export type StringifyIds<T> = T extends GenericId<infer _TableName> ? string : T extends (infer U)[] ? StringifyIds<U>[] : T extends Record<string, unknown> ? {
31
- [K in keyof T]: StringifyIds<T[K]>;
32
- } : T;
33
- /**
34
- * Content type document - internal use with typed IDs.
35
- */
36
- export type ContentTypeInternal = Infer<typeof validators.contentTypeDoc>;
37
- /**
38
- * Content entry document - internal use with typed IDs.
39
- */
40
- export type ContentEntryInternal = Infer<typeof validators.contentEntryDoc>;
41
- /**
42
- * Content version document - internal use with typed IDs.
43
- */
44
- export type ContentVersionInternal = Infer<typeof validators.contentVersionDoc>;
45
- /**
46
- * Media item document (unified asset/folder) - internal use with typed IDs.
47
- */
48
- export type MediaItemInternal = Infer<typeof validators.mediaItemDoc>;
49
- /**
50
- * Media asset document - internal use with typed IDs.
51
- * Extracts only the asset variant from the MediaItem union.
52
- */
53
- export type MediaAssetInternal = Extract<MediaItemInternal, {
54
- kind: "asset";
55
- }>;
56
- /**
57
- * Media folder document - internal use with typed IDs.
58
- * Extracts only the folder variant from the MediaItem union.
59
- */
60
- export type MediaFolderInternal = Extract<MediaItemInternal, {
61
- kind: "folder";
62
- }>;
63
- /**
64
- * Media variant document - internal use with typed IDs.
65
- */
66
- export type MediaVariantInternal = Infer<typeof validators.mediaVariantDoc>;
67
- /**
68
- * Taxonomy document - internal use with typed IDs.
69
- */
70
- export type TaxonomyInternal = Infer<typeof validators.taxonomyDoc>;
71
- /**
72
- * Taxonomy term document - internal use with typed IDs.
73
- */
74
- export type TaxonomyTermInternal = Infer<typeof validators.taxonomyTermDoc>;
75
- /**
76
- * Content entry tag junction - internal use with typed IDs.
77
- */
78
- export type ContentEntryTagInternal = Infer<typeof validators.contentEntryTagDoc>;
79
- /**
80
- * CMS event document - internal use with typed IDs.
81
- */
82
- export type CmsEventInternal = Infer<typeof validators.cmsEventDoc>;
83
- /**
84
- * Trash config document - internal use with typed IDs.
85
- */
86
- export type TrashConfigInternal = Infer<typeof validators.trashConfigDoc>;
87
- /**
88
- * Webhook config document - internal use with typed IDs.
89
- */
90
- export type WebhookConfigInternal = Infer<typeof validators.webhookConfigDoc>;
91
- /**
92
- * Webhook delivery document - internal use with typed IDs.
93
- */
94
- export type WebhookDeliveryInternal = Infer<typeof validators.webhookDeliveryDoc>;
95
- /**
96
- * Content type - client-facing with string IDs.
97
- */
98
- export type ContentType = StringifyIds<ContentTypeInternal>;
99
- /**
100
- * Content entry - client-facing with string IDs.
101
- */
102
- export type ContentEntry = StringifyIds<ContentEntryInternal>;
103
- /**
104
- * Content version - client-facing with string IDs.
105
- */
106
- export type ContentVersion = StringifyIds<ContentVersionInternal>;
107
- /**
108
- * Media item (unified asset/folder) - client-facing with string IDs.
109
- */
110
- export type MediaItem = StringifyIds<MediaItemInternal>;
111
- /**
112
- * Media asset - client-facing with string IDs.
113
- * Extracts only the asset variant from the MediaItem union.
114
- */
115
- export type MediaAsset = Extract<MediaItem, {
116
- kind: "asset";
117
- }>;
118
- /**
119
- * Media folder - client-facing with string IDs.
120
- * Extracts only the folder variant from the MediaItem union.
121
- */
122
- export type MediaFolder = Extract<MediaItem, {
123
- kind: "folder";
124
- }>;
125
- /**
126
- * Media variant - client-facing with string IDs.
127
- */
128
- export type MediaVariant = StringifyIds<MediaVariantInternal>;
129
- /**
130
- * Taxonomy - client-facing with string IDs.
131
- */
132
- export type Taxonomy = StringifyIds<TaxonomyInternal>;
133
- /**
134
- * Taxonomy term - client-facing with string IDs.
135
- */
136
- export type TaxonomyTerm = StringifyIds<TaxonomyTermInternal>;
137
- /**
138
- * Content entry tag - client-facing with string IDs.
139
- */
140
- export type ContentEntryTag = StringifyIds<ContentEntryTagInternal>;
141
- /**
142
- * CMS event - client-facing with string IDs.
143
- */
144
- export type CmsEvent = StringifyIds<CmsEventInternal>;
145
- /**
146
- * Trash config - client-facing with string IDs.
147
- */
148
- export type TrashConfig = StringifyIds<TrashConfigInternal>;
149
- /**
150
- * Webhook config - client-facing with string IDs.
151
- */
152
- export type WebhookConfig = StringifyIds<WebhookConfigInternal>;
153
- /**
154
- * Webhook delivery - client-facing with string IDs.
155
- */
156
- export type WebhookDelivery = StringifyIds<WebhookDeliveryInternal>;
157
- /**
158
- * Internal field definition type (with typed IDs).
159
- */
160
- export type FieldDefinitionInternal = Infer<typeof validators.fieldDefinitionValidator>;
161
- /**
162
- * Client-facing field definition type (IDs as strings).
163
- * Used at the API boundary where Convex IDs are serialized as strings.
164
- */
165
- export type FieldDefinition = StringifyIds<FieldDefinitionInternal>;
166
- /**
167
- * Media variant with resolved URL.
168
- */
169
- export type MediaVariantWithUrl = MediaVariant & {
170
- url: string | null;
171
- };
172
- /**
173
- * Trash item with deletion metadata.
174
- */
175
- export type TrashItem = ContentEntry & {
176
- deletedDaysAgo: number;
177
- expiresAt?: number;
178
- contentTypeName?: string;
179
- };
180
- /**
181
- * Taxonomy term with children (for hierarchical display).
182
- */
183
- export type TaxonomyTermWithChildren = TaxonomyTerm & {
184
- children: TaxonomyTermWithChildren[];
185
- };
186
- //# sourceMappingURL=documentTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"documentTypes.d.ts","sourceRoot":"","sources":["../../../../../src/component/documentTypes.ts"],"names":[],"mappings":"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"}
@@ -1,309 +0,0 @@
1
- /**
2
- * Event Emitter Module
3
- *
4
- * Internal system to emit events on content changes (created, updated, published, deleted).
5
- * Events are stored in the cmsEvents table for async processing by external systems,
6
- * webhooks, audit logging, and other integrations.
7
- *
8
- * Design Philosophy:
9
- * - Events are emitted synchronously within the same transaction as mutations
10
- * - This ensures atomicity: if the mutation fails, no event is created
11
- * - Events are stored for later processing (not real-time pub/sub)
12
- * - Consumers can poll events or use Convex reactivity to process them
13
- *
14
- * Usage:
15
- * ```typescript
16
- * // In a mutation handler:
17
- * await emitEvent(ctx, {
18
- * eventType: "contentEntry.created",
19
- * resourceType: "contentEntry",
20
- * resourceId: entry._id.toString(),
21
- * action: "created",
22
- * payload: { slug: entry.slug, contentTypeName: "blog_post" },
23
- * userId: createdBy,
24
- * });
25
- * ```
26
- */
27
- import type { MutationCtx } from "./_generated/server.js";
28
- /**
29
- * Resource types that can emit events.
30
- * "custom" allows consumer apps to emit their own application-level events.
31
- */
32
- export type EventResourceType = "contentEntry" | "contentType" | "mediaAsset" | "mediaFolder" | "custom";
33
- /**
34
- * Actions that can be performed on resources.
35
- */
36
- export type EventAction = "created" | "updated" | "succeeded" | "failed" | "published" | "unpublished" | "deleted" | "restored" | "duplicated" | "scheduled";
37
- /**
38
- * Full event type combining resource and action.
39
- */
40
- export type EventType = `${EventResourceType}.${EventAction}`;
41
- /**
42
- * Payload structure for content entry events.
43
- */
44
- export interface ContentEntryEventPayload {
45
- slug: string;
46
- contentTypeName: string;
47
- status: string;
48
- version: number;
49
- locale?: string;
50
- /** For duplicate events, the source entry ID */
51
- sourceEntryId?: string;
52
- /** For scheduled events, the scheduled publish time */
53
- scheduledPublishAt?: number;
54
- /** Change description if provided */
55
- changeDescription?: string;
56
- }
57
- /**
58
- * Payload structure for content type events.
59
- */
60
- export interface ContentTypeEventPayload {
61
- name: string;
62
- displayName: string;
63
- fieldCount: number;
64
- isActive: boolean;
65
- /** For update events, list of changed field names */
66
- changedFields?: string[];
67
- }
68
- /**
69
- * Payload structure for media asset events.
70
- */
71
- export interface MediaAssetEventPayload {
72
- name: string;
73
- mimeType: string;
74
- type: string;
75
- size: number;
76
- parentId?: string;
77
- path?: string;
78
- }
79
- /**
80
- * Payload structure for media folder events.
81
- */
82
- export interface MediaFolderEventPayload {
83
- name: string;
84
- path: string;
85
- parentId?: string;
86
- }
87
- /**
88
- * Union type for all event payloads.
89
- */
90
- export type EventPayload = ContentEntryEventPayload | ContentTypeEventPayload | MediaAssetEventPayload | MediaFolderEventPayload;
91
- /**
92
- * Parameters for emitting an event.
93
- */
94
- export interface EmitEventParams {
95
- eventType: EventType;
96
- resourceType: EventResourceType;
97
- resourceId: string;
98
- action: EventAction;
99
- payload: EventPayload;
100
- userId?: string;
101
- correlationId?: string;
102
- metadata?: Record<string, unknown>;
103
- }
104
- /**
105
- * CMS Event document structure (as stored in the database).
106
- */
107
- export interface CMSEvent {
108
- _id: string;
109
- _creationTime: number;
110
- eventType: string;
111
- resourceType: EventResourceType;
112
- resourceId: string;
113
- action: EventAction;
114
- payload: EventPayload;
115
- userId?: string;
116
- processed: boolean;
117
- processedAt?: number;
118
- correlationId?: string;
119
- metadata?: Record<string, unknown>;
120
- }
121
- /**
122
- * Internal helper function to emit events within mutation handlers.
123
- *
124
- * This function inserts an event record into the cmsEvents table.
125
- * It's designed to be called from within other mutations to ensure
126
- * the event is part of the same atomic transaction.
127
- *
128
- * @param ctx - The mutation context from Convex
129
- * @param params - Event parameters
130
- * @returns The created event ID as a string
131
- */
132
- export declare function emitEvent(ctx: MutationCtx, params: EmitEventParams): Promise<string>;
133
- /**
134
- * Query to list recent events with optional filtering.
135
- *
136
- * @param resourceType - Filter by resource type
137
- * @param action - Filter by action
138
- * @param processed - Filter by processed status
139
- * @param limit - Maximum number of events to return
140
- *
141
- * @returns Array of recent events
142
- */
143
- export declare const listEvents: import("convex/server").RegisteredQuery<"public", {
144
- action?: "published" | "scheduled" | "created" | "updated" | "succeeded" | "failed" | "unpublished" | "deleted" | "restored" | "duplicated" | undefined;
145
- limit?: number | undefined;
146
- resourceType?: "custom" | "contentEntry" | "contentType" | "mediaAsset" | "mediaFolder" | undefined;
147
- cursor?: string | undefined;
148
- processed?: boolean | undefined;
149
- }, Promise<{
150
- events: {
151
- _id: import("convex/values").GenericId<"cmsEvents">;
152
- _creationTime: number;
153
- metadata?: any;
154
- userId?: string | undefined;
155
- correlationId?: string | undefined;
156
- processedAt?: number | undefined;
157
- action: "published" | "scheduled" | "created" | "updated" | "succeeded" | "failed" | "unpublished" | "deleted" | "restored" | "duplicated";
158
- eventType: string;
159
- payload: any;
160
- resourceId: string;
161
- resourceType: "custom" | "contentEntry" | "contentType" | "mediaAsset" | "mediaFolder";
162
- processed: boolean;
163
- }[];
164
- hasMore: boolean;
165
- }>>;
166
- /**
167
- * Query to get events for a specific resource.
168
- *
169
- * @param resourceType - The resource type
170
- * @param resourceId - The resource ID
171
- * @param limit - Maximum number of events to return
172
- *
173
- * @returns Array of events for the resource
174
- */
175
- export declare const getResourceEvents: import("convex/server").RegisteredQuery<"public", {
176
- limit?: number | undefined;
177
- resourceId: string;
178
- resourceType: "custom" | "contentEntry" | "contentType" | "mediaAsset" | "mediaFolder";
179
- }, Promise<{
180
- _id: import("convex/values").GenericId<"cmsEvents">;
181
- _creationTime: number;
182
- metadata?: any;
183
- userId?: string | undefined;
184
- correlationId?: string | undefined;
185
- processedAt?: number | undefined;
186
- action: "published" | "scheduled" | "created" | "updated" | "succeeded" | "failed" | "unpublished" | "deleted" | "restored" | "duplicated";
187
- eventType: string;
188
- payload: any;
189
- resourceId: string;
190
- resourceType: "custom" | "contentEntry" | "contentType" | "mediaAsset" | "mediaFolder";
191
- processed: boolean;
192
- }[]>>;
193
- /**
194
- * Query to get unprocessed events for async processing.
195
- *
196
- * This is useful for building event processors that handle events
197
- * asynchronously (e.g., sending webhooks, updating search indexes).
198
- *
199
- * @param limit - Maximum number of events to return
200
- *
201
- * @returns Array of unprocessed events
202
- */
203
- export declare const getUnprocessedEvents: import("convex/server").RegisteredQuery<"public", {
204
- limit?: number | undefined;
205
- }, Promise<{
206
- _id: import("convex/values").GenericId<"cmsEvents">;
207
- _creationTime: number;
208
- metadata?: any;
209
- userId?: string | undefined;
210
- correlationId?: string | undefined;
211
- processedAt?: number | undefined;
212
- action: "published" | "scheduled" | "created" | "updated" | "succeeded" | "failed" | "unpublished" | "deleted" | "restored" | "duplicated";
213
- eventType: string;
214
- payload: any;
215
- resourceId: string;
216
- resourceType: "custom" | "contentEntry" | "contentType" | "mediaAsset" | "mediaFolder";
217
- processed: boolean;
218
- }[]>>;
219
- /**
220
- * Mutation to mark events as processed.
221
- *
222
- * This should be called by event processors after successfully
223
- * handling an event. This enables at-least-once processing semantics.
224
- *
225
- * @param eventIds - Array of event IDs to mark as processed
226
- *
227
- * @returns Count of events marked as processed
228
- */
229
- export declare const markEventsProcessed: import("convex/server").RegisteredMutation<"public", {
230
- eventIds: import("convex/values").GenericId<"cmsEvents">[];
231
- }, Promise<{
232
- processedCount: number;
233
- }>>;
234
- /**
235
- * Internal mutation to emit an event from scheduled functions.
236
- *
237
- * This is used by internal scheduled functions that need to emit events
238
- * but don't have direct access to the emitEvent helper.
239
- */
240
- export declare const internalEmitEvent: import("convex/server").RegisteredMutation<"internal", {
241
- metadata?: any;
242
- userId?: string | undefined;
243
- correlationId?: string | undefined;
244
- action: "published" | "scheduled" | "created" | "updated" | "succeeded" | "failed" | "unpublished" | "deleted" | "restored" | "duplicated";
245
- eventType: string;
246
- payload: any;
247
- resourceId: string;
248
- resourceType: "custom" | "contentEntry" | "contentType" | "mediaAsset" | "mediaFolder";
249
- }, Promise<import("convex/values").GenericId<"cmsEvents">>>;
250
- /**
251
- * Mutation to clean up old processed events.
252
- *
253
- * Events older than the retention period are permanently deleted.
254
- * This helps prevent unbounded growth of the events table.
255
- *
256
- * @param retentionDays - Number of days to retain processed events (default: 30)
257
- *
258
- * @returns Count of events deleted
259
- */
260
- export declare const cleanupOldEvents: import("convex/server").RegisteredMutation<"public", {
261
- retentionDays?: number | undefined;
262
- }, Promise<{
263
- deletedCount: number;
264
- }>>;
265
- /**
266
- * Helper function to build a content entry event type string.
267
- */
268
- export declare function contentEntryEventType(action: EventAction): EventType;
269
- /**
270
- * Helper function to build a content type event type string.
271
- */
272
- export declare function contentTypeEventType(action: EventAction): EventType;
273
- /**
274
- * Helper function to build a media asset event type string.
275
- */
276
- export declare function mediaAssetEventType(action: EventAction): EventType;
277
- /**
278
- * Helper function to build a media folder event type string.
279
- */
280
- export declare function mediaFolderEventType(action: EventAction): EventType;
281
- /**
282
- * Public mutation for consumer apps to emit custom application-level events.
283
- *
284
- * This allows consumer apps to use the CMS event bus for their own
285
- * transactional data (e.g., order lifecycle events, user actions).
286
- * Custom events flow through the existing webhook infrastructure,
287
- * appear in the event log, and can be processed asynchronously.
288
- *
289
- * @example
290
- * ```typescript
291
- * // In consumer app mutation:
292
- * await ctx.runMutation(components.cms.events.emitCustomEvent, {
293
- * eventType: "order.created",
294
- * resourceId: orderId,
295
- * action: "created",
296
- * payload: { orderNumber, total, customerName },
297
- * });
298
- * ```
299
- */
300
- export declare const emitCustomEvent: import("convex/server").RegisteredMutation<"public", {
301
- metadata?: any;
302
- userId?: string | undefined;
303
- correlationId?: string | undefined;
304
- payload?: any;
305
- action: "published" | "scheduled" | "created" | "updated" | "succeeded" | "failed" | "unpublished" | "deleted" | "restored" | "duplicated";
306
- eventType: string;
307
- resourceId: string;
308
- }, Promise<import("convex/values").GenericId<"cmsEvents">>>;
309
- //# sourceMappingURL=eventEmitter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventEmitter.d.ts","sourceRoot":"","sources":["../../../../../src/component/eventEmitter.ts"],"names":[],"mappings":"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"}