open-index/open-npm huggingface dataset:
npm package: @quan2nd/react-native-activity-state
Description: pending
Author: quan2nd
Latest version: 0.1.1

# ReactNative Foreground/Background Event Notifier

ReactNative plugin to detect when app(not ReactNative container) goes to background or foreground.

## Installation

```sh
yarn add @quan2nd/react-native-activity-state
```

## Usage - ONLY WORKING ON ANDROID
I have no experience working with IOS, I hope to get some support from the community
```js
import { onMoveToForeground, onMoveToBackground } from '@quan2nd/react-native-activity-state';

// ...

React.useEffect(() => {
    const subscriptionFore = onMoveToForeground(() => {
      console.log('onMoveToForeground');

    })
    const subscriptionBack = onMoveToBackground(() => {
      console.log('onMoveToBackground');

    })
    return () => {
      subscriptionFore.remove();
      subscriptionBack.remove();
    }
  }, []);
```

## Contributing

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

## License

MIT
npm package: @quancheng/valkyriejs
Description: a tiny and typed graphql-server
Author: zephyr
Latest version: 1.2.3

# valkyriejs

A typed tiny-graphql-server with common middlewares

## What's in it

- type-graphql
- typeorm
- redis
- typedi

## Dependency

- node >= 8
- aliyun-acm
- reflect-metadata
- typescript

## How To Use

### folder structure

```text
- src
  -  entities
     - model.entity.ts

  -  middlewares
     - handle.middleware.ts

  -  resolvers
     - schema.resolver.ts

- tsconfig.json
```

### createServer

```ts
// index.ts

import 'reflect-metadata'
import { createServer } from '@quancheng/valkyriejs'
;(async () => {
  const server = await createServer({
    root: __dirname,
    graphqlServer: {}
  })

  server.listen('3411', () => {
    console.log(`started`)
  })
})()
```

## Todo

- [ ] serverless support
npm package: @quandis/qbo4.documents
Description: Copyright (c) 2024 QUANDIS, Inc.
Author: Quandis, Inc.
Latest version: 4.0.1-CI-20260408-180656

﻿# Dual-Use License

## Quandis License (for Open-Source Use)

Copyright (c) 2024 QUANDIS, Inc.

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:

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 QUANDIS 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.

## QBO License (for Commercial Use)
This software is provided under the terms of the QBO License for commercial use. By using this software
in a commercial environment, you agree to the terms of the QBO License, which includes, but is not
limited to, the following terms:

1. License Grant: Upon acceptance of the terms and payment of the applicable license fee, Quandis
grants you a non-exclusive, non-transferable, limited license to use the software for commercial
purposes.

2. Restrictions: You may not, without the prior written consent of Quandis, sublicense, distribute, or create
derivative works based on the software for commercial purposes.

3. Termination: The license is effective until terminated. Failure to comply with any of the terms will result
in automatic termination of this license. Upon termination, you must destroy all copies of the software.

4. Disclaimer of Warranty: 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 Quandis 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.

For the full terms of the QBO License, please contact Quandis, Inc.
© 2024 Quandis, Inc. All rights reserved.

## License Application

This software is dual-licensed. If you are using this software as part of an open-source project, you may
use it under the terms of the Quandis License (for Open-Source Use). If you are using this software for
commercial purposes, you must [obtain a QBO License from Quandis, Inc](https://www.quandis.com/contact).
npm package: @quang_dang1479/ui
Description: React UI component library for shopping cart
Author: hadangquang1408@gmail.com
Latest version: 1.0.0

# @libcart/ui

Thư viện React UI Components cho chức năng giỏ hàng.

## Cài đặt

```bash
npm install @libcart/ui
```

## Components

### Cart - Giỏ hàng đầy đủ

```tsx
import { Cart } from '@libcart/ui';
import type { CartItem } from '@libcart/ui';

function MyCart() {
  const [items, setItems] = useState<CartItem[]>([...]);

  return (
    <Cart
      items={items}
      onUpdateQuantity={(id, qty) => {}}
      onRemoveItem={(id) => {}}
      onToggleSelect={(id) => {}}
      onToggleSelectAll={(selected) => {}}
      onCheckout={(selectedItems) => {}}
      currency="VND"
    />
  );
}
```

### Button

```tsx
import { Button } from '@libcart/ui';

<Button variant="primary" size="medium">
  Click me
</Button>;
```

Variants: `primary`, `secondary`, `danger`, `ghost`
Sizes: `small`, `medium`, `large`

### Input

```tsx
import { Input } from '@libcart/ui';

<Input
  label="Email"
  type="email"
  error="Invalid email"
  helperText="Enter your email"
/>;
```

### Modal

```tsx
import { Modal } from '@libcart/ui';

<Modal
  isOpen={isOpen}
  onClose={() => setIsOpen(false)}
  title="Confirm"
  size="medium"
>
  Modal content
</Modal>;
```

### Card

```tsx
import { Card } from '@libcart/ui';

<Card padding="medium" hoverable>
  Card content
</Card>;
```

## Development

```bash
# Storybook
npm run dev

# Build
npm run build
```
npm package: @quangas/auth-js
Description: Streambird.js ES Loader Bindings
Author: Streambird
Latest version: 1.1.0

# Stytch SDK as an ES Module

Use the [Stytch SDK](https://stytch.com/docs/javascript-sdk) as an [ES module](https://flaviocopes.com/es-modules/).
You might want to use this library if you want to use the SDK with a Javascript bundler, but aren't using the [Stytch React](https://www.npmjs.com/package/@stytch/stytch-react) library.
If you want to use the SDK with plain HTML, include `https://js.stytch.com/stytch.js` as a source directly, [like we do here](https://github.com/stytchauth/stytchjs-html-express/blob/32914e08ae585d56a9b14965aef72d633c753fe3/public/signupOrLogin.html). 

[![npm version](https://img.shields.io/node/v/@stytch/stytch-js)](https://stytch.com/docs/javascript-sdk)
[![Slack Link](https://img.shields.io/badge/chat-stytch.slack.com-FD4E43)](https://stytch.slack.com)

## Installation
```sh
npm install @stytch/stytch-js
```

## Usage

### `loadStytch`

This function returns a `Promise` that resolves with a newly created `window.Stytch` once the SDK has loaded.
If you call `loadStytch` in a server environment - for example during server-side rendering - it will resolve to `null`.

```js
import {loadStytch} from '@stytch/stytch-js';

const Stytch = await loadStytch();

Stytch('public-token-test-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
  .mount({
    elementId: "#magic-link",
    loginOrSignupView: {
      products: ['emailMagicLinks', 'oauth'],
      emailMagicLinksOptions: {
        loginRedirectURL: "https://example.com/authenticate",
        loginExpirationMinutes: 30,
        signupRedirectURL: "https://example.com/authenticate",
        signupExpirationMinutes: 30,
        createUserAsPending: true,
      },
      oauthOptions: {
        providers: [{ type: 'google' }, { type: 'microsoft' }, { type: 'apple' }],
        loginRedirectURL: "https://example.com/authenticate",
        signupRedirectURL: "https://example.com/authenticate",
      }
    }
  });
```

For more information on how to use the Stytch SDK, please refer to the
[docs](https://stytch.com/docs/javascript-sdk).

## See Also

- For usage with React: see the [@stytch/stytch-react](https://www.npmjs.com/package/@stytch/stytch-react) library and [sample app](https://github.com/stytchauth/stytchjs-react-magic-links)
- For usage with Next.js: see the [sample app](https://github.com/stytchauth/stytch-nextjs-integration) 

### Changelog

**[2.0.3] - 2020-9-5**
- Added type definitions for Apple OAuth

**[2.0.2] - 2020-8-25**
- Added type definitions for the OAuth product
npm package: @quangdao/scissors
Description: Opinionated Utilities for SCSS
Latest version: 1.0.0

# SCiSSors

An opinionated set of tools for SCSS. Part of the @quangdao/brandkit.

## Usage

I still gotta figure this out, but you can import stuff using:

```scss
@import '@quangdao/scissors/scss/breakpoints';
```

Or add an alias:

```js
// wherever.config.js
{
  alias: {
    '@scissors': './node_modules/@quangdao/scissors/scss'
  }
}
```

```scss
// main.scss
@import '@scssors/breakpoints';
```

## Guidelines

Review the branding guidelines in [the Brand Kit](https://github.com/quangdaon/brandkit/blob/main/styleguides/scissors.md).
npm package: @quangdao/vue-signalr
Description: SignalR plugin for Vue 3
Author: Quangdao Nguyen
Latest version: 1.0.1

# Vue SignalR Plugin

[![NPM Install](https://nodei.co/npm/@quangdao/vue-signalr.png?mini=true)](https://www.npmjs.com/package/@quangdao/vue-signalr)

SignalR plugin for Vue 3.

## Quick Start

> For more detailed instructions, check out the wiki at <https://github.com/quangdaon/vue-signalr/wiki>.

### Installation

This package is available on npm via:

```
npm install --save @quangdao/vue-signalr
```

To install in Vue 3:

```typescript
import { createApp } from 'vue';
import { VueSignalR } from '@quangdao/vue-signalr';
import App from './App.vue';

createApp(App)
  .use(VueSignalR, { url: 'http://localhost:5000/signalr' })
  .mount('#app');
```

### Usage

This plugin provides a composable function to inject the SignalR service. The service exposes a few methods from the SignalR connection to support your app.

```typescript
import { inject } from 'vue';
import { useSignalR } from '@quangdao/vue-signalr';

interface MyObject {
  prop: string;
}

// Optional Tokens
// Learn More: https://github.com/quangdaon/vue-signalr/wiki/03.-Usage#tokens
const SendMessage: HubCommandToken<MyObject> = 'SendMessage';
const MessageReceived: HubEventToken<MyObject> = 'MessageReceived';

export default {
  setup() {
    // Inject the service
    const signalr = useSignalR();

    // Listen to the "MessageReceived" event
    signalr.on(MessageReceived, () => doSomething());

    // Send a "SendMessage" payload to the hub
    signalr.send(SendMessage, { prop: 'Hello world!' });

    // Invoke "SendMessage" and wait for a response
    signalr.invoke(SendMessage, { prop: 'Hello world!' })
      .then(() => doSomething())
  }
};
```
npm package: @quangghaa/custom-components
Description: A react-library-custom-components
Author: Quang Ha
Latest version: 0.0.6

# React + TypeScript + Vite: Custom components

## Require:

-   Node version >= 18
-   Sass
-   Ant design + Ant design icons library

Currently availabel components:

-   Rating

## Screenshot:

![alt text](https://github.com/quangghaa/custom-components/blob/main/public/rate_us/sreen_rating.png)

![alt text](https://github.com/quangghaa/custom-components/blob/main/public/rate_us/screen_rating-result.png)

## Rating: Used

Give users ability to rate (0 to 5 stars) among a set of content like: UI/UX, functionalities, customer supports, ...

Parameters:

-   `title: string`: Title of the component
-   `buttonLabel: string`: Label of the submit button
-   `itemsToRate: RateItemType[]`: List of rating items
-   `onSubmit: (ratings: { [key: number]: number }) => void`: Handle submit logic
-   `result: ResultType`: Custom result screen

Exported types:

-   `RateItemType`: Rating item
-   `ResultType`: Result object

Example of used:

```js
import { useState } from "react";
import "./App.css";
import { RateItemType, RateUs } from "@quangghaa/custom-components";

function App() {
    const itemsToRate: RateItemType[] = [
        { key: 1, label: "Giao diện" },
        { key: 2, label: "Nội dung" },
        { key: 3, label: "Chất lượng dịch vụ" },
        {
            key: 4,
            label: "Some veery very long content, like this, or like that, or reallly ly ly ly long :D, one two three for five",
        },
    ];
    function handleSubmit(ratings: { [key: number]: number }) {
        console.log("Ratings: ", ratings);
    }

    return (
        <>
            <div className="demo">
                <span>This is a demo wrapper</span>
                <RateUs
                    title="EPR web rating"
                    buttonLabel="Submit"
                    itemsToRate={itemsToRate}
                    onSubmit={handleSubmit}
                    // result={{ title: "Thank you !!!" }}
                />
            </div>
        </>
    );
}

export default App;
```
Enjoy!!
npm package: @quangit/eslint-config
Description: ESLint rules that we use at CAR FOR YOU
Author: SMG Automotive
Latest version: 0.0.10

# CAR FOR YOU Eslint config

[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)

## Usage

```
npm install @quangit/eslint-config
```

Add a `lint` script to `package.json`:

```
  "lint": "eslint --ext ts,js,tsx,jsx,json ."
```

Add a `format` script to `package.json` to be able to use auto fix:

```
  "format": "npm run lint -- --fix",
```

### ESLint configuration

Create `.eslintrc.js` in the root of the project:

```
  module.exports = {
    extends: ["@quangit/eslint-config"],
  }
```

This package provides multiple eslint configurations. They build on top of one another so there's no need to include multiple ones.

- If you're working on plain typescript project use the default:
  ```
  @quangit/eslint-config
  ```
- If you're working on react project use:
  ```
  @quangit/eslint-config/react
  ```
- For nextjs applications use:
  ```
  @quangit/eslint-config/next
  ```

### Prettier configuration

Create `.prettierrc.js` in the root of the project:

```
module.exports = {
  ...require("@quangit/eslint-config/prettier"),
}
```

## VSCode integration

### ESlint

There's an [official eslint plugin](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) available to get notifications about linter errors.

#### Auto-fixing problems on save

You can add:

```
"editor.codeActionsOnSave": {
  "source.fixAll.eslint": true
}
```

to your `settings.json` to fix fixable eslint errors on file save. This will only fix things that can be auto-fixed. It also might take some time.

### Prettier

There is a [pretty good prettier formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) available. This will add `prettier` as an option to format document via command palette.

You can also set prettier as default formatter for javascript, typescript and react files. Just add:

```
"[typescript]": {
  "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
  "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
  "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
  "editor.defaultFormatter": "esbenp.prettier-vscode"
}
```

to your `settings.json`.

#### Auto-formatting on save

You can enable formatting on save under `Settings` -> `Text Editor` -> `Formatting`.

## Development

```
npm run build
```

You can link your local npm package to integrate it with any local project:

```
cd carforyou-eslint-config
npm run build

cd carforyou-listings-web
npm link ../carforyou-eslint-config
```

## Release a new version

New versions are released on the ci using semantic-release as soon as you merge into master. Please
make sure your merge commit message adheres to the corresponding conventions.

## Circle CI

You will need to enable the repository in circle CI ui to be able to build it.

For slack notifications to work you will need to provide the token in circle settings.
npm package: @quangkeu1995/dappcore
Description: ### Ethereum 🤝 React  Framework for rapid Dapp development.   Simple. Robust. Extendable. Testable.
Author: Ethworks
Latest version: 0.9.0

# useDapp

### Ethereum 🤝 React 
Framework for rapid Dapp development.  
Simple. Robust. Extendable. Testable.

## About
Introduces great features:
- 🏗️ **React hooks** - Uses React hooks as your primary building ingredient
- 🚅 **Auto refresh** - Refreshes on a new block, wallet change or network change
- 🛒 **Multicall** - Combines multiple blockchain calls into a single multicall

Combines the best practices:
- 🔧 **Modern stack** - Employs [ethers.js](https://github.com/ethers-io/), [web3-react](https://github.com/NoahZinsmeister/web3-react), [multicall](https://github.com/makerdao/multicall) & [waffle](https://getwaffle.io/)
- 📚 **Extendability** - Extends easily with custom hooks
- 💡 **Testability** - Simple integration tests for UI and blockchain


## Example

```tsx
import { Mainnet } from '@usedapp/core/modal/chain/ethereum'

const config = {
  readOnlyChainId: Mainnet.chainId,
  readOnlyUrls: {
    [Mainnet.chainId]: 'https://mainnet.infura.io/v3/62687d1a985d4508b2b7a24827551934',
  },
}

ReactDOM.render(
  <DAppProvider config={config}>
    <App />
  </DAppProvider>,
  document.getElementById('root')
)

const STAKING_CONTRACT = '0x00000000219ab540356cBB839Cbe05303d7705Fa'

export function App() {
  const { activateBrowserWallet, deactivate, account } = useEthers()
  const userBalance = useEtherBalance(account)
  const stakingBalance = useEtherBalance(STAKING_CONTRACT)

  return (
    <div>
      {!account && <button onClick={activateBrowserWallet}> Connect </button>}
      {account && <button onClick={deactivate}> Disconnect </button>}
      {stakingBalance && <p>ETH2 staking balance: {formatEther(stakingBalance)} ETH </p>}
      {account && <p>Account: {account}</p>}
      {userBalance && <p>Ether balance: {formatEther(userBalance)} ETH </p>}
    </div>
  )
}
```

See application [here](https://example.usedapp.io/balance).


## Documentation
For detailed feature walkthrough checkout [documentation](https://usedapp.readthedocs.io/en/latest/).

## Contributing

Contributions are always welcome, no matter how large or small. Before contributing, please read the [code of conduct](https://github.com/EthWorks/useDapp/blob/master/CODE_OF_CONDUCT.md) and [contribution policy](https://github.com/EthWorks/useDapp/blob/master/CONTRIBUTION.md).

### Before you issue pull request:

* Make sure all tests pass.
* Make sure linter passes.
* Make sure you have test coverage for any new features.

To install dependencies type:
```sh
yarn
```

To build project:
```sh
yarn build
```

To run tests type:
```sh
yarn test
```

To run linter type:
```sh
yarn lint
```

### Building documentation

[Install Sphinx](https://www.sphinx-doc.org/en/master/usage/installation.html) to build documentation:

```sh
cd docs
make html
```

Before building documentation for the first time you may have to install required python packages:
```sh
pip3 install -r docs/requirements.txt
```

## License

useDapp is released under the [MIT License](https://opensource.org/licenses/MIT).
npm package: @quangkeu1995/firebase-scrypt
Description: Nodejs implementation of Firebase's Scrypt modified version.
Author: Guillaume Gautier
Latest version: 2.2.1

# Node Firebase Scrypt

NodeJs implementation of Firebase's Scrypt modified version

## Table of Contents

- [Install](#install)
- [Usage](#usage)
  - [Initialisation](#initialisation)
  - [Hash](#hash)
  - [Verify](#verify)
- [Test](#test)

## Install

To install, run : 

`npm i firebase-scrypt`

## Usage

## Firebase parameters

Go to Firebase to get your hash parameters.
To access these parameters, navigate to the 'Users' tab of the 'Authentication' section in the Firebase Console and select 'Password Hash Parameters' from the drop down in the upper-right hand corner of the users table.

### Initialisation

```javascript
import { FirebaseScrypt } from 'firebase-scrypt'

const firebaseParameter = {
  memCost: 1, // replace by your
  rounds: 1, // replace by your
  saltSeparator: 'your-separator', // replace by your 
  signerKey: 'your-key', // replace by your
}

const scrypt = new FirebaseScrypt(firebaseParameters)

```

### Hash

```javascript

[...]

const password = "test"
const salt = "salt"

scrypt.hash(password, salt)
  .then(hash => console.log(hash))

```

### Verify

```javascript

[...]

const password = "test"
const salt = "salt"
const hash = "PrZI5nfqjOEk"

scrypt.verify(password, salt, hash)
  .then(isValid => isValid ? console.log('Valid !') : console.log('Not valid !'))

```

## Test

To test, run : 

`npm run test`
npm package: @quangnguyenduc/hq-ui
Description: To install and using @quangnguyenduc/hq-ui please follow the step listed below
Author: Duc Quang
Latest version: 2.0.1

# @quangnguyenduc/hq-ui is under development please comback later

To install and using @quangnguyenduc/hq-ui please follow the step listed below

## Install package
```bash
yarn add @quangnguyenduc/hq-ui
# Or just using npm
npm install @quangnguyenduc/hq-ui
```
## Import styling 
Add import of the css file at the main.tsx/index.tsx
```js
import "@quangnguyenduc/hq-ui/dist/styles.min.css";
```
## The following component have completed
- Avatar
- Image
- Button
- Checkbox
- Divider
- Icon
- Modal
- Number picker
- Popup
- Progress
- Radio
- Rating
- Snackbar
- Spacing
- Switch
- Text
- Title
- Steps
- Skeleton Loading
- Error Boundary
npm package: @quangtrong1506/simple-canvas
Description: ```TypeScript Vẽ hình ảnh lên canvas.
Author: quangtrong1506
Latest version: 1.0.6

## Canvas simple

### - drawImage

```TypeScript
Vẽ hình ảnh lên canvas.

const drawImage: (canvas: HTMLCanvasElement, image: HTMLImageElement | File | string, x: number, y: number, options: any) => Promise<{
    status: "success" | "error";
    message?: string;
    drawTime?: number;
}>

@param canvas — Canvas để vẽ hình ảnh.

@param image — Hình ảnh cần vẽ (có thể là thẻ img, file hoặc URL).

@param x — Tọa độ x để vẽ hình ảnh.

@param y — Tọa độ y để vẽ hình ảnh.

@param width — Chiều rộng của hình ảnh (hoặc 'auto' để giữ nguyên).

@param height — Chiều cao của hình ảnh (hoặc 'auto' để giữ nguyên).

@returns — Trả về một Promise với thông tin trạng thái và thời gian vẽ.
```

#### - drawText

```TypeScript
Vẽ chữ vào canvas với các tùy chọn, bao gồm xuống dòng, opacity và gạch chân

const drawText: (canvas: HTMLCanvasElement, text: string, x: number, y: number, options?: DrawTextOptions) => void
export drawText

@param canvas — Phần tử canvas

@param text — Nội dung chữ cần vẽ

@param x — Tọa độ x của vị trí vẽ chữ

@param y — Tọa độ y của vị trí vẽ chữ

@param options — Các tùy chọn định dạng text
```
npm package: @quanhua92/rich-text-editor
Description: A React Rich Text WYSIWYG Editor based on Slate.js
Author: quanhua92
Latest version: 0.1.0

# rich-text-editor

> A React Rich Text WYSIWYG Editor based on Slate.js

[![NPM](https://img.shields.io/npm/v/rich-text-editor.svg)](https://www.npmjs.com/package/rich-text-editor) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save rich-text-editor
```

## Usage

```tsx
import React, { Component } from 'react'

import MyComponent from 'rich-text-editor'
import 'rich-text-editor/dist/index.css'

class Example extends Component {
  render() {
    return <MyComponent />
  }
}
```

## License

MIT © [quanhua92](https://github.com/quanhua92)
npm package: @quanhuzeyu/koishi-plugin-arknights-wiki
Description: 获取wiki页面的信息；获取每日开放关卡时间、当前活动、当期干员、卡池信息等
Latest version: 0.3.0

# @quanhuzeyu/koishi-plugin-arknights-wiki

[![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-arknights-wiki?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-arknights-wiki)

获取wiki页面的信息；获取每日开放关卡时间、当前活动、当期干员、卡池信息等

## 命令列表

当前资讯: 获取wiki页面中轮播图的信息

## 更新日志

v0.3.0 添加定时发送每日信息功能，添加与其对应的指令添加或移除指定任务的群组

v0.2.2 添加设置是否以转发形式发送

v0.2.0 添加指令 `ark-operator` or `干员资讯`，查看当期新增干员、时装

v0.1.0 添加指令 `今日信息` or `ark-info`，查询今日开放的关卡信息

v0.0.1 实现prts.wiki轮播图的信息抓取，指令 `当前资讯` 或者 `ark-news`
npm package: @quanhuzeyu/koishi-plugin-canvas
Description: canvas服务
Latest version: 0.0.4

# @quanhuzeyu/koishi-plugin-canvas

[![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-canvas?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-canvas)

canvas服务
npm package: @quanhuzeyu/koishi-plugin-comfyui
Description: 调用comfyui来生成图像
Latest version: 0.0.3

# @quanhuzeyu/koishi-plugin-comfyui

[![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-comfyui?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-comfyui)

调用comfyui来生成图像

## 更新日志

v0.0.3 实现配置值检验参数，当参数无效时使用配置值进行替换

v0.0.2 实现用API查询checkpoint vae检查设置是否有效并设置其配置值

v0.0.1 实现最基础的功能 `q-comfy` 指令获取详情使用信息
npm package: @quanhuzeyu/koishi-plugin-gtnh-wiki
Description: 我的世界1.7.10-GTNH整合包-WIKI查询插件
Latest version: 0.1.1

# @quanhuzeyu/koishi-plugin-gtnh-wiki

[![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-gtnh-wiki?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-gtnh-wiki)

我的世界1.7.10-GTNH整合包-WIKI查询插件

## 更新日志

v0.1.0 实现search功能，可能存在较多bug `gtnh-search [arg]` 可以搜索wiki中的信息，目前分两种情况，直接搜到结果和有多条信息，多条信息会进入交互模式，发送结果索引即可查看详细信息

v0.0.1 实现主页头部展示信息收集 `gtnh` 即可触发
npm package: @quanhuzeyu/koishi-plugin-memes
Description: 纯ts实现的memes生成，无需部署额外的后端服务
Latest version: 1.5.3

# @quanhuzeyu/koishi-plugin-memes

[![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-memes?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-memes)
[![npm downloads](https://img.shields.io/npm/dm/@quanhuzeyu/koishi-plugin-memes)](https://www.npmjs.com/@quanhuzeyu/koishi-plugin-memes)

## 安装指南 🛠️

浏览器搜索安装`FFMPEG`并设置好环境变量即可享用

## 用法

使用 `petpet` 不带参数用法就是生成一张摸自己头的meme

使用 `petpet` + `@任意群成员` 生成一张摸该成员头像的meme

使用`petpet` + `图片` 生成摸该图片的meme

### 已经实现

v1.5.0 新增 `clownflip` `翻转小丑` 指令

v1.4.6 更新模板图源

v1.4.3 修复一个合成错误 `小丑` 表情应当裁切输入图像为圆形

v1.4.0 增加 `小丑` 指令合成小丑，指令结构优化，使用子命令将表情合成指令集中到`memes`主指令下

v1.3.10 `getQuoteArgs`函数现在使用`imgCollector`而不是`argCollector`来处理引用内容，即引用消息不再查找其中@的信息，只查找图片

v1.3.9 重构代码结构，使用新的参数查找器，现支持quote来传递参数合成图像

v1.3.8 修复提取图片是乱序的问题，修正咖波吸图片合成参数

v1.3.6 添加 `咖波吸` `精神涣散` 指令，memelib修复了一些bug

v1.2.7 所有指令均实现GIF的合成，并修复了koishi中不安全的问题，减少包体积

v1.1.2 实现`hammer`指令，支持GIF参数传入

v1.0.13 `hug` 指令支持GIF参数传入，重构底层实现了自定义参数获取器，以便实现多种类参数的获取并合成

v1.0.12 添加指令`hug`但暂未实现GIF参数合成

v1.0.11 版本更新后已经实现GIF参数的合成，并提升了合成效率，4s->1s

v1.0.0 目前还未支持gif参数的合成，正在开发敬请期待，该库的最终目标是移植nonebot的meme插件库

### ***这是我的第一个ts项目，如果有bug或者更好的代码结构优化请帮助我，十分感谢***
npm package: @quanhuzeyu/koishi-plugin-node
Description: 动态导入任何npm包
Latest version: 0.0.9

# @quanhuzeyu/koishi-plugin-node

[![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-node?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-node)

动态导入node

## 更新日志

v0.0.9 修正存储目录解析逻辑，避免反复安装，加快导入速度
npm package: @quanhuzeyu/koishi-plugin-pixiv
Description: 指令:随机涩图，无需获取cookies等复杂操作，获取账号下的每日推荐
Latest version: 0.2.7

# @quanhuzeyu/koishi-plugin-pixiv

[![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-pixiv?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-pixiv)

与pixiv相关的操作插件，无需获取cookies等复杂操作，获取账号下的每日推荐

## 可用指令

`随机涩图` : 从pixiv.net主页的推荐作品中随机挑选一张回复给指令发送者

### 更新日志

v0.2.5: 修复大量逻辑错误，新增获取作品信息功能，修改插件引导文案，方便更好入手

v0.1.23: 修复大量逻辑错误，尤其是配置文件中的undefined的错误

v0.1.19: 更新刷新逻辑，让刷新不再那么频繁；另测试了在网络不好的情况下是否能修复，可惜不行，遇到失败去试试换个网络吧

v0.1.14: 修复页面刷新逻辑，当页面刷新时如果网络过差会导致获取失败，使用了一个try循环重试。注意：由于是递归，可能会导致栈溢出

v0.1.12: 抽离选择器逻辑到配置文件中，日后不再维护获取相关逻辑

v0.1.11: 修改作品获取逻辑，提高图像获取成功率，并提高获取速度

v0.1.4: 修复插件在puppeteer重载时无法获取页面的问题，现在支持重载puppeteer后保持正常运行。同时增加了推荐作品获取逻辑，确保可以获取到推荐作品信息

v0.1.3: 尝试支持无头模式下的运行，初始化页面逻辑改为遍历当前浏览器所有页面，匹配url含有pixiv则会控制这个页面，如果有多个pixiv插件，有可能导致未知问题
npm package: @quanhuzeyu/koishi-plugin-puppeteer-isunsafe
Description: [![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-puppeteer-isunsafe?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-puppeteer-isunsafe)
Latest version: 0.0.2

# @quanhuzeyu/koishi-plugin-puppeteer-isunsafe

[![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-puppeteer-isunsafe?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-puppeteer-isunsafe)
npm package: @quanhuzeyu/koishi-plugin-qhzy-sharp
Description: sharp服务的提供
Author: QuanhuZeYu
Latest version: 1.2.1

# koishi-plugin-qhzy-sharp

[![npm](https://img.shields.io/npm/v/koishi-plugin-qhzy-sharp?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-qhzy-sharp)

koishi sharp服务的提供，安全使用sharp

## ![alt text](432CEDD1.png)使用指北

``` typescript
import {} from "@quanhuzeyu/koishi-plugin-qhzy-sharp"  // 导入类型声明
const inject = ["QhzySharp"]  // 使用koishi的inject来确保服务加载后再启动本模块
function apply(ctx: Context) {
    const Sharp = ctx.QhzySharp.Sharp  // 获取原生Sharp
}

```

## 更新记录

v1.1.0: 改为在隔离环境中使用npm指令来动态编译sharp
npm package: @quanhuzeyu/koishi-plugin-qz-siliconflow
Description: koishi插件，支持openaiAPI格式的平台接入，如果你使用控制台将可以同时使用多个平台配置；支持分群组配置，为console界面深度优化，易于配置参数
Latest version: 1.6.1

# koishi-plugin-qz-siliconflow

[![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-qz-siliconflow?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-qz-siliconflow)

## 功能概述

本插件提供基于大语言模型的智能对话功能，支持以下特性：

- 多平台模型接入（需配置API）
- 上下文历史管理
- Token用量统计
- 群组级别个性化配置
- 系统提示词模板
- JSON格式解析

## 使用命令

### 基础对话

```bash
chat <'消息内容'>
# 示例： chat 你好
```

默认对话会自动拼接命令前 `maxHistory - 2` 条消息进行多人场景对话，默认多人聊天场景prompt会使用json格式用以区分用户及其所对应的内容例如:

```json
{"userName": "张三", "userContent": "闲聊内容"}
{"userName": "李四", "userContent": "闲聊内容"}
// 触发命令的消息不会把指令前缀加进去
{"userName": "王五", "userContent": "问题内容"}
// 大模型回复后会自动把回复内容加进去，如果是R1推理模型，会排除思考内容，仅添加回复内容
{"userName": "botNickName", "userContent": "回复"}
```

### 无历史对话

```bash
chatnh <'消息内容'>
# 示例： chatnh 你好
```

### 清除对话历史

```bash
chat-clear
```

### 查看模型列表

```bash
chat-list
```

## 功能细节

### 系统提示词模板

支持使用 `$guildId` 变量，自动替换为当前群组ID

### Token用量统计

- 默认用户额度：10,000 tokens
- 用量查看：回复消息包含剩余额度
- 配置路径：可前往数据库调整数据
npm package: @quanhuzeyu/koishi-plugin-qz-test
Description: 该项目展示了dynamic的用法，以及database，服务的用法
Latest version: 0.0.1

# koishi-plugin-qz-test

[![npm](https://img.shields.io/npm/v/koishi-plugin-qz-test?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-qz-test)

测试项目
npm package: @quanhuzeyu/koishi-plugin-token-system
Description: 一个练手项目，用于模拟绘图网站代币来调用绘图插件
Latest version: 0.1.0

# @quanhuzeyu/koishi-plugin-token-system

[![npm](https://img.shields.io/npm/v/@quanhuzeyu/koishi-plugin-token-system?style=flat-square)](https://www.npmjs.com/package/@quanhuzeyu/koishi-plugin-token-system)

一个练手项目，用于模拟绘图网站代币来调用绘图插件

## 更新日志

v0.1.0 新增 `注册` `签到` 两个功能，对应指令`q-注册` `q-签到`；增加对外使用的API接口`setToken` `createUser`

v0.0.1 初始版本，没有实现任何功能
npm package: @quanhuzeyu/memelib
Description: 仅提供了可以使用的接口来生成meme表情包
Author: 泉户泽雨
Latest version: 0.1.7

# meme表情生成库

仅提供了可以使用的接口来生成meme表情包

![img](./src/out/output.gif)

## 更新记录

v0.1.4 支持`petpet` `hug`两种合成模式，同时支持`gif` `png`两种图片格式