@heybox/hb-sdk 0.9.2-alpha.0 → 0.9.2-alpha.2

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 (35) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +16 -1
  3. package/dist/cli-chunks/{build-D_WFX7k0.cjs → build-CyswVc4b.cjs} +5 -5
  4. package/dist/cli-chunks/{context-9AzsNffz.cjs → context-Dr_SFRYa.cjs} +2 -2
  5. package/dist/cli-chunks/{create-Crb_TIGw.cjs → create-DY4e3-ai.cjs} +1 -1
  6. package/dist/cli-chunks/{dev-Bt7baZld.cjs → dev-DKuNXTMr.cjs} +9 -8
  7. package/dist/cli-chunks/{doctor-BDvcQDhr.cjs → doctor-FC9aE_Ku.cjs} +1 -1
  8. package/dist/cli-chunks/{index-HprlZ2zE.cjs → index-B8qBsp6f.cjs} +16 -16
  9. package/dist/cli-chunks/{index-COrp4A_r.cjs → index-B9xW1kud.cjs} +1 -1
  10. package/dist/cli-chunks/{index.esm-BWs3tf3O.cjs → index.esm-D7sYo7d4.cjs} +6 -6
  11. package/dist/cli-chunks/{login-Cx71xOGJ.cjs → login-D8w3N8jn.cjs} +1 -1
  12. package/dist/cli-chunks/{project-vite-B81ymoLT.cjs → project-vite-BDpkwL6C.cjs} +1 -1
  13. package/dist/cli-chunks/{remote-1w_i96x-.cjs → remote-kpeucBW7.cjs} +6 -6
  14. package/dist/cli-chunks/{runtime-gate-DwBSYQOE.cjs → runtime-gate-C3P-8VeT.cjs} +2 -2
  15. package/dist/cli-chunks/{runtime-permission-env-Dx1msYpN.cjs → runtime-permission-env-BBLrXaE_.cjs} +19 -19
  16. package/dist/cli-chunks/{skill-DuW-YJCy.cjs → skill-B4LVsoOx.cjs} +2 -2
  17. package/dist/cli-chunks/{version-0WiS_IOu.cjs → version-DgbarBxd.cjs} +1 -1
  18. package/dist/cli.cjs +1 -1
  19. package/dist/devtools/browser-dev-host/assets/browser-dev-host--bEdWcBx.js +102 -0
  20. package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-BsIjbmXH.js → desktop-app-launch-zP3CDynX.js} +1 -1
  21. package/dist/devtools/browser-dev-host/assets/{index-8RmhA6dc.js → index-BnkA-gEX.js} +3 -3
  22. package/dist/devtools/browser-dev-host/index.html +2 -2
  23. package/dist/index.cjs.js +24 -2
  24. package/dist/index.esm.js +24 -2
  25. package/dist/miniapp-publish.cjs.js +16 -17
  26. package/dist/miniapp-publish.esm.js +16 -17
  27. package/dist/protocol.cjs.js +43 -0
  28. package/dist/protocol.esm.js +40 -1
  29. package/dist/vite.cjs.js +17 -18
  30. package/dist/vite.esm.js +17 -18
  31. package/package.json +7 -5
  32. package/skill/skill.json +4 -4
  33. package/types/index.d.ts +68 -2
  34. package/types/protocol.d.ts +1 -1
  35. package/dist/devtools/browser-dev-host/assets/browser-dev-host-P4sQy5jb.js +0 -102
package/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  本文件随 `@heybox/hb-sdk` npm 包公开分发,只记录外部小程序开发者可观察到的变化。
4
4
 
5
+ ## 0.9.2-alpha.2 - 2026-10-19
6
+
7
+ ### 新增能力
8
+
9
+ - 新增云端字符串存储 `cloud.storage.getStorage()`、`setStorage()`、`getKeys()` 和 `removeItem()`;须声明 `cloud_storage` 权限并登录,数据按小程序与用户隔离。
10
+
11
+ ### 行为调整
12
+
13
+ - 云存储 key 仅支持英文字母、数字、下划线和连字符,最长 128 字符;value 最大 16 KB,不存在的 key 返回 `undefined`。
14
+ - 同 key 在固定 500ms 窗口内合并最终写入值,并发版本由 Runtime 自动维护,无需开发者传递。
15
+
16
+ ### 问题修复
17
+
18
+ - 修复同账号登录态刷新导致云存储误报登录状态变化的问题;账号切换后仍清理旧账号缓存并拒绝过期请求。
19
+
20
+ ## 0.9.2-alpha.1 - 2026-10-19
21
+
22
+ ### 问题修复
23
+
24
+ - 修复部分受限运行环境中,启动时产生额外安全告警、干扰调试台排查的问题。
25
+
5
26
  ## 0.9.2-alpha.0 - 2026-10-19
6
27
 
7
28
  ### 问题修复
package/README.md CHANGED
@@ -328,7 +328,7 @@ SDK 还提供 `getHandshakeState()` / `onHandshakeStateChange()` 管理持久握
328
328
  | `viewport` | 读取窗口信息、设置方向/胶囊及导航栏样式 |
329
329
  | `storage` | 读写当前小程序的隔离存储 |
330
330
  | `files` | 声明受控 sandbox 与用户选择授权的文件、目录操作 |
331
- | `cloud` | 使用小程序云端排行榜 |
331
+ | `cloud` | 使用小程序云端排行榜与用户私有云端存储 |
332
332
  | `network` | 发起经过平台授权的网络请求及受控文件传输 |
333
333
  | `companion` | 准备、启动并控制当前版本审核过的桌面辅助应用 |
334
334
 
@@ -451,6 +451,21 @@ async function deleteMyLeaderboardEntryFromUserAction() {
451
451
  hb-sdk remote cloud leaderboard delete <key> --confirm <key>
452
452
  ```
453
453
 
454
+ ## 云端存储
455
+
456
+ `cloud.storage` 保存当前登录用户在当前小程序下的私有字符串数据,需要独立声明 `cloud_storage` 权限。key 仅支持 1–128 位英文字母、数字、下划线和连字符,value 最多 16KB,每个用户每个小程序最多 64 个 key。
457
+
458
+ ```ts
459
+ await hbSDK.cloud.storage.setStorage('save', JSON.stringify(nextSave));
460
+ const value = await hbSDK.cloud.storage.getStorage('save'); // string | undefined
461
+ const keys = await hbSDK.cloud.storage.getKeys(); // string[]
462
+ await hbSDK.cloud.storage.removeItem('save'); // 删除键和值
463
+ ```
464
+
465
+ Runtime 自动管理内部版本凭证。同 key 的 set 在首笔调用起固定 500ms 窗口内合并,仅提交最终值,后续调用不延长窗口;不同 key 独立请求,同 key 串行且不跨删除合并。合并调用在最终值获远端确认后一起完成;冲突通过 `HbMiniProgramSDKError` 的 `VERSION_CONFLICT` 返回,不自动覆盖重试。
466
+
467
+ 详见[云端存储指南](https://docs.xiaoheihe.cn/hb_sdk/guide/cloud-storage)。
468
+
454
469
  ## CLI 主流程
455
470
 
456
471
  ```bash
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var runtimeGate = require('./runtime-gate-DwBSYQOE.cjs');
3
+ var runtimeGate = require('./runtime-gate-C3P-8VeT.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-Dx1msYpN.cjs');
8
- var index = require('./index-HprlZ2zE.cjs');
7
+ var runtimePermissionEnv = require('./runtime-permission-env-BBLrXaE_.cjs');
8
+ var index = require('./index-B8qBsp6f.cjs');
9
9
  require('node:crypto');
10
10
  require('node:zlib');
11
- var projectVite = require('./project-vite-B81ymoLT.cjs');
11
+ var projectVite = require('./project-vite-BDpkwL6C.cjs');
12
12
  require('node:module');
13
13
  require('node:url');
14
14
  require('./_commonjs-dynamic-modules-DUamuDzp.cjs');
@@ -16,7 +16,7 @@ require('fs');
16
16
  require('path');
17
17
  require('os');
18
18
  require('inspector');
19
- require('./version-0WiS_IOu.cjs');
19
+ require('./version-DgbarBxd.cjs');
20
20
  require('node:async_hooks');
21
21
  require('readline');
22
22
  require('tty');
@@ -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-Dx1msYpN.cjs');
6
+ var runtimePermissionEnv = require('./runtime-permission-env-BBLrXaE_.cjs');
7
7
  var fs$1 = require('node:fs');
8
8
  var sharp = require('sharp');
9
- var index = require('./index-HprlZ2zE.cjs');
9
+ var index = require('./index-B8qBsp6f.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-HprlZ2zE.cjs');
8
+ var index = require('./index-B8qBsp6f.cjs');
9
9
  require('node:module');
10
10
  require('readline');
11
11
  require('os');
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-HprlZ2zE.cjs');
4
- var context = require('./context-9AzsNffz.cjs');
3
+ var index = require('./index-B8qBsp6f.cjs');
4
+ var context = require('./context-Dr_SFRYa.cjs');
5
5
  var node_crypto = require('node:crypto');
6
6
  var fs = require('node:fs');
7
- var runtimePermissionEnv = require('./runtime-permission-env-Dx1msYpN.cjs');
7
+ var runtimePermissionEnv = require('./runtime-permission-env-BBLrXaE_.cjs');
8
8
  var os = require('node:os');
9
9
  var path = require('node:path');
10
10
  var net = require('node:net');
@@ -16,8 +16,8 @@ var fs$1 = require('node:fs/promises');
16
16
  var require$$0$1 = require('crypto');
17
17
  var require$$0 = require('buffer');
18
18
  var browser = require('./browser-RAy8e8cV.cjs');
19
- var projectVite = require('./project-vite-B81ymoLT.cjs');
20
- var version = require('./version-0WiS_IOu.cjs');
19
+ var projectVite = require('./project-vite-BDpkwL6C.cjs');
20
+ var version = require('./version-DgbarBxd.cjs');
21
21
  require('node:zlib');
22
22
 
23
23
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
@@ -634,6 +634,7 @@ const DENIED_REQUEST_HEADERS = new Set([
634
634
  'trailer',
635
635
  'transfer-encoding',
636
636
  'upgrade',
637
+ 'x-heybox-runtime-auth-context-token',
637
638
  ]);
638
639
  /** 任意 origin 都不得通过公开 network.request 访问的 Runtime 私有路径。 */
639
640
  const PUBLIC_NETWORK_PROTECTED_PATH_PREFIXES = ['/user_miniprogram/runtime/auth', '/user_miniprogram/openapi/v1'];
@@ -1994,8 +1995,8 @@ const DEFAULT_CHANNEL_TRANSPORT = {
1994
1995
  };
1995
1996
  const IPV4_LOOPBACK_ADDRESSES = new net.BlockList();
1996
1997
  IPV4_LOOPBACK_ADDRESSES.addSubnet('127.0.0.0', 8, 'ipv4');
1997
- 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-Bt7baZld.cjs', document.baseURI).href)))('ws');
1998
- 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-Bt7baZld.cjs', document.baseURI).href)))('parse5');
1998
+ 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-DKuNXTMr.cjs', document.baseURI).href)))('ws');
1999
+ 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-DKuNXTMr.cjs', document.baseURI).href)))('parse5');
1999
2000
  const BROWSER_DEV_HOST_ROOT_CANDIDATES = [
2000
2001
  path.resolve(__dirname, 'devtools/browser-dev-host'),
2001
2002
  path.resolve(__dirname, '../devtools/browser-dev-host'),
@@ -11099,7 +11100,7 @@ function assertNodeRuntimeCapabilities(ctx, settings) {
11099
11100
  function createNodeRealtimeDriverRegistry() {
11100
11101
  const registry = createRuntimeRealtimeDriverRegistry();
11101
11102
  registry.registerLazy('node-websocket', async () => {
11102
- const mod = await Promise.resolve().then(function () { return require('./index.esm-BWs3tf3O.cjs'); });
11103
+ const mod = await Promise.resolve().then(function () { return require('./index.esm-D7sYo7d4.cjs'); });
11103
11104
  return mod.createNodeWebSocketRuntimeDriver();
11104
11105
  });
11105
11106
  return registry;
@@ -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-HprlZ2zE.cjs');
6
+ var index = require('./index-B8qBsp6f.cjs');
7
7
  require('node:module');
8
8
  require('readline');
9
9
  require('os');
@@ -238,19 +238,19 @@ function requireArgument () {
238
238
 
239
239
  var command = {};
240
240
 
241
- 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-HprlZ2zE.cjs', document.baseURI).href)));
241
+ 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-B8qBsp6f.cjs', document.baseURI).href)));
242
242
  function __require$4() { return require$5("node:events"); }
243
243
 
244
- 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-HprlZ2zE.cjs', document.baseURI).href)));
244
+ 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-B8qBsp6f.cjs', document.baseURI).href)));
245
245
  function __require$3() { return require$4("node:child_process"); }
246
246
 
247
- 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-HprlZ2zE.cjs', document.baseURI).href)));
247
+ 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-B8qBsp6f.cjs', document.baseURI).href)));
248
248
  function __require$2() { return require$3("node:path"); }
249
249
 
250
- 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-HprlZ2zE.cjs', document.baseURI).href)));
250
+ 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-B8qBsp6f.cjs', document.baseURI).href)));
251
251
  function __require$1() { return require$2("node:fs"); }
252
252
 
253
- 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-HprlZ2zE.cjs', document.baseURI).href)));
253
+ 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-B8qBsp6f.cjs', document.baseURI).href)));
254
254
  function __require() { return require$1("node:process"); }
255
255
 
256
256
  var help = {};
@@ -17249,7 +17249,7 @@ async function inspectFeedbackLog(file, size) {
17249
17249
  return { mimeType: 'text/plain', width: 0, height: 0 };
17250
17250
  }
17251
17251
  async function createFeedbackCosClient(getToken) {
17252
- const { default: COS } = await Promise.resolve().then(function () { return require('./index-COrp4A_r.cjs'); }).then(function (n) { return n.index; });
17252
+ const { default: COS } = await Promise.resolve().then(function () { return require('./index-B9xW1kud.cjs'); }).then(function (n) { return n.index; });
17253
17253
  const cos = new COS({
17254
17254
  getAuthorization(_options, callback) {
17255
17255
  void getToken().then((token) => callback({
@@ -20900,7 +20900,7 @@ function readEnvNameArgFromArgv(argv) {
20900
20900
  }
20901
20901
 
20902
20902
  const CLI_VERSION_PLACEHOLDER = ['__HB', 'SDK', 'CLI', 'VERSION__'].join('_');
20903
- const BUILT_CLI_VERSION = '0.9.2-alpha.0';
20903
+ const BUILT_CLI_VERSION = '0.9.2-alpha.2';
20904
20904
  const PACKAGE_JSON_CANDIDATES = [
20905
20905
  path.resolve(__dirname, '..', '..', 'package.json'),
20906
20906
  path.resolve(__dirname, '..', 'package.json'),
@@ -21269,39 +21269,39 @@ function createCommandLoggerResolver(options) {
21269
21269
  };
21270
21270
  }
21271
21271
  const defaultClearLoginStatus = async (...args) => {
21272
- const { clearLoginStatus } = await Promise.resolve().then(function () { return require('./login-Cx71xOGJ.cjs'); });
21272
+ const { clearLoginStatus } = await Promise.resolve().then(function () { return require('./login-D8w3N8jn.cjs'); });
21273
21273
  return clearLoginStatus(...args);
21274
21274
  };
21275
21275
  const defaultLoginToHeybox = async (...args) => {
21276
- const { loginToHeybox } = await Promise.resolve().then(function () { return require('./login-Cx71xOGJ.cjs'); });
21276
+ const { loginToHeybox } = await Promise.resolve().then(function () { return require('./login-D8w3N8jn.cjs'); });
21277
21277
  return loginToHeybox(...args);
21278
21278
  };
21279
21279
  const defaultPrintLoginStatus = async (...args) => {
21280
- const { printLoginStatus } = await Promise.resolve().then(function () { return require('./login-Cx71xOGJ.cjs'); });
21280
+ const { printLoginStatus } = await Promise.resolve().then(function () { return require('./login-D8w3N8jn.cjs'); });
21281
21281
  return printLoginStatus(...args);
21282
21282
  };
21283
21283
  const defaultRunBuildCommand = async (...args) => {
21284
- const { runBuildCommand } = await Promise.resolve().then(function () { return require('./build-D_WFX7k0.cjs'); });
21284
+ const { runBuildCommand } = await Promise.resolve().then(function () { return require('./build-CyswVc4b.cjs'); });
21285
21285
  return runBuildCommand(...args);
21286
21286
  };
21287
21287
  const defaultRunCreateCommand = async (...args) => {
21288
- const { runCreateCommand } = await Promise.resolve().then(function () { return require('./create-Crb_TIGw.cjs'); });
21288
+ const { runCreateCommand } = await Promise.resolve().then(function () { return require('./create-DY4e3-ai.cjs'); });
21289
21289
  return runCreateCommand(...args);
21290
21290
  };
21291
21291
  const defaultRunDevCommand = async (...args) => {
21292
- const { runDevCommand } = await Promise.resolve().then(function () { return require('./dev-Bt7baZld.cjs'); }).then(function (n) { return n.dev; });
21292
+ const { runDevCommand } = await Promise.resolve().then(function () { return require('./dev-DKuNXTMr.cjs'); }).then(function (n) { return n.dev; });
21293
21293
  return runDevCommand(...args);
21294
21294
  };
21295
21295
  const defaultRunDoctorCommand = async (...args) => {
21296
- const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-BDvcQDhr.cjs'); });
21296
+ const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-FC9aE_Ku.cjs'); });
21297
21297
  return runDoctorCommand(...args);
21298
21298
  };
21299
21299
  const defaultRunSkillInstallCommand = async (...args) => {
21300
- const { runSkillInstallCommand } = await Promise.resolve().then(function () { return require('./skill-DuW-YJCy.cjs'); });
21300
+ const { runSkillInstallCommand } = await Promise.resolve().then(function () { return require('./skill-B4LVsoOx.cjs'); });
21301
21301
  return runSkillInstallCommand(...args);
21302
21302
  };
21303
21303
  const defaultRunRemoteCommand = async (...args) => {
21304
- const { runRemoteCommand } = await Promise.resolve().then(function () { return require('./remote-1w_i96x-.cjs'); });
21304
+ const { runRemoteCommand } = await Promise.resolve().then(function () { return require('./remote-kpeucBW7.cjs'); });
21305
21305
  return runRemoteCommand(...args);
21306
21306
  };
21307
21307
  function resolveStandaloneLogger(options, verbose) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index$2 = require('./index-HprlZ2zE.cjs');
3
+ var index$2 = require('./index-B8qBsp6f.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');
@@ -11,8 +11,8 @@ var require$$0$3 = require('url');
11
11
  var require$$5 = require('zlib');
12
12
  var require$$0 = require('buffer');
13
13
  var require$$1 = require('util');
14
- var index = require('./index-HprlZ2zE.cjs');
15
- var dev = require('./dev-Bt7baZld.cjs');
14
+ var index = require('./index-B8qBsp6f.cjs');
15
+ var dev = require('./dev-DKuNXTMr.cjs');
16
16
  require('node:module');
17
17
  require('readline');
18
18
  require('os');
@@ -26,9 +26,9 @@ require('constants');
26
26
  require('node:fs');
27
27
  require('node:fs/promises');
28
28
  require('node:zlib');
29
- require('./context-9AzsNffz.cjs');
30
- require('./runtime-permission-env-Dx1msYpN.cjs');
31
- require('./version-0WiS_IOu.cjs');
29
+ require('./context-Dr_SFRYa.cjs');
30
+ require('./runtime-permission-env-BBLrXaE_.cjs');
31
+ require('./version-DgbarBxd.cjs');
32
32
  require('node:async_hooks');
33
33
  require('sharp');
34
34
  require('node:os');
@@ -42,7 +42,7 @@ require('node:buffer');
42
42
  require('node:url');
43
43
  require('node:util');
44
44
  require('node:child_process');
45
- require('./project-vite-B81ymoLT.cjs');
45
+ require('./project-vite-BDpkwL6C.cjs');
46
46
 
47
47
  var bufferUtil = {exports: {}};
48
48
 
@@ -3,7 +3,7 @@
3
3
  var promises = require('node:readline/promises');
4
4
  var node_crypto = require('node:crypto');
5
5
  var node_http = require('node:http');
6
- var index = require('./index-HprlZ2zE.cjs');
6
+ var index = require('./index-B8qBsp6f.cjs');
7
7
  var browser = require('./browser-RAy8e8cV.cjs');
8
8
  require('node:module');
9
9
  require('readline');
@@ -5,7 +5,7 @@ var fs$1 = require('node:fs/promises');
5
5
  var node_module = require('node:module');
6
6
  var path = require('node:path');
7
7
  var node_url = require('node:url');
8
- var index = require('./index-HprlZ2zE.cjs');
8
+ var index = require('./index-B8qBsp6f.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-Dx1msYpN.cjs');
4
- var context = require('./context-9AzsNffz.cjs');
3
+ var runtimePermissionEnv = require('./runtime-permission-env-BBLrXaE_.cjs');
4
+ var context = require('./context-Dr_SFRYa.cjs');
5
5
  var promises = require('node:readline/promises');
6
- var index = require('./index-HprlZ2zE.cjs');
7
- var runtimeGate = require('./runtime-gate-DwBSYQOE.cjs');
6
+ var index = require('./index-B8qBsp6f.cjs');
7
+ var runtimeGate = require('./runtime-gate-C3P-8VeT.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-0WiS_IOu.cjs');
14
+ require('./version-DgbarBxd.cjs');
15
15
  require('node:async_hooks');
16
16
  require('sharp');
17
17
  require('node:module');
@@ -286,7 +286,7 @@ function createDefaultCosClient(uploadToken, COS) {
286
286
  };
287
287
  }
288
288
  async function loadCosConstructor() {
289
- const cosModule = await Promise.resolve().then(function () { return require('./index-COrp4A_r.cjs'); }).then(function (n) { return n.index; });
289
+ const cosModule = await Promise.resolve().then(function () { return require('./index-B9xW1kud.cjs'); }).then(function (n) { return n.index; });
290
290
  return cosModule.default;
291
291
  }
292
292
  function formatSize(bytes) {
@@ -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-Dx1msYpN.cjs');
9
- var index = require('./index-HprlZ2zE.cjs');
8
+ var runtimePermissionEnv = require('./runtime-permission-env-BBLrXaE_.cjs');
9
+ var index = require('./index-B8qBsp6f.cjs');
10
10
  var _commonjsDynamicModules = require('./_commonjs-dynamic-modules-DUamuDzp.cjs');
11
11
  var require$$0$1 = require('fs');
12
12
  var require$$1 = require('path');
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-HprlZ2zE.cjs');
3
+ var index = require('./index-B8qBsp6f.cjs');
4
4
  var fs = require('node:fs');
5
5
  var path = require('node:path');
6
- var version$1 = require('./version-0WiS_IOu.cjs');
6
+ var version$1 = require('./version-DgbarBxd.cjs');
7
7
  require('node:crypto');
8
8
  var node_async_hooks = require('node:async_hooks');
9
9
 
@@ -69,6 +69,16 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
69
69
  methods: ['storage.getStorage', 'storage.setStorage'],
70
70
  conditions: ['仅用于简单键值存储,不包含文件系统。'],
71
71
  },
72
+ {
73
+ key: 'cloud_storage',
74
+ name: '云端存储',
75
+ description: '读写按小程序和当前登录用户隔离的云端键值数据。',
76
+ access: 'declaration',
77
+ risk: 'medium',
78
+ config: {},
79
+ methods: ['cloud.storage.getStorage', 'cloud.storage.setStorage', 'cloud.storage.removeItem', 'cloud.storage.getKeys'],
80
+ conditions: ['云端存储按登录用户隔离并受容量配额限制。'],
81
+ },
72
82
  {
73
83
  key: 'filesystem',
74
84
  name: '文件系统',
@@ -163,23 +173,6 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
163
173
  ],
164
174
  conditions: ['声明后仍需平台批准,并继续执行可信用户手势、Host 能力和当前版本 Manifest 校验。'],
165
175
  },
166
- {
167
- "key": "cloud_storage",
168
- "name": "云端存储",
169
- "description": "读写按小程序和当前登录用户隔离的云端键值数据。",
170
- "access": "declaration",
171
- "risk": "medium",
172
- "config": {},
173
- "methods": [
174
- "cloud.storage.getItem",
175
- "cloud.storage.setItem",
176
- "cloud.storage.removeItem",
177
- "cloud.storage.getKeys"
178
- ],
179
- "conditions": [
180
- "云端存储按登录用户隔离并受容量配额限制。"
181
- ]
182
- },
183
176
  {
184
177
  key: 'appProtocol',
185
178
  name: '应用协议执行',
@@ -215,6 +208,7 @@ const MANAGED_RUNTIME_PERMISSION_KEYS = new Set(MINI_PROGRAM_PERMISSION_KEYS);
215
208
  * - `steamLibrary`
216
209
  * - `share`
217
210
  * - `storage`
211
+ * - `cloud_storage`
218
212
  * - `filesystem`
219
213
  * - `clipboard`
220
214
  * - `leaderboard`
@@ -566,6 +560,8 @@ class $ZodEncodeError extends Error {
566
560
  (_a$1 = globalThis).__zod_globalConfig ?? (_a$1.__zod_globalConfig = {});
567
561
  const globalConfig = globalThis.__zod_globalConfig;
568
562
  function config(newConfig) {
563
+ if (newConfig)
564
+ Object.assign(globalConfig, newConfig);
569
565
  return globalConfig;
570
566
  }
571
567
 
@@ -5688,6 +5684,10 @@ function json(params) {
5688
5684
  return jsonSchema;
5689
5685
  }
5690
5686
 
5687
+ // 必须先于 view-contract 的 schema 创建执行,避免能力试探本身触发 CSP 违规。
5688
+ // 合同包面向禁止动态执行的运行环境,始终使用解释式校验,不依赖宿主探测。
5689
+ config({ jitless: true });
5690
+
5691
5691
  // ../view-contract/src/schema.ts
5692
5692
  var VIEW_SCHEMA_VERSION = 1;
5693
5693
  var VIEW_BUDGET = {
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var version = require('./version-0WiS_IOu.cjs');
3
+ var version = require('./version-DgbarBxd.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-HprlZ2zE.cjs');
7
+ var index = require('./index-B8qBsp6f.cjs');
8
8
  require('node:module');
9
9
  require('readline');
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.2-alpha.0';
6
+ : '0.9.2-alpha.2';
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-HprlZ2zE.cjs');
3
+ var index = require('./cli-chunks/index-B8qBsp6f.cjs');
4
4
  require('node:module');
5
5
  require('readline');
6
6
  require('os');