Upgrade typescript v4 to v5
What is the purpose of this pull request?
- [ ] Documentation update
- [ ] Bug fix
- [ ] Feature addition or enhancement
- [x] Code maintenance
- [ ] DevOps
- [ ] Improve developer experience
- [ ] Others, please explain:
Overview of changes:
Upgrading typescript version is to support native ESM module compilation, improving compatibility and moving away from legacy CommonJS. This allows improved Node.js module compatibility.
- Upgrade Jest from 27 to 29 as it was capping typescript version:
- https://jest-archive-august-2023.netlify.app/docs/28.x/upgrading-to-jest28/
- https://jestjs.io/docs/upgrading-to-jest29
- Upgraded @types/node as it was blocking typescript upgrade: *https://stackoverflow.com/questions/78790943/in-typescript-5-6-buffer-is-not-assignable-to-arraybufferview-or-uint8arr
- Upgrade typescript version v4 to v5
- Upgrade @typescript-eslint/parser
- updated eslint@7 to eslint@^8.57.0 || 9 Old airbnb eslint configs no longer being maintained - we should shift to using something else.
Anything you'd like to highlight/discuss:
We would need to upgrade eslint as well at some point of time in the future
============= WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree. You may find that it works just fine, or you may not. SUPPORTED TYPESCRIPT VERSIONS: >=4.7.4 <5.6.0 YOUR TYPESCRIPT VERSION: 5.9.2 Please only submit bug reports when using the officially supported version. =============
Upgrading ESlint to v9 and also migrating from previous airbnb-eslint configurations (which seem to no longer be maintained) is going to be an issue in the future
base last updated 4 years ago - https://www.npmjs.com/package/eslint-config-airbnb-base airbnb-typescript-adaption repo has been archived, will not support eslint@9 going forward https://github.com/iamturns/eslint-config-airbnb-typescript
Testing instructions:
Sanity check that nothing major breaks
Proposed commit message: (wrap lines at 72 characters)
Upgrade typescript v4 to v5
Upgrade to support native ESM module compilation, to later move away from legacy CommonJS. Allows improved Node.js module compatibility.
Checklist: :ballot_box_with_check:
- [ ] Updated the documentation for feature additions and enhancements
- [ ] Added tests for bug fixes or features
- [ ] Linked all related issues
- [ ] No unrelated changes
Reviewer checklist:
Indicate the SEMVER impact of the PR:
- [ ] Major (when you make incompatible API changes)
- [ ] Minor (when you add functionality in a backward compatible manner)
- [ ] Patch (when you make backward compatible bug fixes)
At the end of the review, please label the PR with the appropriate label: r.Major, r.Minor, r.Patch.
Breaking change release note preparation (if applicable):
- To be included in the release note for any feature that is made obsolete/breaking
Give a brief explanation note about:
- what was the old feature that was made obsolete
- any replacement feature (if any), and
- how the author should modify his website to migrate from the old feature to the replacement feature (if possible).