npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-ticktick

v1.0.3

Published

API wrapper/client for TickTick Web API (unofficial) Still under development but already usable.

Downloads

2

Readme

node-ticktick

API wrapper/client for TickTick Web API (unofficial) Still under development but already usable.

All async methods return promise based types and can be awaited.

Example

import { TickTickClient } from "node-ticktick";

const tt = new TickTickClient('username', 'password');
tt.login().then(() => {
    tt.getProfile().then((result) => {
        console.log(result);
    });
})

Methods

Import the wrapper

import { TickTickClient } from "node-ticktick";

Create a new instance of the wrapper

const tt = new TickTickClient('username', 'password');

Login (async)

tt.login();

Get profile (async)

tt.getProfile();

Get Projects (async)

tt.getProjects();

Create Task (async)

tt.createTask(task: TickTickTask);

Objects

TickTickProfile

{
    accountDomain?: any
    createdCampaign: string
    createdDeviceInfo?: any
    displayName: string
    email?: any
    etimestamp?: any
    extenalId?: any
    externalId?: any
    fakedEmail: boolean
    familyName?: any
    filledPassword: boolean
    gender?: any
    givenName?: null
    link?: any
    locale: string
    name: string
    phone?: any
    picture: string
    siteDomain: string
    userCode: string
    username: string
    verCode?: any
    verKey?: any
    verifiedEmail: true
}

TickTickProject

{
    closed: boolean
    color?: any
    etag: string
    groupId?: any
    id: string
    inAll: boolean
    isOwner: boolean
    kind: string
    modifiedTime: string
    muted: boolean
    name: string
    notificationOptions: []
    permission: string
    sortOrder: number
    sortType: string
    teamId?: any
    timeline?: any
    transferred?: any
    userCount: number
    viewMode?: any
}

TickTickReminder

{
    id: string, // "623d8246264b5243bdf24577"
    trigger: string // "TRIGGER:-PT60M"
}

TickTickTask

{
    id: string | ObjectID,
    title: string, // "test notification"
    assignee: any,
    content: string,
    createdTime: string, // datetime "2022-03-25T08:45:40.000+0000" note: missing : at the end from normal ISO 8601
    dueDate: string | null, // datetime "2022-03-25T08:45:40.000+0000" note: missing : at the end from normal ISO 8601
    exDate: any[],
    isFloating: boolean,
    isAllDay?: boolean,
    items: [],
    kind: Kind | null,
    modifiedTime: string, // datetime "2022-03-25T08:45:40.000+0000" note: missing : at the end from normal ISO 8601
    priority: Priority, // 0
    progress: number, // 0
    projectId: string, // "inbox117452138"
    reminders: TickTickReminder[], // not supported yet
    repeatFlag?: string, // "RRULE:FREQ=DAILY;INTERVAL=1"
    repeatFrom?: string, // "2"
    sortOrder: number, // -202859895324672
    startDate: string | null, // datetime "2022-03-25T08:45:40.000+0000" note: missing : at the end from normal ISO 8601
    status: Status, // 0 is TODO
    tags: [],
    timeZone: string // "Europe/Amsterdam"
}

enum Status {
    TODO = 0,
    UNKNOWN = 1,
    COMPLETED = 2
}

enum Priority {
    NONE = 0,
    LOW = 1,
    MEDIUM = 3,
    HIGH = 5
}

enum Kind {
    TEXT = 'TEXT',
    CHECKLIST = 'CHECKLIST'
}

TickTickUser

{
    token: string,
    userId: number,
    username: string,
    inboxId: string,
    proStartDate?: string,
    proEndDate?: string,
    subscribeType?: string,
    subscribeFreq?: string,
    needSubscribe?: boolean,
    freq?: string,
    teamUser?: boolean,
    activeTeamUser?: boolean,
    freeTrial?: boolean,
    pro?: boolean,
    ds?: boolean
}