@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,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apollo Signal ā Internal webhook schemas.
|
|
3
|
+
*
|
|
4
|
+
* Zod schemas for webhook endpoint create/update and webhook response.
|
|
5
|
+
* Internal only ā MUST NOT be exported to shared packages.
|
|
6
|
+
*
|
|
7
|
+
* Design §5.7 ; Requirements §8
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
export declare const WebhookProjectParamSchema: z.ZodObject<{
|
|
11
|
+
projectId: z.ZodString;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export declare const CreateWebhookBodySchema: z.ZodObject<{
|
|
14
|
+
url: z.ZodString;
|
|
15
|
+
events: z.ZodArray<z.ZodEnum<{
|
|
16
|
+
"email.sent": "email.sent";
|
|
17
|
+
"email.delivered": "email.delivered";
|
|
18
|
+
"email.bounced": "email.bounced";
|
|
19
|
+
"email.complained": "email.complained";
|
|
20
|
+
"email.opened": "email.opened";
|
|
21
|
+
"email.clicked": "email.clicked";
|
|
22
|
+
"email.failed": "email.failed";
|
|
23
|
+
"email.rejected": "email.rejected";
|
|
24
|
+
"email.delivery_delayed": "email.delivery_delayed";
|
|
25
|
+
"email.suppressed": "email.suppressed";
|
|
26
|
+
"webhook.test": "webhook.test";
|
|
27
|
+
}>>;
|
|
28
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export declare const UpdateWebhookBodySchema: z.ZodObject<{
|
|
31
|
+
url: z.ZodOptional<z.ZodString>;
|
|
32
|
+
events: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
33
|
+
"email.sent": "email.sent";
|
|
34
|
+
"email.delivered": "email.delivered";
|
|
35
|
+
"email.bounced": "email.bounced";
|
|
36
|
+
"email.complained": "email.complained";
|
|
37
|
+
"email.opened": "email.opened";
|
|
38
|
+
"email.clicked": "email.clicked";
|
|
39
|
+
"email.failed": "email.failed";
|
|
40
|
+
"email.rejected": "email.rejected";
|
|
41
|
+
"email.delivery_delayed": "email.delivery_delayed";
|
|
42
|
+
"email.suppressed": "email.suppressed";
|
|
43
|
+
"webhook.test": "webhook.test";
|
|
44
|
+
}>>>;
|
|
45
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
46
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
export declare const WebhookIdParamSchema: z.ZodObject<{
|
|
49
|
+
projectId: z.ZodString;
|
|
50
|
+
webhookId: z.ZodString;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
/**
|
|
53
|
+
* Canonical webhook endpoint params ā uses `endpointId` field name per T-7.1.
|
|
54
|
+
* Matches the domain model's `SignalWebhookEndpoint.id` field.
|
|
55
|
+
*/
|
|
56
|
+
export declare const WebhookParamsSchema: z.ZodObject<{
|
|
57
|
+
projectId: z.ZodString;
|
|
58
|
+
endpointId: z.ZodString;
|
|
59
|
+
}, z.core.$strip>;
|
|
60
|
+
export declare const WebhookDeliveryIdParamSchema: z.ZodObject<{
|
|
61
|
+
projectId: z.ZodString;
|
|
62
|
+
deliveryId: z.ZodCoercedNumber<unknown>;
|
|
63
|
+
}, z.core.$strip>;
|
|
64
|
+
export declare const ListWebhooksQuerySchema: z.ZodObject<{
|
|
65
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
66
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
67
|
+
}, z.core.$strip>;
|
|
68
|
+
export declare const WebhookResponseSchema: z.ZodObject<{
|
|
69
|
+
id: z.ZodString;
|
|
70
|
+
projectId: z.ZodString;
|
|
71
|
+
organizationId: z.ZodString;
|
|
72
|
+
url: z.ZodString;
|
|
73
|
+
events: z.ZodArray<z.ZodEnum<{
|
|
74
|
+
"email.sent": "email.sent";
|
|
75
|
+
"email.delivered": "email.delivered";
|
|
76
|
+
"email.bounced": "email.bounced";
|
|
77
|
+
"email.complained": "email.complained";
|
|
78
|
+
"email.opened": "email.opened";
|
|
79
|
+
"email.clicked": "email.clicked";
|
|
80
|
+
"email.failed": "email.failed";
|
|
81
|
+
"email.rejected": "email.rejected";
|
|
82
|
+
"email.delivery_delayed": "email.delivery_delayed";
|
|
83
|
+
"email.suppressed": "email.suppressed";
|
|
84
|
+
"webhook.test": "webhook.test";
|
|
85
|
+
}>>;
|
|
86
|
+
enabled: z.ZodBoolean;
|
|
87
|
+
createdAt: z.ZodString;
|
|
88
|
+
updatedAt: z.ZodString;
|
|
89
|
+
deletedAt: z.ZodNullable<z.ZodString>;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
export declare const WebhookListResponseSchema: z.ZodObject<{
|
|
92
|
+
data: z.ZodArray<z.ZodObject<{
|
|
93
|
+
id: z.ZodString;
|
|
94
|
+
projectId: z.ZodString;
|
|
95
|
+
organizationId: z.ZodString;
|
|
96
|
+
url: z.ZodString;
|
|
97
|
+
events: z.ZodArray<z.ZodEnum<{
|
|
98
|
+
"email.sent": "email.sent";
|
|
99
|
+
"email.delivered": "email.delivered";
|
|
100
|
+
"email.bounced": "email.bounced";
|
|
101
|
+
"email.complained": "email.complained";
|
|
102
|
+
"email.opened": "email.opened";
|
|
103
|
+
"email.clicked": "email.clicked";
|
|
104
|
+
"email.failed": "email.failed";
|
|
105
|
+
"email.rejected": "email.rejected";
|
|
106
|
+
"email.delivery_delayed": "email.delivery_delayed";
|
|
107
|
+
"email.suppressed": "email.suppressed";
|
|
108
|
+
"webhook.test": "webhook.test";
|
|
109
|
+
}>>;
|
|
110
|
+
enabled: z.ZodBoolean;
|
|
111
|
+
createdAt: z.ZodString;
|
|
112
|
+
updatedAt: z.ZodString;
|
|
113
|
+
deletedAt: z.ZodNullable<z.ZodString>;
|
|
114
|
+
}, z.core.$strip>>;
|
|
115
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
116
|
+
}, z.core.$strip>;
|
|
117
|
+
export declare const WebhookDeliveryResponseSchema: z.ZodObject<{
|
|
118
|
+
id: z.ZodString;
|
|
119
|
+
projectId: z.ZodString;
|
|
120
|
+
webhookEndpointId: z.ZodString;
|
|
121
|
+
eventType: z.ZodString;
|
|
122
|
+
status: z.ZodEnum<{
|
|
123
|
+
success: "success";
|
|
124
|
+
pending: "pending";
|
|
125
|
+
failed: "failed";
|
|
126
|
+
}>;
|
|
127
|
+
attemptCount: z.ZodNumber;
|
|
128
|
+
lastStatusCode: z.ZodNullable<z.ZodNumber>;
|
|
129
|
+
lastError: z.ZodNullable<z.ZodString>;
|
|
130
|
+
responseBodySnippet: z.ZodNullable<z.ZodString>;
|
|
131
|
+
nextAttemptAt: z.ZodNullable<z.ZodString>;
|
|
132
|
+
createdAt: z.ZodString;
|
|
133
|
+
updatedAt: z.ZodString;
|
|
134
|
+
}, z.core.$strip>;
|
|
135
|
+
export type WebhookProjectParam = z.infer<typeof WebhookProjectParamSchema>;
|
|
136
|
+
export type CreateWebhookBody = z.infer<typeof CreateWebhookBodySchema>;
|
|
137
|
+
export type UpdateWebhookBody = z.infer<typeof UpdateWebhookBodySchema>;
|
|
138
|
+
export type WebhookIdParam = z.infer<typeof WebhookIdParamSchema>;
|
|
139
|
+
export type WebhookParams = z.infer<typeof WebhookParamsSchema>;
|
|
140
|
+
export type WebhookDeliveryIdParam = z.infer<typeof WebhookDeliveryIdParamSchema>;
|
|
141
|
+
export type ListWebhooksQuery = z.infer<typeof ListWebhooksQuerySchema>;
|
|
142
|
+
export type WebhookResponse = z.infer<typeof WebhookResponseSchema>;
|
|
143
|
+
export type WebhookListResponse = z.infer<typeof WebhookListResponseSchema>;
|
|
144
|
+
export type WebhookDeliveryResponse = z.infer<typeof WebhookDeliveryResponseSchema>;
|
|
145
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/definitions/webhooks/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;iBAIlC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;iBAGvC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAMH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;iBAUhC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;iBAGpC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAaxC,CAAC;AAMH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Apollo Signal ā Internal webhook schemas.
|
|
4
|
+
*
|
|
5
|
+
* Zod schemas for webhook endpoint create/update and webhook response.
|
|
6
|
+
* Internal only ā MUST NOT be exported to shared packages.
|
|
7
|
+
*
|
|
8
|
+
* Design §5.7 ; Requirements §8
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.WebhookDeliveryResponseSchema = exports.WebhookListResponseSchema = exports.WebhookResponseSchema = exports.ListWebhooksQuerySchema = exports.WebhookDeliveryIdParamSchema = exports.WebhookParamsSchema = exports.WebhookIdParamSchema = exports.UpdateWebhookBodySchema = exports.CreateWebhookBodySchema = exports.WebhookProjectParamSchema = void 0;
|
|
12
|
+
var zod_1 = require("zod");
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Shared
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
var WebhookEventTypeSchema = zod_1.z.enum([
|
|
17
|
+
"email.sent",
|
|
18
|
+
"email.delivered",
|
|
19
|
+
"email.bounced",
|
|
20
|
+
"email.complained",
|
|
21
|
+
"email.opened",
|
|
22
|
+
"email.clicked",
|
|
23
|
+
"email.failed",
|
|
24
|
+
"email.rejected",
|
|
25
|
+
"email.delivery_delayed",
|
|
26
|
+
"email.suppressed",
|
|
27
|
+
"webhook.test",
|
|
28
|
+
]);
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Request schemas
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
exports.WebhookProjectParamSchema = zod_1.z.object({
|
|
33
|
+
projectId: zod_1.z.string().min(1),
|
|
34
|
+
});
|
|
35
|
+
exports.CreateWebhookBodySchema = zod_1.z.object({
|
|
36
|
+
url: zod_1.z.string().url(),
|
|
37
|
+
events: zod_1.z.array(WebhookEventTypeSchema).min(1),
|
|
38
|
+
secret: zod_1.z.string().min(16).optional(),
|
|
39
|
+
});
|
|
40
|
+
exports.UpdateWebhookBodySchema = zod_1.z.object({
|
|
41
|
+
url: zod_1.z.string().url().optional(),
|
|
42
|
+
events: zod_1.z.array(WebhookEventTypeSchema).min(1).optional(),
|
|
43
|
+
secret: zod_1.z.string().min(16).optional(),
|
|
44
|
+
enabled: zod_1.z.boolean().optional(),
|
|
45
|
+
});
|
|
46
|
+
exports.WebhookIdParamSchema = zod_1.z.object({
|
|
47
|
+
projectId: zod_1.z.string().min(1),
|
|
48
|
+
webhookId: zod_1.z.string().min(1),
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* Canonical webhook endpoint params ā uses `endpointId` field name per T-7.1.
|
|
52
|
+
* Matches the domain model's `SignalWebhookEndpoint.id` field.
|
|
53
|
+
*/
|
|
54
|
+
exports.WebhookParamsSchema = zod_1.z.object({
|
|
55
|
+
projectId: zod_1.z.string().min(1),
|
|
56
|
+
endpointId: zod_1.z.string().min(1),
|
|
57
|
+
});
|
|
58
|
+
exports.WebhookDeliveryIdParamSchema = zod_1.z.object({
|
|
59
|
+
projectId: zod_1.z.string().min(1),
|
|
60
|
+
deliveryId: zod_1.z.coerce.number().int().min(1),
|
|
61
|
+
});
|
|
62
|
+
exports.ListWebhooksQuerySchema = zod_1.z.object({
|
|
63
|
+
limit: zod_1.z.coerce.number().int().min(1).max(100).default(25),
|
|
64
|
+
cursor: zod_1.z.string().optional(),
|
|
65
|
+
});
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
// Response schemas
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
exports.WebhookResponseSchema = zod_1.z.object({
|
|
70
|
+
id: zod_1.z.string(),
|
|
71
|
+
projectId: zod_1.z.string(),
|
|
72
|
+
organizationId: zod_1.z.string(),
|
|
73
|
+
url: zod_1.z.string(),
|
|
74
|
+
events: zod_1.z.array(WebhookEventTypeSchema),
|
|
75
|
+
enabled: zod_1.z.boolean(),
|
|
76
|
+
createdAt: zod_1.z.string().datetime(),
|
|
77
|
+
updatedAt: zod_1.z.string().datetime(),
|
|
78
|
+
deletedAt: zod_1.z.string().datetime().nullable(),
|
|
79
|
+
});
|
|
80
|
+
exports.WebhookListResponseSchema = zod_1.z.object({
|
|
81
|
+
data: zod_1.z.array(exports.WebhookResponseSchema),
|
|
82
|
+
nextCursor: zod_1.z.string().nullable(),
|
|
83
|
+
});
|
|
84
|
+
exports.WebhookDeliveryResponseSchema = zod_1.z.object({
|
|
85
|
+
id: zod_1.z.string(),
|
|
86
|
+
projectId: zod_1.z.string(),
|
|
87
|
+
webhookEndpointId: zod_1.z.string(),
|
|
88
|
+
eventType: zod_1.z.string(),
|
|
89
|
+
status: zod_1.z.enum(["pending", "success", "failed"]),
|
|
90
|
+
attemptCount: zod_1.z.number().int(),
|
|
91
|
+
lastStatusCode: zod_1.z.number().int().nullable(),
|
|
92
|
+
lastError: zod_1.z.string().nullable(),
|
|
93
|
+
responseBodySnippet: zod_1.z.string().nullable(),
|
|
94
|
+
nextAttemptAt: zod_1.z.string().datetime().nullable(),
|
|
95
|
+
createdAt: zod_1.z.string().datetime(),
|
|
96
|
+
updatedAt: zod_1.z.string().datetime(),
|
|
97
|
+
});
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apollo Signal ā Webhooks Schemas
|
|
3
|
+
*
|
|
4
|
+
* Subpath: @apollo-deploy/signal-schemas/webhooks
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
export declare const WebhookEventTypeSchema: z.ZodEnum<{
|
|
8
|
+
"email.sent": "email.sent";
|
|
9
|
+
"email.delivered": "email.delivered";
|
|
10
|
+
"email.bounced": "email.bounced";
|
|
11
|
+
"email.complained": "email.complained";
|
|
12
|
+
"email.opened": "email.opened";
|
|
13
|
+
"email.clicked": "email.clicked";
|
|
14
|
+
"email.failed": "email.failed";
|
|
15
|
+
"email.rejected": "email.rejected";
|
|
16
|
+
"email.delivery_delayed": "email.delivery_delayed";
|
|
17
|
+
"email.suppressed": "email.suppressed";
|
|
18
|
+
"webhook.test": "webhook.test";
|
|
19
|
+
}>;
|
|
20
|
+
export declare const WebhookProjectParamSchema: z.ZodObject<{
|
|
21
|
+
projectId: z.ZodString;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export declare const CreateWebhookBodySchema: z.ZodObject<{
|
|
24
|
+
url: z.ZodString;
|
|
25
|
+
events: z.ZodArray<z.ZodEnum<{
|
|
26
|
+
"email.sent": "email.sent";
|
|
27
|
+
"email.delivered": "email.delivered";
|
|
28
|
+
"email.bounced": "email.bounced";
|
|
29
|
+
"email.complained": "email.complained";
|
|
30
|
+
"email.opened": "email.opened";
|
|
31
|
+
"email.clicked": "email.clicked";
|
|
32
|
+
"email.failed": "email.failed";
|
|
33
|
+
"email.rejected": "email.rejected";
|
|
34
|
+
"email.delivery_delayed": "email.delivery_delayed";
|
|
35
|
+
"email.suppressed": "email.suppressed";
|
|
36
|
+
"webhook.test": "webhook.test";
|
|
37
|
+
}>>;
|
|
38
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export declare const UpdateWebhookBodySchema: z.ZodObject<{
|
|
41
|
+
url: z.ZodOptional<z.ZodString>;
|
|
42
|
+
events: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
43
|
+
"email.sent": "email.sent";
|
|
44
|
+
"email.delivered": "email.delivered";
|
|
45
|
+
"email.bounced": "email.bounced";
|
|
46
|
+
"email.complained": "email.complained";
|
|
47
|
+
"email.opened": "email.opened";
|
|
48
|
+
"email.clicked": "email.clicked";
|
|
49
|
+
"email.failed": "email.failed";
|
|
50
|
+
"email.rejected": "email.rejected";
|
|
51
|
+
"email.delivery_delayed": "email.delivery_delayed";
|
|
52
|
+
"email.suppressed": "email.suppressed";
|
|
53
|
+
"webhook.test": "webhook.test";
|
|
54
|
+
}>>>;
|
|
55
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
56
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
export declare const WebhookIdParamSchema: z.ZodObject<{
|
|
59
|
+
projectId: z.ZodString;
|
|
60
|
+
webhookId: z.ZodString;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
export declare const WebhookParamsSchema: z.ZodObject<{
|
|
63
|
+
projectId: z.ZodString;
|
|
64
|
+
endpointId: z.ZodString;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
export declare const WebhookDeliveryIdParamSchema: z.ZodObject<{
|
|
67
|
+
projectId: z.ZodString;
|
|
68
|
+
deliveryId: z.ZodCoercedNumber<unknown>;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
export declare const ListWebhooksQuerySchema: z.ZodObject<{
|
|
71
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
72
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
export declare const WebhookResponseSchema: z.ZodObject<{
|
|
75
|
+
id: z.ZodString;
|
|
76
|
+
projectId: z.ZodString;
|
|
77
|
+
organizationId: z.ZodString;
|
|
78
|
+
url: z.ZodString;
|
|
79
|
+
events: z.ZodArray<z.ZodEnum<{
|
|
80
|
+
"email.sent": "email.sent";
|
|
81
|
+
"email.delivered": "email.delivered";
|
|
82
|
+
"email.bounced": "email.bounced";
|
|
83
|
+
"email.complained": "email.complained";
|
|
84
|
+
"email.opened": "email.opened";
|
|
85
|
+
"email.clicked": "email.clicked";
|
|
86
|
+
"email.failed": "email.failed";
|
|
87
|
+
"email.rejected": "email.rejected";
|
|
88
|
+
"email.delivery_delayed": "email.delivery_delayed";
|
|
89
|
+
"email.suppressed": "email.suppressed";
|
|
90
|
+
"webhook.test": "webhook.test";
|
|
91
|
+
}>>;
|
|
92
|
+
enabled: z.ZodBoolean;
|
|
93
|
+
createdAt: z.ZodString;
|
|
94
|
+
updatedAt: z.ZodString;
|
|
95
|
+
deletedAt: z.ZodNullable<z.ZodString>;
|
|
96
|
+
}, z.core.$strip>;
|
|
97
|
+
export declare const WebhookListResponseSchema: z.ZodObject<{
|
|
98
|
+
data: z.ZodArray<z.ZodObject<{
|
|
99
|
+
id: z.ZodString;
|
|
100
|
+
projectId: z.ZodString;
|
|
101
|
+
organizationId: z.ZodString;
|
|
102
|
+
url: z.ZodString;
|
|
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
|
+
enabled: z.ZodBoolean;
|
|
117
|
+
createdAt: z.ZodString;
|
|
118
|
+
updatedAt: z.ZodString;
|
|
119
|
+
deletedAt: z.ZodNullable<z.ZodString>;
|
|
120
|
+
}, z.core.$strip>>;
|
|
121
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
122
|
+
}, z.core.$strip>;
|
|
123
|
+
export declare const WebhookDeliveryResponseSchema: z.ZodObject<{
|
|
124
|
+
id: z.ZodString;
|
|
125
|
+
projectId: z.ZodString;
|
|
126
|
+
webhookEndpointId: z.ZodString;
|
|
127
|
+
eventType: z.ZodString;
|
|
128
|
+
status: z.ZodEnum<{
|
|
129
|
+
success: "success";
|
|
130
|
+
pending: "pending";
|
|
131
|
+
failed: "failed";
|
|
132
|
+
}>;
|
|
133
|
+
attemptCount: z.ZodNumber;
|
|
134
|
+
lastStatusCode: z.ZodNullable<z.ZodNumber>;
|
|
135
|
+
lastError: z.ZodNullable<z.ZodString>;
|
|
136
|
+
responseBodySnippet: z.ZodNullable<z.ZodString>;
|
|
137
|
+
nextAttemptAt: z.ZodNullable<z.ZodString>;
|
|
138
|
+
createdAt: z.ZodString;
|
|
139
|
+
updatedAt: z.ZodString;
|
|
140
|
+
}, z.core.$strip>;
|
|
141
|
+
export type WebhookEventType = z.infer<typeof WebhookEventTypeSchema>;
|
|
142
|
+
export type WebhookProjectParam = z.infer<typeof WebhookProjectParamSchema>;
|
|
143
|
+
export type CreateWebhookBody = z.infer<typeof CreateWebhookBodySchema>;
|
|
144
|
+
export type UpdateWebhookBody = z.infer<typeof UpdateWebhookBodySchema>;
|
|
145
|
+
export type WebhookIdParam = z.infer<typeof WebhookIdParamSchema>;
|
|
146
|
+
export type WebhookParams = z.infer<typeof WebhookParamsSchema>;
|
|
147
|
+
export type WebhookDeliveryIdParam = z.infer<typeof WebhookDeliveryIdParamSchema>;
|
|
148
|
+
export type ListWebhooksQuery = z.infer<typeof ListWebhooksQuerySchema>;
|
|
149
|
+
export type WebhookResponse = z.infer<typeof WebhookResponseSchema>;
|
|
150
|
+
export type WebhookListResponse = z.infer<typeof WebhookListResponseSchema>;
|
|
151
|
+
export type WebhookDeliveryResponse = z.infer<typeof WebhookDeliveryResponseSchema>;
|
|
152
|
+
//# sourceMappingURL=webhooks.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.schema.d.ts","sourceRoot":"","sources":["../../../src/definitions/webhooks/webhooks.schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AAMH,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;iBAIlC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;iBAGvC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAMH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;iBAUhC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;iBAGpC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAaxC,CAAC;AAMH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Apollo Signal ā Webhooks Schemas
|
|
4
|
+
*
|
|
5
|
+
* Subpath: @apollo-deploy/signal-schemas/webhooks
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.WebhookDeliveryResponseSchema = exports.WebhookListResponseSchema = exports.WebhookResponseSchema = exports.ListWebhooksQuerySchema = exports.WebhookDeliveryIdParamSchema = exports.WebhookParamsSchema = exports.WebhookIdParamSchema = exports.UpdateWebhookBodySchema = exports.CreateWebhookBodySchema = exports.WebhookProjectParamSchema = exports.WebhookEventTypeSchema = void 0;
|
|
9
|
+
var zod_1 = require("zod");
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// Shared enums
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
exports.WebhookEventTypeSchema = zod_1.z.enum([
|
|
14
|
+
'email.sent', 'email.delivered', 'email.bounced', 'email.complained',
|
|
15
|
+
'email.opened', 'email.clicked', 'email.failed', 'email.rejected',
|
|
16
|
+
'email.delivery_delayed', 'email.suppressed', 'webhook.test',
|
|
17
|
+
]);
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// Request schemas
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
exports.WebhookProjectParamSchema = zod_1.z.object({
|
|
22
|
+
projectId: zod_1.z.string().min(1),
|
|
23
|
+
});
|
|
24
|
+
exports.CreateWebhookBodySchema = zod_1.z.object({
|
|
25
|
+
url: zod_1.z.string().url(),
|
|
26
|
+
events: zod_1.z.array(exports.WebhookEventTypeSchema).min(1),
|
|
27
|
+
secret: zod_1.z.string().min(16).optional(),
|
|
28
|
+
});
|
|
29
|
+
exports.UpdateWebhookBodySchema = zod_1.z.object({
|
|
30
|
+
url: zod_1.z.string().url().optional(),
|
|
31
|
+
events: zod_1.z.array(exports.WebhookEventTypeSchema).min(1).optional(),
|
|
32
|
+
secret: zod_1.z.string().min(16).optional(),
|
|
33
|
+
enabled: zod_1.z.boolean().optional(),
|
|
34
|
+
});
|
|
35
|
+
exports.WebhookIdParamSchema = zod_1.z.object({
|
|
36
|
+
projectId: zod_1.z.string().min(1),
|
|
37
|
+
webhookId: zod_1.z.string().min(1),
|
|
38
|
+
});
|
|
39
|
+
exports.WebhookParamsSchema = zod_1.z.object({
|
|
40
|
+
projectId: zod_1.z.string().min(1),
|
|
41
|
+
endpointId: zod_1.z.string().min(1),
|
|
42
|
+
});
|
|
43
|
+
exports.WebhookDeliveryIdParamSchema = zod_1.z.object({
|
|
44
|
+
projectId: zod_1.z.string().min(1),
|
|
45
|
+
deliveryId: zod_1.z.coerce.number().int().min(1),
|
|
46
|
+
});
|
|
47
|
+
exports.ListWebhooksQuerySchema = zod_1.z.object({
|
|
48
|
+
limit: zod_1.z.coerce.number().int().min(1).max(100).default(25),
|
|
49
|
+
cursor: zod_1.z.string().optional(),
|
|
50
|
+
});
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// Response schemas
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
exports.WebhookResponseSchema = zod_1.z.object({
|
|
55
|
+
id: zod_1.z.string(),
|
|
56
|
+
projectId: zod_1.z.string(),
|
|
57
|
+
organizationId: zod_1.z.string(),
|
|
58
|
+
url: zod_1.z.string(),
|
|
59
|
+
events: zod_1.z.array(exports.WebhookEventTypeSchema),
|
|
60
|
+
enabled: zod_1.z.boolean(),
|
|
61
|
+
createdAt: zod_1.z.string().datetime(),
|
|
62
|
+
updatedAt: zod_1.z.string().datetime(),
|
|
63
|
+
deletedAt: zod_1.z.string().datetime().nullable(),
|
|
64
|
+
});
|
|
65
|
+
exports.WebhookListResponseSchema = zod_1.z.object({
|
|
66
|
+
data: zod_1.z.array(exports.WebhookResponseSchema),
|
|
67
|
+
nextCursor: zod_1.z.string().nullable(),
|
|
68
|
+
});
|
|
69
|
+
exports.WebhookDeliveryResponseSchema = zod_1.z.object({
|
|
70
|
+
id: zod_1.z.string(),
|
|
71
|
+
projectId: zod_1.z.string(),
|
|
72
|
+
webhookEndpointId: zod_1.z.string(),
|
|
73
|
+
eventType: zod_1.z.string(),
|
|
74
|
+
status: zod_1.z.enum(['pending', 'success', 'failed']),
|
|
75
|
+
attemptCount: zod_1.z.number().int(),
|
|
76
|
+
lastStatusCode: zod_1.z.number().int().nullable(),
|
|
77
|
+
lastError: zod_1.z.string().nullable(),
|
|
78
|
+
responseBodySnippet: zod_1.z.string().nullable(),
|
|
79
|
+
nextAttemptAt: zod_1.z.string().datetime().nullable(),
|
|
80
|
+
createdAt: zod_1.z.string().datetime(),
|
|
81
|
+
updatedAt: zod_1.z.string().datetime(),
|
|
82
|
+
});
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
// Schema registry ā promotes types to OpenAPI components/schemas
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
zod_1.z.globalRegistry.add(exports.WebhookEventTypeSchema, { id: 'WebhookEventType' });
|
|
87
|
+
zod_1.z.globalRegistry.add(exports.WebhookProjectParamSchema, { id: 'WebhookProjectParam' });
|
|
88
|
+
zod_1.z.globalRegistry.add(exports.CreateWebhookBodySchema, { id: 'CreateWebhookBody' });
|
|
89
|
+
zod_1.z.globalRegistry.add(exports.UpdateWebhookBodySchema, { id: 'UpdateWebhookBody' });
|
|
90
|
+
zod_1.z.globalRegistry.add(exports.WebhookIdParamSchema, { id: 'WebhookIdParam' });
|
|
91
|
+
zod_1.z.globalRegistry.add(exports.WebhookParamsSchema, { id: 'WebhookParams' });
|
|
92
|
+
zod_1.z.globalRegistry.add(exports.WebhookDeliveryIdParamSchema, { id: 'WebhookDeliveryIdParam' });
|
|
93
|
+
zod_1.z.globalRegistry.add(exports.ListWebhooksQuerySchema, { id: 'ListWebhooksQuery' });
|
|
94
|
+
zod_1.z.globalRegistry.add(exports.WebhookResponseSchema, { id: 'WebhookResponse' });
|
|
95
|
+
zod_1.z.globalRegistry.add(exports.WebhookListResponseSchema, { id: 'WebhookListResponse' });
|
|
96
|
+
zod_1.z.globalRegistry.add(exports.WebhookDeliveryResponseSchema, { id: 'WebhookDeliveryResponse' });
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
/**
|
|
3
|
+
* Schema Generation Script
|
|
4
|
+
*
|
|
5
|
+
* Generates JSON Schema files from Zod schema definitions.
|
|
6
|
+
* Automatically discovers and generates schemas for all Signal domains.
|
|
7
|
+
* Run with: bun run generate
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=generate-schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-schemas.d.ts","sourceRoot":"","sources":["../../src/generators/generate-schemas.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
/**
|
|
3
|
+
* Schema Generation Script
|
|
4
|
+
*
|
|
5
|
+
* Generates JSON Schema files from Zod schema definitions.
|
|
6
|
+
* Automatically discovers and generates schemas for all Signal domains.
|
|
7
|
+
* Run with: bun run generate
|
|
8
|
+
*/
|
|
9
|
+
import { writeFileSync, mkdirSync, existsSync, readdirSync } from 'node:fs';
|
|
10
|
+
import { join, dirname } from 'node:path';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import { createCombinedSchema } from './zod-to-json-schema.js';
|
|
14
|
+
import { IsoDateStringSchema, NullableIsoDateStringSchema, CursorPaginationSchema, SignalErrorEnvelopeSchema, } from '../definitions/common.js';
|
|
15
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
16
|
+
const __dirname = dirname(__filename);
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Constants
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
const OUTPUT_DIR = join(__dirname, '../../generated');
|
|
21
|
+
const DEFINITIONS_DIR = join(__dirname, '../definitions');
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
// Helpers
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
function ensureOutputDir() {
|
|
26
|
+
if (!existsSync(OUTPUT_DIR)) {
|
|
27
|
+
mkdirSync(OUTPUT_DIR, { recursive: true });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function writeSchema(name, json) {
|
|
31
|
+
const filePath = join(OUTPUT_DIR, `${name}.schema.json`);
|
|
32
|
+
writeFileSync(filePath, json, 'utf-8');
|
|
33
|
+
console.log(` ā ${name}.schema.json`);
|
|
34
|
+
}
|
|
35
|
+
function discoverDomains() {
|
|
36
|
+
const domains = [];
|
|
37
|
+
try {
|
|
38
|
+
const entries = readdirSync(DEFINITIONS_DIR, { withFileTypes: true });
|
|
39
|
+
for (const entry of entries) {
|
|
40
|
+
if (!entry.isDirectory()) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (entry.name.startsWith('.')) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const domainPath = join(DEFINITIONS_DIR, entry.name);
|
|
47
|
+
const indexPath = join(domainPath, 'index.ts');
|
|
48
|
+
if (existsSync(indexPath)) {
|
|
49
|
+
domains.push({ name: entry.name, path: domainPath });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
console.error('Error discovering domains:', error);
|
|
55
|
+
}
|
|
56
|
+
return domains.sort((a, b) => a.name.localeCompare(b.name));
|
|
57
|
+
}
|
|
58
|
+
async function importDomainSchemas(domainName) {
|
|
59
|
+
try {
|
|
60
|
+
const module = await import(`../definitions/${domainName}/index.js`);
|
|
61
|
+
return module;
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.warn(` ā Could not import schemas from ${domainName}:`, error);
|
|
65
|
+
return {};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function extractZodSchemas(module) {
|
|
69
|
+
const schemas = {};
|
|
70
|
+
for (const [key, value] of Object.entries(module)) {
|
|
71
|
+
if (value !== null &&
|
|
72
|
+
typeof value === 'object' &&
|
|
73
|
+
('_def' in value || '_zod' in value)) {
|
|
74
|
+
schemas[key] = value;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return schemas;
|
|
78
|
+
}
|
|
79
|
+
// ---------------------------------------------------------------------------
|
|
80
|
+
// Main
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
async function generateSchemas() {
|
|
83
|
+
console.log('š Generating JSON Schema files...\n');
|
|
84
|
+
ensureOutputDir();
|
|
85
|
+
console.log('š¦ Common schemas:');
|
|
86
|
+
const commonSchemas = {
|
|
87
|
+
IsoDateString: IsoDateStringSchema,
|
|
88
|
+
NullableIsoDateString: NullableIsoDateStringSchema,
|
|
89
|
+
SignalCursorPagination: CursorPaginationSchema,
|
|
90
|
+
SignalErrorEnvelope: SignalErrorEnvelopeSchema,
|
|
91
|
+
};
|
|
92
|
+
const combinedCommon = createCombinedSchema(commonSchemas, 'common');
|
|
93
|
+
writeSchema('common', combinedCommon.json);
|
|
94
|
+
console.log('\nš Domain schemas:');
|
|
95
|
+
const domains = discoverDomains();
|
|
96
|
+
for (const domain of domains) {
|
|
97
|
+
console.log(`\n ${domain.name}:`);
|
|
98
|
+
try {
|
|
99
|
+
const module = await importDomainSchemas(domain.name);
|
|
100
|
+
const schemas = extractZodSchemas(module);
|
|
101
|
+
if (Object.keys(schemas).length === 0) {
|
|
102
|
+
console.log(' ā No schemas found');
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
const combined = createCombinedSchema(schemas, domain.name);
|
|
106
|
+
writeSchema(domain.name, combined.json);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
console.error(` ā Error generating ${domain.name}:`, error);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
console.log('\nā
Schema generation complete!');
|
|
113
|
+
console.log(`š Generated files in: ${OUTPUT_DIR}`);
|
|
114
|
+
}
|
|
115
|
+
generateSchemas().catch((error) => {
|
|
116
|
+
console.error('Fatal error during schema generation:', error);
|
|
117
|
+
process.exit(1);
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=generate-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-schemas.js","sourceRoot":"","sources":["../../src/generators/generate-schemas.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env bun\n/**\n * Schema Generation Script\n *\n * Generates JSON Schema files from Zod schema definitions.\n * Automatically discovers and generates schemas for all Signal domains.\n * Run with: bun run generate\n */\n\nimport { writeFileSync, mkdirSync, existsSync, readdirSync } from 'node:fs';\nimport { join, dirname } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport { z } from 'zod';\n\nimport { createCombinedSchema } from './zod-to-json-schema.js';\nimport {\n IsoDateStringSchema,\n NullableIsoDateStringSchema,\n CursorPaginationSchema,\n SignalErrorEnvelopeSchema,\n} from '../definitions/common.js';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst OUTPUT_DIR = join(__dirname, '../../generated');\nconst DEFINITIONS_DIR = join(__dirname, '../definitions');\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ninterface DomainConfig {\n name: string;\n path: string;\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction ensureOutputDir(): void {\n if (!existsSync(OUTPUT_DIR)) {\n mkdirSync(OUTPUT_DIR, { recursive: true });\n }\n}\n\nfunction writeSchema(name: string, json: string): void {\n const filePath = join(OUTPUT_DIR, `${name}.schema.json`);\n writeFileSync(filePath, json, 'utf-8');\n console.log(` ā ${name}.schema.json`);\n}\n\nfunction discoverDomains(): DomainConfig[] {\n const domains: DomainConfig[] = [];\n\n try {\n const entries = readdirSync(DEFINITIONS_DIR, { withFileTypes: true });\n\n for (const entry of entries) {\n if (!entry.isDirectory()) { continue; }\n if (entry.name.startsWith('.')) { continue; }\n\n const domainPath = join(DEFINITIONS_DIR, entry.name);\n const indexPath = join(domainPath, 'index.ts');\n\n if (existsSync(indexPath)) {\n domains.push({ name: entry.name, path: domainPath });\n }\n }\n } catch (error) {\n console.error('Error discovering domains:', error);\n }\n\n return domains.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nasync function importDomainSchemas(domainName: string): Promise<Record<string, unknown>> {\n try {\n const module = await import(`../definitions/${domainName}/index.js`);\n return module as Record<string, unknown>;\n } catch (error) {\n console.warn(` ā Could not import schemas from ${domainName}:`, error);\n return {};\n }\n}\n\nfunction extractZodSchemas(module: Record<string, unknown>): Record<string, z.ZodType> {\n const schemas: Record<string, z.ZodType> = {};\n\n for (const [key, value] of Object.entries(module)) {\n if (\n value !== null &&\n typeof value === 'object' &&\n ('_def' in value || '_zod' in value)\n ) {\n schemas[key] = value as z.ZodType;\n }\n }\n\n return schemas;\n}\n\n// ---------------------------------------------------------------------------\n// Main\n// ---------------------------------------------------------------------------\n\nasync function generateSchemas(): Promise<void> {\n console.log('š Generating JSON Schema files...\\n');\n\n ensureOutputDir();\n\n console.log('š¦ Common schemas:');\n const commonSchemas = {\n IsoDateString: IsoDateStringSchema,\n NullableIsoDateString: NullableIsoDateStringSchema,\n SignalCursorPagination: CursorPaginationSchema,\n SignalErrorEnvelope: SignalErrorEnvelopeSchema,\n };\n const combinedCommon = createCombinedSchema(commonSchemas, 'common');\n writeSchema('common', combinedCommon.json);\n\n console.log('\\nš Domain schemas:');\n const domains = discoverDomains();\n\n for (const domain of domains) {\n console.log(`\\n ${domain.name}:`);\n\n try {\n const module = await importDomainSchemas(domain.name);\n const schemas = extractZodSchemas(module);\n\n if (Object.keys(schemas).length === 0) {\n console.log(' ā No schemas found');\n continue;\n }\n\n const combined = createCombinedSchema(schemas, domain.name);\n writeSchema(domain.name, combined.json);\n } catch (error) {\n console.error(` ā Error generating ${domain.name}:`, error);\n }\n }\n\n console.log('\\nā
Schema generation complete!');\n console.log(`š Generated files in: ${OUTPUT_DIR}`);\n}\n\ngenerateSchemas().catch((error) => {\n console.error('Fatal error during schema generation:', error);\n process.exit(1);\n});\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apollo Signal Schemas ā Generators
|
|
3
|
+
*
|
|
4
|
+
* Utilities for converting Zod schemas to JSON Schema format
|
|
5
|
+
* for cross-language type definitions.
|
|
6
|
+
*/
|
|
7
|
+
export { convertToJsonSchema, convertMultipleToJsonSchema, createCombinedSchema, type GeneratorOptions, type GeneratedSchema, } from './zod-to-json-schema.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|