open-index/open-npm huggingface dataset:
npm package: @mac-bug-screenshot/native-host
Description: Native messaging host for Mac Bug Screenshot.
Author: sobbang
Latest version: 1.0.15

# mac-bug-screenshot native host (npm)

크롬 확장 프로그램이 macOS `screencapture`를 호출할 수 있도록 네이티브 메시징 호스트를 설치합니다.

## 설치

```bash
npm install -g @mac-bug-screenshot/native-host
```

## 등록

```bash
mac-bug-screenshot-install
```

## 삭제

```bash
npm uninstall -g @mac-bug-screenshot/native-host
```

## 동작

- 전체 화면 캡처 후 Preview를 자동으로 엽니다.
- 저장 경로는 확장 프로그램에서 전달받습니다.

## 게시 정보

- npm 패키지: https://www.npmjs.com/package/@mac-bug-screenshot/native-host
- 현재 버전: 1.0.11

## 문제 해결

- `Native host has exited` 오류가 뜨면 최신 버전으로 업데이트 후 재등록하세요.
  ```bash
  npm install -g @mac-bug-screenshot/native-host@latest
  mac-bug-screenshot-install
  ```
- nvm 사용 시에도 `npm root -g` 기준 경로로 자동 설정됩니다.
npm package: @mac-r/console-logger
Description: Print `console.log` to your terminal, when normal `console.log` is hard to reach.
Author: Max Makarochkin
Latest version: 1.0.1

# 📝 Console Logger

Console logger is a development tool, that makes web developers more productive. It prints `console.log` to your terminal when normal `console.log` is out of reach.

## Introduction

Many people like to debug code using `console.log`, but sometimes it is not possible. Below are the situations, when you can't leverage `console.log` for debugging:
  - Remote browser emulators
  - Chrome extensions
  - Hybrid mobile apps (Ionic, etc.)
  - etc.

I made this development tool to solve this problem.

After a simple integration `console.log` output will go to the terminal window so you can enjoy using it again.

<img src="https://cdn.blinkloader.com/express/qf0gEaOkgpWuKfYxseTMO4LnA/Screen Shot 2019-09-19 at 15.56.57.png"/>

## Installation

```
npm install -g @mac-r/console-logger
```

## Usage

Add this at the beginning of your `html` template, which serves all other bundles:

```html
<meta property="console:server" content="ws://127.0.0.1:8081" />
<script src="https://www.unpkg.com/browse/@mac-r/console-logger@1.0.1/dist/console-logger.min.js"></script>
```

Then run the following command in your terminal:

```
console-logger
```

Now you can start using `console.log` in your code. The output will go to the terminal.

#### Advanced Usage

You can run `console-logger` on a custom `PORT`:

```
PORT=1234 console-logger
```

Just don't forget to change `console:server` value in the html template.
npm package: @mac-xiang/tab-communication
Description: 通过window.open打开的标签页间互相通讯
Author: mac-xiang
Latest version: 1.0.3

# 标签通讯

#### 介绍
标签页间互相通讯

#### 软件架构
无


#### 安装教程

1.  npm i @mac-xiang/tab-communication

#### 使用说明

1.  import { TabCommunicationClient, TabCommunicationService } from '@mac-xiang/tab-communication';
2.  const svr=TabCommunicationService({url:"http://xxx"})
3.  const client=TabCommunicationClient((data)=>{console.log(data); return data})

#### 参与贡献

1.  Fork 本仓库
2.  新建 Feat_xxx 分支
3.  提交代码
4.  新建 Pull Request


#### 参数说明

    TabCommunicationServiceOptions; 
        handler为 window.open() 所返回的句柄或者iframe；
        url:为将要打开的标签页url
        handler与url参数二选一
        timeout:超时时间;主要是指通过TabCommunicationService({url:"http://xxx"})新建标签页的超时返回时间；默认5秒
        event 为回调函数；当超时、连接成功时、有客户端发送过来消息时，会触发；
    TabCommunicationClientOptions；
        是一个回调函数，当有服务端发送过来消息时，会触发；
npm package: @mac-xiang/vite-plugin-builded
Description: vite编译后退出以及处理favicon.ico
Author: MacXiang
Latest version: 1.1.0

# vite编译后处理插件
[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![Test coverage][codecov-image]][codecov-url]
[![David deps][david-image]][david-url]
[![npm download][download-image]][npm-url]
[![NPM][npm-download-img]](https://nodei.co/npm/@mac-xiang/vite-plugin-builded)

[npm-image]: https://img.shields.io/npm/v/@mac-xiang/vite-plugin-builded.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@mac-xiang/vite-plugin-builded
[travis-image]: https://img.shields.io/travis/@mac-xiang/vite-plugin-builded.svg?style=flat-square
[travis-url]: https://travis-ci.org/@mac-xiang/vite-plugin-builded
[codecov-image]: https://img.shields.io/codecov/c/github/@mac-xiang/vite-plugin-builded.svg?style=flat-square
[codecov-url]: https://codecov.io/gh/@mac-xiang/vite-plugin-builded
[david-image]: https://img.shields.io/david/@mac-xiang/vite-plugin-builded.svg?style=flat-square
[david-url]: https://david-dm.org/@mac-xiang/vite-plugin-builded
[download-image]: https://img.shields.io/npm/dm/@mac-xiang/vite-plugin-builded.svg?style=flat-square
[npm-download-img]: https://nodei.co/npm/@mac-xiang/vite-plugin-builded.png?downloads=true&stars=true

#### 介绍

解决vite编译后退出以及处理favicon.ico

#### 软件架构

编译: npm run build

#### 安装教程

1.  npm i -D @mac-xiang/vite-plugin-builded

#### 使用说明

1.  在 vite.config.ts 中 import vitePluginBuilded from "@mac-xiang/vite-plugin-builded"
2.  在plugins:里添加成员 vitePluginBuilded()

#### 参与贡献

1.  Fork 本仓库
2.  新建 Feat_xxx 分支
3.  提交代码
4.  新建 Pull Request

#### 特技

npm 上传包命令

npm publish --registry http://registry.npmjs.org
npm config set registry https://registry.npmjs.org
npm config set registry https://registry.npm.taobao.org
npm publish --access public --registry http://registry.npmjs.org
npm config set scope mac-xiang --global

npm version prerelease

npm version prepatch
别笑,记不住
npm package: @mac110/opencode-openai-compatible
Description: OpenAI-compatible provider for OpenCode — connect any OpenAI-compatible API endpoint (kiro-gateway, LiteLLM, LocalAI, Ollama, etc.)
Author: mac110
Latest version: 1.0.0

# opencode-openai-compatible

OpenAI-compatible provider plugin for [OpenCode](https://opencode.ai) — connect any OpenAI-compatible API endpoint such as kiro-gateway, LiteLLM, LocalAI, Ollama, and more.

## Installation

```bash
npm install opencode-openai-compatible
```

## Configuration

Add the provider to your OpenCode `config.json` (`~/.config/opencode/config.json`):

```json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "myprovider": {
      "npm": "opencode-openai-compatible",
      "env": ["MY_API_KEY"],
      "models": {
        "my-model": {
          "id": "my-model",
          "name": "My Model",
          "modalities": { "input": ["text", "image"], "output": ["text"] },
          "temperature": true,
          "tool_call": true,
          "cost": { "input": 0, "output": 0 },
          "limit": { "context": 128000, "output": 8192 }
        }
      },
      "options": {
        "baseURL": "http://localhost:8888/v1"
      }
    }
  },
  "model": "myprovider/my-model"
}
```

Set your API key as an environment variable:

```bash
export MY_API_KEY="your-api-key"
```

## Examples

### kiro-gateway

```json
{
  "provider": {
    "kiro": {
      "npm": "opencode-openai-compatible",
      "env": ["KIRO_API_KEY"],
      "models": {
        "claude-opus-4.6": {
          "id": "claude-opus-4.6",
          "name": "Claude Opus 4.6",
          "modalities": { "input": ["text", "image"], "output": ["text"] },
          "temperature": true,
          "tool_call": true,
          "cost": { "input": 15, "output": 75 },
          "limit": { "context": 200000, "output": 32000 }
        }
      },
      "options": {
        "baseURL": "http://192.168.1.100:8888/v1"
      }
    }
  }
}
```

### LiteLLM / Ollama

```json
{
  "provider": {
    "ollama": {
      "npm": "opencode-openai-compatible",
      "env": ["OLLAMA_API_KEY"],
      "models": {
        "llama3": {
          "id": "llama3",
          "name": "Llama 3",
          "modalities": { "input": ["text"], "output": ["text"] },
          "temperature": true,
          "tool_call": false,
          "cost": { "input": 0, "output": 0 },
          "limit": { "context": 8192, "output": 4096 }
        }
      },
      "options": {
        "baseURL": "http://localhost:11434/v1"
      }
    }
  }
}
```

## License

MIT
npm package: @maca134/hono-passport
Description: ...more to come...
Author: Matthew McConnell
Latest version: 1.2.2

# Hono Passport

...more to come...

## Requirements

## Installation

You can install from npm registry with `npm` command:

```
npm install @maca134/hono-passport
```

Or use `yarn`:

```
yarn add @maca134/hono-passport
```
## Usage

## Options
npm package: @maca134/hono-passport-battlenet
Description: ...more to come...
Author: Matthew McConnell
Latest version: 1.1.0

# Hono Passport Battle Net

...more to come...

## Requirements

## Installation

You can install from npm registry with `npm` command:

```
npm install @maca134/hono-passport-battlenet
```

Or use `yarn`:

```
yarn add @maca134/hono-passport-battlenet
```
## Usage

## Options
npm package: @maca134/hono-passport-oauth2
Description: ...more to come...
Author: Matthew McConnell
Latest version: 1.1.0

# Hono Passport OAuth2

...more to come...

## Requirements

## Installation

You can install from npm registry with `npm` command:

```
npm install @maca134/hono-passport-oauth2
```

Or use `yarn`:

```
yarn add @maca134/hono-passport-oauth2
```
## Usage

## Options
npm package: @maca134/hono-passport-openid
Description: ...more to come...
Author: Matthew McConnell
Latest version: 1.1.1

# Hono Passport OpenID

...more to come...

## Requirements

## Installation

You can install from npm registry with `npm` command:

```
npm install @maca134/hono-passport-openid
```

Or use `yarn`:

```
yarn add @maca134/hono-passport-openid
```
## Usage

## Options
npm package: @maca134/hono-passport-steam
Description: ...more to come...
Author: Matthew McConnell
Latest version: 1.2.1

# Hono Passport Steam

...more to come...

## Requirements

## Installation

You can install from npm registry with `npm` command:

```
npm install @maca134/hono-passport-steam
```

Or use `yarn`:

```
yarn add @maca134/hono-passport-steam
```
## Usage

## Options
npm package: @maca134/hono-session
Description: ...more to come...
Author: Matthew McConnell
Latest version: 1.2.0

# Sessions for Hono

...more to come...

## Requirements

## Installation

You can install from npm registry with `npm` command:

```
npm install @maca134/hono-session
```

Or use `yarn`:

```
yarn add @maca134/hono-session
```
## Usage

## Options
npm package: @maca134/hono-session-store-redis
Description: ...more to come...
Author: Matthew McConnell
Latest version: 1.1.3

# Hono Session Redis Store

...more to come...

## Requirements

## Installation

You can install from npm registry with `npm` command:

```
npm install @maca134/hono-session-redis-store
```

Or use `yarn`:

```
yarn add @maca134/hono-session-redis-store
```
## Usage

## Options
npm package: @maca134/percy
Description: A description of your package
Author: maca134@googlemail.com
Latest version: 1.0.9

# percy

To install dependencies:

```bash
bun install
```

To run:

```bash
bun run src/index.ts
```

This project was created using `bun init` in bun v1.2.14. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
npm package: @maca134/rxjs-remote
Description: Observerables over the network
Author: maca134@googlemail.com
Latest version: 1.0.10

# RxJs Remote

This is basically RxJs observable over some kind of network connection. It should work over pretty much any long living connection, i've had it working with socket.io and UDP. Observables get cleanup when things go wrong or something disconnects.

Client files are here https://github.com/maca134/rxjs-remote-client

Install use `npm install --save @maca134/rxjs-remote`

## Quick Start (using Socket.io)

#### server
```typescript
// server.ts
import 'reflect-metadata';
import { timer } from 'rxjs';
import * as ioServer from 'socket.io';
import { finalize } from 'rxjs/operators';
import { RxjsRemote, roc } from '@maca134/rxjs-remote';

class SomeClass {
	@roc()
	timer1() {
		console.log('timer1 called');
		return timer(0, 1000).pipe(finalize(() => console.log('timer complete')));
	}

	@roc<ioServer.Socket>({
		// adds the object give in attach as the first params (you may need the socket for something?)
		inject: true, 

		// change the name of the call, in this case the call name is 'SomeClass.notTimer3'
		name: 'notTimer2', 

		// an array of middleware to run before call the method. throw something to prevent the call
		middleware: [ 
			socket => {
				console.log(socket.id);
				// throw new Error('you do not have access here');
			}
		]
	})
	timer2() {
		console.log('timer2 called');
		return timer(0, 1000).pipe(finalize(() => console.log('timer complete')));
	}
}

// new instance with generic as the obj you want to "inject"
const rxjsRemoteServer = new RxjsRemote<ioServer.Socket>(); 

// register some class instances
rxjsRemoteServer.registerClasses([new SomeClass]); 

// socket.io
const io = ioServer(9895);

// when a new connection happens, attach the server to the socket
io.of('roc').on('connection', socket => {
	// connect things together
	rxjsRemoteServer.attach(
		{
			onMessage: listener => socket.on('message', listener),
			onClose: listener => socket.on('disconnect', listener),
			send: data => socket.send(data)
		}, 
		socket // the "inject" obj
	);
});
```

#### client
```typescript
// client.ts
import 'socket.io-client';
import { timer } from 'rxjs';
import { RxjsRemoteClient } from '@maca134/rxjs-remote-client';
import { retryWhen, take, delayWhen, tap } from 'rxjs/operators';

// socket io
const client = io('http://localhost:9895/roc');

// new instance of client
const rxjsRemoteClient = new RxjsRemoteClient({
	onMessage: listener => client.on('message', listener),
	onClose: listener => client.on('disconnect', listener),
	send: data => client.send(data)
});


// do rxjs things
rxjsRemoteClient.observable<number>('SomeClass.timer')
	.pipe(
		take(5),
		retryWhen(err => err.pipe(
			tap(val => console.log(val)),
			delayWhen(val => timer(1000))
		))
	)
	.subscribe(
		next => console.log('next', next),
		error => console.log('error', error),
		() => console.log('complete'),
	);
```
npm package: @maca134/rxjs-remote-client
Description: Observerables over the network client
Author: maca134@googlemail.com
Latest version: 1.0.10

# RxJs Remote Client

This is basically RxJs observable over some kind of network connection. It should work over pretty much any long living connection, i've had it working with socket.io and UDP. Observables get cleanup when things go wrong or something disconnects.

Servers files and readme are here https://github.com/maca134/rxjs-remote

Install use `npm install --save @maca134/rxjs-remote-client`
npm package: @maca134/suiact
Description: A react like library for working with Adobe ScriptUI.
Author: maca134@googlemail.com
Latest version: 0.0.9

# SUIact

A [react](https://react.dev) like library for working with Adobe ScriptUI.

## Installation

Install by `npm`

```sh
npm install --save @maca134/suiact
```

**or** install with `yarn`

```sh
yarn add @maca134/suiact
```

### Examples

Working example project can be found [here](https://github.com/maca134/suiact-example)

```tsx
import Suiact, { useReducer } from '@maca134/suiact';

declare const parentPanel: Panel | undefined;

const Text = ({ text }: { text: string }) => <statictext text={text} />;

function counterReducer(state: number, action: { type: 'increment' | 'decrement' } | { type: 'set', value: number }) {
	switch (action.type) {
		case 'increment':
			return state < 10 ? state + 1 : state;
		case 'decrement':
			return state > 0 ? state - 1 : state;
		case 'set':
			return action.value;
		default:
			return state;
	}
}

function Demo() {
	const [counter, dispatch] = useReducer(counterReducer, 0);

	const items = [] as JSX.Element[];
	for (let i = 0; i < counter; i++) {
		items.push(<Text text={`Line: ${i + 1}`} />);
	}

	return (
		<window
			usePanel={parentPanel}
			type="window"
			text="Demo"
			margins={16}
			orientation="row"
			spacing={10}
			alignChildren={['left', 'top']}
			properties={{ closeButton: true }}>
			<group
				orientation='column'
				alignChildren={['left', 'center']}>
				<slider
					value={counter}
					maxvalue={10}
					onChange={(control) => dispatch({ type: 'set', value: Math.floor(control.value) })}
					alignment={['fill', 'top']} />
				<group
					orientation='row'
					alignChildren={['left', 'center']}>
					<button
						text="Add"
						onClick={() => dispatch({ type: 'increment' })} />
					<button
						text="Remove"
						onClick={() => dispatch({ type: 'decrement' })} />
				</group>
				<>
					{...items}
				</>
			</group>
		</window>
	);
}

Suiact.render(<Demo />);
```
npm package: @maca134/ts-express-utils
Description: Typescript utils for express
Author: maca134@googlemail.com
Latest version: 1.0.17

# TS Express Utils

A set of functions for using classes in typescript as controllers for express.js

`npm install --save @maca134/ts-express-utils`

```typescript
@controller('/auth')
export default class AuthController extends BaseController {

    @get('/login', PassportMiddleware)
	async getLogin(req: Request, res: Response) {
        //...
    }

	@get('/user')
	getUser(req: Request, res: Response) {
        //...
	}

    @post('/logs')
	async postLogs(req: Request, res: Response) {
        new Http401Unauthorized();
    }
}

export class PassportMiddleware extends MiddlewareBase {
	protected readonly _requestHandler: RequestHandler = (req, res, next) => {
		req.session['redirect_url'] = req.query['redirect'] || '/';
		return Passport.authenticate('steam')(req, res, next);
	};
}

const app = express();

const router = await loadController([new AuthController()]);
app.use(router);

```
npm package: @macabrrra/easy-auth-js
Description: OAuth authorization code with PKCE for SPAs
Author: Wojciech Kotłowski
Latest version: 1.0.0

# EasyAuth - OAuth Simplified for JavaScript SPAs

EasyAuth is a lightweight, easy-to-use JavaScript library designed to simplify the implementation of OAuth authentication in Single Page Applications (SPAs). It abstracts the complexities of OAuth flows, particularly for handling the Authorization Code flow with PKCE, making it easier for developers to securely implement user authentication.

## Features

- Easy integration with OAuth 2.0 authorization servers.
- Supports Authorization Code flow with PKCE.
- Handles token storage and retrieval.
- Simplifies token refresh and expiration checks.

## Installation

To install EasyAuth, use npm:

```bash
npm install easy-auth-js
```

## Usage

Here's a basic guide on how to use EasyAuth in your application:

## Initialize EasyAuth

First, import and initialize the EasyAuth class with your configuration.

```javascript
import { EasyAuth } from 'easy-auth-js';

const easyAuth = new EasyAuth({
  authorizeEndpoint: 'https://example.com/oauth2/authorize',
  tokenEndpoint: 'https://example.com/oauth2/token',
  clientID: 'your-client-id',
  redirectURI: 'https://yourapp.com/callback',
  scopes: ['openid', 'profile', 'email']
});
```

## Authorize

Invoke the authorize method to redirect the user to the OAuth provider's authorization page.

Typically, you would add a sign-in button that, when selected, redirects the user to the configured OAuth redirect URL. Under the hood, the authorization server's API is called.

```javascript
easyAuth.authorize();
```

## Handle Authentication Response

After the user is redirected back to your application, use `getAuth()` to handle the authentication response.

Example:

```javascript
easyAuth.getAuth().then(tokenData => {
  // Handle successful authentication
  console.log(tokenData);
}).catch(error => {
  // Handle errors
  console.error(error);
});
```

## Logout

To log out the user and clear tokens, use the logout method.

```javascript
easyAuth.logout();
```

## Handling Token Expiration

EasyAuth provides a callback mechanism that can be used to define custom behavior when the token becomes invalid or expires. This is particularly useful to manage user experience when a session ends or to initiate a token refresh process.

### Setting Up the Token Expiration Callback

Use the `onTokenInvalid` method to set a callback that will be triggered when the token is detected as invalid or expired.

```javascript
easyAuth.onTokenInvalid(() => {
  // Custom logic when the token is invalid or expired
  easyAuth.authorize();
});
```

## Contributing

Contributions to EasyAuth are welcome! Please refer to the CONTRIBUTING.md file for guidelines.

## License

EasyAuth is MIT licensed. See the LICENSE file for details.

## Disclaimer

This library is provided "as is", without warranty of any kind. Use at your own risk.