@heybox/hb-sdk 0.9.5-alpha.4 → 0.9.5
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 +19 -0
- package/README.md +14 -0
- package/dist/cli-chunks/{artifact-Ugqa6hRL.cjs → artifact-BQjpVazW.cjs} +3 -3
- package/dist/cli-chunks/{build-D_o_QRjp.cjs → build-Ds2vtEaS.cjs} +5 -5
- package/dist/cli-chunks/{create-C1D1kfK1.cjs → create-DSvHazlY.cjs} +1 -1
- package/dist/cli-chunks/{dev-BYJDJ6ke.cjs → dev-BUZaQAqF.cjs} +103 -94
- package/dist/cli-chunks/{dev-context-Dh5ZouxP.cjs → dev-context-iwZzKi8v.cjs} +2 -2
- package/dist/cli-chunks/{doctor-ScJqxOUG.cjs → doctor-DBHIFXJ_.cjs} +1 -1
- package/dist/cli-chunks/{games-DnIZgZPn.cjs → games-DJ8FFJEh.cjs} +1 -1
- package/dist/cli-chunks/{index-2pJPXX7y.cjs → index-CPdVzdQ4.cjs} +17 -17
- package/dist/cli-chunks/{index-CW36RfnA.cjs → index-DYmSgt-R.cjs} +1 -1
- package/dist/cli-chunks/{index.esm-DNEjZuBT.cjs → index.esm-BwPX3niz.cjs} +6 -6
- package/dist/cli-chunks/{login-BnnzOwbT.cjs → login-CVdgNJu0.cjs} +1 -1
- package/dist/cli-chunks/{project-vite-N357IKfz.cjs → project-vite-CRiHrfto.cjs} +1 -1
- package/dist/cli-chunks/{remote-CaHGCahf.cjs → remote-B_T2nCpI.cjs} +6 -6
- package/dist/cli-chunks/{runtime-permission-env-DidMNelj.cjs → runtime-permission-env-D3nbeD_M.cjs} +2 -2
- package/dist/cli-chunks/{skill-CRBhszbC.cjs → skill-BCUvQ_DM.cjs} +2 -2
- package/dist/cli-chunks/{version-BzAY2vKb.cjs → version-CYlLbj1-.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-xmiOis7_.js +103 -0
- package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-BaoJXhJT.js → desktop-app-launch-26ZdXlpU.js} +1 -1
- package/dist/devtools/browser-dev-host/assets/{index-D5U_vWLN.js → index-CnC8QCV1.js} +3 -3
- package/dist/devtools/browser-dev-host/index.html +2 -2
- package/dist/index.cjs.js +33 -3
- package/dist/index.esm.js +33 -4
- package/dist/protocol.cjs.js +33 -0
- package/dist/protocol.esm.js +31 -1
- package/dist/vite.cjs.js +1 -1
- package/dist/vite.esm.js +1 -1
- package/package.json +6 -6
- package/skill/skill.json +4 -4
- package/types/index.d.ts +67 -2
- package/types/protocol.d.ts +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-ChhgKXkj.js +0 -102
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
本文件随 `@heybox/hb-sdk` npm 包公开分发,只记录外部小程序开发者可观察到的变化。
|
|
4
4
|
|
|
5
|
+
## 0.9.5 - 2026-10-30
|
|
6
|
+
|
|
7
|
+
### 新增能力
|
|
8
|
+
|
|
9
|
+
- 新增 [user.getFollowStatus()](https://docs.xiaoheihe.cn/hb_sdk/reference/sdk/user/getFollowStatus.html) 与 [user.requestFollowAuthor()](https://docs.xiaoheihe.cn/hb_sdk/reference/sdk/user/requestFollowAuthor.html),支持查询和引导关注小程序作者;关注操作须在真实点击中直接调用,并配套更新 Host 与后端,旧 Runtime 可能返回 `METHOD_NOT_FOUND`。
|
|
10
|
+
- [hb-sdk dev](https://docs.xiaoheihe.cn/hb_sdk/guide/cli) 新增桌面预览,支持[窗口尺寸配置](https://docs.xiaoheihe.cn/hb_sdk/guide/window-size.html)、缩放、最大化和最小化;系统信息来自 CLI 本机,`viewport.setDisplay()` 暂不支持。
|
|
11
|
+
|
|
12
|
+
### 文档与工具
|
|
13
|
+
|
|
14
|
+
- [CLI 版本提醒](https://docs.xiaoheihe.cn/hb_sdk/guide/cli#%E7%89%88%E6%9C%AC%E6%8F%90%E9%86%92)支持展示已审核的重点更新,确认后不再展示该版本公告;非交互环境、CI 和 JSON 输出不展示。
|
|
15
|
+
- 随包 Agent Skill 补充[游戏存档](https://docs.xiaoheihe.cn/hb_sdk/guide/game-saves)接入与[更新提醒](https://docs.xiaoheihe.cn/hb_sdk/guide/update-notices)读取指引。
|
|
16
|
+
- 修正 [auth.getAccountState()](https://docs.xiaoheihe.cn/hb_sdk/reference/sdk/auth/getAccountState.html) 注释:Mobile 切换 APP 账号后需重新打开小程序。
|
|
17
|
+
|
|
18
|
+
## 0.9.5-alpha.5 - 2026-10-30
|
|
19
|
+
|
|
20
|
+
### 新增能力
|
|
21
|
+
|
|
22
|
+
- 新增 `user.getFollowStatus()` 与 `user.requestFollowAuthor()`,支持查询和引导关注当前小程序作者;使用方式见[关注小程序作者](https://docs.xiaoheihe.cn/hb_sdk/guide/auth#%E5%85%B3%E6%B3%A8%E5%B0%8F%E7%A8%8B%E5%BA%8F%E4%BD%9C%E8%80%85)。需要配套更新宿主与后端。本地调试台支持关注确认,并等待登录、确认交互完成。
|
|
23
|
+
|
|
5
24
|
## 0.9.5-alpha.4 - 2026-10-30
|
|
6
25
|
|
|
7
26
|
### 文档与工具
|
package/README.md
CHANGED
|
@@ -103,6 +103,20 @@ async function revokeAuthorizationFromUserAction() {
|
|
|
103
103
|
|
|
104
104
|
`user.revokeAuthorization()` 位于无需声明白名单,不接收小程序 ID、黑盒用户 ID 或手势参数。调用必须来自可信用户操作,否则返回 `USER_GESTURE_REQUIRED`。撤销成功后,后续身份或授权读取会重新进入授权流程;SDK 不会替业务清理已经持久化的数据。
|
|
105
105
|
|
|
106
|
+
在握手 ready 后,开发者可以通过按钮直接关注当前小程序作者:
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
import hbSDK, { AuthorFollowStatus } from '@heybox/hb-sdk';
|
|
110
|
+
|
|
111
|
+
async function onFollowAuthorClick() {
|
|
112
|
+
const status = await hbSDK.user.requestFollowAuthor();
|
|
113
|
+
if (status === AuthorFollowStatus.Self) return;
|
|
114
|
+
// status === AuthorFollowStatus.Following 时将按钮更新为“已关注”。失败时按 SDK 错误处理。
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
`user.requestFollowAuthor()` 不接收参数,不需要 `userInfo` 或 `network` 权限。它要求真实用户手势,由平台绑定作者;未登录时先登录,再展示宿主居中确认框。`user.getFollowStatus()` 可无手势查询 `notFollowing` / `following` / `self`,不登录、不弹框。已关注和作者本人直接返回;每天同账号同小程序最多领取 10 次引导额度(跨设备合计,北京时间自然日重置)。需要配套更新 Host,旧 Runtime 可能返回 `METHOD_NOT_FOUND`,缺少宿主能力时返回 `METHOD_FORBIDDEN`。完整说明见[关注小程序作者](https://docs.xiaoheihe.cn/hb_sdk/guide/auth#关注小程序作者)。
|
|
119
|
+
|
|
106
120
|
已有 Vite 项目先在 `package.json#heybox.platforms` 声明实际承诺适配的平台(下面是官方模板的起始默认,未适配的平台应删除):
|
|
107
121
|
|
|
108
122
|
```json
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
var fs = require('node:fs');
|
|
4
4
|
var fs$1 = require('node:fs/promises');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
7
|
-
require('./version-
|
|
8
|
-
var index = require('./index-
|
|
6
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D3nbeD_M.cjs');
|
|
7
|
+
require('./version-CYlLbj1-.cjs');
|
|
8
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
9
9
|
var node_crypto = require('node:crypto');
|
|
10
10
|
require('node:zlib');
|
|
11
11
|
require('node:module');
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
var fs = require('node:fs/promises');
|
|
4
4
|
var path = require('node:path');
|
|
5
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
6
|
-
var index = require('./index-
|
|
5
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D3nbeD_M.cjs');
|
|
6
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
7
7
|
require('node:crypto');
|
|
8
8
|
require('node:fs');
|
|
9
9
|
require('node:zlib');
|
|
10
|
-
var artifact = require('./artifact-
|
|
11
|
-
var projectVite = require('./project-vite-
|
|
12
|
-
require('./version-
|
|
10
|
+
var artifact = require('./artifact-BQjpVazW.cjs');
|
|
11
|
+
var projectVite = require('./project-vite-CRiHrfto.cjs');
|
|
12
|
+
require('./version-CYlLbj1-.cjs');
|
|
13
13
|
require('node:async_hooks');
|
|
14
14
|
require('node:module');
|
|
15
15
|
require('readline');
|
|
@@ -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-CPdVzdQ4.cjs');
|
|
9
9
|
require('node:module');
|
|
10
10
|
require('readline');
|
|
11
11
|
require('os');
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
4
4
|
var node_crypto = require('node:crypto');
|
|
5
5
|
var fs = require('node:fs');
|
|
6
6
|
var path = require('node:path');
|
|
7
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
8
|
-
var version = require('./version-
|
|
7
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D3nbeD_M.cjs');
|
|
8
|
+
var version = require('./version-CYlLbj1-.cjs');
|
|
9
9
|
require('node:zlib');
|
|
10
|
-
var devContext = require('./dev-context-
|
|
10
|
+
var devContext = require('./dev-context-iwZzKi8v.cjs');
|
|
11
11
|
var os = require('node:os');
|
|
12
12
|
var net = require('node:net');
|
|
13
13
|
var promises = require('node:dns/promises');
|
|
@@ -18,7 +18,7 @@ var fs$1 = require('node:fs/promises');
|
|
|
18
18
|
var require$$0$1 = require('crypto');
|
|
19
19
|
var require$$0 = require('buffer');
|
|
20
20
|
var browser = require('./browser-RAy8e8cV.cjs');
|
|
21
|
-
var projectVite = require('./project-vite-
|
|
21
|
+
var projectVite = require('./project-vite-CRiHrfto.cjs');
|
|
22
22
|
|
|
23
23
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
24
24
|
const DEFAULT_DEV_CONTEXT_TIMEOUT_MS = 3000;
|
|
@@ -3056,8 +3056,8 @@ const DEFAULT_CHANNEL_TRANSPORT = {
|
|
|
3056
3056
|
};
|
|
3057
3057
|
const IPV4_LOOPBACK_ADDRESSES = new net.BlockList();
|
|
3058
3058
|
IPV4_LOOPBACK_ADDRESSES.addSubnet('127.0.0.0', 8, 'ipv4');
|
|
3059
|
-
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-
|
|
3060
|
-
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-
|
|
3059
|
+
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-BUZaQAqF.cjs', document.baseURI).href)))('ws');
|
|
3060
|
+
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-BUZaQAqF.cjs', document.baseURI).href)))('parse5');
|
|
3061
3061
|
const BROWSER_DEV_HOST_ROOT_CANDIDATES = [
|
|
3062
3062
|
path.resolve(__dirname, 'devtools/browser-dev-host'),
|
|
3063
3063
|
path.resolve(__dirname, '../devtools/browser-dev-host'),
|
|
@@ -7462,8 +7462,16 @@ function createRuntimeRequest(options) {
|
|
|
7462
7462
|
observation.attemptCount = Math.max(observation.attemptCount, attempt + 1);
|
|
7463
7463
|
const policyResolvedConfig = await applyPolicy(config, attempt, channel, channelPolicy);
|
|
7464
7464
|
const authRequirement = normalizeAuthRequirement(policyResolvedConfig.auth);
|
|
7465
|
-
const
|
|
7466
|
-
|
|
7465
|
+
const authExecution = (await policy?.getAuthExecution?.({
|
|
7466
|
+
attempt,
|
|
7467
|
+
channel,
|
|
7468
|
+
config: { ...policyResolvedConfig, transport: policyResolvedConfig.transport ?? channelPolicy?.transport ?? defaultTransportId },
|
|
7469
|
+
ctx,
|
|
7470
|
+
})) ??
|
|
7471
|
+
policy?.authExecution ??
|
|
7472
|
+
'runtime';
|
|
7473
|
+
const hostAuth = authExecution === 'host';
|
|
7474
|
+
if (hostAuth && policy) {
|
|
7467
7475
|
assertHostAuthRequirement(ctx, policy, policyResolvedConfig.auth);
|
|
7468
7476
|
}
|
|
7469
7477
|
const requestAuth = hostAuth ? undefined : resolveRequestAuth(ctx, authRequirement);
|
|
@@ -12216,7 +12224,7 @@ function assertNodeRuntimeCapabilities(ctx, settings) {
|
|
|
12216
12224
|
function createNodeRealtimeDriverRegistry() {
|
|
12217
12225
|
const registry = createRuntimeRealtimeDriverRegistry();
|
|
12218
12226
|
registry.registerLazy('node-websocket', async () => {
|
|
12219
|
-
const mod = await Promise.resolve().then(function () { return require('./index.esm-
|
|
12227
|
+
const mod = await Promise.resolve().then(function () { return require('./index.esm-BwPX3niz.cjs'); });
|
|
12220
12228
|
return mod.createNodeWebSocketRuntimeDriver();
|
|
12221
12229
|
});
|
|
12222
12230
|
return registry;
|
|
@@ -15397,6 +15405,91 @@ function applyRuntimeRequestTargetPolicy(policy, input) {
|
|
|
15397
15405
|
};
|
|
15398
15406
|
}
|
|
15399
15407
|
|
|
15408
|
+
/**
|
|
15409
|
+
* 显式控制 Heybox Web V4 请求签名的 metadata key。
|
|
15410
|
+
* 设置为 false 时跳过签名,主要用于第三方或已预签名请求。
|
|
15411
|
+
*/
|
|
15412
|
+
const HEYBOX_WEB_V4_SIGNING_METADATA_KEY = 'heyboxWebV4Signing';
|
|
15413
|
+
/**
|
|
15414
|
+
* 判断绝对 URL 是否指向允许携带 Heybox Web V4 签名的第一方域名。
|
|
15415
|
+
*
|
|
15416
|
+
* @param value - 待判断的绝对 URL。
|
|
15417
|
+
*/
|
|
15418
|
+
function isHeyboxFirstPartyURL(value) {
|
|
15419
|
+
try {
|
|
15420
|
+
const hostname = new URL(value, 'https://runtime.xiaoheihe.cn').hostname.toLowerCase();
|
|
15421
|
+
return /(^|\.)(xiaoheihe\.cn|maxjia\.com|debugmode\.cn)$/.test(hostname);
|
|
15422
|
+
}
|
|
15423
|
+
catch {
|
|
15424
|
+
return false;
|
|
15425
|
+
}
|
|
15426
|
+
}
|
|
15427
|
+
/**
|
|
15428
|
+
* 判断请求地址是否包含独立 origin,包括协议相对 URL。
|
|
15429
|
+
*
|
|
15430
|
+
* @param value - 待判断的请求地址。
|
|
15431
|
+
*/
|
|
15432
|
+
function isAbsoluteRequestURL(value) {
|
|
15433
|
+
return /^[a-z][a-z\d+\-.]*:/i.test(value) || value.startsWith('//');
|
|
15434
|
+
}
|
|
15435
|
+
/**
|
|
15436
|
+
* 判断当前请求是否应由 Runtime 自动补充 Heybox Web V4 签名。
|
|
15437
|
+
*
|
|
15438
|
+
* @param config - 已合并 policy、channel 和业务参数的请求配置。
|
|
15439
|
+
*/
|
|
15440
|
+
function shouldSignHeyboxWebV4Request(config) {
|
|
15441
|
+
if (config.metadata?.[HEYBOX_WEB_V4_SIGNING_METADATA_KEY] === false) {
|
|
15442
|
+
return false;
|
|
15443
|
+
}
|
|
15444
|
+
if (isAbsoluteRequestURL(config.url)) {
|
|
15445
|
+
return isHeyboxFirstPartyURL(config.url);
|
|
15446
|
+
}
|
|
15447
|
+
if (config.baseURL && isAbsoluteRequestURL(config.baseURL)) {
|
|
15448
|
+
return isHeyboxFirstPartyURL(config.baseURL);
|
|
15449
|
+
}
|
|
15450
|
+
return true;
|
|
15451
|
+
}
|
|
15452
|
+
/**
|
|
15453
|
+
* 在 transport 发送前使用服务端实际 pathname 生成 Heybox Web V4 签名。
|
|
15454
|
+
*
|
|
15455
|
+
* @param config - 已完成 query 合并的请求配置。
|
|
15456
|
+
*/
|
|
15457
|
+
function applyHeyboxWebV4Signing(config) {
|
|
15458
|
+
if (!shouldSignHeyboxWebV4Request(config)) {
|
|
15459
|
+
return config;
|
|
15460
|
+
}
|
|
15461
|
+
const pathname = stripRuntimeRequestTargetDevPrefix(normalizeHeyboxWebV4Pathname(config.url));
|
|
15462
|
+
return {
|
|
15463
|
+
...config,
|
|
15464
|
+
query: {
|
|
15465
|
+
...config.query,
|
|
15466
|
+
...createHeyboxWebV4Params(pathname),
|
|
15467
|
+
},
|
|
15468
|
+
};
|
|
15469
|
+
}
|
|
15470
|
+
/**
|
|
15471
|
+
* 在 Web V4 参数生成后追加可选的 RND 15 签名。
|
|
15472
|
+
*
|
|
15473
|
+
* @param config - 已完成 Web V4 签名的请求配置。
|
|
15474
|
+
*/
|
|
15475
|
+
function applyHeyboxRND15Signing(config) {
|
|
15476
|
+
if (config.security?.rnd !== '15') {
|
|
15477
|
+
return config;
|
|
15478
|
+
}
|
|
15479
|
+
const nonce = config.query?.nonce;
|
|
15480
|
+
const time = config.query?._time;
|
|
15481
|
+
if (typeof nonce !== 'string' || (typeof time !== 'string' && typeof time !== 'number')) {
|
|
15482
|
+
return config;
|
|
15483
|
+
}
|
|
15484
|
+
return {
|
|
15485
|
+
...config,
|
|
15486
|
+
query: {
|
|
15487
|
+
...config.query,
|
|
15488
|
+
_rnd: `15:${createHeyboxRND15Signature(nonce, `${time}:${nonce}`)}`,
|
|
15489
|
+
},
|
|
15490
|
+
};
|
|
15491
|
+
}
|
|
15492
|
+
|
|
15400
15493
|
/**
|
|
15401
15494
|
* @packageDocumentation
|
|
15402
15495
|
* 定义 Heybox 多产品、多容器的 runtime 策略集合。
|
|
@@ -15443,11 +15536,6 @@ const HEYBOX_REQUEST_SKIP_RECALL_METADATA_KEY = 'heyboxRequestSkipRecall';
|
|
|
15443
15536
|
* 标记 Heybox request recall 已尝试过的 metadata key。
|
|
15444
15537
|
*/
|
|
15445
15538
|
const HEYBOX_REQUEST_RECALL_ATTEMPTED_METADATA_KEY = 'heyboxRequestRecallAttempted';
|
|
15446
|
-
/**
|
|
15447
|
-
* 显式控制 Heybox Web V4 请求签名的 metadata key。
|
|
15448
|
-
* 设置为 false 时跳过签名,主要用于第三方或已预签名请求。
|
|
15449
|
-
*/
|
|
15450
|
-
const HEYBOX_WEB_V4_SIGNING_METADATA_KEY = 'heyboxWebV4Signing';
|
|
15451
15539
|
/**
|
|
15452
15540
|
* 需要触发认证或实名流程的 Heybox 业务状态。
|
|
15453
15541
|
*/
|
|
@@ -15752,63 +15840,6 @@ const heyboxWechatAppInvokeOptions = {
|
|
|
15752
15840
|
function createHeyboxWechatBrowserBridgePolicy() {
|
|
15753
15841
|
return createBrowserBridgePolicy('heybox://', heyboxWechatAppInvokeOptions);
|
|
15754
15842
|
}
|
|
15755
|
-
/**
|
|
15756
|
-
* 判断绝对 URL 是否指向允许携带 Heybox Web V4 签名的第一方域名。
|
|
15757
|
-
*
|
|
15758
|
-
* @param value - 待判断的绝对 URL。
|
|
15759
|
-
*/
|
|
15760
|
-
function isHeyboxFirstPartyURL(value) {
|
|
15761
|
-
try {
|
|
15762
|
-
const hostname = new URL(value, 'https://runtime.xiaoheihe.cn').hostname.toLowerCase();
|
|
15763
|
-
return /(^|\.)(xiaoheihe\.cn|maxjia\.com|debugmode\.cn)$/.test(hostname);
|
|
15764
|
-
}
|
|
15765
|
-
catch {
|
|
15766
|
-
return false;
|
|
15767
|
-
}
|
|
15768
|
-
}
|
|
15769
|
-
/**
|
|
15770
|
-
* 判断请求地址是否包含独立 origin,包括协议相对 URL。
|
|
15771
|
-
*
|
|
15772
|
-
* @param value - 待判断的请求地址。
|
|
15773
|
-
*/
|
|
15774
|
-
function isAbsoluteRequestURL(value) {
|
|
15775
|
-
return /^[a-z][a-z\d+\-.]*:/i.test(value) || value.startsWith('//');
|
|
15776
|
-
}
|
|
15777
|
-
/**
|
|
15778
|
-
* 判断当前请求是否应由 Runtime 自动补充 Heybox Web V4 签名。
|
|
15779
|
-
*
|
|
15780
|
-
* @param config - 已合并 policy、channel 和业务参数的请求配置。
|
|
15781
|
-
*/
|
|
15782
|
-
function shouldSignHeyboxWebV4Request(config) {
|
|
15783
|
-
if (config.metadata?.[HEYBOX_WEB_V4_SIGNING_METADATA_KEY] === false) {
|
|
15784
|
-
return false;
|
|
15785
|
-
}
|
|
15786
|
-
if (isAbsoluteRequestURL(config.url)) {
|
|
15787
|
-
return isHeyboxFirstPartyURL(config.url);
|
|
15788
|
-
}
|
|
15789
|
-
if (config.baseURL && isAbsoluteRequestURL(config.baseURL)) {
|
|
15790
|
-
return isHeyboxFirstPartyURL(config.baseURL);
|
|
15791
|
-
}
|
|
15792
|
-
return true;
|
|
15793
|
-
}
|
|
15794
|
-
/**
|
|
15795
|
-
* 在 transport 发送前使用服务端实际 pathname 生成 Heybox Web V4 签名。
|
|
15796
|
-
*
|
|
15797
|
-
* @param config - 已完成 query 合并的请求配置。
|
|
15798
|
-
*/
|
|
15799
|
-
function applyHeyboxWebV4Signing(config) {
|
|
15800
|
-
if (!shouldSignHeyboxWebV4Request(config)) {
|
|
15801
|
-
return config;
|
|
15802
|
-
}
|
|
15803
|
-
const pathname = stripRuntimeRequestTargetDevPrefix(normalizeHeyboxWebV4Pathname(config.url));
|
|
15804
|
-
return {
|
|
15805
|
-
...config,
|
|
15806
|
-
query: {
|
|
15807
|
-
...config.query,
|
|
15808
|
-
...createHeyboxWebV4Params(pathname),
|
|
15809
|
-
},
|
|
15810
|
-
};
|
|
15811
|
-
}
|
|
15812
15843
|
/**
|
|
15813
15844
|
* 根据显式 Content-Type 推断旧 Web 请求体编码方式。
|
|
15814
15845
|
*
|
|
@@ -15843,28 +15874,6 @@ function applyHeyboxLegacyWebDefaults(config) {
|
|
|
15843
15874
|
queryEncoding: config.queryEncoding ?? 'axios-compatible',
|
|
15844
15875
|
};
|
|
15845
15876
|
}
|
|
15846
|
-
/**
|
|
15847
|
-
* 在 Web V4 参数生成后追加可选的 RND 15 签名。
|
|
15848
|
-
*
|
|
15849
|
-
* @param config - 已完成 Web V4 签名的请求配置。
|
|
15850
|
-
*/
|
|
15851
|
-
function applyHeyboxRND15Signing(config) {
|
|
15852
|
-
if (config.security?.rnd !== '15') {
|
|
15853
|
-
return config;
|
|
15854
|
-
}
|
|
15855
|
-
const nonce = config.query?.nonce;
|
|
15856
|
-
const time = config.query?._time;
|
|
15857
|
-
if (typeof nonce !== 'string' || (typeof time !== 'string' && typeof time !== 'number')) {
|
|
15858
|
-
return config;
|
|
15859
|
-
}
|
|
15860
|
-
return {
|
|
15861
|
-
...config,
|
|
15862
|
-
query: {
|
|
15863
|
-
...config.query,
|
|
15864
|
-
_rnd: `15:${createHeyboxRND15Signature(nonce, `${time}:${nonce}`)}`,
|
|
15865
|
-
},
|
|
15866
|
-
};
|
|
15867
|
-
}
|
|
15868
15877
|
/**
|
|
15869
15878
|
* 应用 Heybox 浏览器请求默认值、安全签名和最终发送配置。
|
|
15870
15879
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
3
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
4
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D3nbeD_M.cjs');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
6
|
var fs = require('node:fs/promises');
|
|
7
7
|
var path = require('node:path');
|
|
@@ -3,7 +3,7 @@
|
|
|
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 index = require('./index-
|
|
6
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
7
7
|
require('node:module');
|
|
8
8
|
require('readline');
|
|
9
9
|
require('os');
|
|
@@ -240,19 +240,19 @@ function requireArgument () {
|
|
|
240
240
|
|
|
241
241
|
var command = {};
|
|
242
242
|
|
|
243
|
-
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-
|
|
243
|
+
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-CPdVzdQ4.cjs', document.baseURI).href)));
|
|
244
244
|
function __require$4() { return require$5("node:events"); }
|
|
245
245
|
|
|
246
|
-
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-
|
|
246
|
+
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-CPdVzdQ4.cjs', document.baseURI).href)));
|
|
247
247
|
function __require$3() { return require$4("node:child_process"); }
|
|
248
248
|
|
|
249
|
-
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-
|
|
249
|
+
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-CPdVzdQ4.cjs', document.baseURI).href)));
|
|
250
250
|
function __require$2() { return require$3("node:path"); }
|
|
251
251
|
|
|
252
|
-
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-
|
|
252
|
+
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-CPdVzdQ4.cjs', document.baseURI).href)));
|
|
253
253
|
function __require$1() { return require$2("node:fs"); }
|
|
254
254
|
|
|
255
|
-
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-
|
|
255
|
+
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-CPdVzdQ4.cjs', document.baseURI).href)));
|
|
256
256
|
function __require() { return require$1("node:process"); }
|
|
257
257
|
|
|
258
258
|
var help = {};
|
|
@@ -17251,7 +17251,7 @@ async function inspectFeedbackLog(file, size) {
|
|
|
17251
17251
|
return { mimeType: 'text/plain', width: 0, height: 0 };
|
|
17252
17252
|
}
|
|
17253
17253
|
async function createFeedbackCosClient(getToken) {
|
|
17254
|
-
const { default: COS } = await Promise.resolve().then(function () { return require('./index-
|
|
17254
|
+
const { default: COS } = await Promise.resolve().then(function () { return require('./index-DYmSgt-R.cjs'); }).then(function (n) { return n.index; });
|
|
17255
17255
|
const cos = new COS({
|
|
17256
17256
|
getAuthorization(_options, callback) {
|
|
17257
17257
|
void getToken().then((token) => callback({
|
|
@@ -20452,7 +20452,7 @@ function installDevLogCommands(dev) {
|
|
|
20452
20452
|
}
|
|
20453
20453
|
|
|
20454
20454
|
const CLI_VERSION_PLACEHOLDER = ['__HB', 'SDK', 'CLI', 'VERSION__'].join('_');
|
|
20455
|
-
const BUILT_CLI_VERSION = '0.9.5
|
|
20455
|
+
const BUILT_CLI_VERSION = '0.9.5';
|
|
20456
20456
|
const PACKAGE_JSON_CANDIDATES$1 = [
|
|
20457
20457
|
path.resolve(__dirname, '..', '..', 'package.json'),
|
|
20458
20458
|
path.resolve(__dirname, '..', 'package.json'),
|
|
@@ -21717,39 +21717,39 @@ function createCommandLoggerResolver(options) {
|
|
|
21717
21717
|
};
|
|
21718
21718
|
}
|
|
21719
21719
|
const defaultClearLoginStatus = async (...args) => {
|
|
21720
|
-
const { clearLoginStatus } = await Promise.resolve().then(function () { return require('./login-
|
|
21720
|
+
const { clearLoginStatus } = await Promise.resolve().then(function () { return require('./login-CVdgNJu0.cjs'); });
|
|
21721
21721
|
return clearLoginStatus(...args);
|
|
21722
21722
|
};
|
|
21723
21723
|
const defaultLoginToHeybox = async (...args) => {
|
|
21724
|
-
const { loginToHeybox } = await Promise.resolve().then(function () { return require('./login-
|
|
21724
|
+
const { loginToHeybox } = await Promise.resolve().then(function () { return require('./login-CVdgNJu0.cjs'); });
|
|
21725
21725
|
return loginToHeybox(...args);
|
|
21726
21726
|
};
|
|
21727
21727
|
const defaultPrintLoginStatus = async (...args) => {
|
|
21728
|
-
const { printLoginStatus } = await Promise.resolve().then(function () { return require('./login-
|
|
21728
|
+
const { printLoginStatus } = await Promise.resolve().then(function () { return require('./login-CVdgNJu0.cjs'); });
|
|
21729
21729
|
return printLoginStatus(...args);
|
|
21730
21730
|
};
|
|
21731
21731
|
const defaultRunBuildCommand = async (...args) => {
|
|
21732
|
-
const { runBuildCommand } = await Promise.resolve().then(function () { return require('./build-
|
|
21732
|
+
const { runBuildCommand } = await Promise.resolve().then(function () { return require('./build-Ds2vtEaS.cjs'); });
|
|
21733
21733
|
return runBuildCommand(...args);
|
|
21734
21734
|
};
|
|
21735
21735
|
const defaultRunCreateCommand = async (...args) => {
|
|
21736
|
-
const { runCreateCommand } = await Promise.resolve().then(function () { return require('./create-
|
|
21736
|
+
const { runCreateCommand } = await Promise.resolve().then(function () { return require('./create-DSvHazlY.cjs'); });
|
|
21737
21737
|
return runCreateCommand(...args);
|
|
21738
21738
|
};
|
|
21739
21739
|
const defaultRunDevCommand = async (...args) => {
|
|
21740
|
-
const { runDevCommand } = await Promise.resolve().then(function () { return require('./dev-
|
|
21740
|
+
const { runDevCommand } = await Promise.resolve().then(function () { return require('./dev-BUZaQAqF.cjs'); }).then(function (n) { return n.dev; });
|
|
21741
21741
|
return runDevCommand(...args);
|
|
21742
21742
|
};
|
|
21743
21743
|
const defaultRunDoctorCommand = async (...args) => {
|
|
21744
|
-
const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-
|
|
21744
|
+
const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-DBHIFXJ_.cjs'); });
|
|
21745
21745
|
return runDoctorCommand(...args);
|
|
21746
21746
|
};
|
|
21747
21747
|
const defaultRunSkillInstallCommand = async (...args) => {
|
|
21748
|
-
const { runSkillInstallCommand } = await Promise.resolve().then(function () { return require('./skill-
|
|
21748
|
+
const { runSkillInstallCommand } = await Promise.resolve().then(function () { return require('./skill-BCUvQ_DM.cjs'); });
|
|
21749
21749
|
return runSkillInstallCommand(...args);
|
|
21750
21750
|
};
|
|
21751
21751
|
const defaultRunRemoteCommand = async (...args) => {
|
|
21752
|
-
const { runRemoteCommand } = await Promise.resolve().then(function () { return require('./remote-
|
|
21752
|
+
const { runRemoteCommand } = await Promise.resolve().then(function () { return require('./remote-B_T2nCpI.cjs'); });
|
|
21753
21753
|
return runRemoteCommand(...args);
|
|
21754
21754
|
};
|
|
21755
21755
|
function resolveStandaloneLogger(options, verbose) {
|
|
@@ -21841,7 +21841,7 @@ function parseNonNegativeInteger(value) {
|
|
|
21841
21841
|
return parsed;
|
|
21842
21842
|
}
|
|
21843
21843
|
const defaultRunGameSearchCommand = async (...args) => {
|
|
21844
|
-
const { runGameSearchCommand } = await Promise.resolve().then(function () { return require('./games-
|
|
21844
|
+
const { runGameSearchCommand } = await Promise.resolve().then(function () { return require('./games-DJ8FFJEh.cjs'); });
|
|
21845
21845
|
return runGameSearchCommand(...args);
|
|
21846
21846
|
};
|
|
21847
21847
|
|
|
@@ -11,8 +11,8 @@ var require$$0$3 = require('url');
|
|
|
11
11
|
var require$$5 = require('zlib');
|
|
12
12
|
var require$$0 = require('buffer');
|
|
13
13
|
var require$$1 = require('util');
|
|
14
|
-
var index = require('./index-
|
|
15
|
-
var dev = require('./dev-
|
|
14
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
15
|
+
var dev = require('./dev-BUZaQAqF.cjs');
|
|
16
16
|
require('node:module');
|
|
17
17
|
require('readline');
|
|
18
18
|
require('os');
|
|
@@ -28,10 +28,10 @@ require('node:fs/promises');
|
|
|
28
28
|
require('node:zlib');
|
|
29
29
|
require('node:readline/promises');
|
|
30
30
|
require('node:timers/promises');
|
|
31
|
-
require('./runtime-permission-env-
|
|
32
|
-
require('./version-
|
|
31
|
+
require('./runtime-permission-env-D3nbeD_M.cjs');
|
|
32
|
+
require('./version-CYlLbj1-.cjs');
|
|
33
33
|
require('node:async_hooks');
|
|
34
|
-
require('./dev-context-
|
|
34
|
+
require('./dev-context-iwZzKi8v.cjs');
|
|
35
35
|
require('sharp');
|
|
36
36
|
require('node:os');
|
|
37
37
|
require('node:net');
|
|
@@ -44,7 +44,7 @@ require('node:buffer');
|
|
|
44
44
|
require('node:url');
|
|
45
45
|
require('node:util');
|
|
46
46
|
require('node:child_process');
|
|
47
|
-
require('./project-vite-
|
|
47
|
+
require('./project-vite-CRiHrfto.cjs');
|
|
48
48
|
|
|
49
49
|
var bufferUtil = {exports: {}};
|
|
50
50
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var promises = require('node:readline/promises');
|
|
4
4
|
var node_crypto = require('node:crypto');
|
|
5
5
|
var node_http = require('node:http');
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
7
7
|
var browser = require('./browser-RAy8e8cV.cjs');
|
|
8
8
|
require('node:module');
|
|
9
9
|
require('readline');
|
|
@@ -5,7 +5,7 @@ var fs$1 = require('node:fs/promises');
|
|
|
5
5
|
var node_module = require('node:module');
|
|
6
6
|
var path = require('node:path');
|
|
7
7
|
var node_url = require('node:url');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
9
9
|
|
|
10
10
|
function findProjectRoot(startDir) {
|
|
11
11
|
let current = path.resolve(startDir);
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
4
|
-
var devContext = require('./dev-context-
|
|
3
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D3nbeD_M.cjs');
|
|
4
|
+
var devContext = require('./dev-context-iwZzKi8v.cjs');
|
|
5
5
|
var promises = require('node:readline/promises');
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
7
7
|
var childProcess = require('node:child_process');
|
|
8
8
|
var fs = require('node:fs');
|
|
9
9
|
var fs$1 = require('node:fs/promises');
|
|
10
10
|
var path = require('node:path');
|
|
11
11
|
var node_crypto = require('node:crypto');
|
|
12
12
|
require('node:zlib');
|
|
13
|
-
var artifact = require('./artifact-
|
|
14
|
-
require('./version-
|
|
13
|
+
var artifact = require('./artifact-BQjpVazW.cjs');
|
|
14
|
+
require('./version-CYlLbj1-.cjs');
|
|
15
15
|
require('node:async_hooks');
|
|
16
16
|
require('sharp');
|
|
17
17
|
require('node:module');
|
|
@@ -308,7 +308,7 @@ function createDefaultCosClient(uploadToken, COS) {
|
|
|
308
308
|
};
|
|
309
309
|
}
|
|
310
310
|
async function loadCosConstructor() {
|
|
311
|
-
const cosModule = await Promise.resolve().then(function () { return require('./index-
|
|
311
|
+
const cosModule = await Promise.resolve().then(function () { return require('./index-DYmSgt-R.cjs'); }).then(function (n) { return n.index; });
|
|
312
312
|
return cosModule.default;
|
|
313
313
|
}
|
|
314
314
|
function formatSize(bytes) {
|
package/dist/cli-chunks/{runtime-permission-env-DidMNelj.cjs → runtime-permission-env-D3nbeD_M.cjs}
RENAMED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var fs = require('node:fs');
|
|
4
4
|
var path = require('node:path');
|
|
5
|
-
var version$1 = require('./version-
|
|
5
|
+
var version$1 = require('./version-CYlLbj1-.cjs');
|
|
6
6
|
require('node:crypto');
|
|
7
|
-
var index = require('./index-
|
|
7
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
8
8
|
var node_async_hooks = require('node:async_hooks');
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var version = require('./version-
|
|
3
|
+
var version = require('./version-CYlLbj1-.cjs');
|
|
4
4
|
var fs = require('node:fs/promises');
|
|
5
5
|
var path = require('node:path');
|
|
6
6
|
var childProcess = require('node:child_process');
|
|
7
|
-
var index = require('./index-
|
|
7
|
+
var index = require('./index-CPdVzdQ4.cjs');
|
|
8
8
|
require('node:module');
|
|
9
9
|
require('readline');
|
|
10
10
|
require('os');
|