open-index/open-npm huggingface dataset:
npm package: @lark-apaas/coding-presets
Description: ESLint, Stylelint, and Tailwind presets for OpenClaw projects
Latest version: 1.0.0

# @lark-apaas/coding-presets

Shared ESLint, Stylelint, Tailwind, and TypeScript presets for OpenClaw coding templates.

## Install

```bash
pnpm add -D @lark-apaas/coding-presets
```

## ESLint

Provides client and server presets with `eslint/recommended` + `typescript-eslint/recommended` base configs.

```js
// eslint.config.js
import { eslintPresets } from '@lark-apaas/coding-presets'

export default [
  // Client: React + TypeScript
  ...eslintPresets.client.map(config => config.ignores ? config : {
    ...config,
    files: ['client/**/*.{ts,tsx}'],
  }),
  // Server: Node.js + TypeScript
  ...eslintPresets.server.map(config => config.ignores ? config : {
    ...config,
    files: ['server/**/*.ts', 'shared/**/*.ts'],
  }),
]
```

### Client rules include

- React Hooks recommended rules (exhaustive-deps off)
- TypeScript loose mode (no-unused-vars, no-explicit-any, no-empty-object-type off)
- Restricted syntax: `location.href` assignment, relative `<a>` href, Tailwind 4 hsl/rgb space check
- Restricted imports: `next/link` prohibited

### Server rules include

- Node.js globals (including `NodeJS`)
- TypeScript loose mode (matching client)
- No NestJS-specific rules (unlike fullstack-presets)

## TypeScript

Provides `tsconfig.app.json` and `tsconfig.node.json` presets aligned with Vite 8 standards.

```jsonc
// tsconfig.app.json — Client (React)
{
  "extends": "@lark-apaas/coding-presets/lib/tsconfig/tsconfig.app.json",
  "compilerOptions": {
    "types": ["vite/client"],
    "paths": { "@/*": ["./client/src/*"] }
  },
  "include": ["client/src"]
}
```

```jsonc
// tsconfig.node.json — Tooling (vite.config.ts, etc.)
{
  "extends": "@lark-apaas/coding-presets/lib/tsconfig/tsconfig.node.json",
  "include": ["vite.config.ts"]
}
```

```jsonc
// tsconfig.server.json — Server build (with output)
{
  "extends": "@lark-apaas/coding-presets/lib/tsconfig/tsconfig.node.json",
  "compilerOptions": {
    "outDir": "./dist/server",
    "noEmit": false
  },
  "include": ["server", "shared"]
}
```

### TSConfig presets settings

| Option | app | node |
|--------|-----|------|
| target | ES2023 | ES2023 |
| module | ESNext | ESNext |
| moduleResolution | bundler | bundler |
| strict | true | true |
| jsx | react-jsx | — |
| verbatimModuleSyntax | true | true |
| noEmit | true | true |

## Stylelint

```js
import { stylelintPresets } from '@lark-apaas/coding-presets'
// Use stylelintPresets as your stylelint config
```

Includes custom HSL validation rule and duplicate custom properties check.

## Tailwind

```js
import { createTailwindPreset } from '@lark-apaas/coding-presets'
const preset = createTailwindPreset({ content: ['./src/**/*.tsx'] })
```

Includes `tailwindcss-animate` plugin with class-based dark mode.

## License

MIT
npm package: @lark-apaas/coding-templates
Description: OpenClaw project templates for mclaw CLI
Latest version: 0.1.35

# @lark-apaas/coding-templates

OpenClaw 项目模板包，供 mclaw CLI 使用。

## 模板列表

| 模板 | 目录 | 类型 | 说明 |
|---|---|---|---|
| html | `template-html/` | 纯前端 | 纯 HTML，零依赖，原型验证 |
| vite-react | `template-vite-react/` | 纯前端 | Vite + React 19 + Tailwind CSS + shadcn/ui |
| apex | `template-apex/` | 全栈 | Vite + React + Express + Drizzle + PostgreSQL |

## 包结构

```
coding-templates/
├── package.json
├── meta.json                     # 模板元数据
├── template-html/
├── template-vite-react/
└── template-apex/
    ├── client/                   # 前端（Vite + React）
    │   ├── index.html
    │   └── src/
    ├── server/                   # 后端（Express + Drizzle）
    │   ├── index.ts
    │   ├── db/
    │   └── routes/
    ├── shared/                   # 前后端共享类型和 API 契约
    ├── scripts/build.sh          # 构建脚本
    ├── tsconfig.server.json      # 服务端 CJS 编译配置
    └── vite.config.ts
```

## 特殊文件命名

npm publish 会忽略 `.gitignore` 和 `.env*`，因此模板中使用 `_` 前缀：

| 模板中的文件名 | CLI 复制后的文件名 |
|---|---|
| `_gitignore` | `.gitignore` |
| `_env.local` | `.env.local` |

## 模板元数据

每个模板的 `package.json` 包含 `mclaw` 字段：

```json
{
  "mclaw": {
    "stack": "apex",
    "stackVersion": "0.1.0",
    "features": ["client", "server"]
  }
}
```

| 字段 | 说明 |
|---|---|
| `stack` | 技术栈标识 |
| `stackVersion` | 模板版本 |
| `features` | 应用能力，`init` 时自动推导 archType |

## 技术栈

### apex（全栈）

- **前端**: Vite 8 + React 19 + TypeScript 5.9 + Tailwind CSS 4 + shadcn/ui
- **后端**: Express 5 + Drizzle ORM + PostgreSQL
- **平台集成**: @lark-apaas/express-core（用户上下文、CSRF、RLS、viewContext）
- **开发**: Vite middleware mode 集成到 Express，单进程 HMR
- **构建**: 前端 Vite build，服务端 tsc CJS 输出
- **部署**: server.zip（服务端 + 裁剪 node_modules + run.sh）→ FaaS

### vite-react（纯前端）

- Vite 8 + React 19 + TypeScript 5 + Tailwind CSS 4 + shadcn/ui
- ESLint 9 flat config + react-router-dom

### html（纯前端）

- 纯 HTML + Tailwind CDN，零构建依赖

## 发版

```bash
cd packages/openclaw/coding-templates
npm version patch
npm publish
```
npm package: @lark-apaas/coding-vite-preset
Description: Vite 8 preset for OpenClaw projects
Latest version: 1.0.1

# @lark-apaas/coding-vite-preset

Vite 8 preset for OpenClaw projects. Provides a batteries-included Vite configuration with React, TypeScript, and production optimizations.

## Install

```bash
pnpm add @lark-apaas/coding-vite-preset
```

## Usage

```ts
// vite.config.ts
import { defineConfig } from '@lark-apaas/coding-vite-preset';

export default defineConfig({
  // your overrides
});
```

Or use the lower-level API for more control:

```ts
import { createRecommendViteConfig } from '@lark-apaas/coding-vite-preset';
import { mergeConfig } from 'vite';

const base = createRecommendViteConfig({
  isDev: process.env.NODE_ENV !== 'production',
  clientBasePath: '/app/myapp',
});

export default mergeConfig(base, {
  // your overrides
});
```

## Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `NODE_ENV` | `development` | `production` enables minification, sourcemap hiding, polyfills |
| `CLIENT_BASE_PATH` | `/` | Client base path (e.g. `/app/app123`), also injected as `process.env.CLIENT_BASE_PATH` in client code |
| `ASSETS_CDN_PATH` | `/` | Production CDN path for static assets |
| `SERVER_PORT` | `3000` | Backend server port for API proxy |
| `CLIENT_DEV_PORT` | `8080` | Dev server port |
| `CLIENT_DEV_HOST` | `localhost` | Dev server host |
| `NEED_ROUTES` | `true` | Enable route parsing from app.tsx |
| `DISABLE_INSPECTOR` | `false` | Set to `true` to disable dev inspector |

## What's Included

- **React** via `@vitejs/plugin-react` v6 (Oxc-based)
- **Tailwind CSS 4** via `@tailwindcss/vite`
- **TypeScript path aliases** via Vite 8 native `resolve.tsconfigPaths`
- **Polyfills** via lightweight polyfill plugin (on-demand loading, zero cost for modern browsers)
- **CSS compatibility** via `build.cssTarget` (iOS 12, Safari 12, Chrome 80)
- **Code splitting** with `manualChunks` (toolkit/radix/dataloom)
- **HMR timing** tracking in dev mode
- **API proxy** to backend server
- **Static assets** plugin for `@shared/static/*` imports

## Docs

- [Migration from fullstack-vite-preset](./docs/migration-from-fullstack.md)

## License

MIT
npm package: @lark-apaas/internal-slardar
Description: [Internal] Slardar SDK wrapper for @lark-apaas client packages. Not intended for direct use.
Latest version: 0.0.3

# @lark-apaas/internal-slardar

> ⚠️ **内部包警告 (INTERNAL USE ONLY)**
> 
> 本包仅供 `@lark-apaas` 内部的客户端库（如 client-toolkit、observable-web 等）底层依赖使用。
> **外部业务应用请勿直接安装和依赖此包！**
> 
> - 🚫 不提供向下兼容保证，API 可能随时发生破坏性变更。
> - 🚫 不提供针对外部直接调用的技术支持。

---

## 💡 外部用户该如何做？

如果您是在开发前端应用，并且需要使用监控、日志或打点功能，请使用官方对外暴露的 SDK：
- **[推荐]** 使用 `@lark-apaas/observable-web` 进行标准的日志和链路观测。

---

## 内部维护文档

*以下内容仅供本 `@lark-apaas` 内部开发者参考：*

对 Slardar Web SDK (`window.KSlardarWeb`) 的轻量封装，供 client 侧内部包使用。

### 前置条件

需要通过 `@lark-apaas/fullstack-rspack-preset` 的 `slardar-performance-monitor-plugin` 在页面中注入 Slardar SDK。未注入时所有调用静默忽略，不会抛出异常。

### API

```typescript
import { slardar } from '@lark-apaas/internal-slardar';
```

#### `slardar.sendLog(options)`

上报自定义日志。

```typescript
slardar.sendLog({
  content: '用户完成onboarding流程',
  level: 'info', // 可选，默认 'info'，可选 'info' | 'warn' | 'error'
  extra: { step: 'final' }, // 可选
});
```

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `content` | `string` | 是 | 日志内容 |
| `level` | `'info' \| 'warn' \| 'error'` | 否 | 日志级别，默认 `'info'` |
| `extra` | `Record<string, string>` | 否 | 额外上下文信息 |

#### `slardar.sendEvent(options)`

上报自定义事件，支持数值指标和分类维度。

```typescript
slardar.sendEvent({
  name: 'plugin_action_click',
  metrics: { duration: 1200 }, // 可选
  categories: { page: 'dashboard', action: 'save' }, // 可选
});
```

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `name` | `string` | 是 | 事件名称 |
| `metrics` | `Record<string, number>` | 否 | 数值指标 |
| `categories` | `Record<string, string>` | 否 | 分类维度 |

#### `slardar.captureException(error, extra?)`

上报异常，支持 Error 对象或字符串。

```typescript
// Error 对象
slardar.captureException(new Error('请求超时'));

// 字符串
slardar.captureException('未知错误');

// 附带上下文
slardar.captureException(new Error('登录失败'), { loginId: 'xxxxx' });
```

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `error` | `unknown` | 是 | Error 对象或错误信息字符串 |
| `extra` | `Record<string, string>` | 否 | 错误上下文 |

### 降级策略

当 Slardar SDK 未加载（如本地开发环境）或 `window` 不存在（SSR）时，所有方法静默返回，不会抛出异常或产生控制台输出。