agent-protocols 0.10.1 → 0.11.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/README.md +89 -2
- package/dist/identity.d.ts +14 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +79 -2
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mail-client.d.ts +38 -0
- package/dist/mail-client.d.ts.map +1 -0
- package/dist/mail-client.js +176 -0
- package/dist/mail-client.js.map +1 -0
- package/dist/mail-schema.d.ts +355 -0
- package/dist/mail-schema.d.ts.map +1 -0
- package/dist/mail-schema.js +376 -0
- package/dist/mail-schema.js.map +1 -0
- package/dist/mail.d.ts +244 -0
- package/dist/mail.d.ts.map +1 -0
- package/dist/mail.js +817 -0
- package/dist/mail.js.map +1 -0
- package/package.json +14 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# agent-protocols TypeScript SDK
|
|
2
2
|
|
|
3
|
-
TypeScript SDK for the draft Agent Identity, Agent Profile, Agent Delegation, and Agent
|
|
3
|
+
TypeScript SDK for the draft Agent Identity, Agent Profile, Agent Delegation, Agent Discourse, Agent Knowledge, and Agent Mail protocols.
|
|
4
4
|
|
|
5
5
|
## Modules
|
|
6
6
|
|
|
@@ -8,7 +8,10 @@ TypeScript SDK for the draft Agent Identity, Agent Profile, Agent Delegation, an
|
|
|
8
8
|
- `profile`: `profile.update` payloads, Profile documents, delegation discovery hints, validation, succession checks, materialization.
|
|
9
9
|
- `delegation`: principal documents and resolution, Controller records with `supersedes` lineage, grant/revoke payloads, credentials, query shapes, authority, acceptance, historical, and use checks, `verifyDelegationCredential` over the latest grant record, and `auditDelegationHistory` for auditors.
|
|
10
10
|
- `discourse`: the ADP kernel — twelve built-in event types, freshness classes, room policy (`invites`, `open_roles`), signed join requests and reviews, the type system with the portable type schema profile, redacted records, server records, and archive verification.
|
|
11
|
-
- `
|
|
11
|
+
- `knowledge`: signed research contributions, validation, in-memory retrieval and state.
|
|
12
|
+
- `mail`: signed mailbox cards, sender-signed HPKE packets, card pins, key retention, inbox deduplication, and relay state.
|
|
13
|
+
- `mail-client`: sender-signed Mail delivery and owner-authenticated retrieval with strict HTTP response checks.
|
|
14
|
+
- `http-client`: fetch-based Profile, Delegation, Discourse, and Knowledge clients. Lists use `{ result, next_cursor }`; non-2xx responses throw `HttpResponseError` with the protocol `code`, `data`, and `Max-Seen-Nonce`.
|
|
12
15
|
- `local-connector`: the Local Agent Protocols MCP connector: 23 standard tools, resource URIs, structured views, and the connector engine.
|
|
13
16
|
|
|
14
17
|
## Example
|
|
@@ -125,3 +128,87 @@ validity, artifact identity, profile conformance, retrieval relevance, and
|
|
|
125
128
|
scientific correctness remain separate judgments. The native TypeScript
|
|
126
129
|
conformance suite executes every signed fixture and layered protocol case, with
|
|
127
130
|
additional HTTP, isolation, pruning, and pagination regressions.
|
|
131
|
+
|
|
132
|
+
## Agent Mail
|
|
133
|
+
|
|
134
|
+
Messages have no inner signature. A packet is the sender-signed `mail.submit`
|
|
135
|
+
envelope around the HPKE ciphertext. HPKE AAD binds its protocol, type, actor,
|
|
136
|
+
creation time, nonce and header. Relays can verify the sender without reading
|
|
137
|
+
the subject or body; this format does not hide the communication graph. A
|
|
138
|
+
plaintext message alone is not a transferable author-signed artifact.
|
|
139
|
+
|
|
140
|
+
`message_id` is a random 32-byte base64url identifier retained across retries;
|
|
141
|
+
`from`, original `created_at`, recipient, expiration, thread and parts are also
|
|
142
|
+
immutable. The outer hash is the packet ID, not the logical message ID. Retries
|
|
143
|
+
reuse the same packet on every route until it expires; only a card change needs
|
|
144
|
+
a fresh packet (new HPKE randomness, time and nonce) around the same message. Replies refer to the parent's `message_id` and must
|
|
145
|
+
bind both participants and the thread. Content is inert and never executes tools.
|
|
146
|
+
|
|
147
|
+
Packets are asynchronous signed objects, not live writes: relays and recipients
|
|
148
|
+
reject only future-dated packets and apply no nonce maximum, so offline and
|
|
149
|
+
out-of-order messages remain usable. Relays deduplicate packet IDs with
|
|
150
|
+
tombstones; only card publishes use the live-write nonce store. Inbox
|
|
151
|
+
deduplication is scoped to the recipient, sender and message ID; different
|
|
152
|
+
content under an accepted identity is rejected, not overwritten. Sender policy
|
|
153
|
+
is checked before decryption.
|
|
154
|
+
|
|
155
|
+
The state helpers are **in memory**, not hosted or durable services. Persist
|
|
156
|
+
snapshots atomically before acknowledging storage/deletion or acting. Relay
|
|
157
|
+
snapshots include sender policies but not the short-lived nonce cache.
|
|
158
|
+
Keyring snapshots contain raw private keys and need protected storage. Pruning
|
|
159
|
+
keys cannot erase copies in backups. Production HPKE always uses fresh randomness.
|
|
160
|
+
|
|
161
|
+
Mailbox addressing uses `did:agent:<key>/mail/<mailbox_id>` and optional
|
|
162
|
+
`?route=<origin>` hints. Parse/format helpers reuse Agent Identity's Agent URLs.
|
|
163
|
+
Hints do not authorize a route; verified, pinned cards supply current routes.
|
|
164
|
+
The local MCP connector does not yet expose Mail tools.
|
|
165
|
+
|
|
166
|
+
```ts
|
|
167
|
+
import {
|
|
168
|
+
AgentSigner, ClientNonceManager, MailEncryptionKey, MailCardCache,
|
|
169
|
+
MailKeyring, MailInbox, createMailMessage, mailboxPublishEvent,
|
|
170
|
+
mailTextPart, newMailId,
|
|
171
|
+
} from "agent-protocols";
|
|
172
|
+
|
|
173
|
+
const sender = AgentSigner.generate(), owner = AgentSigner.generate();
|
|
174
|
+
const key = MailEncryptionKey.generate(), nonces = new ClientNonceManager();
|
|
175
|
+
const now = Date.now();
|
|
176
|
+
const card = owner.signEvent(mailboxPublishEvent(owner.agentId(), now, now, {
|
|
177
|
+
mailbox_id: newMailId(), expires_at: now + 86400000,
|
|
178
|
+
receive_until: now + 172800000, public_key: key.publicKey(),
|
|
179
|
+
routes: ["https://relay.example"], max_packet_bytes: 65536,
|
|
180
|
+
}));
|
|
181
|
+
const message = createMailMessage(sender.agentId(), now, {
|
|
182
|
+
to: owner.agentId(), expires_at: now + 86400000, thread_id: newMailId(),
|
|
183
|
+
parts: [mailTextPart("A private question")],
|
|
184
|
+
});
|
|
185
|
+
const pins = new MailCardCache();
|
|
186
|
+
const packet = await pins.seal(message, card, sender, nonces.nextNonce(now), now);
|
|
187
|
+
const keys = new MailKeyring(owner.agentId());
|
|
188
|
+
keys.add(card, key);
|
|
189
|
+
const inbox = new MailInbox(keys);
|
|
190
|
+
const { kind, message: received } = await inbox.accept(packet, now);
|
|
191
|
+
// Persist pins.snapshot(), keys.exportSnapshot() and inbox.snapshot() before ack.
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
`agent-protocols/mail` exports `MailMessagePayload` for plaintext and
|
|
195
|
+
`MailPacket = Envelope<MailPacketPayload>` for the signed wire object.
|
|
196
|
+
`sealMailPacket(message, card, signer, nonce, now)` returns a packet;
|
|
197
|
+
`openMailPacket` verifies and decrypts it. `validateMailMessage` checks
|
|
198
|
+
plaintext, `validateMailPacket` checks the packet, and `mailPacketId` returns its
|
|
199
|
+
event hash. `validateMailReply` checks parent bindings. `MailInbox.accept`
|
|
200
|
+
returns `{ kind, message }`. `MailInbox.setSenderBlocked(sender, blocked)`
|
|
201
|
+
controls local pre-decryption policy. `MailRelayStore.setSenderBlocked(mailboxId,
|
|
202
|
+
sender, blocked)` is relay-side policy: Mail defines no management endpoint, so
|
|
203
|
+
the host authenticates the mailbox owner first. Exact retries return historical
|
|
204
|
+
status without new admission. The injected `nonceStore` applies to card publishes.
|
|
205
|
+
|
|
206
|
+
`MailClient` is exported from the root and `agent-protocols/mail-client`.
|
|
207
|
+
It uses fixed HTTPS paths for `publish`, `card`, `deliver`, `list`, `pages` and
|
|
208
|
+
`delete`. Pass a shared `cardCache` and persist it even when a read reports an
|
|
209
|
+
unusable newer card. Delivery exposes the signed actor but never sends ambient
|
|
210
|
+
credentials. Fetch uses `credentials: "omit"` and `redirect: "error"`; owner
|
|
211
|
+
reads/deletes validate their JWT first. Responses have size, strict JSON and
|
|
212
|
+
binding checks. Supply `allowUrl` and transport-level DNS/egress policy for the
|
|
213
|
+
deployment. Production code runs in Node, browsers and Workers, with no Node-only
|
|
214
|
+
crypto or Buffer. JS cannot guarantee erasure of provider-owned or GC copies.
|
package/dist/identity.d.ts
CHANGED
|
@@ -178,6 +178,20 @@ export declare function withMention<P>(event: Event<P>, agentId: AgentId): Event
|
|
|
178
178
|
export declare function agentIdFromPublicKey(publicKey: Uint8Array): AgentId;
|
|
179
179
|
export declare function publicKeyBytes(agentId: AgentId): Uint8Array;
|
|
180
180
|
export declare function validateAgentId(agentId: AgentId): AgentId;
|
|
181
|
+
export declare const AGENT_URL_MAX_ROUTES = 8;
|
|
182
|
+
/**
|
|
183
|
+
* A parsed Agent URL (Agent Identity Section 3.5):
|
|
184
|
+
* `did:agent:<key>[/<protocol>/<resource>][?route=<origin>...]`.
|
|
185
|
+
* `protocol` and `resource` are both present or both absent.
|
|
186
|
+
*/
|
|
187
|
+
export interface AgentUrl {
|
|
188
|
+
agent_id: AgentId;
|
|
189
|
+
protocol?: string;
|
|
190
|
+
resource?: string;
|
|
191
|
+
routes: string[];
|
|
192
|
+
}
|
|
193
|
+
export declare function parseAgentUrl(value: unknown): AgentUrl;
|
|
194
|
+
export declare function formatAgentUrl(url: AgentUrl): string;
|
|
181
195
|
export declare function canonicalEventBytes(event: Event<unknown>): Uint8Array;
|
|
182
196
|
export declare function eventHash(event: Event<unknown>): string;
|
|
183
197
|
export declare function eventHashBytes(event: Event<unknown>): Uint8Array;
|
package/dist/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,4BAA4B,SAAU,CAAC;AACpD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAmC,CAAC;AACrE,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,cAAc,QAA0B,CAAC;AACtD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAU,CAAC;AAEtC,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAOlD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAa/C,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,OAAO;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;CACH;AAED,kGAAkG;AAClG,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,0FAA0F;AAC1F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,CACZ,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC;IACV,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,iFAAiF;IACjF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,WAAW;IACF,OAAO,CAAC,QAAQ,CAAC,OAAO;IAA5C,OAAO,eAA2D;IAElE,MAAM,CAAC,QAAQ,IAAI,WAAW,CAE7B;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAQ7C;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,SAAS,IAAI,UAAU,CAEtB;IAED,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAOzC;IAED,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAsB/C;IAED;;;;OAIG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOjD;CACF;AAED,qFAAqF;AACrF,eAAO,MAAM,2BAA2B,kDAAkD,CAAC;AAI3F,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5D;AAWD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,IAAI,CAWN;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D,cAAc,CACZ,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM,CAoBR;IAED,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1D;CACF;AAED;;;;;GAKG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,cAAc;IAAlC,YAAoB,cAAc,SAAI,EAErC;IAED,IAAI,IAAI,MAAM,CAEb;IAED,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAQpC;IAED;;;OAGG;IACH,eAAe,CACb,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,KAAK,GAAE,MAAyB,GAC/B,IAAI,CAaN;CACF;AAED,wBAAgB,WAAW,CAAC,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,GACT,KAAK,CAAC,CAAC,CAAC,CAWV;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EACrB,WAAW,GAAE,SAAS,MAAM,EAAO,GAClC,IAAI,CAcN;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAKvE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC,CAAC,CAAC,CAUV;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,OAAO,EAAE,GAClB,KAAK,CAAC,CAAC,CAAC,CAMV;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAM1E;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAQnE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAqB3D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAGzD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,UAAU,CASrE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAEvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,UAAU,CAGhE;AAED,wBAAgB,SAAS,CACvB,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GACpB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,GACpB,MAAM,CAUR;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAQjE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAMjE;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,MAAM,GACvB,IAAI,CAiBN;AAgCD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,GACpB,OAAO,CAOT;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAGhE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAmBxE;AAiJD,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,IAAI,CAON;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB,CAgBlB;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAcR;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAIrE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAYtE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWjD;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,gBAAgB,CAQlB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB,
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.js
CHANGED
|
@@ -271,6 +271,66 @@ export function validateAgentId(agentId) {
|
|
|
271
271
|
publicKeyBytes(agentId);
|
|
272
272
|
return agentId;
|
|
273
273
|
}
|
|
274
|
+
export const AGENT_URL_MAX_ROUTES = 8;
|
|
275
|
+
const AGENT_URL_PROTOCOL = /^[a-z]+$/;
|
|
276
|
+
const AGENT_URL_RESOURCE = /^[A-Za-z0-9_-]+$/;
|
|
277
|
+
export function parseAgentUrl(value) {
|
|
278
|
+
if (typeof value !== "string" ||
|
|
279
|
+
!/^[\x21-\x7e]*$/.test(value) ||
|
|
280
|
+
value.includes("#") ||
|
|
281
|
+
value.includes("%")) {
|
|
282
|
+
throw protocolError("invalid_url", "agent URL must be printable ASCII without fragment or percent-encoding");
|
|
283
|
+
}
|
|
284
|
+
const query = value.indexOf("?");
|
|
285
|
+
const segments = (query < 0 ? value : value.slice(0, query)).split("/");
|
|
286
|
+
const url = { agent_id: validateAgentId(segments[0]), routes: [] };
|
|
287
|
+
if (segments.length !== 1) {
|
|
288
|
+
if (segments.length !== 3 ||
|
|
289
|
+
!AGENT_URL_PROTOCOL.test(segments[1]) ||
|
|
290
|
+
!AGENT_URL_RESOURCE.test(segments[2])) {
|
|
291
|
+
throw protocolError("invalid_url", "agent URL path must be /<protocol>/<resource>");
|
|
292
|
+
}
|
|
293
|
+
url.protocol = segments[1];
|
|
294
|
+
url.resource = segments[2];
|
|
295
|
+
}
|
|
296
|
+
if (query >= 0) {
|
|
297
|
+
const items = value.slice(query + 1).split("&");
|
|
298
|
+
if (items.length > AGENT_URL_MAX_ROUTES) {
|
|
299
|
+
throw protocolError("invalid_url", "agent URL allows at most eight routes");
|
|
300
|
+
}
|
|
301
|
+
for (const item of items) {
|
|
302
|
+
if (!item.startsWith("route=")) {
|
|
303
|
+
throw protocolError("invalid_url", "agent URL query allows only route parameters");
|
|
304
|
+
}
|
|
305
|
+
const route = item.slice("route=".length);
|
|
306
|
+
validateOrigin(route);
|
|
307
|
+
if (url.routes.includes(route)) {
|
|
308
|
+
throw protocolError("invalid_url", "duplicate agent URL route");
|
|
309
|
+
}
|
|
310
|
+
url.routes.push(route);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
return url;
|
|
314
|
+
}
|
|
315
|
+
export function formatAgentUrl(url) {
|
|
316
|
+
validateAgentId(url.agent_id);
|
|
317
|
+
const path = url.protocol == null ? "" : `/${url.protocol}/${url.resource}`;
|
|
318
|
+
if ((url.protocol == null) !== (url.resource == null) ||
|
|
319
|
+
(url.protocol != null &&
|
|
320
|
+
(!AGENT_URL_PROTOCOL.test(url.protocol) ||
|
|
321
|
+
!AGENT_URL_RESOURCE.test(url.resource)))) {
|
|
322
|
+
throw protocolError("invalid_url", "agent URL path must be /<protocol>/<resource>");
|
|
323
|
+
}
|
|
324
|
+
if (url.routes.length > AGENT_URL_MAX_ROUTES ||
|
|
325
|
+
new Set(url.routes).size !== url.routes.length) {
|
|
326
|
+
throw protocolError("invalid_url", "agent URL routes must be at most eight unique origins");
|
|
327
|
+
}
|
|
328
|
+
url.routes.forEach(validateOrigin);
|
|
329
|
+
const query = url.routes.length
|
|
330
|
+
? "?" + url.routes.map((route) => "route=" + route).join("&")
|
|
331
|
+
: "";
|
|
332
|
+
return url.agent_id + path + query;
|
|
333
|
+
}
|
|
274
334
|
export function canonicalEventBytes(event) {
|
|
275
335
|
const canonical = canonicalize(event);
|
|
276
336
|
if (canonical === undefined) {
|
|
@@ -630,10 +690,13 @@ export function verifyRequestJwt(token, context) {
|
|
|
630
690
|
if (parts.length !== 3) {
|
|
631
691
|
throw protocolError("invalid_jwt", "expected three compact JWS parts");
|
|
632
692
|
}
|
|
633
|
-
const header =
|
|
634
|
-
const claims =
|
|
693
|
+
const header = jwtSegment(parts[0]);
|
|
694
|
+
const claims = jwtSegment(parts[1]);
|
|
635
695
|
const signature = base64UrlDecode(parts[2]);
|
|
636
696
|
const signingInput = `${parts[0]}.${parts[1]}`;
|
|
697
|
+
if (!Number.isSafeInteger(claims.iat) || !Number.isSafeInteger(claims.exp)) {
|
|
698
|
+
throw protocolError("invalid_jwt_claim", "iat and exp must be integers");
|
|
699
|
+
}
|
|
637
700
|
if (header.alg !== "EdDSA") {
|
|
638
701
|
throw protocolError("invalid_jwt_claim", "alg must be EdDSA");
|
|
639
702
|
}
|
|
@@ -684,6 +747,20 @@ function base64UrlDecode(value) {
|
|
|
684
747
|
}
|
|
685
748
|
return bytes;
|
|
686
749
|
}
|
|
750
|
+
/** A JWT header or claims segment: canonical base64url of a strict I-JSON object. */
|
|
751
|
+
function jwtSegment(value) {
|
|
752
|
+
let parsed;
|
|
753
|
+
try {
|
|
754
|
+
parsed = parseStrictJson(new TextDecoder("utf-8", { fatal: true }).decode(base64UrlDecode(value)));
|
|
755
|
+
}
|
|
756
|
+
catch {
|
|
757
|
+
throw protocolError("invalid_jwt", "JWT segment is not strict JSON");
|
|
758
|
+
}
|
|
759
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
760
|
+
throw protocolError("invalid_jwt", "JWT segment must be a JSON object");
|
|
761
|
+
}
|
|
762
|
+
return parsed;
|
|
763
|
+
}
|
|
687
764
|
function validEventHashBytes(eventHash) {
|
|
688
765
|
if (eventHash.byteLength !== 32) {
|
|
689
766
|
throw protocolError("invalid_event_hash", `event hash must be 32 bytes, got ${eventHash.byteLength}`);
|
package/dist/identity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type FetchLike } from "./http-client.js";
|
|
2
|
+
import { MailCardCache, type MailboxCard, type MailCardRecord, type MailDeliveryResult, type MailDiscovery, type MailPacket, type MailPacketList } from "./mail.js";
|
|
3
|
+
export interface MailClientOptions {
|
|
4
|
+
fetch?: FetchLike;
|
|
5
|
+
clock?: () => number;
|
|
6
|
+
maxResponseBytes?: number;
|
|
7
|
+
/** Reuse and persist this cache across relays and client restarts. */
|
|
8
|
+
cardCache?: MailCardCache;
|
|
9
|
+
/** Apply DNS/private-network policy in the supplied fetch transport too. */
|
|
10
|
+
allowUrl?: (url: string) => boolean | Promise<boolean>;
|
|
11
|
+
}
|
|
12
|
+
/** Client for one relay origin (a card route). Paths are fixed at `/v1/mailboxes`. */
|
|
13
|
+
export declare class MailClient {
|
|
14
|
+
readonly service: string;
|
|
15
|
+
private readonly options;
|
|
16
|
+
readonly cardCache: MailCardCache;
|
|
17
|
+
private readonly fetchImpl;
|
|
18
|
+
private readonly base;
|
|
19
|
+
private readonly clock;
|
|
20
|
+
private readonly maxResponseBytes;
|
|
21
|
+
constructor(service: string, options?: MailClientOptions);
|
|
22
|
+
/** Informational discovery document; it never changes delivery paths. */
|
|
23
|
+
protocol(): Promise<MailDiscovery>;
|
|
24
|
+
/** Read and pin the current card, even a closed or expired one. Rollback throws `stale_card`. */
|
|
25
|
+
card(mailboxId: string, owner: string): Promise<MailCardRecord>;
|
|
26
|
+
publish(card: MailboxCard): Promise<MailCardRecord>;
|
|
27
|
+
/** Sender-signed delivery or exact retransmission of a completed packet. */
|
|
28
|
+
deliver(packet: MailPacket): Promise<MailDeliveryResult>;
|
|
29
|
+
list(mailboxId: string, owner: string, jwt: string, options?: {
|
|
30
|
+
limit?: number;
|
|
31
|
+
cursor?: string;
|
|
32
|
+
}): Promise<MailPacketList>;
|
|
33
|
+
/** Every page of one enumeration; `seq` must keep increasing across pages. */
|
|
34
|
+
pages(mailboxId: string, owner: string, jwt: () => string, limit?: number): AsyncGenerator<MailPacketList>;
|
|
35
|
+
delete(mailboxId: string, packetId: string, owner: string, jwt: string): Promise<void>;
|
|
36
|
+
private request;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=mail-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-client.d.ts","sourceRoot":"","sources":["../src/mail-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAEL,aAAa,EAUb,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AACnB,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxD;AACD,sFAAsF;AACtF,qBAAa,UAAU;IAOnB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,YACW,OAAO,EAAE,MAAM,EACP,OAAO,GAAE,iBAAsB,EAcjD;IACD,yEAAyE;IACnE,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC,CAQvC;IACD,iGAAiG;IAC3F,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAMpE;IACK,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAUxD;IACD,4EAA4E;IACtE,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAU7D;IACK,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAChD,OAAO,CAAC,cAAc,CAAC,CAkBzB;IACD,8EAA8E;IACvE,KAAK,CACV,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,MAAM,EACjB,KAAK,SAAM,GACV,cAAc,CAAC,cAAc,CAAC,CAahC;IACK,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAWf;YACa,OAAO;CAoHtB"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/** Same-origin Mail HTTP client. Packet delivery is sender-signed; read/delete require owner-bound JWTs. */
|
|
2
|
+
import { parseStrictJson, validateOrigin } from "./identity.js";
|
|
3
|
+
import { protocolError } from "./errors.js";
|
|
4
|
+
import { HttpResponseError } from "./http-client.js";
|
|
5
|
+
import { MAIL_MAX_PACKET_BYTES, MailCardCache, decodeMailBytes, mailCanonicalBytes, validateMailboxCard, validateMailCardRecord, validateMailDeliveryResult, validateMailDiscovery, validateMailOwnerJwt, validateMailPacket, validateMailPacketList, } from "./mail.js";
|
|
6
|
+
/** Client for one relay origin (a card route). Paths are fixed at `/v1/mailboxes`. */
|
|
7
|
+
export class MailClient {
|
|
8
|
+
service;
|
|
9
|
+
options;
|
|
10
|
+
cardCache;
|
|
11
|
+
fetchImpl;
|
|
12
|
+
base;
|
|
13
|
+
clock;
|
|
14
|
+
maxResponseBytes;
|
|
15
|
+
constructor(service, options = {}) {
|
|
16
|
+
this.service = service;
|
|
17
|
+
this.options = options;
|
|
18
|
+
validateOrigin(service);
|
|
19
|
+
this.cardCache = options.cardCache ?? new MailCardCache();
|
|
20
|
+
this.fetchImpl = options.fetch ?? fetch;
|
|
21
|
+
this.clock = options.clock ?? Date.now;
|
|
22
|
+
this.maxResponseBytes =
|
|
23
|
+
options.maxResponseBytes ?? 128 * MAIL_MAX_PACKET_BYTES;
|
|
24
|
+
if (!Number.isSafeInteger(this.maxResponseBytes) ||
|
|
25
|
+
this.maxResponseBytes < 1)
|
|
26
|
+
throw protocolError("invalid_request", "invalid response limit");
|
|
27
|
+
this.base = service + "/v1/mailboxes";
|
|
28
|
+
}
|
|
29
|
+
/** Informational discovery document; it never changes delivery paths. */
|
|
30
|
+
async protocol() {
|
|
31
|
+
const d = await this.request(this.service + "/.well-known/agent-mail", "GET", 200);
|
|
32
|
+
validateMailDiscovery(d, this.service);
|
|
33
|
+
return d;
|
|
34
|
+
}
|
|
35
|
+
/** Read and pin the current card, even a closed or expired one. Rollback throws `stale_card`. */
|
|
36
|
+
async card(mailboxId, owner) {
|
|
37
|
+
decodeMailBytes(mailboxId, 16);
|
|
38
|
+
const r = await this.request(`${this.base}/${mailboxId}/card`, "GET", 200);
|
|
39
|
+
validateMailCardRecord(r, owner, mailboxId);
|
|
40
|
+
this.cardCache.observe(r.envelope, owner, this.clock(), false);
|
|
41
|
+
return r;
|
|
42
|
+
}
|
|
43
|
+
async publish(card) {
|
|
44
|
+
validateMailboxCard(card);
|
|
45
|
+
const r = await this.request(this.base, "POST", 200, card);
|
|
46
|
+
validateMailCardRecord(r, card.event.actor, card.event.payload.mailbox_id, card.hash);
|
|
47
|
+
return r;
|
|
48
|
+
}
|
|
49
|
+
/** Sender-signed delivery or exact retransmission of a completed packet. */
|
|
50
|
+
async deliver(packet) {
|
|
51
|
+
validateMailPacket(packet);
|
|
52
|
+
const r = await this.request(`${this.base}/${packet.event.payload.header.mailbox_id}/packets`, "POST", 202, packet);
|
|
53
|
+
validateMailDeliveryResult(r, packet);
|
|
54
|
+
return r;
|
|
55
|
+
}
|
|
56
|
+
async list(mailboxId, owner, jwt, options = {}) {
|
|
57
|
+
decodeMailBytes(mailboxId, 16);
|
|
58
|
+
validateMailOwnerJwt(jwt, this.service, owner, this.clock());
|
|
59
|
+
const limit = options.limit ?? 100;
|
|
60
|
+
if (!Number.isSafeInteger(limit) ||
|
|
61
|
+
limit < 1 ||
|
|
62
|
+
limit > 1000 ||
|
|
63
|
+
options.cursor === "")
|
|
64
|
+
throw protocolError("invalid_request", "invalid pagination");
|
|
65
|
+
const u = new URL(`${this.base}/${mailboxId}/packets`);
|
|
66
|
+
u.searchParams.set("limit", String(limit));
|
|
67
|
+
if (options.cursor !== undefined)
|
|
68
|
+
u.searchParams.set("cursor", options.cursor);
|
|
69
|
+
const r = await this.request(u.href, "GET", 200, undefined, jwt);
|
|
70
|
+
validateMailPacketList(r, mailboxId, limit);
|
|
71
|
+
return r;
|
|
72
|
+
}
|
|
73
|
+
/** Every page of one enumeration; `seq` must keep increasing across pages. */
|
|
74
|
+
async *pages(mailboxId, owner, jwt, limit = 100) {
|
|
75
|
+
let cursor, seq = 0;
|
|
76
|
+
do {
|
|
77
|
+
const page = await this.list(mailboxId, owner, jwt(), { limit, cursor });
|
|
78
|
+
for (const r of page.result) {
|
|
79
|
+
if (r.seq <= seq)
|
|
80
|
+
throw protocolError("invalid_response", "reordered or repeated page");
|
|
81
|
+
seq = r.seq;
|
|
82
|
+
}
|
|
83
|
+
cursor = page.next_cursor;
|
|
84
|
+
yield page;
|
|
85
|
+
} while (cursor !== undefined);
|
|
86
|
+
}
|
|
87
|
+
async delete(mailboxId, packetId, owner, jwt) {
|
|
88
|
+
decodeMailBytes(mailboxId, 16);
|
|
89
|
+
decodeMailBytes(packetId, 32);
|
|
90
|
+
validateMailOwnerJwt(jwt, this.service, owner, this.clock());
|
|
91
|
+
await this.request(`${this.base}/${mailboxId}/packets/${packetId}`, "DELETE", 204, undefined, jwt);
|
|
92
|
+
}
|
|
93
|
+
async request(url, method, status, body, jwt) {
|
|
94
|
+
const target = new URL(url);
|
|
95
|
+
if (target.origin !== this.service ||
|
|
96
|
+
target.username ||
|
|
97
|
+
target.password ||
|
|
98
|
+
target.hash)
|
|
99
|
+
throw protocolError("invalid_request", "unsafe Mail URL");
|
|
100
|
+
if (this.options.allowUrl && !(await this.options.allowUrl(url)))
|
|
101
|
+
throw protocolError("permission_denied", "URL denied by local network policy");
|
|
102
|
+
const response = await this.fetchImpl(url, {
|
|
103
|
+
method,
|
|
104
|
+
redirect: "error",
|
|
105
|
+
credentials: "omit",
|
|
106
|
+
referrerPolicy: "no-referrer",
|
|
107
|
+
headers: {
|
|
108
|
+
accept: "application/json",
|
|
109
|
+
...(body === undefined ? {} : { "content-type": "application/json" }),
|
|
110
|
+
...(jwt === undefined ? {} : { authorization: `Bearer ${jwt}` }),
|
|
111
|
+
},
|
|
112
|
+
...(body === undefined
|
|
113
|
+
? {}
|
|
114
|
+
: { body: new TextDecoder().decode(mailCanonicalBytes(body)) }),
|
|
115
|
+
});
|
|
116
|
+
if (response.redirected ||
|
|
117
|
+
(response.status >= 300 && response.status < 400) ||
|
|
118
|
+
(response.url && response.url !== url))
|
|
119
|
+
throw protocolError("invalid_response", "redirect or response URL mismatch");
|
|
120
|
+
const declared = response.headers.get("content-length");
|
|
121
|
+
if (declared !== null && Number(declared) > this.maxResponseBytes)
|
|
122
|
+
throw protocolError("invalid_response", "response too large");
|
|
123
|
+
const reader = response.body?.getReader();
|
|
124
|
+
const chunks = [];
|
|
125
|
+
let count = 0;
|
|
126
|
+
if (reader) {
|
|
127
|
+
try {
|
|
128
|
+
for (;;) {
|
|
129
|
+
const r = await reader.read();
|
|
130
|
+
if (r.done)
|
|
131
|
+
break;
|
|
132
|
+
count += r.value.length;
|
|
133
|
+
if (count > this.maxResponseBytes) {
|
|
134
|
+
await reader.cancel();
|
|
135
|
+
throw protocolError("invalid_response", "response too large");
|
|
136
|
+
}
|
|
137
|
+
chunks.push(r.value);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
reader.releaseLock();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const bytes = new Uint8Array(count);
|
|
145
|
+
let at = 0;
|
|
146
|
+
for (const c of chunks) {
|
|
147
|
+
bytes.set(c, at);
|
|
148
|
+
at += c.length;
|
|
149
|
+
}
|
|
150
|
+
let text;
|
|
151
|
+
try {
|
|
152
|
+
text = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(bytes);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
throw protocolError("invalid_response", "response is not UTF-8");
|
|
156
|
+
}
|
|
157
|
+
if (!response.ok)
|
|
158
|
+
throw new HttpResponseError(response.status, text, response.headers.get("Max-Seen-Nonce") ?? undefined);
|
|
159
|
+
if (response.status !== status)
|
|
160
|
+
throw protocolError("invalid_response", `Mail response requires HTTP ${status}`);
|
|
161
|
+
if (status === 204) {
|
|
162
|
+
if (text)
|
|
163
|
+
throw protocolError("invalid_response", "DELETE response must be empty");
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
if (!/^application\/json(?:\s*;|$)/i.test(response.headers.get("content-type") ?? ""))
|
|
167
|
+
throw protocolError("invalid_response", "response must be application/json");
|
|
168
|
+
try {
|
|
169
|
+
return parseStrictJson(text);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
throw protocolError("invalid_response", "response violates strict I-JSON");
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=mail-client.js.map
|