- Remove
createdAt
field from message model. - Change
latestMessageReceivedDate
&latestMessageSentDate
to be optional on threads model.
- Fix
credentials
resource to use correct endpoint.
- Fix query parameters for array values
- Add support for Scheduling API.
- Fix issue where inline attachments > 3Mb were not sent correctly.
- Add missing
select
field on query params - Add missing
name
field on grant model - Add missing
masterEventId
on Event model - Fix for the webhook rotate secret calling the wrong endpoint
- Add support for filtering events by masterEventID
- Add support for gzip compression
- Add support for filtering events by attendee email
- Add buffer support for file attachments
- Add new webhook trigger types
- Add ews as a provider
- Change rotate secret endpoint from being a PUT to a POST call
- Fix issue where crypto import was causing downstream Jest incompatibilities
- Fix FormData import compatibility issues with ESM
- Remove eslint-plugin-import from production dependencies
- Fix issue where metadata was being incorrectly modified before being sent to the API
- Added collective availability method
- Fix crash when timeout encountered
- Bump
braces
sub-dependency from 3.0.2 to 3.0.3
- Added support for filtering by event type when listing events
- Added support for filtering a list of folders
- Fixed query parameters not being formatted properly
- Added support for
provider
field in code exchange response - Added clean messages support
- Fixed issue where attachments < 3mb were not being encoded correctly
- Add response type to
sendRsvp
- Add support for adding custom headers to outgoing requests
- Add support for custom headers field for drafts and messages
- Add support for setting
include_grant_scopes
for auth url generation - Rename incorrect
type
field inWhen
models toobject
- Fix inaccuracy in
ReminderOverride
model
- Improved message sending and draft create/update performance
- Change default timeout to match API (90 seconds)
- Fixed serialization/deserialization of keys with numbers in them
- Added support for
roundTo
field in availability response model - Added support for
attributes
field in folder model - Added support for icloud as an auth provider
- Fixed query params not showing up in method parameters for finding a message
- Fixed missing fields in message models
- Removed unnecessary
clientId
from detectProvider params
- Added support for
/v3/connect/tokeninfo
endpoint - Models can now directly be imported from the top-level
nylas
package - Fixed inaccuracies in event and webhook models
- BREAKING CHANGE: Node SDK v7 supports the Nylas API v3 exclusively, dropping support for any endpoints that are not available in v3.
- BREAKING CHANGE: Convert
Nylas
class from a static to a non-static class - BREAKING CHANGE: Officially support minimum Node 16
- BREAKING CHANGE: Dropped the use of 'Collections' in favor of 'Resources'
- BREAKING CHANGE: Removed all REST calls from models and moved them directly into resources
- REMOVED: Local Webhook development support is removed due to incompatibility
- Rewrote the majority of SDK to be more modular and efficient
- Removed the use of custom strings for serialization and deserialization, now automatically converting to camelCase and from the API's snake_case
- Added support for both ES6 and CommonJS module systems
- Created models for all API resources and endpoints, for all HTTP methods to reduce confusion on which fields are available for each endpoint
- Created error classes for the different API errors as well as SDK-specific errors
- Local webhook testing support
- Add
hideParticipants
field toEvent
- Add support for rate limit errors
- Add responseType to AuthenticateUrlConfig
- Add new attributes for Event webhook notifications
- Change Event
visibility
field to be writeable - Bump
decode-uri-component
sub-dependency from 0.2.0 to 0.2.2 - Bump
qs
sub-dependency from 6.5.2 to 6.5.3 - Bump
json5
sub-dependency from 2.1.0 to 2.2.3 - Bump
minimatch
sub-dependency from 3.0.4 to 3.1.2
- Fix calendar color implementation
- Add additional fields for job status webhook notifications
- Add support for calendar colors (for Microsoft calendars)
- Add support for event reminders
- Fix typo in
SchedulerBooking.calendarInviteToGuests
attribute - Bump
minimist
sub-dependency from 1.2.5 to 1.2.6
- Add additional
Event
fields - Fix issue with
EventParticipant
not sending status on new event creation
- Add
metadata
field toJobStatus
- Add
interval_minutes
field in Scheduler booking config - Fixed
Event.originalStartTime
type to beDate
- Fixed
SchedulerBookingOpeningHours.accountId
deserialization - Fixed json value for
confirmationEmailToHost
inSchedulerBooking
- Add
Message.save()
functionality for updating existing messages - Add missing
reminderMinutes
field inEvent
- Fixed issue where API response data was being lost
- Fixed incorrect tunnel index number in webhook example
- Support collective and group events
- Fix
fileIdsToAttach
field not being set when initializing aDraft
- Add missing
fileIdsToAttach
field inDraftProperties
- Fix JSON parse error when using
CalendarRestfulModelCollection.freeBusy
- Fix base URL not being set for
SchedulerRestfulModelCollection
functions
- Add missing order and emails field in calendar availability
- Fix issue where passing in an array of one for
MessageRestfulModelCollection.findMultiple
throws an error
- Add support for revoking a single access token
- Improve Outbox job status support
- Support Setting Redirect On Error in Authenticate URL Config
- Fix issue where an empty response body could trigger a JSON deserialization error
- Remove usage of unreliable
node-fetch response.size
- Allow getting raw message by message ID directly instead of needing to fetch the message first
- Add new
authenticationType
field inManagementAccount
- Fix JSON error thrown when Nylas API returns non-JSON error payload
- Fix circular dependency issue in
Attribute
- Fix
SchedulerBookingOpeningHoursProperties.days
and add missing fields to Scheduler models - Enable Nylas API v2.5 support
- Bump
node-fetch
dependency from 2.6.1 to 2.6.7 - Bump
ajv
sub-dependency from 6.10.2 to 6.12.6
- Add support for returning multiple messages by a list of message IDs
- Add new field in
Draft
for adding files by file IDs - Add Webhook Notification models
- Improved
Delta
support: addedDelta
model and two new methods;since
andlongpoll
- Fix Virtual Calendar logic and serialization
- Add support for
Event
to ICS - Add
comment
andphoneNumber
fields toEventParticipant
- Add support for
calendar
field in free-busy, availability, and consecutive availability queries - Fix issue where properties of
Model
type were sending read-only attributes to the API
- BREAKING CHANGE: Refactored
RestfulModel
andRestfulModelCollection
, introducedModel
andModelCollection
superclass for models that do not directly interact with the Nylas API - BREAKING CHANGE: Introduction of interfaces that accompany models to improve experience when instantiating API models and provides better insight on "required" fields
- BREAKING CHANGE: Applied missing variable and return types, and applied stricter typing to improve deserialization and to adhere Typescript best practice
- BREAKING CHANGE:
Event.when
is now ofWhen
type - BREAKING CHANGE: All
Event
fields for participants are now ofEventParticipant
type - BREAKING CHANGE: Several
Contact
fields that took an object as a value now take a correspondingContact
subclass type - BREAKING CHANGE:
NeuralMessageOptions
is now aModel
class instead of an interface type - BREAKING CHANGE:
CalendarRestfulModelCollection.freeBusy()
now returns a (new)FreeBusy
type instead of a JSON - BREAKING CHANGE:
CalendarRestfulModelCollection.availability()
now returns a (new)CalendarAvailability
type instead of a JSON - BREAKING CHANGE:
CalendarRestfulModelCollection.consecutiveAvailability()
now returns a (new)CalendarConsecutiveAvailability
type instead of a JSON - BREAKING CHANGE:
Connect.authorize()
now takes in a parameter ofVirtualCalendarProperties | NativeAuthenticationProperties
type (new) instead of an object and returnsAuthorizationCode
type (new) instead of a JSON - BREAKING CHANGE:
Connect.token()
now returns anAccount
type instead of a JSON - BREAKING CHANGE:
Contact
,EventConferencing
, andFolder
are now default exports - BREAKING CHANGE:
Nylas
has stricter parameters and introduction of defined return types - BREAKING CHANGE:
Nylas.exchangeCodeForToken()
now returns anAccessToken
type that's a representation of the full API response as opposed to just the access token string - BREAKING CHANGE:
Nylas.application()
takesApplicationDetailProperties
type and returns anApplicationDetail
type - BREAKING CHANGE: Removed
RestfulModelCollection.build()
as it does not allow for proper property and type hinting in favor of instantiating vianew Model()
- BREAKING CHANGE: Removed
Connect.newAccount()
as it had no functionality - BREAKING CHANGE: Removed
File.metadata()
as it doesn't appear any different than making aNylasConnection.files().find()
call - Lots of new models are introduced, almost all API objects are represented as a model in the SDK now
- Introduction of
Enum
types
- Prevent
Event
objects from sending an empty list of notifications when not set, causing errors for recurring events
- Add missing
provider
option forurlForAuthentication
- Job status improvements
- Fix Scheduler and Component types
- Fix Component sending unmodifiable fields during update
- Fix bug where updating an event resulted in an API error
- Fix bug where booking a valid timeslot resulted in an API error
- Add support for Event notifications
- Add support for remaining Scheduler endpoints
- Add metadata support for
Calendar
,Message
andManagementAccount
- Add Component CRUD Support
- Add Scheduler support
- Add support for consecutive availability
- Fix issue where JSON.stringify would omit read-only values
- Fix webhook example throwing error if body is not a raw body
- Fix readonly calendar attributes being sent for POST and PUT calls
- Fix minor issues with Neural API implementation
- Fix not rejecting uncaught errors during requests
- Add missing fields for recurring events
- Add support for conferencing
- Fix Jest test cases not respecting async methods
- Fix issue with parsing raw MIME emails
- Add linting, enabled and set up eslint and prettier
- Add support for
/calendars/availability
endpoint - Add support for the Neural API
- Fix tracking object not being added to a pre-existing
draft
object - Removed
request
dependency and related import statements - Fix
undefined
response when downloading file
- Fix bug where saving a
draft
object with an undefinedfilesIds
would throw an error - Replaced deprecated
request
library withnode-fetch
- Add custom error class
NylasApiError
to add more error details returned from the API - Add support for read only fields
- Enabled Nylas API v2.2 support
- Fix typings for classes that extend
RestfulModelCollection
orRestfulModelInstance
- Add
metadata
field in the Event model to support new Event metadata feature - Add support for filtering
metadata
usingmetadata_key
,metadata_value
, andmetadata_pair
- Updated dependencies
lodash
,y18n
, andpug
to the latest stable version
- Pass error message from the API to the SDK user
- Migrate
delta
streaming tonode-fetch
- Migrate
exchangeCodeForToken
tonode-fetch
- Typing fixes to
nylas.drafts
and otherRestfulModelCollections
- Drop async dependency for smaller package fingerprint. Async is replaced with promises.
- Remove circular dependency in
nylas-connection.ts
- Update readme with syntax highlighting
- Fix bug where setting
event.start
andevent.end
did not setevent.when
ifevent.when
didn't exist - Refactor parameter ordering in
find()
anddraft.send()
methods [backwards compatible] - Add
JobStatus
model and collection
- Implement support for GET /contacts/groups
- Update lodash import
- Support GET /resources
- Support POST, PUT and DELETE for calendars, and add location, timezone and isPrimary attributes.
- Add
object
attribute toevent.when
object
- Fix bug which was overwriting properties on message objects.
- Support recurring events.
- Implement list & update application details endpoints.
- Support free-busy endpoint on Calendars collection.
- [BREAKING] remove
appId
andappSecret
. Please useclientId
andclientSecret
. - [BREAKING] remove
Thread.folder
. Please useThread.folders
. - Migrate to Typescript
- Update
exchangeCodeForToken
to reject when noaccess_token
is returned. - Fix unhandled error when response is undefined.
- Fix get contact picture request to correctly use callback, if provided.
- Add iCalUID attribute to Event model
- Update SUPPORTED_API_VERSION to 2.1
- Allow file streaming uploads
- Update Thread.folder to use Folder model, and rename to Thread.folders
- Remove error handling in /connect models
- Update Thread participants to use EmailParticipant
- Bump handlebars version
- Add support for
/connect/token
endpoint - Fix events so that they support all time subojects
- Update formatting for DeprecationWarnings
- Update package-lock.json
- Add support for
/connect/authorize
endpoint - Fix draft deletion bug
- Improvements to example/webhooks
- Update app id and app secret to client id and client secret
- Add support for
/token-info
endpoint - Add webhooks CRUD functionality
- Add contentDisposition to File
- Add emailAddress to ManagementAccount
- Add provider to ManagementAccount
- Update dependancies
- Add
groups
andsource
to contact attributes - Fix contact birthday type from date to string
- Fix
emailAddresses
attribute in Contact model
- Add billingState to Account model
- Fix error to string reassignment bug
- Update webhooks example code
- Enable link tracking
- Add support for
/ip_addresses
endpoint
- Add support for
revoke-all
endpoint
- Add X-Nylas-Client-Id header for HTTP requests
- Drop unnecessary dependencies: express-session, clone
- Replace Underscore with lodash
- Replace Bluebird promises with native promises
- Upgrade all other dependencies and devDependencies to latest versions
- Reduce package size by only including
lib
directory
- Add status code to error to allow it to bubble up from API request errors
- Improvements to example/sample-app
- Move version mismatch warning to only print if both API and SDK versions are present. This will decrease unhelpful spamming.
- Add linkedAt to the account model
- Parse response into JSON if it is a string.
Note: version 4.2.1 was not released.
- Bump supported Nylas API version to 2.0
- Add support for new contact fields and functionality
- Added variable for supported version of Nylas API - set to
1.0
and will be updated when the SDK supports later versions of the API - Added warnings when the version of the API that the SDK supports differs from the version of the API that the application is using
- Converted Coffeescript to ES6
- Added ESLint and Prettier for linting
- Updated test framework from Jasmine 1.0 to Jest
- Changed Travis to run Node 8 and lint, build, and test code in CI
- Updated docs and example code
- Added
search()
for messages and threads - Added
upgrade()
anddowngrade()
for account management - Added
getRaw()
for retrieving raw messages - BREAKING CHANGE: Changed API for sending raw messages to use
draft.send()
instead ofMessage.sendRaw()
- Changed
list()
to override defaultoffset
with user’s - BREAKING CHANGE: Changed models for
Contact
,Draft
,Event
,File
,Folder
,Message
, andThread
to accurately reflect the attribute that the API returns - Return headers correctly for
expanded
view forMessage
objects - BREAKING CHANGE: Return
Message
object instead ofDraft
object after send - Return sending failures for partial sends
- Return server errors for SMTP exceptions on send
- BREAKING CHANGE: Privatized
_range()
,_getModel()
, and_getModelCollection()
(not documented) - BREAKING CHANGE: Removed
draft
attribute onMessage
andDraft
objects, since the object type is already distinguished - BREAKING CHANGE: Removed support for
Tag
objects, which has been deprecated, and instance methods onThread
forTag
changes - BREAKING CHANGE: Removed support for
generateCursor()
, which has been deprecated - BREAKING CHANGE: Removed support for the
trial
option for auth, which has been deprecated
- No longer throw an error after successful calls to
Message.sendRaw()
- Add status to event model
- Don't require secret for
urlForAuthentication()
, allowing client-side usage without leaking or faking the app secret - Catch rejected promises in some missing cases
- Emit
DeltaStream
retry status as an event - Don't
console.log()
, ever (callers should instrument desired logging) - Fix missing fields and typos in message and thread models
- Add support for
view=expanded
option. Now all methods on that hit the API can take querystring params as objects. Additionally, you can pass in{expanded: true}
for convenience. - BREAKING CHANGE:
DeltaStream
now also supportsview=expanded
,exclude_types
, andinclude_types
, as well as any arbitrary query string param.Delta::startStream
now takes an object as a second argument for query string params, instead of anexclude_types
array.