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

arazzo2openapi

v1.0.2

Published

Convert Arazzo workflow documents to OpenAPI documents

Downloads

50

Readme

arazzo2openapi

NPM Version CI License

Convert Arazzo workflow descriptions to OpenAPI documents.

Try it onlineNPM Package

Features

  • ✅ Convert Arazzo 1.0 workflows to OpenAPI 3.0/3.1 documents
  • ✅ Intelligent type inference from source OpenAPI documents
  • ✅ Support for remote and local source documents
  • ✅ $ref resolution in OpenAPI schemas
  • ✅ Preserve types, formats, descriptions, and constraints
  • ✅ CLI and programmatic API
  • ✅ TypeScript support

Installation

npm install -g arazzo2openapi

Usage

CLI

# Convert local file
arazzo2openapi workflow.yaml -o openapi.yaml

# Convert remote URL
arazzo2openapi https://example.com/workflow.yaml -o openapi.yaml

# Override metadata
arazzo2openapi workflow.yaml \
  --title "My API" \
  --version "2.0.0" \
  --description "Custom description"

CLI Options

  <arazzo-file>                    Path or URL to Arazzo document
  -o, --output <file>              Output file path
  -f, --format <format>            Output format: json or yaml
  --openapi-version <version>      OpenAPI version (3.0.0 or 3.1.0)
  --title <title>                  Override API title
  --version-override <version>     Override API version
  --description <description>      Override API description
  --server <url>                   Add server URL (repeatable)
  --response-code <code>           HTTP response code (default: 200)

Programmatic API

import { ArazzoParser, WorkflowAnalyzer, OpenAPIGenerator } from 'arazzo2openapi';

// Parse Arazzo document
const parser = new ArazzoParser();
const { document } = await parser.loadDocument('workflow.yaml');

// Analyze workflows
const analyzer = new WorkflowAnalyzer();
const workflows = analyzer.analyzeAllWorkflows(document);

// Generate OpenAPI
const generator = new OpenAPIGenerator();
const config = {
  arazzoPath: 'workflow.yaml',
  outputPath: 'openapi.yaml',
  openapiVersion: '3.1.0',
};

const openapi = await generator.generateOpenAPI(
  document,
  workflows,
  'workflow.yaml',
  config
);

Type Inference

Automatically infers accurate types from source OpenAPI documents:

# Input: Arazzo workflow
outputs:
  petId: $steps.getPet.outputs.id
  petName: $steps.getPet.outputs.name

# Output: OpenAPI with inferred types
schema:
  properties:
    petId:
      type: integer      # ✅ Inferred from source
      format: int64
    petName:
      type: string       # ✅ Inferred from source

Supports:

  • Primitive types (string, number, integer, boolean)
  • Formats (uuid, email, date-time, int32, int64, float, etc.)
  • Enums and constraints (min/max, pattern, etc.)
  • Nested objects and arrays
  • $ref resolution

Examples

See test fixtures for example Arazzo documents.

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Run linter
npm run lint

Contributing

Contributions welcome! Please read the contributing guidelines first.

License

Apache-2.0 © Frank Kilcommins

Related