open-index/open-npm huggingface dataset:
npm package: @lzhoucs/vuetify
Description: Vue.js 2 Semantic Component Framework
Author: John Leider
Latest version: 1.5.14-modified.5

### Introduction

This is a fork of [vuetifyjs/vuetify](https://github.com/vuetifyjs/vuetify), which contains some of the features that is not available in official vuetify yet, such as:
* Grouping table. [code](https://github.com/lzhoucs/vuetify/pull/1), [demo](https://codepen.io/lzhoucs/pen/aadaJx)
* Fixed columns table. [code](https://github.com/lzhoucs/vuetify/pull/4), [demo](https://codepen.io/lzhoucs/pen/dqZvXr)

### Motivation
Our current project has a requirement for this feature, which is the primary reason for working on these features.These added features probably won't be included in official vuetify release due to a full on-going rewrite: https://github.com/vuetifyjs/vuetify/pull/3833, see my original PR: https://github.com/vuetifyjs/vuetify/pull/4966 for details

### Where to get the modified code/package

I am maintaining the following branches:
* [1.5.x.modified](https://github.com/lzhoucs/vuetify/tree/1.5.x.modified)

to keep up to date with 1.5.x versions of vuetify. It is published to npm: [@lzhoucs/vuetify](https://www.npmjs.com/package/@lzhoucs/vuetify)

The following branches are out dated and are no longer maintained:
* [1.2.x.modified](https://github.com/lzhoucs/vuetify/tree/1.2.x.modified)
* [1.0.x.modified](https://github.com/lzhoucs/vuetify/tree/1.0.x.modified)


### How to use this package [@lzhoucs/vuetify](https://www.npmjs.com/package/@lzhoucs/vuetify):
#### Approach 1, use webpack module alias
* Modify `vuetify` package name in `package.json`. One way is to run the following commands:
```
npm uninstall vuetify
npm install @lzhoucs/vuetify --save
```
* Add an alias entry to webpack config so vuetify imports name doesn't have to be touched in the code. If you are using vue cli v3, the syntax looks like the following:
```
  configureWebpack: {
    resolve: {
      alias: {
        vuetify: '@lzhoucs/vuetify'
      }
    }
  }
```
#### Approach 2(recommended), use [package alias](https://yarnpkg.com/en/docs/cli/add#toc-yarn-add-alias)

This is how it looks like in command line
```
yarn add vuetify@npm:@lzhoucs/vuetify
```
This is the package.json added by yarn once the above command is ran:
```
"vuetify": "npm:@lzhoucs/vuetify@^1.5.14-modified.4"
```

### Note
The hope is eventually vuetify can officially support these features so we don't have to use the modified package which takes efforts to keep up to date with the official one. In the meanwhile, use this package at your own risk. Not all features are well tested. You can open an issue if you find something not work.

### License

[MIT licensed](./LICENSE).
npm package: @lzn1024/openclaw-async-task
Description: Execute long-running tasks without HTTP timeouts for OpenClaw/Clawdbot
Author: Enderfga
Latest version: 1.0.1

# OpenClaw Async Task

> Execute long-running tasks without HTTP timeouts

When AI agents execute commands that take more than a few seconds, HTTP connections often timeout. This tool solves that.

## How It Works

```
User: "Analyze this large codebase"

AI Agent:
  1. async-task start "Analyzing..."  → Returns immediately ✓
  2. <runs actual analysis>
  3. async-task done "Found 150 issues"  → Pushes to user ✓
```

## Installation

```bash
npm install -g openclaw-async-task
```

## Usage

```bash
# Start a task (returns immediately)
async-task start "Processing data..."

# Complete with result
async-task done "Processed 1,234 records"

# Or report failure
async-task fail "Connection timeout"

# Direct push
async-task push "Progress: 50%"

# Check status
async-task status
```

## Zero Configuration

Works out of the box - automatically detects `openclaw` or `clawdbot` CLI and uses native sessions API.

## Custom Endpoint (Optional)

```bash
export ASYNC_TASK_PUSH_URL="https://your-server.com/api/push"
export ASYNC_TASK_AUTH_TOKEN="your-token"
```

## As an OpenClaw/Clawdbot Skill

Includes `SKILL.md` for automatic skill discovery.

## License

MIT
npm package: @lzn1024/vue-code-link
Description: ![Animation](https://user-images.githubusercontent.com/62974111/174468768-dcacbfaa-3565-4608-bbb3-9a1b81da4ff0.gif)
Author: linzhinan
Latest version: 1.0.42

![Animation](https://user-images.githubusercontent.com/62974111/174468768-dcacbfaa-3565-4608-bbb3-9a1b81da4ff0.gif)

# 通过 shift+左键点击页面元素,快速在 vscode 中定位代码位置

# [changelog](https://github.com/chana1024/linzhinan-vue-code-link/blob/master/CHANGELOG.md)

# 引入

```
    引入只需如下三步
    //1、install package
    npm install -s @linzhinan/vue-code-link
    //2、vue.config.js
    const { vueCodeLinkServer, vueCodeLinkLoaderConfig } = require('@linzhinan/vue-code-link')
    module.exports = {
        ...
        devServer: {
          ...
          //添加监听服务
          before: vueCodeLinkServer.before
        },
        ...
        chainWebpack(config) {
          //添加vue-code-link处理器
          vueCodeLinkLoaderConfig.addVueCodeLinkLoader(config)
          ...
        }
    }
    //3、main.js
    import { vueCodeLinkClient } from '@linzhinan/vue-code-link'
    vueCodeLinkClient.init()
```

# 编辑器设置/setEditor

- 新增支持 webstorm

```
 //修改vue.config.js
  const { vueCodeLinkServer,vueCodeLinkServerConfig,vueCodeLinkLoaderConfig } = require('@linzhinan/vue-code-link')
  vueCodeLinkServerConfig.setEditor("webstorm")
```

# 编辑器命令加入环境变量

## vscode 的 code 命令

- vscode 的定位功能是基于 vscode 的 code 命令实现的，所以请确认 code 命令是否有效(cmd 或 shell 里直接执行 code)
- 若 code 命令找不到请如下操作: \
   方案 1 \
  使用 command + shift + p (注意 window 下使用 ctrl + shift + p ) 然后搜索 code，选择 install 'code' command in path。 \
   方案 2 \
  也可直接手动将 code 命令的路径添加到环境变量中

## webstorm

直接手动将 webstorm 命令的路径添加到环境变量中

# 使用

shift+鼠标左键点击页面元素即可

# 注意事项

- 插件会自动根据生成与开发环境决定是否启用,不会对生产环境造成任何影响
- 暂时只支持 vue + webpack + vscode/webstorm
- 代码定位精确到行，但定位只限于项目 src 目录下的代码,后续会考虑添加可定位目录的配置
- 该项目借鉴了一位前端大佬的文章，[文章链接](https://mp.weixin.qq.com/s/AZQTK_lk8BxxWZCDU5P_Yg)。文章里有详细的设计思路和代码片段。
  本来打算直接用大佬的项目，但是对方说暂时只在他们公司内部使用，故本人自己写了一个简单版的。
npm package: @lzptec/ctx
Description: Dead simple context manager for Nodejs
Author: André Posso
Latest version: 1.0.0

# @lzptec/ctx [WIP]
## Dead simple context manager for Nodejs

```ts
import { AsyncCTX, AsyncContext, ContextToken, Context } from '@lzptec/ctx';

const token = new ContextToken<number>();
const tokenWithDefault = new ContextToken<number>(() => 123);
const context = new AsyncContext();

const printContextValue = () => {
    console.log(context.get(token));
};

const run = () => {
    await context.run(() => {
        printContextValue(); // Print undefined

        // Async Context
        context.set(token, 987);

        printContextValue(); // Print token value 987
    });

    // Outside Async Context 
    printContextValue(); // throw a ReferenceError
};

run();

```
npm package: @lzptec/di
Description: A Lightweight dependency manager
Author: André Posso
Latest version: 0.1.0

# @lzptec/di
Lightweight dependency manager

# Installation

npm
```sh
npm i @lzptec/di
```

pnpm
```sh
pnpm i @lzptec/di
```

# Usage

See the documentation [here](/docs/USAGE.md).

# Notes

Documentation will be updated over time.
npm package: @lzptec/fast-ipc
Description: Fast & simple IPC (Inter-Process Communication) server/client written on native net module
Author: lzptec
Latest version: 2.1.2

# @lzptec/fast-ipc
Fast & simple IPC (Inter-Process Communication) server/client build on native net module

## Installation

npm
```sh
npm i @lzptec/fast-ipc
```

pnpm
```sh
pnpm i @lzptec/fast-ipc
```

## Usage

### Server
```js
import { server } from '@lzptec/fast-ipc';

const ipcServer =
    new server('example')
        .on('msg', (data) => {
            console.log(data);
            // [1, 2, 3, 4, 5]
        })
        .on('ping', () => {
            return 'pong!';
        })
        .on('event', (data) => {
            return {
                data: data,
                timestamp: Date.now()
            };
        })
        .on('asyncEvent', async (data) => {
            // await someLongTask();

            return {
                data: data
            };
        });

```

### Client
```js
import { client } from '@lzptec/fast-ipc';

const ipcClinet = new client('example');

ipcClinet.send('msg', [1, 2, 3, 4, 5]);

const msg = await ipcClinet.send('ping', null);
console.log(msg); 
// pong!

const event = await ipcClinet.send('event', [1, 2, 3, 'testing']);
console.log(event);

const asyncEvent = await ipcClinet.send('asyncEvent', 123);
console.log(asyncEvent);
// { data: 123 }
```

## Original
The original project([fast-ipc](https://github.com/scrwdrv/fast-ipc)) hasn't been updated in the last 2 years, so I created this fork and updated the library 

### Diferences
A new config parameter has been added to the client and server constructors.

The library is now promise-based.

## Notes
Documentation will be updated over time.
npm package: @lzq332488573/npm-release-starter
Description: This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
Author: Your Name
Latest version: 0.1.4

# Vue 3 + Vite

This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.

Learn more about IDE Support for Vue in the [Vue Docs Scaling up Guide](https://vuejs.org/guide/scaling-up/tooling.html#ide-support).
npm package: @lztek/blogs-for-vercel-sdk
Description: Official SDK for integrating Blogs-For-Vercel with Next.js and Vercel
Latest version: 0.2.0

# @lztek/blogs-for-vercel-sdk

Official SDK for integrating Blogs-For-Vercel with Next.js and Vercel.

## Installation

```bash
npm install @lztek/blogs-for-vercel-sdk
```

## Quick Start

### Server Components (Recommended)

```tsx
import { getBlogPosts } from '@lztek/blogs-for-vercel-sdk/server';

export default async function BlogPage() {
  const { posts } = await getBlogPosts({ revalidate: 3600 });
  return <BlogList posts={posts} />;
}
```

### Client Components

```tsx
'use client';
import { useBlogPosts } from '@lztek/blogs-for-vercel-sdk/hooks';

export default function BlogList() {
  const { posts, isLoading, error } = useBlogPosts();
  
  if (isLoading) return <div>Loading...</div>;
  if (error) return <div>Error: {error.message}</div>;
  
  return (
    <div>
      {posts.map(post => <BlogPostCard key={post.id} post={post} />)}
    </div>
  );
}
```

## Environment Variables

### Server Components

```env
BLOGS_FOR_VERCEL_API_KEY=your_api_key_here
BLOGS_FOR_VERCEL_BASE_URL=https://blogsforvercel.com  # Optional, defaults to production
```

### Client Components

```env
NEXT_PUBLIC_BLOGS_FOR_VERCEL_API_KEY=your_api_key_here
NEXT_PUBLIC_BLOGS_FOR_VERCEL_BASE_URL=https://blogsforvercel.com  # Optional
```

## API Reference

### Server Components

- [`getBlogPosts(options?)`](#getblogposts)
- [`getBlogPost(slug, options?)`](#getblogpost)
- [`getBlogPostsByTag(tag, options?)`](#getblogpostsbytag)
- [`revalidateBlogPosts(tag?)`](#revalidateblogposts)

### Client Components (Hooks)

- [`useBlogPosts(options?)`](#useblogposts)
- [`useBlogPost(slug, options?)`](#useblogpost)
- [`useBlogPostsByTag(tag, options?)`](#useblogpostsbytag)

### Core Client

- [`BlogsForVercelClient`](#blogsforvercelclient)

## Documentation

For complete documentation, see [INTEGRATION.md](./docs/INTEGRATION.md)

## License

MIT
npm package: @lzw-leaf/cordova-plugin-bugly
Description: A cordova plugin of base on tecent bugly
Author: lzw-leaf
Latest version: 1.0.2

# cordova-plugin-bugly

基于腾讯的[Bugly](https://bugly.qq.com/v2/index)集成 cordova 插件

目前只支持应用升级，做了自定义的dialog样式

## Support

仅支持Android (ios目前没需求)  
**要求 `AndroidSdkVersion` \>= 21。**    
 小于21的需要自行测试（理论可用）

## Installation

    cordova plugin add cordova-plugin-bugly

## Config

在cordova项目根目录的配置上Bugly的appid

``` xml
<!-- /config.xml -->
<preference name="buglyAppId" value="Your BuglyAppId" />
<!-- 例子：  -->
<preference name="buglyAppId" value="92894924" />

```

由于内置了andoridX的布局样式，需要config.xml上配置AndroidXEnabled开启支持

``` xml
<!-- /config.xml -->
  <preference name="AndroidXEnabled" value="true" />
```

为保障兼容需要安装 `cordova-plugin-androidx-adapter` 插件做处理

    cordova plugin add cordova-plugin-androidx-adapter

### Methods

> 挂载在全局window上的全局变量是 `BugSdk`

#### 检测更新

``` js
/**
 * 触发bugly更新检测
 * @param {boolean} isManual 是否用户手动触发
 * @param {boolean} isSilence 是否静默 （false则弹窗 ,true则不触发）
 * @return {Promise<string>} 返回提示信息
 */
BugSdk.checkUpgrade(isManual = true, isSilence = false)
    .then(msg => {
        // 成功触发更新
    }).catch(e => {
        //sdk.checkUpgrade错误捕获
    })
```

#### 获取应用信息

``` js
/**
 * 获取应用信息
 * 目前只返回 versionName,versionCode
 * @return {Promise<{versionName,versionCode}>} 返回应用信息
 */
BugSdk.getAppInfo().then(data => {
    const {
        versionName,
        versionCode
    } = data
    // versionName 是版本号
    // versionCode 是版本code
})
}
```

## 注意

1. 截止2021年5月31日 `cordova plugins add`指令 在npm7.X版本不支持添加本地插件需要自行降版本 建议通过`nvm`管理多版本node
2. 编写了d.ts文件可以再ts项目中使用
3. cordova项目开发中碰到奇怪的问题可以试试 `cordova platform rm android` 再 `cordova platform add android`

吐槽一下工作中的那些旧项目
本意是想升级一下工作中用到的cordova-android，来拥抱新版本，结果升级到9.0后才悲哀的发现原有的bugly相关内容是散在项目中的，剥了半天才总算一个一个拖拽出来拧到一起。什么鬼才想法会直接在platform中改代码，难怪项目体积这么大
npm package: @lzw10168/avataaars
Description: React component for avataaars
Author: lzw10168
Latest version: 2.0.1

# React component for Avataaars

The core React component for [Avataaars Generator](https://getavataaars.com/) developed by [Fang-Pen Lin](https://twitter.com/fangpenlin), based on the Sketch library [Avataaars](https://avataaars.com/) designed by [Pablo Stanley](https://twitter.com/pablostanley). 

<p align="center"><img src='avataaars-example.png?raw=true' style='width: 300px; height: 300px;' /></p>

## Features

 - SVG based
 - Light weight 
 - Scalable
 - Easy to use
 - Easy to integrate with custom editor
 - Comes with [official editor](https://getavataaars.com/)

## Usage

First, you need to install the avataaars component package, here you run

```
yarn add avataaars
```

or

```
npm install avataaars --save
```

if you are using npm. Then, in your React app, import the Avataaar component and put it where you like it to be, for example

```jsx
import * as React from 'react'
import Avatar from 'avataaars'

export default class MyComponent extends React.Component {
  render () {
    return 
      <div>
        Your avatar:
        <Avatar
          style={{width: '100px', height: '100px'}}
          avatarStyle='Circle'
          topType='LongHairMiaWallace'
          accessoriesType='Prescription02'
          hairColor='BrownDark'
          facialHairType='Blank'
          clotheType='Hoodie'
          clotheColor='PastelBlue'
          eyeType='Happy'
          eyebrowType='Default'
          mouthType='Smile'
          skinColor='Light'
        />
      </div>
  }
}
```

To showcase individual pieces of the avatar you can use the Piece component, for example:

```jsx
import * as React from 'react'
import {Piece} from 'avataaars';

export default class MyComponent extends React.Component {
  render () {
    return 
      <div>
        <Piece pieceType="mouth" pieceSize="100" mouthType="Eating"/>
        <Piece pieceType="eyes" pieceSize="100" eyeType="Dizzy"/>
        <Piece pieceType="eyebrows" pieceSize="100" eyebrowType="RaisedExcited"/>
        <Piece pieceType="accessories" pieceSize="100" accessoriesType="Round"/>
        <Piece pieceType="top" pieceSize="100" topType="LongHairFro" hairColor="Red"/>
        <Piece pieceType="facialHair" pieceSize="100" facialHairType="BeardMajestic"/>
        <Piece pieceType="clothe" pieceSize="100" clotheType="Hoodie" clotheColor="Red"/>
        <Piece pieceType="graphics" pieceSize="100" graphicType="Skull" />
        <Piece pieceType="skin" pieceSize="100" skinColor="Brown" />
      </div>
  }
}
```

To explore avatar options and generate the React code, please use [Avataaars Generator](https://getavataaars.com/)

## Collect options

To build your own avatar editor, you may want to use lower level `Avatar` component along with `OptionContext`. For more details usage, please reference to source code of [avataaars-generator](https://github.com/fangpenlin/avataaars-geneator), see how it uses `OptionContext` to collection available options.
npm package: @lzwme/cron-tasks
Description: A simple cron tasks manager based on Node.js
Author: renxia
Latest version: 1.0.0

# @lzwme/cron-tasks

> npx @lzwme/cron-tasks

This is a simple cron tasks manager based on Node.js.

## Installation

```bash
npm i -g @lzwme/cron-tasks
```

## Usage

```bash
tcron
```

## License

`@lzwme/cron-tasks` is released under the [MIT](./LICENSE) license.

该插件由[志文工作室](https://lzw.me)开发和维护。
npm package: @lzwme/duplicate-file-cleaner
Description: 一个基于 Node.js 的重复文件删除工具。
Author: renxia
Latest version: 1.2.0


# DUPLICATE-FILE-CLEANER

[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]

[npm-image]: https://img.shields.io/npm/v/@lzwme/duplicate-file-cleaner.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@lzwme/duplicate-file-cleaner
[download-image]: https://img.shields.io/npm/dm/@lzwme/duplicate-file-cleaner.svg?style=flat-square
[download-url]: https://npmjs.org/package/@lzwme/duplicate-file-cleaner


一个基于 `nodejs` 的重复文件删除工具。

## duplicate-file-cleaner 简介

### 特色

- `支持命令行工具方式便捷使用`
- `支持 nodejs API 调用`
- more...

## 安装与使用

### 全局安装、命令行工具用法

```bash
npm i -g @lzwme/duplicate-file-cleaner
dfcleaner -h
```

将输出 `help` 帮助信息：

```bash
Usage: dfcleaner [options]

一个基于 `nodejs` 的重复文件删除工具。 [version 1.0.0]

Options:
  -v, --version              output the version number
  -d, --dir [value]          指定要清理的目录。默认为当前目录
  --file-min-size [value]    最小文件大小。大于 0 时，小于该大小的文件将被清理 (default: 0)
  --compare-all-dir [value]  是否对进行所有目录比较。为 false 则只对同目录下文件进行比较和清理。默认 true (default: true)
  --clear-sub-dir [value]    是否清理子目录。默认 true (default: true)
  --del-empty-dir [value]    是否删除空目录。默认 true (default: true)
  -q, --silent [value]       是否不输出清理过程相关的信息提示。默认 false (default: false)
  -c, --config [filepath]    配置文件 .dfcleaner.config.js 的路径。默认为当前执行目录或 Home 目录下 (default: ".dfcleaner.config.js")
  --debug                    开启调试模式 (default: false)
  -h, --help                 display help for command
```

### 用法示例

```bash
# 对 test-dir 目录及其子目录下的所有文件进行重复文件清理
dfcleaner -d test-dir
```

### API 调用用法示例

```js
const { cleaner, getConfig } = require('@lzwme/duplicate-file-cleaner');
const config = getConfig({
  // debug: true,
  baseDir: process.cwd(),
});
const result = cleaner(config);

console.log(`清理完成！共处理了 ${result.fileTotalCount} 个文件，删除了 ${result.fileDelCount} 个文件`);
```

### 配置文件参考

配置文件名称为 `.dfcleaner.config.js`，具体配置与内容参考：

```js
{
    /** 开启调试模式 */
    debug: false,
    /** 最小文件大小。大于 0 时，小于该大小的文件将被清理 */
    fileMinSize: 0,
    /** 要清理的文件根目录 */
    baseDir: process.cwd(),
    /** 是否对进行所有目录比较。为 false 则只对同目录下文件进行比较和清理 */
    compareAllDir: true,
    /** 是否清理子目录 */
    isClearSubDir: true,
    /** 是否删除空目录 */
    isDelEmptyDir: true,
    /** 是否不输出清理过程相关的信息提示 */
    isSilent: false,
    /** 文件排除规则。字符串、正则表达式或正则表达式数组。如设置，命中则不处理 */
    exclude: null,
    /** 文件匹配规则。字符串、正则表达式或正则表达式数组。如设置，命中的文件才处理 */
    include: null,
  };
```


## 开发与测试

```bash
git clone https://github.com/lzwme/duplicate-file-cleaner.git
cd duplicate-file-cleaner
yarn && yarn start
```

## TODO

- 增加重复文件删除优先级配置
- 增加相似图片删除、目录归类功能
- More...

## 相关参考

- https://www.npmjs.com/package/jimp
- https://github.com/peterbraden/node-opencv
- https://docs.opencv.org/4.3.0/d5/d10/tutorial_js_root.html
- https://github.com/justadudewhohacks/face-api.js

## License

`duplicate-file-cleaner` is released under the MIT license.

该插件由[志文工作室](https://lzw.me)开发和维护。
npm package: @lzwme/fe-utils
Description: 前端 node、web 项目常用工具函数集合。
Author: renxia
Latest version: 1.9.2

[![@lzwme/fe-utils](https://nodei.co/npm/@lzwme/fe-utils.png)][npm-url]

# @lzwme/fe-utils

[![NPM version][npm-badge]][npm-url]
[![node version][node-badge]][node-url]
![license MIT](https://img.shields.io/github/license/lzwme/fe-utils)

[![build status](https://github.com/lzwme/fe-utils/actions/workflows/node-ci.yml/badge.svg)](https://github.com/lzwme/fe-utils/actions/workflows/node-ci.yml)
[![npm download][download-badge]][download-url]
[![GitHub issues][issues-badge]][issues-url]
[![GitHub forks][forks-badge]][forks-url]
[![GitHub stars][stars-badge]][stars-url]

前端 node、web 项目开发常用的工具函数集合。主要为在多个项目长期开发实践过程中频繁使用的工具类。部分实现参考借鉴了各流行开源库。

## 功能特性

- 少即是多。只收集高频使用的方法
- 部分工具函数核心实现收集自各流行开源库
- 支持 tree-shaking 方式调用(esm)
- more...

## 安装

```bash
# use npm
npm i @lzwme/fe-utils
# use yarn
yarn add @lzwme/fe-utils
# use pnpm
pnpm add @lzwme/fe-utils
```

## 使用

默认导出为 `Node.js` 下的工具集。

`commonjs` 示例：

```ts
const { md5, getLoger } = rquire('@lzwme/fe-utils');
const logger = getLoger();

logger.info(md5('123456'));
```

`es module` 示例：

```ts
import { dateFormat } from '@lzwme/fe-utils';

console.log(dateFormat('yyyy-MM-dd', new Date()));
```

在纯浏览器的 `web` 项目中使用示例：

```ts
import { dateFormat, Logger } from '@lzwme/fe-utils/esm/web';

const logger = Logger.getLogger();
logger.log(dateFormat('yyyy-MM-dd', new Date()));
```

更多细节可参考 [API 文档](https://lzwme.github.io/fe-utils/)。

## 开发

本地二次开发：

```bash
git clone https://github.com/lzwme/fe-utils
yarn install
npm link
yarn dev
```

或者 [fork](https://github.com/lzwme/fe-utils/fork) 本项目进行代码贡献。

**欢迎贡献想法与代码。**

## Thanks

- https://github.com/microsoft/vscode

## License

`@lzwme/fe-utils` is released under the MIT license.

该插件由[志文工作室](https://lzw.me)开发和维护。


[stars-badge]: https://img.shields.io/github/stars/lzwme/fe-utils.svg
[stars-url]: https://github.com/lzwme/fe-utils/stargazers
[forks-badge]: https://img.shields.io/github/forks/lzwme/fe-utils.svg
[forks-url]: https://github.com/lzwme/fe-utils/network
[issues-badge]: https://img.shields.io/github/issues/lzwme/fe-utils.svg
[issues-url]: https://github.com/lzwme/fe-utils/issues
[npm-badge]: https://img.shields.io/npm/v/@lzwme/fe-utils.svg?style=flat-square
[npm-url]: https://npmjs.com/package/@lzwme/fe-utils
[node-badge]: https://img.shields.io/badge/node.js-%3E=_14.0.0-green.svg?style=flat-square
[node-url]: https://nodejs.org/download/
[download-badge]: https://img.shields.io/npm/dm/@lzwme/fe-utils.svg?style=flat-square
[download-url]: https://npmjs.com/package/@lzwme/fe-utils
[bundlephobia-url]: https://bundlephobia.com/result?p=@lzwme/fe-utils@latest
[bundlephobia-badge]: https://badgen.net/bundlephobia/minzip/@lzwme/fe-utils@latest
npm package: @lzwme/sserver
Description: 一个基于 Node.js 的简易静态服务器，用于辅助开发调试随启随用
Author: renxia
Latest version: 0.0.9

[![@lzwme/sserver](https://nodei.co/npm/@lzwme/sserver.png)][npm-url]

# @lzwme/sserver

[![NPM version][npm-badge]][npm-url]
[![node version][node-badge]][node-url]
[![npm download][download-badge]][download-url]
[![GitHub issues][issues-badge]][issues-url]
[![GitHub forks][forks-badge]][forks-url]
[![GitHub stars][stars-badge]][stars-url]

一个基于 Node.js 的简易静态服务器，用于辅助开发调试随启随用。

```bash
# 快速启动一个静态服务器
npx @lzwme/sserver -d ./dist
```

## 安装

```bash
# 全局安装
npm i -g @lzwme/sserver
ss -h

# 或者在项目中安装
npm i -D @lzwme/sserver
npm exec ss -- -h

# 或者直接使用 `npx`
npx @lzwme/sserver -h
```

## 使用

示例：

```bash
# 以当前目录下的 dist 作为静态根目录
ss -d ./dist

# 启用 https
ss --https

# 启用 https，指定域名(默认为 localhost)
ss -H --host local.lzw.me

# 启用 https，并保存默认生成的 ssl 证书
ss -H --ssl-cache ./cache
```

### 配置代理转发

支持通过配置文件 `ss.config.js` 指定代理转发等详细配置规则。

```bash
# 在当前目录初始化一个 ss.config.js 配置文件
ss init
```

配置文件内容示例：

```js
// ss.config.js

/** @type {import('@lzwme/sserver').SSConfig} */
module.exports = {
  port: 8888,
  https: false,
  sslCache: '',
  rootDir: '.',
  // 代理转发配置
  proxyConfig: [
    // 内网代理企业微信机器人接口示例
    {
      api: '/proxy/cgi-bin/webhook/send',
      config: {
        target: 'https://qyapi.weixin.qq.com',
        changeOrigin: true,
        pathRewrite: {
          '^/proxy/cgi-bin': '/cgi-bin',
        },
      },
    },
  ],
}
```

## 开发

本地二次开发：

```bash
git clone https://github.com/lzwme/static-server.git
pnpm install
pnpm build

# dev
pnpm dev

# global link
npm link
```

或者 fork 本项目进行代码贡献。

**欢迎贡献想法与代码。**

## License

`@lzwme/sserver` is released under the MIT license.

该插件由[志文工作室](https://lzw.me)开发和维护。


[stars-badge]: https://img.shields.io/github/stars/lzwme/static-server.svg
[stars-url]: https://github.com/lzwme/static-server/stargazers
[forks-badge]: https://img.shields.io/github/forks/lzwme/static-server.svg
[forks-url]: https://github.com/lzwme/static-server/network
[issues-badge]: https://img.shields.io/github/issues/lzwme/static-server.svg
[issues-url]: https://github.com/lzwme/static-server/issues
[npm-badge]: https://img.shields.io/npm/v/@lzwme/sserver.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@lzwme/sserver
[node-badge]: https://img.shields.io/badge/node.js-%3E=_10.0.0-green.svg?style=flat-square
[node-url]: https://nodejs.org/download/
[download-badge]: https://img.shields.io/npm/dm/@lzwme/sserver.svg?style=flat-square
[download-url]: https://npmjs.org/package/@lzwme/sserver
[bundlephobia-url]: https://bundlephobia.com/result?p=@lzwme/sserver@latest
[bundlephobia-badge]: https://badgen.net/bundlephobia/minzip/@lzwme/sserver@latest
npm package: @lzwme/tinify-cli
Description: 基于 tinify API 的图片批量压缩命令行工具
Author: renxia
Latest version: 1.0.1

[![@lzwme/tinify-cli](https://nodei.co/npm/@lzwme/tinify-cli.png)][download-url]

@lzwme/tinify-cli
========

[![NPM version][npm-badge]][npm-url]
[![node version][node-badge]][node-url]
[![npm download][download-badge]][download-url]
[![GitHub issues][issues-badge]][issues-url]
[![GitHub forks][forks-badge]][forks-url]
[![GitHub stars][stars-badge]][stars-url]
![license MIT](https://img.shields.io/github/license/lzwme/blog-examples)

基于 `tinify` API 的图片批量压缩工具。需要去 [tinify 官网](https://tinify.cn/) 注册账号并获取一个 API KEY。

## Install

```bash
npm i -g @lzwme/tinify-cli
```

## Useage

示例：

```bash
tinify -h

# 压缩 images 目录下的所有图片，并覆盖原始文件
tinify --key <API key> --src ./images

# 压缩 images 目录下的所有图片，并输出至 output 目录
tinify --key <API key> --src ./images --dest ./output

# 仅压缩大小在 50kb 以上的文件
tinify --key <API key> --src ./images --dest ./output -m 50
```

支持通过环境变量 `TINIFY_API_KEY` 配置 API KEY。

## License

`@lzwme/tinify-cli` is released under the MIT license.

该插件由[志文工作室](https://lzw.me)开发和维护。


[stars-badge]: https://img.shields.io/github/stars/lzwme/blog-examples.svg
[stars-url]: https://github.com/lzwme/blog-examples/stargazers
[forks-badge]: https://img.shields.io/github/forks/lzwme/blog-examples.svg
[forks-url]: https://github.com/lzwme/blog-examples/network
[issues-badge]: https://img.shields.io/github/issues/lzwme/blog-examples.svg
[issues-url]: https://github.com/lzwme/blog-examples/issues
[npm-badge]: https://img.shields.io/npm/v/@lzwme/tinify-cli.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@lzwme/tinify-cli
[node-badge]: https://img.shields.io/badge/node.js-%3E=_10.9.0-green.svg?style=flat-square
[node-url]: https://nodejs.org/download/
[download-badge]: https://img.shields.io/npm/dm/@lzwme/tinify-cli.svg?style=flat-square
[download-url]: https://npmjs.org/package/@lzwme/tinify-cli
[bundlephobia-url]: https://bundlephobia.com/result?p=@lzwme/tinify-cli@latest
[bundlephobia-badge]: https://badgen.net/bundlephobia/minzip/@lzwme/tinify-cli@latest