@remit/api-openapi-spec 0.0.47 → 0.0.48

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 +37 -6
  2. package/package.json +1 -1
package/openapi.json CHANGED
@@ -7835,6 +7835,16 @@
7835
7835
  ],
7836
7836
  "description": "Header-derived message category. Set by classifyByHeaders during body-sync. Defaults to `uncategorized`, which covers both a message that has not been classified yet and one the classifier declined to categorize; `Message.classificationState` is what tells those apart."
7837
7837
  },
7838
+ "RemitImap.MessageMutation": {
7839
+ "type": "string",
7840
+ "enum": [
7841
+ "none",
7842
+ "move",
7843
+ "delete",
7844
+ "copy"
7845
+ ],
7846
+ "description": "Which mutation a message's placement gave up on. Read it only while\n`syncStatus` is `abandoned` — outside that it is `none` and says nothing,\nthe way `originalUid` says nothing once a placement has settled\n(`docs/architecture/imap-mutations.md` R3).\n\nIt exists because a hand-back erases the evidence: the give-up puts `status`\nback to `active`, and `status` was the only field naming the mutation that\nwas outstanding. Without this the client can see that something was\nabandoned and cannot see what, which is how a move that gave up came to be\nexplained to the user as a failed delete."
7847
+ },
7838
7848
  "RemitImap.MessageReferenceResponse": {
7839
7849
  "type": "object",
7840
7850
  "required": [
@@ -7900,7 +7910,8 @@
7900
7910
  "rfc822Size",
7901
7911
  "internalDate",
7902
7912
  "status",
7903
- "syncStatus"
7913
+ "syncStatus",
7914
+ "abandonedMutation"
7904
7915
  ],
7905
7916
  "properties": {
7906
7917
  "messageId": {
@@ -7962,10 +7973,20 @@
7962
7973
  "$ref": "#/components/schemas/RemitImap.MessageSyncStatus"
7963
7974
  }
7964
7975
  ],
7965
- "description": "Sync status for move/delete operations. The `synced` column default only applies to a row written without the field: the repository always supplies one, and an ordinary inbound sync writes `pending`, which nothing later promotes. So `pending` here does not mean an outstanding move or delete — `status` names that, and `failed` marks a mutation that gave up.",
7976
+ "description": "Sync status for move/delete operations, read as a pair with `status` (imap-mutations R3). The `synced` column default only applies to a row written without the field: the repository always supplies one, and an ordinary inbound sync writes `pending`, which nothing later promotes. So `pending` here does not mean an outstanding move or delete — `status` names that, `failed` marks an attempt about to be redelivered, and `abandoned` marks a mutation that gave up.",
7966
7977
  "default": "synced",
7967
7978
  "readOnly": true
7968
7979
  },
7980
+ "abandonedMutation": {
7981
+ "allOf": [
7982
+ {
7983
+ "$ref": "#/components/schemas/RemitImap.MessageMutation"
7984
+ }
7985
+ ],
7986
+ "description": "Which mutation gave up on this message. Meaningful only while `syncStatus` is `abandoned`; `none` everywhere else, so the absent state is a named value rather than a missing attribute. Written by the same transition that writes `abandoned`, because a hand-back sets `status` back to `active` and that is the field which named the mutation.",
7987
+ "default": "none",
7988
+ "readOnly": true
7989
+ },
7969
7990
  "authenticity": {
7970
7991
  "allOf": [
7971
7992
  {
@@ -8006,9 +8027,10 @@
8006
8027
  "enum": [
8007
8028
  "synced",
8008
8029
  "pending",
8009
- "failed"
8030
+ "failed",
8031
+ "abandoned"
8010
8032
  ],
8011
- "description": "Sync status for message move/delete operations"
8033
+ "description": "Sync status for message move/delete operations. Read it as a pair with\n`MessageStatus`, never alone — the six placement states and the transitions\nbetween them are `docs/architecture/imap-mutations.md` R3."
8012
8034
  },
8013
8035
  "RemitImap.MintOutboxAttachmentInput": {
8014
8036
  "type": "object",
@@ -9547,7 +9569,8 @@
9547
9569
  "senderTrust",
9548
9570
  "muted",
9549
9571
  "status",
9550
- "syncStatus"
9572
+ "syncStatus",
9573
+ "abandonedMutation"
9551
9574
  ],
9552
9575
  "properties": {
9553
9576
  "threadMessageId": {
@@ -9707,7 +9730,15 @@
9707
9730
  "$ref": "#/components/schemas/RemitImap.MessageSyncStatus"
9708
9731
  }
9709
9732
  ],
9710
- "description": "Sync status of the underlying Message, projected at read time. Read it WITH `status`, never alone: `message-move`, `message-delete` and `message-copy` all write `failed` on an ordinary transient attempt before a redelivery that usually succeeds, so `failed` by itself does not mean a mutation gave up. One pair does prove one: `active` + `failed`, written only by `abandonDelete` — a delete Remit refused to run and handed back. Nothing else here is decidable. A move that gave up leaves `moving` + `failed`, the same pair its first dropped connection leaves; a delete that exhausted its retries is repaired to `active` + `synced` and reads as settled; `flag-push` and `placement-move-push` never write either field."
9733
+ "description": "Sync status of the underlying Message, projected at read time. Read it WITH `status`, never alone (imap-mutations R3): `message-move`, `message-delete` and `message-copy` all write `failed` on an ordinary transient attempt before a redelivery that usually succeeds, so `failed` never means a mutation gave up. Give-up is `active` + `abandoned`, and that pair is decidable on its own — the row has been put back on a placement the server holds and nothing else is coming for it. A mutation that exhausted its retries and was repaired against IMAP settles to `active` + `synced` and reads as settled."
9734
+ },
9735
+ "abandonedMutation": {
9736
+ "allOf": [
9737
+ {
9738
+ "$ref": "#/components/schemas/RemitImap.MessageMutation"
9739
+ }
9740
+ ],
9741
+ "description": "Which mutation gave up on the underlying Message, projected at read time. Read it only where `syncStatus` is `abandoned`; `none` otherwise. This is what lets a surface name the operation that actually failed — before it existed, a move that handed back and a delete that was refused were the same two values on the wire, and the client called both a failed delete."
9711
9742
  },
9712
9743
  "accountId": {
9713
9744
  "allOf": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remit/api-openapi-spec",
3
- "version": "0.0.47",
3
+ "version": "0.0.48",
4
4
  "description": "Remit API OpenAPI 3 document, generated from TypeSpec.",
5
5
  "exports": {
6
6
  ".": "./openapi.json",