* Closes#1241: Add wsConnecting event
* Remove redundant tests
(The separate tests for connecting, open, and close events are handled by the one lifecycle event test which both tests that the events are called as expected and in the order expected.)
* Add event.type to detail object of wsConnecting event
(This makes the event polymorphic for this property path with the other lifecycle events – wsOpen and wsClose – which proxy the underlying socket’s event object. This means all lifecycle events can be handled by one handler – e.g., a status indication function – if desired.)
* Minor: Add missing semicolon
* Document wsConnecting event
(And fix two tiny grammar issues.)
Docs on the website are currently rendering incorrectly because of faulty escaping of curly braces (line 80 is rendered has `<p> and and </> htmx - high power tools for html and </p>`). Unfortunately, this fix breaks the rendering of the file on github (there are extra `{% raw %}` directives), but I think it's better than the other way around.
* Add events support for WebSockets
* Stop reconnection attempts after element has been removed
* Add tests for websockets
* Hide socker wrapper behind a more strict interface to avoid breaking changes in the future
* Fix legacy websocket tests interfering with new extension tests
* Minor doc fixes
* Add `wsBinaryType` configuration option
* Update websockets extension documentation
* Add mention of message queuing mechanism
* Expand on the topic of swapping logic
* Expand the example of WebSocket message from the server
* Add data-loading-aria-busy directive for loading-states extension; add tests for the extension
* Update docs
* Fix tests of scoped loading states
* Commit test files
* Improve delay tests by using sinon timer
* Add reference to MDN about `aria-busy` attribute
* Add loading-states extension
* Add extension to the extensions list
* Remove duplicate reference to client-side-templates
* Remove duplicate entry to debug
How did this happen?!