@remit/api-openapi-spec 0.0.1 → 0.0.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.
Files changed (2) hide show
  1. package/openapi.json +11 -11
  2. package/package.json +1 -1
package/openapi.json CHANGED
@@ -2136,7 +2136,7 @@
2136
2136
  "/threads": {
2137
2137
  "get": {
2138
2138
  "operationId": "UnifiedThreadOperations_listAllThreads",
2139
- "description": "List threads across all non-muted accounts of the caller, ordered by sentDate desc. Each row carries an attached `accountId` (derived from a mailboxId→accountId map at read time) plus the usual `senderTrust`/`category` enrichment. Served by the `byDate` LSI1 (pk = the caller's account config), so the caller can never see another account config's threads.\n\nINBOX scope: results are filtered to each account's top-level INBOX, matched by exact path `fullPath === \"INBOX\"` (RFC 6154 defines no Inbox special-use). By design this excludes namespaced sub-paths like `INBOX/Receipts` and non-English server primaries — the unified inbox is each account's primary INBOX, not its sub-folders. Soft-deleted rows are also excluded.\n\nMute exclusion: muted accounts and muted mailboxes are excluded. The inbox/mute filter set is rebuilt per page from live state, so muting/unmuting a mailbox mid-pagination takes effect on the next page (never retroactively).\n\nPagination: pass the returned `continuationToken` to fetch the next page; keep paging until it is absent. The INBOX/deleted filter is applied after the index read with a bounded read window per request, so a page may return FEWER than `limit` rows while still carrying a `continuationToken` — treat the presence of the token (not a full page) as the \"more results\" signal. No rows are skipped or duplicated across pages.",
2139
+ "description": "List threads across all non-muted accounts of the caller, ordered by sentDate desc. Each row carries an attached `accountId` (derived from a mailboxId→accountId map at read time) plus the usual `senderTrust`/`category` enrichment. Served by the `byDate` LSI1 (pk = the caller's account config), so the caller can never see another account config's threads.\n\nINBOX scope: results are filtered to each account's top-level INBOX, matched by exact path `fullPath === \"INBOX\"` (RFC 6154 defines no Inbox special-use). By design this excludes namespaced sub-paths like `INBOX/Receipts` and non-English server primaries — the unified inbox is each account's primary INBOX, not its sub-folders. Soft-deleted rows are also excluded.\n\nMute exclusion: muted accounts and muted mailboxes are excluded. The inbox/mute filter set is rebuilt per page from live state, so muting/unmuting a mailbox mid-pagination takes effect on the next page (never retroactively).\n\nPagination: pass the returned `continuationToken` to fetch the next page; keep paging until it is absent. In the default (INBOX) mode the INBOX/deleted filter is applied after the index read with a bounded read window per request, so a page may return FEWER than `limit` rows while still carrying a `continuationToken` — treat the presence of the token (not a full page) as the \"more results\" signal. No rows are skipped or duplicated across pages.\n\nStarred mode (`starred=true`): served by the `byStarred` LSI4 instead. A star is a marker on the mail rather than on its placement, so the INBOX scope does not apply and a starred thread in Archive is still returned. Excluded are muted and soft-deleted rows as usual, plus the folders a star never surfaces from: Junk, Trash, and Gmail's All Mail (a second copy of everything, whose rows would otherwise double every starred message). All filtering happens in the query, so a page is short only when the results are exhausted. Rows are per mailbox: the same mail filed in two folders is two rows sharing a `threadId`, and a client rendering one row per conversation collapses by `threadId` across the pages it has accumulated.",
2140
2140
  "parameters": [
2141
2141
  {
2142
2142
  "name": "continuationToken",
@@ -2162,6 +2162,15 @@
2162
2162
  "type": "integer",
2163
2163
  "format": "int32"
2164
2164
  }
2165
+ },
2166
+ {
2167
+ "name": "starred",
2168
+ "in": "query",
2169
+ "required": false,
2170
+ "description": "When true, return only starred threads — every starred thread in the config, across all non-muted mailboxes, not just the INBOX scope. Starredness is read from `hasStars`, the boolean of record.",
2171
+ "schema": {
2172
+ "type": "boolean"
2173
+ }
2165
2174
  }
2166
2175
  ],
2167
2176
  "responses": {
@@ -2203,7 +2212,7 @@
2203
2212
  "/threads/{threadId}/messages": {
2204
2213
  "get": {
2205
2214
  "operationId": "ThreadDetailOperations_listThreadMessages",
2206
- "description": "Get all messages in a thread. Optionally filter by mailboxId to deduplicate when messages exist in multiple mailboxes.",
2215
+ "description": "Get all messages in a thread, across every mailbox of the account — a conversation spans INBOX, Sent, Archive and any folder the user filed a message in, so it is never scoped to one mailbox. Soft-deleted messages (including anything moved to Trash) are excluded.\n\nOne entry per piece of mail. A message synced from several folders is stored once, and where a second row exists for the same Message-ID — a copy taken with `copyMessages`, which gives its copy a fresh message id — the oldest is returned and the rest are dropped.",
2207
2216
  "parameters": [
2208
2217
  {
2209
2218
  "name": "threadId",
@@ -2220,15 +2229,6 @@
2220
2229
  "schema": {
2221
2230
  "$ref": "#/components/schemas/RemitImap.SortOrder"
2222
2231
  }
2223
- },
2224
- {
2225
- "name": "mailboxId",
2226
- "in": "query",
2227
- "required": false,
2228
- "description": "Filter messages to only those in this mailbox (useful for deduplication)",
2229
- "schema": {
2230
- "$ref": "#/components/schemas/UUID"
2231
- }
2232
2232
  }
2233
2233
  ],
2234
2234
  "responses": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remit/api-openapi-spec",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Remit API OpenAPI 3 document, generated from TypeSpec.",
5
5
  "exports": {
6
6
  ".": "./openapi.json",