{"_id":"internet-relay-chat","_rev":"80-20db05b23e66549a8f7ce74e922605e4","name":"internet-relay-chat","time":{"modified":"2022-06-19T01:47:05.268Z","created":"2014-04-08T21:15:51.270Z","1.0.0":"2014-04-08T21:15:52.835Z","1.0.1":"2014-04-08T21:20:29.090Z","1.0.2":"2014-04-08T21:24:31.855Z","1.0.3":"2014-04-11T06:37:39.951Z","1.0.4":"2014-04-11T06:44:39.471Z","1.0.5":"2014-05-03T21:19:17.821Z","1.0.6":"2014-05-09T22:12:33.457Z","1.0.7":"2014-05-09T22:18:05.462Z","1.0.8":"2014-05-09T22:28:03.136Z","1.0.9":"2014-06-17T20:59:45.998Z","1.0.10":"2014-08-13T03:54:00.249Z","1.0.11":"2014-08-19T07:42:41.204Z","1.0.12":"2014-08-20T20:55:47.375Z","1.0.13":"2014-08-20T21:23:42.915Z","1.1.0":"2014-08-21T04:37:13.968Z","1.1.1":"2014-09-15T18:52:10.374Z","1.1.2":"2015-01-03T19:34:35.803Z","1.1.3":"2015-01-03T19:44:04.474Z","1.1.4":"2015-01-18T05:54:54.164Z","1.1.5":"2015-01-30T20:35:10.846Z","1.1.6":"2015-10-19T22:13:03.067Z"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}],"description":"Provides tools to connect to and interact with IRC servers","readme":"# node-internet-relay-chat\r\n\r\nThis is a Node.js module that's designed to provide as complete of an IRC interface as is possible.\r\n\r\n# License\r\n\r\nThis module is licensed under the MIT license.\r\n\r\n```text\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of this\r\nsoftware and associated documentation files (the \"Software\"), to deal in the Software\r\nwithout restriction, including without limitation the rights to use, copy, modify,\r\nmerge, publish, distribute, sublicense, and/or sell copies of the Software, and\r\nto permit persons to whom the Software is furnished to do so, subject to the\r\nfollowing conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all copies\r\nor substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\nINCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\nPARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n```\r\n\r\n# Installation\r\n\r\nInstall it via npm:\r\n\r\n```text\r\nnpm install internet-relay-chat\r\n```\r\n\r\n# Example Usage\r\n\r\nTo quickly start an IRC bot, connect it to a server, and join it to channel #foo, you would want to do something like this.\r\n\r\n```js\r\nvar IRC = require('internet-relay-chat');\r\nvar bot = new IRC({\r\n\t\"server\": \"chat.freenode.net\",\r\n\t\"port\": 6667\r\n});\r\n\r\nbot.on('connect', function() {\r\n\tconsole.log('Bot connected');\r\n});\r\n\r\nbot.connect();\r\n\r\nbot.on('registered', function() {\r\n\tbot.join('#foo');\r\n});\r\n```\r\n\r\n# Bot Configuration Options\r\n\r\nThe single parameter expected to be passed to the constructor is an object containing configuration options. The only one that's required is `server`, although there are many more. The default options are as follows:\r\n\r\n```js\r\nvar defaultOptions = {\r\n\t\"username\": \"nodejs\", // The username for the IRC client, as displayed in the hostmask\r\n\t\"realname\": \"node-internet-relay-chat IRC client\", // The real name of the IRC client, as shown in the whois command\r\n\t\"nick\": \"nodejs\", // The nickname of the client\r\n\t\"server\": \"\", // The server to connect to\r\n\t\"port\": 6667, // The port to connect to\r\n\t\"password\": false, // The password to use to connect to the server, or false for none\r\n\t\"autoReconnect\": 15000, // If greater than zero, the client will wait this many milliseconds before reconnecting when the connection is lost (unless bot.quit is used)\r\n\t\"secure\": false, // If true, the connection will use SSL/TLS\r\n\t\"localAddress\": null, // If specified, the client will bind to this local IP address\r\n\t\"vhost\": null, // If specified, the client will report this vhost to the IRC server, otherwise it will be autodetected (via reverse DNS)\r\n\t\"floodDelay\": 1000, // If greater than zero, the client will impose this delay (in milliseconds) between messages sent to the server\r\n\t\"debug\": false // If true, the client will spew all network I/O to the console\r\n};\r\n```\r\n\r\n# Colors\r\n\r\nColors are accessed directly through the required `IRC` object, not through any instantiated bots or clients. There are two ways to access colors:\r\n\r\n## IRC.colors\r\n\r\nContains color codes that can be concatenated directly into strings.\r\n\r\n- white\r\n- black\r\n- darkBlue\r\n- darkGreen\r\n- lightRed\r\n- darkRed\r\n- magenta\r\n- orange\r\n- yellow\r\n- lightGreen\r\n- cyan\r\n- lightCyan\r\n- lightBlue\r\n- lightMagenta\r\n- gray\r\n- lightGray\r\n- bold\r\n- reverse\r\n- italic\r\n- underline\r\n- reset\r\n\r\n## IRC.rawColors\r\n\r\nContains only the numbers for the colors listed above (except bold, reverse, italic, underline, and reset). You can turn these into IRC-ready color codes by prepending a '\\u0003' character. To add a highlight, append a second color code separated by a comma.\r\n\r\nFor example, to send the message \"Hello, World!\" in white with a black background, you would want to use something like this:\r\n\r\n    \"\\u0003\" + IRC.rawColors.white + \",\" + IRC.rawColors.black + \"Hello, World!\"\r\n\r\n## IRC.banFlags\r\n\r\nContains the available flags for use in the [`ban`](#banchannel-user-flags-message-callback) method. These are bitwise flags, so you should combine them with the `|` operator.\r\n\r\n- `nick` - Ban the user by their nickname\r\n- `user` - Ban the user by their username (ident)\r\n- `host` - Ban the user by their hostname\r\n- `kick` - In addition to setting +b, also kick the user\r\n\r\n# Properties\r\n\r\n## connected\r\n\r\nThis property will be `true` if the client is currently connected to an IRC server.\r\n\r\n## registered\r\n\r\nThis property will be `true` if the client is currently connected to and registered with an IRC server.\r\n\r\n## secure\r\n\r\nThis property will be `true` if the current connection is secure.\r\n\r\n## myNick\r\n\r\nThe bot's current nickname.\r\n\r\n## support\r\n\r\nAn object containing all features that the IRC server supports (as reported by the 005 message).\r\n\r\n## channels\r\n\r\nAn object containing the channels that the bot is currently in. It looks like this:\r\n\r\n```js\r\n{\r\n\t\"#channel\": {\r\n\t\t\"nicks\": [\"@Op1\", \"@Op2\", \"+Voice1\", \"+Voice2\", \"User1\", \"User2\"],\r\n\t\t\"users\": {\r\n\t\t\t\"Op1\": {\r\n\t\t\t\t\"prefix\": \"@\",\r\n\t\t\t\t\"access\": [\"o\", \"v\"]\r\n\t\t\t},\r\n\t\t\t\"Op2\": {\r\n\t\t\t\t\"prefix\": \"@\",\r\n\t\t\t\t\"access\": [\"o\"]\r\n\t\t\t},\r\n\t\t\t\"Voice1\": {\r\n\t\t\t\t\"prefix\": \"+\",\r\n\t\t\t\t\"access\": [\"v\"]\r\n\t\t\t},\r\n\t\t\t\"Voice2\": {\r\n\t\t\t\t\"prefix\": \"+\",\r\n\t\t\t\t\"access\": [\"v\"]\r\n\t\t\t},\r\n\t\t\t\"User1\": {\r\n\t\t\t\t\"prefix\": \"\",\r\n\t\t\t\t\"access\": []\r\n\t\t\t},\r\n\t\t\t\"User2\": {\r\n\t\t\t\t\"prefix\": \"\",\r\n\t\t\t\t\"access\": []\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"updatingNames\": false,\r\n\t\t\"modes\": [\"n\", \"t\", \"k foo\", \"l 5\"],\r\n\t\t\"created\": 1396133159,\r\n\t\t\"topic\": \"Channel Topic\",\r\n\t\t\"dataLoaded\": true\r\n\t}\r\n}\r\n```\r\n\r\nThe `nicks` array is only present for backwards-compatibility, you should use the `users` object instead of it. The nicks and access arrays have no guaranteed order.\r\n\r\nThe `updatingNames` property will be `true` if we have received at least one `353` numeric and no finishing `366` numeric.\r\n\r\nThe `modes` property is an array of channel modes. Modes which have a parameter (such as +k) include their parameter after a space.\r\n\r\nThe `created` property contains the UNIX timestamp of when the channel was created.\r\n\r\nThe `topic` property contains the channel's topic. It may be `false` if the channel has no topic.\r\n\r\nThe `dataLoaded` property is `true` if all channel data has been received from the server. This is used internally, although you may wish to check it to see if a channel's data is fully loaded yet.\r\n\r\nThe `channel` event will be emitted when this data has been populated. You shouldn't try to access a channel's data before this event is emitted.\r\n\r\n## options\r\n\r\nAn object representing the current connection's options, as defined in the constructor. The only properties that you should change are `autoReconnect` and `floodDelay`.\r\n\r\n## socket\r\n\r\nThe connection's socket object. You can use this if you need to do something that isn't exposed in other methods or properties.\r\n\r\n# Events\r\n\r\n## error\r\n- `e` - Error object\r\n\r\nSame as [net.Socket](http://nodejs.org/api/net.html#net_event_error_1) error event.\r\n\r\n## connect\r\n\r\nEmitted when a successful connection has been established to the server, but the IRC registration still needs to be negotiated.\r\n\r\n## registered\r\n\r\nEmitted when the client has been successfully registered with the IRC server.\r\n\r\n## disconnect\r\n- `error` - This parameter will be `true` if the disconnect was due to a connection error\r\n\r\nEmitted when the client disconnects from the IRC server for any reason.\r\n\r\n## rawline\r\n- `line` - A `line` object (see `Line Object` section below)\r\n\r\nEmitted when the client receives a line from the IRC server\r\n\r\n## irc-[command]\r\n- `line` - A `line` object (see `Line Object` section below)\r\n\r\nEmitted when the client receives a command from the IRC server. `[command]` will be the command received. For example, `irc-privmsg` will be emitted when a `PRIVMSG` is received. You don't usually want to listen for these types of events since most important ones have their own events.\r\n\r\nThere are two important cases to note:\r\n\r\n- `irc-ping` will be automatically caught and an appropriate `PONG` response will be sent, but this will be suppressed if you bind any listeners to this event. If you bind a listener to `irc-ping`, make sure that you send the appropriate `PONG` response using `bot.sendLine`.\r\n- `irc-error` will be emitted before the IRC server terminates the connection.\r\n\r\n## ctcp-[command]\r\n- `line` - A `line` object (see `Line Object` section below), with an additional `sender` property which is a `Sender Object`\r\n\r\nEmitted when the client receives a CTCP command from the IRC server. `[command]` will be the command received. For example, `ctcp-version` will be emitted when a `CTCP-VERSION` is received.\r\n\r\nThere are three important cases to note:\r\n\r\n- `ctcp-ping` will be automatically caught and an appropriate response will be sent to the sender. If you bind a listener to this event, the automatic response will be suppressed. Make sure that you send a response if you desire.\r\n- `ctcp-time` will be automatically caught and an appropriate response will be sent to the sender. If you bind a listener to this event, the automatic response will be suppressed. Make sure that you send a response if you desire.\r\n- Many IRC servers require clients to respond to `ctcp-version` requests. You may want to listen for this event and send an appropriate response (using `bot.ctcpReply`).\r\n\r\n## numeric\r\n- `line` - A `line` object (see `Line Object` section below)\r\n\r\nEmitted when the client receives any numeric reply from the IRC server. See [RFC 1459](http://tools.ietf.org/html/rfc1459.html#section-6) for an enumeration. Most clients display numeric replies to the client in a similar format as a `NOTICE`.\r\n\r\n## numeric[class]\r\n- `line` - A `line` object (see `Line Object` section below)\r\n\r\nEmitted when the client receives any numeric reply of a specific class from the IRC server. For example, a `433` reply will emit `numeric4`.\r\n\r\n## badNickDuringRegistration\r\n- `code` - One of `432` (indicating that the supplied nick contains invalid characters) or `433` (indicating that the supplied nick is already taken on the network)\r\n\r\nEmitted when the client receives a `432` or `433` numeric reply while registering. If no listeners are bound to this event, `node-internet-relay-chat` will automatically retry a different nick (a `432` reply will change the nick to `nodejs`, a `433` reply will append a `_` to the nick).\r\n\r\n## invite\r\n- `inviter` - A `sender` object corresponding to the user that invited us\r\n- `channel` - The channel we were invited to\r\n\r\nEmitted when the client is invited to a channel.\r\n\r\n## join\r\n- `user` - A `sender` object corresponding to the user (possibly us) that joined the channel\r\n- `channel` - The channel that the user joined\r\n\r\nEmitted when a client joins a channel that we're in. Also emitted when we join a channel.\r\n\r\n## part\r\n- `user` - A `sender` object corresponding to the user (possibly us) that parted the channel\r\n- `channel` - The channel that the user parted\r\n- `message` - The part message, if any\r\n\r\nEmitted when a user parts from a channel. This will not be emitted when a user in a channel that we're in quits from the server, is killed, or is kicked. Also emitted when we part a channel.\r\n\r\n## kick\r\n- `kicker` - A `sender` object corresponding to the user that did the kicking\r\n- `user` - The nick of the user (possibly us) that was kicked from the channel\r\n- `channel` - The channel that the user was kicked from\r\n- `message` - The kick message, if any\r\n\r\nEmitted when a user is kicked from a channel. This will not be emitted when a user in a channel that we're in quits from the server, is killed, or parts gracefully. Also emitted when we're kicked from a channel.\r\n\r\n## quit\r\n- `user` - A `sender` object corresponding to the user (possibly us) that quit the server\r\n- `channels` - An array of channel names that we saw this user in\r\n- `message` - The quit message, if any\r\n\r\nEmitted when a user in one of the channels that we're in quits from the server or is killed. This will not be emitted when a user in a channel that we're in is kicked, or parts gracefully. This will not be emitted when we quit.\r\n\r\n## mode\r\n- `changer` - A `sender` object corresponding to the user that changed the mode\r\n- `channel` - The channel (or user, if a user mode) that had its mode changed\r\n- `mode` - The mode(s) that changed\r\n- `args` - Any applicable arguments\r\n\r\nEmitted when a user or channel mode is changed. Note that `args` may be an empty array (if no args are applicable) and that `mode` may contain multiple modes.\r\n\r\nExamples:\r\n\r\n- Multiple users 'foo' and 'bar' voiced: `mode = \"+vv\"`, `args = [\"foo\", \"bar\"]`\r\n- User 'foo' voiced and user 'bar' deopped: `mode = \"+v-o\"`, `args = [\"foo\", \"bar\"]`\r\n\r\n## access\r\n- `changer` - A `sender` object corresponding to the user that changed the access\r\n- `channel` - The channel in which access was granted or revoked\r\n- `nick` - The nick of the user whose access was changed\r\n- `granted` - `true` if access was granted, `false` if it was revoked\r\n- `mode` - The access mode that was granted or revoked\r\n\r\nEmitted when a user's access (voice, halfop, op, admin, etc) is changed.\r\n\r\nExamples:\r\n\r\n- User 'foo' voiced in '#channel': `channel = \"#channel\"`, `nick = \"foo\"`, `granted = true`, `mode = \"v\"`\r\n- User 'bar' deopped in '#channel': `channel = \"#channel\"`, `nick = \"bar\"`, `granted = false`, `mode = \"o\"`\r\n\r\nIf multiple users' access is changed in a single MODE change, this will be emitted once for each user. Crazy stuff like +o-o foo foo will emit two identical events, although `granted` will be `true` and then `false`.\r\n\r\n## names\r\n- `channel` - Channel for which we just got updated names\r\n\r\nEmitted when the full list of nicknames in a `channel` is received. The array (with nick prefixes) can be accessed via `bot.channels[channel].nicks`.\r\n\r\n## channel\r\n- `channel` - The channel for which we now have data\r\n\r\nEmitted when a channel's full data is now available at `bot.channels[channel]`. See the `channels` property in the **Properties** section above for more information.\r\n\r\n## topic\r\n- `changer` - A `sender` object corresponding to the user that just changed the topic (see `Sender Object` section below)\r\n- `channel` - Channel whose topic just changed\r\n- `topic` - The channel's new topic\r\n\r\nEmitted when a channel's topic is changed. `topic` will be `false` if the topic was removed. The `topic` property of `bot.channels[channel]` will be updated after this is emitted, so you can get it from there to compare the old and new topics.\r\n\r\n## whois\r\n- `nick` - The nick of the user we received data for\r\n\r\nEmitted when numeric 318 (End of /WHOIS list) is received from the IRC server. The user's information may be accessed via bot.whoisData[nick]. It will contain the following properties, although some may be missing depending on what the server sends back:\r\n\r\n- `away` - False if the user is not away (or the server doesn't support 301) or a string containing the user's away message\r\n- `ircop` - False if the user is not an IRCOp, or true otherwise\r\n- `nick` - The user's nickname\r\n- `username` - The user's username\r\n- `hostname` - The user's address\r\n- `realname` - The user's real name\r\n- `server` - The address of the server they're on\r\n- `serverinfo` - Any information about the server that was sent\r\n- `idle` - Number of seconds the user has been idle (measured from last message sent)\r\n- `signon` - A timestamp representing when the user joined IRC\r\n- `channels` - An array of channel names. On most servers, the user's prefix will be prepended to the channel name (for example, if the user is an op on channel #foo, the entry will be @#foo)\r\n\r\n## pm\r\n- `sender` - A `sender` object corresponding to the user that sent the message (see `Sender Object` section below)\r\n- `message` - The message that was sent\r\n\r\nEmitted when a private message is received (one that is sent directly to the bot, not to a channel).\r\n\r\n## notice\r\n- `sender` - A `sender` object corresponding to the user that sent the message (see `Sender Object` section below), possibly `null` if it's a notice from the server\r\n- `recipient` - The recipient of the notice, either our nick or a channel\r\n- `message` - The message that was sent\r\n\r\nEmitted when a notice is received, either directly to us or to a channel we're in.\r\n\r\n## message\r\n- `sender` - A `sender` object corresponding to the user that sent the message (see `Sender Object` section below)\r\n- `channel` - The channel to which the message was sent\r\n- `message` - The message that was sent\r\n\r\nEmitted when a message is sent to a channel that the bot is in.\r\n\r\n## action\r\n- `sender` - A `sender` object corresponding to the user that sent the message (see `Sender Object` section below)\r\n- `recipient` - The recipient of the action, whether our nick or a channel\r\n- `message` - The text of the action\r\n\r\nEmitted when an action (/me) is received, either directly to us in PM or to a channel we're in.\r\n\r\n# Methods\r\n\r\n## connect()\r\n\r\nConnects to the IRC server using the options passed in the constructor.\r\n\r\n## quit([message, callback])\r\n\r\nQuits (disconnects from) the IRC server with an optional message. The callback will be called, if provided, when the QUIT command is sent.\r\n\r\n## sendLine(line, callback)\r\n\r\nSends a raw line to the server (parameter is a line object). Only use this if you know what you're doing.\r\n\r\n## sendRawLine(line)\r\n\r\nSends a raw line string to the server. This will be appended with `\\r\\n` automatically. This will bypass flood control. Only use this if you know what you're doing.\r\n\r\n## nick(newNick, [callback])\r\n\r\nChanges your nickname to `newNick`. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n## ctcp(nick, message, [callback])\r\n\r\nSends a CTCP message to `nick`. `message` should be the CTCP message to be sent, followed by any arguments. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n`nick` can be a string or an object containing a `nick` property (such as a [`Sender Object`](#sender-object)).\r\n\r\nAn example of a `CTCP-PING` request:\r\n\r\n```js\r\nbot.ctcp('McKay', \"PING\");\r\n```\r\n\r\n## ctcpReply(nick, message, [callback])\r\n\r\nSends a CTCP reply to `nick`. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n`nick` can be a string or an object containing a `nick` property (such as a [`Sender Object`](#sender-object)).\r\n\r\nAn example reply to a `CTCP-VERSION` request:\r\n\r\n```js\r\nbot.on('ctcp-version', function(line) {\r\n\tbot.ctcpReply(line.sender.nick, \"VERSION My Awesome IRC Bot v1.0.0\");\r\n});\r\n```\r\n\r\n## message(recipient, message, [callback])\r\n\r\nSends a message to a recipient. `recipient` should be either a nick or an object containing a `nick` property (for a private message), or a channel (for a channel message) starting with the appropriate channel prefix. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n## notice(recipient, message, [callback])\r\n\r\nSends a notice to a recipient. `recipient` should be either a nick or an object containing a `nick` property (for a private message), or a channel (for a channel notice) starting with the appropriate channel prefix. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n## action(recipient, message, [callback])\r\n\r\nSends an action (/me) to a recipient. `recipient` should be either a nick (for a private message) or a channel (for a channel message) starting with the appropriate channel prefix. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n## join(channel, [key], [callback])\r\n\r\nJoins a `channel`, optionally using the specified `key`. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n## part(channel, [message], [callback])\r\n\r\nLeaves a `channel` with an optional `message`. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n## mode(channel, modes, [callback])\r\n\r\nSets or unsets `modes` on a `channel`. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n`modes` should be a string representing the modes to +set or -unset, followed by any applicable args with appropriate spacing.\r\n\r\nExamples:\r\n\r\n- Set a channel's key to \"foo\" and unset it as moderated: `modes = \"+k-m foo\"`\r\n- Op a user named \"foo\": `modes = \"+o foo\"\r\n- Disable colors in a channel: `modes = \"+c\"`\r\n\r\n## kick(channel, nick, [message, callback])\r\n\r\nKicks a `nick` from a `channel`, with an optional `message`. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n`nick` can be a string or an object containing a `nick` property (such as a [`Sender Object`](#sender-object)).\r\n\r\n## ban(channel, user, [flags, message, callback])\r\n\r\nBans a `user` from a `channel`. `user` must be an object with the same structure as a [`Sender Object`](#sender-object). That is, it should contain, at minimum, properties for the user's `nick`, `username`, and `hostname`.\r\n\r\n`flags` should be one or more flags from [`IRC.banFlags`](#ircbanflags). If not provided, it defaults to `IRC.banFlags.host | IRC.banFlags.kick`. The optional `message` will be used as a kick message if `IRC.banFlags.kick` is set.\r\n\r\n`callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection). If `IRC.banFlags.kick` is set, this will be called after the `KICK` command is sent. Otherwise, it'll be called after `MODE` is sent.\r\n\r\n## topic(channel, topic, [callback])\r\n\r\nChanges the `topic` of a `channel`. `callback` will be called, if provided, when the command has been sent to the server (may be late due to flood protection).\r\n\r\n## updateChannelNames(channel)\r\n\r\nSends a request to the IRC server for the full list of nicks in `channel`. The `names` event will be emitted when the response is received.\r\n\r\n## whois(nick)\r\n\r\nSends a request to the IRC server for a user's information. The `whois` event will be emitted when the full response is received.\r\n\r\n`nick` can be a string or an object containing a `nick` property (such as a [`Sender Object`](#sender-object)).\r\n\r\n## userHasMode(channel, nick, mode)\r\n\r\nReturns `true` if a `nick` has an access `mode` in a `channel`, or `false` if we're not in that channel, the nick in question is not in that channel, or it doesn't have the access mode.\r\n\r\n`nick` can be a string or an object containing a `nick` property (such as a [`Sender Object`](#sender-object)).\r\n\r\nFor example, to check if a user named \"foo\" is an op in #channel, you'd pass `channel = \"#channel\"`, `nick = \"foo\"`, `mode = \"o\"`\r\n\r\n**Note:** If the user received this access mode before we entered the channel and their highest mode when we last got NAMES (which was when we entered the channel unless you called `updateChannelNames`) was higher, this will return `false`.\r\n\r\nFor example, user \"foo\" received +ov before we entered the channel, so they were a voiced op. When we entered, we only saw @ so we only know them as an op. If they have since been set -o, we don't know about the +v mode so we think that they have no access at all.\r\n\r\n# Line Object\r\n\r\nMany methods and events take or provide line objects. A line object is simply an object representing a line that is sent to or received from an IRC server. It has the following properties:\r\n\r\n- `command` - The command to be performed\r\n- `args` - An array of arguments\r\n- `tail` - A message to go with the command\r\n\r\nFor example, here is a typical `PRIVMSG` line:\r\n\r\n```text\r\nPRIVMSG #channel :Hello, World!\r\n```\r\n\r\nThis would parse into:\r\n\r\n```js\r\n{\r\n\t\"command\": \"PRIVMSG\",\r\n\t\"args\": [\"#channel\"],\r\n\t\"tail\": \"Hello, World!\"\r\n}\r\n```\r\n\r\n# Sender Object\r\n\r\nMany mehods and events take or provide sender objects when referring to users. Sender objects are created by parsing hostmasks.\r\n\r\nHere is an example hostmask: `Nick!username@hostname.myisp.net`\r\n\r\nThis would parse into:\r\n\r\n```js\r\n{\r\n\t\"hostmask\": \"Nick!username@hostname.myisp.net\",\r\n\t\"nick\": \"Nick\",\r\n\t\"username\": \"username\",\r\n\t\"hostname\": \"hostname.myisp.net\"\r\n}\r\n```","versions":{"1.0.1":{"name":"internet-relay-chat","version":"1.0.1","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.1","dist":{"shasum":"6ac8263591ed2ecef501f5b47a2c86d885eb0cd4","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.1.tgz","integrity":"sha512-ScfB2VZjzRts1sZ4PPKDa1EERWt8z3XKqZd6Cp/cCecbTyecgh067pcXFBYv7gM8PyGRUbLL1wP3cxFBOtcoyg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiS480TXEfoI44MVDLCL+RAYaUtmYh6Lfntv5XaEFF0QIgQVOCXam7SR1nkGx4hqh1C0qAWJEvqsI7o7nUt+/ax24="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.2":{"name":"internet-relay-chat","version":"1.0.2","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.2","dist":{"shasum":"5f2400aae201a72d55ecc2e8887ef52b48bfb1a9","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.2.tgz","integrity":"sha512-twehzHxEbLpjEGiSbKQIPIQI3LWNk71yexK8R7pMf57Ikfnp7OTBV6usSTLGEOs6csT57qoaaej9PuERkNLgIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHfWXoo1lYDCbYa4UI645nu+gAW7vMmJKzWyJJET19yJAiBtKcH4WnDGoyHEJK5KMFRZFDK4+GV/4XoHsKnNFk9TwA=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.3":{"name":"internet-relay-chat","version":"1.0.3","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.3","dist":{"shasum":"f621c4a74d0958be28e1092a749da29ec36474b3","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.3.tgz","integrity":"sha512-kVpBdrw27fmuEjCRNu2yO5c/fvzdnrY9qby4pzh41JVPY1eyXJtI9xAaSAwJBFHSbvmy39q0ERMZwTS7w6JY1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+mrhoDabhGKMaSxt33yE3SdDzwNzx0BEWp0L9sJydYQIhAMj2C4YeMF3j4LRCcRqITrpYAyikmeakwLp1NMaLapTj"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.4":{"name":"internet-relay-chat","version":"1.0.4","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.4","dist":{"shasum":"879bd8bfcf5c67469e3f85b37ff94c5350ee4b09","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.4.tgz","integrity":"sha512-eBO/4tYOJhPXvm7uux3ZtmiuMl68z2IIIXbvJzMTRzk95OwGHPI48P/sz7pTtaTxaGpJVrz0dHcVNiJRhL0iBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFMrD+sUi7iwlQwRs8/xnIZvhYqwI+PW2+vMG9xeXNT1AiEAqP2+pNRHuZB0h+97n5FIBLGko3Xa+N3eu8t0RjIDynk="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.5":{"name":"internet-relay-chat","version":"1.0.5","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.5","dist":{"shasum":"ba37957df36a758372c53f473067cfbff071baab","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.5.tgz","integrity":"sha512-ob/RbVYUkSO3yjy9ddwDBPH/GVeLywxQinDoEXci6yQhAEya6CSJpqLB82GU04vCzen+gxJ+DqdxSwr6a/eNbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqfJIBHT9o+q4hh7qubj4NGmhwqF7S5jhw5FT789ERqQIgEtz9wwWjP33p8uYalBaRGpALu6i3iinlCHI2arIDOw8="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.6":{"name":"internet-relay-chat","version":"1.0.6","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.6","dist":{"shasum":"c498e8af19a370f636e23fa7ccde4c6e56431fad","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.6.tgz","integrity":"sha512-p/jynfnh/SEs6kFhBHF1LgF41nug96nx/Fu7aLJjrQZVLCnvaJXUIkI1D8CXtvWij06A8UosH5Ryb84AHxXX3Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrY/EfU2et6hdrHP/JD4RBLJIJPoYWo9nXfhXE5R4AnQIgT78fAN0KivaUZ4zL5VSaQlZ+H5DsEEg2uEKxit1hkwU="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.7":{"name":"internet-relay-chat","version":"1.0.7","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.7","dist":{"shasum":"9f7515e2ae7ce9714fb25d8ecfa1d1d8cd3c69c0","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.7.tgz","integrity":"sha512-l6RH+iKh/1nSLaRtDumrak59a2xoagCvo2fUupjNiiCt5Awx4OdC/wU2BQF0xKiXuaYIvvRdoFpKE6aIpfS9hQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDE2i2Q9RMQ3ydBbVdsc1M86P42zOu+EKxQgQqxHSApoAiB6cKpIGmTwraZKxjwKjjuFD2ArPbYXWYsfYoWu8weMew=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.8":{"name":"internet-relay-chat","version":"1.0.8","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.8","dist":{"shasum":"61005bacbc6210fc4897af27967782d1cea10762","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.8.tgz","integrity":"sha512-v8hrYtX8M1o+yTXDfqQF44CsNa5q1NqcTFSB/9VAD+mxuV2Kynuzecda/N0gNVwsEEMINWK6mUGi8PA/HYFkhg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClPiec55OmfF+Yy/fqUm7R57EraKSFwn176zTdUcURJAIhAI4o1d/q7gkMmxzzHhh5MunXqy3SB1W1A+y5GvSmDoGm"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.9":{"name":"internet-relay-chat","version":"1.0.9","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.9","dist":{"shasum":"0fc835337199b33d939afae3dff0b0468cb0ede4","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.9.tgz","integrity":"sha512-EtoepvuRUixzTgAV+NhfNn0DeS6fdKLUY7FS5MierfoA1hvl59OjRguSjcll2X4u9ECjk33FNsRvqlj3mjjnkg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDycoIMfvWPzvG/jLYjDXlAvacnO4oBs0X29IeqgUyI+gIhAJFT9y2EUEWUmsZgACWqc1uoLIFGmkHVpqU13iPXYwE9"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.10":{"name":"internet-relay-chat","version":"1.0.10","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.10","dist":{"shasum":"d7ebebdc7ea32665730b849e0d3b1a54f13b5142","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.10.tgz","integrity":"sha512-dYK2/aGhdS8Zbqv8Im8JnPDQXZWWK/TqW9c0Pwax/KGTE1lCsvKhTw1iV/gbAG0beEcE+V7hY3s39mhAWFJ3AQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDN022TDm+CZB5r6ou3YWcw10hKa5dq6NqPVWL8cBKa/wIgNtsGnfuSED+c+uawmj8KZYJCdk1+QDR0QdRBBB92P3Y="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.11":{"name":"internet-relay-chat","version":"1.0.11","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.11","dist":{"shasum":"58e10f3560a824573aa3a16bbe99e580547374d0","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.11.tgz","integrity":"sha512-vpwWKAtWA+u8F7Q5BBMY2OByo1/o2euASlcKQ3HfH0wVGoGgVldlPb6NSV8clbpYPnA7Jvxa2e+MivpH2o5+WQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCr+QFVmvNJaOiC1F4s64mKAUqmMNsTYf34ZrpRfYNcKwIhAI41OaaKZ97Bke/eV1jUhe/kZpQuI/mmD5MtxSV41Z84"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.12":{"name":"internet-relay-chat","version":"1.0.12","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.12","dist":{"shasum":"e42354e3eebeed686478e48849f820c3248191f0","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.12.tgz","integrity":"sha512-ictHuTSwUB391mb0mv5LYZ0M17YQF8wjqrUyA/uTtMywaHH4JeCVwPSqzMFfC53T2BGSFy5WUtj0I34pJbH5nA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuyWtDFOgpx6ax4lQgpkokxapoT3NLEYso7bbA5sD34AIgNk/oPN+hvH9ZCI/2dFK7tlDwKM4+EWTZrIBnaL8l6mc="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.0.13":{"name":"internet-relay-chat","version":"1.0.13","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.0.13","dist":{"shasum":"8e2b130cce68948806dbf90c4de3b33090ef0ab5","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.0.13.tgz","integrity":"sha512-ctA69BlNcMZCWXdX4kC1F9wozp/NTskMLpB/NCnxFju/mcj9wlv3imnW7XUY5oTAnxXndnM3VsPcuJiwA2gSSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFJb1dSNWW0Fot4dJnZ6X63n78QssxLgBW4jFmIJxFy9AiEAvVS5BY6csQOclLKXa0uj127FQoUI2IRRruzSMjYgSJU="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.1.0":{"name":"internet-relay-chat","version":"1.1.0","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.1.0","dist":{"shasum":"e3950acaf299d825dfdcc0d6507a6996ea88b8a1","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.1.0.tgz","integrity":"sha512-uT3KgdjSw+QUHb9JMxgqv2XRRksAfoy1+6MA3SeZTQjhULWzshmimR+sogijECFmtUx+hPtHYM0zWlo9c6auvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCy1ah6EinCO73FJZ8rFHL6eWzb7yehYQgAV+dzk8yI3gIgbnh4QImC0Fiy1MAztYE2WSmfw2jqWRr1TnSrk0eUFQE="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.1.1":{"name":"internet-relay-chat","version":"1.1.1","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.1.1","dist":{"shasum":"bb8b60887c884ee4380b3a69f7820af30747b314","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.1.1.tgz","integrity":"sha512-Rp9TdR7if0qifTKv+fAt2ChaeHc30nhEJJ2tb96/nyfx7gBv+qLpL5T266vq0IC6JZZO//WV65QeWfkeftjMVA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsjlQY2kHI0+UkYsMRmhWmMpPs28D5g4YXPWIBRAEljAIgFfzU19/ftC5uBJNcjhhX3RJxuU8X0zybjXpMiDxvQeI="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.1.2":{"name":"internet-relay-chat","version":"1.1.2","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat","bugs":{"url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"hg","url":"https://bitbucket.org/Doctor_McKay/node-internet-relay-chat"},"_id":"internet-relay-chat@1.1.2","dist":{"shasum":"3d44fd6845af54e4eb9915fcaf04d6c3bf3634bb","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.1.2.tgz","integrity":"sha512-VKU7Bdrt7FEotGfiRQXDb6bicj8Yc7oMmW4V08mhncbXijmdl/VzgL2EkAAuIAlMQk3vugV5f7mxrIXLx50n4Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICa2B/IOlSXTC+r+IBxBbLw7N/WyimcxlnJvbLuJ4P4jAiAB+g9yzsN6vRdOR98SmhCEQ01xNuJspeMoMfWFJadTyA=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.1.3":{"name":"internet-relay-chat","version":"1.1.3","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://github.com/DoctorMcKay/node-internet-relay-chat","bugs":{"url":"https://github.com/DoctorMcKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"git","url":"https://github.com/DoctorMcKay/node-internet-relay-chat.git"},"_id":"internet-relay-chat@1.1.3","dist":{"shasum":"cde178803d7ea0e7f257269ae9152e7a4a9e180f","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.1.3.tgz","integrity":"sha512-1IyNZcKRlewjizG+KQTrSya0dPE754o0tdvOmntCRqUwc/WY3qbgk6gg/4qydUdU6mvtS0shz0FiVNErmlVIpA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuenWREb+BvtghaHqJpD5ASgG5IQmoTTG9o1/eKJbaHQIhAKLsEvoPPOVfQVICCp52Mp9yVNj5IhEtRLSNWZM1wbFe"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.1.4":{"name":"internet-relay-chat","version":"1.1.4","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://github.com/DoctorMcKay/node-internet-relay-chat","bugs":{"url":"https://github.com/DoctorMcKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"git","url":"https://github.com/DoctorMcKay/node-internet-relay-chat.git"},"_id":"internet-relay-chat@1.1.4","dist":{"shasum":"ed29c4a638b63cc2ea557498e9d4aa8ba54c6a14","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.1.4.tgz","integrity":"sha512-5034Wl7ZBigCotInKJ770DTF6DJR/9ontRxu/YezdumqltTvWsuMyUzYMlMjzlW23uvV1eE72ervZhpg0HZVjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCawZJ89swes5nu4xbOuqJG+c6X/QMgTm2zt9AIT7eL+AIhAJPzCzn0IjeOEndfPVvauDhl2NUY3Zax5nVadzTO5PjY"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.1.5":{"name":"internet-relay-chat","version":"1.1.5","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://github.com/DoctorMcKay/node-internet-relay-chat","bugs":{"url":"https://github.com/DoctorMcKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"git","url":"https://github.com/DoctorMcKay/node-internet-relay-chat.git"},"_id":"internet-relay-chat@1.1.5","dist":{"shasum":"2302d177533757fc562be74c918a45a4af42a8a9","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.1.5.tgz","integrity":"sha512-kk+JLgZboVWQhkqw3O0qXAy0oEMvFW6ktD2GKHUDPJ59JhL2nAWwdZx3qyh8Siheo2q2Rvzw0GW6zfM7RmInXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICF/Z8yMNXUwBdDHcVK+umqu0gpDNhuBnh/h1e4rxbOrAiEA9zL9YnqgODshi8L9sTwkNDkmacDo1XFjT7ljG0NTKWs="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]},"1.1.6":{"name":"internet-relay-chat","version":"1.1.6","description":"Provides tools to connect to and interact with IRC servers","keywords":["irc","chat","internet relay chat"],"homepage":"https://github.com/DoctorMcKay/node-internet-relay-chat","bugs":{"url":"https://github.com/DoctorMcKay/node-internet-relay-chat/issues"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/DoctorMcKay/node-internet-relay-chat.git"},"gitHead":"d65a1c22e1ae12582cb377641645e142dad93cd6","_id":"internet-relay-chat@1.1.6","scripts":{},"_shasum":"88ac1322764c810b1bdb0efa6ecd98428f9da52a","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"doctormckay","email":"mckay@doctormckay.com"},"dist":{"shasum":"88ac1322764c810b1bdb0efa6ecd98428f9da52a","tarball":"https://registry.npmjs.org/internet-relay-chat/-/internet-relay-chat-1.1.6.tgz","integrity":"sha512-yvrCJ/SgO3KXvcZEpTsprm+btUWAXse6E8/AoeluolP8V0VKVAEnbVlJZqKGJO+FTb4ubvbm7mjdAMzppvRtiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAEa59UKD+LTMX9KnJks9c4cvDSTGszmFIUiHGgSPBhYAiBSWaLDgPnjn66jC8dgPAYEcrx3eaLIed93jo69DT8mdg=="}]},"maintainers":[{"name":"doctormckay","email":"mckay@doctormckay.com"}]}},"dist-tags":{"latest":"1.1.6"},"readmeFilename":"README.md","homepage":"https://github.com/DoctorMcKay/node-internet-relay-chat","keywords":["irc","chat","internet relay chat"],"repository":{"type":"git","url":"git+https://github.com/DoctorMcKay/node-internet-relay-chat.git"},"bugs":{"url":"https://github.com/DoctorMcKay/node-internet-relay-chat/issues"},"license":"MIT","users":{"efreak":true}}