@heybox/hb-sdk 0.9.1-alpha.11 → 0.9.1-alpha.13
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/CHANGELOG.md +18 -0
- package/README.md +4 -2
- package/dist/cli-chunks/{build-CSTdWNu1.cjs → build-BbHZwXU-.cjs} +5 -5
- package/dist/cli-chunks/{context-Bej2XR0w.cjs → context-DO5i8KuO.cjs} +10 -5
- package/dist/cli-chunks/{create-Cz5tqvMR.cjs → create--IVuD5k_.cjs} +1 -1
- package/dist/cli-chunks/{dev-6nGC0_bZ.cjs → dev-BhEiM7pc.cjs} +194 -81
- package/dist/cli-chunks/{doctor-BSSJ7n8i.cjs → doctor-d1QBw6xr.cjs} +1 -1
- package/dist/cli-chunks/{index-gqsUj-Am.cjs → index-Bg8efmgB.cjs} +1 -1
- package/dist/cli-chunks/{index-CQtu_5c7.cjs → index-D9EWV1_s.cjs} +16 -16
- package/dist/cli-chunks/{index.esm-BuwSVK1U.cjs → index.esm-D4RF7uzO.cjs} +6 -6
- package/dist/cli-chunks/{login-BB07gOy9.cjs → login-CQ30ru_V.cjs} +1 -1
- package/dist/cli-chunks/{project-vite-DqbyiCMm.cjs → project-vite-ESL8lQxi.cjs} +1 -1
- package/dist/cli-chunks/{remote-BvvAbGIG.cjs → remote-DanoP7Dn.cjs} +28 -16
- package/dist/cli-chunks/{runtime-gate-Bh1vm1an.cjs → runtime-gate-DZsAmCYW.cjs} +2 -2
- package/dist/cli-chunks/{runtime-permission-env-DuRchECp.cjs → runtime-permission-env-CmEUEBaN.cjs} +50 -4
- package/dist/cli-chunks/{skill-D1pYV7g_.cjs → skill-D8nZ85m0.cjs} +2 -2
- package/dist/cli-chunks/{version-BaMa3UQg.cjs → version-BQjpkyst.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-Dve2R-Eg.js +102 -0
- package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-D1z3MxUY.js → desktop-app-launch-DHAqShPh.js} +1 -1
- package/dist/devtools/browser-dev-host/assets/{index-BRxbUJVN.css → index-7Cq8iNcD.css} +1 -1
- package/dist/devtools/browser-dev-host/assets/{index-CuH8wWTJ.js → index-V5tDukHZ.js} +4 -4
- package/dist/devtools/browser-dev-host/index.html +3 -3
- package/dist/index.cjs.js +8 -2
- package/dist/index.esm.js +8 -2
- package/dist/protocol.cjs.js +1 -1
- package/dist/protocol.esm.js +1 -1
- package/dist/vite.cjs.js +1 -1
- package/dist/vite.esm.js +1 -1
- package/docs/runtime-host-migration.md +4 -2
- package/package.json +3 -3
- package/skill/SKILL.md +10 -0
- package/skill/skill.json +5 -5
- package/types/index.d.ts +7 -2
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-wMCyX_zc.js +0 -102
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
本文件随 `@heybox/hb-sdk` npm 包公开分发,只记录外部小程序开发者可观察到的变化。
|
|
4
4
|
|
|
5
|
+
## 0.9.1-alpha.13
|
|
6
|
+
|
|
7
|
+
### 问题修复
|
|
8
|
+
|
|
9
|
+
- 真机调试根据确认后的网络权限使用对应身份流程,授权状态读取失败时明确提示重试。
|
|
10
|
+
- 本地权限刷新遇到临时故障或限流后自动重试,重新打开调试会话时刷新过期权限缓存。
|
|
11
|
+
|
|
12
|
+
## 0.9.1-alpha.12 - 2026-10-16
|
|
13
|
+
|
|
14
|
+
### 行为调整
|
|
15
|
+
|
|
16
|
+
- 新宿主仅对正式 SDK `0.9.1` 及以上启用默认截图水印;较旧版本(含 `0.9.1-alpha.*`)或缺少版本记录的兼容模式静默保留无水印截图。
|
|
17
|
+
- SDK 每次调用 `share.screenshot()` 时输出行为变更提醒,说明水印版本门槛、底部至少预留 57 个逻辑像素及明暗配色;日志输出失败不影响截图。
|
|
18
|
+
|
|
19
|
+
### 文档与工具
|
|
20
|
+
|
|
21
|
+
- Agent Skill 强制检查截图升级影响,提醒同步核对页面布局、版本兼容和主题选择。
|
|
22
|
+
|
|
5
23
|
## 0.9.1-alpha.11 - 2026-10-16
|
|
6
24
|
|
|
7
25
|
### 新增能力
|
package/README.md
CHANGED
|
@@ -332,7 +332,7 @@ SDK 还提供 `getHandshakeState()` / `onHandshakeStateChange()` 管理持久握
|
|
|
332
332
|
| `network` | 发起经过平台授权的网络请求及受控文件传输 |
|
|
333
333
|
| `companion` | 准备、启动并控制当前版本审核过的桌面辅助应用 |
|
|
334
334
|
|
|
335
|
-
`share.screenshot()`
|
|
335
|
+
`share.screenshot()` 每次调用都会在 SDK 侧输出行为变更 warning,提醒升级后的布局与配色要求;日志失败不阻断调用。截图从正式 SDK `0.9.1` 起默认添加水印。新 Runtime 对低于 `0.9.1` 的 SDK(包含 `0.9.1-alpha.*`)或缺少 SDK 版本记录的兼容模式静默保持无水印截图;升级前需同步调整布局。启用水印时,会在截图区域底部添加当前小程序名称的品牌搜索胶囊及灰色「小黑盒工坊小程序」。请在目标区域底部预留至少 57 个逻辑像素的空白背景,避免遮挡重要内容,并保证背景与水印有足够对比度。`watermarkTheme: 'light'` 适合浅色背景(黑色水印),`'dark'` 适合深色背景(白色水印,默认);不自动跟随系统主题。水印仅在 SDK 截图期间展示,不增加图片尺寸;系统按键截图暂不支持。截图等待不受 SDK 普通请求超时限制;排队和延迟期间会响应会话终止,Mobile Host 从投递原生截图起最多等待 15 秒成图回调。详见 [截图分享布局要求](https://docs.xiaoheihe.cn/hb_sdk/recipes/community-share#截图分享)。
|
|
336
336
|
|
|
337
337
|
具体方法、参数和返回值以 [API Reference](https://docs.xiaoheihe.cn/hb_sdk/reference/) 为准,常见组合写法见 [Recipes](https://docs.xiaoheihe.cn/hb_sdk/recipes/)。
|
|
338
338
|
|
|
@@ -483,7 +483,9 @@ CLI 会复用已验证产物、跳过该 ZIP 的网络上传;Web 文件及发
|
|
|
483
483
|
|
|
484
484
|
右上角的桌面图标与二维码按钮使用相同样式。桌面图标只在该项目于 `package.json#heybox.platforms` 声明了桌面平台(`windows`、`macos` 或 `linux`)时展示,未声明桌面平台的项目不显示该入口。点击桌面图标后选择小黑盒正式版或 Debug 版,选择会立即请求客户端打开当前本地页面并在本地记忆,不需要二次确认。桌面端只接受无凭据的 `http://127.0.0.1:<port>`,拒绝 `localhost`、IPv6 和 LAN 地址,不提供地址选择或手工 URL;手机二维码继续独立选择局域网地址。入口在项目已绑定且本地调试启动票有效时可用,统一 URI 只携带 `mini_program_id` 和 `mini_url`,启动票继续由 detail 从同源 `launch.json` 发现并交给后端验证。浏览器无法确认客户端是否真正打开,因此调试台只记录“已请求打开”,不会自动切换正式版或 Debug 版。
|
|
485
485
|
|
|
486
|
-
`hb-sdk dev` 在未登录、未绑定或远端不可用时仍启动 Browser Mock;真实手机/PC 入口须有有效启动票。CLI 自动从本地声明生成普通 `network` / `companion` 的临时批准缺口,不提供第二套权限开关。调试台顶部的“查看全部权限申请”在新标签页打开当前小程序的权限列表;尚未获批的 Network、Companion 单项提供“去申请”,直接打开对应申请表单。未获取到小程序 ID 时先选择小程序,再进入对应权限;已获批或审核中的权限不重复打开申请表单。真实 Host 每次打开会话确认临时权限,拒绝后仍可按线上批准基线打开;官方域名始终只认声明与线上批准的交集。真机 Dev Session 的公开 `network.request()` 通过开发机的 HTTP 代理转发,因此 HTTPS `localhost` 指向开发机;代理不管理独立租约,不判断黑盒域名或改写应用层凭据。正式版本和 Runtime 私有请求仍走 Host 网络。CLI 连续失联约 30 秒、期限或快照变化会销毁旧 Runtime,并清理临时 Companion
|
|
486
|
+
`hb-sdk dev` 在未登录、未绑定或远端不可用时仍启动 Browser Mock;真实手机/PC 入口须有有效启动票。CLI 自动从本地声明生成普通 `network` / `companion` 的临时批准缺口,不提供第二套权限开关。调试台顶部的“查看全部权限申请”在新标签页打开当前小程序的权限列表;尚未获批的 Network、Companion 单项提供“去申请”,直接打开对应申请表单。未获取到小程序 ID 时先选择小程序,再进入对应权限;已获批或审核中的权限不重复打开申请表单。真实 Host 每次打开会话确认临时权限,拒绝后仍可按线上批准基线打开;官方域名始终只认声明与线上批准的交集。真机 Dev Session 的公开 `network.request()` 通过开发机的 HTTP 代理转发,因此 HTTPS `localhost` 指向开发机;代理不管理独立租约,不判断黑盒域名或改写应用层凭据。正式版本和 Runtime 私有请求仍走 Host 网络。CLI 连续失联约 30 秒、期限或快照变化会销毁旧 Runtime,并清理临时 Companion 进程树;恢复后重新确认。手机验收统一从右上角二维码进入并选择可达的局域网网卡。开发描述、运行快照与续票边界见[开发会话](./docs/development-session.md)。完整操作见 [CLI 指南](https://docs.xiaoheihe.cn/hb_sdk/guide/cli),实现与安全边界由 [Runtime Host 迁移](./docs/runtime-host-migration.md) 维护。
|
|
487
|
+
|
|
488
|
+
开发上下文按需读取并默认缓存 30 秒;重新打开真机会话时,过期缓存会刷新。权限刷新遇到临时故障或限流会按退避自动重试,恢复前暂停签发新启动票。真机按确认后的有效网络权限选择身份模式;身份上下文读取失败会提示重试,不会静默切换旧身份模式。
|
|
487
489
|
|
|
488
490
|
远端提交前需要完成 CLI 登录和小程序绑定。完整的登录、绑定、预览、版本与发布流程见 [CLI 指南](https://docs.xiaoheihe.cn/hb_sdk/guide/cli)。
|
|
489
491
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var runtimeGate = require('./runtime-gate-
|
|
3
|
+
var runtimeGate = require('./runtime-gate-DZsAmCYW.cjs');
|
|
4
4
|
var fs$1 = require('node:fs');
|
|
5
5
|
var fs = require('node:fs/promises');
|
|
6
6
|
var path = require('node:path');
|
|
7
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
8
|
-
var index = require('./index-
|
|
7
|
+
var runtimePermissionEnv = require('./runtime-permission-env-CmEUEBaN.cjs');
|
|
8
|
+
var index = require('./index-D9EWV1_s.cjs');
|
|
9
9
|
require('node:crypto');
|
|
10
10
|
require('node:zlib');
|
|
11
|
-
var projectVite = require('./project-vite-
|
|
11
|
+
var projectVite = require('./project-vite-ESL8lQxi.cjs');
|
|
12
12
|
require('node:module');
|
|
13
13
|
require('node:url');
|
|
14
14
|
require('./_commonjs-dynamic-modules-DUamuDzp.cjs');
|
|
@@ -16,7 +16,7 @@ require('fs');
|
|
|
16
16
|
require('path');
|
|
17
17
|
require('os');
|
|
18
18
|
require('inspector');
|
|
19
|
-
require('./version-
|
|
19
|
+
require('./version-BQjpkyst.cjs');
|
|
20
20
|
require('node:async_hooks');
|
|
21
21
|
require('readline');
|
|
22
22
|
require('tty');
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
var node_crypto = require('node:crypto');
|
|
4
4
|
var fs = require('node:fs/promises');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
6
|
+
var runtimePermissionEnv = require('./runtime-permission-env-CmEUEBaN.cjs');
|
|
7
7
|
var fs$1 = require('node:fs');
|
|
8
8
|
var sharp = require('sharp');
|
|
9
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-D9EWV1_s.cjs');
|
|
10
10
|
|
|
11
11
|
async function inspectBasicInfoImage(bytes, sourcePath, kind) {
|
|
12
12
|
const inspected = await inspectDecodedBasicInfoImage(bytes, kind);
|
|
@@ -376,13 +376,17 @@ function createBrowserDevPermissionState(context) {
|
|
|
376
376
|
}
|
|
377
377
|
: cloneDefaultPermissionState();
|
|
378
378
|
}
|
|
379
|
-
/** Mobile Dev Session
|
|
379
|
+
/** Mobile Dev Session 使用本地声明与平台基线,不读取 Browser 模拟权限状态。 */
|
|
380
380
|
function createMobileDevSessionRuntimePermissions(context) {
|
|
381
381
|
if (context.source !== 'remote') {
|
|
382
382
|
return { schema_version: 1, entries: [] };
|
|
383
383
|
}
|
|
384
|
-
|
|
385
|
-
|
|
384
|
+
// 历史内部调用没有本地声明,沿用旧快照适配;新 CLI 始终显式提供声明(可为空)。
|
|
385
|
+
if (context.declaredPermissions === undefined) {
|
|
386
|
+
const state = createBrowserDevPermissionState(context);
|
|
387
|
+
return createDevRuntimePermissions(context.runtimePermissions, state, state.networkRequest.useOfficialDomain);
|
|
388
|
+
}
|
|
389
|
+
return runtimePermissionEnv.composeLocalDevRuntimePermissions({ declaredPermissions: context.declaredPermissions, runtimePermissions: context.runtimePermissions }).runtimePermissions;
|
|
386
390
|
}
|
|
387
391
|
function cloneDefaultPermissionState() {
|
|
388
392
|
return {
|
|
@@ -623,6 +627,7 @@ async function createLocalDevLaunchToken(options, runtime = {}) {
|
|
|
623
627
|
const api = await resolveRemoteApiClient(options, runtime);
|
|
624
628
|
return api.createLocalDevLaunchToken({
|
|
625
629
|
mini_program_id: miniProgramId,
|
|
630
|
+
...(options.developmentSnapshot ? { development_snapshot: options.developmentSnapshot } : {}),
|
|
626
631
|
...(options.companionManifestSha256
|
|
627
632
|
? { companion_manifest_sha256: options.companionManifestSha256 }
|
|
628
633
|
: {}),
|
|
@@ -5,7 +5,7 @@ var fs = require('node:fs/promises');
|
|
|
5
5
|
var path = require('node:path');
|
|
6
6
|
var require$$0 = require('fs');
|
|
7
7
|
var require$$1 = require('path');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-D9EWV1_s.cjs');
|
|
9
9
|
require('node:module');
|
|
10
10
|
require('readline');
|
|
11
11
|
require('os');
|