open-index/open-npm huggingface dataset:
npm package: @hyperline/zod
Description: TypeScript-first schema declaration and validation library with static type inference
Author: Colin McDonnell
Latest version: 3.24.102

# Improved zod

## Added features

- ZodObject.validate()
- ZodArray.validate()
- ZodString.validate()

## dev

- This repo should be in sync with the official repo ( https://github.com/colinhacks/zod )
  - Whenever there are changes in the official repo, we should rebase our changes on top.
- Every change we add should have tests
- Every merge into the main branch will trigger a release, if the version in the package.json is modified

## Version number

Keep the original version number, and add our version on the last 2 digits. `X.Y.Znn` -> `nn` being our version number

Example:
If zod's version is `3.22.4`, our first version will be `3.22.401`, then `3.22.402` etc...

If zod's version is `3.22.10`, our first version will be `3.22.1001`

When we update zod, we can go back to `01` as our version number
npm package: @hyperlink/open-window-service
Description: http service that queries Open Weather API and Ecobee to answer if you should open your window for fresh air
Author: Xiaoxin Lu
Latest version: 1.0.0

# Hey Siri, should I open my window?

http service that queries Open Weather API and Ecobee to answer the question if you should open your window. Create an iOS shortcut to ask Siri if you should open your window.

## Requirements

#### To register for an account:

* Goto https://www.ecobee.com/developers
* Click on **Become a Developer**
* Sign in with your ecobee account
* Agree to the terms

> ⚠️ The developer sign up doesn't play well with two-factor authentication turned on. If you have 2FA enabled make sure you disable it on your phone before signing up. You can always reenable it after signing up.

### Open Weather Map API Account

* Sign up for an account on: https://openweathermap.org/
* Once confirming the sign up e-mail
* Navigate to **My API Keys**
* Copy the appId from your apps page

> ⚠️ App IDs takes time to get enabled so if you get an error abount an invalid app ID wait awhile.

### Shortcuts app installed on your iOS Device

Download this app if you don't already have it on your phone:
[https://apps.apple.com/us/app/shortcuts/id1462947752]()

## Installation

### Clone repo or npm install

```
npm install -g @hyperlink/open-window-service
```


### Get token to access ecobee

This step is a bit manual unfortunately. I didn't take any time to make this easy because is a one time taks. You're all setup once you get your `refresh_token`.

#### Login to Ecobee account

Once Ecobee developer account is registered login to your account and click **Developer** link to create an app. Fill out Application Name, Application Summary and make note of the **API key**. This key is what you would use in place for `ECOBEE_CLIENT_ID` environment variable

Make an http GET to  `https://api.ecobee.com/authorize?client_id=<your client ID>&response_type=ecobeePin&scope=smartWrite`

that gives you a response:

```json
{
    "ecobeePin": "XXXX-ABCD",
    "code": "<code needed for next request>",
    "interval": 5,
    "expires_in": 900,
    "scope": "openid,offline_access,smartWrite"
}
```

Then make a http `POST` to 
`https://api.ecobee.com/token?grant_type=refresh_token&code=<code from above>&client_id=<your client ID>`

To get the follow result.

```json
{
    "access_token": "<really long string>",
    "token_type": "Bearer",
    "refresh_token": "<refresh_token>",
    "expires_in": 3600,
    "scope": "openid,smartWrite,offline_access"
}
```

`ECOBEE_REFRESH_TOKEN` should be the `refresh_token` result.

### Get app ID from Open Weather

Set the app ID to `WEATHER_APP_ID`



## Start the service

You can create a script to launch this or use PM2.


```
module.exports = {
  apps: [{
    name: 'Open Window Service',
    exec_mode: 'fork',
    instances: 1,
    script: 'src/index.ts',
    time: true,
    watch: 'src',
    env: {
      WEATHER_APP_ID: '<YOUR APP ID>',
      ECOBEE_REFRESH_TOKEN: '<YOUR TOKEN>',
      ECOBEE_CLIENT_ID: '<YOUR CLIENT ID>',
      // port the endpoint it's going to be on
      PORT: 3000
    }
  }]
};

```
npm package: @hyperlink/plex-api-credentials
Description: Credentials authentication for plex-api
Author: Phillip Johnsen
Latest version: 2.0.0

# plex-api-credentials [![Build Status](https://api.travis-ci.org/phillipj/node-plex-api-credentials.png)](http://travis-ci.org/phillipj/node-plex-api-credentials)

[plex-api](https://www.npmjs.com/package/plex-api) authenticator module which provides PlexHome credentials authentication.

## Usage

```js
var PlexAPI = require('plex-api');
var credentials = require('plex-api-credentials');

var userAndPass = credentials({
    username: 'foo',
    password: 'bar',
    managedUser: {    // Required for Plex managed users
    	name: "Family",
    	pin: "1234" // Optional four digit pin code if user is protected
    }
});

var client = new PlexAPI({
    hostname: '192.168.0.1',
    authenticator: userAndPass
});

// use PlexAPI client as usual
client.find('/library/sections', ...);
```

## Events

### `token`

Emitted whenever a token has been retrieved from plex.tv.

### Usage

```js
userAndPass.on('token', function(token){
    // possibly cache retrieved token here?
});
```

## Contributing

Contributions are more than welcome! Create an issue describing what you want to do.
If that feature is seen to fit this project, send a pull request with the changes accompanied by tests.

## Changelog

### v2.0.0

- Use plex-api-headers for generating X-Plex headers
- Changed .authenticate(apiOptions) -> .authenticate(plexApi)

### v1.0.0

Initial release. Pretty much extracted as was when the code once existed in the plex-api module itself.

## License
(The MIT License)

Copyright (c) 2015 Phillip Johnsen &lt;johphi@gmail.com&gt;

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @hyperlink/pushover
Description: Pushover.net client written in TypeScript
Author: Xiaoxin Lu
Latest version: 1.0.0

# Pushover Client

A simple lightweight client for Pushover notifications.

# Installation

```bash
npm install @hyperlink/pushover
```

# Usage

```typescript
import { Pushover } from '@hyperlink/pushover';

async function sendMessage() {
  const pushover = new Pushover('<YOUR TOKEN>', '<USER TOKEN>');
  await pushover.sendMessage({
    message: 'Test message',
    title: 'Test title',
  });
}

sendMessage();
```

### Message Format

```typeScript
interface PushoverMessage {
    message: string;
    title?: string;
    sound?: string;
    device?: string;
    priority?: number;
    url?: string;
    url_title?: string;
    attachment?: string; // path to the file
    timestamp?: string;
}
```
npm package: @hyperlink/splitpgn
Description: Splits a PGN file into smaller files no more than set kb limit.
Author: Xiaoxin Lu
Latest version: 0.1.0

# Split PGN file

Splits a PGN file into smaller files no more than set kb limit.

## Install

```
npm install -g @hyperlink/splitpgn
```

## Usage

```
splitpgn <source file name> [--staticName <split prefix>] [--kbLimit <limit>]
```

* `staticName` is optional by default is `chess`
* `kbLimit` is optional and by default splits the file into 100kb pieces
npm package: @hyperlink/strip-markdown-oneline
Description: Converts markdown text to a single line without markdown syntax
Author: staltz.com
Latest version: 2.0.0

# strip-markdown-oneline

Given a markdown input as string, returns a string where all markdown syntax is removed, and no new lines exist.

## Installation

```sh
npm install strip-markdown-oneline
```

## Usage

### Input

```md
# Title

> blockquote

## Header 2

This is a link: [search engine](https://duckduckgo.com)
```

### Function call

```js
const stripMarkdownOneline = require('strip-markdown-oneline')

const output = stripMarkdownOneline(input);

console.log(output)
```

### Output

```
Title blockquote Header 2 This is a link: search engine
```

## License

[MIT](LICENSE)
npm package: @hyperlink/ups-status
Description: Node.Js API to get status of UPS connected to your MacOS
Author: Xiaoxin Lu
Latest version: 1.0.1

# UPS Status 🔌 for Node JS
![Version](https://img.shields.io/badge/version-1.0.0-blue.svg?cacheSeconds=2592000)
[![License: ISC](https://img.shields.io/badge/License-ISC-yellow.svg)](#)
[![Twitter: hyperlink](https://img.shields.io/twitter/follow/hyperlink.svg?style=social)](https://twitter.com/hyperlink)

Node.Js API to get status of UPS connected to your MacOS

## Install

```sh
npm install @hyperlink/ups-status
```

## Usage

Two different ways to use this module. You can Promise interface or EventEmitter interface.

### Promise interface

```js
import { isOnBattery, isOnAc } from '@hyperlink/ups-status';

// in some async function
if (await isOnBattery()) {
  console.log('Mac is running on Battery');
} else {
  console.log('Mac is on AC');
}

// or

// in some async function
if (await isOnAc()) {
  console.log('Mac is on AC');
  } else {
  console.log('Mac is running on Battery');
}
```

### EventEmitter interface.

`UpsEmitter` will emit `'ac'` event with `true` or `false` value when AC is connected or not.

```js
import { UpsEmitter } from '@hyperlink/ups-status';

const ups = new UpsEmitter();
ups.on('ac', isOnAc => console.log('computer is on ac:', isOnAc));
```


## Author

👤 **Xiaoxin Lu <javascript@yahoo.com>**

* Twitter: [@hyperlink](https://twitter.com/hyperlink)
* Github: [@hyperlink](https://github.com/hyperlink)

## Show your support

Give a ⭐️ if this project helped you!
npm package: @hyperlite-ai/darwin-arm64
Description: HyperLite binary for macOS Apple Silicon
Latest version: 0.2.0

# HyperLite

A terminal-native local LLM chat client. Fast, offline, and agentic — runs entirely on your machine using [Ollama](https://ollama.com).

## Install

```bash
npm install -g hyperlite-ai
```

## Run

```bash
hyperlite
```

## Requirements

- [Ollama](https://ollama.com) installed and running
- A downloaded model (e.g. `ollama pull qwen2.5-coder:14b`)
- Node.js 16+

## Features

- Chat with any local Ollama model
- Agentic coding tools — read, write, edit, search files directly from chat
- Multi-session history with persistent storage
- Tabbed command palette (Ctrl+P)
- Visual folder browser (Ctrl+O) — open any repo as working directory
- Download models from inside the app
- Syntax-highlighted responses with markdown rendering
- Hardware detection — recommends models for your GPU/RAM

## Supported Platforms

| Platform | Architecture |
|----------|-------------|
| Windows  | x64 |
| Linux    | x64 |
| macOS    | Apple Silicon (arm64) |
| macOS    | Intel (x64) |

## Source

[github.com/Sean504/HyperLite](https://github.com/Sean504/HyperLite)
npm package: @hyperlite-ai/linux-x64
Description: HyperLite binary for Linux x64
Latest version: 0.2.0

# HyperLite

A terminal-native local LLM chat client. Fast, offline, and agentic — runs entirely on your machine using [Ollama](https://ollama.com).

## Install

```bash
npm install -g hyperlite-ai
```

## Run

```bash
hyperlite
```

## Requirements

- [Ollama](https://ollama.com) installed and running
- A downloaded model (e.g. `ollama pull qwen2.5-coder:14b`)
- Node.js 16+

## Features

- Chat with any local Ollama model
- Agentic coding tools — read, write, edit, search files directly from chat
- Multi-session history with persistent storage
- Tabbed command palette (Ctrl+P)
- Visual folder browser (Ctrl+O) — open any repo as working directory
- Download models from inside the app
- Syntax-highlighted responses with markdown rendering
- Hardware detection — recommends models for your GPU/RAM

## Supported Platforms

| Platform | Architecture |
|----------|-------------|
| Windows  | x64 |
| Linux    | x64 |
| macOS    | Apple Silicon (arm64) |
| macOS    | Intel (x64) |

## Source

[github.com/Sean504/HyperLite](https://github.com/Sean504/HyperLite)
npm package: @hyperlite-ai/win32-x64
Description: HyperLite binary for Windows x64
Latest version: 0.2.0

# HyperLite

A terminal-native local LLM chat client. Fast, offline, and agentic — runs entirely on your machine using [Ollama](https://ollama.com).

## Install

```bash
npm install -g hyperlite-ai
```

## Run

```bash
hyperlite
```

## Requirements

- [Ollama](https://ollama.com) installed and running
- A downloaded model (e.g. `ollama pull qwen2.5-coder:14b`)
- Node.js 16+

## Features

- Chat with any local Ollama model
- Agentic coding tools — read, write, edit, search files directly from chat
- Multi-session history with persistent storage
- Tabbed command palette (Ctrl+P)
- Visual folder browser (Ctrl+O) — open any repo as working directory
- Download models from inside the app
- Syntax-highlighted responses with markdown rendering
- Hardware detection — recommends models for your GPU/RAM

## Supported Platforms

| Platform | Architecture |
|----------|-------------|
| Windows  | x64 |
| Linux    | x64 |
| macOS    | Apple Silicon (arm64) |
| macOS    | Intel (x64) |

## Source

[github.com/Sean504/HyperLite](https://github.com/Sean504/HyperLite)
npm package: @hyperlog/cli
Description: Code to Analyse user profiles
Author: Aditya Giri
Latest version: 0.2.0

# Profile Analysis for Hyperlog

This repository contains the code for the profile analysis.

This code is made open source for inspection purposes only. This is tightly coupled with AWS and custom backend at Hyperlog.

## How to Compile for Testing?

First, start the hyperlog backend server. This repository communicates with the server at localhost port `8000`. Normal hyperlog backend should work. Simply clone this repository, and run the following commands in the repo.

```sh
$ npm install
$ npm run build
$ profile-analysis --help
```

## Commands

### login

This command logs you in the CLI and stores your basic information collected from the hyperlog servers.

**USAGE:**

```sh
profile-analysis login
```

### analyse

This command starts to analyse your profile and stores the data in the local config file for now.

**USAGE:**

```sh
profile-analysis login
```
npm package: @hypermachines/runtime
Description: A native Rust WASM runtime built with Wasmtime.
Latest version: 0.0.9

# `@napi-rs/package-template`

![https://github.com/napi-rs/package-template/actions](https://github.com/napi-rs/package-template/workflows/CI/badge.svg)

> Template project for writing node package with napi-rs.

## Install this test package

```
yarn add @napi-rs/package-template
```

## Support matrix

> ⚠️ Linux musl has not been supported now.

### Operating Systems

| Linux | macOS | Windows x64 MSVC |
| ----- | ----- | ---------------- |
| ✓     | ✓     | ✓                |

### NodeJS

| Node10 | Node 12 | Node14 |
| ------ | ------- | ------ |
| ✓      | ✓       | ✓      |

## Ability

### Build

After `yarn build/npm run build` command, you can see `index.[darwin|win32|linux].node` file in project root. This is the native addon built from [lib.rs](./src/lib.rs).

### Test

With [ava](https://github.com/avajs/ava), run `yarn test/npm run test` to testing native addon. You can also switch to another testing framework if you want.

### CI

With github actions, every commits and pull request will be built and tested automatically in [`node@10`, `node@12`, `@node14`] x [`macOS`, `Linux`, `Windows`] matrix. You will never be afraid of the native addon broken in these platforms.

### Release

Release native package is very difficult in old days. Native packages may ask developers who use its to install `build toolchains` like `gcc/llvm` , `node-gyp` or something more.

With `Github actions`, we can easily prebuild `binary` for major platforms. And with `N-API`, we should never afraid of **ABI Compatible**.

The other problem is how to deliver prebuild `binary` to users. Download it in `postinstall` script is a common way which most packages do it right now. The problem of this solution is it introduced many other packages to download binary which has not been used by `runtime codes`. The other problem is some user may not easily download the binary from `github/CDN` if they are behind private network (But in most case, they have a private NPM mirror).

In this package we choose a better way to solve this problem. We release different `npm packages` for different platform. And add it to `optionalDependencies` before release the `Major` package to npm.

`NPM` will choose which native package should download from `registry` automatically. You can see [npm](./npm) dir for details. And you can also run `yarn add @napi-rs/package-template` to see how it works.

## Develop requirements

- Install latest `Rust`
- Install `NodeJS@8.9+` which supported `N-API`
- Install `yarn@1.x`

## Test in local

- yarn
- yarn build
- yarn test

And you will see:

```bash
$ ava --verbose

  ✔ sync function from native code
  ✔ sleep function from native code (201ms)
  ─

  2 tests passed
✨  Done in 1.12s.
```

## Release package

Ensure you have set you **NPM_TOKEN** in `Github` project setting.

In `Settings -> Secrets`, add **NPM_TOKEN** into it.

When you want release package:

```
yarn version [xxx]

git push --follow-tags
```

Github actions will do the rest job for you.
npm package: @hypermap/mech
Description: A universal browser client for HyperMap services
Author: daniel@auxilit.com
Latest version: 0.10.0

# Mech (Browser)

A universal browser client for [HyperMap](https://www.hypermap.dev) services. Just
as a web browser lets a human interact with any website, Mech lets programs
interact with any HyperMap service — no client SDK or code generation needed.

HyperMap is a JSON format for REST APIs that uses a single reserved key, `#`, to
carry hypermedia controls and executable scripts. Resources describe themselves,
link to each other, and ship code that runs on the client.

For full documentation, see [hypermap.dev/docs](https://www.hypermap.dev/docs/).

## Install

```sh
npm install @hypermap/mech
```

## Usage

```js
import '@hypermap/mech';

const tab = Mech.open('https://example.com/api/');

tab.addEventListener('changed', () => {
  console.log(tab.hypermap);
});

// Navigate a control
tab.use(['some', 'path']);

// Set a form input value
tab.input(['some', 'path'], 'value');
```

`Mech.open()` loads the URL in a hidden iframe and communicates with it via
`postMessage`. The returned `Tab` extends `EventTarget` and fires `changed`
events whenever the underlying HyperMap data updates.

## License

MIT — see [LICENSE](LICENSE).
npm package: @hypermap/shim
Description: Browser parser and runtime for HyperMap APIs
Author: daniel@auxilit.com
Latest version: 0.7.0

# HyperMap Shim

Browser parser and runtime for [HyperMap](https://www.hypermap.dev). Parses HyperMap
JSON responses and executes their embedded scripts, turning API data into living,
reactive objects in the browser.

HyperMap is a JSON format for REST APIs that uses a single reserved key, `#`, to
carry hypermedia controls and executable scripts. The shim is what makes that
work in a browser — it reads the JSON, builds the HyperMap tree, and runs any
scripts the server included.

For full documentation, see [hypermap.dev/docs](https://www.hypermap.dev/docs/).

## Install

```sh
npm install @hypermap/shim
```

Or load from a CDN:

```html
<script type="module" src="https://cdn.jsdelivr.net/npm/@hypermap/shim@0.7.0/+esm"></script>
```

## Usage

Serve your HyperMap JSON as an HTML page with the shim and the data in a `<pre>`
tag (which is the default rendering for JSON content types in Chrome and Safari):

```html
<!DOCTYPE html>
<html>
  <head>
    <script type="module" src="https://cdn.jsdelivr.net/npm/@hypermap/shim@0.7.0/+esm"></script>
  </head>
  <body>
    <pre>{"#": {"scripts": ["/my-script.js"]}, "hello": "world"}</pre>
  </body>
</html>
```

## Development

The repo's [Caddyfile](../Caddyfile) serves this directory on `localhost:4000`
with HTTPS. Start Caddy from the repo root:

```sh
caddy run
```

Tests are browser-based — open `tests/index.html` after starting Caddy.

## License

MIT — see [LICENSE](LICENSE).
npm package: @hypermod/cli
Description: To download and run codemods, we provide a CLI tool called @hypermod/cli.
Latest version: 0.27.3

# @hypermod/cli

To download and run codemods, we provide a CLI tool called @hypermod/cli.

`@hypermod/cli` is responsible for running the provided transform against your entire codebase. Under the hood, it is a wrapper of jscodeshift's CLI, which provides additional functionality.

- Ability to run community codemods hosted on npm
- Runs versioned codemods in sequence
- Always runs the latest version of a codemod
- The CLI allows you to run transforms either from the the [public registry](https://www.codeshiftcommunity.com/docs/registry) or on your local machine as per the original implementation of jscodeshift

_Note:_ Codemods are designed to do the heavy lifting, but they may not be perfect, so some manual work may still be required in order to successfully migrate.

[Documentation](https://www.codeshiftcommunity.com/docs/cli)