@heybox/hb-sdk 0.8.3-alpha.5 → 0.8.3-alpha.9

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 (47) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +26 -6
  3. package/dist/cli-chunks/{build-8dIKgG1v.cjs → build-Dd5EmgU1.cjs} +5 -5
  4. package/dist/cli-chunks/{context-DSNBFwsG.cjs → context-Cm0U_oeb.cjs} +2 -2
  5. package/dist/cli-chunks/{create-DmNfBoq7.cjs → create-Bj08BLVt.cjs} +1 -1
  6. package/dist/cli-chunks/{dev-C15G1TxE.cjs → dev-BQtFwaZ6.cjs} +74 -19
  7. package/dist/cli-chunks/{doctor-r6m7pK1R.cjs → doctor-C3LLR1Hq.cjs} +1 -1
  8. package/dist/cli-chunks/{index-CsQ1g-cL.cjs → index-B2kcpr9q.cjs} +2 -2
  9. package/dist/cli-chunks/{index-B6lVqj5W.cjs → index-D4KcCSeD.cjs} +15 -15
  10. package/dist/cli-chunks/{index.esm-DG1EUOV-.cjs → index.esm-Dog1YTU_.cjs} +7 -7
  11. package/dist/cli-chunks/{login-DOUitUrc.cjs → login-C7Q6SStX.cjs} +2 -2
  12. package/dist/cli-chunks/{project-vite-C-YGhyHJ.cjs → project-vite-BWhbvrXL.cjs} +1 -1
  13. package/dist/cli-chunks/{remote-i3QX7A-u.cjs → remote-DrflbJjL.cjs} +7 -7
  14. package/dist/cli-chunks/{runtime-gate-hlz0xgg8.cjs → runtime-gate-OEku3HCR.cjs} +1 -1
  15. package/dist/cli-chunks/{runtime-permission-env-DNXaBBHz.cjs → runtime-permission-env-D7X7T6VT.cjs} +1 -1
  16. package/dist/cli-chunks/{session-u4BpZqwE.cjs → session-BC8gfXbM.cjs} +1 -1
  17. package/dist/cli-chunks/{skill-DAOCq0eg.cjs → skill-BXzVRK6G.cjs} +2 -2
  18. package/dist/cli-chunks/{version-MrIy1W5p.cjs → version-CHBZvmBz.cjs} +1 -1
  19. package/dist/cli.cjs +1 -1
  20. package/dist/devtools/browser-dev-host/assets/browser-dev-host-D820rR5R.js +102 -0
  21. package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-BbRQb08Y.js → desktop-app-launch-C0HMYsbA.js} +1 -1
  22. package/dist/devtools/browser-dev-host/assets/{index-8N4og21f.js → index-BUsHRfad.js} +3 -3
  23. package/dist/devtools/browser-dev-host/index.html +2 -2
  24. package/dist/index.cjs.js +549 -8
  25. package/dist/index.esm.js +549 -8
  26. package/dist/miniapp-publish.cjs.js +21 -6
  27. package/dist/miniapp-publish.esm.js +21 -7
  28. package/dist/templates/vanilla-vite-js/README.md.ejs +1 -1
  29. package/dist/templates/vanilla-vite-js/package.json.ejs +1 -1
  30. package/dist/vite.cjs.js +114 -8
  31. package/dist/vite.esm.js +114 -8
  32. package/docs/device-logs.md +2 -2
  33. package/docs/runtime-host-migration.md +7 -5
  34. package/package.json +7 -7
  35. package/skill/skill.json +4 -4
  36. package/types/index.d.ts +1 -1
  37. package/types/miniapp-manifest/schema.d.ts +34 -9
  38. package/types/miniapp-publish/index.d.ts +1 -1
  39. package/types/modules/navigation/app-pages/index.d.ts +1 -1
  40. package/types/modules/navigation/app-pages/types.d.ts +23 -5
  41. package/types/modules/navigation/index.d.ts +21 -12
  42. package/types/modules/share/extra.d.ts +2 -0
  43. package/types/modules/share/types.d.ts +1 -0
  44. package/types/protocol.d.ts +1 -1
  45. package/types/vite/html-policy.d.ts +1 -0
  46. package/types/vite/index.d.ts +4 -2
  47. package/dist/devtools/browser-dev-host/assets/browser-dev-host-CJDZz8aw.js +0 -101
@@ -13,13 +13,21 @@ export type MiniappPlatform = (typeof MINIAPP_PLATFORM_VALUES)[number];
13
13
  /** 平台声明硬切点:产物 hb-sdk 版本达到该值时,必须显式声明非空 `platforms`。 */
14
14
  export declare const MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION = "0.9.0";
15
15
  /**
16
- * 历史移动端兼容平台集合。
16
+ * 历史兜底平台集合。
17
17
  *
18
18
  * @remarks
19
19
  * 仅在 `sdkVersion` 缺失或 SemVer precedence 低于 `MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION`,
20
20
  * 且 Manifest 完全没有 `platforms` 字段时生效,不是任何非法声明的兜底。
21
+ *
22
+ * 不含 `linux`:客户端暂无 linux 基线,后端 `x_os_type` 也不映射该平台,声明了也进不了运行门禁。
23
+ */
24
+ export declare const MINIAPP_LEGACY_DEFAULT_PLATFORM_VALUES: readonly ["android", "ios", "ohos", "windows", "macos"];
25
+ /**
26
+ * 历史兜底平台集合的旧名称。
27
+ *
28
+ * @deprecated Since 0.8.3. 请改用 {@link MINIAPP_LEGACY_DEFAULT_PLATFORM_VALUES},本别名取值与之一致,仅为不破坏既有 import 保留。
21
29
  */
22
- export declare const MINIAPP_LEGACY_MOBILE_PLATFORM_VALUES: readonly ["android", "ios", "ohos"];
30
+ export declare const MINIAPP_LEGACY_MOBILE_PLATFORM_VALUES: readonly ["android", "ios", "ohos", "windows", "macos"];
23
31
  /** 窗口尺寸字段的脏值兜底上限;真正的上限是宿主侧显示器 workArea。 */
24
32
  export declare const MINIAPP_WINDOW_SIZE_MAX = 16384;
25
33
  /**
@@ -50,6 +58,20 @@ export interface MiniappWindowDeclaration {
50
58
  */
51
59
  export declare const MINIAPP_DESKTOP_PLATFORM_VALUES: readonly ["windows", "macos", "linux"];
52
60
  export declare function hasMiniappDesktopPlatform(platforms: readonly MiniappPlatform[] | undefined): boolean;
61
+ /**
62
+ * 判断平台声明是否仍是旧版模板的移动端默认值。
63
+ *
64
+ * @param platforms - 待判断的平台数组;不要求预先规范化顺序,重复项会被长度校验挡下。
65
+ * @returns 恰好包含 `android`、`ios`、`ohos` 三个平台时返回 `true`,其余组合返回 `false`。
66
+ */
67
+ export declare function isLegacyMobileTemplatePlatforms(platforms: readonly MiniappPlatform[]): boolean;
68
+ /**
69
+ * 生成「平台声明仍是旧模板移动端默认」的非阻断提示。
70
+ *
71
+ * @param sourceLabel - 提示前缀,默认指向开发者声明路径。
72
+ * @returns 面向开发者的单行提示;调用方负责经 Vite 插件 `warn` 或等价日志通道输出,不得据此阻断构建。
73
+ */
74
+ export declare function getLegacyMobileTemplatePlatformsNotice(sourceLabel?: string): string;
53
75
  export interface MiniappManifest {
54
76
  [key: string]: unknown;
55
77
  name?: string;
@@ -140,7 +162,10 @@ export declare function areMiniappPlatformsEqual(left: readonly MiniappPlatform[
140
162
  * - `explicit`:Manifest 自身拥有合法、非空的 `platforms` 字段;无论 sdkVersion 是否低于
141
163
  * `0.9.0`,显式声明都优先且不会被兼容默认值覆盖。
142
164
  * - `legacy_mobile_default`:Manifest 完全没有 `platforms` 字段,且 sdkVersion 缺失/空白或
143
- * SemVer precedence 低于 `0.9.0`;最终按 `android`、`ios`、`ohos` 历史集合兼容。
165
+ * SemVer precedence 低于 `0.9.0`;最终按 {@link MINIAPP_LEGACY_DEFAULT_PLATFORM_VALUES} 兜底。
166
+ *
167
+ * 字面量 `legacy_mobile_default` 已作为详情接口 wire 值下发、并持久化进后端平台快照;
168
+ * 兜底集合虽已由移动端三件套扩为五平台,这里仍保持原字符串不变,避免存储与协议迁移。
144
169
  */
145
170
  export type MiniappPlatformPolicy = 'explicit' | 'legacy_mobile_default';
146
171
  /**
@@ -149,7 +174,7 @@ export type MiniappPlatformPolicy = 'explicit' | 'legacy_mobile_default';
149
174
  * @remarks
150
175
  * 返回对象通过 `Object.freeze()` 冻结,字段和数组在类型层也都是只读值。调用方应把其中
151
176
  * 的数组视为不可变集合,不要修改、重新排序或自行合并 fallback。`platformsDeclared` 与
152
- * `policy` 用于保留“显式三移动端”与“历史默认三移动端”的来源差异。
177
+ * `policy` 用于保留“显式声明”与“历史缺声明默认”的来源差异。
153
178
  */
154
179
  export interface MiniappPlatformResolution {
155
180
  /**
@@ -160,11 +185,11 @@ export interface MiniappPlatformResolution {
160
185
  readonly declared: readonly MiniappPlatform[];
161
186
  /**
162
187
  * 最终用于展示、校验和运行判断的平台集合。`explicit` 时与规范化后的 `declared` 相同;
163
- * `legacy_mobile_default` 时固定为 `android`、`ios`、`ohos`。
188
+ * `legacy_mobile_default` 时固定为 {@link MINIAPP_LEGACY_DEFAULT_PLATFORM_VALUES}。
164
189
  */
165
190
  readonly effective: readonly MiniappPlatform[];
166
191
  /**
167
- * Manifest 是否拥有经过校验的显式 `platforms` 字段。显式声明三移动端时为 `true`,
192
+ * Manifest 是否拥有经过校验的显式 `platforms` 字段。显式声明时为 `true`,
168
193
  * 历史 fallback 得到相同 effective 集合时仍为 `false`。
169
194
  */
170
195
  readonly platformsDeclared: boolean;
@@ -180,7 +205,7 @@ export interface MiniappPlatformResolution {
180
205
  * @param manifest - 待解析的不可信 Manifest。必须是非 `null`、非数组的对象;函数只读取其
181
206
  * 自有 `platforms` 字段,其他字段不参与平台解析。
182
207
  * @returns 冻结的 {@link MiniappPlatformResolution}。显式声明返回规范排序后的 declared /
183
- * effective;历史兼容返回空 declared 与 Android/iOS/OHOS effective。
208
+ * effective;历史兼容返回空 declared 与历史兜底平台集合 effective。
184
209
  * @throws `manifest` 不是对象时抛出;非空 sdkVersion 不完整、含 `v` 前缀或 build metadata、
185
210
  * 不是 canonical SemVer 时抛出;sdkVersion precedence 达到 `0.9.0` 但缺少 platforms 时抛出;
186
211
  * 显式 platforms 不是非空数组、包含未知/非字符串/重复平台时抛出。
@@ -228,11 +253,11 @@ export interface MiniappPlatformResolution {
228
253
  * // }
229
254
  *
230
255
  * const legacy = resolveMiniappManifestPlatforms('0.9.0-alpha.1', {})
231
- * console.log(legacy.effective) // ['android', 'ios', 'ohos']
256
+ * console.log(legacy.effective) // ['android', 'ios', 'ohos', 'windows', 'macos']
232
257
  * ```
233
258
  *
234
259
  * @see {@link MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION}
235
- * @see {@link MINIAPP_LEGACY_MOBILE_PLATFORM_VALUES}
260
+ * @see {@link MINIAPP_LEGACY_DEFAULT_PLATFORM_VALUES}
236
261
  * @see {@link https://docs.xiaoheihe.cn/hb_sdk/reference/symbols/miniapp-publish/functions/isValidVersion | isValidVersion}
237
262
  * @see {@link https://docs.xiaoheihe.cn/hb_sdk/reference/symbols/vite/functions/miniappManifest | miniappManifest}
238
263
  */
@@ -54,7 +54,7 @@ export declare const UPDATE_SQUARE_DISPLAY_API_PATH = "/mall/developer/user_mini
54
54
  export declare const LIST_USER_MINIPROGRAM_VERSION_API_PATH = "/mall/developer/user_miniprogram/version/list";
55
55
  export { parseMiniappCategory, type MiniappCategory } from '../miniapp-manifest/category';
56
56
  export { isValidMiniappManifestVersion as isValidVersion } from '../miniapp-manifest/schema';
57
- export { MINIAPP_LEGACY_MOBILE_PLATFORM_VALUES, MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION, resolveMiniappManifestPlatforms, type MiniappPlatformPolicy, type MiniappPlatformResolution, } from '../miniapp-manifest/schema';
57
+ export { MINIAPP_LEGACY_DEFAULT_PLATFORM_VALUES, MINIAPP_LEGACY_MOBILE_PLATFORM_VALUES, MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION, resolveMiniappManifestPlatforms, type MiniappPlatformPolicy, type MiniappPlatformResolution, } from '../miniapp-manifest/schema';
58
58
  export { parseMiniappBindAppIds, type ParseMiniappBindAppIdsOptions } from '../miniapp-manifest/bindings';
59
59
  /**
60
60
  * 将扫描到的相对路径转换为统一的 `/` 分隔形式。
@@ -1,4 +1,4 @@
1
1
  import type { OpenAppPageOptions, OpenAppPagePayload } from './types';
2
- export type { MiniProgramAppPageTarget, MiniProgramGameDetailGameType, MiniProgramGameDetailPage, OpenAppPageOptions, OpenAppPagePayload, OpenAppPageResult, OpenGameDetailAppPagePayload, OpenGameDetailAppPageOptions, OpenPostDetailAppPagePayload, OpenPostDetailAppPageOptions, OpenUserDetailAppPagePayload, OpenUserDetailAppPageOptions, } from './types';
2
+ export type { MiniProgramAppPageTarget, MiniProgramGameDetailGameType, MiniProgramGameDetailPage, OpenAppPageOptions, OpenAppPagePayload, OpenAppPageResult, OpenGameDetailAppPagePayload, OpenGameDetailAppPageOptions, OpenMiniProgramAppPagePayload, OpenMiniProgramAppPageOptions, OpenPostDetailAppPagePayload, OpenPostDetailAppPageOptions, OpenUserDetailAppPagePayload, OpenUserDetailAppPageOptions, } from './types';
3
3
  /** 校验并规范化打开黑盒 App 页面参数。 */
4
4
  export declare function normalizeOpenAppPageOptions(options: OpenAppPageOptions): OpenAppPagePayload;
@@ -1,3 +1,4 @@
1
+ import type { MiniProgramShareExtraValue } from '../../share/types';
1
2
  /**
2
3
  * 小程序可请求打开的黑盒 App 页面目标。
3
4
  *
@@ -5,11 +6,12 @@
5
6
  * - `game_detail`:小黑盒游戏详情页。
6
7
  * - `user_detail`:小黑盒用户详情页。
7
8
  * - `post_detail`:小黑盒帖子详情页,可选定位评论。
9
+ * - `mini_program`:另一个公开发布的小程序。
8
10
  *
9
- * 移动端 Host 支持这三类语义目标;当前 PC Host 只支持 `game_detail`。该联合不接受任意
10
- * URL、scheme 或内部路由路径,不支持的目标会在 SDK 或 Host 边界明确拒绝。
11
+ * 移动端 Host 支持全部目标;PC Host 支持 `game_detail` 与 `mini_program`。该联合不接受任意
12
+ * URL、scheme、目标版本或内部路由路径,不支持的目标会在 SDK 或 Host 边界明确拒绝。
11
13
  */
12
- export type MiniProgramAppPageTarget = 'game_detail' | 'user_detail' | 'post_detail';
14
+ export type MiniProgramAppPageTarget = 'game_detail' | 'user_detail' | 'post_detail' | 'mini_program';
13
15
  /**
14
16
  * 游戏详情的游戏平台类型:`pc`、`console`(主机)或 `mobile`(移动游戏)。
15
17
  * 值区分大小写,不接受平台别名。
@@ -68,6 +70,18 @@ export interface OpenPostDetailAppPageOptions {
68
70
  */
69
71
  commentId?: string | number;
70
72
  }
73
+ /** 打开另一个公开发布小程序的参数。 */
74
+ export interface OpenMiniProgramAppPageOptions {
75
+ /** 固定为 `mini_program`。 */
76
+ target: 'mini_program';
77
+ /** 目标小程序 ID。SDK 会 trim 并拒绝空值;实际可访问性与版本由 Host 决定。 */
78
+ miniProgramId: string;
79
+ /**
80
+ * 可选启动数据。目标小程序通过 `share.getExtra()` 同步读取;省略与显式传入 `null` 含义不同。
81
+ * 值域、嵌套和 128 字节 MessagePack 上限与分享 `extra` 完全一致。
82
+ */
83
+ extra?: MiniProgramShareExtraValue;
84
+ }
71
85
  /**
72
86
  * 打开黑盒 App 页面的判别联合参数。
73
87
  *
@@ -83,7 +97,7 @@ export interface OpenPostDetailAppPageOptions {
83
97
  *
84
98
  * @see [navigation.openAppPage](/reference/sdk/navigation/openAppPage)
85
99
  */
86
- export type OpenAppPageOptions = OpenGameDetailAppPageOptions | OpenUserDetailAppPageOptions | OpenPostDetailAppPageOptions;
100
+ export type OpenAppPageOptions = OpenGameDetailAppPageOptions | OpenUserDetailAppPageOptions | OpenPostDetailAppPageOptions | OpenMiniProgramAppPageOptions;
87
101
  /**
88
102
  * 打开游戏详情页的规范化 bridge payload;`appId` 与可选 `skuId` 已转换为非空字符串。
89
103
  */
@@ -101,12 +115,16 @@ export type OpenPostDetailAppPagePayload = Omit<OpenPostDetailAppPageOptions, 'l
101
115
  rootCommentId?: string;
102
116
  commentId?: string;
103
117
  };
118
+ /** 打开目标小程序的规范化 bridge payload;`miniProgramId` 已 trim。 */
119
+ export type OpenMiniProgramAppPagePayload = Omit<OpenMiniProgramAppPageOptions, 'miniProgramId'> & {
120
+ miniProgramId: string;
121
+ };
104
122
  /**
105
123
  * `navigation.openAppPage` 发送给 Host Runtime 的判别联合 payload。
106
124
  *
107
125
  * @remarks 只包含目标白名单字段;Runtime 会再次校验并构造固定的 Host 页面路由。
108
126
  */
109
- export type OpenAppPagePayload = OpenGameDetailAppPagePayload | OpenUserDetailAppPagePayload | OpenPostDetailAppPagePayload;
127
+ export type OpenAppPagePayload = OpenGameDetailAppPagePayload | OpenUserDetailAppPagePayload | OpenPostDetailAppPagePayload | OpenMiniProgramAppPagePayload;
110
128
  /**
111
129
  * `navigation.openAppPage` 成功时 resolve `undefined`。
112
130
  *
@@ -1,7 +1,7 @@
1
1
  import type { MiniProgramRequester } from '../../core/client';
2
2
  import { type OpenAppPageOptions } from './app-pages';
3
3
  export { NAVIGATION_CLOSE_METHOD, NAVIGATION_OPEN_APP_PAGE_METHOD, NAVIGATION_RELOAD_METHOD } from '../../protocol/capabilities';
4
- export type { MiniProgramAppPageTarget, MiniProgramGameDetailGameType, MiniProgramGameDetailPage, OpenAppPageOptions, OpenAppPagePayload, OpenAppPageResult, OpenGameDetailAppPagePayload, OpenGameDetailAppPageOptions, OpenPostDetailAppPagePayload, OpenPostDetailAppPageOptions, OpenUserDetailAppPagePayload, OpenUserDetailAppPageOptions, } from './app-pages';
4
+ export type { MiniProgramAppPageTarget, MiniProgramGameDetailGameType, MiniProgramGameDetailPage, OpenAppPageOptions, OpenAppPagePayload, OpenAppPageResult, OpenGameDetailAppPagePayload, OpenGameDetailAppPageOptions, OpenMiniProgramAppPagePayload, OpenMiniProgramAppPageOptions, OpenPostDetailAppPagePayload, OpenPostDetailAppPageOptions, OpenUserDetailAppPagePayload, OpenUserDetailAppPageOptions, } from './app-pages';
5
5
  /**
6
6
  * `navigation.close` 的无参 payload。
7
7
  *
@@ -178,7 +178,7 @@ export interface MiniProgramNavigationModule {
178
178
  */
179
179
  reload(): Promise<void>;
180
180
  /**
181
- * 请求宿主打开受 SDK 白名单约束的黑盒 App 页面。
181
+ * 请求宿主打开受 SDK 白名单约束的黑盒 App 页面或公开小程序。
182
182
  *
183
183
  * @param options - 由 `target` 判别的目标页参数;字段与规范化规则见 {@link OpenAppPageOptions}。
184
184
  * @returns Host 接收参数并发起页面路由后 resolve `undefined`;不会等待目标页加载或返回目标页结果。
@@ -192,15 +192,15 @@ export interface MiniProgramNavigationModule {
192
192
  * 时,还会返回对应握手错误码或 `REQUEST_TIMEOUT`;其他 Host 路由失败保留其 SDK 错误码。
193
193
  *
194
194
  * @remarks
195
- * 公开白名单仅包含游戏详情、用户详情和帖子详情;不能传任意 URL、scheme 或客户端内部
196
- * 路径。SDK 会 trim 字符串,把 `appId`、`skuId`、`linkId`、`rootCommentId`、`commentId`
197
- * 中的数字转换为字符串,并丢弃目标类型未声明的额外字段。Runtime 在 Host 边界再次校验,
198
- * 再构造固定路由,页面提供的字段不能覆盖目标路径。
195
+ * 公开白名单包含游戏详情、用户详情、帖子详情和公开小程序;不能传任意 URL、scheme、版本
196
+ * 或客户端内部路径。`mini_program` 只接受 `miniProgramId` 与可选 `extra`,目标版本和访问性
197
+ * 由 Host 决定。`extra` 与分享扩展数据使用相同格式,目标小程序通过 `share.getExtra()` 读取。
198
+ * Runtime 会在 Host 边界再次校验,页面提供的字段不能覆盖目标路径或窗口展示参数。
199
199
  *
200
- * 移动端 Host 支持三个目标。当前 Windows/macOS PC Host 只支持 `game_detail`,并只把
201
- * `appId` 交给游戏详情导航;`gameType` 仍须合法,而 `page`、`hSrc`、`skuId` 不保证在 PC
202
- * 生效。调用方应按目标和平台处理 `REQUEST_UNSUPPORTED`,不能仅凭方法出现在能力目录中
203
- * 推断每种目标都可用。
200
+ * 移动端 Host 支持全部四类目标。当前 Windows/macOS PC Host 支持 `game_detail` 和
201
+ * `mini_program`,仍不支持 `user_detail`、`post_detail`;游戏详情只把 `appId` 交给导航,
202
+ * `gameType` 仍须合法,而 `page`、`hSrc`、`skuId` 不保证在 PC 生效。调用方应按目标和平台
203
+ * 处理 `REQUEST_UNSUPPORTED`,不能仅凭方法出现在能力目录中推断每种目标都可用。
204
204
  *
205
205
  * 该调用无需 `package.json#heybox.permissions` 声明、平台批准、用户授权或可信用户手势。
206
206
  * 它只发起一次 App 导航,没有返回值或 disposer,也不会替代
@@ -236,11 +236,20 @@ export interface MiniProgramNavigationModule {
236
236
  * commentId,
237
237
  * })
238
238
  * }
239
+ *
240
+ * async function openMiniProgram() {
241
+ * await hbSDK.navigation.openAppPage({
242
+ * target: 'mini_program',
243
+ * miniProgramId: '2e2b8e19-8d73-45f8-8785-b87fd5535510',
244
+ * extra: { page: 'ranking' },
245
+ * })
246
+ * }
239
247
  * ```
240
248
  *
241
249
  * @see {@link OpenGameDetailAppPageOptions}
242
250
  * @see {@link OpenUserDetailAppPageOptions}
243
251
  * @see {@link OpenPostDetailAppPageOptions}
252
+ * @see {@link OpenMiniProgramAppPageOptions}
244
253
  * @see [navigation.close](/reference/sdk/navigation/close)
245
254
  * @see [navigation.reload](/reference/sdk/navigation/reload)
246
255
  * @see [权限声明](/guide/permissions#无需声明的-api)
@@ -280,14 +289,14 @@ export declare function close(requester: MiniProgramRequester): Promise<void>;
280
289
  */
281
290
  export declare function reload(requester: MiniProgramRequester): Promise<void>;
282
291
  /**
283
- * 请求宿主打开受 SDK 白名单约束的黑盒 App 页面。
292
+ * 请求宿主打开受 SDK 白名单约束的黑盒 App 页面或公开小程序。
284
293
  *
285
294
  * @param requester - 底层 bridge 请求能力。
286
295
  * @param options - 由 `target` 判别的目标页参数;发送前会校验并规范化。
287
296
  * @returns Host 发起受控页面路由后 resolve `undefined`。
288
297
  * @throws {@link HbMiniProgramSDKError} 参数非法、目标不受 Host 支持、路由失败或 SDK /
289
298
  * Runtime 已终止时抛出。
290
- * @remarks 该能力不接受任意 URL 或内部路由,也无需 Manifest 权限或可信用户手势。
299
+ * @remarks 该能力不接受任意 URL、版本或内部路由,也无需 Manifest 权限或可信用户手势。
291
300
  * @see [navigation.openAppPage](/reference/sdk/navigation/openAppPage)
292
301
  */
293
302
  export declare function openAppPage(requester: MiniProgramRequester, options: OpenAppPageOptions): Promise<void>;
@@ -1,3 +1,5 @@
1
1
  import type { MiniProgramShareExtraValue } from './types';
2
+ /** 校验公开启动扩展数据,并保持调用方传入的值语义不变。 */
3
+ export declare function normalizeMiniProgramShareExtra(value: unknown): MiniProgramShareExtraValue;
2
4
  /** 读取小程序启动时携带的分享数据。 */
3
5
  export declare function readMiniProgramShareExtra(launchHref?: string): MiniProgramShareExtraValue | undefined;
@@ -14,6 +14,7 @@ export type MiniProgramShareChannel = 'wechatSession' | 'wechatTimeline' | 'qqFr
14
14
  * @remarks
15
15
  * 只允许 `null`、有限数字、字符串、布尔值、数组和普通对象;`undefined`、`NaN`、
16
16
  * `Infinity`、`bigint`、`symbol`、函数、循环引用、`Date`、`Map` 和其他 class 实例均不受支持。
17
+ * 普通对象的 key 不能是 MessagePack 解码器保留的 `__proto__`。
17
18
  * 合法的 `null`、`false`、`0` 与空字符串在 {@link MiniProgramShareModule.getExtra | share.getExtra}
18
19
  * 中会原样返回,不能用真假值判断是否存在分享数据。
19
20
  *
@@ -1,5 +1,5 @@
1
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_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_REQUEST_METHOD, NETWORK_DOWNLOAD_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_INFO_AUTHORIZATION_SCOPES, 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, isManagedMiniProgramRuntimePermissionKey, isMiniProgramByteArray, isMiniProgramBridgeMessage, isMiniProgramDirectoryDescriptor, isMiniProgramDirectoryRef, isMiniProgramDownloadProgressPayload, isMiniProgramFileDescriptor, isMiniProgramFileRef, isMiniProgramFileStat, isMiniProgramFileSystemEntityDescriptor, isMiniProgramPathRootRef, isMiniProgramRelativePath, parseMiniProgramRuntimePermissions, } from '@heybox/hb-sdk-protocol';
2
- export type { AuthorizedUserInfo, ClosePayload, CloseResult, CopyLinkPayload, CopyLinkResult, DirectoryCreatePayload, DirectoryCreateResult, DirectoryExistsPayload, DirectoryExistsResult, DirectoryListPayload, DirectoryListResult, DirectoryRemovePayload, DirectoryRemoveResult, DeleteCurrentUserLeaderboardEntryPayload, DeleteCurrentUserLeaderboardEntryResult, GetCurrentUserLeaderboardEntryPayload, GetCurrentUserLeaderboardEntryResult, GetLeaderboardInfoPayload, GetLeaderboardInfoResult, GetLeaderboardListPayload, GetLeaderboardListResult, GetSteamGameListPayload, GetSteamGameListResult, GetStoragePayload, GetStorageResult, GetUserInfoPayload, GetUserInfoResult, MiniProgramOrientationMode, SetDisplayPayload, SetDisplayResult, MiniProgramDisplayState, GetWindowInfoPayload, GetWindowInfoResult, DownloadProgressPayload, HideLoadingPayload, HideLoadingResult, FileCreatePayload, FileCreateResult, FileExistsPayload, FileExistsResult, FileReadBytesPayload, FileReadBytesResult, FileReadTextPayload, FileReadTextResult, FileRemovePayload, FileRemoveResult, FileStatPayload, FileStatResult, FileWriteBytesPayload, FileWriteBytesResult, FileWriteTextPayload, FileWriteTextResult, LeaderboardEntry, LeaderboardOrder, LoginPayload, LoginResult, LoginScope, MiniProgramAuthMethod, MiniProgramBridgeError, MiniProgramBridgeCancelMessage, MiniProgramBridgeMessage, MiniProgramBridgeMessageType, MiniProgramBridgeProgressMessage, MiniProgramBridgeMethod, MiniProgramCapabilityDefinition, MiniProgramCapabilityModule, MiniProgramCapabilityPayload, MiniProgramCapabilityPayloadMap, MiniProgramCapabilityResult, MiniProgramCapabilityResultMap, MiniProgramCapabilityRisk, MiniProgramCloudMethod, MiniProgramDeviceMethod, MiniProgramDirectoryDescriptor, MiniProgramDirectoryMethod, MiniProgramDirectoryRef, MiniProgramDirectDirectoryRef, MiniProgramDirectFileRef, MiniProgramEventName, MiniProgramEventPayloadMap, MiniProgramFileDescriptor, MiniProgramFileMode, MiniProgramFileMethod, MiniProgramFileRef, MiniProgramFilesMethod, MiniProgramFileStat, MiniProgramFileSystemEntityDescriptor, MiniProgramFileSystemEntityRef, MiniProgramPathRootRef, MiniProgramSandboxRootRef, MiniProgramNavigationBarForegroundStyle, MiniProgramNavigationMethod, MiniProgramNetworkHeaders, MiniProgramNetworkMethod, MiniProgramNetworkParams, MiniProgramNetworkRequestMethod, MiniProgramOperatingSystemName, MiniProgramRuntimePermissionEntry, MiniProgramRuntimeEnvironmentInfo, MiniProgramRuntimeMode, MiniProgramRuntimePermissionsSnapshot, MiniProgramRuntimePermissionStatus, MiniProgramSafeArea, MiniProgramScreenshotRect, MiniProgramShareChannel, MiniProgramShareMethod, MiniProgramSharePostOptions, MiniProgramStorageMethod, MiniProgramToastStatus, MiniProgramUiMethod, MiniProgramUserInfoResult, MiniProgramUserMethod, MiniProgramVibrateIntensity, MiniProgramViewportMethod, MiniProgramWindowInfoResult, NetworkRequestPayload, NetworkResponsePayload, NetworkDownloadPayload, NetworkDownloadResult, OpenAppPagePayload, OpenAppPageResult, OpenGameDetailAppPagePayload, OpenPostDetailAppPagePayload, OpenUserDetailAppPagePayload, PickDirectoryPayload, PickDirectoryResult, PickFilesPayload, PickFilesResult, ParsedMiniProgramRuntimePermissions, ReloadPayload, ReloadResult, RevokeAuthorizationPayload, RevokeAuthorizationResult, RuntimeLocationProbePayload, ScreenshotPayload, ScreenshotResult, SaveFilePayload, SaveFileResult, SDKCSPBlockedResourceType, SDKCSPViolationPayload, SDKHandshakePayload, SDKHandshakeResult, SDKLocationReportPayload, SDKLocationReportTrigger, SetClipboardPayload, SetClipboardResult, SetNavigationBarStylePayload, SetNavigationBarStyleResult, SetStoragePayload, ShowLoadingPayload, ShowLoadingResult, ShowShareMenuPayload, ShowShareMenuResult, ShowToastPayload, ShowToastResult, SteamGameListData, SteamGameListItem, SteamGameListSort, SteamGamePrice, SubmitLeaderboardEntryPayload, SubmitLeaderboardEntryResult, UserInfoAuthorization, UserInfoAuthorizationScope, UserInfoAuthorizationStatus, VibratePayload, VibrateResult, } from '@heybox/hb-sdk-protocol';
2
+ export type { AuthorizedUserInfo, ClosePayload, CloseResult, CopyLinkPayload, CopyLinkResult, DirectoryCreatePayload, DirectoryCreateResult, DirectoryExistsPayload, DirectoryExistsResult, DirectoryListPayload, DirectoryListResult, DirectoryRemovePayload, DirectoryRemoveResult, DeleteCurrentUserLeaderboardEntryPayload, DeleteCurrentUserLeaderboardEntryResult, GetCurrentUserLeaderboardEntryPayload, GetCurrentUserLeaderboardEntryResult, GetLeaderboardInfoPayload, GetLeaderboardInfoResult, GetLeaderboardListPayload, GetLeaderboardListResult, GetSteamGameListPayload, GetSteamGameListResult, GetStoragePayload, GetStorageResult, GetUserInfoPayload, GetUserInfoResult, MiniProgramOrientationMode, SetDisplayPayload, SetDisplayResult, MiniProgramDisplayState, GetWindowInfoPayload, GetWindowInfoResult, DownloadProgressPayload, HideLoadingPayload, HideLoadingResult, FileCreatePayload, FileCreateResult, FileExistsPayload, FileExistsResult, FileReadBytesPayload, FileReadBytesResult, FileReadTextPayload, FileReadTextResult, FileRemovePayload, FileRemoveResult, FileStatPayload, FileStatResult, FileWriteBytesPayload, FileWriteBytesResult, FileWriteTextPayload, FileWriteTextResult, LeaderboardEntry, LeaderboardOrder, LoginPayload, LoginResult, LoginScope, MiniProgramAuthMethod, MiniProgramBridgeError, MiniProgramBridgeCancelMessage, MiniProgramBridgeMessage, MiniProgramBridgeMessageType, MiniProgramBridgeProgressMessage, MiniProgramBridgeMethod, MiniProgramCapabilityDefinition, MiniProgramCapabilityModule, MiniProgramCapabilityPayload, MiniProgramCapabilityPayloadMap, MiniProgramCapabilityResult, MiniProgramCapabilityResultMap, MiniProgramCapabilityRisk, MiniProgramCloudMethod, MiniProgramDeviceMethod, MiniProgramDirectoryDescriptor, MiniProgramDirectoryMethod, MiniProgramDirectoryRef, MiniProgramDirectDirectoryRef, MiniProgramDirectFileRef, MiniProgramEventName, MiniProgramEventPayloadMap, MiniProgramFileDescriptor, MiniProgramFileMode, MiniProgramFileMethod, MiniProgramFileRef, MiniProgramFilesMethod, MiniProgramFileStat, MiniProgramFileSystemEntityDescriptor, MiniProgramFileSystemEntityRef, MiniProgramPathRootRef, MiniProgramSandboxRootRef, MiniProgramNavigationBarForegroundStyle, MiniProgramNavigationMethod, MiniProgramNetworkHeaders, MiniProgramNetworkMethod, MiniProgramNetworkParams, MiniProgramNetworkRequestMethod, MiniProgramOperatingSystemName, MiniProgramRuntimePermissionEntry, MiniProgramRuntimeEnvironmentInfo, MiniProgramRuntimeMode, MiniProgramRuntimePermissionsSnapshot, MiniProgramRuntimePermissionStatus, MiniProgramSafeArea, MiniProgramScreenshotRect, MiniProgramShareChannel, MiniProgramShareMethod, MiniProgramSharePostOptions, MiniProgramStorageMethod, MiniProgramToastStatus, MiniProgramUiMethod, MiniProgramUserInfoResult, MiniProgramUserMethod, MiniProgramVibrateIntensity, MiniProgramViewportMethod, MiniProgramWindowInfoResult, NetworkRequestPayload, NetworkResponsePayload, NetworkDownloadPayload, NetworkDownloadResult, OpenAppPagePayload, OpenAppPageResult, OpenGameDetailAppPagePayload, OpenMiniProgramAppPagePayload, OpenPostDetailAppPagePayload, OpenUserDetailAppPagePayload, PickDirectoryPayload, PickDirectoryResult, PickFilesPayload, PickFilesResult, ParsedMiniProgramRuntimePermissions, ReloadPayload, ReloadResult, RevokeAuthorizationPayload, RevokeAuthorizationResult, RuntimeLocationProbePayload, ScreenshotPayload, ScreenshotResult, SaveFilePayload, SaveFileResult, SDKCSPBlockedResourceType, SDKCSPViolationPayload, SDKHandshakePayload, SDKHandshakeResult, SDKLocationReportPayload, SDKLocationReportTrigger, SetClipboardPayload, SetClipboardResult, SetNavigationBarStylePayload, SetNavigationBarStyleResult, SetStoragePayload, ShowLoadingPayload, ShowLoadingResult, ShowShareMenuPayload, ShowShareMenuResult, ShowToastPayload, ShowToastResult, SteamGameListData, SteamGameListItem, SteamGameListSort, SteamGamePrice, SubmitLeaderboardEntryPayload, SubmitLeaderboardEntryResult, UserInfoAuthorization, UserInfoAuthorizationScope, UserInfoAuthorizationStatus, VibratePayload, VibrateResult, } from '@heybox/hb-sdk-protocol';
3
3
  export type { LoginOptions } from './modules/auth';
4
4
  export type { GetSteamGameListOptions } from './modules/user';
5
5
  export type { MiniProgramEventHandler } from './protocol/types';
@@ -1,5 +1,6 @@
1
1
  export declare const PRODUCTION_CSP: string;
2
2
  export declare function enforceMiniappHtmlPolicy(html: string, options?: {
3
+ deviceLogUploadUrls?: readonly string[];
3
4
  hmrWebSocketUrl?: string;
4
5
  skipPlatformCsp?: boolean;
5
6
  }): string;
@@ -18,7 +18,7 @@ export interface MiniappManifestPlugin {
18
18
  /** 记录 Vite 根目录、输出目录、运行命令和开发期 HMR 地址。 */
19
19
  configResolved: (resolved: MiniappManifestResolvedConfig) => void;
20
20
  /** 为 `hb-sdk dev` 注册本机调试能力;生产构建不会创建开发服务。 */
21
- configureServer: (server: MiniappManifestDevServer) => void;
21
+ configureServer: (this: MiniappManifestPluginContext, server: MiniappManifestDevServer) => void;
22
22
  /** 保留 Rollup/Vite 已报告的构建错误,避免产物校验用二次错误掩盖原始原因。 */
23
23
  buildEnd: (error?: Error) => void;
24
24
  /** 向入口 HTML 注入 Runtime Gate 和平台 CSP;serve 时还会加入受限的 HMR 与日志调试支持。 */
@@ -134,7 +134,9 @@ export declare const HB_SDK_MINI_PROGRAM_MANIFEST_ACCESS_TOKEN_ENV = "HB_SDK_MIN
134
134
  *
135
135
  * - `version`:发布版本;trim 后必须是完整 SemVer,可含 prerelease,不允许 build metadata 或模板值
136
136
  * `0.0.0`;
137
- * - `heybox.platforms`:项目实际承诺适配的非空、无重复平台 allowlist;输出按平台词表规范排序;
137
+ * - `heybox.platforms`:项目实际承诺适配的非空、无重复平台 allowlist;输出按平台词表规范排序。
138
+ * 声明仍停留在旧模板移动端默认(`android`、`ios`、`ohos`)时,`serve` 与 `build` 都只输出
139
+ * 一条非阻断提示,不影响构建结果;
138
140
  * - `heybox.permissions`:严格权限对象;未知权限/字段或错误类型会失败,`enabled: false` 项不写入
139
141
  * Manifest。旧版本缺失声明时可能警告,新硬切版本会失败;
140
142
  * - `heybox.window`:可选的新 PC 开窗初值、最小尺寸和 `resizable` 声明;省略时不写该字段;