@heybox/hb-sdk 0.9.1-alpha.6 → 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 (36) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +8 -5
  3. package/dist/cli-chunks/{browser-DUdEZCyq.cjs → browser-YVckob3g.cjs} +1 -1
  4. package/dist/cli-chunks/{build-DYYWRiaY.cjs → build-CQkpLf81.cjs} +5 -5
  5. package/dist/cli-chunks/{context-Bo4L-Cx_.cjs → context-CqJDNtEi.cjs} +2 -2
  6. package/dist/cli-chunks/{create-CKC4yp0J.cjs → create-BRuR2M7y.cjs} +1 -1
  7. package/dist/cli-chunks/{dev-BMX6UXUe.cjs → dev-KJAFHEg_.cjs} +10 -10
  8. package/dist/cli-chunks/{doctor-DqEYRo4I.cjs → doctor-DhiUViwk.cjs} +1 -1
  9. package/dist/cli-chunks/{index-J4uQvKT_.cjs → index-9trmrUtW.cjs} +16 -16
  10. package/dist/cli-chunks/{index-DmCWB_hF.cjs → index-rxAV5dza.cjs} +3 -3
  11. package/dist/cli-chunks/{index.esm-eNPTDv6W.cjs → index.esm-Cv9FlhXy.cjs} +7 -7
  12. package/dist/cli-chunks/{login-BL2OE6r9.cjs → login-5DEcU9eL.cjs} +2 -2
  13. package/dist/cli-chunks/{project-vite-Du1m7Y_3.cjs → project-vite-CXWFwbEz.cjs} +1 -1
  14. package/dist/cli-chunks/{remote-ZHJUtx6l.cjs → remote-laUZaGpI.cjs} +30 -22
  15. package/dist/cli-chunks/{runtime-gate-DedD3ynE.cjs → runtime-gate-DmJhPcNQ.cjs} +2 -2
  16. package/dist/cli-chunks/{runtime-permission-env-DWaPlchd.cjs → runtime-permission-env-Gy2dH17F.cjs} +14 -5
  17. package/dist/cli-chunks/{skill-D4z_a_BH.cjs → skill--mZIZkyn.cjs} +2 -2
  18. package/dist/cli-chunks/{version-tzrFwpkl.cjs → version-BMp9qmtC.cjs} +1 -1
  19. package/dist/cli.cjs +1 -1
  20. package/dist/devtools/browser-dev-host/assets/browser-dev-host-COdk-39n.js +102 -0
  21. package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-D6QZYpUq.js → desktop-app-launch-BU-vzcs0.js} +1 -1
  22. package/dist/devtools/browser-dev-host/assets/{index-Bqsp608m.js → index-BZBZfB4t.js} +3 -3
  23. package/dist/devtools/browser-dev-host/index.html +2 -2
  24. package/dist/index.cjs.js +80 -2
  25. package/dist/index.esm.js +80 -2
  26. package/dist/miniapp-publish.cjs.js +2 -1
  27. package/dist/miniapp-publish.esm.js +2 -1
  28. package/dist/protocol.cjs.js +9 -0
  29. package/dist/protocol.esm.js +9 -1
  30. package/dist/vite.cjs.js +3 -2
  31. package/dist/vite.esm.js +3 -2
  32. package/package.json +5 -5
  33. package/skill/skill.json +4 -4
  34. package/types/index.d.ts +85 -1
  35. package/types/protocol.d.ts +4 -1
  36. package/dist/devtools/browser-dev-host/assets/browser-dev-host-BL1URvGR.js +0 -102
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  本文件随 `@heybox/hb-sdk` npm 包公开分发,只记录外部小程序开发者可观察到的变化。
4
4
 
5
+ ## 0.9.1-alpha.8 - 2026-10-16
6
+
7
+ ### 问题修复
8
+
9
+ - 修复第一方小程序已声明权限在 CLI 查询、本地调试和发布检查中被误判为不可用的问题。
10
+ - 权限查询区分原始审批与有效权限,并展示第一方自动批准来源。
11
+
12
+ ## 0.9.1-alpha.7 - 2026-10-16
13
+
14
+ ### 新增能力
15
+
16
+ - 新增 `network.upload()`,使用受控文件发送 raw PUT/POST 或 multipart 上传,支持查询参数、请求头、进度、取消与响应状态校验。
17
+
18
+ ### 问题修复
19
+
20
+ - 文件和目录选择不再受普通请求超时限制,允许用户完成较长时间的系统选择操作。
21
+ - 补充上传、文件系统与下载验收,并按实际平台能力处理大小边界和多选限制。
22
+
5
23
  ## 0.9.1-alpha.6 - 2026-10-15
6
24
 
7
25
  ### 新增能力
package/README.md CHANGED
@@ -56,7 +56,7 @@ hb-sdk skill install --all-agents
56
56
 
57
57
  SDK 会在导入时启动握手,能力调用会自动等待 SDK 就绪。声明 `userInfo` 后,可通过 `user.getInfo()` 读取当前小程序内的隔离身份和已授权资料:
58
58
 
59
- 使用受保护能力前,需要在项目根 `package.json#heybox.permissions` 中显式声明。`auth.login()` 和 `user.getInfo()` 都只需要 `userInfo`,不依赖公开 `network` 权限;`network` 仅约束 `network.request()` 与 `network.download()`,线上使用仍需平台批准。`network` 和 `companion` 可在开放平台“小程序管理 → 权限申请”中提交申请,开发者不能申请访问官方域名。`hb-sdk dev` 可临时补齐普通网络和 Companion 的批准缺口,但不能补齐官方域名,调试台会持续提示发布后不可用。完整配置、本地调试边界和 0.8/0.9 迁移规则见[权限声明](https://docs.xiaoheihe.cn/hb_sdk/guide/permissions)。
59
+ 使用受保护能力前,需要在项目根 `package.json#heybox.permissions` 中显式声明。`auth.login()` 和 `user.getInfo()` 都只需要 `userInfo`,不依赖公开 `network` 权限;`network` 约束 `network.request()`、`network.download()` 与 `network.upload()`,线上使用仍需平台批准。`network` 和 `companion` 可在开放平台“小程序管理 → 权限申请”中提交申请,开发者不能申请访问官方域名。`hb-sdk dev` 可临时补齐普通网络和 Companion 的批准缺口,但不能补齐官方域名,调试台会持续提示发布后不可用。完整配置、本地调试边界和 0.8/0.9 迁移规则见[权限声明](https://docs.xiaoheihe.cn/hb_sdk/guide/permissions)。
60
60
 
61
61
  需要可信用户手势的按钮不能在点击回调里等待握手。页面加载时先用 `getHandshakeState()` 读取当前状态,再用 `onHandshakeStateChange()` 订阅并立即接收当前状态;仅在 `status === 'ready'` 时启用按钮,并在组件或页面销毁时调用订阅返回的取消函数。`ready` 生命周期事件只是握手成功瞬间派发、不会重放的边沿通知,不能用来判断当前状态。
62
62
 
@@ -181,7 +181,9 @@ console.log(info.sdk.version);
181
181
 
182
182
  `resizable` 只约束**用户手动拖拽**;**位置不开放**:开发者不能声明或设置窗口位置,位置由用户拖拽产生并由宿主按小程序身份本地记忆。完整语义见[窗口尺寸与可缩放性](https://docs.xiaoheihe.cn/hb_sdk/guide/window-size)。
183
183
 
184
- ## 文件与下载
184
+ ## 文件与传输
185
+
186
+ `network.upload()` 接收一个可读 `FileHandle`,由 Host 直接流式上传到开发者指定 URL。raw 支持 PUT(默认)/POST,multipart 固定 POST 并可携带字符串字段;支持进度、取消、空闲超时、可选大小限制和标准 HTTP 响应。文件字节不经过 iframe,上传期间应保持源文件不变;首版不自动重试、分片、续传或复制快照。PC、Android、iOS、OHOS 按真实 Host primitive 启用,旧 Host 明确拒绝。完整示例见[文件能力与沙箱](https://docs.xiaoheihe.cn/hb_sdk/guide/files-and-sandbox)。
185
187
 
186
188
  `files` 提供当前小程序私有 sandbox 和由用户选择授予的外部 File/Directory;
187
189
  `network.download()` 将 GET 响应直接流式写入受控目标,下载字节不经过 iframe bridge。
@@ -215,7 +217,8 @@ console.log(await downloaded.readText());
215
217
  不认识新 method 时返回 `METHOD_NOT_FOUND`。
216
218
  新 PC 的下载字节留在插件 Node 并直接原子落盘,不提供 Blob 或内存假实现。
217
219
 
218
- 外部 picker 必须从可信用户操作触发。`files.saveFile({ suggestedName })` 返回精确 File 授权,
220
+ 外部 picker 必须从可信用户操作触发。`files.pickFiles()`、`files.pickDirectory()` 和
221
+ `files.saveFile()` 的选择等待不设固定超时,不受 SDK 普通请求超时配置影响;确认、取消或 SDK / Runtime 会话结束后才结束操作。`files.saveFile({ suggestedName })` 返回精确 File 授权,
219
222
  不会额外保留 Directory 授权;新 PC 当前先让用户选择保存目录,再以 `suggestedName` 独占创建空文件,
220
223
  同名文件返回 `FILE_ALREADY_EXISTS`。V1 不接受 `accept`,只有 `pickFiles()` 支持扩展名过滤。完整路径、
221
224
  创建、存在性和下载语义见[快速开始](https://docs.xiaoheihe.cn/hb_sdk/guide/quick-start#文件与下载)。
@@ -326,7 +329,7 @@ SDK 还提供 `getHandshakeState()` / `onHandshakeStateChange()` 管理持久握
326
329
  | `storage` | 读写当前小程序的隔离存储 |
327
330
  | `files` | 声明受控 sandbox 与用户选择授权的文件、目录操作 |
328
331
  | `cloud` | 使用小程序云端排行榜 |
329
- | `network` | 发起经过平台授权的网络请求,并声明受控流式下载 |
332
+ | `network` | 发起经过平台授权的网络请求及受控文件传输 |
330
333
  | `companion` | 准备、启动并控制当前版本审核过的桌面辅助应用 |
331
334
 
332
335
  具体方法、参数和返回值以 [API Reference](https://docs.xiaoheihe.cn/hb_sdk/reference/) 为准,常见组合写法见 [Recipes](https://docs.xiaoheihe.cn/hb_sdk/recipes/)。
@@ -500,7 +503,7 @@ Host/Runtime 集成维护者请先阅读 [`@heybox/hb-sdk-runtime` README](../hb
500
503
 
501
504
  ### 终端权限申请
502
505
 
503
- 绑定小程序后,可用 `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#终端权限申请)。
504
507
 
505
508
  ### 工作区卡片(开发中)
506
509
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-J4uQvKT_.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-DedD3ynE.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-DWaPlchd.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-J4uQvKT_.cjs');
11
- var projectVite = require('./project-vite-Du1m7Y_3.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-tzrFwpkl.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-DWaPlchd.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-J4uQvKT_.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-J4uQvKT_.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-J4uQvKT_.cjs');
4
- var context = require('./context-Bo4L-Cx_.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-DWaPlchd.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-DUdEZCyq.cjs');
19
- var projectVite = require('./project-vite-Du1m7Y_3.cjs');
20
- var version = require('./version-tzrFwpkl.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-BMX6UXUe.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-BMX6UXUe.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-eNPTDv6W.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-J4uQvKT_.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-J4uQvKT_.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-J4uQvKT_.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-J4uQvKT_.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-J4uQvKT_.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-J4uQvKT_.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-J4uQvKT_.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.6';
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-BL2OE6r9.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-BL2OE6r9.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-BL2OE6r9.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-DYYWRiaY.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-CKC4yp0J.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-BMX6UXUe.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-DqEYRo4I.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-D4z_a_BH.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-ZHJUtx6l.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-J4uQvKT_.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-DWaPlchd.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-DedD3ynE.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-J4uQvKT_.cjs');
15
- var dev = require('./dev-BMX6UXUe.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-Bo4L-Cx_.cjs');
35
- require('./runtime-permission-env-DWaPlchd.cjs');
36
- require('./version-tzrFwpkl.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-DUdEZCyq.cjs');
44
- require('./project-vite-Du1m7Y_3.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-J4uQvKT_.cjs');
7
- var browser = require('./browser-DUdEZCyq.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-J4uQvKT_.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-DWaPlchd.cjs');
4
- var context = require('./context-Bo4L-Cx_.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-J4uQvKT_.cjs');
7
- var runtimeGate = require('./runtime-gate-DedD3ynE.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-tzrFwpkl.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-DmCWB_hF.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-DWaPlchd.cjs');
9
- var index = require('./index-J4uQvKT_.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-tzrFwpkl.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
 
@@ -77,6 +77,7 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
77
77
  config: {},
78
78
  methods: [
79
79
  'network.download',
80
+ 'network.upload',
80
81
  'files.pickFiles',
81
82
  'files.pickDirectory',
82
83
  'files.saveFile',
@@ -135,7 +136,7 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
135
136
  description: '是否申请访问小黑盒官方域名。',
136
137
  },
137
138
  },
138
- methods: ['network.request', 'network.download'],
139
+ methods: ['network.request', 'network.download', 'network.upload'],
139
140
  conditions: ['声明后仍需平台批准,并继续执行网络安全策略。'],
140
141
  },
141
142
  {
@@ -9898,8 +9899,11 @@ function requiresExplicitPermissions(sdkVersion) {
9898
9899
  throw new Error(`sdkVersion 必须是合法 SemVer:${sdkVersion}`);
9899
9900
  return parsed.major > 0 || parsed.minor >= 9;
9900
9901
  }
9901
- function composeMiniappRuntimePermissions(local, approvals) {
9902
+ function composeMiniappRuntimePermissions(local, approvals,
9903
+ /** 仅传入已验证的远端小程序详情身份,不能来自本地调试覆盖。 */
9904
+ partyType) {
9902
9905
  const parsedApprovals = parseMiniProgramRuntimePermissions(approvals);
9906
+ const firstParty = local.declared && parsedApprovals.valid && partyType === 'first_party';
9903
9907
  const approvalRevision = isRecord$3(approvals) && Number.isInteger(approvals.revision) ? approvals.revision : undefined;
9904
9908
  const views = [];
9905
9909
  const entries = [];
@@ -9914,13 +9918,16 @@ function composeMiniappRuntimePermissions(local, approvals) {
9914
9918
  }
9915
9919
  const approval = parsedApprovals.valid ? parsedApprovals.permissions[definition.key] : undefined;
9916
9920
  const approved = approval?.status === 'enabled';
9917
- const effective = declared && approved;
9921
+ const autoApproved = firstParty && declared;
9922
+ const approvalSource = autoApproved ? { approvalSource: 'first-party' } : {};
9923
+ const effective = declared && (approved || autoApproved);
9918
9924
  if (definition.key !== 'network') {
9919
9925
  views.push({
9920
9926
  key: definition.key,
9921
9927
  access: definition.access,
9922
9928
  declared,
9923
9929
  approved,
9930
+ ...approvalSource,
9924
9931
  effective,
9925
9932
  });
9926
9933
  if (declared) {
@@ -9930,12 +9937,13 @@ function composeMiniappRuntimePermissions(local, approvals) {
9930
9937
  }
9931
9938
  const requestedOfficialDomain = declaration?.enabled === true && 'useOfficialDomain' in declaration && declaration.useOfficialDomain;
9932
9939
  const approvedOfficialDomain = approval?.config.useOfficialDomain === true;
9933
- const effectiveOfficialDomain = effective && (local.declared ? requestedOfficialDomain : true) && approvedOfficialDomain;
9940
+ const effectiveOfficialDomain = effective && (local.declared ? requestedOfficialDomain : true) && (approvedOfficialDomain || autoApproved);
9934
9941
  views.push({
9935
9942
  key: definition.key,
9936
9943
  access: definition.access,
9937
9944
  declared,
9938
9945
  approved,
9946
+ ...approvalSource,
9939
9947
  requestedConfig: { useOfficialDomain: requestedOfficialDomain },
9940
9948
  approvedConfig: { useOfficialDomain: approvedOfficialDomain },
9941
9949
  effective,
@@ -19373,6 +19381,7 @@ exports.LIST_USER_MINIPROGRAM_PERMISSION_APPLICATION_API_PATH = LIST_USER_MINIPR
19373
19381
  exports.LIST_USER_MINIPROGRAM_VERSION_API_PATH = LIST_USER_MINIPROGRAM_VERSION_API_PATH;
19374
19382
  exports.MINIAPP_UPLOAD_BATCH_SIZE = MINIAPP_UPLOAD_BATCH_SIZE;
19375
19383
  exports.MINIAPP_UPLOAD_SCOPE = MINIAPP_UPLOAD_SCOPE;
19384
+ exports.MINI_PROGRAM_PERMISSION_CATALOG = MINI_PROGRAM_PERMISSION_CATALOG;
19376
19385
  exports.MINI_PROGRAM_PERMISSION_KEYS = MINI_PROGRAM_PERMISSION_KEYS;
19377
19386
  exports.PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH = PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH;
19378
19387
  exports.Parser = Parser;
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var version = require('./version-tzrFwpkl.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-J4uQvKT_.cjs');
7
+ var index = require('./index-9trmrUtW.cjs');
8
8
  require('node:module');
9
9
  require('path');
10
10
  require('os');