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

@kunalshetye/cms-sdk

v1.0.0-kunalshetye.5

Published

JavaScript tools for integration with Optimizely CMS

Readme

@kunalshetye/cms-sdk

npm version

Custom fork of @optimizely/cms-sdk

This package is a community-maintained fork published under the @kunalshetye scope. It tracks the official episerver/content-js-sdk repository and adds features not yet available upstream, such as built-in Optimizely Forms support and forms-availability detection.

The main branch stays in sync with upstream. Custom changes live on the @kunalshetye/content-js-sdk release branch.

What's different from the official SDK?

  • Optimizely Forms support - Built-in content type definitions for all 10 form element types
  • Forms feature detection - Automatic introspection check that only includes form fragments when Forms is installed on the CMS instance
  • All upstream features - Everything from the official SDK is included

For a complete reference, see the Fork Features documentation.

Installation

npm install @kunalshetye/[email protected]

Or using other package managers:

# pnpm
pnpm add @kunalshetye/[email protected]

# yarn
yarn add @kunalshetye/[email protected]

# bun
bun add @kunalshetye/[email protected]

[!NOTE] All releases from this fork use the -kunalshetye.N prerelease suffix (e.g., 1.0.0-kunalshetye.1, 1.0.0-kunalshetye.2). The base version (e.g., 1.0.0) tracks the upstream @optimizely/cms-sdk version it's based on.

Aliasing as @optimizely/cms-sdk

If you have an existing codebase that imports from @optimizely/cms-sdk and don't want to rename all imports, you can alias this package:

{
  "dependencies": {
    "@optimizely/cms-sdk": "npm:@kunalshetye/[email protected]"
  }
}

This lets you keep import { ... } from '@optimizely/cms-sdk' everywhere while using this fork under the hood.

Quick Start

import { GraphClient, initContentTypeRegistry, FormContentTypes } from '@kunalshetye/cms-sdk';

// Register content types (including forms)
initContentTypeRegistry([
  ...FormContentTypes,
  ...yourAppContentTypes,
]);

// Initialize the client
const client = new GraphClient('<YOUR_APP_SINGLE_KEY>');

// Fetch content — form fragments are included automatically if Forms is enabled
const content = await client.getContentByPath('/some-page');

Build Configuration

The buildConfig() factory accepts the following options:

| Field | Type | Description | |---|---|---| | components | string[] | Glob patterns to locate content type definition files | | propertyGroups | PropertyGroupType[] | Custom property groups for the CMS editor | | contentDir | string | Directory for generated content type files from config pull (default: ./src/content) |

Documentation

For comprehensive guides and documentation, visit the main repository:

Getting Started

  • Installation - Set up your development environment
  • Setup - Configure the SDK and CLI
  • Modelling - Define your content types with TypeScript

Core Features

Advanced Features

Keeping in sync with upstream

This fork follows a simple branching strategy:

  • main — Mirrors the official episerver/content-js-sdk via GitHub's upstream sync. No custom changes here.
  • @kunalshetye/content-js-sdk — Release branch with custom features. Periodically rebased/merged from main to pick up upstream changes.

Releases to npm are published exclusively from the @kunalshetye/content-js-sdk branch.

Support

  • Upstream issues - Report bugs in the official SDK on GitHub
  • Fork-specific issues - For issues related to this fork's custom features (forms support, etc.), open an issue on this repository

License

Apache License 2.0


Community fork maintained by @kunalshetye | Documentation | Upstream