Socket
Socket
Sign inDemoInstall

@zoralabs/media-metadata-schemas

Package Overview
Dependencies
13
Maintainers
16
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @zoralabs/media-metadata-schemas

Library for Defining and Interacting with Zora Media Metadata Schemas


Version published
Weekly downloads
121
increased by137.25%
Maintainers
16
Install size
65.6 MB
Created
Weekly downloads
 

Readme

Source

Media Metadata Schemas

Overview

The Zora Protocol requires media that is minted on its smart contracts contain a URI pointing to its metadata.

The Zora Protocol maintains zero opinion about the structure of that metadata. It is explicitly not enforceable at the blockchain level.

As such, this repository will serve as the source of truth of community supported metadata schemas described by JSON Schema, and will generate Types, Parsers, Generators, and Validators that will be served through the Zora Development Kit (ZDK)

Usage

Generate

Given a schema version and some nonformatted json it generates a valid, minified, alphabetized json

const metadata = {
  version: 'zora-20210101',
  name: randomName,
  description: randomDescription,
  mimeType: mimeType,
}
const generator = new Generator(metadata.version)
const minified = generator.generate(metadata)

Validate

const metadata = {
  version: 'zora-20210101',
  name: randomName,
  description: randomDescription,
  mimeType: mimeType,
}

const validator = new Validator(metadata.version)
const validated = validator.validate(metadata)

Parse

const json = `
  {
    version: 'zora-20210101',
    name: randomName,
    description: randomDescription,
    mimeType: mimeType,
  }
`

const parser = new Parser('zora-20210101')
const parsed =  parser.parse(json)

Tests

yarn test

Define a New Schema

To define a new schema version, locate the directory of your project's name in schemas/. If a directory does not already exist create one. Within the project directory create a new file with the desired calendar version as the file name example: schemas/zora/20210101.json

  • Define the schema according to JSON Schema specification.
  • Write some tests in the schema.tests.ts file.
  • run yarn codegen to generate type specifically for your new schema
  • Add your version to the supportedVersions and supportedVersionsTypeMapping in versions.ts
  • Add your version type to the exported types in types.ts

Submit a PR!

Someone on our team will review and merge.

Further Reading

FAQs

Last updated on 19 Oct 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc