## Description
This PR introduces the custom ESLint rule to [handle floating
promises](https://typescript-eslint.io/rules/no-floating-promises/) in
our JS Objects (using async function calls without await inside async
functions). Along with this, some refactors were needed
1) Function to dynamically enable/disable the rules based on context (
using editor type as the context for now, can be updated as per
requirements).
2) Generate a list of async functions from the global data input for
evaluation.
3) Package added for estree types.
Note: This custom rule is only used in our EE codebase for now. We can
enable it in CE in case the requirement arises.
Fixes https://github.com/appsmithorg/appsmith/issues/37255
## Automation
/test sanity js
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢🟢🟢 All cypress tests have passed! 🎉🎉🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12558146123>
> Commit: 36b66109c7ef70dc1eb97b445661ac69f881775a
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12558146123&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity, @tag.JS`
> Spec:
> <hr>Tue, 31 Dec 2024 10:54:23 UTC
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Added a custom ESLint rule to enforce proper Promise handling
- Enhanced linting capabilities with more granular error detection
- **Improvements**
- Updated linting utility functions to support more flexible
configuration
- Introduced more detailed context-aware linting options
- **Development**
- Added TypeScript type definitions for ESTree
- Expanded test coverage for linting utilities
- **Chores**
- Refactored linting-related utility functions and constants
<!-- end of auto-generated comment: release notes by coderabbit.ai -->