@heybox/hb-sdk 0.8.2-alpha.1 → 0.8.2-alpha.5
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.
- package/CHANGELOG.md +39 -1
- package/README.md +5 -1
- package/dist/cli-chunks/{build-DFwk1Xza.cjs → build-D2T3ky_9.cjs} +5 -5
- package/dist/cli-chunks/{context-DPwjjbIf.cjs → context-DEgmdpSL.cjs} +326 -104
- package/dist/cli-chunks/{create-Cbk708wm.cjs → create-DKqQhrG5.cjs} +5 -1
- package/dist/cli-chunks/{dev-B1dCAh3V.cjs → dev-BEXM7cmq.cjs} +17 -9
- package/dist/cli-chunks/{doctor-KX6cHAbM.cjs → doctor-B7UixGrd.cjs} +1 -1
- package/dist/cli-chunks/{index-B5GNdZS6.cjs → index-BtwfuoWI.cjs} +15 -17
- package/dist/cli-chunks/{index-D1CfvRqX.cjs → index-C69OtRug.cjs} +2 -2
- package/dist/cli-chunks/{index.esm-BvuovqBQ.cjs → index.esm-C86KlVdK.cjs} +11 -10
- package/dist/cli-chunks/{login-CqdIa3XD.cjs → login-Bp_HMx-i.cjs} +2 -2
- package/dist/cli-chunks/{project-vite-Bw3UJTnC.cjs → project-vite-DZxipd13.cjs} +1 -1
- package/dist/cli-chunks/{remote-t0V-fuAW.cjs → remote-B_sVsbQP.cjs} +80 -60
- package/dist/cli-chunks/runtime-gate-GR9jZd37.cjs +58 -0
- package/dist/cli-chunks/{runtime-gate-BWb8QIcX.cjs → runtime-permission-env-COWketgE.cjs} +4533 -40
- package/dist/cli-chunks/{session-DFY2dygN.cjs → session-6-AApcTZ.cjs} +1 -1
- package/dist/cli-chunks/{skill-D3xHcK8w.cjs → skill-CPDLk7t7.cjs} +2 -2
- package/dist/cli-chunks/{version-DkVq4CXN.cjs → version-hHrSPRwW.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-CpwQQhA1.js +101 -0
- package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-8J62MOi_.js → desktop-app-launch-BdWBOIvY.js} +1 -1
- package/dist/devtools/browser-dev-host/assets/{index-CrsPiYXy.js → index-BQSEynx6.js} +3 -3
- package/dist/devtools/browser-dev-host/index.html +2 -2
- package/dist/index.cjs.js +946 -42
- package/dist/index.esm.js +946 -42
- package/dist/miniapp-publish.cjs.js +9410 -122
- package/dist/miniapp-publish.esm.js +9406 -123
- package/dist/protocol.cjs.js +805 -0
- package/dist/protocol.esm.js +805 -0
- package/dist/templates/vanilla-vite-js/assets/heybox-placeholder.png +0 -0
- package/dist/templates/vanilla-vite-js/package.json.ejs +3 -0
- package/dist/vite.cjs.js +843 -507
- package/dist/vite.esm.js +844 -508
- package/package.json +8 -7
- package/skill/SKILL.md +5 -1
- package/skill/references/api-root.md +194 -9
- package/skill/references/cli.md +3 -3
- package/skill/references/recipes.md +43 -4
- package/skill/skill.json +5 -5
- package/types/core/errors.d.ts +33 -9
- package/types/core/handshake-state.d.ts +32 -2
- package/types/core/singleton.d.ts +265 -6
- package/types/miniapp-manifest/basic-info-browser.d.ts +9 -0
- package/types/miniapp-manifest/basic-info-image-header.d.ts +6 -0
- package/types/miniapp-manifest/basic-info-node.d.ts +17 -0
- package/types/miniapp-manifest/basic-info-placeholder.d.ts +1 -0
- package/types/miniapp-manifest/basic-info.d.ts +12 -0
- package/types/miniapp-manifest/bindings.d.ts +65 -0
- package/types/miniapp-manifest/schema.d.ts +143 -20
- package/types/miniapp-publish/index.d.ts +433 -29
- package/types/modules/auth/index.d.ts +159 -5
- package/types/modules/cloud/index.d.ts +514 -40
- package/types/modules/companion/index.d.ts +1518 -17
- package/types/modules/device/index.d.ts +140 -9
- package/types/modules/environment/index.d.ts +172 -4
- package/types/modules/files/types.d.ts +1396 -21
- package/types/modules/navigation/app-pages/types.d.ts +81 -24
- package/types/modules/navigation/index.d.ts +230 -7
- package/types/modules/network/index.d.ts +297 -26
- package/types/modules/share/copy-link.d.ts +35 -5
- package/types/modules/share/index.d.ts +210 -0
- package/types/modules/share/screenshot.d.ts +23 -5
- package/types/modules/share/show-share-menu.d.ts +18 -5
- package/types/modules/share/types.d.ts +148 -23
- package/types/modules/storage/index.d.ts +139 -9
- package/types/modules/ui/index.d.ts +249 -18
- package/types/modules/user/get-info.d.ts +29 -8
- package/types/modules/user/index.d.ts +157 -0
- package/types/modules/user/revoke-authorization.d.ts +26 -2
- package/types/modules/user/steam-game-list.d.ts +96 -15
- package/types/modules/viewport/index.d.ts +158 -22
- package/types/protocol/types.d.ts +19 -1
- package/types/vite/index.d.ts +159 -1
- package/dist/cli-chunks/runtime-permission-env-BgYjqHIE.cjs +0 -3942
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-DqPIIvha.js +0 -101
- /package/types/{vite → miniapp-manifest}/runtime-gate.d.ts +0 -0
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { type MiniappPermissionDeclarations } from './permissions';
|
|
2
2
|
import type { MiniappCompanionManifestDeclarations } from './companion-types';
|
|
3
3
|
export declare const MINIAPP_TEMPLATE_VERSION = "0.0.0";
|
|
4
|
+
/**
|
|
5
|
+
* `package.json#heybox.platforms` 接受的平台值,顺序同时是 Manifest 的规范化输出顺序。
|
|
6
|
+
*
|
|
7
|
+
* @remarks 项目仍应只声明实际完成适配并经过验收的平台;模板默认值不是自动兼容承诺。
|
|
8
|
+
*/
|
|
4
9
|
export declare const MINIAPP_PLATFORM_VALUES: readonly ["android", "ios", "ohos", "windows", "macos", "linux"];
|
|
10
|
+
/** `package.json#heybox.platforms` 中单个平台标识。 */
|
|
5
11
|
export type MiniappPlatform = (typeof MINIAPP_PLATFORM_VALUES)[number];
|
|
6
12
|
/** 平台声明硬切点:产物 hb-sdk 版本达到该值时,必须显式声明非空 `platforms`。 */
|
|
7
13
|
export declare const MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION = "0.9.0";
|
|
@@ -45,6 +51,9 @@ export declare const MINIAPP_DESKTOP_PLATFORM_VALUES: readonly ["windows", "maco
|
|
|
45
51
|
export declare function hasMiniappDesktopPlatform(platforms: readonly MiniappPlatform[] | undefined): boolean;
|
|
46
52
|
export interface MiniappManifest {
|
|
47
53
|
[key: string]: unknown;
|
|
54
|
+
name?: string;
|
|
55
|
+
icon?: string;
|
|
56
|
+
coverImages?: string[];
|
|
48
57
|
sdkVersion: string;
|
|
49
58
|
version: string;
|
|
50
59
|
platforms: readonly MiniappPlatform[];
|
|
@@ -57,6 +66,49 @@ export interface ParseMiniappManifestResult {
|
|
|
57
66
|
manifest: MiniappManifest;
|
|
58
67
|
hadBom: boolean;
|
|
59
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* 判断小程序版本是否符合公开 Manifest 版本规则。
|
|
71
|
+
*
|
|
72
|
+
* @param version - 待判断的 `package.json.version` / Manifest 版本字符串;首尾空白会先被
|
|
73
|
+
* 移除,但函数不会把规范化后的字符串返回给调用方。
|
|
74
|
+
* @returns trim 后满足小程序严格版本规则时返回 `true`,否则返回 `false`。对类型声明允许的
|
|
75
|
+
* 字符串输入,该函数只返回布尔值,不抛出校验错误。
|
|
76
|
+
*
|
|
77
|
+
* @remarks
|
|
78
|
+
* 接受形式为 canonical SemVer `MAJOR.MINOR.PATCH[-PRERELEASE]`。trim 后的输入必须与
|
|
79
|
+
* `semver` 严格解析得到的 `version` 完全相同,因此不完整版本(如 `1.2`)、`v` / `=`
|
|
80
|
+
* 前缀、范围表达式、额外段,以及 major/minor/patch 或纯数字 prerelease 标识中的前导零
|
|
81
|
+
* 都返回 `false`。只有首尾空白会被忽略,内部空白不会被修复。
|
|
82
|
+
*
|
|
83
|
+
* 合法 prerelease(如 `1.2.3-alpha.1`、`0.0.1-rc.0`)可以使用。build metadata 即使符合
|
|
84
|
+
* 标准 SemVer(如 `1.2.3+build.1`)也被小程序发布合同显式禁止。模板占位 core
|
|
85
|
+
* `0.0.0` 同样禁止,包括 `0.0.0-alpha` 等 prerelease;至少应提升 patch/minor/major
|
|
86
|
+
* 之一,例如 `0.0.1-alpha.1`。
|
|
87
|
+
*
|
|
88
|
+
* 这是无 I/O、无状态修改的 predicate,适合表单即时判断。实际 Vite / `hb-sdk build`
|
|
89
|
+
* 流程会调用同规则的 package version validator:成功时返回 trim 后版本并写入 Manifest,
|
|
90
|
+
* 失败时抛出带 `package.json.version` 来源的错误;调用本函数为 `true` 不能跳过正式构建。
|
|
91
|
+
*
|
|
92
|
+
* {@link resolveMiniappManifestPlatforms} 处理的是 Manifest `sdkVersion` 对平台声明策略的
|
|
93
|
+
* SemVer precedence,不是当前小程序的发布 `version`。不要用本函数替代平台解析,也不要
|
|
94
|
+
* 把项目 version 当作 sdkVersion 传入。
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* import { isValidVersion } from '@heybox/hb-sdk/miniapp-publish'
|
|
99
|
+
*
|
|
100
|
+
* isValidVersion(' 1.2.3 ') // true
|
|
101
|
+
* isValidVersion('1.2.3-alpha.1') // true
|
|
102
|
+
* isValidVersion('0.0.1-alpha.1') // true
|
|
103
|
+
* isValidVersion('1.2') // false
|
|
104
|
+
* isValidVersion('v1.2.3') // false
|
|
105
|
+
* isValidVersion('1.2.3+build.1') // false
|
|
106
|
+
* isValidVersion('0.0.0-alpha') // false
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* @see {@link resolveMiniappManifestPlatforms}
|
|
110
|
+
* @see {@link https://docs.xiaoheihe.cn/hb_sdk/reference/symbols/vite/functions/miniappManifest | miniappManifest}
|
|
111
|
+
*/
|
|
60
112
|
export declare function isValidMiniappManifestVersion(version: string): boolean;
|
|
61
113
|
export declare function validateMiniappPackageVersionForBuild(version: string): string;
|
|
62
114
|
export declare function validateMiniappManifestVersion(version: unknown, sourceLabel?: string): string;
|
|
@@ -69,46 +121,117 @@ export declare function validateMiniappManifestForDeploy(manifest: MiniappManife
|
|
|
69
121
|
permissions?: Partial<Record<"userInfo" | "steamLibrary" | "share" | "storage" | "filesystem" | "clipboard" | "leaderboard" | "companion", import("./permissions").SimpleMiniappPermissionDeclaration> & {
|
|
70
122
|
network: import("./permissions").NetworkMiniappPermissionDeclaration;
|
|
71
123
|
}> | undefined;
|
|
124
|
+
platforms: readonly ("android" | "ios" | "ohos" | "windows" | "macos" | "linux")[];
|
|
125
|
+
name?: string | undefined;
|
|
126
|
+
icon?: string | undefined;
|
|
127
|
+
coverImages?: string[] | undefined;
|
|
72
128
|
version: string;
|
|
73
129
|
sdkVersion: string;
|
|
74
|
-
platforms: readonly ("android" | "ios" | "ohos" | "windows" | "macos" | "linux")[];
|
|
75
130
|
};
|
|
76
131
|
export declare function validateMiniappPlatforms(platforms: unknown, sourceLabel?: string): readonly MiniappPlatform[];
|
|
77
132
|
export declare function areMiniappPlatformsEqual(left: readonly MiniappPlatform[], right: readonly MiniappPlatform[]): boolean;
|
|
78
|
-
/**
|
|
133
|
+
/**
|
|
134
|
+
* Manifest 平台解析所采用的策略。
|
|
135
|
+
*
|
|
136
|
+
* @remarks
|
|
137
|
+
* - `explicit`:Manifest 自身拥有合法、非空的 `platforms` 字段;无论 sdkVersion 是否低于
|
|
138
|
+
* `0.9.0`,显式声明都优先且不会被兼容默认值覆盖。
|
|
139
|
+
* - `legacy_mobile_default`:Manifest 完全没有 `platforms` 字段,且 sdkVersion 缺失/空白或
|
|
140
|
+
* SemVer precedence 低于 `0.9.0`;最终按 `android`、`ios`、`ohos` 历史集合兼容。
|
|
141
|
+
*/
|
|
79
142
|
export type MiniappPlatformPolicy = 'explicit' | 'legacy_mobile_default';
|
|
80
143
|
/**
|
|
81
|
-
* Manifest
|
|
144
|
+
* Manifest 平台声明的规范化解析结果,供 CLI、开放平台网页、后端与 Runtime 共用。
|
|
82
145
|
*
|
|
83
146
|
* @remarks
|
|
84
|
-
* `
|
|
85
|
-
*
|
|
147
|
+
* 返回对象通过 `Object.freeze()` 冻结,字段和数组在类型层也都是只读值。调用方应把其中
|
|
148
|
+
* 的数组视为不可变集合,不要修改、重新排序或自行合并 fallback。`platformsDeclared` 与
|
|
149
|
+
* `policy` 用于保留“显式三移动端”与“历史默认三移动端”的来源差异。
|
|
86
150
|
*/
|
|
87
151
|
export interface MiniappPlatformResolution {
|
|
88
|
-
/**
|
|
152
|
+
/**
|
|
153
|
+
* 规范化后的显式声明。`explicit` 时按固定顺序
|
|
154
|
+
* `android`、`ios`、`ohos`、`windows`、`macos`、`linux` 排列并只保留声明项;
|
|
155
|
+
* `legacy_mobile_default` 时是冻结的空数组,表示历史产物没有声明,而不是“不支持平台”。
|
|
156
|
+
*/
|
|
89
157
|
readonly declared: readonly MiniappPlatform[];
|
|
90
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* 最终用于展示、校验和运行判断的平台集合。`explicit` 时与规范化后的 `declared` 相同;
|
|
160
|
+
* `legacy_mobile_default` 时固定为 `android`、`ios`、`ohos`。
|
|
161
|
+
*/
|
|
91
162
|
readonly effective: readonly MiniappPlatform[];
|
|
92
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* Manifest 是否拥有经过校验的显式 `platforms` 字段。显式声明三移动端时为 `true`,
|
|
165
|
+
* 历史 fallback 得到相同 effective 集合时仍为 `false`。
|
|
166
|
+
*/
|
|
93
167
|
readonly platformsDeclared: boolean;
|
|
94
|
-
/**
|
|
168
|
+
/** 本次解析采用的来源策略;与 `platformsDeclared` 保持一致。 */
|
|
95
169
|
readonly policy: MiniappPlatformPolicy;
|
|
96
170
|
}
|
|
97
171
|
/**
|
|
98
172
|
* 解析 Manifest 平台声明,是 `0.9.0` 硬切规则的唯一实现。
|
|
99
173
|
*
|
|
174
|
+
* @param sdkVersion - 产物写入 Manifest 的 hb-sdk 版本,不是小程序自身的发布 version。
|
|
175
|
+
* `undefined`、空字符串和纯空白按历史“缺失 sdkVersion”处理;其他字符串会先 trim,再按
|
|
176
|
+
* canonical strict SemVer 校验并参与 precedence 比较。
|
|
177
|
+
* @param manifest - 待解析的不可信 Manifest。必须是非 `null`、非数组的对象;函数只读取其
|
|
178
|
+
* 自有 `platforms` 字段,其他字段不参与平台解析。
|
|
179
|
+
* @returns 冻结的 {@link MiniappPlatformResolution}。显式声明返回规范排序后的 declared /
|
|
180
|
+
* effective;历史兼容返回空 declared 与 Android/iOS/OHOS effective。
|
|
181
|
+
* @throws `manifest` 不是对象时抛出;非空 sdkVersion 不完整、含 `v` 前缀或 build metadata、
|
|
182
|
+
* 不是 canonical SemVer 时抛出;sdkVersion precedence 达到 `0.9.0` 但缺少 platforms 时抛出;
|
|
183
|
+
* 显式 platforms 不是非空数组、包含未知/非字符串/重复平台时抛出。
|
|
184
|
+
*
|
|
100
185
|
* @remarks
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
186
|
+
* 解析顺序与后端领域层保持一致:先校验 Manifest 对象,再处理 sdkVersion;只要非空
|
|
187
|
+
* sdkVersion 非法,即使存在合法 platforms 也会抛出,不会忽略版本。版本比较使用 SemVer
|
|
188
|
+
* precedence,不做字符串比较:`0.9.0-alpha.1 < 0.9.0`,而 `0.10.0 > 0.9.0`。
|
|
189
|
+
*
|
|
190
|
+
* Manifest 拥有 `platforms` 字段时总是走 `explicit`:字段必须是非空数组,每项必须属于
|
|
191
|
+
* `MINIAPP_PLATFORM_VALUES` 且不能重复;结果按固定平台词表排序,而不是保留输入顺序。
|
|
192
|
+
* 该规则与 sdkVersion 是否缺失、低于或达到硬切点无关。显式声明一旦非法绝不回退到
|
|
193
|
+
* legacy 默认值。
|
|
194
|
+
*
|
|
195
|
+
* Manifest 完全没有 `platforms` 字段时才判断硬切:sdkVersion 缺失/空白,或 precedence
|
|
196
|
+
* 低于 `MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION`(`0.9.0`)时返回
|
|
197
|
+
* `legacy_mobile_default`;`0.9.0` 稳定版及更高版本直接抛错。`0.9.0-*` prerelease 仍低于
|
|
198
|
+
* 稳定硬切点,因此可解析历史缺失声明。
|
|
199
|
+
*
|
|
200
|
+
* 返回对象被 `Object.freeze()`;显式声明数组和 legacy 的空 declared 数组也被冻结。所有
|
|
201
|
+
* 数组均以 readonly 合同暴露,调用方应直接消费 `effective`,不得再比较版本或补默认值。
|
|
202
|
+
*
|
|
203
|
+
* 当前 Vite 构建入口
|
|
204
|
+
* {@link https://docs.xiaoheihe.cn/hb_sdk/reference/symbols/vite/functions/miniappManifest | miniappManifest}
|
|
205
|
+
* 会从 `package.json#heybox.platforms` 读取并写入显式声明;legacy 分支只用于解析缺少字段
|
|
206
|
+
* 的历史产物,不是新项目省略 platforms 的许可。
|
|
207
|
+
*
|
|
208
|
+
* {@link https://docs.xiaoheihe.cn/hb_sdk/reference/symbols/miniapp-publish/functions/isValidVersion | isValidVersion}
|
|
209
|
+
* 判断的是小程序发布 `version`,并额外拒绝模板值 `0.0.0`;本函数的 sdkVersion 是 hb-sdk
|
|
210
|
+
* 版本,`0.0.0` 本身是可比较的 strict SemVer 并低于硬切点。两类版本不能互换校验。
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```ts
|
|
214
|
+
* import { resolveMiniappManifestPlatforms } from '@heybox/hb-sdk/miniapp-publish'
|
|
215
|
+
*
|
|
216
|
+
* const explicit = resolveMiniappManifestPlatforms('0.9.0', {
|
|
217
|
+
* platforms: ['linux', 'android', 'macos'],
|
|
218
|
+
* })
|
|
219
|
+
* console.log(explicit)
|
|
220
|
+
* // {
|
|
221
|
+
* // declared: ['android', 'macos', 'linux'],
|
|
222
|
+
* // effective: ['android', 'macos', 'linux'],
|
|
223
|
+
* // platformsDeclared: true,
|
|
224
|
+
* // policy: 'explicit'
|
|
225
|
+
* // }
|
|
226
|
+
*
|
|
227
|
+
* const legacy = resolveMiniappManifestPlatforms('0.9.0-alpha.1', {})
|
|
228
|
+
* console.log(legacy.effective) // ['android', 'ios', 'ohos']
|
|
229
|
+
* ```
|
|
230
|
+
*
|
|
231
|
+
* @see {@link MINIAPP_PLATFORM_HARD_CUT_SDK_VERSION}
|
|
232
|
+
* @see {@link MINIAPP_LEGACY_MOBILE_PLATFORM_VALUES}
|
|
233
|
+
* @see {@link https://docs.xiaoheihe.cn/hb_sdk/reference/symbols/miniapp-publish/functions/isValidVersion | isValidVersion}
|
|
234
|
+
* @see {@link https://docs.xiaoheihe.cn/hb_sdk/reference/symbols/vite/functions/miniappManifest | miniappManifest}
|
|
112
235
|
*/
|
|
113
236
|
export declare function resolveMiniappManifestPlatforms(sdkVersion: string | undefined, manifest: unknown): MiniappPlatformResolution;
|
|
114
237
|
/**
|