Releases: grommunio/mapi-header-php
Releases · grommunio/mapi-header-php
Release list
mapi-header-php 2.3
Fixes:
- Incorrect yearly recurrence periods after parsing and when calculating occurrences have been repaired.
- Broken recurrence data used to abort calendar processing, now it is skipped and logged.
- A delegate's meeting response was erroneously reported as the delegate, not the mailbox owner.
- Meeting responses will now have PidLidAttendeeCriticalChange set (and thus generate a DTSTAMP line when converted to iCal)
- No longer report a failure from the mail cleanup routine even when a meeting request is complete.
- Results from gmdate() are now compared as integers in recurrence month calculations.
- PidLidRecurrencePattern is now filled with grammatically correct translations.
- Keycloak token decoding was switched from base64 to base64url.
- Keycloak: On validation, tokens are checked for being active.
- Keycloak: On grant validations, refresh tokens are no longer validated.
- Keycloak: Avoid raising an undefined index warning when a public client without realm public key connects.
- readMapiPropStream() now returns aeturn an empty string when the property stream cannot be opened.
- readMapiPropStream() now returns an empty string when the stream cannot be opened.
Enhancements:
- Added helpers writeMapiPropStream(), propIsTooLarge(), readMapiProp(), readMapiPropStream(), parseTimezoneDefinition(), getEffectiveTimezoneRule(), getCalendarRestriction().
- Added getCodepageCharset() with iconv-verified charset names.
- Added proptag defines for PR_CONVERSATION_ID, PR_CONVERSATION_INDEX and PR_CONVERSATION_TOPIC.
- Restrictions are applied more efficiently (less runtime) within getCalendarItems().
- deleteRecurrence() turns a series back into a single item
- Categories are applied to the whole series now.
- The MeetingRequest class constructor can take an additional parameter to indicate that requests should be deleted when responding.
- For new recurrences, the first day of the week is now taken from the user's settings.
- mapi_strerror is now used for generic exception explanation strings.
- Added API documentation for the new helpers.
mapi-header-php 2.2
Fixes:
- Calendar events occuring every n years are broken
- Meeting request processing of delegates opens wrong store
- PR_RECEIVED_BY_SMTP_ADDRESS tag is undefined
- MSGFLAG_UNSENT flag is set after sending a meeting request
- Remove recipients from a meeting request fails
- Task owner is empty
- Daystart is not available in a recurrence
- Shared calendar is unresolveable
- Canceling meeting request in a shared calendar fails
- Wrong GOID for uids longer than 64 chars
Enhancements:
- Cache gmtime() results in BaseRecurrence
- Cache DST boundaries and daysInMonth results
- Add hash index infrastructure for exception lookups
- Use hash-indexed lookups for exception methods
- Category handling for the attendee
- Set PR_HTML body message with fallback to PR_BODY
- RecurrenceException class
- mapi_linkmessages stub
- Delegate Wastebasket style constants
mapi-header-php 2.1
Fixes:
- Correct PidLidAppointmentStateFlags value for meetings
Enhancements:
- HTML-based meetingTimeInfo
- ecRights* definitions
mapi-header-php 2.0
- Correct logic bug in TaskRequest::isTaskRequestUpdated() that could cause soft-deleted task requests to be incorrectly processed when an associated task exists in the active folder
- Enhanced recurrence pattern validation with better error handling for invalid nday values
- More robust address book entry comparison in compareABEntryIDs()
- Code quality improvements and stricter type safety throughout
- Performance optimizations through optimized function usage (str*)
mapi-header-php 1.6
- Add PidTagWlinkSection/PR_WLINK_SECTION value definitions
- Util to convert restriction consts into strings
- Fix invitees disappearing from meetings with resources