@heybox/hb-sdk 0.4.3 → 0.4.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/README.md +106 -18
- package/dist/cli-chunks/{create-BV4h2BTs.cjs → create-DpyZCNdo.cjs} +1 -1
- package/dist/cli-chunks/{dev-DgX88vaK.cjs → dev-DWIpgJnn.cjs} +1 -1
- package/dist/cli-chunks/{doctor-BIZoQ6go.cjs → doctor-DBotVUQI.cjs} +1 -1
- package/dist/cli-chunks/{index-ovy_xoLn.cjs → index-BYMTp2I6.cjs} +171 -43
- package/dist/cli-chunks/{index-DQAFCtK1.cjs → index-DRsyeAcg.cjs} +3 -3
- package/dist/cli-chunks/{login-CoZhlwxt.cjs → login-DIgcT1gv.cjs} +2 -2
- package/dist/cli-chunks/{deploy-Bz0-WpHy.cjs → remote-DjaOc1VS.cjs} +797 -21
- package/dist/cli-chunks/{session-BQs0wf65.cjs → session-BAgaqpNL.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/mock-host/main.js +842 -428
- package/dist/index.cjs.js +98 -0
- package/dist/index.esm.js +96 -1
- package/dist/miniapp-publish.cjs.js +26 -0
- package/dist/miniapp-publish.esm.js +14 -1
- package/dist/protocol.cjs.js +70 -0
- package/dist/protocol.esm.js +64 -1
- package/dist/templates/vue3-vite-ts/README.md.ejs +1 -1
- package/dist/templates/vue3-vite-ts/package.json.ejs +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +23 -18
- package/skill/references/api-protocol.md +34 -2
- package/skill/references/api-root.md +79 -4
- package/skill/references/cli.md +86 -349
- package/skill/references/llms-index.md +2 -2
- package/skill/references/safety-boundaries.md +1 -1
- package/skill/scripts/sync-references.mjs +48 -4
- package/skill/skill.json +4 -4
- package/types/core/sdk.d.ts +9 -0
- package/types/core/singleton.d.ts +9 -0
- package/types/index.d.ts +7 -1
- package/types/miniapp-publish/index.d.ts +13 -0
- package/types/modules/device/index.d.ts +34 -0
- package/types/modules/navigation/index.d.ts +24 -0
- package/types/modules/ui/index.d.ts +42 -0
- package/types/protocol/capabilities.d.ts +81 -2
- package/types/protocol.d.ts +5 -2
package/dist/index.cjs.js
CHANGED
|
@@ -473,6 +473,20 @@ const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
|
|
|
473
473
|
* 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
|
|
474
474
|
*/
|
|
475
475
|
const NETWORK_REQUEST_METHOD = 'network.request';
|
|
476
|
+
/** 展示 toast 能力方法名。 */
|
|
477
|
+
const UI_SHOW_TOAST_METHOD = 'ui.showToast';
|
|
478
|
+
/** 展示全局 loading 能力方法名。 */
|
|
479
|
+
const UI_SHOW_LOADING_METHOD = 'ui.showLoading';
|
|
480
|
+
/** 隐藏全局 loading 能力方法名。 */
|
|
481
|
+
const UI_HIDE_LOADING_METHOD = 'ui.hideLoading';
|
|
482
|
+
/** 震动反馈能力方法名。 */
|
|
483
|
+
const DEVICE_VIBRATE_METHOD = 'device.vibrate';
|
|
484
|
+
/** 写入文本剪贴板能力方法名。 */
|
|
485
|
+
const DEVICE_SET_CLIPBOARD_METHOD = 'device.setClipboard';
|
|
486
|
+
/** 关闭当前小程序容器能力方法名。 */
|
|
487
|
+
const NAVIGATION_CLOSE_METHOD = 'navigation.close';
|
|
488
|
+
/** 重载当前小程序容器能力方法名。 */
|
|
489
|
+
const NAVIGATION_RELOAD_METHOD = 'navigation.reload';
|
|
476
490
|
|
|
477
491
|
/**
|
|
478
492
|
* 唤起登录授权,并在流程返回后刷新用户公开基础资料。
|
|
@@ -728,6 +742,59 @@ function createUserModule(requester) {
|
|
|
728
742
|
};
|
|
729
743
|
}
|
|
730
744
|
|
|
745
|
+
/** 展示 toast。 */
|
|
746
|
+
function showToast(requester, options) {
|
|
747
|
+
return requester.request(UI_SHOW_TOAST_METHOD, options);
|
|
748
|
+
}
|
|
749
|
+
/** 展示全局 loading。 */
|
|
750
|
+
function showLoading(requester, options) {
|
|
751
|
+
return requester.request(UI_SHOW_LOADING_METHOD, options ?? {});
|
|
752
|
+
}
|
|
753
|
+
/** 隐藏全局 loading。 */
|
|
754
|
+
function hideLoading(requester) {
|
|
755
|
+
return requester.request(UI_HIDE_LOADING_METHOD);
|
|
756
|
+
}
|
|
757
|
+
/** 创建 UI 模块。 */
|
|
758
|
+
function createUiModule(requester) {
|
|
759
|
+
return {
|
|
760
|
+
showToast: options => showToast(requester, options),
|
|
761
|
+
showLoading: options => showLoading(requester, options),
|
|
762
|
+
hideLoading: () => hideLoading(requester),
|
|
763
|
+
};
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
/** 触发宿主震动反馈。 */
|
|
767
|
+
function vibrate(requester, options) {
|
|
768
|
+
return requester.request(DEVICE_VIBRATE_METHOD, options ?? {});
|
|
769
|
+
}
|
|
770
|
+
/** 写入系统文本剪贴板。 */
|
|
771
|
+
function setClipboard(requester, options) {
|
|
772
|
+
return requester.request(DEVICE_SET_CLIPBOARD_METHOD, options);
|
|
773
|
+
}
|
|
774
|
+
/** 创建设备能力模块。 */
|
|
775
|
+
function createDeviceModule(requester) {
|
|
776
|
+
return {
|
|
777
|
+
vibrate: options => vibrate(requester, options),
|
|
778
|
+
setClipboard: options => setClipboard(requester, options),
|
|
779
|
+
};
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
/** 请求宿主关闭当前小程序容器。 */
|
|
783
|
+
function close(requester) {
|
|
784
|
+
return requester.request(NAVIGATION_CLOSE_METHOD);
|
|
785
|
+
}
|
|
786
|
+
/** 请求宿主重载当前小程序容器。 */
|
|
787
|
+
function reload(requester) {
|
|
788
|
+
return requester.request(NAVIGATION_RELOAD_METHOD);
|
|
789
|
+
}
|
|
790
|
+
/** 创建导航能力模块。 */
|
|
791
|
+
function createNavigationModule(requester) {
|
|
792
|
+
return {
|
|
793
|
+
close: () => close(requester),
|
|
794
|
+
reload: () => reload(requester),
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
|
|
731
798
|
/**
|
|
732
799
|
* 外部小程序 SDK 实例。
|
|
733
800
|
*
|
|
@@ -763,6 +830,12 @@ class MiniProgramSDK {
|
|
|
763
830
|
storage;
|
|
764
831
|
/** 网络请求相关开放能力。 */
|
|
765
832
|
network;
|
|
833
|
+
/** UI 交互相关开放能力。 */
|
|
834
|
+
ui;
|
|
835
|
+
/** 设备相关开放能力。 */
|
|
836
|
+
device;
|
|
837
|
+
/** 导航与容器控制相关开放能力。 */
|
|
838
|
+
navigation;
|
|
766
839
|
constructor(options) {
|
|
767
840
|
this.client = new MiniProgramBridgeClient(options);
|
|
768
841
|
this.auth = createAuthModule(this.client);
|
|
@@ -771,6 +844,9 @@ class MiniProgramSDK {
|
|
|
771
844
|
this.viewport = createViewportModule(this.client);
|
|
772
845
|
this.storage = createStorageModule(this.client);
|
|
773
846
|
this.network = createNetworkModule(this.client);
|
|
847
|
+
this.ui = createUiModule(this.client);
|
|
848
|
+
this.device = createDeviceModule(this.client);
|
|
849
|
+
this.navigation = createNavigationModule(this.client);
|
|
774
850
|
}
|
|
775
851
|
/**
|
|
776
852
|
* 等待 SDK 与父容器完成握手。
|
|
@@ -896,6 +972,22 @@ const storage = {
|
|
|
896
972
|
const network = {
|
|
897
973
|
request: config => getDefaultSDK().network.request(config),
|
|
898
974
|
};
|
|
975
|
+
/** 默认 SDK 实例的 UI 模块。 */
|
|
976
|
+
const ui = {
|
|
977
|
+
showToast: options => getDefaultSDK().ui.showToast(options),
|
|
978
|
+
showLoading: options => getDefaultSDK().ui.showLoading(options),
|
|
979
|
+
hideLoading: () => getDefaultSDK().ui.hideLoading(),
|
|
980
|
+
};
|
|
981
|
+
/** 默认 SDK 实例的 device 模块。 */
|
|
982
|
+
const device = {
|
|
983
|
+
vibrate: options => getDefaultSDK().device.vibrate(options),
|
|
984
|
+
setClipboard: options => getDefaultSDK().device.setClipboard(options),
|
|
985
|
+
};
|
|
986
|
+
/** 默认 SDK 实例的 navigation 模块。 */
|
|
987
|
+
const navigation = {
|
|
988
|
+
close: () => getDefaultSDK().navigation.close(),
|
|
989
|
+
reload: () => getDefaultSDK().navigation.reload(),
|
|
990
|
+
};
|
|
899
991
|
|
|
900
992
|
const hbSDK = {
|
|
901
993
|
ready,
|
|
@@ -907,6 +999,9 @@ const hbSDK = {
|
|
|
907
999
|
viewport,
|
|
908
1000
|
storage,
|
|
909
1001
|
network,
|
|
1002
|
+
ui,
|
|
1003
|
+
device,
|
|
1004
|
+
navigation,
|
|
910
1005
|
};
|
|
911
1006
|
|
|
912
1007
|
exports.HbMiniProgramNetworkError = HbMiniProgramNetworkError;
|
|
@@ -915,11 +1010,14 @@ exports.MiniProgramSDK = MiniProgramSDK;
|
|
|
915
1010
|
exports.auth = auth;
|
|
916
1011
|
exports.createMiniProgramSDK = createMiniProgramSDK;
|
|
917
1012
|
exports.default = hbSDK;
|
|
1013
|
+
exports.device = device;
|
|
1014
|
+
exports.navigation = navigation;
|
|
918
1015
|
exports.network = network;
|
|
919
1016
|
exports.off = off;
|
|
920
1017
|
exports.on = on;
|
|
921
1018
|
exports.ready = ready;
|
|
922
1019
|
exports.share = share;
|
|
923
1020
|
exports.storage = storage;
|
|
1021
|
+
exports.ui = ui;
|
|
924
1022
|
exports.user = user;
|
|
925
1023
|
exports.viewport = viewport;
|
package/dist/index.esm.js
CHANGED
|
@@ -469,6 +469,20 @@ const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
|
|
|
469
469
|
* 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
|
|
470
470
|
*/
|
|
471
471
|
const NETWORK_REQUEST_METHOD = 'network.request';
|
|
472
|
+
/** 展示 toast 能力方法名。 */
|
|
473
|
+
const UI_SHOW_TOAST_METHOD = 'ui.showToast';
|
|
474
|
+
/** 展示全局 loading 能力方法名。 */
|
|
475
|
+
const UI_SHOW_LOADING_METHOD = 'ui.showLoading';
|
|
476
|
+
/** 隐藏全局 loading 能力方法名。 */
|
|
477
|
+
const UI_HIDE_LOADING_METHOD = 'ui.hideLoading';
|
|
478
|
+
/** 震动反馈能力方法名。 */
|
|
479
|
+
const DEVICE_VIBRATE_METHOD = 'device.vibrate';
|
|
480
|
+
/** 写入文本剪贴板能力方法名。 */
|
|
481
|
+
const DEVICE_SET_CLIPBOARD_METHOD = 'device.setClipboard';
|
|
482
|
+
/** 关闭当前小程序容器能力方法名。 */
|
|
483
|
+
const NAVIGATION_CLOSE_METHOD = 'navigation.close';
|
|
484
|
+
/** 重载当前小程序容器能力方法名。 */
|
|
485
|
+
const NAVIGATION_RELOAD_METHOD = 'navigation.reload';
|
|
472
486
|
|
|
473
487
|
/**
|
|
474
488
|
* 唤起登录授权,并在流程返回后刷新用户公开基础资料。
|
|
@@ -724,6 +738,59 @@ function createUserModule(requester) {
|
|
|
724
738
|
};
|
|
725
739
|
}
|
|
726
740
|
|
|
741
|
+
/** 展示 toast。 */
|
|
742
|
+
function showToast(requester, options) {
|
|
743
|
+
return requester.request(UI_SHOW_TOAST_METHOD, options);
|
|
744
|
+
}
|
|
745
|
+
/** 展示全局 loading。 */
|
|
746
|
+
function showLoading(requester, options) {
|
|
747
|
+
return requester.request(UI_SHOW_LOADING_METHOD, options ?? {});
|
|
748
|
+
}
|
|
749
|
+
/** 隐藏全局 loading。 */
|
|
750
|
+
function hideLoading(requester) {
|
|
751
|
+
return requester.request(UI_HIDE_LOADING_METHOD);
|
|
752
|
+
}
|
|
753
|
+
/** 创建 UI 模块。 */
|
|
754
|
+
function createUiModule(requester) {
|
|
755
|
+
return {
|
|
756
|
+
showToast: options => showToast(requester, options),
|
|
757
|
+
showLoading: options => showLoading(requester, options),
|
|
758
|
+
hideLoading: () => hideLoading(requester),
|
|
759
|
+
};
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
/** 触发宿主震动反馈。 */
|
|
763
|
+
function vibrate(requester, options) {
|
|
764
|
+
return requester.request(DEVICE_VIBRATE_METHOD, options ?? {});
|
|
765
|
+
}
|
|
766
|
+
/** 写入系统文本剪贴板。 */
|
|
767
|
+
function setClipboard(requester, options) {
|
|
768
|
+
return requester.request(DEVICE_SET_CLIPBOARD_METHOD, options);
|
|
769
|
+
}
|
|
770
|
+
/** 创建设备能力模块。 */
|
|
771
|
+
function createDeviceModule(requester) {
|
|
772
|
+
return {
|
|
773
|
+
vibrate: options => vibrate(requester, options),
|
|
774
|
+
setClipboard: options => setClipboard(requester, options),
|
|
775
|
+
};
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
/** 请求宿主关闭当前小程序容器。 */
|
|
779
|
+
function close(requester) {
|
|
780
|
+
return requester.request(NAVIGATION_CLOSE_METHOD);
|
|
781
|
+
}
|
|
782
|
+
/** 请求宿主重载当前小程序容器。 */
|
|
783
|
+
function reload(requester) {
|
|
784
|
+
return requester.request(NAVIGATION_RELOAD_METHOD);
|
|
785
|
+
}
|
|
786
|
+
/** 创建导航能力模块。 */
|
|
787
|
+
function createNavigationModule(requester) {
|
|
788
|
+
return {
|
|
789
|
+
close: () => close(requester),
|
|
790
|
+
reload: () => reload(requester),
|
|
791
|
+
};
|
|
792
|
+
}
|
|
793
|
+
|
|
727
794
|
/**
|
|
728
795
|
* 外部小程序 SDK 实例。
|
|
729
796
|
*
|
|
@@ -759,6 +826,12 @@ class MiniProgramSDK {
|
|
|
759
826
|
storage;
|
|
760
827
|
/** 网络请求相关开放能力。 */
|
|
761
828
|
network;
|
|
829
|
+
/** UI 交互相关开放能力。 */
|
|
830
|
+
ui;
|
|
831
|
+
/** 设备相关开放能力。 */
|
|
832
|
+
device;
|
|
833
|
+
/** 导航与容器控制相关开放能力。 */
|
|
834
|
+
navigation;
|
|
762
835
|
constructor(options) {
|
|
763
836
|
this.client = new MiniProgramBridgeClient(options);
|
|
764
837
|
this.auth = createAuthModule(this.client);
|
|
@@ -767,6 +840,9 @@ class MiniProgramSDK {
|
|
|
767
840
|
this.viewport = createViewportModule(this.client);
|
|
768
841
|
this.storage = createStorageModule(this.client);
|
|
769
842
|
this.network = createNetworkModule(this.client);
|
|
843
|
+
this.ui = createUiModule(this.client);
|
|
844
|
+
this.device = createDeviceModule(this.client);
|
|
845
|
+
this.navigation = createNavigationModule(this.client);
|
|
770
846
|
}
|
|
771
847
|
/**
|
|
772
848
|
* 等待 SDK 与父容器完成握手。
|
|
@@ -892,6 +968,22 @@ const storage = {
|
|
|
892
968
|
const network = {
|
|
893
969
|
request: config => getDefaultSDK().network.request(config),
|
|
894
970
|
};
|
|
971
|
+
/** 默认 SDK 实例的 UI 模块。 */
|
|
972
|
+
const ui = {
|
|
973
|
+
showToast: options => getDefaultSDK().ui.showToast(options),
|
|
974
|
+
showLoading: options => getDefaultSDK().ui.showLoading(options),
|
|
975
|
+
hideLoading: () => getDefaultSDK().ui.hideLoading(),
|
|
976
|
+
};
|
|
977
|
+
/** 默认 SDK 实例的 device 模块。 */
|
|
978
|
+
const device = {
|
|
979
|
+
vibrate: options => getDefaultSDK().device.vibrate(options),
|
|
980
|
+
setClipboard: options => getDefaultSDK().device.setClipboard(options),
|
|
981
|
+
};
|
|
982
|
+
/** 默认 SDK 实例的 navigation 模块。 */
|
|
983
|
+
const navigation = {
|
|
984
|
+
close: () => getDefaultSDK().navigation.close(),
|
|
985
|
+
reload: () => getDefaultSDK().navigation.reload(),
|
|
986
|
+
};
|
|
895
987
|
|
|
896
988
|
const hbSDK = {
|
|
897
989
|
ready,
|
|
@@ -903,6 +995,9 @@ const hbSDK = {
|
|
|
903
995
|
viewport,
|
|
904
996
|
storage,
|
|
905
997
|
network,
|
|
998
|
+
ui,
|
|
999
|
+
device,
|
|
1000
|
+
navigation,
|
|
906
1001
|
};
|
|
907
1002
|
|
|
908
|
-
export { HbMiniProgramNetworkError, HbMiniProgramSDKError, MiniProgramSDK, auth, createMiniProgramSDK, hbSDK as default, network, off, on, ready, share, storage, user, viewport };
|
|
1003
|
+
export { HbMiniProgramNetworkError, HbMiniProgramSDKError, MiniProgramSDK, auth, createMiniProgramSDK, hbSDK as default, device, navigation, network, off, on, ready, share, storage, ui, user, viewport };
|
|
@@ -2811,8 +2811,21 @@ function getMiniappManifestVersionError(version) {
|
|
|
2811
2811
|
|
|
2812
2812
|
const MINIAPP_UPLOAD_SCOPE = 'activity';
|
|
2813
2813
|
const ACTIVITY_UPLOAD_KEY_MAX_LENGTH = 64;
|
|
2814
|
+
const USER_MINIPROGRAM_ACCESS_STATUS_API_PATH = '/mall/developer/user_miniprogram/access_status';
|
|
2815
|
+
const LIST_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/list';
|
|
2816
|
+
const CREATE_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/create';
|
|
2817
|
+
const UPDATE_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/update';
|
|
2818
|
+
const DETAIL_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/detail';
|
|
2819
|
+
const USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist';
|
|
2820
|
+
const UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist/update';
|
|
2814
2821
|
const PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH = '/mall/developer/user_miniprogram/version/precheck';
|
|
2815
2822
|
const SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH = '/mall/developer/user_miniprogram/version/submit_audit';
|
|
2823
|
+
const USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH = '/mall/developer/user_miniprogram/version/preview_info';
|
|
2824
|
+
const WITHDRAW_USER_MINIPROGRAM_VERSION_API_PATH = '/mall/developer/user_miniprogram/version/withdraw';
|
|
2825
|
+
const RELEASE_USER_MINIPROGRAM_VERSION_API_PATH = '/mall/developer/user_miniprogram/version/release';
|
|
2826
|
+
const TAKE_DOWN_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/take_down';
|
|
2827
|
+
const REOPEN_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/reopen';
|
|
2828
|
+
const LIST_USER_MINIPROGRAM_VERSION_API_PATH = '/mall/developer/user_miniprogram/version/list';
|
|
2816
2829
|
const FNV_OFFSET = 0x811c9dc5;
|
|
2817
2830
|
const FNV_PRIME = 0x01000193;
|
|
2818
2831
|
function normalizeRelativePath(relativePath) {
|
|
@@ -2872,9 +2885,22 @@ function shouldUploadDistFile(relativePath) {
|
|
|
2872
2885
|
}
|
|
2873
2886
|
|
|
2874
2887
|
exports.ACTIVITY_UPLOAD_KEY_MAX_LENGTH = ACTIVITY_UPLOAD_KEY_MAX_LENGTH;
|
|
2888
|
+
exports.CREATE_USER_MINIPROGRAM_API_PATH = CREATE_USER_MINIPROGRAM_API_PATH;
|
|
2889
|
+
exports.DETAIL_USER_MINIPROGRAM_API_PATH = DETAIL_USER_MINIPROGRAM_API_PATH;
|
|
2890
|
+
exports.LIST_USER_MINIPROGRAM_API_PATH = LIST_USER_MINIPROGRAM_API_PATH;
|
|
2891
|
+
exports.LIST_USER_MINIPROGRAM_VERSION_API_PATH = LIST_USER_MINIPROGRAM_VERSION_API_PATH;
|
|
2875
2892
|
exports.MINIAPP_UPLOAD_SCOPE = MINIAPP_UPLOAD_SCOPE;
|
|
2876
2893
|
exports.PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH = PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH;
|
|
2894
|
+
exports.RELEASE_USER_MINIPROGRAM_VERSION_API_PATH = RELEASE_USER_MINIPROGRAM_VERSION_API_PATH;
|
|
2895
|
+
exports.REOPEN_USER_MINIPROGRAM_API_PATH = REOPEN_USER_MINIPROGRAM_API_PATH;
|
|
2877
2896
|
exports.SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH = SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH;
|
|
2897
|
+
exports.TAKE_DOWN_USER_MINIPROGRAM_API_PATH = TAKE_DOWN_USER_MINIPROGRAM_API_PATH;
|
|
2898
|
+
exports.UPDATE_USER_MINIPROGRAM_API_PATH = UPDATE_USER_MINIPROGRAM_API_PATH;
|
|
2899
|
+
exports.UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH;
|
|
2900
|
+
exports.USER_MINIPROGRAM_ACCESS_STATUS_API_PATH = USER_MINIPROGRAM_ACCESS_STATUS_API_PATH;
|
|
2901
|
+
exports.USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH;
|
|
2902
|
+
exports.USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH = USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH;
|
|
2903
|
+
exports.WITHDRAW_USER_MINIPROGRAM_VERSION_API_PATH = WITHDRAW_USER_MINIPROGRAM_VERSION_API_PATH;
|
|
2878
2904
|
exports.getMiniProgramUploadAlias = getMiniProgramUploadAlias;
|
|
2879
2905
|
exports.getMiniappUploadKey = getMiniappUploadKey;
|
|
2880
2906
|
exports.isValidVersion = isValidMiniappManifestVersion;
|
|
@@ -2809,8 +2809,21 @@ function getMiniappManifestVersionError(version) {
|
|
|
2809
2809
|
|
|
2810
2810
|
const MINIAPP_UPLOAD_SCOPE = 'activity';
|
|
2811
2811
|
const ACTIVITY_UPLOAD_KEY_MAX_LENGTH = 64;
|
|
2812
|
+
const USER_MINIPROGRAM_ACCESS_STATUS_API_PATH = '/mall/developer/user_miniprogram/access_status';
|
|
2813
|
+
const LIST_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/list';
|
|
2814
|
+
const CREATE_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/create';
|
|
2815
|
+
const UPDATE_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/update';
|
|
2816
|
+
const DETAIL_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/detail';
|
|
2817
|
+
const USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist';
|
|
2818
|
+
const UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist/update';
|
|
2812
2819
|
const PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH = '/mall/developer/user_miniprogram/version/precheck';
|
|
2813
2820
|
const SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH = '/mall/developer/user_miniprogram/version/submit_audit';
|
|
2821
|
+
const USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH = '/mall/developer/user_miniprogram/version/preview_info';
|
|
2822
|
+
const WITHDRAW_USER_MINIPROGRAM_VERSION_API_PATH = '/mall/developer/user_miniprogram/version/withdraw';
|
|
2823
|
+
const RELEASE_USER_MINIPROGRAM_VERSION_API_PATH = '/mall/developer/user_miniprogram/version/release';
|
|
2824
|
+
const TAKE_DOWN_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/take_down';
|
|
2825
|
+
const REOPEN_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/reopen';
|
|
2826
|
+
const LIST_USER_MINIPROGRAM_VERSION_API_PATH = '/mall/developer/user_miniprogram/version/list';
|
|
2814
2827
|
const FNV_OFFSET = 0x811c9dc5;
|
|
2815
2828
|
const FNV_PRIME = 0x01000193;
|
|
2816
2829
|
function normalizeRelativePath(relativePath) {
|
|
@@ -2869,4 +2882,4 @@ function shouldUploadDistFile(relativePath) {
|
|
|
2869
2882
|
return true;
|
|
2870
2883
|
}
|
|
2871
2884
|
|
|
2872
|
-
export { ACTIVITY_UPLOAD_KEY_MAX_LENGTH, MINIAPP_UPLOAD_SCOPE, PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH, SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH, getMiniProgramUploadAlias, getMiniappUploadKey, isValidMiniappManifestVersion as isValidVersion, normalizeRelativePath, relativePathContainsNodeModulesSegment, shouldUploadDistFile, validateUploadPaths };
|
|
2885
|
+
export { ACTIVITY_UPLOAD_KEY_MAX_LENGTH, CREATE_USER_MINIPROGRAM_API_PATH, DETAIL_USER_MINIPROGRAM_API_PATH, LIST_USER_MINIPROGRAM_API_PATH, LIST_USER_MINIPROGRAM_VERSION_API_PATH, MINIAPP_UPLOAD_SCOPE, PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH, RELEASE_USER_MINIPROGRAM_VERSION_API_PATH, REOPEN_USER_MINIPROGRAM_API_PATH, SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH, TAKE_DOWN_USER_MINIPROGRAM_API_PATH, UPDATE_USER_MINIPROGRAM_API_PATH, UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, USER_MINIPROGRAM_ACCESS_STATUS_API_PATH, USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH, WITHDRAW_USER_MINIPROGRAM_VERSION_API_PATH, getMiniProgramUploadAlias, getMiniappUploadKey, isValidMiniappManifestVersion as isValidVersion, normalizeRelativePath, relativePathContainsNodeModulesSegment, shouldUploadDistFile, validateUploadPaths };
|
package/dist/protocol.cjs.js
CHANGED
|
@@ -89,6 +89,20 @@ const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
|
|
|
89
89
|
* 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
|
|
90
90
|
*/
|
|
91
91
|
const NETWORK_REQUEST_METHOD = 'network.request';
|
|
92
|
+
/** 展示 toast 能力方法名。 */
|
|
93
|
+
const UI_SHOW_TOAST_METHOD = 'ui.showToast';
|
|
94
|
+
/** 展示全局 loading 能力方法名。 */
|
|
95
|
+
const UI_SHOW_LOADING_METHOD = 'ui.showLoading';
|
|
96
|
+
/** 隐藏全局 loading 能力方法名。 */
|
|
97
|
+
const UI_HIDE_LOADING_METHOD = 'ui.hideLoading';
|
|
98
|
+
/** 震动反馈能力方法名。 */
|
|
99
|
+
const DEVICE_VIBRATE_METHOD = 'device.vibrate';
|
|
100
|
+
/** 写入文本剪贴板能力方法名。 */
|
|
101
|
+
const DEVICE_SET_CLIPBOARD_METHOD = 'device.setClipboard';
|
|
102
|
+
/** 关闭当前小程序容器能力方法名。 */
|
|
103
|
+
const NAVIGATION_CLOSE_METHOD = 'navigation.close';
|
|
104
|
+
/** 重载当前小程序容器能力方法名。 */
|
|
105
|
+
const NAVIGATION_RELOAD_METHOD = 'navigation.reload';
|
|
92
106
|
/**
|
|
93
107
|
* 小程序开放能力目录。
|
|
94
108
|
*
|
|
@@ -159,19 +173,75 @@ const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
|
|
|
159
173
|
permission: 'network.request',
|
|
160
174
|
risk: 'high',
|
|
161
175
|
},
|
|
176
|
+
{
|
|
177
|
+
method: UI_SHOW_TOAST_METHOD,
|
|
178
|
+
module: 'ui',
|
|
179
|
+
capability: UI_SHOW_TOAST_METHOD,
|
|
180
|
+
permission: 'ui.toast',
|
|
181
|
+
risk: 'low',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
method: UI_SHOW_LOADING_METHOD,
|
|
185
|
+
module: 'ui',
|
|
186
|
+
capability: UI_SHOW_LOADING_METHOD,
|
|
187
|
+
permission: 'ui.loading',
|
|
188
|
+
risk: 'low',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
method: UI_HIDE_LOADING_METHOD,
|
|
192
|
+
module: 'ui',
|
|
193
|
+
capability: UI_HIDE_LOADING_METHOD,
|
|
194
|
+
permission: 'ui.loading',
|
|
195
|
+
risk: 'low',
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
method: DEVICE_VIBRATE_METHOD,
|
|
199
|
+
module: 'device',
|
|
200
|
+
capability: DEVICE_VIBRATE_METHOD,
|
|
201
|
+
permission: 'device.vibrate',
|
|
202
|
+
risk: 'low',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
method: DEVICE_SET_CLIPBOARD_METHOD,
|
|
206
|
+
module: 'device',
|
|
207
|
+
capability: DEVICE_SET_CLIPBOARD_METHOD,
|
|
208
|
+
permission: 'device.clipboard.write',
|
|
209
|
+
risk: 'medium',
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
method: NAVIGATION_CLOSE_METHOD,
|
|
213
|
+
module: 'navigation',
|
|
214
|
+
capability: NAVIGATION_CLOSE_METHOD,
|
|
215
|
+
permission: 'navigation.close',
|
|
216
|
+
risk: 'medium',
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
method: NAVIGATION_RELOAD_METHOD,
|
|
220
|
+
module: 'navigation',
|
|
221
|
+
capability: NAVIGATION_RELOAD_METHOD,
|
|
222
|
+
permission: 'navigation.reload',
|
|
223
|
+
risk: 'medium',
|
|
224
|
+
},
|
|
162
225
|
];
|
|
163
226
|
|
|
164
227
|
exports.AUTH_LOGIN_METHOD = AUTH_LOGIN_METHOD;
|
|
228
|
+
exports.DEVICE_SET_CLIPBOARD_METHOD = DEVICE_SET_CLIPBOARD_METHOD;
|
|
229
|
+
exports.DEVICE_VIBRATE_METHOD = DEVICE_VIBRATE_METHOD;
|
|
165
230
|
exports.MINI_PROGRAM_BRIDGE_NONCE_PARAM = MINI_PROGRAM_BRIDGE_NONCE_PARAM;
|
|
166
231
|
exports.MINI_PROGRAM_MESSAGE_NAMESPACE = MINI_PROGRAM_MESSAGE_NAMESPACE;
|
|
167
232
|
exports.MINI_PROGRAM_MESSAGE_VERSION = MINI_PROGRAM_MESSAGE_VERSION;
|
|
168
233
|
exports.MINI_PROGRAM_PROTOCOL_CAPABILITIES = MINI_PROGRAM_PROTOCOL_CAPABILITIES;
|
|
234
|
+
exports.NAVIGATION_CLOSE_METHOD = NAVIGATION_CLOSE_METHOD;
|
|
235
|
+
exports.NAVIGATION_RELOAD_METHOD = NAVIGATION_RELOAD_METHOD;
|
|
169
236
|
exports.NETWORK_REQUEST_METHOD = NETWORK_REQUEST_METHOD;
|
|
170
237
|
exports.SDK_HANDSHAKE_METHOD = SDK_HANDSHAKE_METHOD;
|
|
171
238
|
exports.SHARE_SCREENSHOT_METHOD = SHARE_SCREENSHOT_METHOD;
|
|
172
239
|
exports.SHARE_SHOW_SHARE_MENU_METHOD = SHARE_SHOW_SHARE_MENU_METHOD;
|
|
173
240
|
exports.STORAGE_GET_STORAGE_METHOD = STORAGE_GET_STORAGE_METHOD;
|
|
174
241
|
exports.STORAGE_SET_STORAGE_METHOD = STORAGE_SET_STORAGE_METHOD;
|
|
242
|
+
exports.UI_HIDE_LOADING_METHOD = UI_HIDE_LOADING_METHOD;
|
|
243
|
+
exports.UI_SHOW_LOADING_METHOD = UI_SHOW_LOADING_METHOD;
|
|
244
|
+
exports.UI_SHOW_TOAST_METHOD = UI_SHOW_TOAST_METHOD;
|
|
175
245
|
exports.USER_GET_INFO_METHOD = USER_GET_INFO_METHOD;
|
|
176
246
|
exports.VIEWPORT_GET_WINDOW_INFO_METHOD = VIEWPORT_GET_WINDOW_INFO_METHOD;
|
|
177
247
|
exports.VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD = VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD;
|
package/dist/protocol.esm.js
CHANGED
|
@@ -87,6 +87,20 @@ const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
|
|
|
87
87
|
* 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
|
|
88
88
|
*/
|
|
89
89
|
const NETWORK_REQUEST_METHOD = 'network.request';
|
|
90
|
+
/** 展示 toast 能力方法名。 */
|
|
91
|
+
const UI_SHOW_TOAST_METHOD = 'ui.showToast';
|
|
92
|
+
/** 展示全局 loading 能力方法名。 */
|
|
93
|
+
const UI_SHOW_LOADING_METHOD = 'ui.showLoading';
|
|
94
|
+
/** 隐藏全局 loading 能力方法名。 */
|
|
95
|
+
const UI_HIDE_LOADING_METHOD = 'ui.hideLoading';
|
|
96
|
+
/** 震动反馈能力方法名。 */
|
|
97
|
+
const DEVICE_VIBRATE_METHOD = 'device.vibrate';
|
|
98
|
+
/** 写入文本剪贴板能力方法名。 */
|
|
99
|
+
const DEVICE_SET_CLIPBOARD_METHOD = 'device.setClipboard';
|
|
100
|
+
/** 关闭当前小程序容器能力方法名。 */
|
|
101
|
+
const NAVIGATION_CLOSE_METHOD = 'navigation.close';
|
|
102
|
+
/** 重载当前小程序容器能力方法名。 */
|
|
103
|
+
const NAVIGATION_RELOAD_METHOD = 'navigation.reload';
|
|
90
104
|
/**
|
|
91
105
|
* 小程序开放能力目录。
|
|
92
106
|
*
|
|
@@ -157,6 +171,55 @@ const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
|
|
|
157
171
|
permission: 'network.request',
|
|
158
172
|
risk: 'high',
|
|
159
173
|
},
|
|
174
|
+
{
|
|
175
|
+
method: UI_SHOW_TOAST_METHOD,
|
|
176
|
+
module: 'ui',
|
|
177
|
+
capability: UI_SHOW_TOAST_METHOD,
|
|
178
|
+
permission: 'ui.toast',
|
|
179
|
+
risk: 'low',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
method: UI_SHOW_LOADING_METHOD,
|
|
183
|
+
module: 'ui',
|
|
184
|
+
capability: UI_SHOW_LOADING_METHOD,
|
|
185
|
+
permission: 'ui.loading',
|
|
186
|
+
risk: 'low',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
method: UI_HIDE_LOADING_METHOD,
|
|
190
|
+
module: 'ui',
|
|
191
|
+
capability: UI_HIDE_LOADING_METHOD,
|
|
192
|
+
permission: 'ui.loading',
|
|
193
|
+
risk: 'low',
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
method: DEVICE_VIBRATE_METHOD,
|
|
197
|
+
module: 'device',
|
|
198
|
+
capability: DEVICE_VIBRATE_METHOD,
|
|
199
|
+
permission: 'device.vibrate',
|
|
200
|
+
risk: 'low',
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
method: DEVICE_SET_CLIPBOARD_METHOD,
|
|
204
|
+
module: 'device',
|
|
205
|
+
capability: DEVICE_SET_CLIPBOARD_METHOD,
|
|
206
|
+
permission: 'device.clipboard.write',
|
|
207
|
+
risk: 'medium',
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
method: NAVIGATION_CLOSE_METHOD,
|
|
211
|
+
module: 'navigation',
|
|
212
|
+
capability: NAVIGATION_CLOSE_METHOD,
|
|
213
|
+
permission: 'navigation.close',
|
|
214
|
+
risk: 'medium',
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
method: NAVIGATION_RELOAD_METHOD,
|
|
218
|
+
module: 'navigation',
|
|
219
|
+
capability: NAVIGATION_RELOAD_METHOD,
|
|
220
|
+
permission: 'navigation.reload',
|
|
221
|
+
risk: 'medium',
|
|
222
|
+
},
|
|
160
223
|
];
|
|
161
224
|
|
|
162
|
-
export { AUTH_LOGIN_METHOD, MINI_PROGRAM_BRIDGE_NONCE_PARAM, MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_MESSAGE_VERSION, MINI_PROGRAM_PROTOCOL_CAPABILITIES, NETWORK_REQUEST_METHOD, SDK_HANDSHAKE_METHOD, SHARE_SCREENSHOT_METHOD, SHARE_SHOW_SHARE_MENU_METHOD, STORAGE_GET_STORAGE_METHOD, STORAGE_SET_STORAGE_METHOD, USER_GET_INFO_METHOD, VIEWPORT_GET_WINDOW_INFO_METHOD, VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD, isMiniProgramBridgeMessage };
|
|
225
|
+
export { AUTH_LOGIN_METHOD, DEVICE_SET_CLIPBOARD_METHOD, DEVICE_VIBRATE_METHOD, MINI_PROGRAM_BRIDGE_NONCE_PARAM, MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_MESSAGE_VERSION, MINI_PROGRAM_PROTOCOL_CAPABILITIES, NAVIGATION_CLOSE_METHOD, NAVIGATION_RELOAD_METHOD, NETWORK_REQUEST_METHOD, SDK_HANDSHAKE_METHOD, SHARE_SCREENSHOT_METHOD, SHARE_SHOW_SHARE_MENU_METHOD, STORAGE_GET_STORAGE_METHOD, STORAGE_SET_STORAGE_METHOD, UI_HIDE_LOADING_METHOD, UI_SHOW_LOADING_METHOD, UI_SHOW_TOAST_METHOD, USER_GET_INFO_METHOD, VIEWPORT_GET_WINDOW_INFO_METHOD, VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD, isMiniProgramBridgeMessage };
|
|
@@ -21,7 +21,7 @@ npm run deploy
|
|
|
21
21
|
|
|
22
22
|
- `npm run dev`:启动本地 Vite 服务和 `hb-sdk` 内置 mock runtime host,适合本地调试 SDK 能力;调试页内可点击按钮在 Mac 版 APP 中启动同一页面,也可以选择局域网网卡后用手机小黑盒 APP 扫码调试。手机需要与电脑处在同一局域网,并使用支持小程序调试壳的新版小黑盒 APP。Codex、VSCode 等内嵌浏览器可能无法唤起系统 APP,需要时请在系统浏览器中打开同一个调试页后重试。
|
|
23
23
|
- `npm run build`:先执行 TypeScript 检查,再构建生产产物。
|
|
24
|
-
- `npm run deploy -- --release-note "..."
|
|
24
|
+
- `npm run deploy -- --release-note "..."`:运行 `hb-sdk remote deploy`,构建、上传并提交当前小程序版本审核。部署前需要先通过 `hb-sdk remote create --name "..."` 创建并绑定远端小程序,或用 `hb-sdk remote bind <mini-program-id>` 绑定已有小程序,并执行过 `npx hb-sdk login`;默认审核通过后用 `hb-sdk remote versions` 查看状态,再用 `hb-sdk remote release <version>` 发布,如需审核通过后自动发布可追加 `--auto-publish`。顶层 `hb-sdk deploy` 已删除,不再作为兼容别名保留。
|
|
25
25
|
|
|
26
26
|
## 更多能力
|
|
27
27
|
|
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -48,24 +48,29 @@ Apply these instructions when writing, reviewing, or debugging code that consume
|
|
|
48
48
|
|
|
49
49
|
1. Use `hb-sdk create <project-name>` to scaffold a standalone external mini-program template.
|
|
50
50
|
2. Use `hb-sdk dev` for local browser debugging through the built-in mock runtime host.
|
|
51
|
-
3. Use `hb-sdk
|
|
52
|
-
4. Use `hb-sdk
|
|
53
|
-
5.
|
|
54
|
-
6.
|
|
55
|
-
7.
|
|
56
|
-
8.
|
|
57
|
-
9.
|
|
58
|
-
10.
|
|
59
|
-
11.
|
|
60
|
-
12.
|
|
61
|
-
13.
|
|
62
|
-
14. Use `hb-sdk
|
|
63
|
-
15. Do not
|
|
64
|
-
16.
|
|
65
|
-
17.
|
|
66
|
-
18.
|
|
67
|
-
19.
|
|
68
|
-
20. Do not
|
|
51
|
+
3. Use `hb-sdk remote ...` for developer-owned remote mini-program management. Top-level `hb-sdk deploy` has been hard-cut and must not be recommended as a compatibility alias.
|
|
52
|
+
4. Use `hb-sdk remote create --name <name>` to create a remote mini-program and bind the returned id into `package.json.heybox.miniProgramId`; use `hb-sdk remote bind <mini-program-id>` to bind an existing remote mini-program after manageability is verified.
|
|
53
|
+
5. Use `hb-sdk remote info`, `hb-sdk remote update`, `hb-sdk remote list`, `hb-sdk remote access`, `hb-sdk remote versions`, `hb-sdk remote preview <version>`, and `hb-sdk remote allowlist ...` for read/basic/preview management workflows. Discovery commands may show multiple remote mini-programs, but write commands target the current project binding rather than arbitrary ids.
|
|
54
|
+
6. Use `hb-sdk remote deploy --release-note <text>` to build, upload, and submit the current project for audit. It reads `package.json.heybox.miniProgramId`, prechecks `package.json.version` before build, runs the project's `build` script via the package manager auto-detected by lockfile, uploads `dist/` to CDN (skipping `manifest.json`, `.DS_Store`, `.map`), then calls the submit-audit API.
|
|
55
|
+
7. Use `hb-sdk remote deploy --skip-build --release-note <text>` only when the `dist/` directory is already prepared by an upstream CI stage. In this mode the CLI reads `dist/manifest.json.version` before precheck. Missing `dist/manifest.json` or `dist/index.html` aborts the run.
|
|
56
|
+
8. Always provide a concise release note before deploy. Non-interactive environments must pass `--release-note`; interactive terminals may prompt for it. The default is manual release after approval with `hb-sdk remote release <version>`; use `--auto-publish` when the audited version should automatically release after approval.
|
|
57
|
+
9. Use `hb-sdk remote release <version>`, `hb-sdk remote withdraw <version>`, `hb-sdk remote take-down`, and `hb-sdk remote reopen` for dangerous remote changes. Interactive terminals should confirm after showing enough context; non-interactive environments must pass `--yes`.
|
|
58
|
+
10. For internal test/staging backend operations, use origin-only custom URLs: `HB_SDK_API_BASE_URL` or `hb-sdk remote ... --api-base-url <url>` for remote platform APIs, and `HB_SDK_LOGIN_BASE_URL` or `hb-sdk login --login-base-url <url>` for browser login. CLI flags override env vars. API base URLs must be Heybox trusted HTTPS origins by default; use `--allow-unsafe-api-base-url` or `HB_SDK_ALLOW_UNSAFE_API_BASE_URL=1` only for local backend debugging. Do not include path, query, or hash in these URLs.
|
|
59
|
+
11. For development routing or gray validation, configure `packages/hb-sdk/src/cli/config.ts` with `@heybox/hb-types` `RylaiServiceTagConfig` (`default_tag` / path-specific `special_tag`) to attach `x-rylai-service-tag` and the matching `special_tag` query parameter to Heybox backend API requests.
|
|
60
|
+
12. If a remote command targets a custom login environment, pass the same `--login-base-url` or `HB_SDK_LOGIN_BASE_URL` used for `hb-sdk login`; remote commands reject cached CLI login state from a different login origin.
|
|
61
|
+
13. Add `--verbose` / `-v` only when diagnosing failures; default CLI errors are intentionally concise, while verbose output includes backend envelope, HTTP status, trace fields, raw body, or original submit-audit failure details.
|
|
62
|
+
14. Use `--json` for script consumption of `hb-sdk remote` commands. With `--json`, stdout must contain exactly one JSON object; progress, warnings, update reminders, and verbose diagnostics must not pollute stdout.
|
|
63
|
+
15. Do not expect custom base URLs to affect `hb-sdk doctor`, npm latest checks, or mock-host `network.request()`.
|
|
64
|
+
16. Use the Mock runtime host's "在 Mac 版 APP 中启动" button for Mac App debugging, or the "Mobile App" QR code after selecting a LAN interface for phone App debugging; the phone must be on the same LAN and use a Heybox App version that supports the mini-program dev shell.
|
|
65
|
+
17. Use `--port`, `--mock-port`, and `--no-open` when the default Vite/mock ports or browser opening behavior need to be controlled.
|
|
66
|
+
18. Use `hb-sdk login`, `hb-sdk login status`, and `hb-sdk login clear` only for the CLI's own Heybox auth cache. Keep `hb-sdk login` top-level; it is not a remote mini-program command.
|
|
67
|
+
19. Use `hb-sdk doctor` to diagnose whether the local `hb-sdk` skill matches the installed SDK and remote latest skill metadata.
|
|
68
|
+
20. Do not use `hb-sdk doctor` to auto-install skills; when installation or refresh is needed, tell the user to run `npx skills add https://open.xiaoheihe.cn/agent-skills/hb-sdk`.
|
|
69
|
+
21. If doctor reports `SDK_MISMATCH`, upgrade `@heybox/hb-sdk@latest` before reinstalling the skill.
|
|
70
|
+
22. Do not treat CLI login cache as iframe SDK login state; it does not change `auth.login()`, `user.getInfo()`, `network.request()`, or mock-user behavior.
|
|
71
|
+
23. Keep the CLI and mock runtime under `@heybox/hb-sdk`; do not create or revive a separate mock runtime package.
|
|
72
|
+
24. Do not pass `mini_program_id` as a CLI flag or environment variable; it must come from `package.json.heybox.miniProgramId`.
|
|
73
|
+
25. Do not import deploy / upload internals from outside the CLI; the only externally consumable subpath for publish-pipeline helpers is `@heybox/hb-sdk/miniapp-publish`.
|
|
69
74
|
|
|
70
75
|
## Step 6: Preserve capability boundaries
|
|
71
76
|
|