# streamroller Changelog

## 3.1.1
- [fix: fs.appendFileSync should use flag instead of flags](https://github.com/log4js-node/streamroller/pull/141) - thanks [@peteriman](https://github.com/peteriman)

## 3.1.0
- [feat: tilde expansion for filename](https://github.com/log4js-node/streamroller/pull/135) - thanks [@peteriman](https://github.com/peteriman)
- [fix: better file validation](https://github.com/log4js-node/streamroller/pull/134) - thanks [@peteriman](https://github.com/peteriman)
- [chore(deps-dev): updated dependencies](https://github.com/log4js-node/streamroller/pull/140) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps-dev): bump @commitlint/cli from 16.3.0 to 17.0.0
  - chore(deps-dev): bump @commitlint/config-conventional from 16.2.4 to 17.0.0
  - chore(deps-dev): bump @types/node from 17.0.33 to 17.0.35
  - chore(deps-dev): bump eslint from 8.15.0 to 8.16.0
  - chore(deps): updated package-lock.json

## 3.0.9

- [fix: maxSize=0 means no rolling](https://github.com/log4js-node/streamroller/pull/131) - thanks [@peteriman](https://github.com/peteriman)
- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/132) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps-dev): bump @commitlint/cli from 16.2.3 to 16.3.0
  - chore(deps-dev): bump @commitlint/config-conventional from 16.2.1 to 16.2.4
  - chore(deps-dev): bump @types/node from 17.0.26 to 17.0.33
  - chore(deps-dev): bump eslint from 8.14.0 to 8.15.0
  - chore(deps-dev): bump husky from 7.0.4 to 8.0.1
  - chore(deps-dev): bump mocha from 9.2.2 to 10.0.0
  - chore(deps): bump date-format from 4.0.9 to 4.0.10
  - chore(deps): updated package-lock.json

## 3.0.8

- [fix: concurrency issues when forked processes trying to roll same file](https://github.com/log4js-node/streamroller/pull/124) - thanks [@peteriman](https://github.com/peteriman)
  - [refactor: use writeStream.destroy() instead](https://github.com/log4js-node/streamroller/pull/125)
  - [refactor: use isCreated variable instead of e.code='EEXIST'](https://github.com/log4js-node/streamroller/pull/126)
- [chore(lint): added .eslintrc and fixed linting issues](https://github.com/log4js-node/streamroller/pull/123) - thanks [@peteriman](https://github.com/peteriman)
- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/127) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps-dev): bump @types/node from 17.0.24 to 17.0.26
  - chore(deps-dev): bump eslint from 8.13.0 to 8.14.0
  - chore(deps): bump date-format from 4.0.7 to 4.0.9
  - chore(deps): updated package-lock.json
- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/119) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps): bump fs-extra from 10.0.1 to 10.1.0
  - chore(deps): updated package-lock.json
  - revert: "[chore(dep): temporary fix for fs-extra issue (to be reverted when fs-extra patches it)](https://github.com/log4js-node/streamroller/pull/116)"

## 3.0.7

- [chore(deps): temporary fix for fs-extra issue (to be reverted when fs-extra patches it)](https://github.com/log4js-node/streamroller/pull/116) - thanks [@peteriman](https://github.com/peteriman)
- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/117) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps): bump date-format from 4.0.6 to 4.0.7
  - chore(deps): updated package-lock.json
- [chore(deps-dev): updated dependencies](https://github.com/log4js-node/streamroller/pull/113) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps-dev): bump @types/node from 17.0.23 to 17.0.24
  - chore(deps-dev): updated package-lock.json
- [chore(deps-dev): updated dependencies](https://github.com/log4js-node/streamroller/pull/112) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps-dev): bump @types/node from 17.0.22 to 17.0.23
  - chore(deps-dev): bump eslint from 8.11.0 to 8.13.0
  - chore(deps-dev): updated package-lock.json

## 3.0.6

- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/110) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps): bump debug from 4.3.3 to 4.3.4
  - chore(deps): bump date-format from 4.0.5 to 4.0.6
  - chore(deps-dev): bump @types/node from 17.0.21 to 17.0.22
  - chore(deps-dev): bump @commitlint/cli from 16.2.1 to 16.2.3
  - chore(deps): updated package-lock.json

## 3.0.5

- [fix: added filename validation](https://github.com/log4js-node/streamroller/pull/101) - thanks [@peteriman](https://github.com/peteriman)
- [docs: updated README.md with badges](https://github.com/log4js-node/streamroller/pull/105) - thanks [@peteriman](https://github.com/peteriman)
- [docs: updated README.md for DateRollingFileStream](https://github.com/log4js-node/streamroller/pull/106) - thanks [@peteriman](https://github.com/peteriman)
- [docs: added docs for istanbul ignore](https://github.com/log4js-node/streamroller/pull/107) - thanks [@peteriman](https://github.com/peteriman)
- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/109) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps-dev): eslint from 8.10.0 to 8.11.0
  - chore(deps-dev): mocha from 9.2.1 to 9.2.2
  - chore(deps): date-format from 4.0.4 to 4.0.5
  - chore(deps): updated package-lock.json

## 3.0.4

- [test: remove test file/folder remnants](https://github.com/log4js-node/streamroller/pull/99) - thanks [@peteriman](https://github.com/peteriman)

## 3.0.3

- [fix: backward compatibility for RollingFileWriteStream to recursively create directory](https://github.com/log4js-node/streamroller/pull/96) - thanks [@peteriman](https://github.com/peteriman)
- [test: 100% test coverage](https://github.com/log4js-node/streamroller/pull/94) - thanks [@peteriman](https://github.com/peteriman)
- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/97) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps-dev): bump @commitlint/cli from 16.1.0 to 16.2.1
  - chore(deps-dev): bump @commitlint/config-conventional from 16.0.0 to 16.2.1
  - chore(deps-dev): bump @types/node from 17.0.16 to 17.0.21
  - chore(deps-dev): bump eslint from 8.8.0 to 8.10.0
  - chore(deps-dev): bump mocha from 9.2.0 to 9.2.1
  - chore(deps): bump date-format from 4.0.3 to 4.0.4
  - chore(deps): bump fs-extra from 10.0.0 to 10.0.1
- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/95) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps-dev): bump @commitlint/cli from 16.0.2 to 16.1.0
  - chore(deps-dev): bump @types/node from 17.0.9 to 17.0.16
  - chore(deps-dev): bump eslint from 8.7.0 to 8.8.0
  - chore(deps-dev): bump proxyquire from 2.1.1 to 2.1.3
  - chore(deps): bump debug from 4.1.1 to 4.3.3
- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/92) - thanks [@peteriman](https://github.com/peteriman)
  - updated package-lock.json 
- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/91) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps-dev): bump mocha from 9.1.4 to 9.2.0

## 3.0.2

- [fix: changed default file modes from 0o644 to 0o600 for better security](https://github.com/log4js-node/streamroller/pull/87) - thanks [@peteriman](https://github.com/peteriman)
- [refactor: housekeeping for comments and .gitignore](https://github.com/log4js-node/streamroller/pull/89) - thanks [@peteriman](https://github.com/peteriman)
- [chore(deps): updated dependencies](https://github.com/log4js-node/streamroller/pull/88) - thanks [@peteriman](https://github.com/peteriman)
  - chore(deps-dev): bump caniuse-lite from 1.0.30001299 to 1.0.30001300
  - chore(deps-dev): bump electron-to-chromium from 1.4.45 to 1.4.47
  - chore(deps-dev): bump @types/node from 17.0.8 to 17.0.9
  - chore(deps-dev): bump eslint from 8.6.0 to 8.7.0
  - chore(deps-dev): bump mocha from 9.1.3 to 9.1.4
  - chore(deps): bump date-format from 4.0.2 to 4.0.3

## 3.0.1

- [build: not to publish misc files to NPM](https://github.com/log4js-node/streamroller/pull/82) - thanks [@peteriman](https://github.com/peteriman)
- chore(deps): updated dependencies - thanks [@peteriman](https://github.com/peteriman)
  - [chore(deps): bump date-format from 4.0.1 to 4.0.2](https://github.com/log4js-node/streamroller/pull/86)
  - [chore(deps-dev): bump electron-to-chromium from 1.4.44 to 1.4.45](https://github.com/log4js-node/streamroller/pull/81) 

## 3.0.0

- [feat: allow for 0 backups (only hot file)](https://github.com/log4js-node/streamroller/pull/74) - thanks [@peteriman](https://github.com/peteriman)
- [feat: exposed fileNameSep to be configurable](https://github.com/log4js-node/streamroller/pull/67) - thanks [@laidaxian](https://github.com/laidaxian)
  - [fix: for fileNameSep affecting globally](https://github.com/log4js-node/streamroller/pull/79) - thanks [@peteriman](https://github.com/peteriman)
- [fix: for mode to apply to compressed file](https://github.com/log4js-node/streamroller/pull/65) - thanks [@rnd-debug](https://github.com/rnd-debug)
- [fix: for extra separator in filenames](https://github.com/log4js-node/streamroller/pull/75) - thanks [@peteriman](https://github.com/peteriman)
- [refactor: moved to options.numBackups instead of options.daysToKeep](https://github.com/log4js-node/streamroller/pull/78) - thanks [@peteriman](https://github.com/peteriman)
- [test: improved test case performance for fakeNow](https://github.com/log4js-node/streamroller/pull/76) - thanks [@peteriman](https://github.com/peteriman)
- chore(deps-dev): updated dependencies - thanks <a href="https://github.com/peteriman">@peteriman</a></summary>
  - [chore(deps-dev): updated package.json](https://github.com/log4js-node/streamroller/pull/70)
    - chore(deps-dev): bump @commitlint/cli from 8.1.0 to 16.0.2
    - chore(deps-dev): bump @commitlint/config-conventional from 8.1.0 to 16.0.0
    - chore(deps-dev): bump @type/nodes 17.0.8
    - chore(deps-dev): bump eslint from 6.0.1 to 8.6.0
    - chore(deps-dev): bump mocha from 6.1.4 to 9.1.3
    - chore(deps-dev): bump nyc from 14.1.1 to 15.1.0
  - [chore(deps-dev): updated package-lock.json](https://github.com/log4js-node/streamroller/pull/71) 
    - chore(deps-dev): bump @babel/compat-data from 7.16.4 to 7.16.8 
    - chore(deps-dev): bump @babel/generator from 7.16.7 to 7.16.8
    - chore(deps-dev): bump @babel/parser from 7.16.7 to 7.16.8
    - chore(deps-dev): bump @babel/travers from 7.16.7 to 7.16.8
    - chore(deps-dev): bump @babel/types from 7.16.7 to 7.16.8
  - [chore(deps-dev): updated package-lock.json](https://github.com/log4js-node/streamroller/pull/77)
    - chore(deps-dev): bump caniuse-lite from 1.0.30001298 to 1.0.30001299
    - chore(deps-dev): bump electron-to-chromium from 1.4.39 to 1.4.44
  - [chore(deps-dev): updated package.json](https://github.com/log4js-node/streamroller/pull/80)
    - chore(deps): bump date-format from 3.0.0 to 4.0.1
    - chore(deps-dev): bump husky from 3.0.0 to 7.0.4
    - chore(deps): bump fs-extra from 8.1.0 to 10.0.0

## 2.2.4

- [Fix for incorrect filename matching](https://github.com/log4js-node/streamroller/pull/61) - thanks [@rnd-debug](https://github.com/rnd-debug)

## 2.2.3

- [Fix for unhandled promise rejection during cleanup](https://github.com/log4js-node/streamroller/pull/56)

## 2.2.2

- [Fix for overwriting current file when using date rotation](https://github.com/log4js-node/streamroller/pull/54)

## 2.2.1

- Fix for num to keep not working when date pattern is all digits (forgot to do a PR for this one)

## 2.2.0

- [Fallback to copy and truncate when file is busy](https://github.com/log4js-node/streamroller/pull/53)

## 2.1.0

- [Improve Windows support (closing streams)](https://github.com/log4js-node/streamroller/pull/52)

## 2.0.0

- [Remove support for node v6](https://github.com/log4js-node/streamroller/pull/44)
- [Replace lodash with native alternatives](https://github.com/log4js-node/streamroller/pull/45) - thanks [@devoto13](https://github.com/devoto13)
- [Simplify filename formatting and parsing](https://github.com/log4js-node/streamroller/pull/46)
- [Removed async lib from main code](https://github.com/log4js-node/streamroller/pull/47)
- [Fix timezone issues in tests](https://github.com/log4js-node/streamroller/pull/48) - thanks [@devoto13](https://github.com/devoto13)
- [Fix for flag values that need existing file size](https://github.com/log4js-node/streamroller/pull/49)
- [Refactor for better readability](https://github.com/log4js-node/streamroller/pull/50)
- [Removed async lib from test code](https://github.com/log4js-node/streamroller/pull/51)

## 1.0.6

- [Fix for overwriting old backup files](https://github.com/log4js-node/streamroller/pull/43)
- Updated lodash to 4.17.14

## 1.0.5

- [Updated dependencies](https://github.com/log4js-node/streamroller/pull/38)
- [Fix for initial file date when appending to existing file](https://github.com/log4js-node/streamroller/pull/40)

## 1.0.4

- [Fix for initial size when appending to existing file](https://github.com/log4js-node/streamroller/pull/35)

## 1.0.3

- [Fix for crash when pattern is all digits](https://github.com/log4js-node/streamroller/pull/33)

## 1.0.2

- is exactly the same as 1.0.1, due to me being an idiot and not pulling before I pushed

## Previous versions

Previous release details are available by browsing the milestones in github.
