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

rezide-client-booking

v1.0.0

Published

Embeddable Rezide client booking calendar.

Readme

@rezide/client-booking

Rezide client booking plugin. This package is the embeddable client UI only.

What this package does

  • Renders a white, compact client session picker
  • Accepts logged-in client data from the host app
  • Fetches available sessions from the backend
  • Logs the join event before redirecting to the meeting link
  • Does not collect login data itself
  • Does not expose admin tools

Expected user data

Minimum contract:

type RezideUser = {
  name: string;
  phone: string;
  email?: string;
};

The host app should pass user data in one of these ways:

  1. React prop
<RezideCalendar
  user={{
    name: "Aryan Singh",
    phone: "+919321650829",
    email: "[email protected]"
  }}
  apiBaseUrl="https://your-backend.example.com"
/>
  1. Global object
window.REZIDE_USER = {
  name: "Aryan Singh",
  phone: "+919321650829",
  email: "[email protected]"
};
  1. Existing parent-app shapes already supported by the plugin
  • window.users
  • window.userInfo.data

Those shapes are resolved inside [src/booking-experience.tsx](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/booking-experience.tsx).

Backend contract

The plugin expects these routes:

  • GET /api/plugin/sessions?month=YYYY-MM-DD
  • POST /api/plugin/join

Types for these payloads live in [src/backend-contract.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/backend-contract.ts).

Install

npm install @rezide/client-booking

Usage

import { RezideCalendar } from "@rezide/client-booking";

export function Example() {
  return (
    <RezideCalendar
      user={{
        name: "Aryan Singh",
        phone: "+919321650829",
        email: "[email protected]"
      }}
      apiBaseUrl="https://your-backend.example.com"
      title="Structured day-by-day schedule"
    />
  );
}

Exports

  • RezideCalendar
  • BookingExperience
  • RezideCalendarProps
  • RezideCalendarDay
  • RezideCalendarSession
  • RezideUser
  • RezideSessionsResponse
  • RezideJoinRequest
  • RezideJoinResponse
  • RezideErrorResponse

File map

  • [src/index.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/index.ts) Public exports.

  • [src/types.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/types.ts) Public prop and response shapes used by host apps.

  • [src/backend-contract.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/backend-contract.ts) Typed request and response contract for plugin API calls.

  • [src/booking-experience.tsx](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/booking-experience.tsx) Main plugin component. Resolves host user data, loads sessions, selects a session, calls join endpoint, redirects.

  • [src/booking-experience.module.css](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/booking-experience.module.css) Plugin-only styles. Safe to ship with the package.

  • [src/global.d.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/global.d.ts) Local declarations used while compiling the package.

  • [scripts/build.mjs](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/scripts/build.mjs) Package build script that creates the dist output.

  • [dist/index.js](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/dist/index.js) Runtime entry shipped to npm consumers after build.

Runtime flow

  1. Host app mounts RezideCalendar.
  2. Plugin resolves user data from props or supported globals.
  3. Plugin requests session data from GET /api/plugin/sessions.
  4. Client picks a date and session.
  5. Plugin posts { sessionId, user } to POST /api/plugin/join.
  6. Backend stores the join in history and returns the meeting link.
  7. Plugin redirects the browser to that meeting link.

Local package build

cd plugins/rezide-client-booking
npm run build

Preview in this repo

Use [app/admin/preview/page.tsx](/Users/aryansingh/Desktop/Rezide App Session/app/admin/preview/page.tsx) to inspect the plugin inside the main admin app.