{"action":"opened","issue":{"url":"https://api.github.com/repos/mixer/client-node/issues/83","repository_url":"https://api.github.com/repos/mixer/client-node","labels_url":"https://api.github.com/repos/mixer/client-node/issues/83/labels{/name}","comments_url":"https://api.github.com/repos/mixer/client-node/issues/83/comments","events_url":"https://api.github.com/repos/mixer/client-node/issues/83/events","html_url":"https://github.com/mixer/client-node/issues/83","id":361129637,"node_id":"MDU6SXNzdWUzNjExMjk2Mzc=","number":83,"title":"Middle-ware handling of protocol","user":{"login":"SReject","id":1975663,"node_id":"MDQ6VXNlcjE5NzU2NjM=","avatar_url":"https://avatars3.githubusercontent.com/u/1975663?v=4","gravatar_id":"","url":"https://api.github.com/users/SReject","html_url":"https://github.com/SReject","followers_url":"https://api.github.com/users/SReject/followers","following_url":"https://api.github.com/users/SReject/following{/other_user}","gists_url":"https://api.github.com/users/SReject/gists{/gist_id}","starred_url":"https://api.github.com/users/SReject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SReject/subscriptions","organizations_url":"https://api.github.com/users/SReject/orgs","repos_url":"https://api.github.com/users/SReject/repos","events_url":"https://api.github.com/users/SReject/events{/privacy}","received_events_url":"https://api.github.com/users/SReject/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-09-18T04:17:55Z","updated_at":"2018-09-18T04:17:55Z","closed_at":null,"author_association":"NONE","body":"Certain applications of the library need to be able to touch the underlying protocol handling. Essentially, there should/needs to be hooks exposed to override or apply in series with internal handling of the protocol so that projects that use this library can apply their own custom handling,\r\n\r\nSome use-case examples:\r\n\r\nAbility to hook `auth`  so we can debug connection issues as well as stop further processing(to prevent anonymous logins)\r\n\r\nAbility to hook the ChatMessage handling. For my use, I want to mutate the data received before the event is emitted, as well as correlate messages sent from the client with the events that arise from sending such.\r\n\r\n"}}
{"actor":{"display_login":"SReject"}}