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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@timesheet/plugin-xero

v1.0.2

Published

Sync Timesheet with Xero. Scaffold, not yet functional.

Readme

Xero Sync

Intended integration between Timesheet and Xero. Early scaffold, not yet functional.

This package is an early scaffold. The handlers are wired into the plugin runtime and return placeholder results (for example, testConnection reports OK and syncTaskToExternal echoes the task id), but no calls are made to the Xero API yet. The manifest below describes the intended shape of the integration rather than working behavior.

  • Package: @timesheet/plugin-xero
  • Manifest id: xero-sync
  • Category: accounting
  • Status: scaffold (no Xero API integration implemented)

Authentication

OAuth 2.0. Scopes are placeholders (read, write) and will be replaced with the real Xero scopes when the integration is implemented.

Configuration

| Option | Required | Default | Description | | --- | --- | --- | --- | | syncDirection | yes | bidirectional | One of bidirectional, timesheet-to-external, external-to-timesheet. |

Mappings

  • Project mapping: Timesheet project to Xero (placeholder, not yet wired to real Xero entities).

Triggers

  • Task Created (event): scaffolded handler for new Timesheet tasks.
  • Xero Webhook (webhook): scaffolded inbound endpoint.
  • Scheduled Full Sync (daily at 02:00 UTC): scaffolded background sync.
  • Manual Sync (user action): scaffolded sync from the integration settings page.

Development

npm install        # or: npm ci
npm run build      # compile TypeScript into dist/
npm run typecheck

The package ships dist/ and manifest.json; the sandboxed plugin runtime loads it by package name, version, and integrity. Shared tests live in integrations/tests/ and run from the integrations/ root with npm test.