@marlinjai/mail-contract 0.22.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +800 -19
- package/dist/index.d.ts +800 -19
- package/dist/index.js +372 -182
- package/dist/index.mjs +358 -182
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -3050,6 +3050,12 @@ var AUDIT_ACTIONS = [
|
|
|
3050
3050
|
"domain_order.kind_changed",
|
|
3051
3051
|
"domain_order.refunded",
|
|
3052
3052
|
"domain_order.cancelled",
|
|
3053
|
+
// Bought domains, managed by their holder
|
|
3054
|
+
"domain_record.created",
|
|
3055
|
+
"domain_record.updated",
|
|
3056
|
+
"domain_record.deleted",
|
|
3057
|
+
"domain_leave.requested",
|
|
3058
|
+
"domain_leave.done",
|
|
3053
3059
|
// A1: automations
|
|
3054
3060
|
"automation.created",
|
|
3055
3061
|
"automation.updated",
|
|
@@ -4355,36 +4361,124 @@ var DomainOrder = z16.object({
|
|
|
4355
4361
|
updated_at: Timestamp
|
|
4356
4362
|
});
|
|
4357
4363
|
|
|
4358
|
-
// src/
|
|
4364
|
+
// src/bought-domains.ts
|
|
4359
4365
|
import { z as z17 } from "zod";
|
|
4360
|
-
var
|
|
4366
|
+
var DOMAIN_LEAVE_WAYS = ["cloudflare_account", "transfer"];
|
|
4367
|
+
var DomainLeaveWay = z17.enum(DOMAIN_LEAVE_WAYS);
|
|
4368
|
+
var DOMAIN_LEAVE_STATES = ["requested", "done", "cancelled"];
|
|
4369
|
+
var DomainLeaveState = z17.enum(DOMAIN_LEAVE_STATES);
|
|
4370
|
+
var DomainLeave = z17.object({
|
|
4371
|
+
id: Id,
|
|
4372
|
+
way: DomainLeaveWay,
|
|
4373
|
+
state: DomainLeaveState,
|
|
4374
|
+
/** The Cloudflare account the domain moves into (way `cloudflare_account`). */
|
|
4375
|
+
target_account_id: z17.string().nullable(),
|
|
4376
|
+
/** The transfer code, once support has it (way `transfer`, state `done`); only owners and admins read it. */
|
|
4377
|
+
auth_code: z17.string().nullable(),
|
|
4378
|
+
requested_at: Timestamp,
|
|
4379
|
+
done_at: Timestamp.nullable()
|
|
4380
|
+
});
|
|
4381
|
+
var BoughtDomain = z17.object({
|
|
4382
|
+
/** The order the domain was bought with. */
|
|
4383
|
+
id: Id,
|
|
4384
|
+
domain: z17.string(),
|
|
4385
|
+
kind: DomainOrderKind,
|
|
4386
|
+
registrant_name: z17.string(),
|
|
4387
|
+
registered_at: Timestamp,
|
|
4388
|
+
/** When the paid year ends. */
|
|
4389
|
+
expires_at: Timestamp.nullable(),
|
|
4390
|
+
/** Each further year, final, in euro cents; 0 for a domain registered without a charge. */
|
|
4391
|
+
renewal_price_cents: z17.number().int().min(0),
|
|
4392
|
+
currency: z17.literal("EUR"),
|
|
4393
|
+
/** Registered for one of Lumitra's own companies, never charged. */
|
|
4394
|
+
no_charge: z17.boolean(),
|
|
4395
|
+
/** The earliest moment each way of leaving is possible. */
|
|
4396
|
+
move_account_from: Timestamp,
|
|
4397
|
+
transfer_from: Timestamp,
|
|
4398
|
+
/** The latest request to leave, if any. */
|
|
4399
|
+
leave: DomainLeave.nullable(),
|
|
4400
|
+
/** True once the domain has left: its records are no longer Lumitra Mail's to edit. */
|
|
4401
|
+
left: z17.boolean()
|
|
4402
|
+
});
|
|
4403
|
+
var DNS_RECORD_TYPES = ["A", "AAAA", "CNAME", "TXT", "MX", "NS"];
|
|
4404
|
+
var DnsRecordType = z17.enum(DNS_RECORD_TYPES);
|
|
4405
|
+
var DomainRecord = z17.object({
|
|
4406
|
+
id: z17.string(),
|
|
4407
|
+
type: z17.string(),
|
|
4408
|
+
/** The full name (www.example.com). */
|
|
4409
|
+
name: z17.string(),
|
|
4410
|
+
content: z17.string(),
|
|
4411
|
+
/** Seconds; 1 is automatic. */
|
|
4412
|
+
ttl: z17.number().int(),
|
|
4413
|
+
/** Served through Cloudflare's proxy (A, AAAA, CNAME only). */
|
|
4414
|
+
proxied: z17.boolean(),
|
|
4415
|
+
priority: z17.number().int().nullable(),
|
|
4416
|
+
/**
|
|
4417
|
+
* Not the holder's to change: a record Lumitra Mail wrote for sending (it
|
|
4418
|
+
* keeps those right itself), or a type the dashboard does not edit.
|
|
4419
|
+
*/
|
|
4420
|
+
locked: z17.boolean()
|
|
4421
|
+
});
|
|
4422
|
+
var IPV4 = /^(25[0-5]|2[0-4]\d|1?\d?\d)(\.(25[0-5]|2[0-4]\d|1?\d?\d)){3}$/;
|
|
4423
|
+
var HOSTNAME = /^(?=.{1,253}\.?$)([a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9])?\.)*[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9])?\.?$/i;
|
|
4424
|
+
var DomainRecordInput = z17.object({
|
|
4425
|
+
type: DnsRecordType,
|
|
4426
|
+
name: z17.string().trim().min(1).max(253),
|
|
4427
|
+
content: z17.string().trim().min(1).max(2048),
|
|
4428
|
+
ttl: z17.union([z17.literal(1), z17.number().int().min(60).max(86400)]).default(1),
|
|
4429
|
+
proxied: z17.boolean().default(false),
|
|
4430
|
+
priority: z17.number().int().min(0).max(65535).nullable().optional()
|
|
4431
|
+
}).superRefine((r, ctx) => {
|
|
4432
|
+
const bad = (path, message) => ctx.addIssue({ code: z17.ZodIssueCode.custom, path: [path], message });
|
|
4433
|
+
if (r.type === "A" && !IPV4.test(r.content)) bad("content", "must be an IPv4 address, such as 192.0.2.10");
|
|
4434
|
+
if (r.type === "AAAA" && (!r.content.includes(":") || !/^[0-9a-f:.]+$/i.test(r.content))) bad("content", "must be an IPv6 address, such as 2001:db8::10");
|
|
4435
|
+
if ((r.type === "CNAME" || r.type === "MX" || r.type === "NS") && !HOSTNAME.test(r.content)) bad("content", "must be a host name, such as host.example.com");
|
|
4436
|
+
if (r.type === "MX" && (r.priority === void 0 || r.priority === null)) bad("priority", "is needed for an MX record");
|
|
4437
|
+
if (r.type !== "MX" && r.priority !== void 0 && r.priority !== null) bad("priority", "is only for an MX record");
|
|
4438
|
+
if (r.proxied && !["A", "AAAA", "CNAME"].includes(r.type)) bad("proxied", "is only for A, AAAA and CNAME records");
|
|
4439
|
+
});
|
|
4440
|
+
var BoughtDomainRecordParams = z17.object({ id: Id, record_id: z17.string().regex(/^[0-9a-f]{32}$/, "must be a record id") });
|
|
4441
|
+
var DomainLeaveCreate = z17.object({
|
|
4442
|
+
way: DomainLeaveWay,
|
|
4443
|
+
/** The holder's own Cloudflare account id (32 hex characters), for `cloudflare_account`. */
|
|
4444
|
+
target_account_id: z17.string().trim().toLowerCase().regex(/^[0-9a-f]{32}$/, "must be a Cloudflare account id: 32 letters and digits, from the account\u2019s overview page").optional()
|
|
4445
|
+
}).superRefine((r, ctx) => {
|
|
4446
|
+
if (r.way === "cloudflare_account" && !r.target_account_id) {
|
|
4447
|
+
ctx.addIssue({ code: z17.ZodIssueCode.custom, path: ["target_account_id"], message: "is needed to move the domain into your Cloudflare account" });
|
|
4448
|
+
}
|
|
4449
|
+
});
|
|
4450
|
+
var ZoneFile = z17.object({ domain: z17.string(), zone_file: z17.string() });
|
|
4451
|
+
|
|
4452
|
+
// src/contacts.ts
|
|
4453
|
+
import { z as z18 } from "zod";
|
|
4454
|
+
var Topic = z18.object({
|
|
4361
4455
|
id: Id,
|
|
4362
4456
|
slug: Slug,
|
|
4363
|
-
name:
|
|
4457
|
+
name: z18.string().min(1).max(120),
|
|
4364
4458
|
/** Shown on the hosted preference page. */
|
|
4365
|
-
description:
|
|
4459
|
+
description: z18.string().max(1e3).nullable(),
|
|
4366
4460
|
/** Translations of `name` and `description` per locale, for the hosted page. */
|
|
4367
|
-
translations:
|
|
4368
|
-
|
|
4461
|
+
translations: z18.record(
|
|
4462
|
+
z18.object({ name: z18.string().min(1).max(120), description: z18.string().max(1e3).nullable() })
|
|
4369
4463
|
),
|
|
4370
4464
|
created_at: Timestamp,
|
|
4371
4465
|
updated_at: Timestamp
|
|
4372
4466
|
});
|
|
4373
|
-
var TopicCreate =
|
|
4467
|
+
var TopicCreate = z18.object({
|
|
4374
4468
|
slug: Slug,
|
|
4375
|
-
name:
|
|
4376
|
-
description:
|
|
4469
|
+
name: z18.string().min(1).max(120),
|
|
4470
|
+
description: z18.string().max(1e3).optional(),
|
|
4377
4471
|
translations: Topic.shape.translations.optional()
|
|
4378
4472
|
});
|
|
4379
4473
|
var TopicUpdate = TopicCreate.omit({ slug: true }).partial().refine((v) => Object.keys(v).length > 0, "at least one field");
|
|
4380
|
-
var Contact =
|
|
4474
|
+
var Contact = z18.object({
|
|
4381
4475
|
id: Id,
|
|
4382
|
-
external_id:
|
|
4476
|
+
external_id: z18.string().min(1).max(255).nullable(),
|
|
4383
4477
|
/** Stored lowercased, unique per workspace. */
|
|
4384
4478
|
email: Email,
|
|
4385
|
-
first_name:
|
|
4386
|
-
last_name:
|
|
4387
|
-
locale:
|
|
4479
|
+
first_name: z18.string().max(200).nullable(),
|
|
4480
|
+
last_name: z18.string().max(200).nullable(),
|
|
4481
|
+
locale: z18.string().min(2).max(35).nullable(),
|
|
4388
4482
|
/**
|
|
4389
4483
|
* The person's own time zone, an IANA name such as `Europe/Berlin` (A1).
|
|
4390
4484
|
* Every wall clock an automation waits for is read in it, falling back to the
|
|
@@ -4392,65 +4486,65 @@ var Contact = z17.object({
|
|
|
4392
4486
|
*/
|
|
4393
4487
|
timezone: TimezoneName.nullable(),
|
|
4394
4488
|
properties: Properties,
|
|
4395
|
-
topics:
|
|
4489
|
+
topics: z18.array(Slug),
|
|
4396
4490
|
/** The slugs of the contact's tags (S4). */
|
|
4397
|
-
tags:
|
|
4491
|
+
tags: z18.array(Slug),
|
|
4398
4492
|
created_at: Timestamp,
|
|
4399
4493
|
updated_at: Timestamp
|
|
4400
4494
|
});
|
|
4401
|
-
var ContactUpsert =
|
|
4402
|
-
external_id:
|
|
4495
|
+
var ContactUpsert = z18.object({
|
|
4496
|
+
external_id: z18.string().min(1).max(255).optional(),
|
|
4403
4497
|
email: Email.optional(),
|
|
4404
|
-
first_name:
|
|
4405
|
-
last_name:
|
|
4406
|
-
locale:
|
|
4498
|
+
first_name: z18.string().max(200).nullable().optional(),
|
|
4499
|
+
last_name: z18.string().max(200).nullable().optional(),
|
|
4500
|
+
locale: z18.string().min(2).max(35).nullable().optional(),
|
|
4407
4501
|
timezone: TimezoneName.nullable().optional(),
|
|
4408
4502
|
properties: Properties.optional(),
|
|
4409
|
-
topics:
|
|
4503
|
+
topics: z18.array(Slug).max(100).optional()
|
|
4410
4504
|
}).refine((v) => v.external_id !== void 0 || v.email !== void 0, {
|
|
4411
4505
|
message: "external_id or email is required",
|
|
4412
4506
|
path: ["email"]
|
|
4413
4507
|
});
|
|
4414
|
-
var ContactUpsertResult =
|
|
4508
|
+
var ContactUpsertResult = z18.object({
|
|
4415
4509
|
contact: Contact,
|
|
4416
|
-
created:
|
|
4510
|
+
created: z18.boolean()
|
|
4417
4511
|
});
|
|
4418
4512
|
var ContactListQuery = PageQuery.extend({
|
|
4419
|
-
email:
|
|
4420
|
-
external_id:
|
|
4513
|
+
email: z18.string().min(1).max(254).optional(),
|
|
4514
|
+
external_id: z18.string().min(1).max(255).optional(),
|
|
4421
4515
|
topic: Slug.optional()
|
|
4422
4516
|
});
|
|
4423
|
-
var ContactErased =
|
|
4424
|
-
ok:
|
|
4425
|
-
erased_messages:
|
|
4426
|
-
erased_recipients:
|
|
4427
|
-
suppressions_kept:
|
|
4517
|
+
var ContactErased = z18.object({
|
|
4518
|
+
ok: z18.literal(true),
|
|
4519
|
+
erased_messages: z18.number().int().min(0),
|
|
4520
|
+
erased_recipients: z18.number().int().min(0),
|
|
4521
|
+
suppressions_kept: z18.number().int().min(0)
|
|
4428
4522
|
});
|
|
4429
4523
|
var SUPPRESSION_REASONS = ["unsubscribed", "bounced", "complained", "manual"];
|
|
4430
|
-
var SuppressionReason =
|
|
4431
|
-
var Suppression =
|
|
4524
|
+
var SuppressionReason = z18.enum(SUPPRESSION_REASONS);
|
|
4525
|
+
var Suppression = z18.object({
|
|
4432
4526
|
id: Id,
|
|
4433
4527
|
email: Email,
|
|
4434
4528
|
reason: SuppressionReason,
|
|
4435
4529
|
topic: Slug.nullable(),
|
|
4436
4530
|
source_message_id: Id.nullable(),
|
|
4437
|
-
note:
|
|
4531
|
+
note: z18.string().max(1e3).nullable(),
|
|
4438
4532
|
created_at: Timestamp
|
|
4439
4533
|
});
|
|
4440
|
-
var SuppressionCreate =
|
|
4534
|
+
var SuppressionCreate = z18.object({
|
|
4441
4535
|
email: Email,
|
|
4442
|
-
reason:
|
|
4536
|
+
reason: z18.enum(["manual", "unsubscribed"]),
|
|
4443
4537
|
topic: Slug.nullable().optional(),
|
|
4444
|
-
note:
|
|
4538
|
+
note: z18.string().max(1e3).optional()
|
|
4445
4539
|
});
|
|
4446
4540
|
var SuppressionListQuery = PageQuery.extend({
|
|
4447
|
-
email:
|
|
4541
|
+
email: z18.string().min(1).max(254).optional(),
|
|
4448
4542
|
reason: SuppressionReason.optional(),
|
|
4449
4543
|
topic: Slug.optional()
|
|
4450
4544
|
});
|
|
4451
4545
|
|
|
4452
4546
|
// src/webhooks.ts
|
|
4453
|
-
import { z as
|
|
4547
|
+
import { z as z19 } from "zod";
|
|
4454
4548
|
var WEBHOOK_EVENT_TYPES = [
|
|
4455
4549
|
"message.sent",
|
|
4456
4550
|
"message.failed",
|
|
@@ -4494,23 +4588,23 @@ var WEBHOOK_EVENT_TYPES = [
|
|
|
4494
4588
|
"template.updated",
|
|
4495
4589
|
"template.deleted"
|
|
4496
4590
|
];
|
|
4497
|
-
var WebhookEventType =
|
|
4498
|
-
var MessageEventBase =
|
|
4591
|
+
var WebhookEventType = z19.enum(WEBHOOK_EVENT_TYPES);
|
|
4592
|
+
var MessageEventBase = z19.object({
|
|
4499
4593
|
message_id: Id,
|
|
4500
4594
|
mailing_id: Id.nullable(),
|
|
4501
4595
|
mailing_metadata: MailingMetadata.nullable(),
|
|
4502
4596
|
recipient_id: Id.nullable(),
|
|
4503
4597
|
contact_id: Id.nullable(),
|
|
4504
|
-
external_id:
|
|
4598
|
+
external_id: z19.string().nullable(),
|
|
4505
4599
|
email: Email,
|
|
4506
|
-
subject:
|
|
4600
|
+
subject: z19.string(),
|
|
4507
4601
|
topic: Slug.nullable(),
|
|
4508
|
-
provider_message_id:
|
|
4509
|
-
is_test:
|
|
4602
|
+
provider_message_id: z19.string().nullable(),
|
|
4603
|
+
is_test: z19.boolean()
|
|
4510
4604
|
});
|
|
4511
4605
|
var MessageSentData = MessageEventBase.extend({
|
|
4512
4606
|
/** The final HTML as sent, so the client can archive it beside its own records. */
|
|
4513
|
-
html:
|
|
4607
|
+
html: z19.string(),
|
|
4514
4608
|
sent_at: Timestamp,
|
|
4515
4609
|
/**
|
|
4516
4610
|
* The choice each insertion made (see `Message.insertions`); absent or null
|
|
@@ -4521,20 +4615,20 @@ var MessageSentData = MessageEventBase.extend({
|
|
|
4521
4615
|
insertions: InsertionChoices.nullish()
|
|
4522
4616
|
});
|
|
4523
4617
|
var MessageFailedData = MessageEventBase.extend({
|
|
4524
|
-
error:
|
|
4618
|
+
error: z19.string(),
|
|
4525
4619
|
/** False when the provider rejected permanently; the recipient will not be retried. */
|
|
4526
|
-
retryable:
|
|
4620
|
+
retryable: z19.boolean(),
|
|
4527
4621
|
failed_at: Timestamp
|
|
4528
4622
|
});
|
|
4529
4623
|
var UNSUBSCRIBE_SOURCES = ["hosted_page", "one_click", "api", "dashboard", "signup_form"];
|
|
4530
|
-
var ContactUnsubscribedData =
|
|
4624
|
+
var ContactUnsubscribedData = z19.object({
|
|
4531
4625
|
contact_id: Id.nullable(),
|
|
4532
|
-
external_id:
|
|
4626
|
+
external_id: z19.string().nullable(),
|
|
4533
4627
|
email: Email,
|
|
4534
4628
|
/** The topic unsubscribed from; null means every topic. */
|
|
4535
4629
|
topic: Slug.nullable(),
|
|
4536
4630
|
mailing_id: Id.nullable(),
|
|
4537
|
-
source:
|
|
4631
|
+
source: z19.enum(UNSUBSCRIBE_SOURCES),
|
|
4538
4632
|
unsubscribed_at: Timestamp
|
|
4539
4633
|
});
|
|
4540
4634
|
var ContactResubscribedData = ContactUnsubscribedData.omit({ unsubscribed_at: true }).extend({
|
|
@@ -4543,142 +4637,142 @@ var ContactResubscribedData = ContactUnsubscribedData.omit({ unsubscribed_at: tr
|
|
|
4543
4637
|
* breaker undid a `bounced` block it judged false (a `contact.bounced` for the
|
|
4544
4638
|
* same address and mailing went out before); `topic` is null.
|
|
4545
4639
|
*/
|
|
4546
|
-
source:
|
|
4640
|
+
source: z19.enum([...UNSUBSCRIBE_SOURCES, "bounce_reverted"]),
|
|
4547
4641
|
resubscribed_at: Timestamp
|
|
4548
4642
|
});
|
|
4549
|
-
var ContactBouncedData =
|
|
4643
|
+
var ContactBouncedData = z19.object({
|
|
4550
4644
|
contact_id: Id.nullable(),
|
|
4551
|
-
external_id:
|
|
4645
|
+
external_id: z19.string().nullable(),
|
|
4552
4646
|
email: Email,
|
|
4553
4647
|
/** `bounced` for a hard bounce, `complained` for a spam complaint. */
|
|
4554
|
-
reason:
|
|
4648
|
+
reason: z19.enum(["bounced", "complained"]),
|
|
4555
4649
|
message_id: Id.nullable(),
|
|
4556
|
-
diagnostic:
|
|
4650
|
+
diagnostic: z19.string().nullable(),
|
|
4557
4651
|
bounced_at: Timestamp
|
|
4558
4652
|
});
|
|
4559
|
-
var MailingFinishedData =
|
|
4653
|
+
var MailingFinishedData = z19.object({
|
|
4560
4654
|
mailing_id: Id,
|
|
4561
4655
|
mailing_metadata: MailingMetadata,
|
|
4562
|
-
status:
|
|
4656
|
+
status: z19.enum(["sent", "partially_failed", "cancelled"]),
|
|
4563
4657
|
counts: MailingCounts,
|
|
4564
4658
|
finished_at: Timestamp
|
|
4565
4659
|
});
|
|
4566
|
-
var ContactSubscribedData =
|
|
4660
|
+
var ContactSubscribedData = z19.object({
|
|
4567
4661
|
contact_id: Id,
|
|
4568
|
-
external_id:
|
|
4662
|
+
external_id: z19.string().nullable(),
|
|
4569
4663
|
email: Email,
|
|
4570
|
-
topics:
|
|
4571
|
-
source:
|
|
4664
|
+
topics: z19.array(Slug),
|
|
4665
|
+
source: z19.enum(["signup_form", "api", "dashboard", "automation"]),
|
|
4572
4666
|
signup_form_id: Id.nullable(),
|
|
4573
|
-
signup_form_version:
|
|
4667
|
+
signup_form_version: z19.number().int().min(1).nullable(),
|
|
4574
4668
|
subscribed_at: Timestamp
|
|
4575
4669
|
});
|
|
4576
|
-
var ImportFinishedData =
|
|
4670
|
+
var ImportFinishedData = z19.object({
|
|
4577
4671
|
import_id: Id,
|
|
4578
|
-
status:
|
|
4672
|
+
status: z19.enum(["completed", "cancelled", "failed"]),
|
|
4579
4673
|
result: ImportReport.nullable(),
|
|
4580
|
-
error:
|
|
4674
|
+
error: z19.string().nullable(),
|
|
4581
4675
|
finished_at: Timestamp
|
|
4582
4676
|
});
|
|
4583
|
-
var MailingScheduledData =
|
|
4677
|
+
var MailingScheduledData = z19.object({
|
|
4584
4678
|
mailing_id: Id,
|
|
4585
4679
|
mailing_metadata: MailingMetadata,
|
|
4586
4680
|
scheduled_at: Timestamp.nullable()
|
|
4587
4681
|
});
|
|
4588
|
-
var MailingStartedData =
|
|
4682
|
+
var MailingStartedData = z19.object({
|
|
4589
4683
|
mailing_id: Id,
|
|
4590
4684
|
mailing_metadata: MailingMetadata,
|
|
4591
|
-
trigger:
|
|
4592
|
-
recipients:
|
|
4685
|
+
trigger: z19.enum(["send", "schedule"]),
|
|
4686
|
+
recipients: z19.number().int().min(0),
|
|
4593
4687
|
started_at: Timestamp
|
|
4594
4688
|
});
|
|
4595
|
-
var MailingScheduleFailedData =
|
|
4689
|
+
var MailingScheduleFailedData = z19.object({
|
|
4596
4690
|
mailing_id: Id,
|
|
4597
4691
|
mailing_metadata: MailingMetadata,
|
|
4598
|
-
code:
|
|
4599
|
-
message:
|
|
4692
|
+
code: z19.string(),
|
|
4693
|
+
message: z19.string(),
|
|
4600
4694
|
failed_at: Timestamp
|
|
4601
4695
|
});
|
|
4602
|
-
var MailingAbWinnerSelectedData =
|
|
4696
|
+
var MailingAbWinnerSelectedData = z19.object({
|
|
4603
4697
|
mailing_id: Id,
|
|
4604
4698
|
mailing_metadata: MailingMetadata,
|
|
4605
|
-
winner:
|
|
4606
|
-
decided_by:
|
|
4607
|
-
variants:
|
|
4699
|
+
winner: z19.string(),
|
|
4700
|
+
decided_by: z19.enum(["metric", "manual"]),
|
|
4701
|
+
variants: z19.array(VariantAnalytics),
|
|
4608
4702
|
decided_at: Timestamp
|
|
4609
4703
|
});
|
|
4610
|
-
var ContactTaggedData =
|
|
4704
|
+
var ContactTaggedData = z19.object({
|
|
4611
4705
|
contact_id: Id,
|
|
4612
|
-
external_id:
|
|
4706
|
+
external_id: z19.string().nullable(),
|
|
4613
4707
|
email: Email,
|
|
4614
4708
|
/** Only the tags the contact did not already have. */
|
|
4615
|
-
tags:
|
|
4616
|
-
source:
|
|
4709
|
+
tags: z19.array(Slug).min(1),
|
|
4710
|
+
source: z19.enum(["api", "dashboard", "signup_form", "import", "automation"]),
|
|
4617
4711
|
tagged_at: Timestamp
|
|
4618
4712
|
});
|
|
4619
|
-
var ContactUpdatedData =
|
|
4713
|
+
var ContactUpdatedData = z19.object({
|
|
4620
4714
|
contact_id: Id,
|
|
4621
|
-
external_id:
|
|
4715
|
+
external_id: z19.string().nullable(),
|
|
4622
4716
|
email: Email,
|
|
4623
|
-
changed:
|
|
4717
|
+
changed: z19.array(z19.string()).min(1),
|
|
4624
4718
|
properties: Properties,
|
|
4625
|
-
source:
|
|
4719
|
+
source: z19.enum(["api", "dashboard", "signup_form", "import", "automation"]),
|
|
4626
4720
|
updated_at: Timestamp
|
|
4627
4721
|
});
|
|
4628
|
-
var AutomationRunEventBase =
|
|
4722
|
+
var AutomationRunEventBase = z19.object({
|
|
4629
4723
|
automation_id: Id,
|
|
4630
|
-
automation_name:
|
|
4724
|
+
automation_name: z19.string(),
|
|
4631
4725
|
run_id: Id,
|
|
4632
|
-
version:
|
|
4726
|
+
version: z19.number().int().min(1),
|
|
4633
4727
|
contact_id: Id,
|
|
4634
|
-
external_id:
|
|
4728
|
+
external_id: z19.string().nullable(),
|
|
4635
4729
|
email: Email
|
|
4636
4730
|
});
|
|
4637
4731
|
var AutomationRunStartedData = AutomationRunEventBase.extend({
|
|
4638
4732
|
/** What let them in: a trigger kind, or `manual` for an explicit enrolment. */
|
|
4639
|
-
trigger_kind:
|
|
4733
|
+
trigger_kind: z19.string(),
|
|
4640
4734
|
entered_at: Timestamp
|
|
4641
4735
|
});
|
|
4642
4736
|
var AutomationRunCompletedData = AutomationRunEventBase.extend({
|
|
4643
|
-
last_step_id:
|
|
4737
|
+
last_step_id: z19.string().nullable(),
|
|
4644
4738
|
completed_at: Timestamp
|
|
4645
4739
|
});
|
|
4646
4740
|
var AutomationRunExitedData = AutomationRunEventBase.extend({
|
|
4647
4741
|
reason: AutomationEndReason,
|
|
4648
|
-
step_id:
|
|
4742
|
+
step_id: z19.string().nullable(),
|
|
4649
4743
|
exited_at: Timestamp
|
|
4650
4744
|
});
|
|
4651
4745
|
var AutomationRunFailedData = AutomationRunEventBase.extend({
|
|
4652
|
-
reason:
|
|
4653
|
-
step_id:
|
|
4746
|
+
reason: z19.string(),
|
|
4747
|
+
step_id: z19.string().nullable(),
|
|
4654
4748
|
failed_at: Timestamp
|
|
4655
4749
|
});
|
|
4656
4750
|
var AutomationWebhookData = AutomationRunEventBase.extend({
|
|
4657
|
-
step_id:
|
|
4751
|
+
step_id: z19.string(),
|
|
4658
4752
|
/** The step's own label, when it was given one, so a receiver can branch on a name. */
|
|
4659
|
-
step_label:
|
|
4753
|
+
step_label: z19.string().nullable(),
|
|
4660
4754
|
/** Whatever the step carries, verbatim. Null when it carries nothing. */
|
|
4661
4755
|
payload: JsonValue.nullable(),
|
|
4662
4756
|
fired_at: Timestamp
|
|
4663
4757
|
});
|
|
4664
|
-
var TemplateEventBase =
|
|
4758
|
+
var TemplateEventBase = z19.object({
|
|
4665
4759
|
template_id: Id,
|
|
4666
|
-
name:
|
|
4667
|
-
version:
|
|
4668
|
-
source:
|
|
4760
|
+
name: z19.string().min(1).max(200),
|
|
4761
|
+
version: z19.number().int().min(1),
|
|
4762
|
+
source: z19.enum(["api", "dashboard", "mjml_import"])
|
|
4669
4763
|
});
|
|
4670
4764
|
var TemplateCreatedData = TemplateEventBase.extend({ created_at: Timestamp });
|
|
4671
|
-
var TemplateUpdatedData = TemplateEventBase.extend({ archived:
|
|
4765
|
+
var TemplateUpdatedData = TemplateEventBase.extend({ archived: z19.boolean(), updated_at: Timestamp });
|
|
4672
4766
|
var TemplateDeletedData = TemplateEventBase.extend({ deleted_at: Timestamp });
|
|
4673
|
-
var envelope = (type, data) =>
|
|
4767
|
+
var envelope = (type, data) => z19.object({
|
|
4674
4768
|
/** Unique per event: a receiver deduplicates on it (deliveries may repeat). */
|
|
4675
4769
|
id: Id,
|
|
4676
|
-
type:
|
|
4770
|
+
type: z19.literal(type),
|
|
4677
4771
|
created_at: Timestamp,
|
|
4678
4772
|
workspace_id: Id,
|
|
4679
4773
|
data
|
|
4680
4774
|
});
|
|
4681
|
-
var WebhookEvent =
|
|
4775
|
+
var WebhookEvent = z19.discriminatedUnion("type", [
|
|
4682
4776
|
envelope("message.sent", MessageSentData),
|
|
4683
4777
|
envelope("message.failed", MessageFailedData),
|
|
4684
4778
|
envelope("contact.unsubscribed", ContactUnsubscribedData),
|
|
@@ -4702,16 +4796,16 @@ var WebhookEvent = z18.discriminatedUnion("type", [
|
|
|
4702
4796
|
envelope("template.updated", TemplateUpdatedData),
|
|
4703
4797
|
envelope("template.deleted", TemplateDeletedData)
|
|
4704
4798
|
]);
|
|
4705
|
-
var WebhookEndpoint =
|
|
4799
|
+
var WebhookEndpoint = z19.object({
|
|
4706
4800
|
id: Id,
|
|
4707
|
-
url:
|
|
4708
|
-
description:
|
|
4709
|
-
events:
|
|
4710
|
-
enabled:
|
|
4801
|
+
url: z19.string().url(),
|
|
4802
|
+
description: z19.string().max(500).nullable(),
|
|
4803
|
+
events: z19.array(WebhookEventType).min(1),
|
|
4804
|
+
enabled: z19.boolean(),
|
|
4711
4805
|
created_at: Timestamp,
|
|
4712
4806
|
updated_at: Timestamp
|
|
4713
4807
|
});
|
|
4714
|
-
var WebhookUrl =
|
|
4808
|
+
var WebhookUrl = z19.string().url().refine((u) => {
|
|
4715
4809
|
try {
|
|
4716
4810
|
const url = new URL(u);
|
|
4717
4811
|
if (url.protocol === "https:") return true;
|
|
@@ -4720,35 +4814,35 @@ var WebhookUrl = z18.string().url().refine((u) => {
|
|
|
4720
4814
|
return false;
|
|
4721
4815
|
}
|
|
4722
4816
|
}, "must be https (http only for localhost)");
|
|
4723
|
-
var WebhookEndpointCreate =
|
|
4817
|
+
var WebhookEndpointCreate = z19.object({
|
|
4724
4818
|
url: WebhookUrl,
|
|
4725
|
-
description:
|
|
4726
|
-
events:
|
|
4727
|
-
enabled:
|
|
4819
|
+
description: z19.string().max(500).optional(),
|
|
4820
|
+
events: z19.array(WebhookEventType).min(1),
|
|
4821
|
+
enabled: z19.boolean().optional()
|
|
4728
4822
|
});
|
|
4729
|
-
var WebhookEndpointUpdate =
|
|
4823
|
+
var WebhookEndpointUpdate = z19.object({
|
|
4730
4824
|
url: WebhookUrl,
|
|
4731
|
-
description:
|
|
4732
|
-
events:
|
|
4733
|
-
enabled:
|
|
4825
|
+
description: z19.string().max(500).nullable(),
|
|
4826
|
+
events: z19.array(WebhookEventType).min(1),
|
|
4827
|
+
enabled: z19.boolean()
|
|
4734
4828
|
}).partial().refine((v) => Object.keys(v).length > 0, "at least one field");
|
|
4735
|
-
var WebhookEndpointWithSecret =
|
|
4829
|
+
var WebhookEndpointWithSecret = z19.object({
|
|
4736
4830
|
endpoint: WebhookEndpoint,
|
|
4737
|
-
secret:
|
|
4831
|
+
secret: z19.string().min(32)
|
|
4738
4832
|
});
|
|
4739
4833
|
var WEBHOOK_DELIVERY_STATUSES = ["pending", "succeeded", "failed"];
|
|
4740
|
-
var WebhookDeliveryStatus =
|
|
4834
|
+
var WebhookDeliveryStatus = z19.enum(WEBHOOK_DELIVERY_STATUSES);
|
|
4741
4835
|
var WEBHOOK_MAX_ATTEMPTS = 8;
|
|
4742
4836
|
var WEBHOOK_RETRY_DELAYS_SECONDS = [30, 120, 600, 1800, 3600, 7200, 21600];
|
|
4743
|
-
var WebhookDelivery =
|
|
4837
|
+
var WebhookDelivery = z19.object({
|
|
4744
4838
|
id: Id,
|
|
4745
4839
|
endpoint_id: Id,
|
|
4746
4840
|
event_id: Id,
|
|
4747
4841
|
event_type: WebhookEventType,
|
|
4748
4842
|
status: WebhookDeliveryStatus,
|
|
4749
|
-
attempts:
|
|
4750
|
-
last_status_code:
|
|
4751
|
-
last_error:
|
|
4843
|
+
attempts: z19.number().int().min(0),
|
|
4844
|
+
last_status_code: z19.number().int().min(100).max(599).nullable(),
|
|
4845
|
+
last_error: z19.string().nullable(),
|
|
4752
4846
|
next_attempt_at: Timestamp.nullable(),
|
|
4753
4847
|
delivered_at: Timestamp.nullable(),
|
|
4754
4848
|
created_at: Timestamp
|
|
@@ -4757,7 +4851,7 @@ var WebhookDeliveryListQuery = PageQuery.extend({
|
|
|
4757
4851
|
status: WebhookDeliveryStatus.optional(),
|
|
4758
4852
|
event_type: WebhookEventType.optional()
|
|
4759
4853
|
});
|
|
4760
|
-
var WebhookDeliveryParams =
|
|
4854
|
+
var WebhookDeliveryParams = z19.object({ id: Id, delivery_id: Id });
|
|
4761
4855
|
|
|
4762
4856
|
// src/webhook-signing.ts
|
|
4763
4857
|
var WEBHOOK_SIGNATURE_HEADER = "x-mail-signature";
|
|
@@ -4824,99 +4918,99 @@ async function verifyWebhook(input) {
|
|
|
4824
4918
|
}
|
|
4825
4919
|
|
|
4826
4920
|
// src/billing.ts
|
|
4827
|
-
import { z as
|
|
4921
|
+
import { z as z20 } from "zod";
|
|
4828
4922
|
var PLAN_IDS = ["free", "starter", "growth", "design_partner"];
|
|
4829
|
-
var PlanId =
|
|
4830
|
-
var PlanLimits =
|
|
4831
|
-
monthly_messages:
|
|
4832
|
-
contacts:
|
|
4833
|
-
members:
|
|
4834
|
-
providers:
|
|
4835
|
-
webhook_endpoints:
|
|
4923
|
+
var PlanId = z20.enum(PLAN_IDS);
|
|
4924
|
+
var PlanLimits = z20.object({
|
|
4925
|
+
monthly_messages: z20.number().int().min(0).nullable(),
|
|
4926
|
+
contacts: z20.number().int().min(0).nullable(),
|
|
4927
|
+
members: z20.number().int().min(1).nullable(),
|
|
4928
|
+
providers: z20.number().int().min(1).nullable(),
|
|
4929
|
+
webhook_endpoints: z20.number().int().min(0).nullable(),
|
|
4836
4930
|
/** Automations that may be live (active or paused) at once (A1). */
|
|
4837
|
-
active_automations:
|
|
4931
|
+
active_automations: z20.number().int().min(0).nullable(),
|
|
4838
4932
|
/** Steps one automation may hold. Null is the flow's own cap, not unlimited. */
|
|
4839
|
-
automation_steps:
|
|
4933
|
+
automation_steps: z20.number().int().min(1).nullable(),
|
|
4840
4934
|
/** Own domains Lumitra Mail sends from (managed sending domains); 0 when the plan has none. */
|
|
4841
|
-
sending_domains:
|
|
4935
|
+
sending_domains: z20.number().int().min(0).nullable()
|
|
4842
4936
|
});
|
|
4843
|
-
var PlanFeatures =
|
|
4937
|
+
var PlanFeatures = z20.object({
|
|
4844
4938
|
/** A/B tests of subject and content on a mailing (S4). */
|
|
4845
|
-
ab_testing:
|
|
4939
|
+
ab_testing: z20.boolean(),
|
|
4846
4940
|
/** Open and click tracking, still off until a workspace turns it on (`settings.tracking_enabled`). */
|
|
4847
|
-
tracking:
|
|
4941
|
+
tracking: z20.boolean(),
|
|
4848
4942
|
/** Automations: flows a person walks through step by step (A1). */
|
|
4849
|
-
automations:
|
|
4943
|
+
automations: z20.boolean()
|
|
4850
4944
|
});
|
|
4851
4945
|
var PLAN_FEATURES = ["ab_testing", "tracking", "automations"];
|
|
4852
|
-
var Plan =
|
|
4946
|
+
var Plan = z20.object({
|
|
4853
4947
|
id: PlanId,
|
|
4854
|
-
name:
|
|
4948
|
+
name: z20.string().min(1),
|
|
4855
4949
|
/** Price in the smallest currency unit per month; null for plans not sold. */
|
|
4856
|
-
monthly_price_cents:
|
|
4857
|
-
currency:
|
|
4950
|
+
monthly_price_cents: z20.number().int().min(0).nullable(),
|
|
4951
|
+
currency: z20.string().length(3),
|
|
4858
4952
|
limits: PlanLimits,
|
|
4859
4953
|
features: PlanFeatures
|
|
4860
4954
|
});
|
|
4861
|
-
var CatalogPlan = Plan.extend({ sellable:
|
|
4862
|
-
var Subscription =
|
|
4955
|
+
var CatalogPlan = Plan.extend({ sellable: z20.boolean() });
|
|
4956
|
+
var Subscription = z20.object({
|
|
4863
4957
|
workspace_id: Id,
|
|
4864
4958
|
plan: PlanId,
|
|
4865
|
-
status:
|
|
4959
|
+
status: z20.enum(["active", "trialing", "past_due", "cancelled"]),
|
|
4866
4960
|
current_period_start: Timestamp,
|
|
4867
4961
|
current_period_end: Timestamp,
|
|
4868
|
-
cancel_at_period_end:
|
|
4962
|
+
cancel_at_period_end: z20.boolean(),
|
|
4869
4963
|
/**
|
|
4870
4964
|
* A design partner outside billing (plan `design_partner`, no limits, no
|
|
4871
4965
|
* checkout). Set only by an operator, never through the API.
|
|
4872
4966
|
*/
|
|
4873
|
-
billing_exempt:
|
|
4967
|
+
billing_exempt: z20.boolean(),
|
|
4874
4968
|
/**
|
|
4875
4969
|
* Own sending domains bought on top of the plan's included ones (the
|
|
4876
4970
|
* add-on), each a monthly charge on the same subscription. 0 without the
|
|
4877
4971
|
* add-on; the usage limit `sending_domains` is the plan's plus these.
|
|
4878
4972
|
*/
|
|
4879
|
-
extra_sending_domains:
|
|
4973
|
+
extra_sending_domains: z20.number().int().min(0)
|
|
4880
4974
|
});
|
|
4881
|
-
var BillingAddons =
|
|
4882
|
-
sending_domain:
|
|
4883
|
-
monthly_price_cents:
|
|
4884
|
-
currency:
|
|
4885
|
-
sellable:
|
|
4975
|
+
var BillingAddons = z20.object({
|
|
4976
|
+
sending_domain: z20.object({
|
|
4977
|
+
monthly_price_cents: z20.number().int().min(0),
|
|
4978
|
+
currency: z20.string().length(3),
|
|
4979
|
+
sellable: z20.boolean()
|
|
4886
4980
|
})
|
|
4887
4981
|
});
|
|
4888
4982
|
var MAX_EXTRA_SENDING_DOMAINS = 100;
|
|
4889
|
-
var ExtraSendingDomainsUpdate =
|
|
4983
|
+
var ExtraSendingDomainsUpdate = z20.object({ quantity: z20.number().int().min(0).max(MAX_EXTRA_SENDING_DOMAINS) });
|
|
4890
4984
|
var USAGE_METRICS = ["messages", "contacts", "members", "providers", "webhook_endpoints", "active_automations", "sending_domains"];
|
|
4891
|
-
var UsageMetric =
|
|
4985
|
+
var UsageMetric = z20.enum(USAGE_METRICS);
|
|
4892
4986
|
var USAGE_WARNING_RATIO = 0.8;
|
|
4893
|
-
var UsageWarning =
|
|
4987
|
+
var UsageWarning = z20.object({
|
|
4894
4988
|
metric: UsageMetric,
|
|
4895
|
-
used:
|
|
4896
|
-
limit:
|
|
4989
|
+
used: z20.number().int().min(0),
|
|
4990
|
+
limit: z20.number().int().min(0),
|
|
4897
4991
|
/** `approaching`: at or above USAGE_WARNING_RATIO of the limit; `reached`: at or above the limit. */
|
|
4898
|
-
level:
|
|
4992
|
+
level: z20.enum(["approaching", "reached"])
|
|
4899
4993
|
});
|
|
4900
|
-
var TermsStatus =
|
|
4901
|
-
var Usage =
|
|
4994
|
+
var TermsStatus = z20.object({ accepted_version: z20.string().nullable(), current_version: z20.string() });
|
|
4995
|
+
var Usage = z20.object({
|
|
4902
4996
|
plan: PlanId,
|
|
4903
4997
|
period_start: Timestamp,
|
|
4904
4998
|
period_end: Timestamp,
|
|
4905
|
-
metrics:
|
|
4906
|
-
warnings:
|
|
4999
|
+
metrics: z20.record(UsageMetric, z20.object({ used: z20.number().int().min(0), limit: z20.number().int().min(0).nullable() })),
|
|
5000
|
+
warnings: z20.array(UsageWarning),
|
|
4907
5001
|
terms: TermsStatus
|
|
4908
5002
|
});
|
|
4909
|
-
var TermsAcceptance =
|
|
4910
|
-
var CheckoutRequest =
|
|
4911
|
-
plan:
|
|
4912
|
-
success_url:
|
|
4913
|
-
cancel_url:
|
|
5003
|
+
var TermsAcceptance = z20.object({ accept_terms: AcceptTerms });
|
|
5004
|
+
var CheckoutRequest = z20.object({
|
|
5005
|
+
plan: z20.enum(["starter", "growth"]),
|
|
5006
|
+
success_url: z20.string().url(),
|
|
5007
|
+
cancel_url: z20.string().url(),
|
|
4914
5008
|
/** The buyer accepted the terms of service and the processing agreement of this version. */
|
|
4915
5009
|
accept_terms: AcceptTerms
|
|
4916
5010
|
});
|
|
4917
|
-
var CheckoutSession =
|
|
4918
|
-
var PortalRequest =
|
|
4919
|
-
var PortalSession =
|
|
5011
|
+
var CheckoutSession = z20.object({ url: z20.string().url() });
|
|
5012
|
+
var PortalRequest = z20.object({ return_url: z20.string().url() });
|
|
5013
|
+
var PortalSession = z20.object({ url: z20.string().url() });
|
|
4920
5014
|
var USAGE_WARNING_HEADER = "x-mail-usage-warning";
|
|
4921
5015
|
function formatUsageWarningHeader(warnings) {
|
|
4922
5016
|
if (warnings.length === 0) return null;
|
|
@@ -4936,7 +5030,7 @@ function parseUsageWarningHeader(value) {
|
|
|
4936
5030
|
}
|
|
4937
5031
|
|
|
4938
5032
|
// src/routes.ts
|
|
4939
|
-
import { z as
|
|
5033
|
+
import { z as z21 } from "zod";
|
|
4940
5034
|
var list = (item) => page(item);
|
|
4941
5035
|
var foundationRoutes = {
|
|
4942
5036
|
"workspaces.create": {
|
|
@@ -5182,7 +5276,7 @@ var templateRoutes = {
|
|
|
5182
5276
|
path: "/v1/templates/:id/export",
|
|
5183
5277
|
params: IdParams,
|
|
5184
5278
|
query: TemplateExportQuery,
|
|
5185
|
-
response:
|
|
5279
|
+
response: z21.string(),
|
|
5186
5280
|
responseType: "text",
|
|
5187
5281
|
status: 200,
|
|
5188
5282
|
access: "read",
|
|
@@ -5562,7 +5656,7 @@ var sendingRoutes = {
|
|
|
5562
5656
|
path: "/v1/mailings/:id/export",
|
|
5563
5657
|
params: IdParams,
|
|
5564
5658
|
query: MailingExportQuery,
|
|
5565
|
-
response:
|
|
5659
|
+
response: z21.string(),
|
|
5566
5660
|
responseType: "text",
|
|
5567
5661
|
status: 200,
|
|
5568
5662
|
access: "read",
|
|
@@ -5829,7 +5923,7 @@ var platformRoutes = {
|
|
|
5829
5923
|
"contactProperties.list": {
|
|
5830
5924
|
method: "GET",
|
|
5831
5925
|
path: "/v1/contact-properties",
|
|
5832
|
-
response:
|
|
5926
|
+
response: z21.object({ data: z21.array(ContactPropertyDefinition) }),
|
|
5833
5927
|
status: 200,
|
|
5834
5928
|
access: "read",
|
|
5835
5929
|
phase: "S4"
|
|
@@ -6128,7 +6222,7 @@ var billingRoutes = {
|
|
|
6128
6222
|
"billing.plans": {
|
|
6129
6223
|
method: "GET",
|
|
6130
6224
|
path: "/v1/billing/plans",
|
|
6131
|
-
response:
|
|
6225
|
+
response: z21.object({ data: z21.array(CatalogPlan), addons: BillingAddons }),
|
|
6132
6226
|
status: 200,
|
|
6133
6227
|
access: "read",
|
|
6134
6228
|
phase: "S5"
|
|
@@ -6217,6 +6311,73 @@ var domainBuyingRoutes = {
|
|
|
6217
6311
|
phase: "S5"
|
|
6218
6312
|
}
|
|
6219
6313
|
};
|
|
6314
|
+
var boughtDomainRoutes = {
|
|
6315
|
+
"boughtDomains.list": {
|
|
6316
|
+
method: "GET",
|
|
6317
|
+
path: "/v1/bought-domains",
|
|
6318
|
+
response: z21.object({ data: z21.array(BoughtDomain) }),
|
|
6319
|
+
status: 200,
|
|
6320
|
+
access: "admin",
|
|
6321
|
+
phase: "S5"
|
|
6322
|
+
},
|
|
6323
|
+
"boughtDomains.records": {
|
|
6324
|
+
method: "GET",
|
|
6325
|
+
path: "/v1/bought-domains/:id/records",
|
|
6326
|
+
params: IdParams,
|
|
6327
|
+
response: z21.object({ data: z21.array(DomainRecord) }),
|
|
6328
|
+
status: 200,
|
|
6329
|
+
access: "admin",
|
|
6330
|
+
phase: "S5"
|
|
6331
|
+
},
|
|
6332
|
+
"boughtDomains.createRecord": {
|
|
6333
|
+
method: "POST",
|
|
6334
|
+
path: "/v1/bought-domains/:id/records",
|
|
6335
|
+
params: IdParams,
|
|
6336
|
+
body: DomainRecordInput,
|
|
6337
|
+
response: DomainRecord,
|
|
6338
|
+
status: 201,
|
|
6339
|
+
access: "admin",
|
|
6340
|
+
phase: "S5"
|
|
6341
|
+
},
|
|
6342
|
+
"boughtDomains.updateRecord": {
|
|
6343
|
+
method: "PATCH",
|
|
6344
|
+
path: "/v1/bought-domains/:id/records/:record_id",
|
|
6345
|
+
params: BoughtDomainRecordParams,
|
|
6346
|
+
body: DomainRecordInput,
|
|
6347
|
+
response: DomainRecord,
|
|
6348
|
+
status: 200,
|
|
6349
|
+
access: "admin",
|
|
6350
|
+
phase: "S5"
|
|
6351
|
+
},
|
|
6352
|
+
"boughtDomains.deleteRecord": {
|
|
6353
|
+
method: "DELETE",
|
|
6354
|
+
path: "/v1/bought-domains/:id/records/:record_id",
|
|
6355
|
+
params: BoughtDomainRecordParams,
|
|
6356
|
+
response: Ok,
|
|
6357
|
+
status: 200,
|
|
6358
|
+
access: "admin",
|
|
6359
|
+
phase: "S5"
|
|
6360
|
+
},
|
|
6361
|
+
"boughtDomains.zoneFile": {
|
|
6362
|
+
method: "GET",
|
|
6363
|
+
path: "/v1/bought-domains/:id/zone-file",
|
|
6364
|
+
params: IdParams,
|
|
6365
|
+
response: ZoneFile,
|
|
6366
|
+
status: 200,
|
|
6367
|
+
access: "admin",
|
|
6368
|
+
phase: "S5"
|
|
6369
|
+
},
|
|
6370
|
+
"boughtDomains.leave": {
|
|
6371
|
+
method: "POST",
|
|
6372
|
+
path: "/v1/bought-domains/:id/leave",
|
|
6373
|
+
params: IdParams,
|
|
6374
|
+
body: DomainLeaveCreate,
|
|
6375
|
+
response: BoughtDomain,
|
|
6376
|
+
status: 201,
|
|
6377
|
+
access: "admin",
|
|
6378
|
+
phase: "S5"
|
|
6379
|
+
}
|
|
6380
|
+
};
|
|
6220
6381
|
var inviteRoutes = {
|
|
6221
6382
|
"invites.create": {
|
|
6222
6383
|
method: "POST",
|
|
@@ -6326,7 +6487,7 @@ var automationRoutes = {
|
|
|
6326
6487
|
method: "POST",
|
|
6327
6488
|
path: "/v1/automations/:id/pause",
|
|
6328
6489
|
params: IdParams,
|
|
6329
|
-
body:
|
|
6490
|
+
body: z21.object({}).strict(),
|
|
6330
6491
|
response: Automation,
|
|
6331
6492
|
status: 200,
|
|
6332
6493
|
access: "write",
|
|
@@ -6336,7 +6497,7 @@ var automationRoutes = {
|
|
|
6336
6497
|
method: "POST",
|
|
6337
6498
|
path: "/v1/automations/:id/resume",
|
|
6338
6499
|
params: IdParams,
|
|
6339
|
-
body:
|
|
6500
|
+
body: z21.object({}).strict(),
|
|
6340
6501
|
response: Automation,
|
|
6341
6502
|
status: 200,
|
|
6342
6503
|
access: "write",
|
|
@@ -6346,7 +6507,7 @@ var automationRoutes = {
|
|
|
6346
6507
|
method: "POST",
|
|
6347
6508
|
path: "/v1/automations/:id/archive",
|
|
6348
6509
|
params: IdParams,
|
|
6349
|
-
body:
|
|
6510
|
+
body: z21.object({}).strict(),
|
|
6350
6511
|
response: Automation,
|
|
6351
6512
|
status: 200,
|
|
6352
6513
|
access: "write",
|
|
@@ -6462,6 +6623,7 @@ var routes = {
|
|
|
6462
6623
|
...platformRoutes,
|
|
6463
6624
|
...billingRoutes,
|
|
6464
6625
|
...domainBuyingRoutes,
|
|
6626
|
+
...boughtDomainRoutes,
|
|
6465
6627
|
...automationRoutes
|
|
6466
6628
|
};
|
|
6467
6629
|
var TRUSTED_APP_OPERATIONS = {
|
|
@@ -6593,6 +6755,8 @@ export {
|
|
|
6593
6755
|
BEARER_PREFIX,
|
|
6594
6756
|
BILLING_NOT_CONFIGURED_REASON,
|
|
6595
6757
|
BillingAddons,
|
|
6758
|
+
BoughtDomain,
|
|
6759
|
+
BoughtDomainRecordParams,
|
|
6596
6760
|
BoundedAutomationFilter,
|
|
6597
6761
|
BoundedSegmentFilter,
|
|
6598
6762
|
COMPANY_GRANT_ROLES,
|
|
@@ -6627,9 +6791,12 @@ export {
|
|
|
6627
6791
|
DATE_PASSED_ANSWERS,
|
|
6628
6792
|
DEFAULT_INVITE_TTL_DAYS,
|
|
6629
6793
|
DEFAULT_PAGE_LIMIT,
|
|
6794
|
+
DNS_RECORD_TYPES,
|
|
6630
6795
|
DOCUMENT_SCHEMA_VERSIONS,
|
|
6631
6796
|
DOMAIN_BUYING_BLOCKS,
|
|
6632
6797
|
DOMAIN_BUYING_NOT_CONFIGURED_REASON,
|
|
6798
|
+
DOMAIN_LEAVE_STATES,
|
|
6799
|
+
DOMAIN_LEAVE_WAYS,
|
|
6633
6800
|
DOMAIN_ORDER_KINDS,
|
|
6634
6801
|
DOMAIN_ORDER_STATES,
|
|
6635
6802
|
DOMAIN_PRICE_CHANGED_REASON,
|
|
@@ -6637,13 +6804,20 @@ export {
|
|
|
6637
6804
|
DateOnly,
|
|
6638
6805
|
DatePassedAnswer,
|
|
6639
6806
|
DelayStep,
|
|
6807
|
+
DnsRecordType,
|
|
6640
6808
|
DocumentSchemaVersion,
|
|
6641
6809
|
DomainBuyingBlock,
|
|
6810
|
+
DomainLeave,
|
|
6811
|
+
DomainLeaveCreate,
|
|
6812
|
+
DomainLeaveState,
|
|
6813
|
+
DomainLeaveWay,
|
|
6642
6814
|
DomainOffer,
|
|
6643
6815
|
DomainOrder,
|
|
6644
6816
|
DomainOrderCreate,
|
|
6645
6817
|
DomainOrderKind,
|
|
6646
6818
|
DomainOrderState,
|
|
6819
|
+
DomainRecord,
|
|
6820
|
+
DomainRecordInput,
|
|
6647
6821
|
DomainRegistrant,
|
|
6648
6822
|
DomainSearchQuery,
|
|
6649
6823
|
DomainSearchResult,
|
|
@@ -7021,6 +7195,7 @@ export {
|
|
|
7021
7195
|
WorkspaceMove,
|
|
7022
7196
|
WorkspaceSettings,
|
|
7023
7197
|
WorkspaceUpdate,
|
|
7198
|
+
ZoneFile,
|
|
7024
7199
|
acceptsIdempotencyKey,
|
|
7025
7200
|
addInsertion,
|
|
7026
7201
|
addInsertionChoice,
|
|
@@ -7030,6 +7205,7 @@ export {
|
|
|
7030
7205
|
automationFilterFamily,
|
|
7031
7206
|
automationRoutes,
|
|
7032
7207
|
billingRoutes,
|
|
7208
|
+
boughtDomainRoutes,
|
|
7033
7209
|
buildPath,
|
|
7034
7210
|
buildTemplatePatch,
|
|
7035
7211
|
canDeleteMailing,
|