@heybox/hb-sdk-protocol 0.8.1-alpha.3 → 0.8.1-alpha.7
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/README.md +7 -1
- package/dist/index.cjs.js +137 -13
- package/dist/index.esm.js +119 -14
- package/package.json +1 -1
- package/src/bridge.ts +27 -5
- package/src/capabilities.ts +107 -2
- package/src/constants.ts +3 -0
- package/src/guards.ts +25 -2
- package/src/payloads.ts +134 -2
- package/src/permission-catalog.ts +24 -0
- package/src/permissions.ts +2 -1
- package/types/bridge.d.ts +9 -5
- package/types/capabilities.d.ts +56 -4
- package/types/constants.d.ts +3 -0
- package/types/guards.d.ts +3 -1
- package/types/payloads.d.ts +120 -2
- package/types/permission-catalog.d.ts +10 -1
package/types/payloads.d.ts
CHANGED
|
@@ -218,7 +218,6 @@ export interface NetworkRequestPayload {
|
|
|
218
218
|
data?: unknown;
|
|
219
219
|
headers?: MiniProgramNetworkHeaders;
|
|
220
220
|
timeout?: number;
|
|
221
|
-
withCredentials?: boolean;
|
|
222
221
|
}
|
|
223
222
|
export interface NetworkResponsePayload<T = unknown> {
|
|
224
223
|
data: T;
|
|
@@ -357,7 +356,6 @@ interface NetworkDownloadBasePayload {
|
|
|
357
356
|
params?: MiniProgramNetworkParams;
|
|
358
357
|
headers?: MiniProgramNetworkHeaders;
|
|
359
358
|
timeout?: number;
|
|
360
|
-
withCredentials?: boolean;
|
|
361
359
|
maxBytes?: number;
|
|
362
360
|
}
|
|
363
361
|
export type NetworkDownloadPayload = NetworkDownloadBasePayload & ({
|
|
@@ -463,4 +461,124 @@ export interface GetLeaderboardInfoResult {
|
|
|
463
461
|
order: LeaderboardOrder;
|
|
464
462
|
rankLimit: number;
|
|
465
463
|
}
|
|
464
|
+
/** 受管桌面程序可选能力。 */
|
|
465
|
+
export type CompanionCapability = 'stdio' | 'attachments' | 'notifications';
|
|
466
|
+
export type CompanionTarget = 'windows-x64' | 'macos-arm64';
|
|
467
|
+
export type CompanionSignatureStatus = 'unsigned' | 'valid' | 'invalid' | 'unknown';
|
|
468
|
+
/** Companion alias 的跨构建、Runtime 与 Host 规范。 */
|
|
469
|
+
export declare const COMPANION_ALIAS_PATTERN: RegExp;
|
|
470
|
+
/** Companion Host 可跨 bridge 保留的稳定领域错误码。 */
|
|
471
|
+
export declare const COMPANION_ERROR_CODES: readonly ["COMPANION_UNSUPPORTED", "COMPANION_NOT_DECLARED", "COMPANION_TARGET_UNSUPPORTED", "COMPANION_NOT_PREPARED", "COMPANION_PREPARATION_CANCELLED", "COMPANION_DOWNLOAD_FAILED", "COMPANION_DESCRIPTOR_UNAVAILABLE", "COMPANION_ARCHIVE_INVALID", "COMPANION_INTEGRITY_FAILED", "COMPANION_ENTRYPOINT_INVALID", "COMPANION_USER_CANCELLED", "COMPANION_ELEVATION_DENIED", "COMPANION_OS_BLOCKED", "COMPANION_LAUNCH_FAILED", "COMPANION_SESSION_VERSION_MISMATCH", "COMPANION_SESSION_OWNERSHIP_LOST", "COMPANION_SESSION_EXITED", "COMPANION_PIPE_CLOSED", "COMPANION_OUTPUT_LIMIT", "COMPANION_PROCESS_CRASHED", "COMPANION_ATTACHMENT_NOT_FOUND", "COMPANION_NOTIFICATION_UNAVAILABLE", "COMPANION_TERMINATE_FAILED"];
|
|
472
|
+
export type CompanionErrorCode = (typeof COMPANION_ERROR_CODES)[number];
|
|
473
|
+
export interface CompanionInfo {
|
|
474
|
+
alias: string;
|
|
475
|
+
displayName: string;
|
|
476
|
+
target: CompanionTarget;
|
|
477
|
+
capabilities: readonly CompanionCapability[];
|
|
478
|
+
archiveBytes: number;
|
|
479
|
+
signatureStatus: CompanionSignatureStatus;
|
|
480
|
+
/** Host 确认的产物来源;旧 Host 缺省时来源未知。 */
|
|
481
|
+
source?: 'local-dev' | 'released';
|
|
482
|
+
}
|
|
483
|
+
export interface CompanionErrorSummary {
|
|
484
|
+
code: CompanionErrorCode;
|
|
485
|
+
message: string;
|
|
486
|
+
retryable: boolean;
|
|
487
|
+
}
|
|
488
|
+
export type CompanionPrepareProgress = {
|
|
489
|
+
phase: 'downloading';
|
|
490
|
+
loaded: number;
|
|
491
|
+
total?: number;
|
|
492
|
+
} | {
|
|
493
|
+
phase: 'verifying';
|
|
494
|
+
processed: number;
|
|
495
|
+
total: number;
|
|
496
|
+
} | {
|
|
497
|
+
phase: 'extracting';
|
|
498
|
+
processed: number;
|
|
499
|
+
total: number;
|
|
500
|
+
};
|
|
501
|
+
export type CompanionPreparationStatus = {
|
|
502
|
+
state: 'not-prepared';
|
|
503
|
+
} | {
|
|
504
|
+
state: 'preparing';
|
|
505
|
+
progress: CompanionPrepareProgress;
|
|
506
|
+
} | {
|
|
507
|
+
state: 'ready';
|
|
508
|
+
preparedAt: number;
|
|
509
|
+
} | {
|
|
510
|
+
state: 'failed';
|
|
511
|
+
error: CompanionErrorSummary;
|
|
512
|
+
};
|
|
513
|
+
export type CompanionExitReason = 'exited' | 'terminated' | 'crashed' | 'host-shutdown' | 'permission-revoked' | 'output-limit';
|
|
514
|
+
export type CompanionExit = {
|
|
515
|
+
reason: 'exited';
|
|
516
|
+
exitCode: number;
|
|
517
|
+
} | {
|
|
518
|
+
reason: Exclude<CompanionExitReason, 'exited'>;
|
|
519
|
+
exitCode?: number;
|
|
520
|
+
};
|
|
521
|
+
/** 活动 Session 的 wire 快照;不包含路径、PID 或原生句柄。 */
|
|
522
|
+
export interface CompanionSessionSnapshot {
|
|
523
|
+
id: string;
|
|
524
|
+
alias: string;
|
|
525
|
+
target: CompanionTarget;
|
|
526
|
+
capabilities: readonly CompanionCapability[];
|
|
527
|
+
state: 'running';
|
|
528
|
+
controllerGeneration: number;
|
|
529
|
+
}
|
|
530
|
+
export interface CompanionAliasPayload {
|
|
531
|
+
alias: string;
|
|
532
|
+
}
|
|
533
|
+
export type CompanionGetInfoPayload = CompanionAliasPayload;
|
|
534
|
+
export type CompanionGetInfoResult = CompanionInfo;
|
|
535
|
+
export type CompanionGetPreparationStatusPayload = CompanionAliasPayload;
|
|
536
|
+
export type CompanionGetPreparationStatusResult = CompanionPreparationStatus;
|
|
537
|
+
export type CompanionPreparePayload = CompanionAliasPayload;
|
|
538
|
+
export type CompanionPrepareResult = CompanionInfo;
|
|
539
|
+
export type CompanionCancelPreparationPayload = CompanionAliasPayload;
|
|
540
|
+
export type CompanionCancelPreparationResult = void;
|
|
541
|
+
export type CompanionGetActiveSessionPayload = CompanionAliasPayload;
|
|
542
|
+
export type CompanionGetActiveSessionResult = CompanionSessionSnapshot | undefined;
|
|
543
|
+
export type CompanionLaunchPayload = CompanionAliasPayload;
|
|
544
|
+
export type CompanionLaunchResult = CompanionSessionSnapshot;
|
|
545
|
+
export interface CompanionSessionControllerPayload {
|
|
546
|
+
sessionId: string;
|
|
547
|
+
controllerGeneration: number;
|
|
548
|
+
}
|
|
549
|
+
export interface CompanionSessionWritePayload extends CompanionSessionControllerPayload {
|
|
550
|
+
data: Uint8Array;
|
|
551
|
+
}
|
|
552
|
+
export type CompanionSessionWriteResult = void;
|
|
553
|
+
export type CompanionSessionCloseStdinPayload = CompanionSessionControllerPayload;
|
|
554
|
+
export type CompanionSessionCloseStdinResult = void;
|
|
555
|
+
export type CompanionSessionTerminatePayload = CompanionSessionControllerPayload;
|
|
556
|
+
export type CompanionSessionTerminateResult = void;
|
|
557
|
+
export interface CompanionSessionAckOutputPayload extends CompanionSessionControllerPayload {
|
|
558
|
+
stream: 'stdout' | 'stderr';
|
|
559
|
+
sequence: number;
|
|
560
|
+
}
|
|
561
|
+
export type CompanionSessionAckOutputResult = void;
|
|
562
|
+
export interface CompanionOpenAttachmentPayload extends CompanionSessionControllerPayload {
|
|
563
|
+
id: string;
|
|
564
|
+
}
|
|
565
|
+
export type CompanionOpenAttachmentResult = MiniProgramFileDescriptor;
|
|
566
|
+
export type CompanionNotificationCategory = 'completed' | 'failed' | 'stopped' | 'attention';
|
|
567
|
+
export interface CompanionShowNotificationPayload extends CompanionSessionControllerPayload {
|
|
568
|
+
category: CompanionNotificationCategory;
|
|
569
|
+
}
|
|
570
|
+
export type CompanionShowNotificationResult = void;
|
|
571
|
+
export interface CompanionSessionOutputPayload extends CompanionSessionControllerPayload {
|
|
572
|
+
stream: 'stdout' | 'stderr';
|
|
573
|
+
sequence: number;
|
|
574
|
+
data: Uint8Array;
|
|
575
|
+
}
|
|
576
|
+
export interface CompanionSessionExitPayload {
|
|
577
|
+
sessionId: string;
|
|
578
|
+
exit: CompanionExit;
|
|
579
|
+
}
|
|
580
|
+
export interface CompanionSessionOwnershipLostPayload {
|
|
581
|
+
sessionId: string;
|
|
582
|
+
controllerGeneration: number;
|
|
583
|
+
}
|
|
466
584
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MiniProgramBridgeMethod, MiniProgramCapabilityRisk } from './capabilities';
|
|
2
|
-
export declare const MINI_PROGRAM_PERMISSION_KEYS: readonly ["userInfo", "steamLibrary", "share", "storage", "filesystem", "clipboard", "leaderboard", "network"];
|
|
2
|
+
export declare const MINI_PROGRAM_PERMISSION_KEYS: readonly ["userInfo", "steamLibrary", "share", "storage", "filesystem", "clipboard", "leaderboard", "network", "companion"];
|
|
3
3
|
export type MiniProgramPermissionKey = (typeof MINI_PROGRAM_PERMISSION_KEYS)[number];
|
|
4
4
|
export type MiniProgramPermissionRequirement = {
|
|
5
5
|
readonly kind: 'none';
|
|
@@ -103,6 +103,15 @@ export declare const MINI_PROGRAM_PERMISSION_CATALOG: readonly [{
|
|
|
103
103
|
};
|
|
104
104
|
readonly methods: readonly ["network.request", "network.download"];
|
|
105
105
|
readonly conditions: readonly ["声明后仍需平台批准,并继续执行网络安全策略。"];
|
|
106
|
+
}, {
|
|
107
|
+
readonly key: "companion";
|
|
108
|
+
readonly name: "桌面辅助应用";
|
|
109
|
+
readonly description: "下载、准备并运行随当前小程序版本发布的受管桌面程序。";
|
|
110
|
+
readonly access: "platform-approval";
|
|
111
|
+
readonly risk: "high";
|
|
112
|
+
readonly config: {};
|
|
113
|
+
readonly methods: readonly ["companion.getInfo", "companion.getPreparationStatus", "companion.prepare", "companion.cancelPreparation", "companion.getActiveSession", "companion.launch", "companion.session.write", "companion.session.closeStdin", "companion.session.terminate", "companion.session.ackOutput", "companion.openAttachment", "companion.showNotification"];
|
|
114
|
+
readonly conditions: readonly ["声明后仍需平台批准,并继续执行可信用户手势、Host 能力和当前版本 Manifest 校验。"];
|
|
106
115
|
}];
|
|
107
116
|
export declare const MINI_PROGRAM_NO_DECLARATION_METHODS: readonly ["user.revokeAuthorization", "ui.showToast", "ui.showLoading", "ui.hideLoading", "viewport.getWindowInfo", "viewport.setNavigationBarStyle", "device.vibrate", "navigation.close", "navigation.reload", "navigation.openAppPage"];
|
|
108
117
|
export declare function isMiniProgramPermissionKey(key: string): key is MiniProgramPermissionKey;
|