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