@heybox/hb-sdk 0.2.0-alpha.0 → 0.2.0-alpha.1

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.
Files changed (40) hide show
  1. package/README.md +142 -468
  2. package/bin/hb-sdk.cjs +1 -1
  3. package/dist/cli.cjs +660 -182
  4. package/dist/devtools/mock-host/index.html +13 -387
  5. package/dist/devtools/mock-host/main.js +975 -0
  6. package/dist/index.cjs.js +50 -63
  7. package/dist/index.esm.js +51 -50
  8. package/dist/protocol.cjs.js +72 -13
  9. package/dist/protocol.esm.js +72 -14
  10. package/dist/templates/vue3-vite-ts/README.md.ejs +1 -5
  11. package/dist/templates/vue3-vite-ts/package.json.ejs +0 -1
  12. package/package.json +3 -1
  13. package/skill/SKILL.md +95 -0
  14. package/skill/references/api-protocol.md +135 -0
  15. package/skill/references/api-root.md +346 -0
  16. package/skill/references/cli.md +360 -0
  17. package/skill/references/examples.md +107 -0
  18. package/skill/references/llms-index.md +44 -0
  19. package/skill/references/recipes.md +374 -0
  20. package/skill/references/safety-boundaries.md +28 -0
  21. package/skill/references/smoke-evaluation.md +24 -0
  22. package/skill/scripts/check-references.mjs +14 -0
  23. package/skill/scripts/package-skill.mjs +60 -0
  24. package/skill/scripts/package-skill.sh +6 -0
  25. package/skill/scripts/skill-metadata.mjs +74 -0
  26. package/skill/scripts/sync-references.mjs +541 -0
  27. package/skill/scripts/validate-skill.mjs +233 -0
  28. package/skill/skill.json +11 -0
  29. package/types/index.d.ts +8 -6
  30. package/types/modules/auth/index.d.ts +2 -9
  31. package/types/modules/network/index.d.ts +6 -11
  32. package/types/modules/share/index.d.ts +3 -9
  33. package/types/modules/share/screenshot.d.ts +1 -7
  34. package/types/modules/share/show-share-menu.d.ts +1 -7
  35. package/types/modules/storage/index.d.ts +2 -16
  36. package/types/modules/user/get-info.d.ts +1 -7
  37. package/types/modules/user/index.d.ts +2 -8
  38. package/types/modules/viewport/index.d.ts +2 -9
  39. package/types/protocol/capabilities.d.ts +180 -0
  40. package/types/protocol.d.ts +8 -13
package/dist/index.cjs.js CHANGED
@@ -416,6 +416,56 @@ class MiniProgramBridgeClient {
416
416
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
417
417
  */
418
418
  const AUTH_LOGIN_METHOD = 'auth.login';
419
+ /**
420
+ * 用户信息能力方法名。
421
+ *
422
+ * @remarks
423
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
424
+ */
425
+ const USER_GET_INFO_METHOD = 'user.getInfo';
426
+ /**
427
+ * 展示分享面板能力方法名。
428
+ *
429
+ * @remarks
430
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
431
+ */
432
+ const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
433
+ /**
434
+ * 截图分享能力方法名。
435
+ *
436
+ * @remarks
437
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
438
+ */
439
+ const SHARE_SCREENSHOT_METHOD = 'share.screenshot';
440
+ /**
441
+ * 视口窗口信息能力方法名。
442
+ *
443
+ * @remarks
444
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
445
+ */
446
+ const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
447
+ /**
448
+ * 读取小程序隔离 storage 能力方法名。
449
+ *
450
+ * @remarks
451
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
452
+ */
453
+ const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
454
+ /**
455
+ * 写入小程序隔离 storage 能力方法名。
456
+ *
457
+ * @remarks
458
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
459
+ */
460
+ const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
461
+ /**
462
+ * 发起网络请求能力方法名。
463
+ *
464
+ * @remarks
465
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
466
+ */
467
+ const NETWORK_REQUEST_METHOD = 'network.request';
468
+
419
469
  /**
420
470
  * 唤起登录授权,并在流程返回后刷新用户公开基础资料。
421
471
  *
@@ -441,13 +491,6 @@ function createAuthModule(requester) {
441
491
  };
442
492
  }
443
493
 
444
- /**
445
- * 截图分享能力方法名。
446
- *
447
- * @remarks
448
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
449
- */
450
- const SHARE_SCREENSHOT_METHOD = 'share.screenshot';
451
494
  /**
452
495
  * 截图并唤起分享。
453
496
  *
@@ -460,13 +503,6 @@ function screenshot(requester, options) {
460
503
  return requester.request(SHARE_SCREENSHOT_METHOD, options);
461
504
  }
462
505
 
463
- /**
464
- * 展示分享面板能力方法名。
465
- *
466
- * @remarks
467
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
468
- */
469
- const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
470
506
  /**
471
507
  * 展示基础分享面板。
472
508
  *
@@ -492,20 +528,6 @@ function createShareModule(requester) {
492
528
  };
493
529
  }
494
530
 
495
- /**
496
- * 读取小程序隔离 storage 能力方法名。
497
- *
498
- * @remarks
499
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
500
- */
501
- const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
502
- /**
503
- * 写入小程序隔离 storage 能力方法名。
504
- *
505
- * @remarks
506
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
507
- */
508
- const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
509
531
  /**
510
532
  * 获取小程序隔离 storage。
511
533
  *
@@ -541,13 +563,6 @@ function createStorageModule(requester) {
541
563
  };
542
564
  }
543
565
 
544
- /**
545
- * 发起网络请求能力方法名。
546
- *
547
- * @remarks
548
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
549
- */
550
- const NETWORK_REQUEST_METHOD = 'network.request';
551
566
  const DEFAULT_VALIDATE_STATUS = status => status >= 200 && status < 300;
552
567
  function isPlainObject(value) {
553
568
  return Object.prototype.toString.call(value) === '[object Object]';
@@ -644,13 +659,6 @@ function createNetworkModule(requester) {
644
659
  };
645
660
  }
646
661
 
647
- /**
648
- * 视口窗口信息能力方法名。
649
- *
650
- * @remarks
651
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
652
- */
653
- const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
654
662
  /**
655
663
  * 获取当前小程序窗口信息。
656
664
  *
@@ -673,13 +681,6 @@ function createViewportModule(requester) {
673
681
  };
674
682
  }
675
683
 
676
- /**
677
- * 用户信息能力方法名。
678
- *
679
- * @remarks
680
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
681
- */
682
- const USER_GET_INFO_METHOD = 'user.getInfo';
683
684
  /**
684
685
  * 获取当前访问小程序用户的公开基础资料。
685
686
  *
@@ -903,28 +904,14 @@ exports.STORAGE_SET_STORAGE_METHOD = STORAGE_SET_STORAGE_METHOD;
903
904
  exports.USER_GET_INFO_METHOD = USER_GET_INFO_METHOD;
904
905
  exports.VIEWPORT_GET_WINDOW_INFO_METHOD = VIEWPORT_GET_WINDOW_INFO_METHOD;
905
906
  exports.auth = auth;
906
- exports.createAuthModule = createAuthModule;
907
907
  exports.createMiniProgramSDK = createMiniProgramSDK;
908
- exports.createNetworkModule = createNetworkModule;
909
- exports.createShareModule = createShareModule;
910
- exports.createStorageModule = createStorageModule;
911
- exports.createUserModule = createUserModule;
912
- exports.createViewportModule = createViewportModule;
913
908
  exports.default = hbSDK;
914
- exports.getInfo = getInfo;
915
- exports.getStorage = getStorage;
916
- exports.getWindowInfo = getWindowInfo;
917
909
  exports.isMiniProgramBridgeMessage = isMiniProgramBridgeMessage;
918
- exports.login = login;
919
910
  exports.network = network;
920
911
  exports.off = off;
921
912
  exports.on = on;
922
913
  exports.ready = ready;
923
- exports.request = request;
924
- exports.screenshot = screenshot;
925
- exports.setStorage = setStorage;
926
914
  exports.share = share;
927
- exports.showShareMenu = showShareMenu;
928
915
  exports.storage = storage;
929
916
  exports.user = user;
930
917
  exports.viewport = viewport;
package/dist/index.esm.js CHANGED
@@ -412,6 +412,56 @@ class MiniProgramBridgeClient {
412
412
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
413
413
  */
414
414
  const AUTH_LOGIN_METHOD = 'auth.login';
415
+ /**
416
+ * 用户信息能力方法名。
417
+ *
418
+ * @remarks
419
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
420
+ */
421
+ const USER_GET_INFO_METHOD = 'user.getInfo';
422
+ /**
423
+ * 展示分享面板能力方法名。
424
+ *
425
+ * @remarks
426
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
427
+ */
428
+ const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
429
+ /**
430
+ * 截图分享能力方法名。
431
+ *
432
+ * @remarks
433
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
434
+ */
435
+ const SHARE_SCREENSHOT_METHOD = 'share.screenshot';
436
+ /**
437
+ * 视口窗口信息能力方法名。
438
+ *
439
+ * @remarks
440
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
441
+ */
442
+ const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
443
+ /**
444
+ * 读取小程序隔离 storage 能力方法名。
445
+ *
446
+ * @remarks
447
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
448
+ */
449
+ const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
450
+ /**
451
+ * 写入小程序隔离 storage 能力方法名。
452
+ *
453
+ * @remarks
454
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
455
+ */
456
+ const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
457
+ /**
458
+ * 发起网络请求能力方法名。
459
+ *
460
+ * @remarks
461
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
462
+ */
463
+ const NETWORK_REQUEST_METHOD = 'network.request';
464
+
415
465
  /**
416
466
  * 唤起登录授权,并在流程返回后刷新用户公开基础资料。
417
467
  *
@@ -437,13 +487,6 @@ function createAuthModule(requester) {
437
487
  };
438
488
  }
439
489
 
440
- /**
441
- * 截图分享能力方法名。
442
- *
443
- * @remarks
444
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
445
- */
446
- const SHARE_SCREENSHOT_METHOD = 'share.screenshot';
447
490
  /**
448
491
  * 截图并唤起分享。
449
492
  *
@@ -456,13 +499,6 @@ function screenshot(requester, options) {
456
499
  return requester.request(SHARE_SCREENSHOT_METHOD, options);
457
500
  }
458
501
 
459
- /**
460
- * 展示分享面板能力方法名。
461
- *
462
- * @remarks
463
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
464
- */
465
- const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
466
502
  /**
467
503
  * 展示基础分享面板。
468
504
  *
@@ -488,20 +524,6 @@ function createShareModule(requester) {
488
524
  };
489
525
  }
490
526
 
491
- /**
492
- * 读取小程序隔离 storage 能力方法名。
493
- *
494
- * @remarks
495
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
496
- */
497
- const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
498
- /**
499
- * 写入小程序隔离 storage 能力方法名。
500
- *
501
- * @remarks
502
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
503
- */
504
- const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
505
527
  /**
506
528
  * 获取小程序隔离 storage。
507
529
  *
@@ -537,13 +559,6 @@ function createStorageModule(requester) {
537
559
  };
538
560
  }
539
561
 
540
- /**
541
- * 发起网络请求能力方法名。
542
- *
543
- * @remarks
544
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
545
- */
546
- const NETWORK_REQUEST_METHOD = 'network.request';
547
562
  const DEFAULT_VALIDATE_STATUS = status => status >= 200 && status < 300;
548
563
  function isPlainObject(value) {
549
564
  return Object.prototype.toString.call(value) === '[object Object]';
@@ -640,13 +655,6 @@ function createNetworkModule(requester) {
640
655
  };
641
656
  }
642
657
 
643
- /**
644
- * 视口窗口信息能力方法名。
645
- *
646
- * @remarks
647
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
648
- */
649
- const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
650
658
  /**
651
659
  * 获取当前小程序窗口信息。
652
660
  *
@@ -669,13 +677,6 @@ function createViewportModule(requester) {
669
677
  };
670
678
  }
671
679
 
672
- /**
673
- * 用户信息能力方法名。
674
- *
675
- * @remarks
676
- * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
677
- */
678
- const USER_GET_INFO_METHOD = 'user.getInfo';
679
680
  /**
680
681
  * 获取当前访问小程序用户的公开基础资料。
681
682
  *
@@ -883,4 +884,4 @@ const hbSDK = {
883
884
  network,
884
885
  };
885
886
 
886
- export { AUTH_LOGIN_METHOD, HbMiniProgramNetworkError, HbMiniProgramSDKError, MINI_PROGRAM_BRIDGE_NONCE_PARAM, MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_MESSAGE_VERSION, MiniProgramSDK, 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, auth, createAuthModule, createMiniProgramSDK, createNetworkModule, createShareModule, createStorageModule, createUserModule, createViewportModule, hbSDK as default, getInfo, getStorage, getWindowInfo, isMiniProgramBridgeMessage, login, network, off, on, ready, request, screenshot, setStorage, share, showShareMenu, storage, user, viewport };
887
+ export { AUTH_LOGIN_METHOD, HbMiniProgramNetworkError, HbMiniProgramSDKError, MINI_PROGRAM_BRIDGE_NONCE_PARAM, MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_MESSAGE_VERSION, MiniProgramSDK, 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, auth, createMiniProgramSDK, hbSDK as default, isMiniProgramBridgeMessage, network, off, on, ready, share, storage, user, viewport };
@@ -33,7 +33,6 @@ function isMiniProgramBridgeMessage(value) {
33
33
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
34
34
  */
35
35
  const AUTH_LOGIN_METHOD = 'auth.login';
36
-
37
36
  /**
38
37
  * 用户信息能力方法名。
39
38
  *
@@ -41,7 +40,13 @@ const AUTH_LOGIN_METHOD = 'auth.login';
41
40
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
42
41
  */
43
42
  const USER_GET_INFO_METHOD = 'user.getInfo';
44
-
43
+ /**
44
+ * 展示分享面板能力方法名。
45
+ *
46
+ * @remarks
47
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
48
+ */
49
+ const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
45
50
  /**
46
51
  * 截图分享能力方法名。
47
52
  *
@@ -49,15 +54,13 @@ const USER_GET_INFO_METHOD = 'user.getInfo';
49
54
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
50
55
  */
51
56
  const SHARE_SCREENSHOT_METHOD = 'share.screenshot';
52
-
53
57
  /**
54
- * 展示分享面板能力方法名。
58
+ * 视口窗口信息能力方法名。
55
59
  *
56
60
  * @remarks
57
61
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
58
62
  */
59
- const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
60
-
63
+ const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
61
64
  /**
62
65
  * 读取小程序隔离 storage 能力方法名。
63
66
  *
@@ -72,27 +75,83 @@ const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
72
75
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
73
76
  */
74
77
  const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
75
-
76
78
  /**
77
- * 视口窗口信息能力方法名。
79
+ * 发起网络请求能力方法名。
78
80
  *
79
81
  * @remarks
80
82
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
81
83
  */
82
- const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
83
-
84
+ const NETWORK_REQUEST_METHOD = 'network.request';
84
85
  /**
85
- * 发起网络请求能力方法名。
86
+ * 小程序开放能力目录。
86
87
  *
87
88
  * @remarks
88
- * SDK 与父容器 runtime 共享同一 bridge method 标识。
89
+ * 新增 bridge method 时应先更新这里,再分别补齐 SDK 模块、runtime handler 与测试。
89
90
  */
90
- const NETWORK_REQUEST_METHOD = 'network.request';
91
+ const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
92
+ {
93
+ method: AUTH_LOGIN_METHOD,
94
+ module: 'auth',
95
+ capability: AUTH_LOGIN_METHOD,
96
+ permission: 'auth.login',
97
+ risk: 'medium',
98
+ },
99
+ {
100
+ method: USER_GET_INFO_METHOD,
101
+ module: 'user',
102
+ capability: USER_GET_INFO_METHOD,
103
+ permission: 'user.getInfo',
104
+ risk: 'medium',
105
+ },
106
+ {
107
+ method: SHARE_SHOW_SHARE_MENU_METHOD,
108
+ module: 'share',
109
+ capability: SHARE_SHOW_SHARE_MENU_METHOD,
110
+ permission: 'share.basic',
111
+ risk: 'low',
112
+ },
113
+ {
114
+ method: SHARE_SCREENSHOT_METHOD,
115
+ module: 'share',
116
+ capability: SHARE_SCREENSHOT_METHOD,
117
+ permission: 'share.screenshot',
118
+ risk: 'medium',
119
+ },
120
+ {
121
+ method: VIEWPORT_GET_WINDOW_INFO_METHOD,
122
+ module: 'viewport',
123
+ capability: VIEWPORT_GET_WINDOW_INFO_METHOD,
124
+ permission: 'viewport.windowInfo',
125
+ risk: 'low',
126
+ },
127
+ {
128
+ method: STORAGE_GET_STORAGE_METHOD,
129
+ module: 'storage',
130
+ capability: STORAGE_GET_STORAGE_METHOD,
131
+ permission: 'storage.read',
132
+ risk: 'low',
133
+ },
134
+ {
135
+ method: STORAGE_SET_STORAGE_METHOD,
136
+ module: 'storage',
137
+ capability: STORAGE_SET_STORAGE_METHOD,
138
+ permission: 'storage.write',
139
+ risk: 'medium',
140
+ },
141
+ {
142
+ method: NETWORK_REQUEST_METHOD,
143
+ module: 'network',
144
+ capability: NETWORK_REQUEST_METHOD,
145
+ permission: 'network.request',
146
+ risk: 'high',
147
+ },
148
+ ];
91
149
 
92
150
  exports.AUTH_LOGIN_METHOD = AUTH_LOGIN_METHOD;
93
151
  exports.MINI_PROGRAM_BRIDGE_NONCE_PARAM = MINI_PROGRAM_BRIDGE_NONCE_PARAM;
94
152
  exports.MINI_PROGRAM_MESSAGE_NAMESPACE = MINI_PROGRAM_MESSAGE_NAMESPACE;
95
153
  exports.MINI_PROGRAM_MESSAGE_VERSION = MINI_PROGRAM_MESSAGE_VERSION;
154
+ exports.MINI_PROGRAM_PROTOCOL_CAPABILITIES = MINI_PROGRAM_PROTOCOL_CAPABILITIES;
96
155
  exports.NETWORK_REQUEST_METHOD = NETWORK_REQUEST_METHOD;
97
156
  exports.SDK_HANDSHAKE_METHOD = SDK_HANDSHAKE_METHOD;
98
157
  exports.SHARE_SCREENSHOT_METHOD = SHARE_SCREENSHOT_METHOD;
@@ -31,7 +31,6 @@ function isMiniProgramBridgeMessage(value) {
31
31
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
32
32
  */
33
33
  const AUTH_LOGIN_METHOD = 'auth.login';
34
-
35
34
  /**
36
35
  * 用户信息能力方法名。
37
36
  *
@@ -39,7 +38,13 @@ const AUTH_LOGIN_METHOD = 'auth.login';
39
38
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
40
39
  */
41
40
  const USER_GET_INFO_METHOD = 'user.getInfo';
42
-
41
+ /**
42
+ * 展示分享面板能力方法名。
43
+ *
44
+ * @remarks
45
+ * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
46
+ */
47
+ const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
43
48
  /**
44
49
  * 截图分享能力方法名。
45
50
  *
@@ -47,15 +52,13 @@ const USER_GET_INFO_METHOD = 'user.getInfo';
47
52
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
48
53
  */
49
54
  const SHARE_SCREENSHOT_METHOD = 'share.screenshot';
50
-
51
55
  /**
52
- * 展示分享面板能力方法名。
56
+ * 视口窗口信息能力方法名。
53
57
  *
54
58
  * @remarks
55
59
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
56
60
  */
57
- const SHARE_SHOW_SHARE_MENU_METHOD = 'share.showShareMenu';
58
-
61
+ const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
59
62
  /**
60
63
  * 读取小程序隔离 storage 能力方法名。
61
64
  *
@@ -70,21 +73,76 @@ const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
70
73
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
71
74
  */
72
75
  const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
73
-
74
76
  /**
75
- * 视口窗口信息能力方法名。
77
+ * 发起网络请求能力方法名。
76
78
  *
77
79
  * @remarks
78
80
  * 供 SDK 与父容器 runtime 共享同一 bridge method 标识。
79
81
  */
80
- const VIEWPORT_GET_WINDOW_INFO_METHOD = 'viewport.getWindowInfo';
81
-
82
+ const NETWORK_REQUEST_METHOD = 'network.request';
82
83
  /**
83
- * 发起网络请求能力方法名。
84
+ * 小程序开放能力目录。
84
85
  *
85
86
  * @remarks
86
- * SDK 与父容器 runtime 共享同一 bridge method 标识。
87
+ * 新增 bridge method 时应先更新这里,再分别补齐 SDK 模块、runtime handler 与测试。
87
88
  */
88
- const NETWORK_REQUEST_METHOD = 'network.request';
89
+ const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
90
+ {
91
+ method: AUTH_LOGIN_METHOD,
92
+ module: 'auth',
93
+ capability: AUTH_LOGIN_METHOD,
94
+ permission: 'auth.login',
95
+ risk: 'medium',
96
+ },
97
+ {
98
+ method: USER_GET_INFO_METHOD,
99
+ module: 'user',
100
+ capability: USER_GET_INFO_METHOD,
101
+ permission: 'user.getInfo',
102
+ risk: 'medium',
103
+ },
104
+ {
105
+ method: SHARE_SHOW_SHARE_MENU_METHOD,
106
+ module: 'share',
107
+ capability: SHARE_SHOW_SHARE_MENU_METHOD,
108
+ permission: 'share.basic',
109
+ risk: 'low',
110
+ },
111
+ {
112
+ method: SHARE_SCREENSHOT_METHOD,
113
+ module: 'share',
114
+ capability: SHARE_SCREENSHOT_METHOD,
115
+ permission: 'share.screenshot',
116
+ risk: 'medium',
117
+ },
118
+ {
119
+ method: VIEWPORT_GET_WINDOW_INFO_METHOD,
120
+ module: 'viewport',
121
+ capability: VIEWPORT_GET_WINDOW_INFO_METHOD,
122
+ permission: 'viewport.windowInfo',
123
+ risk: 'low',
124
+ },
125
+ {
126
+ method: STORAGE_GET_STORAGE_METHOD,
127
+ module: 'storage',
128
+ capability: STORAGE_GET_STORAGE_METHOD,
129
+ permission: 'storage.read',
130
+ risk: 'low',
131
+ },
132
+ {
133
+ method: STORAGE_SET_STORAGE_METHOD,
134
+ module: 'storage',
135
+ capability: STORAGE_SET_STORAGE_METHOD,
136
+ permission: 'storage.write',
137
+ risk: 'medium',
138
+ },
139
+ {
140
+ method: NETWORK_REQUEST_METHOD,
141
+ module: 'network',
142
+ capability: NETWORK_REQUEST_METHOD,
143
+ permission: 'network.request',
144
+ risk: 'high',
145
+ },
146
+ ];
89
147
 
90
- export { AUTH_LOGIN_METHOD, MINI_PROGRAM_BRIDGE_NONCE_PARAM, MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_MESSAGE_VERSION, 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, isMiniProgramBridgeMessage };
148
+ 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, isMiniProgramBridgeMessage };
@@ -6,7 +6,6 @@
6
6
 
7
7
  ```bash
8
8
  npm install
9
- npm run dev:mock
10
9
  npm run dev
11
10
  npm run typecheck
12
11
  npm run test:unit
@@ -15,12 +14,9 @@ npm run build
15
14
 
16
15
  ## 开发模式
17
16
 
18
- - `npm run dev:mock`:启动本地 Vite 服务和 `hb-sdk` 内置 mock runtime host,适合本地调试 SDK 能力。
19
- - `npm run dev`:只启动小程序页面服务,适合被真实黑盒小程序容器加载。
17
+ - `npm run dev`:启动本地 Vite 服务和 `hb-sdk` 内置 mock runtime host,适合本地调试 SDK 能力;调试页内可点击按钮在 Mac 版 APP 中启动同一页面。
20
18
  - `npm run build`:先执行 TypeScript 检查,再构建生产产物。
21
19
 
22
- 普通浏览器直接打开 `npm run dev` 的页面时,SDK 会因为缺少小程序 iframe 容器或 bridge nonce 而显示错误状态。开发时请优先使用 `npm run dev:mock`。
23
-
24
20
  ## 更多能力
25
21
 
26
22
  模板页面只保留最小接入示例。其他常用能力可以直接从 `@heybox/hb-sdk` 调用:
@@ -5,7 +5,6 @@
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "hb-sdk dev",
8
- "dev:mock": "hb-sdk dev --mock --open",
9
8
  "build": "vue-tsc --noEmit && vite build",
10
9
  "preview": "vite preview",
11
10
  "typecheck": "vue-tsc --noEmit",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heybox/hb-sdk",
3
- "version": "0.2.0-alpha.0",
3
+ "version": "0.2.0-alpha.1",
4
4
  "description": "",
5
5
  "exports": {
6
6
  ".": {
@@ -24,6 +24,7 @@
24
24
  "files": [
25
25
  "bin",
26
26
  "dist",
27
+ "skill",
27
28
  "types"
28
29
  ],
29
30
  "keywords": [],
@@ -47,6 +48,7 @@
47
48
  "get-port": "^7.1.0",
48
49
  "happy-dom": "^19.0.2",
49
50
  "open": "^10.2.0",
51
+ "picocolors": "^1.1.1",
50
52
  "rimraf": "^5.0.5",
51
53
  "rollup": "^4.52.4",
52
54
  "typescript": "^5.9.3",