# WebDAV-Client changelog

## v5.10.0
_2026-05-03_

 * [#406](https://github.com/perry-mitchell/webdav-client/issues/406) Allow setting entity expansion limits (defaults to unlimited, again)
 * Dependency audit fixes and upgrades

## v5.9.0
_2026-02-04_

 * [#404](https://github.com/perry-mitchell/webdav-client/issues/404) CVE-2026-25128 fix in `fast-xml-parser`, major version upgrade

## v5.8.0
_2025-02-12_

 * [#391](https://github.com/perry-mitchell/webdav-client/pull/391) Attribute parsing support
 * Updated dependencies
 * **Bugfixes**:
   * [#387](https://github.com/perry-mitchell/webdav-client/issues/387) Node engine set to minimum of `16` instead of supported `14`

## v5.7.1
_2024-08-03_

 * **Bugfixes**:
   * [#382](https://github.com/perry-mitchell/webdav-client/issues/382) `minimatch` dependency requires engines with Node >= 20

## v5.7.0
_2024-08-02_

 * [#381](https://github.com/perry-mitchell/webdav-client/pull/381) Upgraded dependencies (major version changes)
 * **Bugfixes**:
   * [#380](https://github.com/perry-mitchell/webdav-client/pull/380) `displayname` string fix
   * [#378](https://github.com/perry-mitchell/webdav-client/pull/378) Types for quota bytes
   * [#379](https://github.com/perry-mitchell/webdav-client/pull/379) DAV result types

## v5.6.0
_2024-04-24_

 * Switch to `entities` over `he`
 * **Bugfixes**
   * [#366](https://github.com/perry-mitchell/webdav-client/issues/366) React-native import not working

## v5.5.0
_2024-03-18_

 * [#303](https://github.com/perry-mitchell/webdav-client/issues/303) Partially update file contents
 * [#329](https://github.com/perry-mitchell/webdav-client/issues/329) Overwrite option for copy/move file
 * [#369](https://github.com/perry-mitchell/webdav-client/issues/369) Automatic auth mode

## v5.4.0
_2024-02-24_

 * [#359](https://github.com/perry-mitchell/webdav-client/issues/359) React-Native specific build
 * Updated dependencies

## v5.3.2
_2024-02-05_

 * **Bugfix**:
   * [#364](https://github.com/perry-mitchell/webdav-client/pull/364) XML entities double decoded

## v5.3.1
_2023-11-27_

 * **Bugfix**:
   * [#360](https://github.com/perry-mitchell/webdav-client/pull/360) Incorrect filename due to mishandling of XML-encoded href

## v5.3.0
_2023-08-30_

 * [#205](https://github.com/perry-mitchell/webdav-client/issues/205) Search method
 * **Bugfix**:
   * [#355](https://github.com/perry-mitchell/webdav-client/issues/355) Can not be imported with newer node versions
   * [#346](https://github.com/perry-mitchell/webdav-client/pull/346) Node import forces use of `esModuleInterop` flag

## v5.2.3
_2023-07-16_

 * React-Native entry in `package.json`

## v5.2.2
_2023-06-29_

 * **Bugfix**:
   * [#339](https://github.com/perry-mitchell/webdav-client/issues/339) Unable to import files from `dist`

## v5.2.1
_2023-06-18_

 * **Bugfix**:
   * [#339](https://github.com/perry-mitchell/webdav-client/issues/339) Regression: `processResponsePayload` and other methods not exposed in exports

## v5.2.0
_2023-06-18_

 * [#344](https://github.com/perry-mitchell/webdav-client/pull/344) Upgrade `fast-xml-parser` to new major (v4)
 * **Bugfix**:
   * [#336](https://github.com/perry-mitchell/webdav-client/issues/336) `fast-xml-parser` vulnerability

## v5.1.0
_2023-05-29_

 * [#342](https://github.com/perry-mitchell/webdav-client/issues/342) Support custom remote base directory (other than path specified in URL): `remoteBasePath`

## v5.0.0
_2022-11-30_

 * **Major release**
   * [#326](https://github.com/perry-mitchell/webdav-client/issues/326) Build output is now ESM only (read [this](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c))
   * ~~[#269](https://github.com/perry-mitchell/webdav-client/issues/269)~~ [#335](https://github.com/perry-mitchell/webdav-client/pull/335) Axios replaced with Fetch
   * [#178](https://github.com/perry-mitchell/webdav-client/issues/178) Support returning current directory info for `getDirectoryContents`
   * [#332](https://github.com/perry-mitchell/webdav-client/issues/332) HA1 support for Digest authentication
 * [#341](https://github.com/perry-mitchell/webdav-client/pull/341) Preserve stringified numbers with leading zeros
 * **Bugfix**:
   * [#204](https://github.com/perry-mitchell/webdav-client/issues/204) Missing engine restriction for Node
   * [#159](https://github.com/perry-mitchell/webdav-client/issues/159) Missing error status code

Breaking changes:

 * Download progress no longer supported (`onDownloadProgress`): [see discussion](https://github.com/perry-mitchell/webdav-client/issues/319#issuecomment-1328323167) 
 * Upload progress no longer supported (`onUploadProgress`): [see discussion](https://github.com/perry-mitchell/webdav-client/issues/319#issuecomment-1328323167)
 * Node request limitations removed: `maxBodyLength` and `maxContentLength` are no longer needed/supported

## v4.11.2
_2022-11-19_

 * **Bugfix**:
   * [#323](https://github.com/perry-mitchell/webdav-client/issues/323) Cannot use namespace `HotPatcher` as a type

## v4.11.1
_2022-11-19_

 * **Bugfix**:
   * [#324](https://github.com/perry-mitchell/webdav-client/pull/324) Missing leading slash causes extra entries in `getDirectoryContents` call

## v4.11.0
_2022-08-21_

 * [#315](https://github.com/perry-mitchell/webdav-client/pull/315) `HotPatcher` intermediate type annotation

## v4.10.0
_2022-05-16_

 * [#291](https://github.com/perry-mitchell/webdav-client/pull/291) Correct string byte size calculations for `Content-Length` headers
 * **Bugfix**:
   * [#304](https://github.com/perry-mitchell/webdav-client/issues/304) React Native `putFileContents` fails with `TypeError: Right-hand side of 'instanceof' is not an object`

## v4.9.0
_2022-04-20_

 * [#237](https://github.com/perry-mitchell/webdav-client/issues/237) `path` support for quota queries
 * **Bugfix**:
   * [#300](https://github.com/perry-mitchell/webdav-client/issues/300) Vulnerable dependency `url-parse`

## v4.8.0
_2022-01-11_

 * [#282](https://github.com/perry-mitchell/webdav-client/issues/282) `onDownloadProgress` option
 * [#285](https://github.com/perry-mitchell/webdav-client/pull/285) `AbortSignal` option support
 * Node engine specified at `>=10`

## v4.7.0
_2021-08-27_

 * [#65](https://github.com/perry-mitchell/webdav-client/issues/65) Lock / Unlock methods

## v4.6.1
_2021-08-14_

 * **Bugfix**:
   * [#267](https://github.com/perry-mitchell/webdav-client/pull/267) Fix `getFileContents` string handling of remote JSON files

## v4.6.0
_2021-05-21_

 * `response` property on `WebDAVClientError` instances ([#261](https://github.com/perry-mitchell/webdav-client/issues/261))

## v4.5.0
_2021-05-17_

 * Update dependencies - Webpack v5
 * **Bugfix**:
   * [#263](https://github.com/perry-mitchell/webdav-client/pull/263) Fix `putFileContents` `onUploadProgress` callback option

## v4.4.0
_2021-05-09_

 * [#259](https://github.com/perry-mitchell/webdav-client/pull/259) Ensure correct collection path when creating directory
 * [#258](https://github.com/perry-mitchell/webdav-client/pull/258) Handle prop status code in response when using `stat`

## v4.3.0
_2021-03-28_

 * [#118](https://github.com/perry-mitchell/webdav-client/issues/118) `createDirectory` `recursive` option

## v4.2.1
_2021-03-07_

_Includes a new feature for v4: `data` override option in method options. This missing feature is actually a regression when compared to the v3 code-base, but is now a first-party citizen in v4._

 * **Bugfix**:
   * [#238](https://github.com/perry-mitchell/webdav-client/issues/238) Regression: Not possible to request custom properties in v4

## v4.2.0
_2021-02-18_

 * [#203](https://github.com/perry-mitchell/webdav-client/issues/203) `putFileContents` 412 response handling when `{ overwrite: false }`
 * [#142](https://github.com/perry-mitchell/webdav-client/issues/142) Callbacks with `response`s for `createReadStream` and `createWriteStream`
 * [#31](https://github.com/perry-mitchell/webdav-client/issues/31) Errors thrown for range requests that don't return `206 Partial Content`

## v4.1.0
_2021-02-15_

 * Overridable `headers` option for most methods
 * Set and get base client headers via `setHeaders` and `getHeaders`

## v4.0.0
_2021-02-01_

 * **Major release**
   * Project re-written in **Typescript**

Breaking changes:

 * Authentication is **explicit** in v4, when not using basic/no authentication. [Specify the authentication type](https://github.com/perry-mitchell/webdav-client#authentication--connection) when creating the client.
 * `headers` can be specified when creating a client. These are overridden by method-specific headers when making requests.

## v3.6.2
_2021-01-06_

 * **Bugfixes**:
   * [#231](https://github.com/perry-mitchell/webdav-client/pull/231) Unable to target files using custom request
 * **Security Patches**:
   * [#232](https://github.com/perry-mitchell/webdav-client/issues/232) Axios server-side request forgery vulerability ([CVE-2020-28168](https://github.com/advisories/GHSA-4w2v-q235-vp99))

## v3.6.1
_2020-10-15_

 * **Bugfixes**:
   * [#221](https://github.com/perry-mitchell/webdav-client/issues/221) Stat function erroneously decodes paths with `%` in them

## v3.6.0
_2020-10-12_

 * [#220](https://github.com/perry-mitchell/webdav-client/pull/220) `maxBodyLength` option for changing written files max size
 * **Bugfixes**:
   * [#218](https://github.com/perry-mitchell/webdav-client/issues/218) Invalid response error - No root multistatus

## v3.5.0
_2020-10-08_

 * Upgrade dependencies (major versions)
   * [axios upgrade -> 0.20](https://github.com/axios/axios/blob/master/CHANGELOG.md#0200-august-20-2020)

## v3.4.0
_2020-10-08_

 * **Bugfixes**:
   * [#215](https://github.com/perry-mitchell/webdav-client/pull/215) Excessive memory usage when uploading big files (axios max-redirects)
   * [#213](https://github.com/perry-mitchell/webdav-client/pull/213) `getDirectoryContents` fails for directories with `&` in the name

## v3.3.0
_2020-04-19_

 * Node 10 build configuration
 * [#201](https://github.com/perry-mitchell/webdav-client/pull/201) Improved object merging for configurations (no merging instances)
 * [#200](https://github.com/perry-mitchell/webdav-client/pull/200) `createWriteStream` callback support (when request finishes finishes)
 * Improved filename decoding
 * **Bugfix**:
   * [#198](https://github.com/perry-mitchell/webdav-client/issues/198) Encoded characters in directory contents (HTML entities)

## v3.2.0
_2020-02-05_

 * `exists` method

## v3.1.0
_2020-02-05_

 * Improved parsing logic for more robust handling of various PROPFIND requests
 * **Bugfix**:
   * [#194](https://github.com/perry-mitchell/webdav-client/issues/194) Several properties not defined in directory-contents / stats payloads
   * [#147](https://github.com/perry-mitchell/webdav-client/issues/147) `Content-length` header being attached to stream requests erroneously

## v3.0.0
_2020-01-26_

 * Removed support for NodeJS < 10
 * Web support
 * Replaced XML parsing library (no dependencies, no streaming - better web support)
 * `createReadStream` and `createWriteStream` stubbed but disabled in web version

## v2.10.2
_2020-01-25_

 * **Bugfix**:
   * [#189](https://github.com/perry-mitchell/webdav-client/issues/189) Maximum call stack size exceeded during digest auth usage (property merging)

## v2.10.1
_2019-12-17_

 * **Bugfix**:
   * [#185](https://github.com/perry-mitchell/webdav-client/issues/185) Extra trailing slash after join for URL components on root account requests

## v2.10.0
_2019-10-12_

 * [#174](https://github.com/perry-mitchell/webdav-client/pull/174) `customRequest` method for making custom requests

## v2.9.1
_2019-07-07_

 * [#162](https://github.com/perry-mitchell/webdav-client/issues/162) etag.replace is not a function (etag string validation)

## v2.9.0
_2019-07-07_

 * [#40](https://github.com/perry-mitchell/webdav-client/issues/40) Digest authentication support

## v2.8.0
_2018-05-26_

 * Remove `path` dependency

## v2.7.0
_2019-05-23_

 * [#149](https://github.com/perry-mitchell/webdav-client/issues/149) Upload progress for `putFileContents`
 * [#154](https://github.com/perry-mitchell/webdav-client/pull/154) Normalise MIME type

## v2.6.0
_2019-03-03_

 * [#122](https://github.com/perry-mitchell/webdav-client/issues/122) Glob functionality
 * [#144](https://github.com/perry-mitchell/webdav-client/issues/144) Support uploading larger files

## v2.5.0
_2019-01-24_

 * [#130](https://github.com/perry-mitchell/webdav-client/issues/130) Support for `deep` option on `getDirectoryContents`

## v2.4.0
_2019-01-23_

 * [#132](https://github.com/perry-mitchell/webdav-client/issues/132) ETags in `getDirectoryContents` results and stats

## v2.3.0
_2019-01-22_

 * [#134](https://github.com/perry-mitchell/webdav-client/issues/134) Allow access to all returned properties

## v2.2.1
_2019-01-10_

 * [#121](https://github.com/perry-mitchell/webdav-client/issues/121) Unexpected close tag - trailing slash bug
 * [#127](https://github.com/perry-mitchell/webdav-client/issues/127) Force trailing slash
 * [#126](https://github.com/perry-mitchell/webdav-client/issues/126) `copyFile`: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': Value is not a valid ByteString

## v2.2.0
_2018-12-12_

 * Replace Buffer usage for base64 encoding with `base-64` package

## v2.1.0
_2018-12-12_

 * Move node core imports into functions (downstream compatibility - React Native)
 * Upgrade dependencies

## **v2.0.0**
_2018-11-20_

 * **Major version update!**
   * Fetch has been replaced with Axios! tl;dr `fetch` is horrible when looking to make webdav-client compatible cross-platform. Axios is a great alternative.
   * Detailed responses now available on some methods (providing response headers, for example)

## 1.6.1
_2018-10-06_

 * [#109](https://github.com/perry-mitchell/webdav-client/issues/109) `getDirectoryContents` fails on Seafile responses
 * Remove dependency on just a handful of namespaces for multistatus responses

## 1.6.0
_2018-09-15_

 * Update dependencies, audit vulnerabilities

## 1.5.5
_2018-09-13_

 * [#104](https://github.com/perry-mitchell/webdav-client/issues/104) `path.posix` failed in browserify
 * **Dev**:
   * Webpack & KarmaJS dev testing in Chrome

## 1.5.4
_2018-09-11_

 * [#101](https://github.com/perry-mitchell/webdav-client/issues/101) `getDirectoryContents` fails on windows
 * [#98](https://github.com/perry-mitchell/webdav-client/issues/98) Moving items fails when destination contains spaces

## 1.5.3
_2018-07-07_

 * ([#91](https://github.com/perry-mitchell/webdav-client/issues/91) [#93](https://github.com/perry-mitchell/webdav-client/issues/93)): Bugfix: Encoding issues with special characters

## 1.5.2
_2018-03-25_

 * Fix bug where requesting directory contents at paths with trailing slashes would return parent directory in results

## 1.5.1
_2018-03-23_

 * ([#81](https://github.com/perry-mitchell/webdav-client/issues/81)): Bad encoding when paths are prefixed with directory separator

## 1.5.0
_2018-03-19_

 * Add OAuth2 authentication support (via token)
 * Add `getFileDownloadLink` method

## 1.4.0
_2018-03-13_

 * Add `copyFile` method

## 1.3.0
_2018-03-07_

 * Change `deepmerge` dependency to `merge`
 * ([#79](https://github.com/perry-mitchell/webdav-client/issues/79)): getFileContents arrayBuffer default causes incompatibilities
   * Use `buffer()` where available, and fallback to `arrayBuffer()` otherwise

## 1.2.1
_2018-02-26_

 * Downgrade `deepmerge` to 1.5.2 to fix Webpack bug

## 1.2.0
_2018-02-24_

 * ([#74](https://github.com/perry-mitchell/webdav-client/issues/74)): TypeError: res.buffer is not a function (`ArrayBuffer` replaces `Buffer` for node-fetch)
 * ([#66](https://github.com/perry-mitchell/webdav-client/issues/66)): Special characters break output (unicode/non-latin encoding)

## 1.1.2
_2018-02-21_

 * Development bug fixes

## 1.1.1

**Bugfixes**:

 * ([#68](https://github.com/perry-mitchell/webdav-client/issues/68)): Fetched directory appearing in results

## 1.1.0
_2017-08-30_

 * Add transpilation process for published library

## 1.0.1
_2017-08-07_

 * Allow `test/` directory during publish (used downstream)

## **1.0.0**
_2017-08-06_

 * Complete rewrite of the project
 * Better testing setup with webdav-server
 * **Bugfixes**:
   * [Directory contents parse bug](https://github.com/perry-mitchell/webdav-client/issues/54)

## 1.0.0-rc1
_2017-07-01_

 * URI encoding for special characters
 * Writeable streams
 * Internal `fetch` override support
 * Quota support
 * Remove duplicate methods
 * Optimise `stat` depth

## 0.10.0
_2017-06-24_

 * Disable native `window.fetch` in browsers

## 0.9.0
_2017-06-07_

 * Add support for ranges with only `start`

## 0.8.0
_2017-06-07_

 * Add stream support (GET)
 * Add `createReadStream` method
 * Add `getFileStream` method
 * Update option merging behaviour for default values

## 0.7.0
_2017-06-03_

 * Remove lodash (performance improvement)

## 0.6.0
_2017-04-13_

 * Support for non-prefixed XML elements in WebDAV response
 * HTTP status code for thrown exceptions

## 0.5.0
_2017-02-11_

 * Use `window.fetch` when available in browser

## 0.4.1
_2017-02-04_

 * Fix `putFileContents` authorisation bug

## 0.4.0
_2017-01-29_

 * Add `options` argument to all methods, allowing custom headers
 * **(Breaking)**
   * Move `format` arguments to `options` object
   * Removed node 0.12 support

## 0.3.1
_2017-01-18_

 * Remove node querystring calls for downstream compat

## 0.2.0
_2017-01-03_

 * Added `options` parameter to `putFileContents`

## 0.1.1
_2016_10_24_

 * Fixed username/password authentication with special characters

## 0.1.0
_2016-10-13_

 * Initial release
