open-index/open-npm huggingface dataset:
npm package: @semon/semon-ui
Description: 🍪 一套简单的React组件库
Author: Hoofoo
Latest version: 0.0.6

<p align="center">
<img width="80" align="center" src="https://image-1256107964.cos.ap-beijing.myqcloud.com/blog/2019-02-22-logo.jpg">
</p>
<h1 align="center">Semon UI</h1>
<div align="center">

[![Build Status](https://travis-ci.org/Hoofoo-WHU/semon-ui.svg?branch=master)](https://travis-ci.org/Hoofoo-WHU/semon-ui)
[![Codecov](https://img.shields.io/codecov/c/github/hoofoo-WHU/semon-ui.svg)](https://codecov.io/gh/Hoofoo-WHU/semon-ui)
[![License](https://img.shields.io/github/license/hoofoo-WHU/semon-ui.svg?style=flat)](LICENSE)
[![install size](https://packagephobia.now.sh/badge?p=@semon/semon-ui)](https://packagephobia.now.sh/result?p=@semon/semon-ui)
[![gzip:js](http://img.badgesize.io/https://unpkg.com/@semon/semon-ui/dist/index.js?compression=gzip&label=gzip:%20js)](https://www.npmjs.com/package/@semon/semon-ui)
[![gzip:css](http://img.badgesize.io/https://unpkg.com/@semon/semon-ui/dist/index.css?compression=gzip&label=gzip:%20css)](https://www.npmjs.com/package/@semon/semon-ui)
[![downloads](https://img.shields.io/npm/v/@semon/semon-ui.svg)](https://www.npmjs.com/package/@semon/semon-ui)
[![version](https://img.shields.io/npm/dt/@semon/semon-ui.svg)](https://www.npmjs.com/package/@semon/semon-ui)

</div>

## ✨ 介绍
一套简单的React组件库，目的是练手，不要在项目中使用

## 📦 安装
```shell
npm install @semon/semon-ui --save
```
```shell
yarn add @semon/semon-ui
```

## 🚀 开始使用
```jsx
import { Button } from '@semon/semon-ui'
ReactDOM.render(<Button />, container)
```
引入css样式：
```js
import '@semon/semon-ui/dist/index.css'
```
按需引入：
```jsx
import Button from '@semon/semon-ui/dist/Button'
import '@semon/semon-ui/dist/Button.css'
```
<!-- 使用babel-plugin-import
```js
[
  "import", 
  { 
    "libraryName": "@semon/semon-ui", 
    "libraryDirectory": "dist",
    "style": (name) => `@semon/semon-ui/dist/${name}.css`
  }
]

``` -->
## 🔗 链接
- [更新日志](CHANGELOG.md)
npm package: @semos-labs/create-glyph
Description: Scaffold a new Glyph terminal UI app
Latest version: 0.2.10

<p align="center">
  <img src="https://raw.githubusercontent.com/semos-labs/glyph/main/images/Glyph.png" alt="Glyph" width="200">
</p>

<h1 align="center">create-glyph</h1>

<p align="center">
  <strong>Scaffold a new <a href="https://github.com/semos-labs/glyph">Glyph</a> terminal UI app in seconds</strong>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/@semos-labs/create-glyph"><img src="https://img.shields.io/npm/v/@semos-labs/create-glyph?color=crimson&logo=npm" alt="npm version"></a>
  <img src="https://img.shields.io/badge/License-MIT-blue" alt="MIT License">
</p>

---

## Usage

```bash
# bun
bun create @semos-labs/glyph my-app

# npm
npm create @semos-labs/glyph my-app

# pnpm
pnpm create @semos-labs/glyph my-app

# yarn
yarn create @semos-labs/glyph my-app
```

This will create a `my-app` directory with a ready-to-run Glyph project — a small todo app that demonstrates components, focus management, keybinds, and more.

```bash
cd my-app && bun dev
```

## What you get

- **TypeScript** project with `tsconfig.json` pre-configured
- **Example app** showcasing `Box`, `Text`, `Input`, `Button`, `Checkbox`, `Progress`, `Keybind`, `JumpNav`, and more
- **Dependencies** installed automatically

## What is Glyph?

[Glyph](https://github.com/semos-labs/glyph) is a React renderer for the terminal. Build real TUI applications with the same component model you use on the web — flexbox layout (powered by Yoga), focus management, keyboard input, and efficient diff-based rendering.

```
npm install @semos-labs/glyph
```

→ **[Full documentation & examples](https://github.com/semos-labs/glyph)**

## License

MIT
npm package: @semperfortis/snowflakejs
Description: Twitter's Snowflake implementation for javascript
Author: SemperFortis
Latest version: 1.0.1

# snowflakejs

SnowflakeJS is a Twitter snowflake generator and deconstructor for JavaScript based on [snowflake-js](https://github.com/luvaeria/snowflake-js).

![npm](https://img.shields.io/npm/v/@semperfortis/snowflakejs?style=for-the-badge) ![npm](https://img.shields.io/npm/dt/@semperfortis/snowflakejs?style=for-the-badge) ![CircleCI](https://img.shields.io/circleci/build/github/SemperFortis/erlpackjs?style=for-the-badge&token=0529fcb998f249c725bc399db60846d10ccf5551) ![Maintenance](https://img.shields.io/maintenance/yes/2021?style=for-the-badge)

## Installation

```bash
$ yarn add @semperfortis/snowflakejs
```

## Usage

### Generate a snowflake

```js
import { generate } from '@semperfortis/snowflakejs';

// optional epoch, defaults to current date
const snowflake = generate({ epoch: 1577833200000 });

console.log(snowflake);
```

### Return snowflake creation date

```js
import { deconstruct } from '@semperfortis/snowflakejs';

// optional epoch, defaults to current date
const date = deconstruct(snowflake, { epoch: 1577833200000 });

console.log(date);
```
npm package: @sempervirens/cacher
Description: A way to cache HTML pages in a MongoDB database
Author: Luke Dupuis
Latest version: 0.1.1

# Sempervirens Cacher

A way to cache HTML pages in a MongoDB database.

![Tests badge](https://github.com/lukedupuis/sempervirens-cacher/actions/workflows/main.yml/badge.svg?event=push) ![Version badge](https://img.shields.io/static/v1?label=Node&labelColor=30363c&message=16.x&color=blue) ![Version badge](https://img.shields.io/static/v1?label=MongoDB&labelColor=30363c&message=4.4&color=blue)

## Installation

`npm i @sempervirens/dao`

## Usage

1. Configure the Sempervirens DAO.

2. When a request comes to the server for a page for the first time, get the full URL and HTML to be returned.

3. Cache the page to the database with Sempervirens Cacher.

4. When a request comes to the server for the page again, return the HTML from the database rather than re-rendering it.

## API

`url` is a unique key.

### create

Returns a record. If the record already exists, instead of re-rendering the HTML, it returns the existing HTML from the database.

| Prop  | Type | Description |
|-------|------|-------------|
| `url` | string | Required. The full URL from a request for an HTML page resource. |
| `html` | string | Required. The complete HTML body to be returned in the response. |

### find

Returns a record that matches the URL.

| Prop  | Type | Description |
|-------|------|-------------|
| `url` | string | Required. Finds a record by URL. |

### clear

If `url` is given, it clears only the record for the given URL. Otherwise, it clears all records.

| Prop  | Type | Description |
|-------|------|-------------|
| `url` | string | Optional. Clears the record with the given URL. |
npm package: @sempervirens/plugin-session-endpoints
Description: A set of endpoints for maintaining a JWT session on an Express server
Author: Luke Dupuis
Latest version: 0.1.4

# Sempervirens Plugin: Session Endpoints

A set of endpoints for maintaining a JWT session on an Express server.

![Tests badge](https://github.com/lukedupuis/sempervirens-plugin-session-endpoints/actions/workflows/main.yml/badge.svg?event=push) ![Version badge](https://img.shields.io/static/v1?label=Node&labelColor=30363c&message=16.x&color=blue)

## Installation

`npm i @sempervirens/plugin-session-endpoints`

## Usage

The following enables sending requests to `POST /api/session/start`, `GET /api/session/validate`, `GET /api/session/reset`, and `GET /api/session/stop` to manage a JWT session.

```
import Server from '@sempervirens/server';
import { sessionEndpoints } from '@sempervirens/plugins';

new Server({
  sites: [
    {
      domain: 'site-1',
      endpoints: [
        ...sessionEndpoints()
      ]
    }
  ]
}).start();
```

## API

After retrieving a JWT token with `POST /api/session/start`, the token must be added to the `"Authorization": "Bearer {token}"` header in requests to `validate`, `reset`, and `stop`. The token may also be added to the header in order to validate secure pages and other secure API endpoints. If `isSecure` is `true` on any Sempervirens endpoint, then the system validates the token before serving the page or resource.

### POST /api/session/start

Generates and returns a JWT token containing the data passed in the body of the post request.

### GET /api/session/validate

Returns `isValid` to indicate whether the token passed in the `Authorization` header is valid.

### GET /api/session/reset

Returns a new token. The data from the fist token, which was passed in the `Authorization` header, is transferred to the new token. `origIat` is added to the new token to show when the first token was originally created.

### GET /api/session/stop

Invalidates the token passed in the `Authorization` header.
npm package: @sempervirens/tools
Description: A set of tools for various purposes
Author: Luke Dupuis
Latest version: 0.5.5

# Sempervirens Tools

A set of tools for various purposes

![Tests badge](https://github.com/lukedupuis/sempervirens-tools/actions/workflows/main.yml/badge.svg?event=push) ![Version badge](https://img.shields.io/static/v1?label=Node&labelColor=30363c&message=16.x&color=blue)

## Installation

`npm i @sempervirens/tools`;

## Tools

### Server Tools

#### startServer

Starts a Node Express server while keeping a set of sockets in order to stop the server later. (Mainly for use in tests.)

#### stopServer

Stops a server by ID started with `startServer`. (Mainly for use in tests.)

#### stopAllServers

Stops all servers started with `startServer`. (Mainly for use in tests.)

### timestamp

Uses Moment.js to return a default format `[MM-DD-YY hh:mm:ssa]` and formattable string.

### duration

Calculates a duration between a `start` and `end` parameter, both of which may be a `moment` or `Date` object. If not given, `end` is the current moment.