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

@segha/catalog

v5.0.4

Published

Schemas for Petroglyph Catalog

Readme

@segha/catalog

npm version npm downloads license TypeScript zod

Schemas for Petroglyph Catalog

Requirements

  • zod

Installation

pnpm add @segha/catalog

Usage

import { ArticleSchema, BookSchema, CatalogArticleSchema, ... } from '@segha/catalog';

// Validate data
const result = ArticleSchema.parse(data);

// Infer TypeScript types
type Article = z.infer<typeof ArticleSchema>;

Schemas

API Reference

Article

Article

Object containing the following properties:

| Property | Description | Type | | :------------------ | :--------------------- | :------------------------------------------------------- | | title (*) | Title of the article | string | | description | Description | string | | excerpt | Extract of the article | string | | author (*) | Authors | Array<string> | | published | Year of publication | string | | status (*) | Reading status | 'Pending' \| 'In Progress' \| 'Read' \| 'Consolidated' | | projects (*) | Projects | Array<string> | | topics (*) | Topics | Array<string> | | rating (*) | Rating of the article | number | | type (*) | | '[[Sources]]' | | format (*) | | '[[Articles]]' | | areas (*) | | Array<'[[Knowledge]]'> | | color (*) | | '#3171B2' | | icon (*) | | 'newspaper' | | banner | | string | | url (*) | URL of the article | string |

(*) Required.

Book

Book

Object containing the following properties:

| Property | Description | Type | | :------------------------ | :----------------------------------- | :------------------------------------------------------- | | title (*) | Title of the book | string | | subtitle | Subtitle of the book | string | | description | Description of the book | string | | author (*) | Authors | Array<string> | | published (*) | Year of publication | string | | categories (*) | Categories | Array<string> | | status (*) | Reading status | 'Pending' \| 'In Progress' \| 'Read' \| 'Consolidated' | | topics (*) | Topics | Array<string> | | rating (*) | Rating of the book | number | | online_rating (*) | Online rating | number | | last_time_read (*) | Last time read | string | | times_read (*) | Times read | number | | type (*) | | '[[Sources]]' | | format (*) | | '[[Books]]' | | areas (*) | | Array<'[[Knowledge]]'> | | color (*) | | '#3171B2' | | icon (*) | | 'book' | | cover | | string | | url (*) | URL of the book in Amazon or similar | string | | read_url (*) | URL of the reading of the book | string |

(*) Required.

CatalogArticle

Article: Data obtained from catalogation

Object containing the following properties:

| Property | Description | Type | | :---------------- | :--------------------- | :-------------- | | title (*) | Title of the article | string | | description | Description | string | | excerpt | Extract of the article | string | | author (*) | Authors | Array<string> | | published | Year of publication | string |

(*) Required.

CatalogBook

Book: Data obtained from catalogation

Object containing the following properties:

| Property | Description | Type | | :-------------------- | :---------------------- | :-------------- | | title (*) | Title of the book | string | | subtitle | Subtitle of the book | string | | description | Description of the book | string | | author (*) | Authors | Array<string> | | published (*) | Year of publication | string | | categories (*) | Categories | Array<string> |

(*) Required.

CatalogClothing

Clothing item: Catalogable data

Object containing the following properties:

| Property | Description | Type | | :----------------------- | :------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | name (*) | Descriptive name of the clothing item | string | | garment (*) | Garment Type | 'Undershirts' \| 'Boxers' \| 'Panties' \| 'Bras' \| 'Socks' \| 'T-Shirts' \| 'Polo Shirts' \| 'Shirts' \| 'Blouses' \| 'Tops' \| 'Sweaters' \| 'Hoodies' \| 'Cardigans' \| 'Jackets' \| 'Pants' \| 'Jeans' \| 'Chinos' \| 'Skirts' \| 'Shorts' \| 'Blazers' \| ... | | slot (*) | Outfit part | 'Top' \| 'Bottom' \| 'Full Body' \| 'Outer' \| 'Footwear' \| 'Accessories' | | variants | Structural Details | Array<'Sleeveless' \| 'Short Sleeves' \| 'Long Sleeves' \| 'Round Neck' \| 'V-Neck' \| 'High Neck' \| 'Shirt Collar' \| 'Polo Collar' \| 'Boat Neck' \| 'Mandarin Collar' \| 'Funnel Neck' \| 'Hood' \| 'Overshirt' \| 'Cropped' \| 'Long' \| 'Straight Leg' \| 'Skinny' \| 'Wide' \| 'Cargo' \| 'Flared' \| ...> | | fit | Fit | 'Fitted' \| 'Slim' \| 'Regular' \| 'Relaxed' \| 'Loose' \| 'Oversized' | | primary_color (*) | Primary color | 'White' \| 'Black' \| 'Gray' \| 'Beige' \| 'Brown' \| 'Blue' \| 'Green' \| 'Red' \| 'Burgundy' \| 'Pink' \| 'Yellow' \| 'Orange' \| 'Purple' \| 'Camel' \| 'Khaki' \| 'Navy' \| 'Cream' \| 'Gold' \| 'Silver' \| 'Bronze' | | secondary_color | Secondary color | 'White' \| 'Black' \| 'Gray' \| 'Beige' \| 'Brown' \| 'Blue' \| 'Green' \| 'Red' \| 'Burgundy' \| 'Pink' \| 'Yellow' \| 'Orange' \| 'Purple' \| 'Camel' \| 'Khaki' \| 'Navy' \| 'Cream' \| 'Gold' \| 'Silver' \| 'Bronze' | | pattern | Pattern | 'Solid' \| 'Stripes' \| 'Plaid' \| 'Polka Dots' \| 'Animal Print' \| 'Floral' \| 'Geometric' \| 'Camouflage' \| 'Graphic Print' \| 'Gradient' | | materials | Materials | Array<'Cotton' \| 'Linen' \| 'Wool' \| 'Silk' \| 'Leather' \| 'Cashmere' \| 'Suede' \| 'Polyester' \| 'Nylon' \| 'Elastane' \| 'Viscose' \| 'Synthetic Leather' \| 'Gore-Tex' \| 'Denim' \| 'Knit' \| 'Fleece' \| 'Tweed' \| 'Satin' \| 'Velvet' \| 'Jacquard' \| ...> | | layer (*) | Thermal Layer | 'Base' \| 'Mid' \| 'Outer' | | season | Seasons | 'Winter' \| 'Summer' \| 'Spring/Fall' \| 'All Year' | | use_case | Use cases | Array<'Capsule' \| 'Favorite' \| 'Basic' \| 'Sport' \| 'Work' \| 'Event' \| 'Travel' \| 'Home' \| 'Party' \| 'Beach' \| 'Rain' \| 'Extreme Cold'> | | formality | Formality | 'Very Casual' \| 'Casual' \| 'Smart Casual' \| 'Formal' \| 'Black Tie' | | brand | The brand of the clothing | string |

(*) Required.

CatalogMovie

Movie: Data obtained from catalogation

Object containing the following properties:

| Property | Description | Type | | :--------------------- | :------------------------------------------- | :-------------- | | title (*) | Title of the movie | string | | description (*) | Description of the movie | string | | author (*) | Authors. Writers, directors, producers, etc. | Array<string> | | actors (*) | Actors | Array<string> | | published (*) | Year of publication | string | | genres (*) | Genres | Array<string> |

(*) Required.

CatalogWikipedia

Wikipedia entry: Data obtainable from cataloging

Object containing the following properties:

| Property | Description | Type | | :---------------- | :--------------------------- | :-------------- | | title (*) | Title of the Wikipedia entry | string | | description | Description | string | | excerpt | Extract of the article | string | | author (*) | Authors | Array<string> | | published | Year of publication | string |

(*) Required.

Clothing

Clothing item

Object containing the following properties:

| Property | Description | Type | Default | | :----------------------- | :------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------- | | name (*) | Descriptive name of the clothing item | string | | | garment (*) | Garment Type | 'Undershirts' \| 'Boxers' \| 'Panties' \| 'Bras' \| 'Socks' \| 'T-Shirts' \| 'Polo Shirts' \| 'Shirts' \| 'Blouses' \| 'Tops' \| 'Sweaters' \| 'Hoodies' \| 'Cardigans' \| 'Jackets' \| 'Pants' \| 'Jeans' \| 'Chinos' \| 'Skirts' \| 'Shorts' \| 'Blazers' \| ... | | | slot (*) | Outfit part | 'Top' \| 'Bottom' \| 'Full Body' \| 'Outer' \| 'Footwear' \| 'Accessories' | | | variants | Structural Details | Array<'Sleeveless' \| 'Short Sleeves' \| 'Long Sleeves' \| 'Round Neck' \| 'V-Neck' \| 'High Neck' \| 'Shirt Collar' \| 'Polo Collar' \| 'Boat Neck' \| 'Mandarin Collar' \| 'Funnel Neck' \| 'Hood' \| 'Overshirt' \| 'Cropped' \| 'Long' \| 'Straight Leg' \| 'Skinny' \| 'Wide' \| 'Cargo' \| 'Flared' \| ...> | | | fit | Fit | 'Fitted' \| 'Slim' \| 'Regular' \| 'Relaxed' \| 'Loose' \| 'Oversized' | | | primary_color (*) | Primary color | 'White' \| 'Black' \| 'Gray' \| 'Beige' \| 'Brown' \| 'Blue' \| 'Green' \| 'Red' \| 'Burgundy' \| 'Pink' \| 'Yellow' \| 'Orange' \| 'Purple' \| 'Camel' \| 'Khaki' \| 'Navy' \| 'Cream' \| 'Gold' \| 'Silver' \| 'Bronze' | | | secondary_color | Secondary color | 'White' \| 'Black' \| 'Gray' \| 'Beige' \| 'Brown' \| 'Blue' \| 'Green' \| 'Red' \| 'Burgundy' \| 'Pink' \| 'Yellow' \| 'Orange' \| 'Purple' \| 'Camel' \| 'Khaki' \| 'Navy' \| 'Cream' \| 'Gold' \| 'Silver' \| 'Bronze' | | | pattern | Pattern | 'Solid' \| 'Stripes' \| 'Plaid' \| 'Polka Dots' \| 'Animal Print' \| 'Floral' \| 'Geometric' \| 'Camouflage' \| 'Graphic Print' \| 'Gradient' | | | materials | Materials | Array<'Cotton' \| 'Linen' \| 'Wool' \| 'Silk' \| 'Leather' \| 'Cashmere' \| 'Suede' \| 'Polyester' \| 'Nylon' \| 'Elastane' \| 'Viscose' \| 'Synthetic Leather' \| 'Gore-Tex' \| 'Denim' \| 'Knit' \| 'Fleece' \| 'Tweed' \| 'Satin' \| 'Velvet' \| 'Jacquard' \| ...> | | | layer (*) | Thermal Layer | 'Base' \| 'Mid' \| 'Outer' | | | season | Seasons | 'Winter' \| 'Summer' \| 'Spring/Fall' \| 'All Year' | | | use_case | Use cases | Array<'Capsule' \| 'Favorite' \| 'Basic' \| 'Sport' \| 'Work' \| 'Event' \| 'Travel' \| 'Home' \| 'Party' \| 'Beach' \| 'Rain' \| 'Extreme Cold'> | | | formality | Formality | 'Very Casual' \| 'Casual' \| 'Smart Casual' \| 'Formal' \| 'Black Tie' | | | brand | The brand of the clothing | string | | | cares | Care Instructions | Array<'Hand Wash' \| 'Machine Wash' \| 'Dry Clean' \| 'Cold' \| 'Hot' \| 'Ironing' \| 'Steam Ironing'> | | | status | Status | 'New' \| 'Good' \| 'Worn' \| 'Damaged' \| 'Retire' | 'Good' | | size (*) | | '28' \| '30' \| '32' \| '34' \| '36' \| '37' \| '38' \| '39' \| '40' \| '41' \| '42' \| '43' \| '44' \| '45' \| '46' \| '48' \| 'XS' \| 'S' \| 'M' \| 'L' \| ... | | | measurements | Measurements | Array<number> | | | type (*) | | '[[Resources]]' | | | subtype (*) | | '[[Clothes]]' | | | areas (*) | | Array<'[[Home]]'> | | | color (*) | | '#CB6120' | | | icon (*) | | 'shirt' | | | cover | | string | |

(*) Required.

DetailedArticle

Article: Additional data

Object containing the following properties:

| Property | Description | Type | | :------------------ | :-------------------- | :------------------------------------------------------- | | status (*) | Reading status | 'Pending' \| 'In Progress' \| 'Read' \| 'Consolidated' | | projects (*) | Projects | Array<string> | | topics (*) | Topics | Array<string> | | rating (*) | Rating of the article | number |

(*) Required.

DetailedBook

Book: Additional data

Object containing the following properties:

| Property | Description | Type | | :------------------------ | :----------------- | :------------------------------------------------------- | | status (*) | Reading status | 'Pending' \| 'In Progress' \| 'Read' \| 'Consolidated' | | topics (*) | Topics | Array<string> | | rating (*) | Rating of the book | number | | online_rating (*) | Online rating | number | | last_time_read (*) | Last time read | string | | times_read (*) | Times read | number |

(*) Required.

DetailedClothing

Clothing item: Additional hard-to-obtain data

Object containing the following properties:

| Property | Description | Type | Default | | :-------------- | :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | | cares | Care Instructions | Array<'Hand Wash' \| 'Machine Wash' \| 'Dry Clean' \| 'Cold' \| 'Hot' \| 'Ironing' \| 'Steam Ironing'> | | | status | Status | 'New' \| 'Good' \| 'Worn' \| 'Damaged' \| 'Retire' | 'Good' | | size (*) | | '28' \| '30' \| '32' \| '34' \| '36' \| '37' \| '38' \| '39' \| '40' \| '41' \| '42' \| '43' \| '44' \| '45' \| '46' \| '48' \| 'XS' \| 'S' \| 'M' \| 'L' \| ... | | | measurements | Measurements | Array<number> | |

(*) Required.

DetailedMovie

Movie: Additional data

Object containing the following properties:

| Property | Description | Type | | :--------------------------- | :------------------ | :------------------------------------------ | | status (*) | Watching status | 'Pending' \| 'In Progress' \| 'Completed' | | topics (*) | Topics | Array<string> | | rating (*) | Rating of the movie | number | | online_rating (*) | Online rating | number | | last_time_watched (*) | Last time watched | string | | times_watched (*) | Times watched | number |

(*) Required.

DetailedWikipedia

Wikipedia entry: Additional data

Object containing the following properties:

| Property | Description | Type | | :------------------ | :-------------------- | :------------------------------------------------------- | | status (*) | Reading status | 'Pending' \| 'In Progress' \| 'Read' \| 'Consolidated' | | projects (*) | Projects | Array<string> | | topics (*) | Topics | Array<string> | | rating (*) | Rating of the article | number |

(*) Required.

MetaArticle

Article: Metadata of Note

Object containing the following properties:

| Property | Description | Type | | :---------------- | :----------------- | :----------------------- | | type (*) | | '[[Sources]]' | | format (*) | | '[[Articles]]' | | areas (*) | | Array<'[[Knowledge]]'> | | color (*) | | '#3171B2' | | icon (*) | | 'newspaper' | | banner | | string | | url (*) | URL of the article | string |

(*) Required.

MetaBook

Book: Metadata of Note

Object containing the following properties:

| Property | Description | Type | | :------------------ | :----------------------------------- | :----------------------- | | type (*) | | '[[Sources]]' | | format (*) | | '[[Books]]' | | areas (*) | | Array<'[[Knowledge]]'> | | color (*) | | '#3171B2' | | icon (*) | | 'book' | | cover | | string | | url (*) | URL of the book in Amazon or similar | string | | read_url (*) | URL of the reading of the book | string |

(*) Required.

MetaClothing

Clothing item: Note metadata

Object containing the following properties:

| Property | Type | | :----------------- | :------------------ | | type (*) | '[[Resources]]' | | subtype (*) | '[[Clothes]]' | | areas (*) | Array<'[[Home]]'> | | color (*) | '#CB6120' | | icon (*) | 'shirt' | | cover | string |

(*) Required.

MetaMovie

Movie: Metadata of Note

Object containing the following properties:

| Property | Description | Type | | :------------------- | :---------------------------------- | :------------------------ | | type (*) | | '[[Sources]]' | | format (*) | | '[[Movies]]' | | areas (*) | | Array<'[[Creativity]]'> | | color (*) | | '#BE9207' | | icon (*) | | 'movie' | | cover | | string | | url (*) | URL of the movie in IMDB or similar | string | | watch_url (*) | URL of the movie in streaming | string |

(*) Required.

MetaWikipedia

Wikipedia entry: Metadata of Note

Object containing the following properties:

| Property | Description | Type | Default | | :------------------ | :----------------- | :--------------------------- | :------------ | | type (*) | | '[[Sources]]' | | | format (*) | | '[[Encyclopedia Entries]]' | | | areas (*) | | Array<'[[Knowledge]]'> | | | color (*) | | '#3171B2' | | | icon | Lucide icon. | string | 'wikipedia' | | banner | | string | | | url (*) | URL of the article | string | | | platform (*) | | 'Wikipedia' | |

(*) Required.

Movie

Movie

Object containing the following properties:

| Property | Description | Type | | :--------------------------- | :------------------------------------------- | :------------------------------------------ | | title (*) | Title of the movie | string | | description (*) | Description of the movie | string | | author (*) | Authors. Writers, directors, producers, etc. | Array<string> | | actors (*) | Actors | Array<string> | | published (*) | Year of publication | string | | genres (*) | Genres | Array<string> | | status (*) | Watching status | 'Pending' \| 'In Progress' \| 'Completed' | | topics (*) | Topics | Array<string> | | rating (*) | Rating of the movie | number | | online_rating (*) | Online rating | number | | last_time_watched (*) | Last time watched | string | | times_watched (*) | Times watched | number | | type (*) | | '[[Sources]]' | | format (*) | | '[[Movies]]' | | areas (*) | | Array<'[[Creativity]]'> | | color (*) | | '#BE9207' | | icon (*) | | 'movie' | | cover | | string | | url (*) | URL of the movie in IMDB or similar | string | | watch_url (*) | URL of the movie in streaming | string |

(*) Required.

Note

Note: Union of all note types

Union of the following possible types:

Wikipedia

Wikipedia entry

Object containing the following properties:

| Property | Description | Type | Default | | :------------------ | :--------------------------- | :------------------------------------------------------- | :------------ | | title (*) | Title of the Wikipedia entry | string | | | description | Description | string | | | excerpt | Extract of the article | string | | | author (*) | Authors | Array<string> | | | published | Year of publication | string | | | status (*) | Reading status | 'Pending' \| 'In Progress' \| 'Read' \| 'Consolidated' | | | projects (*) | Projects | Array<string> | | | topics (*) | Topics | Array<string> | | | rating (*) | Rating of the article | number | | | type (*) | | '[[Sources]]' | | | format (*) | | '[[Encyclopedia Entries]]' | | | areas (*) | | Array<'[[Knowledge]]'> | | | color (*) | | '#3171B2' | | | icon | Lucide icon. | string | 'wikipedia' | | banner | | string | | | url (*) | URL of the article | string | | | platform (*) | | 'Wikipedia' | |

(*) Required.