The server now builds calcard, its iCalendar and vCard library, from vendor/calcard instead of crates.io, patched in with [patch.crates-io] like sieve-rs, so it can carry fixes to it. The copy is the published 0.3.14 with the same checksum Cargo.lock had, under Apache-2.0 OR MIT; its 26 MB of test samples are left out. Nothing changes in how the server behaves: Cargo.lock only drops calcard's registry source. Test: the workspace builds, calcard's own tests pass from vendor/calcard (52; the six that read the left-out samples are skipped), and the webdav suite passes.
7.2 KiB
7.2 KiB
calcard 0.3.14
- Updated JSCalendar conversion rules according to
draft-ietf-calext-jscalendar-icalendar-26anddraft-ietf-calext-jscalendarbis-20. - Recurrence overrides converted from iCalendar no longer contain patches forbidden by
jscalendarbis(privacy,organizerCalendarAddress,sentBy,recurrenceRule, nestedrecurrenceOverrides, ...), and such patches are ignored when converting to iCalendar; an override holding only forbidden patches is dropped, and a more restrictiveprivacypatch raises the privacy of the whole object. - All recurrences of a calendar object now convert to a single
privacyvalue, taken from the most restrictiveCLASSamong the main component, its recurrence overrides, or its recurrence instances (or among repeatedCLASSproperties in one component). - Unknown
CLASSvalues now convert to theprivateprivacy, preserving the original property iniCalendar/properties. - The
privacyproperty now converts to theCLASSproperty of the main component and every recurrence override component, and a preservedCLASSwith an unknown value is restored instead ofPRIVATE, never emitting more than oneCLASSper component. - Recurrence override components exported from JSCalendar now keep the
ORGANIZERproperty of the main component when the override's participants include the organizer. - Bump
mail-builderdependency to 1.0.0 anduuidto 1.26.
calcard 0.3.13
- Fix: serialized lines exceeded the 75 octet fold (#25).
- General performance improvements.
calcard 0.3.12
- Added
ICalendar::add_missing_timezones(), which builds aVTIMEZONEcomponent for everyTZIDparameter that has no matching definition, as required by RFC 5545, Section 3.6.5. - Added
ICalendar::add_timezone(), which builds aVTIMEZONEdefinition for a given time zone identifier over an explicit UTC range.
calcard 0.3.11
- Fix: whitespace immediately preceding a fold was discarded while unfolding, silently joining the words around it (RFC 5545, Section 3.1).
- Fix:
into_jscalendar()panicked onVJOURNAL,VFREEBUSY,VTIMEZONEand unknown components, none of which have a JSCalendar type. - Fix:
RRULEvalues that could not be parsed were truncated to their first rule part instead of being preserved verbatim. - Fix: unparseable
RRULEvalues were serialized withTEXTescaping, turning the structural;and,separators of theRECURvalue type into\;and\,(RFC 5545, Section 3.3.10). - Fix: date-only vCard 3.0
REVvalues were serialized with a fabricatedT000000time, although adatevalue is valid there (RFC 2426, Section 3.6.4). - Fix: truncated iCalendar
DATE-TIMEand vCardTIMESTAMPvalues were not completed, so a value missing its seconds did not survive a round trip, and a value missing its minutes was silently downgraded to aDATE, discarding the time. - Fix: control characters were retained in parameter values and emitted verbatim by URI parameters such as
ALTREPandDIR, althoughQSAFE-CHARdoes not permit them (RFC 5545, Section 3.1). - Fix: vCard content lines lacking a value separator were parsed with no value but serialized with an empty one.
- Fix: serialized lines exceeded the 75 octet limit by one because the colon separating a property from its value was not counted.
- Fix: an empty value at a fold boundary emitted a continuation line holding nothing but the fold character.
- Fix: vCard 2.1
BASE64values continued on unindented lines and terminated by a blank line were truncated to their first line, discarding the rest of the encoded data. - Fix: an
RRULEholding an invalid rule part silently yielded a partial recurrence rule, since every part after the invalid one was skipped and the resulting rule was returned as if it had parsed cleanly. - Expanded the iCalendar and vCard round-trip test corpus with samples collected from public test suites.
calcard 0.3.10
- Bump
mail-builderdependency to 0.5. - Use
rkyv::primitive::ArchivedU32instead of the concreterkyv::rend::u32_le.
calcard 0.3.9
- Updated JSCalendar conversion rules according to
draft-ietf-calext-jscalendar-icalendar-25. - Fix:
ORGANIZERconverted to a duplicate Participant object instead of merging with theATTENDEEorPARTICIPANTsharing its calendar address (#24). - Fix: the
ownerrole was not set on the Participant object converted fromORGANIZER. - Fix:
iCalendarconverted properties of Link and Participant objects were matched position rather than by object key when noJSIDparameter was present. - Fix: all-day events exported as a floating DATE-TIME plus
SHOW-WITHOUT-TIMEinstead of theDATEvalue type. - Fix:
VERSIONwas missing from the generatedVCALENDARcomponent, and the JSCalendarversionproperty was exported as aJSPROPproperty.
calcard 0.3.8
- Fix: binary values without a media type serialized as
data:base64,, which is not a validdataURL (RFC 2397). - Map the legacy vCard 3.0
TYPEparameter ofPHOTO,LOGO,SOUNDandKEYto the media type of their binary value, so upgrading a v3.0 card to v4.0 yieldsdata:image/jpeg;base64,instead of a typelessdataURL. - Include
TYPE=when exporting binary values to vCard v3.0 and below. - Fix: archived iCalendar writer escaped
,and;inside quoted URI parameter values such asDIR.
calcard 0.3.7
- Fix: JSCalendar
rscalenot converted to the iCalendarRSCALErule part. - Fix:
mailto:scheme not stripped from calendar addresses when uppercase or mixed case.
calcard 0.3.6
- Fix:
FNproperty not generated for vCard whenNproperty is present (#22).
calcard 0.3.5
- Include 'ENCODING=' when exporting vCard v3.0 and below.
calcard 0.3.4
- Include
CHARSET=UTF-8when exporting vCard v3.0 and below.
calcard 0.3.3
- Support
STATUS:CANCELLEDmapping fromVTODOto JSCalendar (#20). - Fixed duration parsing for zero duration
PT0S.
calcard 0.3.2
- Fixed vCard
CELLto JSContactmobilemapping (#15). - Updated JSCalendar conversion rules according to
draft-ietf-calext-jscalendar-icalendar-21.
calcard 0.3.1
- Fixed jcal implementation to use lowercase property and component names.
- Updated conversion rules according to the latest JSCalendar-bis specification.
calcard 0.3.0
- JMAP for Calendars support.
- JMAP for Contacts support.
calcard 0.2.0
- JSCalendar parsing and conversion to iCalendar format.
- JSContact parsing and conversion to vCard format.
- Fix:
RRULEwithUNTILdates not parsed correctly (#12). - Fix: Support multiple periods in
FREEBUSYcomponent (#4). - Fix: Incorrect
\conversion (#3).
calcard 0.1.3
- Added some builder methods.
calcard 0.1.1
- Export vCard in legacy formats.
calcard 0.1.0
- Initial release.