@pidgeon-ai/sdk 1.23.0 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,24 @@ 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.25.0 — a forged `from` is held back
11
+
12
+ `messagesAwait` with `from` matches only mail that passed DMARC (or that
13
+ Pidgeon delivered between its own addresses), because anybody can write a
14
+ `From:`. A match that did not is counted in `held_back.unauthenticated`, and
15
+ its id is in `held_back.message_ids`; `include_unauthenticated: 'true'`
16
+ returns it. A behaviour change for a sender that publishes no DMARC record.
17
+
18
+ ## 1.24.0 — test mode
19
+
20
+ `keysCreate` takes `test: true` for a `pgn_test_` key: everything works, and
21
+ nothing it sends leaves Pidgeon or counts against the plan. A test key's
22
+ children are test keys. Every key, message and send answer (`messagesSend`,
23
+ `messagesReply`, `messagesReplyAll`, `messagesForward`, `draftsSend`) has
24
+ `test`. `testInbound` (`POST /test/inbound`) delivers a simulated message to
25
+ one of a test key's addresses, optionally as a reply (`in_reply_to`). A test
26
+ key gets `403` creating addresses, domains, pods or app passwords. Additive.
27
+
10
28
  ## 1.23.0 — rotating a key
11
29
 
12
30
  `keysRotate` (`POST /api-keys/{id}/rotate`) gives a key a new secret and
package/dist/index.cjs CHANGED
@@ -119,6 +119,7 @@ __export(index_exports, {
119
119
  routingList: () => routingList,
120
120
  routingUpdate: () => routingUpdate,
121
121
  streamEvents: () => streamEvents,
122
+ testInbound: () => testInbound,
122
123
  threadsGet: () => threadsGet,
123
124
  threadsLabelsCreate: () => threadsLabelsCreate,
124
125
  threadsLabelsDelete: () => threadsLabelsDelete,
@@ -1393,6 +1394,15 @@ var keysRotate = (options) => (options.client ?? client).post({
1393
1394
  ...options.headers
1394
1395
  }
1395
1396
  });
1397
+ var testInbound = (options) => (options.client ?? client).post({
1398
+ security: [{ scheme: "bearer", type: "http" }],
1399
+ url: "/test/inbound",
1400
+ ...options,
1401
+ headers: {
1402
+ "Content-Type": "application/json",
1403
+ ...options.headers
1404
+ }
1405
+ });
1396
1406
  var appPasswordsList = (options) => (options.client ?? client).get({
1397
1407
  security: [{ scheme: "bearer", type: "http" }],
1398
1408
  url: "/app-passwords",
@@ -1914,6 +1924,7 @@ function sleep(ms, signal) {
1914
1924
  routingList,
1915
1925
  routingUpdate,
1916
1926
  streamEvents,
1927
+ testInbound,
1917
1928
  threadsGet,
1918
1929
  threadsLabelsCreate,
1919
1930
  threadsLabelsDelete,