@heybox/hb-sdk 0.9.1-alpha.7 → 0.9.1-alpha.8

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.
Files changed (29) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -1
  3. package/dist/cli-chunks/{browser-DS7b1F4w.cjs → browser-YVckob3g.cjs} +1 -1
  4. package/dist/cli-chunks/{build-Blt2jVCf.cjs → build-CQkpLf81.cjs} +5 -5
  5. package/dist/cli-chunks/{context-LHhIFnwm.cjs → context-CqJDNtEi.cjs} +2 -2
  6. package/dist/cli-chunks/{create-BCtecycP.cjs → create-BRuR2M7y.cjs} +1 -1
  7. package/dist/cli-chunks/{dev-5yTbdw-i.cjs → dev-KJAFHEg_.cjs} +10 -10
  8. package/dist/cli-chunks/{doctor-CnMPJ0xu.cjs → doctor-DhiUViwk.cjs} +1 -1
  9. package/dist/cli-chunks/{index-85kvRV7B.cjs → index-9trmrUtW.cjs} +16 -16
  10. package/dist/cli-chunks/{index-CCEGxh9a.cjs → index-rxAV5dza.cjs} +3 -3
  11. package/dist/cli-chunks/{index.esm-B2j8wByD.cjs → index.esm-Cv9FlhXy.cjs} +7 -7
  12. package/dist/cli-chunks/{login-BShtjJMm.cjs → login-5DEcU9eL.cjs} +2 -2
  13. package/dist/cli-chunks/{project-vite-C9OxeWTo.cjs → project-vite-CXWFwbEz.cjs} +1 -1
  14. package/dist/cli-chunks/{remote-CKXsKfSJ.cjs → remote-laUZaGpI.cjs} +30 -22
  15. package/dist/cli-chunks/{runtime-gate-MNA7lKMW.cjs → runtime-gate-DmJhPcNQ.cjs} +2 -2
  16. package/dist/cli-chunks/{runtime-permission-env-lj-frZ7T.cjs → runtime-permission-env-Gy2dH17F.cjs} +12 -4
  17. package/dist/cli-chunks/{skill-ag7O2U_r.cjs → skill--mZIZkyn.cjs} +2 -2
  18. package/dist/cli-chunks/{version-CrnB-YNH.cjs → version-BMp9qmtC.cjs} +1 -1
  19. package/dist/cli.cjs +1 -1
  20. package/dist/devtools/browser-dev-host/assets/{browser-dev-host-CjvQmKkG.js → browser-dev-host-COdk-39n.js} +1 -1
  21. package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-DoA60Rdl.js → desktop-app-launch-BU-vzcs0.js} +1 -1
  22. package/dist/devtools/browser-dev-host/assets/{index-BDvaA1DV.js → index-BZBZfB4t.js} +3 -3
  23. package/dist/devtools/browser-dev-host/index.html +2 -2
  24. package/dist/index.cjs.js +1 -1
  25. package/dist/index.esm.js +1 -1
  26. package/dist/vite.cjs.js +1 -1
  27. package/dist/vite.esm.js +1 -1
  28. package/package.json +5 -5
  29. package/skill/skill.json +4 -4
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  本文件随 `@heybox/hb-sdk` npm 包公开分发,只记录外部小程序开发者可观察到的变化。
4
4
 
5
+ ## 0.9.1-alpha.8 - 2026-10-16
6
+
7
+ ### 问题修复
8
+
9
+ - 修复第一方小程序已声明权限在 CLI 查询、本地调试和发布检查中被误判为不可用的问题。
10
+ - 权限查询区分原始审批与有效权限,并展示第一方自动批准来源。
11
+
5
12
  ## 0.9.1-alpha.7 - 2026-10-16
6
13
 
7
14
  ### 新增能力
package/README.md CHANGED
@@ -503,7 +503,7 @@ Host/Runtime 集成维护者请先阅读 [`@heybox/hb-sdk-runtime` README](../hb
503
503
 
504
504
  ### 终端权限申请
505
505
 
506
- 绑定小程序后,可用 `hb-sdk remote permission list` 查看平台状态和最近申请;使用 `hb-sdk remote permission apply network --reason "访问业务接口" --domains "api.example.com"` 或 `hb-sdk remote permission apply companion --reason "运行桌面辅助应用"` 提交申请。两种命令均支持 `--json`,无需上传版本;获批后仍需声明 Manifest 权限。
506
+ 绑定小程序后,可用 `hb-sdk remote permission list` 查看原始审批、本地声明下的有效状态和最近申请;使用 `hb-sdk remote permission apply network --reason "访问业务接口" --domains "api.example.com"` 或 `hb-sdk remote permission apply companion --reason "运行桌面辅助应用"` 提交申请。两种命令均支持 `--json`,无需上传版本;获批后仍需声明 Manifest 权限。第一方已声明的受审批权限自动批准,原始审批为 `disabled` 不表示有效权限被禁用;CLI 会单独标明批准来源。完整语义见[终端权限申请](https://docs.xiaoheihe.cn/hb_sdk/guide/permissions#终端权限申请)。
507
507
 
508
508
  ### 工作区卡片(开发中)
509
509
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-85kvRV7B.cjs');
3
+ var index = require('./index-9trmrUtW.cjs');
4
4
 
5
5
  async function openExternalUrl(url) {
6
6
  try {
@@ -1,21 +1,21 @@
1
1
  'use strict';
2
2
 
3
- var runtimeGate = require('./runtime-gate-MNA7lKMW.cjs');
3
+ var runtimeGate = require('./runtime-gate-DmJhPcNQ.cjs');
4
4
  var fs$1 = require('node:fs');
5
5
  var fs = require('node:fs/promises');
6
6
  var path = require('node:path');
7
- var runtimePermissionEnv = require('./runtime-permission-env-lj-frZ7T.cjs');
7
+ var runtimePermissionEnv = require('./runtime-permission-env-Gy2dH17F.cjs');
8
8
  require('node:crypto');
9
9
  require('node:zlib');
10
- var index = require('./index-85kvRV7B.cjs');
11
- var projectVite = require('./project-vite-C9OxeWTo.cjs');
10
+ var index = require('./index-9trmrUtW.cjs');
11
+ var projectVite = require('./project-vite-CXWFwbEz.cjs');
12
12
  require('node:module');
13
13
  require('node:url');
14
14
  require('fs');
15
15
  require('path');
16
16
  require('os');
17
17
  require('inspector');
18
- require('./version-CrnB-YNH.cjs');
18
+ require('./version-BMp9qmtC.cjs');
19
19
  require('node:async_hooks');
20
20
  require('constants');
21
21
  require('stream');
@@ -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-lj-frZ7T.cjs');
6
+ var runtimePermissionEnv = require('./runtime-permission-env-Gy2dH17F.cjs');
7
7
  var fs$1 = require('node:fs');
8
8
  var sharp = require('sharp');
9
- var index = require('./index-85kvRV7B.cjs');
9
+ var index = require('./index-9trmrUtW.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-85kvRV7B.cjs');
8
+ var index = require('./index-9trmrUtW.cjs');
9
9
  require('node:module');
10
10
  require('os');
11
11
  require('constants');
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-85kvRV7B.cjs');
4
- var context = require('./context-LHhIFnwm.cjs');
3
+ var index = require('./index-9trmrUtW.cjs');
4
+ var context = require('./context-CqJDNtEi.cjs');
5
5
  var node_crypto = require('node:crypto');
6
6
  var fs = require('node:fs');
7
- var runtimePermissionEnv = require('./runtime-permission-env-lj-frZ7T.cjs');
7
+ var runtimePermissionEnv = require('./runtime-permission-env-Gy2dH17F.cjs');
8
8
  var os = require('node:os');
9
9
  var path = require('node:path');
10
10
  var net = require('node:net');
@@ -15,9 +15,9 @@ var undici = require('undici');
15
15
  var fs$1 = require('node:fs/promises');
16
16
  var require$$0$1 = require('crypto');
17
17
  var require$$0 = require('buffer');
18
- var browser = require('./browser-DS7b1F4w.cjs');
19
- var projectVite = require('./project-vite-C9OxeWTo.cjs');
20
- var version = require('./version-CrnB-YNH.cjs');
18
+ var browser = require('./browser-YVckob3g.cjs');
19
+ var projectVite = require('./project-vite-CXWFwbEz.cjs');
20
+ var version = require('./version-BMp9qmtC.cjs');
21
21
  require('node:zlib');
22
22
 
23
23
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
@@ -1992,8 +1992,8 @@ const DEFAULT_CHANNEL_TRANSPORT = {
1992
1992
  };
1993
1993
  const IPV4_LOOPBACK_ADDRESSES = new net.BlockList();
1994
1994
  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-5yTbdw-i.cjs', document.baseURI).href)))('ws');
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-5yTbdw-i.cjs', document.baseURI).href)))('parse5');
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-KJAFHEg_.cjs', document.baseURI).href)))('ws');
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-KJAFHEg_.cjs', document.baseURI).href)))('parse5');
1997
1997
  const BROWSER_DEV_HOST_ROOT_CANDIDATES = [
1998
1998
  path.resolve(__dirname, 'devtools/browser-dev-host'),
1999
1999
  path.resolve(__dirname, '../devtools/browser-dev-host'),
@@ -11093,7 +11093,7 @@ function assertNodeRuntimeCapabilities(ctx, settings) {
11093
11093
  function createNodeRealtimeDriverRegistry() {
11094
11094
  const registry = createRuntimeRealtimeDriverRegistry();
11095
11095
  registry.registerLazy('node-websocket', async () => {
11096
- const mod = await Promise.resolve().then(function () { return require('./index.esm-B2j8wByD.cjs'); });
11096
+ const mod = await Promise.resolve().then(function () { return require('./index.esm-Cv9FlhXy.cjs'); });
11097
11097
  return mod.createNodeWebSocketRuntimeDriver();
11098
11098
  });
11099
11099
  return registry;
@@ -16057,7 +16057,7 @@ async function loadDevLaunchContext(options) {
16057
16057
  options.logger.info('已迁移当前正式发布名称与图片,继续启动开发环境');
16058
16058
  if (!runtimePermissionEnv.parseMiniProgramRuntimePermissions(detail.runtime_permissions).valid)
16059
16059
  return anonymous('线上权限快照无效,真实手机和 PC 调试不可用');
16060
- const effectivePermissions = runtimePermissionEnv.composeMiniappRuntimePermissions(localPermissions, detail.runtime_permissions).runtimePermissions;
16060
+ const effectivePermissions = runtimePermissionEnv.composeMiniappRuntimePermissions(localPermissions, detail.runtime_permissions, detail.party_type).runtimePermissions;
16061
16061
  return {
16062
16062
  context: {
16063
16063
  source: 'remote',
@@ -3,7 +3,7 @@
3
3
  var fs = require('node:fs/promises');
4
4
  var os = require('node:os');
5
5
  var path = require('node:path');
6
- var index = require('./index-85kvRV7B.cjs');
6
+ var index = require('./index-9trmrUtW.cjs');
7
7
  require('node:module');
8
8
  require('path');
9
9
  require('os');
@@ -243,19 +243,19 @@ function requireArgument () {
243
243
 
244
244
  var command = {};
245
245
 
246
- 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-85kvRV7B.cjs', document.baseURI).href)));
246
+ 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-9trmrUtW.cjs', document.baseURI).href)));
247
247
  function __require$4() { return require$5("node:events"); }
248
248
 
249
- 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-85kvRV7B.cjs', document.baseURI).href)));
249
+ 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-9trmrUtW.cjs', document.baseURI).href)));
250
250
  function __require$3() { return require$4("node:child_process"); }
251
251
 
252
- 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-85kvRV7B.cjs', document.baseURI).href)));
252
+ 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-9trmrUtW.cjs', document.baseURI).href)));
253
253
  function __require$2() { return require$3("node:path"); }
254
254
 
255
- 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-85kvRV7B.cjs', document.baseURI).href)));
255
+ 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-9trmrUtW.cjs', document.baseURI).href)));
256
256
  function __require$1() { return require$2("node:fs"); }
257
257
 
258
- 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-85kvRV7B.cjs', document.baseURI).href)));
258
+ 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-9trmrUtW.cjs', document.baseURI).href)));
259
259
  function __require() { return require$1("node:process"); }
260
260
 
261
261
  var help = {};
@@ -16872,7 +16872,7 @@ async function defaultBrowser() {
16872
16872
  const execFile = node_util.promisify(childProcess.execFile);
16873
16873
 
16874
16874
  // Path to included `xdg-open`.
16875
- const __dirname$1 = path.dirname(node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-85kvRV7B.cjs', document.baseURI).href))));
16875
+ const __dirname$1 = path.dirname(node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli-chunks/index-9trmrUtW.cjs', document.baseURI).href))));
16876
16876
  const localXdgOpenPath = path.join(__dirname$1, 'xdg-open');
16877
16877
 
16878
16878
  const {platform, arch} = process$1;
@@ -17204,7 +17204,7 @@ defineLazyProperty(apps, 'browser', () => 'browser');
17204
17204
  defineLazyProperty(apps, 'browserPrivate', () => 'browserPrivate');
17205
17205
 
17206
17206
  const CLI_VERSION_PLACEHOLDER = ['__HB', 'SDK', 'CLI', 'VERSION__'].join('_');
17207
- const BUILT_CLI_VERSION = '0.9.1-alpha.7';
17207
+ const BUILT_CLI_VERSION = '0.9.1-alpha.8';
17208
17208
  const PACKAGE_JSON_CANDIDATES$1 = [
17209
17209
  path.resolve(__dirname, '..', '..', 'package.json'),
17210
17210
  path.resolve(__dirname, '..', 'package.json'),
@@ -18224,39 +18224,39 @@ function createCommandLoggerResolver(options) {
18224
18224
  };
18225
18225
  }
18226
18226
  const defaultClearLoginStatus = async (...args) => {
18227
- const { clearLoginStatus } = await Promise.resolve().then(function () { return require('./login-BShtjJMm.cjs'); });
18227
+ const { clearLoginStatus } = await Promise.resolve().then(function () { return require('./login-5DEcU9eL.cjs'); });
18228
18228
  return clearLoginStatus(...args);
18229
18229
  };
18230
18230
  const defaultLoginToHeybox = async (...args) => {
18231
- const { loginToHeybox } = await Promise.resolve().then(function () { return require('./login-BShtjJMm.cjs'); });
18231
+ const { loginToHeybox } = await Promise.resolve().then(function () { return require('./login-5DEcU9eL.cjs'); });
18232
18232
  return loginToHeybox(...args);
18233
18233
  };
18234
18234
  const defaultPrintLoginStatus = async (...args) => {
18235
- const { printLoginStatus } = await Promise.resolve().then(function () { return require('./login-BShtjJMm.cjs'); });
18235
+ const { printLoginStatus } = await Promise.resolve().then(function () { return require('./login-5DEcU9eL.cjs'); });
18236
18236
  return printLoginStatus(...args);
18237
18237
  };
18238
18238
  const defaultRunBuildCommand = async (...args) => {
18239
- const { runBuildCommand } = await Promise.resolve().then(function () { return require('./build-Blt2jVCf.cjs'); });
18239
+ const { runBuildCommand } = await Promise.resolve().then(function () { return require('./build-CQkpLf81.cjs'); });
18240
18240
  return runBuildCommand(...args);
18241
18241
  };
18242
18242
  const defaultRunCreateCommand = async (...args) => {
18243
- const { runCreateCommand } = await Promise.resolve().then(function () { return require('./create-BCtecycP.cjs'); });
18243
+ const { runCreateCommand } = await Promise.resolve().then(function () { return require('./create-BRuR2M7y.cjs'); });
18244
18244
  return runCreateCommand(...args);
18245
18245
  };
18246
18246
  const defaultRunDevCommand = async (...args) => {
18247
- const { runDevCommand } = await Promise.resolve().then(function () { return require('./dev-5yTbdw-i.cjs'); }).then(function (n) { return n.dev; });
18247
+ const { runDevCommand } = await Promise.resolve().then(function () { return require('./dev-KJAFHEg_.cjs'); }).then(function (n) { return n.dev; });
18248
18248
  return runDevCommand(...args);
18249
18249
  };
18250
18250
  const defaultRunDoctorCommand = async (...args) => {
18251
- const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-CnMPJ0xu.cjs'); });
18251
+ const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-DhiUViwk.cjs'); });
18252
18252
  return runDoctorCommand(...args);
18253
18253
  };
18254
18254
  const defaultRunSkillInstallCommand = async (...args) => {
18255
- const { runSkillInstallCommand } = await Promise.resolve().then(function () { return require('./skill-ag7O2U_r.cjs'); });
18255
+ const { runSkillInstallCommand } = await Promise.resolve().then(function () { return require('./skill--mZIZkyn.cjs'); });
18256
18256
  return runSkillInstallCommand(...args);
18257
18257
  };
18258
18258
  const defaultRunRemoteCommand = async (...args) => {
18259
- const { runRemoteCommand } = await Promise.resolve().then(function () { return require('./remote-CKXsKfSJ.cjs'); });
18259
+ const { runRemoteCommand } = await Promise.resolve().then(function () { return require('./remote-laUZaGpI.cjs'); });
18260
18260
  return runRemoteCommand(...args);
18261
18261
  };
18262
18262
  function resolveStandaloneLogger(options, verbose) {
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var index$2 = require('./index-85kvRV7B.cjs');
3
+ var index$2 = require('./index-9trmrUtW.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-lj-frZ7T.cjs');
10
+ var runtimePermissionEnv = require('./runtime-permission-env-Gy2dH17F.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');
@@ -16,7 +16,7 @@ var require$$0$8 = require('stream');
16
16
  var require$$0$a = require('zlib');
17
17
  var require$$1$3 = require('querystring');
18
18
  var require$$0$9 = require('buffer');
19
- var runtimeGate = require('./runtime-gate-MNA7lKMW.cjs');
19
+ var runtimeGate = require('./runtime-gate-DmJhPcNQ.cjs');
20
20
  var require$$4$3 = require('tls');
21
21
 
22
22
  function _mergeNamespaces(n, m) {
@@ -11,8 +11,8 @@ var require$$0$4 = require('url');
11
11
  var require$$0 = require('zlib');
12
12
  var require$$0$1 = require('buffer');
13
13
  var require$$1 = require('util');
14
- var index = require('./index-85kvRV7B.cjs');
15
- var dev = require('./dev-5yTbdw-i.cjs');
14
+ var index = require('./index-9trmrUtW.cjs');
15
+ var dev = require('./dev-KJAFHEg_.cjs');
16
16
  require('node:module');
17
17
  require('node:fs/promises');
18
18
  require('node:path');
@@ -31,17 +31,17 @@ require('node:util');
31
31
  require('node:child_process');
32
32
  require('node:os');
33
33
  require('node:fs');
34
- require('./context-LHhIFnwm.cjs');
35
- require('./runtime-permission-env-lj-frZ7T.cjs');
36
- require('./version-CrnB-YNH.cjs');
34
+ require('./context-CqJDNtEi.cjs');
35
+ require('./runtime-permission-env-Gy2dH17F.cjs');
36
+ require('./version-BMp9qmtC.cjs');
37
37
  require('node:async_hooks');
38
38
  require('sharp');
39
39
  require('node:net');
40
40
  require('node:dns/promises');
41
41
  require('node:http');
42
42
  require('undici');
43
- require('./browser-DS7b1F4w.cjs');
44
- require('./project-vite-C9OxeWTo.cjs');
43
+ require('./browser-YVckob3g.cjs');
44
+ require('./project-vite-CXWFwbEz.cjs');
45
45
  require('node:zlib');
46
46
 
47
47
  var bufferUtil = {exports: {}};
@@ -3,8 +3,8 @@
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-85kvRV7B.cjs');
7
- var browser = require('./browser-DS7b1F4w.cjs');
6
+ var index = require('./index-9trmrUtW.cjs');
7
+ var browser = require('./browser-YVckob3g.cjs');
8
8
  require('node:module');
9
9
  require('node:fs/promises');
10
10
  require('node:path');
@@ -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-85kvRV7B.cjs');
8
+ var index = require('./index-9trmrUtW.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-lj-frZ7T.cjs');
4
- var context = require('./context-LHhIFnwm.cjs');
3
+ var runtimePermissionEnv = require('./runtime-permission-env-Gy2dH17F.cjs');
4
+ var context = require('./context-CqJDNtEi.cjs');
5
5
  var promises = require('node:readline/promises');
6
- var index = require('./index-85kvRV7B.cjs');
7
- var runtimeGate = require('./runtime-gate-MNA7lKMW.cjs');
6
+ var index = require('./index-9trmrUtW.cjs');
7
+ var runtimeGate = require('./runtime-gate-DmJhPcNQ.cjs');
8
8
  var childProcess = require('node:child_process');
9
9
  var fs = require('node:fs');
10
10
  var fs$1 = require('node:fs/promises');
11
11
  var path = require('node:path');
12
12
  var node_crypto = require('node:crypto');
13
13
  require('node:zlib');
14
- require('./version-CrnB-YNH.cjs');
14
+ require('./version-BMp9qmtC.cjs');
15
15
  require('node:async_hooks');
16
16
  require('sharp');
17
17
  require('node:module');
@@ -327,7 +327,7 @@ function createDefaultCosClient(uploadToken, COS) {
327
327
  };
328
328
  }
329
329
  async function loadCosConstructor() {
330
- const cosModule = await Promise.resolve().then(function () { return require('./index-CCEGxh9a.cjs'); }).then(function (n) { return n.index; });
330
+ const cosModule = await Promise.resolve().then(function () { return require('./index-rxAV5dza.cjs'); }).then(function (n) { return n.index; });
331
331
  return cosModule.default;
332
332
  }
333
333
  function formatSize(bytes) {
@@ -532,18 +532,18 @@ function isNodeError(error) {
532
532
  return error instanceof Error && 'code' in error;
533
533
  }
534
534
 
535
- /** 发布提示只比较显式声明与线上批准,不消费本地调试授权。 */
536
- function getUnapprovedPermissionWarning(local, approvals) {
535
+ /** 发布提示使用显式声明与远端主体批准策略,不消费本地调试授权。 */
536
+ function getUnapprovedPermissionWarning(local, approvals, partyType) {
537
537
  if (!local.declared)
538
538
  return undefined;
539
- const { views } = runtimePermissionEnv.composeMiniappRuntimePermissions(local, approvals);
539
+ const { views } = runtimePermissionEnv.composeMiniappRuntimePermissions(local, approvals, partyType);
540
540
  const missing = [];
541
541
  for (const view of views) {
542
542
  if (!view.declared || view.access !== 'platform-approval')
543
543
  continue;
544
- if (!view.approved)
544
+ if (!view.effective)
545
545
  missing.push(view.key);
546
- if (view.key === 'network' && view.requestedConfig?.useOfficialDomain && !view.approvedConfig?.useOfficialDomain) {
546
+ if (view.key === 'network' && view.requestedConfig?.useOfficialDomain && !view.effectiveConfig?.useOfficialDomain) {
547
547
  missing.push('network.useOfficialDomain');
548
548
  }
549
549
  }
@@ -635,9 +635,9 @@ async function runDeployCommand(options, runtime = {}) {
635
635
  loginBaseUrl,
636
636
  session,
637
637
  }), { successText: '已读取远端小程序权限' });
638
- const localNetworkEnabled = !localPermissions.declared || localPermissions.permissions?.network?.enabled === true;
639
- skipPlatformCsp = localNetworkEnabled && context.shouldSkipMiniappPlatformCsp(detail.runtime_permissions);
640
- const permissionWarning = getUnapprovedPermissionWarning(localPermissions, detail.runtime_permissions);
638
+ const effectivePermissions = runtimePermissionEnv.composeMiniappRuntimePermissions(localPermissions, detail.runtime_permissions, detail.party_type).runtimePermissions;
639
+ skipPlatformCsp = context.shouldSkipMiniappPlatformCsp(effectivePermissions);
640
+ const permissionWarning = getUnapprovedPermissionWarning(localPermissions, detail.runtime_permissions, detail.party_type);
641
641
  if (permissionWarning)
642
642
  logger.warn(permissionWarning);
643
643
  }
@@ -1415,7 +1415,7 @@ async function remoteInfo(options, context$1, runtime) {
1415
1415
  const miniProgramId = requireBinding(context$1);
1416
1416
  const detail = await context$1.api.getMiniProgramDetail(miniProgramId);
1417
1417
  const localPermissions = runtimePermissionEnv.readMiniappPermissionsFromPackageJson(context$1.packageJson.projectRoot, runtimePermissionEnv.resolveMiniappSdkVersion());
1418
- const permissionViews = runtimePermissionEnv.composeMiniappRuntimePermissions(localPermissions, detail.runtime_permissions).views;
1418
+ const permissionViews = runtimePermissionEnv.composeMiniappRuntimePermissions(localPermissions, detail.runtime_permissions, detail.party_type).views;
1419
1419
  const localBindAppIds = runtimePermissionEnv.readMiniappBindAppIdsFromPackageJson(context$1.packageJson.projectRoot);
1420
1420
  const currentBindApps = normalizeRemoteBoundApps(detail.bind_apps);
1421
1421
  const currentByID = new Map(currentBindApps.map((item) => [item.appid, item]));
@@ -1469,18 +1469,24 @@ async function remoteAllowlistWrite(options, context, runtime) {
1469
1469
  async function remotePermissionList(options, context, runtime) {
1470
1470
  const miniProgramId = requireBinding(context);
1471
1471
  const result = await context.api.listPermissionApplications(miniProgramId);
1472
+ const detail = await context.api.getMiniProgramDetail(miniProgramId);
1473
+ const localPermissions = runtimePermissionEnv.readMiniappPermissionsFromPackageJson(context.packageJson.projectRoot, runtimePermissionEnv.resolveMiniappSdkVersion());
1474
+ const { views } = runtimePermissionEnv.composeMiniappRuntimePermissions(localPermissions, result.runtime_permissions, detail.party_type);
1472
1475
  if (!options.json) {
1473
- for (const item of result.items) {
1474
- const application = item.latest_application;
1475
- const approval = result.runtime_permissions?.entries?.find(entry => entry.key === item.permission_key);
1476
- context.logger.info(`${item.permission_key} (${item.permission_name}) 平台状态=${approval?.status ?? 'disabled'} 最近申请=${application?.status ?? '未申请'}`);
1476
+ for (const view of views.filter(entry => entry.access === 'platform-approval')) {
1477
+ const item = result.items.find(entry => entry.permission_key === view.key);
1478
+ const application = item?.latest_application;
1479
+ const name = item?.permission_name ?? runtimePermissionEnv.MINI_PROGRAM_PERMISSION_CATALOG.find(entry => entry.key === view.key)?.name ?? view.key;
1480
+ const approval = result.runtime_permissions?.entries?.find(entry => entry.key === view.key);
1481
+ const source = view.approvalSource === 'first-party' ? ' 批准来源=第一方自动批准' : '';
1482
+ context.logger.info(`${view.key} (${name}) 原始审批=${approval?.status ?? 'disabled'}${source} 本地生效=${view.effective ? 'enabled' : 'disabled'} 最近申请=${application?.status ?? '未申请'}`);
1477
1483
  if (application?.application_id)
1478
1484
  context.logger.info(`申请 ID:${application.application_id}`);
1479
1485
  if (application?.review_remark)
1480
1486
  context.logger.info(`审核意见:${application.review_remark}`);
1481
1487
  }
1482
1488
  }
1483
- return finishRemoteCommand(options, runtime, { changed: false, miniProgramId, items: toCamelCaseDeep(result.items), runtimePermissions: toCamelCaseDeep(result.runtime_permissions) });
1489
+ return finishRemoteCommand(options, runtime, { changed: false, miniProgramId, items: toCamelCaseDeep(result.items), runtimePermissions: toCamelCaseDeep(result.runtime_permissions), permissions: views });
1484
1490
  }
1485
1491
  async function remotePermissionApply(options, context, runtime) {
1486
1492
  const miniProgramId = requireBinding(context);
@@ -1608,7 +1614,7 @@ async function remoteDangerousWrite(options, context, runtime) {
1608
1614
  status: detail.status,
1609
1615
  version,
1610
1616
  permissionWarning: options.command === 'release'
1611
- ? getUnapprovedPermissionWarning(runtimePermissionEnv.readMiniappPermissionsFromPackageJson(context.packageJson.projectRoot, runtimePermissionEnv.resolveMiniappSdkVersion()), detail.runtime_permissions)
1617
+ ? getUnapprovedPermissionWarning(runtimePermissionEnv.readMiniappPermissionsFromPackageJson(context.packageJson.projectRoot, runtimePermissionEnv.resolveMiniappSdkVersion()), detail.runtime_permissions, detail.party_type)
1612
1618
  : undefined,
1613
1619
  });
1614
1620
  if (options.command === 'release') {
@@ -1989,7 +1995,9 @@ function printMiniProgramDetail(logger, detail, permissionViews, bindings) {
1989
1995
  }
1990
1996
  logger.info('权限:');
1991
1997
  for (const view of permissionViews) {
1992
- const approval = view.access === 'platform-approval' ? ` 需申请=是 批准=${view.approved ? '是' : '否'}` : ' 需申请=否';
1998
+ const approval = view.approvalSource === 'first-party'
1999
+ ? ` 需申请=否 批准来源=第一方自动批准 原始批准=${view.approved ? '是' : '否'}`
2000
+ : view.access === 'platform-approval' ? ` 需申请=是 批准=${view.approved ? '是' : '否'}` : ' 需申请=否';
1993
2001
  const configs = view.requestedConfig
1994
2002
  ? ` requested=${JSON.stringify(view.requestedConfig)} approved=${JSON.stringify(view.approvedConfig)} effective=${JSON.stringify(view.effectiveConfig)}`
1995
2003
  : '';
@@ -5,8 +5,8 @@ require('node:module');
5
5
  require('node:url');
6
6
  var fs = require('node:fs');
7
7
  var path = require('node:path');
8
- var runtimePermissionEnv = require('./runtime-permission-env-lj-frZ7T.cjs');
9
- var index = require('./index-85kvRV7B.cjs');
8
+ var runtimePermissionEnv = require('./runtime-permission-env-Gy2dH17F.cjs');
9
+ var index = require('./index-9trmrUtW.cjs');
10
10
  var require$$0 = require('fs');
11
11
  var require$$1 = require('path');
12
12
  var require$$1$1 = require('os');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var fs = require('node:fs');
4
4
  var path = require('node:path');
5
- var version$1 = require('./version-CrnB-YNH.cjs');
5
+ var version$1 = require('./version-BMp9qmtC.cjs');
6
6
  require('node:crypto');
7
7
  var node_async_hooks = require('node:async_hooks');
8
8
 
@@ -9899,8 +9899,11 @@ function requiresExplicitPermissions(sdkVersion) {
9899
9899
  throw new Error(`sdkVersion 必须是合法 SemVer:${sdkVersion}`);
9900
9900
  return parsed.major > 0 || parsed.minor >= 9;
9901
9901
  }
9902
- function composeMiniappRuntimePermissions(local, approvals) {
9902
+ function composeMiniappRuntimePermissions(local, approvals,
9903
+ /** 仅传入已验证的远端小程序详情身份,不能来自本地调试覆盖。 */
9904
+ partyType) {
9903
9905
  const parsedApprovals = parseMiniProgramRuntimePermissions(approvals);
9906
+ const firstParty = local.declared && parsedApprovals.valid && partyType === 'first_party';
9904
9907
  const approvalRevision = isRecord$3(approvals) && Number.isInteger(approvals.revision) ? approvals.revision : undefined;
9905
9908
  const views = [];
9906
9909
  const entries = [];
@@ -9915,13 +9918,16 @@ function composeMiniappRuntimePermissions(local, approvals) {
9915
9918
  }
9916
9919
  const approval = parsedApprovals.valid ? parsedApprovals.permissions[definition.key] : undefined;
9917
9920
  const approved = approval?.status === 'enabled';
9918
- const effective = declared && approved;
9921
+ const autoApproved = firstParty && declared;
9922
+ const approvalSource = autoApproved ? { approvalSource: 'first-party' } : {};
9923
+ const effective = declared && (approved || autoApproved);
9919
9924
  if (definition.key !== 'network') {
9920
9925
  views.push({
9921
9926
  key: definition.key,
9922
9927
  access: definition.access,
9923
9928
  declared,
9924
9929
  approved,
9930
+ ...approvalSource,
9925
9931
  effective,
9926
9932
  });
9927
9933
  if (declared) {
@@ -9931,12 +9937,13 @@ function composeMiniappRuntimePermissions(local, approvals) {
9931
9937
  }
9932
9938
  const requestedOfficialDomain = declaration?.enabled === true && 'useOfficialDomain' in declaration && declaration.useOfficialDomain;
9933
9939
  const approvedOfficialDomain = approval?.config.useOfficialDomain === true;
9934
- const effectiveOfficialDomain = effective && (local.declared ? requestedOfficialDomain : true) && approvedOfficialDomain;
9940
+ const effectiveOfficialDomain = effective && (local.declared ? requestedOfficialDomain : true) && (approvedOfficialDomain || autoApproved);
9935
9941
  views.push({
9936
9942
  key: definition.key,
9937
9943
  access: definition.access,
9938
9944
  declared,
9939
9945
  approved,
9946
+ ...approvalSource,
9940
9947
  requestedConfig: { useOfficialDomain: requestedOfficialDomain },
9941
9948
  approvedConfig: { useOfficialDomain: approvedOfficialDomain },
9942
9949
  effective,
@@ -19374,6 +19381,7 @@ exports.LIST_USER_MINIPROGRAM_PERMISSION_APPLICATION_API_PATH = LIST_USER_MINIPR
19374
19381
  exports.LIST_USER_MINIPROGRAM_VERSION_API_PATH = LIST_USER_MINIPROGRAM_VERSION_API_PATH;
19375
19382
  exports.MINIAPP_UPLOAD_BATCH_SIZE = MINIAPP_UPLOAD_BATCH_SIZE;
19376
19383
  exports.MINIAPP_UPLOAD_SCOPE = MINIAPP_UPLOAD_SCOPE;
19384
+ exports.MINI_PROGRAM_PERMISSION_CATALOG = MINI_PROGRAM_PERMISSION_CATALOG;
19377
19385
  exports.MINI_PROGRAM_PERMISSION_KEYS = MINI_PROGRAM_PERMISSION_KEYS;
19378
19386
  exports.PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH = PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH;
19379
19387
  exports.Parser = Parser;
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var version = require('./version-CrnB-YNH.cjs');
3
+ var version = require('./version-BMp9qmtC.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-85kvRV7B.cjs');
7
+ var index = require('./index-9trmrUtW.cjs');
8
8
  require('node:module');
9
9
  require('path');
10
10
  require('os');
@@ -3,6 +3,6 @@
3
3
  /** 构建时替换为当前发布包的实际版本。 */
4
4
  const HB_SDK_VERSION = typeof undefined === 'string'
5
5
  ? undefined
6
- : '0.9.1-alpha.7';
6
+ : '0.9.1-alpha.8';
7
7
 
8
8
  exports.HB_SDK_VERSION = HB_SDK_VERSION;
package/dist/cli.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./cli-chunks/index-85kvRV7B.cjs');
3
+ var index = require('./cli-chunks/index-9trmrUtW.cjs');
4
4
  require('node:module');
5
5
  require('node:fs/promises');
6
6
  require('node:path');