@primitivedotdev/sdk 1.14.1 → 1.14.3

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.
@@ -29,6 +29,10 @@ const schema12 = {
29
29
  "$ref": "#/definitions/WebhookVersion",
30
30
  "description": "API version in date format (YYYY-MM-DD). Use this to detect version mismatches between webhook and SDK."
31
31
  },
32
+ "routing": {
33
+ "$ref": "#/definitions/RoutingDecision",
34
+ "description": "The recipient-routing decision for this email: where it was delivered and why. Present only when recipient routing ran for the organization; omitted otherwise. This is the compact decision also recorded on the email's routing metadata."
35
+ },
32
36
  "delivery": {
33
37
  "type": "object",
34
38
  "properties": {
@@ -196,6 +200,53 @@ const schema12 = {
196
200
  ],
197
201
  "description": "Webhook payload for the `email.received` event.\n\nThis is delivered to your webhook endpoint when Primitive receives an email matching your domain configuration."
198
202
  };
203
+ const schema14 = {
204
+ "type": "object",
205
+ "description": "The recipient-routing decision for an inbound email: which endpoint it resolved to and why. Present on the event only when recipient routing ran for the organization.",
206
+ "properties": {
207
+ "version": {
208
+ "type": "integer",
209
+ "description": "Decision schema version, so consumers can detect shape changes."
210
+ },
211
+ "outcome": {
212
+ "type": "string",
213
+ "enum": [
214
+ "matched",
215
+ "defaulted",
216
+ "none"
217
+ ],
218
+ "description": "How the destination was chosen: `matched` a recipient route, fell back to a `defaulted` destination (domain or org), or `none` (no destination resolved)."
219
+ },
220
+ "endpoint_id": {
221
+ "type": ["string", "null"],
222
+ "description": "The endpoint the email was delivered to, or null when no destination resolved."
223
+ },
224
+ "matched_route_id": {
225
+ "type": ["string", "null"],
226
+ "description": "The recipient route that matched, or null when the outcome was not `matched`."
227
+ },
228
+ "matched_tier": {
229
+ "type": ["string", "null"],
230
+ "enum": [
231
+ "exact",
232
+ "wildcard",
233
+ "regex",
234
+ null
235
+ ],
236
+ "description": "The match tier of the route that matched, or null when the outcome was not `matched`."
237
+ },
238
+ "default_scope": {
239
+ "type": ["string", "null"],
240
+ "enum": [
241
+ "domain",
242
+ "org",
243
+ null
244
+ ],
245
+ "description": "When the outcome was `defaulted`, whether the default came from the domain or the organization; null otherwise."
246
+ }
247
+ },
248
+ "required": ["outcome"]
249
+ };
199
250
  const pattern0 = /* @__PURE__ */ new RegExp("^evt_[a-f0-9]{64}$", "u");
200
251
  const pattern1 = /* @__PURE__ */ new RegExp("^(?:(?:\\d{4}-(?:(?:01|03|05|07|08|10|12)-(?:0[1-9]|[12]\\d|3[01])|(?:04|06|09|11)-(?:0[1-9]|[12]\\d|30)|02-(?:0[1-9]|1\\d|2[0-8])))|(?:(?:[02468][048]00|[13579][26]00|\\d{2}(?:0[48]|[2468][048]|[13579][26]))-02-29))$", "u");
201
252
  const pattern4 = /* @__PURE__ */ new RegExp("^https?://", "u");
@@ -698,7 +749,7 @@ function validate12(data, { instancePath = "", parentData, parentDataProperty, r
698
749
  validate12.errors = vErrors;
699
750
  return errors === 0;
700
751
  }
701
- const schema18 = {
752
+ const schema19 = {
702
753
  "type": "object",
703
754
  "properties": {
704
755
  "status": {
@@ -790,7 +841,7 @@ const schema18 = {
790
841
  ],
791
842
  "description": "Parsed email content when parsing succeeded.\n\nUse the discriminant `status: \"complete\"` to narrow from {@link ParsedData } ."
792
843
  };
793
- const schema19 = {
844
+ const schema20 = {
794
845
  "type": "object",
795
846
  "properties": {
796
847
  "address": {
@@ -805,7 +856,7 @@ const schema19 = {
805
856
  "required": ["address", "name"],
806
857
  "description": "A parsed email address with optional display name.\n\nThis structure is used in the `parsed` section of the webhook payload (e.g., `reply_to`, `cc`, `bcc`). For unparsed header strings, see the `headers` section (e.g., `event.email.headers.from`)."
807
858
  };
808
- const schema23 = {
859
+ const schema24 = {
809
860
  "type": "object",
810
861
  "properties": {
811
862
  "filename": {
@@ -1042,7 +1093,7 @@ function validate15(data, { instancePath = "", parentData, parentDataProperty, r
1042
1093
  instancePath: instancePath + "/body_text",
1043
1094
  schemaPath: "#/properties/body_text/type",
1044
1095
  keyword: "type",
1045
- params: { type: schema18.properties.body_text.type },
1096
+ params: { type: schema19.properties.body_text.type },
1046
1097
  message: "must be string,null"
1047
1098
  };
1048
1099
  if (vErrors === null) vErrors = [err15];
@@ -1057,7 +1108,7 @@ function validate15(data, { instancePath = "", parentData, parentDataProperty, r
1057
1108
  instancePath: instancePath + "/body_html",
1058
1109
  schemaPath: "#/properties/body_html/type",
1059
1110
  keyword: "type",
1060
- params: { type: schema18.properties.body_html.type },
1111
+ params: { type: schema19.properties.body_html.type },
1061
1112
  message: "must be string,null"
1062
1113
  };
1063
1114
  if (vErrors === null) vErrors = [err16];
@@ -1120,7 +1171,7 @@ function validate15(data, { instancePath = "", parentData, parentDataProperty, r
1120
1171
  instancePath: instancePath + "/reply_to/" + i0 + "/name",
1121
1172
  schemaPath: "#/definitions/EmailAddress/properties/name/type",
1122
1173
  keyword: "type",
1123
- params: { type: schema19.properties.name.type },
1174
+ params: { type: schema20.properties.name.type },
1124
1175
  message: "must be string,null"
1125
1176
  };
1126
1177
  if (vErrors === null) vErrors = [err20];
@@ -1244,7 +1295,7 @@ function validate15(data, { instancePath = "", parentData, parentDataProperty, r
1244
1295
  instancePath: instancePath + "/cc/" + i1 + "/name",
1245
1296
  schemaPath: "#/definitions/EmailAddress/properties/name/type",
1246
1297
  keyword: "type",
1247
- params: { type: schema19.properties.name.type },
1298
+ params: { type: schema20.properties.name.type },
1248
1299
  message: "must be string,null"
1249
1300
  };
1250
1301
  if (vErrors === null) vErrors = [err28];
@@ -1368,7 +1419,7 @@ function validate15(data, { instancePath = "", parentData, parentDataProperty, r
1368
1419
  instancePath: instancePath + "/bcc/" + i2 + "/name",
1369
1420
  schemaPath: "#/definitions/EmailAddress/properties/name/type",
1370
1421
  keyword: "type",
1371
- params: { type: schema19.properties.name.type },
1422
+ params: { type: schema20.properties.name.type },
1372
1423
  message: "must be string,null"
1373
1424
  };
1374
1425
  if (vErrors === null) vErrors = [err36];
@@ -1492,7 +1543,7 @@ function validate15(data, { instancePath = "", parentData, parentDataProperty, r
1492
1543
  instancePath: instancePath + "/to_addresses/" + i3 + "/name",
1493
1544
  schemaPath: "#/definitions/EmailAddress/properties/name/type",
1494
1545
  keyword: "type",
1495
- params: { type: schema19.properties.name.type },
1546
+ params: { type: schema20.properties.name.type },
1496
1547
  message: "must be string,null"
1497
1548
  };
1498
1549
  if (vErrors === null) vErrors = [err44];
@@ -1781,7 +1832,7 @@ function validate15(data, { instancePath = "", parentData, parentDataProperty, r
1781
1832
  instancePath: instancePath + "/attachments/" + i6 + "/filename",
1782
1833
  schemaPath: "#/definitions/WebhookAttachment/properties/filename/type",
1783
1834
  keyword: "type",
1784
- params: { type: schema23.properties.filename.type },
1835
+ params: { type: schema24.properties.filename.type },
1785
1836
  message: "must be string,null"
1786
1837
  };
1787
1838
  if (vErrors === null) vErrors = [err63];
@@ -1942,7 +1993,7 @@ function validate15(data, { instancePath = "", parentData, parentDataProperty, r
1942
1993
  instancePath: instancePath + "/attachments_download_url",
1943
1994
  schemaPath: "#/properties/attachments_download_url/type",
1944
1995
  keyword: "type",
1945
- params: { type: schema18.properties.attachments_download_url.type },
1996
+ params: { type: schema19.properties.attachments_download_url.type },
1946
1997
  message: "must be string,null"
1947
1998
  };
1948
1999
  if (vErrors === null) vErrors = [err74];
@@ -1991,7 +2042,7 @@ function validate15(data, { instancePath = "", parentData, parentDataProperty, r
1991
2042
  validate15.errors = vErrors;
1992
2043
  return errors === 0;
1993
2044
  }
1994
- const schema25 = {
2045
+ const schema26 = {
1995
2046
  "type": "object",
1996
2047
  "properties": {
1997
2048
  "code": {
@@ -2248,7 +2299,7 @@ function validate17(data, { instancePath = "", parentData, parentDataProperty, r
2248
2299
  instancePath: instancePath + "/error/code",
2249
2300
  schemaPath: "#/definitions/ParsedError/properties/code/enum",
2250
2301
  keyword: "enum",
2251
- params: { allowedValues: schema25.properties.code.enum },
2302
+ params: { allowedValues: schema26.properties.code.enum },
2252
2303
  message: "must be equal to one of the allowed values"
2253
2304
  };
2254
2305
  if (vErrors === null) vErrors = [err18];
@@ -2495,7 +2546,7 @@ function validate17(data, { instancePath = "", parentData, parentDataProperty, r
2495
2546
  instancePath: instancePath + "/attachments/" + i0 + "/filename",
2496
2547
  schemaPath: "#/definitions/WebhookAttachment/properties/filename/type",
2497
2548
  keyword: "type",
2498
- params: { type: schema23.properties.filename.type },
2549
+ params: { type: schema24.properties.filename.type },
2499
2550
  message: "must be string,null"
2500
2551
  };
2501
2552
  if (vErrors === null) vErrors = [err36];
@@ -2728,7 +2779,7 @@ function validate14(data, { instancePath = "", parentData, parentDataProperty, r
2728
2779
  validate14.errors = vErrors;
2729
2780
  return errors === 0;
2730
2781
  }
2731
- const schema39 = {
2782
+ const schema40 = {
2732
2783
  "type": "object",
2733
2784
  "properties": {
2734
2785
  "is_bounce": {
@@ -2828,7 +2879,7 @@ const schema39 = {
2828
2879
  ],
2829
2880
  "description": "Parsed delivery status notification (bounce). Present as `email.analysis.bounce` on `email.bounced` events."
2830
2881
  };
2831
- const schema28 = {
2882
+ const schema29 = {
2832
2883
  "type": "object",
2833
2884
  "properties": {
2834
2885
  "detected": {
@@ -2865,7 +2916,7 @@ const schema28 = {
2865
2916
  ],
2866
2917
  "description": "Forward detection and analysis results."
2867
2918
  };
2868
- const schema38 = {
2919
+ const schema39 = {
2869
2920
  "type": "object",
2870
2921
  "properties": {
2871
2922
  "type": {
@@ -2909,7 +2960,7 @@ const schema38 = {
2909
2960
  ],
2910
2961
  "description": "Result for an attachment forward that was detected but not analyzed. This occurs when attachment analysis is disabled or the limit was reached."
2911
2962
  };
2912
- const schema32 = {
2963
+ const schema33 = {
2913
2964
  "type": "object",
2914
2965
  "properties": {
2915
2966
  "verdict": {
@@ -2942,12 +2993,12 @@ const schema32 = {
2942
2993
  ],
2943
2994
  "description": "Verification result for a forwarded email."
2944
2995
  };
2945
- const schema33 = {
2996
+ const schema34 = {
2946
2997
  "type": "string",
2947
2998
  "enum": ["legit", "unknown"],
2948
2999
  "description": "Verdict for forwarded email verification.\n\n- `legit`: DKIM signature verified the original sender\n- `unknown`: Could not verify the forwarded email's authenticity"
2949
3000
  };
2950
- const schema34 = {
3001
+ const schema35 = {
2951
3002
  "type": "string",
2952
3003
  "enum": [
2953
3004
  "high",
@@ -2956,7 +3007,7 @@ const schema34 = {
2956
3007
  ],
2957
3008
  "description": "Confidence level for the authentication verdict.\n\n- `high`: Strong cryptographic evidence (DKIM aligned + DMARC pass)\n- `medium`: Good evidence but with caveats (SPF-only alignment)\n- `low`: Weak evidence (missing authentication or unclear results)"
2958
3009
  };
2959
- const schema35 = {
3010
+ const schema36 = {
2960
3011
  "type": ["string", "null"],
2961
3012
  "enum": [
2962
3013
  "reject",
@@ -3049,7 +3100,7 @@ function validate24(data, { instancePath = "", parentData, parentDataProperty, r
3049
3100
  instancePath: instancePath + "/verdict",
3050
3101
  schemaPath: "#/definitions/ForwardVerdict/enum",
3051
3102
  keyword: "enum",
3052
- params: { allowedValues: schema33.enum },
3103
+ params: { allowedValues: schema34.enum },
3053
3104
  message: "must be equal to one of the allowed values"
3054
3105
  };
3055
3106
  if (vErrors === null) vErrors = [err6];
@@ -3076,7 +3127,7 @@ function validate24(data, { instancePath = "", parentData, parentDataProperty, r
3076
3127
  instancePath: instancePath + "/confidence",
3077
3128
  schemaPath: "#/definitions/AuthConfidence/enum",
3078
3129
  keyword: "enum",
3079
- params: { allowedValues: schema34.enum },
3130
+ params: { allowedValues: schema35.enum },
3080
3131
  message: "must be equal to one of the allowed values"
3081
3132
  };
3082
3133
  if (vErrors === null) vErrors = [err8];
@@ -3105,7 +3156,7 @@ function validate24(data, { instancePath = "", parentData, parentDataProperty, r
3105
3156
  instancePath: instancePath + "/dkim_domain",
3106
3157
  schemaPath: "#/properties/dkim_domain/type",
3107
3158
  keyword: "type",
3108
- params: { type: schema32.properties.dkim_domain.type },
3159
+ params: { type: schema33.properties.dkim_domain.type },
3109
3160
  message: "must be string,null"
3110
3161
  };
3111
3162
  if (vErrors === null) vErrors = [err10];
@@ -3120,7 +3171,7 @@ function validate24(data, { instancePath = "", parentData, parentDataProperty, r
3120
3171
  instancePath: instancePath + "/dmarc_policy",
3121
3172
  schemaPath: "#/definitions/DmarcPolicy/type",
3122
3173
  keyword: "type",
3123
- params: { type: schema35.type },
3174
+ params: { type: schema36.type },
3124
3175
  message: "must be string,null"
3125
3176
  };
3126
3177
  if (vErrors === null) vErrors = [err11];
@@ -3132,7 +3183,7 @@ function validate24(data, { instancePath = "", parentData, parentDataProperty, r
3132
3183
  instancePath: instancePath + "/dmarc_policy",
3133
3184
  schemaPath: "#/definitions/DmarcPolicy/enum",
3134
3185
  keyword: "enum",
3135
- params: { allowedValues: schema35.enum },
3186
+ params: { allowedValues: schema36.enum },
3136
3187
  message: "must be equal to one of the allowed values"
3137
3188
  };
3138
3189
  if (vErrors === null) vErrors = [err12];
@@ -3380,7 +3431,7 @@ function validate23(data, { instancePath = "", parentData, parentDataProperty, r
3380
3431
  validate23.errors = vErrors;
3381
3432
  return errors === 0;
3382
3433
  }
3383
- const schema36 = {
3434
+ const schema37 = {
3384
3435
  "type": "object",
3385
3436
  "properties": {
3386
3437
  "type": {
@@ -3560,7 +3611,7 @@ function validate27(data, { instancePath = "", parentData, parentDataProperty, r
3560
3611
  instancePath: instancePath + "/attachment_filename",
3561
3612
  schemaPath: "#/properties/attachment_filename/type",
3562
3613
  keyword: "type",
3563
- params: { type: schema36.properties.attachment_filename.type },
3614
+ params: { type: schema37.properties.attachment_filename.type },
3564
3615
  message: "must be string,null"
3565
3616
  };
3566
3617
  if (vErrors === null) vErrors = [err10];
@@ -3906,7 +3957,7 @@ function validate22(data, { instancePath = "", parentData, parentDataProperty, r
3906
3957
  instancePath: instancePath + "/attachment_filename",
3907
3958
  schemaPath: "#/definitions/ForwardResultAttachmentSkipped/properties/attachment_filename/type",
3908
3959
  keyword: "type",
3909
- params: { type: schema38.properties.attachment_filename.type },
3960
+ params: { type: schema39.properties.attachment_filename.type },
3910
3961
  message: "must be string,null"
3911
3962
  };
3912
3963
  if (vErrors === null) vErrors = [err10];
@@ -4193,7 +4244,7 @@ function validate21(data, { instancePath = "", parentData, parentDataProperty, r
4193
4244
  instancePath: instancePath + "/attachments_limit",
4194
4245
  schemaPath: "#/properties/attachments_limit/type",
4195
4246
  keyword: "type",
4196
- params: { type: schema28.properties.attachments_limit.type },
4247
+ params: { type: schema29.properties.attachments_limit.type },
4197
4248
  message: "must be integer,null"
4198
4249
  };
4199
4250
  if (vErrors === null) vErrors = [err11];
@@ -4233,7 +4284,7 @@ function validate21(data, { instancePath = "", parentData, parentDataProperty, r
4233
4284
  validate21.errors = vErrors;
4234
4285
  return errors === 0;
4235
4286
  }
4236
- const schema40 = {
4287
+ const schema41 = {
4237
4288
  "type": "object",
4238
4289
  "properties": {
4239
4290
  "kind": {
@@ -4282,7 +4333,7 @@ const schema40 = {
4282
4333
  ],
4283
4334
  "description": "Parsed SMTP TLS report (RFC 8460). Present as `email.analysis.tls_report` on `email.tls_report` events."
4284
4335
  };
4285
- const schema41 = {
4336
+ const schema42 = {
4286
4337
  "type": "object",
4287
4338
  "properties": {
4288
4339
  "policy_domain": { "type": ["string", "null"] },
@@ -4305,7 +4356,7 @@ const schema41 = {
4305
4356
  "failures"
4306
4357
  ]
4307
4358
  };
4308
- const schema42 = {
4359
+ const schema43 = {
4309
4360
  "type": "object",
4310
4361
  "properties": {
4311
4362
  "result_type": {
@@ -4397,7 +4448,7 @@ function validate33(data, { instancePath = "", parentData, parentDataProperty, r
4397
4448
  instancePath: instancePath + "/policy_domain",
4398
4449
  schemaPath: "#/properties/policy_domain/type",
4399
4450
  keyword: "type",
4400
- params: { type: schema41.properties.policy_domain.type },
4451
+ params: { type: schema42.properties.policy_domain.type },
4401
4452
  message: "must be string,null"
4402
4453
  };
4403
4454
  if (vErrors === null) vErrors = [err5];
@@ -4412,7 +4463,7 @@ function validate33(data, { instancePath = "", parentData, parentDataProperty, r
4412
4463
  instancePath: instancePath + "/policy_type",
4413
4464
  schemaPath: "#/properties/policy_type/type",
4414
4465
  keyword: "type",
4415
- params: { type: schema41.properties.policy_type.type },
4466
+ params: { type: schema42.properties.policy_type.type },
4416
4467
  message: "must be string,null"
4417
4468
  };
4418
4469
  if (vErrors === null) vErrors = [err6];
@@ -4512,7 +4563,7 @@ function validate33(data, { instancePath = "", parentData, parentDataProperty, r
4512
4563
  instancePath: instancePath + "/failures/" + i0 + "/result_type",
4513
4564
  schemaPath: "#/definitions/TlsReportFailure/properties/result_type/type",
4514
4565
  keyword: "type",
4515
- params: { type: schema42.properties.result_type.type },
4566
+ params: { type: schema43.properties.result_type.type },
4516
4567
  message: "must be string,null"
4517
4568
  };
4518
4569
  if (vErrors === null) vErrors = [err13];
@@ -4542,7 +4593,7 @@ function validate33(data, { instancePath = "", parentData, parentDataProperty, r
4542
4593
  instancePath: instancePath + "/failures/" + i0 + "/sending_mta_ip",
4543
4594
  schemaPath: "#/definitions/TlsReportFailure/properties/sending_mta_ip/type",
4544
4595
  keyword: "type",
4545
- params: { type: schema42.properties.sending_mta_ip.type },
4596
+ params: { type: schema43.properties.sending_mta_ip.type },
4546
4597
  message: "must be string,null"
4547
4598
  };
4548
4599
  if (vErrors === null) vErrors = [err15];
@@ -4557,7 +4608,7 @@ function validate33(data, { instancePath = "", parentData, parentDataProperty, r
4557
4608
  instancePath: instancePath + "/failures/" + i0 + "/receiving_mx_hostname",
4558
4609
  schemaPath: "#/definitions/TlsReportFailure/properties/receiving_mx_hostname/type",
4559
4610
  keyword: "type",
4560
- params: { type: schema42.properties.receiving_mx_hostname.type },
4611
+ params: { type: schema43.properties.receiving_mx_hostname.type },
4561
4612
  message: "must be string,null"
4562
4613
  };
4563
4614
  if (vErrors === null) vErrors = [err16];
@@ -4740,7 +4791,7 @@ function validate32(data, { instancePath = "", parentData, parentDataProperty, r
4740
4791
  instancePath: instancePath + "/organization",
4741
4792
  schemaPath: "#/properties/organization/type",
4742
4793
  keyword: "type",
4743
- params: { type: schema40.properties.organization.type },
4794
+ params: { type: schema41.properties.organization.type },
4744
4795
  message: "must be string,null"
4745
4796
  };
4746
4797
  if (vErrors === null) vErrors = [err10];
@@ -4755,7 +4806,7 @@ function validate32(data, { instancePath = "", parentData, parentDataProperty, r
4755
4806
  instancePath: instancePath + "/report_id",
4756
4807
  schemaPath: "#/properties/report_id/type",
4757
4808
  keyword: "type",
4758
- params: { type: schema40.properties.report_id.type },
4809
+ params: { type: schema41.properties.report_id.type },
4759
4810
  message: "must be string,null"
4760
4811
  };
4761
4812
  if (vErrors === null) vErrors = [err11];
@@ -4770,7 +4821,7 @@ function validate32(data, { instancePath = "", parentData, parentDataProperty, r
4770
4821
  instancePath: instancePath + "/contact",
4771
4822
  schemaPath: "#/properties/contact/type",
4772
4823
  keyword: "type",
4773
- params: { type: schema40.properties.contact.type },
4824
+ params: { type: schema41.properties.contact.type },
4774
4825
  message: "must be string,null"
4775
4826
  };
4776
4827
  if (vErrors === null) vErrors = [err12];
@@ -4812,7 +4863,7 @@ function validate32(data, { instancePath = "", parentData, parentDataProperty, r
4812
4863
  instancePath: instancePath + "/date_range/start",
4813
4864
  schemaPath: "#/properties/date_range/properties/start/type",
4814
4865
  keyword: "type",
4815
- params: { type: schema40.properties.date_range.properties.start.type },
4866
+ params: { type: schema41.properties.date_range.properties.start.type },
4816
4867
  message: "must be string,null"
4817
4868
  };
4818
4869
  if (vErrors === null) vErrors = [err15];
@@ -4827,7 +4878,7 @@ function validate32(data, { instancePath = "", parentData, parentDataProperty, r
4827
4878
  instancePath: instancePath + "/date_range/end",
4828
4879
  schemaPath: "#/properties/date_range/properties/end/type",
4829
4880
  keyword: "type",
4830
- params: { type: schema40.properties.date_range.properties.end.type },
4881
+ params: { type: schema41.properties.date_range.properties.end.type },
4831
4882
  message: "must be string,null"
4832
4883
  };
4833
4884
  if (vErrors === null) vErrors = [err16];
@@ -4919,7 +4970,7 @@ function validate32(data, { instancePath = "", parentData, parentDataProperty, r
4919
4970
  validate32.errors = vErrors;
4920
4971
  return errors === 0;
4921
4972
  }
4922
- const schema43 = {
4973
+ const schema44 = {
4923
4974
  "type": "object",
4924
4975
  "properties": {
4925
4976
  "kind": {
@@ -5000,7 +5051,7 @@ const schema43 = {
5000
5051
  ],
5001
5052
  "description": "Parsed DMARC aggregate report (RFC 7489). Present as `email.analysis.dmarc_report` on `email.dmarc_report` events."
5002
5053
  };
5003
- const schema44 = {
5054
+ const schema45 = {
5004
5055
  "type": "object",
5005
5056
  "properties": {
5006
5057
  "source_ip": { "type": ["string", "null"] },
@@ -5174,7 +5225,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5174
5225
  instancePath: instancePath + "/organization",
5175
5226
  schemaPath: "#/properties/organization/type",
5176
5227
  keyword: "type",
5177
- params: { type: schema43.properties.organization.type },
5228
+ params: { type: schema44.properties.organization.type },
5178
5229
  message: "must be string,null"
5179
5230
  };
5180
5231
  if (vErrors === null) vErrors = [err11];
@@ -5189,7 +5240,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5189
5240
  instancePath: instancePath + "/report_id",
5190
5241
  schemaPath: "#/properties/report_id/type",
5191
5242
  keyword: "type",
5192
- params: { type: schema43.properties.report_id.type },
5243
+ params: { type: schema44.properties.report_id.type },
5193
5244
  message: "must be string,null"
5194
5245
  };
5195
5246
  if (vErrors === null) vErrors = [err12];
@@ -5231,7 +5282,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5231
5282
  instancePath: instancePath + "/date_range/start",
5232
5283
  schemaPath: "#/properties/date_range/properties/start/type",
5233
5284
  keyword: "type",
5234
- params: { type: schema43.properties.date_range.properties.start.type },
5285
+ params: { type: schema44.properties.date_range.properties.start.type },
5235
5286
  message: "must be string,null"
5236
5287
  };
5237
5288
  if (vErrors === null) vErrors = [err15];
@@ -5246,7 +5297,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5246
5297
  instancePath: instancePath + "/date_range/end",
5247
5298
  schemaPath: "#/properties/date_range/properties/end/type",
5248
5299
  keyword: "type",
5249
- params: { type: schema43.properties.date_range.properties.end.type },
5300
+ params: { type: schema44.properties.date_range.properties.end.type },
5250
5301
  message: "must be string,null"
5251
5302
  };
5252
5303
  if (vErrors === null) vErrors = [err16];
@@ -5349,7 +5400,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5349
5400
  instancePath: instancePath + "/policy_published/domain",
5350
5401
  schemaPath: "#/properties/policy_published/properties/domain/type",
5351
5402
  keyword: "type",
5352
- params: { type: schema43.properties.policy_published.properties.domain.type },
5403
+ params: { type: schema44.properties.policy_published.properties.domain.type },
5353
5404
  message: "must be string,null"
5354
5405
  };
5355
5406
  if (vErrors === null) vErrors = [err24];
@@ -5364,7 +5415,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5364
5415
  instancePath: instancePath + "/policy_published/p",
5365
5416
  schemaPath: "#/properties/policy_published/properties/p/type",
5366
5417
  keyword: "type",
5367
- params: { type: schema43.properties.policy_published.properties.p.type },
5418
+ params: { type: schema44.properties.policy_published.properties.p.type },
5368
5419
  message: "must be string,null"
5369
5420
  };
5370
5421
  if (vErrors === null) vErrors = [err25];
@@ -5379,7 +5430,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5379
5430
  instancePath: instancePath + "/policy_published/sp",
5380
5431
  schemaPath: "#/properties/policy_published/properties/sp/type",
5381
5432
  keyword: "type",
5382
- params: { type: schema43.properties.policy_published.properties.sp.type },
5433
+ params: { type: schema44.properties.policy_published.properties.sp.type },
5383
5434
  message: "must be string,null"
5384
5435
  };
5385
5436
  if (vErrors === null) vErrors = [err26];
@@ -5394,7 +5445,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5394
5445
  instancePath: instancePath + "/policy_published/pct",
5395
5446
  schemaPath: "#/properties/policy_published/properties/pct/type",
5396
5447
  keyword: "type",
5397
- params: { type: schema43.properties.policy_published.properties.pct.type },
5448
+ params: { type: schema44.properties.policy_published.properties.pct.type },
5398
5449
  message: "must be integer,null"
5399
5450
  };
5400
5451
  if (vErrors === null) vErrors = [err27];
@@ -5409,7 +5460,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5409
5460
  instancePath: instancePath + "/policy_published/adkim",
5410
5461
  schemaPath: "#/properties/policy_published/properties/adkim/type",
5411
5462
  keyword: "type",
5412
- params: { type: schema43.properties.policy_published.properties.adkim.type },
5463
+ params: { type: schema44.properties.policy_published.properties.adkim.type },
5413
5464
  message: "must be string,null"
5414
5465
  };
5415
5466
  if (vErrors === null) vErrors = [err28];
@@ -5424,7 +5475,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5424
5475
  instancePath: instancePath + "/policy_published/aspf",
5425
5476
  schemaPath: "#/properties/policy_published/properties/aspf/type",
5426
5477
  keyword: "type",
5427
- params: { type: schema43.properties.policy_published.properties.aspf.type },
5478
+ params: { type: schema44.properties.policy_published.properties.aspf.type },
5428
5479
  message: "must be string,null"
5429
5480
  };
5430
5481
  if (vErrors === null) vErrors = [err29];
@@ -5576,7 +5627,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5576
5627
  instancePath: instancePath + "/records/" + i0 + "/source_ip",
5577
5628
  schemaPath: "#/definitions/DmarcRecord/properties/source_ip/type",
5578
5629
  keyword: "type",
5579
- params: { type: schema44.properties.source_ip.type },
5630
+ params: { type: schema45.properties.source_ip.type },
5580
5631
  message: "must be string,null"
5581
5632
  };
5582
5633
  if (vErrors === null) vErrors = [err40];
@@ -5606,7 +5657,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5606
5657
  instancePath: instancePath + "/records/" + i0 + "/disposition",
5607
5658
  schemaPath: "#/definitions/DmarcRecord/properties/disposition/type",
5608
5659
  keyword: "type",
5609
- params: { type: schema44.properties.disposition.type },
5660
+ params: { type: schema45.properties.disposition.type },
5610
5661
  message: "must be string,null"
5611
5662
  };
5612
5663
  if (vErrors === null) vErrors = [err42];
@@ -5621,7 +5672,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5621
5672
  instancePath: instancePath + "/records/" + i0 + "/dkim",
5622
5673
  schemaPath: "#/definitions/DmarcRecord/properties/dkim/type",
5623
5674
  keyword: "type",
5624
- params: { type: schema44.properties.dkim.type },
5675
+ params: { type: schema45.properties.dkim.type },
5625
5676
  message: "must be string,null"
5626
5677
  };
5627
5678
  if (vErrors === null) vErrors = [err43];
@@ -5636,7 +5687,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5636
5687
  instancePath: instancePath + "/records/" + i0 + "/spf",
5637
5688
  schemaPath: "#/definitions/DmarcRecord/properties/spf/type",
5638
5689
  keyword: "type",
5639
- params: { type: schema44.properties.spf.type },
5690
+ params: { type: schema45.properties.spf.type },
5640
5691
  message: "must be string,null"
5641
5692
  };
5642
5693
  if (vErrors === null) vErrors = [err44];
@@ -5651,7 +5702,7 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
5651
5702
  instancePath: instancePath + "/records/" + i0 + "/header_from",
5652
5703
  schemaPath: "#/definitions/DmarcRecord/properties/header_from/type",
5653
5704
  keyword: "type",
5654
- params: { type: schema44.properties.header_from.type },
5705
+ params: { type: schema45.properties.header_from.type },
5655
5706
  message: "must be string,null"
5656
5707
  };
5657
5708
  if (vErrors === null) vErrors = [err45];
@@ -5977,7 +6028,7 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
5977
6028
  instancePath: instancePath + "/bounce/type",
5978
6029
  schemaPath: "#/definitions/BounceAnalysis/properties/type/enum",
5979
6030
  keyword: "enum",
5980
- params: { allowedValues: schema39.properties.type.enum },
6031
+ params: { allowedValues: schema40.properties.type.enum },
5981
6032
  message: "must be equal to one of the allowed values"
5982
6033
  };
5983
6034
  if (vErrors === null) vErrors = [err20];
@@ -6004,7 +6055,7 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
6004
6055
  instancePath: instancePath + "/bounce/category",
6005
6056
  schemaPath: "#/definitions/BounceAnalysis/properties/category/enum",
6006
6057
  keyword: "enum",
6007
- params: { allowedValues: schema39.properties.category.enum },
6058
+ params: { allowedValues: schema40.properties.category.enum },
6008
6059
  message: "must be equal to one of the allowed values"
6009
6060
  };
6010
6061
  if (vErrors === null) vErrors = [err22];
@@ -6031,7 +6082,7 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
6031
6082
  instancePath: instancePath + "/bounce/classified_by",
6032
6083
  schemaPath: "#/definitions/BounceAnalysis/properties/classified_by/enum",
6033
6084
  keyword: "enum",
6034
- params: { allowedValues: schema39.properties.classified_by.enum },
6085
+ params: { allowedValues: schema40.properties.classified_by.enum },
6035
6086
  message: "must be equal to one of the allowed values"
6036
6087
  };
6037
6088
  if (vErrors === null) vErrors = [err24];
@@ -6046,7 +6097,7 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
6046
6097
  instancePath: instancePath + "/bounce/failed_recipient",
6047
6098
  schemaPath: "#/definitions/BounceAnalysis/properties/failed_recipient/type",
6048
6099
  keyword: "type",
6049
- params: { type: schema39.properties.failed_recipient.type },
6100
+ params: { type: schema40.properties.failed_recipient.type },
6050
6101
  message: "must be string,null"
6051
6102
  };
6052
6103
  if (vErrors === null) vErrors = [err25];
@@ -6061,7 +6112,7 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
6061
6112
  instancePath: instancePath + "/bounce/smtp_code",
6062
6113
  schemaPath: "#/definitions/BounceAnalysis/properties/smtp_code/type",
6063
6114
  keyword: "type",
6064
- params: { type: schema39.properties.smtp_code.type },
6115
+ params: { type: schema40.properties.smtp_code.type },
6065
6116
  message: "must be integer,null"
6066
6117
  };
6067
6118
  if (vErrors === null) vErrors = [err26];
@@ -6076,7 +6127,7 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
6076
6127
  instancePath: instancePath + "/bounce/status_code",
6077
6128
  schemaPath: "#/definitions/BounceAnalysis/properties/status_code/type",
6078
6129
  keyword: "type",
6079
- params: { type: schema39.properties.status_code.type },
6130
+ params: { type: schema40.properties.status_code.type },
6080
6131
  message: "must be string,null"
6081
6132
  };
6082
6133
  if (vErrors === null) vErrors = [err27];
@@ -6091,7 +6142,7 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
6091
6142
  instancePath: instancePath + "/bounce/diagnostic_code",
6092
6143
  schemaPath: "#/definitions/BounceAnalysis/properties/diagnostic_code/type",
6093
6144
  keyword: "type",
6094
- params: { type: schema39.properties.diagnostic_code.type },
6145
+ params: { type: schema40.properties.diagnostic_code.type },
6095
6146
  message: "must be string,null"
6096
6147
  };
6097
6148
  if (vErrors === null) vErrors = [err28];
@@ -6106,7 +6157,7 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
6106
6157
  instancePath: instancePath + "/bounce/reported_by_mta",
6107
6158
  schemaPath: "#/definitions/BounceAnalysis/properties/reported_by_mta/type",
6108
6159
  keyword: "type",
6109
- params: { type: schema39.properties.reported_by_mta.type },
6160
+ params: { type: schema40.properties.reported_by_mta.type },
6110
6161
  message: "must be string,null"
6111
6162
  };
6112
6163
  if (vErrors === null) vErrors = [err29];
@@ -6121,7 +6172,7 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
6121
6172
  instancePath: instancePath + "/bounce/original_message_id",
6122
6173
  schemaPath: "#/definitions/BounceAnalysis/properties/original_message_id/type",
6123
6174
  keyword: "type",
6124
- params: { type: schema39.properties.original_message_id.type },
6175
+ params: { type: schema40.properties.original_message_id.type },
6125
6176
  message: "must be string,null"
6126
6177
  };
6127
6178
  if (vErrors === null) vErrors = [err30];
@@ -6208,7 +6259,7 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
6208
6259
  validate20.errors = vErrors;
6209
6260
  return errors === 0;
6210
6261
  }
6211
- const schema45 = {
6262
+ const schema46 = {
6212
6263
  "type": "object",
6213
6264
  "properties": {
6214
6265
  "spf": {
@@ -6262,7 +6313,7 @@ const schema45 = {
6262
6313
  ],
6263
6314
  "description": "Email authentication results for SPF, DKIM, and DMARC.\n\nUse `validateEmailAuth()` to compute a verdict based on these results."
6264
6315
  };
6265
- const schema46 = {
6316
+ const schema47 = {
6266
6317
  "type": "string",
6267
6318
  "enum": [
6268
6319
  "pass",
@@ -6275,7 +6326,7 @@ const schema46 = {
6275
6326
  ],
6276
6327
  "description": "SPF verification result."
6277
6328
  };
6278
- const schema47 = {
6329
+ const schema48 = {
6279
6330
  "type": "string",
6280
6331
  "enum": [
6281
6332
  "pass",
@@ -6286,7 +6337,7 @@ const schema47 = {
6286
6337
  ],
6287
6338
  "description": "DMARC verification result."
6288
6339
  };
6289
- const schema49 = {
6340
+ const schema50 = {
6290
6341
  "type": "object",
6291
6342
  "properties": {
6292
6343
  "domain": {
@@ -6326,7 +6377,7 @@ const schema49 = {
6326
6377
  ],
6327
6378
  "description": "Details about a single DKIM signature found in the email.\n\nAn email may have multiple DKIM signatures (e.g., one from the sending domain and one from the ESP). Each signature is verified independently."
6328
6379
  };
6329
- const schema50 = {
6380
+ const schema51 = {
6330
6381
  "type": "string",
6331
6382
  "enum": [
6332
6383
  "pass",
@@ -6433,7 +6484,7 @@ function validate40(data, { instancePath = "", parentData, parentDataProperty, r
6433
6484
  instancePath: instancePath + "/selector",
6434
6485
  schemaPath: "#/properties/selector/type",
6435
6486
  keyword: "type",
6436
- params: { type: schema49.properties.selector.type },
6487
+ params: { type: schema50.properties.selector.type },
6437
6488
  message: "must be string,null"
6438
6489
  };
6439
6490
  if (vErrors === null) vErrors = [err7];
@@ -6460,7 +6511,7 @@ function validate40(data, { instancePath = "", parentData, parentDataProperty, r
6460
6511
  instancePath: instancePath + "/result",
6461
6512
  schemaPath: "#/definitions/DkimResult/enum",
6462
6513
  keyword: "enum",
6463
- params: { allowedValues: schema50.enum },
6514
+ params: { allowedValues: schema51.enum },
6464
6515
  message: "must be equal to one of the allowed values"
6465
6516
  };
6466
6517
  if (vErrors === null) vErrors = [err9];
@@ -6489,7 +6540,7 @@ function validate40(data, { instancePath = "", parentData, parentDataProperty, r
6489
6540
  instancePath: instancePath + "/keyBits",
6490
6541
  schemaPath: "#/properties/keyBits/type",
6491
6542
  keyword: "type",
6492
- params: { type: schema49.properties.keyBits.type },
6543
+ params: { type: schema50.properties.keyBits.type },
6493
6544
  message: "must be integer,null"
6494
6545
  };
6495
6546
  if (vErrors === null) vErrors = [err11];
@@ -6536,7 +6587,7 @@ function validate40(data, { instancePath = "", parentData, parentDataProperty, r
6536
6587
  instancePath: instancePath + "/algo",
6537
6588
  schemaPath: "#/properties/algo/type",
6538
6589
  keyword: "type",
6539
- params: { type: schema49.properties.algo.type },
6590
+ params: { type: schema50.properties.algo.type },
6540
6591
  message: "must be string,null"
6541
6592
  };
6542
6593
  if (vErrors === null) vErrors = [err14];
@@ -6690,7 +6741,7 @@ function validate39(data, { instancePath = "", parentData, parentDataProperty, r
6690
6741
  instancePath: instancePath + "/spf",
6691
6742
  schemaPath: "#/definitions/SpfResult/enum",
6692
6743
  keyword: "enum",
6693
- params: { allowedValues: schema46.enum },
6744
+ params: { allowedValues: schema47.enum },
6694
6745
  message: "must be equal to one of the allowed values"
6695
6746
  };
6696
6747
  if (vErrors === null) vErrors = [err10];
@@ -6717,7 +6768,7 @@ function validate39(data, { instancePath = "", parentData, parentDataProperty, r
6717
6768
  instancePath: instancePath + "/dmarc",
6718
6769
  schemaPath: "#/definitions/DmarcResult/enum",
6719
6770
  keyword: "enum",
6720
- params: { allowedValues: schema47.enum },
6771
+ params: { allowedValues: schema48.enum },
6721
6772
  message: "must be equal to one of the allowed values"
6722
6773
  };
6723
6774
  if (vErrors === null) vErrors = [err12];
@@ -6732,7 +6783,7 @@ function validate39(data, { instancePath = "", parentData, parentDataProperty, r
6732
6783
  instancePath: instancePath + "/dmarcPolicy",
6733
6784
  schemaPath: "#/definitions/DmarcPolicy/type",
6734
6785
  keyword: "type",
6735
- params: { type: schema35.type },
6786
+ params: { type: schema36.type },
6736
6787
  message: "must be string,null"
6737
6788
  };
6738
6789
  if (vErrors === null) vErrors = [err13];
@@ -6744,7 +6795,7 @@ function validate39(data, { instancePath = "", parentData, parentDataProperty, r
6744
6795
  instancePath: instancePath + "/dmarcPolicy",
6745
6796
  schemaPath: "#/definitions/DmarcPolicy/enum",
6746
6797
  keyword: "enum",
6747
- params: { allowedValues: schema35.enum },
6798
+ params: { allowedValues: schema36.enum },
6748
6799
  message: "must be equal to one of the allowed values"
6749
6800
  };
6750
6801
  if (vErrors === null) vErrors = [err14];
@@ -6759,7 +6810,7 @@ function validate39(data, { instancePath = "", parentData, parentDataProperty, r
6759
6810
  instancePath: instancePath + "/dmarcFromDomain",
6760
6811
  schemaPath: "#/properties/dmarcFromDomain/type",
6761
6812
  keyword: "type",
6762
- params: { type: schema45.properties.dmarcFromDomain.type },
6813
+ params: { type: schema46.properties.dmarcFromDomain.type },
6763
6814
  message: "must be string,null"
6764
6815
  };
6765
6816
  if (vErrors === null) vErrors = [err15];
@@ -6802,7 +6853,7 @@ function validate39(data, { instancePath = "", parentData, parentDataProperty, r
6802
6853
  instancePath: instancePath + "/dmarcSpfStrict",
6803
6854
  schemaPath: "#/properties/dmarcSpfStrict/type",
6804
6855
  keyword: "type",
6805
- params: { type: schema45.properties.dmarcSpfStrict.type },
6856
+ params: { type: schema46.properties.dmarcSpfStrict.type },
6806
6857
  message: "must be boolean,null"
6807
6858
  };
6808
6859
  if (vErrors === null) vErrors = [err18];
@@ -6817,7 +6868,7 @@ function validate39(data, { instancePath = "", parentData, parentDataProperty, r
6817
6868
  instancePath: instancePath + "/dmarcDkimStrict",
6818
6869
  schemaPath: "#/properties/dmarcDkimStrict/type",
6819
6870
  keyword: "type",
6820
- params: { type: schema45.properties.dmarcDkimStrict.type },
6871
+ params: { type: schema46.properties.dmarcDkimStrict.type },
6821
6872
  message: "must be boolean,null"
6822
6873
  };
6823
6874
  if (vErrors === null) vErrors = [err19];
@@ -7013,76 +7064,230 @@ function validate11(data, { instancePath = "", parentData, parentDataProperty, r
7013
7064
  errors++;
7014
7065
  }
7015
7066
  }
7016
- if (data.delivery !== void 0) {
7017
- let data3 = data.delivery;
7067
+ if (data.routing !== void 0) {
7068
+ let data3 = data.routing;
7018
7069
  if (data3 && typeof data3 == "object" && !Array.isArray(data3)) {
7019
- if (data3.endpoint_id === void 0) {
7070
+ if (data3.outcome === void 0) {
7020
7071
  const err11 = {
7072
+ instancePath: instancePath + "/routing",
7073
+ schemaPath: "#/definitions/RoutingDecision/required",
7074
+ keyword: "required",
7075
+ params: { missingProperty: "outcome" },
7076
+ message: "must have required property 'outcome'"
7077
+ };
7078
+ if (vErrors === null) vErrors = [err11];
7079
+ else vErrors.push(err11);
7080
+ errors++;
7081
+ }
7082
+ if (data3.version !== void 0) {
7083
+ let data4 = data3.version;
7084
+ if (!(typeof data4 == "number" && !(data4 % 1) && !isNaN(data4))) {
7085
+ const err12 = {
7086
+ instancePath: instancePath + "/routing/version",
7087
+ schemaPath: "#/definitions/RoutingDecision/properties/version/type",
7088
+ keyword: "type",
7089
+ params: { type: "integer" },
7090
+ message: "must be integer"
7091
+ };
7092
+ if (vErrors === null) vErrors = [err12];
7093
+ else vErrors.push(err12);
7094
+ errors++;
7095
+ }
7096
+ }
7097
+ if (data3.outcome !== void 0) {
7098
+ let data5 = data3.outcome;
7099
+ if (typeof data5 !== "string") {
7100
+ const err13 = {
7101
+ instancePath: instancePath + "/routing/outcome",
7102
+ schemaPath: "#/definitions/RoutingDecision/properties/outcome/type",
7103
+ keyword: "type",
7104
+ params: { type: "string" },
7105
+ message: "must be string"
7106
+ };
7107
+ if (vErrors === null) vErrors = [err13];
7108
+ else vErrors.push(err13);
7109
+ errors++;
7110
+ }
7111
+ if (!(data5 === "matched" || data5 === "defaulted" || data5 === "none")) {
7112
+ const err14 = {
7113
+ instancePath: instancePath + "/routing/outcome",
7114
+ schemaPath: "#/definitions/RoutingDecision/properties/outcome/enum",
7115
+ keyword: "enum",
7116
+ params: { allowedValues: schema14.properties.outcome.enum },
7117
+ message: "must be equal to one of the allowed values"
7118
+ };
7119
+ if (vErrors === null) vErrors = [err14];
7120
+ else vErrors.push(err14);
7121
+ errors++;
7122
+ }
7123
+ }
7124
+ if (data3.endpoint_id !== void 0) {
7125
+ let data6 = data3.endpoint_id;
7126
+ if (typeof data6 !== "string" && data6 !== null) {
7127
+ const err15 = {
7128
+ instancePath: instancePath + "/routing/endpoint_id",
7129
+ schemaPath: "#/definitions/RoutingDecision/properties/endpoint_id/type",
7130
+ keyword: "type",
7131
+ params: { type: schema14.properties.endpoint_id.type },
7132
+ message: "must be string,null"
7133
+ };
7134
+ if (vErrors === null) vErrors = [err15];
7135
+ else vErrors.push(err15);
7136
+ errors++;
7137
+ }
7138
+ }
7139
+ if (data3.matched_route_id !== void 0) {
7140
+ let data7 = data3.matched_route_id;
7141
+ if (typeof data7 !== "string" && data7 !== null) {
7142
+ const err16 = {
7143
+ instancePath: instancePath + "/routing/matched_route_id",
7144
+ schemaPath: "#/definitions/RoutingDecision/properties/matched_route_id/type",
7145
+ keyword: "type",
7146
+ params: { type: schema14.properties.matched_route_id.type },
7147
+ message: "must be string,null"
7148
+ };
7149
+ if (vErrors === null) vErrors = [err16];
7150
+ else vErrors.push(err16);
7151
+ errors++;
7152
+ }
7153
+ }
7154
+ if (data3.matched_tier !== void 0) {
7155
+ let data8 = data3.matched_tier;
7156
+ if (typeof data8 !== "string" && data8 !== null) {
7157
+ const err17 = {
7158
+ instancePath: instancePath + "/routing/matched_tier",
7159
+ schemaPath: "#/definitions/RoutingDecision/properties/matched_tier/type",
7160
+ keyword: "type",
7161
+ params: { type: schema14.properties.matched_tier.type },
7162
+ message: "must be string,null"
7163
+ };
7164
+ if (vErrors === null) vErrors = [err17];
7165
+ else vErrors.push(err17);
7166
+ errors++;
7167
+ }
7168
+ if (!(data8 === "exact" || data8 === "wildcard" || data8 === "regex" || data8 === null)) {
7169
+ const err18 = {
7170
+ instancePath: instancePath + "/routing/matched_tier",
7171
+ schemaPath: "#/definitions/RoutingDecision/properties/matched_tier/enum",
7172
+ keyword: "enum",
7173
+ params: { allowedValues: schema14.properties.matched_tier.enum },
7174
+ message: "must be equal to one of the allowed values"
7175
+ };
7176
+ if (vErrors === null) vErrors = [err18];
7177
+ else vErrors.push(err18);
7178
+ errors++;
7179
+ }
7180
+ }
7181
+ if (data3.default_scope !== void 0) {
7182
+ let data9 = data3.default_scope;
7183
+ if (typeof data9 !== "string" && data9 !== null) {
7184
+ const err19 = {
7185
+ instancePath: instancePath + "/routing/default_scope",
7186
+ schemaPath: "#/definitions/RoutingDecision/properties/default_scope/type",
7187
+ keyword: "type",
7188
+ params: { type: schema14.properties.default_scope.type },
7189
+ message: "must be string,null"
7190
+ };
7191
+ if (vErrors === null) vErrors = [err19];
7192
+ else vErrors.push(err19);
7193
+ errors++;
7194
+ }
7195
+ if (!(data9 === "domain" || data9 === "org" || data9 === null)) {
7196
+ const err20 = {
7197
+ instancePath: instancePath + "/routing/default_scope",
7198
+ schemaPath: "#/definitions/RoutingDecision/properties/default_scope/enum",
7199
+ keyword: "enum",
7200
+ params: { allowedValues: schema14.properties.default_scope.enum },
7201
+ message: "must be equal to one of the allowed values"
7202
+ };
7203
+ if (vErrors === null) vErrors = [err20];
7204
+ else vErrors.push(err20);
7205
+ errors++;
7206
+ }
7207
+ }
7208
+ } else {
7209
+ const err21 = {
7210
+ instancePath: instancePath + "/routing",
7211
+ schemaPath: "#/definitions/RoutingDecision/type",
7212
+ keyword: "type",
7213
+ params: { type: "object" },
7214
+ message: "must be object"
7215
+ };
7216
+ if (vErrors === null) vErrors = [err21];
7217
+ else vErrors.push(err21);
7218
+ errors++;
7219
+ }
7220
+ }
7221
+ if (data.delivery !== void 0) {
7222
+ let data10 = data.delivery;
7223
+ if (data10 && typeof data10 == "object" && !Array.isArray(data10)) {
7224
+ if (data10.endpoint_id === void 0) {
7225
+ const err22 = {
7021
7226
  instancePath: instancePath + "/delivery",
7022
7227
  schemaPath: "#/properties/delivery/required",
7023
7228
  keyword: "required",
7024
7229
  params: { missingProperty: "endpoint_id" },
7025
7230
  message: "must have required property 'endpoint_id'"
7026
7231
  };
7027
- if (vErrors === null) vErrors = [err11];
7028
- else vErrors.push(err11);
7232
+ if (vErrors === null) vErrors = [err22];
7233
+ else vErrors.push(err22);
7029
7234
  errors++;
7030
7235
  }
7031
- if (data3.attempt === void 0) {
7032
- const err12 = {
7236
+ if (data10.attempt === void 0) {
7237
+ const err23 = {
7033
7238
  instancePath: instancePath + "/delivery",
7034
7239
  schemaPath: "#/properties/delivery/required",
7035
7240
  keyword: "required",
7036
7241
  params: { missingProperty: "attempt" },
7037
7242
  message: "must have required property 'attempt'"
7038
7243
  };
7039
- if (vErrors === null) vErrors = [err12];
7040
- else vErrors.push(err12);
7244
+ if (vErrors === null) vErrors = [err23];
7245
+ else vErrors.push(err23);
7041
7246
  errors++;
7042
7247
  }
7043
- if (data3.attempted_at === void 0) {
7044
- const err13 = {
7248
+ if (data10.attempted_at === void 0) {
7249
+ const err24 = {
7045
7250
  instancePath: instancePath + "/delivery",
7046
7251
  schemaPath: "#/properties/delivery/required",
7047
7252
  keyword: "required",
7048
7253
  params: { missingProperty: "attempted_at" },
7049
7254
  message: "must have required property 'attempted_at'"
7050
7255
  };
7051
- if (vErrors === null) vErrors = [err13];
7052
- else vErrors.push(err13);
7256
+ if (vErrors === null) vErrors = [err24];
7257
+ else vErrors.push(err24);
7053
7258
  errors++;
7054
7259
  }
7055
- if (data3.endpoint_id !== void 0) {
7056
- if (typeof data3.endpoint_id !== "string") {
7057
- const err14 = {
7260
+ if (data10.endpoint_id !== void 0) {
7261
+ if (typeof data10.endpoint_id !== "string") {
7262
+ const err25 = {
7058
7263
  instancePath: instancePath + "/delivery/endpoint_id",
7059
7264
  schemaPath: "#/properties/delivery/properties/endpoint_id/type",
7060
7265
  keyword: "type",
7061
7266
  params: { type: "string" },
7062
7267
  message: "must be string"
7063
7268
  };
7064
- if (vErrors === null) vErrors = [err14];
7065
- else vErrors.push(err14);
7269
+ if (vErrors === null) vErrors = [err25];
7270
+ else vErrors.push(err25);
7066
7271
  errors++;
7067
7272
  }
7068
7273
  }
7069
- if (data3.attempt !== void 0) {
7070
- let data5 = data3.attempt;
7071
- if (!(typeof data5 == "number" && !(data5 % 1) && !isNaN(data5))) {
7072
- const err15 = {
7274
+ if (data10.attempt !== void 0) {
7275
+ let data12 = data10.attempt;
7276
+ if (!(typeof data12 == "number" && !(data12 % 1) && !isNaN(data12))) {
7277
+ const err26 = {
7073
7278
  instancePath: instancePath + "/delivery/attempt",
7074
7279
  schemaPath: "#/properties/delivery/properties/attempt/type",
7075
7280
  keyword: "type",
7076
7281
  params: { type: "integer" },
7077
7282
  message: "must be integer"
7078
7283
  };
7079
- if (vErrors === null) vErrors = [err15];
7080
- else vErrors.push(err15);
7284
+ if (vErrors === null) vErrors = [err26];
7285
+ else vErrors.push(err26);
7081
7286
  errors++;
7082
7287
  }
7083
- if (typeof data5 == "number") {
7084
- if (data5 < 1 || isNaN(data5)) {
7085
- const err16 = {
7288
+ if (typeof data12 == "number") {
7289
+ if (data12 < 1 || isNaN(data12)) {
7290
+ const err27 = {
7086
7291
  instancePath: instancePath + "/delivery/attempt",
7087
7292
  schemaPath: "#/properties/delivery/properties/attempt/minimum",
7088
7293
  keyword: "minimum",
@@ -7092,539 +7297,539 @@ function validate11(data, { instancePath = "", parentData, parentDataProperty, r
7092
7297
  },
7093
7298
  message: "must be >= 1"
7094
7299
  };
7095
- if (vErrors === null) vErrors = [err16];
7096
- else vErrors.push(err16);
7300
+ if (vErrors === null) vErrors = [err27];
7301
+ else vErrors.push(err27);
7097
7302
  errors++;
7098
7303
  }
7099
7304
  }
7100
7305
  }
7101
- if (data3.attempted_at !== void 0) {
7102
- let data6 = data3.attempted_at;
7103
- if (typeof data6 === "string") {
7104
- if (!formats0.test(data6)) {
7105
- const err17 = {
7306
+ if (data10.attempted_at !== void 0) {
7307
+ let data13 = data10.attempted_at;
7308
+ if (typeof data13 === "string") {
7309
+ if (!formats0.test(data13)) {
7310
+ const err28 = {
7106
7311
  instancePath: instancePath + "/delivery/attempted_at",
7107
7312
  schemaPath: "#/properties/delivery/properties/attempted_at/format",
7108
7313
  keyword: "format",
7109
7314
  params: { format: "date-time" },
7110
7315
  message: "must match format \"date-time\""
7111
7316
  };
7112
- if (vErrors === null) vErrors = [err17];
7113
- else vErrors.push(err17);
7317
+ if (vErrors === null) vErrors = [err28];
7318
+ else vErrors.push(err28);
7114
7319
  errors++;
7115
7320
  }
7116
7321
  } else {
7117
- const err18 = {
7322
+ const err29 = {
7118
7323
  instancePath: instancePath + "/delivery/attempted_at",
7119
7324
  schemaPath: "#/properties/delivery/properties/attempted_at/type",
7120
7325
  keyword: "type",
7121
7326
  params: { type: "string" },
7122
7327
  message: "must be string"
7123
7328
  };
7124
- if (vErrors === null) vErrors = [err18];
7125
- else vErrors.push(err18);
7329
+ if (vErrors === null) vErrors = [err29];
7330
+ else vErrors.push(err29);
7126
7331
  errors++;
7127
7332
  }
7128
7333
  }
7129
7334
  } else {
7130
- const err19 = {
7335
+ const err30 = {
7131
7336
  instancePath: instancePath + "/delivery",
7132
7337
  schemaPath: "#/properties/delivery/type",
7133
7338
  keyword: "type",
7134
7339
  params: { type: "object" },
7135
7340
  message: "must be object"
7136
7341
  };
7137
- if (vErrors === null) vErrors = [err19];
7138
- else vErrors.push(err19);
7342
+ if (vErrors === null) vErrors = [err30];
7343
+ else vErrors.push(err30);
7139
7344
  errors++;
7140
7345
  }
7141
7346
  }
7142
7347
  if (data.email !== void 0) {
7143
- let data7 = data.email;
7144
- if (data7 && typeof data7 == "object" && !Array.isArray(data7)) {
7145
- if (data7.id === void 0) {
7146
- const err20 = {
7348
+ let data14 = data.email;
7349
+ if (data14 && typeof data14 == "object" && !Array.isArray(data14)) {
7350
+ if (data14.id === void 0) {
7351
+ const err31 = {
7147
7352
  instancePath: instancePath + "/email",
7148
7353
  schemaPath: "#/properties/email/required",
7149
7354
  keyword: "required",
7150
7355
  params: { missingProperty: "id" },
7151
7356
  message: "must have required property 'id'"
7152
7357
  };
7153
- if (vErrors === null) vErrors = [err20];
7154
- else vErrors.push(err20);
7358
+ if (vErrors === null) vErrors = [err31];
7359
+ else vErrors.push(err31);
7155
7360
  errors++;
7156
7361
  }
7157
- if (data7.received_at === void 0) {
7158
- const err21 = {
7362
+ if (data14.received_at === void 0) {
7363
+ const err32 = {
7159
7364
  instancePath: instancePath + "/email",
7160
7365
  schemaPath: "#/properties/email/required",
7161
7366
  keyword: "required",
7162
7367
  params: { missingProperty: "received_at" },
7163
7368
  message: "must have required property 'received_at'"
7164
7369
  };
7165
- if (vErrors === null) vErrors = [err21];
7166
- else vErrors.push(err21);
7370
+ if (vErrors === null) vErrors = [err32];
7371
+ else vErrors.push(err32);
7167
7372
  errors++;
7168
7373
  }
7169
- if (data7.smtp === void 0) {
7170
- const err22 = {
7374
+ if (data14.smtp === void 0) {
7375
+ const err33 = {
7171
7376
  instancePath: instancePath + "/email",
7172
7377
  schemaPath: "#/properties/email/required",
7173
7378
  keyword: "required",
7174
7379
  params: { missingProperty: "smtp" },
7175
7380
  message: "must have required property 'smtp'"
7176
7381
  };
7177
- if (vErrors === null) vErrors = [err22];
7178
- else vErrors.push(err22);
7382
+ if (vErrors === null) vErrors = [err33];
7383
+ else vErrors.push(err33);
7179
7384
  errors++;
7180
7385
  }
7181
- if (data7.headers === void 0) {
7182
- const err23 = {
7386
+ if (data14.headers === void 0) {
7387
+ const err34 = {
7183
7388
  instancePath: instancePath + "/email",
7184
7389
  schemaPath: "#/properties/email/required",
7185
7390
  keyword: "required",
7186
7391
  params: { missingProperty: "headers" },
7187
7392
  message: "must have required property 'headers'"
7188
7393
  };
7189
- if (vErrors === null) vErrors = [err23];
7190
- else vErrors.push(err23);
7394
+ if (vErrors === null) vErrors = [err34];
7395
+ else vErrors.push(err34);
7191
7396
  errors++;
7192
7397
  }
7193
- if (data7.content === void 0) {
7194
- const err24 = {
7398
+ if (data14.content === void 0) {
7399
+ const err35 = {
7195
7400
  instancePath: instancePath + "/email",
7196
7401
  schemaPath: "#/properties/email/required",
7197
7402
  keyword: "required",
7198
7403
  params: { missingProperty: "content" },
7199
7404
  message: "must have required property 'content'"
7200
7405
  };
7201
- if (vErrors === null) vErrors = [err24];
7202
- else vErrors.push(err24);
7406
+ if (vErrors === null) vErrors = [err35];
7407
+ else vErrors.push(err35);
7203
7408
  errors++;
7204
7409
  }
7205
- if (data7.parsed === void 0) {
7206
- const err25 = {
7410
+ if (data14.parsed === void 0) {
7411
+ const err36 = {
7207
7412
  instancePath: instancePath + "/email",
7208
7413
  schemaPath: "#/properties/email/required",
7209
7414
  keyword: "required",
7210
7415
  params: { missingProperty: "parsed" },
7211
7416
  message: "must have required property 'parsed'"
7212
7417
  };
7213
- if (vErrors === null) vErrors = [err25];
7214
- else vErrors.push(err25);
7418
+ if (vErrors === null) vErrors = [err36];
7419
+ else vErrors.push(err36);
7215
7420
  errors++;
7216
7421
  }
7217
- if (data7.analysis === void 0) {
7218
- const err26 = {
7422
+ if (data14.analysis === void 0) {
7423
+ const err37 = {
7219
7424
  instancePath: instancePath + "/email",
7220
7425
  schemaPath: "#/properties/email/required",
7221
7426
  keyword: "required",
7222
7427
  params: { missingProperty: "analysis" },
7223
7428
  message: "must have required property 'analysis'"
7224
7429
  };
7225
- if (vErrors === null) vErrors = [err26];
7226
- else vErrors.push(err26);
7430
+ if (vErrors === null) vErrors = [err37];
7431
+ else vErrors.push(err37);
7227
7432
  errors++;
7228
7433
  }
7229
- if (data7.auth === void 0) {
7230
- const err27 = {
7434
+ if (data14.auth === void 0) {
7435
+ const err38 = {
7231
7436
  instancePath: instancePath + "/email",
7232
7437
  schemaPath: "#/properties/email/required",
7233
7438
  keyword: "required",
7234
7439
  params: { missingProperty: "auth" },
7235
7440
  message: "must have required property 'auth'"
7236
7441
  };
7237
- if (vErrors === null) vErrors = [err27];
7238
- else vErrors.push(err27);
7442
+ if (vErrors === null) vErrors = [err38];
7443
+ else vErrors.push(err38);
7239
7444
  errors++;
7240
7445
  }
7241
- if (data7.id !== void 0) {
7242
- if (typeof data7.id !== "string") {
7243
- const err28 = {
7446
+ if (data14.id !== void 0) {
7447
+ if (typeof data14.id !== "string") {
7448
+ const err39 = {
7244
7449
  instancePath: instancePath + "/email/id",
7245
7450
  schemaPath: "#/properties/email/properties/id/type",
7246
7451
  keyword: "type",
7247
7452
  params: { type: "string" },
7248
7453
  message: "must be string"
7249
7454
  };
7250
- if (vErrors === null) vErrors = [err28];
7251
- else vErrors.push(err28);
7455
+ if (vErrors === null) vErrors = [err39];
7456
+ else vErrors.push(err39);
7252
7457
  errors++;
7253
7458
  }
7254
7459
  }
7255
- if (data7.thread_id !== void 0) {
7256
- let data9 = data7.thread_id;
7257
- if (typeof data9 !== "string" && data9 !== null) {
7258
- const err29 = {
7460
+ if (data14.thread_id !== void 0) {
7461
+ let data16 = data14.thread_id;
7462
+ if (typeof data16 !== "string" && data16 !== null) {
7463
+ const err40 = {
7259
7464
  instancePath: instancePath + "/email/thread_id",
7260
7465
  schemaPath: "#/properties/email/properties/thread_id/type",
7261
7466
  keyword: "type",
7262
7467
  params: { type: schema12.properties.email.properties.thread_id.type },
7263
7468
  message: "must be string,null"
7264
7469
  };
7265
- if (vErrors === null) vErrors = [err29];
7266
- else vErrors.push(err29);
7470
+ if (vErrors === null) vErrors = [err40];
7471
+ else vErrors.push(err40);
7267
7472
  errors++;
7268
7473
  }
7269
7474
  }
7270
- if (data7.received_at !== void 0) {
7271
- let data10 = data7.received_at;
7272
- if (typeof data10 === "string") {
7273
- if (!formats0.test(data10)) {
7274
- const err30 = {
7475
+ if (data14.received_at !== void 0) {
7476
+ let data17 = data14.received_at;
7477
+ if (typeof data17 === "string") {
7478
+ if (!formats0.test(data17)) {
7479
+ const err41 = {
7275
7480
  instancePath: instancePath + "/email/received_at",
7276
7481
  schemaPath: "#/properties/email/properties/received_at/format",
7277
7482
  keyword: "format",
7278
7483
  params: { format: "date-time" },
7279
7484
  message: "must match format \"date-time\""
7280
7485
  };
7281
- if (vErrors === null) vErrors = [err30];
7282
- else vErrors.push(err30);
7486
+ if (vErrors === null) vErrors = [err41];
7487
+ else vErrors.push(err41);
7283
7488
  errors++;
7284
7489
  }
7285
7490
  } else {
7286
- const err31 = {
7491
+ const err42 = {
7287
7492
  instancePath: instancePath + "/email/received_at",
7288
7493
  schemaPath: "#/properties/email/properties/received_at/type",
7289
7494
  keyword: "type",
7290
7495
  params: { type: "string" },
7291
7496
  message: "must be string"
7292
7497
  };
7293
- if (vErrors === null) vErrors = [err31];
7294
- else vErrors.push(err31);
7498
+ if (vErrors === null) vErrors = [err42];
7499
+ else vErrors.push(err42);
7295
7500
  errors++;
7296
7501
  }
7297
7502
  }
7298
- if (data7.smtp !== void 0) {
7299
- let data11 = data7.smtp;
7300
- if (data11 && typeof data11 == "object" && !Array.isArray(data11)) {
7301
- if (data11.helo === void 0) {
7302
- const err32 = {
7503
+ if (data14.smtp !== void 0) {
7504
+ let data18 = data14.smtp;
7505
+ if (data18 && typeof data18 == "object" && !Array.isArray(data18)) {
7506
+ if (data18.helo === void 0) {
7507
+ const err43 = {
7303
7508
  instancePath: instancePath + "/email/smtp",
7304
7509
  schemaPath: "#/properties/email/properties/smtp/required",
7305
7510
  keyword: "required",
7306
7511
  params: { missingProperty: "helo" },
7307
7512
  message: "must have required property 'helo'"
7308
7513
  };
7309
- if (vErrors === null) vErrors = [err32];
7310
- else vErrors.push(err32);
7514
+ if (vErrors === null) vErrors = [err43];
7515
+ else vErrors.push(err43);
7311
7516
  errors++;
7312
7517
  }
7313
- if (data11.mail_from === void 0) {
7314
- const err33 = {
7518
+ if (data18.mail_from === void 0) {
7519
+ const err44 = {
7315
7520
  instancePath: instancePath + "/email/smtp",
7316
7521
  schemaPath: "#/properties/email/properties/smtp/required",
7317
7522
  keyword: "required",
7318
7523
  params: { missingProperty: "mail_from" },
7319
7524
  message: "must have required property 'mail_from'"
7320
7525
  };
7321
- if (vErrors === null) vErrors = [err33];
7322
- else vErrors.push(err33);
7526
+ if (vErrors === null) vErrors = [err44];
7527
+ else vErrors.push(err44);
7323
7528
  errors++;
7324
7529
  }
7325
- if (data11.rcpt_to === void 0) {
7326
- const err34 = {
7530
+ if (data18.rcpt_to === void 0) {
7531
+ const err45 = {
7327
7532
  instancePath: instancePath + "/email/smtp",
7328
7533
  schemaPath: "#/properties/email/properties/smtp/required",
7329
7534
  keyword: "required",
7330
7535
  params: { missingProperty: "rcpt_to" },
7331
7536
  message: "must have required property 'rcpt_to'"
7332
7537
  };
7333
- if (vErrors === null) vErrors = [err34];
7334
- else vErrors.push(err34);
7538
+ if (vErrors === null) vErrors = [err45];
7539
+ else vErrors.push(err45);
7335
7540
  errors++;
7336
7541
  }
7337
- if (data11.helo !== void 0) {
7338
- let data12 = data11.helo;
7339
- if (typeof data12 !== "string" && data12 !== null) {
7340
- const err35 = {
7542
+ if (data18.helo !== void 0) {
7543
+ let data19 = data18.helo;
7544
+ if (typeof data19 !== "string" && data19 !== null) {
7545
+ const err46 = {
7341
7546
  instancePath: instancePath + "/email/smtp/helo",
7342
7547
  schemaPath: "#/properties/email/properties/smtp/properties/helo/type",
7343
7548
  keyword: "type",
7344
7549
  params: { type: schema12.properties.email.properties.smtp.properties.helo.type },
7345
7550
  message: "must be string,null"
7346
7551
  };
7347
- if (vErrors === null) vErrors = [err35];
7348
- else vErrors.push(err35);
7552
+ if (vErrors === null) vErrors = [err46];
7553
+ else vErrors.push(err46);
7349
7554
  errors++;
7350
7555
  }
7351
7556
  }
7352
- if (data11.mail_from !== void 0) {
7353
- if (typeof data11.mail_from !== "string") {
7354
- const err36 = {
7557
+ if (data18.mail_from !== void 0) {
7558
+ if (typeof data18.mail_from !== "string") {
7559
+ const err47 = {
7355
7560
  instancePath: instancePath + "/email/smtp/mail_from",
7356
7561
  schemaPath: "#/properties/email/properties/smtp/properties/mail_from/type",
7357
7562
  keyword: "type",
7358
7563
  params: { type: "string" },
7359
7564
  message: "must be string"
7360
7565
  };
7361
- if (vErrors === null) vErrors = [err36];
7362
- else vErrors.push(err36);
7566
+ if (vErrors === null) vErrors = [err47];
7567
+ else vErrors.push(err47);
7363
7568
  errors++;
7364
7569
  }
7365
7570
  }
7366
- if (data11.rcpt_to !== void 0) {
7367
- let data14 = data11.rcpt_to;
7368
- if (Array.isArray(data14)) {
7369
- if (data14.length < 1) {
7370
- const err37 = {
7571
+ if (data18.rcpt_to !== void 0) {
7572
+ let data21 = data18.rcpt_to;
7573
+ if (Array.isArray(data21)) {
7574
+ if (data21.length < 1) {
7575
+ const err48 = {
7371
7576
  instancePath: instancePath + "/email/smtp/rcpt_to",
7372
7577
  schemaPath: "#/properties/email/properties/smtp/properties/rcpt_to/minItems",
7373
7578
  keyword: "minItems",
7374
7579
  params: { limit: 1 },
7375
7580
  message: "must NOT have fewer than 1 items"
7376
7581
  };
7377
- if (vErrors === null) vErrors = [err37];
7378
- else vErrors.push(err37);
7582
+ if (vErrors === null) vErrors = [err48];
7583
+ else vErrors.push(err48);
7379
7584
  errors++;
7380
7585
  }
7381
- const len0 = data14.length;
7382
- for (let i0 = 0; i0 < len0; i0++) if (typeof data14[i0] !== "string") {
7383
- const err38 = {
7586
+ const len0 = data21.length;
7587
+ for (let i0 = 0; i0 < len0; i0++) if (typeof data21[i0] !== "string") {
7588
+ const err49 = {
7384
7589
  instancePath: instancePath + "/email/smtp/rcpt_to/" + i0,
7385
7590
  schemaPath: "#/properties/email/properties/smtp/properties/rcpt_to/items/type",
7386
7591
  keyword: "type",
7387
7592
  params: { type: "string" },
7388
7593
  message: "must be string"
7389
7594
  };
7390
- if (vErrors === null) vErrors = [err38];
7391
- else vErrors.push(err38);
7595
+ if (vErrors === null) vErrors = [err49];
7596
+ else vErrors.push(err49);
7392
7597
  errors++;
7393
7598
  }
7394
7599
  } else {
7395
- const err39 = {
7600
+ const err50 = {
7396
7601
  instancePath: instancePath + "/email/smtp/rcpt_to",
7397
7602
  schemaPath: "#/properties/email/properties/smtp/properties/rcpt_to/type",
7398
7603
  keyword: "type",
7399
7604
  params: { type: "array" },
7400
7605
  message: "must be array"
7401
7606
  };
7402
- if (vErrors === null) vErrors = [err39];
7403
- else vErrors.push(err39);
7607
+ if (vErrors === null) vErrors = [err50];
7608
+ else vErrors.push(err50);
7404
7609
  errors++;
7405
7610
  }
7406
7611
  }
7407
7612
  } else {
7408
- const err40 = {
7613
+ const err51 = {
7409
7614
  instancePath: instancePath + "/email/smtp",
7410
7615
  schemaPath: "#/properties/email/properties/smtp/type",
7411
7616
  keyword: "type",
7412
7617
  params: { type: "object" },
7413
7618
  message: "must be object"
7414
7619
  };
7415
- if (vErrors === null) vErrors = [err40];
7416
- else vErrors.push(err40);
7620
+ if (vErrors === null) vErrors = [err51];
7621
+ else vErrors.push(err51);
7417
7622
  errors++;
7418
7623
  }
7419
7624
  }
7420
- if (data7.headers !== void 0) {
7421
- let data16 = data7.headers;
7422
- if (data16 && typeof data16 == "object" && !Array.isArray(data16)) {
7423
- if (data16.message_id === void 0) {
7424
- const err41 = {
7625
+ if (data14.headers !== void 0) {
7626
+ let data23 = data14.headers;
7627
+ if (data23 && typeof data23 == "object" && !Array.isArray(data23)) {
7628
+ if (data23.message_id === void 0) {
7629
+ const err52 = {
7425
7630
  instancePath: instancePath + "/email/headers",
7426
7631
  schemaPath: "#/properties/email/properties/headers/required",
7427
7632
  keyword: "required",
7428
7633
  params: { missingProperty: "message_id" },
7429
7634
  message: "must have required property 'message_id'"
7430
7635
  };
7431
- if (vErrors === null) vErrors = [err41];
7432
- else vErrors.push(err41);
7636
+ if (vErrors === null) vErrors = [err52];
7637
+ else vErrors.push(err52);
7433
7638
  errors++;
7434
7639
  }
7435
- if (data16.subject === void 0) {
7436
- const err42 = {
7640
+ if (data23.subject === void 0) {
7641
+ const err53 = {
7437
7642
  instancePath: instancePath + "/email/headers",
7438
7643
  schemaPath: "#/properties/email/properties/headers/required",
7439
7644
  keyword: "required",
7440
7645
  params: { missingProperty: "subject" },
7441
7646
  message: "must have required property 'subject'"
7442
7647
  };
7443
- if (vErrors === null) vErrors = [err42];
7444
- else vErrors.push(err42);
7648
+ if (vErrors === null) vErrors = [err53];
7649
+ else vErrors.push(err53);
7445
7650
  errors++;
7446
7651
  }
7447
- if (data16.from === void 0) {
7448
- const err43 = {
7652
+ if (data23.from === void 0) {
7653
+ const err54 = {
7449
7654
  instancePath: instancePath + "/email/headers",
7450
7655
  schemaPath: "#/properties/email/properties/headers/required",
7451
7656
  keyword: "required",
7452
7657
  params: { missingProperty: "from" },
7453
7658
  message: "must have required property 'from'"
7454
7659
  };
7455
- if (vErrors === null) vErrors = [err43];
7456
- else vErrors.push(err43);
7660
+ if (vErrors === null) vErrors = [err54];
7661
+ else vErrors.push(err54);
7457
7662
  errors++;
7458
7663
  }
7459
- if (data16.to === void 0) {
7460
- const err44 = {
7664
+ if (data23.to === void 0) {
7665
+ const err55 = {
7461
7666
  instancePath: instancePath + "/email/headers",
7462
7667
  schemaPath: "#/properties/email/properties/headers/required",
7463
7668
  keyword: "required",
7464
7669
  params: { missingProperty: "to" },
7465
7670
  message: "must have required property 'to'"
7466
7671
  };
7467
- if (vErrors === null) vErrors = [err44];
7468
- else vErrors.push(err44);
7672
+ if (vErrors === null) vErrors = [err55];
7673
+ else vErrors.push(err55);
7469
7674
  errors++;
7470
7675
  }
7471
- if (data16.date === void 0) {
7472
- const err45 = {
7676
+ if (data23.date === void 0) {
7677
+ const err56 = {
7473
7678
  instancePath: instancePath + "/email/headers",
7474
7679
  schemaPath: "#/properties/email/properties/headers/required",
7475
7680
  keyword: "required",
7476
7681
  params: { missingProperty: "date" },
7477
7682
  message: "must have required property 'date'"
7478
7683
  };
7479
- if (vErrors === null) vErrors = [err45];
7480
- else vErrors.push(err45);
7684
+ if (vErrors === null) vErrors = [err56];
7685
+ else vErrors.push(err56);
7481
7686
  errors++;
7482
7687
  }
7483
- if (data16.message_id !== void 0) {
7484
- let data17 = data16.message_id;
7485
- if (typeof data17 !== "string" && data17 !== null) {
7486
- const err46 = {
7688
+ if (data23.message_id !== void 0) {
7689
+ let data24 = data23.message_id;
7690
+ if (typeof data24 !== "string" && data24 !== null) {
7691
+ const err57 = {
7487
7692
  instancePath: instancePath + "/email/headers/message_id",
7488
7693
  schemaPath: "#/properties/email/properties/headers/properties/message_id/type",
7489
7694
  keyword: "type",
7490
7695
  params: { type: schema12.properties.email.properties.headers.properties.message_id.type },
7491
7696
  message: "must be string,null"
7492
7697
  };
7493
- if (vErrors === null) vErrors = [err46];
7494
- else vErrors.push(err46);
7698
+ if (vErrors === null) vErrors = [err57];
7699
+ else vErrors.push(err57);
7495
7700
  errors++;
7496
7701
  }
7497
7702
  }
7498
- if (data16.subject !== void 0) {
7499
- let data18 = data16.subject;
7500
- if (typeof data18 !== "string" && data18 !== null) {
7501
- const err47 = {
7703
+ if (data23.subject !== void 0) {
7704
+ let data25 = data23.subject;
7705
+ if (typeof data25 !== "string" && data25 !== null) {
7706
+ const err58 = {
7502
7707
  instancePath: instancePath + "/email/headers/subject",
7503
7708
  schemaPath: "#/properties/email/properties/headers/properties/subject/type",
7504
7709
  keyword: "type",
7505
7710
  params: { type: schema12.properties.email.properties.headers.properties.subject.type },
7506
7711
  message: "must be string,null"
7507
7712
  };
7508
- if (vErrors === null) vErrors = [err47];
7509
- else vErrors.push(err47);
7713
+ if (vErrors === null) vErrors = [err58];
7714
+ else vErrors.push(err58);
7510
7715
  errors++;
7511
7716
  }
7512
7717
  }
7513
- if (data16.from !== void 0) {
7514
- let data19 = data16.from;
7515
- if (typeof data19 === "string") {
7516
- if (data19.length < 1) {
7517
- const err48 = {
7718
+ if (data23.from !== void 0) {
7719
+ let data26 = data23.from;
7720
+ if (typeof data26 === "string") {
7721
+ if (data26.length < 1) {
7722
+ const err59 = {
7518
7723
  instancePath: instancePath + "/email/headers/from",
7519
7724
  schemaPath: "#/properties/email/properties/headers/properties/from/minLength",
7520
7725
  keyword: "minLength",
7521
7726
  params: { limit: 1 },
7522
7727
  message: "must NOT have fewer than 1 characters"
7523
7728
  };
7524
- if (vErrors === null) vErrors = [err48];
7525
- else vErrors.push(err48);
7729
+ if (vErrors === null) vErrors = [err59];
7730
+ else vErrors.push(err59);
7526
7731
  errors++;
7527
7732
  }
7528
7733
  } else {
7529
- const err49 = {
7734
+ const err60 = {
7530
7735
  instancePath: instancePath + "/email/headers/from",
7531
7736
  schemaPath: "#/properties/email/properties/headers/properties/from/type",
7532
7737
  keyword: "type",
7533
7738
  params: { type: "string" },
7534
7739
  message: "must be string"
7535
7740
  };
7536
- if (vErrors === null) vErrors = [err49];
7537
- else vErrors.push(err49);
7741
+ if (vErrors === null) vErrors = [err60];
7742
+ else vErrors.push(err60);
7538
7743
  errors++;
7539
7744
  }
7540
7745
  }
7541
- if (data16.to !== void 0) {
7542
- let data20 = data16.to;
7543
- if (typeof data20 === "string") {
7544
- if (data20.length < 1) {
7545
- const err50 = {
7746
+ if (data23.to !== void 0) {
7747
+ let data27 = data23.to;
7748
+ if (typeof data27 === "string") {
7749
+ if (data27.length < 1) {
7750
+ const err61 = {
7546
7751
  instancePath: instancePath + "/email/headers/to",
7547
7752
  schemaPath: "#/properties/email/properties/headers/properties/to/minLength",
7548
7753
  keyword: "minLength",
7549
7754
  params: { limit: 1 },
7550
7755
  message: "must NOT have fewer than 1 characters"
7551
7756
  };
7552
- if (vErrors === null) vErrors = [err50];
7553
- else vErrors.push(err50);
7757
+ if (vErrors === null) vErrors = [err61];
7758
+ else vErrors.push(err61);
7554
7759
  errors++;
7555
7760
  }
7556
7761
  } else {
7557
- const err51 = {
7762
+ const err62 = {
7558
7763
  instancePath: instancePath + "/email/headers/to",
7559
7764
  schemaPath: "#/properties/email/properties/headers/properties/to/type",
7560
7765
  keyword: "type",
7561
7766
  params: { type: "string" },
7562
7767
  message: "must be string"
7563
7768
  };
7564
- if (vErrors === null) vErrors = [err51];
7565
- else vErrors.push(err51);
7769
+ if (vErrors === null) vErrors = [err62];
7770
+ else vErrors.push(err62);
7566
7771
  errors++;
7567
7772
  }
7568
7773
  }
7569
- if (data16.date !== void 0) {
7570
- let data21 = data16.date;
7571
- if (typeof data21 !== "string" && data21 !== null) {
7572
- const err52 = {
7774
+ if (data23.date !== void 0) {
7775
+ let data28 = data23.date;
7776
+ if (typeof data28 !== "string" && data28 !== null) {
7777
+ const err63 = {
7573
7778
  instancePath: instancePath + "/email/headers/date",
7574
7779
  schemaPath: "#/properties/email/properties/headers/properties/date/type",
7575
7780
  keyword: "type",
7576
7781
  params: { type: schema12.properties.email.properties.headers.properties.date.type },
7577
7782
  message: "must be string,null"
7578
7783
  };
7579
- if (vErrors === null) vErrors = [err52];
7580
- else vErrors.push(err52);
7784
+ if (vErrors === null) vErrors = [err63];
7785
+ else vErrors.push(err63);
7581
7786
  errors++;
7582
7787
  }
7583
7788
  }
7584
7789
  } else {
7585
- const err53 = {
7790
+ const err64 = {
7586
7791
  instancePath: instancePath + "/email/headers",
7587
7792
  schemaPath: "#/properties/email/properties/headers/type",
7588
7793
  keyword: "type",
7589
7794
  params: { type: "object" },
7590
7795
  message: "must be object"
7591
7796
  };
7592
- if (vErrors === null) vErrors = [err53];
7593
- else vErrors.push(err53);
7797
+ if (vErrors === null) vErrors = [err64];
7798
+ else vErrors.push(err64);
7594
7799
  errors++;
7595
7800
  }
7596
7801
  }
7597
- if (data7.content !== void 0) {
7598
- let data22 = data7.content;
7599
- if (data22 && typeof data22 == "object" && !Array.isArray(data22)) {
7600
- if (data22.raw === void 0) {
7601
- const err54 = {
7802
+ if (data14.content !== void 0) {
7803
+ let data29 = data14.content;
7804
+ if (data29 && typeof data29 == "object" && !Array.isArray(data29)) {
7805
+ if (data29.raw === void 0) {
7806
+ const err65 = {
7602
7807
  instancePath: instancePath + "/email/content",
7603
7808
  schemaPath: "#/properties/email/properties/content/required",
7604
7809
  keyword: "required",
7605
7810
  params: { missingProperty: "raw" },
7606
7811
  message: "must have required property 'raw'"
7607
7812
  };
7608
- if (vErrors === null) vErrors = [err54];
7609
- else vErrors.push(err54);
7813
+ if (vErrors === null) vErrors = [err65];
7814
+ else vErrors.push(err65);
7610
7815
  errors++;
7611
7816
  }
7612
- if (data22.download === void 0) {
7613
- const err55 = {
7817
+ if (data29.download === void 0) {
7818
+ const err66 = {
7614
7819
  instancePath: instancePath + "/email/content",
7615
7820
  schemaPath: "#/properties/email/properties/content/required",
7616
7821
  keyword: "required",
7617
7822
  params: { missingProperty: "download" },
7618
7823
  message: "must have required property 'download'"
7619
7824
  };
7620
- if (vErrors === null) vErrors = [err55];
7621
- else vErrors.push(err55);
7825
+ if (vErrors === null) vErrors = [err66];
7826
+ else vErrors.push(err66);
7622
7827
  errors++;
7623
7828
  }
7624
- if (data22.raw !== void 0) {
7625
- if (!validate12(data22.raw, {
7829
+ if (data29.raw !== void 0) {
7830
+ if (!validate12(data29.raw, {
7626
7831
  instancePath: instancePath + "/email/content/raw",
7627
- parentData: data22,
7832
+ parentData: data29,
7628
7833
  parentDataProperty: "raw",
7629
7834
  rootData
7630
7835
  })) {
@@ -7632,131 +7837,131 @@ function validate11(data, { instancePath = "", parentData, parentDataProperty, r
7632
7837
  errors = vErrors.length;
7633
7838
  }
7634
7839
  }
7635
- if (data22.download !== void 0) {
7636
- let data24 = data22.download;
7637
- if (data24 && typeof data24 == "object" && !Array.isArray(data24)) {
7638
- if (data24.url === void 0) {
7639
- const err56 = {
7840
+ if (data29.download !== void 0) {
7841
+ let data31 = data29.download;
7842
+ if (data31 && typeof data31 == "object" && !Array.isArray(data31)) {
7843
+ if (data31.url === void 0) {
7844
+ const err67 = {
7640
7845
  instancePath: instancePath + "/email/content/download",
7641
7846
  schemaPath: "#/properties/email/properties/content/properties/download/required",
7642
7847
  keyword: "required",
7643
7848
  params: { missingProperty: "url" },
7644
7849
  message: "must have required property 'url'"
7645
7850
  };
7646
- if (vErrors === null) vErrors = [err56];
7647
- else vErrors.push(err56);
7851
+ if (vErrors === null) vErrors = [err67];
7852
+ else vErrors.push(err67);
7648
7853
  errors++;
7649
7854
  }
7650
- if (data24.expires_at === void 0) {
7651
- const err57 = {
7855
+ if (data31.expires_at === void 0) {
7856
+ const err68 = {
7652
7857
  instancePath: instancePath + "/email/content/download",
7653
7858
  schemaPath: "#/properties/email/properties/content/properties/download/required",
7654
7859
  keyword: "required",
7655
7860
  params: { missingProperty: "expires_at" },
7656
7861
  message: "must have required property 'expires_at'"
7657
7862
  };
7658
- if (vErrors === null) vErrors = [err57];
7659
- else vErrors.push(err57);
7863
+ if (vErrors === null) vErrors = [err68];
7864
+ else vErrors.push(err68);
7660
7865
  errors++;
7661
7866
  }
7662
- if (data24.url !== void 0) {
7663
- let data25 = data24.url;
7664
- if (typeof data25 === "string") {
7665
- if (!pattern4.test(data25)) {
7666
- const err58 = {
7867
+ if (data31.url !== void 0) {
7868
+ let data32 = data31.url;
7869
+ if (typeof data32 === "string") {
7870
+ if (!pattern4.test(data32)) {
7871
+ const err69 = {
7667
7872
  instancePath: instancePath + "/email/content/download/url",
7668
7873
  schemaPath: "#/properties/email/properties/content/properties/download/properties/url/pattern",
7669
7874
  keyword: "pattern",
7670
7875
  params: { pattern: "^https?://" },
7671
7876
  message: "must match pattern \"^https?://\""
7672
7877
  };
7673
- if (vErrors === null) vErrors = [err58];
7674
- else vErrors.push(err58);
7878
+ if (vErrors === null) vErrors = [err69];
7879
+ else vErrors.push(err69);
7675
7880
  errors++;
7676
7881
  }
7677
- if (!formats4.test(data25)) {
7678
- const err59 = {
7882
+ if (!formats4.test(data32)) {
7883
+ const err70 = {
7679
7884
  instancePath: instancePath + "/email/content/download/url",
7680
7885
  schemaPath: "#/properties/email/properties/content/properties/download/properties/url/format",
7681
7886
  keyword: "format",
7682
7887
  params: { format: "uri" },
7683
7888
  message: "must match format \"uri\""
7684
7889
  };
7685
- if (vErrors === null) vErrors = [err59];
7686
- else vErrors.push(err59);
7890
+ if (vErrors === null) vErrors = [err70];
7891
+ else vErrors.push(err70);
7687
7892
  errors++;
7688
7893
  }
7689
7894
  } else {
7690
- const err60 = {
7895
+ const err71 = {
7691
7896
  instancePath: instancePath + "/email/content/download/url",
7692
7897
  schemaPath: "#/properties/email/properties/content/properties/download/properties/url/type",
7693
7898
  keyword: "type",
7694
7899
  params: { type: "string" },
7695
7900
  message: "must be string"
7696
7901
  };
7697
- if (vErrors === null) vErrors = [err60];
7698
- else vErrors.push(err60);
7902
+ if (vErrors === null) vErrors = [err71];
7903
+ else vErrors.push(err71);
7699
7904
  errors++;
7700
7905
  }
7701
7906
  }
7702
- if (data24.expires_at !== void 0) {
7703
- let data26 = data24.expires_at;
7704
- if (typeof data26 === "string") {
7705
- if (!formats0.test(data26)) {
7706
- const err61 = {
7907
+ if (data31.expires_at !== void 0) {
7908
+ let data33 = data31.expires_at;
7909
+ if (typeof data33 === "string") {
7910
+ if (!formats0.test(data33)) {
7911
+ const err72 = {
7707
7912
  instancePath: instancePath + "/email/content/download/expires_at",
7708
7913
  schemaPath: "#/properties/email/properties/content/properties/download/properties/expires_at/format",
7709
7914
  keyword: "format",
7710
7915
  params: { format: "date-time" },
7711
7916
  message: "must match format \"date-time\""
7712
7917
  };
7713
- if (vErrors === null) vErrors = [err61];
7714
- else vErrors.push(err61);
7918
+ if (vErrors === null) vErrors = [err72];
7919
+ else vErrors.push(err72);
7715
7920
  errors++;
7716
7921
  }
7717
7922
  } else {
7718
- const err62 = {
7923
+ const err73 = {
7719
7924
  instancePath: instancePath + "/email/content/download/expires_at",
7720
7925
  schemaPath: "#/properties/email/properties/content/properties/download/properties/expires_at/type",
7721
7926
  keyword: "type",
7722
7927
  params: { type: "string" },
7723
7928
  message: "must be string"
7724
7929
  };
7725
- if (vErrors === null) vErrors = [err62];
7726
- else vErrors.push(err62);
7930
+ if (vErrors === null) vErrors = [err73];
7931
+ else vErrors.push(err73);
7727
7932
  errors++;
7728
7933
  }
7729
7934
  }
7730
7935
  } else {
7731
- const err63 = {
7936
+ const err74 = {
7732
7937
  instancePath: instancePath + "/email/content/download",
7733
7938
  schemaPath: "#/properties/email/properties/content/properties/download/type",
7734
7939
  keyword: "type",
7735
7940
  params: { type: "object" },
7736
7941
  message: "must be object"
7737
7942
  };
7738
- if (vErrors === null) vErrors = [err63];
7739
- else vErrors.push(err63);
7943
+ if (vErrors === null) vErrors = [err74];
7944
+ else vErrors.push(err74);
7740
7945
  errors++;
7741
7946
  }
7742
7947
  }
7743
7948
  } else {
7744
- const err64 = {
7949
+ const err75 = {
7745
7950
  instancePath: instancePath + "/email/content",
7746
7951
  schemaPath: "#/properties/email/properties/content/type",
7747
7952
  keyword: "type",
7748
7953
  params: { type: "object" },
7749
7954
  message: "must be object"
7750
7955
  };
7751
- if (vErrors === null) vErrors = [err64];
7752
- else vErrors.push(err64);
7956
+ if (vErrors === null) vErrors = [err75];
7957
+ else vErrors.push(err75);
7753
7958
  errors++;
7754
7959
  }
7755
7960
  }
7756
- if (data7.parsed !== void 0) {
7757
- if (!validate14(data7.parsed, {
7961
+ if (data14.parsed !== void 0) {
7962
+ if (!validate14(data14.parsed, {
7758
7963
  instancePath: instancePath + "/email/parsed",
7759
- parentData: data7,
7964
+ parentData: data14,
7760
7965
  parentDataProperty: "parsed",
7761
7966
  rootData
7762
7967
  })) {
@@ -7764,10 +7969,10 @@ function validate11(data, { instancePath = "", parentData, parentDataProperty, r
7764
7969
  errors = vErrors.length;
7765
7970
  }
7766
7971
  }
7767
- if (data7.analysis !== void 0) {
7768
- if (!validate20(data7.analysis, {
7972
+ if (data14.analysis !== void 0) {
7973
+ if (!validate20(data14.analysis, {
7769
7974
  instancePath: instancePath + "/email/analysis",
7770
- parentData: data7,
7975
+ parentData: data14,
7771
7976
  parentDataProperty: "analysis",
7772
7977
  rootData
7773
7978
  })) {
@@ -7775,10 +7980,10 @@ function validate11(data, { instancePath = "", parentData, parentDataProperty, r
7775
7980
  errors = vErrors.length;
7776
7981
  }
7777
7982
  }
7778
- if (data7.auth !== void 0) {
7779
- if (!validate39(data7.auth, {
7983
+ if (data14.auth !== void 0) {
7984
+ if (!validate39(data14.auth, {
7780
7985
  instancePath: instancePath + "/email/auth",
7781
- parentData: data7,
7986
+ parentData: data14,
7782
7987
  parentDataProperty: "auth",
7783
7988
  rootData
7784
7989
  })) {
@@ -7787,28 +7992,28 @@ function validate11(data, { instancePath = "", parentData, parentDataProperty, r
7787
7992
  }
7788
7993
  }
7789
7994
  } else {
7790
- const err65 = {
7995
+ const err76 = {
7791
7996
  instancePath: instancePath + "/email",
7792
7997
  schemaPath: "#/properties/email/type",
7793
7998
  keyword: "type",
7794
7999
  params: { type: "object" },
7795
8000
  message: "must be object"
7796
8001
  };
7797
- if (vErrors === null) vErrors = [err65];
7798
- else vErrors.push(err65);
8002
+ if (vErrors === null) vErrors = [err76];
8003
+ else vErrors.push(err76);
7799
8004
  errors++;
7800
8005
  }
7801
8006
  }
7802
8007
  } else {
7803
- const err66 = {
8008
+ const err77 = {
7804
8009
  instancePath,
7805
8010
  schemaPath: "#/type",
7806
8011
  keyword: "type",
7807
8012
  params: { type: "object" },
7808
8013
  message: "must be object"
7809
8014
  };
7810
- if (vErrors === null) vErrors = [err66];
7811
- else vErrors.push(err66);
8015
+ if (vErrors === null) vErrors = [err77];
8016
+ else vErrors.push(err77);
7812
8017
  errors++;
7813
8018
  }
7814
8019
  validate11.errors = vErrors;
@@ -8570,6 +8775,10 @@ const emailReceivedEventJsonSchema = {
8570
8775
  "$ref": "#/definitions/WebhookVersion",
8571
8776
  "description": "API version in date format (YYYY-MM-DD). Use this to detect version mismatches between webhook and SDK."
8572
8777
  },
8778
+ "routing": {
8779
+ "$ref": "#/definitions/RoutingDecision",
8780
+ "description": "The recipient-routing decision for this email: where it was delivered and why. Present only when recipient routing ran for the organization; omitted otherwise. This is the compact decision also recorded on the email's routing metadata."
8781
+ },
8573
8782
  "delivery": {
8574
8783
  "type": "object",
8575
8784
  "properties": {
@@ -8737,6 +8946,53 @@ const emailReceivedEventJsonSchema = {
8737
8946
  ],
8738
8947
  "description": "Webhook payload for the `email.received` event.\n\nThis is delivered to your webhook endpoint when Primitive receives an email matching your domain configuration."
8739
8948
  },
8949
+ "RoutingDecision": {
8950
+ "type": "object",
8951
+ "description": "The recipient-routing decision for an inbound email: which endpoint it resolved to and why. Present on the event only when recipient routing ran for the organization.",
8952
+ "properties": {
8953
+ "version": {
8954
+ "type": "integer",
8955
+ "description": "Decision schema version, so consumers can detect shape changes."
8956
+ },
8957
+ "outcome": {
8958
+ "type": "string",
8959
+ "enum": [
8960
+ "matched",
8961
+ "defaulted",
8962
+ "none"
8963
+ ],
8964
+ "description": "How the destination was chosen: `matched` a recipient route, fell back to a `defaulted` destination (domain or org), or `none` (no destination resolved)."
8965
+ },
8966
+ "endpoint_id": {
8967
+ "type": ["string", "null"],
8968
+ "description": "The endpoint the email was delivered to, or null when no destination resolved."
8969
+ },
8970
+ "matched_route_id": {
8971
+ "type": ["string", "null"],
8972
+ "description": "The recipient route that matched, or null when the outcome was not `matched`."
8973
+ },
8974
+ "matched_tier": {
8975
+ "type": ["string", "null"],
8976
+ "enum": [
8977
+ "exact",
8978
+ "wildcard",
8979
+ "regex",
8980
+ null
8981
+ ],
8982
+ "description": "The match tier of the route that matched, or null when the outcome was not `matched`."
8983
+ },
8984
+ "default_scope": {
8985
+ "type": ["string", "null"],
8986
+ "enum": [
8987
+ "domain",
8988
+ "org",
8989
+ null
8990
+ ],
8991
+ "description": "When the outcome was `defaulted`, whether the default came from the domain or the organization; null otherwise."
8992
+ }
8993
+ },
8994
+ "required": ["outcome"]
8995
+ },
8740
8996
  "WebhookVersion": {
8741
8997
  "type": "string",
8742
8998
  "pattern": "^(?:(?:\\d{4}-(?:(?:01|03|05|07|08|10|12)-(?:0[1-9]|[12]\\d|3[01])|(?:04|06|09|11)-(?:0[1-9]|[12]\\d|30)|02-(?:0[1-9]|1\\d|2[0-8])))|(?:(?:[02468][048]00|[13579][26]00|\\d{2}(?:0[48]|[2468][048]|[13579][26]))-02-29))$",