This repository was archived by the owner on Sep 10, 2024. It is now read-only.
Releases: Throne3d/node-irc
Releases · Throne3d/node-irc
v0.11.0
Forgot to publish this tag in GitHub earlier, sorry!
Changes:
- Drop support for Node 6
Misc:
- Update dependencies (fixing
npm auditvulnerabilities):- irc-colors to ^1.5.0
- chardet to ^1.2.1
- iconv-lite to ^0.6.2
- plus a lot of devDependencies
- Reduce use of .hasOwnProperty called on objects
- Remove Greenkeeper
- Move from Travis CI to GitHub Actions
v0.10.0
Fixed bugs:
- Fix character set detection by using node-chardet instead of jschardet – fixes #59
Misc:
- Test on Node 10, and no longer on Node 4
- Use Greenkeeper for keeping dependency versions up to date
- Add tests to ensure the character set conversion code works (with dependencies) on various test data, instead of just checking it uses stubbed dependencies
- Fix deprecation warnings on Node 10 around using the
Buffer()constructor - Update sinon to ^6.0.0
- Update nyc to ^12.0.1
v0.9.0
New features:
- Use iconv-lite and jschardet instead of iconv and node-icu-charset-detector to detect and convert encodings, to reduce errors when trying to install previous optional dependencies – fixes #53
- Allow
/and?to appear in non-strict-parsed usernames – fixes #55 and implements #56 - Add 379 RPL_WHOISMODES, 335 RPL_WHOISBOT, 307, and 671 RPL_WHOISSECURE to recognized list of codes – fixes #47, #48, #49 and #50
Misc:
- Test on Node 9, and no longer on Node 5 and 7
- Update mocha to ^5.0.0
- Update proxyquire to ^2.0.0
- Fix deprecation warning for sinon's
.reset()
v0.8.1
Fixed bugs:
- Fix
.joinwith channel keys (passwords) – this broke as a result of the previous change to accept comma-separated lists of channels - Make the automatic joining of
opt.channelschannels use the internal.joinmethod, so channel keys can again be handled properly - Fix matching channels when adding to or removing from
opt.channelsautomatically (on.joinor.part), especially around channels with channel keys or different casing
Misc:
- Tests: Upgrade
mochadependency to^4.0.0 - Tests: Fix never-ending tests by manually disabling the flood protection interval when the client is used up
v0.8.0
Breaking changes:
- The
unhandledevent must not be used to catch specific events – userawfor that instead. It should be used to handle explicitly events the bot does not do anything with, such as by notifying the user that such an event has occurred - Errors in the
rawevent no longer throw, but are caught and passed to theerrorevent. As in the documentation, this may still throw if no handler is bound to this event - The
.joinand.partmethods no longer accept space-separated lists of channels; this caused the bot to send invalid commands to the server. Instead, use comma-separated channel lists, and then the callback will be called for each channel as in the documentation EventEmitteris now used directly from the require (i.e.var EventEmitter = require('events'), whereas previouslyvar EventEmitter = require('events').EventEmitter). This fixes a bug with an atom project using the unforked node-irc version (relevant pull request) but may break compatibility with old versions of node (0.x versions, as those are no longer tested against)
New features:
- Add
irc.canConvertEncoding()(aliased toclient.canConvertEncoding()) to test if the library can convert different encodings with the libraries it's located - Add support for
JOIN 0(which, in the IRC spec, parts from all channels) - Handle SASL better: use the IRCv3 spec, and if the server does not support SASL, emit on the
errorevent – fixes part of #38
Fixed bugs:
- Ensure the
debugconfig option causes the client not to output when disabled – fixes #34 - Stop renicking properly when
renickCountis hit. Previously it would renick to a second nickname and then continue the renicking process – fixes #41 - Handle code
378on join – fixes part of #38 - Ensure
client.actionsplits long messages properly (that is, it still wraps long lines in the CTCP action markers) - Ensure the bot disconnects immediately after programmatically calling
activateFloodProtectionnow disconnects immediately like ifopt.floodProtectionis used - Store the data from
rpl_isupportin a way that represents its structure better (objects instead of arrays for key-value pairs, and consistently parse values as integers where applicable) - Emit the lowercase version of the
names#channelevent when#channelis mixed-case - Clean up the automatic reconnection to the server when manually calling
client.disconnect() - Trigger the callback to
joinandparteven if the server channel differs in case from the one passed toclient.joinorclient.part
Misc:
- Add copyright notice to
lib/irc.jsper fork - Update various dependencies (
coveralls,nyc) - Docs: Move the 'character set detection' instructions to their own section of the README
- Docs: Mention the Gitter chat under the 'Further Support' section of the README
- Docs: Add test coverage badge to README
- Docs: Reorder config options and add descriptions for missing items – fixes #33
- Docs: Improve presentation by marking things in inline code tags, instead of italics
- Docs: Clarify that
client.activateFloodProtectionshould only be called once per instance, not once per connection - Docs: Fix typos especially around new inline code blocks
- Tests: Overhaul the whole testing system from
tapetomocha - Tests: Improve the
test.jsirc client REPL - Tests: Add tests for a lot more of the code – this takes our coverage up from 62.614% to 94.334%! (#29)
v0.7.0
New features:
- Add auto-renick functionality, to renick to config nickname if the bot receives an
err_nicknameinuseevent and theautoRenickconfig option is enabled (relatedly: add acancelAutoRenickmethod) – fixes #15 - Disallow
connect()when already connected (output to stderr and ignore) - Likewise disallow
disconnect()when already disconnected - Add new
unhandledevent for when a message is received that isn't handled internally (not handled otherwise, not recognized as an error) - Debug when line received from server
- Debug on ping timer start and stop
Fixed bugs:
- Flag code 477 as an error (
ERR_NOCHANMODESorERR_NEEDREGGEDNICK, not given a human-readable name due to ambiguity) – fixes #19 - Only autorejoin when the client itself is kicked; add tests for autorejoin
- Emit the
errorevent after the output more consistently - Add test for strict parsing mode
- Add test for CyclingPingTimer
- Reduce chance of random failure in tests (by not initializing a server when we disconnect the client without any server interaction)
- Debug CyclingPingTimer to stdout instead of stderr
- Run linting in
posttestphase
Misc:
- Add code coverage using
nycandcoveralls - Rename
test-433-before-001totest-nickinuse-before-welcome; move some fixtures into the test itself - Reword some tests, add skeleton for more tests (hopefully these will be implemented soon)
- Docs: Update CONTRIBUTING.md to reflect fork
- Docs: Reorder events and methods in documentation to hopefully be more relevantly grouped
- Docs: Update
whoisexample - Docs: Clean up some comments in the code
- Docs: Add
netErrorevent (emitted when the socket connection to the server emits an error event – see net.Socket for more details) - Docs: Fix some typos
- Docs: Reorder config options to have the order match between the object and the later paragraphs
v0.6.2
Fixed bugs:
- Fix reconnection by destroying the connection only when properly closed (and add a test for this)
- Guard an error from showing when
showErrorsis false; relatedly use an 'out' object for error and debug messages to be less repetitive with guarding based on config values - Latest changelog version links now point to the right repository
- Docs: fix formatting of a RFC2812 link
- Remove unused jscs devDependency
Misc:
- Make the 'non-latest' message (hopefully) less confusing, only show in debug mode
- Update tape to ^4.7.0
- Update eslint to ^4.2.0
- Docs: clarify example message is an example
- Docs: be consistent with phrasing around boolean config values
- Add Node 8 to Travis builds
v0.6.1
v0.6.0
This is the first version of a fork to the project.
It attempts to address some of the more major issues with the original version.
It is also the first version to stop testing against node.js 0.10 and 0.12.
Implemented enhancements:
- Upgrade dependency tape
- Switch to eslint instead of jscs for linting, now jscs is no longer maintained
- Support Japanese and Korean characters in nicknames, and add a corresponding option,
enableStrictMode, to switch back to the more RFC2812-compliant parsing mode - Improve documentation; fix up some typographical errors, ensure code blocks parse correctly, improve some descriptions and add the
passwordoption to the options object
Fixed bugs:
- Keep track of users in each channel better, so the quit, kill and nick events are only passed the relevant channels.
- Split lines by byte instead of character, so line splitting with higher Unicode codepoints (e.g. CJK characters) works
- Prevent tests from hanging by properly disconnecting the client (and stopping the ping timer) when the 'close' event is received
- Related to the above, do not respawn a connection when receiving the 'close' event if the connection is not the current connection (as it has presumably been abandoned)
- Only send messages when the bot's connection is available, to prevent a crash when messages are queued and the connection ends