useyuva 0.0.16 → 0.0.18

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.
@@ -301,10 +301,12 @@ export interface paths {
301
301
  /**
302
302
  * Register a push subscription
303
303
  * @description Saves the browser's `PushSubscription` (`subscription.toJSON()`) for the current session.
304
- * Registering an endpoint that is already saved updates it and moves it to this session and
305
- * person, so call it on every panel start while notification permission is granted. The
306
- * endpoint must be an `https` URL on a public address. At most 20 subscriptions per person.
307
- * 404 `push_disabled` when the server has no VAPID keys.
304
+ * Registering an endpoint the caller already saved updates it and moves it to this session,
305
+ * so call it on every panel start while notification permission is granted. An endpoint
306
+ * saved by another person is never taken over: 409 `push_endpoint_taken`. Signing out or
307
+ * removing the subscription frees the endpoint. The endpoint must be an `https` URL on a
308
+ * public address. At most 20 subscriptions per person. 404 `push_disabled` when the server
309
+ * has no VAPID keys.
308
310
  */
309
311
  post: operations["createPushSubscription"];
310
312
  delete?: never;
@@ -887,7 +889,7 @@ export interface paths {
887
889
  /**
888
890
  * Delete an inbox
889
891
  * @description Owners, admins and API keys. Deletes its channels, conversations,
890
- * messages and attachments.
892
+ * messages and attachments, and its Amazon SES tenant, when the server manages one.
891
893
  *
892
894
  * Scope: `inboxes:manage`.
893
895
  */
@@ -1489,9 +1491,10 @@ export interface paths {
1489
1491
  * Export a contact's consent records
1490
1492
  * @description Every consent event of the contact's subscriptions to the lists the caller can see, oldest
1491
1493
  * first, in the rows of `exportListConsent`: for answering a data subject's access request
1492
- * (GDPR Art. 15, KVKK Art. 11).
1494
+ * (GDPR Art. 15, KVKK Art. 11). The rows carry IP addresses and user agents, so agents are
1495
+ * refused with `403 forbidden`.
1493
1496
  *
1494
- * Scopes: `contacts:read` and `lists:read`.
1497
+ * Owners, admins and API keys. Scopes: `contacts:read` and `lists:read`.
1495
1498
  */
1496
1499
  get: operations["exportContactConsent"];
1497
1500
  put?: never;
@@ -2455,8 +2458,9 @@ export interface paths {
2455
2458
  * from the public (its author no longer sees it either). On the opening post this approves or
2456
2459
  * hides the whole thread. Approving a reply notifies the thread's followers.
2457
2460
  *
2458
- * `body` (and `title` on the opening post) edits a post the calling member wrote; other
2459
- * posts answer `403 forbidden`. Member sessions only.
2461
+ * `state` needs an owner or admin; an agent answers `403 forbidden`. `body` (and `title` on
2462
+ * the opening post) edits a post the calling member wrote, any role; other posts answer
2463
+ * `403 forbidden`. Member sessions only.
2460
2464
  */
2461
2465
  patch: operations["updateDiscussionPost"];
2462
2466
  trace?: never;
@@ -2474,8 +2478,8 @@ export interface paths {
2474
2478
  * Mark a post as spam
2475
2479
  * @description Hides the post (the thread, for an opening post) and every post of its author in the
2476
2480
  * workspace still waiting for approval, and makes the author's later posts wait for a member
2477
- * whatever the channel's setting. A member's post answers `400 validation_failed`.
2478
- * Member sessions only.
2481
+ * whatever the channel's setting. A member's post answers `400 validation_failed`. Needs an
2482
+ * owner or admin; an agent answers `403 forbidden`. Member sessions only.
2479
2483
  */
2480
2484
  post: operations["markDiscussionPostSpam"];
2481
2485
  delete?: never;
@@ -2661,7 +2665,10 @@ export interface paths {
2661
2665
  };
2662
2666
  /**
2663
2667
  * A subscription with its consent events
2664
- * @description Scope: `lists:read`.
2668
+ * @description The events carry the subscriber's IP address and user agent and the acting member or key,
2669
+ * so agents are refused with `403 forbidden`.
2670
+ *
2671
+ * Owners, admins and API keys. Scope: `lists:read`.
2665
2672
  */
2666
2673
  get: operations["getSubscription"];
2667
2674
  put?: never;
@@ -2735,7 +2742,8 @@ export interface paths {
2735
2742
  * agreed or refused from then on. Pending subscriptions are left out. Check the rows against
2736
2743
  * your own records before uploading; only commercial lists need registering.
2737
2744
  *
2738
- * Scope: `lists:read`.
2745
+ * The rows carry IP addresses and user agents, so agents are refused with `403 forbidden`.
2746
+ * Owners, admins and API keys. Scope: `lists:read`.
2739
2747
  */
2740
2748
  get: operations["exportListConsent"];
2741
2749
  put?: never;
@@ -3157,7 +3165,8 @@ export interface paths {
3157
3165
  * (`422 image_too_large`).
3158
3166
  *
3159
3167
  * The same image uploaded again answers `200` with the existing one. `409 image_quota` when
3160
- * the workspace's images would exceed the server's limit.
3168
+ * the workspace's images would exceed the server's limit. A workspace can upload 30 images a
3169
+ * minute; more are refused with `429 rate_limited` and `Retry-After`.
3161
3170
  *
3162
3171
  * Owners, admins and API keys. Scope: `broadcasts:write`.
3163
3172
  */
@@ -3214,8 +3223,9 @@ export interface paths {
3214
3223
  * @description A draft of an inbox. `channel_id` names the inbox's e-mail channel that sends it: one with
3215
3224
  * an SMTP account and an address to send from (`409 email_channel_required`). The audience
3216
3225
  * names up to 10 lists of the same inbox, up to 10 attribute conditions and the contact
3217
- * languages to keep. Everything can be changed while the broadcast is a draft; the review
3218
- * (`GET .../review`) says what is still missing before it can be scheduled.
3226
+ * languages to keep. `pace` sets its own pace (`BroadcastPace`). Everything can be changed
3227
+ * while the broadcast is a draft; the review (`GET .../review`) says what is still missing
3228
+ * before it can be scheduled.
3219
3229
  *
3220
3230
  * Owners, admins and API keys. Scope: `broadcasts:write`. With `YUVA_BROADCASTS=off` every
3221
3231
  * broadcast write answers `403 broadcasts_disabled`.
@@ -3255,7 +3265,11 @@ export interface paths {
3255
3265
  /**
3256
3266
  * Change a draft
3257
3267
  * @description Changes the given fields of a draft (`409 not_draft` otherwise). `channel_id: null` and
3258
- * `design_id: null` clear them; `audience` replaces the whole audience.
3268
+ * `design_id: null` clear them; `audience` replaces the whole audience; `pace` replaces the
3269
+ * whole pace and `{}` removes it. While the broadcast is scheduled, preparing, sending or
3270
+ * paused, `pace` alone can still change (`409 invalid_state` once it finished); it applies to
3271
+ * the next mail, and `409 pace_too_slow` (with `days`, the estimate) refuses a pace under which
3272
+ * the mail still to go out would take more than 365 days.
3259
3273
  *
3260
3274
  * Owners, admins and API keys. Scope: `broadcasts:write`.
3261
3275
  */
@@ -3303,9 +3317,10 @@ export interface paths {
3303
3317
  * `audience_nonempty`, `merge_fields` (no field without a fallback is empty for anyone),
3304
3318
  * `html_size` (at most 102 KB, where Gmail clips; a warning above 90 KB), `images_alt`
3305
3319
  * (warning), `links` (warning for `http:` links), `subject` (1 to 300 characters; a warning
3306
- * above 80), `daily_cap` (warning when the send will take more than one day),
3307
- * `test_sent` (warning when no test went out since the last change) and `click_tracking`
3308
- * (warning: links point at the server's link domain).
3320
+ * above 80), `daily_cap` (warning when the send will take more than one day), `pace`
3321
+ * (blocking when sending at the broadcast's pace, or the channel's rate if slower, would
3322
+ * take more than 365 days), `test_sent` (warning when no test went out since the last change)
3323
+ * and `click_tracking` (warning: links point at the server's link domain).
3309
3324
  *
3310
3325
  * Owners, admins, agents of its inbox and API keys. Scope: `broadcasts:read`.
3311
3326
  */
@@ -3436,8 +3451,10 @@ export interface paths {
3436
3451
  * Resume sending
3437
3452
  * @description A paused broadcast continues where it stopped, whatever paused it; the bounce and
3438
3453
  * complaint rates that pause it on their own count again from now. Refused like scheduling
3439
- * while the workspace is suspended or keys may not schedule (`403`), and `409 invalid_state`
3440
- * when it is not paused.
3454
+ * while the workspace is suspended or keys may not schedule (`403`), `409 invalid_state`
3455
+ * when it is not paused, and `409 ses_tenant_blocked` while the review item `ses_tenant`
3456
+ * would block it (the inbox's Amazon SES tenant is paused, or its channel lost its tenant
3457
+ * isolation).
3441
3458
  *
3442
3459
  * Owners, admins and API keys. Scope: `broadcasts:send`.
3443
3460
  */
@@ -6486,17 +6503,25 @@ export interface paths {
6486
6503
  /**
6487
6504
  * Receive an e-mail
6488
6505
  * @description Called by the edge Email Worker or any MTA with the raw message and its envelope. The
6489
- * signature is `v2=` and the lowercase hex HMAC-SHA256, keyed with the server's
6490
- * `YUVA_INGRESS_SECRET`, over
6491
- * `<X-Yuva-Timestamp>.<X-Yuva-Envelope-To>.<X-Yuva-Envelope-From>.<raw body>` (an empty
6492
- * envelope sender leaves its place empty). The deprecated `v1=`, over
6493
- * `<X-Yuva-Timestamp>.<X-Yuva-Envelope-To>.<raw body>`, is accepted only when
6494
- * `YUVA_INGRESS_ACCEPT_V1` is set, and then the envelope sender is not trusted (it never marks
6495
- * a delivery report or automatic mail). The headers and the timestamp, which must be within 5
6496
- * minutes of the server's clock, are checked before the body is read. A message with a
6497
- * Message-ID seen before on the same channel is accepted again without being stored twice.
6498
- * At most `YUVA_INGRESS_MAX_CONCURRENT` messages are processed at once; more are answered
6499
- * `503 unavailable`.
6506
+ * signature is `v3=<head MAC>.<body MAC>`, both lowercase hex HMAC-SHA256 keyed with the
6507
+ * server's `YUVA_INGRESS_SECRET`. The head MAC covers
6508
+ * `v3\n<X-Yuva-Timestamp>\n<X-Yuva-Envelope-To>\n<X-Yuva-Envelope-From>\n<Content-Length>`
6509
+ * (fields joined by a newline, the length in decimal without leading zeros, an empty envelope
6510
+ * sender leaving its place empty); the body MAC covers the same text, a newline and the raw
6511
+ * body. `Content-Length` is required. The headers, the timestamp, which must be within 5
6512
+ * minutes of the server's clock, and the head MAC are checked before the body is read; the
6513
+ * body must arrive within 30 seconds.
6514
+ *
6515
+ * The deprecated `v2=`, the hex HMAC over
6516
+ * `<X-Yuva-Timestamp>.<X-Yuva-Envelope-To>.<X-Yuva-Envelope-From>.<raw body>`, is accepted
6517
+ * while `YUVA_INGRESS_ACCEPT_V2` is on (the default for now); its body is read before it is
6518
+ * authenticated. The deprecated `v1=`, over `<X-Yuva-Timestamp>.<X-Yuva-Envelope-To>.<raw body>`,
6519
+ * is accepted only when `YUVA_INGRESS_ACCEPT_V1` is set, and then the envelope sender is not
6520
+ * trusted (it never marks a delivery report or automatic mail). A version that is not accepted
6521
+ * is refused before the body is read. A message with a Message-ID seen before on the same
6522
+ * channel is accepted again without being stored twice. At most `YUVA_INGRESS_MAX_CONCURRENT`
6523
+ * messages are processed at once, counted from the signature header check, before the body is
6524
+ * read; more are answered `503 unavailable` without the body being read.
6500
6525
  *
6501
6526
  * The recipient selects the channel: its exact address, then `local@` for `local+tag@`, then
6502
6527
  * the domain's catch-all channel (`*@domain`). Volume never bounces mail: a sender over the
@@ -7045,7 +7070,8 @@ export interface webhooks {
7045
7070
  /**
7046
7071
  * A broadcast changed state
7047
7072
  * @description Scheduled, back to draft, preparing, sending (started or resumed), paused (with
7048
- * `pause_reason`), sent, cancelled or failed; `previous_state` is the state before. Endpoints
7073
+ * `pause_reason`), sent, cancelled or failed; `previous_state` is the state before. A pace
7074
+ * change of a broadcast that is no longer a draft comes without `previous_state`. Endpoints
7049
7075
  * of an inbox get the broadcasts of that inbox.
7050
7076
  */
7051
7077
  post: operations["webhookBroadcastUpdated"];
@@ -7640,6 +7666,7 @@ export interface components {
7640
7666
  ask_for_rating: boolean;
7641
7667
  sender: components["schemas"]["InboxSender"];
7642
7668
  import?: components["schemas"]["InboxImport"];
7669
+ ses_tenant?: components["schemas"]["SesTenantStatus"];
7643
7670
  /** Format: date-time */
7644
7671
  created_at: string;
7645
7672
  /** Format: date-time */
@@ -7799,6 +7826,7 @@ export interface components {
7799
7826
  broadcast_rate: number;
7800
7827
  /** @description The channel's Yuva DKIM key; absent without one. */
7801
7828
  dkim?: components["schemas"]["EmailDkim"];
7829
+ ses?: components["schemas"]["EmailSes"];
7802
7830
  };
7803
7831
  EmailChannelInput: {
7804
7832
  /**
@@ -7826,6 +7854,69 @@ export interface components {
7826
7854
  */
7827
7855
  broadcast_rate?: number;
7828
7856
  dkim?: components["schemas"]["EmailDkimInput"];
7857
+ ses?: components["schemas"]["EmailSesInput"];
7858
+ };
7859
+ /**
7860
+ * @description How the channel's mail through Amazon SES is isolated in an SES tenant. Absent when neither SMTP
7861
+ * account is Amazon SES. `source: server`: the server manages a tenant for the channel's inbox in
7862
+ * its own AWS account and writes `X-SES-TENANT` and `X-SES-CONFIGURATION-SET`; `channel`: the
7863
+ * tenant typed on the channel is written as is; `none`: no tenant header.
7864
+ */
7865
+ EmailSes: {
7866
+ /** @enum {string} */
7867
+ source: "server" | "channel" | "none";
7868
+ /**
7869
+ * @description `isolated`: mail carries the tenant. `pending`: Yuva is setting the tenant up.
7870
+ * `identity_missing`: the sending address and domain are not a verified identity in the
7871
+ * server's SES account; mail goes out without the tenant and broadcasts are blocked.
7872
+ * `paused`: Amazon SES paused the inbox's tenant; mail is refused until it is reinstated.
7873
+ * `not_isolated`: SES through another AWS account or region and no tenant typed.
7874
+ * `error`: AWS refused a step (`detail`).
7875
+ * @enum {string}
7876
+ */
7877
+ state: "isolated" | "pending" | "identity_missing" | "paused" | "not_isolated" | "error";
7878
+ /** @description The `X-SES-TENANT` value written; absent unless `isolated` or `paused`. */
7879
+ tenant?: string;
7880
+ /** @description The `X-SES-CONFIGURATION-SET` value written; absent without one. */
7881
+ configuration_set?: string;
7882
+ detail?: string;
7883
+ /** @description The tenant typed on the channel; used when `source` is not `server`. */
7884
+ channel_tenant?: string;
7885
+ channel_configuration_set?: string;
7886
+ };
7887
+ /**
7888
+ * @description A tenant of your own SES account for this channel's mail, for servers that do not manage
7889
+ * tenants. Absent keeps the stored values; an empty string removes one. Ignored while the server
7890
+ * manages the inbox's tenant.
7891
+ */
7892
+ EmailSesInput: {
7893
+ tenant?: string;
7894
+ configuration_set?: string;
7895
+ };
7896
+ /**
7897
+ * @description The inbox's Amazon SES tenant, when the server manages one. `sending_status: disabled` means SES
7898
+ * paused it: the inbox's mail through the server's SES account is refused and its broadcasts pause
7899
+ * until the server's operator reinstates it. Other inboxes are not affected. `state: missing`
7900
+ * means the tenant is gone from SES: broadcasts are blocked and mail goes out without the tenant
7901
+ * until the server has set it up again.
7902
+ */
7903
+ SesTenantStatus: {
7904
+ /** @enum {string} */
7905
+ state: "pending" | "ready" | "error" | "missing";
7906
+ /** @enum {string} */
7907
+ sending_status: "enabled" | "reinstated" | "disabled";
7908
+ /** @enum {string} */
7909
+ reputation_impact: "none" | "low" | "high";
7910
+ /**
7911
+ * @description `policy`: the reputation policy or the operator; `aws`: Amazon SES itself. Only while disabled.
7912
+ * @enum {string}
7913
+ */
7914
+ paused_by?: "policy" | "aws";
7915
+ cause?: string;
7916
+ /** Format: date-time */
7917
+ status_at?: string;
7918
+ /** Format: date-time */
7919
+ checked_at?: string;
7829
7920
  };
7830
7921
  /**
7831
7922
  * @description A DKIM key Yuva signs the channel's broadcast mail with. `dns_name` and `dns_value` are the
@@ -11217,9 +11308,11 @@ export interface components {
11217
11308
  * spam (after at least 1,000). `sender_error`: the SMTP server refused the account, its TLS or
11218
11309
  * too many mails in a row (`state_detail` has its answer). `workspace_suspended`: the
11219
11310
  * workspace was suspended from sending. `operator`: the server's operator paused it.
11311
+ * `ses_tenant`: Amazon SES paused the inbox's tenant, or the channel lost its tenant isolation;
11312
+ * `state_detail` says which.
11220
11313
  * @enum {string}
11221
11314
  */
11222
- BroadcastPauseReason: "member" | "bounce_rate" | "complaint_rate" | "sender_error" | "workspace_suspended" | "operator";
11315
+ BroadcastPauseReason: "member" | "bounce_rate" | "complaint_rate" | "sender_error" | "workspace_suspended" | "operator" | "ses_tenant";
11223
11316
  /**
11224
11317
  * @description Compares the contact attribute named by `attribute`: `eq`, `neq`, `contains` (text,
11225
11318
  * ignoring case) and `gt`, `lt` (as numbers when both sides are numbers, else as text) with
@@ -11344,8 +11437,15 @@ export interface components {
11344
11437
  /**
11345
11438
  * Format: date-time
11346
11439
  * @description The workspace's daily limit is reached; sending continues at this time (the next 00:00 UTC).
11440
+ * The broadcast's own pace shows in `pace_next_at`.
11347
11441
  */
11348
11442
  waiting_until?: string;
11443
+ pace?: components["schemas"]["BroadcastPace"];
11444
+ /**
11445
+ * Format: date-time
11446
+ * @description While sending with at least a minute between mails: the earliest time the next mail may go out.
11447
+ */
11448
+ pace_next_at?: string;
11349
11449
  /** Format: date-time */
11350
11450
  started_at?: string;
11351
11451
  /** Format: date-time */
@@ -11394,6 +11494,7 @@ export interface components {
11394
11494
  utm?: boolean;
11395
11495
  /** @description Lowercase letters, digits, `-`, `_` and `.`; made from `name` when absent at creation. */
11396
11496
  utm_campaign?: string;
11497
+ pace?: components["schemas"]["BroadcastPace"];
11397
11498
  };
11398
11499
  BroadcastUpdate: {
11399
11500
  /** Format: uuid */
@@ -11409,6 +11510,26 @@ export interface components {
11409
11510
  utm?: boolean;
11410
11511
  /** @description Lowercase letters, digits, `-`, `_` and `.`; made from `name` when absent at creation. */
11411
11512
  utm_campaign?: string;
11513
+ /** @description Replaces the whole pace; `{}` removes it. */
11514
+ pace?: components["schemas"]["BroadcastPace"];
11515
+ };
11516
+ /**
11517
+ * @description The broadcast's own pace, below the channel's `broadcast_rate` and the workspace's daily limit:
11518
+ * at most `per_hour` mails in any 60 minutes, `per_day` in any 24 hours and `per_month` in any
11519
+ * 30 days. Mails are spaced evenly at the gap of the tightest one (3,600 / `per_hour`,
11520
+ * 86,400 / `per_day` or 2,592,000 / `per_month` seconds). Every SMTP attempt counts, retries
11521
+ * included; skipped recipients do not. An empty object is no pace.
11522
+ */
11523
+ BroadcastPace: {
11524
+ /** Format: int32 */
11525
+ per_hour?: number;
11526
+ /** Format: int32 */
11527
+ per_day?: number;
11528
+ /**
11529
+ * Format: int32
11530
+ * @description Any 30 days, not a calendar month.
11531
+ */
11532
+ per_month?: number;
11412
11533
  };
11413
11534
  BroadcastPage: {
11414
11535
  items: components["schemas"]["Broadcast"][];
@@ -11454,7 +11575,7 @@ export interface components {
11454
11575
  by_list: components["schemas"]["BroadcastListCount"][];
11455
11576
  };
11456
11577
  /** @enum {string} */
11457
- BroadcastReviewKey: "sender_identity" | "sender_ready" | "approval" | "design" | "audience_nonempty" | "merge_fields" | "html_size" | "images_alt" | "links" | "subject" | "deliverability" | "daily_cap" | "test_sent" | "click_tracking";
11578
+ BroadcastReviewKey: "sender_identity" | "sender_ready" | "approval" | "design" | "audience_nonempty" | "merge_fields" | "html_size" | "images_alt" | "links" | "subject" | "deliverability" | "daily_cap" | "pace" | "test_sent" | "click_tracking" | "ses_tenant";
11458
11579
  /** @enum {string} */
11459
11580
  BroadcastReviewStatus: "ok" | "warning" | "blocking";
11460
11581
  BroadcastReviewItem: {
@@ -11478,6 +11599,12 @@ export interface components {
11478
11599
  * @description How many UTC days sending takes under the workspace's daily limit; absent without a limit.
11479
11600
  */
11480
11601
  days?: number;
11602
+ /**
11603
+ * Format: int64
11604
+ * @description About how long sending takes from its start: the slowest of the pace, the channel's rate and
11605
+ * the workspace's daily limit (as if no other broadcast used it). Absent when nobody would get it.
11606
+ */
11607
+ duration_seconds?: number;
11481
11608
  items: components["schemas"]["BroadcastReviewItem"][];
11482
11609
  };
11483
11610
  BroadcastProblem: components["schemas"]["Problem"] & {
@@ -11636,7 +11763,7 @@ export interface components {
11636
11763
  previous_state?: components["schemas"]["BroadcastState"];
11637
11764
  };
11638
11765
  /**
11639
- * @description `broadcast.updated`: the broadcast changed state. Delivered to callers who hold
11766
+ * @description `broadcast.updated`: the broadcast changed state or its pace. Delivered to callers who hold
11640
11767
  * `broadcasts:read` and can see its inbox.
11641
11768
  */
11642
11769
  BroadcastEvent: {
@@ -11662,6 +11789,11 @@ export interface components {
11662
11789
  counts: components["schemas"]["BroadcastCounts"];
11663
11790
  /** Format: date-time */
11664
11791
  waiting_until?: string;
11792
+ /**
11793
+ * Format: date-time
11794
+ * @description While sending with at least a minute between mails: the earliest time the next mail may go out.
11795
+ */
11796
+ pace_next_at?: string;
11665
11797
  };
11666
11798
  /**
11667
11799
  * @description `broadcast.progress`, on `/v1/realtime` only: the counts of a preparing or sending broadcast,
@@ -15546,6 +15678,7 @@ export interface operations {
15546
15678
  400: components["responses"]["Problem"];
15547
15679
  401: components["responses"]["Problem"];
15548
15680
  404: components["responses"]["Problem"];
15681
+ 409: components["responses"]["Problem"];
15549
15682
  };
15550
15683
  };
15551
15684
  deletePushSubscription: {
@@ -20233,6 +20366,7 @@ export interface operations {
20233
20366
  413: components["responses"]["Problem"];
20234
20367
  415: components["responses"]["Problem"];
20235
20368
  422: components["responses"]["Problem"];
20369
+ 429: components["responses"]["Problem"];
20236
20370
  };
20237
20371
  };
20238
20372
  deleteEmailImage: {
@@ -24736,6 +24870,8 @@ export interface operations {
24736
24870
  /** @description Unix time in seconds. */
24737
24871
  "X-Yuva-Timestamp": string;
24738
24872
  "X-Yuva-Signature": string;
24873
+ /** @description The body length in bytes; covered by the `v3` head MAC. */
24874
+ "Content-Length": number;
24739
24875
  };
24740
24876
  path?: never;
24741
24877
  cookie?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "useyuva",
3
- "version": "0.0.16",
3
+ "version": "0.0.18",
4
4
  "description": "Yuva for the web: a headless client for contacts, the <yuva-chat> element, documentation page feedback and discussions, the <yuva-subscribe> mailing list form, cookieless web analytics, React hooks, a Nuxt module, a typed /v1 client and server helpers for identity tokens, webhooks and server-side analytics.",
5
5
  "license": "MIT",
6
6
  "repository": {