node-zendesk v4.0.0
Announcement: node-zendesk v4.0.0 Update 🚀
We're thrilled to announce a significant update to the Node-Zendesk package!
Notable Changes:
- 
Dependencies Removed: We've removed the following dependencies - request,querystring,async, andnconf. As a result of removingnconf, command-line arguments will no longer work. However, these were buggy, so this change shouldn't affect the usage much. For configuration, you can now use dotenv. Refer to our examples for more clarity.
- 
Promises & Async/Await: Callbacks have been ditched in favor of promise or async/await patterns. If you need guidance on updating your code, check out the example here. 
- 
Accessing Side Loads: To access side loads, the format is now client.<resource>.setSideLoad(). Ensure you use this before calling any API endpoints and after client instantiation. For instance:client.users.setSideLoad(["roles","organizations"]).
For comprehensive details, the changelog is your best friend!
Documentation: A significant documentation update is on the horizon. Keep an eye on this issue for more information.
A colossal shout out to @teebot and @cryptomail for making this release possible! 🎉
Happy Coding!
Changelog
Added:
Transporter Class Enhancements:
- Introduced optional transportConfigto the Transporter class for HTTP client layer customization.
- Defaulted to native fetch(requires node 18) as the transport while maintaining a smooth fallback mechanism.
- Optional HTTP agnosticism -- New examples demonstrating integration**(optional)** with the request library (deprecated) and axios library.
- A fix to prevent unwanted slashes in URLs due to undefined or empty segments.
Requests Class Updates:
- Added a searchmethod for querying specific ticket requests.
- Enhanced listmethods with optional parameters forsort_byandsort_order.
Organization Related Enhancements:
- New methods: listByUser,count,countByUser,related,showMany, andbulkDelete.
Endpoint Enhancements:
- Introduced the EndpointCheckerclass for evaluating endpoint capabilities.
- Updated the URL assembly mechanism to include deep serialization of nested objects and improved assembleUrlfunction.
- Added support for CBP in the assembleUrlfunction.
Various Class & Method Additions:
- New methods for SLA policy reordering and filter definitions retrieval.
- Enhanced OrganizationFieldsandOrganizationMemberships.
- Extended the Localesclass with new methods for Zendesk API.
- Additions and updates across various classes like Brands,Automations,Attachments,Activity Stream, and more.
- A new Transporterclass, extracted fromClient, now handles request logic.
Miscellaneous:
- Removed forumsandforumsubscriptionsendpoints as they're no longer in service.
- Several JSDoc additions and improvements across classes for better documentation.
- Refactoring of request methods for clarity and granularity.
Fixes:
- Fixed unwanted /being appended to URLs by filtering out undefined or empty string segments.
- Addressed URL formatting issues in assembleUrl.
- Resolved issue with CBP not being supported by default.
- Fixed remoteUri -> endpointUriissue.
- Remedied the issue with buggy exports.
Removed:
- Removed forumsandforumsubscriptions- endpoints no longer in service.
- Removed unused API endpoint categories from the core.
- Deleted commented-out and unused parts of the code in various places.
Changed:
- Moved xoconfiguration into its separate file and excluded it from npm packaging.
- Moved documentation: rename doc -> oldand thendoctodocs.
- Replaced remoteUriwithendpointUriin connection options. Users upgrading from v3.x to v4.x should update their configurations accordingly to avoid authorization errors. (#431)
Migration Procedure (if necessary):
- Check Dependencies: Ensure that your current dependencies are compatible with the new changes, especially given the shift to native fetch in the Transporterclass.
- Update Custom Implementations: If you have custom implementations or overrides of the affected classes and methods, they might need adjustments to align with the updated methods.
- Remove Deprecated Endpoints: If you're utilizing forumsorforumsubscriptions, these have been removed and will need either replacement or removal in your application.
- Test Extensively: Given the range of changes, it's crucial to test your application in a staging environment before deploying the updated package to production.