open-index/open-npm huggingface dataset:
npm package: @leiops/dropdown
Description: A flexible dropdown component system for React Apps.
Latest version: 1.0.0-alpha.2

# @leiops/dropdown

[![npm](https://img.shields.io/npm/dt/@leiops/dropdown.svg?style=flat-square)](https://www.npmjs.com/package/@leiops/dropdown)
[![npm](https://img.shields.io/npm/v/@leiops/dropdown.svg?style=flat-square)](https://www.npmjs.com/package/@leiops/dropdown)

A flexible dropdown component system for React Apps.

### How to use

This library provides several components which you can use as a basis for any kind of dropdown menu:

`Dropdown` - a wrapper element for everything.
`Dropdown.Trigger` - the element which tells the Dropdown container to show the dropdown \.
`Dropdown.Content` - a wrapper for all of the content hidden/shown at the discretion of the Dropdown container.

Keep in mind that `Trigger` and `Content` **must be direct children** of `Dropdown`. Here's a quick example:

```jsx
import Dropdown from '@leiops/dropdown'


const Menu = ({ onLogOut, onToggleMode }) => (
    <Dropdown>
        <Dropdown.Trigger>Profile</Dropdown.Trigger>
        <Dropdown.Content>
            <div onClick={onToggleMode}>Toggle Dark Mode</div>
            <div onClick={onLogOut}>Log Out</div>
        </Dropdown.Content>
    </Dropdown>
)
```

### Instance

Each instance of `Dropdown` has some methods developers might find useful.

Method | Description
----- | -----
**show** | Shows the dropdown.
**hide** | Hides the dropdown.

### Working

Right now, the dropdown watches child mutations and puts together a list of every element removed from within in order to deal with a situation where removing a child which was clicked on would close the dropdown. This may not be the desired behavior, perhaps only one removed item should be saved?

Portal and Dropdown contain almost idential code, I bet that can be dried up.
npm package: @leiops/icon-loader
Description: An svg loader for use with @leiops/icon.
Latest version: 1.0.5

# @leiops/icon-loader

[![npm](https://img.shields.io/npm/dt/@leiops/icon-loader.svg?style=flat-square)](https://www.npmjs.com/package/@leiops/icon-loader)
[![npm](https://img.shields.io/npm/v/@leiops/icon-loader.svg?style=flat-square)](https://www.npmjs.com/package/@leiops/icon-loader)

An SVG loader which turns plain SVG files into React JSX. Made for use with [@leiops/icon](https://www.npmjs.com/package/@leiops/icon-loader).

Because this emits JSX files, you will likely want to chain it with `babel-loader` in order to generate a useable output.


```js
...
module: {
  ...
  rules: [
    ...
    {
      test: /\.svg$/,
      use: [
        'babel-loader',
        '@leiops/icon-loader',
      ]
    },
    ...
  ],
  ...
},
...
```
npm package: @leiops/input
Description: Easy-to-use input components for React projects.
Latest version: 1.0.7


# @leiops/input

[![npm version](https://img.shields.io/npm/v/@leiops/input.svg?style=flat-square)](https://www.npmjs.com/package/@leiops/input)
[![npm downloads](https://img.shields.io/npm/dt/@leiops/input.svg?style=flat-square)](https://www.npmjs.com/package/@leiops/input)

Easy-to-use input components for React projects.

This project is early in development, feel free to dig into the code for inspiration, but please do not use it in production.
npm package: @leiops/tinyapp
Description: A tool for generating simple React apps.
Latest version: 1.2.1

# @leiops/tinyapp

[![npm](https://img.shields.io/npm/dt/@leiops/tinyapp.svg?style=flat-square)](https://www.npmjs.com/package/@leiops/tinyapp)
[![npm](https://img.shields.io/npm/v/@leiops/tinyapp.svg?style=flat-square)](https://www.npmjs.com/package/@leiops/tinyapp)
[![npm](https://img.shields.io/bundlephobia/minzip/@leiops/tinyapp.svg?style=flat-square)](https://www.npmjs.com/package/@leiops/tinyapp)

A tool for generating trivial, single-document React apps.

We typically use this tool for generating simple docs applications.

## Simple Usage

```jsx
const path = require('path')
const tinyapp = require('@leiops/tinyapp')

tinyapp({
    from: path.resolve(__dirname, './DocsApp.jsx'),
    to: path.resolve(__dirname, './docs/index.html'),
    title: 'Icons',
})
```

Because Tinyapp does not allow you to provide your own HTML document, it exposes the `MOUNT_NODE` global variable for use with `ReactDom.render`.

Your entry file might look something like this:

```jsx
import './styles.scss'
import App from './App.jsx'
import React from 'react'
import ReactDom from 'react-dom'

ReactDom.render(
    <App />,
    MOUNT_NODE
)
```

`MOUNT_NODE` is an alias for `document.getElementById("mount-node")` - so expect a root div with the id "mount-node" in your final app.

Tinyapp can process React JSX, ES7 JavaScript, CSS, SCSS, and SASS files.

## API

### tinyapp(options)

Writes the given application to the specified destination, returns `undefined`.

```bash
options
    from: required String - path to react app to compile
    to: required String - destination path
    title: String - the document title
```
npm package: @leipert/gitlab-spec-failures
Description: Check which specs failed in a gitlab-org/gitlab pipeline
Author: Lukas Eipert
Latest version: 1.2.0

# `@leipert/gitlab-spec-failures`

> Check which specs failed in a gitlab-org/gitlab pipeline

## Usage

```
yarn global add @leipert/gitlab-spec-failures

# Ensure you define a GITLAB_TOKEN as a env variable

gitlab-spec-failures https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33252
# or:
gitlab-spec-failures https://gitlab.com/gitlab-org/gitlab/-/pipelines/177609114
```
npm package: @leipert/node-red-contrib-stock-ticker
Description: node-red node(s) to get realtime stock information
Author: Lukas Eipert
Latest version: 2.0.2

# `@leipert/node-red-contrib-yahoo-finance`

> Nodes to retrieve stock information from YAHOO Finance.

## Usage

The package has two different nodes:

- `stock-request`: A node that gets the information on request
- `stock-ticker`: A node that provides real time updates, whenever a trade happens.

Both nodes will provide the same output.

### `stock-request` node

![](https://gitlab.com/leipert-projects/npm-packages/-/raw/main/scoped/node-red-contrib-stock-ticker/assets/stock-request.png)

Simply specify a comma separated list of stock symbols you are interested in.

You can either specify the tickers you are interested in the node config or via `msg.payload`.
The tickers from the config will be preferred.

### `stock-ticker` node

![](https://gitlab.com/leipert-projects/npm-packages/-/raw/main/scoped/node-red-contrib-stock-ticker/assets/stock-ticker.png)

Simply specify a comma separated list of stock symbols you are interested in.

Will send a retrieve stock information directly after connecting and once the next trade happens.

- Inject `true` to (re)-start the connection.
- Inject `false` to stop the connection.

## Example message payload

Equity:

```json
{
  "id": "TSLA",
  "price": 1219.8299560546875,
  "time": 1636146686000,
  "exchange": "NMS",
  "quoteType": "EQUITY",
  "marketHours": "POST_MARKET",
  "changePercent": -0.18492990732192993,
  "change": -2.260009765625,
  "priceHint": "2"
}
```

Crypto:

```json
{
  "id": "ETH-USD",
  "price": 4467.684,
  "time": 1636146722000,
  "exchange": "CCC",
  "quoteType": "CRYPTOCURRENCY",
  "marketHours": "REGULAR_MARKET",
  "changePercent": -1.0066552,
  "change": -45.43164,
  "priceHint": "2",
  "currency": "USD",
  "dayVolume": 15251728384,
  "dayHigh": 4568.065,
  "dayLow": 4453.6626,
  "shortName": "Ethereum USD",
  "lastSize": 15251728384,
  "vol_24hr": 15251728384,
  "volAllCurrencies": 15251728384,
  "fromcurrency": "ETH",
  "lastMarket": "CoinMarketCap",
  "circulatingSupply": 118222240,
  "marketcap": 528179625984
}
```

Exchange Rate:

```json
{
  "id": "EURUSD=X",
  "price": 1.156738,
  "time": 1636146889000,
  "exchange": "CCY",
  "quoteType": "CURRENCY",
  "marketHours": "REGULAR_MARKET",
  "changePercent": 0.080971303,
  "change": 0.00093591213,
  "priceHint": "4"
}
```
npm package: @leishanglin/memory-spiral
Description: 一个命令行工具，用于辅助我学习和复习，详见：https://memory-spiral.leishanglin.com
Author: leishanglin
Latest version: 0.1.0

# 记忆螺旋

一个命令行工具，用于辅助我学习和复习，详见：https://memory-spiral.leishanglin.com

## 用法

```sh
pnpm add -g @leishanglin/memory-spiral

ms
```
npm package: @leishanglin/utils
Description: leishanglin 的开发工具包
Author: leishanglin
Latest version: 0.2.7

---
title: "@leishanglin/utils"
keywords: "leishanglin,javascript,工具函数库,npm"
description: "leishanglin 的 JavaScript 工具函数包，浏览器和 Node 通用"
author: "leishanglin"
authorUrl: "https://cv.leishanglin.com"
datePublished: "2025-09-24"
domain: "https://utils.leishanglin.com"
githubUrl: "https://github.com/leishanglin/utils.leishanglin.com"
---

leishanglin 的 JavaScript 工具函数包，浏览器和 Node 通用。使用 [tsup](https://github.com/egoist/tsup) 构建，单元测试覆盖率 100%；

## 安装

```sh
pnpm add @leishanglin/utils
```

## 使用

```js
import { formatBytes } from "@leishanglin/utils";
```

## 简介

- [formatBytes](https://github.com/leishanglin/utils.leishanglin.com/blob/main/packages/utils/src/formatBytes.ts)：将字节（Bytes）转换为最合适的单位，比如：4 KB，2.35 MB
- [traverse](https://github.com/leishanglin/utils.leishanglin.com/blob/main/packages/utils/src/traverse.ts)：遍历 children 树，支持 BFS 和 DFS
npm package: @leismore/error_handler_error
Description: An error handler function for the standard JavaScript Error.
Author: Kyle Chine
Latest version: 2.0.0

# error_handler_Error-function

An error handler function for the standard JavaScript Error.

**THIS PACKAGE HAS BEEN OBSOLETED BY [@leismore/error_handler_last](https://www.npmjs.com/package/@leismore/error_handler_last)**

## Installation

`npm install @leismore/error_handler_error`

## Examples

```JavaScript
const error_handler_Error = require('@leismore/error_handler_error');
app.use(error_handler_Error);
```

## License

MIT

## Authors

* [Kyle Chine](https://www.kylechine.name) (Initial Author / Sep 06, 2019)
npm package: @leismore/error_handler_lmerror
Description: A error handler function for LMError (https://github.com/leismore/LMError) NodeJS.
Author: Kyle Chine
Latest version: 2.0.0

# error_handler_LMError-function

A error handler function for LMError (https://github.com/leismore/LMError) NodeJS.

**THIS PACKAGE HAS BEEN OBSOLETED BY [@leismore/error_handler_last](https://www.npmjs.com/package/@leismore/error_handler_last)**

## Installation

`npm install @leismore/error_handler_lmerror`

## Example

```javascript
const error_handler_LMError = require('@leismore/error_handler_lmerror');
app.use(error_handler_LMError);
```

## License

MIT

## Authors

* [Kyle Chine](https://www.kylechine.name) (Initial Author / Sep 05, 2019)
npm package: @leismore/lmos-nodejs-primitives
Description: Examples of all primitive values in JavaScript. Defined for writing unit test.
Author: Kyle Chine
Latest version: 1.2.1

# lmos-nodejs-primitives

Examples of all primitive values in JavaScript. Defined for writing unit test.

## Installation

`npm install @leismore/lmos-nodejs-primitives`

## Usage

```typescript
import {
    NULL        ,  UNDEFINED            ,
    TRUE        ,  FALSE                ,
    INTEGER     ,  INTEGER_NEGATIVE     ,
    FLOAT       ,  FLOAT_NEGATIVE       ,
    ZERO        ,  ZERO_NEGATIVE        ,
    BIGINT      ,  BIGINT_NEGATIVE      ,
    BIGINT_ZERO ,  BIGINT_ZERO_NEGATIVE ,
    STRING      ,  STRING_EMPTY         ,  STRING_MULTILINE,
    SYMBOL      ,
    ALL
} from '@leismore/lmos-nodejs-primitives';
```

`ALL` is an array which contains all primitive values.

## License

© [Leismore](https://www.leismore.co) 2025

[MIT License](https://choosealicense.com/licenses/mit)

## Authors

* [Kyle Chine / Kai Qin / 秦凯](https://kyle.chine.leismore.org) since 03 Aug 2025

## References

* mdn web docs - JavaScript data types and data structures - Primitive values <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Data_structures#primitive_values>




------------------------------------------------------------------------------

Product of [Leismore OpenSource](https://lmos.leismore.org) Project

Supported by [Leismore](https://www.leismore.co) (Australian Business Number: 25 935 862 619)
npm package: @leisterfranc/qtest-js
Description: eosio testing library
Latest version: 1.0.3

# Welcome to Qtest 

Qtest is an open-source Javascript-based [Antelope](https://antelope.io/) smart-contract testing framework, created by [GenerEOS](https://genereos.io) with funding from the [EOS Network Foundation](https://eosnetwork.com/).

Qtest gives you the ability to dockerize a Leap node. This allows a developer to host it on any system that supports [Docker](https://docs.docker.com). Using Qtest, developers can simplify testing of smart contracts and automate things like table seeding, account creation, and other initialisation tasks that are required before running complex test scenarios. Qtest already can be used to streamline testing for multiple Antelope based chains including EOS, WAX, and TELOS, with the ability to add additional chain support easily.

#### Noteworthy Features

- Ability to run tests in parallel
- Supports the snapshot for EOS/WAX/TLOS with lastest system contracts out of the box
- Supports testing on ARM/AMD architectures
- Ability to insert/modify/erase data for each table
- Update the chain time to fast-forward the chain and allow testing future states

## Quick start

### Installation

Refer to [an example project](example)

```bash
npm install --save-dev qtest-js
```

#### Jest
Install `jest`
```
npm install --save-dev jest@^28.1.3
```
Config `jest`: Create jest.config.js and add the following:

```
module.exports = {
  // transform: { "^.+\\.(ts|tsx)$": "ts-jest" },
  testEnvironment: "node",
  testTimeout: 120 * 1e3,
};
```

#### Docker

To install docker please refer [here](https://docs.docker.com/engine/install/)

### Run
Update test command in package.json

```
"test": "jest"
```

Run

```
npm run test
```

### Usage
```
const { Chain } = require("qtest-js");
const { expectAction } = require("qtest-js");
```
**Api** and **JsonRpc** from **eosjs** are available through the **[Chain](docs/api/chain.md)** class 


* [Using Qtest to write contract tests](docs/tutorial/usage.md)

## Qtest API
### Classes

**Public**

* [Account](docs/api/account.md)
* [Chain](docs/api/chain.md)
* [Contract](docs/api/contract.md)
* [Table](docs/api/table.md)
* [Time](docs/api/time.md)

**Internal**

* [Asset](docs/api/asset.md)
* [Symbol](docs/api/symbol.md)
* [System](docs/api/system.md)


### Functions

**Public**

* [Assertion](docs/api/assertion.md)
* [Wallet](docs/api/wallet.md)

## Support

For issues not covered in the documentation, please jump into our channel and we will do our best to help you out [GenerEOS](https://t.me/generEOS) channel on Telegram.

## Licence

This code is provided as is, under [MIT Licence](LICENCE).

## Todo

- Support ARM binaries for leap version
npm package: @leisterfrancisco/node-abieos
Description: Node Bindings for abieos: Binary <> JSON conversion using ABIs.
Author: EOS Rio
Latest version: 2.1.2

# node-abieos

Node.js native binding for [abieos](https://github.com/EOSIO/abieos), with some improvements:

- Contracts can be directly updated on the map
- Added `abieos_delete_contract`

Made with ♥ by [EOS Rio](https://eosrio.io/)

----
**Only Linux is supported for now, import will be null on others**

- Typescript typings included
- Prebuilt binary included (Clang 9.0.0 required to build)

### Install

```shell script
npm i @eosrio/node-abieos --save
```

### Usage

CommonJS
```js
const nodeAbieos = require('@eosrio/node-abieos');
```

ES Modules
```typescript
import * as nodeAbieos from "@eosrio/node-abieos";
```

Check the [/examples](https://github.com/eosrio/node-abieos/tree/master/examples) folder for implementation examples

### Building

env setup instructions soon
```shell script
git clone https://github.com/eosrio/node-abieos.git
cd node-abieos
npm run build
```
npm package: @leisure01/view-ui-plus
Description: A high quality UI components Library with Vue.js 3
Author: Aresn
Latest version: 1.3.22

<p align="center">
    <a href="https://www.iviewui.com">
        <img width="200" src="https://file.iviewui.com/view-ui-logo-new.svg">
    </a>
</p>

<h1>
View UI Plus
    <h3>An enterprise-level UI component library and front-end solution based on Vue.js 3</h3>
</h1>

> View UI Plus自从发布1.3.1版本后基本上就不再维护更新，但由于工作开发中涉及该UI库，因此本人另开分支继续维护开发使用。

> 二次开发
> ```
> # 打包
> npm run build
> # 发布（发布前需要登录账号，执行npm login根据提示来就行了，第一次发布失败的话，可能还需要执行 npm config set access public 命令）
> npm publish
> # 撤销发布
> npm unpublish @leisure01/view-ui-plus@1.3.21 --force
> # 本地调试预览
> npm run dev
>
> ```

[![View UI Plus](https://img.shields.io/npm/v/@leisure01/view-ui-plus.svg?style=flat-square)](https://www.npmjs.org/package/@leisure01/view-ui-plus)
[![NPM downloads](http://img.shields.io/npm/dm/@leisure01/view-ui-plus.svg?style=flat-square)](https://npmjs.org/package/@leisure01/view-ui-plus)
[![NPM downloads](https://img.shields.io/npm/dt/@leisure01/view-ui-plus.svg?style=flat-square)](https://npmjs.org/package/@leisure01/view-ui-plus)
![JS gzip size](http://img.badgesize.io/https://unpkg.com/view-ui-plus/dist/viewuiplus.min.js?compression=gzip&label=gzip%20size:%20JS&style=flat-square)
![CSS gzip size](http://img.badgesize.io/https://unpkg.com/view-ui-plus/dist/styles/viewuiplus.css?compression=gzip&label=gzip%20size:%20CSS&style=flat-square)
[![Join the chat at https://gitter.im/iview/iview](https://img.shields.io/badge/chat-on_gitter-30b392.svg?style=flat-square)](https://gitter.im/iview/iview?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

## Docs

[https://www.iviewui.com](https://www.iviewui.com)

## Start On Cloud IDE
[https://idegithub.com/view-design/ViewUIPlus](https://idegithub.com/view-design/ViewUIPlus)

### Install View UI Plus

Using npm:
```
npm i @leisure01/view-ui-plus --save
```

Using a script tag for global use:
```html
<script type="text/javascript" src="viewuiplus.min.js"></script>
<link rel="stylesheet" href="dist/styles/viewuiplus.css">
```

You can find more info [on the website](https://www.iviewui.com/view-ui-plus/guide/install).

### Import View UI Plus
```
import { createApp } from 'vue'
import ViewUIPlus from "@leisure01/view-ui-plus"; //引入ViewUIPlus
import App from './App.vue'
import router from './router'
import store from './store'
import "@leisure01/view-ui-plus/dist/styles/viewuiplus.css";

const app = createApp(App)

app.use(store)
  .use(router)
  .use(ViewUIPlus)
  .mount('#app')
```

## Usage

```vue
<template>
    <Slider v-model="value" range />
</template>
<script setup>
    import { ref } from 'vue'
    const value = ref([20, 50])
</script>
```

## License
[MIT](http://opensource.org/licenses/MIT)