@heybox/hb-sdk 0.7.0-alpha.1 → 0.7.0-alpha.3
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 +34 -0
- package/dist/cli-chunks/{build-CWBksuZX.cjs → build-DTU4TgMT.cjs} +4 -4
- package/dist/cli-chunks/{context-B3_TJIaj.cjs → context-Bx4aT-NN.cjs} +15 -2
- package/dist/cli-chunks/{create-BdDwp1Qx.cjs → create-D9Nls0P8.cjs} +1 -1
- package/dist/cli-chunks/{dev-PCY_9q8y.cjs → dev-DKrRVtVi.cjs} +162 -10
- package/dist/cli-chunks/{doctor-DzEMXA58.cjs → doctor-DM5_TKLh.cjs} +1 -1
- package/dist/cli-chunks/{index-CjT2V5RD.cjs → index-DRee9Dhy.cjs} +14 -14
- package/dist/cli-chunks/{index-DmgF1ROG.cjs → index-doiKZGkJ.cjs} +2 -2
- package/dist/cli-chunks/{login-D775i7Ub.cjs → login-C6Pgq394.cjs} +2 -2
- package/dist/cli-chunks/{project-vite-ty-N0y8F.cjs → project-vite-DwhS4B4Z.cjs} +1 -1
- package/dist/cli-chunks/{remote-3Zmtshjq.cjs → remote-CdH6zSbP.cjs} +6 -6
- package/dist/cli-chunks/{runtime-gate-BWlU-R4h.cjs → runtime-gate-CtV7rWyX.cjs} +1 -1
- package/dist/cli-chunks/{runtime-permission-env-DKrhgVM3.cjs → runtime-permission-env-D-8_jPG3.cjs} +2 -0
- package/dist/cli-chunks/{session-piLyMOuV.cjs → session-Bem7bONz.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/mock-host/main.js +47 -4
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/miniapp-publish.cjs.js +2 -0
- package/dist/miniapp-publish.esm.js +2 -1
- package/dist/vite.cjs.js +1 -1
- package/dist/vite.esm.js +1 -1
- package/package.json +2 -2
- package/skill/references/api-root.md +1 -1
- package/skill/skill.json +4 -4
- package/types/miniapp-publish/index.d.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.7.0-alpha.3
|
|
4
|
+
|
|
5
|
+
### SDK
|
|
6
|
+
|
|
7
|
+
- 收紧生产开发地址确认边界.
|
|
8
|
+
- 统一小程序宿主运行时安全策略.
|
|
9
|
+
|
|
10
|
+
### Runtime
|
|
11
|
+
|
|
12
|
+
- 导出 URL 判定工具并接线截图 chrome 隐藏 (@heybox/hb-sdk-runtime).
|
|
13
|
+
- 收口用户授权编排到 Runtime adapter (@heybox/hb-sdk-runtime).
|
|
14
|
+
- 切断 legacy 依赖并收口 Host Runtime 边界 (@heybox/hb-sdk-runtime).
|
|
15
|
+
- 收口生产启动解析与请求装配 (@heybox/hb-sdk-runtime).
|
|
16
|
+
- 补强生产启动配置矩阵 (@heybox/hb-sdk-runtime).
|
|
17
|
+
- 统一生产入口到 Core Runtime (@heybox/hb-sdk-runtime).
|
|
18
|
+
- 增加 Runtime-first 生产 Host 入口 (@heybox/hb-sdk-runtime).
|
|
19
|
+
- 严格校验平台适配器输入 (@heybox/hb-sdk-runtime).
|
|
20
|
+
- 移除能力目录重复枚举 (@heybox/hb-sdk-runtime).
|
|
21
|
+
- 统一 Host 核心状态机与协议实现 (@heybox/hb-sdk-runtime).
|
|
22
|
+
- 完善生产启动矩阵契约 (@heybox/hb-sdk-runtime).
|
|
23
|
+
- 补充 Host URL 脱敏契约 (@heybox/hb-sdk-runtime).
|
|
24
|
+
- 补强 Host 迁移安全契约 (@heybox/hb-sdk-runtime).
|
|
25
|
+
- 固化生产 Host 迁移契约 (@heybox/hb-sdk-runtime).
|
|
26
|
+
|
|
27
|
+
## 0.7.0-alpha.2
|
|
28
|
+
|
|
29
|
+
### CLI
|
|
30
|
+
|
|
31
|
+
- `hb-sdk dev` 绑定远端小程序后签发并轮换 local_dev 启动票,把独立的 `preview_token` 写入扫码 URL,供 Host 兑换 unpublished 公开详情。
|
|
32
|
+
|
|
33
|
+
### Runtime
|
|
34
|
+
|
|
35
|
+
- 允许的 `mini_url` 调试入口会绑定 Host 上的 `mini_program_id`;公开详情对 unpublished 失败时也不丢这个身份。
|
|
36
|
+
|
|
3
37
|
## 0.7.0-alpha.1
|
|
4
38
|
|
|
5
39
|
### Docs / Agent Skill
|
|
@@ -3,10 +3,10 @@
|
|
|
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-
|
|
7
|
-
var runtimeGate = require('./runtime-gate-
|
|
8
|
-
var index = require('./index-
|
|
9
|
-
var projectVite = require('./project-vite-
|
|
6
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D-8_jPG3.cjs');
|
|
7
|
+
var runtimeGate = require('./runtime-gate-CtV7rWyX.cjs');
|
|
8
|
+
var index = require('./index-DRee9Dhy.cjs');
|
|
9
|
+
var projectVite = require('./project-vite-DwhS4B4Z.cjs');
|
|
10
10
|
require('node:async_hooks');
|
|
11
11
|
require('node:module');
|
|
12
12
|
require('path');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var session = require('./session-
|
|
4
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
3
|
+
var session = require('./session-Bem7bONz.cjs');
|
|
4
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D-8_jPG3.cjs');
|
|
5
5
|
var fs$1 = require('node:fs');
|
|
6
6
|
var fs = require('node:fs/promises');
|
|
7
7
|
var path = require('node:path');
|
|
@@ -109,6 +109,7 @@ function createRemoteApiClient(options) {
|
|
|
109
109
|
listUserMiniprograms: (requestOptions = {}) => listUserMiniprograms(requestOptions, options),
|
|
110
110
|
createUserMiniprogram: () => createUserMiniprogram(options),
|
|
111
111
|
getUserMiniprogramDetail: (requestOptions) => getUserMiniprogramDetail(requestOptions, options),
|
|
112
|
+
createLocalDevLaunchToken: (requestOptions) => createLocalDevLaunchToken$1(requestOptions, options),
|
|
112
113
|
getPreviewAllowlist: (requestOptions) => getPreviewAllowlist(requestOptions, options),
|
|
113
114
|
updatePreviewAllowlist: (requestOptions) => updatePreviewAllowlist(requestOptions, options),
|
|
114
115
|
createUserMiniprogramLeaderboard: (requestOptions) => createUserMiniprogramLeaderboard(requestOptions, options),
|
|
@@ -144,6 +145,9 @@ async function createUserMiniprogram(runtime) {
|
|
|
144
145
|
async function getUserMiniprogramDetail(options, runtime) {
|
|
145
146
|
return remoteGet(runtimePermissionEnv.DETAIL_USER_MINIPROGRAM_API_PATH, options, runtime);
|
|
146
147
|
}
|
|
148
|
+
async function createLocalDevLaunchToken$1(options, runtime) {
|
|
149
|
+
return remotePostForm(runtimePermissionEnv.CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH, options, runtime);
|
|
150
|
+
}
|
|
147
151
|
async function getPreviewAllowlist(options, runtime) {
|
|
148
152
|
return remoteGet(runtimePermissionEnv.USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, options, runtime);
|
|
149
153
|
}
|
|
@@ -384,6 +388,14 @@ async function getBoundMiniProgram(options = {}, runtime = {}) {
|
|
|
384
388
|
detail,
|
|
385
389
|
};
|
|
386
390
|
}
|
|
391
|
+
async function createLocalDevLaunchToken(options, runtime = {}) {
|
|
392
|
+
const miniProgramId = options.miniProgramId.trim();
|
|
393
|
+
if (!miniProgramId) {
|
|
394
|
+
throw new Error('mini-program-id 不能为空');
|
|
395
|
+
}
|
|
396
|
+
const api = await resolveRemoteApiClient(options, runtime);
|
|
397
|
+
return api.createLocalDevLaunchToken({ mini_program_id: miniProgramId });
|
|
398
|
+
}
|
|
387
399
|
async function resolveRemoteApiClient(options, runtime) {
|
|
388
400
|
if (runtime.apiClient) {
|
|
389
401
|
return runtime.apiClient;
|
|
@@ -397,6 +409,7 @@ function isTruthyEnvFlag(value) {
|
|
|
397
409
|
}
|
|
398
410
|
|
|
399
411
|
exports.MiniProgramProjectBindingError = MiniProgramProjectBindingError;
|
|
412
|
+
exports.createLocalDevLaunchToken = createLocalDevLaunchToken;
|
|
400
413
|
exports.createMiniProgramMockPermissionState = createMiniProgramMockPermissionState;
|
|
401
414
|
exports.createMiniProgramMockRuntimePermissions = createMiniProgramMockRuntimePermissions;
|
|
402
415
|
exports.createRemoteApiClientForEnvironment = createRemoteApiClientForEnvironment;
|
|
@@ -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-DRee9Dhy.cjs');
|
|
9
9
|
require('node:module');
|
|
10
10
|
require('os');
|
|
11
11
|
require('readline');
|
|
@@ -6,15 +6,15 @@ var path = require('node:path');
|
|
|
6
6
|
var net = require('node:net');
|
|
7
7
|
var promises = require('node:dns/promises');
|
|
8
8
|
var node_http = require('node:http');
|
|
9
|
-
var context = require('./context-
|
|
9
|
+
var context = require('./context-Bx4aT-NN.cjs');
|
|
10
10
|
var node_crypto = require('node:crypto');
|
|
11
11
|
var undici = require('undici');
|
|
12
12
|
var browser = require('./browser-RAy8e8cV.cjs');
|
|
13
|
-
var index = require('./index-
|
|
14
|
-
var projectVite = require('./project-vite-
|
|
13
|
+
var index = require('./index-DRee9Dhy.cjs');
|
|
14
|
+
var projectVite = require('./project-vite-DwhS4B4Z.cjs');
|
|
15
15
|
var fs$1 = require('node:fs/promises');
|
|
16
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
17
|
-
require('./session-
|
|
16
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D-8_jPG3.cjs');
|
|
17
|
+
require('./session-Bem7bONz.cjs');
|
|
18
18
|
require('fs');
|
|
19
19
|
require('constants');
|
|
20
20
|
require('stream');
|
|
@@ -896,18 +896,19 @@ const MOCK_HOST_ROOT_CANDIDATES = [
|
|
|
896
896
|
async function startMiniProgramMockHostServer(options) {
|
|
897
897
|
const root = options.root ?? resolveMiniProgramMockHostRoot(options.rootCandidates);
|
|
898
898
|
assertCompleteMiniProgramMockHostRoot(root);
|
|
899
|
-
const
|
|
899
|
+
const bootstrap = {
|
|
900
900
|
defaultLanAddressId: options.defaultLanAddressId,
|
|
901
901
|
devContext: options.devContext,
|
|
902
902
|
lanAddresses: options.lanAddresses ?? [],
|
|
903
903
|
macAppProtocol: options.macAppProtocol,
|
|
904
904
|
nativeAppLaunchUnavailableReason: options.nativeAppLaunchUnavailableReason,
|
|
905
905
|
runtimePermissions: options.runtimePermissions,
|
|
906
|
-
}
|
|
906
|
+
};
|
|
907
|
+
let bootstrapJson = serializeMockHostBootstrap(bootstrap);
|
|
907
908
|
const server = createMiniProgramMockHostServer(root, {
|
|
908
909
|
appUrl: options.appUrl,
|
|
909
910
|
allowedMiniUrlOrigins: new Set((options.lanAddresses ?? []).map(({ appUrl }) => new URL(appUrl).origin)),
|
|
910
|
-
bootstrapJson,
|
|
911
|
+
readBootstrapJson: () => bootstrapJson,
|
|
911
912
|
fetchImpl: options.fetchImpl ?? fetch,
|
|
912
913
|
isLoopbackPeer: options.isLoopbackPeer ?? isLoopbackAddress,
|
|
913
914
|
lookupHostname: options.lookupHostname ?? (async (hostname) => promises.lookup(hostname, { all: true, verbatim: true })),
|
|
@@ -921,6 +922,17 @@ async function startMiniProgramMockHostServer(options) {
|
|
|
921
922
|
close: () => new Promise((resolve) => {
|
|
922
923
|
server.close(() => resolve());
|
|
923
924
|
}),
|
|
925
|
+
updateBootstrap: (next) => {
|
|
926
|
+
if (next.devContext !== undefined)
|
|
927
|
+
bootstrap.devContext = next.devContext;
|
|
928
|
+
if (next.lanAddresses !== undefined)
|
|
929
|
+
bootstrap.lanAddresses = next.lanAddresses;
|
|
930
|
+
if (next.macAppProtocol === null)
|
|
931
|
+
delete bootstrap.macAppProtocol;
|
|
932
|
+
else if (next.macAppProtocol !== undefined)
|
|
933
|
+
bootstrap.macAppProtocol = next.macAppProtocol;
|
|
934
|
+
bootstrapJson = serializeMockHostBootstrap(bootstrap);
|
|
935
|
+
},
|
|
924
936
|
networkUrls: createMiniProgramMockHostNetworkUrls({
|
|
925
937
|
lanAddresses: options.lanAddresses,
|
|
926
938
|
port,
|
|
@@ -1013,7 +1025,7 @@ function createMiniProgramMockHostServer(root, runtime) {
|
|
|
1013
1025
|
writeMethodNotAllowed(response, 'GET');
|
|
1014
1026
|
return;
|
|
1015
1027
|
}
|
|
1016
|
-
writeSerializedJsonResponse(response, 200, runtime.
|
|
1028
|
+
writeSerializedJsonResponse(response, 200, runtime.readBootstrapJson());
|
|
1017
1029
|
return;
|
|
1018
1030
|
}
|
|
1019
1031
|
if (pathname === DEV_PERMISSIONS_PATH && runtime.permissionController) {
|
|
@@ -1225,6 +1237,7 @@ async function listenHttpServer(server, options, getPortImpl) {
|
|
|
1225
1237
|
const MINI_PROGRAM_URL_QUERY_PARAM = 'mini_url';
|
|
1226
1238
|
const MINI_PROGRAM_RUNTIME_URL_QUERY_PARAM = 'runtime_url';
|
|
1227
1239
|
const MINI_PROGRAM_SDK_VERSION_QUERY_PARAM = 'sdk_version';
|
|
1240
|
+
const MINI_PROGRAM_LOCAL_DEV_LAUNCH_TOKEN_QUERY_PARAM = 'local_dev_launch_token';
|
|
1228
1241
|
const MINI_PROGRAM_DEV_SHELL_URL = 'heybox-mini-dev://sandbox';
|
|
1229
1242
|
const OPEN_IN_APP_URL = 'https://api.xiaoheihe.cn/open_inapp/';
|
|
1230
1243
|
function createMacAppProtocol(appUrl, options = {}) {
|
|
@@ -1260,6 +1273,10 @@ function createPartiallyEncodedMiniProgramDevShellUrl(appUrl, options) {
|
|
|
1260
1273
|
if (miniProgramId) {
|
|
1261
1274
|
devShellUrl += `&mini_program_id=${encodeURIComponent(miniProgramId)}`;
|
|
1262
1275
|
}
|
|
1276
|
+
const localDevLaunchToken = options.localDevLaunchToken?.trim();
|
|
1277
|
+
if (localDevLaunchToken) {
|
|
1278
|
+
devShellUrl += `&${MINI_PROGRAM_LOCAL_DEV_LAUNCH_TOKEN_QUERY_PARAM}=${encodeURIComponent(localDevLaunchToken)}`;
|
|
1279
|
+
}
|
|
1263
1280
|
if (hasRuntimeUrl(options.runtimeUrl)) {
|
|
1264
1281
|
const runtimeUrl = buildRuntimeUrlWithLaunchParams(options.runtimeUrl, appUrl, options);
|
|
1265
1282
|
devShellUrl += `&${MINI_PROGRAM_RUNTIME_URL_QUERY_PARAM}=${encodeURIComponent(runtimeUrl)}`;
|
|
@@ -1277,6 +1294,10 @@ function createEncodedMiniProgramDevShellUrl(appUrl, options) {
|
|
|
1277
1294
|
if (miniProgramId) {
|
|
1278
1295
|
devShellUrl.searchParams.set('mini_program_id', miniProgramId);
|
|
1279
1296
|
}
|
|
1297
|
+
const localDevLaunchToken = options.localDevLaunchToken?.trim();
|
|
1298
|
+
if (localDevLaunchToken) {
|
|
1299
|
+
devShellUrl.searchParams.set(MINI_PROGRAM_LOCAL_DEV_LAUNCH_TOKEN_QUERY_PARAM, localDevLaunchToken);
|
|
1300
|
+
}
|
|
1280
1301
|
if (hasRuntimeUrl(options.runtimeUrl)) {
|
|
1281
1302
|
devShellUrl.searchParams.set(MINI_PROGRAM_RUNTIME_URL_QUERY_PARAM, buildRuntimeUrlWithLaunchParams(options.runtimeUrl, appUrl, options));
|
|
1282
1303
|
}
|
|
@@ -1305,6 +1326,10 @@ function buildRuntimeUrlWithLaunchParams(runtimeUrl, appUrl, options) {
|
|
|
1305
1326
|
if (miniProgramId) {
|
|
1306
1327
|
url.searchParams.set('mini_program_id', miniProgramId);
|
|
1307
1328
|
}
|
|
1329
|
+
const localDevLaunchToken = options.localDevLaunchToken?.trim();
|
|
1330
|
+
if (localDevLaunchToken) {
|
|
1331
|
+
url.searchParams.set(MINI_PROGRAM_LOCAL_DEV_LAUNCH_TOKEN_QUERY_PARAM, localDevLaunchToken);
|
|
1332
|
+
}
|
|
1308
1333
|
const sdkVersion = options.sdkVersion?.trim();
|
|
1309
1334
|
if (sdkVersion) {
|
|
1310
1335
|
url.searchParams.set(MINI_PROGRAM_SDK_VERSION_QUERY_PARAM, sdkVersion);
|
|
@@ -1322,7 +1347,7 @@ function createHeyboxProtocol(payload) {
|
|
|
1322
1347
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
1323
1348
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
1324
1349
|
? undefined
|
|
1325
|
-
: '0.7.0-alpha.
|
|
1350
|
+
: '0.7.0-alpha.3';
|
|
1326
1351
|
|
|
1327
1352
|
class DevPermissionOverrideStoreError extends Error {
|
|
1328
1353
|
code;
|
|
@@ -1505,6 +1530,7 @@ async function runDevCommand(options, runtime = {}) {
|
|
|
1505
1530
|
hmrHost: resolvedOptions.hmrHost,
|
|
1506
1531
|
interfaces: networkInterfaceSnapshot,
|
|
1507
1532
|
miniProgramId: devLaunchContext.miniProgramId,
|
|
1533
|
+
localDevLaunchToken: devLaunchContext.localDevLaunchToken,
|
|
1508
1534
|
rawProtocol: options.rawProtocol,
|
|
1509
1535
|
runtimeUrl: options.runtimeUrl,
|
|
1510
1536
|
sdkVersion: HB_SDK_VERSION,
|
|
@@ -1523,6 +1549,7 @@ async function runDevCommand(options, runtime = {}) {
|
|
|
1523
1549
|
lookupHostname: runtime.lookupHostname,
|
|
1524
1550
|
macAppProtocol: createMacAppProtocol(appUrl, {
|
|
1525
1551
|
miniProgramId: devLaunchContext.miniProgramId,
|
|
1552
|
+
localDevLaunchToken: devLaunchContext.localDevLaunchToken,
|
|
1526
1553
|
runtimeUrl: options.runtimeUrl,
|
|
1527
1554
|
sdkVersion: HB_SDK_VERSION,
|
|
1528
1555
|
}),
|
|
@@ -1538,6 +1565,45 @@ async function runDevCommand(options, runtime = {}) {
|
|
|
1538
1565
|
throw error;
|
|
1539
1566
|
}
|
|
1540
1567
|
closers.push(() => mockHost.close());
|
|
1568
|
+
if (devLaunchContext.source === 'remote' && devLaunchContext.miniProgramId) {
|
|
1569
|
+
const tokenSession = startLocalDevLaunchTokenSession({
|
|
1570
|
+
env: runtime.env,
|
|
1571
|
+
fetchImpl,
|
|
1572
|
+
logger,
|
|
1573
|
+
miniProgramId: devLaunchContext.miniProgramId,
|
|
1574
|
+
onToken: (localDevLaunchToken) => {
|
|
1575
|
+
const tokenContext = {
|
|
1576
|
+
source: 'remote',
|
|
1577
|
+
miniProgramId: devLaunchContext.miniProgramId,
|
|
1578
|
+
...(localDevLaunchToken ? { localDevLaunchToken } : {}),
|
|
1579
|
+
runtimePermissions: devLaunchContext.runtimePermissions,
|
|
1580
|
+
};
|
|
1581
|
+
mockHost.updateBootstrap({
|
|
1582
|
+
devContext: tokenContext,
|
|
1583
|
+
lanAddresses: createLanAddressCandidates({
|
|
1584
|
+
appUrl,
|
|
1585
|
+
hmrHost: resolvedOptions.hmrHost,
|
|
1586
|
+
interfaces: networkInterfaceSnapshot,
|
|
1587
|
+
miniProgramId: devLaunchContext.miniProgramId,
|
|
1588
|
+
localDevLaunchToken,
|
|
1589
|
+
rawProtocol: options.rawProtocol,
|
|
1590
|
+
runtimeUrl: options.runtimeUrl,
|
|
1591
|
+
sdkVersion: HB_SDK_VERSION,
|
|
1592
|
+
viteNetworkUrls: appServer.resolvedUrls?.network ?? [],
|
|
1593
|
+
}),
|
|
1594
|
+
macAppProtocol: createMacAppProtocol(appUrl, {
|
|
1595
|
+
miniProgramId: devLaunchContext.miniProgramId,
|
|
1596
|
+
localDevLaunchToken,
|
|
1597
|
+
runtimeUrl: options.runtimeUrl,
|
|
1598
|
+
sdkVersion: HB_SDK_VERSION,
|
|
1599
|
+
}),
|
|
1600
|
+
});
|
|
1601
|
+
},
|
|
1602
|
+
projectRoot,
|
|
1603
|
+
timeoutMs: runtime.devContextTimeoutMs ?? DEFAULT_DEV_CONTEXT_TIMEOUT_MS,
|
|
1604
|
+
});
|
|
1605
|
+
closers.push(tokenSession.close);
|
|
1606
|
+
}
|
|
1541
1607
|
logger.success('Mock runtime host 已就绪');
|
|
1542
1608
|
logger.info(`Mock runtime host: ${mockHost.url}`);
|
|
1543
1609
|
logger.info(`Mini program URL: ${appUrl}`);
|
|
@@ -1838,6 +1904,89 @@ function installShutdownHandlers(closers, processLike) {
|
|
|
1838
1904
|
async function closeAll(closers) {
|
|
1839
1905
|
await Promise.allSettled(closers.map((close) => close()));
|
|
1840
1906
|
}
|
|
1907
|
+
function startLocalDevLaunchTokenSession(options) {
|
|
1908
|
+
let closed = false;
|
|
1909
|
+
let expirationTimer;
|
|
1910
|
+
let refreshTimer;
|
|
1911
|
+
const refresh = async () => {
|
|
1912
|
+
try {
|
|
1913
|
+
const issued = await issueLocalDevLaunchToken(options);
|
|
1914
|
+
if (closed)
|
|
1915
|
+
return;
|
|
1916
|
+
if (!issued) {
|
|
1917
|
+
schedule(options.timeoutMs);
|
|
1918
|
+
return;
|
|
1919
|
+
}
|
|
1920
|
+
options.onToken(issued.token);
|
|
1921
|
+
const ttl = Math.max(0, issued.expiresAt - Date.now());
|
|
1922
|
+
scheduleExpiration(ttl);
|
|
1923
|
+
schedule(Math.max(1_000, Math.floor(ttl * 0.8)));
|
|
1924
|
+
}
|
|
1925
|
+
catch (error) {
|
|
1926
|
+
if (closed)
|
|
1927
|
+
return;
|
|
1928
|
+
options.logger.warn(`刷新本地调试启动票失败,将自动重试:${index.readRedactedErrorMessage(error)}`);
|
|
1929
|
+
schedule(options.timeoutMs);
|
|
1930
|
+
}
|
|
1931
|
+
};
|
|
1932
|
+
const schedule = (delayMs) => {
|
|
1933
|
+
refreshTimer = setTimeout(() => {
|
|
1934
|
+
void refresh();
|
|
1935
|
+
}, Math.max(1, delayMs));
|
|
1936
|
+
refreshTimer.unref?.();
|
|
1937
|
+
};
|
|
1938
|
+
const scheduleExpiration = (ttl) => {
|
|
1939
|
+
if (expirationTimer)
|
|
1940
|
+
clearTimeout(expirationTimer);
|
|
1941
|
+
expirationTimer = setTimeout(() => {
|
|
1942
|
+
if (!closed)
|
|
1943
|
+
options.onToken(undefined);
|
|
1944
|
+
}, Math.max(1, ttl));
|
|
1945
|
+
expirationTimer.unref?.();
|
|
1946
|
+
};
|
|
1947
|
+
void refresh();
|
|
1948
|
+
return {
|
|
1949
|
+
close: () => {
|
|
1950
|
+
closed = true;
|
|
1951
|
+
if (expirationTimer)
|
|
1952
|
+
clearTimeout(expirationTimer);
|
|
1953
|
+
if (refreshTimer)
|
|
1954
|
+
clearTimeout(refreshTimer);
|
|
1955
|
+
},
|
|
1956
|
+
};
|
|
1957
|
+
}
|
|
1958
|
+
async function issueLocalDevLaunchToken(options) {
|
|
1959
|
+
try {
|
|
1960
|
+
const issued = await loadRemoteDevContextWithTimeout({
|
|
1961
|
+
fetchImpl: options.fetchImpl,
|
|
1962
|
+
timeoutMs: options.timeoutMs,
|
|
1963
|
+
load: (fetchImpl) => context.createLocalDevLaunchToken({
|
|
1964
|
+
cwd: options.projectRoot,
|
|
1965
|
+
env: options.env,
|
|
1966
|
+
fetchImpl,
|
|
1967
|
+
miniProgramId: options.miniProgramId,
|
|
1968
|
+
}),
|
|
1969
|
+
});
|
|
1970
|
+
const token = typeof issued.token === 'string' ? issued.token.trim() : '';
|
|
1971
|
+
if (!token) {
|
|
1972
|
+
throw new Error('响应缺少 token');
|
|
1973
|
+
}
|
|
1974
|
+
const expiresAt = normalizeExpiresAt(issued.expires_at);
|
|
1975
|
+
if (!expiresAt || expiresAt <= Date.now()) {
|
|
1976
|
+
throw new Error('响应缺少有效 expires_at');
|
|
1977
|
+
}
|
|
1978
|
+
return { expiresAt, token };
|
|
1979
|
+
}
|
|
1980
|
+
catch (error) {
|
|
1981
|
+
options.logger.warn(`未能签发本地调试启动票,扫码后公开详情可能仍拿不到未发布小程序身份:${index.readRedactedErrorMessage(error)}`);
|
|
1982
|
+
return undefined;
|
|
1983
|
+
}
|
|
1984
|
+
}
|
|
1985
|
+
function normalizeExpiresAt(value) {
|
|
1986
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0)
|
|
1987
|
+
return undefined;
|
|
1988
|
+
return value < 1_000_000_000_000 ? value * 1000 : value;
|
|
1989
|
+
}
|
|
1841
1990
|
function createLanAddressCandidates(options) {
|
|
1842
1991
|
const viteNetworkUrlByHost = new Map(options.viteNetworkUrls.map((url) => [readUrlHost(url), url]).filter((entry) => Boolean(entry[0])));
|
|
1843
1992
|
const candidates = createLanInterfaceCandidates(options.interfaces)
|
|
@@ -1858,6 +2007,7 @@ function createLanAddressCandidates(options) {
|
|
|
1858
2007
|
candidate.mobileAppQrPayload = createMobileAppQrPayload(appUrl, {
|
|
1859
2008
|
bareProtocol: options.rawProtocol,
|
|
1860
2009
|
miniProgramId: options.miniProgramId,
|
|
2010
|
+
localDevLaunchToken: options.localDevLaunchToken,
|
|
1861
2011
|
runtimeUrl,
|
|
1862
2012
|
sdkVersion: options.sdkVersion,
|
|
1863
2013
|
});
|
|
@@ -1866,6 +2016,7 @@ function createLanAddressCandidates(options) {
|
|
|
1866
2016
|
candidate.mobileAppQrPayload = createMobileAppQrPayload(appUrl, {
|
|
1867
2017
|
bareProtocol: options.rawProtocol,
|
|
1868
2018
|
miniProgramId: options.miniProgramId,
|
|
2019
|
+
localDevLaunchToken: options.localDevLaunchToken,
|
|
1869
2020
|
sdkVersion: options.sdkVersion,
|
|
1870
2021
|
});
|
|
1871
2022
|
}
|
|
@@ -1955,4 +2106,5 @@ function isPrivateIPv4(address) {
|
|
|
1955
2106
|
return parts[0] === 10 || (parts[0] === 172 && parts[1] >= 16 && parts[1] <= 31) || (parts[0] === 192 && parts[1] === 168);
|
|
1956
2107
|
}
|
|
1957
2108
|
|
|
2109
|
+
exports.normalizeExpiresAt = normalizeExpiresAt;
|
|
1958
2110
|
exports.runDevCommand = runDevCommand;
|
|
@@ -4,7 +4,7 @@ var fs$1 = require('node:fs');
|
|
|
4
4
|
var fs = require('node:fs/promises');
|
|
5
5
|
var os = require('node:os');
|
|
6
6
|
var path = require('node:path');
|
|
7
|
-
var index = require('./index-
|
|
7
|
+
var index = require('./index-DRee9Dhy.cjs');
|
|
8
8
|
require('node:module');
|
|
9
9
|
require('path');
|
|
10
10
|
require('os');
|
|
@@ -234,19 +234,19 @@ function requireArgument () {
|
|
|
234
234
|
|
|
235
235
|
var command = {};
|
|
236
236
|
|
|
237
|
-
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-
|
|
237
|
+
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-DRee9Dhy.cjs', document.baseURI).href)));
|
|
238
238
|
function __require$4() { return require$5("node:events"); }
|
|
239
239
|
|
|
240
|
-
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-
|
|
240
|
+
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-DRee9Dhy.cjs', document.baseURI).href)));
|
|
241
241
|
function __require$3() { return require$4("node:child_process"); }
|
|
242
242
|
|
|
243
|
-
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-
|
|
243
|
+
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-DRee9Dhy.cjs', document.baseURI).href)));
|
|
244
244
|
function __require$2() { return require$3("node:path"); }
|
|
245
245
|
|
|
246
|
-
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-
|
|
246
|
+
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-DRee9Dhy.cjs', document.baseURI).href)));
|
|
247
247
|
function __require$1() { return require$2("node:fs"); }
|
|
248
248
|
|
|
249
|
-
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-
|
|
249
|
+
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-DRee9Dhy.cjs', document.baseURI).href)));
|
|
250
250
|
function __require() { return require$1("node:process"); }
|
|
251
251
|
|
|
252
252
|
var help = {};
|
|
@@ -13347,7 +13347,7 @@ function getPathname(pathWithQuery) {
|
|
|
13347
13347
|
}
|
|
13348
13348
|
|
|
13349
13349
|
const CLI_VERSION_PLACEHOLDER = ['__HB', 'SDK', 'CLI', 'VERSION__'].join('_');
|
|
13350
|
-
const BUILT_CLI_VERSION = '0.7.0-alpha.
|
|
13350
|
+
const BUILT_CLI_VERSION = '0.7.0-alpha.3';
|
|
13351
13351
|
const PACKAGE_JSON_CANDIDATES = [
|
|
13352
13352
|
path.resolve(__dirname, '..', '..', 'package.json'),
|
|
13353
13353
|
path.resolve(__dirname, '..', 'package.json'),
|
|
@@ -13681,35 +13681,35 @@ function createCommandLoggerResolver(options) {
|
|
|
13681
13681
|
};
|
|
13682
13682
|
}
|
|
13683
13683
|
const defaultClearLoginStatus = async (...args) => {
|
|
13684
|
-
const { clearLoginStatus } = await Promise.resolve().then(function () { return require('./login-
|
|
13684
|
+
const { clearLoginStatus } = await Promise.resolve().then(function () { return require('./login-C6Pgq394.cjs'); });
|
|
13685
13685
|
return clearLoginStatus(...args);
|
|
13686
13686
|
};
|
|
13687
13687
|
const defaultLoginToHeybox = async (...args) => {
|
|
13688
|
-
const { loginToHeybox } = await Promise.resolve().then(function () { return require('./login-
|
|
13688
|
+
const { loginToHeybox } = await Promise.resolve().then(function () { return require('./login-C6Pgq394.cjs'); });
|
|
13689
13689
|
return loginToHeybox(...args);
|
|
13690
13690
|
};
|
|
13691
13691
|
const defaultPrintLoginStatus = async (...args) => {
|
|
13692
|
-
const { printLoginStatus } = await Promise.resolve().then(function () { return require('./login-
|
|
13692
|
+
const { printLoginStatus } = await Promise.resolve().then(function () { return require('./login-C6Pgq394.cjs'); });
|
|
13693
13693
|
return printLoginStatus(...args);
|
|
13694
13694
|
};
|
|
13695
13695
|
const defaultRunBuildCommand = async (...args) => {
|
|
13696
|
-
const { runBuildCommand } = await Promise.resolve().then(function () { return require('./build-
|
|
13696
|
+
const { runBuildCommand } = await Promise.resolve().then(function () { return require('./build-DTU4TgMT.cjs'); });
|
|
13697
13697
|
return runBuildCommand(...args);
|
|
13698
13698
|
};
|
|
13699
13699
|
const defaultRunCreateCommand = async (...args) => {
|
|
13700
|
-
const { runCreateCommand } = await Promise.resolve().then(function () { return require('./create-
|
|
13700
|
+
const { runCreateCommand } = await Promise.resolve().then(function () { return require('./create-D9Nls0P8.cjs'); });
|
|
13701
13701
|
return runCreateCommand(...args);
|
|
13702
13702
|
};
|
|
13703
13703
|
const defaultRunDevCommand = async (...args) => {
|
|
13704
|
-
const { runDevCommand } = await Promise.resolve().then(function () { return require('./dev-
|
|
13704
|
+
const { runDevCommand } = await Promise.resolve().then(function () { return require('./dev-DKrRVtVi.cjs'); });
|
|
13705
13705
|
return runDevCommand(...args);
|
|
13706
13706
|
};
|
|
13707
13707
|
const defaultRunDoctorCommand = async (...args) => {
|
|
13708
|
-
const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-
|
|
13708
|
+
const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-DM5_TKLh.cjs'); });
|
|
13709
13709
|
return runDoctorCommand(...args);
|
|
13710
13710
|
};
|
|
13711
13711
|
const defaultRunRemoteCommand = async (...args) => {
|
|
13712
|
-
const { runRemoteCommand } = await Promise.resolve().then(function () { return require('./remote-
|
|
13712
|
+
const { runRemoteCommand } = await Promise.resolve().then(function () { return require('./remote-CdH6zSbP.cjs'); });
|
|
13713
13713
|
return runRemoteCommand(...args);
|
|
13714
13714
|
};
|
|
13715
13715
|
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-DRee9Dhy.cjs');
|
|
4
4
|
var require$$0$2 = require('fs');
|
|
5
5
|
var require$$2$1 = require('crypto');
|
|
6
6
|
var require$$1$2 = require('path');
|
|
7
7
|
var require$$0$3 = require('assert');
|
|
8
8
|
var require$$4$2 = require('events');
|
|
9
9
|
var require$$1$1 = require('util');
|
|
10
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
10
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D-8_jPG3.cjs');
|
|
11
11
|
var require$$0$5 = require('net');
|
|
12
12
|
var require$$0$4 = require('url');
|
|
13
13
|
var require$$2$2 = require('http');
|
|
@@ -3,9 +3,9 @@
|
|
|
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 session = require('./session-
|
|
6
|
+
var session = require('./session-Bem7bONz.cjs');
|
|
7
7
|
var browser = require('./browser-RAy8e8cV.cjs');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-DRee9Dhy.cjs');
|
|
9
9
|
require('node:path');
|
|
10
10
|
require('fs');
|
|
11
11
|
require('constants');
|
|
@@ -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-DRee9Dhy.cjs');
|
|
9
9
|
|
|
10
10
|
function findProjectRoot(startDir) {
|
|
11
11
|
let current = path.resolve(startDir);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var promises = require('node:readline/promises');
|
|
4
|
-
var index = require('./index-
|
|
5
|
-
var session = require('./session-
|
|
4
|
+
var index = require('./index-DRee9Dhy.cjs');
|
|
5
|
+
var session = require('./session-Bem7bONz.cjs');
|
|
6
6
|
var childProcess = require('node:child_process');
|
|
7
7
|
var fs = require('node:fs');
|
|
8
8
|
var fs$1 = require('node:fs/promises');
|
|
9
9
|
var path = require('node:path');
|
|
10
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
11
|
-
var runtimeGate = require('./runtime-gate-
|
|
10
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D-8_jPG3.cjs');
|
|
11
|
+
var runtimeGate = require('./runtime-gate-CtV7rWyX.cjs');
|
|
12
12
|
var node_crypto = require('node:crypto');
|
|
13
|
-
var context = require('./context-
|
|
13
|
+
var context = require('./context-Bx4aT-NN.cjs');
|
|
14
14
|
require('node:module');
|
|
15
15
|
require('path');
|
|
16
16
|
require('os');
|
|
@@ -271,7 +271,7 @@ function createDefaultCosClient(uploadToken, COS) {
|
|
|
271
271
|
};
|
|
272
272
|
}
|
|
273
273
|
async function loadCosConstructor() {
|
|
274
|
-
const cosModule = await Promise.resolve().then(function () { return require('./index-
|
|
274
|
+
const cosModule = await Promise.resolve().then(function () { return require('./index-doiKZGkJ.cjs'); }).then(function (n) { return n.index; });
|
|
275
275
|
return cosModule.default;
|
|
276
276
|
}
|
|
277
277
|
function formatSize(bytes) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var runtimePermissionEnv = require('./runtime-permission-env-
|
|
3
|
+
var runtimePermissionEnv = require('./runtime-permission-env-D-8_jPG3.cjs');
|
|
4
4
|
|
|
5
5
|
function isValidMiniappManifestVersion(version) {
|
|
6
6
|
return getMiniappManifestVersionError(version) === undefined;
|
package/dist/cli-chunks/{runtime-permission-env-DKrhgVM3.cjs → runtime-permission-env-D-8_jPG3.cjs}
RENAMED
|
@@ -2797,6 +2797,7 @@ const DEVELOPER_ENTITY_SWITCH_API_PATH = '/mall/developer/entity/switch';
|
|
|
2797
2797
|
const LIST_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/list';
|
|
2798
2798
|
const CREATE_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/create';
|
|
2799
2799
|
const DETAIL_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/detail';
|
|
2800
|
+
const CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH = '/mall/developer/user_miniprogram/local_dev_launch_token';
|
|
2800
2801
|
const USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist';
|
|
2801
2802
|
const UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist/update';
|
|
2802
2803
|
const CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH = '/mall/developer/user_miniprogram/leaderboard/create';
|
|
@@ -3130,6 +3131,7 @@ async function runMiniappPlatformCspEnvScope(skipPlatformCsp, action, env) {
|
|
|
3130
3131
|
|
|
3131
3132
|
exports.CREATE_USER_MINIPROGRAM_API_PATH = CREATE_USER_MINIPROGRAM_API_PATH;
|
|
3132
3133
|
exports.CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH = CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH;
|
|
3134
|
+
exports.CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH = CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH;
|
|
3133
3135
|
exports.DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH = DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH;
|
|
3134
3136
|
exports.DETAIL_USER_MINIPROGRAM_API_PATH = DETAIL_USER_MINIPROGRAM_API_PATH;
|
|
3135
3137
|
exports.DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH = DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH;
|
package/dist/cli.cjs
CHANGED
|
@@ -5081,9 +5081,9 @@ function isShareChannel(value) {
|
|
|
5081
5081
|
}
|
|
5082
5082
|
|
|
5083
5083
|
/** 获取小程序隔离 storage。 */
|
|
5084
|
-
function getMiniProgramRuntimeStorage(payload, options, platformAdapter) {
|
|
5084
|
+
async function getMiniProgramRuntimeStorage(payload, options, platformAdapter) {
|
|
5085
5085
|
const { key } = readMiniProgramGetStoragePayload(payload, options.maxKeyLength);
|
|
5086
|
-
const storageValue = platformAdapter.storage.getStorage({
|
|
5086
|
+
const storageValue = await platformAdapter.storage.getStorage({
|
|
5087
5087
|
key: createMiniProgramRuntimeStorageKey(key, options.scope || getMiniProgramRuntimeStorageScope(undefined, platformAdapter), options.maxKeyLength),
|
|
5088
5088
|
});
|
|
5089
5089
|
return {
|
|
@@ -5194,6 +5194,10 @@ async function getMiniProgramRuntimeLocalIdentity(payload, platformAdapter, iden
|
|
|
5194
5194
|
|| !result.appUserId.trim()) {
|
|
5195
5195
|
throw createMiniProgramRuntimeBridgeError('INVALID_RESPONSE', 'Host user.getLocalIdentity 返回无效');
|
|
5196
5196
|
}
|
|
5197
|
+
platformAdapter.auth.emitAuthEvent?.('user_info_authorization_change', {
|
|
5198
|
+
identity: 'granted',
|
|
5199
|
+
profile: 'not_requested',
|
|
5200
|
+
});
|
|
5197
5201
|
return { appUserId: result.appUserId };
|
|
5198
5202
|
}
|
|
5199
5203
|
|
|
@@ -5209,6 +5213,10 @@ async function revokeMiniProgramRuntimeAuthorization(payload, platformAdapter, i
|
|
|
5209
5213
|
miniProgramId,
|
|
5210
5214
|
trustedUserGesture: Boolean(await platformAdapter.auth.hasTrustedUserGesture?.()),
|
|
5211
5215
|
});
|
|
5216
|
+
platformAdapter.auth.emitAuthEvent?.('user_info_authorization_change', {
|
|
5217
|
+
identity: 'denied',
|
|
5218
|
+
profile: 'denied',
|
|
5219
|
+
});
|
|
5212
5220
|
}
|
|
5213
5221
|
|
|
5214
5222
|
const DEFAULT_LIMIT = 20;
|
|
@@ -5858,7 +5866,7 @@ class MiniProgramMockRuntime {
|
|
|
5858
5866
|
async setNavigationBarStyle(payload) {
|
|
5859
5867
|
await setMiniProgramRuntimeNavigationBarStyle(payload, this.adapter);
|
|
5860
5868
|
}
|
|
5861
|
-
getStorage(payload) {
|
|
5869
|
+
async getStorage(payload) {
|
|
5862
5870
|
return getMiniProgramRuntimeStorage(payload, this.options.storage || {}, this.adapter);
|
|
5863
5871
|
}
|
|
5864
5872
|
async setStorage(payload) {
|
|
@@ -6814,6 +6822,7 @@ const DEV_PERMISSIONS_PATH = '/__hb_sdk__/dev-permissions';
|
|
|
6814
6822
|
const RUNTIME_GATE_PROBE_METHOD = 'runtime.gate.probe';
|
|
6815
6823
|
/** 长 heybox:// 协议需要更大展示面,便于测试端扫码。 */
|
|
6816
6824
|
const MOBILE_QR_IMAGE_SIZE = 320;
|
|
6825
|
+
const NATIVE_LAUNCH_CONFIG_REFRESH_MS = 1000;
|
|
6817
6826
|
const params = new URL(location.href).searchParams;
|
|
6818
6827
|
const miniUrl = params.get('mini_url');
|
|
6819
6828
|
let lanAddresses = [];
|
|
@@ -6863,6 +6872,8 @@ if (!miniUrl) {
|
|
|
6863
6872
|
}
|
|
6864
6873
|
const miniProgramUrl = miniUrl;
|
|
6865
6874
|
const bootstrap = await loadMockHostBootstrap();
|
|
6875
|
+
let nativeLaunchConfigSignature = readNativeLaunchConfigSignature(bootstrap);
|
|
6876
|
+
let nativeLaunchConfigRefreshInFlight = false;
|
|
6866
6877
|
let devContext = bootstrap.devContext;
|
|
6867
6878
|
let remotePermissionState = createMiniProgramMockPermissionState(devContext);
|
|
6868
6879
|
let permissionState = clonePermissionState(remotePermissionState);
|
|
@@ -6936,6 +6947,11 @@ elements.resetPermissionsButton.addEventListener('click', () => {
|
|
|
6936
6947
|
void resetPermissionOverride();
|
|
6937
6948
|
});
|
|
6938
6949
|
const mobileAppQrReady = setupMobileAppQr();
|
|
6950
|
+
if (bootstrap.devContext.source === 'remote') {
|
|
6951
|
+
void mobileAppQrReady.then(() => {
|
|
6952
|
+
window.setInterval(() => void refreshNativeLaunchConfig(), NATIVE_LAUNCH_CONFIG_REFRESH_MS);
|
|
6953
|
+
});
|
|
6954
|
+
}
|
|
6939
6955
|
function createRuntime() {
|
|
6940
6956
|
return new MiniProgramMockRuntime(platformAdapter, {
|
|
6941
6957
|
onHeyboxAppLoginChange: payload => postEvent('heybox_app_login_change', payload),
|
|
@@ -7330,6 +7346,34 @@ async function setupMobileAppQr() {
|
|
|
7330
7346
|
setupMobileLanSelect();
|
|
7331
7347
|
await updateMobileQrCode();
|
|
7332
7348
|
}
|
|
7349
|
+
async function refreshNativeLaunchConfig() {
|
|
7350
|
+
if (nativeLaunchConfigRefreshInFlight)
|
|
7351
|
+
return;
|
|
7352
|
+
nativeLaunchConfigRefreshInFlight = true;
|
|
7353
|
+
try {
|
|
7354
|
+
const latest = await loadMockHostBootstrap();
|
|
7355
|
+
const signature = readNativeLaunchConfigSignature(latest);
|
|
7356
|
+
if (signature === nativeLaunchConfigSignature)
|
|
7357
|
+
return;
|
|
7358
|
+
nativeLaunchConfigSignature = signature;
|
|
7359
|
+
bootstrap.defaultLanAddressId = latest.defaultLanAddressId;
|
|
7360
|
+
bootstrap.lanAddresses = latest.lanAddresses;
|
|
7361
|
+
bootstrap.macAppProtocol = latest.macAppProtocol;
|
|
7362
|
+
bootstrap.nativeAppLaunchUnavailableReason = latest.nativeAppLaunchUnavailableReason;
|
|
7363
|
+
await setupMobileAppQr();
|
|
7364
|
+
}
|
|
7365
|
+
finally {
|
|
7366
|
+
nativeLaunchConfigRefreshInFlight = false;
|
|
7367
|
+
}
|
|
7368
|
+
}
|
|
7369
|
+
function readNativeLaunchConfigSignature(value) {
|
|
7370
|
+
return JSON.stringify({
|
|
7371
|
+
defaultLanAddressId: value.defaultLanAddressId,
|
|
7372
|
+
lanAddresses: value.lanAddresses,
|
|
7373
|
+
macAppProtocol: value.macAppProtocol,
|
|
7374
|
+
nativeAppLaunchUnavailableReason: value.nativeAppLaunchUnavailableReason,
|
|
7375
|
+
});
|
|
7376
|
+
}
|
|
7333
7377
|
async function openMacApp() {
|
|
7334
7378
|
await mobileAppQrReady.catch(() => undefined);
|
|
7335
7379
|
if (nativeAppLaunchUnavailableReason) {
|
|
@@ -7339,7 +7383,6 @@ async function openMacApp() {
|
|
|
7339
7383
|
if (!protocol) {
|
|
7340
7384
|
return;
|
|
7341
7385
|
}
|
|
7342
|
-
console.log('[hb-sdk] Mac App launch protocol:', protocol);
|
|
7343
7386
|
showMacAppLaunchHint();
|
|
7344
7387
|
window.location.href = protocol;
|
|
7345
7388
|
}
|
package/dist/index.cjs.js
CHANGED
package/dist/index.esm.js
CHANGED
|
@@ -2819,6 +2819,7 @@ const DEVELOPER_ENTITY_SWITCH_API_PATH = '/mall/developer/entity/switch';
|
|
|
2819
2819
|
const LIST_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/list';
|
|
2820
2820
|
const CREATE_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/create';
|
|
2821
2821
|
const DETAIL_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/detail';
|
|
2822
|
+
const CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH = '/mall/developer/user_miniprogram/local_dev_launch_token';
|
|
2822
2823
|
const USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist';
|
|
2823
2824
|
const UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist/update';
|
|
2824
2825
|
const CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH = '/mall/developer/user_miniprogram/leaderboard/create';
|
|
@@ -3133,6 +3134,7 @@ function compareBytes(left, right) {
|
|
|
3133
3134
|
exports.ACTIVITY_UPLOAD_KEY_MAX_LENGTH = ACTIVITY_UPLOAD_KEY_MAX_LENGTH;
|
|
3134
3135
|
exports.CREATE_USER_MINIPROGRAM_API_PATH = CREATE_USER_MINIPROGRAM_API_PATH;
|
|
3135
3136
|
exports.CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH = CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH;
|
|
3137
|
+
exports.CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH = CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH;
|
|
3136
3138
|
exports.DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH = DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH;
|
|
3137
3139
|
exports.DETAIL_USER_MINIPROGRAM_API_PATH = DETAIL_USER_MINIPROGRAM_API_PATH;
|
|
3138
3140
|
exports.DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH = DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH;
|
|
@@ -2817,6 +2817,7 @@ const DEVELOPER_ENTITY_SWITCH_API_PATH = '/mall/developer/entity/switch';
|
|
|
2817
2817
|
const LIST_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/list';
|
|
2818
2818
|
const CREATE_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/create';
|
|
2819
2819
|
const DETAIL_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/detail';
|
|
2820
|
+
const CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH = '/mall/developer/user_miniprogram/local_dev_launch_token';
|
|
2820
2821
|
const USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist';
|
|
2821
2822
|
const UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist/update';
|
|
2822
2823
|
const CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH = '/mall/developer/user_miniprogram/leaderboard/create';
|
|
@@ -3128,4 +3129,4 @@ function compareBytes(left, right) {
|
|
|
3128
3129
|
return left.length - right.length;
|
|
3129
3130
|
}
|
|
3130
3131
|
|
|
3131
|
-
export { ACTIVITY_UPLOAD_KEY_MAX_LENGTH, CREATE_USER_MINIPROGRAM_API_PATH, CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DETAIL_USER_MINIPROGRAM_API_PATH, DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DEVELOPER_ENTITY_LIST_API_PATH, DEVELOPER_ENTITY_SWITCH_API_PATH, LIST_USER_MINIPROGRAM_API_PATH, LIST_USER_MINIPROGRAM_LEADERBOARD_API_PATH, LIST_USER_MINIPROGRAM_VERSION_API_PATH, MINIAPP_UPLOAD_BATCH_SIZE, MINIAPP_UPLOAD_SCOPE, MINIAPP_UPLOAD_TOTAL_SIZE_LIMIT_BYTES, PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH, RELEASE_USER_MINIPROGRAM_VERSION_API_PATH, REOPEN_USER_MINIPROGRAM_API_PATH, SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH, TAKE_DOWN_USER_MINIPROGRAM_API_PATH, UPDATE_SQUARE_DISPLAY_API_PATH, UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, USER_MINIPROGRAM_ACCESS_STATUS_API_PATH, USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH, WITHDRAW_USER_MINIPROGRAM_VERSION_API_PATH, createMiniappArtifactFileHeader, createMiniappArtifactSignatureHeader, getMiniProgramUploadAlias, getMiniappUploadKey, isValidMiniappManifestVersion as isValidVersion, normalizeRelativePath, prepareMiniappArtifactFiles, relativePathContainsNodeModulesSegment, resolveMiniappUploadSessionFiles, shouldUploadDistFile, validateMiniappUploadPathLengths, validateUploadPaths, validateUploadTotalSize };
|
|
3132
|
+
export { ACTIVITY_UPLOAD_KEY_MAX_LENGTH, CREATE_USER_MINIPROGRAM_API_PATH, CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH, DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DETAIL_USER_MINIPROGRAM_API_PATH, DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DEVELOPER_ENTITY_LIST_API_PATH, DEVELOPER_ENTITY_SWITCH_API_PATH, LIST_USER_MINIPROGRAM_API_PATH, LIST_USER_MINIPROGRAM_LEADERBOARD_API_PATH, LIST_USER_MINIPROGRAM_VERSION_API_PATH, MINIAPP_UPLOAD_BATCH_SIZE, MINIAPP_UPLOAD_SCOPE, MINIAPP_UPLOAD_TOTAL_SIZE_LIMIT_BYTES, PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH, RELEASE_USER_MINIPROGRAM_VERSION_API_PATH, REOPEN_USER_MINIPROGRAM_API_PATH, SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH, TAKE_DOWN_USER_MINIPROGRAM_API_PATH, UPDATE_SQUARE_DISPLAY_API_PATH, UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, USER_MINIPROGRAM_ACCESS_STATUS_API_PATH, USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH, WITHDRAW_USER_MINIPROGRAM_VERSION_API_PATH, createMiniappArtifactFileHeader, createMiniappArtifactSignatureHeader, getMiniProgramUploadAlias, getMiniappUploadKey, isValidMiniappManifestVersion as isValidVersion, normalizeRelativePath, prepareMiniappArtifactFiles, relativePathContainsNodeModulesSegment, resolveMiniappUploadSessionFiles, shouldUploadDistFile, validateMiniappUploadPathLengths, validateUploadPaths, validateUploadTotalSize };
|
package/dist/vite.cjs.js
CHANGED
package/dist/vite.esm.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heybox/hb-sdk",
|
|
3
|
-
"version": "0.7.0-alpha.
|
|
3
|
+
"version": "0.7.0-alpha.3",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"./src/index.ts",
|
|
6
6
|
"./src/core/singleton.ts",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"vue": "^2.7.16",
|
|
96
96
|
"vite": "^8.0.12",
|
|
97
97
|
"vitest": "^3.2.4",
|
|
98
|
-
"@heybox/hb-api": "~1.25.
|
|
98
|
+
"@heybox/hb-api": "~1.25.17"
|
|
99
99
|
},
|
|
100
100
|
"publishConfig": {
|
|
101
101
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
## Package metadata
|
|
25
25
|
|
|
26
26
|
- Package: `@heybox/hb-sdk`
|
|
27
|
-
- Version at generation time: `0.7.0-alpha.
|
|
27
|
+
- Version at generation time: `0.7.0-alpha.2`
|
|
28
28
|
- Public root export: `@heybox/hb-sdk`
|
|
29
29
|
- Protocol export: `@heybox/hb-sdk/protocol`
|
|
30
30
|
- Vite plugin export: `@heybox/hb-sdk/vite`
|
package/skill/skill.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hb-sdk",
|
|
3
|
-
"skillVersion": "0.7.0-alpha.
|
|
3
|
+
"skillVersion": "0.7.0-alpha.2+skill.c5541658a22b",
|
|
4
4
|
"sdk": {
|
|
5
5
|
"package": "@heybox/hb-sdk",
|
|
6
|
-
"version": "0.7.0-alpha.
|
|
7
|
-
"compatibility": "0.7.0-alpha.
|
|
6
|
+
"version": "0.7.0-alpha.2",
|
|
7
|
+
"compatibility": "0.7.0-alpha.2"
|
|
8
8
|
},
|
|
9
9
|
"source": "https://open.xiaoheihe.cn/agent-skills/hb-sdk",
|
|
10
|
-
"integrity": "sha256-
|
|
10
|
+
"integrity": "sha256-c5541658a22b5ef1a47a24dcdd617e59ef2a118858bedf547ac2833637f865b8"
|
|
11
11
|
}
|
|
@@ -8,6 +8,7 @@ export declare const DEVELOPER_ENTITY_SWITCH_API_PATH = "/mall/developer/entity/
|
|
|
8
8
|
export declare const LIST_USER_MINIPROGRAM_API_PATH = "/mall/developer/user_miniprogram/list";
|
|
9
9
|
export declare const CREATE_USER_MINIPROGRAM_API_PATH = "/mall/developer/user_miniprogram/create";
|
|
10
10
|
export declare const DETAIL_USER_MINIPROGRAM_API_PATH = "/mall/developer/user_miniprogram/detail";
|
|
11
|
+
export declare const CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH = "/mall/developer/user_miniprogram/local_dev_launch_token";
|
|
11
12
|
export declare const USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = "/mall/developer/user_miniprogram/preview_allowlist";
|
|
12
13
|
export declare const UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = "/mall/developer/user_miniprogram/preview_allowlist/update";
|
|
13
14
|
export declare const CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH = "/mall/developer/user_miniprogram/leaderboard/create";
|