@dazl/internal-api-client 1.9.0 → 1.11.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.
@@ -101,6 +101,37 @@ export type ProjectRaw = {
101
101
  export type OwnerDazlId = {
102
102
  ownerDazlId: string;
103
103
  };
104
+ export type UserMention = {
105
+ dazlUserId: string;
106
+ };
107
+ export type CommentResolved = {
108
+ dazlUserId: string;
109
+ resolvedAt: string;
110
+ };
111
+ export type CommentContext = {
112
+ type: 'stage';
113
+ page: string;
114
+ selection?: string;
115
+ };
116
+ export type InternalCreateCommentInput = {
117
+ content: string;
118
+ authorDazlUserId: string;
119
+ mentions?: Array<UserMention>;
120
+ context?: CommentContext;
121
+ };
122
+ export type InternalEditCommentInput = {
123
+ content: string;
124
+ mentions?: Array<UserMention>;
125
+ };
126
+ export type InternalCreateReplyInput = {
127
+ content: string;
128
+ mentions?: Array<UserMention>;
129
+ authorDazlUserId: string;
130
+ };
131
+ export type InternalEditReplyInput = {
132
+ content: string;
133
+ mentions?: Array<UserMention>;
134
+ };
104
135
  export type TemplateRaw = {
105
136
  id: string;
106
137
  name: string;
@@ -2153,10 +2184,10 @@ export type InviteProjectMemberErrors = {
2153
2184
  export type InviteProjectMemberError = InviteProjectMemberErrors[keyof InviteProjectMemberErrors];
2154
2185
  export type InviteProjectMemberResponses = {
2155
2186
  /**
2156
- * Returns the invitation token
2187
+ * Returns the invitation token, or null if user was auto-added to project
2157
2188
  */
2158
2189
  200: {
2159
- token: string;
2190
+ token: string | null;
2160
2191
  };
2161
2192
  };
2162
2193
  export type InviteProjectMemberResponse = InviteProjectMemberResponses[keyof InviteProjectMemberResponses];
@@ -2212,15 +2243,17 @@ export type AcceptProjectInvitationResponses = {
2212
2243
  };
2213
2244
  };
2214
2245
  export type AcceptProjectInvitationResponse = AcceptProjectInvitationResponses[keyof AcceptProjectInvitationResponses];
2215
- export type GetPublicTemplatesData = {
2246
+ export type GetProjectCollaboratorsData = {
2216
2247
  body?: never;
2217
- path?: never;
2218
- query?: {
2219
- withScreenshot?: boolean | null;
2248
+ path: {
2249
+ projectId: string;
2220
2250
  };
2221
- url: '/template/public-templates';
2251
+ query: {
2252
+ userDazlId: string;
2253
+ };
2254
+ url: '/project/{projectId}/collaborators';
2222
2255
  };
2223
- export type GetPublicTemplatesErrors = {
2256
+ export type GetProjectCollaboratorsErrors = {
2224
2257
  /**
2225
2258
  * Bad request - Invalid parameters or malformed JSON
2226
2259
  */
@@ -2253,31 +2286,52 @@ export type GetPublicTemplatesErrors = {
2253
2286
  */
2254
2287
  503: ErrorResponse;
2255
2288
  };
2256
- export type GetPublicTemplatesError = GetPublicTemplatesErrors[keyof GetPublicTemplatesErrors];
2257
- export type GetPublicTemplatesResponses = {
2289
+ export type GetProjectCollaboratorsError = GetProjectCollaboratorsErrors[keyof GetProjectCollaboratorsErrors];
2290
+ export type GetProjectCollaboratorsResponses = {
2258
2291
  /**
2259
- * Returns all public templates. Optionally includes screenshots when `withScreenshot` is true. Templates are ordered by the greatest of createdAt and lastUsedAt in descending order.
2292
+ * Returns the list of project collaborators: both members and invitations
2260
2293
  */
2261
2294
  200: {
2262
- templates: Array<{
2263
- screenshotUrl: string | null;
2264
- originProjectName: string | null;
2265
- } & TemplateRaw>;
2295
+ owner: {
2296
+ /**
2297
+ * Dazl ID for the type = "user"
2298
+ */
2299
+ id: string;
2300
+ role: 'admin' | 'contributor' | 'viewer' | 'owner';
2301
+ email: string;
2302
+ name?: string;
2303
+ picture?: string;
2304
+ };
2305
+ members: Array<{
2306
+ /**
2307
+ * Dazl ID for the type = "user"
2308
+ */
2309
+ id: string;
2310
+ role: 'admin' | 'contributor' | 'viewer' | 'owner';
2311
+ email: string;
2312
+ name?: string;
2313
+ picture?: string;
2314
+ }>;
2315
+ invited: Array<{
2316
+ role: 'admin' | 'contributor' | 'viewer';
2317
+ email?: string;
2318
+ id: string;
2319
+ }>;
2266
2320
  };
2267
2321
  };
2268
- export type GetPublicTemplatesResponse = GetPublicTemplatesResponses[keyof GetPublicTemplatesResponses];
2269
- export type GetUserTemplatesData = {
2322
+ export type GetProjectCollaboratorsResponse = GetProjectCollaboratorsResponses[keyof GetProjectCollaboratorsResponses];
2323
+ export type DeleteProjectMemberData = {
2270
2324
  body?: never;
2271
2325
  path: {
2272
- dazlId: string;
2326
+ projectId: string;
2327
+ memberId: string;
2273
2328
  };
2274
- query?: {
2275
- withScreenshot?: boolean | null;
2276
- withOriginProject?: boolean | null;
2329
+ query: {
2330
+ userDazlId: string;
2277
2331
  };
2278
- url: '/template/user/{dazlId}';
2332
+ url: '/project/{projectId}/members/{memberId}';
2279
2333
  };
2280
- export type GetUserTemplatesErrors = {
2334
+ export type DeleteProjectMemberErrors = {
2281
2335
  /**
2282
2336
  * Bad request - Invalid parameters or malformed JSON
2283
2337
  */
@@ -2310,33 +2364,28 @@ export type GetUserTemplatesErrors = {
2310
2364
  */
2311
2365
  503: ErrorResponse;
2312
2366
  };
2313
- export type GetUserTemplatesError = GetUserTemplatesErrors[keyof GetUserTemplatesErrors];
2314
- export type GetUserTemplatesResponses = {
2367
+ export type DeleteProjectMemberError = DeleteProjectMemberErrors[keyof DeleteProjectMemberErrors];
2368
+ export type DeleteProjectMemberResponses = {
2315
2369
  /**
2316
- * Returns all templates for the specified user. Templates are ordered by the greatest of createdAt and lastUsedAt in descending order.
2370
+ * Acknowledges that the project member was deleted
2317
2371
  */
2318
2372
  200: {
2319
- templates: Array<{
2320
- screenshotUrl: string | null;
2321
- originProjectName: string | null;
2322
- } & TemplateRaw>;
2373
+ status: 'deleted';
2323
2374
  };
2324
2375
  };
2325
- export type GetUserTemplatesResponse = GetUserTemplatesResponses[keyof GetUserTemplatesResponses];
2326
- export type DeleteTemplateData = {
2327
- /**
2328
- * Owner dazlId of the user attempting to delete the template
2329
- */
2330
- body?: {
2331
- ownerDazlId: string;
2332
- };
2376
+ export type DeleteProjectMemberResponse = DeleteProjectMemberResponses[keyof DeleteProjectMemberResponses];
2377
+ export type DeleteProjectInvitationData = {
2378
+ body?: never;
2333
2379
  path: {
2334
- templateId: string;
2380
+ projectId: string;
2381
+ invitationId: string;
2335
2382
  };
2336
- query?: never;
2337
- url: '/template/{templateId}';
2383
+ query: {
2384
+ userDazlId: string;
2385
+ };
2386
+ url: '/project/{projectId}/invitations/{invitationId}';
2338
2387
  };
2339
- export type DeleteTemplateErrors = {
2388
+ export type DeleteProjectInvitationErrors = {
2340
2389
  /**
2341
2390
  * Bad request - Invalid parameters or malformed JSON
2342
2391
  */
@@ -2369,27 +2418,25 @@ export type DeleteTemplateErrors = {
2369
2418
  */
2370
2419
  503: ErrorResponse;
2371
2420
  };
2372
- export type DeleteTemplateError = DeleteTemplateErrors[keyof DeleteTemplateErrors];
2373
- export type DeleteTemplateResponses = {
2421
+ export type DeleteProjectInvitationError = DeleteProjectInvitationErrors[keyof DeleteProjectInvitationErrors];
2422
+ export type DeleteProjectInvitationResponses = {
2374
2423
  /**
2375
- * Deletes the template with the specified ID.
2424
+ * Acknowledges that the project invitation was deleted
2376
2425
  */
2377
2426
  200: {
2378
- templateId: string;
2427
+ status: 'deleted';
2379
2428
  };
2380
2429
  };
2381
- export type DeleteTemplateResponse = DeleteTemplateResponses[keyof DeleteTemplateResponses];
2382
- export type GetTemplateData = {
2430
+ export type DeleteProjectInvitationResponse = DeleteProjectInvitationResponses[keyof DeleteProjectInvitationResponses];
2431
+ export type InternalListProjectCommentsData = {
2383
2432
  body?: never;
2384
2433
  path: {
2385
- templateId: string;
2386
- };
2387
- query?: {
2388
- withScreenshot?: boolean | null;
2434
+ projectId: string;
2389
2435
  };
2390
- url: '/template/{templateId}';
2436
+ query?: never;
2437
+ url: '/project/{projectId}/comments';
2391
2438
  };
2392
- export type GetTemplateErrors = {
2439
+ export type InternalListProjectCommentsErrors = {
2393
2440
  /**
2394
2441
  * Bad request - Invalid parameters or malformed JSON
2395
2442
  */
@@ -2422,32 +2469,56 @@ export type GetTemplateErrors = {
2422
2469
  */
2423
2470
  503: ErrorResponse;
2424
2471
  };
2425
- export type GetTemplateError = GetTemplateErrors[keyof GetTemplateErrors];
2426
- export type GetTemplateResponses = {
2472
+ export type InternalListProjectCommentsError = InternalListProjectCommentsErrors[keyof InternalListProjectCommentsErrors];
2473
+ export type InternalListProjectCommentsResponses = {
2427
2474
  /**
2428
- * Returns the template with the specified ID.
2475
+ * Returns the list of comments for the project
2429
2476
  */
2430
2477
  200: {
2431
- template: TemplateRaw;
2478
+ comments: Array<{
2479
+ commentId: string;
2480
+ author: {
2481
+ dazlUserId: string;
2482
+ };
2483
+ content: string;
2484
+ mentions: Array<UserMention>;
2485
+ createdAt: string;
2486
+ updatedAt: string;
2487
+ lastActivityAt: string;
2488
+ isEdited: boolean;
2489
+ replies: Array<{
2490
+ replyId: string;
2491
+ author: {
2492
+ dazlUserId: string;
2493
+ };
2494
+ content: string;
2495
+ mentions: Array<UserMention>;
2496
+ createdAt: string;
2497
+ updatedAt: string;
2498
+ }>;
2499
+ resolved?: CommentResolved;
2500
+ context?: CommentContext;
2501
+ }>;
2502
+ /**
2503
+ * Authors and mentions from loaded comments with id, email and picture to render avatars
2504
+ */
2505
+ participants: Array<{
2506
+ userId: string;
2507
+ email: string;
2508
+ picture?: string;
2509
+ }>;
2432
2510
  };
2433
2511
  };
2434
- export type GetTemplateResponse = GetTemplateResponses[keyof GetTemplateResponses];
2435
- export type UpdateTemplateData = {
2436
- body: {
2437
- description?: string | null;
2438
- lastUsedAt?: string | null;
2439
- name?: string;
2440
- usageCount?: number;
2441
- isPublic?: boolean;
2442
- ownerDazlId?: string;
2443
- };
2512
+ export type InternalListProjectCommentsResponse = InternalListProjectCommentsResponses[keyof InternalListProjectCommentsResponses];
2513
+ export type InternalCreateCommentData = {
2514
+ body: InternalCreateCommentInput;
2444
2515
  path: {
2445
- templateId: string;
2516
+ projectId: string;
2446
2517
  };
2447
2518
  query?: never;
2448
- url: '/template/{templateId}';
2519
+ url: '/project/{projectId}/comments';
2449
2520
  };
2450
- export type UpdateTemplateErrors = {
2521
+ export type InternalCreateCommentErrors = {
2451
2522
  /**
2452
2523
  * Bad request - Invalid parameters or malformed JSON
2453
2524
  */
@@ -2480,31 +2551,49 @@ export type UpdateTemplateErrors = {
2480
2551
  */
2481
2552
  503: ErrorResponse;
2482
2553
  };
2483
- export type UpdateTemplateError = UpdateTemplateErrors[keyof UpdateTemplateErrors];
2484
- export type UpdateTemplateResponses = {
2554
+ export type InternalCreateCommentError = InternalCreateCommentErrors[keyof InternalCreateCommentErrors];
2555
+ export type InternalCreateCommentResponses = {
2485
2556
  /**
2486
- * Updates the template with the specified ID.
2557
+ * Returns the created comment
2487
2558
  */
2488
2559
  200: {
2489
- template: TemplateRaw;
2560
+ comment: {
2561
+ commentId: string;
2562
+ author: {
2563
+ dazlUserId: string;
2564
+ };
2565
+ content: string;
2566
+ mentions: Array<UserMention>;
2567
+ createdAt: string;
2568
+ updatedAt: string;
2569
+ lastActivityAt: string;
2570
+ isEdited: boolean;
2571
+ replies: Array<{
2572
+ replyId: string;
2573
+ author: {
2574
+ dazlUserId: string;
2575
+ };
2576
+ content: string;
2577
+ mentions: Array<UserMention>;
2578
+ createdAt: string;
2579
+ updatedAt: string;
2580
+ }>;
2581
+ resolved?: CommentResolved;
2582
+ context?: CommentContext;
2583
+ };
2490
2584
  };
2491
2585
  };
2492
- export type UpdateTemplateResponse = UpdateTemplateResponses[keyof UpdateTemplateResponses];
2493
- export type CreateTemplateData = {
2494
- body: {
2495
- originProjectId: string;
2496
- userDazlId: string;
2497
- } & {
2498
- preserveChatHistory: boolean;
2499
- preserveEnvFile: boolean;
2500
- name: string;
2501
- description?: string;
2586
+ export type InternalCreateCommentResponse = InternalCreateCommentResponses[keyof InternalCreateCommentResponses];
2587
+ export type InternalDeleteCommentData = {
2588
+ body?: never;
2589
+ path: {
2590
+ projectId: string;
2591
+ commentId: string;
2502
2592
  };
2503
- path?: never;
2504
2593
  query?: never;
2505
- url: '/template/create';
2594
+ url: '/project/{projectId}/comments/{commentId}';
2506
2595
  };
2507
- export type CreateTemplateErrors = {
2596
+ export type InternalDeleteCommentErrors = {
2508
2597
  /**
2509
2598
  * Bad request - Invalid parameters or malformed JSON
2510
2599
  */
@@ -2537,48 +2626,26 @@ export type CreateTemplateErrors = {
2537
2626
  */
2538
2627
  503: ErrorResponse;
2539
2628
  };
2540
- export type CreateTemplateError = CreateTemplateErrors[keyof CreateTemplateErrors];
2541
- export type CreateTemplateResponses = {
2629
+ export type InternalDeleteCommentError = InternalDeleteCommentErrors[keyof InternalDeleteCommentErrors];
2630
+ export type InternalDeleteCommentResponses = {
2542
2631
  /**
2543
- * Creates a new template from the specified project for the specified user.
2632
+ * Acknowledges that the comment was deleted
2544
2633
  */
2545
2634
  200: {
2546
- template: TemplateRaw;
2635
+ success: true;
2547
2636
  };
2548
2637
  };
2549
- export type CreateTemplateResponse = CreateTemplateResponses[keyof CreateTemplateResponses];
2550
- export type GetUploadConfigurationData = {
2551
- body: {
2552
- /**
2553
- * File path within the project
2554
- */
2555
- path: string;
2556
- /**
2557
- * Project identifier (optional for account-level uploads)
2558
- */
2559
- projectId?: string;
2560
- /**
2561
- * MIME type of the file to upload
2562
- */
2563
- mimeType?: string;
2564
- /**
2565
- * Access control level for the file
2566
- */
2567
- acl?: 'public' | 'private';
2568
- /**
2569
- * Callback URL to notify after upload completion
2570
- */
2571
- callback?: string;
2572
- /**
2573
- * Upload protocol to use
2574
- */
2575
- protocol?: 'tus';
2638
+ export type InternalDeleteCommentResponse = InternalDeleteCommentResponses[keyof InternalDeleteCommentResponses];
2639
+ export type InternalEditCommentData = {
2640
+ body: InternalEditCommentInput;
2641
+ path: {
2642
+ projectId: string;
2643
+ commentId: string;
2576
2644
  };
2577
- path?: never;
2578
2645
  query?: never;
2579
- url: '/media/upload-configuration';
2646
+ url: '/project/{projectId}/comments/{commentId}';
2580
2647
  };
2581
- export type GetUploadConfigurationErrors = {
2648
+ export type InternalEditCommentErrors = {
2582
2649
  /**
2583
2650
  * Bad request - Invalid parameters or malformed JSON
2584
2651
  */
@@ -2591,17 +2658,13 @@ export type GetUploadConfigurationErrors = {
2591
2658
  */
2592
2659
  401: ErrorResponse;
2593
2660
  /**
2594
- * Forbidden - Permission denied
2661
+ * Forbidden
2595
2662
  */
2596
- 403: {
2597
- message: string;
2598
- };
2663
+ 403: ErrorResponse;
2599
2664
  /**
2600
- * Not found
2665
+ * Not Found
2601
2666
  */
2602
- 404: {
2603
- message: string;
2604
- };
2667
+ 404: ErrorResponse;
2605
2668
  /**
2606
2669
  * Conflict
2607
2670
  */
@@ -2615,38 +2678,51 @@ export type GetUploadConfigurationErrors = {
2615
2678
  */
2616
2679
  503: ErrorResponse;
2617
2680
  };
2618
- export type GetUploadConfigurationError = GetUploadConfigurationErrors[keyof GetUploadConfigurationErrors];
2619
- export type GetUploadConfigurationResponses = {
2681
+ export type InternalEditCommentError = InternalEditCommentErrors[keyof InternalEditCommentErrors];
2682
+ export type InternalEditCommentResponses = {
2620
2683
  /**
2621
- * Returns presigned upload URL and configuration
2684
+ * Returns the updated comment
2622
2685
  */
2623
- 200: UploadConfiguration;
2686
+ 200: {
2687
+ comment: {
2688
+ commentId: string;
2689
+ author: {
2690
+ dazlUserId: string;
2691
+ };
2692
+ content: string;
2693
+ mentions: Array<UserMention>;
2694
+ createdAt: string;
2695
+ updatedAt: string;
2696
+ lastActivityAt: string;
2697
+ isEdited: boolean;
2698
+ replies: Array<{
2699
+ replyId: string;
2700
+ author: {
2701
+ dazlUserId: string;
2702
+ };
2703
+ content: string;
2704
+ mentions: Array<UserMention>;
2705
+ createdAt: string;
2706
+ updatedAt: string;
2707
+ }>;
2708
+ resolved?: CommentResolved;
2709
+ context?: CommentContext;
2710
+ };
2711
+ };
2624
2712
  };
2625
- export type GetUploadConfigurationResponse = GetUploadConfigurationResponses[keyof GetUploadConfigurationResponses];
2626
- export type ListFilesData = {
2713
+ export type InternalEditCommentResponse = InternalEditCommentResponses[keyof InternalEditCommentResponses];
2714
+ export type InternalResolveCommentData = {
2627
2715
  body?: never;
2628
- path?: never;
2629
- query: {
2630
- /**
2631
- * Project identifier
2632
- */
2716
+ path: {
2633
2717
  projectId: string;
2634
- /**
2635
- * Filter by MIME type prefix (e.g., 'image/' for all images)
2636
- */
2637
- mimeType?: string;
2638
- /**
2639
- * Cursor token for fetching the next page of results
2640
- */
2641
- cursor?: string;
2642
- /**
2643
- * Number of items per page
2644
- */
2645
- pageSize?: number;
2718
+ commentId: string;
2646
2719
  };
2647
- url: '/media/list';
2720
+ query: {
2721
+ resolvedByDazlUserId: string;
2722
+ };
2723
+ url: '/project/{projectId}/comments/{commentId}/resolve';
2648
2724
  };
2649
- export type ListFilesErrors = {
2725
+ export type InternalResolveCommentErrors = {
2650
2726
  /**
2651
2727
  * Bad request - Invalid parameters or malformed JSON
2652
2728
  */
@@ -2659,17 +2735,13 @@ export type ListFilesErrors = {
2659
2735
  */
2660
2736
  401: ErrorResponse;
2661
2737
  /**
2662
- * Forbidden - Permission denied
2738
+ * Forbidden
2663
2739
  */
2664
- 403: {
2665
- message: string;
2666
- };
2740
+ 403: ErrorResponse;
2667
2741
  /**
2668
- * Not found
2742
+ * Not Found
2669
2743
  */
2670
- 404: {
2671
- message: string;
2672
- };
2744
+ 404: ErrorResponse;
2673
2745
  /**
2674
2746
  * Conflict
2675
2747
  */
@@ -2683,21 +2755,776 @@ export type ListFilesErrors = {
2683
2755
  */
2684
2756
  503: ErrorResponse;
2685
2757
  };
2686
- export type ListFilesError = ListFilesErrors[keyof ListFilesErrors];
2687
- export type ListFilesResponses = {
2758
+ export type InternalResolveCommentError = InternalResolveCommentErrors[keyof InternalResolveCommentErrors];
2759
+ export type InternalResolveCommentResponses = {
2688
2760
  /**
2689
- * Returns paginated list of files in the project
2761
+ * Returns the resolved comment
2690
2762
  */
2691
- 200: MediaFileList;
2763
+ 200: {
2764
+ comment: {
2765
+ commentId: string;
2766
+ author: {
2767
+ dazlUserId: string;
2768
+ };
2769
+ content: string;
2770
+ mentions: Array<UserMention>;
2771
+ createdAt: string;
2772
+ updatedAt: string;
2773
+ lastActivityAt: string;
2774
+ isEdited: boolean;
2775
+ replies: Array<{
2776
+ replyId: string;
2777
+ author: {
2778
+ dazlUserId: string;
2779
+ };
2780
+ content: string;
2781
+ mentions: Array<UserMention>;
2782
+ createdAt: string;
2783
+ updatedAt: string;
2784
+ }>;
2785
+ resolved?: CommentResolved;
2786
+ context?: CommentContext;
2787
+ };
2788
+ };
2692
2789
  };
2693
- export type ListFilesResponse = ListFilesResponses[keyof ListFilesResponses];
2694
- export type CreateMediaData = {
2695
- body: {
2696
- /**
2697
- * Unique identifier for the media file
2698
- */
2699
- id: string;
2700
- /**
2790
+ export type InternalResolveCommentResponse = InternalResolveCommentResponses[keyof InternalResolveCommentResponses];
2791
+ export type InternalReopenCommentData = {
2792
+ body?: never;
2793
+ path: {
2794
+ projectId: string;
2795
+ commentId: string;
2796
+ };
2797
+ query?: never;
2798
+ url: '/project/{projectId}/comments/{commentId}/reopen';
2799
+ };
2800
+ export type InternalReopenCommentErrors = {
2801
+ /**
2802
+ * Bad request - Invalid parameters or malformed JSON
2803
+ */
2804
+ 400: {
2805
+ message: string;
2806
+ issues?: string;
2807
+ };
2808
+ /**
2809
+ * Unauthorized
2810
+ */
2811
+ 401: ErrorResponse;
2812
+ /**
2813
+ * Forbidden
2814
+ */
2815
+ 403: ErrorResponse;
2816
+ /**
2817
+ * Not Found
2818
+ */
2819
+ 404: ErrorResponse;
2820
+ /**
2821
+ * Conflict
2822
+ */
2823
+ 409: ErrorResponse;
2824
+ /**
2825
+ * Internal server error
2826
+ */
2827
+ 500: ErrorResponse;
2828
+ /**
2829
+ * Service Unavailable
2830
+ */
2831
+ 503: ErrorResponse;
2832
+ };
2833
+ export type InternalReopenCommentError = InternalReopenCommentErrors[keyof InternalReopenCommentErrors];
2834
+ export type InternalReopenCommentResponses = {
2835
+ /**
2836
+ * Returns the reopened comment
2837
+ */
2838
+ 200: {
2839
+ comment: {
2840
+ commentId: string;
2841
+ author: {
2842
+ dazlUserId: string;
2843
+ };
2844
+ content: string;
2845
+ mentions: Array<UserMention>;
2846
+ createdAt: string;
2847
+ updatedAt: string;
2848
+ lastActivityAt: string;
2849
+ isEdited: boolean;
2850
+ replies: Array<{
2851
+ replyId: string;
2852
+ author: {
2853
+ dazlUserId: string;
2854
+ };
2855
+ content: string;
2856
+ mentions: Array<UserMention>;
2857
+ createdAt: string;
2858
+ updatedAt: string;
2859
+ }>;
2860
+ resolved?: CommentResolved;
2861
+ context?: CommentContext;
2862
+ };
2863
+ };
2864
+ };
2865
+ export type InternalReopenCommentResponse = InternalReopenCommentResponses[keyof InternalReopenCommentResponses];
2866
+ export type InternalCreateReplyData = {
2867
+ body: InternalCreateReplyInput;
2868
+ path: {
2869
+ projectId: string;
2870
+ commentId: string;
2871
+ };
2872
+ query?: never;
2873
+ url: '/project/{projectId}/comments/{commentId}/replies';
2874
+ };
2875
+ export type InternalCreateReplyErrors = {
2876
+ /**
2877
+ * Bad request - Invalid parameters or malformed JSON
2878
+ */
2879
+ 400: {
2880
+ message: string;
2881
+ issues?: string;
2882
+ };
2883
+ /**
2884
+ * Unauthorized
2885
+ */
2886
+ 401: ErrorResponse;
2887
+ /**
2888
+ * Forbidden
2889
+ */
2890
+ 403: ErrorResponse;
2891
+ /**
2892
+ * Not Found
2893
+ */
2894
+ 404: ErrorResponse;
2895
+ /**
2896
+ * Conflict
2897
+ */
2898
+ 409: ErrorResponse;
2899
+ /**
2900
+ * Internal server error
2901
+ */
2902
+ 500: ErrorResponse;
2903
+ /**
2904
+ * Service Unavailable
2905
+ */
2906
+ 503: ErrorResponse;
2907
+ };
2908
+ export type InternalCreateReplyError = InternalCreateReplyErrors[keyof InternalCreateReplyErrors];
2909
+ export type InternalCreateReplyResponses = {
2910
+ /**
2911
+ * Returns the created reply
2912
+ */
2913
+ 200: {
2914
+ reply: {
2915
+ replyId: string;
2916
+ author: {
2917
+ dazlUserId: string;
2918
+ };
2919
+ content: string;
2920
+ mentions: Array<UserMention>;
2921
+ createdAt: string;
2922
+ updatedAt: string;
2923
+ };
2924
+ };
2925
+ };
2926
+ export type InternalCreateReplyResponse = InternalCreateReplyResponses[keyof InternalCreateReplyResponses];
2927
+ export type InternalDeleteReplyData = {
2928
+ body?: never;
2929
+ path: {
2930
+ projectId: string;
2931
+ commentId: string;
2932
+ replyId: string;
2933
+ };
2934
+ query?: never;
2935
+ url: '/project/{projectId}/comments/{commentId}/replies/{replyId}';
2936
+ };
2937
+ export type InternalDeleteReplyErrors = {
2938
+ /**
2939
+ * Bad request - Invalid parameters or malformed JSON
2940
+ */
2941
+ 400: {
2942
+ message: string;
2943
+ issues?: string;
2944
+ };
2945
+ /**
2946
+ * Unauthorized
2947
+ */
2948
+ 401: ErrorResponse;
2949
+ /**
2950
+ * Forbidden
2951
+ */
2952
+ 403: ErrorResponse;
2953
+ /**
2954
+ * Not Found
2955
+ */
2956
+ 404: ErrorResponse;
2957
+ /**
2958
+ * Conflict
2959
+ */
2960
+ 409: ErrorResponse;
2961
+ /**
2962
+ * Internal server error
2963
+ */
2964
+ 500: ErrorResponse;
2965
+ /**
2966
+ * Service Unavailable
2967
+ */
2968
+ 503: ErrorResponse;
2969
+ };
2970
+ export type InternalDeleteReplyError = InternalDeleteReplyErrors[keyof InternalDeleteReplyErrors];
2971
+ export type InternalDeleteReplyResponses = {
2972
+ /**
2973
+ * Acknowledges that the reply was deleted
2974
+ */
2975
+ 200: {
2976
+ success: true;
2977
+ };
2978
+ };
2979
+ export type InternalDeleteReplyResponse = InternalDeleteReplyResponses[keyof InternalDeleteReplyResponses];
2980
+ export type InternalEditReplyData = {
2981
+ body: InternalEditReplyInput;
2982
+ path: {
2983
+ projectId: string;
2984
+ commentId: string;
2985
+ replyId: string;
2986
+ };
2987
+ query?: never;
2988
+ url: '/project/{projectId}/comments/{commentId}/replies/{replyId}';
2989
+ };
2990
+ export type InternalEditReplyErrors = {
2991
+ /**
2992
+ * Bad request - Invalid parameters or malformed JSON
2993
+ */
2994
+ 400: {
2995
+ message: string;
2996
+ issues?: string;
2997
+ };
2998
+ /**
2999
+ * Unauthorized
3000
+ */
3001
+ 401: ErrorResponse;
3002
+ /**
3003
+ * Forbidden
3004
+ */
3005
+ 403: ErrorResponse;
3006
+ /**
3007
+ * Not Found
3008
+ */
3009
+ 404: ErrorResponse;
3010
+ /**
3011
+ * Conflict
3012
+ */
3013
+ 409: ErrorResponse;
3014
+ /**
3015
+ * Internal server error
3016
+ */
3017
+ 500: ErrorResponse;
3018
+ /**
3019
+ * Service Unavailable
3020
+ */
3021
+ 503: ErrorResponse;
3022
+ };
3023
+ export type InternalEditReplyError = InternalEditReplyErrors[keyof InternalEditReplyErrors];
3024
+ export type InternalEditReplyResponses = {
3025
+ /**
3026
+ * Returns the updated reply
3027
+ */
3028
+ 200: {
3029
+ reply: {
3030
+ replyId: string;
3031
+ author: {
3032
+ dazlUserId: string;
3033
+ };
3034
+ content: string;
3035
+ mentions: Array<UserMention>;
3036
+ createdAt: string;
3037
+ updatedAt: string;
3038
+ };
3039
+ };
3040
+ };
3041
+ export type InternalEditReplyResponse = InternalEditReplyResponses[keyof InternalEditReplyResponses];
3042
+ export type GetPublicTemplatesData = {
3043
+ body?: never;
3044
+ path?: never;
3045
+ query?: {
3046
+ withScreenshot?: boolean | null;
3047
+ };
3048
+ url: '/template/public-templates';
3049
+ };
3050
+ export type GetPublicTemplatesErrors = {
3051
+ /**
3052
+ * Bad request - Invalid parameters or malformed JSON
3053
+ */
3054
+ 400: {
3055
+ message: string;
3056
+ issues?: string;
3057
+ };
3058
+ /**
3059
+ * Unauthorized
3060
+ */
3061
+ 401: ErrorResponse;
3062
+ /**
3063
+ * Forbidden
3064
+ */
3065
+ 403: ErrorResponse;
3066
+ /**
3067
+ * Not Found
3068
+ */
3069
+ 404: ErrorResponse;
3070
+ /**
3071
+ * Conflict
3072
+ */
3073
+ 409: ErrorResponse;
3074
+ /**
3075
+ * Internal server error
3076
+ */
3077
+ 500: ErrorResponse;
3078
+ /**
3079
+ * Service Unavailable
3080
+ */
3081
+ 503: ErrorResponse;
3082
+ };
3083
+ export type GetPublicTemplatesError = GetPublicTemplatesErrors[keyof GetPublicTemplatesErrors];
3084
+ export type GetPublicTemplatesResponses = {
3085
+ /**
3086
+ * Returns all public templates. Optionally includes screenshots when `withScreenshot` is true. Templates are ordered by the greatest of createdAt and lastUsedAt in descending order.
3087
+ */
3088
+ 200: {
3089
+ templates: Array<{
3090
+ screenshotUrl: string | null;
3091
+ originProjectName: string | null;
3092
+ } & TemplateRaw>;
3093
+ };
3094
+ };
3095
+ export type GetPublicTemplatesResponse = GetPublicTemplatesResponses[keyof GetPublicTemplatesResponses];
3096
+ export type GetUserTemplatesData = {
3097
+ body?: never;
3098
+ path: {
3099
+ dazlId: string;
3100
+ };
3101
+ query?: {
3102
+ withScreenshot?: boolean | null;
3103
+ withOriginProject?: boolean | null;
3104
+ };
3105
+ url: '/template/user/{dazlId}';
3106
+ };
3107
+ export type GetUserTemplatesErrors = {
3108
+ /**
3109
+ * Bad request - Invalid parameters or malformed JSON
3110
+ */
3111
+ 400: {
3112
+ message: string;
3113
+ issues?: string;
3114
+ };
3115
+ /**
3116
+ * Unauthorized
3117
+ */
3118
+ 401: ErrorResponse;
3119
+ /**
3120
+ * Forbidden
3121
+ */
3122
+ 403: ErrorResponse;
3123
+ /**
3124
+ * Not Found
3125
+ */
3126
+ 404: ErrorResponse;
3127
+ /**
3128
+ * Conflict
3129
+ */
3130
+ 409: ErrorResponse;
3131
+ /**
3132
+ * Internal server error
3133
+ */
3134
+ 500: ErrorResponse;
3135
+ /**
3136
+ * Service Unavailable
3137
+ */
3138
+ 503: ErrorResponse;
3139
+ };
3140
+ export type GetUserTemplatesError = GetUserTemplatesErrors[keyof GetUserTemplatesErrors];
3141
+ export type GetUserTemplatesResponses = {
3142
+ /**
3143
+ * Returns all templates for the specified user. Templates are ordered by the greatest of createdAt and lastUsedAt in descending order.
3144
+ */
3145
+ 200: {
3146
+ templates: Array<{
3147
+ screenshotUrl: string | null;
3148
+ originProjectName: string | null;
3149
+ } & TemplateRaw>;
3150
+ };
3151
+ };
3152
+ export type GetUserTemplatesResponse = GetUserTemplatesResponses[keyof GetUserTemplatesResponses];
3153
+ export type DeleteTemplateData = {
3154
+ /**
3155
+ * Owner dazlId of the user attempting to delete the template
3156
+ */
3157
+ body?: {
3158
+ ownerDazlId: string;
3159
+ };
3160
+ path: {
3161
+ templateId: string;
3162
+ };
3163
+ query?: never;
3164
+ url: '/template/{templateId}';
3165
+ };
3166
+ export type DeleteTemplateErrors = {
3167
+ /**
3168
+ * Bad request - Invalid parameters or malformed JSON
3169
+ */
3170
+ 400: {
3171
+ message: string;
3172
+ issues?: string;
3173
+ };
3174
+ /**
3175
+ * Unauthorized
3176
+ */
3177
+ 401: ErrorResponse;
3178
+ /**
3179
+ * Forbidden
3180
+ */
3181
+ 403: ErrorResponse;
3182
+ /**
3183
+ * Not Found
3184
+ */
3185
+ 404: ErrorResponse;
3186
+ /**
3187
+ * Conflict
3188
+ */
3189
+ 409: ErrorResponse;
3190
+ /**
3191
+ * Internal server error
3192
+ */
3193
+ 500: ErrorResponse;
3194
+ /**
3195
+ * Service Unavailable
3196
+ */
3197
+ 503: ErrorResponse;
3198
+ };
3199
+ export type DeleteTemplateError = DeleteTemplateErrors[keyof DeleteTemplateErrors];
3200
+ export type DeleteTemplateResponses = {
3201
+ /**
3202
+ * Deletes the template with the specified ID.
3203
+ */
3204
+ 200: {
3205
+ templateId: string;
3206
+ };
3207
+ };
3208
+ export type DeleteTemplateResponse = DeleteTemplateResponses[keyof DeleteTemplateResponses];
3209
+ export type GetTemplateData = {
3210
+ body?: never;
3211
+ path: {
3212
+ templateId: string;
3213
+ };
3214
+ query?: {
3215
+ withScreenshot?: boolean | null;
3216
+ };
3217
+ url: '/template/{templateId}';
3218
+ };
3219
+ export type GetTemplateErrors = {
3220
+ /**
3221
+ * Bad request - Invalid parameters or malformed JSON
3222
+ */
3223
+ 400: {
3224
+ message: string;
3225
+ issues?: string;
3226
+ };
3227
+ /**
3228
+ * Unauthorized
3229
+ */
3230
+ 401: ErrorResponse;
3231
+ /**
3232
+ * Forbidden
3233
+ */
3234
+ 403: ErrorResponse;
3235
+ /**
3236
+ * Not Found
3237
+ */
3238
+ 404: ErrorResponse;
3239
+ /**
3240
+ * Conflict
3241
+ */
3242
+ 409: ErrorResponse;
3243
+ /**
3244
+ * Internal server error
3245
+ */
3246
+ 500: ErrorResponse;
3247
+ /**
3248
+ * Service Unavailable
3249
+ */
3250
+ 503: ErrorResponse;
3251
+ };
3252
+ export type GetTemplateError = GetTemplateErrors[keyof GetTemplateErrors];
3253
+ export type GetTemplateResponses = {
3254
+ /**
3255
+ * Returns the template with the specified ID.
3256
+ */
3257
+ 200: {
3258
+ template: TemplateRaw;
3259
+ };
3260
+ };
3261
+ export type GetTemplateResponse = GetTemplateResponses[keyof GetTemplateResponses];
3262
+ export type UpdateTemplateData = {
3263
+ body: {
3264
+ description?: string | null;
3265
+ lastUsedAt?: string | null;
3266
+ name?: string;
3267
+ usageCount?: number;
3268
+ isPublic?: boolean;
3269
+ ownerDazlId?: string;
3270
+ };
3271
+ path: {
3272
+ templateId: string;
3273
+ };
3274
+ query?: never;
3275
+ url: '/template/{templateId}';
3276
+ };
3277
+ export type UpdateTemplateErrors = {
3278
+ /**
3279
+ * Bad request - Invalid parameters or malformed JSON
3280
+ */
3281
+ 400: {
3282
+ message: string;
3283
+ issues?: string;
3284
+ };
3285
+ /**
3286
+ * Unauthorized
3287
+ */
3288
+ 401: ErrorResponse;
3289
+ /**
3290
+ * Forbidden
3291
+ */
3292
+ 403: ErrorResponse;
3293
+ /**
3294
+ * Not Found
3295
+ */
3296
+ 404: ErrorResponse;
3297
+ /**
3298
+ * Conflict
3299
+ */
3300
+ 409: ErrorResponse;
3301
+ /**
3302
+ * Internal server error
3303
+ */
3304
+ 500: ErrorResponse;
3305
+ /**
3306
+ * Service Unavailable
3307
+ */
3308
+ 503: ErrorResponse;
3309
+ };
3310
+ export type UpdateTemplateError = UpdateTemplateErrors[keyof UpdateTemplateErrors];
3311
+ export type UpdateTemplateResponses = {
3312
+ /**
3313
+ * Updates the template with the specified ID.
3314
+ */
3315
+ 200: {
3316
+ template: TemplateRaw;
3317
+ };
3318
+ };
3319
+ export type UpdateTemplateResponse = UpdateTemplateResponses[keyof UpdateTemplateResponses];
3320
+ export type CreateTemplateData = {
3321
+ body: {
3322
+ originProjectId: string;
3323
+ userDazlId: string;
3324
+ } & {
3325
+ preserveChatHistory: boolean;
3326
+ preserveEnvFile: boolean;
3327
+ name: string;
3328
+ description?: string;
3329
+ };
3330
+ path?: never;
3331
+ query?: never;
3332
+ url: '/template/create';
3333
+ };
3334
+ export type CreateTemplateErrors = {
3335
+ /**
3336
+ * Bad request - Invalid parameters or malformed JSON
3337
+ */
3338
+ 400: {
3339
+ message: string;
3340
+ issues?: string;
3341
+ };
3342
+ /**
3343
+ * Unauthorized
3344
+ */
3345
+ 401: ErrorResponse;
3346
+ /**
3347
+ * Forbidden
3348
+ */
3349
+ 403: ErrorResponse;
3350
+ /**
3351
+ * Not Found
3352
+ */
3353
+ 404: ErrorResponse;
3354
+ /**
3355
+ * Conflict
3356
+ */
3357
+ 409: ErrorResponse;
3358
+ /**
3359
+ * Internal server error
3360
+ */
3361
+ 500: ErrorResponse;
3362
+ /**
3363
+ * Service Unavailable
3364
+ */
3365
+ 503: ErrorResponse;
3366
+ };
3367
+ export type CreateTemplateError = CreateTemplateErrors[keyof CreateTemplateErrors];
3368
+ export type CreateTemplateResponses = {
3369
+ /**
3370
+ * Creates a new template from the specified project for the specified user.
3371
+ */
3372
+ 200: {
3373
+ template: TemplateRaw;
3374
+ };
3375
+ };
3376
+ export type CreateTemplateResponse = CreateTemplateResponses[keyof CreateTemplateResponses];
3377
+ export type GetUploadConfigurationData = {
3378
+ body: {
3379
+ /**
3380
+ * File path within the project
3381
+ */
3382
+ path: string;
3383
+ /**
3384
+ * Project identifier (optional for account-level uploads)
3385
+ */
3386
+ projectId?: string;
3387
+ /**
3388
+ * MIME type of the file to upload
3389
+ */
3390
+ mimeType?: string;
3391
+ /**
3392
+ * Access control level for the file
3393
+ */
3394
+ acl?: 'public' | 'private';
3395
+ /**
3396
+ * Callback URL to notify after upload completion
3397
+ */
3398
+ callback?: string;
3399
+ /**
3400
+ * Upload protocol to use
3401
+ */
3402
+ protocol?: 'tus';
3403
+ };
3404
+ path?: never;
3405
+ query?: never;
3406
+ url: '/media/upload-configuration';
3407
+ };
3408
+ export type GetUploadConfigurationErrors = {
3409
+ /**
3410
+ * Bad request - Invalid parameters or malformed JSON
3411
+ */
3412
+ 400: {
3413
+ message: string;
3414
+ issues?: string;
3415
+ };
3416
+ /**
3417
+ * Unauthorized
3418
+ */
3419
+ 401: ErrorResponse;
3420
+ /**
3421
+ * Forbidden - Permission denied
3422
+ */
3423
+ 403: {
3424
+ message: string;
3425
+ };
3426
+ /**
3427
+ * Not found
3428
+ */
3429
+ 404: {
3430
+ message: string;
3431
+ };
3432
+ /**
3433
+ * Conflict
3434
+ */
3435
+ 409: ErrorResponse;
3436
+ /**
3437
+ * Internal server error
3438
+ */
3439
+ 500: ErrorResponse;
3440
+ /**
3441
+ * Service Unavailable
3442
+ */
3443
+ 503: ErrorResponse;
3444
+ };
3445
+ export type GetUploadConfigurationError = GetUploadConfigurationErrors[keyof GetUploadConfigurationErrors];
3446
+ export type GetUploadConfigurationResponses = {
3447
+ /**
3448
+ * Returns presigned upload URL and configuration
3449
+ */
3450
+ 200: UploadConfiguration;
3451
+ };
3452
+ export type GetUploadConfigurationResponse = GetUploadConfigurationResponses[keyof GetUploadConfigurationResponses];
3453
+ export type ListFilesData = {
3454
+ body?: never;
3455
+ path?: never;
3456
+ query: {
3457
+ /**
3458
+ * Project identifier
3459
+ */
3460
+ projectId: string;
3461
+ /**
3462
+ * Filter by MIME type prefix (e.g., 'image/' for all images)
3463
+ */
3464
+ mimeType?: string;
3465
+ /**
3466
+ * Cursor token for fetching the next page of results
3467
+ */
3468
+ cursor?: string;
3469
+ /**
3470
+ * Number of items per page
3471
+ */
3472
+ pageSize?: number;
3473
+ };
3474
+ url: '/media/list';
3475
+ };
3476
+ export type ListFilesErrors = {
3477
+ /**
3478
+ * Bad request - Invalid parameters or malformed JSON
3479
+ */
3480
+ 400: {
3481
+ message: string;
3482
+ issues?: string;
3483
+ };
3484
+ /**
3485
+ * Unauthorized
3486
+ */
3487
+ 401: ErrorResponse;
3488
+ /**
3489
+ * Forbidden - Permission denied
3490
+ */
3491
+ 403: {
3492
+ message: string;
3493
+ };
3494
+ /**
3495
+ * Not found
3496
+ */
3497
+ 404: {
3498
+ message: string;
3499
+ };
3500
+ /**
3501
+ * Conflict
3502
+ */
3503
+ 409: ErrorResponse;
3504
+ /**
3505
+ * Internal server error
3506
+ */
3507
+ 500: ErrorResponse;
3508
+ /**
3509
+ * Service Unavailable
3510
+ */
3511
+ 503: ErrorResponse;
3512
+ };
3513
+ export type ListFilesError = ListFilesErrors[keyof ListFilesErrors];
3514
+ export type ListFilesResponses = {
3515
+ /**
3516
+ * Returns paginated list of files in the project
3517
+ */
3518
+ 200: MediaFileList;
3519
+ };
3520
+ export type ListFilesResponse = ListFilesResponses[keyof ListFilesResponses];
3521
+ export type CreateMediaData = {
3522
+ body: {
3523
+ /**
3524
+ * Unique identifier for the media file
3525
+ */
3526
+ id: string;
3527
+ /**
2701
3528
  * MIME type of the media file
2702
3529
  */
2703
3530
  mimeType: string;
@@ -3141,19 +3968,7 @@ export type ScrapePageContentResponses = {
3141
3968
  images?: {
3142
3969
  [key: string]: unknown;
3143
3970
  } | null;
3144
- [key: string]: unknown | 'light' | 'dark' | null | string | null | {
3145
- [key: string]: unknown;
3146
- } | null | Array<{
3147
- [key: string]: unknown;
3148
- }> | null | {
3149
- [key: string]: unknown;
3150
- } | null | {
3151
- [key: string]: unknown;
3152
- } | null | {
3153
- [key: string]: unknown;
3154
- } | null | {
3155
- [key: string]: unknown;
3156
- } | null | undefined;
3971
+ [key: string]: unknown;
3157
3972
  };
3158
3973
  };
3159
3974
  };