@heybox/hb-sdk 0.9.1-alpha.3 → 0.9.1-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 +27 -2
- package/README.md +11 -0
- package/dist/card-controller.cjs.js +194 -0
- package/dist/card-controller.esm.js +159 -0
- package/dist/cli-chunks/{build-CXfLIArV.cjs → build-D91J_GAa.cjs} +13 -7
- package/dist/cli-chunks/{context-28ngGR4F.cjs → context-Xdd45FFd.cjs} +4 -4
- package/dist/cli-chunks/{create-5YcojPd6.cjs → create-BzpdRC5r.cjs} +1 -1
- package/dist/cli-chunks/{dev-BeFMlbOR.cjs → dev-C7acO3Kt.cjs} +56 -10
- package/dist/cli-chunks/{doctor-CqadEn3n.cjs → doctor-BgHRDQmG.cjs} +1 -1
- package/dist/cli-chunks/{index-GE8dMvDl.cjs → index-CjhQXbxy.cjs} +4 -7
- package/dist/cli-chunks/{index-Dexro5MZ.cjs → index-TQwjvNjL.cjs} +33 -17
- package/dist/cli-chunks/{index.esm-BjCGi12Z.cjs → index.esm-dgqkvowo.cjs} +7 -7
- package/dist/cli-chunks/{login-D4RB9Ben.cjs → login-B14iGXHh.cjs} +2 -2
- package/dist/cli-chunks/{project-vite-7ns71VB6.cjs → project-vite-CN6mMjzX.cjs} +1 -1
- package/dist/cli-chunks/{remote-DMxbElj_.cjs → remote-C9RUiZxK.cjs} +25 -17
- package/dist/cli-chunks/runtime-gate-CfAkz0p-.cjs +201950 -0
- package/dist/cli-chunks/{runtime-permission-env-CHeBjX3l.cjs → runtime-permission-env-L7OfyRcl.cjs} +7295 -812
- package/dist/cli-chunks/{session-B3q86WA5.cjs → session-DZrr6RYK.cjs} +2 -1
- package/dist/cli-chunks/{skill-CnjlGsLj.cjs → skill-BHTVho1a.cjs} +2 -2
- package/dist/cli-chunks/{version-BnnLp_km.cjs → version-C_NaCZ8O.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-KPFU0Lsa.js +102 -0
- package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-e2ZHzPgD.js → desktop-app-launch-BNF9Yk4P.js} +3 -3
- package/dist/devtools/browser-dev-host/assets/{index-ClSYpidU.css → index-BRxbUJVN.css} +1 -1
- package/dist/devtools/browser-dev-host/assets/{index-D9bz_RbJ.js → index-DRRtB9Nm.js} +4 -4
- package/dist/devtools/browser-dev-host/index.html +3 -3
- package/dist/index.cjs.js +6252 -279
- package/dist/index.esm.js +6252 -280
- package/dist/miniapp-publish.cjs.js +6612 -157
- package/dist/miniapp-publish.esm.js +6612 -158
- package/dist/protocol.cjs.js +5815 -0
- package/dist/protocol.esm.js +5815 -1
- package/dist/vite.cjs.js +7475 -206
- package/dist/vite.esm.js +7474 -207
- package/dist/workspace-card-build-sandbox-worker.mjs +72 -0
- package/package.json +25 -11
- package/skill/skill.json +4 -4
- package/types/card-controller.d.ts +3682 -0
- package/types/index.d.ts +7532 -35
- package/types/miniapp-publish/index.d.ts +542 -64
- package/types/protocol.d.ts +2083 -9
- package/types/vite/index.d.ts +25 -12
- package/dist/cli-chunks/runtime-gate-C__ySQYU.cjs +0 -65
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-DBjCd6Dd.js +0 -102
- package/types/core/client.d.ts +0 -108
- package/types/core/csp-violation.d.ts +0 -5
- package/types/core/errors.d.ts +0 -78
- package/types/core/event-bus.d.ts +0 -11
- package/types/core/handshake-state.d.ts +0 -54
- package/types/core/history-observer.d.ts +0 -4
- package/types/core/mini-dev-console.d.ts +0 -36
- package/types/core/network-sanitize.d.ts +0 -31
- package/types/core/sdk.d.ts +0 -104
- package/types/core/singleton.d.ts +0 -372
- package/types/core/utils.d.ts +0 -10
- package/types/core/version.d.ts +0 -2
- package/types/devtools/device-logs.d.ts +0 -48
- package/types/miniapp-manifest/basic-info-browser.d.ts +0 -37
- package/types/miniapp-manifest/basic-info-image-header.d.ts +0 -6
- package/types/miniapp-manifest/basic-info-node.d.ts +0 -17
- package/types/miniapp-manifest/basic-info-placeholder.d.ts +0 -1
- package/types/miniapp-manifest/basic-info.d.ts +0 -33
- package/types/miniapp-manifest/bindings.d.ts +0 -70
- package/types/miniapp-manifest/category.d.ts +0 -11
- package/types/miniapp-manifest/companion-directory.d.ts +0 -2
- package/types/miniapp-manifest/companion-executable.d.ts +0 -4
- package/types/miniapp-manifest/companion-types.d.ts +0 -63
- package/types/miniapp-manifest/companions.d.ts +0 -17
- package/types/miniapp-manifest/index.d.ts +0 -7
- package/types/miniapp-manifest/node.d.ts +0 -22
- package/types/miniapp-manifest/permissions.d.ts +0 -48
- package/types/miniapp-manifest/runtime-gate.d.ts +0 -12
- package/types/miniapp-manifest/schema.d.ts +0 -302
- package/types/modules/auth/index.d.ts +0 -204
- package/types/modules/cloud/index.d.ts +0 -669
- package/types/modules/companion/index.d.ts +0 -1619
- package/types/modules/device/index.d.ts +0 -193
- package/types/modules/environment/index.d.ts +0 -238
- package/types/modules/files/index.d.ts +0 -5
- package/types/modules/files/registry.d.ts +0 -35
- package/types/modules/files/types.d.ts +0 -1548
- package/types/modules/navigation/app-pages/index.d.ts +0 -4
- package/types/modules/navigation/app-pages/types.d.ts +0 -135
- package/types/modules/navigation/index.d.ts +0 -312
- package/types/modules/network/index.d.ts +0 -457
- package/types/modules/network/observability.d.ts +0 -38
- package/types/modules/network/request-shape.d.ts +0 -44
- package/types/modules/share/copy-link.d.ts +0 -46
- package/types/modules/share/extra.d.ts +0 -5
- package/types/modules/share/index.d.ts +0 -294
- package/types/modules/share/screenshot.d.ts +0 -34
- package/types/modules/share/show-share-menu.d.ts +0 -29
- package/types/modules/share/types.d.ts +0 -201
- package/types/modules/storage/index.d.ts +0 -214
- package/types/modules/ui/index.d.ts +0 -315
- package/types/modules/user/get-info.d.ts +0 -44
- package/types/modules/user/index.d.ts +0 -245
- package/types/modules/user/revoke-authorization.d.ts +0 -31
- package/types/modules/user/steam-game-list.d.ts +0 -153
- package/types/modules/user/types.d.ts +0 -2
- package/types/modules/viewport/index.d.ts +0 -319
- package/types/protocol/capabilities.d.ts +0 -2
- package/types/protocol/constants.d.ts +0 -1
- package/types/protocol/dev-session.d.ts +0 -74
- package/types/protocol/guards.d.ts +0 -1
- package/types/protocol/runtime-permissions.d.ts +0 -2
- package/types/protocol/types.d.ts +0 -22
- package/types/skill-metadata.d.ts +0 -18
- package/types/vite/html-policy.d.ts +0 -6
- package/types/vite/runtime-permission-env.d.ts +0 -9
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
import type { MiniProgramAuthModule } from '../modules/auth';
|
|
2
|
-
import type { MiniProgramCloudModule } from '../modules/cloud';
|
|
3
|
-
import type { MiniProgramCompanionModule } from '../modules/companion';
|
|
4
|
-
import type { MiniProgramShareModule } from '../modules/share';
|
|
5
|
-
import type { MiniProgramStorageModule } from '../modules/storage';
|
|
6
|
-
import type { MiniProgramNetworkModule } from '../modules/network';
|
|
7
|
-
import type { FilesModule } from '../modules/files';
|
|
8
|
-
import type { MiniProgramViewportModule } from '../modules/viewport';
|
|
9
|
-
import type { MiniProgramUserModule } from '../modules/user';
|
|
10
|
-
import type { MiniProgramUiModule } from '../modules/ui';
|
|
11
|
-
import type { MiniProgramDeviceModule } from '../modules/device';
|
|
12
|
-
import type { MiniProgramEnvironmentModule } from '../modules/environment';
|
|
13
|
-
import type { MiniProgramNavigationModule } from '../modules/navigation';
|
|
14
|
-
import type { MiniProgramEventHandler, MiniProgramEventName } from '../protocol/types';
|
|
15
|
-
import type { MiniProgramSDKHandshakeState, MiniProgramSDKHandshakeStateHandler } from './handshake-state';
|
|
16
|
-
/**
|
|
17
|
-
* 获取默认 SDK 实例的当前握手状态。
|
|
18
|
-
*
|
|
19
|
-
* @returns 当前冻结的
|
|
20
|
-
* [MiniProgramSDKHandshakeState](/reference/symbols/root/types/MiniProgramSDKHandshakeState):
|
|
21
|
-
* `connecting` 表示初始握手尚未落定,`ready` 表示握手成功;`failed` 表示握手失败,并通过
|
|
22
|
-
* `error` 保留原始
|
|
23
|
-
* [HbMiniProgramSDKError](/reference/symbols/root/classes/HbMiniProgramSDKError)。状态不变期间重复调用
|
|
24
|
-
* 返回同一个对象引用,落定时只会替换一次。
|
|
25
|
-
*
|
|
26
|
-
* @remarks
|
|
27
|
-
* 该函数不接收参数并同步返回当前快照,不等待 Promise、不轮询、不发送 bridge 请求,也不会因为
|
|
28
|
-
* 握手失败而抛出 `failed.error`。读取状态无需在 `package.json#heybox.permissions` 中声明权限,
|
|
29
|
-
* 不要求可信用户手势。根包导入时已经自动启动握手;普通异步能力调用也会自行等待,不需要用本
|
|
30
|
-
* API 手动实现等待器。
|
|
31
|
-
*
|
|
32
|
-
* 状态 wrapper 已浅冻结。状态机只允许 `connecting -> ready` 或 `connecting -> failed` 一次迁移,
|
|
33
|
-
* 终态不会回退或互相转换;`failed.error` 是握手 Promise 使用的同一个原始错误实例,可根据稳定的
|
|
34
|
-
* `code` 分支处理。常见初始失败包括 `NOT_IN_IFRAME`、`MISSING_NONCE`、`READY_TIMEOUT`、
|
|
35
|
-
* `HANDSHAKE_FAILED`、`RUNTIME_UNAVAILABLE` 或握手完成前的 `SDK_DESTROYED`。
|
|
36
|
-
*
|
|
37
|
-
* 需要让界面跟随状态变化时,使用
|
|
38
|
-
* [onHandshakeStateChange()](/reference/sdk/lifecycle/onHandshakeStateChange):它会在订阅期间同步回放
|
|
39
|
-
* 当前值,再通知至多一次终态迁移。不要轮询本函数。对于必须保留原始可信用户手势的按钮,可用
|
|
40
|
-
* 该持久状态提前控制 `disabled`,但不要在点击回调里等待握手。
|
|
41
|
-
*
|
|
42
|
-
* [on('ready')](/reference/sdk/lifecycle/on) 是握手成功瞬间的事件:不会向晚订阅者重放,Host 重复
|
|
43
|
-
* 派发时也可能再次触发事件 handler;持久状态则只迁移一次并始终可查询。`ready` 只表示初始握手
|
|
44
|
-
* 已成功,后续 `unload` 不会把状态改回 `failed`,因此不能把它当作 Runtime 持续存活检查。
|
|
45
|
-
*
|
|
46
|
-
* SDK 会在发布 `ready` 状态前缓存环境快照,所以 `status === 'ready'` 时可以立即调用
|
|
47
|
-
* [environment.getInfoSync()](/reference/sdk/environment/getInfoSync)。`failed` 时该同步环境 API 会抛出
|
|
48
|
-
* 同一个 `state.error`;不要求同步读取时,优先使用会自动等待的
|
|
49
|
-
* [environment.getInfo()](/reference/sdk/environment/getInfo)。
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* ```ts
|
|
53
|
-
* import hbSDK from '@heybox/hb-sdk'
|
|
54
|
-
*
|
|
55
|
-
* const state = hbSDK.getHandshakeState()
|
|
56
|
-
*
|
|
57
|
-
* switch (state.status) {
|
|
58
|
-
* case 'connecting':
|
|
59
|
-
* submitButton.disabled = true
|
|
60
|
-
* break
|
|
61
|
-
* case 'ready': {
|
|
62
|
-
* submitButton.disabled = false
|
|
63
|
-
* const environment = hbSDK.environment.getInfoSync()
|
|
64
|
-
* console.log(environment.runtime.mode)
|
|
65
|
-
* break
|
|
66
|
-
* }
|
|
67
|
-
* case 'failed':
|
|
68
|
-
* submitButton.disabled = true
|
|
69
|
-
* console.error('SDK 握手失败', state.error.code)
|
|
70
|
-
* break
|
|
71
|
-
* }
|
|
72
|
-
* ```
|
|
73
|
-
*
|
|
74
|
-
* @see [MiniProgramSDKHandshakeState](/reference/symbols/root/types/MiniProgramSDKHandshakeState) 三种状态及冻结语义。
|
|
75
|
-
* @see [onHandshakeStateChange()](/reference/sdk/lifecycle/onHandshakeStateChange) 同步回放当前状态并订阅终态迁移。
|
|
76
|
-
* @see [on('ready')](/reference/sdk/lifecycle/on) 不可重放的生命周期边沿事件。
|
|
77
|
-
* @see [environment.getInfoSync()](/reference/sdk/environment/getInfoSync) 在 `ready` 后同步读取环境快照。
|
|
78
|
-
*
|
|
79
|
-
* @since 0.7.0-alpha.9
|
|
80
|
-
* @hbPlatform android
|
|
81
|
-
* @hbPlatform ios
|
|
82
|
-
* @hbPlatform ohos
|
|
83
|
-
* @hbPlatform windows
|
|
84
|
-
* @hbPlatform macos
|
|
85
|
-
* @hbClient android none
|
|
86
|
-
* @hbClient ios none
|
|
87
|
-
* @hbClient ohos none
|
|
88
|
-
* @hbClient windows none
|
|
89
|
-
* @hbClient macos none
|
|
90
|
-
*/
|
|
91
|
-
export declare function getHandshakeState(): MiniProgramSDKHandshakeState;
|
|
92
|
-
/**
|
|
93
|
-
* 订阅默认 SDK 实例的握手状态,并立即接收当前状态。
|
|
94
|
-
*
|
|
95
|
-
* @param handler - 接收
|
|
96
|
-
* [MiniProgramSDKHandshakeState](/reference/symbols/root/types/MiniProgramSDKHandshakeState) 的处理函数。
|
|
97
|
-
* 注册期间会在本函数返回前同步调用一次:`connecting` 表示初始握手仍在进行,`ready` 表示成功,
|
|
98
|
-
* `failed.error` 是原始
|
|
99
|
-
* [HbMiniProgramSDKError](/reference/symbols/root/classes/HbMiniProgramSDKError)。
|
|
100
|
-
* @returns 从默认 SDK 状态 store 移除当前 handler 的 unsubscribe。调用一次或多次都返回 `void` 且
|
|
101
|
-
* 不会抛错;取消后不再接收未来迁移,但不会撤销已经同步回放的当前状态。
|
|
102
|
-
*
|
|
103
|
-
* @remarks
|
|
104
|
-
* 订阅是纯本地同步操作,不发送 bridge 请求、不等待握手,也无需在
|
|
105
|
-
* `package.json#heybox.permissions` 中声明权限或保留可信用户手势。根包导入时握手已经自动启动;
|
|
106
|
-
* 本 API 用于观察状态,不用于主动发起或重试握手。
|
|
107
|
-
*
|
|
108
|
-
* handler 会在加入订阅集合后、unsubscribe 返回前立即同步收到当前冻结状态:
|
|
109
|
-
*
|
|
110
|
-
* - 当前为 `connecting`:先立即收到 `connecting`,随后至多再收到一次 `ready` 或 `failed`;
|
|
111
|
-
* - 当前已是 `ready` 或 `failed`:立即收到该终态,之后不会再迁移;
|
|
112
|
-
* - 在终态通知过程中新增订阅:通过即时回放收到一次终态,不会因同一迁移重复调用。
|
|
113
|
-
*
|
|
114
|
-
* 状态只允许 `connecting -> ready` 或 `connecting -> failed`,终态不回退。`failed.error` 是握手失败
|
|
115
|
-
* 和同步环境读取使用的同一个原始错误实例,可按稳定的 `code` 分支处理。`ready` 只表示初始握手
|
|
116
|
-
* 已成功;后续 `unload` 不会把状态改回 `failed`,因此它不是 Runtime 持续存活探针。
|
|
117
|
-
*
|
|
118
|
-
* SDK 会逐个捕获 handler 的同步异常:初次即时回放或终态通知中抛错,都不会从本函数传播、改变
|
|
119
|
-
* 状态、阻断握手 Promise 或阻止其他订阅者收到通知。handler 返回值会被忽略,Promise 也不会被
|
|
120
|
-
* 等待;异步 handler 应在自身内部捕获 rejected Promise,避免未处理拒绝。
|
|
121
|
-
*
|
|
122
|
-
* 每个 handler 以 Set 语义保存;同一函数引用重复订阅只有一个未来通知注册,但每次调用本函数仍会
|
|
123
|
-
* 同步回放当前状态,任一 unsubscribe 都会移除该注册。应在页面、组件或业务模块销毁时调用
|
|
124
|
-
* unsubscribe。SDK 内部销毁会清空全部状态订阅;若销毁发生在握手落定前,会先发布携带
|
|
125
|
-
* `SDK_DESTROYED` 的 `failed`,再清空订阅。此后重复调用已经返回的 unsubscribe 仍是安全空操作。
|
|
126
|
-
* `unload` 发生在握手前时则以 `RUNTIME_UNAVAILABLE` 落为 `failed`;发生在 `ready` 后不会产生
|
|
127
|
-
* 第二次状态通知。
|
|
128
|
-
*
|
|
129
|
-
* 与 [getHandshakeState()](/reference/sdk/lifecycle/getHandshakeState) 相比,本 API 适合让 UI 自动跟随
|
|
130
|
-
* 唯一一次迁移,且即时回放意味着通常不需要先额外读取一次状态。
|
|
131
|
-
* [on('ready')](/reference/sdk/lifecycle/on) 则是不可重放、可能因 Host 重复事件再次触发的边沿通知,
|
|
132
|
-
* 不应用于驱动晚挂载按钮的可用状态。
|
|
133
|
-
*
|
|
134
|
-
* SDK 会在发布 `ready` 状态前缓存环境快照,因此可以在 `ready` handler 中立即调用
|
|
135
|
-
* [environment.getInfoSync()](/reference/sdk/environment/getInfoSync)。在 `failed` handler 中调用该
|
|
136
|
-
* API 会抛出同一个 `state.error`;一般异步读取可使用
|
|
137
|
-
* [environment.getInfo()](/reference/sdk/environment/getInfo) 自动等待。
|
|
138
|
-
*
|
|
139
|
-
* @example
|
|
140
|
-
* ```ts
|
|
141
|
-
* import hbSDK from '@heybox/hb-sdk'
|
|
142
|
-
*
|
|
143
|
-
* const stop = hbSDK.onHandshakeStateChange(state => {
|
|
144
|
-
* switch (state.status) {
|
|
145
|
-
* case 'connecting':
|
|
146
|
-
* submitButton.disabled = true
|
|
147
|
-
* statusText.textContent = '正在连接'
|
|
148
|
-
* break
|
|
149
|
-
* case 'ready':
|
|
150
|
-
* submitButton.disabled = false
|
|
151
|
-
* statusText.textContent = hbSDK.environment.getInfoSync().runtime.mode
|
|
152
|
-
* break
|
|
153
|
-
* case 'failed':
|
|
154
|
-
* submitButton.disabled = true
|
|
155
|
-
* statusText.textContent = `连接失败:${state.error.code}`
|
|
156
|
-
* break
|
|
157
|
-
* }
|
|
158
|
-
* })
|
|
159
|
-
*
|
|
160
|
-
* // 页面或组件真正销毁时执行;重复取消也安全。
|
|
161
|
-
* window.addEventListener('unload', () => {
|
|
162
|
-
* stop()
|
|
163
|
-
* stop()
|
|
164
|
-
* }, { once: true })
|
|
165
|
-
* ```
|
|
166
|
-
*
|
|
167
|
-
* @see [getHandshakeState()](/reference/sdk/lifecycle/getHandshakeState) 一次性同步读取当前持久状态。
|
|
168
|
-
* @see [on('ready')](/reference/sdk/lifecycle/on) 不可重放的握手成功边沿事件。
|
|
169
|
-
* @see [environment.getInfoSync()](/reference/sdk/environment/getInfoSync) 在 `ready` handler 中同步读取环境。
|
|
170
|
-
* @see [事件与生命周期](/guide/lifecycle) 握手与普通生命周期事件的使用建议。
|
|
171
|
-
*
|
|
172
|
-
* @since 0.7.0-alpha.9
|
|
173
|
-
* @hbPlatform android
|
|
174
|
-
* @hbPlatform ios
|
|
175
|
-
* @hbPlatform ohos
|
|
176
|
-
* @hbPlatform windows
|
|
177
|
-
* @hbPlatform macos
|
|
178
|
-
* @hbClient android none
|
|
179
|
-
* @hbClient ios none
|
|
180
|
-
* @hbClient ohos none
|
|
181
|
-
* @hbClient windows none
|
|
182
|
-
* @hbClient macos none
|
|
183
|
-
*/
|
|
184
|
-
export declare function onHandshakeStateChange(handler: MiniProgramSDKHandshakeStateHandler): () => void;
|
|
185
|
-
/**
|
|
186
|
-
* 注册默认 SDK 实例的事件监听。
|
|
187
|
-
*
|
|
188
|
-
* @param eventName - 要监听的
|
|
189
|
-
* [MiniProgramEventName](/reference/symbols/root/types/MiniProgramEventName)。泛型 `T` 通常由该字符串
|
|
190
|
-
* 字面量推断,并决定 handler 的 payload 类型。
|
|
191
|
-
* @param handler - 与 `eventName` 对应的
|
|
192
|
-
* [MiniProgramEventHandler](/reference/symbols/root/types/MiniProgramEventHandler)。payload 由
|
|
193
|
-
* [MiniProgramEventPayloadMap](/reference/symbols/root/interfaces/MiniProgramEventPayloadMap) 精确映射。
|
|
194
|
-
* @returns 只解绑当前 `eventName` / handler 组合的函数。调用一次或多次都返回 `void` 且不会抛错,
|
|
195
|
-
* 不影响同一事件上的其他 handler。
|
|
196
|
-
*
|
|
197
|
-
* @remarks
|
|
198
|
-
* 事件名决定 payload 字段:
|
|
199
|
-
*
|
|
200
|
-
* - `launch`:`{ timestamp, url? }`;`ready`:`{ timestamp }`;
|
|
201
|
-
* - `show` / `hide`:`{ timestamp, source? }`;`unload`:`{ timestamp }`;
|
|
202
|
-
* - `error`:
|
|
203
|
-
* [MiniProgramBridgeError](/reference/symbols/protocol/interfaces/MiniProgramBridgeError),包含 `code`、
|
|
204
|
-
* `message` 与可选 `data`,不是 JavaScript `Error` 实例;
|
|
205
|
-
* - `heybox_app_login_change`:`{ isHeyboxAppLoggedIn }`;
|
|
206
|
-
* - `user_info_authorization_change`:
|
|
207
|
-
* [UserInfoAuthorization](/reference/symbols/root/interfaces/UserInfoAuthorization),包含 `identity` 与
|
|
208
|
-
* `profile` 两项授权状态,支持 Steam 账号能力时还可能包含 `steam_account`;
|
|
209
|
-
* - `companion.session.output`:`{ sessionId, controllerGeneration, stream, sequence, data }`;
|
|
210
|
-
* - `companion.session.exit`:`{ sessionId, exit }`;
|
|
211
|
-
* - `companion.session.ownershipLost`:`{ sessionId, controllerGeneration }`。
|
|
212
|
-
*
|
|
213
|
-
* `on()` 同步把 handler 加入默认 SDK 实例的本地 event bus,不等待握手、不发送 bridge 请求。
|
|
214
|
-
* 注册本身无需在 `package.json#heybox.permissions` 中声明权限,不要求可信用户手势,也不会因当前
|
|
215
|
-
* 握手处于 `connecting`、`ready` 或 `failed` 而抛出 SDK 错误。具体事件是否会产生,仍取决于 Host、
|
|
216
|
-
* Runtime 生命周期和相关业务能力。
|
|
217
|
-
*
|
|
218
|
-
* event bus 使用 Set 保存每个事件的 handler。同一事件与同一函数引用重复注册只有一个有效监听;
|
|
219
|
-
* 任一返回的 unsubscribe 或 [off()](/reference/sdk/lifecycle/off) 都会移除该唯一注册。不同函数引用
|
|
220
|
-
* 不会去重,同一函数注册到不同事件也彼此独立。应保存 unsubscribe,并在页面、组件或业务模块销毁
|
|
221
|
-
* 时调用;unsubscribe 可安全重复调用。
|
|
222
|
-
*
|
|
223
|
-
* handler 在事件派发时同步执行。SDK 不捕获普通事件 handler 的同步异常,也不等待其 Promise;某个
|
|
224
|
-
* handler 抛错可能阻断同次派发中的后续 handler,异步拒绝也可能成为未处理 Promise。需要隔离时在
|
|
225
|
-
* handler 内自行 `try/catch`,并显式处理异步任务的 rejected Promise。
|
|
226
|
-
*
|
|
227
|
-
* 所有生命周期与业务事件都不会重放:只派发给事件到达时已经注册的 handler,晚注册无法取回
|
|
228
|
-
* `launch`、`ready` 或其他历史事件。`ready` 只是握手成功瞬间的边沿通知,Host 重复派发时 handler
|
|
229
|
-
* 也可能再次执行;需要可查询、会向订阅者立即回放且只迁移一次的握手状态时,使用
|
|
230
|
-
* [getHandshakeState()](/reference/sdk/lifecycle/getHandshakeState) 和
|
|
231
|
-
* [onHandshakeStateChange()](/reference/sdk/lifecycle/onHandshakeStateChange)。
|
|
232
|
-
*
|
|
233
|
-
* 收到 `unload` 后当前 Runtime 上下文不可恢复,在途请求会失败,也不应再依赖后续 bridge 事件;
|
|
234
|
-
* SDK 内部销毁会移除底层 message listener。调用 unsubscribe 只清理该本地事件 handler,不取消
|
|
235
|
-
* API 请求、业务任务、Companion 进程或握手状态订阅。
|
|
236
|
-
*
|
|
237
|
-
* @example
|
|
238
|
-
* ```ts
|
|
239
|
-
* import hbSDK from '@heybox/hb-sdk'
|
|
240
|
-
*
|
|
241
|
-
* const stopShow = hbSDK.on('show', ({ timestamp, source }) => {
|
|
242
|
-
* try {
|
|
243
|
-
* refreshVisibleData({ timestamp, source })
|
|
244
|
-
* } catch (error) {
|
|
245
|
-
* reportHandlerError(error)
|
|
246
|
-
* }
|
|
247
|
-
* })
|
|
248
|
-
*
|
|
249
|
-
* const stopError = hbSDK.on('error', ({ code, message }) => {
|
|
250
|
-
* console.error(code, message)
|
|
251
|
-
* })
|
|
252
|
-
*
|
|
253
|
-
* // 页面或组件销毁时;重复调用也安全。
|
|
254
|
-
* stopShow()
|
|
255
|
-
* stopShow()
|
|
256
|
-
* stopError()
|
|
257
|
-
* ```
|
|
258
|
-
*
|
|
259
|
-
* @see [MiniProgramEventPayloadMap](/reference/symbols/root/interfaces/MiniProgramEventPayloadMap) 所有事件与 payload 字段。
|
|
260
|
-
* @see [off()](/reference/sdk/lifecycle/off) 使用事件名与 handler 引用精确移除监听。
|
|
261
|
-
* @see [getHandshakeState()](/reference/sdk/lifecycle/getHandshakeState) 同步读取持久握手状态。
|
|
262
|
-
* @see [onHandshakeStateChange()](/reference/sdk/lifecycle/onHandshakeStateChange) 订阅会立即回放的握手状态。
|
|
263
|
-
* @see [事件与生命周期](/guide/lifecycle) 生命周期时机与清理建议。
|
|
264
|
-
*
|
|
265
|
-
* @since 0.2.0-alpha.0
|
|
266
|
-
* @hbPlatform android
|
|
267
|
-
* @hbPlatform ios
|
|
268
|
-
* @hbPlatform ohos
|
|
269
|
-
* @hbPlatform windows
|
|
270
|
-
* @hbPlatform macos
|
|
271
|
-
* @hbClient android none
|
|
272
|
-
* @hbClient ios none
|
|
273
|
-
* @hbClient ohos none
|
|
274
|
-
* @hbClient windows none
|
|
275
|
-
* @hbClient macos none
|
|
276
|
-
*/
|
|
277
|
-
export declare function on<T extends MiniProgramEventName>(eventName: T, handler: MiniProgramEventHandler<T>): () => void;
|
|
278
|
-
/**
|
|
279
|
-
* 移除默认 SDK 实例的事件监听。
|
|
280
|
-
*
|
|
281
|
-
* @param eventName - 注册 handler 时使用的同一个事件名。只检查该事件自己的监听集合,不影响
|
|
282
|
-
* 其他事件上的注册。
|
|
283
|
-
* @param handler - 传给 `on(eventName, handler)` 的同一个函数对象。签名或函数体相同的新函数不是
|
|
284
|
-
* 同一引用,不能移除原监听。
|
|
285
|
-
* @returns `void`。移除成功、目标从未注册或此前已经移除时都不返回状态。
|
|
286
|
-
*
|
|
287
|
-
* @remarks
|
|
288
|
-
* 该函数同步修改默认 SDK 实例的本地 event bus,不等待握手、不发送 bridge 请求,也不会调用
|
|
289
|
-
* handler。它无需在 `package.json#heybox.permissions` 中声明权限,不要求可信用户手势;握手处于
|
|
290
|
-
* `connecting`、`ready` 或 `failed`,以及已经收到 `unload` 时,取消操作本身都不会产生 SDK 错误。
|
|
291
|
-
*
|
|
292
|
-
* 匹配规则是 `eventName` 与 handler 函数引用同时相等。匹配后只移除这一项,同一事件上的其他
|
|
293
|
-
* handler、同一 handler 在其他事件上的注册均保留。event bus 对同一事件与同一函数引用使用集合
|
|
294
|
-
* 语义,重复 `on()` 只有一个有效注册,一次 `off()` 即会移除;重复调用 `off()` 是幂等的,未知事件
|
|
295
|
-
* 或未注册 handler 会被静默忽略。
|
|
296
|
-
*
|
|
297
|
-
* 大多数场景优先保存并调用 [on()](/reference/sdk/lifecycle/on) 返回的 unsubscribe:它已经闭包绑定
|
|
298
|
-
* 正确的事件名和 handler,同样可以重复调用。只有调用方需要在另一处按具名 handler 精确移除时,
|
|
299
|
-
* 才直接使用 `off()`。匿名函数必须先保存引用;重新创建一个内容相同的箭头函数无法取消旧监听。
|
|
300
|
-
*
|
|
301
|
-
* 生命周期与业务事件不会重放,只派发给事件到达时仍处于注册状态的 handler。`off()` 只阻止后续
|
|
302
|
-
* 事件,不能撤销已经执行的 handler,也不能取回注册前错过的 `launch`、`ready`、`show`、`hide`、
|
|
303
|
-
* `unload` 等事件。当前握手状态应通过
|
|
304
|
-
* [getHandshakeState()](/reference/sdk/lifecycle/getHandshakeState) 或
|
|
305
|
-
* [onHandshakeStateChange()](/reference/sdk/lifecycle/onHandshakeStateChange) 获取,不要通过重新注册
|
|
306
|
-
* `ready` 事件补状态。
|
|
307
|
-
*
|
|
308
|
-
* Runtime `unload` 或 SDK 内部销毁后不会再有可依赖的未来 bridge 生命周期事件,但调用 unsubscribe
|
|
309
|
-
* 或 `off()` 做本地清理仍可安全重复执行。取消监听不会取消已经开始的 API 请求、业务任务或
|
|
310
|
-
* `onHandshakeStateChange()` 订阅;后者必须调用其自己返回的取消函数。
|
|
311
|
-
*
|
|
312
|
-
* @example
|
|
313
|
-
* ```ts
|
|
314
|
-
* import hbSDK from '@heybox/hb-sdk'
|
|
315
|
-
*
|
|
316
|
-
* const pauseOnHide = () => pausePolling()
|
|
317
|
-
* const reportHide = () => reportVisibility('hidden')
|
|
318
|
-
*
|
|
319
|
-
* hbSDK.on('hide', pauseOnHide)
|
|
320
|
-
* const stopReporting = hbSDK.on('hide', reportHide)
|
|
321
|
-
*
|
|
322
|
-
* hbSDK.off('hide', pauseOnHide) // 只移除 pauseOnHide
|
|
323
|
-
* hbSDK.off('hide', pauseOnHide) // 已移除,仍然安全
|
|
324
|
-
* stopReporting() // 推荐:使用 on() 返回的取消函数
|
|
325
|
-
* ```
|
|
326
|
-
*
|
|
327
|
-
* @see [on()](/reference/sdk/lifecycle/on) 注册事件并取得绑定好的取消函数。
|
|
328
|
-
* @see [getHandshakeState()](/reference/sdk/lifecycle/getHandshakeState) 同步读取持久握手状态。
|
|
329
|
-
* @see [onHandshakeStateChange()](/reference/sdk/lifecycle/onHandshakeStateChange) 订阅会立即回放的握手状态。
|
|
330
|
-
* @see [事件与生命周期](/guide/lifecycle) 生命周期事件列表与清理建议。
|
|
331
|
-
*
|
|
332
|
-
* @since 0.2.0-alpha.0
|
|
333
|
-
* @hbPlatform android
|
|
334
|
-
* @hbPlatform ios
|
|
335
|
-
* @hbPlatform ohos
|
|
336
|
-
* @hbPlatform windows
|
|
337
|
-
* @hbPlatform macos
|
|
338
|
-
* @hbClient android none
|
|
339
|
-
* @hbClient ios none
|
|
340
|
-
* @hbClient ohos none
|
|
341
|
-
* @hbClient windows none
|
|
342
|
-
* @hbClient macos none
|
|
343
|
-
*/
|
|
344
|
-
export declare function off<T extends MiniProgramEventName>(eventName: T, handler: MiniProgramEventHandler<T>): void;
|
|
345
|
-
/** 默认 SDK 实例的授权模块。 */
|
|
346
|
-
export declare const auth: MiniProgramAuthModule;
|
|
347
|
-
/** 默认 SDK 实例的用户资料模块。 */
|
|
348
|
-
export declare const user: MiniProgramUserModule;
|
|
349
|
-
/** 默认 SDK 实例的分享模块。 */
|
|
350
|
-
export declare const share: MiniProgramShareModule;
|
|
351
|
-
/** 默认 SDK 实例的 Viewport 模块。 */
|
|
352
|
-
export declare const viewport: MiniProgramViewportModule;
|
|
353
|
-
/** 默认 SDK 实例的 storage 模块。 */
|
|
354
|
-
export declare const storage: MiniProgramStorageModule;
|
|
355
|
-
/** 默认 SDK 实例的 network 模块。 */
|
|
356
|
-
export declare const network: MiniProgramNetworkModule;
|
|
357
|
-
/** 默认 SDK 实例的 files 模块。 */
|
|
358
|
-
export declare const files: FilesModule;
|
|
359
|
-
/** 默认 SDK 实例的 UI 模块。 */
|
|
360
|
-
export declare const ui: MiniProgramUiModule;
|
|
361
|
-
/** 默认 SDK 实例的 device 模块。 */
|
|
362
|
-
export declare const device: MiniProgramDeviceModule;
|
|
363
|
-
/** 默认 SDK 实例的 navigation 模块。 */
|
|
364
|
-
export declare const navigation: MiniProgramNavigationModule;
|
|
365
|
-
/** 默认 SDK 实例的 cloud 模块。 */
|
|
366
|
-
export declare const cloud: MiniProgramCloudModule;
|
|
367
|
-
/** 默认 SDK 实例的受管桌面程序模块。 */
|
|
368
|
-
export declare const companion: MiniProgramCompanionModule;
|
|
369
|
-
/** 默认 SDK 实例的 environment 模块。 */
|
|
370
|
-
export declare const environment: MiniProgramEnvironmentModule;
|
|
371
|
-
/** 重置默认 SDK 实例,仅用于测试。 */
|
|
372
|
-
export declare function resetDefaultSDKForTest(): void;
|
package/types/core/utils.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/** 获取浏览器全局 window。 */
|
|
2
|
-
export declare function getGlobalWindow(): Window | undefined;
|
|
3
|
-
/** 获取父窗口;非 iframe 环境返回 null。 */
|
|
4
|
-
export declare function getParentWindow(currentWindow?: Window): Window | null;
|
|
5
|
-
/** 尝试读取父窗口 origin;跨域读取失败时回退到 document.referrer。 */
|
|
6
|
-
export declare function readParentOrigin(currentWindow?: Window): string;
|
|
7
|
-
/** 从父容器注入到 URL 的 query 中读取 bridge nonce。 */
|
|
8
|
-
export declare function readBridgeNonce(currentWindow?: Window): string;
|
|
9
|
-
/** 创建请求 ID。 */
|
|
10
|
-
export declare function createMessageId(): string;
|
package/types/core/version.d.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
-
export declare const DEVICE_LOG_PATH = "/__hb_sdk__/device-logs";
|
|
3
|
-
export declare function registerDeviceLogs(port: number, store: DeviceLogStore): () => void;
|
|
4
|
-
export declare function getDeviceLogs(appUrl: string): any;
|
|
5
|
-
export declare class DeviceLogStore {
|
|
6
|
-
private sandboxRequests;
|
|
7
|
-
listSandbox(id: string, path: string): Promise<unknown>;
|
|
8
|
-
readonly uploadToken: string;
|
|
9
|
-
readonly epoch: `${string}-${string}-${string}-${string}-${string}`;
|
|
10
|
-
private readonly expiresAt;
|
|
11
|
-
private cursor;
|
|
12
|
-
private logs;
|
|
13
|
-
private devices;
|
|
14
|
-
query(params: URLSearchParams): {
|
|
15
|
-
schemaVersion: number;
|
|
16
|
-
epoch: `${string}-${string}-${string}-${string}-${string}`;
|
|
17
|
-
items: {
|
|
18
|
-
cursor: number;
|
|
19
|
-
deviceSessionId: string;
|
|
20
|
-
sequence: number;
|
|
21
|
-
timestamp: number;
|
|
22
|
-
receivedAt: number;
|
|
23
|
-
level: string;
|
|
24
|
-
source: string;
|
|
25
|
-
message: string;
|
|
26
|
-
truncated: boolean;
|
|
27
|
-
method?: string;
|
|
28
|
-
callId?: string;
|
|
29
|
-
outcome?: string;
|
|
30
|
-
errorCode?: string;
|
|
31
|
-
durationMs?: number;
|
|
32
|
-
}[];
|
|
33
|
-
nextCursor: number;
|
|
34
|
-
hasMore: boolean;
|
|
35
|
-
gap: boolean;
|
|
36
|
-
devices: {
|
|
37
|
-
id: string;
|
|
38
|
-
name: string;
|
|
39
|
-
platform: string;
|
|
40
|
-
connectedAt: number;
|
|
41
|
-
lastSeen: number;
|
|
42
|
-
online: boolean;
|
|
43
|
-
}[];
|
|
44
|
-
};
|
|
45
|
-
upload(req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
46
|
-
}
|
|
47
|
-
/** 同源开发页面使用有界批量回传;传输失败不会递归写入 console。 */
|
|
48
|
-
export declare function deviceLogBootstrap(token: string): string;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 在浏览器中校验构建产物的展示资料图片,并创建预览 URL。
|
|
3
|
-
*
|
|
4
|
-
* @param manifest - 构建产物 Manifest,必须包含合法的 `sdkVersion`。
|
|
5
|
-
* @param files - 构建文件列表;`relativePath` 必须精确匹配 Manifest 中的图片路径。
|
|
6
|
-
* @returns 名称、图标 `icon_url` 和按原顺序排列的 `cover_image_urls`;允许缺失资料的历史产物返回 `undefined`。
|
|
7
|
-
* @throws `Error` 资料非法、图片缺失/为空/超过 10 MiB、格式与扩展名不符、超过 4000 万像素、
|
|
8
|
-
* icon 不是 200×200,或仍使用脚手架占位图片时拒绝;浏览器解码和摘要计算失败也会拒绝。
|
|
9
|
-
* @remarks
|
|
10
|
-
* 需要浏览器提供 `crypto.subtle`、`createImageBitmap` 和 object URL API;不生成或回写 Manifest。
|
|
11
|
-
* 失败时会释放本次已创建的 URL;成功后所有 URL 由调用方在预览结束或替换时释放。
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* import { previewMiniappBasicInfo } from '@heybox/hb-sdk/miniapp-publish';
|
|
15
|
-
*
|
|
16
|
-
* const preview = await previewMiniappBasicInfo(manifest, files);
|
|
17
|
-
* if (preview) {
|
|
18
|
-
* try {
|
|
19
|
-
* const image = new Image();
|
|
20
|
-
* image.src = preview.icon_url;
|
|
21
|
-
* await image.decode();
|
|
22
|
-
* document.body.append(image);
|
|
23
|
-
* } finally {
|
|
24
|
-
* // 已加载的图像可继续显示;不再需要从这些 URL 加载时释放。
|
|
25
|
-
* [preview.icon_url, ...preview.cover_image_urls].forEach(URL.revokeObjectURL);
|
|
26
|
-
* }
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export declare function previewMiniappBasicInfo(manifest: Record<string, unknown>, files: readonly {
|
|
31
|
-
relativePath: string;
|
|
32
|
-
file: Blob;
|
|
33
|
-
}[]): Promise<{
|
|
34
|
-
name: string;
|
|
35
|
-
icon_url: string;
|
|
36
|
-
cover_image_urls: string[];
|
|
37
|
-
} | undefined>;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type MiniappBasicInfo } from './basic-info';
|
|
2
|
-
export declare function inspectBasicInfoImage(bytes: Uint8Array, sourcePath: string, kind: 'icon' | 'cover'): Promise<{
|
|
3
|
-
sha256: string;
|
|
4
|
-
extension: string;
|
|
5
|
-
}>;
|
|
6
|
-
export declare function inspectRemoteBasicInfoImage(bytes: Uint8Array, kind: 'icon' | 'cover'): Promise<{
|
|
7
|
-
sha256: string;
|
|
8
|
-
extension: string;
|
|
9
|
-
}>;
|
|
10
|
-
export declare function readBasicInfoSource(projectRoot: string, relative: string, kind: 'icon' | 'cover'): Promise<{
|
|
11
|
-
sha256: string;
|
|
12
|
-
extension: string;
|
|
13
|
-
bytes: NonSharedBuffer;
|
|
14
|
-
}>;
|
|
15
|
-
export declare function prepareMiniappBasicInfo(projectRoot: string, outputRoot: string, sdkVersion: string): Promise<MiniappBasicInfo | undefined>;
|
|
16
|
-
/** 逐级校验真实目录,避免保留目录或迁移目录中的符号链接将写入带到项目外。 */
|
|
17
|
-
export declare function ensureBasicInfoDirectory(rootPath: string, relative: string): Promise<void>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const BASIC_INFO_PLACEHOLDER_SHA256 = "d14e54b30f5e6d1bcbf51267bc82b06a0af7c333f2945bcc16b4e1adc3b123dd";
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export declare const BASIC_INFO_MAX_BYTES: number;
|
|
2
|
-
export declare const BASIC_INFO_MAX_PIXELS = 40000000;
|
|
3
|
-
/** 小程序展示资料;项目声明和构建产物使用相同字段,图片路径的根目录不同。 */
|
|
4
|
-
export interface MiniappBasicInfo {
|
|
5
|
-
/** NFKC 规范化并移除首尾 Unicode 空白后的名称,长度为 1–40 个 Unicode code point。 */
|
|
6
|
-
name: string;
|
|
7
|
-
/** 图标的规范相对路径;项目声明相对项目目录,Manifest 相对构建目录。 */
|
|
8
|
-
icon: string;
|
|
9
|
-
/** 1–5 个互不重复的封面相对路径,按展示顺序排列。 */
|
|
10
|
-
coverImages: string[];
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* 规范化并校验小程序展示名称。
|
|
14
|
-
*
|
|
15
|
-
* @param raw - 原始名称,必须是字符串。
|
|
16
|
-
* @returns NFKC 规范化、去除首尾 Unicode White_Space 后的名称;不折叠规范化后的内部空白。
|
|
17
|
-
* @throws `Error` 输入不是字符串,或规范化后不是 1–40 个 Unicode code point、不含文字或数字,或包含控制字符、
|
|
18
|
-
* 格式字符、行/段分隔符以及 HTML 特殊字符 `<`、`>`、`&`、双引号或单引号时抛出。
|
|
19
|
-
*/
|
|
20
|
-
export declare function normalizeBasicInfoName(raw: unknown): string;
|
|
21
|
-
export declare function validateBasicInfoPath(raw: unknown): string;
|
|
22
|
-
/**
|
|
23
|
-
* 校验项目声明或 Manifest 中的小程序展示资料。
|
|
24
|
-
*
|
|
25
|
-
* @param value - `package.json#heybox` 或 Manifest 对象,读取 `name`、`icon`、`coverImages`。
|
|
26
|
-
* @param sdkVersion - 产物 SDK 版本,默认 `0.8.2`;用于判断历史产物是否允许缺失全部资料。
|
|
27
|
-
* @returns 名称规范化后的新资料对象;仅版本早于 `0.8.2` 且三项均无自有属性时返回 `undefined`。
|
|
28
|
-
* @throws `Error` SDK 版本非法、资料字段不齐、名称/图片路径非法,或封面不是 1–5 个互不重复的路径时抛出。
|
|
29
|
-
* @remarks
|
|
30
|
-
* 图片路径必须使用 `/` 分隔的非空相对路径,扩展名为 JPEG、PNG、GIF 或 WebP;拒绝 URL、点段、
|
|
31
|
-
* 控制字符和构建/缓存等保留目录。此函数只校验声明,不读取文件,也不验证图片字节、尺寸或存在性。
|
|
32
|
-
*/
|
|
33
|
-
export declare function parseMiniappBasicInfo(value: Record<string, unknown>, sdkVersion?: string): MiniappBasicInfo | undefined;
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/** 单个小程序版本最多声明的关联游戏数量。 */
|
|
2
|
-
export declare const MINIAPP_BIND_APP_IDS_MAX_COUNT = 20;
|
|
3
|
-
/**
|
|
4
|
-
* {@link parseMiniappBindAppIds} 的诊断文案配置。
|
|
5
|
-
*
|
|
6
|
-
* @remarks
|
|
7
|
-
* 该选项只改变抛出 `Error` 的来源前缀,不改变校验、排序或返回值。函数不会 trim、补全或
|
|
8
|
-
* 校验标签;调用方应传能准确定位配置位置的非空文本。
|
|
9
|
-
*/
|
|
10
|
-
export interface ParseMiniappBindAppIdsOptions {
|
|
11
|
-
/**
|
|
12
|
-
* 写入每条错误消息开头的来源标签,默认 `package.json#heybox.bindAppIds`。
|
|
13
|
-
*
|
|
14
|
-
* @remarks
|
|
15
|
-
* Manifest 校验器会传 `manifest.bindAppIds`,因此同一个非法值可明确指出来自项目声明还是
|
|
16
|
-
* 构建产物。传入值会原样插入文案,不会自动添加冒号、路径或字段名。
|
|
17
|
-
*/
|
|
18
|
-
sourceLabel?: string;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* 校验并规范化小程序关联的游戏 App ID。
|
|
22
|
-
*
|
|
23
|
-
* @param value - 不可信声明。`undefined` 和 `[]` 均返回空绑定;其他值必须是最多 20 项的
|
|
24
|
-
* 字符串数组,不接受 `null`、单个字符串、number 数组或类数组对象。
|
|
25
|
-
* @param options - 可选诊断来源;`sourceLabel` 默认 `package.json#heybox.bindAppIds`,并原样
|
|
26
|
-
* 作为所有错误消息的前缀。
|
|
27
|
-
* @returns 新建、按 appid 数值升序排列且经 `Object.freeze` 冻结的 `readonly string[]`。
|
|
28
|
-
* 输入数组及其顺序不会被修改;空输入也返回新的冻结空数组。
|
|
29
|
-
* @throws `Error` `${sourceLabel} 必须是字符串数组`:`value` 不是数组。
|
|
30
|
-
* @throws `Error` `${sourceLabel} 最多包含 20 个游戏 appid`:输入数组超过 20 项;数量检查
|
|
31
|
-
* 先于逐项格式检查。
|
|
32
|
-
* @throws `Error` `${sourceLabel} 包含非法游戏 appid:<value>`:任一项不是 string,或不匹配
|
|
33
|
-
* `/^[1-9]\d*$/`。因此空串、首尾空白、`0`、前导零、正负号、小数、指数和非十进制字符
|
|
34
|
-
* 都不会被自动修正。
|
|
35
|
-
* @throws `Error` `${sourceLabel} 包含超出正 int32 范围的游戏 appid:<value>`:十进制值
|
|
36
|
-
* 大于 `2147483647` 或不能成为安全整数。
|
|
37
|
-
* @throws `Error` `${sourceLabel} 包含重复游戏 appid:<value>`:规范字符串在同一数组重复。
|
|
38
|
-
*
|
|
39
|
-
* @remarks
|
|
40
|
-
* 合法范围是闭区间 `1..2147483647`,每项在输出中仍保持十进制 string。排序按数值而不是
|
|
41
|
-
* 字典序执行,所以 `['3513350', '730', '10']` 输出为 `['10', '730', '3513350']`。
|
|
42
|
-
* 函数先复制后排序并冻结结果,不排序或冻结调用方传入的数组。
|
|
43
|
-
*
|
|
44
|
-
* 这是同步、纯离线的格式规范化函数,不访问网络,也不确认 appid 是否真实存在、可绑定或
|
|
45
|
-
* 属于当前开发者。`miniappManifest()` 用它校验 `package.json#heybox.bindAppIds` 并把非空结果
|
|
46
|
-
* 写入 Manifest;远端 deploy 预检和提审才校验游戏可用性。缺失和空数组在普通构建中都表示
|
|
47
|
-
* 无绑定,函数本身不处理 `remote deploy --from-version` 的历史快照继承语义。
|
|
48
|
-
*
|
|
49
|
-
* `bindAppIds` 是版本发布元数据,不是 Runtime 权限,也不会因调用
|
|
50
|
-
* [navigation.openAppPage](/reference/sdk/navigation/openAppPage) 而变化。后者的 `appId` 是一次
|
|
51
|
-
* 页面导航参数,允许 string 或 number、只要求字符串化后非空,不适用本函数的数组、int32、
|
|
52
|
-
* 前导零、去重、20 项或排序规则。
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```ts
|
|
56
|
-
* import { parseMiniappBindAppIds } from '@heybox/hb-sdk/miniapp-publish'
|
|
57
|
-
*
|
|
58
|
-
* const declared = ['3513350', '730', '10']
|
|
59
|
-
* const appIds = parseMiniappBindAppIds(declared)
|
|
60
|
-
*
|
|
61
|
-
* console.log(appIds) // ['10', '730', '3513350']
|
|
62
|
-
* console.log(declared) // ['3513350', '730', '10'],输入顺序不变
|
|
63
|
-
* console.log(Object.isFrozen(appIds)) // true
|
|
64
|
-
* ```
|
|
65
|
-
*
|
|
66
|
-
* @see [miniappManifest](/reference/symbols/vite/functions/miniappManifest)
|
|
67
|
-
* @see [navigation.openAppPage](/reference/sdk/navigation/openAppPage)
|
|
68
|
-
* @see [CLI 与远端发布](/guide/cli#生产构建)
|
|
69
|
-
*/
|
|
70
|
-
export declare function parseMiniappBindAppIds(value: unknown, options?: ParseMiniappBindAppIdsOptions): readonly string[];
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/** 小程序发布类别:`tool` 为工具、`game` 为游戏、`other` 为其他;新上传版本必须声明,历史读取可缺省。 */
|
|
2
|
-
export type MiniappCategory = 'tool' | 'game' | 'other';
|
|
3
|
-
/**
|
|
4
|
-
* 校验项目配置或产物中的小程序类别。
|
|
5
|
-
*
|
|
6
|
-
* @param value - 待校验值,只接受 `tool`、`game`、`other` 或 `undefined`;不做 trim 或大小写转换。
|
|
7
|
-
* @param sourceLabel - 错误消息中的字段来源,默认 `package.json#heybox.category`。
|
|
8
|
-
* @returns 合法类别原值;输入 `undefined` 时返回 `undefined`,由发布流程另行检查是否必填。
|
|
9
|
-
* @throws `Error` 输入为其他值(包括 null 或空字符串)时抛出带字段来源的错误。
|
|
10
|
-
*/
|
|
11
|
-
export declare function parseMiniappCategory(value: unknown, sourceLabel?: string): MiniappCategory | undefined;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/** 检查原生入口的文件格式与目标架构;文件后缀和执行位不能代替此门禁。 */
|
|
2
|
-
export declare function assertCompanionExecutable(bytes: Buffer, target: 'windows-x64' | 'macos-arm64'): void;
|
|
3
|
-
/** 只解析 bundle 主字典的 CFBundleExecutable,兼容 XML 与 binary plist。 */
|
|
4
|
-
export declare function companionBundleExecutable(plist: Buffer): string;
|