---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../modules.md) / [clients](../index.md) / WebDavClient

# Class: WebDavClient

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:72](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L72)

## Constructors

### Constructor

> **new WebDavClient**(`hostname`, `auth`, `options?`): `WebDavClient`

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:84](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L84)

Creates a new WebDAV client.

#### Parameters

##### hostname

`string`

WebDAV hostname (may differ from API hostname)

##### auth

[`AuthStrategy`](../../auth/interfaces/AuthStrategy.md)

Authentication strategy to use for requests

##### options?

[`WebDavClientOptions`](../interfaces/WebDavClientOptions.md)

Optional configuration including middleware registry and TLS dispatcher

#### Returns

`WebDavClient`

## Methods

### buildUrl()

> **buildUrl**(`path`): `string`

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:100](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L100)

Builds the full URL for a WebDAV path.

#### Parameters

##### path

`string`

Path relative to /webdav/Sites/

#### Returns

`string`

Full URL

***

### copy()

> **copy**(`source`, `destination`, `overwrite`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:379](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L379)

Copies a file or directory.

#### Parameters

##### source

`string`

Source path relative to /webdav/Sites/

##### destination

`string`

Destination path relative to /webdav/Sites/

##### overwrite

`boolean` = `true`

Whether to overwrite if destination exists (default: true)

#### Returns

`Promise`\<`void`\>

#### Example

```ts
await client.copy('Cartridges/v1/cartridge', 'Cartridges/v2/cartridge');
```

***

### delete()

> **delete**(`path`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:321](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L321)

Deletes a file or directory.

#### Parameters

##### path

`string`

Path to delete

#### Returns

`Promise`\<`void`\>

#### Throws

Error if the path doesn't exist (404) or deletion fails

#### Example

```ts
await client.delete('Cartridges/v1/old-cartridge');
```

***

### exists()

> **exists**(`path`): `Promise`\<`boolean`\>

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:425](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L425)

Checks if a path exists.

#### Parameters

##### path

`string`

Path to check

#### Returns

`Promise`\<`boolean`\>

true if exists, false otherwise

***

### get()

> **get**(`path`): `Promise`\<`ArrayBuffer`\>

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:302](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L302)

Downloads a file.

#### Parameters

##### path

`string`

Path to download

#### Returns

`Promise`\<`ArrayBuffer`\>

File content as ArrayBuffer

#### Example

```ts
const content = await client.get('Cartridges/v1/app.zip');
```

***

### mkcol()

> **mkcol**(`path`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:261](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L261)

Creates a directory (collection).

#### Parameters

##### path

`string`

Path to create

#### Returns

`Promise`\<`void`\>

#### Throws

Error if creation fails (except 405 which means already exists)

#### Example

```ts
await client.mkcol('Cartridges/v1');
```

***

### move()

> **move**(`source`, `destination`, `overwrite`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:404](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L404)

Moves (renames) a file or directory.

#### Parameters

##### source

`string`

Source path relative to /webdav/Sites/

##### destination

`string`

Destination path relative to /webdav/Sites/

##### overwrite

`boolean` = `true`

Whether to overwrite if destination exists (default: true)

#### Returns

`Promise`\<`void`\>

#### Example

```ts
await client.move('Cartridges/v1/old-name', 'Cartridges/v1/new-name');
```

***

### propfind()

> **propfind**(`path`, `depth`): `Promise`\<[`PropfindEntry`](../interfaces/PropfindEntry.md)[]\>

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:342](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L342)

Lists directory contents.

#### Parameters

##### path

`string`

Directory path

##### depth

PROPFIND depth (0, 1, or 'infinity')

`"0"` | `"1"` | `"infinity"`

#### Returns

`Promise`\<[`PropfindEntry`](../interfaces/PropfindEntry.md)[]\>

Array of entries in the directory

#### Example

```ts
const entries = await client.propfind('Cartridges');
for (const entry of entries) {
  console.log(entry.displayName, entry.isCollection);
}
```

***

### put()

> **put**(`path`, `content`, `contentType?`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:280](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L280)

Uploads a file.

#### Parameters

##### path

`string`

Destination path

##### content

File content as Buffer, Blob, or string

`string` | `Buffer`\<`ArrayBufferLike`\> | `Blob`

##### contentType?

`string`

Optional content type header

#### Returns

`Promise`\<`void`\>

#### Example

```ts
await client.put('Cartridges/v1/app.zip', zipBuffer, 'application/zip');
```

***

### request()

> **request**(`path`, `init?`): `Promise`\<`Response`\>

Defined in: [packages/b2c-tooling-sdk/src/clients/webdav.ts:119](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/webdav.ts#L119)

Makes a raw WebDAV request.

#### Parameters

##### path

`string`

Path relative to /webdav/Sites/

##### init?

`RequestInit`

Fetch init options

#### Returns

`Promise`\<`Response`\>

Response from the server
