tsdav
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.5 • Public • Published

    webdav request made easy

    Bundlephobia Types NPM Version MIT License

    Features

    • Easy to use, well documented JSON based WEBDAV API
    • Works in both Browsers and Node.js
    • Supports Both commonjs and esm
    • OAuth2 & Basic Auth helpers built-in
    • Native typescript, fully linted and well tested
    • Supports WEBDAV, CALDAV, CARDDAV
    • End to end tested with Apple & Google Cloud.

    Install

    npm install tsdav

    or

    yarn add tsdav

    Quickstart

    Google CALDAV
    import { createDAVClient } from 'tsdav';
    
    (async () => {
      const client = await createDAVClient({
        serverUrl: 'https://apidata.googleusercontent.com/caldav/v2/',
        credentials: {
          tokenUrl: 'https://accounts.google.com/o/oauth2/token',
          username: 'YOUR_EMAIL_ADDRESS',
          refreshToken: 'YOUR_REFRESH_TOKEN_WITH_CALDAV_PERMISSION',
          clientId: 'YOUR_CLIENT_ID',
          clientSecret: 'YOUR_CLIENT_SECRET',
        },
        authMethod: 'Oauth',
        defaultAccountType: 'caldav',
      });
    
      const calendars = await client.fetchCalendars();
    
      const calendarObjects = await client.fetchCalendarObjects({
        calendar: calendars[0],
      });
    })();
    Apple CARDDAV
    import { createDAVClient } from 'tsdav';
    
    (async () => {
      const client = await createDAVClient({
        serverUrl: 'https://contacts.icloud.com',
        credentials: {
          username: 'YOUR_APPLE_ID',
          password: 'YOUR_APP_SPECIFIC_PASSWORD',
        },
        authMethod: 'Basic',
        defaultAccountType: 'carddav',
      });
    
      const addressBooks = await client.fetchAddressBooks();
    
      const vcards = await client.fetchVCards({
        addressBook: addressBooks[0],
      });
    })();

    After v1.1.0, you have a new way of creating clients.

    Google CALDAV
    import { DAVClient } from 'tsdav';
    
    const client = new DAVClient({
      serverUrl: 'https://apidata.googleusercontent.com/caldav/v2/',
      credentials: {
        tokenUrl: 'https://accounts.google.com/o/oauth2/token',
        username: 'YOUR_EMAIL_ADDRESS',
        refreshToken: 'YOUR_REFRESH_TOKEN_WITH_CALDAV_PERMISSION',
        clientId: 'YOUR_CLIENT_ID',
        clientSecret: 'YOUR_CLIENT_SECRET',
      },
      authMethod: 'Oauth',
      defaultAccountType: 'caldav',
    });
    
    (async () => {
      await client.login();
    
      const calendars = await client.fetchCalendars();
    
      const calendarObjects = await client.fetchCalendarObjects({
        calendar: calendars[0],
      });
    })();
    Apple CARDDAV
    import { DAVClient } from 'tsdav';
    
    const client = new DAVClient({
      serverUrl: 'https://contacts.icloud.com',
      credentials: {
        username: 'YOUR_APPLE_ID',
        password: 'YOUR_APP_SPECIFIC_PASSWORD',
      },
      authMethod: 'Basic',
      defaultAccountType: 'carddav',
    });
    
    (async () => {
      await client.login();
    
      const addressBooks = await client.fetchAddressBooks();
    
      const vcards = await client.fetchVCards({
        addressBook: addressBooks[0],
      });
    })();

    Documentation

    Check out the Documentation

    License

    MIT

    FOSSA Status

    Changelog

    refers to Changelog

    Debugging

    this package uses debug package, add tsdav:* to DEBUG env variable to enable debug logs

    Install

    npm i tsdav

    DownloadsWeekly Downloads

    4,254

    Version

    1.1.5

    License

    MIT

    Unpacked Size

    549 kB

    Total Files

    14

    Last publish

    Collaborators

    • llldar