@remit/api-openapi-types 0.0.40 → 0.0.41

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 +229 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remit/api-openapi-types",
3
- "version": "0.0.40",
3
+ "version": "0.0.41",
4
4
  "type": "module",
5
5
  "main": "types.d.ts",
6
6
  "types": "types.d.ts",
package/types.d.ts CHANGED
@@ -265,6 +265,30 @@ distinguishable from a network failure without parsing prose.
265
265
  * Which piece of configuration a still-unbound folder reference belongs to. A mailbox id is regenerated by every discovery, so an imported file names folders by IMAP path and the binder writes the row once a path resolves.
266
266
  */
267
267
  export type ConfigImportRefKind = "FolderRole" | "MailboxOverride" | "FilterAction";
268
+ /**
269
+ * Display color for a calendar collection. Positional rather than named: the palette is a client-side concern, so the store carries the slot and the client owns what it renders (issue #15).
270
+ */
271
+ export type CalendarColor = "Cal1" | "Cal2" | "Cal3" | "Cal4" | "Cal5" | "Cal6";
272
+ /**
273
+ * Which iCalendar components a collection accepts (RFC 4791 supported-calendar-component-set). Only VEVENT is stored today; VTODO and VJOURNAL collections would be separate members, so the value is a property of the collection rather than of each object.
274
+ */
275
+ export type CalendarComponentSet = "VeventOnly";
276
+ /**
277
+ * Where a calendar collection came from. `Default` is the one provisioned per account config on first use and is never deleted; `UserCreated` is one a person made; `MailDerived` is one populated from mail rather than by a person.
278
+ */
279
+ export type CalendarSource = "Default" | "UserCreated" | "MailDerived";
280
+ /**
281
+ * Projection of a VEVENT's STATUS property (RFC 5545 3.8.1.11). A VEVENT with no STATUS projects as `Confirmed`, which is the value RFC 5545 gives an event whose status is unstated.
282
+ */
283
+ export type CalendarEventStatus = "Confirmed" | "Tentative" | "Cancelled";
284
+ /**
285
+ * Projection of a VEVENT's TRANSP property (RFC 5545 3.8.2.7) — whether the event consumes free/busy time. A VEVENT with no TRANSP projects as `Opaque`, the RFC default.
286
+ */
287
+ export type CalendarTransparency = "Opaque" | "Transparent";
288
+ /**
289
+ * How confidently a stored time was placed on the clock. A calendar that cannot say this hides its worst failure: an event read in the wrong zone is off by hours and looks exactly like an event read correctly.
290
+ */
291
+ export type ZoneCertainty = "Local" | "Explicit" | "Ambiguous";
268
292
  /**
269
293
  * Explicit state engine for a pending placement-move marker (issue #1271, epic #1281). Recovery keys off this field, not control-flow inference: a redelivered/retried call drives a marker forward from whichever state it is actually in, rather than re-deriving intent by comparing the message's current location.
270
294
  */
@@ -4927,6 +4951,202 @@ domain already uses"; it does not close it.
4927
4951
  createdAt: number;
4928
4952
  updatedAt: number;
4929
4953
  }
4954
+ /**
4955
+ * A calendar collection scoped to an account config (issue #15) — the CalDAV
4956
+ collection a client mounts, and the parent of every CalendarObject.
4957
+
4958
+ `calendarId` is derived from `(accountConfigId, urlSegment)`, so the DAV path
4959
+ a client bookmarks resolves to a row without a lookup table, and provisioning
4960
+ the same collection twice writes the same row instead of a second one.
4961
+ `displayName` is the mutable human overlay and is never the key.
4962
+
4963
+ `syncSequence` is the collection's monotonic change counter: every write
4964
+ through the calendar service's put path bumps it and stamps the new value on
4965
+ the object it wrote, which is what a later WebDAV-Sync `sync-token` reports
4966
+ and what `CalendarObject.bySyncSequence` pages by.
4967
+ */
4968
+ export interface CalendarCollection {
4969
+ /**
4970
+ * Primary identifier, derived from accountConfigId + urlSegment
4971
+ */
4972
+ calendarId: UUID;
4973
+ /**
4974
+ * Owning account configuration
4975
+ */
4976
+ accountConfigId: UUID;
4977
+ /**
4978
+ * Path segment this collection is addressed by, unique within the account config. Stored case-folded, the same folding `calendarId` is derived from — a DAV path is matched case-insensitively, and storing the writer's casing would let a lookup by segment and a lookup by derived id disagree about one path. The default collection provisioned on first use holds "default".
4979
+ */
4980
+ urlSegment: String64;
4981
+ /**
4982
+ * Human-readable collection name (display)
4983
+ */
4984
+ displayName: String140;
4985
+ /**
4986
+ * Display color slot for this collection
4987
+ */
4988
+ color: CalendarColor;
4989
+ /**
4990
+ * Which iCalendar components this collection accepts
4991
+ */
4992
+ componentSet: CalendarComponentSet;
4993
+ /**
4994
+ * Where this collection came from
4995
+ */
4996
+ source: CalendarSource;
4997
+ /**
4998
+ * IANA time zone this collection's floating times are read in, e.g. "Europe/Amsterdam". `""` when none is set, which reads as UTC.
4999
+ */
5000
+ timezone: String64;
5001
+ /**
5002
+ * Monotonic change counter for this collection. Bumped by every write to one of its objects; the value stamped on `CalendarObject.syncSequence` is the value this counter held after that write.
5003
+ */
5004
+ syncSequence: number;
5005
+ createdAt: number;
5006
+ updatedAt: number;
5007
+ }
5008
+ /**
5009
+ * One calendar resource — the bytes behind one `.ics` URL (issue #15).
5010
+
5011
+ `icalData` is the canonical value. Every other column on this row is a
5012
+ projection of it, computed on write and never written independently: a reader
5013
+ that needs a fact the projection does not carry re-parses `icalData` rather
5014
+ than adding a column that could disagree with it.
5015
+
5016
+ The write path parses the bytes to validate and project them and then stores
5017
+ the bytes it was handed, never a reserialization of them. That is what keeps
5018
+ `etag` honest: the tag is a digest of exactly what the writer sent, so it
5019
+ moves only when a writer sends something different. It is not a digest that
5020
+ survives a round trip through the parser — ical.js refolds long lines and
5021
+ reorders properties, so a resource stored as its own reserialization would
5022
+ change tag without anyone editing it, and every client's cache would miss.
5023
+
5024
+ `calendarObjectId` is derived from `(calendarId, resourceName)`: the resource
5025
+ name is the last path segment of the resource's URL, so the URL a client holds
5026
+ resolves to a row directly, and a repeated PUT of the same resource rewrites
5027
+ its own row.
5028
+ */
5029
+ export interface CalendarObject {
5030
+ /**
5031
+ * Primary identifier, derived from calendarId + resourceName
5032
+ */
5033
+ calendarObjectId: UUID;
5034
+ /**
5035
+ * Collection this resource belongs to
5036
+ */
5037
+ calendarId: UUID;
5038
+ /**
5039
+ * Last path segment of the resource's URL, e.g. "a1b2c3.ics". Unique within the collection and chosen by whoever wrote the resource, never derived from its contents — a client is free to rename a resource without changing the event it holds.
5040
+ */
5041
+ resourceName: String256;
5042
+ /**
5043
+ * The VEVENT's UID property (RFC 5545 3.8.4.7). Identifies the event across collections and servers, which `resourceName` does not.
5044
+ */
5045
+ icalUid: String512;
5046
+ /**
5047
+ * The complete VCALENDAR text, byte-for-byte as stored — CANONICAL. Line endings are CRLF and are never normalized; unknown properties and components are preserved verbatim.
5048
+ */
5049
+ icalData: string;
5050
+ /**
5051
+ * Strong entity tag over the stored `icalData` bytes, used for If-Match on a conditional write and for change detection on read.
5052
+ */
5053
+ etag: String64;
5054
+ /**
5055
+ * The VEVENT's SEQUENCE property (RFC 5545 3.8.7.4) — the organizer's own revision counter, carried for scheduling comparisons. `0` when the event declares none, which is the RFC default.
5056
+ */
5057
+ sequence: number;
5058
+ /**
5059
+ * Value the owning collection's `syncSequence` held after the write that produced this row. Pages the `bySyncSequence` read.
5060
+ */
5061
+ syncSequence: number;
5062
+ /**
5063
+ * Projection of the VEVENT's SUMMARY (RFC 5545 3.8.1.12). `""` when the event carries none.
5064
+ */
5065
+ summary: String512;
5066
+ /**
5067
+ * Projection of the master VEVENT's DTSTART as an ISO 8601 date-time with zone offset — a business date, not an epoch instant. An all-day event carries midnight in the event's own zone.
5068
+ */
5069
+ dtStart: String64;
5070
+ /**
5071
+ * Projection of the master VEVENT's effective end as an ISO 8601 date-time with zone offset, resolved from DTEND or from DTSTART + DURATION. An event with neither ends when it starts (RFC 5545 3.6.1).
5072
+ */
5073
+ dtEnd: String64;
5074
+ /**
5075
+ * Whether the master VEVENT's DTSTART is a DATE rather than a DATE-TIME (RFC 5545 3.3.4) — an all-day or multi-day event, whose end is exclusive.
5076
+ */
5077
+ allDay: boolean;
5078
+ /**
5079
+ * How the master VEVENT's DTSTART was placed on the clock. `Ambiguous` means the resource named a zone nothing could resolve, so `dtStart` and every occurrence expanded from it may be off by hours — a client shows the event and says so rather than presenting a guess as a fact.
5080
+ */
5081
+ zoneCertainty: ZoneCertainty;
5082
+ /**
5083
+ * Projection of the master VEVENT's STATUS
5084
+ */
5085
+ status: CalendarEventStatus;
5086
+ /**
5087
+ * Projection of the master VEVENT's TRANSP
5088
+ */
5089
+ transparency: CalendarTransparency;
5090
+ /**
5091
+ * Whether the resource expands to more than its master instance — an RRULE, an RDATE, or an override VEVENT. Overrides count on their own: a client that edits one instance and then drops the rule leaves a resource with a master and its exceptions, and each of those is still an occurrence.
5092
+ */
5093
+ hasRecurrence: boolean;
5094
+ /**
5095
+ * ISO 8601 UTC instant through which `CalendarEventIndex` rows exist for this resource, when the series runs past the expansion horizon and the index is therefore incomplete. `""` when the index is exhaustive — a single event, or a series that ends inside the horizon. A later live-expansion pass reads this to find the resources whose instances it must compute rather than query.
5096
+ */
5097
+ expandedThrough: String64;
5098
+ createdAt: number;
5099
+ updatedAt: number;
5100
+ }
5101
+ /**
5102
+ * One occurrence of a CalendarObject, flattened so a date range can be queried
5103
+ instead of expanded (issue #15). Every row is derived from
5104
+ `CalendarObject.icalData` and is replaced wholesale whenever that resource is
5105
+ written — nothing here is authoritative, and nothing writes here alone.
5106
+
5107
+ `recurrenceId` is `""` for a resource that does not recur — its one row. A
5108
+ resource that does recur has no `""` row at all: every occurrence carries its
5109
+ own RECURRENCE-ID slot, the first one included, so an occurrence is
5110
+ addressable without a caller having to know whether it happened to be the
5111
+ series' first. It is part of the sort key, so it can never be absent — an
5112
+ optional value there would make the index sparse and hide the single-event
5113
+ row from the range read that has to return it.
5114
+
5115
+ Times here are UTC instants, unlike `CalendarObject.dtStart`, which carries
5116
+ the event's own offset. The two are different jobs: `dtStart` is the value a
5117
+ client displays, and a fixed-width UTC instant is the only form in which a
5118
+ sort key orders correctly — comparing offset-bearing strings would sort
5119
+ `09:00+02:00` after `09:00Z`, and a range read would silently drop
5120
+ occurrences from every zone but its own.
5121
+ */
5122
+ export interface CalendarEventIndex {
5123
+ /**
5124
+ * Collection this occurrence belongs to
5125
+ */
5126
+ calendarId: UUID;
5127
+ /**
5128
+ * Resource this occurrence was expanded from
5129
+ */
5130
+ calendarObjectId: UUID;
5131
+ /**
5132
+ * RECURRENCE-ID of this occurrence as an ISO 8601 UTC instant, or `""` for the one row of a resource that does not recur. Canonicalized to UTC by the same rule the expansion uses, so an override's RECURRENCE-ID and the occurrence it replaces resolve to the same value.
5133
+ */
5134
+ recurrenceId: String64;
5135
+ /**
5136
+ * When this occurrence starts, as an ISO 8601 UTC instant. An all-day occurrence starts at midnight of its civil date read in the collection's timezone.
5137
+ */
5138
+ startAt: String64;
5139
+ /**
5140
+ * When this occurrence ends, as an ISO 8601 UTC instant. Exclusive for an all-day occurrence, per RFC 5545 3.6.1.
5141
+ */
5142
+ endAt: String64;
5143
+ /**
5144
+ * Whether this occurrence is all-day, copied from the resource it came from so a range read never has to join back to it. A client renders an all-day occurrence as the civil date its start falls on in the collection's timezone, not as the instant stored here.
5145
+ */
5146
+ allDay: boolean;
5147
+ createdAt: number;
5148
+ updatedAt: number;
5149
+ }
4930
5150
  /**
4931
5151
  * Junction whose existence *is* a label assignment (RFC 030). Holds only ids
4932
5152
  and is hydrated with `batchGet`. Keyed by a deterministic UUID v5 derived
@@ -6872,6 +7092,9 @@ export type BodyPartParameter = Components.Schemas.BodyPartParameter;
6872
7092
  export type RawMessageStorage = Components.Schemas.RawMessageStorage;
6873
7093
  export type BodyPartStorage = Components.Schemas.BodyPartStorage;
6874
7094
  export type BodyPartContent = Components.Schemas.BodyPartContent;
7095
+ export type CalendarCollection = Components.Schemas.CalendarCollection;
7096
+ export type CalendarObject = Components.Schemas.CalendarObject;
7097
+ export type CalendarEventIndex = Components.Schemas.CalendarEventIndex;
6875
7098
  export type MessageLabel = Components.Schemas.MessageLabel;
6876
7099
  export type FilterAnchor = Components.Schemas.FilterAnchor;
6877
7100
  export type MicrosoftOAuthStartRequest = Components.Schemas.MicrosoftOAuthStartRequest;
@@ -6931,6 +7154,12 @@ export type ContentEncoding = Components.Schemas.ContentEncoding;
6931
7154
  export type AccountSettingName = Components.Schemas.AccountSettingName;
6932
7155
  export type ConfigImportState = Components.Schemas.ConfigImportState;
6933
7156
  export type ConfigImportRefKind = Components.Schemas.ConfigImportRefKind;
7157
+ export type CalendarColor = Components.Schemas.CalendarColor;
7158
+ export type CalendarComponentSet = Components.Schemas.CalendarComponentSet;
7159
+ export type CalendarSource = Components.Schemas.CalendarSource;
7160
+ export type CalendarEventStatus = Components.Schemas.CalendarEventStatus;
7161
+ export type CalendarTransparency = Components.Schemas.CalendarTransparency;
7162
+ export type ZoneCertainty = Components.Schemas.ZoneCertainty;
6934
7163
  export type MessagePlacementMoveState = Components.Schemas.MessagePlacementMoveState;
6935
7164
  export type FlagPushOperation = Components.Schemas.FlagPushOperation;
6936
7165
  export type MessageFlagPushState = Components.Schemas.MessageFlagPushState;