open-index/open-npm huggingface dataset:
npm package: @marufzak/observable
Description: A lightweight reactive programming library for JavaScript and TypeScript
Author: Ma'ruf Zakirov
Latest version: 1.0.3

# Observable

A lightweight reactive programming library for JavaScript and TypeScript.

## Features

Basically everything you can do with builtin Proxy.

- Create observable objects and functions
- Track property access, modification, and deletion
- Monitor function calls and method invocations
- Build reactive systems with minimal overhead
- TypeScript support with full type definitions

## Installation

```bash
npm install @marufzak/observable
```

## Usage

```typescript
import { createObservable } from "@marufzak/observable";

const user = {
    name: "John",
    age: 30,
};

function observer(event) {
    console.log(`[${event.type}]`, event);
}

const observableUser = createObservable(user, observer);

observableUser.name = "Jane"; // Triggers set trap
console.log(observableUser.age); // Triggers get trap
```

## Examples

Check out the [examples directory](./examples) for more usage examples.

## License

MIT © [Ma'ruf Zakirov](LICENSE)
npm package: @marufzak/react
Description: Zero-dependency, lightweight and minimalistic implementation of the React library
Author: Ma'ruf Zakirov
Latest version: 1.0.0

# @marufzak/react [![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)

This project serves as a minimalistic and zero-dependency implementation of the React library, originally created and maintained by Facebook.

## Installation

```bash
npm install @marufzak/react
```

For more information, please refer to the [documentation](https://github.com/MarufZak/react-simplified?tab=readme-ov-file#react-simplified).
npm package: @marujah/cchex
Description: create chrome extension CLI is a tool of creating a boilerplate for a simple chrome extension.
Author: Marouen Mhiri
Latest version: 1.0.1

# Create Chrome Extension

This Create Chrome extension (CCHEX) allows users to generate a minimalistic chrome extension. This example extension changes the background color of a webpage by clicking a button in the extension's popup.

## Features

- Changes the background color of the current webpage to light blue upon button click.
- Utilizes Chrome extension APIs to interact with the active tab.

## Installation

- npm i -g @marujah/cchex
- cchex

OR just:

- npx @marujah/cchex

## Installation in chrome browser

2. Open Google Chrome and go to `chrome://extensions/`.
3. Enable Developer Mode by toggling the switch in the top right corner.
4. Click on "Load unpacked" and select the folder containing the extension's files.

## Usage

1. After installing the extension, click on the extension icon in the Chrome toolbar to open the popup.
2. Click the "Change Background" button in the popup.
3. Watch as the background color of the current webpage changes to light blue.

## File Structure

- `manifest.json`: Contains metadata about the extension, permissions, and scripts.
- `popup.html`: HTML file for the extension popup.
- `popup.js`: JavaScript file handling popup functionality.
- `content.js`: Content script injected into webpages to change the background color.
- `service-worker.js`: Service worker script for background tasks (unused in this simple example).

## Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, feel free to open an issue or create a pull request.

## License

This project is licensed under the [MIT License](LICENSE).
npm package: @maruware/blob-to-base64
Description: Blob to base64
Author: maruware
Latest version: 0.0.8

# blob-to-base64
Blob to base64

```
yarn add @maruware/blob-to-base64
```

## Usage

### 

```ts
import { blobToBase64 } from '@maruware/blob-to-base64'

(async () => {
    const b64 = await blobToBase64(blob)
})()
```

```ts
import { blobToDataUrl } from '@maruware/blob-to-base64'

(async () => {
    const dataUrl = await blobToDataUrl(blob)
})()
```
npm package: @maruware/dx-react-grid-formatters
Description: Formatters for [@devexpress/dx-react-grid](https://www.npmjs.com/package/@devexpress/dx-react-grid)
Author: maruware
Latest version: 0.1.0

# dx-react-grid-formatters

Formatters for [@devexpress/dx-react-grid](https://www.npmjs.com/package/@devexpress/dx-react-grid)

## Install

```
npm i -S @maruware/dx-react-grid-formatters
```

```
yarn add @maruware/dx-react-grid-formatters
```

## Example

```
cd example
yarn install
yarn start
```

Open http://localhost:3000

## Usage

### BooleanFormatter

```jsx
<DataTypeProvider
    for={['isReady']}
    formatterComponent={BooleanFormatter}
/>
```

### UrlFormatter

```jsx
<DataTypeProvider
    for={['url']}
    formatterComponent={UrlFormatter}
/>
```

### MapChipFormatter

```jsx
const StatusFormatter = GetMapChipFormatter({
  normal: {
    label: 'Normal',
    color: blueGrey[500]
  },
  warning: {
    label: 'Warning',
    color: amber[500]
  },
  error: {
    label: 'Error',
    color: pink[500]
  }
})
// ...

<DataTypeProvider
    for={['status']}
    formatterComponent={StatusFormatter}
/>
```

### TimeFormatter

```jsx
<DataTypeProvider
    for={['createdAt']}
    formatterComponent={TimeFormatter}
/>
```

### RelativeTimeFormatter

```jsx
<DataTypeProvider
    for={['updatedAt']}
    formatterComponent={RelativeTimeFormatter}
/>
```
npm package: @maruware/material-ui-basic-layout
Description: material ui basic layout
Author: maruware
Latest version: 0.0.4

# Material UI Basic Layout

Simple Basic Layout using Material UI

![screenshot](https://user-images.githubusercontent.com/1129887/85822553-26234d00-b7b6-11ea-8dec-0fdc2ebeb207.png)

## Install

```
yarn add @maruware/material-ui-basic-layout
```

## Usage

```tsx
import React, { useState } from 'react'
import { BasicLayout, DrawerMenu } from '@maruware/material-ui-basic-layout'

import DashboardIcon from '@material-ui/icons/Dashboard'
import PostIcon from '@material-ui/icons/PhotoCamera'
import { useRouter } from 'next/router'

export interface DefaultLayoutProps {
  title: string
}

export const DefaultLayout: React.FC<DefaultLayoutProps> = ({
  title,
  children,
}) => {
  const [menues] = useState<DrawerMenu[]>([
    { name: 'Dashboard', path: '/', icon: DashboardIcon },
    { name: 'Posts', path: '/posts', icon: PostIcon },
  ])

  const router = useRouter()
  const handleChangePath = (path: string) => router.push(path)
  const handleCheckActive = (path: string) => router.pathname === path
  const handleLogout = () => console.log('logout')
  return (
    <BasicLayout
      title={title}
      menues={menues}
      onChangePath={handleChangePath}
      onCheckActive={handleCheckActive}
      onLogout={handleLogout}
    >
      {children}
    </BasicLayout>
  )
}
```

```tsx
import React from 'react'
import { Dashboard } from './Dashboard'
import { DefaultLayout } from './DefaultLayout'

export default function DashboardPage() {
  return (
    <DefaultLayout title="Dashboard">
      <Dashboard />
    </DefaultLayout>
  )
}

```

If you use react-router, replace onChangePath and onCheckActive.
npm package: @maruware/material-ui-login
Description: Simple Login UI Component using Material UI
Author: maruware
Latest version: 0.0.2

# Material UI Login

Simple Login UI Component using Material UI

![screenshot](https://user-images.githubusercontent.com/1129887/85688926-29aec980-b70d-11ea-8a44-8ee2681fd709.png)

## Install

```
yarn add @maruware/material-ui-login
```

## Usage

```tsx

import { Login, AuthInfo } from '@maruware/material-ui-login'

export default function LoginPage() {
  const signIn = async ({ username, password }: AuthInfo) => {
    const client = new ApiClient(false)
    client
      .login({ username, password })
      .then((data) => {
        console.log('success')
      })
      .catch(() => {
        console.log('failed')
      })
  }

  return (
    <Login
      onSubmit={signIn}
      usernameLabel="User ID" // default: User name
      passwordLabel="Your Password" // default: Password
      submitButtonLabel="Log in" // default: Sign in
      backgroundColor="#000" // default: blueGrey[800]
    />
  )
}

```
npm package: @maruware/path-params
Description: Build URL with path params
Author: maruware
Latest version: 0.0.5

# path-params

![Typed with TypeScript](https://flat.badgen.net/badge/icon/Typed?icon=typescript&label&labelColor=blue&color=555555)
[![Build Status](https://travis-ci.org/maruware/path-params.svg?branch=master)](https://travis-ci.org/maruware/path-params)

Build URL with path params

## Install

```
yarn add @maruware/path-params
```

## Usage

```ts
import pathParams from '@maruware/path-params'
const path = pathParams('/users/:id/messages/:message_id', {id: 2, message_id: 'abc'})
// '/users/2/messages/abc'
```

* with transform to snake case

```ts
import pathParams from '@maruware/path-params'
const path = pathParams('/users/:id/messages/:message_id', {id: 2, messageId: 'abc'}, {toSnake: true})
// '/users/2/messages/abc'
```
npm package: @maruware/promise-tools
Description: ![travis-ci](https://travis-ci.org/maruware/promise-tools.svg?branch=master) [![npm version](https://badge.fury.io/js/%40maruware%2Fpromise-tools.svg)](https://badge.fury.io/js/%40maruware%2Fpromise-tools)
Author: maruware
Latest version: 0.3.6

# promise-tools

![travis-ci](https://travis-ci.org/maruware/promise-tools.svg?branch=master)
[![npm version](https://badge.fury.io/js/%40maruware%2Fpromise-tools.svg)](https://badge.fury.io/js/%40maruware%2Fpromise-tools)

A collection of tools for Promise.
All functions are TypeScript native.

## Install

```sh
$ yarn add @maruware/promise-tools
```

## Usage

### all\<T>(...promises: Promise\<T>[]): Promise\<T[]>

Promise.all shorthand

```ts
import { all } from '@maruware/promise-tools'

async function something() {
  await all(
    Promise.resolve('a'),
    Promise.resolve('b'),
    Promise.resolve('c')
  )
}
```

###  each\<T, D>(targets: T[], process: (target: T) => Promise\<D>): Promise\<D[]>

```ts
const a = [1, 2, 3]
const f = (n: number) => {
  return Promise.resolve(n.toString())
}
const r = await each(a, f)
// ['1', '2', '3']
```

### chain\<T>(initialValue: T, catchCallback?: (e: Error) => void)

small queue

```ts
import { chain } from '@maruware/promise-tools'

const sample = (msg: string) => {
  return new Promise<string>(resolve => setTimeout(() => resolve(msg), 10))
}

const errorLogger = (err: Error) => {
  console.error(err)
}

async function something() {
  const q = chain('', errorLogger)
  q.add(prev => sample(prev + 'a'))
  q.add(prev => sample(prev + 'b'))
  const last = await q.add(prev => sample(prev + 'c'))
  // 'abc'
}
```

### delay(ms: number): Promise\<void>

resolve after milliseconds

```ts
import { delay } from '@maruware/promise-tools'

async function something() {
  await delay(1000)
  // do something
}
```

### timeout(ms: number): Promise\<void>

reject after milliseconds

```ts
import { timeout } from '@maruware/promise-tools'

async function something() {
  await timeout(1000)
}
```

### defer\<T>(): Deferred\<T>

Create deferred object.

```ts
import { defer } from '@maruware/promise-tools'

async function something() {
  const d = defer<string>()

  timeout(50).then(() => d.resolve('success'))
  const result = await d.promise
  // 'success'
}
```
npm package: @marv1n/element-ui
Description: A Component Library for Vue.js.
Author: marvin
Latest version: 1.0.4

<p align="center">
  <img src="https://cdn.rawgit.com/ElemeFE/element/dev/element_logo.svg">
</p>

[![Build Status](https://badgen.net/travis/FEMessage/element/master)](https://travis-ci.com/FEMessage/element)
[![NPM Download](https://badgen.net/npm/dm/@marv1n/element-ui)](https://www.npmjs.com/package/@marv1n/element-ui)
[![NPM Version](https://badgen.net/npm/v/@marv1n/element-ui)](https://www.npmjs.com/package/@marv1n/element-ui)
[![NPM License](https://badgen.net/npm/license/@marv1n/element-ui)](https://github.com/FEMessage/element/blob/master/LICENSE)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/FEMessage/element/pulls)
[![Automated Release Notes by gren](https://img.shields.io/badge/%F0%9F%A4%96-release%20notes-00B2EE.svg)](https://github-tools.github.io/github-release-notes/)

---

## Install
```shell
npm install @marv1n/element-ui -S

#or
yarn add @marv1n/element-ui
```

## Quick Start
``` javascript
import Vue from 'vue'
import Element from '@marv1n/element-ui'

Vue.use(Element)

// or
import {
  Select,
  Button
  // ...
} from '@marv1n/element-ui'

Vue.component(Select.name, Select)
Vue.component(Button.name, Button)
```
For more information, please refer to [Quick Start](http://femessgae.github.io/#/zh-CN/component/quickstart) in our documentation.

## Generate Theme
```sh
# fork this repository

git clone https://github/{ user || owner }/element.git

# remember: if want to update your component and its css, must merge latest only-component branch into your repository
git checkout -b only-component new-theme

# modify packages/theme-chalk/src/common/var.scss

# modify package name in packages/theme-chalk/package.json

sh ./publish-theme.sh

# now a new theme publish to npm for your own
```

The reason to checkout from branch `only-component`, can be found in [Contributing Guide](https://github.com/femessage/element/blob/master/.github/CONTRIBUTING.zh-CN.md)

## Development
```sh
# install dependence
yarn bootstrap

# generate files for examples site
yarn build:file

# generate theme files
yarn build:theme

# generate utils files
yarn build:utils

# generate files about locale
yarn build:umd

# clean files from yarn dist
yarn clean

# bundle examples site
yarn deploy:build

# bundle extension files
yarn deploy:extension

# extension local dev
yarn dev:extension

# local dev and preview examples site
yarn dev

# local dev single component
yarn dev:play

# bundle all lib
yarn dist

# generate i18n files
yarn i18n

# using eslint to check code style
yarn lint

# run unit test
yarn test
```

## Contribution
Please make sure to read the [Contributing Guide](https://github.com/femessage/element/blob/master/.github/CONTRIBUTING.zh-CN.md) before making a pull request.

## Browser Support
Modern browsers and Internet Explorer 10+.

## Links
- [Documentation](https://femessage.github.io/element)
- [ChangeLog](https://github.com/FEMessage/element/releases)

## LICENSE
[MIT](LICENSE)
npm package: @marv1n/vxe-table-plugin-export-xlsx
Description: (为项目特殊需求改写，仅内部使用) 基于 vxe-table 的表格插件，支持导出 xlsx 格式
Author: Xu Liangzhan
Latest version: 0.0.1

# vxe-table-plugin-export-xlsx

[![gitee star](https://gitee.com/x-extends/vxe-table-plugin-export-xlsx/badge/star.svg?theme=dark)](https://gitee.com/x-extends/vxe-table-plugin-export-xlsx/stargazers)
[![npm version](https://img.shields.io/npm/v/vxe-table-plugin-export-xlsx.svg?style=flat-square)](https://www.npmjs.com/package/vxe-table-plugin-export-xlsx)
[![npm downloads](https://img.shields.io/npm/dm/vxe-table-plugin-export-xlsx.svg?style=flat-square)](http://npm-stat.com/charts.html?package=vxe-table-plugin-export-xlsx)
[![npm license](https://img.shields.io/github/license/mashape/apistatus.svg)](LICENSE)

基于 [vxe-table](https://www.npmjs.com/package/vxe-table) 的表格插件，支持导出 xlsx 格式，基于 [exceljs](https://github.com/exceljs/exceljs) 实现

## Installing

```shell
npm install xe-utils vxe-table vxe-table-plugin-export-xlsx exceljs
```

```javascript
// ...
import VXETable from 'vxe-table'
import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx'
// ...

VXETable.use(VXETablePluginExportXLSX)
```

## Demo

```html
<vxe-toolbar>
  <template v-slot:buttons>
    <vxe-button @click="exportEvent">导出.xlsx</vxe-button>
  </template>
</vxe-toolbar>

<vxe-table
  ref="xTable"
  height="600"
  :data="tableData">
  <vxe-column type="seq" width="60"></vxe-column>
  <vxe-column field="name" title="Name"></vxe-column>
  <vxe-column field="age" title="Age"></vxe-column>
  <vxe-column field="date" title="Date"></vxe-column>
</vxe-table>
```

```javascript
export default {
  data () {
    return {
      tableData: [
        { id: 100, name: 'test', age: 26, date: null },
        { id: 101, name: 'test1', age: 30, date: null },
        { id: 102, name: 'test2', age: 34, date: null }
      ]
    }
  },
  methods: {
    exportEvent() {
      this.$refs.xTable.exportData({
        filename: 'export',
        sheetName: 'Sheet1',
        type: 'xlsx'
      })
    }
  }
}
```

## License

[MIT](LICENSE) © 2019-present, Xu Liangzhan
npm package: @marv1n/vxe-table-plugin-virtual-tree
Description: 基于 vxe-table 的表格插件，实现简单的虚拟树表格（属于内测阶段）
Author: Xu Liangzhan
Latest version: 0.0.1

# vxe-table-plugin-virtual-tree

[![gitee star](https://gitee.com/x-extends/vxe-table-plugin-virtual-tree/badge/star.svg?theme=dark)](https://gitee.com/x-extends/vxe-table-plugin-virtual-tree/stargazers)
[![npm version](https://img.shields.io/npm/v/vxe-table-plugin-virtual-tree.svg?style=flat-square)](https://www.npmjs.com/package/vxe-table-plugin-virtual-tree)
[![npm downloads](https://img.shields.io/npm/dm/vxe-table-plugin-virtual-tree.svg?style=flat-square)](http://npm-stat.com/charts.html?package=vxe-table-plugin-virtual-tree)
[![npm license](https://img.shields.io/github/license/mashape/apistatus.svg)](LICENSE)

基于 [vxe-table](https://www.npmjs.com/package/vxe-table) 的表格插件，实现简单的虚拟树表格（属于内测阶段，谨慎使用）

## Installing

```shell
npm install xe-utils vxe-table vxe-table-plugin-virtual-tree
```

```javascript
// ...
import VXETable from 'vxe-table'
import VXETablePluginVirtualTree from 'vxe-table-plugin-virtual-tree'
import 'vxe-table-plugin-virtual-tree/dist/style.css'
// ...

VXETable.use(VXETablePluginVirtualTree)
```

## Compatibility

* 功能点
  * 继承 Grid 基本功能

* 注意事项
  * 虚拟树的实现机制是污染式的，会污染数据源（给数据源自动增加额外的属性，用于编译成高性能的虚拟渲染所需要的参数）
  * 虚拟树的操作同样也是污染式的，通过 insert 或 remove 相关方法也会改变数据源

* 不支持的参数
  * table.keep-source
  * table.tree-config.line
  * table.tree-config.reserve
  * table.expand-config
  * table.span-method
  * table.footer-span-method
  * column.type = expand

## Demo

```html
<vxe-virtual-tree
  show-overflow
  row-key
  height="300"
  row-id="id"
  :data="tableData"
  :tree-config="{children: 'children'}"
  :columns="tableColumn">
</vxe-virtual-tree>
```

```javascript
export default {
  data () {
    return {
      tableColumn: [
        { field: 'name', title: 'Name', treeNode: true },
        { field: 'size', title: 'Size' },
        { field: 'type', title: 'Type' },
        { field: 'date', title: 'Date' }
      ],
      tableData: [
        { id:'101', name:'文档1', size: 12, type: 'xlsx', date: '2019-12-12' },
        {
          id:'102',
          name:'文件夹',
          size: 12,
          type: '',
          date: '2019-12-12',
          children: [
            { id:'103', name:'文档3', size: 12, type: 'avi', date: '2019-12-12' },
          ]
        }
      ]
    }
  }
}
```

## License

[MIT](LICENSE) © 2019-present, Xu Liangzhan
npm package: @marvae24/douban-cli
Description: Douban CLI - browse movies, TV shows, search from terminal | 豆瓣命令行工具
Author: Marvae
Latest version: 0.3.0

# douban-cli

Douban CLI - browse movies, TV shows, books, and personal collections from the terminal.

豆瓣命令行工具：在终端查看热门电影/剧集、排行榜、Top250、用户片单、书籍搜索与详情，并支持登录后进行标记、评分、评论、长评、导出和社交操作。

## Features / 功能

### Movies / 电影
- `hot` 热门电影/剧集
- `tv` 按标签查看剧集
- `rank` 类型高分排行
- `top250` 豆瓣 Top 250
- `now` 正在热映
- `coming` 即将上映
- `weekly` 一周口碑榜
- `search` 电影搜索
- `movie` 电影详情（支持 ID 或片名）
- `rating` 评分分布
- `comments` 短评
- `reviews` 热门影评

### Books / 书籍
- `book hot` 热门书籍
- `book search` 搜索书籍
- `book info` 书籍详情

### User / 用户
- `user` 指定用户片单
- `me` 我的片单（配置用户 ID 或登录态自动识别）
- `config` 本地配置
- `list` 热门豆列

### Auth & Social / 登录与社交
- `login` 登录并缓存 Cookie
- `whoami` 查看当前登录用户
- `logout` 清除本地登录态
- `mark` 标记想看/看过/在看
- `unmark` 取消标记
- `rate` 评分（1-5）
- `comment` 发送短评
- `review` 发布长评
- `feed` 查看关注动态
- `stats` 观影统计
- `export` 导出观影记录
- `follow` 关注用户
- `unfollow` 取消关注

## Installation / 安装

需要 Node.js 22 或更高版本。

```bash
npm install -g @marvae24/douban-cli
```

或直接运行：

```bash
npx @marvae24/douban-cli hot
```

## Requirements / 运行要求

- Node.js `>= 22`
- 支持的浏览器（用于自动提取登录态）：Chrome / Edge / Firefox / Safari

## Usage / 常用命令

### 基础查询

```bash
douban hot
douban hot --tv
douban tv 美剧 --limit 10
douban rank 科幻 --limit 20
douban top250 --limit 50
douban now --city 上海
douban coming --limit 10
douban weekly
```

### 搜索与详情

```bash
douban search "奥本海默"
douban movie 35593344
douban movie "沙丘"
douban rating 1291546
douban comments 1291546 --latest
douban reviews 1291546 --limit 5
```

### 书籍

```bash
douban book hot --limit 10
douban book search "三体"
douban book info 2567698
```

### 用户与配置

```bash
douban user USER_ID
douban user USER_ID --wish
douban config --user USER_ID
douban me
douban me --doing
douban list --limit 10
```

### 登录与身份

```bash
douban login
douban whoami
douban logout
```

### 标记/评分/评论（需登录）

```bash
douban mark 1292052 --wish
douban mark 1292052 --watched
douban mark 1292052 --watching
douban unmark 1292052

douban rate 1292052 --score 5
douban comment 1292052 "值得二刷"
douban review 1292052 "标题" "长评正文"
```

### 批量操作（需登录）

```bash
douban mark --file ids.txt --wish
douban unmark --file ids.txt --delay 1.5
douban rate --file rate.csv
douban comment --file comments.csv --delay 1.5
```

文件格式：
- `ids.txt`: 每行一个电影 ID
- `rate.csv`: 每行 `<id>,<score>`（`score` 为 `1-5`）
- `comments.csv`: 每行 `<id>,<comment>`（也支持制表符分隔）

### 社交与数据（需登录）

```bash
douban feed --limit 10
douban stats --year 2026
douban export --format json -o douban-export.json
douban export --format csv -o douban-export.csv

douban follow USER_ID
douban unfollow USER_ID
```

### JSON 输出

所有命令都支持 `--json`：

```bash
douban search "沙丘" --json
douban whoami --json
douban export --format json --output export.json
```

## License

MIT
npm package: @marvae24/weibo-cli
Description: Weibo CLI - fetch trending, search, and user data from the terminal
Latest version: 0.1.0

# weibo-cli

微博命令行工具 - 在终端获取热搜、搜索和用户数据。

[English](./README.md)

## 功能

- 🔥 **热搜** - 实时热搜榜、话题详情
- 🔍 **搜索** - 微博、用户、话题、视频、文章
- 👤 **用户** - 资料、动态、关注、粉丝
- 📝 **微博** - 详情、评论

## 安装

```bash
git clone https://github.com/Marvae/weibo-cli.git
cd weibo-cli
npm install && npm run build
npm link
```


## 使用

### 热搜

```bash
# 获取热搜榜（前50条）
weibo hot

# 限制数量
weibo hot --limit 10

# 获取话题详情
weibo hot "咖啡"

# JSON 输出
weibo hot --json
```

### 搜索

```bash
# 搜索微博（默认）
weibo search "咖啡"

# 搜索用户
weibo search "咖啡" --type user

# 搜索话题
weibo search "音乐" --type topic

# 查看话题统计（阅读量、讨论量）
weibo search "旅行" --stats

# 搜索类型：content, user, topic, realtime, hot, video, image, article
weibo search "猫" --type video --limit 5
```

### 用户

```bash
# 获取用户资料（需要 UID）
weibo user 123456789

# 获取用户动态
weibo user 123456789 --feeds

# 获取热门动态（按互动量排序）
weibo user 123456789 --feeds --hot

# 获取关注列表
weibo user 123456789 --following

# 获取粉丝列表
weibo user 123456789 --followers

# 分页
weibo user 123456789 --feeds --limit 20 --page 2
```

### 微博

```bash
# 获取微博详情
weibo post 5000000000000000

# 获取评论
weibo post 5000000000000000 --comments

# JSON 输出
weibo post 5000000000000000 --json
```

### 全局选项

```bash
# 显示请求 URL 和响应状态
weibo hot --verbose

# JSON 输出（所有命令都支持）
weibo hot --json
```

## 限流

本工具使用微博移动端 API，无需登录。如遇限流：

- 自动重试，指数退避（1秒 → 2秒 → 4秒）
- 频繁调用请稍等几分钟
- 高频使用可设置 `WEIBO_COOKIE` 环境变量

```bash
WEIBO_COOKIE="SUB=...; SUBP=..." weibo hot
```

## 技术栈

- TypeScript
- Node.js 18+
- Commander.js

## 许可证

MIT
npm package: @marvel-js/three
Description: JavaScript 3D library
Author: mrdoob
Latest version: 130.1.0

three.js
========

[![NPM Package][npm]][npm-url]
[![Build Size][build-size]][build-size-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![Language Grade][lgtm]][lgtm-url]

#### JavaScript 3D library ####

The aim of the project is to create an easy to use, lightweight, cross-browser, general purpose 3D library. The current builds only include a WebGL renderer but WebGPU (experimental), SVG and CSS3D renderers are also available in the examples.

[Examples](https://threejs.org/examples/) &mdash;
[Documentation](https://threejs.org/docs/) &mdash;
[Wiki](https://github.com/mrdoob/three.js/wiki) &mdash;
[Migrating](https://github.com/mrdoob/three.js/wiki/Migration-Guide) &mdash;
[Questions](http://stackoverflow.com/questions/tagged/three.js) &mdash;
[Forum](https://discourse.threejs.org/) &mdash;
[Slack](https://join.slack.com/t/threejs/shared_invite/zt-rnuegz5e-FQpc6YboDVW~5idlp7GfDw) &mdash;
[Discord](https://discordapp.com/invite/HF4UdyF)

### Usage ###

This code creates a scene, a camera, and a geometric cube, and it adds the cube to the scene. It then creates a `WebGL` renderer for the scene and camera, and it adds that viewport to the `document.body` element. Finally, it animates the cube within the scene for the camera.

```javascript
import * as THREE from './js/three.module.js';

let camera, scene, renderer;
let geometry, material, mesh;

init();

function init() {

	camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
	camera.position.z = 1;

	scene = new THREE.Scene();

	geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 );
	material = new THREE.MeshNormalMaterial();

	mesh = new THREE.Mesh( geometry, material );
	scene.add( mesh );

	renderer = new THREE.WebGLRenderer( { antialias: true } );
	renderer.setSize( window.innerWidth, window.innerHeight );
	renderer.setAnimationLoop( animation );
	document.body.appendChild( renderer.domElement );

}

function animation( time ) {

	mesh.rotation.x = time / 2000;
	mesh.rotation.y = time / 1000;

	renderer.render( scene, camera );

}
```

If everything went well, you should see [this](https://jsfiddle.net/vy29n6aj/).

### Cloning this repository ###

Cloning the repo with all its history results in a ~2 GB download. If you don't need the whole history you can use the `depth` parameter to significantly reduce download size.

```sh
git clone --depth=1 https://github.com/mrdoob/three.js.git
```

### Change log ###

[Releases](https://github.com/mrdoob/three.js/releases)


[npm]: https://img.shields.io/npm/v/three
[npm-url]: https://www.npmjs.com/package/three
[build-size]: https://badgen.net/bundlephobia/minzip/three
[build-size-url]: https://bundlephobia.com/result?p=three
[npm-downloads]: https://img.shields.io/npm/dw/three
[npmtrends-url]: https://www.npmtrends.com/three
[lgtm]: https://img.shields.io/lgtm/alerts/github/mrdoob/three.js
[lgtm-url]: https://lgtm.com/projects/g/mrdoob/three.js/
npm package: @marvelousdesigner/design-system
Description: ## 빌드 및 배포 환경
Author: Marvelous Designer
Latest version: 0.1.21-patch-11

# MDDS(Marvelous Designer Design System)

## 빌드 및 배포 환경

> 기본적으로 rollup을 이용해 번들링하여 결과물을 배포하게 됩니다.
> master에 merge가 되면 github Action을 통해 자동으로 배포가 시작됩니다.(workflows / publish.yml 참조)

## 자동배포 이외에 별도로 배포시 유의사항

> `node : >= 16.x` // nvm 사용해서 변경필요

> 해당부분은 추후 master merge 혹은 tagging 시 `Github Action`으로 구성해서 node >=16.x 기반 `actions/setup-node@v3` 환경안에서
> build 및 publish가 가능하도록 구성예정
> [링크](https://docs.github.com/ko/actions/publishing-packages/publishing-nodejs-packages)

> npm token역시 repository내의 secret key로 관리예정

## 라이브러리 사용시 요구사항

> `package.json`의 peerDependency를 확인해 주세요

## TODO 개선이 필요하다고 생각되어지는 부분..

> vite(library mode)를 사용해(esbuild와 rollup의 이점을 이용) 빌드시스템 구축을 개선해 나갈 수 있을 것으로 판단됨
npm package: @marvelsq/use-properties-hook
Description: A React Hook - instance variables with useRef
Author: MarvelSQ
Latest version: 0.1.4

# use-properties-hook

bind variables to current Component, like **_class-properties_**

## install

```
npm install @marvelsq/use-properties-hook
```

## use
- **useProperty(any):any** bind single variable
- **useProperties(...any):[...any]** bind multiple variable
```js
import React, { useState } from 'react';
import { useProperties } from '@marvelsq/use-properties-hook';

export default function App({ data, updateData }) {
  // state
  const [active, setActive] = useState(null);
  // functions always same
  const [handleClick, handleRemove] = useProperties(
    index => setActive(index),
    targetIndex => {
      updateData(data.filter((data, index) => targetIndex !== index));
      setActive(data[index - 1] ? index - 1 : null);
    }
  );

  return <Table data={data} onClick={handleClick} onRemove={handleRemove} />;
}
```

**inspired by [Making setInterval Declarative with React Hooks](https://overreacted.io/making-setinterval-declarative-with-react-hooks/)**
npm package: @marvelswap/uikit
Description: Set of UI components for marvelswap projects
Latest version: 0.0.18

# marvelswap Uikit


marvelswap UIkit is a set of React components and hooks used to build pages on marvelswap's apps. It also contains a theme file for dark and light mode.

## Install

`yarn add @marvelswap/uikit`

## Setup

### Theme

Before using marvelswap UIkit, you need to provide the theme file to styled-component.

```
import { ThemeProvider } from 'styled-components'
import { light, dark } from '@marvelswap/uikit'
...
<ThemeProvider theme={isDark}>...</ThemeProvider>
```

### Reset

A reset CSS is available as a global styled component.

```
import { ResetCSS } from '@marvelswap/uikit'
...
<ResetCSS />
```

### Types

This project is built with Typescript and export all the relevant types.
npm package: @marvi-io/global-contracts
Description: A backend and frontend module for marvio-io
Author: ahrnee
Latest version: 0.2.0

# nestjs-bff-global

This is a companion package for [nestjs-bff](https://github.com/ahrnee/nestjs-bff). This package contains the global code that is shared between the backend api and the client. Typically, this is contracts and DTOs, but it can also contain global logic.

## Overview

[NestJS-BFF](https://github.com/ahrnee/nestjs-bff) is a starter project for those looking to fast-track building a strongly typed, enterprise-grade, modern NodeJs application, with supporting tooling.

This implementation uses the [BFF](https://samnewman.io/patterns/architectural/bff/) pattern, leveraging [NestJS](https://nestjs.com/) as the primary framework for the backend API. The frontend example is in [Angular](https://angular.io/), although any client-side Javascript framework can easily be used, including [React](https://reactjs.org/), or [Vue](https://vuejs.org/) js.

## Documentation

Documentation and further details can be found in the [nestjs-bff github repo](https://github.com/ahrnee/nestjs-bff)