@heybox/hb-sdk 0.9.1-alpha.1 → 0.9.1-alpha.10
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 +117 -2
- package/README.md +43 -5
- package/dist/card-controller.cjs.js +194 -0
- package/dist/card-controller.esm.js +159 -0
- package/dist/cli-chunks/_commonjs-dynamic-modules-DUamuDzp.cjs +7 -0
- package/dist/cli-chunks/{build-C5jFqooo.cjs → build-BK0MOduC.cjs} +15 -7
- package/dist/cli-chunks/{context-BkvtRlQM.cjs → context-D7AFyc_9.cjs} +14 -14
- package/dist/cli-chunks/{create-uHfLV3qo.cjs → create-C-pAXZR_.cjs} +5 -3
- package/dist/cli-chunks/{dev-BGgykbLg.cjs → dev-CONKtd6c.cjs} +59 -14
- package/dist/cli-chunks/{doctor-Cfn2luVo.cjs → doctor-D18leeH7.cjs} +8 -5
- package/dist/cli-chunks/{index-B0eNYO7I.cjs → index-BWRDIX1T.cjs} +7851 -486
- package/dist/cli-chunks/{index-DZQ84rXZ.cjs → index-DJoBhXcG.cjs} +9 -13
- package/dist/cli-chunks/{index.esm-I50IudW7.cjs → index.esm-CtAKePcf.cjs} +36 -37
- package/dist/cli-chunks/{login-BonS2uKg.cjs → login-BHq8vDRt.cjs} +36 -36
- package/dist/cli-chunks/{project-vite-BA_CFVq_.cjs → project-vite-DD3bmbqm.cjs} +1 -1
- package/dist/cli-chunks/{remote-NMK4n5ov.cjs → remote-DeLLzkXt.cjs} +71 -90
- package/dist/cli-chunks/runtime-gate-wKj1l5xM.cjs +201946 -0
- package/dist/cli-chunks/{runtime-permission-env-Bg7f-uj8.cjs → runtime-permission-env-DBra_0-U.cjs} +7012 -3305
- package/dist/cli-chunks/{skill-DV2oEH-I.cjs → skill-Cq3wjRBj.cjs} +9 -6
- package/dist/cli-chunks/{version-rxh3jOOI.cjs → version-BF4JQQCU.cjs} +1 -1
- package/dist/cli.cjs +10 -7
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-C4b9nlYA.js +102 -0
- package/dist/devtools/browser-dev-host/assets/desktop-app-launch-DXmUwcoE.js +6 -0
- package/dist/devtools/browser-dev-host/assets/index-BRxbUJVN.css +1 -0
- package/dist/devtools/browser-dev-host/assets/{index-sykXQUSO.js → index-CVZ3CdPt.js} +4 -4
- package/dist/devtools/browser-dev-host/index.html +3 -3
- package/dist/index.cjs.js +6331 -280
- package/dist/index.esm.js +6331 -281
- package/dist/miniapp-publish.cjs.js +6613 -157
- package/dist/miniapp-publish.esm.js +6613 -158
- package/dist/protocol.cjs.js +5824 -0
- package/dist/protocol.esm.js +5823 -1
- package/dist/vite.cjs.js +7476 -206
- package/dist/vite.esm.js +7475 -207
- package/dist/workspace-card-build-sandbox-worker.mjs +72 -0
- package/package.json +33 -18
- package/skill/SKILL.md +15 -0
- package/skill/skill.json +5 -5
- package/types/card-controller.d.ts +3682 -0
- package/types/index.d.ts +7639 -35
- package/types/miniapp-publish/index.d.ts +542 -64
- package/types/protocol.d.ts +2094 -9
- package/types/vite/index.d.ts +25 -12
- package/dist/cli-chunks/runtime-gate-CKGRK3wC.cjs +0 -65
- package/dist/cli-chunks/session-XP1Y_N72.cjs +0 -3403
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-CBMI8jM6.js +0 -102
- package/dist/devtools/browser-dev-host/assets/desktop-app-launch-DXfb_JMF.js +0 -6
- package/dist/devtools/browser-dev-host/assets/index-DRM3hPNc.css +0 -1
- 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,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* iframe 与调试台页面的开发期 console 捕获转发。
|
|
3
|
-
*
|
|
4
|
-
* 双条件门控(iframe 转发):
|
|
5
|
-
* 1. 构建期:`hb-sdk dev`(vite serve)注入 `__HB_SDK_DEV_LOGGING__`;`hb-sdk build` /
|
|
6
|
-
* `vite build`(生产)永不注入或替换为 `false`,本模块被死代码消除。
|
|
7
|
-
* 2. 运行期:仅在 `window.name` 为 `__hb_sdk_mini_dev__` 的调试 iframe 中激活,
|
|
8
|
-
* 用户设备上的正式运行环境没有该标记。
|
|
9
|
-
*
|
|
10
|
-
* 无侵入 patch `console.log/debug/info/warn/error`:原样放行(DevTools 不受影响)+
|
|
11
|
-
* 通过 `window.parent.postMessage` 转发给调试台(CSP 的 connect-src 不约束 postMessage,
|
|
12
|
-
* 网络上报由调试台页面代理)。发送全程静默:失败不得回打 console,避免自触发死循环。
|
|
13
|
-
*
|
|
14
|
-
* 激活时机:由 SDK 默认单例初始化时调用(业务 `import '@heybox/hb-sdk'` 即生效);
|
|
15
|
-
* iframe 标记由调试台 `iframe.name` 与 vite dev 注入的无依赖 bootstrap 共同设置。
|
|
16
|
-
* 调试台页面自身(runtime 跑在这里,`[hb-sdk-runtime]` 日志不经过 iframe)另用
|
|
17
|
-
* `installMiniDevConsoleSelfCapture` 接入「日志」页签(source: 'host')。
|
|
18
|
-
*/
|
|
19
|
-
export declare const MINI_DEV_IFRAME_WINDOW_NAME = "__hb_sdk_mini_dev__";
|
|
20
|
-
export declare const MINI_DEV_CONSOLE_EVENT_TYPE = "hb-sdk:mini-dev-console";
|
|
21
|
-
/** 对外契约:调试台监听该 postMessage 读取转发日志;message 结构必须稳定。 */
|
|
22
|
-
export interface MiniDevConsoleMessage {
|
|
23
|
-
type: typeof MINI_DEV_CONSOLE_EVENT_TYPE;
|
|
24
|
-
detail: MiniDevConsoleEventDetail;
|
|
25
|
-
}
|
|
26
|
-
export type MiniDevConsoleLevel = 'log' | 'debug' | 'info' | 'warn' | 'error';
|
|
27
|
-
export interface MiniDevConsoleEventDetail {
|
|
28
|
-
level: MiniDevConsoleLevel;
|
|
29
|
-
args: unknown[];
|
|
30
|
-
timestamp: number;
|
|
31
|
-
}
|
|
32
|
-
/** 调试台页面与 iframe bootstrap 共用的已安装标记(window/console 上的属性名)。 */
|
|
33
|
-
export declare const MINI_DEV_CONSOLE_INSTALL_FLAG = "__hb_sdk_mini_dev_console_installed__";
|
|
34
|
-
/** 调试台页面(非 iframe)自捕获:runtime/host 侧 console 直接进「日志」页签。 */
|
|
35
|
-
export declare function installMiniDevConsoleSelfCapture(onLog: (level: MiniDevConsoleLevel, args: unknown[]) => void, consoleRef?: Console): void;
|
|
36
|
-
export declare function installMiniDevConsoleForwarding(consoleRef?: Console): void;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* network.request 诊断日志的纯脱敏工具。
|
|
3
|
-
*
|
|
4
|
-
* @remarks
|
|
5
|
-
* 放在 `core` 而非 `modules/network`:无错误类型依赖,供 SDK 错误文案、
|
|
6
|
-
* modules observability、devtools Browser Dev Host / proxy 共用,并满足 boundary
|
|
7
|
-
*(devtools 不得直接 import runtime capability modules)。
|
|
8
|
-
*/
|
|
9
|
-
export type MiniProgramNetworkHeadersLike = Record<string, string>;
|
|
10
|
-
/**
|
|
11
|
-
* 脱敏请求 URL:去掉 userinfo,并将 query / fragment 中的敏感参数值替换为 `[redacted]`。
|
|
12
|
-
*/
|
|
13
|
-
export declare function sanitizeNetworkRequestUrl(url: string): string;
|
|
14
|
-
/**
|
|
15
|
-
* 脱敏请求/响应头;敏感名(含 heybox 前缀)替换为 `[redacted]`。
|
|
16
|
-
*/
|
|
17
|
-
export declare function sanitizeNetworkHeaders(headers?: MiniProgramNetworkHeadersLike): MiniProgramNetworkHeadersLike;
|
|
18
|
-
/**
|
|
19
|
-
* 预览请求/响应 data:递归脱敏敏感字段,截断长文本与大数组。
|
|
20
|
-
*/
|
|
21
|
-
export declare function previewNetworkData(data: unknown): unknown;
|
|
22
|
-
/**
|
|
23
|
-
* 递归脱敏日志对象(payload / result):敏感 key、headers、url 字段统一处理。
|
|
24
|
-
*/
|
|
25
|
-
export declare function redactNetworkLogValue(value: unknown): unknown;
|
|
26
|
-
/**
|
|
27
|
-
* 诊断 message 中的 URL 片段做脱敏,避免 error.message 二次泄漏 query secrets。
|
|
28
|
-
*/
|
|
29
|
-
export declare function sanitizeDiagnosticMessage(message: string): string;
|
|
30
|
-
export declare function isSensitiveNetworkHeaderName(headerName: string): boolean;
|
|
31
|
-
export declare function isSensitiveNetworkKey(key: string): boolean;
|
package/types/core/sdk.d.ts
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { type MiniProgramSDKOptions } from './client';
|
|
2
|
-
import { type MiniProgramAuthModule } from '../modules/auth';
|
|
3
|
-
import { type MiniProgramCloudModule } from '../modules/cloud';
|
|
4
|
-
import { type MiniProgramCompanionModule } from '../modules/companion';
|
|
5
|
-
import { type MiniProgramShareModule } from '../modules/share';
|
|
6
|
-
import { type MiniProgramStorageModule } from '../modules/storage';
|
|
7
|
-
import { type MiniProgramNetworkModule } from '../modules/network';
|
|
8
|
-
import { type FilesModule } from '../modules/files';
|
|
9
|
-
import { type MiniProgramViewportModule } from '../modules/viewport';
|
|
10
|
-
import { type MiniProgramUserModule } from '../modules/user';
|
|
11
|
-
import { type MiniProgramUiModule } from '../modules/ui';
|
|
12
|
-
import { type MiniProgramDeviceModule } from '../modules/device';
|
|
13
|
-
import { type MiniProgramEnvironmentModule } from '../modules/environment';
|
|
14
|
-
import { type MiniProgramNavigationModule } from '../modules/navigation';
|
|
15
|
-
import type { MiniProgramEventHandler, MiniProgramEventName } from '../protocol/types';
|
|
16
|
-
import type { MiniProgramSDKHandshakeState, MiniProgramSDKHandshakeStateHandler } from './handshake-state';
|
|
17
|
-
/**
|
|
18
|
-
* 外部小程序 SDK 实例。
|
|
19
|
-
*
|
|
20
|
-
* @remarks
|
|
21
|
-
* 该实例负责组织授权、用户、分享、容器、存储与网络等开放能力,并维护
|
|
22
|
-
* iframe 内小程序与父容器之间的 bridge 生命周期。
|
|
23
|
-
*
|
|
24
|
-
* 多数业务页直接使用默认单例即可;只有在测试、多实例或需要定制运行参数时,
|
|
25
|
-
* 才建议显式创建独立实例。
|
|
26
|
-
*
|
|
27
|
-
* 能力调用会自动等待与父容器完成握手。
|
|
28
|
-
*/
|
|
29
|
-
export declare class MiniProgramSDK {
|
|
30
|
-
private readonly client;
|
|
31
|
-
/** 授权相关开放能力。 */
|
|
32
|
-
readonly auth: MiniProgramAuthModule;
|
|
33
|
-
/** 用户资料相关开放能力。 */
|
|
34
|
-
readonly user: MiniProgramUserModule;
|
|
35
|
-
/** 分享相关开放能力。 */
|
|
36
|
-
readonly share: MiniProgramShareModule;
|
|
37
|
-
/** 视口相关开放能力。 */
|
|
38
|
-
readonly viewport: MiniProgramViewportModule;
|
|
39
|
-
/** Storage 相关开放能力。 */
|
|
40
|
-
readonly storage: MiniProgramStorageModule;
|
|
41
|
-
/** 网络请求相关开放能力。 */
|
|
42
|
-
readonly network: MiniProgramNetworkModule;
|
|
43
|
-
/** 受控文件与目录能力。 */
|
|
44
|
-
readonly files: FilesModule;
|
|
45
|
-
/** UI 交互相关开放能力。 */
|
|
46
|
-
readonly ui: MiniProgramUiModule;
|
|
47
|
-
/** 设备相关开放能力。 */
|
|
48
|
-
readonly device: MiniProgramDeviceModule;
|
|
49
|
-
/** 导航与容器控制相关开放能力。 */
|
|
50
|
-
readonly navigation: MiniProgramNavigationModule;
|
|
51
|
-
/** 云端数据相关开放能力。 */
|
|
52
|
-
readonly cloud: MiniProgramCloudModule;
|
|
53
|
-
/** 受管桌面程序能力。 */
|
|
54
|
-
readonly companion: MiniProgramCompanionModule;
|
|
55
|
-
/** 当前实例的环境信息。 */
|
|
56
|
-
readonly environment: MiniProgramEnvironmentModule;
|
|
57
|
-
constructor(options?: MiniProgramSDKOptions);
|
|
58
|
-
/** 获取当前握手状态。 */
|
|
59
|
-
getHandshakeState(): MiniProgramSDKHandshakeState;
|
|
60
|
-
/** 订阅握手状态,并立即接收当前状态。 */
|
|
61
|
-
onHandshakeStateChange(handler: MiniProgramSDKHandshakeStateHandler): () => void;
|
|
62
|
-
/**
|
|
63
|
-
* 注册小程序生命周期或业务事件。
|
|
64
|
-
*
|
|
65
|
-
* @param eventName - 要监听的事件名。
|
|
66
|
-
* @param handler - 事件处理函数。
|
|
67
|
-
* @returns 事件解绑函数。
|
|
68
|
-
*/
|
|
69
|
-
on<T extends MiniProgramEventName>(eventName: T, handler: MiniProgramEventHandler<T>): () => void;
|
|
70
|
-
/**
|
|
71
|
-
* 移除小程序生命周期或业务事件。
|
|
72
|
-
*
|
|
73
|
-
* @param eventName - 要移除的事件名。
|
|
74
|
-
* @param handler - 对应的事件处理函数。
|
|
75
|
-
*/
|
|
76
|
-
off<T extends MiniProgramEventName>(eventName: T, handler: MiniProgramEventHandler<T>): void;
|
|
77
|
-
/**
|
|
78
|
-
* 销毁 SDK 实例。
|
|
79
|
-
*
|
|
80
|
-
* @remarks
|
|
81
|
-
* 销毁后会移除 message 监听,并拒绝尚未完成的 bridge 请求。
|
|
82
|
-
* 已销毁实例不应继续复用。
|
|
83
|
-
*/
|
|
84
|
-
destroy(): void;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* 创建独立 SDK 实例。
|
|
88
|
-
*
|
|
89
|
-
* @param options - SDK 运行配置,例如超时时间、nonce 或测试环境注入的 window。
|
|
90
|
-
* @returns 可独立管理生命周期的 `MiniProgramSDK` 实例。
|
|
91
|
-
*
|
|
92
|
-
* @remarks
|
|
93
|
-
* 适用于测试、多实例场景,或需要自定义 `timeout`、`targetWindow` 等运行参数的场景。
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* ```ts
|
|
97
|
-
* import { createMiniProgramSDK } from '@heybox/hb-sdk'
|
|
98
|
-
*
|
|
99
|
-
* const sdk = createMiniProgramSDK({
|
|
100
|
-
* timeout: 15000,
|
|
101
|
-
* })
|
|
102
|
-
* ```
|
|
103
|
-
*/
|
|
104
|
-
export declare function createMiniProgramSDK(options?: MiniProgramSDKOptions): MiniProgramSDK;
|
|
@@ -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>;
|