@sudajs/cli 0.10.1 → 0.10.3

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.ts CHANGED
@@ -86,6 +86,910 @@ declare const activateThemeOutputSchema: z.ZodDiscriminatedUnion<"status", [z.Zo
86
86
  themeKey: string;
87
87
  themeVersion: string | null;
88
88
  }>]>;
89
+ declare const updateContactFormInputSchema: z.ZodObject<{
90
+ projectId: z.ZodString;
91
+ enabled: z.ZodOptional<z.ZodBoolean>;
92
+ title: z.ZodOptional<z.ZodString>;
93
+ successMessage: z.ZodOptional<z.ZodString>;
94
+ submitLabel: z.ZodOptional<z.ZodString>;
95
+ fields: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodObject<{
96
+ id: z.ZodString;
97
+ type: z.ZodEnum<["text", "textarea", "checkbox", "radio", "select"]>;
98
+ label: z.ZodString;
99
+ placeholder: z.ZodOptional<z.ZodString>;
100
+ required: z.ZodDefault<z.ZodBoolean>;
101
+ options: z.ZodDefault<z.ZodArray<z.ZodObject<{
102
+ label: z.ZodString;
103
+ value: z.ZodString;
104
+ }, "strip", z.ZodTypeAny, {
105
+ value: string;
106
+ label: string;
107
+ }, {
108
+ value: string;
109
+ label: string;
110
+ }>, "many">>;
111
+ validation: z.ZodDefault<z.ZodObject<{
112
+ format: z.ZodOptional<z.ZodEnum<["email"]>>;
113
+ maxLength: z.ZodOptional<z.ZodNumber>;
114
+ }, "strip", z.ZodTypeAny, {
115
+ format?: "email" | undefined;
116
+ maxLength?: number | undefined;
117
+ }, {
118
+ format?: "email" | undefined;
119
+ maxLength?: number | undefined;
120
+ }>>;
121
+ }, "strip", z.ZodTypeAny, {
122
+ options: {
123
+ value: string;
124
+ label: string;
125
+ }[];
126
+ validation: {
127
+ format?: "email" | undefined;
128
+ maxLength?: number | undefined;
129
+ };
130
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
131
+ label: string;
132
+ id: string;
133
+ required: boolean;
134
+ placeholder?: string | undefined;
135
+ }, {
136
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
137
+ label: string;
138
+ id: string;
139
+ options?: {
140
+ value: string;
141
+ label: string;
142
+ }[] | undefined;
143
+ validation?: {
144
+ format?: "email" | undefined;
145
+ maxLength?: number | undefined;
146
+ } | undefined;
147
+ placeholder?: string | undefined;
148
+ required?: boolean | undefined;
149
+ }>, "many">, {
150
+ options: {
151
+ value: string;
152
+ label: string;
153
+ }[];
154
+ validation: {
155
+ format?: "email" | undefined;
156
+ maxLength?: number | undefined;
157
+ };
158
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
159
+ label: string;
160
+ id: string;
161
+ required: boolean;
162
+ placeholder?: string | undefined;
163
+ }[], {
164
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
165
+ label: string;
166
+ id: string;
167
+ options?: {
168
+ value: string;
169
+ label: string;
170
+ }[] | undefined;
171
+ validation?: {
172
+ format?: "email" | undefined;
173
+ maxLength?: number | undefined;
174
+ } | undefined;
175
+ placeholder?: string | undefined;
176
+ required?: boolean | undefined;
177
+ }[]>>;
178
+ notifications: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
179
+ id: z.ZodString;
180
+ type: z.ZodLiteral<"email">;
181
+ enabled: z.ZodDefault<z.ZodBoolean>;
182
+ label: z.ZodString;
183
+ recipients: z.ZodArray<z.ZodString, "many">;
184
+ }, "strip", z.ZodTypeAny, {
185
+ type: "email";
186
+ label: string;
187
+ id: string;
188
+ enabled: boolean;
189
+ recipients: string[];
190
+ }, {
191
+ type: "email";
192
+ label: string;
193
+ id: string;
194
+ recipients: string[];
195
+ enabled?: boolean | undefined;
196
+ }>, z.ZodObject<{
197
+ id: z.ZodString;
198
+ type: z.ZodEnum<["slack", "wecom", "feishu", "dingtalk"]>;
199
+ enabled: z.ZodDefault<z.ZodBoolean>;
200
+ label: z.ZodString;
201
+ webhookUrl: z.ZodOptional<z.ZodString>;
202
+ }, "strip", z.ZodTypeAny, {
203
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
204
+ label: string;
205
+ id: string;
206
+ enabled: boolean;
207
+ webhookUrl?: string | undefined;
208
+ }, {
209
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
210
+ label: string;
211
+ id: string;
212
+ enabled?: boolean | undefined;
213
+ webhookUrl?: string | undefined;
214
+ }>]>, "many">>;
215
+ webhooks: z.ZodOptional<z.ZodArray<z.ZodObject<{
216
+ id: z.ZodString;
217
+ enabled: z.ZodDefault<z.ZodBoolean>;
218
+ label: z.ZodString;
219
+ event: z.ZodDefault<z.ZodLiteral<"contact.submitted">>;
220
+ url: z.ZodOptional<z.ZodString>;
221
+ }, "strip", z.ZodTypeAny, {
222
+ label: string;
223
+ id: string;
224
+ enabled: boolean;
225
+ event: "contact.submitted";
226
+ url?: string | undefined;
227
+ }, {
228
+ label: string;
229
+ id: string;
230
+ enabled?: boolean | undefined;
231
+ event?: "contact.submitted" | undefined;
232
+ url?: string | undefined;
233
+ }>, "many">>;
234
+ confirm: z.ZodOptional<z.ZodBoolean>;
235
+ }, "strip", z.ZodTypeAny, {
236
+ projectId: string;
237
+ title?: string | undefined;
238
+ enabled?: boolean | undefined;
239
+ successMessage?: string | undefined;
240
+ submitLabel?: string | undefined;
241
+ fields?: {
242
+ options: {
243
+ value: string;
244
+ label: string;
245
+ }[];
246
+ validation: {
247
+ format?: "email" | undefined;
248
+ maxLength?: number | undefined;
249
+ };
250
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
251
+ label: string;
252
+ id: string;
253
+ required: boolean;
254
+ placeholder?: string | undefined;
255
+ }[] | undefined;
256
+ notifications?: ({
257
+ type: "email";
258
+ label: string;
259
+ id: string;
260
+ enabled: boolean;
261
+ recipients: string[];
262
+ } | {
263
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
264
+ label: string;
265
+ id: string;
266
+ enabled: boolean;
267
+ webhookUrl?: string | undefined;
268
+ })[] | undefined;
269
+ webhooks?: {
270
+ label: string;
271
+ id: string;
272
+ enabled: boolean;
273
+ event: "contact.submitted";
274
+ url?: string | undefined;
275
+ }[] | undefined;
276
+ confirm?: boolean | undefined;
277
+ }, {
278
+ projectId: string;
279
+ title?: string | undefined;
280
+ enabled?: boolean | undefined;
281
+ successMessage?: string | undefined;
282
+ submitLabel?: string | undefined;
283
+ fields?: {
284
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
285
+ label: string;
286
+ id: string;
287
+ options?: {
288
+ value: string;
289
+ label: string;
290
+ }[] | undefined;
291
+ validation?: {
292
+ format?: "email" | undefined;
293
+ maxLength?: number | undefined;
294
+ } | undefined;
295
+ placeholder?: string | undefined;
296
+ required?: boolean | undefined;
297
+ }[] | undefined;
298
+ notifications?: ({
299
+ type: "email";
300
+ label: string;
301
+ id: string;
302
+ recipients: string[];
303
+ enabled?: boolean | undefined;
304
+ } | {
305
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
306
+ label: string;
307
+ id: string;
308
+ enabled?: boolean | undefined;
309
+ webhookUrl?: string | undefined;
310
+ })[] | undefined;
311
+ webhooks?: {
312
+ label: string;
313
+ id: string;
314
+ enabled?: boolean | undefined;
315
+ event?: "contact.submitted" | undefined;
316
+ url?: string | undefined;
317
+ }[] | undefined;
318
+ confirm?: boolean | undefined;
319
+ }>;
320
+ declare const updateContactFormOutputSchema: z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
321
+ status: z.ZodLiteral<"needs_confirmation">;
322
+ projectId: z.ZodString;
323
+ impact: z.ZodString;
324
+ draft: z.ZodObject<Omit<{
325
+ projectId: z.ZodString;
326
+ enabled: z.ZodOptional<z.ZodBoolean>;
327
+ title: z.ZodOptional<z.ZodString>;
328
+ successMessage: z.ZodOptional<z.ZodString>;
329
+ submitLabel: z.ZodOptional<z.ZodString>;
330
+ fields: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodObject<{
331
+ id: z.ZodString;
332
+ type: z.ZodEnum<["text", "textarea", "checkbox", "radio", "select"]>;
333
+ label: z.ZodString;
334
+ placeholder: z.ZodOptional<z.ZodString>;
335
+ required: z.ZodDefault<z.ZodBoolean>;
336
+ options: z.ZodDefault<z.ZodArray<z.ZodObject<{
337
+ label: z.ZodString;
338
+ value: z.ZodString;
339
+ }, "strip", z.ZodTypeAny, {
340
+ value: string;
341
+ label: string;
342
+ }, {
343
+ value: string;
344
+ label: string;
345
+ }>, "many">>;
346
+ validation: z.ZodDefault<z.ZodObject<{
347
+ format: z.ZodOptional<z.ZodEnum<["email"]>>;
348
+ maxLength: z.ZodOptional<z.ZodNumber>;
349
+ }, "strip", z.ZodTypeAny, {
350
+ format?: "email" | undefined;
351
+ maxLength?: number | undefined;
352
+ }, {
353
+ format?: "email" | undefined;
354
+ maxLength?: number | undefined;
355
+ }>>;
356
+ }, "strip", z.ZodTypeAny, {
357
+ options: {
358
+ value: string;
359
+ label: string;
360
+ }[];
361
+ validation: {
362
+ format?: "email" | undefined;
363
+ maxLength?: number | undefined;
364
+ };
365
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
366
+ label: string;
367
+ id: string;
368
+ required: boolean;
369
+ placeholder?: string | undefined;
370
+ }, {
371
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
372
+ label: string;
373
+ id: string;
374
+ options?: {
375
+ value: string;
376
+ label: string;
377
+ }[] | undefined;
378
+ validation?: {
379
+ format?: "email" | undefined;
380
+ maxLength?: number | undefined;
381
+ } | undefined;
382
+ placeholder?: string | undefined;
383
+ required?: boolean | undefined;
384
+ }>, "many">, {
385
+ options: {
386
+ value: string;
387
+ label: string;
388
+ }[];
389
+ validation: {
390
+ format?: "email" | undefined;
391
+ maxLength?: number | undefined;
392
+ };
393
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
394
+ label: string;
395
+ id: string;
396
+ required: boolean;
397
+ placeholder?: string | undefined;
398
+ }[], {
399
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
400
+ label: string;
401
+ id: string;
402
+ options?: {
403
+ value: string;
404
+ label: string;
405
+ }[] | undefined;
406
+ validation?: {
407
+ format?: "email" | undefined;
408
+ maxLength?: number | undefined;
409
+ } | undefined;
410
+ placeholder?: string | undefined;
411
+ required?: boolean | undefined;
412
+ }[]>>;
413
+ notifications: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
414
+ id: z.ZodString;
415
+ type: z.ZodLiteral<"email">;
416
+ enabled: z.ZodDefault<z.ZodBoolean>;
417
+ label: z.ZodString;
418
+ recipients: z.ZodArray<z.ZodString, "many">;
419
+ }, "strip", z.ZodTypeAny, {
420
+ type: "email";
421
+ label: string;
422
+ id: string;
423
+ enabled: boolean;
424
+ recipients: string[];
425
+ }, {
426
+ type: "email";
427
+ label: string;
428
+ id: string;
429
+ recipients: string[];
430
+ enabled?: boolean | undefined;
431
+ }>, z.ZodObject<{
432
+ id: z.ZodString;
433
+ type: z.ZodEnum<["slack", "wecom", "feishu", "dingtalk"]>;
434
+ enabled: z.ZodDefault<z.ZodBoolean>;
435
+ label: z.ZodString;
436
+ webhookUrl: z.ZodOptional<z.ZodString>;
437
+ }, "strip", z.ZodTypeAny, {
438
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
439
+ label: string;
440
+ id: string;
441
+ enabled: boolean;
442
+ webhookUrl?: string | undefined;
443
+ }, {
444
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
445
+ label: string;
446
+ id: string;
447
+ enabled?: boolean | undefined;
448
+ webhookUrl?: string | undefined;
449
+ }>]>, "many">>;
450
+ webhooks: z.ZodOptional<z.ZodArray<z.ZodObject<{
451
+ id: z.ZodString;
452
+ enabled: z.ZodDefault<z.ZodBoolean>;
453
+ label: z.ZodString;
454
+ event: z.ZodDefault<z.ZodLiteral<"contact.submitted">>;
455
+ url: z.ZodOptional<z.ZodString>;
456
+ }, "strip", z.ZodTypeAny, {
457
+ label: string;
458
+ id: string;
459
+ enabled: boolean;
460
+ event: "contact.submitted";
461
+ url?: string | undefined;
462
+ }, {
463
+ label: string;
464
+ id: string;
465
+ enabled?: boolean | undefined;
466
+ event?: "contact.submitted" | undefined;
467
+ url?: string | undefined;
468
+ }>, "many">>;
469
+ confirm: z.ZodOptional<z.ZodBoolean>;
470
+ }, "confirm">, "strip", z.ZodTypeAny, {
471
+ projectId: string;
472
+ title?: string | undefined;
473
+ enabled?: boolean | undefined;
474
+ successMessage?: string | undefined;
475
+ submitLabel?: string | undefined;
476
+ fields?: {
477
+ options: {
478
+ value: string;
479
+ label: string;
480
+ }[];
481
+ validation: {
482
+ format?: "email" | undefined;
483
+ maxLength?: number | undefined;
484
+ };
485
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
486
+ label: string;
487
+ id: string;
488
+ required: boolean;
489
+ placeholder?: string | undefined;
490
+ }[] | undefined;
491
+ notifications?: ({
492
+ type: "email";
493
+ label: string;
494
+ id: string;
495
+ enabled: boolean;
496
+ recipients: string[];
497
+ } | {
498
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
499
+ label: string;
500
+ id: string;
501
+ enabled: boolean;
502
+ webhookUrl?: string | undefined;
503
+ })[] | undefined;
504
+ webhooks?: {
505
+ label: string;
506
+ id: string;
507
+ enabled: boolean;
508
+ event: "contact.submitted";
509
+ url?: string | undefined;
510
+ }[] | undefined;
511
+ }, {
512
+ projectId: string;
513
+ title?: string | undefined;
514
+ enabled?: boolean | undefined;
515
+ successMessage?: string | undefined;
516
+ submitLabel?: string | undefined;
517
+ fields?: {
518
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
519
+ label: string;
520
+ id: string;
521
+ options?: {
522
+ value: string;
523
+ label: string;
524
+ }[] | undefined;
525
+ validation?: {
526
+ format?: "email" | undefined;
527
+ maxLength?: number | undefined;
528
+ } | undefined;
529
+ placeholder?: string | undefined;
530
+ required?: boolean | undefined;
531
+ }[] | undefined;
532
+ notifications?: ({
533
+ type: "email";
534
+ label: string;
535
+ id: string;
536
+ recipients: string[];
537
+ enabled?: boolean | undefined;
538
+ } | {
539
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
540
+ label: string;
541
+ id: string;
542
+ enabled?: boolean | undefined;
543
+ webhookUrl?: string | undefined;
544
+ })[] | undefined;
545
+ webhooks?: {
546
+ label: string;
547
+ id: string;
548
+ enabled?: boolean | undefined;
549
+ event?: "contact.submitted" | undefined;
550
+ url?: string | undefined;
551
+ }[] | undefined;
552
+ }>;
553
+ }, "strip", z.ZodTypeAny, {
554
+ projectId: string;
555
+ status: "needs_confirmation";
556
+ impact: string;
557
+ draft: {
558
+ projectId: string;
559
+ title?: string | undefined;
560
+ enabled?: boolean | undefined;
561
+ successMessage?: string | undefined;
562
+ submitLabel?: string | undefined;
563
+ fields?: {
564
+ options: {
565
+ value: string;
566
+ label: string;
567
+ }[];
568
+ validation: {
569
+ format?: "email" | undefined;
570
+ maxLength?: number | undefined;
571
+ };
572
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
573
+ label: string;
574
+ id: string;
575
+ required: boolean;
576
+ placeholder?: string | undefined;
577
+ }[] | undefined;
578
+ notifications?: ({
579
+ type: "email";
580
+ label: string;
581
+ id: string;
582
+ enabled: boolean;
583
+ recipients: string[];
584
+ } | {
585
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
586
+ label: string;
587
+ id: string;
588
+ enabled: boolean;
589
+ webhookUrl?: string | undefined;
590
+ })[] | undefined;
591
+ webhooks?: {
592
+ label: string;
593
+ id: string;
594
+ enabled: boolean;
595
+ event: "contact.submitted";
596
+ url?: string | undefined;
597
+ }[] | undefined;
598
+ };
599
+ }, {
600
+ projectId: string;
601
+ status: "needs_confirmation";
602
+ impact: string;
603
+ draft: {
604
+ projectId: string;
605
+ title?: string | undefined;
606
+ enabled?: boolean | undefined;
607
+ successMessage?: string | undefined;
608
+ submitLabel?: string | undefined;
609
+ fields?: {
610
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
611
+ label: string;
612
+ id: string;
613
+ options?: {
614
+ value: string;
615
+ label: string;
616
+ }[] | undefined;
617
+ validation?: {
618
+ format?: "email" | undefined;
619
+ maxLength?: number | undefined;
620
+ } | undefined;
621
+ placeholder?: string | undefined;
622
+ required?: boolean | undefined;
623
+ }[] | undefined;
624
+ notifications?: ({
625
+ type: "email";
626
+ label: string;
627
+ id: string;
628
+ recipients: string[];
629
+ enabled?: boolean | undefined;
630
+ } | {
631
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
632
+ label: string;
633
+ id: string;
634
+ enabled?: boolean | undefined;
635
+ webhookUrl?: string | undefined;
636
+ })[] | undefined;
637
+ webhooks?: {
638
+ label: string;
639
+ id: string;
640
+ enabled?: boolean | undefined;
641
+ event?: "contact.submitted" | undefined;
642
+ url?: string | undefined;
643
+ }[] | undefined;
644
+ };
645
+ }>, z.ZodObject<{
646
+ status: z.ZodLiteral<"updated">;
647
+ projectId: z.ZodString;
648
+ contactForm: z.ZodObject<{
649
+ enabled: z.ZodBoolean;
650
+ title: z.ZodString;
651
+ successMessage: z.ZodString;
652
+ submitLabel: z.ZodString;
653
+ fields: z.ZodArray<z.ZodObject<{
654
+ id: z.ZodString;
655
+ type: z.ZodEnum<["text", "textarea", "checkbox", "radio", "select"]>;
656
+ label: z.ZodString;
657
+ placeholder: z.ZodOptional<z.ZodString>;
658
+ required: z.ZodDefault<z.ZodBoolean>;
659
+ options: z.ZodDefault<z.ZodArray<z.ZodObject<{
660
+ label: z.ZodString;
661
+ value: z.ZodString;
662
+ }, "strip", z.ZodTypeAny, {
663
+ value: string;
664
+ label: string;
665
+ }, {
666
+ value: string;
667
+ label: string;
668
+ }>, "many">>;
669
+ validation: z.ZodDefault<z.ZodObject<{
670
+ format: z.ZodOptional<z.ZodEnum<["email"]>>;
671
+ maxLength: z.ZodOptional<z.ZodNumber>;
672
+ }, "strip", z.ZodTypeAny, {
673
+ format?: "email" | undefined;
674
+ maxLength?: number | undefined;
675
+ }, {
676
+ format?: "email" | undefined;
677
+ maxLength?: number | undefined;
678
+ }>>;
679
+ }, "strip", z.ZodTypeAny, {
680
+ options: {
681
+ value: string;
682
+ label: string;
683
+ }[];
684
+ validation: {
685
+ format?: "email" | undefined;
686
+ maxLength?: number | undefined;
687
+ };
688
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
689
+ label: string;
690
+ id: string;
691
+ required: boolean;
692
+ placeholder?: string | undefined;
693
+ }, {
694
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
695
+ label: string;
696
+ id: string;
697
+ options?: {
698
+ value: string;
699
+ label: string;
700
+ }[] | undefined;
701
+ validation?: {
702
+ format?: "email" | undefined;
703
+ maxLength?: number | undefined;
704
+ } | undefined;
705
+ placeholder?: string | undefined;
706
+ required?: boolean | undefined;
707
+ }>, "many">;
708
+ notifications: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
709
+ id: z.ZodString;
710
+ type: z.ZodLiteral<"email">;
711
+ enabled: z.ZodBoolean;
712
+ label: z.ZodString;
713
+ recipients: z.ZodArray<z.ZodString, "many">;
714
+ }, "strip", z.ZodTypeAny, {
715
+ type: "email";
716
+ label: string;
717
+ id: string;
718
+ enabled: boolean;
719
+ recipients: string[];
720
+ }, {
721
+ type: "email";
722
+ label: string;
723
+ id: string;
724
+ enabled: boolean;
725
+ recipients: string[];
726
+ }>, z.ZodObject<{
727
+ id: z.ZodString;
728
+ type: z.ZodEnum<["slack", "wecom", "feishu", "dingtalk"]>;
729
+ enabled: z.ZodBoolean;
730
+ label: z.ZodString;
731
+ webhookUrlMasked: z.ZodNullable<z.ZodString>;
732
+ }, "strip", z.ZodTypeAny, {
733
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
734
+ label: string;
735
+ id: string;
736
+ enabled: boolean;
737
+ webhookUrlMasked: string | null;
738
+ }, {
739
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
740
+ label: string;
741
+ id: string;
742
+ enabled: boolean;
743
+ webhookUrlMasked: string | null;
744
+ }>]>, "many">;
745
+ webhooks: z.ZodArray<z.ZodObject<{
746
+ id: z.ZodString;
747
+ enabled: z.ZodBoolean;
748
+ label: z.ZodString;
749
+ event: z.ZodLiteral<"contact.submitted">;
750
+ urlMasked: z.ZodNullable<z.ZodString>;
751
+ }, "strip", z.ZodTypeAny, {
752
+ label: string;
753
+ id: string;
754
+ enabled: boolean;
755
+ event: "contact.submitted";
756
+ urlMasked: string | null;
757
+ }, {
758
+ label: string;
759
+ id: string;
760
+ enabled: boolean;
761
+ event: "contact.submitted";
762
+ urlMasked: string | null;
763
+ }>, "many">;
764
+ limits: z.ZodObject<{
765
+ maxFields: z.ZodNumber;
766
+ maxNotificationChannels: z.ZodNumber;
767
+ maxWebhooks: z.ZodNumber;
768
+ }, "strip", z.ZodTypeAny, {
769
+ maxFields: number;
770
+ maxNotificationChannels: number;
771
+ maxWebhooks: number;
772
+ }, {
773
+ maxFields: number;
774
+ maxNotificationChannels: number;
775
+ maxWebhooks: number;
776
+ }>;
777
+ features: z.ZodObject<{
778
+ contactNotifications: z.ZodBoolean;
779
+ contactWebhooks: z.ZodBoolean;
780
+ }, "strip", z.ZodTypeAny, {
781
+ contactNotifications: boolean;
782
+ contactWebhooks: boolean;
783
+ }, {
784
+ contactNotifications: boolean;
785
+ contactWebhooks: boolean;
786
+ }>;
787
+ }, "strip", z.ZodTypeAny, {
788
+ title: string;
789
+ enabled: boolean;
790
+ successMessage: string;
791
+ submitLabel: string;
792
+ fields: {
793
+ options: {
794
+ value: string;
795
+ label: string;
796
+ }[];
797
+ validation: {
798
+ format?: "email" | undefined;
799
+ maxLength?: number | undefined;
800
+ };
801
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
802
+ label: string;
803
+ id: string;
804
+ required: boolean;
805
+ placeholder?: string | undefined;
806
+ }[];
807
+ notifications: ({
808
+ type: "email";
809
+ label: string;
810
+ id: string;
811
+ enabled: boolean;
812
+ recipients: string[];
813
+ } | {
814
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
815
+ label: string;
816
+ id: string;
817
+ enabled: boolean;
818
+ webhookUrlMasked: string | null;
819
+ })[];
820
+ webhooks: {
821
+ label: string;
822
+ id: string;
823
+ enabled: boolean;
824
+ event: "contact.submitted";
825
+ urlMasked: string | null;
826
+ }[];
827
+ limits: {
828
+ maxFields: number;
829
+ maxNotificationChannels: number;
830
+ maxWebhooks: number;
831
+ };
832
+ features: {
833
+ contactNotifications: boolean;
834
+ contactWebhooks: boolean;
835
+ };
836
+ }, {
837
+ title: string;
838
+ enabled: boolean;
839
+ successMessage: string;
840
+ submitLabel: string;
841
+ fields: {
842
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
843
+ label: string;
844
+ id: string;
845
+ options?: {
846
+ value: string;
847
+ label: string;
848
+ }[] | undefined;
849
+ validation?: {
850
+ format?: "email" | undefined;
851
+ maxLength?: number | undefined;
852
+ } | undefined;
853
+ placeholder?: string | undefined;
854
+ required?: boolean | undefined;
855
+ }[];
856
+ notifications: ({
857
+ type: "email";
858
+ label: string;
859
+ id: string;
860
+ enabled: boolean;
861
+ recipients: string[];
862
+ } | {
863
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
864
+ label: string;
865
+ id: string;
866
+ enabled: boolean;
867
+ webhookUrlMasked: string | null;
868
+ })[];
869
+ webhooks: {
870
+ label: string;
871
+ id: string;
872
+ enabled: boolean;
873
+ event: "contact.submitted";
874
+ urlMasked: string | null;
875
+ }[];
876
+ limits: {
877
+ maxFields: number;
878
+ maxNotificationChannels: number;
879
+ maxWebhooks: number;
880
+ };
881
+ features: {
882
+ contactNotifications: boolean;
883
+ contactWebhooks: boolean;
884
+ };
885
+ }>;
886
+ }, "strip", z.ZodTypeAny, {
887
+ projectId: string;
888
+ status: "updated";
889
+ contactForm: {
890
+ title: string;
891
+ enabled: boolean;
892
+ successMessage: string;
893
+ submitLabel: string;
894
+ fields: {
895
+ options: {
896
+ value: string;
897
+ label: string;
898
+ }[];
899
+ validation: {
900
+ format?: "email" | undefined;
901
+ maxLength?: number | undefined;
902
+ };
903
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
904
+ label: string;
905
+ id: string;
906
+ required: boolean;
907
+ placeholder?: string | undefined;
908
+ }[];
909
+ notifications: ({
910
+ type: "email";
911
+ label: string;
912
+ id: string;
913
+ enabled: boolean;
914
+ recipients: string[];
915
+ } | {
916
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
917
+ label: string;
918
+ id: string;
919
+ enabled: boolean;
920
+ webhookUrlMasked: string | null;
921
+ })[];
922
+ webhooks: {
923
+ label: string;
924
+ id: string;
925
+ enabled: boolean;
926
+ event: "contact.submitted";
927
+ urlMasked: string | null;
928
+ }[];
929
+ limits: {
930
+ maxFields: number;
931
+ maxNotificationChannels: number;
932
+ maxWebhooks: number;
933
+ };
934
+ features: {
935
+ contactNotifications: boolean;
936
+ contactWebhooks: boolean;
937
+ };
938
+ };
939
+ }, {
940
+ projectId: string;
941
+ status: "updated";
942
+ contactForm: {
943
+ title: string;
944
+ enabled: boolean;
945
+ successMessage: string;
946
+ submitLabel: string;
947
+ fields: {
948
+ type: "text" | "textarea" | "checkbox" | "radio" | "select";
949
+ label: string;
950
+ id: string;
951
+ options?: {
952
+ value: string;
953
+ label: string;
954
+ }[] | undefined;
955
+ validation?: {
956
+ format?: "email" | undefined;
957
+ maxLength?: number | undefined;
958
+ } | undefined;
959
+ placeholder?: string | undefined;
960
+ required?: boolean | undefined;
961
+ }[];
962
+ notifications: ({
963
+ type: "email";
964
+ label: string;
965
+ id: string;
966
+ enabled: boolean;
967
+ recipients: string[];
968
+ } | {
969
+ type: "slack" | "wecom" | "feishu" | "dingtalk";
970
+ label: string;
971
+ id: string;
972
+ enabled: boolean;
973
+ webhookUrlMasked: string | null;
974
+ })[];
975
+ webhooks: {
976
+ label: string;
977
+ id: string;
978
+ enabled: boolean;
979
+ event: "contact.submitted";
980
+ urlMasked: string | null;
981
+ }[];
982
+ limits: {
983
+ maxFields: number;
984
+ maxNotificationChannels: number;
985
+ maxWebhooks: number;
986
+ };
987
+ features: {
988
+ contactNotifications: boolean;
989
+ contactWebhooks: boolean;
990
+ };
991
+ };
992
+ }>]>;
89
993
  declare function fetchJson<T>(url: string, options?: RequestInit & {
90
994
  token?: string;
91
995
  }): Promise<T>;
@@ -106,7 +1010,9 @@ declare const __testUtils: {
106
1010
  initThemeWithKey: typeof initThemeWithKey;
107
1011
  performActivateTheme: typeof performActivateTheme;
108
1012
  performConfirmedPageOperation: typeof performConfirmedPageOperation;
1013
+ performUpdateContactForm: typeof performUpdateContactForm;
109
1014
  renderDevStarterPageHtml: typeof renderDevStarterPageHtml;
1015
+ resolveDevStarterSlug: typeof resolveDevStarterSlug;
110
1016
  resolveScreenshotOptions: typeof resolveScreenshotOptions;
111
1017
  slugifyThemeName: typeof slugifyThemeName;
112
1018
  validateThemeKey: typeof validateThemeKey;
@@ -116,6 +1022,7 @@ declare const __testUtils: {
116
1022
  updateRemotePageDraft: typeof updateRemotePageDraft;
117
1023
  };
118
1024
  declare function watchTheme(root: string, port: number): Promise<void>;
1025
+ declare function resolveDevStarterSlug(pathname: string): string | null | undefined;
119
1026
  /**
120
1027
  * Theme-project-scoped renderer bundle. We deliberately resolve `react`,
121
1028
  * `react-dom/server` and `@sudajs/theme-engine/server` through the theme
@@ -241,6 +1148,7 @@ declare function performActivateTheme(auth: CliAuthContext, input: {
241
1148
  themeVersion?: string | undefined;
242
1149
  confirm?: boolean | undefined;
243
1150
  }, fetcher?: FetchJsonFn): Promise<z.infer<typeof activateThemeOutputSchema>>;
1151
+ declare function performUpdateContactForm(auth: CliAuthContext, input: z.infer<typeof updateContactFormInputSchema>, fetcher?: FetchJsonFn): Promise<z.infer<typeof updateContactFormOutputSchema>>;
244
1152
  declare function validateThemeName(name: string): string | null;
245
1153
  declare function validateThemeKey(key: string): string | null;
246
1154
  declare function slugifyThemeName(name: string): string;