open-index/open-npm huggingface dataset:
npm package: @minlib/min-async-await
Description: min async function support
Author: Min Team
Latest version: 2.0.0

# Min 中使用 async/await

> 可以让异步逻辑用同步写法实现，用同步写法代替传统的callback嵌套

## 安装

- **async-await**

``` bash
$ npm install @minlib/min-async-await --save
```

- **babel**

``` bash
$ npm install babel-preset-env --save-dev
$ npm install babel-plugin-syntax-export-extensions --save-dev
$ npm install babel-plugin-transform-export-extensions --save-dev
```

## 引用

- **app.wxa**

``` js
import '@minlib/min-async-await';
```

## 配置babel编译器

- **min.config.js**

``` js
module.exports = {
  compilers: {
    babel: {
      presets: [
        'env'
      ],
      'plugins': [
        'syntax-export-extensions',
        'transform-export-extensions'
      ]
    }
  }
}
```

## 配置小程序开发者工具

- **关闭 es6 转 es5**

## Links

- [Min 中使用 async/await](https://meili.github.io/min/docs/features/babel.html)
- [Min 组件化解决方案](https://github.com/meili/min)
- [MinUI 小程序UI组件库](https://github.com/meili/minui)

## 其他

注：Min 2.x 版本开始，@mindev/min-async-function 已弃用
npm package: @minlib/min-wxapi
Description: wxapi optimization for min
Author: Min Team
Latest version: 2.0.0

``` js
import Min from '@minlib/min'
import WxApi from '@minlib/min-wxapi'

Min.use(WxApi)

const wxApi = new WxApi({
  promisify: true,
  requestfix: true,
  interceptors: [],
  noPromiseAPI: []
})
```
npm package: @minlib/minx
Description: state management for min
Author: Min Team
Latest version: 2.0.1

root的结构
root: {
  state: { // 按路径(namespace)合并了子modules里的state
    id0
    id1
    a: {
      id2
    }
    a/b: {
      id3
    }
  },
  getters: { // 合并了子modules里的state（暂未支持namespace）
    getterId0
    getterId1
    getterId2
    getterId3
  },
  actions: { // 合并了子modules里的actions（暂未支持namespace）
    actionId0
    actionId1
  },
  mutations: { // 合并了子modules里的mutations（暂未支持namespace）
    mutationId0
    mutationId1
  }
  ...
}

mapState
store里的state不是函数
1、
computed:
{
  ...mapState([
    'a' // 对应this.$store.state.a
  ])
}
2、
computed:{
  ...mapState({
    count: state => state.count,
    countAlias: 'count', // 重命名；'count' 等同于 `state => state.count`
    countPlusLocalState (state) { // 为了能够使用 `this` 获取局部状态，必须使用常规函数
      return state.count + this.localCount
    }
  })
}

mapGetters
store里的getters本就都是函数
1、
computed:{
  ...mapGetters([
    'a' // 对应this.$store.getters.a
  ])
}
2、
computed:{
  ...mapGetters({
    countAlias: 'count', // 重命名；对应this.$store.state.count
  })
}

mapMutations
1、
methods:{
  ...mapMutations([
    'add', // 将 `this.add()` 映射为 `this.$store.commit('add')`
    'add2' // 支持传参；调用时用`this.add2(data)` 会映射为 `this.$store.commit('add2', data)`
  ])
}
2、
methods: {
  ...mapMutations({
    add: 'addOnce', // 将 `this.add()` 映射为 `this.$store.commit('addOnce')`
    addFunc (commit, data) { // 会把commit作为第一个参数回传
      ...
    }
  })
}

调用
a、未使用mapMutations时的调用姿势：
this.$store.commit('add', {
  a,
  b
})
b、使用后调用姿势：
this.add({
  a,
  b
})
this.addFunc({
  a,
  b
})

测试
http://www.liuyiqi.cn/2017/11/09/how-to-test-dom-manipulation/
npm package: @minlibuilds/gbed
Description: Use Google Drive as your image bed | 用 Google Drive 当图床
Latest version: 1.0.2

# gbed

用 Google Drive 当图床。轻量级本地代理，上传图片到 Google Drive 并返回可直接访问的图片链接。

作为 obsidian-image-uploader插件和 [gws](https://github.com/nicholasgasior/gws) 命令行工具之间的桥梁。

```
Obsidian (复制/粘贴图片)
  → obsidian-image-uploader (HTTP POST)
    → gbed (http://127.0.0.1:52323/upload)
      → gws drive files create (上传至 Google Drive)
      → gws drive permissions create (设置为公开)
    ← 返回 {"url": "https://lh3.googleusercontent.com/d/FILE_ID"}
  ← 将 ![](url) 插入到 Markdown 中
```

## 前置要求

- [Node.js](https://nodejs.org/) >= 18
- 已安装并完成认证 [gws](https://github.com/nicholasgasior/gws) 命令行工具，记得勾选google drive作为资源库
- Obsidian里安装obsidian-image-uploader插件

## 安装

```bash
npm install -g @minlibuilds/gbed
```

或者用 git clone:

```bash
git clone https://github.com/limin112/gbed.git
cd gbed
npm install
```

## 使用

### 1. 先前台启动调试

```bash
# npm 全局安装方式
gbed

# git clone 方式
node server.js
```

首次启动会自动在 Google Drive 创建 `obsidian-images` 文件夹。看到以下输出说明启动成功:

```
Found existing folder: obsidian-images (xxx)
gbed running at http://127.0.0.1:52323/upload
```

### 2. 测试上传

新开一个终端窗口:

```bash
curl -X POST http://127.0.0.1:52323/upload -F "image=@/path/to/test.png"
# 应返回 {"url":"https://lh3.googleusercontent.com/d/..."}
```

浏览器打开返回的 URL 确认图片可以访问。

### 3. 配置 obsidian-image-uploader 插件

在 Obsidian 设置 → Image Uploader 中配置:

| 设置项 | 值 |
|---------|-------|
| Api Endpoint | `http://127.0.0.1:52323/upload` |
| Upload Header | `{}` |
| Upload Body | `{"image": "$FILE"}` |
| Image Url Path | `url` |

在 Obsidian 中粘贴一张图片，确认自动上传成功。

### 4. 调试通过后，改为后台运行

在前台终端按 `Ctrl+C` 停止，然后:

```bash
gbed -d          # 后台启动
gbed --stop      # 需要时停止
```

## 选项

```
--folder-id <id>   Google Drive 文件夹 ID（或设置 GDRIVE_FOLDER_ID）
                   不传则自动创建 obsidian-images
--port <port>      监听端口 (默认: 52323)
--host <host>      绑定地址 (默认: 127.0.0.1)
--daemon, -d       后台运行
--stop             停止后台进程
--help, -h         显示帮助
```

## (可选) macOS 开机自启

创建 `~/Library/LaunchAgents/com.gbed.plist`:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.gbed</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/node</string>
    <string>/path/to/gbed/server.js</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
  <key>EnvironmentVariables</key>
  <dict>
    <key>PATH</key>
    <string>/usr/local/bin:/usr/bin:/bin</string>
  </dict>
</dict>
</plist>
```

```bash
launchctl load ~/Library/LaunchAgents/com.gbed.plist
```

## 更新

```bash
# npm 方式
npm update -g @minlibuilds/gbed

# git clone 方式
cd gbed
git pull
npm install
```

## 许可协议

MIT
npm package: @minmin614/unocss-preset-theme
Description: dynamic theme
Author: Dunqing
Latest version: 0.8.4

# unocss-preset-theme

This preset will help you easily make dynamic theme switching. Inspired by [here](https://github.com/unocss/unocss/issues/1390)

> Next, I will build [unocss-preset-antd](https://github.com/Dunqing/unocss-preset-antd) based on this preset

## Installation

```bash
npm i -D @minmin614/unocss-preset-theme
```


## Usages

Usually you just need to set your `light theme` to `unocss` and your `dark theme` to `presetTheme`. This preset will transform your provide theme into css variables, then you just need to set the `dark` class or `compact` class (Depends on your theme name) in your html and you're done.

Just like this

```typescript
import Unocss from 'unocss/vite'
import type { Theme } from 'unocss/preset-uno'
import { presetUno } from 'unocss'
import presetTheme from 'unocss-preset-theme'

Unocss<Theme>({
  // Configure light themes
  theme: {
  },
  presets: [
    presetUno<Theme>(),
    presetTheme<Theme>({
      theme: {
        // Configure dark themes
        dark: {
        },
        // Configure compact themes
        compact: {
        }
      }
    })
  ]
})
```

This will be the final generated css

```css
/* darkMode: class */
.dark{}
:root{}
.compact{}

/* If you set darkMode to media, the css will look like this */
.compact{}
@media (prefers-color-scheme: dark){}
@media (prefers-color-scheme: light){}
```

Then, you simply apply it as follows

```html
<div class="dark">
  Dark mode
  <div class="compact">
    <div class="px-md">Use compact theme</div>
  </div>
</div>
```

## Options

### prefix

The prefix of the generated css variables, default is `--un-preset-theme`

### theme

Your different theme. like `{ dark: {}, other: {} }`

### selectors

Customize the selectors of the generated css variables `{ light: ':root', [themeName]: '.[themeName]' }`


## Examples

- [playground](./examples/playground/)
- [media](./examples/media/)

## License

MIT License
npm package: @minmoo/async-layers
Description: Multiple different asynchronous layers
Author: minmoo
Latest version: 0.1.23

<hr>
<div align="center">
  <h1 align="center">
    useLayers()
  </h1>
</div>

<pre align="center">npm i @minmoo/async-layers</pre>
<hr>

## Basic Example

```tsx
import { AsyncLayersProvider, useLayers } from '@minmoo/async-layers'

export default function App() {
  return (
    <AsyncLayersProvider>
      <Example />
    </AsyncLayersProvider>
  )
}

function Example() {
  const { show } = useLayers(Content)
  return (
    <div>
      <h2>Example</h2>
      <button onClick={() => show()}>show</button>
    </div>
  )
}

function Content() {
  return <h2>Content</h2>
}
```

## Options

default options

```tsx
<AsyncLayersProvider
  options={{
    position: 'bottom', // component position: 'top', 'bottom', 'left', 'right', 'center'
    dimmed: true, // dimmed background
    transitionDelay: 350, // component animation time(ms)
    draggable: false, //only position bottom has draggable option
    dragOptions: {
      minHeight: 300, // size when the component is first shown
      minY: 80, // maximum draggable position
    },
    scrollLockElement: null, // background scroll lock element. (default: body)
  }}
>
  {children}
</AsyncLayersProvider>

useLayers(component, options)
```
npm package: @minmoto/transport-react-native
Description: React Native transport layer for Fedimint client
Author: The Fedimint Developers
Latest version: 0.0.7

# @fedimint/transport-react-native

Transport layer for React Native that bridges `@fedimint/core` with the native Fedimint client via UniFFI.

## Overview

This package provides the transport layer that allows `@fedimint/core` to communicate with the Fedimint Rust client in React Native apps. It implements the `Transport` interface and uses UniFFI-generated bindings to call native code.

## Architecture

```
@fedimint/core (TypeScript)
    ↓
TransportClient
    ↓
RNTransport (this package)
    ↓
UniFFI Bindings (@fedimint/react-native)
    ↓
Rust RpcHandler
```

## Differences from Web Transport

### Web (`@fedimint/transport-web`)

- Uses a Web Worker for WASM execution
- Asynchronous message passing via `postMessage`
- WASM runs in separate thread

### React Native (this package)

- Direct native calls via UniFFI (no worker needed)
- Native code runs on native threads managed by React Native
- Callback-based RPC calls
- Synchronous FFI calls, async handled by Rust callbacks

## License

MIT
npm package: @minms/quasar-app-extension-app-version-inject
Description: A Quasar App Extension
Author: minms
Latest version: 0.0.1

Quasar App Extension app-version-inject
===

_Be sure to change this readme as appropriate for your app extension._

_Think about the organization of this file and how the information will be beneficial to the user._

> Add a short description of your App Extension. What does it do? How is it beneficial? Why would someone want to use it?

A Quasar App Extension

# Install
```bash
quasar ext add app-version-inject
```
Quasar CLI will retrieve it from the NPM registry and install the extension to your project.

# Uninstall
```bash
quasar ext remove app-version-inject
```

# Info
> Add longer information here that will help the user of your app extension.

# Other Info
> Add other information that's not as important to know

# Donate
If you appreciate the work that went into this App Extension, please consider [donating to Quasar](https://donate.quasar.dev).