open-index/open-npm huggingface dataset:
npm package: @meemo/biu
Description: Biu is a script tool library for quick instructions.
Author: Amery
Latest version: 0.8.0

# biu

Biu 是一个快速指令的脚本工具库，该工具集合了一些常用的构建指令，让你可以体验到“Biu 的一下就搞定了”的快感。

```shell
yarn global add @meemo/biu
# Or
npm i -g @meemo/biu
```

### 获取指令帮助信息

你可以通过 `biu -h` 获取 biu 工具目前支持的所有脚本命令。  
你可以通过 `biu help [command]` 获取对应指令的帮助信息。

## 提交指令

你可以使用 `biu commit|cm <message> [options]` 指令提交符合规范的 `git message` 信息。具体用法如下:

```shell
biu commit '新增 Commit 指令' --feat 'commit'
# Or
biu cm '修复 bug' -x
```

**注意：该指令不会将你的代码同步推送到远端仓库，本地修改内容的推送需要手动操作。**

### 提交类型

| 提交类型 | 别名 | 描述 |
| ------ | --- | --- |
| feat   | f   | 添加新功能 |
| fix    | x   | 错误修复 |
| style  | s   | 样式修改、格式化等 |
| refactor | r | 代码重构相关 |
| perf   | p   | 性能优化相关 |
| test   | t   | 测试相关 |
| docs   | d   | 文档相关 |
| merge  | mg  | 分支合并 |
| revert | rv  | 分支还原 |
| build  | b   | 项目构建相关 |
| chore  | c   | 与构建配置相关 |
| other  | o   | 其他修改 |

### 懒人模式

懒人模式可以让你以交互模式进行信息提交，具体用法如下:

```shell
biu cm
```

## gitflow 工作流指令

你可以使用 `biu gitflow|gf <init|start|finish> [options]` 指令来创建标准的 gitflow 工作流。具体用法如下:

```shell
biu gitflow start --feature demo
# Or
biu gf start -f demo
```

### 工作流类型

| 类型 | 别名 | 描述 |
| --------- | --- | --- |
| feature   | f   | 新功能开发 |
| release   | r   | 版本开发 |
| hotfix    | x   | 错误修复 |

### gitflow 工作流

![gitflow 工作流](https://gaeacdn.jiliguala.com/devjlgl/tmp/5a8c36674fe74ed7d27987617cdcf2a0.png)

参考文档：[git-flow 的工作流程](https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/git-flow/)

### 实现原理

1、新功能开发

开始新功能开发 `biu gf start -f demo`，等同于以下操作流程：

```shell
git checkout develop
git checkout -b feature/demo
```

完成新功能开发 `biu gf finish -f demo`，等同于以下操作流程：

```shell
git checkout develop
git merge feature/demo
git push origin develop
git branch -d feature/demo
```

2、版本发布

创建新版本 `biu gf start -r 1.2.0`，等同于以下操作流程：

```shell
git checkout develop
git checkout -b release/1.2.0
```

完成新版本发布 `biu gf finish -r 1.2.0`，等同于以下操作流程：

```shell
git checkout develop
git merge release/1.2.0
git push origin develop
git checkout master
git merge release/1.2.0
git push origin master
git tag v1.2.0 -m 'release 1.2.0'
git push origin v1.2.0
git branch -d release/1.2.0
```

3、错误修复

开始新的错误修复 `biu gf start -x fix-style`，等同于以下操作流程：

```shell
git checkout master
git checkout -b hotfix/fix-style
```

完成错误修复 `biu gf finish -x demo`，等同于以下操作流程：

```shell
git checkout master
git merge hotfix/fix-style
git push origin master
git checkout develop
git merge hotfix/fix-style
git push origin develop
git tag fix-style -m 'hotfix fix-style'
git push origin fix-style
git branch -d hotfix/fix-style
```

### 懒人模式

懒人模式可以让你以交互模式进行 gitflow 工作流操作，具体用法如下:

```shell
biu gf
# Or
biu gf start
```
npm package: @meemo/lamp
Description: This is a util tool lib.
Author: Amery
Latest version: 0.6.1

# lamp

一个工具函数合集，包含一些项目中常用的处理逻辑函数
这不是阿拉丁的神灯，但也可以满足你的许多需求...哦，我可以先许个愿望么？

> 该工具库设计的初衷是为了弥补 [lodash](https://lodash.com/) 这个工具库的不足。lodash 支持的函数非常丰富，囊括了绝大部分常规函数，但 lodash 并不是一个万能的库，他不包含任何与业务逻辑或者浏览器特性相关的函数，因此诞生了 lamp 这个库。lamp 主要是一些常用的工具函数，比如 isEmail、compareVersion，也有 uuid、queryString、formatDate 等常用库的简易实现版本。lamp 库里的每一个函数我都尽可能的独立，不引入任何外部依赖，且函数间也很少有相互依赖关系。lamp 工具库吸收了部分 linux 的设计哲学，绝大部分函数都是纯函数，且一个函数只做一件事。该工具库默认是 esm 的形式，支持单文件引入和 Tree Shiking，所以在实际开发过程中，lamp 库可以有效和打包工具协作，只导入你需要的函数，因此在实际开发过程中，占用体积极小，你可以放心的引入。

## 项目导出格式

目前项目直接生成 es 和 npm 格式的文件，语法以 es5 为基础：

- es：使用 import 以及 export 进行引用和导出
- npm：使用 module.exports 进行导出

## 通过脚本自动生成 lamp 文件

`node ./bin/createMainFile.js` 用于动态生成 lamp.ts 文件，此脚本可以大量节省用户追加新增函数时间以及更新版本号的操作。并让一次性导入全部函数成为可能。

## 函数列表

|       函数名       |       函数作用       |
| ----------------- | ------------------- |
| lamp              | 工具函数集合          |
| checkIDNumber     | 校验身份证号码        |
| compareVersion    | 比较版本号大小        |
| queryString       | 解析 url 参数        |
| createQueryString | 创建 url querystring，一般配合 queryString 函数使用 |
| formatAmount      | 简单的格式化金额      |
| formatDate        | 简单的格式化时间      |
| formatSize        | 格式化文件大小        |
| genRandomString   | 获取指定长度的随机字符串 |
| getCharLength     | 获取字符长度（非字符串长度）|
| isAndroid         | 判断是否为安卓设备     |
| isIOS             | 判断是否为 iOS 设备   |
| isEmail           | 判断是否为有效的邮箱地址 |
| padZero           | 字符串补零           |
| shuffle           | 使用洗牌算法对数组随机排序 |
| Storage           | 浏览器存储类         |
| uuid              | 生成符合 uuid v4 标准的字符串 |
npm package: @meenjs/static
Description: M.E.E.N common static assets such as js, scss, font, etc...
Author: Duc Doan
Latest version: 1.4.7
Deprecated: @meenjs/static is DEPRECATED now. Please use @dudojs/adminui instead. Thanks!

# meen-static
M.E.E.N common static assets such as js, scss, font, etc...
npm package: @meeovi/adapter-opensearch
Description: Official Alternate Framework Opensearch adapter providing connectivity to opensearch.
Author: Meeovi
Latest version: 1.0.1

# adapter-opensearch

OpenSearch adapter package that provides two integration styles:

- `createOpenSearchAdapter(opts)` — a server-side, direct OpenSearch client adapter implementing the core `SearchAdapter` interface.
- `createStarterSearchAdapter(transport)` — a starter-style adapter that adapts a `TransportAdapter` (for registering via the starter-adapter pattern).

Usage (direct registration):

```ts
import { createOpenSearchAdapter } from 'adapter-opensearch'
import searchModule from '@meeovi/search'

const myProviderModule = {
  id: 'search-provider-opensearch',
  adapters: {
    search: createOpenSearchAdapter({ id: 'opensearch', index: 'products' })
  }
}

const app = createAlternateApp({ modules: [searchModule, myProviderModule] })
await app.start()
```

Usage (starter/transport registration):

```ts
import { createStarterSearchAdapter } from 'adapter-opensearch'
import { createStarterTransport } from '@meeovi/starter-adapter'

const transport = createStarterTransport({ baseUrl: 'https://api.myapp.com' })
const adapter = createStarterSearchAdapter(transport)

// register into core module registry
app.context.modules.registerAdapter('search', adapter)
```

Notes:

- `createOpenSearchAdapter` uses the OpenSearch JS client and reads `OPENSEARCH_*` env vars as defaults. You can override `index` via options.
- `createStarterSearchAdapter` lets you plug the adapter into environments that use a `TransportAdapter` (e.g., serverless functions or a separate API layer).
npm package: @meeovi/layer-commerce
Description: Commerce Layer for the Alternate Framework
Author: Meeovi
Latest version: 1.1.1

# @meeovi/commerce

A backend‑agnostic commerce domain module for the Meeovi ecosystem.  
This package provides a unified interface for products, categories, carts, and other commerce operations — regardless of the underlying backend (Directus, Medusa, Shopify, custom APIs, etc.).

## ✨ Features

- Pluggable provider architecture  
- Unified composables (`useProducts`, `useCart`, `useCategories`)  
- Backend‑agnostic types  
- Runtime configuration  
- Zero Nuxt dependency  
- Works in any JS/TS environment  

## 📦 Installation

```sh
npm install @meeovi/commerce

⚙️ Configuration
Configure the active providers at runtime:


import { setCommerceConfig } from '@meeovi/commerce'

setCommerceConfig({
  productProvider: 'directus',
  cartProvider: 'directus',
  categoryProvider: 'directus'
})

🧩 Usage

import { useProducts } from '@meeovi/commerce'

const { listProducts, getProduct } = useProducts()

const products = await listProducts()
const product = await getProduct('123')
🔌 Providers
A provider implements one or more domain interfaces:


export interface ProductProvider {
  getProduct(id: string): Promise<Product>
  listProducts(params?: any): Promise<Product[]>
}
Register a provider:


import { registerProductProvider } from '@meeovi/commerce'

registerProductProvider('directus', {
  getProduct: async (id) => { ... },
  listProducts: async () => { ... }
})

🧱 Folder Structure
Code
src/
  products/
  cart/
  categories/
  config.
  registry.
  useCommerce.
npm package: @meeovi/layer-seller-dashboard
Description: Seller dashboard for Meeovi platform
Author: Meeovi
Latest version: 1.0.7

# Seller Dashboard Layer

This layer provides a seller/admin dashboard UI and runtime provider hooks to integrate with e-commerce adapters (for example `adapter-magento`).

Key points
- Register a runtime provider using `registerSellerProviderRuntime(name, provider)` exported from `app/composables/registry.ts`.
- The UI composables (e.g. `useSellerProducts`, `useSellerOrders`, `useSellerReviews`) call the registered provider; a memory provider is used by default for development.
- Routes under this layer are protected by a global middleware that only allows users with `seller` or `admin` roles.

Owner-scoped operations
- Composables automatically pass the current seller id (when available) to provider calls so providers can enforce ownership and return only seller-specific data. The helper `getCurrentSellerId()` is available in `app/composables/_auth.ts` and memory provider enforces owner scoping by default.

Integration example (Nuxt runtime):

```ts
import { registerSellerProviderRuntime } from '~~/layers/seller-dashboard/app/composables/registry'
import { createMagentoSellerAdapter } from 'adapter-magento'

registerSellerProviderRuntime('magento', createMagentoSellerAdapter({ /* config */ }))
```

Next steps
- Scaffold product/order/review management pages and wire to real adapters.
- Add tests and CI checks.
npm package: @meeovi/layer-social
Description: Social Layer for the Alternate Framework
Author: Meeovi
Latest version: 1.0.12


---

# 📦 `@meeovi/social` — README.md  
*(This one is more advanced because of caching, SWR, retry, metrics, etc.)*

```md
# @meeovi/social

A powerful, backend‑agnostic social integration layer for Meeovi.  
Supports ATProto (Bluesky), Mastodon, WordPress/BuddyPress, and any custom social backend.

## ✨ Features

- Pluggable social providers  
- Unified `useSocial()` composable  
- Unified activity feed abstraction  
- Caching (TTL‑based)  
- Stale‑While‑Revalidate (SWR) background refresh  
- Retry + exponential backoff  
- Provider‑specific rate‑limit strategies  
- Analytics hooks (per‑provider metrics)  
- Unified error model  

## 📦 Installation

```sh
npm install @meeovi/social

🧩 Usage

import { useSocial } from '@meeovi/social'

const { getActivityFeed } = useSocial()

const feed = await getActivityFeed('sebastian')
🔌 Providers

export interface SocialProvider {
  getProfile(handle: string): Promise<SocialProfile>
  listPosts(handle: string): Promise<SocialPost[]>
  createPost?(content: string): Promise<SocialPost>
}
Register:


registerSocialProvider('mastodon', MastodonProvider)
🧠 Advanced Features
Caching

cacheKey: `atproto:posts:${handle}`,
ttlMs: 30000
SWR (Stale‑While‑Revalidate)

swr: true
Retry + Backoff

retry: true
Provider‑Specific Rate Limits

setRateLimit('mastodon', { maxRequests: 10, windowMs: 60000 })
Metrics

import { getMetrics } from '@meeovi/social'

console.log(getMetrics('atproto'))
🧱 Folder Structure
Code
src/
  providers/
  config.
  registry.
  useSocial.
  cache.
  retry.
  swr.
  rateLimit.
  metrics.
  utils.
npm package: @meeovi/types
Description: Official types for the Alternate Framework
Author: Meeovi
Latest version: 1.0.2

## Alternate Framework Offical Types

- Types for Auth, Search, Commerce, Core, UI, and the Official SDK
- Typescript Support
- Framework Agnostic

# How to use

npm i @meeovi/types

`import type {
  User,
  Session,
  Result,
  LoginInput,
  RegisterInput
} from '@meeovi/types'

export interface AuthAdapter {
  login(input: LoginInput): Promise<Result<Session>>
  register(input: RegisterInput): Promise<Result<Session>>
  logout(): Promise<Result<true>>
  getSession(): Promise<Result<Session>>
  refresh(): Promise<Result<Session>>
  getUser(): Promise<Result<User>>
}`
npm package: @meepen/luagen
Description: Lua AST to Lua Source
Author: Devin Korb
Latest version: 1.1.3

# luagen
[![Tests](https://github.com/meepen/luagen/actions/workflows/run-tests.yml/badge.svg)](https://github.com/meepen/luagen/actions/workflows/run-tests.yml)

Uses @meepen/luaparse