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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ppwcode/openapi

v12.0.3

Published

Collection of common OpenAPI 3 specs and Joi schemata

Downloads

370

Readme

openapi

Collection of common OpenAPI 3 specs and matching Joi schemata.

These common specifications are shared between projects.

All specs here are defined using YAML format.

For each spec, a usage is demonstrated in the top level index.yaml file, for demonstration purposes, and to make it possible to validate the common specs.

The purpose of each spec is described in the OpenAPI 3 description field of each spec, or in markdown files close to the spec.

Although OpenAPI 3 is a standard, support for some features differs between tools. We use ReDoc as the main target for our OpenAPI 3 spec. ReDoc formats and stylizes the specification in-browser.

The ReDoc site of the HEAD of the master branch is hosted at

Usage

Your project should have a package.json file, for use by npm.

Include the common OpenAPI 3 specs in your project with

npm install -D @ppwcode/openapi

Commit the generated package-lock.json.

In your OpenAPI 3 specification, refer to the common OpenAPI 3 specs using the $ref syntax supported by OpenAPI 3, e.g.,

[…]
  type: object
  […]
  properties:
    […]
    interval:
      allOf:
        - $ref: '../..[…]/node_modules/ppwcode/time/DayDateInterval.yaml'
        - description: Override the description of the common spec
    […]
  […]
[…]

Development

Execute

> npm install

to install development tools.

Formatting

This repository is set up for use in IntelliJ IDEAs. file watchers will format YAML and Markdown files when saved using Prettier.

Continuous developer feedback

As a developer, open index.html in a browser. This file loads ReDoc from a CDN (no dependencies in this repository), and ReDoc loads index.yaml and referenced files.

If index.yaml contains syntax errors, ReDoc shows error messages and warnings.

index.html is set up to reload frequently, providing continuous feedback.

Linting

Linting is done with Redocly openapi-cli.

You can execute this test locally with

> npm test

During development, keep a console open:

> npm run OpenAPI:watch

This will run the linter each time a spec file is changed, providing continuous feedback.

On each push, linting is done in CI.

Changes and pull requests

You cannot push commits, or create pull requests, from the submodule in your specification repository.

To make changes to this collection, clone this repository or a fork separately, and make your changes in that copy.

The main repository is at https://bitbucket.org/peopleware/openapi.git. This is the only place where developers should push commits, and the only place where issues are tracked, and pull requests are considered. All commits are automatically forwarded to https://github.com/peopleware/openapi.git as a backup and failover, but no activity should be directed there directly.

License

Copyright 2020 - 2024 PeopleWare n.v.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.