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

immersion

v2.0.15

Published

Content Direct product catalog command line tool

Readme

Immersion

Immersion is a command-line (CLI) tool built for the Content Direct product catalog system.

Node.js is required in order to run Immersion. Please ensure you have Node.js installed: http://nodejs.org/.

Immersion helps ingesting categories, media, people, playlists, and products by pulling data from a CSV file.

Installation

  1. Ensure you have Node.js installed: http://nodejs.org/.
  2. Globally install the immersion package using npm: npm install -g immersion

Running immersion -h will display the help menu which indicates a successful install.

CSV Format

The CSV file that is ingested should have a header row followed by the rows of entity (i.e. Category, Media, Person, Playlist, Product) information. Each row below the header is equivalent to one entity that will be created or updated.

Each column in the header should map to an object in the specified request. For example, when creating products the headers should follow the CreateProduct request format:

Product.Id.Type,Product.Id.Value,Product.Name,Product.References[0]

Objects are referenced using dot notation while arrays use brackets.

{Entity}.Id.Value is required in all immersion sheets. Not providing that value will produce an "Undefined {Entity} Error".

The entity rows can contain either primitive values (i.e. boolean, number, string) or valid JSON.

Core Documentation

Use your sandbox credentials to view the core request formats: https://documentation.doc1.cdops.net/v6.0/Interface.aspx?interface=Catalog.

Logging

A logs folder is created in the directory of the file provided when immersion is run. A sub-folder is created for the core API method used for the requests. Sub-sub-folders are created for each entity id. The sub-sub-folders will contain a request.json file and a response.json file for every create or update API call.

Examples

immersion -f examples/person.csv create Person

Creates person objects in sandbox.

immersion -e stg1 -f examples/media.csv update Media

Updates media objects in staging.

immersion -f examples/product.csv -t update Product

Updates product objects in sandbox using targeted method (only fields in the CSV file are updated).

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

License

Copyright (c) 2014 David Caseria
Licensed under the MIT license.