samva 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/AGENTS.md +9 -1
  2. package/README.md +57 -1
  3. package/dist/{rolldown-runtime-D7D4PA-g.js → _virtual/_rolldown/runtime.js} +1 -1
  4. package/dist/client/client/client.gen.js +174 -0
  5. package/dist/client/client/utils.gen.js +177 -0
  6. package/dist/client/client.gen.js +8 -0
  7. package/dist/client/core/auth.gen.js +12 -0
  8. package/dist/client/core/bodySerializer.gen.js +6 -0
  9. package/dist/client/core/params.gen.js +77 -0
  10. package/dist/client/core/pathSerializer.gen.js +82 -0
  11. package/dist/client/core/serverSentEvents.gen.js +96 -0
  12. package/dist/client/core/utils.gen.js +78 -0
  13. package/dist/client/sdk.gen.d.ts +174 -3
  14. package/dist/{promises-KrA2nSLg.js → client/sdk.gen.js} +464 -2289
  15. package/dist/client/types.gen.d.ts +1126 -11
  16. package/dist/client-attribution.js +9 -0
  17. package/dist/effect/analytics.d.ts +6 -6
  18. package/dist/effect/analytics.js +11 -9
  19. package/dist/effect/api-keys.d.ts +13 -13
  20. package/dist/effect/api-keys.js +13 -12
  21. package/dist/effect/attachments.d.ts +4 -4
  22. package/dist/effect/attachments.js +9 -7
  23. package/dist/effect/brands.d.ts +7 -7
  24. package/dist/effect/brands.js +12 -10
  25. package/dist/effect/campaigns.d.ts +18 -18
  26. package/dist/effect/campaigns.js +17 -15
  27. package/dist/effect/categories.d.ts +2 -2
  28. package/dist/effect/categories.js +95 -1
  29. package/dist/effect/client.d.ts +1 -1
  30. package/dist/effect/client.js +4 -5
  31. package/dist/effect/contact-groups.d.ts +14 -14
  32. package/dist/effect/contact-groups.js +15 -13
  33. package/dist/effect/contacts.d.ts +77 -25
  34. package/dist/effect/contacts.js +27 -22
  35. package/dist/effect/conversations.d.ts +17 -17
  36. package/dist/effect/conversations.js +18 -16
  37. package/dist/effect/custom-fields.d.ts +4 -4
  38. package/dist/effect/custom-fields.js +9 -7
  39. package/dist/effect/email.d.ts +78 -77
  40. package/dist/effect/email.js +68 -65
  41. package/dist/effect/errors.d.ts +2 -0
  42. package/dist/effect/errors.js +3 -0
  43. package/dist/effect/events.d.ts +121 -0
  44. package/dist/effect/events.js +17 -0
  45. package/dist/effect/extension-installations.d.ts +11 -11
  46. package/dist/effect/extension-installations.js +14 -12
  47. package/dist/effect/extensions.d.ts +9 -9
  48. package/dist/effect/extensions.js +10 -8
  49. package/dist/effect/feedback.d.ts +2 -2
  50. package/dist/effect/feedback.js +6 -5
  51. package/dist/effect/generated/analytics.d.ts +715 -0
  52. package/dist/effect/generated/analytics.js +188 -0
  53. package/dist/effect/generated/api-keys.d.ts +1627 -0
  54. package/dist/effect/generated/api-keys.js +249 -0
  55. package/dist/effect/generated/attachments.d.ts +554 -0
  56. package/dist/effect/generated/attachments.js +125 -0
  57. package/dist/effect/generated/brands.d.ts +1118 -0
  58. package/dist/effect/generated/brands.js +155 -0
  59. package/dist/effect/generated/campaigns.d.ts +3783 -0
  60. package/dist/effect/generated/campaigns.js +491 -0
  61. package/dist/effect/generated/contact-events.d.ts +158 -0
  62. package/dist/effect/generated/contact-events.js +37 -0
  63. package/dist/effect/generated/contact-groups.d.ts +1445 -0
  64. package/dist/effect/generated/contact-groups.js +419 -0
  65. package/dist/effect/generated/contacts.d.ts +3789 -0
  66. package/dist/effect/generated/contacts.js +709 -0
  67. package/dist/effect/generated/conversations.d.ts +2870 -0
  68. package/dist/effect/generated/conversations.js +461 -0
  69. package/dist/effect/generated/custom-fields.d.ts +562 -0
  70. package/dist/effect/generated/custom-fields.js +162 -0
  71. package/dist/effect/generated/email.d.ts +10622 -0
  72. package/dist/effect/generated/email.js +2347 -0
  73. package/dist/effect/generated/events.d.ts +463 -0
  74. package/dist/effect/generated/events.js +70 -0
  75. package/dist/effect/generated/extension-installations.d.ts +1786 -0
  76. package/dist/effect/generated/extension-installations.js +382 -0
  77. package/dist/effect/generated/extensions.d.ts +927 -0
  78. package/dist/effect/generated/extensions.js +203 -0
  79. package/dist/effect/generated/feedback.d.ts +116 -0
  80. package/dist/effect/generated/feedback.js +43 -0
  81. package/dist/effect/generated/index.d.ts +61 -0
  82. package/dist/effect/generated/journeys.d.ts +6135 -0
  83. package/dist/effect/generated/journeys.js +464 -0
  84. package/dist/effect/generated/mailboxes.d.ts +13641 -0
  85. package/dist/effect/generated/mailboxes.js +2312 -0
  86. package/dist/effect/generated/media.d.ts +741 -0
  87. package/dist/effect/generated/media.js +181 -0
  88. package/dist/effect/generated/messages.d.ts +2355 -0
  89. package/dist/effect/generated/messages.js +671 -0
  90. package/dist/effect/generated/namespaces.d.ts +654 -0
  91. package/dist/effect/generated/namespaces.js +135 -0
  92. package/dist/effect/generated/operations.d.ts +514 -0
  93. package/dist/effect/generated/operations.js +80 -0
  94. package/dist/effect/generated/organizations.d.ts +1111 -0
  95. package/dist/effect/generated/organizations.js +231 -0
  96. package/dist/effect/generated/scheduled-messages.d.ts +1798 -0
  97. package/dist/effect/generated/scheduled-messages.js +190 -0
  98. package/dist/effect/generated/shared.d.ts +3250 -0
  99. package/dist/effect/generated/shared.js +1053 -0
  100. package/dist/effect/generated/subscriptions.d.ts +188 -0
  101. package/dist/effect/generated/subscriptions.js +61 -0
  102. package/dist/effect/generated/templates.d.ts +8177 -0
  103. package/dist/effect/generated/templates.js +2214 -0
  104. package/dist/effect/generated/unsubscribe-groups.d.ts +1153 -0
  105. package/dist/effect/generated/unsubscribe-groups.js +267 -0
  106. package/dist/effect/generated/webhooks.d.ts +1697 -0
  107. package/dist/effect/generated/webhooks.js +500 -0
  108. package/dist/effect/generated/whoami.d.ts +291 -0
  109. package/dist/effect/generated/whoami.js +54 -0
  110. package/dist/effect/generated-metadata.d.ts +1627 -0
  111. package/dist/effect/generated-metadata.js +919 -0
  112. package/dist/effect/index.d.ts +3 -2
  113. package/dist/effect/index.js +33 -31
  114. package/dist/effect/internal/client.d.ts +10 -7
  115. package/dist/effect/internal/client.js +69 -0
  116. package/dist/effect/internal/email-sender.d.ts +17 -0
  117. package/dist/effect/internal/email-sender.js +21 -0
  118. package/dist/effect/internal/mailbox-events.js +33 -0
  119. package/dist/effect/internal/operation.d.ts +12 -72
  120. package/dist/effect/internal/operation.js +116 -0
  121. package/dist/effect/internal/send.d.ts +60 -0
  122. package/dist/effect/internal/send.js +56 -0
  123. package/dist/effect/journeys.d.ts +2153 -0
  124. package/dist/effect/journeys.js +39 -0
  125. package/dist/effect/mailboxes.d.ts +80 -80
  126. package/dist/effect/mailboxes.js +135 -3
  127. package/dist/effect/media.d.ts +5 -5
  128. package/dist/effect/media.js +10 -8
  129. package/dist/effect/messages.d.ts +16 -16
  130. package/dist/effect/messages.js +15 -12
  131. package/dist/effect/namespaces.d.ts +7 -7
  132. package/dist/effect/namespaces.js +10 -8
  133. package/dist/effect/operations.d.ts +5 -5
  134. package/dist/effect/operations.js +8 -6
  135. package/dist/effect/organizations.d.ts +7 -7
  136. package/dist/effect/organizations.js +12 -10
  137. package/dist/effect/pagination.js +39 -0
  138. package/dist/effect/retry.js +3 -3
  139. package/dist/effect/runtime.js +25 -0
  140. package/dist/effect/scheduled-messages.d.ts +7 -7
  141. package/dist/effect/scheduled-messages.js +10 -8
  142. package/dist/effect/subscriptions.d.ts +1 -1
  143. package/dist/effect/subscriptions.js +5 -4
  144. package/dist/effect/templates.d.ts +40 -40
  145. package/dist/effect/templates.js +39 -37
  146. package/dist/effect/unsubscribe-groups.d.ts +11 -11
  147. package/dist/effect/unsubscribe-groups.js +14 -12
  148. package/dist/effect/webhooks.d.ts +23 -23
  149. package/dist/effect/webhooks.js +16 -14
  150. package/dist/effect/whoami.d.ts +1 -1
  151. package/dist/effect/whoami.js +5 -4
  152. package/dist/index.js +4 -3
  153. package/dist/{inline-attachments-Cegg6tTF.js → inline-attachments.js} +13 -7
  154. package/dist/{mailbox-events-VKR4f3qq.js → mailbox-events.js} +2 -2
  155. package/dist/{normalize-B79uJIeb.js → normalize.js} +2 -2
  156. package/dist/package.js +6 -0
  157. package/dist/promises/errors.gen.js +1340 -0
  158. package/dist/promises/index.d.ts +7 -3
  159. package/dist/promises/index.js +288 -3
  160. package/dist/promises/types.gen.d.ts +1 -1
  161. package/dist/service-map.d.ts +85 -0
  162. package/dist/{operation-BTXjPrwf.js → service-map.js} +58 -219
  163. package/package.json +17 -3
  164. package/dist/categories-DV51kr2H.js +0 -187
  165. package/dist/client-BMUew5Wp.js +0 -13794
  166. package/dist/effect/generated.d.ts +0 -64004
  167. package/dist/mailboxes-Thp5z0oX.js +0 -161
@@ -0,0 +1,463 @@
1
+ import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
2
+ import * as Schema from "effect/Schema";
3
+ import { ApiKeySecurityMiddleware, BillingProviderError, ConflictError, ContactEvent, ContactEventReference, CreateEventPayload, ForbiddenError, GatewayTimeoutError, InternalError, JsonObject, PaymentRequiredError, ResourceNotFoundError, UnauthorizedError, ValidationError } from "./shared";
4
+ export type BatchEventsResult = {
5
+ readonly total: number;
6
+ readonly accepted: number;
7
+ readonly errors: number;
8
+ readonly results: ReadonlyArray<{
9
+ readonly index: number;
10
+ readonly status: "accepted" | "error";
11
+ readonly event?: ContactEvent | null;
12
+ readonly error?: string | null;
13
+ }>;
14
+ };
15
+ export declare const BatchEventsResult: Schema.Struct<{
16
+ readonly total: Schema.Finite;
17
+ readonly accepted: Schema.Finite;
18
+ readonly errors: Schema.Finite;
19
+ readonly results: Schema.$Array<Schema.Struct<{
20
+ readonly index: Schema.Finite;
21
+ readonly status: Schema.Union<readonly [Schema.Literal<"accepted">, Schema.Literal<"error">]>;
22
+ readonly event: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
23
+ readonly id: Schema.String;
24
+ readonly contactId: Schema.brand<Schema.String, "ContactId">;
25
+ readonly name: Schema.String;
26
+ readonly source: Schema.Union<readonly [Schema.Literal<"api">, Schema.Literal<"samva">]>;
27
+ readonly properties: Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>;
28
+ readonly occurredAt: Schema.String;
29
+ readonly recordedAt: Schema.String;
30
+ }>, Schema.Null]>>;
31
+ readonly error: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
32
+ }>>;
33
+ }>;
34
+ export type EventsCreateRequestJson = {
35
+ readonly contact: ContactEventReference;
36
+ readonly name: string;
37
+ readonly properties?: JsonObject | null;
38
+ readonly occurredAt?: string | null;
39
+ readonly idempotencyKey?: string | null;
40
+ };
41
+ export declare const EventsCreateRequestJson: Schema.Struct<{
42
+ readonly contact: Schema.Union<readonly [Schema.Struct<{
43
+ readonly id: Schema.brand<Schema.String, "ContactId">;
44
+ readonly externalId: Schema.optionalKey<Schema.Never>;
45
+ readonly email: Schema.optionalKey<Schema.Never>;
46
+ }>, Schema.Struct<{
47
+ readonly externalId: Schema.String;
48
+ readonly id: Schema.optionalKey<Schema.Never>;
49
+ readonly email: Schema.optionalKey<Schema.Never>;
50
+ }>, Schema.Struct<{
51
+ readonly email: Schema.String;
52
+ readonly id: Schema.optionalKey<Schema.Never>;
53
+ readonly externalId: Schema.optionalKey<Schema.Never>;
54
+ }>]>;
55
+ readonly name: Schema.String;
56
+ readonly properties: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>>;
57
+ readonly occurredAt: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
58
+ readonly idempotencyKey: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
59
+ }>;
60
+ export type EventsCreate200 = ContactEvent;
61
+ export declare const EventsCreate200: Schema.Struct<{
62
+ readonly id: Schema.String;
63
+ readonly contactId: Schema.brand<Schema.String, "ContactId">;
64
+ readonly name: Schema.String;
65
+ readonly source: Schema.Union<readonly [Schema.Literal<"api">, Schema.Literal<"samva">]>;
66
+ readonly properties: Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>;
67
+ readonly occurredAt: Schema.String;
68
+ readonly recordedAt: Schema.String;
69
+ }>;
70
+ export type EventsCreate401 = UnauthorizedError;
71
+ export declare const EventsCreate401: typeof UnauthorizedError;
72
+ export type EventsCreate402 = PaymentRequiredError;
73
+ export declare const EventsCreate402: typeof PaymentRequiredError;
74
+ export type EventsCreate403 = ForbiddenError;
75
+ export declare const EventsCreate403: typeof ForbiddenError;
76
+ export type EventsCreate404 = ResourceNotFoundError;
77
+ export declare const EventsCreate404: typeof ResourceNotFoundError;
78
+ export type EventsCreate409 = ConflictError;
79
+ export declare const EventsCreate409: typeof ConflictError;
80
+ export type EventsCreate422 = ValidationError;
81
+ export declare const EventsCreate422: typeof ValidationError;
82
+ export type EventsCreate500 = InternalError;
83
+ export declare const EventsCreate500: typeof InternalError;
84
+ export type EventsCreate502 = BillingProviderError;
85
+ export declare const EventsCreate502: typeof BillingProviderError;
86
+ export type EventsCreate504 = GatewayTimeoutError;
87
+ export declare const EventsCreate504: typeof GatewayTimeoutError;
88
+ export type EventsBatchRequestJson = {
89
+ readonly events: readonly [CreateEventPayload, ...Array<CreateEventPayload>];
90
+ };
91
+ export declare const EventsBatchRequestJson: Schema.Struct<{
92
+ readonly events: Schema.TupleWithRest<Schema.Tuple<readonly [Schema.Struct<{
93
+ readonly contact: Schema.Union<readonly [Schema.Struct<{
94
+ readonly id: Schema.brand<Schema.String, "ContactId">;
95
+ readonly externalId: Schema.optionalKey<Schema.Never>;
96
+ readonly email: Schema.optionalKey<Schema.Never>;
97
+ }>, Schema.Struct<{
98
+ readonly externalId: Schema.String;
99
+ readonly id: Schema.optionalKey<Schema.Never>;
100
+ readonly email: Schema.optionalKey<Schema.Never>;
101
+ }>, Schema.Struct<{
102
+ readonly email: Schema.String;
103
+ readonly id: Schema.optionalKey<Schema.Never>;
104
+ readonly externalId: Schema.optionalKey<Schema.Never>;
105
+ }>]>;
106
+ readonly name: Schema.String;
107
+ readonly properties: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>>;
108
+ readonly occurredAt: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
109
+ readonly idempotencyKey: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
110
+ }>]>, readonly [Schema.Struct<{
111
+ readonly contact: Schema.Union<readonly [Schema.Struct<{
112
+ readonly id: Schema.brand<Schema.String, "ContactId">;
113
+ readonly externalId: Schema.optionalKey<Schema.Never>;
114
+ readonly email: Schema.optionalKey<Schema.Never>;
115
+ }>, Schema.Struct<{
116
+ readonly externalId: Schema.String;
117
+ readonly id: Schema.optionalKey<Schema.Never>;
118
+ readonly email: Schema.optionalKey<Schema.Never>;
119
+ }>, Schema.Struct<{
120
+ readonly email: Schema.String;
121
+ readonly id: Schema.optionalKey<Schema.Never>;
122
+ readonly externalId: Schema.optionalKey<Schema.Never>;
123
+ }>]>;
124
+ readonly name: Schema.String;
125
+ readonly properties: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>>;
126
+ readonly occurredAt: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
127
+ readonly idempotencyKey: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
128
+ }>]>;
129
+ }>;
130
+ export type EventsBatch200 = BatchEventsResult;
131
+ export declare const EventsBatch200: Schema.Struct<{
132
+ readonly total: Schema.Finite;
133
+ readonly accepted: Schema.Finite;
134
+ readonly errors: Schema.Finite;
135
+ readonly results: Schema.$Array<Schema.Struct<{
136
+ readonly index: Schema.Finite;
137
+ readonly status: Schema.Union<readonly [Schema.Literal<"accepted">, Schema.Literal<"error">]>;
138
+ readonly event: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
139
+ readonly id: Schema.String;
140
+ readonly contactId: Schema.brand<Schema.String, "ContactId">;
141
+ readonly name: Schema.String;
142
+ readonly source: Schema.Union<readonly [Schema.Literal<"api">, Schema.Literal<"samva">]>;
143
+ readonly properties: Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>;
144
+ readonly occurredAt: Schema.String;
145
+ readonly recordedAt: Schema.String;
146
+ }>, Schema.Null]>>;
147
+ readonly error: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
148
+ }>>;
149
+ }>;
150
+ export type EventsBatch401 = UnauthorizedError;
151
+ export declare const EventsBatch401: typeof UnauthorizedError;
152
+ export type EventsBatch403 = ForbiddenError;
153
+ export declare const EventsBatch403: typeof ForbiddenError;
154
+ export type EventsBatch404 = ResourceNotFoundError;
155
+ export declare const EventsBatch404: typeof ResourceNotFoundError;
156
+ export type EventsBatch422 = ValidationError;
157
+ export declare const EventsBatch422: typeof ValidationError;
158
+ export type EventsBatch500 = InternalError;
159
+ export declare const EventsBatch500: typeof InternalError;
160
+ export type EventsBatch504 = GatewayTimeoutError;
161
+ export declare const EventsBatch504: typeof GatewayTimeoutError;
162
+ declare const EventsGroup_base: HttpApiGroup.HttpApiGroup<"Events", HttpApiEndpoint.HttpApiEndpoint<"eventsBatch", "POST", "/v1/events/batch", never, never, Schema.toCodecJson<Schema.Struct<{
163
+ readonly events: Schema.TupleWithRest<Schema.Tuple<readonly [Schema.Struct<{
164
+ readonly contact: Schema.Union<readonly [Schema.Struct<{
165
+ readonly id: Schema.brand<Schema.String, "ContactId">;
166
+ readonly externalId: Schema.optionalKey<Schema.Never>;
167
+ readonly email: Schema.optionalKey<Schema.Never>;
168
+ }>, Schema.Struct<{
169
+ readonly externalId: Schema.String;
170
+ readonly id: Schema.optionalKey<Schema.Never>;
171
+ readonly email: Schema.optionalKey<Schema.Never>;
172
+ }>, Schema.Struct<{
173
+ readonly email: Schema.String;
174
+ readonly id: Schema.optionalKey<Schema.Never>;
175
+ readonly externalId: Schema.optionalKey<Schema.Never>;
176
+ }>]>;
177
+ readonly name: Schema.String;
178
+ readonly properties: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>>;
179
+ readonly occurredAt: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
180
+ readonly idempotencyKey: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
181
+ }>]>, readonly [Schema.Struct<{
182
+ readonly contact: Schema.Union<readonly [Schema.Struct<{
183
+ readonly id: Schema.brand<Schema.String, "ContactId">;
184
+ readonly externalId: Schema.optionalKey<Schema.Never>;
185
+ readonly email: Schema.optionalKey<Schema.Never>;
186
+ }>, Schema.Struct<{
187
+ readonly externalId: Schema.String;
188
+ readonly id: Schema.optionalKey<Schema.Never>;
189
+ readonly email: Schema.optionalKey<Schema.Never>;
190
+ }>, Schema.Struct<{
191
+ readonly email: Schema.String;
192
+ readonly id: Schema.optionalKey<Schema.Never>;
193
+ readonly externalId: Schema.optionalKey<Schema.Never>;
194
+ }>]>;
195
+ readonly name: Schema.String;
196
+ readonly properties: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>>;
197
+ readonly occurredAt: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
198
+ readonly idempotencyKey: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
199
+ }>]>;
200
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
201
+ readonly total: Schema.Finite;
202
+ readonly accepted: Schema.Finite;
203
+ readonly errors: Schema.Finite;
204
+ readonly results: Schema.$Array<Schema.Struct<{
205
+ readonly index: Schema.Finite;
206
+ readonly status: Schema.Union<readonly [Schema.Literal<"accepted">, Schema.Literal<"error">]>;
207
+ readonly event: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
208
+ readonly id: Schema.String;
209
+ readonly contactId: Schema.brand<Schema.String, "ContactId">;
210
+ readonly name: Schema.String;
211
+ readonly source: Schema.Union<readonly [Schema.Literal<"api">, Schema.Literal<"samva">]>;
212
+ readonly properties: Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>;
213
+ readonly occurredAt: Schema.String;
214
+ readonly recordedAt: Schema.String;
215
+ }>, Schema.Null]>>;
216
+ readonly error: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
217
+ }>>;
218
+ }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<ForbiddenError, {
219
+ readonly _tag: "ForbiddenError";
220
+ readonly message: string;
221
+ }, readonly [Schema.Struct<{
222
+ readonly _tag: Schema.tag<"ForbiddenError">;
223
+ readonly message: Schema.String;
224
+ }>], {
225
+ readonly _tag: "ForbiddenError";
226
+ readonly message: string;
227
+ }>, Schema.Struct<{
228
+ readonly _tag: Schema.tag<"ForbiddenError">;
229
+ readonly message: Schema.String;
230
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<GatewayTimeoutError, {
231
+ readonly _tag: "GatewayTimeoutError";
232
+ readonly message: string;
233
+ readonly retryAfterSeconds: number;
234
+ }, readonly [Schema.Struct<{
235
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
236
+ readonly message: Schema.String;
237
+ readonly retryAfterSeconds: Schema.Finite;
238
+ }>], {
239
+ readonly _tag: "GatewayTimeoutError";
240
+ readonly message: string;
241
+ readonly retryAfterSeconds: number;
242
+ }>, Schema.Struct<{
243
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
244
+ readonly message: Schema.String;
245
+ readonly retryAfterSeconds: Schema.Finite;
246
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ResourceNotFoundError, {
247
+ readonly _tag: "ResourceNotFoundError";
248
+ readonly resource: string;
249
+ readonly id: string;
250
+ readonly message: string;
251
+ }, readonly [Schema.Struct<{
252
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
253
+ readonly resource: Schema.String;
254
+ readonly id: Schema.String;
255
+ readonly message: Schema.String;
256
+ }>], {
257
+ readonly _tag: "ResourceNotFoundError";
258
+ readonly resource: string;
259
+ readonly id: string;
260
+ readonly message: string;
261
+ }>, Schema.Struct<{
262
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
263
+ readonly resource: Schema.String;
264
+ readonly id: Schema.String;
265
+ readonly message: Schema.String;
266
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<UnauthorizedError, {
267
+ readonly _tag: "UnauthorizedError";
268
+ readonly message: string;
269
+ }, readonly [Schema.Struct<{
270
+ readonly _tag: Schema.tag<"UnauthorizedError">;
271
+ readonly message: Schema.String;
272
+ }>], {
273
+ readonly _tag: "UnauthorizedError";
274
+ readonly message: string;
275
+ }>, Schema.Struct<{
276
+ readonly _tag: Schema.tag<"UnauthorizedError">;
277
+ readonly message: Schema.String;
278
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ValidationError, {
279
+ readonly _tag: "ValidationError";
280
+ readonly message: string;
281
+ readonly fields?: {
282
+ readonly [x: string]: readonly string[];
283
+ } | null;
284
+ }, readonly [Schema.Struct<{
285
+ readonly _tag: Schema.tag<"ValidationError">;
286
+ readonly message: Schema.String;
287
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
288
+ }>], {
289
+ readonly _tag: "ValidationError";
290
+ readonly message: string;
291
+ readonly fields?: {
292
+ readonly [x: string]: readonly string[];
293
+ } | null;
294
+ }>, Schema.Struct<{
295
+ readonly _tag: Schema.tag<"ValidationError">;
296
+ readonly message: Schema.String;
297
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
298
+ }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"eventsCreate", "POST", "/v1/events", never, never, Schema.toCodecJson<Schema.Struct<{
299
+ readonly contact: Schema.Union<readonly [Schema.Struct<{
300
+ readonly id: Schema.brand<Schema.String, "ContactId">;
301
+ readonly externalId: Schema.optionalKey<Schema.Never>;
302
+ readonly email: Schema.optionalKey<Schema.Never>;
303
+ }>, Schema.Struct<{
304
+ readonly externalId: Schema.String;
305
+ readonly id: Schema.optionalKey<Schema.Never>;
306
+ readonly email: Schema.optionalKey<Schema.Never>;
307
+ }>, Schema.Struct<{
308
+ readonly email: Schema.String;
309
+ readonly id: Schema.optionalKey<Schema.Never>;
310
+ readonly externalId: Schema.optionalKey<Schema.Never>;
311
+ }>]>;
312
+ readonly name: Schema.String;
313
+ readonly properties: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>>;
314
+ readonly occurredAt: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
315
+ readonly idempotencyKey: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
316
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
317
+ readonly id: Schema.String;
318
+ readonly contactId: Schema.brand<Schema.String, "ContactId">;
319
+ readonly name: Schema.String;
320
+ readonly source: Schema.Union<readonly [Schema.Literal<"api">, Schema.Literal<"samva">]>;
321
+ readonly properties: Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>;
322
+ readonly occurredAt: Schema.String;
323
+ readonly recordedAt: Schema.String;
324
+ }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<BillingProviderError, {
325
+ readonly _tag: "BillingProviderError";
326
+ readonly message: string;
327
+ }, readonly [Schema.Struct<{
328
+ readonly _tag: Schema.tag<"BillingProviderError">;
329
+ readonly message: Schema.String;
330
+ }>], {
331
+ readonly _tag: "BillingProviderError";
332
+ readonly message: string;
333
+ }>, Schema.Struct<{
334
+ readonly _tag: Schema.tag<"BillingProviderError">;
335
+ readonly message: Schema.String;
336
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ConflictError, {
337
+ readonly _tag: "ConflictError";
338
+ readonly message: string;
339
+ readonly resource: string;
340
+ readonly id?: string | null;
341
+ }, readonly [Schema.Struct<{
342
+ readonly _tag: Schema.tag<"ConflictError">;
343
+ readonly message: Schema.String;
344
+ readonly resource: Schema.String;
345
+ readonly id: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
346
+ }>], {
347
+ readonly _tag: "ConflictError";
348
+ readonly message: string;
349
+ readonly resource: string;
350
+ readonly id?: string | null;
351
+ }>, Schema.Struct<{
352
+ readonly _tag: Schema.tag<"ConflictError">;
353
+ readonly message: Schema.String;
354
+ readonly resource: Schema.String;
355
+ readonly id: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
356
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ForbiddenError, {
357
+ readonly _tag: "ForbiddenError";
358
+ readonly message: string;
359
+ }, readonly [Schema.Struct<{
360
+ readonly _tag: Schema.tag<"ForbiddenError">;
361
+ readonly message: Schema.String;
362
+ }>], {
363
+ readonly _tag: "ForbiddenError";
364
+ readonly message: string;
365
+ }>, Schema.Struct<{
366
+ readonly _tag: Schema.tag<"ForbiddenError">;
367
+ readonly message: Schema.String;
368
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<GatewayTimeoutError, {
369
+ readonly _tag: "GatewayTimeoutError";
370
+ readonly message: string;
371
+ readonly retryAfterSeconds: number;
372
+ }, readonly [Schema.Struct<{
373
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
374
+ readonly message: Schema.String;
375
+ readonly retryAfterSeconds: Schema.Finite;
376
+ }>], {
377
+ readonly _tag: "GatewayTimeoutError";
378
+ readonly message: string;
379
+ readonly retryAfterSeconds: number;
380
+ }>, Schema.Struct<{
381
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
382
+ readonly message: Schema.String;
383
+ readonly retryAfterSeconds: Schema.Finite;
384
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<PaymentRequiredError, {
385
+ readonly _tag: "PaymentRequiredError";
386
+ readonly message: string;
387
+ readonly resource: string;
388
+ readonly currentUsage: number;
389
+ readonly limit: number;
390
+ }, readonly [Schema.Struct<{
391
+ readonly _tag: Schema.tag<"PaymentRequiredError">;
392
+ readonly message: Schema.String;
393
+ readonly resource: Schema.String;
394
+ readonly currentUsage: Schema.Finite;
395
+ readonly limit: Schema.Finite;
396
+ }>], {
397
+ readonly _tag: "PaymentRequiredError";
398
+ readonly message: string;
399
+ readonly resource: string;
400
+ readonly currentUsage: number;
401
+ readonly limit: number;
402
+ }>, Schema.Struct<{
403
+ readonly _tag: Schema.tag<"PaymentRequiredError">;
404
+ readonly message: Schema.String;
405
+ readonly resource: Schema.String;
406
+ readonly currentUsage: Schema.Finite;
407
+ readonly limit: Schema.Finite;
408
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ResourceNotFoundError, {
409
+ readonly _tag: "ResourceNotFoundError";
410
+ readonly resource: string;
411
+ readonly id: string;
412
+ readonly message: string;
413
+ }, readonly [Schema.Struct<{
414
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
415
+ readonly resource: Schema.String;
416
+ readonly id: Schema.String;
417
+ readonly message: Schema.String;
418
+ }>], {
419
+ readonly _tag: "ResourceNotFoundError";
420
+ readonly resource: string;
421
+ readonly id: string;
422
+ readonly message: string;
423
+ }>, Schema.Struct<{
424
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
425
+ readonly resource: Schema.String;
426
+ readonly id: Schema.String;
427
+ readonly message: Schema.String;
428
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<UnauthorizedError, {
429
+ readonly _tag: "UnauthorizedError";
430
+ readonly message: string;
431
+ }, readonly [Schema.Struct<{
432
+ readonly _tag: Schema.tag<"UnauthorizedError">;
433
+ readonly message: Schema.String;
434
+ }>], {
435
+ readonly _tag: "UnauthorizedError";
436
+ readonly message: string;
437
+ }>, Schema.Struct<{
438
+ readonly _tag: Schema.tag<"UnauthorizedError">;
439
+ readonly message: Schema.String;
440
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ValidationError, {
441
+ readonly _tag: "ValidationError";
442
+ readonly message: string;
443
+ readonly fields?: {
444
+ readonly [x: string]: readonly string[];
445
+ } | null;
446
+ }, readonly [Schema.Struct<{
447
+ readonly _tag: Schema.tag<"ValidationError">;
448
+ readonly message: Schema.String;
449
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
450
+ }>], {
451
+ readonly _tag: "ValidationError";
452
+ readonly message: string;
453
+ readonly fields?: {
454
+ readonly [x: string]: readonly string[];
455
+ } | null;
456
+ }>, Schema.Struct<{
457
+ readonly _tag: Schema.tag<"ValidationError">;
458
+ readonly message: Schema.String;
459
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
460
+ }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never>, false>;
461
+ export declare class EventsGroup extends EventsGroup_base {
462
+ }
463
+ export {};
@@ -0,0 +1,70 @@
1
+ import { ApiKeySecurityMiddleware, BillingProviderError, ConflictError, ContactEvent, ContactEventReference, CreateEventPayload, ForbiddenError, GatewayTimeoutError, InternalError, JsonObject, PaymentRequiredError, ResourceNotFoundError, UnauthorizedError, ValidationError } from "./shared.js";
2
+ import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
3
+ import * as Schema from "effect/Schema";
4
+ //#region src/effect/generated/events.ts
5
+ const BatchEventsResult = /* @__PURE__ */ Schema.Struct({
6
+ total: Schema.Finite.check(Schema.isInt().annotate({ expected: "an integer" })),
7
+ accepted: Schema.Finite.check(Schema.isInt().annotate({ expected: "an integer" })),
8
+ errors: Schema.Finite.check(Schema.isInt().annotate({ expected: "an integer" })),
9
+ results: Schema.Array(Schema.Struct({
10
+ index: Schema.Finite.check(Schema.isInt().annotate({ expected: "an integer" })),
11
+ status: Schema.Union([Schema.Literal("accepted"), Schema.Literal("error")]),
12
+ event: Schema.optionalKey(Schema.Union([ContactEvent, Schema.Null])),
13
+ error: Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]))
14
+ }))
15
+ }).annotate({ identifier: "BatchEventsResult" });
16
+ const EventsCreateRequestJson = /* @__PURE__ */ Schema.Struct({
17
+ contact: ContactEventReference,
18
+ name: Schema.String.check(Schema.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema.isMaxCodePoints(255).annotate({ expected: "a string with at most 255 code points" })).check(Schema.isMaxLength(255).annotate({ expected: "a value with a length of at most 255" })).check(Schema.isPattern(/* @__PURE__ */ new RegExp("^(?!(?:[Cc][Oo][Nn][Tt][Aa][Cc][Tt]|[Ss][Aa][Mm][Vv][Aa])\\.)[A-Za-z][A-Za-z0-9_.-]*$")).annotate({ expected: "a string matching the RegExp ^(?!(?:[Cc][Oo][Nn][Tt][Aa][Cc][Tt]|[Ss][Aa][Mm][Vv][Aa])\\.)[A-Za-z][A-Za-z0-9_.-]*$" })),
19
+ properties: Schema.optionalKey(Schema.Union([JsonObject, Schema.Null])),
20
+ occurredAt: Schema.optionalKey(Schema.Union([Schema.String, Schema.Null])),
21
+ idempotencyKey: Schema.optionalKey(Schema.Union([Schema.String.check(Schema.isMinLength(1).annotate({ expected: "a value with a length of at least 1" })).check(Schema.isMaxCodePoints(255).annotate({ expected: "a string with at most 255 code points" })).check(Schema.isMaxLength(255).annotate({ expected: "a value with a length of at most 255" })), Schema.Null]))
22
+ });
23
+ const EventsCreate200 = ContactEvent;
24
+ const EventsCreate401 = UnauthorizedError;
25
+ const EventsCreate402 = PaymentRequiredError;
26
+ const EventsCreate403 = ForbiddenError;
27
+ const EventsCreate404 = ResourceNotFoundError;
28
+ const EventsCreate409 = ConflictError;
29
+ const EventsCreate422 = ValidationError;
30
+ const EventsCreate500 = InternalError;
31
+ const EventsCreate502 = BillingProviderError;
32
+ const EventsCreate504 = GatewayTimeoutError;
33
+ const EventsBatchRequestJson = /* @__PURE__ */ Schema.Struct({ events: Schema.TupleWithRest(Schema.Tuple([CreateEventPayload]), [CreateEventPayload]).check(Schema.isMaxLength(100).annotate({ expected: "a value with a length of at most 100" })) });
34
+ const EventsBatch200 = BatchEventsResult;
35
+ const EventsBatch401 = UnauthorizedError;
36
+ const EventsBatch403 = ForbiddenError;
37
+ const EventsBatch404 = ResourceNotFoundError;
38
+ const EventsBatch422 = ValidationError;
39
+ const EventsBatch500 = InternalError;
40
+ const EventsBatch504 = GatewayTimeoutError;
41
+ var EventsGroup = class extends HttpApiGroup.make("Events").add(HttpApiEndpoint.post("eventsCreate", "/v1/events", {
42
+ payload: EventsCreateRequestJson,
43
+ success: EventsCreate200,
44
+ error: [
45
+ EventsCreate401.pipe(HttpApiSchema.status(401)),
46
+ EventsCreate402.pipe(HttpApiSchema.status(402)),
47
+ EventsCreate403.pipe(HttpApiSchema.status(403)),
48
+ EventsCreate404.pipe(HttpApiSchema.status(404)),
49
+ EventsCreate409.pipe(HttpApiSchema.status(409)),
50
+ EventsCreate422.pipe(HttpApiSchema.status(422)),
51
+ EventsCreate500,
52
+ EventsCreate502.pipe(HttpApiSchema.status(502)),
53
+ EventsCreate504.pipe(HttpApiSchema.status(504))
54
+ ]
55
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "events.create").annotate(OpenApi.Summary, "Record a contact event").annotate(OpenApi.Description, "Records a custom contact event. Identify the contact by exactly one ID, external ID, or email. A missing email or external ID creates a contact; an unknown contact ID returns 404. An organization-scoped idempotency key replays the original event. Event names use letters, digits, underscores, hyphens, and dots, up to 255 characters; contact. and samva. prefixes are reserved. Properties allow at most 50 keys and 32 KiB of UTF-8 JSON. Events are retained for 90 days."), HttpApiEndpoint.post("eventsBatch", "/v1/events/batch", {
56
+ payload: EventsBatchRequestJson,
57
+ success: EventsBatch200,
58
+ error: [
59
+ EventsBatch401.pipe(HttpApiSchema.status(401)),
60
+ EventsBatch403.pipe(HttpApiSchema.status(403)),
61
+ EventsBatch404.pipe(HttpApiSchema.status(404)),
62
+ EventsBatch422.pipe(HttpApiSchema.status(422)),
63
+ EventsBatch500,
64
+ EventsBatch504.pipe(HttpApiSchema.status(504))
65
+ ]
66
+ }).middleware(ApiKeySecurityMiddleware).annotate(OpenApi.Identifier, "events.batch").annotate(OpenApi.Summary, "Record contact events in a batch").annotate(OpenApi.Description, "Validates the full request shape, contact references, and event names before processing. A schema failure rejects the entire batch without writes. Between 1 and 100 valid entries are then processed in input order, with independent indexed results for properties limits, contact resolution, and idempotency.")).annotate(OpenApi.Description, "Custom contact event ingestion") {};
67
+ //#endregion
68
+ export { BatchEventsResult, EventsBatch200, EventsBatch401, EventsBatch403, EventsBatch404, EventsBatch422, EventsBatch500, EventsBatch504, EventsBatchRequestJson, EventsCreate200, EventsCreate401, EventsCreate402, EventsCreate403, EventsCreate404, EventsCreate409, EventsCreate422, EventsCreate500, EventsCreate502, EventsCreate504, EventsCreateRequestJson, EventsGroup };
69
+
70
+ //# sourceMappingURL=events.js.map