@pidgeon-ai/sdk 1.16.0 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,15 @@ the two would publish a release for every unrelated product deploy.
7
7
  Semver applies to **this package's own surface** — the exported names, the
8
8
  call shapes, the result shape — not to the API behind it.
9
9
 
10
+ ## 1.16.1 — a refused send says so
11
+
12
+ The contract declares `400` and `403` on every send — `messagesSend`,
13
+ `messagesReply`, `messagesReplyAll`, `messagesForward`, `draftsSend` — and
14
+ `409` on `messagesSend`. No request or success shape changes. The Python
15
+ client returned `None` for a `403` (a sending limit, a rule, the send
16
+ policy) because the status was not in the document; it returns the `Error`
17
+ now, so check for it before treating a send as done.
18
+
10
19
  ## 1.16.0 — an attachment as text
11
20
 
12
21
  `attachmentsText` (`GET /attachments/{id}/text`) returns a text attachment —
package/dist/index.d.cts CHANGED
@@ -2851,14 +2851,26 @@ type MessagesSendData = {
2851
2851
  url: '/messages';
2852
2852
  };
2853
2853
  type MessagesSendErrors = {
2854
+ /**
2855
+ * The request is not valid. `error.param` names the field when there is one.
2856
+ */
2857
+ 400: Error;
2854
2858
  /**
2855
2859
  * No API key, or one that is not valid.
2856
2860
  */
2857
2861
  401: Error;
2862
+ /**
2863
+ * Refused, and nothing was sent to anybody. `error.code` says why: `blocked` (a rule), `not_permitted` (the send policy), `abuse_blocked` (a sending limit) or `forbidden` (the address is not one this key can send from, or is not active).
2864
+ */
2865
+ 403: Error;
2858
2866
  /**
2859
2867
  * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2860
2868
  */
2861
2869
  404: Error;
2870
+ /**
2871
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
2872
+ */
2873
+ 409: Error;
2862
2874
  /**
2863
2875
  * Rate limited. `X-RateLimit-Reset` says when to retry.
2864
2876
  */
@@ -3137,10 +3149,18 @@ type MessagesReplyData = {
3137
3149
  url: '/messages/{id}/reply';
3138
3150
  };
3139
3151
  type MessagesReplyErrors = {
3152
+ /**
3153
+ * The request is not valid. `error.param` names the field when there is one.
3154
+ */
3155
+ 400: Error;
3140
3156
  /**
3141
3157
  * No API key, or one that is not valid.
3142
3158
  */
3143
3159
  401: Error;
3160
+ /**
3161
+ * Refused, and nothing was sent to anybody. `error.code` says why: `blocked` (a rule), `not_permitted` (the send policy), `abuse_blocked` (a sending limit) or `forbidden` (the address is not one this key can send from, or is not active).
3162
+ */
3163
+ 403: Error;
3144
3164
  /**
3145
3165
  * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3146
3166
  */
@@ -3194,10 +3214,18 @@ type MessagesReplyAllData = {
3194
3214
  url: '/messages/{id}/reply-all';
3195
3215
  };
3196
3216
  type MessagesReplyAllErrors = {
3217
+ /**
3218
+ * The request is not valid. `error.param` names the field when there is one.
3219
+ */
3220
+ 400: Error;
3197
3221
  /**
3198
3222
  * No API key, or one that is not valid.
3199
3223
  */
3200
3224
  401: Error;
3225
+ /**
3226
+ * Refused, and nothing was sent to anybody. `error.code` says why: `blocked` (a rule), `not_permitted` (the send policy), `abuse_blocked` (a sending limit) or `forbidden` (the address is not one this key can send from, or is not active).
3227
+ */
3228
+ 403: Error;
3201
3229
  /**
3202
3230
  * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3203
3231
  */
@@ -3251,10 +3279,18 @@ type MessagesForwardData = {
3251
3279
  url: '/messages/{id}/forward';
3252
3280
  };
3253
3281
  type MessagesForwardErrors = {
3282
+ /**
3283
+ * The request is not valid. `error.param` names the field when there is one.
3284
+ */
3285
+ 400: Error;
3254
3286
  /**
3255
3287
  * No API key, or one that is not valid.
3256
3288
  */
3257
3289
  401: Error;
3290
+ /**
3291
+ * Refused, and nothing was sent to anybody. `error.code` says why: `blocked` (a rule), `not_permitted` (the send policy), `abuse_blocked` (a sending limit) or `forbidden` (the address is not one this key can send from, or is not active).
3292
+ */
3293
+ 403: Error;
3258
3294
  /**
3259
3295
  * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3260
3296
  */
@@ -5616,10 +5652,18 @@ type DraftsSendData = {
5616
5652
  url: '/drafts/{id}/send';
5617
5653
  };
5618
5654
  type DraftsSendErrors = {
5655
+ /**
5656
+ * The request is not valid. `error.param` names the field when there is one.
5657
+ */
5658
+ 400: Error;
5619
5659
  /**
5620
5660
  * No API key, or one that is not valid.
5621
5661
  */
5622
5662
  401: Error;
5663
+ /**
5664
+ * Refused, and nothing was sent to anybody. `error.code` says why: `blocked` (a rule), `not_permitted` (the send policy), `abuse_blocked` (a sending limit) or `forbidden` (the address is not one this key can send from, or is not active).
5665
+ */
5666
+ 403: Error;
5623
5667
  /**
5624
5668
  * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
5625
5669
  */
package/dist/index.d.ts CHANGED
@@ -2851,14 +2851,26 @@ type MessagesSendData = {
2851
2851
  url: '/messages';
2852
2852
  };
2853
2853
  type MessagesSendErrors = {
2854
+ /**
2855
+ * The request is not valid. `error.param` names the field when there is one.
2856
+ */
2857
+ 400: Error;
2854
2858
  /**
2855
2859
  * No API key, or one that is not valid.
2856
2860
  */
2857
2861
  401: Error;
2862
+ /**
2863
+ * Refused, and nothing was sent to anybody. `error.code` says why: `blocked` (a rule), `not_permitted` (the send policy), `abuse_blocked` (a sending limit) or `forbidden` (the address is not one this key can send from, or is not active).
2864
+ */
2865
+ 403: Error;
2858
2866
  /**
2859
2867
  * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
2860
2868
  */
2861
2869
  404: Error;
2870
+ /**
2871
+ * This `Idempotency-Key` was used with a different request, or that request is still running. Nothing was sent by this call.
2872
+ */
2873
+ 409: Error;
2862
2874
  /**
2863
2875
  * Rate limited. `X-RateLimit-Reset` says when to retry.
2864
2876
  */
@@ -3137,10 +3149,18 @@ type MessagesReplyData = {
3137
3149
  url: '/messages/{id}/reply';
3138
3150
  };
3139
3151
  type MessagesReplyErrors = {
3152
+ /**
3153
+ * The request is not valid. `error.param` names the field when there is one.
3154
+ */
3155
+ 400: Error;
3140
3156
  /**
3141
3157
  * No API key, or one that is not valid.
3142
3158
  */
3143
3159
  401: Error;
3160
+ /**
3161
+ * Refused, and nothing was sent to anybody. `error.code` says why: `blocked` (a rule), `not_permitted` (the send policy), `abuse_blocked` (a sending limit) or `forbidden` (the address is not one this key can send from, or is not active).
3162
+ */
3163
+ 403: Error;
3144
3164
  /**
3145
3165
  * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3146
3166
  */
@@ -3194,10 +3214,18 @@ type MessagesReplyAllData = {
3194
3214
  url: '/messages/{id}/reply-all';
3195
3215
  };
3196
3216
  type MessagesReplyAllErrors = {
3217
+ /**
3218
+ * The request is not valid. `error.param` names the field when there is one.
3219
+ */
3220
+ 400: Error;
3197
3221
  /**
3198
3222
  * No API key, or one that is not valid.
3199
3223
  */
3200
3224
  401: Error;
3225
+ /**
3226
+ * Refused, and nothing was sent to anybody. `error.code` says why: `blocked` (a rule), `not_permitted` (the send policy), `abuse_blocked` (a sending limit) or `forbidden` (the address is not one this key can send from, or is not active).
3227
+ */
3228
+ 403: Error;
3201
3229
  /**
3202
3230
  * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3203
3231
  */
@@ -3251,10 +3279,18 @@ type MessagesForwardData = {
3251
3279
  url: '/messages/{id}/forward';
3252
3280
  };
3253
3281
  type MessagesForwardErrors = {
3282
+ /**
3283
+ * The request is not valid. `error.param` names the field when there is one.
3284
+ */
3285
+ 400: Error;
3254
3286
  /**
3255
3287
  * No API key, or one that is not valid.
3256
3288
  */
3257
3289
  401: Error;
3290
+ /**
3291
+ * Refused, and nothing was sent to anybody. `error.code` says why: `blocked` (a rule), `not_permitted` (the send policy), `abuse_blocked` (a sending limit) or `forbidden` (the address is not one this key can send from, or is not active).
3292
+ */
3293
+ 403: Error;
3258
3294
  /**
3259
3295
  * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
3260
3296
  */
@@ -5616,10 +5652,18 @@ type DraftsSendData = {
5616
5652
  url: '/drafts/{id}/send';
5617
5653
  };
5618
5654
  type DraftsSendErrors = {
5655
+ /**
5656
+ * The request is not valid. `error.param` names the field when there is one.
5657
+ */
5658
+ 400: Error;
5619
5659
  /**
5620
5660
  * No API key, or one that is not valid.
5621
5661
  */
5622
5662
  401: Error;
5663
+ /**
5664
+ * Refused, and nothing was sent to anybody. `error.code` says why: `blocked` (a rule), `not_permitted` (the send policy), `abuse_blocked` (a sending limit) or `forbidden` (the address is not one this key can send from, or is not active).
5665
+ */
5666
+ 403: Error;
5623
5667
  /**
5624
5668
  * No such resource, or one this key cannot reach. The two answer the same, so treat a 404 as “not available to you” rather than “does not exist”.
5625
5669
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pidgeon-ai/sdk",
3
- "version": "1.16.0",
3
+ "version": "1.16.1",
4
4
  "description": "Email inboxes for AI agents — TypeScript SDK for Pidgeon: create addresses, send, receive and reply.",
5
5
  "keywords": [
6
6
  "email",