open-index/open-npm huggingface dataset:
npm package: @sesamy/open-web-components
Description: A set of web components that uses the sesamy-js library to interact with the Sesamy API.
Latest version: 1.0.3

# Open Web Components

A set of web components that uses the sesamy-js library to interact with the Sesamy API.

The library does not include the sesamy-js library, so you need to include it in your project.

## Sesamy Login

The `sesamy-login` component is a simple login component that shows a login button if the user isn't logged in. If the user is logged it it instead shows the users avatar.

### Usage

```html
<sesamy-login></sesamy-login>
```

## Sesamy Logout

The `sesamy-logout` component is a simple logout button that uses the Sesamy API to log out the current user. If the user isn't logged in no button is displayed

```html
<sesamy-logout></sesamy-logout>
```
npm package: @sesamy/podcast-schemas
Description: A TypeScript library providing Zod schemas and type definitions for podcast feeds, supporting various formats and extensions.
Latest version: 1.11.0

# podcast-schemas

A TypeScript library providing Zod schemas and type definitions for podcast feeds, supporting various formats and extensions.

## Overview

This library helps you work with podcast feeds by providing:

1. **Validation** - Zod schemas for validating podcast feed structures
2. **Type Safety** - TypeScript types generated from the schemas
3. **Format Support** - Schemas for both XML RSS feeds and JSON formats
4. **Extension Support** - Support for common podcast feed extensions

## Features

### RSS Feed Schemas

The library includes comprehensive schemas for RSS podcast feeds with support for:

- Core RSS 2.0 podcast feed elements
- XML namespaces and attributes
- Feed channels and items with proper validation

### Extensions Support

Built-in support for major podcast feed extensions:

- iTunes (`itunes`) - Apple Podcasts metadata
- Google Play (`googleplay`) - Google Podcasts metadata
- Content (`content`) - Enhanced content descriptions
- Atom (`atom`) - Web feed standard elements
- Sesamy (`sesamy`) - Sesamy-specific podcast elements
- Acast (`acast`) - Acast-specific extensions
- Spotify (`spotify`) - Spotify-specific podcast metadata
- PodAccess (`podaccess`) - Podcast access control extensions
- Media (`media`) - Media RSS specification
- Creative Commons (`creativeCommons`) - Licensing information
- Syndication (`sy`) - Syndication information
- RawVoice (`rawvoice`) - BluBrry PowerPress extensions
- Podcast Index (`podcast`) - Podcast Namespace extensions
- Omny (`omny`) - Omny Studio extensions

### JSON Feed Formats

The library also provides schemas for JSON-based podcast feeds:

- **xml-to-json** - Direct mapping of XML RSS feeds to JSON format
- **jsonfeed** - Support for the JSON Feed format specification
- **sesamy** - Sesamy-specific JSON feed format with support for products, pricing, and subscription models

## Usage

Import and use the schemas and types in your TypeScript projects:

```typescript
import { rssFeedSchema, itemSchema, sesamyFeedSchema, type RssFeed, type Item } from '@sesamy/podcast-schemas';

// Validate an RSS feed
const isValidFeed = rssFeedSchema.safeParse(myFeedData);

// Type-safe access to podcast feed data
const typedFeed: RssFeed = rssFeedSchema.parse(myFeedData);
```

## Installation

```bash
npm install @sesamy/podcast-schemas
# or
yarn add @sesamy/podcast-schemas
```
npm package: @sesamy/web-cache
Description: Efficiently cache HTTP requests in your web applications with `@sesamy/web-cache`, a TypeScript-based caching solution that leverages the Cache API with a fallback to in-memory storage for environments where the Cache API is not available. Designed for si
Latest version: 1.0.4

# @sesamy/web-cache

Efficiently cache HTTP requests in your web applications with `@sesamy/web-cache`, a TypeScript-based caching solution that leverages the Cache API with a fallback to in-memory storage for environments where the Cache API is not available. Designed for simplicity and effectiveness, `@sesamy/web-cache` provides a seamless caching mechanism with automatic fallback, ensuring your application remains fast and responsive, even offline.

## Features

- **Cache API Integration**: Utilizes the modern Cache API for efficient, network-aware caching.
- **Automatic Fallback**: In environments where the Cache API is not available, falls back to an in-memory storage solution.
- **Customizable TTL**: Set a default time-to-live (TTL) for cached items, with the option to customize TTL on a per-item basis.
- **Simplicity**: Offers a simple and intuitive API, making caching easy to integrate into your project.

## Installation

```sh
npm install @sesamy/web-cache
```

Or using Yarn:

```sh
yarn add @sesamy/web-cache
```

## Quick Start

### Importing the Package

First, import `WebCache` from the package:

```typescript
import WebCache from '@sesamy/web-cache';
```

### Creating an Instance

Create an instance of `WebCache`, specifying a cache name and optionally a default TTL (in milliseconds):

```typescript
const myCache = new WebCache<any>('myCacheName', 60000); // Default TTL of 60 seconds
```

### Caching Requests

Use the `put` method to cache your data:

```typescript
const myData = { hello: 'world' };
const requestInfo = 'https://api.example.com/data';

await myCache.put(requestInfo, myData, { ttl: 120000 }); // Custom TTL of 120 seconds
```

### Retrieving Cached Data

Retrieve your data with the `get` method:

```typescript
const cachedData = await myCache.get(requestInfo);
if (cachedData) {
  console.log('Retrieved from cache:', cachedData);
} else {
  console.log('Data not in cache');
}
```

### Deleting Cached Data

Delete cached data using the `delete` method:

```typescript
const isDeleted = await myCache.delete(requestInfo);
console.log('Deleted:', isDeleted);
```

## API Documentation

- **constructor(cacheName: string, defaultTTL?: number)**: Initializes a new instance of `WebCache`.
- **async get(requestInfo: RequestInfo): Promise<T | undefined>**: Retrieves cached data.
- **async put(requestInfo: RequestInfo, value: T, options?: { ttl?: number }): Promise<void>**: Caches data.
- **async delete(requestInfo: RequestInfo): Promise<boolean>**: Deletes cached data.

`RequestInfo` can be a URL string or a `Request` object.

## Contributing

Contributions are welcome! Please open an issue or submit a pull request with your improvements or suggestions.

## License

This project is licensed under the [MIT License](LICENSE.md). Feel free to use and modify the code as you wish.