@heybox/hb-sdk 0.9.0-alpha.0 → 0.9.0-alpha.10
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 +70 -0
- package/README.md +16 -1
- package/dist/cli-chunks/{build-Dv5vWsBh.cjs → build-CT6E9KRd.cjs} +5 -5
- package/dist/cli-chunks/{context-B15FzPf9.cjs → context--dJRx4eH.cjs} +2 -2
- package/dist/cli-chunks/{create-BtZUsxJd.cjs → create-D6SiqyyQ.cjs} +1 -1
- package/dist/cli-chunks/{dev-tAThflC6.cjs → dev-CoWE5lyA.cjs} +228 -19
- package/dist/cli-chunks/{doctor-PE_MhGBX.cjs → doctor-IQ5wPkWD.cjs} +1 -1
- package/dist/cli-chunks/{index-Dd_eGaDz.cjs → index-CYxcLlON.cjs} +15 -15
- package/dist/cli-chunks/{index-CeA8xI0T.cjs → index-CnOLdO_-.cjs} +2 -2
- package/dist/cli-chunks/{index.esm-Bw3R5BAL.cjs → index.esm-07KOgDkI.cjs} +7 -7
- package/dist/cli-chunks/{login-5FPaFRi0.cjs → login-BszmxuLI.cjs} +2 -2
- package/dist/cli-chunks/{project-vite-ckDtbYtt.cjs → project-vite-tMo1gavS.cjs} +1 -1
- package/dist/cli-chunks/{remote-DCHqFvmB.cjs → remote-2oOP8M5C.cjs} +83 -17
- package/dist/cli-chunks/{runtime-gate-DkTbgx4d.cjs → runtime-gate-CNBf6Zkh.cjs} +8 -1
- package/dist/cli-chunks/{runtime-permission-env-DR89buKQ.cjs → runtime-permission-env-GH_vWEVx.cjs} +86 -57
- package/dist/cli-chunks/{session-BiT-5VHK.cjs → session-DrhTp-x-.cjs} +1 -1
- package/dist/cli-chunks/{skill-C5EoUf2T.cjs → skill-NfC1c0iQ.cjs} +2 -2
- package/dist/cli-chunks/{version-CJ7rfbl-.cjs → version-DA6v9R62.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-C3c3yud2.js +102 -0
- package/dist/devtools/browser-dev-host/assets/desktop-app-launch-CHZKVQmQ.js +6 -0
- package/dist/devtools/browser-dev-host/assets/{index-0Ac39Njs.css → index-B5aFVoao.css} +1 -1
- package/dist/devtools/browser-dev-host/assets/{index-B1ZPOArZ.js → index-BmiQPZvl.js} +4 -4
- package/dist/devtools/browser-dev-host/index.html +3 -3
- package/dist/index.cjs.js +10 -3
- package/dist/index.esm.js +10 -3
- package/dist/miniapp-publish.cjs.js +121 -57
- package/dist/miniapp-publish.esm.js +121 -57
- package/dist/vite.cjs.js +33 -4
- package/dist/vite.esm.js +33 -4
- package/docs/runtime-host-migration.md +3 -1
- package/package.json +7 -7
- package/skill/skill.json +4 -4
- package/types/core/singleton.d.ts +1 -1
- package/types/miniapp-manifest/basic-info-browser.d.ts +29 -1
- package/types/miniapp-manifest/basic-info.d.ts +23 -2
- package/types/miniapp-manifest/category.d.ts +9 -2
- package/types/miniapp-manifest/companion-types.d.ts +25 -0
- package/types/miniapp-manifest/permissions.d.ts +12 -0
- package/types/miniapp-manifest/runtime-gate.d.ts +7 -0
- package/types/miniapp-manifest/schema.d.ts +23 -0
- package/types/miniapp-publish/index.d.ts +23 -51
- package/types/modules/auth/index.d.ts +5 -1
- package/types/modules/companion/index.d.ts +27 -34
- package/types/modules/navigation/index.d.ts +8 -0
- package/types/modules/network/index.d.ts +12 -2
- package/types/modules/user/index.d.ts +12 -1
- package/types/modules/user/steam-game-list.d.ts +2 -2
- package/types/modules/viewport/index.d.ts +21 -1
- package/types/vite/index.d.ts +5 -0
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-Cu0OUKXf.js +0 -102
- package/dist/devtools/browser-dev-host/assets/desktop-app-launch-2BQ4uwPZ.js +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,76 @@
|
|
|
2
2
|
|
|
3
3
|
本文件随 `@heybox/hb-sdk` npm 包公开分发,只记录外部小程序开发者可观察到的变化。
|
|
4
4
|
|
|
5
|
+
## 0.9.0-alpha.10 - 2026-10-10
|
|
6
|
+
|
|
7
|
+
### 行为调整
|
|
8
|
+
|
|
9
|
+
- 支持方向控制的宿主在 `navigation.openAppPage({ target: 'mini_program' })` 跳转前,先恢复竖屏、非全屏;恢复失败时不打开目标,并返回方向错误。返回后需要横屏的页面应在 `show` 事件中重新调用 `viewport.setDisplay()`。
|
|
10
|
+
|
|
11
|
+
### 问题修复
|
|
12
|
+
|
|
13
|
+
- 修复跨小程序跳转超时或 SDK 销毁后仍可能打开目标的问题;恢复竖屏阶段增加截止时间,并向宿主传播取消。旧宿主没有方向能力时继续允许跳转。
|
|
14
|
+
|
|
15
|
+
## 0.9.0-alpha.9 - 2026-10-10
|
|
16
|
+
|
|
17
|
+
### 问题修复
|
|
18
|
+
|
|
19
|
+
- 改善全屏退出入口在黑色背景下不易发现、提示收起过快的问题,增加短暂动画引导和浅色描边。
|
|
20
|
+
- 减少收起后的遮挡,竖屏保留更窄的边缘入口,并支持系统减少动态效果设置;公开 SDK API 和退出操作保持不变。
|
|
21
|
+
|
|
22
|
+
## 0.9.0-alpha.7 - 2026-10-09
|
|
23
|
+
|
|
24
|
+
### 文档与工具
|
|
25
|
+
|
|
26
|
+
- 浏览器调试台支持横竖屏与全屏模拟,页面随设备旋转,全屏时隐藏胶囊和状态栏并保留安全区。
|
|
27
|
+
- 退出全屏按钮跟随模拟屏幕,退出后恢复竖屏展示。
|
|
28
|
+
|
|
29
|
+
## 0.9.0-alpha.6 - 2026-10-09
|
|
30
|
+
|
|
31
|
+
### 问题修复
|
|
32
|
+
|
|
33
|
+
- 修复手机扫码调试切换到非默认局域网网卡后,二维码持续刷新、难以扫码的问题。
|
|
34
|
+
|
|
35
|
+
## 0.9.0-alpha.5 - 2026-10-09
|
|
36
|
+
|
|
37
|
+
### 文档与工具
|
|
38
|
+
|
|
39
|
+
- 补齐网络超时与重试、Steam 授权、生命周期事件和展示操作的 API 说明,修正 Companion 退出订阅示例。
|
|
40
|
+
- 为发布资料、Manifest 和浏览器预览工具补充参数、返回值、校验边界与资源释放说明,并纳入 API Reference。
|
|
41
|
+
|
|
42
|
+
## 0.9.0-alpha.4 - 2026-10-08
|
|
43
|
+
|
|
44
|
+
### 行为调整
|
|
45
|
+
|
|
46
|
+
- `user.getSteamGameList()` 在支持完整文件能力的 Host 上复用持久化结果;文件能力不可用时保留内存缓存并正常回退请求。
|
|
47
|
+
|
|
48
|
+
### 问题修复
|
|
49
|
+
|
|
50
|
+
- 修复缓存存储故障、账号绑定变化和缓存治理异常影响 Steam 查询的问题。
|
|
51
|
+
|
|
52
|
+
## 0.9.0-alpha.3 - 2026-10-08
|
|
53
|
+
|
|
54
|
+
### 行为调整
|
|
55
|
+
|
|
56
|
+
- Companion ZIP 使用 artifact 协议 v2 复用已验证内容,并在服务端异步完成校验后再提交审核;中断部署可重新执行续接。
|
|
57
|
+
|
|
58
|
+
## 0.9.0-alpha.2 - 2026-10-07
|
|
59
|
+
|
|
60
|
+
### 问题修复
|
|
61
|
+
|
|
62
|
+
- 恢复手机真机调试时由开发机转发 `network.request()`,请求中的 `localhost` 指向开发机。
|
|
63
|
+
- 本地代理保留调用方提供的应用层请求头和上游响应头,不自动携带黑盒登录态。
|
|
64
|
+
|
|
65
|
+
## 0.9.0-alpha.1 - 2026-10-07
|
|
66
|
+
|
|
67
|
+
> 影响级别:常规
|
|
68
|
+
> 开发者动作:Android 扫码调试用户升级至 `0.9.0-alpha.1` 后重新运行 `hb-sdk dev`。
|
|
69
|
+
> 兼容范围:公开 SDK API 不变;补齐真实客户端扫码调试启动协议中的小程序身份字段,保留原有兼容字段。
|
|
70
|
+
|
|
71
|
+
### 问题修复
|
|
72
|
+
|
|
73
|
+
- 修复 CLI 扫码启动协议缺少 `user_miniprogram_id`,导致 Android 1.3.396 调试容器可能无法使用原生桥接能力的问题。
|
|
74
|
+
|
|
5
75
|
## 0.9.0-alpha.0 - 2026-10-06
|
|
6
76
|
|
|
7
77
|
> 影响级别:常规
|
package/README.md
CHANGED
|
@@ -26,6 +26,8 @@ npm run dev
|
|
|
26
26
|
|
|
27
27
|
脚手架已包含 SDK、Vite 配置和常用开发命令。浏览器调试通过后,再从调试台的二维码入口使用手机小黑盒 APP 验收。
|
|
28
28
|
|
|
29
|
+
手机二维码的短链先打开普通中间页,再进入专用 dev-shell。最终 `openWindow` 协议会把 CLI 校验后的用户小程序字符串 ID(UUID)写入根字段 `user_miniprogram_id`;原生不会从 URL 查询参数补读,也不能用传统小程序数字 ID 代替。匿名调试不生成小程序 ID,原生未开放的横屏能力仍返回 `supported: false`。入口排查与验证记录见 [Android 396 入口审计](./docs/android-396-launch-identity.md)。
|
|
30
|
+
|
|
29
31
|
当前 `0.8` 已发布为稳定版本,创建命令使用 `@latest`。
|
|
30
32
|
|
|
31
33
|
### 接入已有项目
|
|
@@ -391,6 +393,14 @@ const launchData = hbSDK.share.getExtra();
|
|
|
391
393
|
|
|
392
394
|
该目标无需权限声明或可信用户手势,只接受目标 `miniProgramId` 和可选 `extra`;不能指定版本、URL、scheme 或窗口样式。生产 Host 只解析当前用户可访问的公开发布版本,预览与本地开发目标仅由 Dev Host 提供。`extra` 不会继承源小程序当前的启动数据,省略时目标读取到 `undefined`,显式传 `null` 时读取到 `null`。调用成功只表示 Host 已接受开窗请求,不等待目标加载或 SDK 握手。
|
|
393
395
|
|
|
396
|
+
支持方向控制的 Host 会在打开目标前先把当前容器恢复为竖屏、非全屏,等待宿主确认后再开窗,避免当前容器仍锁定横屏时展示新容器出现方向冲突。恢复会发出 `display_change`(`source: 'api'`);恢复失败时不会打开目标,`openAppPage` 返回方向设置的错误码(如 `ORIENTATION_TIMEOUT`)。返回当前小程序后不会自动回到原方向,需要横屏的页面应在 `show` 事件中重新设置:
|
|
397
|
+
|
|
398
|
+
```ts
|
|
399
|
+
hbSDK.on('show', () => {
|
|
400
|
+
void hbSDK.viewport.setDisplay({ orientation: 'landscape' });
|
|
401
|
+
});
|
|
402
|
+
```
|
|
403
|
+
|
|
394
404
|
## 分享扩展数据
|
|
395
405
|
|
|
396
406
|
`share.showShareMenu()` 的落地页固定为当前小程序的 `common_share`,不接受自定义 `url`。分享和复制链接可以携带小程序自行定义的页面状态:
|
|
@@ -454,6 +464,11 @@ hb-sdk remote deploy --release-note "本次更新说明"
|
|
|
454
464
|
| `hb-sdk build` | 执行生产构建与产物校验,不包含类型检查 |
|
|
455
465
|
| `hb-sdk remote deploy` | 构建、上传并提交当前版本审核 |
|
|
456
466
|
|
|
467
|
+
`remote deploy` 要求服务端支持产物协议 v2,不会降级为旧上传流程。同一小程序已有相同 Companion ZIP 时,
|
|
468
|
+
CLI 会复用已验证产物、跳过该 ZIP 的网络上传;Web 文件及发生变化的 ZIP 仍按当前版本上传。
|
|
469
|
+
新 ZIP 使用会话专属凭证直传到以 SHA-256 命名的候选对象,强制禁止覆盖。服务端一次读取完成哈希和 ZIP 安全校验后直接引用,不再复制对象。CLI 轮询持久化 Finalize 状态并在全部 Companion ready 后提交审核;中断后重新执行 deploy 可续接,校验失败则使用新会话重传。
|
|
470
|
+
每次部署仍会重新构建并计算本地产物摘要,审核与发布仍属于本次版本。
|
|
471
|
+
|
|
457
472
|
`hb-sdk create` 默认生成可直接删除的 Vanilla JavaScript + Vite HelloWorld,只保留 SDK Toast 示例、三端 Manifest 和开发/构建/部署命令,不绑定业务框架或项目内测试工具。
|
|
458
473
|
|
|
459
474
|
`hb-sdk dev` 会启动 Vue 3 Browser Dev Host。左侧诊断面板集中展示结构化日志、当前小程序作用域内的 Storage 快照和问题;日志区分 App、SDK、Network、Runtime、Host 来源,支持毫秒级时间、结果、耗时、重复计数、脱敏详情展开以及来源/级别筛选。右侧设备预览可在 iPhone 16 Pro Max(`440 x 956`)与 Pixel 9 Pro(`410 x 914`)间切换。切换预设只改变设备外框和 viewport,不会重新加载 iframe 或重启 Runtime;授权与操作弹窗、Toast、Loading 和振动反馈都限制在预览框内。
|
|
@@ -462,7 +477,7 @@ hb-sdk remote deploy --release-note "本次更新说明"
|
|
|
462
477
|
|
|
463
478
|
右上角的桌面图标与二维码按钮使用相同样式。桌面图标只在该项目于 `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 版。
|
|
464
479
|
|
|
465
|
-
`hb-sdk dev` 在未登录、未绑定或远端不可用时仍启动 Browser Mock;真实手机/PC 入口须有有效启动票。CLI 自动从本地声明生成普通 `network` / `companion` 的临时批准缺口,不提供第二套权限开关或申请按钮。真实 Host
|
|
480
|
+
`hb-sdk dev` 在未登录、未绑定或远端不可用时仍启动 Browser Mock;真实手机/PC 入口须有有效启动票。CLI 自动从本地声明生成普通 `network` / `companion` 的临时批准缺口,不提供第二套权限开关或申请按钮。真实 Host 每次打开会话确认临时权限,拒绝后仍可按线上批准基线打开;官方域名始终只认声明与线上批准的交集。真机 Dev Session 的公开 `network.request()` 通过开发机的 HTTP 代理转发,因此 HTTPS `localhost` 指向开发机;代理不管理独立租约,不判断黑盒域名或改写应用层凭据。正式版本和 Runtime 私有请求仍走 Host 网络。CLI 连续失联约 30 秒、期限或快照变化会销毁旧 Runtime,并清理临时 Companion 进程树;恢复后重新确认。手机验收统一从右上角二维码进入并选择可达的局域网网卡。完整操作见 [CLI 指南](https://docs.xiaoheihe.cn/hb_sdk/guide/cli),实现与安全边界由 [Runtime Host 迁移](./docs/runtime-host-migration.md) 维护。
|
|
466
481
|
|
|
467
482
|
远端提交前需要完成 CLI 登录和小程序绑定。完整的登录、绑定、预览、版本与发布流程见 [CLI 指南](https://docs.xiaoheihe.cn/hb_sdk/guide/cli)。
|
|
468
483
|
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
var fs$1 = require('node:fs');
|
|
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-GH_vWEVx.cjs');
|
|
7
7
|
require('node:crypto');
|
|
8
8
|
require('node:zlib');
|
|
9
|
-
var runtimeGate = require('./runtime-gate-
|
|
10
|
-
var index = require('./index-
|
|
11
|
-
var projectVite = require('./project-vite-
|
|
12
|
-
require('./version-
|
|
9
|
+
var runtimeGate = require('./runtime-gate-CNBf6Zkh.cjs');
|
|
10
|
+
var index = require('./index-CYxcLlON.cjs');
|
|
11
|
+
var projectVite = require('./project-vite-tMo1gavS.cjs');
|
|
12
|
+
require('./version-DA6v9R62.cjs');
|
|
13
13
|
require('node:async_hooks');
|
|
14
14
|
require('node:module');
|
|
15
15
|
require('path');
|
|
@@ -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-GH_vWEVx.cjs');
|
|
7
7
|
var fs$1 = require('node:fs');
|
|
8
8
|
var sharp = require('sharp');
|
|
9
|
-
var session = require('./session-
|
|
9
|
+
var session = require('./session-DrhTp-x-.cjs');
|
|
10
10
|
|
|
11
11
|
async function inspectBasicInfoImage(bytes, sourcePath, kind) {
|
|
12
12
|
const inspected = await inspectDecodedBasicInfoImage(bytes, kind);
|
|
@@ -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-CYxcLlON.cjs');
|
|
9
9
|
require('node:module');
|
|
10
10
|
require('os');
|
|
11
11
|
require('node:crypto');
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var context = require('./context
|
|
3
|
+
var context = require('./context--dJRx4eH.cjs');
|
|
4
4
|
var node_crypto = require('node:crypto');
|
|
5
5
|
var fs = require('node:fs');
|
|
6
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
6
|
+
var runtimePermissionEnv = require('./runtime-permission-env-GH_vWEVx.cjs');
|
|
7
7
|
var os = require('node:os');
|
|
8
8
|
var path = require('node:path');
|
|
9
9
|
var net = require('node:net');
|
|
@@ -12,13 +12,13 @@ var node_http = require('node:http');
|
|
|
12
12
|
var node_module = require('node:module');
|
|
13
13
|
var undici = require('undici');
|
|
14
14
|
var fs$1 = require('node:fs/promises');
|
|
15
|
-
var index = require('./index-
|
|
15
|
+
var index = require('./index-CYxcLlON.cjs');
|
|
16
16
|
var require$$0$1 = require('crypto');
|
|
17
17
|
var require$$0 = require('buffer');
|
|
18
|
-
var session = require('./session-
|
|
18
|
+
var session = require('./session-DrhTp-x-.cjs');
|
|
19
19
|
var browser = require('./browser-RAy8e8cV.cjs');
|
|
20
|
-
var projectVite = require('./project-vite-
|
|
21
|
-
var version = require('./version-
|
|
20
|
+
var projectVite = require('./project-vite-tMo1gavS.cjs');
|
|
21
|
+
var version = require('./version-DA6v9R62.cjs');
|
|
22
22
|
require('node:zlib');
|
|
23
23
|
|
|
24
24
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
@@ -1871,7 +1871,8 @@ function createMiniProgramDevShellOpenWindowPayload(appUrl, options) {
|
|
|
1871
1871
|
protocol_type: 'openWindow',
|
|
1872
1872
|
full_screen: true,
|
|
1873
1873
|
mini_program: '1',
|
|
1874
|
-
|
|
1874
|
+
// 保留既有调试入口字段,同时通过 user_miniprogram_id 传递用户小程序字符串 ID(UUID);原生不会从 URL 补读。
|
|
1875
|
+
...(miniProgramId ? { mini_program_id: miniProgramId, user_miniprogram_id: miniProgramId } : {}),
|
|
1875
1876
|
navigation_bar: { title: '' },
|
|
1876
1877
|
webview: { url: devShellUrl, pull: false, refresh: false },
|
|
1877
1878
|
};
|
|
@@ -1992,8 +1993,8 @@ const DEFAULT_CHANNEL_TRANSPORT = {
|
|
|
1992
1993
|
};
|
|
1993
1994
|
const IPV4_LOOPBACK_ADDRESSES = new net.BlockList();
|
|
1994
1995
|
IPV4_LOOPBACK_ADDRESSES.addSubnet('127.0.0.0', 8, 'ipv4');
|
|
1995
|
-
const { WebSocket, WebSocketServer } = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/dev-
|
|
1996
|
-
const { parse: parseHtml } = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/dev-
|
|
1996
|
+
const { WebSocket, WebSocketServer } = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/dev-CoWE5lyA.cjs', document.baseURI).href)))('ws');
|
|
1997
|
+
const { parse: parseHtml } = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/dev-CoWE5lyA.cjs', document.baseURI).href)))('parse5');
|
|
1997
1998
|
const BROWSER_DEV_HOST_ROOT_CANDIDATES = [
|
|
1998
1999
|
path.resolve(__dirname, 'devtools/browser-dev-host'),
|
|
1999
2000
|
path.resolve(__dirname, '../devtools/browser-dev-host'),
|
|
@@ -5065,9 +5066,9 @@ const DEFAULT_RUNTIME_SANITIZE_MAX_DEPTH = 6;
|
|
|
5065
5066
|
*/
|
|
5066
5067
|
const DEFAULT_RUNTIME_SANITIZE_MAX_ARRAY_LENGTH = 50;
|
|
5067
5068
|
/**
|
|
5068
|
-
*
|
|
5069
|
+
* 默认不限制字符串长度,避免截断诊断 JSON 或错误现场。
|
|
5069
5070
|
*/
|
|
5070
|
-
const DEFAULT_RUNTIME_SANITIZE_MAX_STRING_LENGTH =
|
|
5071
|
+
const DEFAULT_RUNTIME_SANITIZE_MAX_STRING_LENGTH = Number.POSITIVE_INFINITY;
|
|
5071
5072
|
/**
|
|
5072
5073
|
* 判断未知值是否为普通对象。
|
|
5073
5074
|
*
|
|
@@ -9448,10 +9449,6 @@ const MAX_DEPTH = 6;
|
|
|
9448
9449
|
* 最大数组长度。
|
|
9449
9450
|
*/
|
|
9450
9451
|
const MAX_ARRAY_LENGTH = 50;
|
|
9451
|
-
/**
|
|
9452
|
-
* 最大字符串长度。
|
|
9453
|
-
*/
|
|
9454
|
-
const MAX_STRING_LENGTH = 2000;
|
|
9455
9452
|
/**
|
|
9456
9453
|
* 安全序列化错误对象。
|
|
9457
9454
|
*
|
|
@@ -9493,7 +9490,7 @@ function sanitizeTelemetryValue(value, key = '', depth = 0, seen = new WeakSet()
|
|
|
9493
9490
|
return value;
|
|
9494
9491
|
}
|
|
9495
9492
|
if (typeof value === 'string') {
|
|
9496
|
-
return value
|
|
9493
|
+
return value;
|
|
9497
9494
|
}
|
|
9498
9495
|
if (typeof value === 'bigint') {
|
|
9499
9496
|
return value.toString();
|
|
@@ -11092,7 +11089,7 @@ function assertNodeRuntimeCapabilities(ctx, settings) {
|
|
|
11092
11089
|
function createNodeRealtimeDriverRegistry() {
|
|
11093
11090
|
const registry = createRuntimeRealtimeDriverRegistry();
|
|
11094
11091
|
registry.registerLazy('node-websocket', async () => {
|
|
11095
|
-
const mod = await Promise.resolve().then(function () { return require('./index.esm-
|
|
11092
|
+
const mod = await Promise.resolve().then(function () { return require('./index.esm-07KOgDkI.cjs'); });
|
|
11096
11093
|
return mod.createNodeWebSocketRuntimeDriver();
|
|
11097
11094
|
});
|
|
11098
11095
|
return registry;
|
|
@@ -14007,6 +14004,19 @@ function readHeyboxWebV4BrowserFingerprint() {
|
|
|
14007
14004
|
}
|
|
14008
14005
|
}
|
|
14009
14006
|
}
|
|
14007
|
+
const signingBrowserFingerprints = new WeakMap();
|
|
14008
|
+
/** 默认签名在同一文档中复用环境种子,避免上下文异步释放期间再次大量创建 WebGL。 */
|
|
14009
|
+
function readSigningBrowserFingerprint() {
|
|
14010
|
+
if (typeof document === 'undefined' || typeof navigator === 'undefined') {
|
|
14011
|
+
return readHeyboxWebV4BrowserFingerprint();
|
|
14012
|
+
}
|
|
14013
|
+
const cached = signingBrowserFingerprints.get(document);
|
|
14014
|
+
if (cached?.navigator === navigator)
|
|
14015
|
+
return cached.value;
|
|
14016
|
+
const value = readHeyboxWebV4BrowserFingerprint();
|
|
14017
|
+
signingBrowserFingerprints.set(document, { navigator, value });
|
|
14018
|
+
return value;
|
|
14019
|
+
}
|
|
14010
14020
|
/**
|
|
14011
14021
|
* 根据 pathname、时间和 nonce 计算 Web V4 hkey。
|
|
14012
14022
|
*
|
|
@@ -14039,7 +14049,7 @@ function createHeyboxWebV4Params(pathname, options = {}) {
|
|
|
14039
14049
|
const now = options.now?.() ?? Date.now();
|
|
14040
14050
|
const time = Math.floor(now / 1000);
|
|
14041
14051
|
const random = options.random?.() ?? Math.random();
|
|
14042
|
-
const readFingerprint = options.browserFingerprint ??
|
|
14052
|
+
const readFingerprint = options.browserFingerprint ?? readSigningBrowserFingerprint;
|
|
14043
14053
|
const fingerprint = readFingerprint();
|
|
14044
14054
|
const nonceSeed = `${time + now}${random.toString()}${fingerprint}${fingerprint}`;
|
|
14045
14055
|
const nonce = createMd5Hex(nonceSeed).toUpperCase();
|
|
@@ -15201,6 +15211,196 @@ function writeLaunchResponse(response, status, origin, body) {
|
|
|
15201
15211
|
response.end(body ?? '');
|
|
15202
15212
|
}
|
|
15203
15213
|
|
|
15214
|
+
// SDK/Runtime 限制 2 MiB 请求正文;JSON 转义最多放大 6 倍,另留 1 MiB 元数据预算。
|
|
15215
|
+
const MAX_REQUEST_ENVELOPE_BYTES = 2 * 1024 * 1024 * 6 + 1024 * 1024;
|
|
15216
|
+
const MAX_RESPONSE_BYTES = 32 * 1024 * 1024;
|
|
15217
|
+
const HOP_BY_HOP_HEADERS = new Set([
|
|
15218
|
+
'connection',
|
|
15219
|
+
'keep-alive',
|
|
15220
|
+
'proxy-authenticate',
|
|
15221
|
+
'proxy-authorization',
|
|
15222
|
+
'te',
|
|
15223
|
+
'trailer',
|
|
15224
|
+
'transfer-encoding',
|
|
15225
|
+
'upgrade',
|
|
15226
|
+
]);
|
|
15227
|
+
/** dev server 的 HTTP 转发入口,不读取小程序权限或管理代理租约。 */
|
|
15228
|
+
function createMiniProgramDevNetworkProxy(options) {
|
|
15229
|
+
const controllers = new Set();
|
|
15230
|
+
return {
|
|
15231
|
+
async handle(request, response) {
|
|
15232
|
+
const contextPath = options.readContextPath();
|
|
15233
|
+
if (!contextPath || request.url !== `${contextPath}/network`)
|
|
15234
|
+
return false;
|
|
15235
|
+
if (request.method === 'OPTIONS') {
|
|
15236
|
+
writeResponse(response, 204);
|
|
15237
|
+
return true;
|
|
15238
|
+
}
|
|
15239
|
+
if (request.method !== 'POST') {
|
|
15240
|
+
writeResponse(response, 405, { code: 'METHOD_NOT_ALLOWED' });
|
|
15241
|
+
return true;
|
|
15242
|
+
}
|
|
15243
|
+
const scope = createBrowserDevHostRequestAbortScope(request, response);
|
|
15244
|
+
const controller = new AbortController();
|
|
15245
|
+
const abort = () => controller.abort();
|
|
15246
|
+
scope.signal.addEventListener('abort', abort, { once: true });
|
|
15247
|
+
if (scope.signal.aborted)
|
|
15248
|
+
abort();
|
|
15249
|
+
controllers.add(controller);
|
|
15250
|
+
let timer;
|
|
15251
|
+
try {
|
|
15252
|
+
const payload = await readJsonRequestBody(request, {
|
|
15253
|
+
maxBytes: MAX_REQUEST_ENVELOPE_BYTES,
|
|
15254
|
+
destroyOnLimit: false,
|
|
15255
|
+
});
|
|
15256
|
+
if (!isRecord$2(payload) || typeof payload.url !== 'string') {
|
|
15257
|
+
throw createBrowserDevHostError(400, 'INVALID_REQUEST', '代理请求需要 URL');
|
|
15258
|
+
}
|
|
15259
|
+
let url;
|
|
15260
|
+
try {
|
|
15261
|
+
url = new URL(payload.url);
|
|
15262
|
+
}
|
|
15263
|
+
catch {
|
|
15264
|
+
throw createBrowserDevHostError(400, 'INVALID_REQUEST', '代理请求 URL 无效');
|
|
15265
|
+
}
|
|
15266
|
+
if (url.protocol !== 'http:' && url.protocol !== 'https:') {
|
|
15267
|
+
throw createBrowserDevHostError(400, 'INVALID_REQUEST', '代理只支持 HTTP(S)');
|
|
15268
|
+
}
|
|
15269
|
+
if (isRecord$2(payload.params)) {
|
|
15270
|
+
for (const [key, value] of Object.entries(payload.params)) {
|
|
15271
|
+
if (value !== null && value !== undefined)
|
|
15272
|
+
url.searchParams.set(key, String(value));
|
|
15273
|
+
}
|
|
15274
|
+
}
|
|
15275
|
+
const headers = stripHopByHopHeaders(new Headers(payload.headers));
|
|
15276
|
+
// Node 根据实际目标与编码后的 body 生成传输头。
|
|
15277
|
+
headers.delete('host');
|
|
15278
|
+
headers.delete('content-length');
|
|
15279
|
+
const method = typeof payload.method === 'string' ? payload.method.toUpperCase() : 'GET';
|
|
15280
|
+
const body = encodeBody(method, payload.data, payload.bodyEncoding, headers);
|
|
15281
|
+
const timeout = typeof payload.timeout === 'number' && Number.isFinite(payload.timeout) && payload.timeout > 0 ? payload.timeout : 10_000;
|
|
15282
|
+
timer = setTimeout(abort, timeout);
|
|
15283
|
+
const upstream = await options.fetchImpl(url.href, {
|
|
15284
|
+
body,
|
|
15285
|
+
headers,
|
|
15286
|
+
method,
|
|
15287
|
+
redirect: 'manual',
|
|
15288
|
+
signal: controller.signal,
|
|
15289
|
+
});
|
|
15290
|
+
const text = await readResponseText(upstream);
|
|
15291
|
+
let data = text;
|
|
15292
|
+
try {
|
|
15293
|
+
data = JSON.parse(text);
|
|
15294
|
+
}
|
|
15295
|
+
catch {
|
|
15296
|
+
/* 与真机 Native transport 一致,非 JSON 响应保留原文。 */
|
|
15297
|
+
}
|
|
15298
|
+
const responseHeaders = stripHopByHopHeaders(upstream.headers);
|
|
15299
|
+
// fetch 已解压响应,原编码与长度不再描述返回的数据。
|
|
15300
|
+
responseHeaders.delete('content-encoding');
|
|
15301
|
+
responseHeaders.delete('content-length');
|
|
15302
|
+
writeResponse(response, 200, {
|
|
15303
|
+
data,
|
|
15304
|
+
headers: Object.fromEntries(responseHeaders),
|
|
15305
|
+
status: upstream.status,
|
|
15306
|
+
statusText: upstream.statusText,
|
|
15307
|
+
});
|
|
15308
|
+
}
|
|
15309
|
+
catch (error) {
|
|
15310
|
+
if (!response.destroyed) {
|
|
15311
|
+
writeResponse(response, readBrowserDevHostErrorStatus(error), toBrowserDevHostErrorPayload(error));
|
|
15312
|
+
}
|
|
15313
|
+
}
|
|
15314
|
+
finally {
|
|
15315
|
+
clearTimeout(timer);
|
|
15316
|
+
controllers.delete(controller);
|
|
15317
|
+
scope.signal.removeEventListener('abort', abort);
|
|
15318
|
+
scope.dispose();
|
|
15319
|
+
}
|
|
15320
|
+
return true;
|
|
15321
|
+
},
|
|
15322
|
+
close() {
|
|
15323
|
+
for (const controller of controllers)
|
|
15324
|
+
controller.abort();
|
|
15325
|
+
},
|
|
15326
|
+
};
|
|
15327
|
+
}
|
|
15328
|
+
function stripHopByHopHeaders(input) {
|
|
15329
|
+
const headers = new Headers(input);
|
|
15330
|
+
const connectionHeaders = headers
|
|
15331
|
+
.get('connection')
|
|
15332
|
+
?.split(',')
|
|
15333
|
+
.map((name) => name.trim()) ?? [];
|
|
15334
|
+
for (const name of [...HOP_BY_HOP_HEADERS, ...connectionHeaders]) {
|
|
15335
|
+
if (name)
|
|
15336
|
+
headers.delete(name);
|
|
15337
|
+
}
|
|
15338
|
+
return headers;
|
|
15339
|
+
}
|
|
15340
|
+
function encodeBody(method, data, encoding, headers) {
|
|
15341
|
+
if (data === undefined || method === 'GET' || method === 'HEAD')
|
|
15342
|
+
return undefined;
|
|
15343
|
+
if (typeof data === 'string')
|
|
15344
|
+
return data;
|
|
15345
|
+
if (encoding === 'form') {
|
|
15346
|
+
const pairs = [];
|
|
15347
|
+
const append = (key, value) => {
|
|
15348
|
+
if (value === undefined)
|
|
15349
|
+
return;
|
|
15350
|
+
if (Array.isArray(value))
|
|
15351
|
+
value.forEach((item) => append(key, item));
|
|
15352
|
+
else if (isRecord$2(value))
|
|
15353
|
+
Object.entries(value).forEach(([child, item]) => append(`${key}[${child}]`, item));
|
|
15354
|
+
else
|
|
15355
|
+
pairs.push([key, value === null ? '' : String(value)]);
|
|
15356
|
+
};
|
|
15357
|
+
if (isRecord$2(data) || Array.isArray(data))
|
|
15358
|
+
Object.entries(data).forEach(([key, value]) => append(key, value));
|
|
15359
|
+
if (!headers.has('content-type'))
|
|
15360
|
+
headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
|
|
15361
|
+
const encode = (value) => encodeURIComponent(value).replace(/[!'()*]/g, (character) => `%${character.charCodeAt(0).toString(16).toUpperCase()}`);
|
|
15362
|
+
return pairs.map(([key, value]) => `${encode(key)}=${encode(value)}`).join('&');
|
|
15363
|
+
}
|
|
15364
|
+
if (!headers.has('content-type'))
|
|
15365
|
+
headers.set('content-type', 'application/json');
|
|
15366
|
+
return JSON.stringify(data);
|
|
15367
|
+
}
|
|
15368
|
+
async function readResponseText(response) {
|
|
15369
|
+
if (!response.body)
|
|
15370
|
+
return '';
|
|
15371
|
+
const chunks = [];
|
|
15372
|
+
const reader = response.body.getReader();
|
|
15373
|
+
let size = 0;
|
|
15374
|
+
try {
|
|
15375
|
+
while (true) {
|
|
15376
|
+
const { done, value } = await reader.read();
|
|
15377
|
+
if (done)
|
|
15378
|
+
break;
|
|
15379
|
+
size += value.byteLength;
|
|
15380
|
+
if (size > MAX_RESPONSE_BYTES) {
|
|
15381
|
+
await reader.cancel();
|
|
15382
|
+
throw createBrowserDevHostError(502, 'RESPONSE_TOO_LARGE', '代理响应超过大小限制');
|
|
15383
|
+
}
|
|
15384
|
+
chunks.push(value);
|
|
15385
|
+
}
|
|
15386
|
+
return Buffer.concat(chunks).toString('utf8');
|
|
15387
|
+
}
|
|
15388
|
+
finally {
|
|
15389
|
+
reader.releaseLock();
|
|
15390
|
+
}
|
|
15391
|
+
}
|
|
15392
|
+
function writeResponse(response, status, body) {
|
|
15393
|
+
response.writeHead(status, {
|
|
15394
|
+
'access-control-allow-headers': 'content-type',
|
|
15395
|
+
'access-control-allow-methods': 'POST, OPTIONS',
|
|
15396
|
+
'access-control-allow-origin': '*',
|
|
15397
|
+
'access-control-allow-private-network': 'true',
|
|
15398
|
+
'cache-control': 'no-store',
|
|
15399
|
+
'content-type': 'application/json; charset=utf-8',
|
|
15400
|
+
});
|
|
15401
|
+
response.end(body === undefined ? '' : JSON.stringify(body));
|
|
15402
|
+
}
|
|
15403
|
+
|
|
15204
15404
|
const DEFAULT_APP_PORT = 5173;
|
|
15205
15405
|
const DEFAULT_BROWSER_DEV_HOST_PORT = 5174;
|
|
15206
15406
|
const DEFAULT_DEV_CONTEXT_TIMEOUT_MS = 3000;
|
|
@@ -15494,7 +15694,13 @@ async function runDevCommand(options, runtime = {}) {
|
|
|
15494
15694
|
runtimePermissions: launchRuntimePermissions,
|
|
15495
15695
|
sdkVersion: version.HB_SDK_VERSION,
|
|
15496
15696
|
});
|
|
15697
|
+
const networkProxy = createMiniProgramDevNetworkProxy({
|
|
15698
|
+
fetchImpl,
|
|
15699
|
+
readContextPath: () => devContextPath,
|
|
15700
|
+
});
|
|
15497
15701
|
const launchPlugin = createMiniProgramDevLaunchVitePlugin(readLaunchSource, async (request, response) => {
|
|
15702
|
+
if (await networkProxy.handle(request, response))
|
|
15703
|
+
return true;
|
|
15498
15704
|
if (request.url !== MINI_PROGRAM_DEV_LAUNCH_PATH || request.headers[COMPANION_ARTIFACT_ACCESS_TOKEN_HEADER] === undefined)
|
|
15499
15705
|
return false;
|
|
15500
15706
|
response.setHeader('Cache-Control', 'no-store');
|
|
@@ -15552,7 +15758,10 @@ async function runDevCommand(options, runtime = {}) {
|
|
|
15552
15758
|
viteNetworkUrls: appServer.resolvedUrls?.network ?? [],
|
|
15553
15759
|
});
|
|
15554
15760
|
const lanAddresses = buildLanAddresses();
|
|
15555
|
-
const closers = [
|
|
15761
|
+
const closers = [
|
|
15762
|
+
() => networkProxy.close(),
|
|
15763
|
+
() => appServer.close(),
|
|
15764
|
+
];
|
|
15556
15765
|
let browserDevHost;
|
|
15557
15766
|
try {
|
|
15558
15767
|
browserDevHost = await runDevStartupTask(logger, '正在启动浏览器调试页服务', () => startBrowserDevHostServer({
|
|
@@ -235,19 +235,19 @@ function requireArgument () {
|
|
|
235
235
|
|
|
236
236
|
var command = {};
|
|
237
237
|
|
|
238
|
-
const require$5 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-
|
|
238
|
+
const require$5 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-CYxcLlON.cjs', document.baseURI).href)));
|
|
239
239
|
function __require$4() { return require$5("node:events"); }
|
|
240
240
|
|
|
241
|
-
const require$4 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-
|
|
241
|
+
const require$4 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-CYxcLlON.cjs', document.baseURI).href)));
|
|
242
242
|
function __require$3() { return require$4("node:child_process"); }
|
|
243
243
|
|
|
244
|
-
const require$3 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-
|
|
244
|
+
const require$3 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-CYxcLlON.cjs', document.baseURI).href)));
|
|
245
245
|
function __require$2() { return require$3("node:path"); }
|
|
246
246
|
|
|
247
|
-
const require$2 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-
|
|
247
|
+
const require$2 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-CYxcLlON.cjs', document.baseURI).href)));
|
|
248
248
|
function __require$1() { return require$2("node:fs"); }
|
|
249
249
|
|
|
250
|
-
const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-
|
|
250
|
+
const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-CYxcLlON.cjs', document.baseURI).href)));
|
|
251
251
|
function __require() { return require$1("node:process"); }
|
|
252
252
|
|
|
253
253
|
var help = {};
|
|
@@ -13554,7 +13554,7 @@ function getPathname(pathWithQuery) {
|
|
|
13554
13554
|
}
|
|
13555
13555
|
|
|
13556
13556
|
const CLI_VERSION_PLACEHOLDER = ['__HB', 'SDK', 'CLI', 'VERSION__'].join('_');
|
|
13557
|
-
const BUILT_CLI_VERSION = '0.9.0-alpha.
|
|
13557
|
+
const BUILT_CLI_VERSION = '0.9.0-alpha.10';
|
|
13558
13558
|
const PACKAGE_JSON_CANDIDATES = [
|
|
13559
13559
|
path.resolve(__dirname, '..', '..', 'package.json'),
|
|
13560
13560
|
path.resolve(__dirname, '..', 'package.json'),
|
|
@@ -13913,39 +13913,39 @@ function createCommandLoggerResolver(options) {
|
|
|
13913
13913
|
};
|
|
13914
13914
|
}
|
|
13915
13915
|
const defaultClearLoginStatus = async (...args) => {
|
|
13916
|
-
const { clearLoginStatus } = await Promise.resolve().then(function () { return require('./login-
|
|
13916
|
+
const { clearLoginStatus } = await Promise.resolve().then(function () { return require('./login-BszmxuLI.cjs'); });
|
|
13917
13917
|
return clearLoginStatus(...args);
|
|
13918
13918
|
};
|
|
13919
13919
|
const defaultLoginToHeybox = async (...args) => {
|
|
13920
|
-
const { loginToHeybox } = await Promise.resolve().then(function () { return require('./login-
|
|
13920
|
+
const { loginToHeybox } = await Promise.resolve().then(function () { return require('./login-BszmxuLI.cjs'); });
|
|
13921
13921
|
return loginToHeybox(...args);
|
|
13922
13922
|
};
|
|
13923
13923
|
const defaultPrintLoginStatus = async (...args) => {
|
|
13924
|
-
const { printLoginStatus } = await Promise.resolve().then(function () { return require('./login-
|
|
13924
|
+
const { printLoginStatus } = await Promise.resolve().then(function () { return require('./login-BszmxuLI.cjs'); });
|
|
13925
13925
|
return printLoginStatus(...args);
|
|
13926
13926
|
};
|
|
13927
13927
|
const defaultRunBuildCommand = async (...args) => {
|
|
13928
|
-
const { runBuildCommand } = await Promise.resolve().then(function () { return require('./build-
|
|
13928
|
+
const { runBuildCommand } = await Promise.resolve().then(function () { return require('./build-CT6E9KRd.cjs'); });
|
|
13929
13929
|
return runBuildCommand(...args);
|
|
13930
13930
|
};
|
|
13931
13931
|
const defaultRunCreateCommand = async (...args) => {
|
|
13932
|
-
const { runCreateCommand } = await Promise.resolve().then(function () { return require('./create-
|
|
13932
|
+
const { runCreateCommand } = await Promise.resolve().then(function () { return require('./create-D6SiqyyQ.cjs'); });
|
|
13933
13933
|
return runCreateCommand(...args);
|
|
13934
13934
|
};
|
|
13935
13935
|
const defaultRunDevCommand = async (...args) => {
|
|
13936
|
-
const { runDevCommand } = await Promise.resolve().then(function () { return require('./dev-
|
|
13936
|
+
const { runDevCommand } = await Promise.resolve().then(function () { return require('./dev-CoWE5lyA.cjs'); }).then(function (n) { return n.dev; });
|
|
13937
13937
|
return runDevCommand(...args);
|
|
13938
13938
|
};
|
|
13939
13939
|
const defaultRunDoctorCommand = async (...args) => {
|
|
13940
|
-
const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-
|
|
13940
|
+
const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-IQ5wPkWD.cjs'); });
|
|
13941
13941
|
return runDoctorCommand(...args);
|
|
13942
13942
|
};
|
|
13943
13943
|
const defaultRunSkillInstallCommand = async (...args) => {
|
|
13944
|
-
const { runSkillInstallCommand } = await Promise.resolve().then(function () { return require('./skill-
|
|
13944
|
+
const { runSkillInstallCommand } = await Promise.resolve().then(function () { return require('./skill-NfC1c0iQ.cjs'); });
|
|
13945
13945
|
return runSkillInstallCommand(...args);
|
|
13946
13946
|
};
|
|
13947
13947
|
const defaultRunRemoteCommand = async (...args) => {
|
|
13948
|
-
const { runRemoteCommand } = await Promise.resolve().then(function () { return require('./remote-
|
|
13948
|
+
const { runRemoteCommand } = await Promise.resolve().then(function () { return require('./remote-2oOP8M5C.cjs'); });
|
|
13949
13949
|
return runRemoteCommand(...args);
|
|
13950
13950
|
};
|
|
13951
13951
|
function resolveStandaloneLogger(options, verbose) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index$2 = require('./index-
|
|
3
|
+
var index$2 = require('./index-CYxcLlON.cjs');
|
|
4
4
|
var require$$0$3 = require('fs');
|
|
5
5
|
var require$$0$2 = require('crypto');
|
|
6
6
|
var require$$1$2 = require('path');
|
|
7
7
|
var require$$0$5 = require('assert');
|
|
8
8
|
var require$$0$4 = require('events');
|
|
9
9
|
var require$$1$1 = require('util');
|
|
10
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
10
|
+
var runtimePermissionEnv = require('./runtime-permission-env-GH_vWEVx.cjs');
|
|
11
11
|
var require$$0$7 = require('net');
|
|
12
12
|
var require$$0$6 = require('url');
|
|
13
13
|
var require$$2$1 = require('http');
|