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

@apitomy/openapi-editor

v0.2.0

Published

A reusable React component for visual OpenAPI editing

Readme

Apitomy OpenAPI Editor

A reusable React component for visual OpenAPI editing that can be embedded in React applications.

Overview

The Apitomy OpenAPI Editor is a modern, React-based visual editor for OpenAPI specifications (versions 2.0 and 3.0.x). It provides an intuitive interface for creating, editing, and managing OpenAPI documents without requiring direct YAML or JSON manipulation.

Features

  • Multi-version support - Edit both OpenAPI 2.0 (Swagger) and OpenAPI 3.0.x documents
  • Visual editing - Inline property editing with auto-save for all major sections
  • Navigation tree - Browse Paths, Schemas, Responses, and Tags with right-click context menus
  • Undo/Redo - Full command-pattern-based undo/redo support
  • Validation - Real-time OpenAPI validation with clickable problem navigation
  • Source view - Toggle between visual editing and raw YAML/JSON source
  • Paths & Operations - Create, delete, and edit paths and HTTP operations (GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD)
  • Schemas - Create, delete, and edit schema definitions
  • Servers - Manage servers with variable substitution (OpenAPI 3.0)
  • Tags - Create, rename, delete, and describe tags
  • Security - Manage security schemes (API Key, HTTP, OAuth2, OpenID Connect) and security requirements
  • Parameters - Add, edit, and delete query, header, path, and cookie parameters
  • Vendor extensions - Add, edit, and delete custom x-* extension properties
  • License chooser - Visual license picker with common open-source licenses
  • Selection events - Subscribe to selection changes for integration with external tools
  • Dark theme - Supports PatternFly dark theme

Quickstart

To quickly try out the OpenAPI Editor with a test application:

# Clone the repository
git clone https://github.com/Apitomy/apitomy-openapi-editor.git
cd apitomy-openapi-editor

# Install dependencies
npm install

# Install test app dependencies
npm run test-app:install

# Start the test application
npm run test-app:dev

The test application will start on http://localhost:3000 (or the next available port). This provides a full-featured demo of the OpenAPI Editor with sample data and all features enabled.

Usage

import { OpenAPIEditor, DocumentChangeEvent, SelectionChangeEvent } from '@apitomy/openapi-editor';

function App() {
    const handleChange = (event: DocumentChangeEvent) => {
        console.log('Document dirty:', event.isDirty);
        // Call event.getContent() only when you need to save
    };

    const handleSelectionChange = (event: SelectionChangeEvent) => {
        console.log('Selected path:', event.path.toString());
    };

    return (
        <OpenAPIEditor
            initialContent={yourOpenAPIDocument}
            onChange={handleChange}
            onSelectionChange={handleSelectionChange}
        />
    );
}

Props

| Prop | Type | Description | |------|------|-------------| | initialContent | object \| string | The initial OpenAPI content (JSON object or JSON string) | | onChange | (event: DocumentChangeEvent) => void | Fired when the document changes | | onSelectionChange | (event: SelectionChangeEvent) => void | Fired when the selection changes | | features | EditorFeatures | Optional feature flags |

DocumentChangeEvent

| Field | Type | Description | |-------|------|-------------| | isDirty | boolean | Whether the document has unsaved changes | | version | number | Incrementing version number for tracking changes | | getContent | () => object \| null | Accessor to retrieve current content (call only when saving) |

Peer Dependencies

This library requires the following peer dependencies to be installed by the consuming application:

{
    "@apitomy/data-models": "^2.2.6",
    "@patternfly/react-core": "^6.0.0",
    "@patternfly/react-icons": "^6.0.0",
    "@patternfly/react-table": "^6.0.0",
    "@patternfly/react-code-editor": "^6.4.0",
    "react": "^18.0.0 || ^19.0.0",
    "react-dom": "^18.0.0 || ^19.0.0",
    "yaml": "^2.6.1",
    "zustand": "^5.0.0"
}

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for details.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Links