@remit/api-openapi-types 0.0.53 → 0.0.55

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/package.json +1 -1
  2. package/types.d.ts +37 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remit/api-openapi-types",
3
- "version": "0.0.53",
3
+ "version": "0.0.55",
4
4
  "type": "module",
5
5
  "main": "types.d.ts",
6
6
  "types": "types.d.ts",
package/types.d.ts CHANGED
@@ -236,6 +236,10 @@ member (naming the file, the size and the cap), so a refusal must be
236
236
  distinguishable from a network failure without parsing prose.
237
237
  */
238
238
  export type OutboxAttachmentRejectionReason = "EmptyFile" | "UnusableFilename" | "FileTooLarge" | "MessageTooLarge" | "TooManyAttachments" | "ReservationExpired" | "UploadMissing" | "SizeMismatch";
239
+ /**
240
+ * Names a key of `AddressFlags` that a client may address in `PATCH /addresses/{addressId}`. `wellknown` is deliberately absent: it is server-owned, derived from engagement counters, and is never written or removed by a client.
241
+ */
242
+ export type AddressFlagKey = "trusted" | "blocked" | "muted" | "vip" | "junkOnly" | "category" | "autoArchive" | "unsubscribed";
239
243
  /**
240
244
  * Whether the header classifier has examined a message's body (issue #331). Persistence-level state on `Message`, deliberately off the wire: no response model carries it. It exists because `category` cannot answer this question — `uncategorized` is both the value a metadata-synced row starts at and the answer the classifier gives when it has nothing to say, so a guard reading `category` alone cannot tell "never examined" from "examined and declined" and re-reads the stored body on every sync pass forever.
241
245
  */
@@ -4175,7 +4179,7 @@ either way and cannot tell which it received.
4175
4179
  value: boolean;
4176
4180
  }
4177
4181
  /**
4178
- * Address was only ever seen on mail in a Junk folder: withheld from autocomplete suggestions until the account corresponds with it, flags it, or meets it on live mail. Written by sync and by the boot-time repair; clear it by patching this key to null.
4182
+ * Address was only ever seen on mail in a Junk folder: withheld from autocomplete suggestions until the account corresponds with it, flags it, or meets it on live mail. Written by sync and by the boot-time repair; clear it by naming this key in `UpdateAddressInput.clearFlags`.
4179
4183
  */
4180
4184
  export interface JunkOnlyFlag {
4181
4185
  /**
@@ -4322,12 +4326,16 @@ either way and cannot tell which it received.
4322
4326
  */
4323
4327
  export interface UpdateAddressInput {
4324
4328
  /**
4325
- * Per-flag merge update; omitted flags are untouched, `null` removes the flag
4329
+ * Per-flag merge update; omitted flags are untouched
4326
4330
  */
4327
4331
  flags?: UpdateAddressFlagsInput;
4332
+ /**
4333
+ * Flag keys to remove from the sparse map, leaving the rest untouched. This is the removal form for every flag, whatever its value type — clearing `category` reverts the sender to automatic classification. Applied after `flags`, so a key named in both ends up removed. Removing an absent flag succeeds and changes nothing.
4334
+ */
4335
+ clearFlags?: AddressFlagKey[];
4328
4336
  }
4329
4337
  /**
4330
- * Patch payload for a single AddressFlags entry. Pass `null` for a flag key to remove that flag while leaving the others untouched.
4338
+ * Patch payload for AddressFlags entries. Sets the flags named here and leaves the others untouched. Removal travels in `UpdateAddressInput.clearFlags`, not here: the `null` alternative below is unreachable over OAS 3.0, where a nullable `$ref` emits as `allOf` and the request validator drops the `nullable` — and no `null` form exists at all for `category`, whose value is an enum with no false-equivalent member.
4331
4339
  */
4332
4340
  export interface UpdateAddressFlagsInput {
4333
4341
  trusted?: TrustedFlag | any;
@@ -4336,7 +4344,7 @@ either way and cannot tell which it received.
4336
4344
  vip?: VipFlag | any;
4337
4345
  wellknown?: WellknownFlag | any;
4338
4346
  /**
4339
- * Set to `null` to offer this address in autocomplete again
4347
+ * Name this key in `clearFlags` to offer the address in autocomplete again
4340
4348
  */
4341
4349
  junkOnly?: JunkOnlyFlag | any;
4342
4350
  category?: CategoryFlag | any;
@@ -6529,6 +6537,10 @@ declare namespace Paths {
6529
6537
  limit?: number;
6530
6538
  starred?: boolean;
6531
6539
  query?: string;
6540
+ from?: string;
6541
+ subject?: string;
6542
+ accountId?: Components.Schemas.UUID;
6543
+ muted?: boolean;
6532
6544
  category?: Components.Schemas.MessageCategory[];
6533
6545
  unread?: boolean;
6534
6546
  attachments?: boolean;
@@ -7288,7 +7300,9 @@ Pagination: pass the returned `continuationToken` to fetch the next page; keep p
7288
7300
 
7289
7301
  Starred 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.
7290
7302
 
7291
- Search mode (`query=<text>`): the listing widens past the INBOX scope to every non-muted mailbox of every non-muted account, and returns only rows whose subject or From address matches the text. This is the unscoped search of the daily brief: one query reaching every folder of every account. Whitespace splits the text into terms and every term must match (AND), each against subject OR From. Matching is case-insensitive substring, not tokenized full-text, so it neither stems nor ranks.
7303
+ Search mode (`query=<text>`): the listing widens past the INBOX scope to every non-muted mailbox of every non-muted account, and returns only rows whose subject, From address or body text matches the text. This is the unscoped search of the daily brief: one query reaching every folder of every account. Whitespace splits the text into terms and every term must match (AND), each against subject OR From OR body. Matching is case-insensitive substring, not tokenized full-text, so it neither stems nor ranks.
7304
+
7305
+ Body text is the stored preview the row carries — the first prose of the message with quoted replies removed, which is the same text the row renders under its subject. A term further into a long message is not reached; a term the reader can see on the row is.
7292
7306
 
7293
7307
  Search scope: every non-muted mailbox EXCEPT Trash. The scope is defined by what it excludes, so anything a server offers that is not on that list is searched — Spam, Drafts and Gmail's virtual folders (All Mail, Starred, Important) included. Spam is deliberately in scope: the point of an unscoped search is that it reaches the folders the user did not think to look in. Combining `query` with `starred=true` searches the starred scope instead.
7294
7308
 
@@ -7302,6 +7316,12 @@ Callers that omit `query` are unaffected: the INBOX (and starred) listings behav
7302
7316
 
7303
7317
  Row filters: `category`, `unread` and `attachments` are columns on the ThreadMessage row, so each is a predicate inside the query rather than a pass over what a page returned. They compose with every mode above — INBOX, starred and search alike — and a page therefore comes back full of matches however rare the criterion is. This is what the cross-account collections need: filtering the pages a client happens to have loaded shows an empty list whenever the matching mail sits below the newest page (#308).
7304
7318
 
7319
+ Field filters: `from` and `subject` each match one field, which the single `query` cannot express — it matches both at once. They compose with `query` and with each other as further AND terms.
7320
+
7321
+ Account scope: `accountId` narrows every mode to the mailboxes of one account. The scope is built from the account's own mailboxes, so the listing, the count and the search all answer over the same set. Without it the listing is the cross-account aggregate.
7322
+
7323
+ Muted senders: `muted=false` excludes rows whose From address is muted, `muted=true` returns only those, and omitting it filters nothing. Muting is a property of the address rather than a column on the row, so this is the one predicate that reaches outside the ThreadMessage table; it applies to the listing and the `count` alike, which is what lets a caller that hides muted mail state a number that is the size of what it renders.
7324
+
7305
7325
  Counting: `count=true` answers how many CONVERSATIONS match, over the whole scope and independent of `limit`. `results=false` omits the rows, which is how a header total is read without also paying for a page of mail. Conversations rather than rows because that is what this listing renders: a row is per mailbox, so the same mail filed in two folders is two rows sharing a `threadId`, and clients collapse by it. Counting rows would put a third number beside a list that shows a second one.
7306
7326
  */
7307
7327
  'listAllThreads'(
@@ -7406,7 +7426,7 @@ Counting: `count=true` answers how many CONVERSATIONS match, over the whole scop
7406
7426
  config?: AxiosRequestConfig
7407
7427
  ): OperationResponse<Paths.SearchAddresses.Responses.$200>;
7408
7428
  /**
7409
- * updateAddress - Update an address (currently: per-sender flags). Pass `flags: { <name>: null }` to remove a flag. Other flags are untouched.
7429
+ * updateAddress - Update an address (currently: per-sender flags). Pass `flags` to set flags and `clearFlags: ["<name>"]` to remove them. Other flags are untouched.
7410
7430
  */
7411
7431
  'updateAddress'(
7412
7432
  parameters?: Parameters<Paths.UpdateAddress.PathParameters> | null,
@@ -8114,7 +8134,9 @@ Pagination: pass the returned `continuationToken` to fetch the next page; keep p
8114
8134
 
8115
8135
  Starred 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.
8116
8136
 
8117
- Search mode (`query=<text>`): the listing widens past the INBOX scope to every non-muted mailbox of every non-muted account, and returns only rows whose subject or From address matches the text. This is the unscoped search of the daily brief: one query reaching every folder of every account. Whitespace splits the text into terms and every term must match (AND), each against subject OR From. Matching is case-insensitive substring, not tokenized full-text, so it neither stems nor ranks.
8137
+ Search mode (`query=<text>`): the listing widens past the INBOX scope to every non-muted mailbox of every non-muted account, and returns only rows whose subject, From address or body text matches the text. This is the unscoped search of the daily brief: one query reaching every folder of every account. Whitespace splits the text into terms and every term must match (AND), each against subject OR From OR body. Matching is case-insensitive substring, not tokenized full-text, so it neither stems nor ranks.
8138
+
8139
+ Body text is the stored preview the row carries — the first prose of the message with quoted replies removed, which is the same text the row renders under its subject. A term further into a long message is not reached; a term the reader can see on the row is.
8118
8140
 
8119
8141
  Search scope: every non-muted mailbox EXCEPT Trash. The scope is defined by what it excludes, so anything a server offers that is not on that list is searched — Spam, Drafts and Gmail's virtual folders (All Mail, Starred, Important) included. Spam is deliberately in scope: the point of an unscoped search is that it reaches the folders the user did not think to look in. Combining `query` with `starred=true` searches the starred scope instead.
8120
8142
 
@@ -8128,6 +8150,12 @@ Callers that omit `query` are unaffected: the INBOX (and starred) listings behav
8128
8150
 
8129
8151
  Row filters: `category`, `unread` and `attachments` are columns on the ThreadMessage row, so each is a predicate inside the query rather than a pass over what a page returned. They compose with every mode above — INBOX, starred and search alike — and a page therefore comes back full of matches however rare the criterion is. This is what the cross-account collections need: filtering the pages a client happens to have loaded shows an empty list whenever the matching mail sits below the newest page (#308).
8130
8152
 
8153
+ Field filters: `from` and `subject` each match one field, which the single `query` cannot express — it matches both at once. They compose with `query` and with each other as further AND terms.
8154
+
8155
+ Account scope: `accountId` narrows every mode to the mailboxes of one account. The scope is built from the account's own mailboxes, so the listing, the count and the search all answer over the same set. Without it the listing is the cross-account aggregate.
8156
+
8157
+ Muted senders: `muted=false` excludes rows whose From address is muted, `muted=true` returns only those, and omitting it filters nothing. Muting is a property of the address rather than a column on the row, so this is the one predicate that reaches outside the ThreadMessage table; it applies to the listing and the `count` alike, which is what lets a caller that hides muted mail state a number that is the size of what it renders.
8158
+
8131
8159
  Counting: `count=true` answers how many CONVERSATIONS match, over the whole scope and independent of `limit`. `results=false` omits the rows, which is how a header total is read without also paying for a page of mail. Conversations rather than rows because that is what this listing renders: a row is per mailbox, so the same mail filed in two folders is two rows sharing a `threadId`, and clients collapse by it. Counting rows would put a third number beside a list that shows a second one.
8132
8160
  */
8133
8161
  'get'(
@@ -8252,7 +8280,7 @@ Counting: `count=true` answers how many CONVERSATIONS match, over the whole scop
8252
8280
  };
8253
8281
  ['/addresses/{addressId}']: {
8254
8282
  /**
8255
- * updateAddress - Update an address (currently: per-sender flags). Pass `flags: { <name>: null }` to remove a flag. Other flags are untouched.
8283
+ * updateAddress - Update an address (currently: per-sender flags). Pass `flags` to set flags and `clearFlags: ["<name>"]` to remove them. Other flags are untouched.
8256
8284
  */
8257
8285
  'patch'(
8258
8286
  parameters?: Parameters<Paths.UpdateAddress.PathParameters> | null,
@@ -8654,6 +8682,7 @@ export type SemanticSearchChunkType = Components.Schemas.SemanticSearchChunkType
8654
8682
  export type OutboxMessageStatus = Components.Schemas.OutboxMessageStatus;
8655
8683
  export type OutboxAttachmentState = Components.Schemas.OutboxAttachmentState;
8656
8684
  export type OutboxAttachmentRejectionReason = Components.Schemas.OutboxAttachmentRejectionReason;
8685
+ export type AddressFlagKey = Components.Schemas.AddressFlagKey;
8657
8686
  export type MessageClassificationState = Components.Schemas.MessageClassificationState;
8658
8687
  export type AuthenticityVerdict = Components.Schemas.AuthenticityVerdict;
8659
8688
  export type AuthResultVerdict = Components.Schemas.AuthResultVerdict;