- npm release is missing build files
- Node versions below 16.0.0 aren't supported anymore
- add gecos: expose custom message to other clients in the "real name" field (WHOIS).
- add version: expose xdccJS version (or custom message) in the "version" field (WHOIS).
-
new XDCC({
// ... host, port, etc..
gecos: 'Most client call this field "real name" but meh..',
version: 'mIRC 6.35'
})
- add eta to the 'downloading' event
-
xdccJS.on('downloading', (fileInfo, received, percentage, eta) => {
console.log(`${eta} ms remaining`)
})
- throttle parameter was ignored in some edge cases
download()
throttle's option was treated as Bytes instead of KiB
- revert to npm
- update eslint config
- add throttle/ipv6 status to
Job.show()
download()
throttle's option was treated as Bytes instead of KiB
xdcc.download
's ipv6 parameter must be passed through an object: xdcc.download('bot', 1, { ipv6: true })
- add per download throttle:
xdcc.download('bot', 1, { throttle: 1000 })
- download's throttle can be applied on top of global throttle
xdccJS.config({ throttle: 5000 })
await xdccJS.download('BOT-A', 1, { throttle: 500 })
await xdccJS.download('BOT-A', 2, { throttle: 1000 })
await xdccJS.download('BOT-B', 1)
// BOT-A packet 1 and 2 is throttled at 1000 (latest value)
// BOT-B throttled at 5000
xdcc.irc
is no longer needed and accessible, methods and event are directly embed into xdcc
- throttle doesn't affect bandwidth
- change units (KiB, MiB, GiB, etc..)
- add
xdcc.config()
- change/access parameters during runtime
- access irc-framework methods and events
xdcc.irc.join('#lol')
-> xdcc.join('#lol')
- check user's parameters beforehand
- add option to throttle bandwidth
- update dev dependencies
- update readme
- fix potential security threat: Prototype Pollution in JSON5 via Parse Method
- ensure timeout is always in seconds
- alpha support for ipv6 downloads: parameter is only required for bot using both passive dcc and IPv6
- move is() function back as a static class function. Partially revert 7233135
- fix post publish hook interrupting each others on error
- add lint to package scripts
- option
bot-name-match
not working: change bot-name-match
option to no-bot-name-match
- option
no-insecure
not working as intendend
- supercharge function parameter for typechecking
- remove unused generated doc
- re-fix buffer downloads getting aborted randomly or at 99.99% completion
- fix buffer overflow error for files between 2.1GB and 4.3GB
- fix downloads getting aborted randomly or at 99.99% completion (see issue#503)
- fixed typo
- add
nickServ
parameter to authenticate with NickServ (password only, use nickname as login)
- add option
--nickserv
to authenticate with NickServ (password only, use nickname as login)
- add option
-t, --timeout
- only print bot messages directly addressed to you (message sent to channels are ignored)
- transfert timeout duration is no longer fixed to 10 seconds, use
timeout
parameter instead
- fix/handle
write ECONNRESET
errors when bot disconnects without sending a "FIN" packet
- accept alphanumeric tokens (ctcp negociation)
- add
message
event to jobs
- messages sent by the current job's bot are printed out
- add
queue
constructor parameters (CLI: --queue
) which expect a regex to detect if the bot has moved you to a queue
xdccJS --host "irc.server.com" --bot "SOME_BOT" --download "1-100" --queue "/download(.*)\d+\sout\sof\s\d+\/gi"
# will match strings like : download "[somestuff] some files.pdf" pending, 10 out of 30
params.queue = /download(.*)\d+\sout\sof\s\d+\/gi
- crashing when running in a non-TTY environment
- download bar not rendering new lines when a download is interrupted
- cancel message/event wasn't triggered if there was no active downloads
- add option to allow/reject connection on TLS enabled server with self-signed certificates
- CLI user can use the
--no-insecure
option to enable this feature.
- remove parameter
--no-secure
that allowed downloads if the bot's name did not match the requested
- add parameter
--bot-name-match
to block downloads if bot's name does not match the requested
- renamed parameter
secure
to botNameMatch
to avoid confusion with tls
- optional parameter
tls
is no longer a boolean
params.tls = {
enable: false, // required
rejectUnauthorized: false // optional - default false
}
- Job.cancel() is now always defined
- Job.cancel() wasn't sending "XDCC CANCEL" message
- clear connection timeout on download start
- fix download timed out when connection to bot is unstable
- moved download timeout outside condition: since 4.4.14 the "no data" timeout was moved in a condition which wasn't reached at the end of the download
- replacing
node-fetch
dependency with axios
- fix download randomly failing: closing
passthrough
too early.
- fix rashes caused by
getIp
function not working as intended and improve reliability by checking with multiple sources
- fix crashes caused by
progressBar
not being imported properly
- fix issue within commonjs context
- remove
public-ip
- add "custom"
getIp
function
- fix automated releases on npm
- update discord bot to new API
- use of
import type
instead of import
when necessary
- better typing:
- add export for interfaces
Candidate
- add export for class
Job
- add export for typed events:
GlobalMessageEvents
and JobMessageEvents
- add
job.isDone()
to README
- remove unused imports
- fix wrong indents
- add
typed-emitter
dependency
- xdccJS now requires node >=14
- checking if host and port were valid was interpreted as flood on some servers 70e125d6
- add type definitions for events f2f55850
- Fix
Job
not importing, Job
is no longer exported as a namespace. use: import Job from '/'
bd0b3b28 (thanks to @Firstus report)
TypeError
had a wrong message when Constructor.tls
type wasn't boolean 863b4fac
- fix connection to server being refused because of default username (credit: @TheFlashBold) 448e7786 cfd4101a
- remove JobError.message emojis, padding and fancy colors 0f2e50bb
- Simplified explanation about profiles e5b3c9ce
- bump axios from 0.21.1 to 0.22.0
- bump commander from 8.1.0 to 8.2.0
- bump discord.js from 13.1.0 to 13.2.0
- bump eslint from 7.32.0 to 8.0.0
- added eslint plugin import/typescript 2.24.2
- bump mocha from 9.0.3 to 9.1.2
- bump pkg from 5.3.1 to 5.3.3
- bump ts-node from 10.2.0 to 10.2.1
- bump typedoc from 0.21.6 to 0.21.6
- bump typescript from 4.3.5 to 4.4.3
- bump @types/chai from 4.2.21 to 4.2.22
- bump @types/lodash from 4.14.172 to 4.14.175
- bump @types/node from 16.6.1 to 16.10.3
- bump @typescript-eslint/eslint-plugin 4.29.1 from to 4.33.0
- bump @typescript-eslint/parser from 4.29.3 to 4.33.0
- ⚠️
xdccJS.download()
is now asynchronous a1d170b1
- Notice user when hostname is unreachable bd452d5a
- Emit
error
event instead of throwing b0ad1413
- Fix
error
events being too ambiguous 0bf3ffc8
xdccJS.on('error', (err) => { } )
IRC errors ONLY
Job.on('error', (msg, fileInfo) => {} )
Job errors ONLY
- Add irc-framework integration example 6faf356e
- Add pkg to dev-deps
- Remove unused dotenv-manipulator
- bump @types/node from 16.4.10 to 16.6.1
- bump @types/lodash from 4.14.171 to 4.14.172
- bump @typescript-eslint/parser from 4.28.5 to 4.29.0
- bump @typescript-eslint/eslint-plugin from 4.29.0 to 4.29.1
- bump ts-node from 10.1.0 to 10.2.0
- bump discord.js from 12.5.3 to 13.1.0
- Prevent xdccJS to indefinitely tries to connect to an unreachable host. e9135ea1
- Fix a bug introduced in v4.2.6 where parameter
verbose
wasn't optional d0e61f24
- Profiles not loading 02371574 issue#238
--save-profile
without argument was creating a profile named true
which wasn't interpreted as a string 61d382e0
--delete-profile
, --save-profile
and --set-profile
now require an argument
- piped downloads via CLI are working again d90c160b
- added an extra verbose notification when a job is complete with the list of all packages that failed #236
- changed profile location to user's home directory, some (linux) users couldn't save profile due to invalid write permission #237
- warn user if multiple profile option are used in the same command #237
- downloads cannot be triggered if
--save/set/delete-profile
is set #237
- bump @types/node from 16.4.7 to 16.4.10 #231
- bump typedoc from 0.21.4 to 0.21.5 #232
- bump @types/node from 16.4.7 to 16.4.10 #233
- changed keyword for skipping ci to
[ci skip]
c252f207
- changed dependency update check interval from daily to weekly 4da55709
- Unicode characeters not showing up in some cases #230 (lib+bin)
- Documentation still mentioning
--server
while its been replaced with --host
#230
- Added a rollbar next to download message #230 (lib+bin)
| [=== ] ETA: 10s @ 7.75 MB/s - 50%
/ [=== ] ETA: 7s @ 7.75 MB/s - 60%
- [==== ] ETA: 8s @ 7.75 MB/s - 68%
- etc..
- Removed some ununsed imports and variables from tests 8ef272c
- Added a
--quiet
option to xdccJS CLI
- NodeJS 16x not properly reading package.json
- Dependencies update (a lot)
server
option has been replace with host
(lib+cli).
nick
and username
option are replaced with nickname
(lib+cli)
- Fix bug with xdccJS CLI where nickname option wasn't applied if its lenght was more than 6 characters
- Added a fileInfo typescript interface
- Added a
downloading
event typescript definition
- removed old compilted file from src folder
- Added a 'downloading' event
- MAJOR FIX : Download weren't started if
--wait
wasn't provieded
- Jobs weren't cancelable until they had a download ongoing (a103d1b)
job.cancel()
now totally empty a job's queue instead of just canceling the current packet (a103d1b)
- Filename is now displayed before download starts (1605b25)
- Download bar is cleared when it reaches 100% (PR#37)
- Add a secure option : deny/allow files sent by bot with different name than the one requested. (4de1f94)