samva 0.6.0 → 0.8.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 (53) hide show
  1. package/README.md +2 -2
  2. package/dist/{categories-4u9Az4No.js → categories-DvsHUJtX.js} +9 -1
  3. package/dist/client/sdk.gen.d.ts +119 -33
  4. package/dist/client/types.gen.d.ts +643 -142
  5. package/dist/{client-DCM6U0-I.js → client-ByJHYp7r.js} +612 -223
  6. package/dist/{client-attribution-DYUSAa76.js → client-attribution-N5A784Zo.js} +2 -2
  7. package/dist/effect/analytics.js +1 -1
  8. package/dist/effect/api-keys.js +1 -1
  9. package/dist/effect/attachments.js +1 -1
  10. package/dist/effect/brands.d.ts +212 -0
  11. package/dist/effect/brands.js +24 -0
  12. package/dist/effect/campaigns.d.ts +35 -1
  13. package/dist/effect/campaigns.js +1 -1
  14. package/dist/effect/categories.js +1 -1
  15. package/dist/effect/client.js +1 -1
  16. package/dist/effect/contact-groups.js +1 -1
  17. package/dist/effect/contacts.js +1 -1
  18. package/dist/effect/conversations.d.ts +21 -12
  19. package/dist/effect/conversations.js +1 -1
  20. package/dist/effect/custom-fields.js +1 -1
  21. package/dist/effect/email.d.ts +17 -6
  22. package/dist/effect/email.js +2 -2
  23. package/dist/effect/generated-metadata.d.ts +8 -0
  24. package/dist/effect/generated.d.ts +2880 -1661
  25. package/dist/effect/index.d.ts +2 -2
  26. package/dist/effect/index.js +4 -4
  27. package/dist/effect/internal/operation.d.ts +10 -4
  28. package/dist/effect/media.js +1 -1
  29. package/dist/effect/messages.d.ts +24 -6
  30. package/dist/effect/messages.js +1 -1
  31. package/dist/effect/operations.js +1 -1
  32. package/dist/effect/organizations.d.ts +5 -268
  33. package/dist/effect/organizations.js +4 -2
  34. package/dist/effect/retry.js +1 -1
  35. package/dist/effect/scheduled-messages.d.ts +16 -0
  36. package/dist/effect/scheduled-messages.js +1 -1
  37. package/dist/effect/templates.d.ts +260 -38
  38. package/dist/effect/templates.js +7 -3
  39. package/dist/effect/unsubscribe-groups.d.ts +17 -0
  40. package/dist/effect/unsubscribe-groups.js +4 -2
  41. package/dist/effect/webhooks.d.ts +6 -6
  42. package/dist/effect/webhooks.js +2 -2
  43. package/dist/index.js +2 -2
  44. package/dist/{operation-02YX3hY9.js → operation-D2nEeKBD.js} +34 -5
  45. package/dist/promises/errors.gen.d.ts +22 -4
  46. package/dist/promises/index.d.ts +3 -3
  47. package/dist/promises/index.js +2 -2
  48. package/dist/promises/types.gen.d.ts +1 -1
  49. package/dist/{promises-8MaPNAam.js → promises-DAv8ZtOX.js} +376 -52
  50. package/dist/service-map.d.ts +45 -6
  51. package/package.json +7 -7
  52. package/dist/effect/design.d.ts +0 -209
  53. package/dist/effect/design.js +0 -13
@@ -1,4 +1,4 @@
1
- import { n as clientAttribution, t as CLIENT_ATTRIBUTION_HEADER } from "./client-attribution-DYUSAa76.js";
1
+ import { n as clientAttribution, t as CLIENT_ATTRIBUTION_HEADER } from "./client-attribution-N5A784Zo.js";
2
2
  import { Context, Effect, Layer, Schema, SchemaTransformation } from "effect";
3
3
  import * as Schema$1 from "effect/Schema";
4
4
  import { HttpApi, HttpApiClient, HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, HttpApiSecurity, OpenApi } from "effect/unstable/httpapi";
@@ -93,6 +93,32 @@ const OrganizationId = Schema$1.String.pipe(Schema$1.brand("OrganizationId")).ch
93
93
  expected: "a string matching the RegExp ^org_[0-9a-hjkmnp-tv-z]{16,24}$",
94
94
  identifier: "OrganizationId"
95
95
  }));
96
+ const BrandId = Schema$1.String.pipe(Schema$1.brand("BrandId")).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^brand_[0-9a-hjkmnp-tv-z]{16,24}$")).annotate({
97
+ expected: "a string matching the RegExp ^brand_[0-9a-hjkmnp-tv-z]{16,24}$",
98
+ identifier: "BrandId"
99
+ }));
100
+ const BrandAssets = Schema$1.Struct({
101
+ logoUrl: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMaxLength(2048).annotate({ expected: "a value with a length of at most 2048" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^https:\\/\\/[^\\s]+$")).annotate({ expected: "a string matching the RegExp ^https:\\/\\/[^\\s]+$" })), Schema$1.Null])),
102
+ logoDarkUrl: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMaxLength(2048).annotate({ expected: "a value with a length of at most 2048" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^https:\\/\\/[^\\s]+$")).annotate({ expected: "a string matching the RegExp ^https:\\/\\/[^\\s]+$" })), Schema$1.Null])),
103
+ iconUrl: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMaxLength(2048).annotate({ expected: "a value with a length of at most 2048" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^https:\\/\\/[^\\s]+$")).annotate({ expected: "a string matching the RegExp ^https:\\/\\/[^\\s]+$" })), Schema$1.Null]))
104
+ }).annotate({ identifier: "BrandAssets" });
105
+ const BrandAddress = Schema$1.Struct({
106
+ street1: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
107
+ street2: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
108
+ city: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
109
+ region: Schema$1.String,
110
+ postalCode: Schema$1.String,
111
+ country: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" }))
112
+ }).annotate({ identifier: "BrandAddress" });
113
+ const BrandSocialLink = Schema$1.Struct({
114
+ label: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(64).annotate({ expected: "a value with a length of at most 64" })),
115
+ url: Schema$1.String.check(Schema$1.isMaxLength(2048).annotate({ expected: "a value with a length of at most 2048" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^https:\\/\\/[^\\s]+$")).annotate({ expected: "a string matching the RegExp ^https:\\/\\/[^\\s]+$" }))
116
+ }).annotate({ identifier: "BrandSocialLink" });
117
+ var ConflictError = class extends Schema$1.TaggedError()("ConflictError", Schema$1.Struct({
118
+ message: Schema$1.String,
119
+ resource: Schema$1.String,
120
+ id: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null]))
121
+ })) {};
96
122
  const CampaignId = Schema$1.String.pipe(Schema$1.brand("CampaignId")).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^camp_[0-9a-hjkmnp-tv-z]{16,24}$")).annotate({
97
123
  expected: "a string matching the RegExp ^camp_[0-9a-hjkmnp-tv-z]{16,24}$",
98
124
  identifier: "CampaignId"
@@ -114,6 +140,14 @@ const TemplateId = Schema$1.String.pipe(Schema$1.brand("TemplateId")).check(Sche
114
140
  identifier: "TemplateId"
115
141
  }));
116
142
  const JsonObject = Schema$1.Record(Schema$1.String, JsonValue).annotate({ identifier: "JsonObject" });
143
+ const RenderLocale = Schema$1.String.check(Schema$1.isMaxLength(64).annotate({
144
+ expected: "a value with a length of at most 64",
145
+ identifier: "RenderLocale"
146
+ }));
147
+ const RenderTimeZone = Schema$1.String.check(Schema$1.isMaxLength(64).annotate({
148
+ expected: "a value with a length of at most 64",
149
+ identifier: "RenderTimeZone"
150
+ }));
117
151
  const ReplyToAddresses = Schema$1.Union([Schema$1.Union([Schema$1.Array(Schema$1.String), Schema$1.Null]), Schema$1.Null]).annotate({ identifier: "ReplyToAddresses" });
118
152
  const UnsubscribeId = Schema$1.String.pipe(Schema$1.brand("UnsubscribeId")).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^unsub_[0-9a-hjkmnp-tv-z]{16,24}$")).annotate({
119
153
  expected: "a string matching the RegExp ^unsub_[0-9a-hjkmnp-tv-z]{16,24}$",
@@ -157,15 +191,15 @@ const SendsSeries = Schema$1.Array(Schema$1.Finite.check(Schema$1.isInt().annota
157
191
  identifier: "SendsSeries"
158
192
  });
159
193
  var FlagDisabledError = class extends Schema$1.TaggedError()("FlagDisabledError", Schema$1.Struct({ flag: Schema$1.String })) {};
160
- var ConflictError = class extends Schema$1.TaggedError()("ConflictError", Schema$1.Struct({
161
- message: Schema$1.String,
162
- resource: Schema$1.String,
163
- id: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null]))
164
- })) {};
165
194
  const EmailDomainId = Schema$1.String.pipe(Schema$1.brand("EmailDomainId")).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^dom_[0-9a-hjkmnp-tv-z]{16,24}$")).annotate({
166
195
  expected: "a string matching the RegExp ^dom_[0-9a-hjkmnp-tv-z]{16,24}$",
167
196
  identifier: "EmailDomainId"
168
197
  }));
198
+ var BrandAddressRequiredError = class extends Schema$1.TaggedError()("BrandAddressRequiredError", Schema$1.Struct({
199
+ message: Schema$1.String,
200
+ brand: Schema$1.Union([Schema$1.String, Schema$1.Null])
201
+ })) {};
202
+ var CampaignFooterRequiredError = class extends Schema$1.TaggedError()("CampaignFooterRequiredError", Schema$1.Struct({ message: Schema$1.String })) {};
169
203
  var ExternalServiceError = class extends Schema$1.TaggedError()("ExternalServiceError", Schema$1.Struct({ message: Schema$1.String })) {};
170
204
  const CampaignRecipientId = Schema$1.String.pipe(Schema$1.brand("CampaignRecipientId")).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^crcpt_[0-9a-hjkmnp-tv-z]{16,24}$")).annotate({
171
205
  expected: "a string matching the RegExp ^crcpt_[0-9a-hjkmnp-tv-z]{16,24}$",
@@ -253,7 +287,6 @@ const CustomFieldDefinitionId = Schema$1.String.pipe(Schema$1.brand("CustomField
253
287
  expected: "a string matching the RegExp ^cfield_[0-9a-hjkmnp-tv-z]{16,24}$",
254
288
  identifier: "CustomFieldDefinitionId"
255
289
  }));
256
- const ThemeColors = Schema$1.Record(Schema$1.String, Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^#[0-9a-f]{6}$")).annotate({ expected: "a string matching the RegExp ^#[0-9a-f]{6}$" }))).annotate({ identifier: "ThemeColors" });
257
290
  const BlockedEmailId = Schema$1.String.pipe(Schema$1.brand("BlockedEmailId")).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^blk_[0-9a-hjkmnp-tv-z]{16,24}$")).annotate({
258
291
  expected: "a string matching the RegExp ^blk_[0-9a-hjkmnp-tv-z]{16,24}$",
259
292
  identifier: "BlockedEmailId"
@@ -448,8 +481,7 @@ var OnboardingReviewRequiredError = class extends Schema$1.TaggedError()("Onboar
448
481
  decision: Schema$1.Literals([
449
482
  "undecided",
450
483
  "approved",
451
- "rejected",
452
- "exempt"
484
+ "rejected"
453
485
  ]),
454
486
  stage: Schema$1.Literals([
455
487
  "collecting",
@@ -502,6 +534,29 @@ const OperationResource = Schema$1.Struct({
502
534
  type: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(80).annotate({ expected: "a value with a length of at most 80" })),
503
535
  id: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(255).annotate({ expected: "a value with a length of at most 255" }))
504
536
  }).annotate({ identifier: "OperationResource" });
537
+ const Organization = Schema$1.Struct({
538
+ id: Schema$1.String,
539
+ billingAccountId: Schema$1.String,
540
+ name: Schema$1.String,
541
+ slug: Schema$1.String,
542
+ countryCode: Schema$1.String,
543
+ timezone: Schema$1.String,
544
+ plan: Schema$1.String,
545
+ isActive: Schema$1.Boolean,
546
+ createdAt: Schema$1.String,
547
+ updatedAt: Schema$1.String,
548
+ metadata: Schema$1.Union([Schema$1.Record(Schema$1.String, JsonValue), Schema$1.Null]),
549
+ replyToDefault: Schema$1.Union([Schema$1.Array(Schema$1.String), Schema$1.Null]),
550
+ emailFooterEnabledDefault: Schema$1.Union([Schema$1.Boolean, Schema$1.Null]),
551
+ messagesUsed: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
552
+ messagesUsedThisMonth: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
553
+ emailUsed: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
554
+ emailUsedThisMonth: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
555
+ contactsUsed: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
556
+ conversationsUsed: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
557
+ teamMembersUsed: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
558
+ messagesResetAt: Schema$1.Union([Schema$1.String, Schema$1.Null])
559
+ }).annotate({ identifier: "Organization" });
505
560
  const TemplateProjectId = Schema$1.String.pipe(Schema$1.brand("TemplateProjectId")).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^tproj_[0-9a-hjkmnp-tv-z]{16,24}$")).annotate({
506
561
  expected: "a string matching the RegExp ^tproj_[0-9a-hjkmnp-tv-z]{16,24}$",
507
562
  identifier: "TemplateProjectId"
@@ -514,6 +569,15 @@ const TemplateFromDefault = Schema$1.Struct({
514
569
  email: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
515
570
  name: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null]))
516
571
  }).annotate({ identifier: "TemplateFromDefault" });
572
+ const TemplatePublicationBrand = Schema$1.Struct({
573
+ slug: Schema$1.String.annotate({ description: "The brand the publication imports." }).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })),
574
+ digest: Schema$1.String.annotate({ description: "The brand's digest when the publication was built." }),
575
+ stale: Schema$1.Boolean.annotate({ description: "Whether the brand has changed since this publication was built. Publishing the same commit again picks up the change." })
576
+ }).annotate({ identifier: "TemplatePublicationBrand" });
577
+ const BrandFooterBlock = Schema$1.Struct({
578
+ html: Schema$1.String,
579
+ text: Schema$1.String
580
+ }).annotate({ identifier: "BrandFooterBlock" });
517
581
  const WebhookDeliveryCounts = Schema$1.Struct({
518
582
  total: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })),
519
583
  pending: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })),
@@ -540,6 +604,21 @@ const WebhookDailyDeliveries = Schema$1.Struct({
540
604
  exhausted: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })),
541
605
  cancelled: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" }))
542
606
  }).annotate({ identifier: "WebhookDailyDeliveries" });
607
+ Schema$1.Struct({
608
+ entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })),
609
+ name: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(200).annotate({ expected: "a value with a length of at most 200" })),
610
+ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$" })),
611
+ description: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String, Schema$1.Null]), Schema$1.Null])),
612
+ category: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Literals([
613
+ "transactional",
614
+ "marketing",
615
+ "support",
616
+ "notification",
617
+ "verification",
618
+ "reminder",
619
+ "alert"
620
+ ]), Schema$1.Null]), Schema$1.Null]))
621
+ }).annotate({ identifier: "AddTemplateEntryPayload" });
543
622
  Schema$1.Struct({
544
623
  identity: Schema$1.Literals([
545
624
  "new",
@@ -566,6 +645,7 @@ const CreateTemplatePayload = Schema$1.Struct({
566
645
  projectName: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(200).annotate({ expected: "a value with a length of at most 200" })), Schema$1.Null])),
567
646
  slug: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$" })), Schema$1.Null])),
568
647
  galleryTemplateId: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(128).annotate({ expected: "a value with a length of at most 128" })), Schema$1.Null])),
648
+ useBrand: Schema$1.optionalKey(Schema$1.Union([Schema$1.Boolean.annotate({ description: "With `galleryTemplateId`: whether the new project's `theme.css` imports the organization's default brand (`@import \"samva:brand\";`) over the starter's look. Defaults to false." }), Schema$1.Null])),
569
649
  description: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String, Schema$1.Null]), Schema$1.Null])),
570
650
  category: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Literals([
571
651
  "transactional",
@@ -590,9 +670,13 @@ const CreateWebhookPayload = Schema$1.Struct({
590
670
  "message.bounced",
591
671
  "message.complained",
592
672
  "message.received",
673
+ "message.opened",
674
+ "message.clicked",
593
675
  "contact.created",
594
676
  "contact.updated",
595
677
  "contact.deleted",
678
+ "contact.unsubscribed",
679
+ "contact.resubscribed",
596
680
  "conversation.created",
597
681
  "conversation.updated",
598
682
  "conversation.archived",
@@ -627,9 +711,13 @@ const UpdateWebhookPayload = Schema$1.Struct({
627
711
  "message.bounced",
628
712
  "message.complained",
629
713
  "message.received",
714
+ "message.opened",
715
+ "message.clicked",
630
716
  "contact.created",
631
717
  "contact.updated",
632
718
  "contact.deleted",
719
+ "contact.unsubscribed",
720
+ "contact.resubscribed",
633
721
  "conversation.created",
634
722
  "conversation.updated",
635
723
  "conversation.archived",
@@ -659,6 +747,11 @@ const SubmissionCredential = Schema$1.Union([
659
747
  }),
660
748
  Schema$1.Struct({ kind: Schema$1.Literal("session") })
661
749
  ]).annotate({ identifier: "SubmissionCredential" });
750
+ const BrandFooter = Schema$1.Struct({
751
+ companyName: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMaxLength(255).annotate({ expected: "a value with a length of at most 255" })), Schema$1.Null])),
752
+ address: Schema$1.optionalKey(Schema$1.Union([BrandAddress, Schema$1.Null])),
753
+ socialLinks: Schema$1.optionalKey(Schema$1.Union([Schema$1.Array(BrandSocialLink).check(Schema$1.isMaxLength(12).annotate({ expected: "a value with a length of at most 12" })), Schema$1.Null]))
754
+ }).annotate({ identifier: "BrandFooter" });
662
755
  const EmailAttachment = Schema$1.Struct({
663
756
  filename: Schema$1.String,
664
757
  content: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$")).annotate({ expected: "a string matching the RegExp ^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$" })), Schema$1.Null])),
@@ -863,7 +956,7 @@ const ActorTracking = Schema$1.Struct({
863
956
  actorType: Schema$1.Literals([
864
957
  "contact",
865
958
  "system",
866
- "sender_identity",
959
+ "sender",
867
960
  "agent",
868
961
  "user"
869
962
  ]),
@@ -885,64 +978,12 @@ const ConversationParticipant = Schema$1.Struct({
885
978
  actorType: Schema$1.Literals([
886
979
  "contact",
887
980
  "system",
888
- "sender_identity",
981
+ "sender",
889
982
  "agent",
890
983
  "user"
891
984
  ]),
892
985
  contact: MessageContact
893
986
  }).annotate({ identifier: "ConversationParticipant" });
894
- const Design = Schema$1.Struct({
895
- theme: Schema$1.optionalKey(Schema$1.Union([Schema$1.Struct({
896
- colors: Schema$1.optionalKey(Schema$1.Union([ThemeColors, Schema$1.Null])),
897
- colorsDark: Schema$1.optionalKey(Schema$1.Union([ThemeColors, Schema$1.Null])),
898
- radiusPx: Schema$1.optionalKey(Schema$1.Union([Schema$1.Record(Schema$1.String, Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" }))), Schema$1.Null])),
899
- fontFamilies: Schema$1.optionalKey(Schema$1.Union([Schema$1.Record(Schema$1.String, Schema$1.Struct({
900
- source: Schema$1.Literals([
901
- "system",
902
- "google",
903
- "custom"
904
- ]),
905
- family: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
906
- fallback: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
907
- faces: Schema$1.optionalKey(Schema$1.Union([Schema$1.Array(Schema$1.Struct({
908
- weight: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })).check(Schema$1.isGreaterThanOrEqualTo(100).annotate({ expected: "a value greater than or equal to 100" })).check(Schema$1.isLessThanOrEqualTo(900).annotate({ expected: "a value less than or equal to 900" })),
909
- style: Schema$1.Literals(["normal", "italic"]),
910
- src: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
911
- unicodeRange: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null]))
912
- })).check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })), Schema$1.Null]))
913
- })), Schema$1.Null])),
914
- fontWeights: Schema$1.optionalKey(Schema$1.Union([Schema$1.Record(Schema$1.String, Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })).check(Schema$1.isGreaterThanOrEqualTo(100).annotate({ expected: "a value greater than or equal to 100" })).check(Schema$1.isLessThanOrEqualTo(900).annotate({ expected: "a value less than or equal to 900" }))), Schema$1.Null])),
915
- text: Schema$1.optionalKey(Schema$1.Union([Schema$1.Record(Schema$1.String, Schema$1.Struct({
916
- sizePx: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })).check(Schema$1.isGreaterThan(0).annotate({ expected: "a value greater than 0" })),
917
- lineHeightPx: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })).check(Schema$1.isGreaterThan(0).annotate({ expected: "a value greater than 0" }))
918
- })), Schema$1.Null])),
919
- leading: Schema$1.optionalKey(Schema$1.Union([Schema$1.Record(Schema$1.String, Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" }))), Schema$1.Null])),
920
- spacingPx: Schema$1.optionalKey(Schema$1.Union([Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })).check(Schema$1.isGreaterThan(0).annotate({ expected: "a value greater than 0" })), Schema$1.Null])),
921
- containerPx: Schema$1.optionalKey(Schema$1.Union([Schema$1.Record(Schema$1.String, Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })).check(Schema$1.isGreaterThan(0).annotate({ expected: "a value greater than 0" }))), Schema$1.Null])),
922
- tracking: Schema$1.optionalKey(Schema$1.Union([Schema$1.Record(Schema$1.String, Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" }))), Schema$1.Null]))
923
- }), Schema$1.Null])),
924
- assets: Schema$1.optionalKey(Schema$1.Union([Schema$1.Struct({
925
- logoUrl: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String, Schema$1.Null]), Schema$1.Null])),
926
- logoDarkUrl: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String, Schema$1.Null]), Schema$1.Null])),
927
- iconUrl: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String, Schema$1.Null]), Schema$1.Null]))
928
- }), Schema$1.Null])),
929
- footer: Schema$1.optionalKey(Schema$1.Union([Schema$1.Struct({
930
- companyName: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
931
- address: Schema$1.optionalKey(Schema$1.Union([Schema$1.Struct({
932
- street1: Schema$1.String,
933
- street2: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
934
- city: Schema$1.String,
935
- region: Schema$1.String,
936
- postalCode: Schema$1.String,
937
- country: Schema$1.String
938
- }), Schema$1.Null])),
939
- socialLinks: Schema$1.optionalKey(Schema$1.Union([Schema$1.Array(Schema$1.Struct({
940
- label: Schema$1.String,
941
- url: Schema$1.String
942
- })), Schema$1.Null])),
943
- customHtml: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null]))
944
- }), Schema$1.Null]))
945
- }).annotate({ identifier: "Design" });
946
987
  const WebhookEndpoint = Schema$1.Struct({
947
988
  id: WebhookEndpointId,
948
989
  name: Schema$1.String,
@@ -955,9 +996,13 @@ const WebhookEndpoint = Schema$1.Struct({
955
996
  "message.bounced",
956
997
  "message.complained",
957
998
  "message.received",
999
+ "message.opened",
1000
+ "message.clicked",
958
1001
  "contact.created",
959
1002
  "contact.updated",
960
1003
  "contact.deleted",
1004
+ "contact.unsubscribed",
1005
+ "contact.resubscribed",
961
1006
  "conversation.created",
962
1007
  "conversation.updated",
963
1008
  "conversation.archived",
@@ -1117,8 +1162,12 @@ const OnboardingReviewStatus = Schema$1.Struct({
1117
1162
  decision: Schema$1.Literals([
1118
1163
  "undecided",
1119
1164
  "approved",
1120
- "rejected",
1121
- "exempt"
1165
+ "rejected"
1166
+ ]),
1167
+ trustTier: Schema$1.Literals([
1168
+ "screened",
1169
+ "probation",
1170
+ "established"
1122
1171
  ]),
1123
1172
  stage: Schema$1.Literals([
1124
1173
  "collecting",
@@ -1279,11 +1328,29 @@ const TemplateFamily = Schema$1.Struct({
1279
1328
  createdAt: Schema$1.String,
1280
1329
  updatedAt: Schema$1.String
1281
1330
  }).annotate({ identifier: "TemplateFamily" });
1331
+ const UpdateTemplatePayload = Schema$1.Struct({ data: Schema$1.Struct({
1332
+ name: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
1333
+ slug: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$" })), Schema$1.Null])),
1334
+ entryPath: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })), Schema$1.Null])),
1335
+ description: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String, Schema$1.Null]), Schema$1.Null])),
1336
+ category: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Literals([
1337
+ "transactional",
1338
+ "marketing",
1339
+ "support",
1340
+ "notification",
1341
+ "verification",
1342
+ "reminder",
1343
+ "alert"
1344
+ ]), Schema$1.Null]), Schema$1.Null])),
1345
+ fromDefault: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([TemplateFromDefault, Schema$1.Null]), Schema$1.Null])),
1346
+ replyToDefault: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Array(Schema$1.String), Schema$1.Null]), Schema$1.Null])),
1347
+ isActive: Schema$1.optionalKey(Schema$1.Union([Schema$1.Boolean, Schema$1.Null]))
1348
+ }) }).annotate({ identifier: "UpdateTemplatePayload" });
1282
1349
  const Template = Schema$1.Struct({
1283
1350
  id: TemplateId,
1284
1351
  organizationId: OrganizationId,
1285
1352
  projectId: TemplateProjectId,
1286
- entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$" })),
1353
+ entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })),
1287
1354
  name: Schema$1.String,
1288
1355
  slug: Schema$1.String,
1289
1356
  familyId: Schema$1.Union([TemplateFamilyId, Schema$1.Null]),
@@ -1302,6 +1369,7 @@ const Template = Schema$1.Struct({
1302
1369
  headers: Schema$1.Union([Schema$1.Record(Schema$1.String, Schema$1.String), Schema$1.Null])
1303
1370
  }), Schema$1.Null]),
1304
1371
  publicationId: Schema$1.Union([TemplatePublicationId, Schema$1.Null]),
1372
+ brand: Schema$1.Union([TemplatePublicationBrand, Schema$1.Null]),
1305
1373
  inputContractId: Schema$1.Union([TemplateInputContractId, Schema$1.Null]),
1306
1374
  inputSchema: Schema$1.Union([Schema$1.Record(Schema$1.String, JsonValue), Schema$1.Null]),
1307
1375
  usageCount: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })),
@@ -1314,23 +1382,10 @@ const Template = Schema$1.Struct({
1314
1382
  createdAt: Schema$1.String,
1315
1383
  updatedAt: Schema$1.String
1316
1384
  }).annotate({ identifier: "Template" });
1317
- const UpdateTemplatePayload = Schema$1.Struct({ data: Schema$1.Struct({
1318
- name: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
1319
- slug: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$" })), Schema$1.Null])),
1320
- description: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String, Schema$1.Null]), Schema$1.Null])),
1321
- category: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Literals([
1322
- "transactional",
1323
- "marketing",
1324
- "support",
1325
- "notification",
1326
- "verification",
1327
- "reminder",
1328
- "alert"
1329
- ]), Schema$1.Null]), Schema$1.Null])),
1330
- fromDefault: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([TemplateFromDefault, Schema$1.Null]), Schema$1.Null])),
1331
- replyToDefault: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Array(Schema$1.String), Schema$1.Null]), Schema$1.Null])),
1332
- isActive: Schema$1.optionalKey(Schema$1.Union([Schema$1.Boolean, Schema$1.Null]))
1333
- }) }).annotate({ identifier: "UpdateTemplatePayload" });
1385
+ const BrandRenderedFooter = Schema$1.Struct({
1386
+ withUnsubscribe: BrandFooterBlock,
1387
+ withoutUnsubscribe: BrandFooterBlock
1388
+ }).annotate({ identifier: "BrandRenderedFooter" });
1334
1389
  const WebhookEndpointListItem = Schema$1.Struct({
1335
1390
  id: WebhookEndpointId,
1336
1391
  name: Schema$1.String,
@@ -1343,9 +1398,13 @@ const WebhookEndpointListItem = Schema$1.Struct({
1343
1398
  "message.bounced",
1344
1399
  "message.complained",
1345
1400
  "message.received",
1401
+ "message.opened",
1402
+ "message.clicked",
1346
1403
  "contact.created",
1347
1404
  "contact.updated",
1348
1405
  "contact.deleted",
1406
+ "contact.unsubscribed",
1407
+ "contact.resubscribed",
1349
1408
  "conversation.created",
1350
1409
  "conversation.updated",
1351
1410
  "conversation.archived",
@@ -1410,6 +1469,33 @@ const MessageSubmission = Schema$1.Struct({
1410
1469
  userId: Schema$1.Union([UserId, Schema$1.Null]),
1411
1470
  client: Schema$1.Union([SubmissionClient, Schema$1.Null])
1412
1471
  }).annotate({ identifier: "MessageSubmission" });
1472
+ const Brand = Schema$1.Struct({
1473
+ id: BrandId,
1474
+ slug: Schema$1.String.annotate({ description: "The brand's handle, unique in the organization; `samva:brand/<slug>` names it." }).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })),
1475
+ name: Schema$1.String,
1476
+ isDefault: Schema$1.Boolean.annotate({ description: "Whether bare `samva:brand` and domains without a brand resolve to this brand." }),
1477
+ css: Schema$1.String.annotate({ description: "Brand theme CSS: `@theme` variables, one dark-mode `@theme` of colors, and `@font-face` rules with https WOFF2 sources." }),
1478
+ assets: BrandAssets,
1479
+ footer: BrandFooter,
1480
+ digest: Schema$1.String.annotate({ description: "SHA-256 of the brand's css, assets and footer. A publication built against a different digest predates the brand's current content." }),
1481
+ createdAt: Schema$1.String,
1482
+ updatedAt: Schema$1.String
1483
+ }).annotate({ identifier: "Brand" });
1484
+ const CreateBrand = Schema$1.Struct({
1485
+ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })),
1486
+ name: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(120).annotate({ expected: "a value with a length of at most 120" })),
1487
+ css: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMaxLength(32768).annotate({ expected: "a value with a length of at most 32768" })), Schema$1.Null])),
1488
+ assets: Schema$1.optionalKey(Schema$1.Union([BrandAssets, Schema$1.Null])),
1489
+ footer: Schema$1.optionalKey(Schema$1.Union([BrandFooter, Schema$1.Null])),
1490
+ isDefault: Schema$1.optionalKey(Schema$1.Union([Schema$1.Boolean, Schema$1.Null]))
1491
+ }).annotate({ identifier: "CreateBrand" });
1492
+ const UpdateBrand = Schema$1.Struct({
1493
+ newSlug: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.annotate({ description: "Renames the brand. Projects importing `samva:brand/<old slug>` stop building until they import the new slug." }).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })), Schema$1.Null])),
1494
+ name: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(120).annotate({ expected: "a value with a length of at most 120" })), Schema$1.Null])),
1495
+ css: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMaxLength(32768).annotate({ expected: "a value with a length of at most 32768" })), Schema$1.Null])),
1496
+ assets: Schema$1.optionalKey(Schema$1.Union([BrandAssets, Schema$1.Null])),
1497
+ footer: Schema$1.optionalKey(Schema$1.Union([BrandFooter, Schema$1.Null]))
1498
+ }).annotate({ identifier: "UpdateBrand" });
1413
1499
  const EmailAttachments = Schema$1.Union([Schema$1.Array(EmailAttachment).check(Schema$1.isMaxLength(10).annotate({ expected: "a value with a length of at most 10" })), Schema$1.Null]).annotate({ identifier: "EmailAttachments" });
1414
1500
  const CompletedMedia = Schema$1.Struct({
1415
1501
  media: Media,
@@ -1593,7 +1679,6 @@ const EmailDomainVerification = Schema$1.Struct({
1593
1679
  "domain-observation-stale",
1594
1680
  "operator-paused",
1595
1681
  "sending-paused",
1596
- "sending-status-stale",
1597
1682
  "sending-status-unknown",
1598
1683
  "ready"
1599
1684
  ])
@@ -1814,35 +1899,6 @@ const ConversationDetail = Schema$1.Struct({
1814
1899
  createdBy: Schema$1.Union([ActorId, Schema$1.Null]),
1815
1900
  participants: Schema$1.Array(ConversationParticipant)
1816
1901
  }).annotate({ identifier: "ConversationDetail" });
1817
- const DesignSettings = Schema$1.Struct({
1818
- design: Schema$1.Union([Design, Schema$1.Null]),
1819
- footerCompleteness: Schema$1.Struct({ missingAddress: Schema$1.Boolean })
1820
- }).annotate({ identifier: "DesignSettings" });
1821
- const Organization = Schema$1.Struct({
1822
- id: Schema$1.String,
1823
- billingAccountId: Schema$1.String,
1824
- name: Schema$1.String,
1825
- slug: Schema$1.String,
1826
- countryCode: Schema$1.String,
1827
- timezone: Schema$1.String,
1828
- plan: Schema$1.String,
1829
- isActive: Schema$1.Boolean,
1830
- createdAt: Schema$1.String,
1831
- updatedAt: Schema$1.String,
1832
- metadata: Schema$1.Union([Schema$1.Record(Schema$1.String, JsonValue), Schema$1.Null]),
1833
- design: Schema$1.Union([Design, Schema$1.Null]),
1834
- replyToDefault: Schema$1.Union([Schema$1.Array(Schema$1.String), Schema$1.Null]),
1835
- defaultUnsubscribeGroupId: Schema$1.Union([UnsubscribeId, Schema$1.Null]),
1836
- emailFooterEnabledDefault: Schema$1.Union([Schema$1.Boolean, Schema$1.Null]),
1837
- messagesUsed: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
1838
- messagesUsedThisMonth: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
1839
- emailUsed: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
1840
- emailUsedThisMonth: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
1841
- contactsUsed: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
1842
- conversationsUsed: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
1843
- teamMembersUsed: Schema$1.Finite.check(Schema$1.isFinite().annotate({ expected: "a finite number" })),
1844
- messagesResetAt: Schema$1.Union([Schema$1.String, Schema$1.Null])
1845
- }).annotate({ identifier: "Organization" });
1846
1902
  const DomainWarming = Schema$1.Struct({
1847
1903
  domain: DomainWarmingDomainRef,
1848
1904
  plan: Schema$1.Union([DomainWarmingPlan, Schema$1.Null]),
@@ -1933,8 +1989,10 @@ const Message = Schema$1.Struct({
1933
1989
  "retry",
1934
1990
  "campaign-paused",
1935
1991
  "domain-warming",
1936
- "onboarding-review"
1937
- ]), Schema$1.Null])
1992
+ "onboarding-review",
1993
+ "content-review"
1994
+ ]), Schema$1.Null]),
1995
+ reviewExpectedAt: Schema$1.Union([Schema$1.String, Schema$1.Null])
1938
1996
  }), Schema$1.Null]),
1939
1997
  id: Schema$1.String,
1940
1998
  messageId: Schema$1.String,
@@ -2010,8 +2068,22 @@ const Message = Schema$1.Struct({
2010
2068
  processedAt: Schema$1.Union([Schema$1.String, Schema$1.Null]),
2011
2069
  createdAt: Schema$1.String,
2012
2070
  updatedAt: Schema$1.String
2013
- }))
2071
+ })),
2072
+ waitReason: Schema$1.Union([Schema$1.Literals([
2073
+ "rate",
2074
+ "daily-quota",
2075
+ "domain-health",
2076
+ "sending-paused",
2077
+ "upstream-unavailable",
2078
+ "retry",
2079
+ "campaign-paused",
2080
+ "domain-warming",
2081
+ "onboarding-review",
2082
+ "content-review"
2083
+ ]), Schema$1.Null]),
2084
+ reviewExpectedAt: Schema$1.Union([Schema$1.String, Schema$1.Null])
2014
2085
  }).annotate({ identifier: "Message" });
2086
+ const BrandList = Schema$1.Struct({ items: Schema$1.Array(Brand) }).annotate({ identifier: "BrandList" });
2015
2087
  const EmailContent = Schema$1.Struct({
2016
2088
  subject: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
2017
2089
  html: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
@@ -2022,6 +2094,8 @@ const EmailContent = Schema$1.Struct({
2022
2094
  templateId: Schema$1.optionalKey(Schema$1.Union([TemplateId, Schema$1.Null])),
2023
2095
  templateSlug: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$" })), Schema$1.Null])),
2024
2096
  templateData: Schema$1.optionalKey(TemplateData),
2097
+ locale: Schema$1.optionalKey(RenderLocale),
2098
+ timeZone: Schema$1.optionalKey(RenderTimeZone),
2025
2099
  inReplyToMessageId: Schema$1.optionalKey(Schema$1.Union([MessageId, Schema$1.Null])),
2026
2100
  replyTo: Schema$1.optionalKey(ReplyToAddresses),
2027
2101
  unsubscribeGroupId: Schema$1.optionalKey(Schema$1.Union([UnsubscribeId, Schema$1.Null])),
@@ -2038,6 +2112,8 @@ const EmailDispatchContent = Schema$1.Struct({
2038
2112
  templateId: Schema$1.optionalKey(Schema$1.Union([TemplateId, Schema$1.Null])),
2039
2113
  templateSlug: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$" })), Schema$1.Null])),
2040
2114
  templateData: Schema$1.optionalKey(TemplateData),
2115
+ locale: Schema$1.optionalKey(RenderLocale),
2116
+ timeZone: Schema$1.optionalKey(RenderTimeZone),
2041
2117
  inReplyToMessageId: Schema$1.optionalKey(Schema$1.Union([MessageId, Schema$1.Null])),
2042
2118
  replyTo: Schema$1.optionalKey(ReplyToAddresses),
2043
2119
  unsubscribeGroupId: Schema$1.optionalKey(Schema$1.Union([UnsubscribeId, Schema$1.Null])),
@@ -2469,6 +2545,64 @@ const AttachmentsDownloadUrl403 = ForbiddenError;
2469
2545
  const AttachmentsDownloadUrl404 = ResourceNotFoundError;
2470
2546
  const AttachmentsDownloadUrl500 = InternalError;
2471
2547
  const AttachmentsDownloadUrl504 = GatewayTimeoutError;
2548
+ const BrandsList200 = BrandList;
2549
+ const BrandsList401 = UnauthorizedError;
2550
+ const BrandsList403 = ForbiddenError;
2551
+ const BrandsList500 = InternalError;
2552
+ const BrandsList504 = GatewayTimeoutError;
2553
+ const BrandsCreateRequestJson = Schema$1.Struct({
2554
+ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })),
2555
+ name: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(120).annotate({ expected: "a value with a length of at most 120" })),
2556
+ css: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMaxLength(32768).annotate({ expected: "a value with a length of at most 32768" })), Schema$1.Null])),
2557
+ assets: Schema$1.optionalKey(Schema$1.Union([BrandAssets, Schema$1.Null])),
2558
+ footer: Schema$1.optionalKey(Schema$1.Union([BrandFooter, Schema$1.Null])),
2559
+ isDefault: Schema$1.optionalKey(Schema$1.Union([Schema$1.Boolean, Schema$1.Null]))
2560
+ });
2561
+ const BrandsCreate201 = Brand;
2562
+ const BrandsCreate401 = UnauthorizedError;
2563
+ const BrandsCreate403 = ForbiddenError;
2564
+ const BrandsCreate409 = ConflictError;
2565
+ const BrandsCreate422 = ValidationError;
2566
+ const BrandsCreate500 = InternalError;
2567
+ const BrandsCreate504 = GatewayTimeoutError;
2568
+ const BrandsGetPathParams = Schema$1.Struct({ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })) });
2569
+ const BrandsGet200 = Brand;
2570
+ const BrandsGet401 = UnauthorizedError;
2571
+ const BrandsGet403 = ForbiddenError;
2572
+ const BrandsGet404 = ResourceNotFoundError;
2573
+ const BrandsGet500 = InternalError;
2574
+ const BrandsGet504 = GatewayTimeoutError;
2575
+ const BrandsRemovePathParams = Schema$1.Struct({ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })) });
2576
+ const BrandsRemove200 = SuccessResponse;
2577
+ const BrandsRemove401 = UnauthorizedError;
2578
+ const BrandsRemove403 = ForbiddenError;
2579
+ const BrandsRemove404 = ResourceNotFoundError;
2580
+ const BrandsRemove409 = ConflictError;
2581
+ const BrandsRemove500 = InternalError;
2582
+ const BrandsRemove504 = GatewayTimeoutError;
2583
+ const BrandsUpdatePathParams = Schema$1.Struct({ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })) });
2584
+ const BrandsUpdateRequestJson = Schema$1.Struct({
2585
+ newSlug: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.annotate({ description: "Renames the brand. Projects importing `samva:brand/<old slug>` stop building until they import the new slug." }).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })), Schema$1.Null])),
2586
+ name: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(120).annotate({ expected: "a value with a length of at most 120" })), Schema$1.Null])),
2587
+ css: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMaxLength(32768).annotate({ expected: "a value with a length of at most 32768" })), Schema$1.Null])),
2588
+ assets: Schema$1.optionalKey(Schema$1.Union([BrandAssets, Schema$1.Null])),
2589
+ footer: Schema$1.optionalKey(Schema$1.Union([BrandFooter, Schema$1.Null]))
2590
+ });
2591
+ const BrandsUpdate200 = Brand;
2592
+ const BrandsUpdate401 = UnauthorizedError;
2593
+ const BrandsUpdate403 = ForbiddenError;
2594
+ const BrandsUpdate404 = ResourceNotFoundError;
2595
+ const BrandsUpdate409 = ConflictError;
2596
+ const BrandsUpdate422 = ValidationError;
2597
+ const BrandsUpdate500 = InternalError;
2598
+ const BrandsUpdate504 = GatewayTimeoutError;
2599
+ const BrandsSetDefaultPathParams = Schema$1.Struct({ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })) });
2600
+ const BrandsSetDefault200 = Brand;
2601
+ const BrandsSetDefault401 = UnauthorizedError;
2602
+ const BrandsSetDefault403 = ForbiddenError;
2603
+ const BrandsSetDefault404 = ResourceNotFoundError;
2604
+ const BrandsSetDefault500 = InternalError;
2605
+ const BrandsSetDefault504 = GatewayTimeoutError;
2472
2606
  const CampaignsListQuery = Schema$1.Struct({
2473
2607
  status: Schema$1.optionalKey(Schema$1.Union([Schema$1.Literals(["draft", "archived"]), Schema$1.Null])),
2474
2608
  page: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
@@ -2558,7 +2692,11 @@ const CampaignsScheduleRun401 = UnauthorizedError;
2558
2692
  const CampaignsScheduleRun403 = Schema$1.Union([FlagDisabledError, ForbiddenError]);
2559
2693
  const CampaignsScheduleRun404 = ResourceNotFoundError;
2560
2694
  const CampaignsScheduleRun409 = ConflictError;
2561
- const CampaignsScheduleRun422 = ValidationError;
2695
+ const CampaignsScheduleRun422 = Schema$1.Union([
2696
+ ValidationError,
2697
+ BrandAddressRequiredError,
2698
+ CampaignFooterRequiredError
2699
+ ]);
2562
2700
  const CampaignsScheduleRun500 = InternalError;
2563
2701
  const CampaignsScheduleRun502 = ExternalServiceError;
2564
2702
  const CampaignsScheduleRun504 = GatewayTimeoutError;
@@ -3513,18 +3651,6 @@ const CustomFieldsUpdate404 = ResourceNotFoundError;
3513
3651
  const CustomFieldsUpdate422 = ValidationError;
3514
3652
  const CustomFieldsUpdate500 = InternalError;
3515
3653
  const CustomFieldsUpdate504 = GatewayTimeoutError;
3516
- const DesignGet200 = DesignSettings;
3517
- const DesignGet401 = UnauthorizedError;
3518
- const DesignGet403 = ForbiddenError;
3519
- const DesignGet500 = InternalError;
3520
- const DesignGet504 = GatewayTimeoutError;
3521
- const DesignUpdateRequestJson = Schema$1.Struct({ design: Schema$1.Union([Design, Schema$1.Null]) });
3522
- const DesignUpdate200 = DesignSettings;
3523
- const DesignUpdate401 = UnauthorizedError;
3524
- const DesignUpdate403 = ForbiddenError;
3525
- const DesignUpdate422 = ValidationError;
3526
- const DesignUpdate500 = InternalError;
3527
- const DesignUpdate504 = GatewayTimeoutError;
3528
3654
  const EmailListBlocksQuery = Schema$1.Struct({
3529
3655
  blockType: Schema$1.optionalKey(Schema$1.Union([Schema$1.Literals(["email", "domain"]), Schema$1.Null])),
3530
3656
  isActive: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.annotate({ contentMediaType: "application/json" }), Schema$1.Null])),
@@ -3739,7 +3865,8 @@ const EmailGetCatchAllStats500 = InternalError;
3739
3865
  const EmailGetCatchAllStats504 = GatewayTimeoutError;
3740
3866
  const EmailListDomainsQuery = Schema$1.Struct({
3741
3867
  page: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
3742
- limit: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null]))
3868
+ limit: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
3869
+ sendable: Schema$1.optionalKey(Schema$1.Union([Schema$1.Literal("true"), Schema$1.Null]))
3743
3870
  });
3744
3871
  const EmailListDomains200 = Schema$1.Struct({
3745
3872
  items: Schema$1.Array(Schema$1.Struct({
@@ -3805,7 +3932,8 @@ const EmailUpdateDomainConfigRequestJson = Schema$1.Struct({
3805
3932
  clickTracking: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Boolean, Schema$1.Null]), Schema$1.Null])),
3806
3933
  replyTo: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Array(Schema$1.String), Schema$1.Null]), Schema$1.Null])),
3807
3934
  unsubscribeGroupId: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([UnsubscribeId, Schema$1.Null]), Schema$1.Null])),
3808
- footerEnabled: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Boolean, Schema$1.Null]), Schema$1.Null]))
3935
+ footerEnabled: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Boolean, Schema$1.Null]), Schema$1.Null])),
3936
+ brandSlug: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })), Schema$1.Null]), Schema$1.Null]))
3809
3937
  });
3810
3938
  const EmailUpdateDomainConfig200 = Schema$1.Struct({
3811
3939
  id: EmailDomainId,
@@ -3813,7 +3941,8 @@ const EmailUpdateDomainConfig200 = Schema$1.Struct({
3813
3941
  clickTracking: Schema$1.Union([Schema$1.Boolean, Schema$1.Null]),
3814
3942
  replyTo: Schema$1.Union([Schema$1.Array(Schema$1.String), Schema$1.Null]),
3815
3943
  unsubscribeGroupId: Schema$1.Union([UnsubscribeId, Schema$1.Null]),
3816
- footerEnabled: Schema$1.Union([Schema$1.Boolean, Schema$1.Null])
3944
+ footerEnabled: Schema$1.Union([Schema$1.Boolean, Schema$1.Null]),
3945
+ brandSlug: Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })), Schema$1.Null])
3817
3946
  });
3818
3947
  const EmailUpdateDomainConfig401 = UnauthorizedError;
3819
3948
  const EmailUpdateDomainConfig403 = ForbiddenError;
@@ -4571,8 +4700,10 @@ const MessagesGetEmail200 = Schema$1.Struct({
4571
4700
  "retry",
4572
4701
  "campaign-paused",
4573
4702
  "domain-warming",
4574
- "onboarding-review"
4575
- ]), Schema$1.Null])
4703
+ "onboarding-review",
4704
+ "content-review"
4705
+ ]), Schema$1.Null]),
4706
+ reviewExpectedAt: Schema$1.Union([Schema$1.String, Schema$1.Null])
4576
4707
  }), Schema$1.Null]),
4577
4708
  id: Schema$1.String,
4578
4709
  messageId: Schema$1.String,
@@ -4892,9 +5023,7 @@ const OrganizationsUpdateRequestJson = Schema$1.Struct({
4892
5023
  timezone: Schema$1.optionalKey(Schema$1.Union([IanaTimezone, Schema$1.Null])),
4893
5024
  isActive: Schema$1.optionalKey(Schema$1.Union([Schema$1.Boolean, Schema$1.Null])),
4894
5025
  metadata: Schema$1.optionalKey(Schema$1.Union([Schema$1.Record(Schema$1.String, JsonValue), Schema$1.Null])),
4895
- design: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Design, Schema$1.Null]), Schema$1.Null])),
4896
5026
  replyToDefault: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Array(Schema$1.String), Schema$1.Null]), Schema$1.Null])),
4897
- defaultUnsubscribeGroupId: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([UnsubscribeId, Schema$1.Null]), Schema$1.Null])),
4898
5027
  emailFooterEnabledDefault: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Boolean, Schema$1.Null]), Schema$1.Null]))
4899
5028
  });
4900
5029
  const OrganizationsUpdate200 = Organization;
@@ -4904,6 +5033,15 @@ const OrganizationsUpdate404 = ResourceNotFoundError;
4904
5033
  const OrganizationsUpdate422 = ValidationError;
4905
5034
  const OrganizationsUpdate500 = InternalError;
4906
5035
  const OrganizationsUpdate504 = GatewayTimeoutError;
5036
+ const OrganizationsGetProfile200 = Schema$1.Struct({
5037
+ id: Schema$1.String.annotate({ description: "Opaque identity for your organization membership" }),
5038
+ name: Schema$1.String.annotate({ description: "Your display name" }),
5039
+ nickname: Schema$1.String.annotate({ description: "Your display name and organization name" })
5040
+ });
5041
+ const OrganizationsGetProfile401 = UnauthorizedError;
5042
+ const OrganizationsGetProfile403 = ForbiddenError;
5043
+ const OrganizationsGetProfile500 = InternalError;
5044
+ const OrganizationsGetProfile504 = GatewayTimeoutError;
4907
5045
  const OrganizationsDeleteHeaders = Schema$1.Struct({ "idempotency-key": Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(255).annotate({ expected: "a value with a length of at most 255" })) });
4908
5046
  const OrganizationsDeleteRequestJson = Schema$1.Struct({ confirmationName: Schema$1.String });
4909
5047
  const OrganizationsDelete202 = OperationAccepted;
@@ -4961,6 +5099,7 @@ const TemplatesListQuery = Schema$1.Struct({
4961
5099
  "archived"
4962
5100
  ]), Schema$1.Null])),
4963
5101
  search: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
5102
+ projectId: Schema$1.optionalKey(Schema$1.Union([TemplateProjectId, Schema$1.Null])),
4964
5103
  sortBy: Schema$1.optionalKey(Schema$1.Union([Schema$1.Literals([
4965
5104
  "name",
4966
5105
  "createdAt",
@@ -4983,6 +5122,7 @@ const TemplatesCreateRequestJson = Schema$1.Struct({
4983
5122
  projectName: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(200).annotate({ expected: "a value with a length of at most 200" })), Schema$1.Null])),
4984
5123
  slug: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$" })), Schema$1.Null])),
4985
5124
  galleryTemplateId: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(128).annotate({ expected: "a value with a length of at most 128" })), Schema$1.Null])),
5125
+ useBrand: Schema$1.optionalKey(Schema$1.Union([Schema$1.Boolean.annotate({ description: "With `galleryTemplateId`: whether the new project's `theme.css` imports the organization's default brand (`@import \"samva:brand\";`) over the starter's look. Defaults to false." }), Schema$1.Null])),
4986
5126
  description: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String, Schema$1.Null]), Schema$1.Null])),
4987
5127
  category: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Literals([
4988
5128
  "transactional",
@@ -5021,6 +5161,7 @@ const TemplatesUpdatePathParams = Schema$1.Struct({ id: TemplateId });
5021
5161
  const TemplatesUpdateRequestJson = Schema$1.Struct({ data: Schema$1.Struct({
5022
5162
  name: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
5023
5163
  slug: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$" })), Schema$1.Null])),
5164
+ entryPath: Schema$1.optionalKey(Schema$1.Union([Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })), Schema$1.Null])),
5024
5165
  description: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String, Schema$1.Null]), Schema$1.Null])),
5025
5166
  category: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Literals([
5026
5167
  "transactional",
@@ -5080,8 +5221,9 @@ const TemplatesPublishPathParams = Schema$1.Struct({ id: TemplateId });
5080
5221
  const TemplatesPublishRequestJson = Schema$1.Struct({
5081
5222
  projectId: TemplateProjectId,
5082
5223
  commitSha: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5083
- entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$" })),
5084
- expectedWorkspaceRevision: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" }))
5224
+ entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })),
5225
+ expectedWorkspaceRevision: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5226
+ ifCurrentPublicationId: Schema$1.optionalKey(Schema$1.Union([TemplatePublicationId, Schema$1.Null]))
5085
5227
  });
5086
5228
  const TemplatesPublish201 = Schema$1.Struct({
5087
5229
  id: TemplatePublicationId,
@@ -5091,30 +5233,20 @@ const TemplatesPublish201 = Schema$1.Struct({
5091
5233
  inputContractId: TemplateInputContractId,
5092
5234
  commitSha: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5093
5235
  treeSha: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5094
- entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$" })),
5236
+ entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })),
5095
5237
  buildIdentity: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5096
5238
  manifest: Schema$1.Struct({
5097
5239
  templateKey: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5098
- executable: Schema$1.Struct({
5099
- codeDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5240
+ ir: Schema$1.Struct({
5241
+ version: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(1).annotate({ expected: "a value greater than or equal to 1" })),
5242
+ digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5100
5243
  bytes: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" }))
5101
5244
  }),
5245
+ compiler: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5102
5246
  input: Schema$1.Struct({
5103
5247
  schemaDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5104
5248
  contractDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" }))
5105
5249
  }),
5106
- environment: Schema$1.Struct({
5107
- locale: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5108
- timeZone: Schema$1.Literal("UTC"),
5109
- now: Schema$1.optionalKey(Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" }))),
5110
- randomSeed: Schema$1.optionalKey(Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })).check(Schema$1.isLessThanOrEqualTo(4294967295).annotate({ expected: "a value less than or equal to 4294967295" }))),
5111
- compiler: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5112
- runtime: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5113
- checker: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5114
- lockKind: Schema$1.Literals(["bun", "npm"]),
5115
- lockDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5116
- digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" }))
5117
- }),
5118
5250
  assets: Schema$1.Struct({
5119
5251
  base: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^https?:\\/\\/")).annotate({ expected: "a string matching the RegExp ^https?:\\/\\/" })),
5120
5252
  entries: Schema$1.Array(Schema$1.Struct({
@@ -5129,11 +5261,24 @@ const TemplatesPublish201 = Schema$1.Struct({
5129
5261
  source: Schema$1.Struct({
5130
5262
  commitSha: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5131
5263
  treeSha: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5132
- entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$" })),
5264
+ entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })),
5133
5265
  treeDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" }))
5134
- })
5266
+ }),
5267
+ brand: Schema$1.optionalKey(Schema$1.Struct({
5268
+ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })),
5269
+ css: Schema$1.String,
5270
+ assets: BrandAssets,
5271
+ footer: BrandFooter,
5272
+ renderedFooter: BrandRenderedFooter,
5273
+ digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5274
+ rendersFooter: Schema$1.Literals([
5275
+ "every",
5276
+ "some",
5277
+ "none"
5278
+ ])
5279
+ }))
5135
5280
  }),
5136
- executable: Schema$1.Struct({
5281
+ ir: Schema$1.Struct({
5137
5282
  key: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5138
5283
  digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" }))
5139
5284
  }),
@@ -5233,30 +5378,20 @@ const TemplatesGetPublication200 = Schema$1.Struct({
5233
5378
  inputContractId: TemplateInputContractId,
5234
5379
  commitSha: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5235
5380
  treeSha: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5236
- entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$" })),
5381
+ entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })),
5237
5382
  buildIdentity: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5238
5383
  manifest: Schema$1.Struct({
5239
5384
  templateKey: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5240
- executable: Schema$1.Struct({
5241
- codeDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5385
+ ir: Schema$1.Struct({
5386
+ version: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(1).annotate({ expected: "a value greater than or equal to 1" })),
5387
+ digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5242
5388
  bytes: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" }))
5243
5389
  }),
5390
+ compiler: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5244
5391
  input: Schema$1.Struct({
5245
5392
  schemaDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5246
5393
  contractDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" }))
5247
5394
  }),
5248
- environment: Schema$1.Struct({
5249
- locale: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5250
- timeZone: Schema$1.Literal("UTC"),
5251
- now: Schema$1.optionalKey(Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" }))),
5252
- randomSeed: Schema$1.optionalKey(Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })).check(Schema$1.isLessThanOrEqualTo(4294967295).annotate({ expected: "a value less than or equal to 4294967295" }))),
5253
- compiler: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5254
- runtime: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5255
- checker: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5256
- lockKind: Schema$1.Literals(["bun", "npm"]),
5257
- lockDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5258
- digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" }))
5259
- }),
5260
5395
  assets: Schema$1.Struct({
5261
5396
  base: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^https?:\\/\\/")).annotate({ expected: "a string matching the RegExp ^https?:\\/\\/" })),
5262
5397
  entries: Schema$1.Array(Schema$1.Struct({
@@ -5271,11 +5406,24 @@ const TemplatesGetPublication200 = Schema$1.Struct({
5271
5406
  source: Schema$1.Struct({
5272
5407
  commitSha: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5273
5408
  treeSha: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5274
- entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$" })),
5409
+ entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })),
5275
5410
  treeDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" }))
5276
- })
5411
+ }),
5412
+ brand: Schema$1.optionalKey(Schema$1.Struct({
5413
+ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" })),
5414
+ css: Schema$1.String,
5415
+ assets: BrandAssets,
5416
+ footer: BrandFooter,
5417
+ renderedFooter: BrandRenderedFooter,
5418
+ digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5419
+ rendersFooter: Schema$1.Literals([
5420
+ "every",
5421
+ "some",
5422
+ "none"
5423
+ ])
5424
+ }))
5277
5425
  }),
5278
- executable: Schema$1.Struct({
5426
+ ir: Schema$1.Struct({
5279
5427
  key: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })),
5280
5428
  digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" }))
5281
5429
  }),
@@ -5592,12 +5740,119 @@ const TemplatesPatchWorkspace404 = ResourceNotFoundError;
5592
5740
  const TemplatesPatchWorkspace409 = ConflictError;
5593
5741
  const TemplatesPatchWorkspace500 = InternalError;
5594
5742
  const TemplatesPatchWorkspace504 = GatewayTimeoutError;
5743
+ const TemplatesPutWorkspaceAssetPathParams = Schema$1.Struct({ id: TemplateId });
5744
+ const TemplatesPutWorkspaceAssetRequestJson = Schema$1.Struct({
5745
+ expectedRevision: Schema$1.String,
5746
+ path: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$)).{1,1024}$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$)).{1,1024}$" })),
5747
+ contentBase64: Schema$1.String,
5748
+ replace: Schema$1.Boolean,
5749
+ idempotencyKey: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(255).annotate({ expected: "a value with a length of at most 255" }))
5750
+ });
5751
+ const TemplatesPutWorkspaceAsset200 = Schema$1.Struct({
5752
+ workspace: Schema$1.Struct({
5753
+ projectId: TemplateProjectId,
5754
+ organizationId: Schema$1.Union([OrganizationId, Schema$1.Null]),
5755
+ ownerEpoch: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })),
5756
+ repositoryName: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$")).annotate({ expected: "a string matching the RegExp ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$" })),
5757
+ defaultBranch: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(255).annotate({ expected: "a value with a length of at most 255" })),
5758
+ baseCommit: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5759
+ remoteHead: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })),
5760
+ pendingRemoteHead: Schema$1.Union([Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{40}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{40}$" })), Schema$1.Null]),
5761
+ revision: Schema$1.String,
5762
+ overlay: Schema$1.Record(Schema$1.String, Schema$1.Union([Schema$1.String, Schema$1.Null])),
5763
+ assetChanges: Schema$1.Array(Schema$1.Struct({
5764
+ path: Schema$1.String,
5765
+ status: Schema$1.Literals([
5766
+ "added",
5767
+ "modified",
5768
+ "deleted"
5769
+ ])
5770
+ })),
5771
+ conflicts: Schema$1.Array(Schema$1.Struct({
5772
+ path: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$)).{1,1024}$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$)).{1,1024}$" })),
5773
+ base: Schema$1.Union([Schema$1.String, Schema$1.Null]),
5774
+ draft: Schema$1.Union([Schema$1.String, Schema$1.Null]),
5775
+ main: Schema$1.Union([Schema$1.String, Schema$1.Null])
5776
+ })),
5777
+ provenance: Schema$1.Struct({ references: Schema$1.Array(Schema$1.Struct({
5778
+ kind: Schema$1.String,
5779
+ digest: Schema$1.String,
5780
+ locator: Schema$1.optionalKey(Schema$1.String)
5781
+ })) }),
5782
+ mounts: Schema$1.Array(Schema$1.Union([
5783
+ Schema$1.Struct({
5784
+ kind: Schema$1.Literal("project"),
5785
+ root: Schema$1.Literal("/project"),
5786
+ access: Schema$1.Literal("read-write")
5787
+ }),
5788
+ Schema$1.Struct({
5789
+ root: Schema$1.String.check(Schema$1.isMaxLength(2048).annotate({ expected: "a value with a length of at most 2048" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^\\/(?:project|references\\/started-from\\/[a-f0-9]{64}|resources\\/[A-Za-z0-9._-]+\\/[a-f0-9]{64}|library\\/templates\\/[a-z0-9]+(?:-[a-z0-9]+)*\\/[a-f0-9]{64})(?:\\/(?!\\.{1,2}(?:\\/|$)|\\.git(?:\\/|$))[^\\\\/]+)*$")).annotate({ expected: "a string matching the RegExp ^\\/(?:project|references\\/started-from\\/[a-f0-9]{64}|resources\\/[A-Za-z0-9._-]+\\/[a-f0-9]{64}|library\\/templates\\/[a-z0-9]+(?:-[a-z0-9]+)*\\/[a-f0-9]{64})(?:\\/(?!\\.{1,2}(?:\\/|$)|\\.git(?:\\/|$))[^\\\\/]+)*$" })),
5790
+ digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5791
+ fileCount: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(1).annotate({ expected: "a value greater than or equal to 1" })),
5792
+ byteSize: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(1).annotate({ expected: "a value greater than or equal to 1" })),
5793
+ kind: Schema$1.Literal("started-from"),
5794
+ access: Schema$1.Literal("read-only"),
5795
+ templateId: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(128).annotate({ expected: "a value with a length of at most 128" })),
5796
+ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9]+(?:-[a-z0-9]+)*$" })),
5797
+ name: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(256).annotate({ expected: "a value with a length of at most 256" }))
5798
+ }),
5799
+ Schema$1.Struct({
5800
+ root: Schema$1.String.check(Schema$1.isMaxLength(2048).annotate({ expected: "a value with a length of at most 2048" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^\\/(?:project|references\\/started-from\\/[a-f0-9]{64}|resources\\/[A-Za-z0-9._-]+\\/[a-f0-9]{64}|library\\/templates\\/[a-z0-9]+(?:-[a-z0-9]+)*\\/[a-f0-9]{64})(?:\\/(?!\\.{1,2}(?:\\/|$)|\\.git(?:\\/|$))[^\\\\/]+)*$")).annotate({ expected: "a string matching the RegExp ^\\/(?:project|references\\/started-from\\/[a-f0-9]{64}|resources\\/[A-Za-z0-9._-]+\\/[a-f0-9]{64}|library\\/templates\\/[a-z0-9]+(?:-[a-z0-9]+)*\\/[a-f0-9]{64})(?:\\/(?!\\.{1,2}(?:\\/|$)|\\.git(?:\\/|$))[^\\\\/]+)*$" })),
5801
+ digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5802
+ fileCount: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(1).annotate({ expected: "a value greater than or equal to 1" })),
5803
+ byteSize: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(1).annotate({ expected: "a value greater than or equal to 1" })),
5804
+ kind: Schema$1.Literal("resource"),
5805
+ access: Schema$1.Literal("read-only"),
5806
+ resourceId: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[A-Za-z0-9._-]{1,128}$")).annotate({ expected: "a string matching the RegExp ^[A-Za-z0-9._-]{1,128}$" })),
5807
+ name: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(256).annotate({ expected: "a value with a length of at most 256" }))
5808
+ }),
5809
+ Schema$1.Struct({
5810
+ root: Schema$1.String.check(Schema$1.isMaxLength(2048).annotate({ expected: "a value with a length of at most 2048" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^\\/(?:project|references\\/started-from\\/[a-f0-9]{64}|resources\\/[A-Za-z0-9._-]+\\/[a-f0-9]{64}|library\\/templates\\/[a-z0-9]+(?:-[a-z0-9]+)*\\/[a-f0-9]{64})(?:\\/(?!\\.{1,2}(?:\\/|$)|\\.git(?:\\/|$))[^\\\\/]+)*$")).annotate({ expected: "a string matching the RegExp ^\\/(?:project|references\\/started-from\\/[a-f0-9]{64}|resources\\/[A-Za-z0-9._-]+\\/[a-f0-9]{64}|library\\/templates\\/[a-z0-9]+(?:-[a-z0-9]+)*\\/[a-f0-9]{64})(?:\\/(?!\\.{1,2}(?:\\/|$)|\\.git(?:\\/|$))[^\\\\/]+)*$" })),
5811
+ digest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5812
+ fileCount: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(1).annotate({ expected: "a value greater than or equal to 1" })),
5813
+ byteSize: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(1).annotate({ expected: "a value greater than or equal to 1" })),
5814
+ kind: Schema$1.Literal("library-template"),
5815
+ access: Schema$1.Literal("read-only"),
5816
+ templateId: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(128).annotate({ expected: "a value with a length of at most 128" })),
5817
+ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^[a-z0-9]+(?:-[a-z0-9]+)*$" })),
5818
+ name: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(256).annotate({ expected: "a value with a length of at most 256" }))
5819
+ })
5820
+ ])),
5821
+ libraryManifestDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5822
+ createdAt: Schema$1.String,
5823
+ updatedAt: Schema$1.String,
5824
+ createdBy: Schema$1.Struct({
5825
+ userId: UserId,
5826
+ via: Schema$1.Literals([
5827
+ "api",
5828
+ "mcp",
5829
+ "agent"
5830
+ ])
5831
+ }),
5832
+ updatedBy: Schema$1.Struct({
5833
+ userId: UserId,
5834
+ via: Schema$1.Literals([
5835
+ "api",
5836
+ "mcp",
5837
+ "agent"
5838
+ ])
5839
+ })
5840
+ }),
5841
+ files: Schema$1.Record(Schema$1.String, Schema$1.String)
5842
+ });
5843
+ const TemplatesPutWorkspaceAsset401 = UnauthorizedError;
5844
+ const TemplatesPutWorkspaceAsset403 = ForbiddenError;
5845
+ const TemplatesPutWorkspaceAsset404 = ResourceNotFoundError;
5846
+ const TemplatesPutWorkspaceAsset409 = ConflictError;
5847
+ const TemplatesPutWorkspaceAsset422 = ValidationError;
5848
+ const TemplatesPutWorkspaceAsset500 = InternalError;
5849
+ const TemplatesPutWorkspaceAsset504 = GatewayTimeoutError;
5595
5850
  const TemplatesCheckWorkspacePathParams = Schema$1.Struct({ id: TemplateId });
5596
5851
  const TemplatesCheckWorkspaceRequestJson = Schema$1.Struct({ expectedRevision: Schema$1.String });
5597
5852
  const TemplatesCheckWorkspace200 = Schema$1.Struct({
5598
5853
  projectId: TemplateProjectId,
5599
5854
  revision: Schema$1.String,
5600
- entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$" })),
5855
+ entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })),
5601
5856
  declaration: Schema$1.Union([Schema$1.Struct({
5602
5857
  codeDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5603
5858
  templateId: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(128).annotate({ expected: "a value with a length of at most 128" })),
@@ -5606,10 +5861,6 @@ const TemplatesCheckWorkspace200 = Schema$1.Struct({
5606
5861
  schemaDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5607
5862
  contractDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" }))
5608
5863
  }),
5609
- runtime: Schema$1.Struct({
5610
- now: Schema$1.optionalKey(Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" }))),
5611
- randomSeed: Schema$1.optionalKey(Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })).check(Schema$1.isLessThanOrEqualTo(4294967295).annotate({ expected: "a value less than or equal to 4294967295" })))
5612
- }),
5613
5864
  fixtures: Schema$1.Array(Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(128).annotate({ expected: "a value with a length of at most 128" })))
5614
5865
  }), Schema$1.Null]),
5615
5866
  diagnostics: Schema$1.Array(Schema$1.Struct({
@@ -5831,7 +6082,7 @@ const TemplatesRenderWorkspaceFixtureRequestJson = Schema$1.Struct({
5831
6082
  const TemplatesRenderWorkspaceFixture200 = Schema$1.Struct({
5832
6083
  projectId: TemplateProjectId,
5833
6084
  revision: Schema$1.String,
5834
- entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))emails\\/.+\\.tsx$" })),
6085
+ entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })),
5835
6086
  declaration: Schema$1.Union([Schema$1.Struct({
5836
6087
  codeDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5837
6088
  templateId: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(128).annotate({ expected: "a value with a length of at most 128" })),
@@ -5840,10 +6091,6 @@ const TemplatesRenderWorkspaceFixture200 = Schema$1.Struct({
5840
6091
  schemaDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" })),
5841
6092
  contractDigest: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^[a-f0-9]{64}$")).annotate({ expected: "a string matching the RegExp ^[a-f0-9]{64}$" }))
5842
6093
  }),
5843
- runtime: Schema$1.Struct({
5844
- now: Schema$1.optionalKey(Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" }))),
5845
- randomSeed: Schema$1.optionalKey(Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })).check(Schema$1.isLessThanOrEqualTo(4294967295).annotate({ expected: "a value less than or equal to 4294967295" })))
5846
- }),
5847
6094
  fixtures: Schema$1.Array(Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(128).annotate({ expected: "a value with a length of at most 128" })))
5848
6095
  }), Schema$1.Null]),
5849
6096
  diagnostics: Schema$1.Array(Schema$1.Struct({
@@ -6550,6 +6797,30 @@ const TemplatesCreateFamilyFromTemplate409 = ConflictError;
6550
6797
  const TemplatesCreateFamilyFromTemplate422 = ValidationError;
6551
6798
  const TemplatesCreateFamilyFromTemplate500 = InternalError;
6552
6799
  const TemplatesCreateFamilyFromTemplate504 = GatewayTimeoutError;
6800
+ const TemplatesAddEntryPathParams = Schema$1.Struct({ projectId: TemplateProjectId });
6801
+ const TemplatesAddEntryRequestJson = Schema$1.Struct({
6802
+ entryPath: Schema$1.String.check(Schema$1.isMaxLength(1024).annotate({ expected: "a value with a length of at most 1024" })).check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$")).annotate({ expected: "a string matching the RegExp ^(?!\\/)(?!.*\\\\)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*(?:^|\\/)\\.git(?:\\/|$))(?:templates|emails)\\/.+\\.tsx$" })),
6803
+ name: Schema$1.String.check(Schema$1.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema$1.isMaxLength(200).annotate({ expected: "a value with a length of at most 200" })),
6804
+ slug: Schema$1.String.check(Schema$1.isPattern(/* @__PURE__ */ new RegExp("^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$")).annotate({ expected: "a string matching the RegExp ^(?=.{1,100}$)[a-z0-9]+(?:-[a-z0-9]+)*$" })),
6805
+ description: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.String, Schema$1.Null]), Schema$1.Null])),
6806
+ category: Schema$1.optionalKey(Schema$1.Union([Schema$1.Union([Schema$1.Literals([
6807
+ "transactional",
6808
+ "marketing",
6809
+ "support",
6810
+ "notification",
6811
+ "verification",
6812
+ "reminder",
6813
+ "alert"
6814
+ ]), Schema$1.Null]), Schema$1.Null]))
6815
+ });
6816
+ const TemplatesAddEntry201 = Template;
6817
+ const TemplatesAddEntry401 = UnauthorizedError;
6818
+ const TemplatesAddEntry403 = ForbiddenError;
6819
+ const TemplatesAddEntry404 = ResourceNotFoundError;
6820
+ const TemplatesAddEntry409 = ConflictError;
6821
+ const TemplatesAddEntry422 = ValidationError;
6822
+ const TemplatesAddEntry500 = InternalError;
6823
+ const TemplatesAddEntry504 = GatewayTimeoutError;
6553
6824
  const UnsubscribeListQuery = Schema$1.Struct({
6554
6825
  page: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null])),
6555
6826
  limit: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null]))
@@ -6560,6 +6831,7 @@ const UnsubscribeList200 = Schema$1.Struct({
6560
6831
  organizationId: Schema$1.String,
6561
6832
  name: Schema$1.String,
6562
6833
  description: Schema$1.Union([Schema$1.String, Schema$1.Null]),
6834
+ isDefault: Schema$1.Boolean,
6563
6835
  memberCount: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })),
6564
6836
  createdAt: Schema$1.String,
6565
6837
  updatedAt: Schema$1.String
@@ -6579,6 +6851,7 @@ const UnsubscribeCreate201 = Schema$1.Struct({
6579
6851
  organizationId: Schema$1.String,
6580
6852
  name: Schema$1.String,
6581
6853
  description: Schema$1.Union([Schema$1.String, Schema$1.Null]),
6854
+ isDefault: Schema$1.Boolean,
6582
6855
  memberCount: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })),
6583
6856
  createdAt: Schema$1.String,
6584
6857
  updatedAt: Schema$1.String
@@ -6645,6 +6918,7 @@ const UnsubscribeRemove200 = Schema$1.Struct({ success: Schema$1.Boolean });
6645
6918
  const UnsubscribeRemove401 = UnauthorizedError;
6646
6919
  const UnsubscribeRemove403 = ForbiddenError;
6647
6920
  const UnsubscribeRemove404 = ResourceNotFoundError;
6921
+ const UnsubscribeRemove409 = ConflictError;
6648
6922
  const UnsubscribeRemove500 = InternalError;
6649
6923
  const UnsubscribeRemove504 = GatewayTimeoutError;
6650
6924
  const UnsubscribeUpdatePathParams = Schema$1.Struct({ id: UnsubscribeId });
@@ -6657,6 +6931,7 @@ const UnsubscribeUpdate200 = Schema$1.Struct({
6657
6931
  organizationId: Schema$1.String,
6658
6932
  name: Schema$1.String,
6659
6933
  description: Schema$1.Union([Schema$1.String, Schema$1.Null]),
6934
+ isDefault: Schema$1.Boolean,
6660
6935
  memberCount: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })),
6661
6936
  createdAt: Schema$1.String,
6662
6937
  updatedAt: Schema$1.String
@@ -6666,6 +6941,22 @@ const UnsubscribeUpdate403 = ForbiddenError;
6666
6941
  const UnsubscribeUpdate404 = ResourceNotFoundError;
6667
6942
  const UnsubscribeUpdate500 = InternalError;
6668
6943
  const UnsubscribeUpdate504 = GatewayTimeoutError;
6944
+ const UnsubscribeSetDefaultPathParams = Schema$1.Struct({ id: UnsubscribeId });
6945
+ const UnsubscribeSetDefault200 = Schema$1.Struct({
6946
+ id: UnsubscribeId,
6947
+ organizationId: Schema$1.String,
6948
+ name: Schema$1.String,
6949
+ description: Schema$1.Union([Schema$1.String, Schema$1.Null]),
6950
+ isDefault: Schema$1.Boolean,
6951
+ memberCount: Schema$1.Finite.check(Schema$1.isInt().annotate({ expected: "an integer" })).check(Schema$1.isGreaterThanOrEqualTo(0).annotate({ expected: "a value greater than or equal to 0" })),
6952
+ createdAt: Schema$1.String,
6953
+ updatedAt: Schema$1.String
6954
+ });
6955
+ const UnsubscribeSetDefault401 = UnauthorizedError;
6956
+ const UnsubscribeSetDefault403 = ForbiddenError;
6957
+ const UnsubscribeSetDefault404 = ResourceNotFoundError;
6958
+ const UnsubscribeSetDefault500 = InternalError;
6959
+ const UnsubscribeSetDefault504 = GatewayTimeoutError;
6669
6960
  const UnsubscribeCheckSubscriptionQuery = Schema$1.Struct({
6670
6961
  email: Schema$1.String,
6671
6962
  groupIds: Schema$1.optionalKey(Schema$1.Union([Schema$1.String, Schema$1.Null]))
@@ -6708,9 +6999,13 @@ const WebhooksCreateRequestJson = Schema$1.Struct({
6708
6999
  "message.bounced",
6709
7000
  "message.complained",
6710
7001
  "message.received",
7002
+ "message.opened",
7003
+ "message.clicked",
6711
7004
  "contact.created",
6712
7005
  "contact.updated",
6713
7006
  "contact.deleted",
7007
+ "contact.unsubscribed",
7008
+ "contact.resubscribed",
6714
7009
  "conversation.created",
6715
7010
  "conversation.updated",
6716
7011
  "conversation.archived",
@@ -6764,9 +7059,13 @@ const WebhooksUpdateRequestJson = Schema$1.Struct({
6764
7059
  "message.bounced",
6765
7060
  "message.complained",
6766
7061
  "message.received",
7062
+ "message.opened",
7063
+ "message.clicked",
6767
7064
  "contact.created",
6768
7065
  "contact.updated",
6769
7066
  "contact.deleted",
7067
+ "contact.unsubscribed",
7068
+ "contact.resubscribed",
6770
7069
  "conversation.created",
6771
7070
  "conversation.updated",
6772
7071
  "conversation.archived",
@@ -7092,6 +7391,70 @@ var AttachmentsGroup = class extends HttpApiGroup.make("Attachments").add(HttpAp
7092
7391
  AttachmentsDownloadUrl504.pipe(HttpApiSchema.status(504))
7093
7392
  ]
7094
7393
  }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "attachments.downloadUrl").annotate(OpenApi.Summary, "Get an attachment download URL").annotate(OpenApi.Description, "Generates a presigned, time-limited download URL for the attachment; expiry is configurable via the expiresIn query parameter.")).annotate(OpenApi.Description, "Email attachment metadata and secure download URLs") {};
7394
+ var BrandsGroup = class extends HttpApiGroup.make("Brands").add(HttpApiEndpoint.get("brandsList", "/v1/brands", {
7395
+ success: BrandsList200,
7396
+ error: [
7397
+ BrandsList401.pipe(HttpApiSchema.status(401)),
7398
+ BrandsList403.pipe(HttpApiSchema.status(403)),
7399
+ BrandsList500,
7400
+ BrandsList504.pipe(HttpApiSchema.status(504))
7401
+ ]
7402
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "brands.list").annotate(OpenApi.Summary, "List brands").annotate(OpenApi.Description, "Returns the organization's brands, the default brand first."), HttpApiEndpoint.post("brandsCreate", "/v1/brands", {
7403
+ payload: BrandsCreateRequestJson,
7404
+ success: BrandsCreate201.pipe(HttpApiSchema.status(201)),
7405
+ error: [
7406
+ BrandsCreate401.pipe(HttpApiSchema.status(401)),
7407
+ BrandsCreate403.pipe(HttpApiSchema.status(403)),
7408
+ BrandsCreate409.pipe(HttpApiSchema.status(409)),
7409
+ BrandsCreate422.pipe(HttpApiSchema.status(422)),
7410
+ BrandsCreate500,
7411
+ BrandsCreate504.pipe(HttpApiSchema.status(504))
7412
+ ]
7413
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "brands.create").annotate(OpenApi.Summary, "Create a brand").annotate(OpenApi.Description, "Creates a brand. The CSS must parse as a brand theme; a rejected theme answers 422 with located findings under `fields.css`. With `isDefault`, the new brand becomes the default. An organization holds at most 12 brands; creating one more answers 409 with a `ConflictError`."), HttpApiEndpoint.get("brandsGet", "/v1/brands/:slug", {
7414
+ params: BrandsGetPathParams,
7415
+ success: BrandsGet200,
7416
+ error: [
7417
+ BrandsGet401.pipe(HttpApiSchema.status(401)),
7418
+ BrandsGet403.pipe(HttpApiSchema.status(403)),
7419
+ BrandsGet404.pipe(HttpApiSchema.status(404)),
7420
+ BrandsGet500,
7421
+ BrandsGet504.pipe(HttpApiSchema.status(504))
7422
+ ]
7423
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "brands.get").annotate(OpenApi.Summary, "Get a brand").annotate(OpenApi.Description, "Returns one brand by its slug."), HttpApiEndpoint.delete("brandsRemove", "/v1/brands/:slug", {
7424
+ params: BrandsRemovePathParams,
7425
+ success: BrandsRemove200,
7426
+ error: [
7427
+ BrandsRemove401.pipe(HttpApiSchema.status(401)),
7428
+ BrandsRemove403.pipe(HttpApiSchema.status(403)),
7429
+ BrandsRemove404.pipe(HttpApiSchema.status(404)),
7430
+ BrandsRemove409.pipe(HttpApiSchema.status(409)),
7431
+ BrandsRemove500,
7432
+ BrandsRemove504.pipe(HttpApiSchema.status(504))
7433
+ ]
7434
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "brands.remove").annotate(OpenApi.Summary, "Delete a brand").annotate(OpenApi.Description, "Deletes a brand. The default brand cannot be deleted; domains that used the deleted brand fall back to the default."), HttpApiEndpoint.patch("brandsUpdate", "/v1/brands/:slug", {
7435
+ params: BrandsUpdatePathParams,
7436
+ payload: BrandsUpdateRequestJson,
7437
+ success: BrandsUpdate200,
7438
+ error: [
7439
+ BrandsUpdate401.pipe(HttpApiSchema.status(401)),
7440
+ BrandsUpdate403.pipe(HttpApiSchema.status(403)),
7441
+ BrandsUpdate404.pipe(HttpApiSchema.status(404)),
7442
+ BrandsUpdate409.pipe(HttpApiSchema.status(409)),
7443
+ BrandsUpdate422.pipe(HttpApiSchema.status(422)),
7444
+ BrandsUpdate500,
7445
+ BrandsUpdate504.pipe(HttpApiSchema.status(504))
7446
+ ]
7447
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "brands.update").annotate(OpenApi.Summary, "Update a brand").annotate(OpenApi.Description, "Updates a brand. Each section given replaces that section whole. Published templates keep the brand they were built against until they are republished."), HttpApiEndpoint.post("brandsSetDefault", "/v1/brands/:slug/default", {
7448
+ params: BrandsSetDefaultPathParams,
7449
+ success: BrandsSetDefault200,
7450
+ error: [
7451
+ BrandsSetDefault401.pipe(HttpApiSchema.status(401)),
7452
+ BrandsSetDefault403.pipe(HttpApiSchema.status(403)),
7453
+ BrandsSetDefault404.pipe(HttpApiSchema.status(404)),
7454
+ BrandsSetDefault500,
7455
+ BrandsSetDefault504.pipe(HttpApiSchema.status(504))
7456
+ ]
7457
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "brands.setDefault").annotate(OpenApi.Summary, "Make a brand the default").annotate(OpenApi.Description, "Makes this brand the organization's default: bare `samva:brand` and domains without a brand resolve to it at their next build or send.")).annotate(OpenApi.Description, "Brand themes, logos and footers that templates import with `samva:brand`.") {};
7095
7458
  var CampaignsGroup = class extends HttpApiGroup.make("Campaigns").add(HttpApiEndpoint.get("campaignsList", "/v1/campaigns", {
7096
7459
  query: CampaignsListQuery,
7097
7460
  success: CampaignsList200,
@@ -7170,7 +7533,7 @@ var CampaignsGroup = class extends HttpApiGroup.make("Campaigns").add(HttpApiEnd
7170
7533
  CampaignsScheduleRun502.pipe(HttpApiSchema.status(502)),
7171
7534
  CampaignsScheduleRun504.pipe(HttpApiSchema.status(504))
7172
7535
  ]
7173
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "campaigns.scheduleRun").annotate(OpenApi.Summary, "Schedule a campaign run").annotate(OpenApi.Description, "Schedules an email campaign run at the absolute ISO-8601 instant in scheduledFor, or immediately when omitted. The optional idempotencyKey is scoped to the organization and replays return the original run."), HttpApiEndpoint.get("campaignsGetRun", "/v1/campaigns/:id/runs/:runId", {
7536
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "campaigns.scheduleRun").annotate(OpenApi.Summary, "Schedule a campaign run").annotate(OpenApi.Description, "Schedules an email campaign run at the absolute ISO-8601 instant in scheduledFor, or immediately when omitted. The optional idempotencyKey is scoped to the organization and replays return the original run. An email campaign must carry the brand footer: it is refused with CampaignFooterRequiredError when its footer is off and its template renders no BrandFooter, and with BrandAddressRequiredError when a brand that signs it off has no postal address."), HttpApiEndpoint.get("campaignsGetRun", "/v1/campaigns/:id/runs/:runId", {
7174
7537
  params: CampaignsGetRunPathParams,
7175
7538
  success: CampaignsGetRun200,
7176
7539
  error: [
@@ -7617,25 +7980,6 @@ var CustomFieldsGroup = class extends HttpApiGroup.make("Custom Fields").add(Htt
7617
7980
  CustomFieldsUpdate504.pipe(HttpApiSchema.status(504))
7618
7981
  ]
7619
7982
  }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "customFields.update").annotate(OpenApi.Summary, "Update a custom field").annotate(OpenApi.Description, "Updates an existing custom field definition and returns the updated field.")).annotate(OpenApi.Description, "Custom field definitions for contact metadata") {};
7620
- var DesignGroup = class extends HttpApiGroup.make("Design").add(HttpApiEndpoint.get("designGet", "/v1/design", {
7621
- success: DesignGet200,
7622
- error: [
7623
- DesignGet401.pipe(HttpApiSchema.status(401)),
7624
- DesignGet403.pipe(HttpApiSchema.status(403)),
7625
- DesignGet500,
7626
- DesignGet504.pipe(HttpApiSchema.status(504))
7627
- ]
7628
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "design.get").annotate(OpenApi.Summary, "Get the organization design").annotate(OpenApi.Description, "Returns the organization's configured email design kit (theme, assets, footer), or null when none is set."), HttpApiEndpoint.put("designUpdate", "/v1/design", {
7629
- payload: DesignUpdateRequestJson,
7630
- success: DesignUpdate200,
7631
- error: [
7632
- DesignUpdate401.pipe(HttpApiSchema.status(401)),
7633
- DesignUpdate403.pipe(HttpApiSchema.status(403)),
7634
- DesignUpdate422.pipe(HttpApiSchema.status(422)),
7635
- DesignUpdate500,
7636
- DesignUpdate504.pipe(HttpApiSchema.status(504))
7637
- ]
7638
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "design.update").annotate(OpenApi.Summary, "Update the organization design").annotate(OpenApi.Description, "Validates and saves the organization's email design kit; a null body clears the design back to the base design floor.")).annotate(OpenApi.Description, "Organization email design kit (theme, assets, footer)") {};
7639
7983
  var EmailGroup = class extends HttpApiGroup.make("Email").add(HttpApiEndpoint.get("emailListBlocks", "/v1/email/blocks", {
7640
7984
  query: EmailListBlocksQuery,
7641
7985
  success: EmailListBlocks200,
@@ -7757,7 +8101,7 @@ var EmailGroup = class extends HttpApiGroup.make("Email").add(HttpApiEndpoint.ge
7757
8101
  EmailListDomains500,
7758
8102
  EmailListDomains504.pipe(HttpApiSchema.status(504))
7759
8103
  ]
7760
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.listDomains").annotate(OpenApi.Summary, "List sending domains").annotate(OpenApi.Description, "Returns a paginated list of the organization's sending domains. Each row carries `deliverability` (bounce and complaint rates over the last 24 hours, the window the 5% bounce limit is enforced over) and `series`, the last 14 days of daily email sends attributed to the domain, oldest first."), HttpApiEndpoint.post("emailAddDomain", "/v1/email/domains", {
8104
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.listDomains").annotate(OpenApi.Summary, "List sending domains").annotate(OpenApi.Description, "Returns a paginated list of the organization's sending domains. `sendable=true` lists only domains a send can use now: active, and verified, or verified before and degraded since. Each row carries `deliverability` (bounce and complaint rates over the last 24 hours, the window the 5% bounce limit is enforced over) and `series`, the last 14 days of daily email sends attributed to the domain, oldest first."), HttpApiEndpoint.post("emailAddDomain", "/v1/email/domains", {
7761
8105
  payload: EmailAddDomainRequestJson,
7762
8106
  success: EmailAddDomain201.pipe(HttpApiSchema.status(201)),
7763
8107
  error: [
@@ -7771,7 +8115,7 @@ var EmailGroup = class extends HttpApiGroup.make("Email").add(HttpApiEndpoint.ge
7771
8115
  EmailAddDomain502.pipe(HttpApiSchema.status(502)),
7772
8116
  EmailAddDomain504.pipe(HttpApiSchema.status(504))
7773
8117
  ]
7774
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.addDomain").annotate(OpenApi.Summary, "Add a sending domain").annotate(OpenApi.Description, "Registers a domain for sending and returns it with the DNS records required to verify ownership and configure DKIM. Responds with 201. Supplying a connection attaches the domain to that DNS account; the domain must sit inside the zone given with it. When Samva cannot register another sending domain right now, this responds with 429 and no domain is created."), HttpApiEndpoint.get("emailGetDomainById", "/v1/email/domains/:id", {
8118
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.addDomain").annotate(OpenApi.Summary, "Add a sending domain").annotate(OpenApi.Description, "Registers a domain for sending and returns it with the DNS records required to verify ownership and configure DKIM. Responds with 201. Supplying a connection attaches the domain to that DNS account; the domain must sit inside the zone given with it. When Samva cannot register another sending domain right now, this responds with 429 and no domain is created. A banned organization is refused with 403."), HttpApiEndpoint.get("emailGetDomainById", "/v1/email/domains/:id", {
7775
8119
  params: EmailGetDomainByIdPathParams,
7776
8120
  success: EmailGetDomainById200,
7777
8121
  error: [
@@ -7802,7 +8146,7 @@ var EmailGroup = class extends HttpApiGroup.make("Email").add(HttpApiEndpoint.ge
7802
8146
  EmailUpdateDomainConfig500,
7803
8147
  EmailUpdateDomainConfig504.pipe(HttpApiSchema.status(504))
7804
8148
  ]
7805
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.updateDomainConfig").annotate(OpenApi.Summary, "Update a domain's send-settings config").annotate(OpenApi.Description, "Overrides the domain's open/click tracking, reply-to, and unsubscribe-group defaults for the settings cascade. An omitted field is left unchanged; null clears it back to the organization default. Returns the saved config."), HttpApiEndpoint.get("emailGetCustomTracking", "/v1/email/domains/:id/custom-tracking", {
8149
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.updateDomainConfig").annotate(OpenApi.Summary, "Update a domain's send-settings config").annotate(OpenApi.Description, "Overrides the domain's open/click tracking, reply-to, unsubscribe-group defaults, and the brand its mail uses for the settings cascade. An omitted field is left unchanged; null clears it back to the organization default. Returns the saved config."), HttpApiEndpoint.get("emailGetCustomTracking", "/v1/email/domains/:id/custom-tracking", {
7806
8150
  params: EmailGetCustomTrackingPathParams,
7807
8151
  success: EmailGetCustomTracking200,
7808
8152
  error: [
@@ -8167,7 +8511,7 @@ var EmailGroup = class extends HttpApiGroup.make("Email").add(HttpApiEndpoint.ge
8167
8511
  EmailListSenders500,
8168
8512
  EmailListSenders504.pipe(HttpApiSchema.status(504))
8169
8513
  ]
8170
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.listSenders").annotate(OpenApi.Summary, "List sender identities").annotate(OpenApi.Description, "Returns a paginated list of sender identities, optionally filtered by verification status, active state, or default flag. Each row carries `deliverability` (bounce and complaint rates over the last 24 hours) and `series`, the last 14 days of daily email sends from the address, oldest first."), HttpApiEndpoint.post("emailAddSender", "/v1/email/senders", {
8514
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.listSenders").annotate(OpenApi.Summary, "List senders").annotate(OpenApi.Description, "Returns a paginated list of senders, optionally filtered by verification status, active state, or default flag. Each row carries `deliverability` (bounce and complaint rates over the last 24 hours) and `series`, the last 14 days of daily email sends from the address, oldest first."), HttpApiEndpoint.post("emailAddSender", "/v1/email/senders", {
8171
8515
  headers: EmailAddSenderHeaders,
8172
8516
  payload: EmailAddSenderRequestJson,
8173
8517
  success: EmailAddSender201.pipe(HttpApiSchema.status(201)),
@@ -8181,7 +8525,7 @@ var EmailGroup = class extends HttpApiGroup.make("Email").add(HttpApiEndpoint.ge
8181
8525
  EmailAddSender502.pipe(HttpApiSchema.status(502)),
8182
8526
  EmailAddSender504.pipe(HttpApiSchema.status(504))
8183
8527
  ]
8184
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.addSender").annotate(OpenApi.Summary, "Add a sender identity").annotate(OpenApi.Description, "Creates a sender identity. The required Idempotency-Key replays the original sender for an identical request and conflicts when reused with different input."), HttpApiEndpoint.get("emailGetSender", "/v1/email/senders/:id", {
8528
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.addSender").annotate(OpenApi.Summary, "Add a sender").annotate(OpenApi.Description, "Creates a sender. The required Idempotency-Key replays the original sender for an identical request and conflicts when reused with different input."), HttpApiEndpoint.get("emailGetSender", "/v1/email/senders/:id", {
8185
8529
  params: EmailGetSenderPathParams,
8186
8530
  success: EmailGetSender200,
8187
8531
  error: [
@@ -8191,7 +8535,7 @@ var EmailGroup = class extends HttpApiGroup.make("Email").add(HttpApiEndpoint.ge
8191
8535
  EmailGetSender500,
8192
8536
  EmailGetSender504.pipe(HttpApiSchema.status(504))
8193
8537
  ]
8194
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.getSender").annotate(OpenApi.Summary, "Get a sender identity").annotate(OpenApi.Description, "Returns one sender identity owned by the authenticated organization. Other organizations' ids are reported as not found."), HttpApiEndpoint.delete("emailRemoveSender", "/v1/email/senders/:id", {
8538
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.getSender").annotate(OpenApi.Summary, "Get a sender").annotate(OpenApi.Description, "Returns one sender owned by the authenticated organization. Other organizations' ids are reported as not found."), HttpApiEndpoint.delete("emailRemoveSender", "/v1/email/senders/:id", {
8195
8539
  params: EmailRemoveSenderPathParams,
8196
8540
  success: EmailRemoveSender200,
8197
8541
  error: [
@@ -8202,7 +8546,7 @@ var EmailGroup = class extends HttpApiGroup.make("Email").add(HttpApiEndpoint.ge
8202
8546
  EmailRemoveSender500,
8203
8547
  EmailRemoveSender504.pipe(HttpApiSchema.status(504))
8204
8548
  ]
8205
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.removeSender").annotate(OpenApi.Summary, "Remove a sender identity").annotate(OpenApi.Description, "Accepts sender removal and marks the sender inactive. It reports the `deleting` lifecycle until removal finishes."), HttpApiEndpoint.post("emailSetDefaultSender", "/v1/email/senders/:id/default", {
8549
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.removeSender").annotate(OpenApi.Summary, "Remove a sender").annotate(OpenApi.Description, "Accepts sender removal and marks the sender inactive. A default sender can be removed when no other active sender remains in the organization. It reports the `deleting` lifecycle until removal finishes."), HttpApiEndpoint.post("emailSetDefaultSender", "/v1/email/senders/:id/default", {
8206
8550
  params: EmailSetDefaultSenderPathParams,
8207
8551
  success: EmailSetDefaultSender200,
8208
8552
  error: [
@@ -8223,7 +8567,7 @@ var EmailGroup = class extends HttpApiGroup.make("Email").add(HttpApiEndpoint.ge
8223
8567
  EmailCheckSenderVerification502.pipe(HttpApiSchema.status(502)),
8224
8568
  EmailCheckSenderVerification504.pipe(HttpApiSchema.status(504))
8225
8569
  ]
8226
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.checkSenderVerification").annotate(OpenApi.Summary, "Check sender verification status").annotate(OpenApi.Description, "Returns the current verification status of a sender identity."), HttpApiEndpoint.get("emailGetStats", "/v1/email/stats", {
8570
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "email.checkSenderVerification").annotate(OpenApi.Summary, "Check sender verification status").annotate(OpenApi.Description, "Returns the current verification status of a sender."), HttpApiEndpoint.get("emailGetStats", "/v1/email/stats", {
8227
8571
  query: EmailGetStatsQuery,
8228
8572
  success: EmailGetStats200,
8229
8573
  error: [
@@ -8556,7 +8900,15 @@ var OrganizationsGroup = class extends HttpApiGroup.make("Organizations").add(Ht
8556
8900
  OrganizationsUpdate500,
8557
8901
  OrganizationsUpdate504.pipe(HttpApiSchema.status(504))
8558
8902
  ]
8559
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "organizations.update").annotate(OpenApi.Summary, "Update the current organization").annotate(OpenApi.Description, "Updates the current organization's profile, regional defaults, design, reply-to, and unsubscribe-group defaults and returns the saved organization. `metadata` and `design` are merged into the stored values; every other field is replaced."), HttpApiEndpoint.post("organizationsDelete", "/v1/organizations/deletion-operations", {
8903
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "organizations.update").annotate(OpenApi.Summary, "Update the current organization").annotate(OpenApi.Description, "Updates the current organization's profile, regional defaults, and reply-to default and returns the saved organization. `metadata` is merged into the stored value; every other field is replaced."), HttpApiEndpoint.get("organizationsGetProfile", "/v1/organizations/current/profile", {
8904
+ success: OrganizationsGetProfile200,
8905
+ error: [
8906
+ OrganizationsGetProfile401.pipe(HttpApiSchema.status(401)),
8907
+ OrganizationsGetProfile403.pipe(HttpApiSchema.status(403)),
8908
+ OrganizationsGetProfile500,
8909
+ OrganizationsGetProfile504.pipe(HttpApiSchema.status(504))
8910
+ ]
8911
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "organizations.getProfile").annotate(OpenApi.Summary, "Get the current account profile").annotate(OpenApi.Description, "Returns your identity in the organization authorized by your credential. The ID remains stable across reconnects and display-name changes. Removing and re-adding your membership creates a new ID."), HttpApiEndpoint.post("organizationsDelete", "/v1/organizations/deletion-operations", {
8560
8912
  headers: OrganizationsDeleteHeaders,
8561
8913
  payload: OrganizationsDeleteRequestJson,
8562
8914
  success: OrganizationsDelete202.pipe(HttpApiSchema.status(202)),
@@ -8631,7 +8983,7 @@ var TemplatesGroup = class extends HttpApiGroup.make("Templates").add(HttpApiEnd
8631
8983
  TemplatesUpdate500,
8632
8984
  TemplatesUpdate504.pipe(HttpApiSchema.status(504))
8633
8985
  ]
8634
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "templates.update").annotate(OpenApi.Summary, "Update a template").annotate(OpenApi.Description, "Updates template metadata. Source changes use the project workspace API."), HttpApiEndpoint.get("templatesListInputContracts", "/v1/templates/:id/input-contracts", {
8986
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "templates.update").annotate(OpenApi.Summary, "Update a template").annotate(OpenApi.Description, "Updates template metadata. Setting `entryPath` points the template at another file in its project and keeps its id, slug, and publications; move the file in Git separately. Source changes use the project workspace API."), HttpApiEndpoint.get("templatesListInputContracts", "/v1/templates/:id/input-contracts", {
8635
8987
  params: TemplatesListInputContractsPathParams,
8636
8988
  success: TemplatesListInputContracts200,
8637
8989
  error: [
@@ -8664,7 +9016,7 @@ var TemplatesGroup = class extends HttpApiGroup.make("Templates").add(HttpApiEnd
8664
9016
  TemplatesPublish500,
8665
9017
  TemplatesPublish504.pipe(HttpApiSchema.status(504))
8666
9018
  ]
8667
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "templates.publish").annotate(OpenApi.Summary, "Publish an exact template commit").annotate(OpenApi.Description, "Builds an exact Git commit and entry path, stores the immutable executable and its assets, records the input contract it validates against, and makes that publication current."), HttpApiEndpoint.get("templatesGetPublication", "/v1/templates/:id/publications/:publicationId", {
9019
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "templates.publish").annotate(OpenApi.Summary, "Publish an exact template commit").annotate(OpenApi.Description, "Builds an exact Git commit and entry path, stores the immutable compiled IR and its assets, records the input contract it validates against, and makes that publication current."), HttpApiEndpoint.get("templatesGetPublication", "/v1/templates/:id/publications/:publicationId", {
8668
9020
  params: TemplatesGetPublicationPathParams,
8669
9021
  success: TemplatesGetPublication200,
8670
9022
  error: [
@@ -8720,7 +9072,20 @@ var TemplatesGroup = class extends HttpApiGroup.make("Templates").add(HttpApiEnd
8720
9072
  TemplatesPatchWorkspace500,
8721
9073
  TemplatesPatchWorkspace504.pipe(HttpApiSchema.status(504))
8722
9074
  ]
8723
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "templates.patchWorkspace").annotate(OpenApi.Summary, "Patch template project files").annotate(OpenApi.Description, "Applies revision-checked file patches to the shared project workspace overlay."), HttpApiEndpoint.post("templatesCheckWorkspace", "/v1/templates/:id/workspace/check", {
9075
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "templates.patchWorkspace").annotate(OpenApi.Summary, "Patch template project files").annotate(OpenApi.Description, "Applies revision-checked file patches to the shared project workspace overlay."), HttpApiEndpoint.put("templatesPutWorkspaceAsset", "/v1/templates/:id/workspace/assets", {
9076
+ params: TemplatesPutWorkspaceAssetPathParams,
9077
+ payload: TemplatesPutWorkspaceAssetRequestJson,
9078
+ success: TemplatesPutWorkspaceAsset200,
9079
+ error: [
9080
+ TemplatesPutWorkspaceAsset401.pipe(HttpApiSchema.status(401)),
9081
+ TemplatesPutWorkspaceAsset403.pipe(HttpApiSchema.status(403)),
9082
+ TemplatesPutWorkspaceAsset404.pipe(HttpApiSchema.status(404)),
9083
+ TemplatesPutWorkspaceAsset409.pipe(HttpApiSchema.status(409)),
9084
+ TemplatesPutWorkspaceAsset422.pipe(HttpApiSchema.status(422)),
9085
+ TemplatesPutWorkspaceAsset500,
9086
+ TemplatesPutWorkspaceAsset504.pipe(HttpApiSchema.status(504))
9087
+ ]
9088
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "templates.putWorkspaceAsset").annotate(OpenApi.Summary, "Put a template project asset").annotate(OpenApi.Description, "Writes one image or font (png, jpg, jpeg, gif, webp, or woff2) into the shared project workspace as an unsaved file; Save commits it. The JSON body carries the file as canonical base64 in `contentBase64`, at most 1 MiB decoded, and the bytes must match the extension in `path`. `replace` must be `false` to add a new file and `true` to change an existing one."), HttpApiEndpoint.post("templatesCheckWorkspace", "/v1/templates/:id/workspace/check", {
8724
9089
  params: TemplatesCheckWorkspacePathParams,
8725
9090
  payload: TemplatesCheckWorkspaceRequestJson,
8726
9091
  success: TemplatesCheckWorkspace200,
@@ -8927,7 +9292,20 @@ var TemplatesGroup = class extends HttpApiGroup.make("Templates").add(HttpApiEnd
8927
9292
  TemplatesCreateFamilyFromTemplate500,
8928
9293
  TemplatesCreateFamilyFromTemplate504.pipe(HttpApiSchema.status(504))
8929
9294
  ]
8930
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "templates.createFamilyFromTemplate").annotate(OpenApi.Summary, "Create a family from a template").annotate(OpenApi.Description, "Creates a template family containing the specified template and returns the new family with status 201.")).annotate(OpenApi.Description, "Git-backed email template projects, workspace editing, immutable publications, and delivery defaults") {};
9295
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "templates.createFamilyFromTemplate").annotate(OpenApi.Summary, "Create a family from a template").annotate(OpenApi.Description, "Creates a template family containing the specified template and returns the new family with status 201."), HttpApiEndpoint.post("templatesAddEntry", "/v1/templates/projects/:projectId/entries", {
9296
+ params: TemplatesAddEntryPathParams,
9297
+ payload: TemplatesAddEntryRequestJson,
9298
+ success: TemplatesAddEntry201.pipe(HttpApiSchema.status(201)),
9299
+ error: [
9300
+ TemplatesAddEntry401.pipe(HttpApiSchema.status(401)),
9301
+ TemplatesAddEntry403.pipe(HttpApiSchema.status(403)),
9302
+ TemplatesAddEntry404.pipe(HttpApiSchema.status(404)),
9303
+ TemplatesAddEntry409.pipe(HttpApiSchema.status(409)),
9304
+ TemplatesAddEntry422.pipe(HttpApiSchema.status(422)),
9305
+ TemplatesAddEntry500,
9306
+ TemplatesAddEntry504.pipe(HttpApiSchema.status(504))
9307
+ ]
9308
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "templates.addEntry").annotate(OpenApi.Summary, "Add a template entry").annotate(OpenApi.Description, "Registers a `.tsx` file under `templates/` or `emails/` in an existing template project as its own template and returns it with status 201. The file does not need to exist yet; publishing fails until a commit contains it. Repeating the call with the same entry path, name, and slug returns the existing template.")).annotate(OpenApi.Description, "Git-backed email template projects, workspace editing, immutable publications, and delivery defaults") {};
8931
9309
  var UnsubscribeGroupsGroup = class extends HttpApiGroup.make("Unsubscribe Groups").add(HttpApiEndpoint.get("unsubscribeList", "/v1/unsubscribe-groups", {
8932
9310
  query: UnsubscribeListQuery,
8933
9311
  success: UnsubscribeList200,
@@ -8937,7 +9315,7 @@ var UnsubscribeGroupsGroup = class extends HttpApiGroup.make("Unsubscribe Groups
8937
9315
  UnsubscribeList500,
8938
9316
  UnsubscribeList504.pipe(HttpApiSchema.status(504))
8939
9317
  ]
8940
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "unsubscribe.list").annotate(OpenApi.Summary, "List unsubscribe groups").annotate(OpenApi.Description, "Returns a paginated list of the organization's unsubscribe groups."), HttpApiEndpoint.post("unsubscribeCreate", "/v1/unsubscribe-groups", {
9318
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "unsubscribe.list").annotate(OpenApi.Summary, "List unsubscribe groups").annotate(OpenApi.Description, "Returns a paginated list of the organization's unsubscribe groups, the default group first."), HttpApiEndpoint.post("unsubscribeCreate", "/v1/unsubscribe-groups", {
8941
9319
  payload: UnsubscribeCreateRequestJson,
8942
9320
  success: UnsubscribeCreate201.pipe(HttpApiSchema.status(201)),
8943
9321
  error: [
@@ -8986,10 +9364,11 @@ var UnsubscribeGroupsGroup = class extends HttpApiGroup.make("Unsubscribe Groups
8986
9364
  UnsubscribeRemove401.pipe(HttpApiSchema.status(401)),
8987
9365
  UnsubscribeRemove403.pipe(HttpApiSchema.status(403)),
8988
9366
  UnsubscribeRemove404.pipe(HttpApiSchema.status(404)),
9367
+ UnsubscribeRemove409.pipe(HttpApiSchema.status(409)),
8989
9368
  UnsubscribeRemove500,
8990
9369
  UnsubscribeRemove504.pipe(HttpApiSchema.status(504))
8991
9370
  ]
8992
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "unsubscribe.remove").annotate(OpenApi.Summary, "Delete an unsubscribe group").annotate(OpenApi.Description, "Permanently deletes an unsubscribe group by its ID."), HttpApiEndpoint.patch("unsubscribeUpdate", "/v1/unsubscribe-groups/:id", {
9371
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "unsubscribe.remove").annotate(OpenApi.Summary, "Delete an unsubscribe group").annotate(OpenApi.Description, "Permanently deletes an unsubscribe group by its ID. The default group cannot be deleted; make another group the default first. A group a scheduled or running campaign uses cannot be deleted until that run finishes or is cancelled."), HttpApiEndpoint.patch("unsubscribeUpdate", "/v1/unsubscribe-groups/:id", {
8993
9372
  params: UnsubscribeUpdatePathParams,
8994
9373
  payload: UnsubscribeUpdateRequestJson,
8995
9374
  success: UnsubscribeUpdate200,
@@ -9000,7 +9379,17 @@ var UnsubscribeGroupsGroup = class extends HttpApiGroup.make("Unsubscribe Groups
9000
9379
  UnsubscribeUpdate500,
9001
9380
  UnsubscribeUpdate504.pipe(HttpApiSchema.status(504))
9002
9381
  ]
9003
- }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "unsubscribe.update").annotate(OpenApi.Summary, "Update an unsubscribe group").annotate(OpenApi.Description, "Updates the name or description of an unsubscribe group."), HttpApiEndpoint.get("unsubscribeCheckSubscription", "/v1/unsubscribe-groups/check", {
9382
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "unsubscribe.update").annotate(OpenApi.Summary, "Update an unsubscribe group").annotate(OpenApi.Description, "Updates the name or description of an unsubscribe group."), HttpApiEndpoint.post("unsubscribeSetDefault", "/v1/unsubscribe-groups/:id/default", {
9383
+ params: UnsubscribeSetDefaultPathParams,
9384
+ success: UnsubscribeSetDefault200,
9385
+ error: [
9386
+ UnsubscribeSetDefault401.pipe(HttpApiSchema.status(401)),
9387
+ UnsubscribeSetDefault403.pipe(HttpApiSchema.status(403)),
9388
+ UnsubscribeSetDefault404.pipe(HttpApiSchema.status(404)),
9389
+ UnsubscribeSetDefault500,
9390
+ UnsubscribeSetDefault504.pipe(HttpApiSchema.status(504))
9391
+ ]
9392
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "unsubscribe.setDefault").annotate(OpenApi.Summary, "Make an unsubscribe group the default").annotate(OpenApi.Description, "Makes this group the organization's default: campaigns that name no group, and whose template and sending domain name none, unsubscribe recipients from it."), HttpApiEndpoint.get("unsubscribeCheckSubscription", "/v1/unsubscribe-groups/check", {
9004
9393
  query: UnsubscribeCheckSubscriptionQuery,
9005
9394
  success: UnsubscribeCheckSubscription200,
9006
9395
  error: [
@@ -9123,7 +9512,7 @@ var WebhooksGroup = class extends HttpApiGroup.make("Webhooks").add(HttpApiEndpo
9123
9512
  WebhooksGetStats504.pipe(HttpApiSchema.status(504))
9124
9513
  ]
9125
9514
  }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "webhooks.getStats").annotate(OpenApi.Summary, "Get webhook delivery statistics").annotate(OpenApi.Description, "Returns aggregate pending, delivered, exhausted, and cancelled delivery counts for a webhook endpoint, plus the same counts per organization-local calendar day over the selected period of 7, 30, or 90 days. Deliveries are retained for 90 days, so 90d is the whole history.")).annotate(OpenApi.Description, "Customer event webhook management, testing, and delivery logs") {};
9126
- var SamvaApi = class extends HttpApi.make("SamvaApi").annotate(OpenApi.Title, "Samva API").annotate(OpenApi.Version, "1.0.0").annotate(OpenApi.Description, "Samva is a developer email API for product teams: deliverability, versioned templates, inbound threading, and signed webhooks behind one typed send call.").annotate(OpenApi.Servers, [{ url: "https://api.samva.dev" }]).add(AnalyticsGroup, APIKeysGroup, AttachmentsGroup, CampaignsGroup, ContactGroupsGroup, ContactsGroup, ConversationsGroup, CustomFieldsGroup, DesignGroup, EmailGroup, MediaGroup, MessagesGroup, ScheduledMessagesGroup, OperationsGroup, OrganizationsGroup, TemplatesGroup, UnsubscribeGroupsGroup, WebhooksGroup) {};
9515
+ var SamvaApi = class extends HttpApi.make("SamvaApi").annotate(OpenApi.Title, "Samva API").annotate(OpenApi.Version, "1.0.0").annotate(OpenApi.Description, "Samva is the email API for your app. Send transactional email in one typed call. Delivery events and customer replies come back as signed webhooks, and replies thread to the email they answer.").annotate(OpenApi.Servers, [{ url: "https://api.samva.dev" }]).add(AnalyticsGroup, APIKeysGroup, AttachmentsGroup, BrandsGroup, CampaignsGroup, ContactGroupsGroup, ContactsGroup, ConversationsGroup, CustomFieldsGroup, EmailGroup, MediaGroup, MessagesGroup, ScheduledMessagesGroup, OperationsGroup, OrganizationsGroup, TemplatesGroup, UnsubscribeGroupsGroup, WebhooksGroup) {};
9127
9516
  //#endregion
9128
9517
  //#region src/effect/internal/client.ts
9129
9518
  const DEFAULT_BASE_URL = "https://api.samva.dev";
@@ -9157,6 +9546,6 @@ const layer = (config) => Layer.effect(Service, make(config));
9157
9546
  const layerFetch = (config) => layer(config).pipe(Layer.provide(FetchHttpClient.layer));
9158
9547
  const raw = Effect.map(Service, (client) => client.raw);
9159
9548
  //#endregion
9160
- export { UpdateTemplatePayload as C, UnauthorizedError as S, ValidationError as T, RateLimitedError as _, BillingProviderError as a, TestWebhookPayload as b, CreateWebhookPayload as c, ExternalServiceError as d, FlagDisabledError as f, PaymentRequiredError as g, InternalError as h, raw as i, DeliveryUnavailableError as l, GatewayTimeoutError as m, layer as n, ConflictError as o, ForbiddenError as p, layerFetch as r, CreateTemplatePayload as s, Service as t, EmailChannelError as u, ResourceNotFoundError as v, UpdateWebhookPayload as w, TrackingRecipientEmail as x, SamvaApi as y };
9549
+ export { UpdateWebhookPayload as A, ResourceNotFoundError as C, UnauthorizedError as D, TrackingRecipientEmail as E, UpdateBrand as O, RateLimitedError as S, TestWebhookPayload as T, ForbiddenError as _, AnalyticsQueryError as a, OnboardingReviewRequiredError as b, CampaignFooterRequiredError as c, CreateTemplatePayload as d, CreateWebhookPayload as f, FlagDisabledError as g, ExternalServiceError as h, raw as i, ValidationError as j, UpdateTemplatePayload as k, ConflictError as l, EmailChannelError as m, layer as n, BillingProviderError as o, DeliveryUnavailableError as p, layerFetch as r, BrandAddressRequiredError as s, Service as t, CreateBrand as u, GatewayTimeoutError as v, SamvaApi as w, PaymentRequiredError as x, InternalError as y };
9161
9550
 
9162
- //# sourceMappingURL=client-DCM6U0-I.js.map
9551
+ //# sourceMappingURL=client-ByJHYp7r.js.map