@bernierllc/content-management-suite 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,135 +1,14 @@
1
1
  import { z } from 'zod';
2
- export { StageActionButtons, WorkflowAdminConfig, WorkflowStepper, WorkflowTimeline } from '@bernierllc/content-workflow-ui';
3
- export { TextContentType } from '@bernierllc/content-type-text';
4
- export { ImageContentType } from '@bernierllc/content-type-image';
5
- export { AudioContentTypeManager } from '@bernierllc/content-type-audio';
6
- export { VideoContentType } from '@bernierllc/content-type-video';
7
2
  export { ContentTypeRegistry } from '@bernierllc/content-type-registry';
8
3
  export { EditorialWorkflowEngine, WorkflowBuilder, WorkflowFactory, WorkflowTemplates } from '@bernierllc/content-editorial-workflow';
9
4
  export { AutosaveManager } from '@bernierllc/content-autosave-manager';
10
5
  export { ContentSoftDelete } from '@bernierllc/content-soft-delete';
6
+ export { TextContentType } from '@bernierllc/content-type-text';
7
+ export { ImageContentType } from '@bernierllc/content-type-image';
8
+ export { AudioContentTypeManager } from '@bernierllc/content-type-audio';
9
+ export { VideoContentType } from '@bernierllc/content-type-video';
11
10
 
12
11
  declare const ContentManagementConfigSchema: z.ZodObject<{
13
- server: z.ZodDefault<z.ZodObject<{
14
- port: z.ZodDefault<z.ZodNumber>;
15
- host: z.ZodDefault<z.ZodString>;
16
- cors: z.ZodDefault<z.ZodObject<{
17
- origin: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
18
- credentials: z.ZodDefault<z.ZodBoolean>;
19
- }, "strip", z.ZodTypeAny, {
20
- origin: string | string[];
21
- credentials: boolean;
22
- }, {
23
- origin?: string | string[] | undefined;
24
- credentials?: boolean | undefined;
25
- }>>;
26
- security: z.ZodDefault<z.ZodObject<{
27
- helmet: z.ZodDefault<z.ZodBoolean>;
28
- rateLimit: z.ZodDefault<z.ZodObject<{
29
- enabled: z.ZodDefault<z.ZodBoolean>;
30
- windowMs: z.ZodDefault<z.ZodNumber>;
31
- max: z.ZodDefault<z.ZodNumber>;
32
- }, "strip", z.ZodTypeAny, {
33
- enabled: boolean;
34
- windowMs: number;
35
- max: number;
36
- }, {
37
- enabled?: boolean | undefined;
38
- windowMs?: number | undefined;
39
- max?: number | undefined;
40
- }>>;
41
- }, "strip", z.ZodTypeAny, {
42
- helmet: boolean;
43
- rateLimit: {
44
- enabled: boolean;
45
- windowMs: number;
46
- max: number;
47
- };
48
- }, {
49
- helmet?: boolean | undefined;
50
- rateLimit?: {
51
- enabled?: boolean | undefined;
52
- windowMs?: number | undefined;
53
- max?: number | undefined;
54
- } | undefined;
55
- }>>;
56
- }, "strip", z.ZodTypeAny, {
57
- port: number;
58
- host: string;
59
- cors: {
60
- origin: string | string[];
61
- credentials: boolean;
62
- };
63
- security: {
64
- helmet: boolean;
65
- rateLimit: {
66
- enabled: boolean;
67
- windowMs: number;
68
- max: number;
69
- };
70
- };
71
- }, {
72
- port?: number | undefined;
73
- host?: string | undefined;
74
- cors?: {
75
- origin?: string | string[] | undefined;
76
- credentials?: boolean | undefined;
77
- } | undefined;
78
- security?: {
79
- helmet?: boolean | undefined;
80
- rateLimit?: {
81
- enabled?: boolean | undefined;
82
- windowMs?: number | undefined;
83
- max?: number | undefined;
84
- } | undefined;
85
- } | undefined;
86
- }>>;
87
- database: z.ZodDefault<z.ZodObject<{
88
- type: z.ZodDefault<z.ZodEnum<["sqlite", "postgresql", "mysql", "mongodb"]>>;
89
- url: z.ZodOptional<z.ZodString>;
90
- host: z.ZodDefault<z.ZodString>;
91
- port: z.ZodOptional<z.ZodNumber>;
92
- name: z.ZodDefault<z.ZodString>;
93
- username: z.ZodOptional<z.ZodString>;
94
- password: z.ZodOptional<z.ZodString>;
95
- ssl: z.ZodDefault<z.ZodBoolean>;
96
- pool: z.ZodDefault<z.ZodObject<{
97
- min: z.ZodDefault<z.ZodNumber>;
98
- max: z.ZodDefault<z.ZodNumber>;
99
- }, "strip", z.ZodTypeAny, {
100
- max: number;
101
- min: number;
102
- }, {
103
- max?: number | undefined;
104
- min?: number | undefined;
105
- }>>;
106
- }, "strip", z.ZodTypeAny, {
107
- host: string;
108
- type: "sqlite" | "postgresql" | "mysql" | "mongodb";
109
- name: string;
110
- ssl: boolean;
111
- pool: {
112
- max: number;
113
- min: number;
114
- };
115
- port?: number | undefined;
116
- url?: string | undefined;
117
- username?: string | undefined;
118
- password?: string | undefined;
119
- }, {
120
- port?: number | undefined;
121
- host?: string | undefined;
122
- type?: "sqlite" | "postgresql" | "mysql" | "mongodb" | undefined;
123
- url?: string | undefined;
124
- name?: string | undefined;
125
- username?: string | undefined;
126
- password?: string | undefined;
127
- ssl?: boolean | undefined;
128
- pool?: {
129
- max?: number | undefined;
130
- min?: number | undefined;
131
- } | undefined;
132
- }>>;
133
12
  content: z.ZodDefault<z.ZodObject<{
134
13
  defaultWorkflow: z.ZodDefault<z.ZodObject<{
135
14
  id: z.ZodDefault<z.ZodString>;
@@ -144,16 +23,16 @@ declare const ContentManagementConfigSchema: z.ZodObject<{
144
23
  description: z.ZodOptional<z.ZodString>;
145
24
  permissions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
146
25
  }, "strip", z.ZodTypeAny, {
147
- name: string;
148
26
  id: string;
27
+ name: string;
149
28
  order: number;
150
29
  isPublishStage: boolean;
151
30
  allowsScheduling: boolean;
152
31
  permissions: string[];
153
32
  description?: string | undefined;
154
33
  }, {
155
- name: string;
156
34
  id: string;
35
+ name: string;
157
36
  order: number;
158
37
  description?: string | undefined;
159
38
  isPublishStage?: boolean | undefined;
@@ -180,12 +59,12 @@ declare const ContentManagementConfigSchema: z.ZodObject<{
180
59
  permissions?: string[] | undefined;
181
60
  }>, "many">>;
182
61
  }, "strip", z.ZodTypeAny, {
183
- name: string;
184
62
  id: string;
63
+ name: string;
185
64
  description: string;
186
65
  stages: {
187
- name: string;
188
66
  id: string;
67
+ name: string;
189
68
  order: number;
190
69
  isPublishStage: boolean;
191
70
  allowsScheduling: boolean;
@@ -200,12 +79,12 @@ declare const ContentManagementConfigSchema: z.ZodObject<{
200
79
  description?: string | undefined;
201
80
  }[];
202
81
  }, {
203
- name?: string | undefined;
204
82
  id?: string | undefined;
83
+ name?: string | undefined;
205
84
  description?: string | undefined;
206
85
  stages?: {
207
- name: string;
208
86
  id: string;
87
+ name: string;
209
88
  order: number;
210
89
  description?: string | undefined;
211
90
  isPublishStage?: boolean | undefined;
@@ -253,59 +132,49 @@ declare const ContentManagementConfigSchema: z.ZodObject<{
253
132
  upload: z.ZodDefault<z.ZodObject<{
254
133
  maxFileSize: z.ZodDefault<z.ZodNumber>;
255
134
  allowedTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
256
- storage: z.ZodDefault<z.ZodObject<{
257
- type: z.ZodDefault<z.ZodEnum<["local", "s3", "gcs", "azure"]>>;
135
+ storage: z.ZodOptional<z.ZodDefault<z.ZodObject<{
136
+ type: z.ZodDefault<z.ZodEnum<["local", "s3"]>>;
258
137
  path: z.ZodDefault<z.ZodString>;
259
138
  bucket: z.ZodOptional<z.ZodString>;
260
139
  region: z.ZodOptional<z.ZodString>;
261
- accessKey: z.ZodOptional<z.ZodString>;
262
- secretKey: z.ZodOptional<z.ZodString>;
263
140
  }, "strip", z.ZodTypeAny, {
264
141
  path: string;
265
- type: "local" | "s3" | "gcs" | "azure";
142
+ type: "local" | "s3";
266
143
  bucket?: string | undefined;
267
144
  region?: string | undefined;
268
- accessKey?: string | undefined;
269
- secretKey?: string | undefined;
270
145
  }, {
271
146
  path?: string | undefined;
272
- type?: "local" | "s3" | "gcs" | "azure" | undefined;
147
+ type?: "local" | "s3" | undefined;
273
148
  bucket?: string | undefined;
274
149
  region?: string | undefined;
275
- accessKey?: string | undefined;
276
- secretKey?: string | undefined;
277
- }>>;
150
+ }>>>;
278
151
  }, "strip", z.ZodTypeAny, {
279
152
  maxFileSize: number;
280
153
  allowedTypes: string[];
281
- storage: {
154
+ storage?: {
282
155
  path: string;
283
- type: "local" | "s3" | "gcs" | "azure";
156
+ type: "local" | "s3";
284
157
  bucket?: string | undefined;
285
158
  region?: string | undefined;
286
- accessKey?: string | undefined;
287
- secretKey?: string | undefined;
288
- };
159
+ } | undefined;
289
160
  }, {
290
161
  maxFileSize?: number | undefined;
291
162
  allowedTypes?: string[] | undefined;
292
163
  storage?: {
293
164
  path?: string | undefined;
294
- type?: "local" | "s3" | "gcs" | "azure" | undefined;
165
+ type?: "local" | "s3" | undefined;
295
166
  bucket?: string | undefined;
296
167
  region?: string | undefined;
297
- accessKey?: string | undefined;
298
- secretKey?: string | undefined;
299
168
  } | undefined;
300
169
  }>>;
301
170
  }, "strip", z.ZodTypeAny, {
302
171
  defaultWorkflow: {
303
- name: string;
304
172
  id: string;
173
+ name: string;
305
174
  description: string;
306
175
  stages: {
307
- name: string;
308
176
  id: string;
177
+ name: string;
309
178
  order: number;
310
179
  isPublishStage: boolean;
311
180
  allowsScheduling: boolean;
@@ -335,23 +204,21 @@ declare const ContentManagementConfigSchema: z.ZodObject<{
335
204
  upload: {
336
205
  maxFileSize: number;
337
206
  allowedTypes: string[];
338
- storage: {
207
+ storage?: {
339
208
  path: string;
340
- type: "local" | "s3" | "gcs" | "azure";
209
+ type: "local" | "s3";
341
210
  bucket?: string | undefined;
342
211
  region?: string | undefined;
343
- accessKey?: string | undefined;
344
- secretKey?: string | undefined;
345
- };
212
+ } | undefined;
346
213
  };
347
214
  }, {
348
215
  defaultWorkflow?: {
349
- name?: string | undefined;
350
216
  id?: string | undefined;
217
+ name?: string | undefined;
351
218
  description?: string | undefined;
352
219
  stages?: {
353
- name: string;
354
220
  id: string;
221
+ name: string;
355
222
  order: number;
356
223
  description?: string | undefined;
357
224
  isPublishStage?: boolean | undefined;
@@ -383,343 +250,172 @@ declare const ContentManagementConfigSchema: z.ZodObject<{
383
250
  allowedTypes?: string[] | undefined;
384
251
  storage?: {
385
252
  path?: string | undefined;
386
- type?: "local" | "s3" | "gcs" | "azure" | undefined;
253
+ type?: "local" | "s3" | undefined;
387
254
  bucket?: string | undefined;
388
255
  region?: string | undefined;
389
- accessKey?: string | undefined;
390
- secretKey?: string | undefined;
391
256
  } | undefined;
392
257
  } | undefined;
393
258
  }>>;
394
- ui: z.ZodDefault<z.ZodObject<{
395
- theme: z.ZodDefault<z.ZodObject<{
396
- mode: z.ZodDefault<z.ZodEnum<["light", "dark", "auto"]>>;
397
- primaryColor: z.ZodDefault<z.ZodString>;
398
- secondaryColor: z.ZodDefault<z.ZodString>;
399
- accentColor: z.ZodDefault<z.ZodString>;
400
- }, "strip", z.ZodTypeAny, {
401
- mode: "light" | "dark" | "auto";
402
- primaryColor: string;
403
- secondaryColor: string;
404
- accentColor: string;
405
- }, {
406
- mode?: "light" | "dark" | "auto" | undefined;
407
- primaryColor?: string | undefined;
408
- secondaryColor?: string | undefined;
409
- accentColor?: string | undefined;
410
- }>>;
411
- editor: z.ZodDefault<z.ZodObject<{
412
- showToolbar: z.ZodDefault<z.ZodBoolean>;
413
- showStatusBar: z.ZodDefault<z.ZodBoolean>;
414
- showWordCount: z.ZodDefault<z.ZodBoolean>;
415
- showCharacterCount: z.ZodDefault<z.ZodBoolean>;
416
- autoSave: z.ZodDefault<z.ZodBoolean>;
417
- placeholder: z.ZodDefault<z.ZodString>;
418
- }, "strip", z.ZodTypeAny, {
419
- autoSave: boolean;
420
- showToolbar: boolean;
421
- showStatusBar: boolean;
422
- showWordCount: boolean;
423
- showCharacterCount: boolean;
424
- placeholder: string;
425
- }, {
426
- autoSave?: boolean | undefined;
427
- showToolbar?: boolean | undefined;
428
- showStatusBar?: boolean | undefined;
429
- showWordCount?: boolean | undefined;
430
- showCharacterCount?: boolean | undefined;
431
- placeholder?: string | undefined;
432
- }>>;
433
- list: z.ZodDefault<z.ZodObject<{
434
- defaultView: z.ZodDefault<z.ZodEnum<["table", "list", "grid", "kanban"]>>;
435
- pageSize: z.ZodDefault<z.ZodNumber>;
436
- showSearch: z.ZodDefault<z.ZodBoolean>;
437
- showFilters: z.ZodDefault<z.ZodBoolean>;
438
- showSorting: z.ZodDefault<z.ZodBoolean>;
439
- showPagination: z.ZodDefault<z.ZodBoolean>;
259
+ database: z.ZodDefault<z.ZodObject<{
260
+ type: z.ZodDefault<z.ZodEnum<["sqlite", "postgresql", "mysql", "mongodb"]>>;
261
+ url: z.ZodOptional<z.ZodString>;
262
+ host: z.ZodDefault<z.ZodString>;
263
+ port: z.ZodOptional<z.ZodNumber>;
264
+ name: z.ZodDefault<z.ZodString>;
265
+ username: z.ZodOptional<z.ZodString>;
266
+ password: z.ZodOptional<z.ZodString>;
267
+ ssl: z.ZodDefault<z.ZodBoolean>;
268
+ pool: z.ZodDefault<z.ZodObject<{
269
+ min: z.ZodDefault<z.ZodNumber>;
270
+ max: z.ZodDefault<z.ZodNumber>;
271
+ idleTimeoutMs: z.ZodOptional<z.ZodNumber>;
440
272
  }, "strip", z.ZodTypeAny, {
441
- defaultView: "table" | "list" | "grid" | "kanban";
442
- pageSize: number;
443
- showSearch: boolean;
444
- showFilters: boolean;
445
- showSorting: boolean;
446
- showPagination: boolean;
273
+ min: number;
274
+ max: number;
275
+ idleTimeoutMs?: number | undefined;
447
276
  }, {
448
- defaultView?: "table" | "list" | "grid" | "kanban" | undefined;
449
- pageSize?: number | undefined;
450
- showSearch?: boolean | undefined;
451
- showFilters?: boolean | undefined;
452
- showSorting?: boolean | undefined;
453
- showPagination?: boolean | undefined;
277
+ min?: number | undefined;
278
+ max?: number | undefined;
279
+ idleTimeoutMs?: number | undefined;
454
280
  }>>;
455
281
  }, "strip", z.ZodTypeAny, {
456
- theme: {
457
- mode: "light" | "dark" | "auto";
458
- primaryColor: string;
459
- secondaryColor: string;
460
- accentColor: string;
461
- };
462
- editor: {
463
- autoSave: boolean;
464
- showToolbar: boolean;
465
- showStatusBar: boolean;
466
- showWordCount: boolean;
467
- showCharacterCount: boolean;
468
- placeholder: string;
469
- };
470
- list: {
471
- defaultView: "table" | "list" | "grid" | "kanban";
472
- pageSize: number;
473
- showSearch: boolean;
474
- showFilters: boolean;
475
- showSorting: boolean;
476
- showPagination: boolean;
282
+ name: string;
283
+ type: "sqlite" | "postgresql" | "mysql" | "mongodb";
284
+ host: string;
285
+ ssl: boolean;
286
+ pool: {
287
+ min: number;
288
+ max: number;
289
+ idleTimeoutMs?: number | undefined;
477
290
  };
291
+ url?: string | undefined;
292
+ port?: number | undefined;
293
+ username?: string | undefined;
294
+ password?: string | undefined;
478
295
  }, {
479
- theme?: {
480
- mode?: "light" | "dark" | "auto" | undefined;
481
- primaryColor?: string | undefined;
482
- secondaryColor?: string | undefined;
483
- accentColor?: string | undefined;
484
- } | undefined;
485
- editor?: {
486
- autoSave?: boolean | undefined;
487
- showToolbar?: boolean | undefined;
488
- showStatusBar?: boolean | undefined;
489
- showWordCount?: boolean | undefined;
490
- showCharacterCount?: boolean | undefined;
491
- placeholder?: string | undefined;
492
- } | undefined;
493
- list?: {
494
- defaultView?: "table" | "list" | "grid" | "kanban" | undefined;
495
- pageSize?: number | undefined;
496
- showSearch?: boolean | undefined;
497
- showFilters?: boolean | undefined;
498
- showSorting?: boolean | undefined;
499
- showPagination?: boolean | undefined;
296
+ name?: string | undefined;
297
+ type?: "sqlite" | "postgresql" | "mysql" | "mongodb" | undefined;
298
+ url?: string | undefined;
299
+ host?: string | undefined;
300
+ port?: number | undefined;
301
+ username?: string | undefined;
302
+ password?: string | undefined;
303
+ ssl?: boolean | undefined;
304
+ pool?: {
305
+ min?: number | undefined;
306
+ max?: number | undefined;
307
+ idleTimeoutMs?: number | undefined;
500
308
  } | undefined;
501
309
  }>>;
502
310
  integrations: z.ZodDefault<z.ZodObject<{
503
311
  neverAdmin: z.ZodDefault<z.ZodObject<{
504
312
  enabled: z.ZodDefault<z.ZodBoolean>;
505
- url: z.ZodOptional<z.ZodString>;
506
- apiKey: z.ZodOptional<z.ZodString>;
507
- syncInterval: z.ZodDefault<z.ZodNumber>;
313
+ endpoint: z.ZodOptional<z.ZodString>;
508
314
  }, "strip", z.ZodTypeAny, {
509
315
  enabled: boolean;
510
- syncInterval: number;
511
- url?: string | undefined;
512
- apiKey?: string | undefined;
316
+ endpoint?: string | undefined;
513
317
  }, {
514
318
  enabled?: boolean | undefined;
515
- url?: string | undefined;
516
- apiKey?: string | undefined;
517
- syncInterval?: number | undefined;
319
+ endpoint?: string | undefined;
518
320
  }>>;
519
321
  neverHub: z.ZodDefault<z.ZodObject<{
520
322
  enabled: z.ZodDefault<z.ZodBoolean>;
521
- url: z.ZodOptional<z.ZodString>;
522
- apiKey: z.ZodOptional<z.ZodString>;
523
- packageDiscovery: z.ZodDefault<z.ZodBoolean>;
323
+ endpoint: z.ZodOptional<z.ZodString>;
524
324
  }, "strip", z.ZodTypeAny, {
525
325
  enabled: boolean;
526
- packageDiscovery: boolean;
527
- url?: string | undefined;
528
- apiKey?: string | undefined;
326
+ endpoint?: string | undefined;
529
327
  }, {
530
328
  enabled?: boolean | undefined;
531
- url?: string | undefined;
532
- apiKey?: string | undefined;
533
- packageDiscovery?: boolean | undefined;
329
+ endpoint?: string | undefined;
534
330
  }>>;
535
331
  analytics: z.ZodDefault<z.ZodObject<{
536
332
  enabled: z.ZodDefault<z.ZodBoolean>;
537
- provider: z.ZodOptional<z.ZodEnum<["google", "mixpanel", "amplitude", "custom"]>>;
538
- trackingId: z.ZodOptional<z.ZodString>;
539
- config: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>;
333
+ provider: z.ZodOptional<z.ZodString>;
540
334
  }, "strip", z.ZodTypeAny, {
541
335
  enabled: boolean;
542
- config: Record<string, any>;
543
- provider?: "custom" | "google" | "mixpanel" | "amplitude" | undefined;
544
- trackingId?: string | undefined;
336
+ provider?: string | undefined;
545
337
  }, {
546
338
  enabled?: boolean | undefined;
547
- provider?: "custom" | "google" | "mixpanel" | "amplitude" | undefined;
548
- trackingId?: string | undefined;
549
- config?: Record<string, any> | undefined;
339
+ provider?: string | undefined;
550
340
  }>>;
551
341
  }, "strip", z.ZodTypeAny, {
552
342
  neverAdmin: {
553
343
  enabled: boolean;
554
- syncInterval: number;
555
- url?: string | undefined;
556
- apiKey?: string | undefined;
344
+ endpoint?: string | undefined;
557
345
  };
558
346
  neverHub: {
559
347
  enabled: boolean;
560
- packageDiscovery: boolean;
561
- url?: string | undefined;
562
- apiKey?: string | undefined;
348
+ endpoint?: string | undefined;
563
349
  };
564
350
  analytics: {
565
351
  enabled: boolean;
566
- config: Record<string, any>;
567
- provider?: "custom" | "google" | "mixpanel" | "amplitude" | undefined;
568
- trackingId?: string | undefined;
352
+ provider?: string | undefined;
569
353
  };
570
354
  }, {
571
355
  neverAdmin?: {
572
356
  enabled?: boolean | undefined;
573
- url?: string | undefined;
574
- apiKey?: string | undefined;
575
- syncInterval?: number | undefined;
357
+ endpoint?: string | undefined;
576
358
  } | undefined;
577
359
  neverHub?: {
578
360
  enabled?: boolean | undefined;
579
- url?: string | undefined;
580
- apiKey?: string | undefined;
581
- packageDiscovery?: boolean | undefined;
361
+ endpoint?: string | undefined;
582
362
  } | undefined;
583
363
  analytics?: {
584
364
  enabled?: boolean | undefined;
585
- provider?: "custom" | "google" | "mixpanel" | "amplitude" | undefined;
586
- trackingId?: string | undefined;
587
- config?: Record<string, any> | undefined;
365
+ provider?: string | undefined;
588
366
  } | undefined;
589
367
  }>>;
590
368
  security: z.ZodDefault<z.ZodObject<{
591
- jwt: z.ZodDefault<z.ZodObject<{
592
- secret: z.ZodDefault<z.ZodString>;
593
- expiresIn: z.ZodDefault<z.ZodString>;
594
- issuer: z.ZodDefault<z.ZodString>;
595
- }, "strip", z.ZodTypeAny, {
596
- secret: string;
597
- expiresIn: string;
598
- issuer: string;
599
- }, {
600
- secret?: string | undefined;
601
- expiresIn?: string | undefined;
602
- issuer?: string | undefined;
603
- }>>;
604
369
  permissions: z.ZodDefault<z.ZodObject<{
605
370
  enabled: z.ZodDefault<z.ZodBoolean>;
606
371
  defaultRole: z.ZodDefault<z.ZodString>;
607
- roles: z.ZodDefault<z.ZodArray<z.ZodObject<{
608
- name: z.ZodString;
609
- permissions: z.ZodArray<z.ZodString, "many">;
610
- description: z.ZodOptional<z.ZodString>;
611
- }, "strip", z.ZodTypeAny, {
612
- name: string;
613
- permissions: string[];
614
- description?: string | undefined;
615
- }, {
616
- name: string;
617
- permissions: string[];
618
- description?: string | undefined;
619
- }>, "many">>;
620
372
  }, "strip", z.ZodTypeAny, {
621
373
  enabled: boolean;
622
374
  defaultRole: string;
623
- roles: {
624
- name: string;
625
- permissions: string[];
626
- description?: string | undefined;
627
- }[];
628
375
  }, {
629
376
  enabled?: boolean | undefined;
630
377
  defaultRole?: string | undefined;
631
- roles?: {
632
- name: string;
633
- permissions: string[];
634
- description?: string | undefined;
635
- }[] | undefined;
636
378
  }>>;
379
+ roles: z.ZodDefault<z.ZodArray<z.ZodObject<{
380
+ name: z.ZodString;
381
+ permissions: z.ZodArray<z.ZodString, "many">;
382
+ description: z.ZodOptional<z.ZodString>;
383
+ }, "strip", z.ZodTypeAny, {
384
+ name: string;
385
+ permissions: string[];
386
+ description?: string | undefined;
387
+ }, {
388
+ name: string;
389
+ permissions: string[];
390
+ description?: string | undefined;
391
+ }>, "many">>;
637
392
  }, "strip", z.ZodTypeAny, {
638
393
  permissions: {
639
394
  enabled: boolean;
640
395
  defaultRole: string;
641
- roles: {
642
- name: string;
643
- permissions: string[];
644
- description?: string | undefined;
645
- }[];
646
- };
647
- jwt: {
648
- secret: string;
649
- expiresIn: string;
650
- issuer: string;
651
396
  };
397
+ roles: {
398
+ name: string;
399
+ permissions: string[];
400
+ description?: string | undefined;
401
+ }[];
652
402
  }, {
653
403
  permissions?: {
654
404
  enabled?: boolean | undefined;
655
405
  defaultRole?: string | undefined;
656
- roles?: {
657
- name: string;
658
- permissions: string[];
659
- description?: string | undefined;
660
- }[] | undefined;
661
- } | undefined;
662
- jwt?: {
663
- secret?: string | undefined;
664
- expiresIn?: string | undefined;
665
- issuer?: string | undefined;
666
406
  } | undefined;
407
+ roles?: {
408
+ name: string;
409
+ permissions: string[];
410
+ description?: string | undefined;
411
+ }[] | undefined;
667
412
  }>>;
668
413
  logging: z.ZodDefault<z.ZodObject<{
669
414
  level: z.ZodDefault<z.ZodEnum<["error", "warn", "info", "debug"]>>;
670
- format: z.ZodDefault<z.ZodEnum<["json", "text"]>>;
671
- file: z.ZodDefault<z.ZodObject<{
672
- enabled: z.ZodDefault<z.ZodBoolean>;
673
- path: z.ZodDefault<z.ZodString>;
674
- maxSize: z.ZodDefault<z.ZodString>;
675
- maxFiles: z.ZodDefault<z.ZodNumber>;
676
- }, "strip", z.ZodTypeAny, {
677
- path: string;
678
- enabled: boolean;
679
- maxSize: string;
680
- maxFiles: number;
681
- }, {
682
- path?: string | undefined;
683
- enabled?: boolean | undefined;
684
- maxSize?: string | undefined;
685
- maxFiles?: number | undefined;
686
- }>>;
687
- console: z.ZodDefault<z.ZodObject<{
688
- enabled: z.ZodDefault<z.ZodBoolean>;
689
- colorize: z.ZodDefault<z.ZodBoolean>;
690
- }, "strip", z.ZodTypeAny, {
691
- enabled: boolean;
692
- colorize: boolean;
693
- }, {
694
- enabled?: boolean | undefined;
695
- colorize?: boolean | undefined;
696
- }>>;
697
415
  }, "strip", z.ZodTypeAny, {
698
416
  level: "error" | "warn" | "info" | "debug";
699
- format: "text" | "json";
700
- file: {
701
- path: string;
702
- enabled: boolean;
703
- maxSize: string;
704
- maxFiles: number;
705
- };
706
- console: {
707
- enabled: boolean;
708
- colorize: boolean;
709
- };
710
417
  }, {
711
418
  level?: "error" | "warn" | "info" | "debug" | undefined;
712
- format?: "text" | "json" | undefined;
713
- file?: {
714
- path?: string | undefined;
715
- enabled?: boolean | undefined;
716
- maxSize?: string | undefined;
717
- maxFiles?: number | undefined;
718
- } | undefined;
719
- console?: {
720
- enabled?: boolean | undefined;
721
- colorize?: boolean | undefined;
722
- } | undefined;
723
419
  }>>;
724
420
  performance: z.ZodDefault<z.ZodObject<{
725
421
  cache: z.ZodDefault<z.ZodObject<{
@@ -728,122 +424,35 @@ declare const ContentManagementConfigSchema: z.ZodObject<{
728
424
  maxSize: z.ZodDefault<z.ZodNumber>;
729
425
  }, "strip", z.ZodTypeAny, {
730
426
  enabled: boolean;
731
- maxSize: number;
732
427
  ttl: number;
428
+ maxSize: number;
733
429
  }, {
734
430
  enabled?: boolean | undefined;
735
- maxSize?: number | undefined;
736
431
  ttl?: number | undefined;
737
- }>>;
738
- compression: z.ZodDefault<z.ZodObject<{
739
- enabled: z.ZodDefault<z.ZodBoolean>;
740
- level: z.ZodDefault<z.ZodNumber>;
741
- }, "strip", z.ZodTypeAny, {
742
- enabled: boolean;
743
- level: number;
744
- }, {
745
- enabled?: boolean | undefined;
746
- level?: number | undefined;
747
- }>>;
748
- rateLimit: z.ZodDefault<z.ZodObject<{
749
- enabled: z.ZodDefault<z.ZodBoolean>;
750
- windowMs: z.ZodDefault<z.ZodNumber>;
751
- max: z.ZodDefault<z.ZodNumber>;
752
- }, "strip", z.ZodTypeAny, {
753
- enabled: boolean;
754
- windowMs: number;
755
- max: number;
756
- }, {
757
- enabled?: boolean | undefined;
758
- windowMs?: number | undefined;
759
- max?: number | undefined;
432
+ maxSize?: number | undefined;
760
433
  }>>;
761
434
  }, "strip", z.ZodTypeAny, {
762
- rateLimit: {
763
- enabled: boolean;
764
- windowMs: number;
765
- max: number;
766
- };
767
435
  cache: {
768
436
  enabled: boolean;
769
- maxSize: number;
770
437
  ttl: number;
771
- };
772
- compression: {
773
- enabled: boolean;
774
- level: number;
438
+ maxSize: number;
775
439
  };
776
440
  }, {
777
- rateLimit?: {
778
- enabled?: boolean | undefined;
779
- windowMs?: number | undefined;
780
- max?: number | undefined;
781
- } | undefined;
782
441
  cache?: {
783
442
  enabled?: boolean | undefined;
784
- maxSize?: number | undefined;
785
443
  ttl?: number | undefined;
786
- } | undefined;
787
- compression?: {
788
- enabled?: boolean | undefined;
789
- level?: number | undefined;
444
+ maxSize?: number | undefined;
790
445
  } | undefined;
791
446
  }>>;
792
447
  }, "strip", z.ZodTypeAny, {
793
- security: {
794
- permissions: {
795
- enabled: boolean;
796
- defaultRole: string;
797
- roles: {
798
- name: string;
799
- permissions: string[];
800
- description?: string | undefined;
801
- }[];
802
- };
803
- jwt: {
804
- secret: string;
805
- expiresIn: string;
806
- issuer: string;
807
- };
808
- };
809
- server: {
810
- port: number;
811
- host: string;
812
- cors: {
813
- origin: string | string[];
814
- credentials: boolean;
815
- };
816
- security: {
817
- helmet: boolean;
818
- rateLimit: {
819
- enabled: boolean;
820
- windowMs: number;
821
- max: number;
822
- };
823
- };
824
- };
825
- database: {
826
- host: string;
827
- type: "sqlite" | "postgresql" | "mysql" | "mongodb";
828
- name: string;
829
- ssl: boolean;
830
- pool: {
831
- max: number;
832
- min: number;
833
- };
834
- port?: number | undefined;
835
- url?: string | undefined;
836
- username?: string | undefined;
837
- password?: string | undefined;
838
- };
839
448
  content: {
840
449
  defaultWorkflow: {
841
- name: string;
842
450
  id: string;
451
+ name: string;
843
452
  description: string;
844
453
  stages: {
845
- name: string;
846
454
  id: string;
455
+ name: string;
847
456
  order: number;
848
457
  isPublishStage: boolean;
849
458
  allowsScheduling: boolean;
@@ -873,145 +482,73 @@ declare const ContentManagementConfigSchema: z.ZodObject<{
873
482
  upload: {
874
483
  maxFileSize: number;
875
484
  allowedTypes: string[];
876
- storage: {
485
+ storage?: {
877
486
  path: string;
878
- type: "local" | "s3" | "gcs" | "azure";
487
+ type: "local" | "s3";
879
488
  bucket?: string | undefined;
880
489
  region?: string | undefined;
881
- accessKey?: string | undefined;
882
- secretKey?: string | undefined;
883
- };
490
+ } | undefined;
884
491
  };
885
492
  };
886
- ui: {
887
- theme: {
888
- mode: "light" | "dark" | "auto";
889
- primaryColor: string;
890
- secondaryColor: string;
891
- accentColor: string;
892
- };
893
- editor: {
894
- autoSave: boolean;
895
- showToolbar: boolean;
896
- showStatusBar: boolean;
897
- showWordCount: boolean;
898
- showCharacterCount: boolean;
899
- placeholder: string;
900
- };
901
- list: {
902
- defaultView: "table" | "list" | "grid" | "kanban";
903
- pageSize: number;
904
- showSearch: boolean;
905
- showFilters: boolean;
906
- showSorting: boolean;
907
- showPagination: boolean;
493
+ database: {
494
+ name: string;
495
+ type: "sqlite" | "postgresql" | "mysql" | "mongodb";
496
+ host: string;
497
+ ssl: boolean;
498
+ pool: {
499
+ min: number;
500
+ max: number;
501
+ idleTimeoutMs?: number | undefined;
908
502
  };
503
+ url?: string | undefined;
504
+ port?: number | undefined;
505
+ username?: string | undefined;
506
+ password?: string | undefined;
909
507
  };
910
508
  integrations: {
911
509
  neverAdmin: {
912
510
  enabled: boolean;
913
- syncInterval: number;
914
- url?: string | undefined;
915
- apiKey?: string | undefined;
511
+ endpoint?: string | undefined;
916
512
  };
917
513
  neverHub: {
918
514
  enabled: boolean;
919
- packageDiscovery: boolean;
920
- url?: string | undefined;
921
- apiKey?: string | undefined;
515
+ endpoint?: string | undefined;
922
516
  };
923
517
  analytics: {
924
518
  enabled: boolean;
925
- config: Record<string, any>;
926
- provider?: "custom" | "google" | "mixpanel" | "amplitude" | undefined;
927
- trackingId?: string | undefined;
519
+ provider?: string | undefined;
928
520
  };
929
521
  };
930
- logging: {
931
- level: "error" | "warn" | "info" | "debug";
932
- format: "text" | "json";
933
- file: {
934
- path: string;
935
- enabled: boolean;
936
- maxSize: string;
937
- maxFiles: number;
938
- };
939
- console: {
522
+ security: {
523
+ permissions: {
940
524
  enabled: boolean;
941
- colorize: boolean;
525
+ defaultRole: string;
942
526
  };
527
+ roles: {
528
+ name: string;
529
+ permissions: string[];
530
+ description?: string | undefined;
531
+ }[];
532
+ };
533
+ logging: {
534
+ level: "error" | "warn" | "info" | "debug";
943
535
  };
944
536
  performance: {
945
- rateLimit: {
946
- enabled: boolean;
947
- windowMs: number;
948
- max: number;
949
- };
950
537
  cache: {
951
538
  enabled: boolean;
952
- maxSize: number;
953
539
  ttl: number;
954
- };
955
- compression: {
956
- enabled: boolean;
957
- level: number;
540
+ maxSize: number;
958
541
  };
959
542
  };
960
543
  }, {
961
- security?: {
962
- permissions?: {
963
- enabled?: boolean | undefined;
964
- defaultRole?: string | undefined;
965
- roles?: {
966
- name: string;
967
- permissions: string[];
968
- description?: string | undefined;
969
- }[] | undefined;
970
- } | undefined;
971
- jwt?: {
972
- secret?: string | undefined;
973
- expiresIn?: string | undefined;
974
- issuer?: string | undefined;
975
- } | undefined;
976
- } | undefined;
977
- server?: {
978
- port?: number | undefined;
979
- host?: string | undefined;
980
- cors?: {
981
- origin?: string | string[] | undefined;
982
- credentials?: boolean | undefined;
983
- } | undefined;
984
- security?: {
985
- helmet?: boolean | undefined;
986
- rateLimit?: {
987
- enabled?: boolean | undefined;
988
- windowMs?: number | undefined;
989
- max?: number | undefined;
990
- } | undefined;
991
- } | undefined;
992
- } | undefined;
993
- database?: {
994
- port?: number | undefined;
995
- host?: string | undefined;
996
- type?: "sqlite" | "postgresql" | "mysql" | "mongodb" | undefined;
997
- url?: string | undefined;
998
- name?: string | undefined;
999
- username?: string | undefined;
1000
- password?: string | undefined;
1001
- ssl?: boolean | undefined;
1002
- pool?: {
1003
- max?: number | undefined;
1004
- min?: number | undefined;
1005
- } | undefined;
1006
- } | undefined;
1007
544
  content?: {
1008
545
  defaultWorkflow?: {
1009
- name?: string | undefined;
1010
546
  id?: string | undefined;
547
+ name?: string | undefined;
1011
548
  description?: string | undefined;
1012
549
  stages?: {
1013
- name: string;
1014
550
  id: string;
551
+ name: string;
1015
552
  order: number;
1016
553
  description?: string | undefined;
1017
554
  isPublishStage?: boolean | undefined;
@@ -1043,248 +580,310 @@ declare const ContentManagementConfigSchema: z.ZodObject<{
1043
580
  allowedTypes?: string[] | undefined;
1044
581
  storage?: {
1045
582
  path?: string | undefined;
1046
- type?: "local" | "s3" | "gcs" | "azure" | undefined;
583
+ type?: "local" | "s3" | undefined;
1047
584
  bucket?: string | undefined;
1048
585
  region?: string | undefined;
1049
- accessKey?: string | undefined;
1050
- secretKey?: string | undefined;
1051
586
  } | undefined;
1052
587
  } | undefined;
1053
588
  } | undefined;
1054
- ui?: {
1055
- theme?: {
1056
- mode?: "light" | "dark" | "auto" | undefined;
1057
- primaryColor?: string | undefined;
1058
- secondaryColor?: string | undefined;
1059
- accentColor?: string | undefined;
1060
- } | undefined;
1061
- editor?: {
1062
- autoSave?: boolean | undefined;
1063
- showToolbar?: boolean | undefined;
1064
- showStatusBar?: boolean | undefined;
1065
- showWordCount?: boolean | undefined;
1066
- showCharacterCount?: boolean | undefined;
1067
- placeholder?: string | undefined;
1068
- } | undefined;
1069
- list?: {
1070
- defaultView?: "table" | "list" | "grid" | "kanban" | undefined;
1071
- pageSize?: number | undefined;
1072
- showSearch?: boolean | undefined;
1073
- showFilters?: boolean | undefined;
1074
- showSorting?: boolean | undefined;
1075
- showPagination?: boolean | undefined;
589
+ database?: {
590
+ name?: string | undefined;
591
+ type?: "sqlite" | "postgresql" | "mysql" | "mongodb" | undefined;
592
+ url?: string | undefined;
593
+ host?: string | undefined;
594
+ port?: number | undefined;
595
+ username?: string | undefined;
596
+ password?: string | undefined;
597
+ ssl?: boolean | undefined;
598
+ pool?: {
599
+ min?: number | undefined;
600
+ max?: number | undefined;
601
+ idleTimeoutMs?: number | undefined;
1076
602
  } | undefined;
1077
603
  } | undefined;
1078
604
  integrations?: {
1079
605
  neverAdmin?: {
1080
606
  enabled?: boolean | undefined;
1081
- url?: string | undefined;
1082
- apiKey?: string | undefined;
1083
- syncInterval?: number | undefined;
607
+ endpoint?: string | undefined;
1084
608
  } | undefined;
1085
609
  neverHub?: {
1086
610
  enabled?: boolean | undefined;
1087
- url?: string | undefined;
1088
- apiKey?: string | undefined;
1089
- packageDiscovery?: boolean | undefined;
611
+ endpoint?: string | undefined;
1090
612
  } | undefined;
1091
613
  analytics?: {
1092
614
  enabled?: boolean | undefined;
1093
- provider?: "custom" | "google" | "mixpanel" | "amplitude" | undefined;
1094
- trackingId?: string | undefined;
1095
- config?: Record<string, any> | undefined;
615
+ provider?: string | undefined;
1096
616
  } | undefined;
1097
617
  } | undefined;
1098
- logging?: {
1099
- level?: "error" | "warn" | "info" | "debug" | undefined;
1100
- format?: "text" | "json" | undefined;
1101
- file?: {
1102
- path?: string | undefined;
1103
- enabled?: boolean | undefined;
1104
- maxSize?: string | undefined;
1105
- maxFiles?: number | undefined;
1106
- } | undefined;
1107
- console?: {
618
+ security?: {
619
+ permissions?: {
1108
620
  enabled?: boolean | undefined;
1109
- colorize?: boolean | undefined;
621
+ defaultRole?: string | undefined;
1110
622
  } | undefined;
623
+ roles?: {
624
+ name: string;
625
+ permissions: string[];
626
+ description?: string | undefined;
627
+ }[] | undefined;
628
+ } | undefined;
629
+ logging?: {
630
+ level?: "error" | "warn" | "info" | "debug" | undefined;
1111
631
  } | undefined;
1112
632
  performance?: {
1113
- rateLimit?: {
1114
- enabled?: boolean | undefined;
1115
- windowMs?: number | undefined;
1116
- max?: number | undefined;
1117
- } | undefined;
1118
633
  cache?: {
1119
634
  enabled?: boolean | undefined;
1120
- maxSize?: number | undefined;
1121
635
  ttl?: number | undefined;
1122
- } | undefined;
1123
- compression?: {
1124
- enabled?: boolean | undefined;
1125
- level?: number | undefined;
636
+ maxSize?: number | undefined;
1126
637
  } | undefined;
1127
638
  } | undefined;
1128
639
  }>;
1129
640
  type ContentManagementConfig = z.infer<typeof ContentManagementConfigSchema>;
1130
- interface ContentManagementSuite {
1131
- configManager: any;
1132
- workflowService: any;
1133
- editorService: any;
1134
- contentTypes: Map<string, any>;
1135
- editor: any;
1136
- workflow: any;
1137
- list: any;
1138
- admin: any;
1139
- server: any;
1140
- start(): Promise<void>;
1141
- stop(): Promise<void>;
1142
- getConfig(): ContentManagementConfig;
1143
- updateConfig(config: Partial<ContentManagementConfig>): Promise<void>;
1144
- registerContentType(contentType: any): void;
1145
- unregisterContentType(contentTypeId: string): void;
1146
- getContentType(contentTypeId: string): any;
1147
- listContentTypes(): any[];
641
+
642
+ declare class ContentManagementError extends Error {
643
+ readonly code: string;
644
+ readonly details?: Record<string, unknown>;
645
+ constructor(message: string, options?: {
646
+ cause?: Error;
647
+ code?: string;
648
+ details?: Record<string, unknown>;
649
+ });
1148
650
  }
1149
- interface ContentManagementSuiteOptions {
1150
- config?: Partial<ContentManagementConfig>;
1151
- configFile?: string;
1152
- database?: any;
1153
- logger?: any;
1154
- plugins?: any[];
651
+ declare class ValidationError extends ContentManagementError {
652
+ constructor(message: string, options?: {
653
+ cause?: Error;
654
+ details?: Record<string, unknown>;
655
+ });
1155
656
  }
1156
- interface ContentManagementSuiteEvents {
1157
- 'content:created': (content: any) => void;
1158
- 'content:updated': (content: any) => void;
1159
- 'content:deleted': (content: any) => void;
1160
- 'content:published': (content: any) => void;
1161
- 'content:scheduled': (content: any, date: Date) => void;
1162
- 'workflow:transition': (content: any, from: string, to: string) => void;
1163
- 'config:updated': (config: ContentManagementConfig) => void;
1164
- 'error': (error: Error) => void;
657
+ declare class NotFoundError extends ContentManagementError {
658
+ constructor(message: string, options?: {
659
+ cause?: Error;
660
+ details?: Record<string, unknown>;
661
+ });
1165
662
  }
1166
- interface ContentManagementSuiteAPI {
1167
- createContent(type: string, data: any): Promise<any>;
1168
- getContent(id: string): Promise<any>;
1169
- updateContent(id: string, data: any): Promise<any>;
1170
- deleteContent(id: string, soft?: boolean): Promise<void>;
1171
- listContent(filters?: any): Promise<any[]>;
1172
- searchContent(query: string, options?: any): Promise<any[]>;
1173
- getWorkflow(id: string): Promise<any>;
1174
- createWorkflow(data: any): Promise<any>;
1175
- updateWorkflow(id: string, data: any): Promise<any>;
1176
- deleteWorkflow(id: string): Promise<void>;
1177
- listWorkflows(): Promise<any[]>;
1178
- getContentType(id: string): Promise<any>;
1179
- createContentType(data: any): Promise<any>;
1180
- updateContentType(id: string, data: any): Promise<any>;
1181
- deleteContentType(id: string): Promise<void>;
1182
- listContentTypes(): Promise<any[]>;
1183
- getConfig(): Promise<ContentManagementConfig>;
1184
- updateConfig(config: Partial<ContentManagementConfig>): Promise<void>;
1185
- createUser(data: any): Promise<any>;
1186
- getUser(id: string): Promise<any>;
1187
- updateUser(id: string, data: any): Promise<any>;
1188
- deleteUser(id: string): Promise<void>;
1189
- listUsers(): Promise<any[]>;
1190
- checkPermission(userId: string, permission: string): Promise<boolean>;
1191
- grantPermission(userId: string, permission: string): Promise<void>;
1192
- revokePermission(userId: string, permission: string): Promise<void>;
663
+ declare class UnauthorizedError extends ContentManagementError {
664
+ constructor(message: string, options?: {
665
+ cause?: Error;
666
+ details?: Record<string, unknown>;
667
+ });
1193
668
  }
1194
- interface ContentManagementSuitePlugin {
1195
- name: string;
1196
- version: string;
1197
- description: string;
1198
- dependencies?: string[];
1199
- install(suite: ContentManagementSuite): Promise<void>;
1200
- uninstall(suite: ContentManagementSuite): Promise<void>;
1201
- enable(suite: ContentManagementSuite): Promise<void>;
1202
- disable(suite: ContentManagementSuite): Promise<void>;
669
+ declare class ForbiddenError extends ContentManagementError {
670
+ constructor(message: string, options?: {
671
+ cause?: Error;
672
+ details?: Record<string, unknown>;
673
+ });
1203
674
  }
1204
- interface ContentManagementSuiteMiddleware {
675
+ declare class ConflictError extends ContentManagementError {
676
+ constructor(message: string, options?: {
677
+ cause?: Error;
678
+ details?: Record<string, unknown>;
679
+ });
680
+ }
681
+ declare class InternalError extends ContentManagementError {
682
+ constructor(message: string, options?: {
683
+ cause?: Error;
684
+ details?: Record<string, unknown>;
685
+ });
686
+ }
687
+
688
+ interface ContentItem {
689
+ id: string;
690
+ type: string;
691
+ data: Record<string, unknown>;
692
+ status?: string;
693
+ createdAt: string;
694
+ updatedAt?: string;
695
+ publishedAt?: string;
696
+ scheduledFor?: Date;
697
+ }
698
+ interface CreateContentInput {
699
+ type: string;
700
+ data: Record<string, unknown>;
701
+ }
702
+ interface UpdateContentInput {
703
+ data: Record<string, unknown>;
704
+ }
705
+ interface ContentFilters {
706
+ type?: string;
707
+ status?: string;
708
+ page?: number;
709
+ limit?: number;
710
+ }
711
+ interface SearchOptions {
712
+ type?: string;
713
+ status?: string;
714
+ page?: number;
715
+ limit?: number;
716
+ }
717
+ interface PaginatedResult<T> {
718
+ items: T[];
719
+ total: number;
720
+ page?: number;
721
+ limit?: number;
722
+ }
723
+ interface ContentTypeInfo {
724
+ id: string;
725
+ contentType: unknown;
726
+ }
727
+ interface Workflow {
728
+ id: string;
1205
729
  name: string;
1206
- handler: (req: any, res: any, next: any) => void;
1207
- order?: number;
730
+ description?: string;
731
+ stages?: WorkflowStage[];
732
+ transitions?: WorkflowTransition[];
1208
733
  }
1209
- interface ContentManagementSuiteHook {
734
+ interface WorkflowStage {
735
+ id: string;
1210
736
  name: string;
1211
- handler: (...args: any[]) => Promise<any> | any;
1212
- priority?: number;
737
+ order: number;
738
+ isPublishStage?: boolean;
739
+ allowsScheduling?: boolean;
740
+ description?: string;
741
+ permissions?: string[];
1213
742
  }
1214
- interface ContentManagementSuiteValidation {
1215
- validateConfig(config: any): boolean;
1216
- validateContent(content: any, type: string): boolean;
1217
- validateWorkflow(workflow: any): boolean;
1218
- validateUser(user: any): boolean;
743
+ interface WorkflowTransition {
744
+ id: string;
745
+ from: string;
746
+ to: string;
747
+ description?: string;
748
+ permissions?: string[];
1219
749
  }
1220
- interface ContentManagementSuiteStorage {
1221
- saveContent(content: any): Promise<void>;
1222
- loadContent(id: string): Promise<any>;
1223
- deleteContent(id: string): Promise<void>;
1224
- listContent(filters?: any): Promise<any[]>;
1225
- searchContent(query: string, options?: any): Promise<any[]>;
1226
- saveWorkflow(workflow: any): Promise<void>;
1227
- loadWorkflow(id: string): Promise<any>;
1228
- deleteWorkflow(id: string): Promise<void>;
1229
- listWorkflows(): Promise<any[]>;
1230
- saveConfig(config: ContentManagementConfig): Promise<void>;
1231
- loadConfig(): Promise<ContentManagementConfig>;
1232
- saveUser(user: any): Promise<void>;
1233
- loadUser(id: string): Promise<any>;
1234
- deleteUser(id: string): Promise<void>;
1235
- listUsers(): Promise<any[]>;
750
+ interface CreateWorkflowInput {
751
+ name: string;
752
+ description?: string;
753
+ stages?: WorkflowStage[];
754
+ transitions?: WorkflowTransition[];
1236
755
  }
1237
- interface ContentManagementSuiteCache {
1238
- get(key: string): Promise<any>;
1239
- set(key: string, value: any, ttl?: number): Promise<void>;
1240
- delete(key: string): Promise<void>;
1241
- clear(): Promise<void>;
1242
- has(key: string): Promise<boolean>;
756
+ interface UpdateWorkflowInput {
757
+ name?: string;
758
+ description?: string;
759
+ stages?: WorkflowStage[];
760
+ transitions?: WorkflowTransition[];
1243
761
  }
1244
- interface ContentManagementSuiteLogger {
1245
- error(message: string, meta?: any): void;
1246
- warn(message: string, meta?: any): void;
1247
- info(message: string, meta?: any): void;
1248
- debug(message: string, meta?: any): void;
762
+ interface User {
763
+ id: string;
764
+ name: string;
765
+ email?: string;
766
+ role?: string;
767
+ permissions?: string[];
768
+ createdAt?: string;
769
+ updatedAt?: string;
1249
770
  }
1250
- interface ContentManagementSuiteMetrics {
1251
- increment(name: string, value?: number): void;
1252
- decrement(name: string, value?: number): void;
1253
- gauge(name: string, value: number): void;
1254
- histogram(name: string, value: number): void;
1255
- counter(name: string, value?: number): void;
771
+ interface CreateUserInput {
772
+ name: string;
773
+ email?: string;
774
+ role?: string;
1256
775
  }
1257
- interface ContentManagementSuiteHealthCheck {
776
+ interface UpdateUserInput {
777
+ name?: string;
778
+ email?: string;
779
+ role?: string;
780
+ }
781
+ interface SuitePlugin {
1258
782
  name: string;
1259
- check(): Promise<boolean>;
1260
- timeout?: number;
1261
- interval?: number;
783
+ version: string;
784
+ setup(suite: ContentManagementSuite): Promise<void>;
785
+ teardown?(suite: ContentManagementSuite): Promise<void>;
786
+ }
787
+ interface ContentManagementLogger {
788
+ error(message: string, ...args: unknown[]): void;
789
+ warn(message: string, ...args: unknown[]): void;
790
+ info(message: string, ...args: unknown[]): void;
791
+ debug(message: string, ...args: unknown[]): void;
792
+ }
793
+ interface ContentManagementSuiteOptions {
794
+ config?: Partial<ContentManagementConfig>;
795
+ logger?: ContentManagementLogger;
796
+ plugins?: SuitePlugin[];
1262
797
  }
1263
- declare class ContentManagementSuiteError extends Error {
1264
- code: string;
1265
- statusCode: number;
1266
- details?: any;
1267
- constructor(message: string, code: string, statusCode?: number, details?: any);
798
+ interface ContentNamespace {
799
+ list(filters?: ContentFilters): Promise<PaginatedResult<ContentItem>>;
800
+ get(id: string): Promise<ContentItem>;
801
+ create(input: CreateContentInput): Promise<ContentItem>;
802
+ update(id: string, input: UpdateContentInput): Promise<ContentItem>;
803
+ delete(id: string, options?: {
804
+ soft?: boolean;
805
+ }): Promise<void>;
806
+ publish(id: string): Promise<ContentItem>;
807
+ unpublish(id: string): Promise<ContentItem>;
808
+ schedule(id: string, date: Date): Promise<ContentItem>;
809
+ search(query: string, options?: SearchOptions): Promise<PaginatedResult<ContentItem>>;
1268
810
  }
1269
- declare class ContentManagementSuiteValidationError extends ContentManagementSuiteError {
1270
- constructor(message: string, details?: any);
811
+ interface ContentTypesNamespace {
812
+ list(): ContentTypeInfo[];
813
+ get(id: string): ContentTypeInfo;
814
+ register(contentType: {
815
+ id?: string;
816
+ name?: string;
817
+ }): void;
818
+ unregister(id: string): void;
1271
819
  }
1272
- declare class ContentManagementSuiteNotFoundError extends ContentManagementSuiteError {
1273
- constructor(message: string, details?: any);
820
+ interface WorkflowsNamespace {
821
+ list(): Promise<Workflow[]>;
822
+ get(id: string): Promise<Workflow>;
823
+ create(input: CreateWorkflowInput): Promise<Workflow>;
824
+ update(id: string, input: UpdateWorkflowInput): Promise<Workflow>;
825
+ delete(id: string): Promise<void>;
1274
826
  }
1275
- declare class ContentManagementSuiteUnauthorizedError extends ContentManagementSuiteError {
1276
- constructor(message: string, details?: any);
827
+ interface UsersNamespace {
828
+ list(): Promise<PaginatedResult<User>>;
829
+ get(id: string): Promise<User>;
830
+ create(input: CreateUserInput): Promise<User>;
831
+ update(id: string, input: UpdateUserInput): Promise<User>;
832
+ delete(id: string): Promise<void>;
1277
833
  }
1278
- declare class ContentManagementSuiteForbiddenError extends ContentManagementSuiteError {
1279
- constructor(message: string, details?: any);
834
+ interface PermissionsNamespace {
835
+ check(userId: string, permission: string): Promise<boolean>;
836
+ grant(userId: string, permission: string): Promise<void>;
837
+ revoke(userId: string, permission: string): Promise<void>;
1280
838
  }
1281
- declare class ContentManagementSuiteConflictError extends ContentManagementSuiteError {
1282
- constructor(message: string, details?: any);
839
+ interface ConfigNamespace {
840
+ get(): ContentManagementConfig;
841
+ update(partial: Partial<ContentManagementConfig>): ContentManagementConfig;
1283
842
  }
1284
- declare class ContentManagementSuiteInternalError extends ContentManagementSuiteError {
1285
- constructor(message: string, details?: any);
843
+ interface PluginsNamespace {
844
+ register(plugin: SuitePlugin): Promise<void>;
845
+ unregister(name: string): Promise<void>;
846
+ }
847
+ interface SuiteEventMap {
848
+ 'content:created': ContentItem;
849
+ 'content:updated': ContentItem;
850
+ 'content:deleted': {
851
+ id: string;
852
+ };
853
+ 'content:published': ContentItem;
854
+ 'content:unpublished': ContentItem;
855
+ 'content:scheduled': {
856
+ item: ContentItem;
857
+ date: Date;
858
+ };
859
+ 'user:created': User;
860
+ 'user:updated': User;
861
+ 'user:deleted': {
862
+ id: string;
863
+ };
864
+ 'workflow:transition': WorkflowTransition;
865
+ 'config:updated': ContentManagementConfig;
866
+ 'error': ContentManagementError;
867
+ 'initialized': void;
868
+ 'disposed': void;
869
+ }
870
+ interface ContentManagementSuite {
871
+ readonly content: ContentNamespace;
872
+ readonly contentTypes: ContentTypesNamespace;
873
+ readonly workflows: WorkflowsNamespace;
874
+ readonly users: UsersNamespace;
875
+ readonly permissions: PermissionsNamespace;
876
+ readonly config: ConfigNamespace;
877
+ readonly plugins: PluginsNamespace;
878
+ initialize(): Promise<void>;
879
+ dispose(): Promise<void>;
880
+ on<K extends keyof SuiteEventMap>(event: K, listener: (payload: SuiteEventMap[K]) => void): this;
881
+ emit<K extends keyof SuiteEventMap>(event: K, payload: SuiteEventMap[K]): boolean;
1286
882
  }
1287
883
 
884
+ /**
885
+ * Factory function to create a new ContentManagementSuite instance.
886
+ */
1288
887
  declare function createContentManagementSuite(options?: ContentManagementSuiteOptions): ContentManagementSuite;
1289
888
 
1290
- export { type ContentManagementConfig, ContentManagementConfigSchema, type ContentManagementSuite, type ContentManagementSuiteAPI, type ContentManagementSuiteCache, ContentManagementSuiteConflictError, ContentManagementSuiteError, type ContentManagementSuiteEvents, ContentManagementSuiteForbiddenError, type ContentManagementSuiteHealthCheck, type ContentManagementSuiteHook, ContentManagementSuiteInternalError, type ContentManagementSuiteLogger, type ContentManagementSuiteMetrics, type ContentManagementSuiteMiddleware, ContentManagementSuiteNotFoundError, type ContentManagementSuiteOptions, type ContentManagementSuitePlugin, type ContentManagementSuiteStorage, ContentManagementSuiteUnauthorizedError, type ContentManagementSuiteValidation, ContentManagementSuiteValidationError, createContentManagementSuite };
889
+ export { type ConfigNamespace, ConflictError, type ContentFilters, type ContentItem, type ContentManagementConfig, ContentManagementConfigSchema, ContentManagementError, type ContentManagementLogger, type ContentManagementSuite, type ContentManagementSuiteOptions, type ContentNamespace, type ContentTypeInfo, type ContentTypesNamespace, type CreateContentInput, type CreateUserInput, type CreateWorkflowInput, ForbiddenError, InternalError, NotFoundError, type PaginatedResult, type PermissionsNamespace, type PluginsNamespace, type SearchOptions, type SuiteEventMap, type SuitePlugin, UnauthorizedError, type UpdateContentInput, type UpdateUserInput, type UpdateWorkflowInput, type User, type UsersNamespace, ValidationError, type Workflow, type WorkflowStage, type WorkflowTransition, type WorkflowsNamespace, createContentManagementSuite };