|
| 1 | +# Microsoft JavaScript SDK v3 upgrade guide |
| 2 | + |
| 3 | +- [Breaking Changes](#Breaking-Changes) |
| 4 | +- [Enhancements](#Enhancements) |
| 5 | +- [Deprecation](#Deprecation) |
| 6 | +## Breaking Changes |
| 7 | + |
| 8 | +### Supported Node version and TypeScript update |
| 9 | +- Microsoft Graph JS SDK requires Node.js 10 LTS or higher. |
| 10 | +- Updated to TypeScript 4.x. |
| 11 | + |
| 12 | +### LargeFileUploadTask |
| 13 | +- Modified the `FileObject` interface which now contains the `sliceFile` function. Learn more [LargeFileUploadTask](./docs/tasks/LargeFileUploadTask.md). |
| 14 | +- The `FileObject` instance passed on creation of the `LargeFileUploadTask` object should contain the implementation of the `sliceFile` function. |
| 15 | +- Added new classes `FileUpload` and `StreamUpload` implementing the `FileObject` interface. |
| 16 | + |
| 17 | +### Removed `timeout` option from `FetchOptions` interface |
| 18 | +- Recommended way is to [cancel a request](./docs/CancellingAHTTPRequest.md) by passing a signal. |
| 19 | + |
| 20 | +### Update in the `package.json` entry points. |
| 21 | +```json |
| 22 | +{ |
| 23 | + "main": "lib/src/index.js", |
| 24 | + "module": "lib/es/src/index.js", |
| 25 | + "browser": { |
| 26 | + "./lib/es/src/index.js": "./lib/es/src/browser/index.js" |
| 27 | + } |
| 28 | +} |
| 29 | +``` |
| 30 | +## Removed the `graph-es-sdk.js` |
| 31 | +* `graph-es-sdk.js` - the bundled file in ES format will not be shipped anymore as the ES modules are being shipped. |
| 32 | +* `graph-js-sdk.js` will be shipped as is. |
| 33 | + |
| 34 | +## Enhancements |
| 35 | + |
| 36 | +### Introducing support for `@azure/identity TokenCredentials` |
| 37 | +- Added a `TokenCredentialAuthenticationProvider` enabling the use of `@azure/identity` `credential classes` for authentication purposes. |
| 38 | +- The `TokenCredentialAuthenticationProvider` enables server-side authentication using `credential classes` such as `ClientSecretCredential` or `ClientCertificateCredential`. |
| 39 | +- Find the samples on how to use `TokenCredentialAuthenticationProvider` here - [TokenCredentialAuthenticationProvider samples](./samples/tokenCredentialSamples) |
| 40 | + |
| 41 | +### LargeFileUploadTask |
| 42 | + |
| 43 | +- Added support for Node.js Stream upload. Learn more [LargeFileUploadTask](./docs/tasks/LargeFileUploadTask.md). |
| 44 | +- Added capabilities to track the upload progress using `UploadEventHandlers`. |
| 45 | +- Resolved a bug to enable large file uploads to Outlook and Print APIs. |
| 46 | + |
| 47 | +### Added `browser` field in package.json. |
| 48 | +- The `browser` field indicates the entry point for client applications using Microsoft Graph JS SDK library. |
| 49 | + |
| 50 | +## Deprecation |
| 51 | + |
| 52 | +### Deprecating `ImplicitMSALAuthenticationProvider` |
| 53 | +* Use of `ImplicitMSALAuthenticationProvider`, that is,using the implicit authorization flow is not recommended any more. [OAuth 2.0 Implicit Grant](https://oauth.net/2/grant-types/implicit/). |
| 54 | +* Alternatives to `ImplicitMSALAuthenticationProvider` - |
| 55 | + * TokenCredentialAuthenticationProvider with the `azure/identity` library. Learn more about [InteractiveBrowserCredential](https://github.com/Azure/azure-sdk-for-js/blob/master/sdk/identity/identity/interactive-browser-credential.md) |
| 56 | + * A CustomAuthenticationProvider with an auth library of your choice. [Choose a Microsoft Graph authentication provider based on scenario](https://docs.microsoft.com/en-us/graph/sdks/choose-authentication-providers?tabs=CS) |
| 57 | + |
0 commit comments