Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: CI

on:
push:
branches:
- main
pull_request:

jobs:
validate:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm

- name: Install dependencies
run: npm ci

- name: Run CI checks
run: npm run ci
48 changes: 48 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Release

on:
push:
tags:
- 'v*'
- 'rei-standard-amsg-*@*'
workflow_dispatch:

permissions:
contents: read
id-token: write

jobs:
publish:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
run: npm ci

- name: Build and test
run: npm run ci

- name: Verify npm token
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
if [ -z "$NODE_AUTH_TOKEN" ]; then
echo "Missing NPM_TOKEN secret"
exit 1
fi

- name: Publish public workspaces
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_PUBLISH_PROVENANCE: 'true'
run: npm run publish:workspaces
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,7 @@ ref

# Node.js
node_modules/

# Build output
packages/*/dist/
packages/*/*/dist/
35 changes: 33 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,31 @@

**主动消息 API 标准**:统一的定时消息推送 API 规范,支持端到端加密、多消息类型和 Serverless 部署。

## 📦 当前 Packages

| Package | 版本 | 说明 | 文档 |
|---------|------|------|------|
| `@rei-standard/amsg-server` | `1.1.0` | 主动消息 API 服务端 SDK(标准 handler + DB adapter) | [packages/rei-standard-amsg/server/README.md](./packages/rei-standard-amsg/server/README.md) |
| `@rei-standard/amsg-client` | `1.1.0` | 浏览器端 SDK(加密、请求封装、Push 订阅) | [packages/rei-standard-amsg/client/README.md](./packages/rei-standard-amsg/client/README.md) |
| `@rei-standard/amsg-sw` | `1.1.0` | Service Worker 插件(推送展示、离线队列) | [packages/rei-standard-amsg/sw/README.md](./packages/rei-standard-amsg/sw/README.md) |

按功能拆分后,主应用直接按包引用:

- `@rei-standard/amsg-server`:`createReiServer`,用于创建 7 个标准 API 处理器
- `@rei-standard/amsg-client`:`ReiClient`,用于前端加密和 API 调用
- `@rei-standard/amsg-sw`:`installReiSW`,用于 SW 推送展示和离线请求队列

快速引用示例:

```js
import { createReiServer } from '@rei-standard/amsg-server';
import { ReiClient } from '@rei-standard/amsg-client';
import { installReiSW } from '@rei-standard/amsg-sw';
```

如果你要看字段说明、请求头要求、主应用接入方式,请直接看:
[SDK 总览文档](./packages/rei-standard-amsg/README.md)。

---

> **⚠️ AI 编程助手使用须知**
Expand All @@ -26,7 +51,7 @@

### 🎯 快速开始

[部署教程](./examples/README.md) → [本地测试](./docs/TEST_README.md)
[SDK 总览](./packages/rei-standard-amsg/README.md) → [部署教程](./examples/README.md) → [本地测试](./docs/TEST_README.md)

### 📖 核心文档

Expand Down Expand Up @@ -141,6 +166,12 @@ ReiStandard/
│ │ ├── cancel-message.js # 取消任务
│ │ └── messages.js # 查询任务列表
│ └── README.md # 部署教程
├── packages/
│ └── rei-standard-amsg/
│ ├── README.md # SDK 包总览(聚合文档)
│ ├── server/ # 服务端 SDK 包
│ ├── client/ # 浏览器 Client SDK 包
│ └── sw/ # Service Worker SDK 包
├── docs/
│ ├── TEST_README.md # 本地测试指南
│ └── VERCEL_TEST_DEPLOY.md # 生产监控部署
Expand Down Expand Up @@ -179,4 +210,4 @@ ReiStandard/

## 👥 致谢

本标准基于 Whale小手机 团队的主动消息实现经验总结而成。特别感谢:TO(发起人)、汤圆、脆脆机、koko、糯米机、33小手机、Raven、toufu、菲洛图等老师的小手机项目的积极参与和支持。
本标准基于 Whale小手机 团队的主动消息实现经验总结而成。特别感谢:TO(发起人)、汤圆、脆脆机、koko、糯米机、33小手机、Raven、toufu、菲洛图等老师的小手机项目的积极参与和支持。
4 changes: 2 additions & 2 deletions docs/TEST_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@

### 1. 准备环境

需要 Node.js 18+ (支持原生 fetch API
需要 Node.js 20+(推荐使用当前 LTS

```bash
node --version # 确保 >= 18.0.0
node --version # 确保 >= 20.0.0
```

### 2. 配置测试参数
Expand Down
13 changes: 13 additions & 0 deletions examples/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "rei-standard-examples",
"version": "1.1.0",
"private": true,
"description": "ReiStandard reference implementation examples",
"engines": {
"node": ">=20"
},
"dependencies": {
"@neondatabase/serverless": ">=0.9.0",
"web-push": ">=3.6.0"
}
}
Loading