open-index/open-npm huggingface dataset:
npm package: @hasonocell/mercury-design
Description: Vue3 components library
Author: HasonoCell
Latest version: 1.0.3

# Mercury-Design

![](./public/Mercury-Design.png)

## 文档站点

本文档站点使用 VitePress 生成并使用 Github Pages 部署。
通过访问 [Mercury-Design](https://hasonocell.github.io/Mercury-Design/) 来访问文档站点。
此项目长期维护，封装自己开发过程中的常用组件或学习到的组件。
npm package: @hasparus/favicon-emoji
Description: Generate an awesome emoji-favicon
Latest version: 2.3.1

# :palm_tree: favicon-emoji [![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

Generate an awesome emoji-favicon

example at: [deseat.me](https://deseat.me/)

## Install

### yarn

```sh
yarn global add favicon-emoji
```

### npm

```sh
npm install --global favicon-emoji
```

## Usage

### Generate favicon

```sh
favicon-emoji --emoji ✨

> ✨ Done, emoji favicon saved to ./favicon.ico
```

### Help

```sh
favicon-emoji --help

> 🌴 favicon-emoji

  Usage:
    favicon-emoji [options]

  Options:
    -d, --destination <value>  favicon destination     [default: "./favicon.ico"]
    -e, --emoji <value>        choose emoji            [default: "✨"]
    -m, --minimum              create favicon with selected sizes (16x16, 32x32, 48x48)
    -h, --help                 Output usage information
    -l, --list                 show list of available emojis
    -p, --png <value>          png output path         [default: "./favicon.png"]
    -v, --version              Output the version number
```
npm package: @hasparus/maybe-ts
Description: A lightweight Maybe type for fp-ts
Author: Piotr Monwid-Olechnowicz
Latest version: 0.0.3

# maybe-ts

A lightweight Maybe type for fp-ts

```ts
export type Nothing = null | undefined;
export const Nothing = null as Nothing;

export type Maybe<T> = T | Nothing;
```

### 🤹‍♂️ Instance of your favorite type classes

Edit: Not really. This is not a functor over nullables.

counterexample to composition law of the functor:

![](https://i.imgur.com/kdS3zVL.png)

---

- [x] [Monad1](https://dev.to/gcanti/getting-started-with-fp-ts-monad-6k)
- [x] [Foldable1](https://github.com/gcanti/fp-ts/blob/master/src/Foldable.ts)
- [x] [Traversable1](https://github.com/gcanti/fp-ts/blob/master/src/Traversable.ts)
- [x] [Alternative1](https://github.com/gcanti/fp-ts/blob/master/src/Alternative.ts)
- [x] [Extend1](https://github.com/gcanti/fp-ts/blob/master/src/Extend.ts)
- [x] [Compactable1](https://github.com/gcanti/fp-ts/blob/master/src/Compactable.ts)
- [x] [Filterable1](https://github.com/gcanti/fp-ts/blob/master/src/Filterable.ts)

## Installation

```
npm install @hasparus/maybe-ts

yarn add @hasparus/maybe-ts
```

## Requirements

```
fp-ts ^2.3
TypeScript >= 3.7
```

## Contributing

Found a bug? Have an idea for improvements?
Feel free to shoot a PR!

---

Slides: https://maybe-ts.now.sh/
npm package: @hasparus/nookies
Description: A set of cookie helpers for Next.js
Author: Matic Zavagdlal
Latest version: 2.3.2

# nookies :cookie: :cookie: :cookie:

[![CircleCI](https://circleci.com/gh/maticzav/nookies/tree/master.svg?style=shield)](https://circleci.com/gh/maticzav/nookies/tree/master) [![npm version](https://badge.fury.io/js/nookies.svg)](https://badge.fury.io/js/nookies)

A collection of cookie helpers for Next.js

- SSR support, for setter, parser and destroy
- super light
- perfect for authentication

Setting and destroying cookies also works on server-side.

## Quick start

`npm install --save nookies`

### SSR cookies

```js
import { parseCookies, setCookie, destroyCookie } from 'nookies'

export default class Me extends React.Component {
  static async getInitialProps(ctx) {
    // Parse
    parseCookies(ctx)

    // Set
    setCookie(ctx, 'token', token, {
      maxAge: 30 * 24 * 60 * 60,
      path: '/',
    })

    // Destroy
    destroyCookie(ctx, 'token')
  }

  render() {
    return <div>My profile</div>
  }
}
```

OR

```js
import nookies from 'nookies'

export default class Me extends React.Component {
  static async getInitialProps(ctx) {
    // Parse
    nookies.get(ctx)

    // Set
    nookies.set(ctx, 'token', token, {
      maxAge: 30 * 24 * 60 * 60,
      path: '/',
    })

    // Destroy
    nookies.destroy(ctx, 'token')
  }

  render() {
    return <div>My profile</div>
  }
}
```

### Cookies on the client

```js
import { parseCookies } from 'nookies'

export default class Me extends React.Component {
  handleClick = () => {
    // Simply omit context parameter.
    // Parse
    const cookies = parseCookies()
    console.log({ cookies })
    // Set
    setCookie(null, 'token', token, {
      maxAge: 30 * 24 * 60 * 60,
      path: '/',
    })
    // Destroy
    destroyCookie(null, 'token')
  }

  render() {
    return <button onClick={this.handleClick}>Click Me!</button>
  }
}
```

### Reference

> For client side usage, omit the `ctx` parameter. You can do so by setting it to an empty object (`{}`).

#### `parseCookies(ctx, options)` or `cookies.get(ctx, options)`

- **ctx:** `Next.js context`
- **options:**
  - **decode:** `a custom resolver function (default: decodeURIComponent)`

#### `setCookie(ctx, name, value, options)` or `cookies.set(ctx, name, value, options)`

- **ctx:** `(Next.js context)`
- **name:** cookie name
- **value:** cookie value
- **options:**
  - **domain**
  - **encode**
  - **expires**
  - **httpOnly**
  - **maxAge**
  - **path**
  - **sameSite**
  - **secure**

#### `destroyCookie(ctx, name, options)` or `cookies.destroy(ctx, 'token', options)`

- **ctx:** (Next.js context)
- **name:** cookie name
- **options:**
  - **domain**
  - **path**

## License

MIT
npm package: @hasparus/springy-svgy-buttons
Description: Two funny buttons I made to try [react-spring](https://github.com/drcmda/react-spring).
Author: hasparus
Latest version: 1.1.1

# Springy Svgy Buttons

Two funny buttons I made to try [react-spring](https://github.com/drcmda/react-spring).

You can see them [here on github pages](https://hasparus.github.io/springy-svgy-buttons/).

## Credits

Started from wonderful [typescript library starter](https://github.com/alexjoverm/typescript-library-starter.git) by [@alexjoverm](https://twitter.com/alexjoverm) and bunch of cool contributors.
npm package: @haspcms/sitemap
Description: A helper package for fetching sitemap pages and content entries from HASP CMS.
Author: localnetwork
Latest version: 1.2.3

# HASP Sitemap

## Overview

**HASP Sitemap** is a lightweight sitemap generator designed for HASP CMS–powered projects.  
It helps improve SEO by automatically generating XML sitemaps for pages and content entries.

## Features

- ⚡ **Automatic sitemap generation** – no manual XML editing needed
- 📄 **Supports multiple page/content types**
- 🔗 **Customizable URL patterns**
- 🔍 **SEO-friendly output**, fully compatible with search engines
- 🛠️ **Easy integration with Next.js**

## Installation

```bash
npm install @haspcms/sitemap
```

## Configuration

1. Create a `sitemap.config.js` file in the root of your project.
2. Load environment variables and configure the generator:

```javascript
require("dotenv").config(); // load .env at the very top

const { generateSitemap, setConfig } = require("@haspcms/sitemap");

const envVars = {
  HASP_TENANT_API: process.env.HASP_TENANT_API,
  HASP_RATE_LIMIT_KEY: process.env.HASP_RATE_LIMIT_KEY,
  HASP_MICROSITE_ID: process.env.HASP_MICROSITE_ID,
  NEXT_PUBLIC_SITE_URL: process.env.NEXT_PUBLIC_SITE_URL,
  HASP_CONTENT_TYPES: process.env.HASP_CONTENT_TYPES,
  HASP_TENANT_STRICT_API_ENABLED: process.env.HASP_TENANT_STRICT_API_ENABLED,
  HASP_TENANT_API_KEY: process.env.HASP_TENANT_API_KEY,
  HASP_TENANT_SECRET_KEY: process.env.HASP_TENANT_SECRET_KEY,
};

setConfig(envVars);

(async () => {
  try {
    await generateSitemap({
      outDir: "./public",
      siteUrl: envVars.NEXT_PUBLIC_SITE_URL,
      sitemapSize: 5000,
    });
    console.log("✅ Sitemap generated successfully!");
  } catch (err) {
    console.error("❌ Sitemap generation failed:", err);
  }
})();
```

3. After creating the sitemap.config.js file, add a `prebuild` script that runs `node sitemap.config.js` in your `package.json` project file.

## Output

The generator produces standard XML sitemap files inside `./public`:

```
/public/sitemap.xml       # Sitemap index
/public/sitemap-0.xml     # First chunk
/public/sitemap-1.xml     # Additional chunks (if needed)
```

These files are ready to be served and discovered by search engines.

## Example `.env` requirements

```env
HASP_TENANT_API="http://your-tenant-domain-api.com"
HASP_MICROSITE_ID=1234
HASP_RATE_LIMIT_KEY="your-rate-limit-key"
HASP_CONTENT_TYPES="news,boilerplate-articles"
HASP_TENANT_API: process.env.HASP_TENANT_API,
HASP_TENANT_STRICT_API_ENABLED=true/false
HASP_TENANT_API_KEY="your-api-key"
HASP_TENANT_SECRET_KEY="your-secret-key"
```

## License

This project is licensed under the [MIT License](./LICENSE).

## View Repository

`https://github.com/haspcms/sitemap`

---

💡 **Tip:** For best SEO results, make sure your sitemap URLs are accessible at  
`https://yourdomain.com/sitemap.xml`.
npm package: @hass-blocks/hass-ts
Description: A client for the Home Assistant HTTP and Websocket APIs written in TypeScript
Author: Ben Wainwright
Latest version: 0.15.1

# @hass-blocks/hass-ts

A strongly-typed and comprehensively documented client for the Home Assistant API. Note, this package is the underlying client used by the Hass Blocks project, but it can be used independently.

## Installation

```
npm install @hass-blocks/hass-ts
```

## Usage

```TypeScript
import { getConfig, initialiseHass } from '@initialise';

const client = await initialiseHass(getConfig());

const states = await client.getStates();
```

## Configuration

Note - the `getConfig()` function will read your connection details (including credentials) from environment variables. See the API docs for more details.
npm package: @hassaan03166/react-native-bilerplate-ui-components-package
Description: test
Author: Morbious
Latest version: 0.1.7

# @hassaan03166/react-native-bilerplate-ui-components-package

test

## Installation

```sh
npm install @hassaan03166/react-native-bilerplate-ui-components-package
```

## Usage


```js
import { Block } from '@hassaan03166/react-native-bilerplate-ui-components-package';

// ...

<Block {...props}>
    {children}
 </Block>
```


## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)

---
npm package: @hassaans/git-hotspots
Description: Identify frequently co-changed files in a git repository
Latest version: 0.1.0

# git-hotspots

Identify frequently co-changed files in a git repository. Find hidden coupling between files by analyzing which files tend to change together across commits.

## Installation

```bash
npm install -g git-hotspots
```

Or run directly with npx:

```bash
npx git-hotspots
```

## Usage

Run inside any git repository:

```bash
git-hotspots
```

### Flags

| Flag | Description |
|------|-------------|
| `--json` | Output results as JSON |
| `--since <period>` | Only consider commits since this date (e.g. `"6 months ago"`, `2024-01-01`) |
| `--min-coupling <n>` | Minimum coupling score between 0 and 1 (default: all) |
| `--min-commits <n>` | Minimum number of shared commits (default: all) |
| `--exclude <patterns...>` | Additional glob patterns to exclude (e.g. `"*.md" "*.json"`) |
| `--limit <n>` | Maximum number of results to display |
| `-V, --version` | Output the version number |
| `-h, --help` | Display help |

## Example Output

### Terminal (default)

```
$ git-hotspots --limit 5

File A      File B            Score  Commits
----------  ----------------  -----  -------
.gitignore  LICENSE           1.00   1
.gitignore  src/types.ts      1.00   1
.gitignore  tsconfig.json     1.00   1
.gitignore  vitest.config.ts  1.00   1
LICENSE     src/types.ts      1.00   1
```

### JSON

```
$ git-hotspots --json --limit 3

[
  {
    "fileA": ".gitignore",
    "fileB": "LICENSE",
    "score": 1,
    "sharedCommits": 1,
    "commitHashes": ["b8598025f0086d4e5b697c3b6973286bb4f4ffa1"]
  },
  {
    "fileA": ".gitignore",
    "fileB": "src/types.ts",
    "score": 1,
    "sharedCommits": 1,
    "commitHashes": ["b8598025f0086d4e5b697c3b6973286bb4f4ffa1"]
  },
  ...
]
```

### Filtering

```bash
# Only recent changes
git-hotspots --since "3 months ago"

# High-coupling pairs with at least 5 shared commits
git-hotspots --min-coupling 0.7 --min-commits 5

# Exclude test and config files
git-hotspots --exclude "*.test.ts" "*.config.*"

# Top 10 results as JSON
git-hotspots --json --limit 10
```

## License

MIT
npm package: @hassaans/load-script
Description: Dynamic script loading for browser
Latest version: 1.0.0

# load-script

Dynamic script loading.

## Installation

via component

```
$ component install eldargab/load-script
```

via npm

```
$ npm install load-script
```

## API
`load-script` appends a `script` node to the `<head>` element in the dom.

`require('load-script')` returns a function of the following interface:  `function(url[, opts][, cb]) {}`

### url
Any url that you would like to load.  May be absolute or relative.

### [, opts]
A map of options.  Here are the currently supported options:

* `async` - A boolean value used for `script.async`.  By default this is `true`.
* `attrs` - A map of attributes to set on the `script` node before appending it to the DOM.  By default this is empty.
* `charset` - A string value used for `script.charset`.  By default this is `utf8`.
* `text` - A string of text to append to the `script` node before it is appended to the DOM.  By default this is empty.
* `type` - A string used for `script.type`.  By default this is `text/javascript`.

### [, cb]
A callback function of the following interface: `function(err, script) {}` where `err` is an error if any occurred and `script` is the `script` node that was appended to the DOM.

## Example Usage

```javascript
var load = require('load-script')

load('foo.js', function (err, script) {
  if (err) {
    // print useful message
  }
  else {
    console.log(script.src);// Prints 'foo'.js'
    // use script
    // note that in IE8 and below loading error wouldn't be reported
  }
})
```

## License

MIT
npm package: @hassaine/chatapp-backend
Description: API for bbs
Author: Samchon
Latest version: 3.0.3

# SDK for Client Developers
## Outline
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Hassaine/chatapp-backend/tree/master/LICENSE)
[![npm version](https://img.shields.io/npm/v/@Hassaine/chatapp-backend.svg)](https://www.npmjs.com/package/@Hassaine/chatapp-backend)
[![Build Status](https://github.com/Hassaine/chatapp-backend/workflows/build/badge.svg)](https://github.com/Hassaine/chatapp-backend/actions?query=workflow%3Abuild)
[![Guide Documents](https://img.shields.io/badge/guide-documents-forestgreen)](https://nestia.io/docs/)

[`@Hassaine/chatapp-backend`](https://github.com/Hassaine/chatapp-backend) provides SDK (Software Development Kit) for convenience.

For the client developers who are connecting to this backend server, [`@Hassaine/chatapp-backend`](https://github.com/Hassaine/chatapp-backend) provides not API documents like the Swagger, but provides the API interaction library, one of the typical SDK (Software Development Kit) for the convenience.

With the SDK, client developers never need to re-define the duplicated API interfaces. Just utilize the provided interfaces and asynchronous functions defined in the SDK. It would be much convenient than any other Rest API solutions.

```bash
npm install --save @Hassaine/chatapp-backend
```




## Usage
Import the `@Hassaine/chatapp-backend` and enjoy the auto-completion.

```typescript
import { ArrayUtil, RandomGenerator, TestValidator } from "@nestia/e2e";
import { randint } from "tstl";
import typia from "typia";

import api from "@Hassaine/chatapp-backend/lib/index";
import { IBbsArticle } from "@Hassaine/chatapp-backend/lib/structures/bbs/IBbsArticle";

import { prepare_random_file } from "./internal/prepare_random_file";

export const test_api_bbs_article_create = async (
  connection: api.IConnection,
): Promise<void> => {
  // PREPARE INPUT DATA
  const input: IBbsArticle.ICreate = {
    writer: RandomGenerator.name(),
    password: RandomGenerator.alphaNumeric(8),
    title: RandomGenerator.paragraph()(),
    body: RandomGenerator.content()()(),
    format: "md",
    files: ArrayUtil.repeat(randint(0, 3))(() => prepare_random_file()),
  };

  // DO CREATE
  const article: IBbsArticle = await api.functional.bbs.articles.create(
    connection,
    input,
  );
  typia.assertEquals(article);

  // VALIDATE WHETHER EXACT DATA IS INSERTED
  TestValidator.equals("create")({
    snapshots: [
      {
        format: input.format,
        title: input.title,
        body: input.body,
        files: input.files,
      },
    ],
    writer: input.writer,
  })(article);

  // COMPARE WITH READ DATA
  const read: IBbsArticle = await api.functional.bbs.articles.at(
    connection,
    article.id,
  );
  typia.assertEquals(read);
  TestValidator.equals("read")(read)(article);
};
```