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

@documentdb-js/schema-analyzer

v0.8.1

Published

Incremental JSON Schema analyzer for DocumentDB API / MongoDB API documents with statistical extensions

Downloads

299

Readme

@documentdb-js/schema-analyzer

DocumentDB is an open-source document database built on PostgreSQL, with native BSON support, rich indexing, and vector search. It uses the MongoDB-compatible wire protocol, runs locally with Docker, and is MIT licensed.

This package is an incremental JSON Schema analyzer for DocumentDB and MongoDB API documents. Processes documents one at a time (or in batches) and produces an extended JSON Schema with statistical metadata — field occurrence counts, BSON type distributions, min/max values, and array length stats.

Pre-1.0 notice — The API may change between minor versions until 1.0.0 is released. If you depend on this package and need stability guarantees sooner, please open an issue and let us know.

Features

  • Incremental analysis — add documents one at a time or in batches; the schema updates in place.
  • BSON type awareness — recognizes BSON types defined by the MongoDB API (ObjectId, Decimal128, Binary, UUID, etc.) and annotates them with x-bsonType.
  • Statistical extensions — tracks field occurrence (x-occurrence), type frequency (x-typeOccurrence), min/max values, string lengths, array sizes, and document counts (x-documentsInspected).
  • Known fields extraction — derives a flat list of known field paths with their types and occurrence probabilities, useful for autocomplete and UI rendering.
  • Version tracking & caching — a monotonic version counter enables efficient cache invalidation for derived data like getKnownFields().

Installation

npm install @documentdb-js/schema-analyzer

Requires mongodb ≥ 6.0.0 as a peer dependency.

Usage

import { SchemaAnalyzer } from '@documentdb-js/schema-analyzer';

// Create an analyzer and feed it documents
const analyzer = new SchemaAnalyzer();
analyzer.addDocument(doc1);
analyzer.addDocuments([doc2, doc3, doc4]);

// Get the JSON Schema with statistical extensions
const schema = analyzer.getSchema();

// Get a flat list of known fields (cached, version-aware)
const fields = analyzer.getKnownFields();

Origin

This package was developed while building features for the DocumentDB VS Code extension, which remains the primary consumer. The analyzer is designed to work with any JSON/BSON documents and can be used independently in other tooling.

License

MIT