Declaring variables as final when possible is a good practice
because it helps avoid accidental reassignments and allows the
compiler to do optimizations.
* Upgrade upgradable packages
* Apply default null-safety migrations
* Remove hashnode as a dependency and localize its functionality to the package.
Maintenance was done long time ago hence no need to wait for the update
* Localize ui package to reduce maintenance burdens
* Replace universal html with dart:html
* Remove unnecessary checks
* Fix formatting
* Migrate app to null safety
* Enable methods to be nullable
* Fix non-nullable issue with node methods
* Cast as Node
* Use universal html
* Use universal html package to bring in the ImageElement class
* Remove unused imports
* Fix imports on the editor file
* Add key to quill editor
* Remove final from the GlobalKey
* Remove final on GlobalKey
* Remove custom util implementation in favor of quiver
* Fix issue with null on token attrivute
* Remove final hashcode that is replaced by quiver functionality
* Fix merge request
* Fix hit test position in text_line.dart
* Fix null safety errors on text_selection.dart
* Fix sound null safe errors in toolbar.dart
* Import null safe file picker