@heybox/hb-sdk 0.8.3-alpha.1 → 0.8.3-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +39 -1
  3. package/dist/cli-chunks/{build-DUtuGfHf.cjs → build-Dydd4Rzd.cjs} +11 -7
  4. package/dist/cli-chunks/{context-DebQqIXh.cjs → context-DcuY0bGO.cjs} +2 -2
  5. package/dist/cli-chunks/{create-BYQb0ptI.cjs → create-DKVTlorM.cjs} +1 -1
  6. package/dist/cli-chunks/{dev-ILhZhsHN.cjs → dev-DbrUeTqi.cjs} +9 -9
  7. package/dist/cli-chunks/{doctor-KSe4lGEv.cjs → doctor-D184dg_h.cjs} +1 -1
  8. package/dist/cli-chunks/{index-IBIMsIDt.cjs → index-BG8JJ9pA.cjs} +2 -2
  9. package/dist/cli-chunks/{index-PKu0Zv8R.cjs → index-B_HjHK3d.cjs} +15 -15
  10. package/dist/cli-chunks/{index.esm-Sczt7W37.cjs → index.esm-42g2R7qD.cjs} +7 -7
  11. package/dist/cli-chunks/{login-i8NtyI10.cjs → login-D3MBcgNb.cjs} +2 -2
  12. package/dist/cli-chunks/{project-vite-BU2-_Krd.cjs → project-vite-CUh6Dsv5.cjs} +1 -1
  13. package/dist/cli-chunks/{remote-B-f9D0yj.cjs → remote-EBGDOJL3.cjs} +11 -7
  14. package/dist/cli-chunks/{runtime-gate-xuikbF7W.cjs → runtime-gate-CE1ln9xc.cjs} +1 -1
  15. package/dist/cli-chunks/{runtime-permission-env-Bl2jhPQm.cjs → runtime-permission-env-CVt4QPbX.cjs} +20 -1
  16. package/dist/cli-chunks/{session-CySUtnTY.cjs → session-CKuEz-ih.cjs} +1 -1
  17. package/dist/cli-chunks/{skill-BN_mjQ_T.cjs → skill-oLEQS_U6.cjs} +2 -2
  18. package/dist/cli-chunks/{version-BTkX3iYg.cjs → version-BNNxfn8M.cjs} +1 -1
  19. package/dist/cli.cjs +1 -1
  20. package/dist/devtools/browser-dev-host/assets/browser-dev-host-u03IcCCS.js +101 -0
  21. package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-DulYZqY1.js → desktop-app-launch-EnOYLhEx.js} +1 -1
  22. package/dist/devtools/browser-dev-host/assets/{index-BOHssdFQ.js → index-8YA6OLi7.js} +3 -3
  23. package/dist/devtools/browser-dev-host/index.html +2 -2
  24. package/dist/index.cjs.js +17 -1
  25. package/dist/index.esm.js +17 -1
  26. package/dist/miniapp-publish.cjs.js +15 -0
  27. package/dist/miniapp-publish.esm.js +15 -1
  28. package/dist/protocol.cjs.js +9 -0
  29. package/dist/protocol.esm.js +9 -1
  30. package/dist/templates/vanilla-vite-js/README.md.ejs +2 -0
  31. package/dist/templates/vanilla-vite-js/package.json.ejs +1 -0
  32. package/dist/vite.cjs.js +20 -1
  33. package/dist/vite.esm.js +20 -1
  34. package/package.json +4 -4
  35. package/skill/skill.json +4 -4
  36. package/types/index.d.ts +2 -2
  37. package/types/miniapp-manifest/category.d.ts +4 -0
  38. package/types/miniapp-manifest/index.d.ts +1 -0
  39. package/types/miniapp-manifest/node.d.ts +1 -0
  40. package/types/miniapp-manifest/schema.d.ts +3 -0
  41. package/types/miniapp-publish/index.d.ts +1 -0
  42. package/types/modules/viewport/index.d.ts +33 -2
  43. package/types/protocol/capabilities.d.ts +1 -1
  44. package/types/protocol.d.ts +2 -2
  45. package/dist/devtools/browser-dev-host/assets/browser-dev-host-BhsV0yKM.js +0 -101
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="theme-color" content="#f4f5f7" />
7
7
  <title>小程序工坊调试台</title>
8
- <script type="module" crossorigin src="/assets/index-BOHssdFQ.js"></script>
9
- <link rel="modulepreload" crossorigin href="/assets/desktop-app-launch-DulYZqY1.js">
8
+ <script type="module" crossorigin src="/assets/index-8YA6OLi7.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/desktop-app-launch-EnOYLhEx.js">
10
10
  <link rel="stylesheet" crossorigin href="/assets/index-D-cRoNV5.css">
11
11
  </head>
12
12
  <body>
package/dist/index.cjs.js CHANGED
@@ -629,6 +629,7 @@ const USER_GET_STEAM_GAME_LIST_METHOD = 'user.getSteamGameList';
629
629
  const SHARE_COPY_LINK_METHOD = 'share.copyLink';
630
630
  const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
631
631
  const SHARE_SCREENSHOT_METHOD = 'share.screenshot';
632
+ const VIEWPORT_SET_DISPLAY_METHOD = 'viewport.setDisplay';
632
633
  const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
633
634
  const VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD = 'viewport.setNavigationBarStyle';
634
635
  const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
@@ -1341,7 +1342,7 @@ function createMessageId() {
1341
1342
  /** 构建时替换为当前发布包的实际版本。 */
1342
1343
  const HB_SDK_VERSION = typeof undefined === 'string'
1343
1344
  ? undefined
1344
- : '0.8.3-alpha.1';
1345
+ : '0.8.3-alpha.3';
1345
1346
 
1346
1347
  const RUNTIME_MODES = new Set(['production', 'preview', 'development', 'unknown']);
1347
1348
  const OPERATING_SYSTEM_NAMES = new Set(['android', 'ios', 'ohos', 'windows', 'macos', 'linux', 'unknown']);
@@ -4402,6 +4403,20 @@ function setNavigationBarStyle(requester, options) {
4402
4403
  */
4403
4404
  function createViewportModule(requester) {
4404
4405
  return {
4406
+ // Runtime 持有唯一的操作截止时间;复用 cancel 链路,避免 SDK 普通请求 timer 提前失效。
4407
+ setDisplay: async (options) => {
4408
+ try {
4409
+ return await requester.requestOperation(VIEWPORT_SET_DISPLAY_METHOD, options);
4410
+ }
4411
+ catch (error) {
4412
+ // 旧 Runtime 或客户端缺少展示能力时统一降级,保留其它错误供业务处理。
4413
+ const code = error && typeof error === 'object' && 'code' in error ? error.code : undefined;
4414
+ if (code === 'METHOD_FORBIDDEN' || code === 'METHOD_NOT_FOUND' || code === 'REQUEST_UNSUPPORTED') {
4415
+ return { supported: false };
4416
+ }
4417
+ throw error;
4418
+ }
4419
+ },
4405
4420
  getWindowInfo: () => getWindowInfo(requester),
4406
4421
  setNavigationBarStyle: (options) => setNavigationBarStyle(requester, options),
4407
4422
  };
@@ -5243,6 +5258,7 @@ const share = {
5243
5258
  };
5244
5259
  /** 默认 SDK 实例的 Viewport 模块。 */
5245
5260
  const viewport = {
5261
+ setDisplay: (options) => getDefaultSDK().viewport.setDisplay(options),
5246
5262
  getWindowInfo: () => getDefaultSDK().viewport.getWindowInfo(),
5247
5263
  setNavigationBarStyle: (options) => getDefaultSDK().viewport.setNavigationBarStyle(options),
5248
5264
  };
package/dist/index.esm.js CHANGED
@@ -625,6 +625,7 @@ const USER_GET_STEAM_GAME_LIST_METHOD = 'user.getSteamGameList';
625
625
  const SHARE_COPY_LINK_METHOD = 'share.copyLink';
626
626
  const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
627
627
  const SHARE_SCREENSHOT_METHOD = 'share.screenshot';
628
+ const VIEWPORT_SET_DISPLAY_METHOD = 'viewport.setDisplay';
628
629
  const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
629
630
  const VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD = 'viewport.setNavigationBarStyle';
630
631
  const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
@@ -1337,7 +1338,7 @@ function createMessageId() {
1337
1338
  /** 构建时替换为当前发布包的实际版本。 */
1338
1339
  const HB_SDK_VERSION = typeof undefined === 'string'
1339
1340
  ? undefined
1340
- : '0.8.3-alpha.1';
1341
+ : '0.8.3-alpha.3';
1341
1342
 
1342
1343
  const RUNTIME_MODES = new Set(['production', 'preview', 'development', 'unknown']);
1343
1344
  const OPERATING_SYSTEM_NAMES = new Set(['android', 'ios', 'ohos', 'windows', 'macos', 'linux', 'unknown']);
@@ -4398,6 +4399,20 @@ function setNavigationBarStyle(requester, options) {
4398
4399
  */
4399
4400
  function createViewportModule(requester) {
4400
4401
  return {
4402
+ // Runtime 持有唯一的操作截止时间;复用 cancel 链路,避免 SDK 普通请求 timer 提前失效。
4403
+ setDisplay: async (options) => {
4404
+ try {
4405
+ return await requester.requestOperation(VIEWPORT_SET_DISPLAY_METHOD, options);
4406
+ }
4407
+ catch (error) {
4408
+ // 旧 Runtime 或客户端缺少展示能力时统一降级,保留其它错误供业务处理。
4409
+ const code = error && typeof error === 'object' && 'code' in error ? error.code : undefined;
4410
+ if (code === 'METHOD_FORBIDDEN' || code === 'METHOD_NOT_FOUND' || code === 'REQUEST_UNSUPPORTED') {
4411
+ return { supported: false };
4412
+ }
4413
+ throw error;
4414
+ }
4415
+ },
4401
4416
  getWindowInfo: () => getWindowInfo(requester),
4402
4417
  setNavigationBarStyle: (options) => setNavigationBarStyle(requester, options),
4403
4418
  };
@@ -5239,6 +5254,7 @@ const share = {
5239
5254
  };
5240
5255
  /** 默认 SDK 实例的 Viewport 模块。 */
5241
5256
  const viewport = {
5257
+ setDisplay: (options) => getDefaultSDK().viewport.setDisplay(options),
5242
5258
  getWindowInfo: () => getDefaultSDK().viewport.getWindowInfo(),
5243
5259
  setNavigationBarStyle: (options) => getDefaultSDK().viewport.setNavigationBarStyle(options),
5244
5260
  };
@@ -1,5 +1,14 @@
1
1
  'use strict';
2
2
 
3
+ /** 校验配置或产物中的类别,省略与显式非法值严格区分。 */
4
+ function parseMiniappCategory(value, sourceLabel = 'package.json#heybox.category') {
5
+ if (value === undefined)
6
+ return undefined;
7
+ if (value === 'tool' || value === 'game' || value === 'other')
8
+ return value;
9
+ throw new Error(`${sourceLabel} 必须是 tool、game 或 other`);
10
+ }
11
+
3
12
  var re = {exports: {}};
4
13
 
5
14
  var constants;
@@ -3207,6 +3216,10 @@ function validateMiniappManifestForDeploy(manifest) {
3207
3216
  });
3208
3217
  const companions = validateGeneratedCompanions(manifest.companions);
3209
3218
  const window = validateMiniappWindow(manifest.window, 'manifest.window');
3219
+ const category = parseMiniappCategory(manifest.category, 'manifest.category');
3220
+ if (category === undefined) {
3221
+ throw new Error('manifest.category 缺失,请在 package.json#heybox.category 声明 tool、game 或 other 后重新构建');
3222
+ }
3210
3223
  const bindAppIds = parseMiniappBindAppIds(manifest.bindAppIds, { sourceLabel: 'manifest.bindAppIds' });
3211
3224
  return {
3212
3225
  version,
@@ -3217,6 +3230,7 @@ function validateMiniappManifestForDeploy(manifest) {
3217
3230
  ...(companions === undefined ? {} : { companions }),
3218
3231
  ...(window === undefined ? {} : { window }),
3219
3232
  ...(bindAppIds.length === 0 ? {} : { bindAppIds }),
3233
+ ...(category === undefined ? {} : { category }),
3220
3234
  };
3221
3235
  }
3222
3236
  function validateGeneratedCompanions(value) {
@@ -12625,6 +12639,7 @@ exports.normalizeBasicInfoName = normalizeBasicInfoName;
12625
12639
  exports.normalizeRelativePath = normalizeRelativePath;
12626
12640
  exports.parseMiniappBasicInfo = parseMiniappBasicInfo;
12627
12641
  exports.parseMiniappBindAppIds = parseMiniappBindAppIds;
12642
+ exports.parseMiniappCategory = parseMiniappCategory;
12628
12643
  exports.prepareMiniappArtifactFiles = prepareMiniappArtifactFiles;
12629
12644
  exports.previewMiniappBasicInfo = previewMiniappBasicInfo;
12630
12645
  exports.relativePathContainsNodeModulesSegment = relativePathContainsNodeModulesSegment;
@@ -1,3 +1,12 @@
1
+ /** 校验配置或产物中的类别,省略与显式非法值严格区分。 */
2
+ function parseMiniappCategory(value, sourceLabel = 'package.json#heybox.category') {
3
+ if (value === undefined)
4
+ return undefined;
5
+ if (value === 'tool' || value === 'game' || value === 'other')
6
+ return value;
7
+ throw new Error(`${sourceLabel} 必须是 tool、game 或 other`);
8
+ }
9
+
1
10
  var re = {exports: {}};
2
11
 
3
12
  var constants;
@@ -3205,6 +3214,10 @@ function validateMiniappManifestForDeploy(manifest) {
3205
3214
  });
3206
3215
  const companions = validateGeneratedCompanions(manifest.companions);
3207
3216
  const window = validateMiniappWindow(manifest.window, 'manifest.window');
3217
+ const category = parseMiniappCategory(manifest.category, 'manifest.category');
3218
+ if (category === undefined) {
3219
+ throw new Error('manifest.category 缺失,请在 package.json#heybox.category 声明 tool、game 或 other 后重新构建');
3220
+ }
3208
3221
  const bindAppIds = parseMiniappBindAppIds(manifest.bindAppIds, { sourceLabel: 'manifest.bindAppIds' });
3209
3222
  return {
3210
3223
  version,
@@ -3215,6 +3228,7 @@ function validateMiniappManifestForDeploy(manifest) {
3215
3228
  ...(companions === undefined ? {} : { companions }),
3216
3229
  ...(window === undefined ? {} : { window }),
3217
3230
  ...(bindAppIds.length === 0 ? {} : { bindAppIds }),
3231
+ ...(category === undefined ? {} : { category }),
3218
3232
  };
3219
3233
  }
3220
3234
  function validateGeneratedCompanions(value) {
@@ -12584,4 +12598,4 @@ function compareBytes(left, right) {
12584
12598
  return left.length - right.length;
12585
12599
  }
12586
12600
 
12587
- export { ACTIVITY_UPLOAD_KEY_MAX_LENGTH, CREATE_USER_MINIPROGRAM_API_PATH, CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH, DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DETAIL_USER_MINIPROGRAM_API_PATH, DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DEVELOPER_ENTITY_LIST_API_PATH, DEVELOPER_ENTITY_SWITCH_API_PATH, LIST_USER_MINIPROGRAM_API_PATH, LIST_USER_MINIPROGRAM_LEADERBOARD_API_PATH, LIST_USER_MINIPROGRAM_VERSION_API_PATH, MINIAPP_COMPANION_UPLOAD_TEMPORARY_SIZE_LIMIT_BYTES, MINIAPP_LEGACY_MOBILE_PLATFORM_VALUES, MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION, MINIAPP_UPLOAD_BATCH_SIZE, MINIAPP_UPLOAD_SCOPE, MINIAPP_UPLOAD_TOTAL_SIZE_LIMIT_BYTES, PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH, RELEASE_USER_MINIPROGRAM_VERSION_API_PATH, REOPEN_USER_MINIPROGRAM_API_PATH, SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH, TAKE_DOWN_USER_MINIPROGRAM_API_PATH, UPDATE_SQUARE_DISPLAY_API_PATH, UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, USER_MINIPROGRAM_ACCESS_STATUS_API_PATH, USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH, WITHDRAW_USER_MINIPROGRAM_VERSION_API_PATH, createMiniappArtifactFileHeader, createMiniappArtifactSignatureHeader, getMiniProgramUploadAlias, getMiniappUploadKey, hasMiniappRuntimeGate, isValidMiniappManifestVersion as isValidVersion, normalizeBasicInfoName, normalizeRelativePath, parseMiniappBasicInfo, parseMiniappBindAppIds, prepareMiniappArtifactFiles, previewMiniappBasicInfo, relativePathContainsNodeModulesSegment, resolveMiniappManifestPlatforms, resolveMiniappUploadSessionFiles, shouldUploadDistFile, validateMiniappCompanionFileReceipts, validateMiniappManifestForDeploy, validateMiniappUploadPathLengths, validateMiniappUploadSizeBudgets, validateUploadPaths, validateUploadTotalSize };
12601
+ export { ACTIVITY_UPLOAD_KEY_MAX_LENGTH, CREATE_USER_MINIPROGRAM_API_PATH, CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, CREATE_USER_MINIPROGRAM_LOCAL_DEV_LAUNCH_TOKEN_API_PATH, DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DETAIL_USER_MINIPROGRAM_API_PATH, DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DEVELOPER_ENTITY_LIST_API_PATH, DEVELOPER_ENTITY_SWITCH_API_PATH, LIST_USER_MINIPROGRAM_API_PATH, LIST_USER_MINIPROGRAM_LEADERBOARD_API_PATH, LIST_USER_MINIPROGRAM_VERSION_API_PATH, MINIAPP_COMPANION_UPLOAD_TEMPORARY_SIZE_LIMIT_BYTES, MINIAPP_LEGACY_MOBILE_PLATFORM_VALUES, MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION, MINIAPP_UPLOAD_BATCH_SIZE, MINIAPP_UPLOAD_SCOPE, MINIAPP_UPLOAD_TOTAL_SIZE_LIMIT_BYTES, PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH, RELEASE_USER_MINIPROGRAM_VERSION_API_PATH, REOPEN_USER_MINIPROGRAM_API_PATH, SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH, TAKE_DOWN_USER_MINIPROGRAM_API_PATH, UPDATE_SQUARE_DISPLAY_API_PATH, UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, USER_MINIPROGRAM_ACCESS_STATUS_API_PATH, USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH, WITHDRAW_USER_MINIPROGRAM_VERSION_API_PATH, createMiniappArtifactFileHeader, createMiniappArtifactSignatureHeader, getMiniProgramUploadAlias, getMiniappUploadKey, hasMiniappRuntimeGate, isValidMiniappManifestVersion as isValidVersion, normalizeBasicInfoName, normalizeRelativePath, parseMiniappBasicInfo, parseMiniappBindAppIds, parseMiniappCategory, prepareMiniappArtifactFiles, previewMiniappBasicInfo, relativePathContainsNodeModulesSegment, resolveMiniappManifestPlatforms, resolveMiniappUploadSessionFiles, shouldUploadDistFile, validateMiniappCompanionFileReceipts, validateMiniappManifestForDeploy, validateMiniappUploadPathLengths, validateMiniappUploadSizeBudgets, validateUploadPaths, validateUploadTotalSize };
@@ -38,6 +38,7 @@ const USER_GET_STEAM_GAME_LIST_METHOD = 'user.getSteamGameList';
38
38
  const SHARE_COPY_LINK_METHOD = 'share.copyLink';
39
39
  const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
40
40
  const SHARE_SCREENSHOT_METHOD = 'share.screenshot';
41
+ const VIEWPORT_SET_DISPLAY_METHOD = 'viewport.setDisplay';
41
42
  const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
42
43
  const VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD = 'viewport.setNavigationBarStyle';
43
44
  const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
@@ -161,6 +162,13 @@ const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
161
162
  requirement: { kind: 'none' },
162
163
  risk: 'low',
163
164
  },
165
+ {
166
+ method: VIEWPORT_SET_DISPLAY_METHOD,
167
+ module: 'viewport',
168
+ capability: VIEWPORT_SET_DISPLAY_METHOD,
169
+ requirement: { kind: 'none' },
170
+ risk: 'low',
171
+ },
164
172
  {
165
173
  method: STORAGE_GET_STORAGE_METHOD,
166
174
  module: 'storage',
@@ -1402,6 +1410,7 @@ exports.USER_GET_STEAM_GAME_LIST_METHOD = USER_GET_STEAM_GAME_LIST_METHOD;
1402
1410
  exports.USER_INFO_AUTHORIZATION_SCOPES = USER_INFO_AUTHORIZATION_SCOPES;
1403
1411
  exports.USER_REVOKE_AUTHORIZATION_METHOD = USER_REVOKE_AUTHORIZATION_METHOD;
1404
1412
  exports.VIEWPORT_GET_WINDOW_INFO_METHOD = VIEWPORT_GET_WINDOW_INFO_METHOD;
1413
+ exports.VIEWPORT_SET_DISPLAY_METHOD = VIEWPORT_SET_DISPLAY_METHOD;
1405
1414
  exports.VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD = VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD;
1406
1415
  exports.isManagedMiniProgramRuntimePermissionKey = isManagedMiniProgramRuntimePermissionKey;
1407
1416
  exports.isMiniProgramBridgeMessage = isMiniProgramBridgeMessage;
@@ -36,6 +36,7 @@ const USER_GET_STEAM_GAME_LIST_METHOD = 'user.getSteamGameList';
36
36
  const SHARE_COPY_LINK_METHOD = 'share.copyLink';
37
37
  const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
38
38
  const SHARE_SCREENSHOT_METHOD = 'share.screenshot';
39
+ const VIEWPORT_SET_DISPLAY_METHOD = 'viewport.setDisplay';
39
40
  const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
40
41
  const VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD = 'viewport.setNavigationBarStyle';
41
42
  const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
@@ -159,6 +160,13 @@ const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
159
160
  requirement: { kind: 'none' },
160
161
  risk: 'low',
161
162
  },
163
+ {
164
+ method: VIEWPORT_SET_DISPLAY_METHOD,
165
+ module: 'viewport',
166
+ capability: VIEWPORT_SET_DISPLAY_METHOD,
167
+ requirement: { kind: 'none' },
168
+ risk: 'low',
169
+ },
162
170
  {
163
171
  method: STORAGE_GET_STORAGE_METHOD,
164
172
  module: 'storage',
@@ -1350,4 +1358,4 @@ function isRecord(value) {
1350
1358
  return typeof value === 'object' && value !== null && !Array.isArray(value);
1351
1359
  }
1352
1360
 
1353
- export { AUTH_LOGIN_METHOD, CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_INFO_METHOD, CLOUD_LEADERBOARD_GET_LIST_METHOD, CLOUD_LEADERBOARD_SUBMIT_METHOD, DEVICE_SET_CLIPBOARD_METHOD, DEVICE_VIBRATE_METHOD, DIRECTORY_CREATE_METHOD, DIRECTORY_EXISTS_METHOD, DIRECTORY_LIST_METHOD, DIRECTORY_REMOVE_METHOD, FILES_PICK_DIRECTORY_METHOD, FILES_PICK_FILES_METHOD, FILES_SAVE_FILE_METHOD, FILE_CREATE_METHOD, FILE_EXISTS_METHOD, FILE_READ_BYTES_METHOD, FILE_READ_TEXT_METHOD, FILE_REMOVE_METHOD, FILE_STAT_METHOD, FILE_WRITE_BYTES_METHOD, FILE_WRITE_TEXT_METHOD, MINI_PROGRAM_BRIDGE_NONCE_PARAM, MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_MESSAGE_VERSION, MINI_PROGRAM_OPERATION_PROGRESS_METHOD, MINI_PROGRAM_PROTOCOL_CAPABILITIES, NAVIGATION_CLOSE_METHOD, NAVIGATION_OPEN_APP_PAGE_METHOD, NAVIGATION_RELOAD_METHOD, NETWORK_DOWNLOAD_METHOD, NETWORK_REQUEST_METHOD, RUNTIME_LOCATION_PROBE_METHOD, SDK_CSP_VIOLATION_METHOD, SDK_HANDSHAKE_METHOD, SDK_LOCATION_REPORT_METHOD, SHARE_COPY_LINK_METHOD, SHARE_SCREENSHOT_METHOD, SHARE_SHOW_SHARE_MENU_METHOD, STORAGE_GET_STORAGE_METHOD, STORAGE_SET_STORAGE_METHOD, UI_HIDE_LOADING_METHOD, UI_SHOW_LOADING_METHOD, UI_SHOW_TOAST_METHOD, USER_GET_INFO_METHOD, USER_GET_STEAM_GAME_LIST_METHOD, USER_INFO_AUTHORIZATION_SCOPES, USER_REVOKE_AUTHORIZATION_METHOD, VIEWPORT_GET_WINDOW_INFO_METHOD, VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD, isManagedMiniProgramRuntimePermissionKey, isMiniProgramBridgeMessage, isMiniProgramByteArray, isMiniProgramDirectoryDescriptor, isMiniProgramDirectoryRef, isMiniProgramDownloadProgressPayload, isMiniProgramFileDescriptor, isMiniProgramFileRef, isMiniProgramFileStat, isMiniProgramFileSystemEntityDescriptor, isMiniProgramPathRootRef, isMiniProgramRelativePath, parseMiniProgramRuntimePermissions };
1361
+ export { AUTH_LOGIN_METHOD, CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_INFO_METHOD, CLOUD_LEADERBOARD_GET_LIST_METHOD, CLOUD_LEADERBOARD_SUBMIT_METHOD, DEVICE_SET_CLIPBOARD_METHOD, DEVICE_VIBRATE_METHOD, DIRECTORY_CREATE_METHOD, DIRECTORY_EXISTS_METHOD, DIRECTORY_LIST_METHOD, DIRECTORY_REMOVE_METHOD, FILES_PICK_DIRECTORY_METHOD, FILES_PICK_FILES_METHOD, FILES_SAVE_FILE_METHOD, FILE_CREATE_METHOD, FILE_EXISTS_METHOD, FILE_READ_BYTES_METHOD, FILE_READ_TEXT_METHOD, FILE_REMOVE_METHOD, FILE_STAT_METHOD, FILE_WRITE_BYTES_METHOD, FILE_WRITE_TEXT_METHOD, MINI_PROGRAM_BRIDGE_NONCE_PARAM, MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_MESSAGE_VERSION, MINI_PROGRAM_OPERATION_PROGRESS_METHOD, MINI_PROGRAM_PROTOCOL_CAPABILITIES, NAVIGATION_CLOSE_METHOD, NAVIGATION_OPEN_APP_PAGE_METHOD, NAVIGATION_RELOAD_METHOD, NETWORK_DOWNLOAD_METHOD, NETWORK_REQUEST_METHOD, RUNTIME_LOCATION_PROBE_METHOD, SDK_CSP_VIOLATION_METHOD, SDK_HANDSHAKE_METHOD, SDK_LOCATION_REPORT_METHOD, SHARE_COPY_LINK_METHOD, SHARE_SCREENSHOT_METHOD, SHARE_SHOW_SHARE_MENU_METHOD, STORAGE_GET_STORAGE_METHOD, STORAGE_SET_STORAGE_METHOD, UI_HIDE_LOADING_METHOD, UI_SHOW_LOADING_METHOD, UI_SHOW_TOAST_METHOD, USER_GET_INFO_METHOD, USER_GET_STEAM_GAME_LIST_METHOD, USER_INFO_AUTHORIZATION_SCOPES, USER_REVOKE_AUTHORIZATION_METHOD, VIEWPORT_GET_WINDOW_INFO_METHOD, VIEWPORT_SET_DISPLAY_METHOD, VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD, isManagedMiniProgramRuntimePermissionKey, isMiniProgramBridgeMessage, isMiniProgramByteArray, isMiniProgramDirectoryDescriptor, isMiniProgramDirectoryRef, isMiniProgramDownloadProgressPayload, isMiniProgramFileDescriptor, isMiniProgramFileRef, isMiniProgramFileStat, isMiniProgramFileSystemEntityDescriptor, isMiniProgramPathRootRef, isMiniProgramRelativePath, parseMiniProgramRuntimePermissions };
@@ -12,6 +12,8 @@ npm run build
12
12
  npm run deploy -- --release-note "更新说明"
13
13
  ```
14
14
 
15
+ `package.json#heybox.category` 初始声明为 `other`(其他)。发布前请按实际用途选择 `tool`(工具)、`game`(游戏)或 `other`(其他);该字段为必填,修改后需重新构建。
16
+
15
17
  `package.json#heybox.platforms` 默认声明 `android`、`ios`、`ohos`。发布前请在每个声明的平台完成真机验收;需要支持桌面平台时,由项目自行加入并验收。
16
18
 
17
19
  更多内容见 [CLI 指南](https://docs.xiaoheihe.cn/hb_sdk/guide/cli) 和 [SDK 文档](https://docs.xiaoheihe.cn/hb_sdk/)。
@@ -6,6 +6,7 @@
6
6
  "heybox": {
7
7
  "miniProgramId": "",
8
8
  "name": "我的小程序",
9
+ "category": "other",
9
10
  "icon": "assets/heybox-placeholder.png",
10
11
  "coverImages": ["assets/heybox-placeholder.png"],
11
12
  "platforms": ["android", "ios", "ohos"],
package/dist/vite.cjs.js CHANGED
@@ -2948,7 +2948,7 @@ async function ensureBasicInfoDirectory(rootPath, relative) {
2948
2948
  /** 构建时替换为当前发布包的实际版本。 */
2949
2949
  const HB_SDK_VERSION = typeof undefined === 'string'
2950
2950
  ? undefined
2951
- : '0.8.3-alpha.1';
2951
+ : '0.8.3-alpha.3';
2952
2952
 
2953
2953
  /**
2954
2954
  * iframe 与调试台页面的开发期 console 捕获转发。
@@ -3348,6 +3348,15 @@ function parseMiniappBindAppIds(value, options = {}) {
3348
3348
  return Object.freeze(appIds);
3349
3349
  }
3350
3350
 
3351
+ /** 校验配置或产物中的类别,省略与显式非法值严格区分。 */
3352
+ function parseMiniappCategory(value, sourceLabel = 'package.json#heybox.category') {
3353
+ if (value === undefined)
3354
+ return undefined;
3355
+ if (value === 'tool' || value === 'game' || value === 'other')
3356
+ return value;
3357
+ throw new Error(`${sourceLabel} 必须是 tool、game 或 other`);
3358
+ }
3359
+
3351
3360
  /**
3352
3361
  * 所有小程序 iframe bridge envelope 共用的固定 namespace。
3353
3362
  *
@@ -3605,6 +3614,7 @@ function validateMiniappManifestVersion(version, sourceLabel = 'manifest.version
3605
3614
  function renderMiniappManifest(manifest) {
3606
3615
  const platforms = validateMiniappPlatforms(manifest.platforms, 'manifest.platforms');
3607
3616
  const window = validateMiniappWindow(manifest.window, 'manifest.window');
3617
+ const category = parseMiniappCategory(manifest.category, 'manifest.category');
3608
3618
  const bindAppIds = parseMiniappBindAppIds(manifest.bindAppIds, { sourceLabel: 'manifest.bindAppIds' });
3609
3619
  const output = {
3610
3620
  version: manifest.version,
@@ -3615,6 +3625,7 @@ function renderMiniappManifest(manifest) {
3615
3625
  ...(manifest.companions === undefined ? {} : { companions: manifest.companions }),
3616
3626
  ...(window === undefined ? {} : { window }),
3617
3627
  ...(bindAppIds.length === 0 ? {} : { bindAppIds }),
3628
+ ...(category === undefined ? {} : { category }),
3618
3629
  };
3619
3630
  return `${JSON.stringify(output, null, 2)}\n`;
3620
3631
  }
@@ -3781,6 +3792,10 @@ function readMiniappBindAppIdsFromPackageJson(root) {
3781
3792
  const heybox = readMiniappHeyboxConfig(packageJson);
3782
3793
  return parseMiniappBindAppIds(heybox?.bindAppIds);
3783
3794
  }
3795
+ function readMiniappCategoryFromPackageJson(root) {
3796
+ const { packageJson } = readMiniappPackageJson(root, false);
3797
+ return parseMiniappCategory(readMiniappHeyboxConfig(packageJson)?.category);
3798
+ }
3784
3799
  function readMiniappPackageJson(root, requireVersion) {
3785
3800
  const packageJsonPath = findNearestPackageJsonPath(root);
3786
3801
  let content;
@@ -13673,6 +13688,7 @@ function miniappManifest() {
13673
13688
  const companionConfig = readMiniappCompanionsFromPackageJson(root);
13674
13689
  const companionDeclarations = includeCompanions ? companionConfig.declarations : undefined;
13675
13690
  const bindAppIds = readMiniappBindAppIdsFromPackageJson(root);
13691
+ const category = readMiniappCategoryFromPackageJson(root);
13676
13692
  if (!parsedPermissions.declared)
13677
13693
  this.warn(getMissingPermissionsWarning());
13678
13694
  if (companionDeclarations && !parsedPermissions.permissions?.companion) {
@@ -13704,6 +13720,7 @@ function miniappManifest() {
13704
13720
  ...(companions === undefined ? {} : { companions }),
13705
13721
  ...(windowDeclaration === undefined ? {} : { window: windowDeclaration }),
13706
13722
  ...(bindAppIds.length === 0 ? {} : { bindAppIds }),
13723
+ ...(category === undefined ? {} : { category }),
13707
13724
  }));
13708
13725
  },
13709
13726
  };
@@ -13713,6 +13730,7 @@ function prepareDevSnapshot(root, outDir, platforms, declarations, snapshotRoot,
13713
13730
  const sdkVersion = resolveSdkVersion();
13714
13731
  const permissions = readMiniappPermissionsFromPackageJson(root, sdkVersion).permissions;
13715
13732
  const windowDeclaration = readMiniappWindowFromPackageJson(root);
13733
+ const category = readMiniappCategoryFromPackageJson(root);
13716
13734
  if (declarations && !permissions?.companion) {
13717
13735
  throw new Error('配置 companions 时必须声明 package.json#heybox.permissions.companion.enabled=true');
13718
13736
  }
@@ -13737,6 +13755,7 @@ function prepareDevSnapshot(root, outDir, platforms, declarations, snapshotRoot,
13737
13755
  ...(permissions === undefined ? {} : { permissions }),
13738
13756
  ...(companions === undefined ? {} : { companions }),
13739
13757
  ...(windowDeclaration === undefined ? {} : { window: windowDeclaration }),
13758
+ ...(category === undefined ? {} : { category }),
13740
13759
  };
13741
13760
  return { artifacts, manifestBytes: Buffer.from(renderMiniappManifest(manifest)) };
13742
13761
  }
package/dist/vite.esm.js CHANGED
@@ -2945,7 +2945,7 @@ async function ensureBasicInfoDirectory(rootPath, relative) {
2945
2945
  /** 构建时替换为当前发布包的实际版本。 */
2946
2946
  const HB_SDK_VERSION = typeof undefined === 'string'
2947
2947
  ? undefined
2948
- : '0.8.3-alpha.1';
2948
+ : '0.8.3-alpha.3';
2949
2949
 
2950
2950
  /**
2951
2951
  * iframe 与调试台页面的开发期 console 捕获转发。
@@ -3345,6 +3345,15 @@ function parseMiniappBindAppIds(value, options = {}) {
3345
3345
  return Object.freeze(appIds);
3346
3346
  }
3347
3347
 
3348
+ /** 校验配置或产物中的类别,省略与显式非法值严格区分。 */
3349
+ function parseMiniappCategory(value, sourceLabel = 'package.json#heybox.category') {
3350
+ if (value === undefined)
3351
+ return undefined;
3352
+ if (value === 'tool' || value === 'game' || value === 'other')
3353
+ return value;
3354
+ throw new Error(`${sourceLabel} 必须是 tool、game 或 other`);
3355
+ }
3356
+
3348
3357
  /**
3349
3358
  * 所有小程序 iframe bridge envelope 共用的固定 namespace。
3350
3359
  *
@@ -3602,6 +3611,7 @@ function validateMiniappManifestVersion(version, sourceLabel = 'manifest.version
3602
3611
  function renderMiniappManifest(manifest) {
3603
3612
  const platforms = validateMiniappPlatforms(manifest.platforms, 'manifest.platforms');
3604
3613
  const window = validateMiniappWindow(manifest.window, 'manifest.window');
3614
+ const category = parseMiniappCategory(manifest.category, 'manifest.category');
3605
3615
  const bindAppIds = parseMiniappBindAppIds(manifest.bindAppIds, { sourceLabel: 'manifest.bindAppIds' });
3606
3616
  const output = {
3607
3617
  version: manifest.version,
@@ -3612,6 +3622,7 @@ function renderMiniappManifest(manifest) {
3612
3622
  ...(manifest.companions === undefined ? {} : { companions: manifest.companions }),
3613
3623
  ...(window === undefined ? {} : { window }),
3614
3624
  ...(bindAppIds.length === 0 ? {} : { bindAppIds }),
3625
+ ...(category === undefined ? {} : { category }),
3615
3626
  };
3616
3627
  return `${JSON.stringify(output, null, 2)}\n`;
3617
3628
  }
@@ -3778,6 +3789,10 @@ function readMiniappBindAppIdsFromPackageJson(root) {
3778
3789
  const heybox = readMiniappHeyboxConfig(packageJson);
3779
3790
  return parseMiniappBindAppIds(heybox?.bindAppIds);
3780
3791
  }
3792
+ function readMiniappCategoryFromPackageJson(root) {
3793
+ const { packageJson } = readMiniappPackageJson(root, false);
3794
+ return parseMiniappCategory(readMiniappHeyboxConfig(packageJson)?.category);
3795
+ }
3781
3796
  function readMiniappPackageJson(root, requireVersion) {
3782
3797
  const packageJsonPath = findNearestPackageJsonPath(root);
3783
3798
  let content;
@@ -13670,6 +13685,7 @@ function miniappManifest() {
13670
13685
  const companionConfig = readMiniappCompanionsFromPackageJson(root);
13671
13686
  const companionDeclarations = includeCompanions ? companionConfig.declarations : undefined;
13672
13687
  const bindAppIds = readMiniappBindAppIdsFromPackageJson(root);
13688
+ const category = readMiniappCategoryFromPackageJson(root);
13673
13689
  if (!parsedPermissions.declared)
13674
13690
  this.warn(getMissingPermissionsWarning());
13675
13691
  if (companionDeclarations && !parsedPermissions.permissions?.companion) {
@@ -13701,6 +13717,7 @@ function miniappManifest() {
13701
13717
  ...(companions === undefined ? {} : { companions }),
13702
13718
  ...(windowDeclaration === undefined ? {} : { window: windowDeclaration }),
13703
13719
  ...(bindAppIds.length === 0 ? {} : { bindAppIds }),
13720
+ ...(category === undefined ? {} : { category }),
13704
13721
  }));
13705
13722
  },
13706
13723
  };
@@ -13710,6 +13727,7 @@ function prepareDevSnapshot(root, outDir, platforms, declarations, snapshotRoot,
13710
13727
  const sdkVersion = resolveSdkVersion();
13711
13728
  const permissions = readMiniappPermissionsFromPackageJson(root, sdkVersion).permissions;
13712
13729
  const windowDeclaration = readMiniappWindowFromPackageJson(root);
13730
+ const category = readMiniappCategoryFromPackageJson(root);
13713
13731
  if (declarations && !permissions?.companion) {
13714
13732
  throw new Error('配置 companions 时必须声明 package.json#heybox.permissions.companion.enabled=true');
13715
13733
  }
@@ -13734,6 +13752,7 @@ function prepareDevSnapshot(root, outDir, platforms, declarations, snapshotRoot,
13734
13752
  ...(permissions === undefined ? {} : { permissions }),
13735
13753
  ...(companions === undefined ? {} : { companions }),
13736
13754
  ...(windowDeclaration === undefined ? {} : { window: windowDeclaration }),
13755
+ ...(category === undefined ? {} : { category }),
13737
13756
  };
13738
13757
  return { artifacts, manifestBytes: Buffer.from(renderMiniappManifest(manifest)) };
13739
13758
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heybox/hb-sdk",
3
- "version": "0.8.3-alpha.1",
3
+ "version": "0.8.3-alpha.3",
4
4
  "sideEffects": [
5
5
  "./src/index.ts",
6
6
  "./src/core/singleton.ts",
@@ -65,7 +65,7 @@
65
65
  "undici": "^7.28.0",
66
66
  "ws": "^8.18.0",
67
67
  "sharp": "^0.34.5",
68
- "@heybox/hb-sdk-protocol": "0.8.3-alpha.1"
68
+ "@heybox/hb-sdk-protocol": "0.8.3-alpha.3"
69
69
  },
70
70
  "peerDependencies": {
71
71
  "vite": ">=5"
@@ -117,11 +117,11 @@
117
117
  "vite": "^8.0.12",
118
118
  "vitest": "^3.2.4",
119
119
  "@heybox-domain/heybox-theme": "~0.1.0",
120
- "@heybox/hb-api": "~1.28.8",
121
- "@heybox/hb-sdk-runtime": "~0.8.3-alpha.1",
120
+ "@heybox/hb-api": "~1.28.9",
122
121
  "@heybox-domain/heybox-vue3-ui": "~0.1.0",
123
122
  "@heybox/runtime": "~0.2.0",
124
123
  "@heybox/runtime-policy": "~0.2.0",
124
+ "@heybox/hb-sdk-runtime": "~0.8.3-alpha.3",
125
125
  "@heybox/runtime-transport-fetch": "~0.2.0"
126
126
  },
127
127
  "publishConfig": {
package/skill/skill.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "hb-sdk",
3
- "skillVersion": "0.8.3-alpha.1+skill.aa24d6656331",
3
+ "skillVersion": "0.8.3-alpha.3+skill.aa24d6656331",
4
4
  "sdk": {
5
5
  "package": "@heybox/hb-sdk",
6
- "version": "0.8.3-alpha.1",
7
- "compatibility": "0.8.3-alpha.1"
6
+ "version": "0.8.3-alpha.3",
7
+ "compatibility": "0.8.3-alpha.3"
8
8
  },
9
9
  "distribution": {
10
10
  "type": "npm",
11
11
  "package": "@heybox/hb-sdk",
12
- "version": "0.8.3-alpha.1",
12
+ "version": "0.8.3-alpha.3",
13
13
  "path": "skill"
14
14
  },
15
15
  "integrity": "sha256-aa24d6656331cbad8f6aae7735258a49d7f1a82f6e900415de53a1b93a30ddb8"
package/types/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export type { AuthorizedUserInfo, GetUserInfoPayload, GetUserInfoResult, RevokeA
9
9
  export { USER_INFO_AUTHORIZATION_SCOPES } from './modules/user';
10
10
  export type { UserInfoAuthorizationScope } from './modules/user';
11
11
  export type { CopyLinkPayload, CopyLinkResult, MiniProgramCopyLinkOptions, MiniProgramScreenshotOptions, MiniProgramScreenshotRect, MiniProgramShareChannel, MiniProgramShareExtraValue, MiniProgramShareModule, MiniProgramSharePostOptions, MiniProgramShowShareMenuOptions, ScreenshotPayload, ScreenshotResult, ShowShareMenuPayload, ShowShareMenuResult, } from './modules/share';
12
- export type { GetWindowInfoPayload, GetWindowInfoResult, MiniProgramNavigationBarForegroundStyle, MiniProgramSafeArea, MiniProgramSetNavigationBarStyleOptions, MiniProgramViewportModule, MiniProgramWindowInfoResult, SetNavigationBarStylePayload, SetNavigationBarStyleResult, } from './modules/viewport';
12
+ export type { MiniProgramOrientationMode, SetDisplayPayload, SetDisplayResult, MiniProgramDisplayState, GetWindowInfoPayload, GetWindowInfoResult, MiniProgramNavigationBarForegroundStyle, MiniProgramSafeArea, MiniProgramSetNavigationBarStyleOptions, MiniProgramViewportModule, MiniProgramWindowInfoResult, SetNavigationBarStylePayload, SetNavigationBarStyleResult, } from './modules/viewport';
13
13
  export type { GetStoragePayload, GetStorageResult, MiniProgramStorageModule, SetStoragePayload } from './modules/storage';
14
14
  export type { DownloadBaseOptions, DownloadOptions, DownloadProgress, MiniProgramNetworkHeaders, MiniProgramNetworkModule, MiniProgramNetworkParams, MiniProgramNetworkRequestConfig, MiniProgramNetworkRequestMethod, MiniProgramNetworkResponse, MiniProgramNetworkValidateStatus, NetworkRequestPayload, NetworkResponsePayload, } from './modules/network';
15
15
  export type { CreateOptions, DirectoryHandle, FileHandle, FileMode, FileStat, FileSystem, FileSystemEntity, FilesModule, ListOptions, PathRoot, PickDirectoryOptions, PickFilesOptions, RemoveOptions, SaveFileOptions, } from './modules/files';
@@ -28,7 +28,7 @@ declare const hbSDK: {
28
28
  share: import(".").MiniProgramShareModule;
29
29
  viewport: import(".").MiniProgramViewportModule;
30
30
  storage: import(".").MiniProgramStorageModule;
31
- files: import(".").FilesModule;
31
+ files: import("./protocol").FilesModule;
32
32
  network: import(".").MiniProgramNetworkModule;
33
33
  ui: import(".").MiniProgramUiModule;
34
34
  device: import(".").MiniProgramDeviceModule;
@@ -0,0 +1,4 @@
1
+ /** 小程序发布类别;新上传版本必须声明,历史产物读取允许缺省。 */
2
+ export type MiniappCategory = 'tool' | 'game' | 'other';
3
+ /** 校验配置或产物中的类别,省略与显式非法值严格区分。 */
4
+ export declare function parseMiniappCategory(value: unknown, sourceLabel?: string): MiniappCategory | undefined;
@@ -1,4 +1,5 @@
1
1
  export * from './schema';
2
+ export * from './category';
2
3
  export * from './node';
3
4
  export * from './permissions';
4
5
  export * from './companions';
@@ -18,4 +18,5 @@ export declare function readMiniappPlatformsFromPackageJson(root: string): reado
18
18
  export declare function readMiniappWindowFromPackageJson(root: string): MiniappWindowDeclaration | undefined;
19
19
  export declare function readMiniappPermissionsFromPackageJson(root: string, sdkVersion: string): ParsedMiniappPermissions;
20
20
  export declare function readMiniappBindAppIdsFromPackageJson(root: string): readonly string[];
21
+ export declare function readMiniappCategoryFromPackageJson(root: string): import("./category").MiniappCategory | undefined;
21
22
  export declare function resolveMiniappSdkVersion(): string;
@@ -1,3 +1,4 @@
1
+ import { type MiniappCategory } from './category';
1
2
  import { type MiniappPermissionDeclarations } from './permissions';
2
3
  import type { MiniappCompanionManifestDeclarations } from './companion-types';
3
4
  export declare const MINIAPP_TEMPLATE_VERSION = "0.0.0";
@@ -61,6 +62,7 @@ export interface MiniappManifest {
61
62
  companions?: MiniappCompanionManifestDeclarations;
62
63
  window?: MiniappWindowDeclaration;
63
64
  bindAppIds?: readonly string[];
65
+ category?: MiniappCategory;
64
66
  }
65
67
  export interface ParseMiniappManifestResult {
66
68
  manifest: MiniappManifest;
@@ -115,6 +117,7 @@ export declare function validateMiniappManifestVersion(version: unknown, sourceL
115
117
  export declare function renderMiniappManifest(manifest: MiniappManifest): string;
116
118
  export declare function parseMiniappManifestJson(raw: string, sourceLabel?: string): ParseMiniappManifestResult;
117
119
  export declare function validateMiniappManifestForDeploy(manifest: MiniappManifest): {
120
+ category?: MiniappCategory | undefined;
118
121
  bindAppIds?: readonly string[] | undefined;
119
122
  window?: MiniappWindowDeclaration | undefined;
120
123
  companions?: MiniappCompanionManifestDeclarations | undefined;
@@ -52,6 +52,7 @@ export declare const REOPEN_USER_MINIPROGRAM_API_PATH = "/mall/developer/user_mi
52
52
  export declare const UPDATE_SQUARE_DISPLAY_API_PATH = "/mall/developer/user_miniprogram/square_display/update";
53
53
  /** 查询小程序历史版本列表的开放平台 API 路径。 */
54
54
  export declare const LIST_USER_MINIPROGRAM_VERSION_API_PATH = "/mall/developer/user_miniprogram/version/list";
55
+ export { parseMiniappCategory, type MiniappCategory } from '../miniapp-manifest/category';
55
56
  export { isValidMiniappManifestVersion as isValidVersion } from '../miniapp-manifest/schema';
56
57
  export { MINIAPP_LEGACY_MOBILE_PLATFORM_VALUES, MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION, resolveMiniappManifestPlatforms, type MiniappPlatformPolicy, type MiniappPlatformResolution, } from '../miniapp-manifest/schema';
57
58
  export { parseMiniappBindAppIds, type ParseMiniappBindAppIdsOptions } from '../miniapp-manifest/bindings';
@@ -1,4 +1,5 @@
1
- import type { MiniProgramRequester } from '../../core/client';
1
+ import type { SetDisplayPayload, SetDisplayResult } from '../../protocol';
2
+ import type { MiniProgramOperationRequester, MiniProgramRequester } from '../../core/client';
2
3
  /**
3
4
  * 小程序安全区域信息。
4
5
  *
@@ -59,6 +60,8 @@ export interface MiniProgramWindowInfoResult {
59
60
  /** 顶部可用偏移兼容值,单位逻辑像素;当前恒等于 `statusBarHeight`。 */
60
61
  screenTop: number;
61
62
  }
63
+ export { VIEWPORT_SET_DISPLAY_METHOD } from '../../protocol/capabilities';
64
+ export type { MiniProgramDisplayState, MiniProgramOrientationMode, SetDisplayPayload, SetDisplayResult } from '../../protocol';
62
65
  export { VIEWPORT_GET_WINDOW_INFO_METHOD } from '../../protocol/capabilities';
63
66
  export { VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD } from '../../protocol/capabilities';
64
67
  /** `viewport.getWindowInfo` 不接收 options 或 payload,调用时无需传入参数。 */
@@ -118,6 +121,34 @@ export type SetNavigationBarStyleResult = void;
118
121
  export type { MiniProgramViewportMethod } from '../../protocol/capabilities';
119
122
  /** 外部小程序可调用的 Viewport 模块。 */
120
123
  export interface MiniProgramViewportModule {
124
+ /**
125
+ * 设置当前小程序的窗口方向和全屏状态。
126
+ *
127
+ * @remarks
128
+ * 新容器默认竖屏、非全屏。省略字段保持当前目标值,至少传一个字段;合并后横屏强制全屏,竖屏按 fullscreen 控制。
129
+ * 全屏同时收起胶囊和宿主额外顶部栏,不保证原生内容铺满容器;页面应按实际 WebView 窗口和安全区适配。
130
+ * 系统状态栏、手势条不保证隐藏,重要控件仍应按实际窗口与安全区信息避让。
131
+ * 横屏时仅设置 fullscreen: false 不会退出全屏;退出需同时设置 orientation: portrait、fullscreen: false。
132
+ * 宿主退出按钮恢复竖屏、非全屏;仅设置 orientation: portrait 则保留当前全屏目标。
133
+ * 设置持续到下次调用或退出容器;SPA 路由应在进入时明确设置所需状态。
134
+ * 后续设置先合并目标,再取消不同的旧设置;旧调用以 ORIENTATION_SUPERSEDED 失败。
135
+ * 相同目标共用操作;方向和全屏一起确认,失败时一起恢复最后确认状态。
136
+ * Promise 在宿主布局稳定后完成,窗口尺寸与安全区变化通过 viewport_change 事件通知。
137
+ * 方向或全屏状态确认变化时通过 display_change 通知,包括用户点击宿主退出全屏按钮。
138
+ * display_change 不回放初始状态;重复设置、不支持、失败或取消不会发出展示状态变化通知。
139
+ * 返回 supported: true 表示原生方向与胶囊设置已完成;不支持时返回 supported: false,保留原生状态。
140
+ * 降级时宿主仍尽力收起 H5 顶部栏,不能据此假定屏幕已旋转或胶囊已隐藏;布局始终按实际窗口适配。
141
+ * SDK 统一处理能力缺失错误;超时、取消、参数或其他执行错误仍抛出。
142
+ * @since 0.8.1-alpha.4
143
+ * @hbPlatform android
144
+ * @hbPlatform ios
145
+ * @hbPlatform ohos
146
+ * @hbClient android numeric-dot \>= 1.3.396
147
+ * @hbClient ios numeric-dot \>= 1.3.396
148
+ * @hbClient ohos none
149
+ * @experimental
150
+ */
151
+ setDisplay(options: SetDisplayPayload): Promise<SetDisplayResult>;
121
152
  /**
122
153
  * 获取当前小程序窗口信息。
123
154
  *
@@ -265,4 +296,4 @@ export declare function setNavigationBarStyle(requester: MiniProgramRequester, o
265
296
  * @param requester - 底层 bridge 请求能力。
266
297
  * @returns 面向业务层的 Viewport 模块对象。
267
298
  */
268
- export declare function createViewportModule(requester: MiniProgramRequester): MiniProgramViewportModule;
299
+ export declare function createViewportModule(requester: MiniProgramOperationRequester): MiniProgramViewportModule;
@@ -1,2 +1,2 @@
1
- export { AUTH_LOGIN_METHOD, CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_INFO_METHOD, CLOUD_LEADERBOARD_GET_LIST_METHOD, CLOUD_LEADERBOARD_SUBMIT_METHOD, DIRECTORY_CREATE_METHOD, DIRECTORY_EXISTS_METHOD, DIRECTORY_LIST_METHOD, DIRECTORY_REMOVE_METHOD, DEVICE_SET_CLIPBOARD_METHOD, DEVICE_VIBRATE_METHOD, FILES_PICK_DIRECTORY_METHOD, FILES_PICK_FILES_METHOD, FILES_SAVE_FILE_METHOD, FILE_CREATE_METHOD, FILE_EXISTS_METHOD, FILE_READ_BYTES_METHOD, FILE_READ_TEXT_METHOD, FILE_REMOVE_METHOD, FILE_STAT_METHOD, FILE_WRITE_BYTES_METHOD, FILE_WRITE_TEXT_METHOD, MINI_PROGRAM_PROTOCOL_CAPABILITIES, NAVIGATION_CLOSE_METHOD, NAVIGATION_OPEN_APP_PAGE_METHOD, NAVIGATION_RELOAD_METHOD, NETWORK_REQUEST_METHOD, NETWORK_DOWNLOAD_METHOD, SHARE_COPY_LINK_METHOD, SHARE_SCREENSHOT_METHOD, SHARE_SHOW_SHARE_MENU_METHOD, STORAGE_GET_STORAGE_METHOD, STORAGE_SET_STORAGE_METHOD, UI_HIDE_LOADING_METHOD, UI_SHOW_LOADING_METHOD, UI_SHOW_TOAST_METHOD, USER_GET_INFO_METHOD, USER_GET_STEAM_GAME_LIST_METHOD, USER_REVOKE_AUTHORIZATION_METHOD, VIEWPORT_GET_WINDOW_INFO_METHOD, VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD, } from '@heybox/hb-sdk-protocol';
1
+ export { AUTH_LOGIN_METHOD, CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_INFO_METHOD, CLOUD_LEADERBOARD_GET_LIST_METHOD, CLOUD_LEADERBOARD_SUBMIT_METHOD, DIRECTORY_CREATE_METHOD, DIRECTORY_EXISTS_METHOD, DIRECTORY_LIST_METHOD, DIRECTORY_REMOVE_METHOD, DEVICE_SET_CLIPBOARD_METHOD, DEVICE_VIBRATE_METHOD, FILES_PICK_DIRECTORY_METHOD, FILES_PICK_FILES_METHOD, FILES_SAVE_FILE_METHOD, FILE_CREATE_METHOD, FILE_EXISTS_METHOD, FILE_READ_BYTES_METHOD, FILE_READ_TEXT_METHOD, FILE_REMOVE_METHOD, FILE_STAT_METHOD, FILE_WRITE_BYTES_METHOD, FILE_WRITE_TEXT_METHOD, MINI_PROGRAM_PROTOCOL_CAPABILITIES, NAVIGATION_CLOSE_METHOD, NAVIGATION_OPEN_APP_PAGE_METHOD, NAVIGATION_RELOAD_METHOD, NETWORK_REQUEST_METHOD, NETWORK_DOWNLOAD_METHOD, SHARE_COPY_LINK_METHOD, SHARE_SCREENSHOT_METHOD, SHARE_SHOW_SHARE_MENU_METHOD, STORAGE_GET_STORAGE_METHOD, STORAGE_SET_STORAGE_METHOD, UI_HIDE_LOADING_METHOD, UI_SHOW_LOADING_METHOD, UI_SHOW_TOAST_METHOD, USER_GET_INFO_METHOD, USER_GET_STEAM_GAME_LIST_METHOD, USER_REVOKE_AUTHORIZATION_METHOD, VIEWPORT_SET_DISPLAY_METHOD, VIEWPORT_GET_WINDOW_INFO_METHOD, VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD, } from '@heybox/hb-sdk-protocol';
2
2
  export type { MiniProgramAuthMethod, MiniProgramBridgeMethod, MiniProgramCapabilityDefinition, MiniProgramCapabilityModule, MiniProgramCapabilityPayload, MiniProgramCapabilityPayloadMap, MiniProgramCapabilityResult, MiniProgramCapabilityResultMap, MiniProgramCapabilityRisk, MiniProgramCloudMethod, MiniProgramDeviceMethod, MiniProgramDirectoryMethod, MiniProgramFileMethod, MiniProgramFilesMethod, MiniProgramNavigationMethod, MiniProgramNetworkMethod, MiniProgramShareMethod, MiniProgramStorageMethod, MiniProgramUiMethod, MiniProgramUserMethod, MiniProgramViewportMethod, } from '@heybox/hb-sdk-protocol';