@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.
- package/README.md +193 -452
- package/bin/hb-sdk.cjs +1 -1
- package/dist/cli.cjs +71660 -3903
- package/dist/devtools/mock-host/index.html +13 -387
- package/dist/devtools/mock-host/main.js +975 -0
- package/dist/index.cjs.js +50 -63
- package/dist/index.esm.js +51 -50
- package/dist/miniapp-publish.cjs.js +77 -0
- package/dist/miniapp-publish.esm.js +66 -0
- package/dist/protocol.cjs.js +72 -13
- package/dist/protocol.esm.js +72 -14
- package/dist/templates/vue3-vite-ts/README.md.ejs +1 -5
- package/dist/templates/vue3-vite-ts/package.json.ejs +0 -1
- package/dist/templates/vue3-vite-ts/vite.config.ts +2 -1
- package/dist/vite.cjs.js +62 -0
- package/dist/vite.esm.js +60 -0
- package/package.json +30 -1
- package/skill/SKILL.md +106 -0
- package/skill/references/api-protocol.md +135 -0
- package/skill/references/api-root.md +474 -0
- package/skill/references/cli.md +376 -0
- package/skill/references/examples.md +119 -0
- package/skill/references/llms-index.md +44 -0
- package/skill/references/recipes.md +374 -0
- package/skill/references/safety-boundaries.md +30 -0
- package/skill/references/smoke-evaluation.md +24 -0
- package/skill/scripts/check-references.mjs +14 -0
- package/skill/scripts/package-skill.mjs +60 -0
- package/skill/scripts/package-skill.sh +6 -0
- package/skill/scripts/skill-metadata.mjs +74 -0
- package/skill/scripts/sync-references.mjs +565 -0
- package/skill/scripts/validate-skill.mjs +235 -0
- package/skill/skill.json +11 -0
- package/types/index.d.ts +8 -6
- package/types/miniapp-publish/index.d.ts +23 -0
- package/types/modules/auth/index.d.ts +2 -9
- package/types/modules/network/index.d.ts +6 -11
- package/types/modules/share/index.d.ts +3 -9
- package/types/modules/share/screenshot.d.ts +1 -7
- package/types/modules/share/show-share-menu.d.ts +1 -7
- package/types/modules/storage/index.d.ts +2 -16
- package/types/modules/user/get-info.d.ts +1 -7
- package/types/modules/user/index.d.ts +2 -8
- package/types/modules/viewport/index.d.ts +2 -9
- package/types/protocol/capabilities.d.ts +180 -0
- package/types/protocol.d.ts +8 -13
- 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,
|
|
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 };
|
package/dist/protocol.cjs.js
CHANGED
|
@@ -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
|
|
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
|
|
83
|
-
|
|
84
|
+
const NETWORK_REQUEST_METHOD = 'network.request';
|
|
84
85
|
/**
|
|
85
|
-
*
|
|
86
|
+
* 小程序开放能力目录。
|
|
86
87
|
*
|
|
87
88
|
* @remarks
|
|
88
|
-
*
|
|
89
|
+
* 新增 bridge method 时应先更新这里,再分别补齐 SDK 模块、runtime handler 与测试。
|
|
89
90
|
*/
|
|
90
|
-
const
|
|
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;
|