@heybox/hb-sdk 0.2.0-alpha.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -2
- package/dist/cli.cjs +71438 -3859
- package/dist/devtools/mock-host/main.js +336 -203
- package/dist/index.cjs.js +2 -14
- package/dist/index.esm.js +3 -2
- package/dist/miniapp-publish.cjs.js +78 -0
- package/dist/miniapp-publish.esm.js +67 -0
- package/dist/templates/vue3-vite-ts/README.md.ejs +2 -0
- package/dist/templates/vue3-vite-ts/package.json.ejs +5 -0
- package/dist/templates/vue3-vite-ts/vite.config.ts +2 -1
- package/dist/vite.cjs.js +86 -0
- package/dist/vite.esm.js +84 -0
- package/package.json +27 -1
- package/skill/SKILL.md +28 -17
- package/skill/references/api-root.md +93 -38
- package/skill/references/cli.md +19 -1
- package/skill/references/examples.md +12 -0
- package/skill/references/safety-boundaries.md +2 -0
- package/skill/scripts/skill-metadata.mjs +4 -1
- package/skill/scripts/sync-references.mjs +24 -0
- package/skill/scripts/validate-skill.mjs +4 -2
- package/skill/skill.json +4 -4
- package/types/core/client.d.ts +7 -16
- package/types/index.d.ts +2 -6
- package/types/miniapp-manifest/index.d.ts +2 -0
- package/types/miniapp-manifest/node.d.ts +1 -0
- package/types/miniapp-manifest/schema.d.ts +14 -0
- package/types/miniapp-publish/index.d.ts +23 -0
- package/types/skill-metadata.d.ts +6 -0
- package/types/vite/index.d.ts +17 -0
package/README.md
CHANGED
|
@@ -221,14 +221,45 @@ try {
|
|
|
221
221
|
| --- | --- |
|
|
222
222
|
| `hb-sdk create <project-name>` | 创建外部小程序模板。 |
|
|
223
223
|
| `hb-sdk dev` | 启动当前项目的 Vite dev server 和浏览器 mock 宿主环境,并默认打开调试页。 |
|
|
224
|
+
| `hb-sdk deploy [--skip-build]` | 构建并发布当前小程序到 Heybox 后台。`--skip-build` 跳过 build 直接上传 `dist/` 并 publish。 |
|
|
224
225
|
| `hb-sdk login` | 登录 Heybox,并把 CLI 自己需要的登录态保存在本地缓存中。 |
|
|
225
226
|
| `hb-sdk login status` | 查看脱敏后的 CLI 登录态。 |
|
|
226
227
|
| `hb-sdk login clear` | 清理 CLI 登录态。 |
|
|
227
228
|
| `hb-sdk doctor` | 检查本机 `hb-sdk` Agent Skill 是否匹配当前 SDK,并输出手动安装/刷新命令。 |
|
|
228
229
|
|
|
230
|
+
## hb-sdk deploy
|
|
231
|
+
|
|
232
|
+
`hb-sdk deploy` 把 build、CDN 上传、发布 API 串成单条命令。命令前置要求:
|
|
233
|
+
|
|
234
|
+
1. `package.json` 必须含 `heybox.miniProgramId` 字段,CLI 只从这里读 mini program id:
|
|
235
|
+
```json
|
|
236
|
+
{
|
|
237
|
+
"heybox": {
|
|
238
|
+
"miniProgramId": "mp_xxxxxxxx"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
2. 已运行过 `hb-sdk login` 登录 Heybox。
|
|
243
|
+
3. 项目根有 `scripts.build`,会被 CLI 通过 lockfile 自动选用的 `pnpm`、`yarn` 或 `npm` 触发;无 lockfile 时回退 `npm`。
|
|
244
|
+
4. 构建产物落在 `dist/`,包含 `index.html` 和 `manifest.json`。
|
|
245
|
+
|
|
246
|
+
执行流程:
|
|
247
|
+
|
|
248
|
+
1. 校验 `heybox.miniProgramId` 和登录态。
|
|
249
|
+
2. 触发 `<pm> run build`,除非使用 `--skip-build`。
|
|
250
|
+
3. 解析 `dist/manifest.json`,校验 `version` 为 `x.y.z`,自动剥离 BOM。
|
|
251
|
+
4. 遍历 `dist/` 文件,跳过 `manifest.json`、`.DS_Store`、`.map`;遇到 symlink 或 `node_modules` 直接报错。
|
|
252
|
+
5. 校验所有上传路径长度不超过 64。
|
|
253
|
+
6. 4 并发上传到 COS。任一文件失败立刻 abort,不调 publish。
|
|
254
|
+
7. 全部上传成功后调发布 API,原样透传后端 msg。
|
|
255
|
+
|
|
256
|
+
`--skip-build` 用于 CI 双阶段:上一步已经 build 完缓存好了 `dist/`,本步只做上传和 publish。`dist/manifest.json` 或 `dist/index.html` 缺失会立即报错。
|
|
257
|
+
|
|
258
|
+
`manifest.json` 不会上传到 CDN,只作为 publish 请求的 `manifest` 字段提交。这与 Vite 插件文档中的契约一致。
|
|
259
|
+
|
|
229
260
|
CLI 登录态只供 CLI 命令访问黑盒接口时复用,不会注入 iframe SDK,也不会改变 `auth.login()`、`user.getInfo()`、`network.request()` 或 mock 宿主中的用户状态。
|
|
230
261
|
|
|
231
|
-
CLI
|
|
262
|
+
`create`、`dev`、`login`、`login status`、`login clear` 这些 CLI 命令会在成功执行后检查 npm registry 上的 `@heybox/hb-sdk@latest`。如果发现新版本,会在 stderr 打印升级提醒;检查失败会静默跳过,不影响当前命令。`doctor` 不会附带版本提醒,避免把 skill 诊断输出和升级提示混在一起。可通过 `HB_SDK_NO_UPDATE_CHECK=1` 禁用版本提醒;`CI=true` 时也会自动跳过检查。
|
|
232
263
|
|
|
233
264
|
## SDK 与 Runtime
|
|
234
265
|
|
|
@@ -244,6 +275,37 @@ CLI 会在成功执行命令后检查 npm registry 上的 `@heybox/hb-sdk@latest
|
|
|
244
275
|
- `network.request()` 的 `validateStatus` 只在 SDK 本地执行,不会被序列化给父容器。
|
|
245
276
|
- `on()` 返回取消监听函数;组件卸载或页面销毁时应主动取消监听。
|
|
246
277
|
- 使用 `createMiniProgramSDK()` 创建独立实例后,不再需要时应调用 `destroy()`。
|
|
278
|
+
- 构建产物可以包含 `dist/manifest.json`,业务代码不应自行 fetch 已部署的 manifest;这个文件由发布流水线读取并上送后台。
|
|
279
|
+
|
|
280
|
+
## Manifest
|
|
281
|
+
|
|
282
|
+
`@heybox/hb-sdk/vite` 提供构建时插件 `miniappManifest()`。Vite 项目完成 `vite build` 后,会在输出目录写入 `manifest.json`:
|
|
283
|
+
|
|
284
|
+
```json
|
|
285
|
+
{
|
|
286
|
+
"version": "1.2.3"
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
`version` 来自小程序项目自身的 `package.json.version`。`hb-sdk create` 生成的模板默认已注册插件;现有 Vite 项目可以在 `vite.config.ts` 中手动接入:
|
|
291
|
+
|
|
292
|
+
```ts
|
|
293
|
+
import { miniappManifest } from '@heybox/hb-sdk/vite';
|
|
294
|
+
import { defineConfig } from 'vite';
|
|
295
|
+
|
|
296
|
+
export default defineConfig({
|
|
297
|
+
plugins: [miniappManifest()],
|
|
298
|
+
});
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
失败与警告语义:
|
|
302
|
+
|
|
303
|
+
- 读取 `package.json` 失败或 JSON 解析失败:`vite build` 直接失败,并输出具体原因。
|
|
304
|
+
- `package.json.version` 不是非空字符串:`vite build` 直接失败。
|
|
305
|
+
- `package.json.version` 仍是模板默认值 `0.0.0`:`vite build` 输出 warning 并写入 manifest;`hb-sdk deploy` 会拒绝发布,必须改成实际 `x.y.z` 版本。
|
|
306
|
+
- 版本号不满足极简 semver 形态 `x.y.z`:只输出 Rollup/Vite warning,仍会写入 manifest。
|
|
307
|
+
|
|
308
|
+
`manifest.json` 不部署到 CDN,只交给发布流水线读取后上送后台;Host 通过后台 API 间接读取版本信息。第一阶段只支持 Vite 项目,非 Vite 打包器未来通过其他子入口扩展。
|
|
247
309
|
|
|
248
310
|
## 导出
|
|
249
311
|
|
|
@@ -257,7 +319,9 @@ CLI 会在成功执行命令后检查 npm registry 上的 `@heybox/hb-sdk@latest
|
|
|
257
319
|
- `HbMiniProgramSDKError`、`HbMiniProgramNetworkError`
|
|
258
320
|
- 各模块公开类型,例如 `MiniProgramNetworkRequestConfig`、`MiniProgramNetworkResponse`、`MiniProgramUserInfoResult`
|
|
259
321
|
|
|
260
|
-
|
|
322
|
+
协议常量、消息类型、能力目录、payload/result 映射和守卫只通过 `@heybox/hb-sdk/protocol` 子入口导出。iframe 小程序业务代码不应构造 raw bridge message,也不应直接处理 nonce 或 `postMessage` 信封;宿主运行时等非业务页面代码使用 `@heybox/hb-sdk/protocol`。
|
|
323
|
+
|
|
324
|
+
构建时插件 `miniappManifest` 通过 `@heybox/hb-sdk/vite` 子入口导出,仅供 `vite.config.ts` 使用,不应在小程序业务代码里 import。
|
|
261
325
|
|
|
262
326
|
## 本仓库开发
|
|
263
327
|
|
|
@@ -265,6 +329,9 @@ CLI 会在成功执行命令后检查 npm registry 上的 `@heybox/hb-sdk@latest
|
|
|
265
329
|
pnpm --filter @heybox/hb-sdk run test:unit
|
|
266
330
|
pnpm --filter @heybox/hb-sdk run build:package
|
|
267
331
|
pnpm --filter @heybox/hb-sdk run check:boundary
|
|
332
|
+
pnpm --filter @heybox/hb-sdk run check:docs-sync
|
|
268
333
|
```
|
|
269
334
|
|
|
270
335
|
`check:boundary` 用于保护 SDK、CLI、mock host 与 runtime 之间的依赖边界。调整 CLI、mock 或协议导出时应一起运行。
|
|
336
|
+
|
|
337
|
+
`check:docs-sync` 用于校验 `README`、文档站 llms 镜像、skill references 与公开 `agent-skills` payload 没有漏同步。维护清单见 `packages/hb-sdk/DOC_SYNC_CHECKLIST.md`。
|