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

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 (47) hide show
  1. package/README.md +193 -452
  2. package/bin/hb-sdk.cjs +1 -1
  3. package/dist/cli.cjs +71660 -3903
  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/miniapp-publish.cjs.js +77 -0
  9. package/dist/miniapp-publish.esm.js +66 -0
  10. package/dist/protocol.cjs.js +72 -13
  11. package/dist/protocol.esm.js +72 -14
  12. package/dist/templates/vue3-vite-ts/README.md.ejs +1 -5
  13. package/dist/templates/vue3-vite-ts/package.json.ejs +0 -1
  14. package/dist/templates/vue3-vite-ts/vite.config.ts +2 -1
  15. package/dist/vite.cjs.js +62 -0
  16. package/dist/vite.esm.js +60 -0
  17. package/package.json +30 -1
  18. package/skill/SKILL.md +106 -0
  19. package/skill/references/api-protocol.md +135 -0
  20. package/skill/references/api-root.md +474 -0
  21. package/skill/references/cli.md +376 -0
  22. package/skill/references/examples.md +119 -0
  23. package/skill/references/llms-index.md +44 -0
  24. package/skill/references/recipes.md +374 -0
  25. package/skill/references/safety-boundaries.md +30 -0
  26. package/skill/references/smoke-evaluation.md +24 -0
  27. package/skill/scripts/check-references.mjs +14 -0
  28. package/skill/scripts/package-skill.mjs +60 -0
  29. package/skill/scripts/package-skill.sh +6 -0
  30. package/skill/scripts/skill-metadata.mjs +74 -0
  31. package/skill/scripts/sync-references.mjs +565 -0
  32. package/skill/scripts/validate-skill.mjs +235 -0
  33. package/skill/skill.json +11 -0
  34. package/types/index.d.ts +8 -6
  35. package/types/miniapp-publish/index.d.ts +23 -0
  36. package/types/modules/auth/index.d.ts +2 -9
  37. package/types/modules/network/index.d.ts +6 -11
  38. package/types/modules/share/index.d.ts +3 -9
  39. package/types/modules/share/screenshot.d.ts +1 -7
  40. package/types/modules/share/show-share-menu.d.ts +1 -7
  41. package/types/modules/storage/index.d.ts +2 -16
  42. package/types/modules/user/get-info.d.ts +1 -7
  43. package/types/modules/user/index.d.ts +2 -8
  44. package/types/modules/viewport/index.d.ts +2 -9
  45. package/types/protocol/capabilities.d.ts +180 -0
  46. package/types/protocol.d.ts +8 -13
  47. package/types/vite/index.d.ts +17 -0
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 };
@@ -0,0 +1,77 @@
1
+ 'use strict';
2
+
3
+ const MINIAPP_UPLOAD_SCOPE = 'activity';
4
+ const ACTIVITY_UPLOAD_KEY_MAX_LENGTH = 64;
5
+ const PUBLISH_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/publish';
6
+ const VERSION_PATTERN = /^\d+\.\d+\.\d+$/;
7
+ const FNV_OFFSET = 0x811c9dc5;
8
+ const FNV_PRIME = 0x01000193;
9
+ function isValidVersion(version) {
10
+ return VERSION_PATTERN.test(String(version || '').trim());
11
+ }
12
+ function normalizeRelativePath(relativePath) {
13
+ return String(relativePath || '')
14
+ .replace(/\\/g, '/')
15
+ .replace(/^\/+/, '')
16
+ .replace(/\/+/g, '/');
17
+ }
18
+ function relativePathContainsNodeModulesSegment(relativePath) {
19
+ return normalizeRelativePath(relativePath)
20
+ .split('/')
21
+ .some((segment) => segment.length > 0 && segment.toLowerCase() === 'node_modules');
22
+ }
23
+ function getMiniProgramUploadAlias(miniProgramId) {
24
+ let hash = FNV_OFFSET;
25
+ const input = String(miniProgramId || '');
26
+ for (let i = 0; i < input.length; i += 1) {
27
+ hash ^= input.charCodeAt(i);
28
+ hash = Math.imul(hash, FNV_PRIME) >>> 0;
29
+ }
30
+ return hash.toString(36);
31
+ }
32
+ function getMiniappUploadKey(input) {
33
+ const alias = getMiniProgramUploadAlias(input.miniProgramId);
34
+ const normalized = normalizeRelativePath(input.relativePath);
35
+ return `/u/${alias}/${input.version}/${normalized}`;
36
+ }
37
+ function validateUploadPaths(items, options) {
38
+ const limit = options.maxLength ?? ACTIVITY_UPLOAD_KEY_MAX_LENGTH;
39
+ for (const item of items) {
40
+ const key = getMiniappUploadKey({
41
+ miniProgramId: options.miniProgramId,
42
+ version: options.version,
43
+ relativePath: item.relativePath,
44
+ });
45
+ if (key.length > limit) {
46
+ return `文件路径过长,请缩短构建产物文件名或目录层级:${item.relativePath}`;
47
+ }
48
+ }
49
+ return undefined;
50
+ }
51
+ function shouldUploadDistFile(relativePath) {
52
+ const normalized = normalizeRelativePath(relativePath);
53
+ if (!normalized) {
54
+ return false;
55
+ }
56
+ if (normalized === 'manifest.json') {
57
+ return false;
58
+ }
59
+ if (normalized === '.DS_Store' || normalized.endsWith('/.DS_Store')) {
60
+ return false;
61
+ }
62
+ if (normalized.toLowerCase().endsWith('.map')) {
63
+ return false;
64
+ }
65
+ return true;
66
+ }
67
+
68
+ exports.ACTIVITY_UPLOAD_KEY_MAX_LENGTH = ACTIVITY_UPLOAD_KEY_MAX_LENGTH;
69
+ exports.MINIAPP_UPLOAD_SCOPE = MINIAPP_UPLOAD_SCOPE;
70
+ exports.PUBLISH_USER_MINIPROGRAM_API_PATH = PUBLISH_USER_MINIPROGRAM_API_PATH;
71
+ exports.getMiniProgramUploadAlias = getMiniProgramUploadAlias;
72
+ exports.getMiniappUploadKey = getMiniappUploadKey;
73
+ exports.isValidVersion = isValidVersion;
74
+ exports.normalizeRelativePath = normalizeRelativePath;
75
+ exports.relativePathContainsNodeModulesSegment = relativePathContainsNodeModulesSegment;
76
+ exports.shouldUploadDistFile = shouldUploadDistFile;
77
+ exports.validateUploadPaths = validateUploadPaths;
@@ -0,0 +1,66 @@
1
+ const MINIAPP_UPLOAD_SCOPE = 'activity';
2
+ const ACTIVITY_UPLOAD_KEY_MAX_LENGTH = 64;
3
+ const PUBLISH_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/publish';
4
+ const VERSION_PATTERN = /^\d+\.\d+\.\d+$/;
5
+ const FNV_OFFSET = 0x811c9dc5;
6
+ const FNV_PRIME = 0x01000193;
7
+ function isValidVersion(version) {
8
+ return VERSION_PATTERN.test(String(version || '').trim());
9
+ }
10
+ function normalizeRelativePath(relativePath) {
11
+ return String(relativePath || '')
12
+ .replace(/\\/g, '/')
13
+ .replace(/^\/+/, '')
14
+ .replace(/\/+/g, '/');
15
+ }
16
+ function relativePathContainsNodeModulesSegment(relativePath) {
17
+ return normalizeRelativePath(relativePath)
18
+ .split('/')
19
+ .some((segment) => segment.length > 0 && segment.toLowerCase() === 'node_modules');
20
+ }
21
+ function getMiniProgramUploadAlias(miniProgramId) {
22
+ let hash = FNV_OFFSET;
23
+ const input = String(miniProgramId || '');
24
+ for (let i = 0; i < input.length; i += 1) {
25
+ hash ^= input.charCodeAt(i);
26
+ hash = Math.imul(hash, FNV_PRIME) >>> 0;
27
+ }
28
+ return hash.toString(36);
29
+ }
30
+ function getMiniappUploadKey(input) {
31
+ const alias = getMiniProgramUploadAlias(input.miniProgramId);
32
+ const normalized = normalizeRelativePath(input.relativePath);
33
+ return `/u/${alias}/${input.version}/${normalized}`;
34
+ }
35
+ function validateUploadPaths(items, options) {
36
+ const limit = options.maxLength ?? ACTIVITY_UPLOAD_KEY_MAX_LENGTH;
37
+ for (const item of items) {
38
+ const key = getMiniappUploadKey({
39
+ miniProgramId: options.miniProgramId,
40
+ version: options.version,
41
+ relativePath: item.relativePath,
42
+ });
43
+ if (key.length > limit) {
44
+ return `文件路径过长,请缩短构建产物文件名或目录层级:${item.relativePath}`;
45
+ }
46
+ }
47
+ return undefined;
48
+ }
49
+ function shouldUploadDistFile(relativePath) {
50
+ const normalized = normalizeRelativePath(relativePath);
51
+ if (!normalized) {
52
+ return false;
53
+ }
54
+ if (normalized === 'manifest.json') {
55
+ return false;
56
+ }
57
+ if (normalized === '.DS_Store' || normalized.endsWith('/.DS_Store')) {
58
+ return false;
59
+ }
60
+ if (normalized.toLowerCase().endsWith('.map')) {
61
+ return false;
62
+ }
63
+ return true;
64
+ }
65
+
66
+ export { ACTIVITY_UPLOAD_KEY_MAX_LENGTH, MINIAPP_UPLOAD_SCOPE, PUBLISH_USER_MINIPROGRAM_API_PATH, getMiniProgramUploadAlias, getMiniappUploadKey, isValidVersion, normalizeRelativePath, relativePathContainsNodeModulesSegment, shouldUploadDistFile, validateUploadPaths };
@@ -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;