@apollo-deploy/signal-schemas 1.0.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/README.md +117 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/definitions/common.d.ts +72 -0
- package/dist/definitions/common.d.ts.map +1 -0
- package/dist/definitions/common.js +95 -0
- package/dist/definitions/common.js.map +1 -0
- package/dist/definitions/deliverability/deliverability.schema.d.ts +98 -0
- package/dist/definitions/deliverability/deliverability.schema.d.ts.map +1 -0
- package/dist/definitions/deliverability/deliverability.schema.js +77 -0
- package/dist/definitions/deliverability/domain.schema.d.ts +23 -0
- package/dist/definitions/deliverability/domain.schema.d.ts.map +1 -0
- package/dist/definitions/deliverability/domain.schema.js +12 -0
- package/dist/definitions/deliverability/domain.schema.js.map +1 -0
- package/dist/definitions/deliverability/index.d.ts +4 -0
- package/dist/definitions/deliverability/index.d.ts.map +1 -0
- package/dist/definitions/deliverability/index.js +4 -0
- package/dist/definitions/deliverability/index.js.map +1 -0
- package/dist/definitions/deliverability/request.schema.d.ts +27 -0
- package/dist/definitions/deliverability/request.schema.d.ts.map +1 -0
- package/dist/definitions/deliverability/request.schema.js +17 -0
- package/dist/definitions/deliverability/request.schema.js.map +1 -0
- package/dist/definitions/deliverability/response.schema.d.ts +72 -0
- package/dist/definitions/deliverability/response.schema.d.ts.map +1 -0
- package/dist/definitions/deliverability/response.schema.js +37 -0
- package/dist/definitions/deliverability/response.schema.js.map +1 -0
- package/dist/definitions/deliverability/schemas.d.ts +91 -0
- package/dist/definitions/deliverability/schemas.d.ts.map +1 -0
- package/dist/definitions/deliverability/schemas.js +67 -0
- package/dist/definitions/domains/domain.schema.d.ts +160 -0
- package/dist/definitions/domains/domain.schema.d.ts.map +1 -0
- package/dist/definitions/domains/domain.schema.js +36 -0
- package/dist/definitions/domains/domain.schema.js.map +1 -0
- package/dist/definitions/domains/domains.schema.d.ts +668 -0
- package/dist/definitions/domains/domains.schema.d.ts.map +1 -0
- package/dist/definitions/domains/domains.schema.js +113 -0
- package/dist/definitions/domains/index.d.ts +4 -0
- package/dist/definitions/domains/index.d.ts.map +1 -0
- package/dist/definitions/domains/index.js +4 -0
- package/dist/definitions/domains/index.js.map +1 -0
- package/dist/definitions/domains/request.schema.d.ts +26 -0
- package/dist/definitions/domains/request.schema.d.ts.map +1 -0
- package/dist/definitions/domains/request.schema.js +21 -0
- package/dist/definitions/domains/request.schema.js.map +1 -0
- package/dist/definitions/domains/response.schema.d.ts +491 -0
- package/dist/definitions/domains/response.schema.d.ts.map +1 -0
- package/dist/definitions/domains/response.schema.js +24 -0
- package/dist/definitions/domains/response.schema.js.map +1 -0
- package/dist/definitions/domains/schemas.d.ts +545 -0
- package/dist/definitions/domains/schemas.d.ts.map +1 -0
- package/dist/definitions/domains/schemas.js +110 -0
- package/dist/definitions/emails/domain.schema.d.ts +20 -0
- package/dist/definitions/emails/domain.schema.d.ts.map +1 -0
- package/dist/definitions/emails/domain.schema.js +11 -0
- package/dist/definitions/emails/domain.schema.js.map +1 -0
- package/dist/definitions/emails/emails.schema.d.ts +230 -0
- package/dist/definitions/emails/emails.schema.d.ts.map +1 -0
- package/dist/definitions/emails/emails.schema.js +176 -0
- package/dist/definitions/emails/index.d.ts +4 -0
- package/dist/definitions/emails/index.d.ts.map +1 -0
- package/dist/definitions/emails/index.js +4 -0
- package/dist/definitions/emails/index.js.map +1 -0
- package/dist/definitions/emails/request.schema.d.ts +96 -0
- package/dist/definitions/emails/request.schema.d.ts.map +1 -0
- package/dist/definitions/emails/request.schema.js +65 -0
- package/dist/definitions/emails/request.schema.js.map +1 -0
- package/dist/definitions/emails/response.schema.d.ts +141 -0
- package/dist/definitions/emails/response.schema.d.ts.map +1 -0
- package/dist/definitions/emails/response.schema.js +54 -0
- package/dist/definitions/emails/response.schema.js.map +1 -0
- package/dist/definitions/emails/schemas.d.ts +284 -0
- package/dist/definitions/emails/schemas.d.ts.map +1 -0
- package/dist/definitions/emails/schemas.js +227 -0
- package/dist/definitions/health/domain.schema.d.ts +11 -0
- package/dist/definitions/health/domain.schema.d.ts.map +1 -0
- package/dist/definitions/health/domain.schema.js +8 -0
- package/dist/definitions/health/domain.schema.js.map +1 -0
- package/dist/definitions/health/health.schema.d.ts +27 -0
- package/dist/definitions/health/health.schema.d.ts.map +1 -0
- package/dist/definitions/health/health.schema.js +23 -0
- package/dist/definitions/health/index.d.ts +3 -0
- package/dist/definitions/health/index.d.ts.map +1 -0
- package/dist/definitions/health/index.js +3 -0
- package/dist/definitions/health/index.js.map +1 -0
- package/dist/definitions/health/request.schema.d.ts +8 -0
- package/dist/definitions/health/request.schema.d.ts.map +1 -0
- package/dist/definitions/health/request.schema.js +8 -0
- package/dist/definitions/health/request.schema.js.map +1 -0
- package/dist/definitions/health/response.schema.d.ts +26 -0
- package/dist/definitions/health/response.schema.d.ts.map +1 -0
- package/dist/definitions/health/response.schema.js +16 -0
- package/dist/definitions/health/response.schema.js.map +1 -0
- package/dist/definitions/health/schemas.d.ts +30 -0
- package/dist/definitions/health/schemas.d.ts.map +1 -0
- package/dist/definitions/health/schemas.js +23 -0
- package/dist/definitions/index.d.ts +25 -0
- package/dist/definitions/index.d.ts.map +1 -0
- package/dist/definitions/index.js +25 -0
- package/dist/definitions/index.js.map +1 -0
- package/dist/definitions/projects/domain.schema.d.ts +42 -0
- package/dist/definitions/projects/domain.schema.d.ts.map +1 -0
- package/dist/definitions/projects/domain.schema.js +46 -0
- package/dist/definitions/projects/domain.schema.js.map +1 -0
- package/dist/definitions/projects/index.d.ts +4 -0
- package/dist/definitions/projects/index.d.ts.map +1 -0
- package/dist/definitions/projects/index.js +4 -0
- package/dist/definitions/projects/index.js.map +1 -0
- package/dist/definitions/projects/projects.schema.d.ts +8 -0
- package/dist/definitions/projects/projects.schema.d.ts.map +1 -0
- package/dist/definitions/projects/projects.schema.js +23 -0
- package/dist/definitions/projects/request.schema.d.ts +41 -0
- package/dist/definitions/projects/request.schema.d.ts.map +1 -0
- package/dist/definitions/projects/request.schema.js +43 -0
- package/dist/definitions/projects/request.schema.js.map +1 -0
- package/dist/definitions/projects/response.schema.d.ts +79 -0
- package/dist/definitions/projects/response.schema.d.ts.map +1 -0
- package/dist/definitions/projects/response.schema.js +43 -0
- package/dist/definitions/projects/response.schema.js.map +1 -0
- package/dist/definitions/projects/schemas.d.ts +114 -0
- package/dist/definitions/projects/schemas.d.ts.map +1 -0
- package/dist/definitions/projects/schemas.js +87 -0
- package/dist/definitions/signal-email/domain.schema.d.ts +135 -0
- package/dist/definitions/signal-email/domain.schema.d.ts.map +1 -0
- package/dist/definitions/signal-email/domain.schema.js +130 -0
- package/dist/definitions/signal-email/domain.schema.js.map +1 -0
- package/dist/definitions/signal-email/index.d.ts +23 -0
- package/dist/definitions/signal-email/index.d.ts.map +1 -0
- package/dist/definitions/signal-email/index.js +26 -0
- package/dist/definitions/signal-email/index.js.map +1 -0
- package/dist/definitions/signal-email/request.schema.d.ts +123 -0
- package/dist/definitions/signal-email/request.schema.d.ts.map +1 -0
- package/dist/definitions/signal-email/request.schema.js +201 -0
- package/dist/definitions/signal-email/request.schema.js.map +1 -0
- package/dist/definitions/signal-email/response.schema.d.ts +73 -0
- package/dist/definitions/signal-email/response.schema.d.ts.map +1 -0
- package/dist/definitions/signal-email/response.schema.js +83 -0
- package/dist/definitions/signal-email/response.schema.js.map +1 -0
- package/dist/definitions/signal-projects/domain.schema.d.ts +227 -0
- package/dist/definitions/signal-projects/domain.schema.d.ts.map +1 -0
- package/dist/definitions/signal-projects/domain.schema.js +230 -0
- package/dist/definitions/signal-projects/domain.schema.js.map +1 -0
- package/dist/definitions/signal-projects/index.d.ts +16 -0
- package/dist/definitions/signal-projects/index.d.ts.map +1 -0
- package/dist/definitions/signal-projects/index.js +16 -0
- package/dist/definitions/signal-projects/index.js.map +1 -0
- package/dist/definitions/signal-projects/request.schema.d.ts +254 -0
- package/dist/definitions/signal-projects/request.schema.d.ts.map +1 -0
- package/dist/definitions/signal-projects/request.schema.js +213 -0
- package/dist/definitions/signal-projects/request.schema.js.map +1 -0
- package/dist/definitions/signal-projects/response.schema.d.ts +615 -0
- package/dist/definitions/signal-projects/response.schema.d.ts.map +1 -0
- package/dist/definitions/signal-projects/response.schema.js +267 -0
- package/dist/definitions/signal-projects/response.schema.js.map +1 -0
- package/dist/definitions/suppressions/domain.schema.d.ts +13 -0
- package/dist/definitions/suppressions/domain.schema.d.ts.map +1 -0
- package/dist/definitions/suppressions/domain.schema.js +8 -0
- package/dist/definitions/suppressions/domain.schema.js.map +1 -0
- package/dist/definitions/suppressions/index.d.ts +4 -0
- package/dist/definitions/suppressions/index.d.ts.map +1 -0
- package/dist/definitions/suppressions/index.js +4 -0
- package/dist/definitions/suppressions/index.js.map +1 -0
- package/dist/definitions/suppressions/request.schema.d.ts +39 -0
- package/dist/definitions/suppressions/request.schema.d.ts.map +1 -0
- package/dist/definitions/suppressions/request.schema.js +27 -0
- package/dist/definitions/suppressions/request.schema.js.map +1 -0
- package/dist/definitions/suppressions/response.schema.d.ts +42 -0
- package/dist/definitions/suppressions/response.schema.d.ts.map +1 -0
- package/dist/definitions/suppressions/response.schema.js +18 -0
- package/dist/definitions/suppressions/response.schema.js.map +1 -0
- package/dist/definitions/suppressions/schemas.d.ts +90 -0
- package/dist/definitions/suppressions/schemas.d.ts.map +1 -0
- package/dist/definitions/suppressions/schemas.js +68 -0
- package/dist/definitions/suppressions/suppressions.schema.d.ts +79 -0
- package/dist/definitions/suppressions/suppressions.schema.d.ts.map +1 -0
- package/dist/definitions/suppressions/suppressions.schema.js +63 -0
- package/dist/definitions/templates/domain.schema.d.ts +11 -0
- package/dist/definitions/templates/domain.schema.d.ts.map +1 -0
- package/dist/definitions/templates/domain.schema.js +14 -0
- package/dist/definitions/templates/domain.schema.js.map +1 -0
- package/dist/definitions/templates/index.d.ts +4 -0
- package/dist/definitions/templates/index.d.ts.map +1 -0
- package/dist/definitions/templates/index.js +4 -0
- package/dist/definitions/templates/index.js.map +1 -0
- package/dist/definitions/templates/request.schema.d.ts +33 -0
- package/dist/definitions/templates/request.schema.d.ts.map +1 -0
- package/dist/definitions/templates/request.schema.js +32 -0
- package/dist/definitions/templates/request.schema.js.map +1 -0
- package/dist/definitions/templates/response.schema.d.ts +91 -0
- package/dist/definitions/templates/response.schema.d.ts.map +1 -0
- package/dist/definitions/templates/response.schema.js +49 -0
- package/dist/definitions/templates/response.schema.js.map +1 -0
- package/dist/definitions/templates/schemas.d.ts +113 -0
- package/dist/definitions/templates/schemas.d.ts.map +1 -0
- package/dist/definitions/templates/schemas.js +80 -0
- package/dist/definitions/usage/domain.schema.d.ts +60 -0
- package/dist/definitions/usage/domain.schema.d.ts.map +1 -0
- package/dist/definitions/usage/domain.schema.js +23 -0
- package/dist/definitions/usage/domain.schema.js.map +1 -0
- package/dist/definitions/usage/index.d.ts +4 -0
- package/dist/definitions/usage/index.d.ts.map +1 -0
- package/dist/definitions/usage/index.js +4 -0
- package/dist/definitions/usage/index.js.map +1 -0
- package/dist/definitions/usage/request.schema.d.ts +12 -0
- package/dist/definitions/usage/request.schema.d.ts.map +1 -0
- package/dist/definitions/usage/request.schema.js +13 -0
- package/dist/definitions/usage/request.schema.js.map +1 -0
- package/dist/definitions/usage/response.schema.d.ts +76 -0
- package/dist/definitions/usage/response.schema.d.ts.map +1 -0
- package/dist/definitions/usage/response.schema.js +22 -0
- package/dist/definitions/usage/response.schema.js.map +1 -0
- package/dist/definitions/usage/schemas.d.ts +156 -0
- package/dist/definitions/usage/schemas.d.ts.map +1 -0
- package/dist/definitions/usage/schemas.js +83 -0
- package/dist/definitions/usage/usage.schema.d.ts +140 -0
- package/dist/definitions/usage/usage.schema.d.ts.map +1 -0
- package/dist/definitions/usage/usage.schema.js +77 -0
- package/dist/definitions/webhooks/domain.schema.d.ts +26 -0
- package/dist/definitions/webhooks/domain.schema.d.ts.map +1 -0
- package/dist/definitions/webhooks/domain.schema.js +14 -0
- package/dist/definitions/webhooks/domain.schema.js.map +1 -0
- package/dist/definitions/webhooks/index.d.ts +4 -0
- package/dist/definitions/webhooks/index.d.ts.map +1 -0
- package/dist/definitions/webhooks/index.js +4 -0
- package/dist/definitions/webhooks/index.js.map +1 -0
- package/dist/definitions/webhooks/request.schema.d.ts +64 -0
- package/dist/definitions/webhooks/request.schema.d.ts.map +1 -0
- package/dist/definitions/webhooks/request.schema.js +32 -0
- package/dist/definitions/webhooks/request.schema.js.map +1 -0
- package/dist/definitions/webhooks/response.schema.d.ts +76 -0
- package/dist/definitions/webhooks/response.schema.d.ts.map +1 -0
- package/dist/definitions/webhooks/response.schema.js +27 -0
- package/dist/definitions/webhooks/response.schema.js.map +1 -0
- package/dist/definitions/webhooks/schemas.d.ts +145 -0
- package/dist/definitions/webhooks/schemas.d.ts.map +1 -0
- package/dist/definitions/webhooks/schemas.js +97 -0
- package/dist/definitions/webhooks/webhooks.schema.d.ts +152 -0
- package/dist/definitions/webhooks/webhooks.schema.d.ts.map +1 -0
- package/dist/definitions/webhooks/webhooks.schema.js +96 -0
- package/dist/generators/generate-schemas.d.ts +10 -0
- package/dist/generators/generate-schemas.d.ts.map +1 -0
- package/dist/generators/generate-schemas.js +119 -0
- package/dist/generators/generate-schemas.js.map +1 -0
- package/dist/generators/index.d.ts +8 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +8 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/register-global-registry.d.ts +14 -0
- package/dist/generators/register-global-registry.d.ts.map +1 -0
- package/dist/generators/register-global-registry.js +516 -0
- package/dist/generators/register-global-registry.js.map +1 -0
- package/dist/generators/zod-to-json-schema.d.ts +64 -0
- package/dist/generators/zod-to-json-schema.d.ts.map +1 -0
- package/dist/generators/zod-to-json-schema.js +300 -0
- package/dist/generators/zod-to-json-schema.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/package.json +103 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apollo Signal — Signal Projects Request Schemas
|
|
3
|
+
*
|
|
4
|
+
* Input validation for the Signal dashboard/management API.
|
|
5
|
+
* Covers: projects, sending domains, suppressions, usage, webhooks,
|
|
6
|
+
* and the dashboard (project-owner) email routes.
|
|
7
|
+
*
|
|
8
|
+
* Subpath: @apollo-deploy/signal-schemas/signal-projects
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
/** Request body for POST /signal/projects. */
|
|
12
|
+
export declare const SignalProjectCreateBodySchema: z.ZodObject<{
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
slug: z.ZodString;
|
|
15
|
+
region: z.ZodOptional<z.ZodString>;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
/** Request body for PATCH /signal/projects/:projectId. */
|
|
18
|
+
export declare const SignalProjectUpdateBodySchema: z.ZodObject<{
|
|
19
|
+
name: z.ZodOptional<z.ZodString>;
|
|
20
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
21
|
+
region: z.ZodOptional<z.ZodString>;
|
|
22
|
+
trackingSettings: z.ZodOptional<z.ZodObject<{
|
|
23
|
+
openTracking: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
24
|
+
clickTracking: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
25
|
+
unsubscribeTracking: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
26
|
+
readEngagement: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
27
|
+
trackingDomain: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodString>>>;
|
|
28
|
+
trackingDomainStatus: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodEnum<{
|
|
29
|
+
pending: "pending";
|
|
30
|
+
verified: "verified";
|
|
31
|
+
failed: "failed";
|
|
32
|
+
}>>>>;
|
|
33
|
+
}, z.core.$strip>>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
/**
|
|
36
|
+
* Request body for POST /signal/projects/:projectId/tracking-domain/verify.
|
|
37
|
+
* Triggers a CNAME verification check for the project's custom tracking domain.
|
|
38
|
+
*/
|
|
39
|
+
export declare const SignalTrackingDomainVerifyBodySchema: z.ZodObject<{}, z.core.$strip>;
|
|
40
|
+
/** Path params for tracking domain routes. */
|
|
41
|
+
export declare const SignalTrackingDomainParamSchema: z.ZodObject<{
|
|
42
|
+
projectId: z.ZodString;
|
|
43
|
+
}, z.core.$strip>;
|
|
44
|
+
/** Query params for GET /signal/projects. */
|
|
45
|
+
export declare const SignalProjectListQuerySchema: z.ZodObject<{
|
|
46
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
47
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
/** Path params for project-scoped routes: /signal/projects/:projectId. */
|
|
50
|
+
export declare const SignalProjectParamSchema: z.ZodObject<{
|
|
51
|
+
projectId: z.ZodString;
|
|
52
|
+
}, z.core.$strip>;
|
|
53
|
+
/** Request body for POST /signal/projects/:projectId/domains. */
|
|
54
|
+
export declare const SignalDomainRegisterBodySchema: z.ZodObject<{
|
|
55
|
+
domain: z.ZodString;
|
|
56
|
+
}, z.core.$strip>;
|
|
57
|
+
/** Query params for GET /signal/projects/:projectId/domains. */
|
|
58
|
+
export declare const SignalDomainListQuerySchema: z.ZodObject<{
|
|
59
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
60
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
/** Path params for domain-scoped routes (projectId + domainId). */
|
|
63
|
+
export declare const SignalDomainParamSchema: z.ZodObject<{
|
|
64
|
+
projectId: z.ZodString;
|
|
65
|
+
domainId: z.ZodString;
|
|
66
|
+
}, z.core.$strip>;
|
|
67
|
+
/** Request body for POST /signal/projects/:projectId/suppressions. */
|
|
68
|
+
export declare const SignalSuppressionAddBodySchema: z.ZodObject<{
|
|
69
|
+
email: z.ZodString;
|
|
70
|
+
reason: z.ZodDefault<z.ZodEnum<{
|
|
71
|
+
bounce: "bounce";
|
|
72
|
+
complaint: "complaint";
|
|
73
|
+
manual: "manual";
|
|
74
|
+
unsubscribe: "unsubscribe";
|
|
75
|
+
}>>;
|
|
76
|
+
}, z.core.$strip>;
|
|
77
|
+
/** Query params for GET /signal/projects/:projectId/suppressions. */
|
|
78
|
+
export declare const SignalSuppressionListQuerySchema: z.ZodObject<{
|
|
79
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
80
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
/** Path params for project-scoped suppression routes. */
|
|
83
|
+
export declare const SignalSuppressionProjectParamSchema: z.ZodObject<{
|
|
84
|
+
projectId: z.ZodString;
|
|
85
|
+
}, z.core.$strip>;
|
|
86
|
+
/** Path params for suppression-scoped routes (projectId + email address). */
|
|
87
|
+
export declare const SignalSuppressionParamSchema: z.ZodObject<{
|
|
88
|
+
projectId: z.ZodString;
|
|
89
|
+
email: z.ZodString;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
/** Query params for GET /signal/projects/:projectId/usage. */
|
|
92
|
+
export declare const SignalUsageQuerySchema: z.ZodObject<{
|
|
93
|
+
since: z.ZodOptional<z.ZodString>;
|
|
94
|
+
until: z.ZodOptional<z.ZodString>;
|
|
95
|
+
}, z.core.$strip>;
|
|
96
|
+
/** Path params for usage routes. */
|
|
97
|
+
export declare const SignalUsageParamSchema: z.ZodObject<{
|
|
98
|
+
projectId: z.ZodString;
|
|
99
|
+
}, z.core.$strip>;
|
|
100
|
+
/** Request body for POST /signal/projects/:projectId/webhooks. */
|
|
101
|
+
export declare const SignalWebhookCreateBodySchema: z.ZodObject<{
|
|
102
|
+
url: z.ZodURL;
|
|
103
|
+
events: z.ZodArray<z.ZodEnum<{
|
|
104
|
+
"email.sent": "email.sent";
|
|
105
|
+
"email.delivered": "email.delivered";
|
|
106
|
+
"email.bounced": "email.bounced";
|
|
107
|
+
"email.complained": "email.complained";
|
|
108
|
+
"email.opened": "email.opened";
|
|
109
|
+
"email.clicked": "email.clicked";
|
|
110
|
+
"email.failed": "email.failed";
|
|
111
|
+
"email.rejected": "email.rejected";
|
|
112
|
+
"email.delivery_delayed": "email.delivery_delayed";
|
|
113
|
+
"email.suppressed": "email.suppressed";
|
|
114
|
+
"webhook.test": "webhook.test";
|
|
115
|
+
}>>;
|
|
116
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
117
|
+
filters: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
118
|
+
field: z.ZodString;
|
|
119
|
+
operator: z.ZodEnum<{
|
|
120
|
+
eq: "eq";
|
|
121
|
+
neq: "neq";
|
|
122
|
+
contains: "contains";
|
|
123
|
+
exists: "exists";
|
|
124
|
+
}>;
|
|
125
|
+
value: z.ZodOptional<z.ZodString>;
|
|
126
|
+
}, z.core.$strip>>>>;
|
|
127
|
+
transformations: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
128
|
+
type: z.ZodLiteral<"rename_field">;
|
|
129
|
+
from: z.ZodString;
|
|
130
|
+
to: z.ZodString;
|
|
131
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
132
|
+
type: z.ZodLiteral<"remove_field">;
|
|
133
|
+
field: z.ZodString;
|
|
134
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
135
|
+
type: z.ZodLiteral<"add_field">;
|
|
136
|
+
field: z.ZodString;
|
|
137
|
+
value: z.ZodString;
|
|
138
|
+
}, z.core.$strip>], "type">>>>;
|
|
139
|
+
}, z.core.$strip>;
|
|
140
|
+
/** Request body for PATCH /signal/projects/:projectId/webhooks/:endpointId. */
|
|
141
|
+
export declare const SignalWebhookUpdateBodySchema: z.ZodObject<{
|
|
142
|
+
url: z.ZodOptional<z.ZodURL>;
|
|
143
|
+
events: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
144
|
+
"email.sent": "email.sent";
|
|
145
|
+
"email.delivered": "email.delivered";
|
|
146
|
+
"email.bounced": "email.bounced";
|
|
147
|
+
"email.complained": "email.complained";
|
|
148
|
+
"email.opened": "email.opened";
|
|
149
|
+
"email.clicked": "email.clicked";
|
|
150
|
+
"email.failed": "email.failed";
|
|
151
|
+
"email.rejected": "email.rejected";
|
|
152
|
+
"email.delivery_delayed": "email.delivery_delayed";
|
|
153
|
+
"email.suppressed": "email.suppressed";
|
|
154
|
+
"webhook.test": "webhook.test";
|
|
155
|
+
}>>>;
|
|
156
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
157
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
158
|
+
filters: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
159
|
+
field: z.ZodString;
|
|
160
|
+
operator: z.ZodEnum<{
|
|
161
|
+
eq: "eq";
|
|
162
|
+
neq: "neq";
|
|
163
|
+
contains: "contains";
|
|
164
|
+
exists: "exists";
|
|
165
|
+
}>;
|
|
166
|
+
value: z.ZodOptional<z.ZodString>;
|
|
167
|
+
}, z.core.$strip>>>>;
|
|
168
|
+
transformations: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
169
|
+
type: z.ZodLiteral<"rename_field">;
|
|
170
|
+
from: z.ZodString;
|
|
171
|
+
to: z.ZodString;
|
|
172
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
173
|
+
type: z.ZodLiteral<"remove_field">;
|
|
174
|
+
field: z.ZodString;
|
|
175
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
176
|
+
type: z.ZodLiteral<"add_field">;
|
|
177
|
+
field: z.ZodString;
|
|
178
|
+
value: z.ZodString;
|
|
179
|
+
}, z.core.$strip>], "type">>>>;
|
|
180
|
+
}, z.core.$strip>;
|
|
181
|
+
/** Query params for GET /signal/projects/:projectId/webhooks. */
|
|
182
|
+
export declare const SignalWebhookListQuerySchema: z.ZodObject<{
|
|
183
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
184
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
185
|
+
}, z.core.$strip>;
|
|
186
|
+
/** Path params for project-scoped webhook routes. */
|
|
187
|
+
export declare const SignalWebhookProjectParamSchema: z.ZodObject<{
|
|
188
|
+
projectId: z.ZodString;
|
|
189
|
+
}, z.core.$strip>;
|
|
190
|
+
/** Path params for webhook endpoint routes (projectId + endpointId). */
|
|
191
|
+
export declare const SignalWebhookParamSchema: z.ZodObject<{
|
|
192
|
+
projectId: z.ZodString;
|
|
193
|
+
endpointId: z.ZodString;
|
|
194
|
+
}, z.core.$strip>;
|
|
195
|
+
/** Path params for webhook delivery routes (projectId + deliveryId). */
|
|
196
|
+
export declare const SignalWebhookDeliveryParamSchema: z.ZodObject<{
|
|
197
|
+
projectId: z.ZodString;
|
|
198
|
+
deliveryId: z.ZodCoercedNumber<unknown>;
|
|
199
|
+
}, z.core.$strip>;
|
|
200
|
+
/** Query params for GET /signal/projects/:projectId/emails. */
|
|
201
|
+
export declare const SignalProjectEmailListQuerySchema: z.ZodObject<{
|
|
202
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
203
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
204
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
205
|
+
failed: "failed";
|
|
206
|
+
queued: "queued";
|
|
207
|
+
sent: "sent";
|
|
208
|
+
delivered: "delivered";
|
|
209
|
+
bounced: "bounced";
|
|
210
|
+
complained: "complained";
|
|
211
|
+
rejected: "rejected";
|
|
212
|
+
suppressed: "suppressed";
|
|
213
|
+
test: "test";
|
|
214
|
+
}>>;
|
|
215
|
+
from: z.ZodOptional<z.ZodString>;
|
|
216
|
+
to: z.ZodOptional<z.ZodString>;
|
|
217
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
218
|
+
since: z.ZodOptional<z.ZodString>;
|
|
219
|
+
until: z.ZodOptional<z.ZodString>;
|
|
220
|
+
}, z.core.$strip>;
|
|
221
|
+
/** Path params for project-scoped email list routes. */
|
|
222
|
+
export declare const SignalProjectEmailProjectParamSchema: z.ZodObject<{
|
|
223
|
+
projectId: z.ZodString;
|
|
224
|
+
}, z.core.$strip>;
|
|
225
|
+
/** Path params for project email detail routes (projectId + emailId). */
|
|
226
|
+
export declare const SignalProjectEmailParamSchema: z.ZodObject<{
|
|
227
|
+
projectId: z.ZodString;
|
|
228
|
+
emailId: z.ZodString;
|
|
229
|
+
}, z.core.$strip>;
|
|
230
|
+
export type SignalProjectCreateBody = z.infer<typeof SignalProjectCreateBodySchema>;
|
|
231
|
+
export type SignalProjectUpdateBody = z.infer<typeof SignalProjectUpdateBodySchema>;
|
|
232
|
+
export type SignalProjectListQuery = z.infer<typeof SignalProjectListQuerySchema>;
|
|
233
|
+
export type SignalProjectParam = z.infer<typeof SignalProjectParamSchema>;
|
|
234
|
+
export type SignalTrackingDomainVerifyBody = z.infer<typeof SignalTrackingDomainVerifyBodySchema>;
|
|
235
|
+
export type SignalTrackingDomainParam = z.infer<typeof SignalTrackingDomainParamSchema>;
|
|
236
|
+
export type SignalDomainRegisterBody = z.infer<typeof SignalDomainRegisterBodySchema>;
|
|
237
|
+
export type SignalDomainListQuery = z.infer<typeof SignalDomainListQuerySchema>;
|
|
238
|
+
export type SignalDomainParam = z.infer<typeof SignalDomainParamSchema>;
|
|
239
|
+
export type SignalSuppressionAddBody = z.infer<typeof SignalSuppressionAddBodySchema>;
|
|
240
|
+
export type SignalSuppressionListQuery = z.infer<typeof SignalSuppressionListQuerySchema>;
|
|
241
|
+
export type SignalSuppressionProjectParam = z.infer<typeof SignalSuppressionProjectParamSchema>;
|
|
242
|
+
export type SignalSuppressionParam = z.infer<typeof SignalSuppressionParamSchema>;
|
|
243
|
+
export type SignalUsageQuery = z.infer<typeof SignalUsageQuerySchema>;
|
|
244
|
+
export type SignalUsageParam = z.infer<typeof SignalUsageParamSchema>;
|
|
245
|
+
export type SignalWebhookCreateBody = z.infer<typeof SignalWebhookCreateBodySchema>;
|
|
246
|
+
export type SignalWebhookUpdateBody = z.infer<typeof SignalWebhookUpdateBodySchema>;
|
|
247
|
+
export type SignalWebhookListQuery = z.infer<typeof SignalWebhookListQuerySchema>;
|
|
248
|
+
export type SignalWebhookProjectParam = z.infer<typeof SignalWebhookProjectParamSchema>;
|
|
249
|
+
export type SignalWebhookParam = z.infer<typeof SignalWebhookParamSchema>;
|
|
250
|
+
export type SignalWebhookDeliveryParam = z.infer<typeof SignalWebhookDeliveryParamSchema>;
|
|
251
|
+
export type SignalProjectEmailListQuery = z.infer<typeof SignalProjectEmailListQuerySchema>;
|
|
252
|
+
export type SignalProjectEmailProjectParam = z.infer<typeof SignalProjectEmailProjectParamSchema>;
|
|
253
|
+
export type SignalProjectEmailParam = z.infer<typeof SignalProjectEmailParamSchema>;
|
|
254
|
+
//# sourceMappingURL=request.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.schema.d.ts","sourceRoot":"","sources":["../../../src/definitions/signal-projects/request.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apollo Signal — Signal Projects Request Schemas
|
|
3
|
+
*
|
|
4
|
+
* Input validation for the Signal dashboard/management API.
|
|
5
|
+
* Covers: projects, sending domains, suppressions, usage, webhooks,
|
|
6
|
+
* and the dashboard (project-owner) email routes.
|
|
7
|
+
*
|
|
8
|
+
* Subpath: @apollo-deploy/signal-schemas/signal-projects
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { UrlSchema } from '../common.js';
|
|
12
|
+
import { SignalSuppressionReasonSchema, SignalWebhookSubscribeEventTypeSchema, SignalWebhookFilterSchema, SignalWebhookTransformationSchema, SignalProjectTrackingSettingsSchema, } from './domain.schema.js';
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Project requests
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
/** Request body for POST /signal/projects. */
|
|
17
|
+
export const SignalProjectCreateBodySchema = z.object({
|
|
18
|
+
name: z.string().min(1).max(255),
|
|
19
|
+
slug: z
|
|
20
|
+
.string()
|
|
21
|
+
.min(1)
|
|
22
|
+
.max(100)
|
|
23
|
+
.regex(/^[a-z0-9-]+$/, 'Slug must be lowercase alphanumeric with hyphens'),
|
|
24
|
+
region: z.string().min(1).optional(),
|
|
25
|
+
});
|
|
26
|
+
/** Request body for PATCH /signal/projects/:projectId. */
|
|
27
|
+
export const SignalProjectUpdateBodySchema = z.object({
|
|
28
|
+
name: z.string().min(1).max(255).optional(),
|
|
29
|
+
slug: z
|
|
30
|
+
.string()
|
|
31
|
+
.min(1)
|
|
32
|
+
.max(100)
|
|
33
|
+
.regex(/^[a-z0-9-]+$/)
|
|
34
|
+
.optional(),
|
|
35
|
+
region: z.string().min(1).optional(),
|
|
36
|
+
/** Update open/click tracking settings for this project. */
|
|
37
|
+
trackingSettings: SignalProjectTrackingSettingsSchema.partial().optional(),
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* Request body for POST /signal/projects/:projectId/tracking-domain/verify.
|
|
41
|
+
* Triggers a CNAME verification check for the project's custom tracking domain.
|
|
42
|
+
*/
|
|
43
|
+
export const SignalTrackingDomainVerifyBodySchema = z.object({});
|
|
44
|
+
/** Path params for tracking domain routes. */
|
|
45
|
+
export const SignalTrackingDomainParamSchema = z.object({
|
|
46
|
+
projectId: z.string().min(1),
|
|
47
|
+
});
|
|
48
|
+
/** Query params for GET /signal/projects. */
|
|
49
|
+
export const SignalProjectListQuerySchema = z.object({
|
|
50
|
+
limit: z.coerce.number().int().min(1).max(100).default(25),
|
|
51
|
+
cursor: z.string().optional(),
|
|
52
|
+
});
|
|
53
|
+
/** Path params for project-scoped routes: /signal/projects/:projectId. */
|
|
54
|
+
export const SignalProjectParamSchema = z.object({
|
|
55
|
+
projectId: z.string().min(1),
|
|
56
|
+
});
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Sending domain requests
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
/** Request body for POST /signal/projects/:projectId/domains. */
|
|
61
|
+
export const SignalDomainRegisterBodySchema = z.object({
|
|
62
|
+
domain: z.string().min(1).max(253),
|
|
63
|
+
});
|
|
64
|
+
/** Query params for GET /signal/projects/:projectId/domains. */
|
|
65
|
+
export const SignalDomainListQuerySchema = z.object({
|
|
66
|
+
limit: z.coerce.number().int().min(1).max(100).default(25),
|
|
67
|
+
cursor: z.string().optional(),
|
|
68
|
+
});
|
|
69
|
+
/** Path params for domain-scoped routes (projectId + domainId). */
|
|
70
|
+
export const SignalDomainParamSchema = z.object({
|
|
71
|
+
projectId: z.string().min(1),
|
|
72
|
+
domainId: z.string().min(1),
|
|
73
|
+
});
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
// Suppression requests
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
/** Request body for POST /signal/projects/:projectId/suppressions. */
|
|
78
|
+
export const SignalSuppressionAddBodySchema = z.object({
|
|
79
|
+
email: z.string().email(),
|
|
80
|
+
reason: SignalSuppressionReasonSchema.default('manual'),
|
|
81
|
+
});
|
|
82
|
+
/** Query params for GET /signal/projects/:projectId/suppressions. */
|
|
83
|
+
export const SignalSuppressionListQuerySchema = z.object({
|
|
84
|
+
limit: z.coerce.number().int().min(1).max(100).default(25),
|
|
85
|
+
cursor: z.string().optional(),
|
|
86
|
+
});
|
|
87
|
+
/** Path params for project-scoped suppression routes. */
|
|
88
|
+
export const SignalSuppressionProjectParamSchema = z.object({
|
|
89
|
+
projectId: z.string().min(1),
|
|
90
|
+
});
|
|
91
|
+
/** Path params for suppression-scoped routes (projectId + email address). */
|
|
92
|
+
export const SignalSuppressionParamSchema = z.object({
|
|
93
|
+
projectId: z.string().min(1),
|
|
94
|
+
email: z.string().min(1),
|
|
95
|
+
});
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// Usage requests
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
/** Query params for GET /signal/projects/:projectId/usage. */
|
|
100
|
+
export const SignalUsageQuerySchema = z.object({
|
|
101
|
+
since: z.string().datetime({ offset: true }).optional(),
|
|
102
|
+
until: z.string().datetime({ offset: true }).optional(),
|
|
103
|
+
});
|
|
104
|
+
/** Path params for usage routes. */
|
|
105
|
+
export const SignalUsageParamSchema = z.object({
|
|
106
|
+
projectId: z.string().min(1),
|
|
107
|
+
});
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
// Webhook endpoint requests
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
/** Request body for POST /signal/projects/:projectId/webhooks. */
|
|
112
|
+
export const SignalWebhookCreateBodySchema = z.object({
|
|
113
|
+
url: UrlSchema,
|
|
114
|
+
events: z.array(SignalWebhookSubscribeEventTypeSchema).min(1),
|
|
115
|
+
secret: z.string().min(16).optional(),
|
|
116
|
+
/** Per-endpoint payload filters (AND logic). Up to 20 conditions. */
|
|
117
|
+
filters: z.array(SignalWebhookFilterSchema).max(20).nullable().optional(),
|
|
118
|
+
/** Per-endpoint payload transformations applied after filters pass. Up to 20 steps. */
|
|
119
|
+
transformations: z.array(SignalWebhookTransformationSchema).max(20).nullable().optional(),
|
|
120
|
+
});
|
|
121
|
+
/** Request body for PATCH /signal/projects/:projectId/webhooks/:endpointId. */
|
|
122
|
+
export const SignalWebhookUpdateBodySchema = z.object({
|
|
123
|
+
url: UrlSchema.optional(),
|
|
124
|
+
events: z.array(SignalWebhookSubscribeEventTypeSchema).min(1).optional(),
|
|
125
|
+
secret: z.string().min(16).optional(),
|
|
126
|
+
enabled: z.boolean().optional(),
|
|
127
|
+
/** Replace the full filters list (null clears all filters). */
|
|
128
|
+
filters: z.array(SignalWebhookFilterSchema).max(20).nullable().optional(),
|
|
129
|
+
/** Replace the full transformations list (null clears all transformations). */
|
|
130
|
+
transformations: z.array(SignalWebhookTransformationSchema).max(20).nullable().optional(),
|
|
131
|
+
});
|
|
132
|
+
/** Query params for GET /signal/projects/:projectId/webhooks. */
|
|
133
|
+
export const SignalWebhookListQuerySchema = z.object({
|
|
134
|
+
limit: z.coerce.number().int().min(1).max(100).default(25),
|
|
135
|
+
cursor: z.string().optional(),
|
|
136
|
+
});
|
|
137
|
+
/** Path params for project-scoped webhook routes. */
|
|
138
|
+
export const SignalWebhookProjectParamSchema = z.object({
|
|
139
|
+
projectId: z.string().min(1),
|
|
140
|
+
});
|
|
141
|
+
/** Path params for webhook endpoint routes (projectId + endpointId). */
|
|
142
|
+
export const SignalWebhookParamSchema = z.object({
|
|
143
|
+
projectId: z.string().min(1),
|
|
144
|
+
endpointId: z.string().min(1),
|
|
145
|
+
});
|
|
146
|
+
/** Path params for webhook delivery routes (projectId + deliveryId). */
|
|
147
|
+
export const SignalWebhookDeliveryParamSchema = z.object({
|
|
148
|
+
projectId: z.string().min(1),
|
|
149
|
+
deliveryId: z.coerce.number().int().min(1),
|
|
150
|
+
});
|
|
151
|
+
// ---------------------------------------------------------------------------
|
|
152
|
+
// Email dashboard requests
|
|
153
|
+
// ---------------------------------------------------------------------------
|
|
154
|
+
/** Query params for GET /signal/projects/:projectId/emails. */
|
|
155
|
+
export const SignalProjectEmailListQuerySchema = z.object({
|
|
156
|
+
limit: z.coerce.number().int().min(1).max(100).default(25),
|
|
157
|
+
cursor: z.string().optional(),
|
|
158
|
+
status: z
|
|
159
|
+
.enum([
|
|
160
|
+
'queued',
|
|
161
|
+
'sent',
|
|
162
|
+
'delivered',
|
|
163
|
+
'bounced',
|
|
164
|
+
'complained',
|
|
165
|
+
'failed',
|
|
166
|
+
'rejected',
|
|
167
|
+
'suppressed',
|
|
168
|
+
'test',
|
|
169
|
+
])
|
|
170
|
+
.optional(),
|
|
171
|
+
from: z.string().optional(),
|
|
172
|
+
to: z.string().optional(),
|
|
173
|
+
tag: z.string().optional(),
|
|
174
|
+
since: z.string().datetime({ offset: true }).optional(),
|
|
175
|
+
until: z.string().datetime({ offset: true }).optional(),
|
|
176
|
+
});
|
|
177
|
+
/** Path params for project-scoped email list routes. */
|
|
178
|
+
export const SignalProjectEmailProjectParamSchema = z.object({
|
|
179
|
+
projectId: z.string().min(1),
|
|
180
|
+
});
|
|
181
|
+
/** Path params for project email detail routes (projectId + emailId). */
|
|
182
|
+
export const SignalProjectEmailParamSchema = z.object({
|
|
183
|
+
projectId: z.string().min(1),
|
|
184
|
+
emailId: z.string().min(1),
|
|
185
|
+
});
|
|
186
|
+
// ---------------------------------------------------------------------------
|
|
187
|
+
// Schema registry — promotes types to OpenAPI components/schemas
|
|
188
|
+
// ---------------------------------------------------------------------------
|
|
189
|
+
z.globalRegistry.add(SignalProjectCreateBodySchema, { id: 'SignalProjectCreateBody' });
|
|
190
|
+
z.globalRegistry.add(SignalProjectUpdateBodySchema, { id: 'SignalProjectUpdateBody' });
|
|
191
|
+
z.globalRegistry.add(SignalProjectListQuerySchema, { id: 'SignalProjectListQuery' });
|
|
192
|
+
z.globalRegistry.add(SignalProjectParamSchema, { id: 'SignalProjectParam' });
|
|
193
|
+
z.globalRegistry.add(SignalTrackingDomainVerifyBodySchema, { id: 'SignalTrackingDomainVerifyBody' });
|
|
194
|
+
z.globalRegistry.add(SignalTrackingDomainParamSchema, { id: 'SignalTrackingDomainParam' });
|
|
195
|
+
z.globalRegistry.add(SignalDomainRegisterBodySchema, { id: 'SignalDomainRegisterBody' });
|
|
196
|
+
z.globalRegistry.add(SignalDomainListQuerySchema, { id: 'SignalDomainListQuery' });
|
|
197
|
+
z.globalRegistry.add(SignalDomainParamSchema, { id: 'SignalDomainParam' });
|
|
198
|
+
z.globalRegistry.add(SignalSuppressionAddBodySchema, { id: 'SignalSuppressionAddBody' });
|
|
199
|
+
z.globalRegistry.add(SignalSuppressionListQuerySchema, { id: 'SignalSuppressionListQuery' });
|
|
200
|
+
z.globalRegistry.add(SignalSuppressionProjectParamSchema, { id: 'SignalSuppressionProjectParam' });
|
|
201
|
+
z.globalRegistry.add(SignalSuppressionParamSchema, { id: 'SignalSuppressionParam' });
|
|
202
|
+
z.globalRegistry.add(SignalUsageQuerySchema, { id: 'SignalUsageQuery' });
|
|
203
|
+
z.globalRegistry.add(SignalUsageParamSchema, { id: 'SignalUsageParam' });
|
|
204
|
+
z.globalRegistry.add(SignalWebhookCreateBodySchema, { id: 'SignalWebhookCreateBody' });
|
|
205
|
+
z.globalRegistry.add(SignalWebhookUpdateBodySchema, { id: 'SignalWebhookUpdateBody' });
|
|
206
|
+
z.globalRegistry.add(SignalWebhookListQuerySchema, { id: 'SignalWebhookListQuery' });
|
|
207
|
+
z.globalRegistry.add(SignalWebhookProjectParamSchema, { id: 'SignalWebhookProjectParam' });
|
|
208
|
+
z.globalRegistry.add(SignalWebhookParamSchema, { id: 'SignalWebhookParam' });
|
|
209
|
+
z.globalRegistry.add(SignalWebhookDeliveryParamSchema, { id: 'SignalWebhookDeliveryParam' });
|
|
210
|
+
z.globalRegistry.add(SignalProjectEmailListQuerySchema, { id: 'SignalProjectEmailListQuery' });
|
|
211
|
+
z.globalRegistry.add(SignalProjectEmailProjectParamSchema, { id: 'SignalProjectEmailProjectParam' });
|
|
212
|
+
z.globalRegistry.add(SignalProjectEmailParamSchema, { id: 'SignalProjectEmailParam' });
|
|
213
|
+
//# sourceMappingURL=request.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.schema.js","sourceRoot":"","sources":["../../../src/definitions/signal-projects/request.schema.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Apollo Signal — Signal Projects Request Schemas\n *\n * Input validation for the Signal dashboard/management API.\n * Covers: projects, sending domains, suppressions, usage, webhooks,\n * and the dashboard (project-owner) email routes.\n *\n * Subpath: @apollo-deploy/signal-schemas/signal-projects\n */\n\nimport { z } from 'zod';\n\nimport { UrlSchema } from '../common.js';\n\nimport {\n SignalSuppressionReasonSchema,\n SignalWebhookSubscribeEventTypeSchema,\n SignalWebhookFilterSchema,\n SignalWebhookTransformationSchema,\n SignalProjectTrackingSettingsSchema,\n} from './domain.schema.js';\n\n// ---------------------------------------------------------------------------\n// Project requests\n// ---------------------------------------------------------------------------\n\n/** Request body for POST /signal/projects. */\nexport const SignalProjectCreateBodySchema = z.object({\n name: z.string().min(1).max(255),\n slug: z\n .string()\n .min(1)\n .max(100)\n .regex(/^[a-z0-9-]+$/, 'Slug must be lowercase alphanumeric with hyphens'),\n region: z.string().min(1).optional(),\n});\n\n/** Request body for PATCH /signal/projects/:projectId. */\nexport const SignalProjectUpdateBodySchema = z.object({\n name: z.string().min(1).max(255).optional(),\n slug: z\n .string()\n .min(1)\n .max(100)\n .regex(/^[a-z0-9-]+$/)\n .optional(),\n region: z.string().min(1).optional(),\n /** Update open/click tracking settings for this project. */\n trackingSettings: SignalProjectTrackingSettingsSchema.partial().optional(),\n});\n\n/**\n * Request body for POST /signal/projects/:projectId/tracking-domain/verify.\n * Triggers a CNAME verification check for the project's custom tracking domain.\n */\nexport const SignalTrackingDomainVerifyBodySchema = z.object({});\n\n/** Path params for tracking domain routes. */\nexport const SignalTrackingDomainParamSchema = z.object({\n projectId: z.string().min(1),\n});\n\n/** Query params for GET /signal/projects. */\nexport const SignalProjectListQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(25),\n cursor: z.string().optional(),\n});\n\n/** Path params for project-scoped routes: /signal/projects/:projectId. */\nexport const SignalProjectParamSchema = z.object({\n projectId: z.string().min(1),\n});\n\n// ---------------------------------------------------------------------------\n// Sending domain requests\n// ---------------------------------------------------------------------------\n\n/** Request body for POST /signal/projects/:projectId/domains. */\nexport const SignalDomainRegisterBodySchema = z.object({\n domain: z.string().min(1).max(253),\n});\n\n/** Query params for GET /signal/projects/:projectId/domains. */\nexport const SignalDomainListQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(25),\n cursor: z.string().optional(),\n});\n\n/** Path params for domain-scoped routes (projectId + domainId). */\nexport const SignalDomainParamSchema = z.object({\n projectId: z.string().min(1),\n domainId: z.string().min(1),\n});\n\n// ---------------------------------------------------------------------------\n// Suppression requests\n// ---------------------------------------------------------------------------\n\n/** Request body for POST /signal/projects/:projectId/suppressions. */\nexport const SignalSuppressionAddBodySchema = z.object({\n email: z.string().email(),\n reason: SignalSuppressionReasonSchema.default('manual'),\n});\n\n/** Query params for GET /signal/projects/:projectId/suppressions. */\nexport const SignalSuppressionListQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(25),\n cursor: z.string().optional(),\n});\n\n/** Path params for project-scoped suppression routes. */\nexport const SignalSuppressionProjectParamSchema = z.object({\n projectId: z.string().min(1),\n});\n\n/** Path params for suppression-scoped routes (projectId + email address). */\nexport const SignalSuppressionParamSchema = z.object({\n projectId: z.string().min(1),\n email: z.string().min(1),\n});\n\n// ---------------------------------------------------------------------------\n// Usage requests\n// ---------------------------------------------------------------------------\n\n/** Query params for GET /signal/projects/:projectId/usage. */\nexport const SignalUsageQuerySchema = z.object({\n since: z.string().datetime({ offset: true }).optional(),\n until: z.string().datetime({ offset: true }).optional(),\n});\n\n/** Path params for usage routes. */\nexport const SignalUsageParamSchema = z.object({\n projectId: z.string().min(1),\n});\n\n// ---------------------------------------------------------------------------\n// Webhook endpoint requests\n// ---------------------------------------------------------------------------\n\n/** Request body for POST /signal/projects/:projectId/webhooks. */\nexport const SignalWebhookCreateBodySchema = z.object({\n url: UrlSchema,\n events: z.array(SignalWebhookSubscribeEventTypeSchema).min(1),\n secret: z.string().min(16).optional(),\n /** Per-endpoint payload filters (AND logic). Up to 20 conditions. */\n filters: z.array(SignalWebhookFilterSchema).max(20).nullable().optional(),\n /** Per-endpoint payload transformations applied after filters pass. Up to 20 steps. */\n transformations: z.array(SignalWebhookTransformationSchema).max(20).nullable().optional(),\n});\n\n/** Request body for PATCH /signal/projects/:projectId/webhooks/:endpointId. */\nexport const SignalWebhookUpdateBodySchema = z.object({\n url: UrlSchema.optional(),\n events: z.array(SignalWebhookSubscribeEventTypeSchema).min(1).optional(),\n secret: z.string().min(16).optional(),\n enabled: z.boolean().optional(),\n /** Replace the full filters list (null clears all filters). */\n filters: z.array(SignalWebhookFilterSchema).max(20).nullable().optional(),\n /** Replace the full transformations list (null clears all transformations). */\n transformations: z.array(SignalWebhookTransformationSchema).max(20).nullable().optional(),\n});\n\n/** Query params for GET /signal/projects/:projectId/webhooks. */\nexport const SignalWebhookListQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(25),\n cursor: z.string().optional(),\n});\n\n/** Path params for project-scoped webhook routes. */\nexport const SignalWebhookProjectParamSchema = z.object({\n projectId: z.string().min(1),\n});\n\n/** Path params for webhook endpoint routes (projectId + endpointId). */\nexport const SignalWebhookParamSchema = z.object({\n projectId: z.string().min(1),\n endpointId: z.string().min(1),\n});\n\n/** Path params for webhook delivery routes (projectId + deliveryId). */\nexport const SignalWebhookDeliveryParamSchema = z.object({\n projectId: z.string().min(1),\n deliveryId: z.coerce.number().int().min(1),\n});\n\n// ---------------------------------------------------------------------------\n// Email dashboard requests\n// ---------------------------------------------------------------------------\n\n/** Query params for GET /signal/projects/:projectId/emails. */\nexport const SignalProjectEmailListQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(25),\n cursor: z.string().optional(),\n status: z\n .enum([\n 'queued',\n 'sent',\n 'delivered',\n 'bounced',\n 'complained',\n 'failed',\n 'rejected',\n 'suppressed',\n 'test',\n ])\n .optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n tag: z.string().optional(),\n since: z.string().datetime({ offset: true }).optional(),\n until: z.string().datetime({ offset: true }).optional(),\n});\n\n/** Path params for project-scoped email list routes. */\nexport const SignalProjectEmailProjectParamSchema = z.object({\n projectId: z.string().min(1),\n});\n\n/** Path params for project email detail routes (projectId + emailId). */\nexport const SignalProjectEmailParamSchema = z.object({\n projectId: z.string().min(1),\n emailId: z.string().min(1),\n});\n\n// ---------------------------------------------------------------------------\n// Inferred TypeScript types\n// ---------------------------------------------------------------------------\n\nexport type SignalProjectCreateBody = z.infer<typeof SignalProjectCreateBodySchema>;\nexport type SignalProjectUpdateBody = z.infer<typeof SignalProjectUpdateBodySchema>;\nexport type SignalProjectListQuery = z.infer<typeof SignalProjectListQuerySchema>;\nexport type SignalProjectParam = z.infer<typeof SignalProjectParamSchema>;\nexport type SignalTrackingDomainVerifyBody = z.infer<typeof SignalTrackingDomainVerifyBodySchema>;\nexport type SignalTrackingDomainParam = z.infer<typeof SignalTrackingDomainParamSchema>;\nexport type SignalDomainRegisterBody = z.infer<typeof SignalDomainRegisterBodySchema>;\nexport type SignalDomainListQuery = z.infer<typeof SignalDomainListQuerySchema>;\nexport type SignalDomainParam = z.infer<typeof SignalDomainParamSchema>;\nexport type SignalSuppressionAddBody = z.infer<typeof SignalSuppressionAddBodySchema>;\nexport type SignalSuppressionListQuery = z.infer<typeof SignalSuppressionListQuerySchema>;\nexport type SignalSuppressionProjectParam = z.infer<typeof SignalSuppressionProjectParamSchema>;\nexport type SignalSuppressionParam = z.infer<typeof SignalSuppressionParamSchema>;\nexport type SignalUsageQuery = z.infer<typeof SignalUsageQuerySchema>;\nexport type SignalUsageParam = z.infer<typeof SignalUsageParamSchema>;\nexport type SignalWebhookCreateBody = z.infer<typeof SignalWebhookCreateBodySchema>;\nexport type SignalWebhookUpdateBody = z.infer<typeof SignalWebhookUpdateBodySchema>;\nexport type SignalWebhookListQuery = z.infer<typeof SignalWebhookListQuerySchema>;\nexport type SignalWebhookProjectParam = z.infer<typeof SignalWebhookProjectParamSchema>;\nexport type SignalWebhookParam = z.infer<typeof SignalWebhookParamSchema>;\nexport type SignalWebhookDeliveryParam = z.infer<typeof SignalWebhookDeliveryParamSchema>;\nexport type SignalProjectEmailListQuery = z.infer<typeof SignalProjectEmailListQuerySchema>;\nexport type SignalProjectEmailProjectParam = z.infer<typeof SignalProjectEmailProjectParamSchema>;\nexport type SignalProjectEmailParam = z.infer<typeof SignalProjectEmailParamSchema>;\n\n// ---------------------------------------------------------------------------\n// Schema registry — promotes types to OpenAPI components/schemas\n// ---------------------------------------------------------------------------\n\nz.globalRegistry.add(SignalProjectCreateBodySchema, { id: 'SignalProjectCreateBody' });\nz.globalRegistry.add(SignalProjectUpdateBodySchema, { id: 'SignalProjectUpdateBody' });\nz.globalRegistry.add(SignalProjectListQuerySchema, { id: 'SignalProjectListQuery' });\nz.globalRegistry.add(SignalProjectParamSchema, { id: 'SignalProjectParam' });\nz.globalRegistry.add(SignalTrackingDomainVerifyBodySchema, { id: 'SignalTrackingDomainVerifyBody' });\nz.globalRegistry.add(SignalTrackingDomainParamSchema, { id: 'SignalTrackingDomainParam' });\nz.globalRegistry.add(SignalDomainRegisterBodySchema, { id: 'SignalDomainRegisterBody' });\nz.globalRegistry.add(SignalDomainListQuerySchema, { id: 'SignalDomainListQuery' });\nz.globalRegistry.add(SignalDomainParamSchema, { id: 'SignalDomainParam' });\nz.globalRegistry.add(SignalSuppressionAddBodySchema, { id: 'SignalSuppressionAddBody' });\nz.globalRegistry.add(SignalSuppressionListQuerySchema, { id: 'SignalSuppressionListQuery' });\nz.globalRegistry.add(SignalSuppressionProjectParamSchema, { id: 'SignalSuppressionProjectParam' });\nz.globalRegistry.add(SignalSuppressionParamSchema, { id: 'SignalSuppressionParam' });\nz.globalRegistry.add(SignalUsageQuerySchema, { id: 'SignalUsageQuery' });\nz.globalRegistry.add(SignalUsageParamSchema, { id: 'SignalUsageParam' });\nz.globalRegistry.add(SignalWebhookCreateBodySchema, { id: 'SignalWebhookCreateBody' });\nz.globalRegistry.add(SignalWebhookUpdateBodySchema, { id: 'SignalWebhookUpdateBody' });\nz.globalRegistry.add(SignalWebhookListQuerySchema, { id: 'SignalWebhookListQuery' });\nz.globalRegistry.add(SignalWebhookProjectParamSchema, { id: 'SignalWebhookProjectParam' });\nz.globalRegistry.add(SignalWebhookParamSchema, { id: 'SignalWebhookParam' });\nz.globalRegistry.add(SignalWebhookDeliveryParamSchema, { id: 'SignalWebhookDeliveryParam' });\nz.globalRegistry.add(SignalProjectEmailListQuerySchema, { id: 'SignalProjectEmailListQuery' });\nz.globalRegistry.add(SignalProjectEmailProjectParamSchema, { id: 'SignalProjectEmailProjectParam' });\nz.globalRegistry.add(SignalProjectEmailParamSchema, { id: 'SignalProjectEmailParam' });\n"]}
|