samva 0.28.0 → 0.29.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.
Files changed (64) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +2 -0
  3. package/dist/client/sdk.gen.d.ts +156 -1
  4. package/dist/client/sdk.gen.js +475 -1
  5. package/dist/client/types.gen.d.ts +1653 -183
  6. package/dist/effect/campaigns.d.ts +32 -0
  7. package/dist/effect/generated/agents.js +36 -36
  8. package/dist/effect/generated/analytics.js +24 -24
  9. package/dist/effect/generated/api-keys.js +29 -29
  10. package/dist/effect/generated/attachments.js +13 -13
  11. package/dist/effect/generated/brands.js +13 -13
  12. package/dist/effect/generated/campaigns.d.ts +178 -60
  13. package/dist/effect/generated/campaigns.js +92 -104
  14. package/dist/effect/generated/contact-events.js +5 -5
  15. package/dist/effect/generated/contact-groups.js +38 -38
  16. package/dist/effect/generated/contacts.js +93 -93
  17. package/dist/effect/generated/conversations.js +38 -38
  18. package/dist/effect/generated/custom-fields.js +15 -15
  19. package/dist/effect/generated/email.js +225 -225
  20. package/dist/effect/generated/events.js +5 -5
  21. package/dist/effect/generated/extension-installations.js +35 -35
  22. package/dist/effect/generated/extensions.js +24 -24
  23. package/dist/effect/generated/feedback.js +6 -6
  24. package/dist/effect/generated/index.d.ts +5 -1
  25. package/dist/effect/generated/journeys.js +67 -67
  26. package/dist/effect/generated/mailboxes.js +286 -286
  27. package/dist/effect/generated/media.js +16 -16
  28. package/dist/effect/generated/messages.js +65 -65
  29. package/dist/effect/generated/namespaces.js +27 -27
  30. package/dist/effect/generated/operations.js +6 -6
  31. package/dist/effect/generated/organizations.js +19 -19
  32. package/dist/effect/generated/publication-domains.d.ts +548 -0
  33. package/dist/effect/generated/publication-domains.js +163 -0
  34. package/dist/effect/generated/scheduled-messages.js +25 -25
  35. package/dist/effect/generated/shared.d.ts +142 -30
  36. package/dist/effect/generated/shared.js +356 -328
  37. package/dist/effect/generated/subscriptions.js +10 -10
  38. package/dist/effect/generated/templates.d.ts +172 -15
  39. package/dist/effect/generated/templates.js +207 -162
  40. package/dist/effect/generated/topic-forms.js +21 -21
  41. package/dist/effect/generated/topic-issues.d.ts +2995 -0
  42. package/dist/effect/generated/topic-issues.js +985 -0
  43. package/dist/effect/generated/topics.d.ts +61 -1
  44. package/dist/effect/generated/topics.js +39 -31
  45. package/dist/effect/generated/webhooks.js +50 -50
  46. package/dist/effect/generated/whoami.js +10 -10
  47. package/dist/effect/generated-metadata.d.ts +70 -0
  48. package/dist/effect/generated-metadata.js +57 -13
  49. package/dist/effect/index.d.ts +2 -0
  50. package/dist/effect/index.js +3 -1
  51. package/dist/effect/journeys.d.ts +112 -112
  52. package/dist/effect/mailboxes.d.ts +78 -78
  53. package/dist/effect/publication-domains.d.ts +14 -0
  54. package/dist/effect/publication-domains.js +17 -0
  55. package/dist/effect/topic-issues.d.ts +57 -0
  56. package/dist/effect/topic-issues.js +33 -0
  57. package/dist/effect/topics.d.ts +6 -2
  58. package/dist/package.js +1 -1
  59. package/dist/promises/index.d.ts +5 -1
  60. package/dist/promises/index.js +5 -1
  61. package/dist/promises/types.gen.d.ts +1 -1
  62. package/dist/service-map.d.ts +74 -0
  63. package/dist/service-map.js +56 -0
  64. package/package.json +11 -3
@@ -1705,6 +1705,71 @@ export type AnalyticsQueryError = {
1705
1705
  _tag: "AnalyticsQueryError";
1706
1706
  message: string;
1707
1707
  };
1708
+ export type TopicIssueRenderPayload = {
1709
+ path: string;
1710
+ expectedRevision: string;
1711
+ fixture: string;
1712
+ target: "email" | "web";
1713
+ };
1714
+ export type TopicIssueCheckPayload = {
1715
+ path: string;
1716
+ expectedRevision: string;
1717
+ };
1718
+ export type TopicIssueSavePayload = {
1719
+ expectedRevision: string;
1720
+ expectedHead: string;
1721
+ message: string;
1722
+ idempotencyKey: string;
1723
+ };
1724
+ export type TopicIssueRemovePayload = {
1725
+ path: string;
1726
+ idempotencyKey: string;
1727
+ expectedRevision: string;
1728
+ };
1729
+ export type TopicIssueUpdatePayload = {
1730
+ path: string;
1731
+ content: string;
1732
+ idempotencyKey: string;
1733
+ expectedRevision: string;
1734
+ };
1735
+ export type TopicIssueCreatePayload = {
1736
+ path: string;
1737
+ content: string;
1738
+ idempotencyKey: string;
1739
+ expectedRevision?: string | null | undefined;
1740
+ };
1741
+ export type TopicIssueDocument = {
1742
+ projectId: TemplateProjectId;
1743
+ revision: string;
1744
+ path: string;
1745
+ content: string;
1746
+ };
1747
+ export type TopicIssueList = {
1748
+ projectId: TemplateProjectId | null;
1749
+ revision: string | null;
1750
+ items: Array<TopicIssueListItem>;
1751
+ };
1752
+ export type TopicIssueListItem = {
1753
+ path: string;
1754
+ title: string | null;
1755
+ latestSend: TopicIssueSend | null;
1756
+ };
1757
+ export type TopicIssueSend = {
1758
+ campaignId: CampaignId;
1759
+ run: CampaignLatestRun;
1760
+ };
1761
+ export type CampaignLatestRun = {
1762
+ id: CampaignRunId;
1763
+ status: "scheduled" | "resolving" | "dispatching" | "paused" | "completed" | "cancelled" | "failed";
1764
+ scheduledFor: string;
1765
+ completedAt: string | null;
1766
+ totalRecipients: number;
1767
+ dispatchedCount: number;
1768
+ failedCount: number;
1769
+ skippedCount: number;
1770
+ pendingCount: number;
1771
+ estimatedCompletionAt: string | null;
1772
+ };
1708
1773
  export type TopicForm = {
1709
1774
  id: string;
1710
1775
  publicKey: string;
@@ -1779,6 +1844,8 @@ export type Topic = {
1779
1844
  defaultSenderId: EmailSenderId | null;
1780
1845
  replyMailboxId: MailboxId | null;
1781
1846
  templateId: TemplateId | null;
1847
+ archiveEnabled: boolean;
1848
+ publicationSlug: string | null;
1782
1849
  subscriptions: TopicSubscriptionCounts;
1783
1850
  createdAt: string;
1784
1851
  updatedAt: string;
@@ -1794,6 +1861,8 @@ export type TopicUpdatePayload = {
1794
1861
  name?: string | null | undefined;
1795
1862
  description?: string | null | null | undefined;
1796
1863
  default?: "opt_out" | "opt_in" | null | undefined;
1864
+ archiveEnabled?: boolean | null | undefined;
1865
+ publicationSlug?: string | null | null | undefined;
1797
1866
  defaultSenderId?: EmailSenderId | null | null | undefined;
1798
1867
  replyMailboxId?: MailboxId | null | null | undefined;
1799
1868
  templateId?: TemplateId | null | null | undefined;
@@ -1803,6 +1872,8 @@ export type TopicCreatePayload = {
1803
1872
  description?: string | null | null | undefined;
1804
1873
  namespaceId?: NamespaceId | null | null | undefined;
1805
1874
  default?: "opt_out" | "opt_in" | null | undefined;
1875
+ archiveEnabled?: boolean | null | undefined;
1876
+ publicationSlug?: string | null | null | undefined;
1806
1877
  defaultSenderId?: EmailSenderId | null | null | undefined;
1807
1878
  replyMailboxId?: MailboxId | null | null | undefined;
1808
1879
  templateId?: TemplateId | null | null | undefined;
@@ -3361,6 +3432,13 @@ export type CampaignAudience = {
3361
3432
  export type CampaignContent = {
3362
3433
  channel: "email";
3363
3434
  email: CampaignEmailContent;
3435
+ /**
3436
+ * Render a saved Markdown issue from the audience topic's repository. Its saved title and preheader supply the email content; templateData supplies recipient fallbacks.
3437
+ */
3438
+ issue?: {
3439
+ path: string;
3440
+ commit: string;
3441
+ } | null | undefined;
3364
3442
  from?: CampaignFrom | undefined;
3365
3443
  replyMailboxId?: CampaignReplyMailbox | undefined;
3366
3444
  conversationId?: CampaignConversationRef | undefined;
@@ -3490,18 +3568,6 @@ export type Campaign = {
3490
3568
  createdAt: string;
3491
3569
  updatedAt: string;
3492
3570
  };
3493
- export type CampaignLatestRun = {
3494
- id: CampaignRunId;
3495
- status: "scheduled" | "resolving" | "dispatching" | "paused" | "completed" | "cancelled" | "failed";
3496
- scheduledFor: string;
3497
- completedAt: string | null;
3498
- totalRecipients: number;
3499
- dispatchedCount: number;
3500
- failedCount: number;
3501
- skippedCount: number;
3502
- pendingCount: number;
3503
- estimatedCompletionAt: string | null;
3504
- };
3505
3571
  export type CampaignDefinitionSummary = {
3506
3572
  state: "editable" | "frozen" | "archived";
3507
3573
  frozenAt: string | null;
@@ -3509,6 +3575,13 @@ export type CampaignDefinitionSummary = {
3509
3575
  export type CampaignContentInput = {
3510
3576
  channel: "email";
3511
3577
  email: CampaignEmailInput;
3578
+ /**
3579
+ * Render a saved Markdown issue from the audience topic's repository. Its saved title and preheader supply the email content; templateData supplies recipient fallbacks.
3580
+ */
3581
+ issue?: {
3582
+ path: string;
3583
+ commit: string;
3584
+ } | null | undefined;
3512
3585
  from?: CampaignFrom | undefined;
3513
3586
  replyMailboxId?: CampaignReplyMailbox | undefined;
3514
3587
  conversationId?: CampaignConversationRef | undefined;
@@ -4839,17 +4912,21 @@ export type CampaignsPreviewErrors = {
4839
4912
  */
4840
4913
  401: UnauthorizedError;
4841
4914
  /**
4842
- * ForbiddenError
4915
+ * FlagDisabledError | ForbiddenError
4843
4916
  */
4844
- 403: ForbiddenError;
4917
+ 403: FlagDisabledError | ForbiddenError;
4845
4918
  /**
4846
4919
  * ResourceNotFoundError
4847
4920
  */
4848
4921
  404: ResourceNotFoundError;
4849
4922
  /**
4850
- * ValidationError
4923
+ * ConflictError
4851
4924
  */
4852
- 422: ValidationError;
4925
+ 409: ConflictError;
4926
+ /**
4927
+ * TemplateSourceError | ValidationError
4928
+ */
4929
+ 422: TemplateSourceError | ValidationError;
4853
4930
  /**
4854
4931
  * InternalError
4855
4932
  */
@@ -4899,9 +4976,9 @@ export type CampaignsSendTestErrors = {
4899
4976
  */
4900
4977
  409: ConflictError;
4901
4978
  /**
4902
- * ValidationError | FromAddressRequiredError | BrandAddressRequiredError | CampaignFooterRequiredError
4979
+ * TemplateSourceError | ValidationError | FromAddressRequiredError | BrandAddressRequiredError | CampaignFooterRequiredError
4903
4980
  */
4904
- 422: ValidationError | FromAddressRequiredError | BrandAddressRequiredError | CampaignFooterRequiredError;
4981
+ 422: TemplateSourceError | ValidationError | FromAddressRequiredError | BrandAddressRequiredError | CampaignFooterRequiredError;
4905
4982
  /**
4906
4983
  * RateLimitedError
4907
4984
  */
@@ -5227,9 +5304,9 @@ export type CampaignsScheduleRunErrors = {
5227
5304
  */
5228
5305
  409: ConflictError;
5229
5306
  /**
5230
- * FromAddressRequiredError | ValidationError | BrandAddressRequiredError | CampaignFooterRequiredError
5307
+ * TemplateSourceError | FromAddressRequiredError | ValidationError | BrandAddressRequiredError | CampaignFooterRequiredError
5231
5308
  */
5232
- 422: FromAddressRequiredError | ValidationError | BrandAddressRequiredError | CampaignFooterRequiredError;
5309
+ 422: TemplateSourceError | FromAddressRequiredError | ValidationError | BrandAddressRequiredError | CampaignFooterRequiredError;
5233
5310
  /**
5234
5311
  * InternalError
5235
5312
  */
@@ -12765,6 +12842,8 @@ export type TopicsCreateData = {
12765
12842
  description?: string | null | null | undefined;
12766
12843
  namespaceId?: NamespaceId | null | null | undefined;
12767
12844
  default?: "opt_out" | "opt_in" | null | undefined;
12845
+ archiveEnabled?: boolean | null | undefined;
12846
+ publicationSlug?: string | null | null | undefined;
12768
12847
  defaultSenderId?: EmailSenderId | null | null | undefined;
12769
12848
  replyMailboxId?: MailboxId | null | null | undefined;
12770
12849
  templateId?: TemplateId | null | null | undefined;
@@ -12953,6 +13032,8 @@ export type TopicsUpdateData = {
12953
13032
  name?: string | null | undefined;
12954
13033
  description?: string | null | null | undefined;
12955
13034
  default?: "opt_out" | "opt_in" | null | undefined;
13035
+ archiveEnabled?: boolean | null | undefined;
13036
+ publicationSlug?: string | null | null | undefined;
12956
13037
  defaultSenderId?: EmailSenderId | null | null | undefined;
12957
13038
  replyMailboxId?: MailboxId | null | null | undefined;
12958
13039
  templateId?: TemplateId | null | null | undefined;
@@ -12976,6 +13057,10 @@ export type TopicsUpdateErrors = {
12976
13057
  * ResourceNotFoundError
12977
13058
  */
12978
13059
  404: ResourceNotFoundError;
13060
+ /**
13061
+ * ConflictError
13062
+ */
13063
+ 409: ConflictError;
12979
13064
  /**
12980
13065
  * ValidationError
12981
13066
  */
@@ -13372,82 +13457,35 @@ export type TopicFormsUpdateResponses = {
13372
13457
  200: TopicForm;
13373
13458
  };
13374
13459
  export type TopicFormsUpdateResponse = TopicFormsUpdateResponses[keyof TopicFormsUpdateResponses];
13375
- export type AnalyticsGetStatsData = {
13460
+ export type TopicIssuesListData = {
13376
13461
  body?: never;
13377
- path?: never;
13378
- query?: {
13379
- after?: string | null | undefined;
13380
- before?: string | null | undefined;
13381
- groupBy?: "day" | "week" | "month" | null | undefined;
13382
- channel?: "email" | null | undefined;
13462
+ path: {
13463
+ id: TopicId;
13383
13464
  };
13384
- url: "/v1/analytics/stats";
13465
+ query?: never;
13466
+ url: "/v1/topics/{id}/issues";
13385
13467
  };
13386
- export type AnalyticsGetStatsErrors = {
13387
- /**
13388
- * AnalyticsQueryError
13389
- */
13390
- 400: AnalyticsQueryError;
13468
+ export type TopicIssuesListErrors = {
13391
13469
  /**
13392
13470
  * UnauthorizedError
13393
13471
  */
13394
13472
  401: UnauthorizedError;
13395
13473
  /**
13396
- * ForbiddenError
13397
- */
13398
- 403: ForbiddenError;
13399
- /**
13400
- * ValidationError
13401
- */
13402
- 422: ValidationError;
13403
- /**
13404
- * InternalError
13405
- */
13406
- 500: InternalError;
13407
- /**
13408
- * GatewayTimeoutError
13409
- */
13410
- 504: GatewayTimeoutError;
13411
- };
13412
- export type AnalyticsGetStatsError = AnalyticsGetStatsErrors[keyof AnalyticsGetStatsErrors];
13413
- export type AnalyticsGetStatsResponses = {
13414
- /**
13415
- * Success
13416
- */
13417
- 200: {
13418
- volumeHistory: Array<{
13419
- date: string;
13420
- email: number;
13421
- }>;
13422
- };
13423
- };
13424
- export type AnalyticsGetStatsResponse = AnalyticsGetStatsResponses[keyof AnalyticsGetStatsResponses];
13425
- export type AnalyticsGetChannelStatsData = {
13426
- body?: never;
13427
- path?: never;
13428
- query?: {
13429
- after?: string | null | undefined;
13430
- before?: string | null | undefined;
13431
- };
13432
- url: "/v1/analytics/channel-stats";
13433
- };
13434
- export type AnalyticsGetChannelStatsErrors = {
13435
- /**
13436
- * AnalyticsQueryError
13474
+ * ForbiddenError | FlagDisabledError
13437
13475
  */
13438
- 400: AnalyticsQueryError;
13476
+ 403: ForbiddenError | FlagDisabledError;
13439
13477
  /**
13440
- * UnauthorizedError
13478
+ * ResourceNotFoundError
13441
13479
  */
13442
- 401: UnauthorizedError;
13480
+ 404: ResourceNotFoundError;
13443
13481
  /**
13444
- * ForbiddenError
13482
+ * ConflictError
13445
13483
  */
13446
- 403: ForbiddenError;
13484
+ 409: ConflictError;
13447
13485
  /**
13448
- * ValidationError
13486
+ * TemplateSourceError | ValidationError
13449
13487
  */
13450
- 422: ValidationError;
13488
+ 422: TemplateSourceError | ValidationError;
13451
13489
  /**
13452
13490
  * InternalError
13453
13491
  */
@@ -13457,103 +13495,48 @@ export type AnalyticsGetChannelStatsErrors = {
13457
13495
  */
13458
13496
  504: GatewayTimeoutError;
13459
13497
  };
13460
- export type AnalyticsGetChannelStatsError = AnalyticsGetChannelStatsErrors[keyof AnalyticsGetChannelStatsErrors];
13461
- export type AnalyticsGetChannelStatsResponses = {
13498
+ export type TopicIssuesListError = TopicIssuesListErrors[keyof TopicIssuesListErrors];
13499
+ export type TopicIssuesListResponses = {
13462
13500
  /**
13463
- * Success
13501
+ * TopicIssueList
13464
13502
  */
13465
- 200: {
13466
- email: {
13467
- sent: number;
13468
- deliveryRate: number;
13469
- uniqueOpenedMessages: number;
13470
- openTrackingEligibleDeliveredMessages: number;
13471
- uniqueMessageOpenRate: number;
13472
- uniqueClickedMessages: number;
13473
- clickTrackingEligibleDeliveredMessages: number;
13474
- uniqueMessageClickRate: number;
13475
- bounceRate: number;
13476
- };
13477
- };
13503
+ 200: TopicIssueList;
13478
13504
  };
13479
- export type AnalyticsGetChannelStatsResponse = AnalyticsGetChannelStatsResponses[keyof AnalyticsGetChannelStatsResponses];
13480
- export type AnalyticsGetTopContactsData = {
13481
- body?: never;
13482
- path?: never;
13483
- query?: {
13484
- after?: string | null | undefined;
13485
- before?: string | null | undefined;
13486
- limit?: number | null | undefined;
13487
- sortBy?: "sent" | "received" | "total" | null | undefined;
13505
+ export type TopicIssuesListResponse = TopicIssuesListResponses[keyof TopicIssuesListResponses];
13506
+ export type TopicIssuesUpdateData = {
13507
+ body: {
13508
+ path: string;
13509
+ content: string;
13510
+ idempotencyKey: string;
13511
+ expectedRevision: string;
13488
13512
  };
13489
- url: "/v1/analytics/top-contacts";
13513
+ path: {
13514
+ id: TopicId;
13515
+ };
13516
+ query?: never;
13517
+ url: "/v1/topics/{id}/issues";
13490
13518
  };
13491
- export type AnalyticsGetTopContactsErrors = {
13492
- /**
13493
- * AnalyticsQueryError
13494
- */
13495
- 400: AnalyticsQueryError;
13519
+ export type TopicIssuesUpdateErrors = {
13496
13520
  /**
13497
13521
  * UnauthorizedError
13498
13522
  */
13499
13523
  401: UnauthorizedError;
13500
13524
  /**
13501
- * ForbiddenError
13502
- */
13503
- 403: ForbiddenError;
13504
- /**
13505
- * ValidationError
13506
- */
13507
- 422: ValidationError;
13508
- /**
13509
- * InternalError
13510
- */
13511
- 500: InternalError;
13512
- /**
13513
- * GatewayTimeoutError
13514
- */
13515
- 504: GatewayTimeoutError;
13516
- };
13517
- export type AnalyticsGetTopContactsError = AnalyticsGetTopContactsErrors[keyof AnalyticsGetTopContactsErrors];
13518
- export type AnalyticsGetTopContactsResponses = {
13519
- /**
13520
- * Success
13521
- */
13522
- 200: Array<{
13523
- id: string;
13524
- name: string | null;
13525
- email: string | null;
13526
- phone: string | null;
13527
- messageCount: number;
13528
- }>;
13529
- };
13530
- export type AnalyticsGetTopContactsResponse = AnalyticsGetTopContactsResponses[keyof AnalyticsGetTopContactsResponses];
13531
- export type AnalyticsGetHourlyDistributionData = {
13532
- body?: never;
13533
- path?: never;
13534
- query?: {
13535
- after?: string | null | undefined;
13536
- before?: string | null | undefined;
13537
- };
13538
- url: "/v1/analytics/hourly-distribution";
13539
- };
13540
- export type AnalyticsGetHourlyDistributionErrors = {
13541
- /**
13542
- * AnalyticsQueryError
13525
+ * ForbiddenError | FlagDisabledError
13543
13526
  */
13544
- 400: AnalyticsQueryError;
13527
+ 403: ForbiddenError | FlagDisabledError;
13545
13528
  /**
13546
- * UnauthorizedError
13529
+ * ResourceNotFoundError
13547
13530
  */
13548
- 401: UnauthorizedError;
13531
+ 404: ResourceNotFoundError;
13549
13532
  /**
13550
- * ForbiddenError
13533
+ * ConflictError
13551
13534
  */
13552
- 403: ForbiddenError;
13535
+ 409: ConflictError;
13553
13536
  /**
13554
- * ValidationError
13537
+ * TemplateSourceError | ValidationError
13555
13538
  */
13556
- 422: ValidationError;
13539
+ 422: TemplateSourceError | ValidationError;
13557
13540
  /**
13558
13541
  * InternalError
13559
13542
  */
@@ -13563,27 +13546,1461 @@ export type AnalyticsGetHourlyDistributionErrors = {
13563
13546
  */
13564
13547
  504: GatewayTimeoutError;
13565
13548
  };
13566
- export type AnalyticsGetHourlyDistributionError = AnalyticsGetHourlyDistributionErrors[keyof AnalyticsGetHourlyDistributionErrors];
13567
- export type AnalyticsGetHourlyDistributionResponses = {
13549
+ export type TopicIssuesUpdateError = TopicIssuesUpdateErrors[keyof TopicIssuesUpdateErrors];
13550
+ export type TopicIssuesUpdateResponses = {
13568
13551
  /**
13569
13552
  * Success
13570
13553
  */
13571
- 200: Array<{
13572
- hour: string;
13573
- count: number;
13574
- }>;
13575
- };
13576
- export type AnalyticsGetHourlyDistributionResponse = AnalyticsGetHourlyDistributionResponses[keyof AnalyticsGetHourlyDistributionResponses];
13577
- export type AnalyticsGetDeliveryMetricsData = {
13578
- body?: never;
13579
- path?: never;
13580
- query?: {
13581
- after?: string | null | undefined;
13582
- before?: string | null | undefined;
13583
- channel?: "email" | null | undefined;
13584
- };
13585
- url: "/v1/analytics/delivery-metrics";
13586
- };
13554
+ 200: {
13555
+ workspace: {
13556
+ projectId: TemplateProjectId;
13557
+ organizationId: OrganizationId | null;
13558
+ ownerEpoch: number;
13559
+ repositoryName: string;
13560
+ defaultBranch: string;
13561
+ baseCommit: string;
13562
+ remoteHead: string;
13563
+ pendingRemoteHead: string | null;
13564
+ revision: string;
13565
+ overlay: {
13566
+ [key: string]: string | null;
13567
+ };
13568
+ assetChanges: Array<{
13569
+ path: string;
13570
+ status: "added" | "modified" | "deleted";
13571
+ }>;
13572
+ conflicts: Array<{
13573
+ path: string;
13574
+ base: string | null;
13575
+ draft: string | null;
13576
+ main: string | null;
13577
+ }>;
13578
+ provenance: {
13579
+ references: Array<{
13580
+ kind: string;
13581
+ digest: string;
13582
+ locator?: string | undefined;
13583
+ }>;
13584
+ };
13585
+ mounts: Array<{
13586
+ kind: "project";
13587
+ root: "/project";
13588
+ access: "read-write";
13589
+ } | {
13590
+ root: string;
13591
+ digest: string;
13592
+ fileCount: number;
13593
+ byteSize: number;
13594
+ kind: "started-from";
13595
+ access: "read-only";
13596
+ templateId: string;
13597
+ slug: string;
13598
+ name: string;
13599
+ } | {
13600
+ root: string;
13601
+ digest: string;
13602
+ fileCount: number;
13603
+ byteSize: number;
13604
+ kind: "resource";
13605
+ access: "read-only";
13606
+ resourceId: string;
13607
+ name: string;
13608
+ } | {
13609
+ root: string;
13610
+ digest: string;
13611
+ fileCount: number;
13612
+ byteSize: number;
13613
+ kind: "library-template";
13614
+ access: "read-only";
13615
+ templateId: string;
13616
+ slug: string;
13617
+ name: string;
13618
+ }>;
13619
+ libraryManifestDigest: string;
13620
+ createdAt: string;
13621
+ updatedAt: string;
13622
+ createdBy: {
13623
+ userId: UserId;
13624
+ via: "api" | "mcp" | "agent";
13625
+ };
13626
+ updatedBy: {
13627
+ userId: UserId;
13628
+ via: "api" | "mcp" | "agent";
13629
+ };
13630
+ };
13631
+ files: {
13632
+ [key: string]: string;
13633
+ };
13634
+ };
13635
+ };
13636
+ export type TopicIssuesUpdateResponse = TopicIssuesUpdateResponses[keyof TopicIssuesUpdateResponses];
13637
+ export type TopicIssuesCreateData = {
13638
+ body: {
13639
+ path: string;
13640
+ content: string;
13641
+ idempotencyKey: string;
13642
+ expectedRevision?: string | null | undefined;
13643
+ };
13644
+ path: {
13645
+ id: TopicId;
13646
+ };
13647
+ query?: never;
13648
+ url: "/v1/topics/{id}/issues";
13649
+ };
13650
+ export type TopicIssuesCreateErrors = {
13651
+ /**
13652
+ * UnauthorizedError
13653
+ */
13654
+ 401: UnauthorizedError;
13655
+ /**
13656
+ * ForbiddenError | FlagDisabledError
13657
+ */
13658
+ 403: ForbiddenError | FlagDisabledError;
13659
+ /**
13660
+ * ResourceNotFoundError
13661
+ */
13662
+ 404: ResourceNotFoundError;
13663
+ /**
13664
+ * ConflictError
13665
+ */
13666
+ 409: ConflictError;
13667
+ /**
13668
+ * TemplateSourceError | ValidationError
13669
+ */
13670
+ 422: TemplateSourceError | ValidationError;
13671
+ /**
13672
+ * InternalError
13673
+ */
13674
+ 500: InternalError;
13675
+ /**
13676
+ * GatewayTimeoutError
13677
+ */
13678
+ 504: GatewayTimeoutError;
13679
+ };
13680
+ export type TopicIssuesCreateError = TopicIssuesCreateErrors[keyof TopicIssuesCreateErrors];
13681
+ export type TopicIssuesCreateResponses = {
13682
+ /**
13683
+ * Success
13684
+ */
13685
+ 200: {
13686
+ workspace: {
13687
+ projectId: TemplateProjectId;
13688
+ organizationId: OrganizationId | null;
13689
+ ownerEpoch: number;
13690
+ repositoryName: string;
13691
+ defaultBranch: string;
13692
+ baseCommit: string;
13693
+ remoteHead: string;
13694
+ pendingRemoteHead: string | null;
13695
+ revision: string;
13696
+ overlay: {
13697
+ [key: string]: string | null;
13698
+ };
13699
+ assetChanges: Array<{
13700
+ path: string;
13701
+ status: "added" | "modified" | "deleted";
13702
+ }>;
13703
+ conflicts: Array<{
13704
+ path: string;
13705
+ base: string | null;
13706
+ draft: string | null;
13707
+ main: string | null;
13708
+ }>;
13709
+ provenance: {
13710
+ references: Array<{
13711
+ kind: string;
13712
+ digest: string;
13713
+ locator?: string | undefined;
13714
+ }>;
13715
+ };
13716
+ mounts: Array<{
13717
+ kind: "project";
13718
+ root: "/project";
13719
+ access: "read-write";
13720
+ } | {
13721
+ root: string;
13722
+ digest: string;
13723
+ fileCount: number;
13724
+ byteSize: number;
13725
+ kind: "started-from";
13726
+ access: "read-only";
13727
+ templateId: string;
13728
+ slug: string;
13729
+ name: string;
13730
+ } | {
13731
+ root: string;
13732
+ digest: string;
13733
+ fileCount: number;
13734
+ byteSize: number;
13735
+ kind: "resource";
13736
+ access: "read-only";
13737
+ resourceId: string;
13738
+ name: string;
13739
+ } | {
13740
+ root: string;
13741
+ digest: string;
13742
+ fileCount: number;
13743
+ byteSize: number;
13744
+ kind: "library-template";
13745
+ access: "read-only";
13746
+ templateId: string;
13747
+ slug: string;
13748
+ name: string;
13749
+ }>;
13750
+ libraryManifestDigest: string;
13751
+ createdAt: string;
13752
+ updatedAt: string;
13753
+ createdBy: {
13754
+ userId: UserId;
13755
+ via: "api" | "mcp" | "agent";
13756
+ };
13757
+ updatedBy: {
13758
+ userId: UserId;
13759
+ via: "api" | "mcp" | "agent";
13760
+ };
13761
+ };
13762
+ files: {
13763
+ [key: string]: string;
13764
+ };
13765
+ };
13766
+ };
13767
+ export type TopicIssuesCreateResponse = TopicIssuesCreateResponses[keyof TopicIssuesCreateResponses];
13768
+ export type TopicIssuesOpenData = {
13769
+ body?: never;
13770
+ path: {
13771
+ id: TopicId;
13772
+ };
13773
+ query?: never;
13774
+ url: "/v1/topics/{id}/issues/workspace";
13775
+ };
13776
+ export type TopicIssuesOpenErrors = {
13777
+ /**
13778
+ * UnauthorizedError
13779
+ */
13780
+ 401: UnauthorizedError;
13781
+ /**
13782
+ * ForbiddenError | FlagDisabledError
13783
+ */
13784
+ 403: ForbiddenError | FlagDisabledError;
13785
+ /**
13786
+ * ResourceNotFoundError
13787
+ */
13788
+ 404: ResourceNotFoundError;
13789
+ /**
13790
+ * ConflictError
13791
+ */
13792
+ 409: ConflictError;
13793
+ /**
13794
+ * TemplateSourceError | ValidationError
13795
+ */
13796
+ 422: TemplateSourceError | ValidationError;
13797
+ /**
13798
+ * InternalError
13799
+ */
13800
+ 500: InternalError;
13801
+ /**
13802
+ * GatewayTimeoutError
13803
+ */
13804
+ 504: GatewayTimeoutError;
13805
+ };
13806
+ export type TopicIssuesOpenError = TopicIssuesOpenErrors[keyof TopicIssuesOpenErrors];
13807
+ export type TopicIssuesOpenResponses = {
13808
+ /**
13809
+ * Success
13810
+ */
13811
+ 200: {
13812
+ workspace: {
13813
+ projectId: TemplateProjectId;
13814
+ organizationId: OrganizationId | null;
13815
+ ownerEpoch: number;
13816
+ repositoryName: string;
13817
+ defaultBranch: string;
13818
+ baseCommit: string;
13819
+ remoteHead: string;
13820
+ pendingRemoteHead: string | null;
13821
+ revision: string;
13822
+ overlay: {
13823
+ [key: string]: string | null;
13824
+ };
13825
+ assetChanges: Array<{
13826
+ path: string;
13827
+ status: "added" | "modified" | "deleted";
13828
+ }>;
13829
+ conflicts: Array<{
13830
+ path: string;
13831
+ base: string | null;
13832
+ draft: string | null;
13833
+ main: string | null;
13834
+ }>;
13835
+ provenance: {
13836
+ references: Array<{
13837
+ kind: string;
13838
+ digest: string;
13839
+ locator?: string | undefined;
13840
+ }>;
13841
+ };
13842
+ mounts: Array<{
13843
+ kind: "project";
13844
+ root: "/project";
13845
+ access: "read-write";
13846
+ } | {
13847
+ root: string;
13848
+ digest: string;
13849
+ fileCount: number;
13850
+ byteSize: number;
13851
+ kind: "started-from";
13852
+ access: "read-only";
13853
+ templateId: string;
13854
+ slug: string;
13855
+ name: string;
13856
+ } | {
13857
+ root: string;
13858
+ digest: string;
13859
+ fileCount: number;
13860
+ byteSize: number;
13861
+ kind: "resource";
13862
+ access: "read-only";
13863
+ resourceId: string;
13864
+ name: string;
13865
+ } | {
13866
+ root: string;
13867
+ digest: string;
13868
+ fileCount: number;
13869
+ byteSize: number;
13870
+ kind: "library-template";
13871
+ access: "read-only";
13872
+ templateId: string;
13873
+ slug: string;
13874
+ name: string;
13875
+ }>;
13876
+ libraryManifestDigest: string;
13877
+ createdAt: string;
13878
+ updatedAt: string;
13879
+ createdBy: {
13880
+ userId: UserId;
13881
+ via: "api" | "mcp" | "agent";
13882
+ };
13883
+ updatedBy: {
13884
+ userId: UserId;
13885
+ via: "api" | "mcp" | "agent";
13886
+ };
13887
+ };
13888
+ files: {
13889
+ [key: string]: string;
13890
+ };
13891
+ };
13892
+ };
13893
+ export type TopicIssuesOpenResponse = TopicIssuesOpenResponses[keyof TopicIssuesOpenResponses];
13894
+ export type TopicIssuesGetData = {
13895
+ body?: never;
13896
+ path: {
13897
+ id: TopicId;
13898
+ };
13899
+ query: {
13900
+ path: string;
13901
+ expectedRevision: string;
13902
+ };
13903
+ url: "/v1/topics/{id}/issues/document";
13904
+ };
13905
+ export type TopicIssuesGetErrors = {
13906
+ /**
13907
+ * UnauthorizedError
13908
+ */
13909
+ 401: UnauthorizedError;
13910
+ /**
13911
+ * ForbiddenError | FlagDisabledError
13912
+ */
13913
+ 403: ForbiddenError | FlagDisabledError;
13914
+ /**
13915
+ * ResourceNotFoundError
13916
+ */
13917
+ 404: ResourceNotFoundError;
13918
+ /**
13919
+ * ConflictError
13920
+ */
13921
+ 409: ConflictError;
13922
+ /**
13923
+ * TemplateSourceError | ValidationError
13924
+ */
13925
+ 422: TemplateSourceError | ValidationError;
13926
+ /**
13927
+ * InternalError
13928
+ */
13929
+ 500: InternalError;
13930
+ /**
13931
+ * GatewayTimeoutError
13932
+ */
13933
+ 504: GatewayTimeoutError;
13934
+ };
13935
+ export type TopicIssuesGetError = TopicIssuesGetErrors[keyof TopicIssuesGetErrors];
13936
+ export type TopicIssuesGetResponses = {
13937
+ /**
13938
+ * TopicIssueDocument
13939
+ */
13940
+ 200: TopicIssueDocument;
13941
+ };
13942
+ export type TopicIssuesGetResponse = TopicIssuesGetResponses[keyof TopicIssuesGetResponses];
13943
+ export type TopicIssuesRemoveData = {
13944
+ body: {
13945
+ path: string;
13946
+ idempotencyKey: string;
13947
+ expectedRevision: string;
13948
+ };
13949
+ path: {
13950
+ id: TopicId;
13951
+ };
13952
+ query?: never;
13953
+ url: "/v1/topics/{id}/issues/remove";
13954
+ };
13955
+ export type TopicIssuesRemoveErrors = {
13956
+ /**
13957
+ * UnauthorizedError
13958
+ */
13959
+ 401: UnauthorizedError;
13960
+ /**
13961
+ * ForbiddenError | FlagDisabledError
13962
+ */
13963
+ 403: ForbiddenError | FlagDisabledError;
13964
+ /**
13965
+ * ResourceNotFoundError
13966
+ */
13967
+ 404: ResourceNotFoundError;
13968
+ /**
13969
+ * ConflictError
13970
+ */
13971
+ 409: ConflictError;
13972
+ /**
13973
+ * TemplateSourceError | ValidationError
13974
+ */
13975
+ 422: TemplateSourceError | ValidationError;
13976
+ /**
13977
+ * InternalError
13978
+ */
13979
+ 500: InternalError;
13980
+ /**
13981
+ * GatewayTimeoutError
13982
+ */
13983
+ 504: GatewayTimeoutError;
13984
+ };
13985
+ export type TopicIssuesRemoveError = TopicIssuesRemoveErrors[keyof TopicIssuesRemoveErrors];
13986
+ export type TopicIssuesRemoveResponses = {
13987
+ /**
13988
+ * Success
13989
+ */
13990
+ 200: {
13991
+ workspace: {
13992
+ projectId: TemplateProjectId;
13993
+ organizationId: OrganizationId | null;
13994
+ ownerEpoch: number;
13995
+ repositoryName: string;
13996
+ defaultBranch: string;
13997
+ baseCommit: string;
13998
+ remoteHead: string;
13999
+ pendingRemoteHead: string | null;
14000
+ revision: string;
14001
+ overlay: {
14002
+ [key: string]: string | null;
14003
+ };
14004
+ assetChanges: Array<{
14005
+ path: string;
14006
+ status: "added" | "modified" | "deleted";
14007
+ }>;
14008
+ conflicts: Array<{
14009
+ path: string;
14010
+ base: string | null;
14011
+ draft: string | null;
14012
+ main: string | null;
14013
+ }>;
14014
+ provenance: {
14015
+ references: Array<{
14016
+ kind: string;
14017
+ digest: string;
14018
+ locator?: string | undefined;
14019
+ }>;
14020
+ };
14021
+ mounts: Array<{
14022
+ kind: "project";
14023
+ root: "/project";
14024
+ access: "read-write";
14025
+ } | {
14026
+ root: string;
14027
+ digest: string;
14028
+ fileCount: number;
14029
+ byteSize: number;
14030
+ kind: "started-from";
14031
+ access: "read-only";
14032
+ templateId: string;
14033
+ slug: string;
14034
+ name: string;
14035
+ } | {
14036
+ root: string;
14037
+ digest: string;
14038
+ fileCount: number;
14039
+ byteSize: number;
14040
+ kind: "resource";
14041
+ access: "read-only";
14042
+ resourceId: string;
14043
+ name: string;
14044
+ } | {
14045
+ root: string;
14046
+ digest: string;
14047
+ fileCount: number;
14048
+ byteSize: number;
14049
+ kind: "library-template";
14050
+ access: "read-only";
14051
+ templateId: string;
14052
+ slug: string;
14053
+ name: string;
14054
+ }>;
14055
+ libraryManifestDigest: string;
14056
+ createdAt: string;
14057
+ updatedAt: string;
14058
+ createdBy: {
14059
+ userId: UserId;
14060
+ via: "api" | "mcp" | "agent";
14061
+ };
14062
+ updatedBy: {
14063
+ userId: UserId;
14064
+ via: "api" | "mcp" | "agent";
14065
+ };
14066
+ };
14067
+ files: {
14068
+ [key: string]: string;
14069
+ };
14070
+ };
14071
+ };
14072
+ export type TopicIssuesRemoveResponse = TopicIssuesRemoveResponses[keyof TopicIssuesRemoveResponses];
14073
+ export type TopicIssuesSaveData = {
14074
+ body: {
14075
+ expectedRevision: string;
14076
+ expectedHead: string;
14077
+ message: string;
14078
+ idempotencyKey: string;
14079
+ };
14080
+ path: {
14081
+ id: TopicId;
14082
+ };
14083
+ query?: never;
14084
+ url: "/v1/topics/{id}/issues/save";
14085
+ };
14086
+ export type TopicIssuesSaveErrors = {
14087
+ /**
14088
+ * UnauthorizedError
14089
+ */
14090
+ 401: UnauthorizedError;
14091
+ /**
14092
+ * ForbiddenError | FlagDisabledError
14093
+ */
14094
+ 403: ForbiddenError | FlagDisabledError;
14095
+ /**
14096
+ * ResourceNotFoundError
14097
+ */
14098
+ 404: ResourceNotFoundError;
14099
+ /**
14100
+ * ConflictError
14101
+ */
14102
+ 409: ConflictError;
14103
+ /**
14104
+ * TemplateSourceError | ValidationError
14105
+ */
14106
+ 422: TemplateSourceError | ValidationError;
14107
+ /**
14108
+ * InternalError
14109
+ */
14110
+ 500: InternalError;
14111
+ /**
14112
+ * GatewayTimeoutError
14113
+ */
14114
+ 504: GatewayTimeoutError;
14115
+ };
14116
+ export type TopicIssuesSaveError = TopicIssuesSaveErrors[keyof TopicIssuesSaveErrors];
14117
+ export type TopicIssuesSaveResponses = {
14118
+ /**
14119
+ * Success
14120
+ */
14121
+ 200: {
14122
+ commit: string;
14123
+ parentCommit: string;
14124
+ tree: string;
14125
+ revision: string;
14126
+ changedPaths: Array<string>;
14127
+ sourceDigest: string;
14128
+ buildDigest: string;
14129
+ warnings: Array<{
14130
+ code: string;
14131
+ severity: "error" | "warning" | "info";
14132
+ message: string;
14133
+ origins: Array<{
14134
+ fileName: string;
14135
+ lineNumber: number;
14136
+ columnNumber: number;
14137
+ }>;
14138
+ clients?: Array<string> | null | undefined;
14139
+ notes?: string | null | undefined;
14140
+ provenance?: string | null | undefined;
14141
+ fixtures?: Array<string> | null | undefined;
14142
+ occurrences?: Array<Array<{
14143
+ fileName: string;
14144
+ lineNumber: number;
14145
+ columnNumber: number;
14146
+ }>> | null | undefined;
14147
+ compatibility?: {
14148
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
14149
+ title: string;
14150
+ } | null | undefined;
14151
+ }>;
14152
+ incompatibilities: Array<{
14153
+ code: string;
14154
+ severity: "error" | "warning" | "info";
14155
+ message: string;
14156
+ origins: Array<{
14157
+ fileName: string;
14158
+ lineNumber: number;
14159
+ columnNumber: number;
14160
+ }>;
14161
+ clients?: Array<string> | null | undefined;
14162
+ notes?: string | null | undefined;
14163
+ provenance?: string | null | undefined;
14164
+ fixtures?: Array<string> | null | undefined;
14165
+ occurrences?: Array<Array<{
14166
+ fileName: string;
14167
+ lineNumber: number;
14168
+ columnNumber: number;
14169
+ }>> | null | undefined;
14170
+ compatibility?: {
14171
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
14172
+ title: string;
14173
+ } | null | undefined;
14174
+ }>;
14175
+ };
14176
+ };
14177
+ export type TopicIssuesSaveResponse = TopicIssuesSaveResponses[keyof TopicIssuesSaveResponses];
14178
+ export type TopicIssuesCheckData = {
14179
+ body: {
14180
+ path: string;
14181
+ expectedRevision: string;
14182
+ };
14183
+ path: {
14184
+ id: TopicId;
14185
+ };
14186
+ query?: never;
14187
+ url: "/v1/topics/{id}/issues/check";
14188
+ };
14189
+ export type TopicIssuesCheckErrors = {
14190
+ /**
14191
+ * UnauthorizedError
14192
+ */
14193
+ 401: UnauthorizedError;
14194
+ /**
14195
+ * ForbiddenError | FlagDisabledError
14196
+ */
14197
+ 403: ForbiddenError | FlagDisabledError;
14198
+ /**
14199
+ * ResourceNotFoundError
14200
+ */
14201
+ 404: ResourceNotFoundError;
14202
+ /**
14203
+ * ConflictError
14204
+ */
14205
+ 409: ConflictError;
14206
+ /**
14207
+ * TemplateSourceError | ValidationError
14208
+ */
14209
+ 422: TemplateSourceError | ValidationError;
14210
+ /**
14211
+ * InternalError
14212
+ */
14213
+ 500: InternalError;
14214
+ /**
14215
+ * GatewayTimeoutError
14216
+ */
14217
+ 504: GatewayTimeoutError;
14218
+ };
14219
+ export type TopicIssuesCheckError = TopicIssuesCheckErrors[keyof TopicIssuesCheckErrors];
14220
+ export type TopicIssuesCheckResponses = {
14221
+ /**
14222
+ * Success
14223
+ */
14224
+ 200: {
14225
+ projectId: TemplateProjectId;
14226
+ revision: string;
14227
+ entryPath: string | string;
14228
+ declaration: {
14229
+ codeDigest: string;
14230
+ templateId: string;
14231
+ input: {
14232
+ schema: {
14233
+ [key: string]: JsonValue;
14234
+ };
14235
+ schemaDigest: string;
14236
+ contractDigest: string;
14237
+ };
14238
+ fixtures: Array<string>;
14239
+ } | null;
14240
+ issue?: {
14241
+ path: string;
14242
+ frontmatter: {
14243
+ title: string;
14244
+ slug: string;
14245
+ topic: string;
14246
+ preheader?: string | undefined;
14247
+ seo?: {
14248
+ title?: string | undefined;
14249
+ description?: string | undefined;
14250
+ image?: string | undefined;
14251
+ } | undefined;
14252
+ gate?: {
14253
+ leadIn: number;
14254
+ } | undefined;
14255
+ };
14256
+ } | undefined;
14257
+ diagnostics: Array<{
14258
+ code: string;
14259
+ severity: "error" | "warning" | "info";
14260
+ message: string;
14261
+ origins: Array<{
14262
+ fileName: string;
14263
+ lineNumber: number;
14264
+ columnNumber: number;
14265
+ }>;
14266
+ clients?: Array<string> | null | undefined;
14267
+ notes?: string | null | undefined;
14268
+ provenance?: string | null | undefined;
14269
+ fixtures?: Array<string> | null | undefined;
14270
+ occurrences?: Array<Array<{
14271
+ fileName: string;
14272
+ lineNumber: number;
14273
+ columnNumber: number;
14274
+ }>> | null | undefined;
14275
+ compatibility?: {
14276
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
14277
+ title: string;
14278
+ } | null | undefined;
14279
+ }>;
14280
+ incompatibilities: Array<{
14281
+ code: string;
14282
+ severity: "error" | "warning" | "info";
14283
+ message: string;
14284
+ origins: Array<{
14285
+ fileName: string;
14286
+ lineNumber: number;
14287
+ columnNumber: number;
14288
+ }>;
14289
+ clients?: Array<string> | null | undefined;
14290
+ notes?: string | null | undefined;
14291
+ provenance?: string | null | undefined;
14292
+ fixtures?: Array<string> | null | undefined;
14293
+ occurrences?: Array<Array<{
14294
+ fileName: string;
14295
+ lineNumber: number;
14296
+ columnNumber: number;
14297
+ }>> | null | undefined;
14298
+ compatibility?: {
14299
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
14300
+ title: string;
14301
+ } | null | undefined;
14302
+ }>;
14303
+ };
14304
+ };
14305
+ export type TopicIssuesCheckResponse = TopicIssuesCheckResponses[keyof TopicIssuesCheckResponses];
14306
+ export type TopicIssuesRenderData = {
14307
+ body: {
14308
+ path: string;
14309
+ expectedRevision: string;
14310
+ fixture: string;
14311
+ target: "email" | "web";
14312
+ };
14313
+ path: {
14314
+ id: TopicId;
14315
+ };
14316
+ query?: never;
14317
+ url: "/v1/topics/{id}/issues/render";
14318
+ };
14319
+ export type TopicIssuesRenderErrors = {
14320
+ /**
14321
+ * UnauthorizedError
14322
+ */
14323
+ 401: UnauthorizedError;
14324
+ /**
14325
+ * ForbiddenError | FlagDisabledError
14326
+ */
14327
+ 403: ForbiddenError | FlagDisabledError;
14328
+ /**
14329
+ * ResourceNotFoundError
14330
+ */
14331
+ 404: ResourceNotFoundError;
14332
+ /**
14333
+ * ConflictError
14334
+ */
14335
+ 409: ConflictError;
14336
+ /**
14337
+ * TemplateSourceError | ValidationError
14338
+ */
14339
+ 422: TemplateSourceError | ValidationError;
14340
+ /**
14341
+ * InternalError
14342
+ */
14343
+ 500: InternalError;
14344
+ /**
14345
+ * GatewayTimeoutError
14346
+ */
14347
+ 504: GatewayTimeoutError;
14348
+ };
14349
+ export type TopicIssuesRenderError = TopicIssuesRenderErrors[keyof TopicIssuesRenderErrors];
14350
+ export type TopicIssuesRenderResponses = {
14351
+ /**
14352
+ * Success
14353
+ */
14354
+ 200: {
14355
+ projectId: TemplateProjectId;
14356
+ revision: string;
14357
+ entryPath: string | string;
14358
+ declaration: {
14359
+ codeDigest: string;
14360
+ templateId: string;
14361
+ input: {
14362
+ schema: {
14363
+ [key: string]: JsonValue;
14364
+ };
14365
+ schemaDigest: string;
14366
+ contractDigest: string;
14367
+ };
14368
+ fixtures: Array<string>;
14369
+ } | null;
14370
+ issue?: {
14371
+ path: string;
14372
+ frontmatter: {
14373
+ title: string;
14374
+ slug: string;
14375
+ topic: string;
14376
+ preheader?: string | undefined;
14377
+ seo?: {
14378
+ title?: string | undefined;
14379
+ description?: string | undefined;
14380
+ image?: string | undefined;
14381
+ } | undefined;
14382
+ gate?: {
14383
+ leadIn: number;
14384
+ } | undefined;
14385
+ };
14386
+ } | undefined;
14387
+ diagnostics: Array<{
14388
+ code: string;
14389
+ severity: "error" | "warning" | "info";
14390
+ message: string;
14391
+ origins: Array<{
14392
+ fileName: string;
14393
+ lineNumber: number;
14394
+ columnNumber: number;
14395
+ }>;
14396
+ clients?: Array<string> | null | undefined;
14397
+ notes?: string | null | undefined;
14398
+ provenance?: string | null | undefined;
14399
+ fixtures?: Array<string> | null | undefined;
14400
+ occurrences?: Array<Array<{
14401
+ fileName: string;
14402
+ lineNumber: number;
14403
+ columnNumber: number;
14404
+ }>> | null | undefined;
14405
+ compatibility?: {
14406
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
14407
+ title: string;
14408
+ } | null | undefined;
14409
+ }>;
14410
+ incompatibilities: Array<{
14411
+ code: string;
14412
+ severity: "error" | "warning" | "info";
14413
+ message: string;
14414
+ origins: Array<{
14415
+ fileName: string;
14416
+ lineNumber: number;
14417
+ columnNumber: number;
14418
+ }>;
14419
+ clients?: Array<string> | null | undefined;
14420
+ notes?: string | null | undefined;
14421
+ provenance?: string | null | undefined;
14422
+ fixtures?: Array<string> | null | undefined;
14423
+ occurrences?: Array<Array<{
14424
+ fileName: string;
14425
+ lineNumber: number;
14426
+ columnNumber: number;
14427
+ }>> | null | undefined;
14428
+ compatibility?: {
14429
+ assessment: "risk" | "degradation" | "unverified" | "not-applicable";
14430
+ title: string;
14431
+ } | null | undefined;
14432
+ }>;
14433
+ fixture: string;
14434
+ rendered: {
14435
+ subject: string;
14436
+ preheader?: string | undefined;
14437
+ html: string;
14438
+ text: string;
14439
+ selections: Array<{
14440
+ instancePath: string;
14441
+ tag: string;
14442
+ origins: Array<{
14443
+ fileName: string;
14444
+ lineNumber: number;
14445
+ columnNumber: number;
14446
+ }>;
14447
+ authored: boolean;
14448
+ occurrence: number;
14449
+ occurrences: number;
14450
+ parentPath?: string | undefined;
14451
+ start: number;
14452
+ end: number;
14453
+ }>;
14454
+ sentBytes: number;
14455
+ previewBytes: number;
14456
+ } | null;
14457
+ page?: {
14458
+ kind: "page";
14459
+ html: string;
14460
+ selections: Array<{
14461
+ instancePath: string;
14462
+ tag: string;
14463
+ origins: Array<{
14464
+ fileName: string;
14465
+ lineNumber: number;
14466
+ columnNumber: number;
14467
+ }>;
14468
+ authored: boolean;
14469
+ occurrence: number;
14470
+ occurrences: number;
14471
+ parentPath?: string | undefined;
14472
+ start: number;
14473
+ end: number;
14474
+ }>;
14475
+ } | null | undefined;
14476
+ };
14477
+ };
14478
+ export type TopicIssuesRenderResponse = TopicIssuesRenderResponses[keyof TopicIssuesRenderResponses];
14479
+ export type TopicIssuesHeadData = {
14480
+ body?: never;
14481
+ path: {
14482
+ id: TopicId;
14483
+ };
14484
+ query?: never;
14485
+ url: "/v1/topics/{id}/issues/head";
14486
+ };
14487
+ export type TopicIssuesHeadErrors = {
14488
+ /**
14489
+ * UnauthorizedError
14490
+ */
14491
+ 401: UnauthorizedError;
14492
+ /**
14493
+ * ForbiddenError | FlagDisabledError
14494
+ */
14495
+ 403: ForbiddenError | FlagDisabledError;
14496
+ /**
14497
+ * ResourceNotFoundError
14498
+ */
14499
+ 404: ResourceNotFoundError;
14500
+ /**
14501
+ * ConflictError
14502
+ */
14503
+ 409: ConflictError;
14504
+ /**
14505
+ * TemplateSourceError | ValidationError
14506
+ */
14507
+ 422: TemplateSourceError | ValidationError;
14508
+ /**
14509
+ * InternalError
14510
+ */
14511
+ 500: InternalError;
14512
+ /**
14513
+ * GatewayTimeoutError
14514
+ */
14515
+ 504: GatewayTimeoutError;
14516
+ };
14517
+ export type TopicIssuesHeadError = TopicIssuesHeadErrors[keyof TopicIssuesHeadErrors];
14518
+ export type TopicIssuesHeadResponses = {
14519
+ /**
14520
+ * Success
14521
+ */
14522
+ 200: {
14523
+ projectId: TemplateProjectId;
14524
+ revision: string;
14525
+ remoteHead: string;
14526
+ };
14527
+ };
14528
+ export type TopicIssuesHeadResponse = TopicIssuesHeadResponses[keyof TopicIssuesHeadResponses];
14529
+ export type TopicIssuesHistoryData = {
14530
+ body?: never;
14531
+ path: {
14532
+ id: TopicId;
14533
+ };
14534
+ query?: {
14535
+ limit?: number | null | undefined;
14536
+ };
14537
+ url: "/v1/topics/{id}/issues/history";
14538
+ };
14539
+ export type TopicIssuesHistoryErrors = {
14540
+ /**
14541
+ * UnauthorizedError
14542
+ */
14543
+ 401: UnauthorizedError;
14544
+ /**
14545
+ * ForbiddenError | FlagDisabledError
14546
+ */
14547
+ 403: ForbiddenError | FlagDisabledError;
14548
+ /**
14549
+ * ResourceNotFoundError
14550
+ */
14551
+ 404: ResourceNotFoundError;
14552
+ /**
14553
+ * ConflictError
14554
+ */
14555
+ 409: ConflictError;
14556
+ /**
14557
+ * TemplateSourceError | ValidationError
14558
+ */
14559
+ 422: TemplateSourceError | ValidationError;
14560
+ /**
14561
+ * InternalError
14562
+ */
14563
+ 500: InternalError;
14564
+ /**
14565
+ * GatewayTimeoutError
14566
+ */
14567
+ 504: GatewayTimeoutError;
14568
+ };
14569
+ export type TopicIssuesHistoryError = TopicIssuesHistoryErrors[keyof TopicIssuesHistoryErrors];
14570
+ export type TopicIssuesHistoryResponses = {
14571
+ /**
14572
+ * Success
14573
+ */
14574
+ 200: {
14575
+ projectId: TemplateProjectId;
14576
+ head: string;
14577
+ commits: Array<{
14578
+ commit: string;
14579
+ tree: string;
14580
+ parentCommit: string | null;
14581
+ message: string;
14582
+ committedAt: string;
14583
+ }>;
14584
+ };
14585
+ };
14586
+ export type TopicIssuesHistoryResponse = TopicIssuesHistoryResponses[keyof TopicIssuesHistoryResponses];
14587
+ export type TopicPublicationDomainsAddData = {
14588
+ body: {
14589
+ hostname: string;
14590
+ idempotencyKey: string;
14591
+ };
14592
+ path: {
14593
+ id: TopicId;
14594
+ };
14595
+ query?: never;
14596
+ url: "/v1/topics/{id}/publication/domains";
14597
+ };
14598
+ export type TopicPublicationDomainsAddErrors = {
14599
+ /**
14600
+ * UnauthorizedError
14601
+ */
14602
+ 401: UnauthorizedError;
14603
+ /**
14604
+ * ForbiddenError | FlagDisabledError
14605
+ */
14606
+ 403: ForbiddenError | FlagDisabledError;
14607
+ /**
14608
+ * ResourceNotFoundError
14609
+ */
14610
+ 404: ResourceNotFoundError;
14611
+ /**
14612
+ * ConflictError
14613
+ */
14614
+ 409: ConflictError;
14615
+ /**
14616
+ * ValidationError
14617
+ */
14618
+ 422: ValidationError;
14619
+ /**
14620
+ * InternalError
14621
+ */
14622
+ 500: InternalError;
14623
+ /**
14624
+ * GatewayTimeoutError
14625
+ */
14626
+ 504: GatewayTimeoutError;
14627
+ };
14628
+ export type TopicPublicationDomainsAddError = TopicPublicationDomainsAddErrors[keyof TopicPublicationDomainsAddErrors];
14629
+ export type TopicPublicationDomainsAddResponses = {
14630
+ /**
14631
+ * Success
14632
+ */
14633
+ 200: {
14634
+ organizationId: OrganizationId;
14635
+ topicId: TopicId;
14636
+ hostname: string;
14637
+ canonicalHostname: string;
14638
+ phase: "pending" | "active" | "removing" | "removed" | "conflict";
14639
+ active: boolean;
14640
+ hostnameStatus: string | null;
14641
+ sslStatus: string | null;
14642
+ cname: {
14643
+ type: "CNAME" | "TXT";
14644
+ name: string;
14645
+ value: string;
14646
+ };
14647
+ verificationRecords: Array<{
14648
+ type: "CNAME" | "TXT";
14649
+ name: string;
14650
+ value: string;
14651
+ }>;
14652
+ verificationErrors: Array<string>;
14653
+ };
14654
+ };
14655
+ export type TopicPublicationDomainsAddResponse = TopicPublicationDomainsAddResponses[keyof TopicPublicationDomainsAddResponses];
14656
+ export type TopicPublicationDomainsRemoveData = {
14657
+ body?: never;
14658
+ path: {
14659
+ id: TopicId;
14660
+ hostname: string;
14661
+ };
14662
+ query: {
14663
+ idempotencyKey: string;
14664
+ };
14665
+ url: "/v1/topics/{id}/publication/domains/{hostname}";
14666
+ };
14667
+ export type TopicPublicationDomainsRemoveErrors = {
14668
+ /**
14669
+ * UnauthorizedError
14670
+ */
14671
+ 401: UnauthorizedError;
14672
+ /**
14673
+ * ForbiddenError | FlagDisabledError
14674
+ */
14675
+ 403: ForbiddenError | FlagDisabledError;
14676
+ /**
14677
+ * ResourceNotFoundError
14678
+ */
14679
+ 404: ResourceNotFoundError;
14680
+ /**
14681
+ * ConflictError
14682
+ */
14683
+ 409: ConflictError;
14684
+ /**
14685
+ * ValidationError
14686
+ */
14687
+ 422: ValidationError;
14688
+ /**
14689
+ * InternalError
14690
+ */
14691
+ 500: InternalError;
14692
+ /**
14693
+ * GatewayTimeoutError
14694
+ */
14695
+ 504: GatewayTimeoutError;
14696
+ };
14697
+ export type TopicPublicationDomainsRemoveError = TopicPublicationDomainsRemoveErrors[keyof TopicPublicationDomainsRemoveErrors];
14698
+ export type TopicPublicationDomainsRemoveResponses = {
14699
+ /**
14700
+ * Success
14701
+ */
14702
+ 200: {
14703
+ organizationId: OrganizationId;
14704
+ topicId: TopicId;
14705
+ hostname: string;
14706
+ canonicalHostname: string;
14707
+ phase: "pending" | "active" | "removing" | "removed" | "conflict";
14708
+ active: boolean;
14709
+ hostnameStatus: string | null;
14710
+ sslStatus: string | null;
14711
+ cname: {
14712
+ type: "CNAME" | "TXT";
14713
+ name: string;
14714
+ value: string;
14715
+ };
14716
+ verificationRecords: Array<{
14717
+ type: "CNAME" | "TXT";
14718
+ name: string;
14719
+ value: string;
14720
+ }>;
14721
+ verificationErrors: Array<string>;
14722
+ };
14723
+ };
14724
+ export type TopicPublicationDomainsRemoveResponse = TopicPublicationDomainsRemoveResponses[keyof TopicPublicationDomainsRemoveResponses];
14725
+ export type TopicPublicationDomainsGetData = {
14726
+ body?: never;
14727
+ path: {
14728
+ id: TopicId;
14729
+ hostname: string;
14730
+ };
14731
+ query?: never;
14732
+ url: "/v1/topics/{id}/publication/domains/{hostname}";
14733
+ };
14734
+ export type TopicPublicationDomainsGetErrors = {
14735
+ /**
14736
+ * UnauthorizedError
14737
+ */
14738
+ 401: UnauthorizedError;
14739
+ /**
14740
+ * ForbiddenError | FlagDisabledError
14741
+ */
14742
+ 403: ForbiddenError | FlagDisabledError;
14743
+ /**
14744
+ * ResourceNotFoundError
14745
+ */
14746
+ 404: ResourceNotFoundError;
14747
+ /**
14748
+ * ConflictError
14749
+ */
14750
+ 409: ConflictError;
14751
+ /**
14752
+ * ValidationError
14753
+ */
14754
+ 422: ValidationError;
14755
+ /**
14756
+ * InternalError
14757
+ */
14758
+ 500: InternalError;
14759
+ /**
14760
+ * GatewayTimeoutError
14761
+ */
14762
+ 504: GatewayTimeoutError;
14763
+ };
14764
+ export type TopicPublicationDomainsGetError = TopicPublicationDomainsGetErrors[keyof TopicPublicationDomainsGetErrors];
14765
+ export type TopicPublicationDomainsGetResponses = {
14766
+ /**
14767
+ * Success
14768
+ */
14769
+ 200: {
14770
+ organizationId: OrganizationId;
14771
+ topicId: TopicId;
14772
+ hostname: string;
14773
+ canonicalHostname: string;
14774
+ phase: "pending" | "active" | "removing" | "removed" | "conflict";
14775
+ active: boolean;
14776
+ hostnameStatus: string | null;
14777
+ sslStatus: string | null;
14778
+ cname: {
14779
+ type: "CNAME" | "TXT";
14780
+ name: string;
14781
+ value: string;
14782
+ };
14783
+ verificationRecords: Array<{
14784
+ type: "CNAME" | "TXT";
14785
+ name: string;
14786
+ value: string;
14787
+ }>;
14788
+ verificationErrors: Array<string>;
14789
+ };
14790
+ };
14791
+ export type TopicPublicationDomainsGetResponse = TopicPublicationDomainsGetResponses[keyof TopicPublicationDomainsGetResponses];
14792
+ export type AnalyticsGetStatsData = {
14793
+ body?: never;
14794
+ path?: never;
14795
+ query?: {
14796
+ after?: string | null | undefined;
14797
+ before?: string | null | undefined;
14798
+ groupBy?: "day" | "week" | "month" | null | undefined;
14799
+ channel?: "email" | null | undefined;
14800
+ };
14801
+ url: "/v1/analytics/stats";
14802
+ };
14803
+ export type AnalyticsGetStatsErrors = {
14804
+ /**
14805
+ * AnalyticsQueryError
14806
+ */
14807
+ 400: AnalyticsQueryError;
14808
+ /**
14809
+ * UnauthorizedError
14810
+ */
14811
+ 401: UnauthorizedError;
14812
+ /**
14813
+ * ForbiddenError
14814
+ */
14815
+ 403: ForbiddenError;
14816
+ /**
14817
+ * ValidationError
14818
+ */
14819
+ 422: ValidationError;
14820
+ /**
14821
+ * InternalError
14822
+ */
14823
+ 500: InternalError;
14824
+ /**
14825
+ * GatewayTimeoutError
14826
+ */
14827
+ 504: GatewayTimeoutError;
14828
+ };
14829
+ export type AnalyticsGetStatsError = AnalyticsGetStatsErrors[keyof AnalyticsGetStatsErrors];
14830
+ export type AnalyticsGetStatsResponses = {
14831
+ /**
14832
+ * Success
14833
+ */
14834
+ 200: {
14835
+ volumeHistory: Array<{
14836
+ date: string;
14837
+ email: number;
14838
+ }>;
14839
+ };
14840
+ };
14841
+ export type AnalyticsGetStatsResponse = AnalyticsGetStatsResponses[keyof AnalyticsGetStatsResponses];
14842
+ export type AnalyticsGetChannelStatsData = {
14843
+ body?: never;
14844
+ path?: never;
14845
+ query?: {
14846
+ after?: string | null | undefined;
14847
+ before?: string | null | undefined;
14848
+ };
14849
+ url: "/v1/analytics/channel-stats";
14850
+ };
14851
+ export type AnalyticsGetChannelStatsErrors = {
14852
+ /**
14853
+ * AnalyticsQueryError
14854
+ */
14855
+ 400: AnalyticsQueryError;
14856
+ /**
14857
+ * UnauthorizedError
14858
+ */
14859
+ 401: UnauthorizedError;
14860
+ /**
14861
+ * ForbiddenError
14862
+ */
14863
+ 403: ForbiddenError;
14864
+ /**
14865
+ * ValidationError
14866
+ */
14867
+ 422: ValidationError;
14868
+ /**
14869
+ * InternalError
14870
+ */
14871
+ 500: InternalError;
14872
+ /**
14873
+ * GatewayTimeoutError
14874
+ */
14875
+ 504: GatewayTimeoutError;
14876
+ };
14877
+ export type AnalyticsGetChannelStatsError = AnalyticsGetChannelStatsErrors[keyof AnalyticsGetChannelStatsErrors];
14878
+ export type AnalyticsGetChannelStatsResponses = {
14879
+ /**
14880
+ * Success
14881
+ */
14882
+ 200: {
14883
+ email: {
14884
+ sent: number;
14885
+ deliveryRate: number;
14886
+ uniqueOpenedMessages: number;
14887
+ openTrackingEligibleDeliveredMessages: number;
14888
+ uniqueMessageOpenRate: number;
14889
+ uniqueClickedMessages: number;
14890
+ clickTrackingEligibleDeliveredMessages: number;
14891
+ uniqueMessageClickRate: number;
14892
+ bounceRate: number;
14893
+ };
14894
+ };
14895
+ };
14896
+ export type AnalyticsGetChannelStatsResponse = AnalyticsGetChannelStatsResponses[keyof AnalyticsGetChannelStatsResponses];
14897
+ export type AnalyticsGetTopContactsData = {
14898
+ body?: never;
14899
+ path?: never;
14900
+ query?: {
14901
+ after?: string | null | undefined;
14902
+ before?: string | null | undefined;
14903
+ limit?: number | null | undefined;
14904
+ sortBy?: "sent" | "received" | "total" | null | undefined;
14905
+ };
14906
+ url: "/v1/analytics/top-contacts";
14907
+ };
14908
+ export type AnalyticsGetTopContactsErrors = {
14909
+ /**
14910
+ * AnalyticsQueryError
14911
+ */
14912
+ 400: AnalyticsQueryError;
14913
+ /**
14914
+ * UnauthorizedError
14915
+ */
14916
+ 401: UnauthorizedError;
14917
+ /**
14918
+ * ForbiddenError
14919
+ */
14920
+ 403: ForbiddenError;
14921
+ /**
14922
+ * ValidationError
14923
+ */
14924
+ 422: ValidationError;
14925
+ /**
14926
+ * InternalError
14927
+ */
14928
+ 500: InternalError;
14929
+ /**
14930
+ * GatewayTimeoutError
14931
+ */
14932
+ 504: GatewayTimeoutError;
14933
+ };
14934
+ export type AnalyticsGetTopContactsError = AnalyticsGetTopContactsErrors[keyof AnalyticsGetTopContactsErrors];
14935
+ export type AnalyticsGetTopContactsResponses = {
14936
+ /**
14937
+ * Success
14938
+ */
14939
+ 200: Array<{
14940
+ id: string;
14941
+ name: string | null;
14942
+ email: string | null;
14943
+ phone: string | null;
14944
+ messageCount: number;
14945
+ }>;
14946
+ };
14947
+ export type AnalyticsGetTopContactsResponse = AnalyticsGetTopContactsResponses[keyof AnalyticsGetTopContactsResponses];
14948
+ export type AnalyticsGetHourlyDistributionData = {
14949
+ body?: never;
14950
+ path?: never;
14951
+ query?: {
14952
+ after?: string | null | undefined;
14953
+ before?: string | null | undefined;
14954
+ };
14955
+ url: "/v1/analytics/hourly-distribution";
14956
+ };
14957
+ export type AnalyticsGetHourlyDistributionErrors = {
14958
+ /**
14959
+ * AnalyticsQueryError
14960
+ */
14961
+ 400: AnalyticsQueryError;
14962
+ /**
14963
+ * UnauthorizedError
14964
+ */
14965
+ 401: UnauthorizedError;
14966
+ /**
14967
+ * ForbiddenError
14968
+ */
14969
+ 403: ForbiddenError;
14970
+ /**
14971
+ * ValidationError
14972
+ */
14973
+ 422: ValidationError;
14974
+ /**
14975
+ * InternalError
14976
+ */
14977
+ 500: InternalError;
14978
+ /**
14979
+ * GatewayTimeoutError
14980
+ */
14981
+ 504: GatewayTimeoutError;
14982
+ };
14983
+ export type AnalyticsGetHourlyDistributionError = AnalyticsGetHourlyDistributionErrors[keyof AnalyticsGetHourlyDistributionErrors];
14984
+ export type AnalyticsGetHourlyDistributionResponses = {
14985
+ /**
14986
+ * Success
14987
+ */
14988
+ 200: Array<{
14989
+ hour: string;
14990
+ count: number;
14991
+ }>;
14992
+ };
14993
+ export type AnalyticsGetHourlyDistributionResponse = AnalyticsGetHourlyDistributionResponses[keyof AnalyticsGetHourlyDistributionResponses];
14994
+ export type AnalyticsGetDeliveryMetricsData = {
14995
+ body?: never;
14996
+ path?: never;
14997
+ query?: {
14998
+ after?: string | null | undefined;
14999
+ before?: string | null | undefined;
15000
+ channel?: "email" | null | undefined;
15001
+ };
15002
+ url: "/v1/analytics/delivery-metrics";
15003
+ };
13587
15004
  export type AnalyticsGetDeliveryMetricsErrors = {
13588
15005
  /**
13589
15006
  * AnalyticsQueryError
@@ -15330,7 +16747,7 @@ export type TemplatesCheckWorkspaceResponses = {
15330
16747
  200: {
15331
16748
  projectId: TemplateProjectId;
15332
16749
  revision: string;
15333
- entryPath: string;
16750
+ entryPath: string | string;
15334
16751
  declaration: {
15335
16752
  codeDigest: string;
15336
16753
  templateId: string;
@@ -15343,6 +16760,23 @@ export type TemplatesCheckWorkspaceResponses = {
15343
16760
  };
15344
16761
  fixtures: Array<string>;
15345
16762
  } | null;
16763
+ issue?: {
16764
+ path: string;
16765
+ frontmatter: {
16766
+ title: string;
16767
+ slug: string;
16768
+ topic: string;
16769
+ preheader?: string | undefined;
16770
+ seo?: {
16771
+ title?: string | undefined;
16772
+ description?: string | undefined;
16773
+ image?: string | undefined;
16774
+ } | undefined;
16775
+ gate?: {
16776
+ leadIn: number;
16777
+ } | undefined;
16778
+ };
16779
+ } | undefined;
15346
16780
  diagnostics: Array<{
15347
16781
  code: string;
15348
16782
  severity: "error" | "warning" | "info";
@@ -15441,7 +16875,7 @@ export type TemplatesRenderWorkspaceFixtureResponses = {
15441
16875
  200: {
15442
16876
  projectId: TemplateProjectId;
15443
16877
  revision: string;
15444
- entryPath: string;
16878
+ entryPath: string | string;
15445
16879
  declaration: {
15446
16880
  codeDigest: string;
15447
16881
  templateId: string;
@@ -15454,6 +16888,23 @@ export type TemplatesRenderWorkspaceFixtureResponses = {
15454
16888
  };
15455
16889
  fixtures: Array<string>;
15456
16890
  } | null;
16891
+ issue?: {
16892
+ path: string;
16893
+ frontmatter: {
16894
+ title: string;
16895
+ slug: string;
16896
+ topic: string;
16897
+ preheader?: string | undefined;
16898
+ seo?: {
16899
+ title?: string | undefined;
16900
+ description?: string | undefined;
16901
+ image?: string | undefined;
16902
+ } | undefined;
16903
+ gate?: {
16904
+ leadIn: number;
16905
+ } | undefined;
16906
+ };
16907
+ } | undefined;
15457
16908
  diagnostics: Array<{
15458
16909
  code: string;
15459
16910
  severity: "error" | "warning" | "info";
@@ -15524,6 +16975,25 @@ export type TemplatesRenderWorkspaceFixtureResponses = {
15524
16975
  sentBytes: number;
15525
16976
  previewBytes: number;
15526
16977
  } | null;
16978
+ page?: {
16979
+ kind: "page";
16980
+ html: string;
16981
+ selections: Array<{
16982
+ instancePath: string;
16983
+ tag: string;
16984
+ origins: Array<{
16985
+ fileName: string;
16986
+ lineNumber: number;
16987
+ columnNumber: number;
16988
+ }>;
16989
+ authored: boolean;
16990
+ occurrence: number;
16991
+ occurrences: number;
16992
+ parentPath?: string | undefined;
16993
+ start: number;
16994
+ end: number;
16995
+ }>;
16996
+ } | null | undefined;
15527
16997
  };
15528
16998
  };
15529
16999
  export type TemplatesRenderWorkspaceFixtureResponse = TemplatesRenderWorkspaceFixtureResponses[keyof TemplatesRenderWorkspaceFixtureResponses];
@@ -15612,7 +17082,7 @@ export type TemplatesPublishResponses = {
15612
17082
  source: {
15613
17083
  commitSha: string;
15614
17084
  treeSha: string;
15615
- entryPath: string;
17085
+ entryPath: string | string;
15616
17086
  treeDigest: string;
15617
17087
  };
15618
17088
  brand?: {
@@ -15766,7 +17236,7 @@ export type TemplatesGetPublicationResponses = {
15766
17236
  source: {
15767
17237
  commitSha: string;
15768
17238
  treeSha: string;
15769
- entryPath: string;
17239
+ entryPath: string | string;
15770
17240
  treeDigest: string;
15771
17241
  };
15772
17242
  brand?: {