@heybox/hb-sdk 0.6.2 → 0.6.4-alpha.0

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 (30) hide show
  1. package/README.md +5 -3
  2. package/dist/cli-chunks/{context-DmxbC_iV.cjs → context-BCwksd8H.cjs} +1 -37
  3. package/dist/cli-chunks/{create-CXBnqr5r.cjs → create-BO8GHVi0.cjs} +1 -1
  4. package/dist/cli-chunks/{dev-OCij_ecL.cjs → dev-DmgKnEC2.cjs} +59 -133
  5. package/dist/cli-chunks/{doctor-DQIzL_3_.cjs → doctor-BlKB4f78.cjs} +1 -1
  6. package/dist/cli-chunks/{index-Ulhxo0YK.cjs → index-PxkpQ5of.cjs} +2 -2
  7. package/dist/cli-chunks/{index-CTyguEza.cjs → index-Q0G1SsEs.cjs} +13 -13
  8. package/dist/cli-chunks/{login-BWN2-2Gk.cjs → login-Cxdo4B6Z.cjs} +2 -2
  9. package/dist/cli-chunks/{remote-DxKtJ21x.cjs → remote-C1Rsb1dx.cjs} +5 -5
  10. package/dist/cli-chunks/{session-D7mPwyx4.cjs → session-CC3Oz3Xc.cjs} +1 -2
  11. package/dist/cli.cjs +1 -1
  12. package/dist/devtools/mock-host/index.html +54 -1
  13. package/dist/devtools/mock-host/main.js +196 -6
  14. package/dist/index.cjs.js +1 -1
  15. package/dist/index.esm.js +1 -1
  16. package/dist/miniapp-publish.cjs.js +0 -4
  17. package/dist/miniapp-publish.esm.js +1 -4
  18. package/dist/vite.cjs.js +2 -344
  19. package/dist/vite.esm.js +2 -344
  20. package/package.json +2 -2
  21. package/skill/SKILL.md +5 -3
  22. package/skill/references/api-root.md +6 -26
  23. package/skill/references/cli.md +7 -5
  24. package/skill/skill.json +4 -4
  25. package/types/miniapp-publish/index.d.ts +0 -1
  26. package/types/vite/index.d.ts +1 -7
  27. package/types/cli/auth/base-url.d.ts +0 -20
  28. package/types/cli/config.d.ts +0 -11
  29. package/types/miniapp-manifest/sdk-version-policy.d.ts +0 -9
  30. package/types/vite/sdk-version-gate.d.ts +0 -8
@@ -20,7 +20,8 @@
20
20
  }
21
21
 
22
22
  button,
23
- input {
23
+ input,
24
+ select {
24
25
  font: inherit;
25
26
  }
26
27
 
@@ -190,6 +191,38 @@
190
191
  background: #fff;
191
192
  }
192
193
 
194
+ .inline-field {
195
+ display: flex;
196
+ align-items: center;
197
+ gap: 8px;
198
+ margin-top: 10px;
199
+ color: #475569;
200
+ font-size: 13px;
201
+ }
202
+
203
+ .inline-field input {
204
+ width: 16px;
205
+ height: 16px;
206
+ margin: 0;
207
+ }
208
+
209
+ .release-diagnostics {
210
+ display: grid;
211
+ gap: 6px;
212
+ margin: 10px 0 0;
213
+ padding: 0;
214
+ list-style: none;
215
+ }
216
+
217
+ .release-diagnostics li {
218
+ border-left: 3px solid #d97706;
219
+ padding: 7px 8px;
220
+ color: #92400e;
221
+ background: #fffbeb;
222
+ font-size: 12px;
223
+ line-height: 1.5;
224
+ }
225
+
193
226
  .mobile-qr {
194
227
  display: grid;
195
228
  justify-items: center;
@@ -353,6 +386,26 @@
353
386
  <strong id="mini-url"></strong>
354
387
  </section>
355
388
 
389
+ <section class="block">
390
+ <span>Dev Context</span>
391
+ <strong id="dev-context-status"></strong>
392
+ <label class="field" style="margin-top: 10px">
393
+ <span>network.request</span>
394
+ <select id="network-permission-select">
395
+ <option value="disabled">拒绝</option>
396
+ <option value="enabled">允许</option>
397
+ </select>
398
+ </label>
399
+ <label class="inline-field">
400
+ <input id="official-domain-checkbox" type="checkbox" />
401
+ <span>允许访问小黑盒官方域名</span>
402
+ </label>
403
+ <div class="actions" style="margin-top: 10px">
404
+ <button id="reset-permissions-button" type="button">恢复初始权限</button>
405
+ </div>
406
+ <ul class="release-diagnostics" id="release-diagnostics"></ul>
407
+ </section>
408
+
356
409
  <section class="csp-violations" id="csp-violations" hidden>
357
410
  <strong>网络或资源请求已被 CSP 阻止</strong>
358
411
  </section>
@@ -3445,6 +3445,120 @@ function formatBlockedResource(payload) {
3445
3445
  return '未知资源';
3446
3446
  }
3447
3447
 
3448
+ const DEFAULT_PERMISSION_STATE = {
3449
+ networkRequest: {
3450
+ status: 'disabled',
3451
+ useOfficialDomain: false,
3452
+ },
3453
+ };
3454
+ function createMiniProgramMockPermissionState(context) {
3455
+ const parsed = parseRuntimePermissions(context.runtimePermissions);
3456
+ return parsed.valid && parsed.networkRequest
3457
+ ? { networkRequest: { ...parsed.networkRequest } }
3458
+ : cloneDefaultPermissionState();
3459
+ }
3460
+ function createMiniProgramMockRuntimePermissions(state) {
3461
+ return {
3462
+ schema_version: 1,
3463
+ entries: [
3464
+ {
3465
+ key: 'network.request',
3466
+ status: state.networkRequest.status,
3467
+ config: {
3468
+ useOfficialDomain: state.networkRequest.useOfficialDomain,
3469
+ },
3470
+ },
3471
+ ],
3472
+ };
3473
+ }
3474
+ function createMiniProgramDevReleaseDiagnostics(context, localState) {
3475
+ if (context.source === 'anonymous') {
3476
+ return [
3477
+ {
3478
+ code: 'REMOTE_CONTEXT_UNAVAILABLE',
3479
+ severity: 'warning',
3480
+ message: `未获取到线上权限配置,本地模拟不代表上线状态${context.warning ? `:${context.warning}` : ''}`,
3481
+ },
3482
+ ];
3483
+ }
3484
+ const parsedRemote = parseRuntimePermissions(context.runtimePermissions);
3485
+ if (!parsedRemote.valid) {
3486
+ return [
3487
+ {
3488
+ code: 'REMOTE_PERMISSIONS_INVALID',
3489
+ severity: 'warning',
3490
+ message: '线上权限配置不可用,本地模拟不代表上线状态。',
3491
+ },
3492
+ ];
3493
+ }
3494
+ const remoteState = parsedRemote.networkRequest ?? DEFAULT_PERMISSION_STATE.networkRequest;
3495
+ if (localState.networkRequest.status === 'enabled' &&
3496
+ remoteState.status !== 'enabled') {
3497
+ return [
3498
+ {
3499
+ code: 'NETWORK_REQUEST_DISABLED_ONLINE',
3500
+ severity: 'warning',
3501
+ message: '当前本地允许 network.request,但线上权限已关闭;上线后请求会返回 PERMISSION_DENIED。',
3502
+ },
3503
+ ];
3504
+ }
3505
+ if (localState.networkRequest.status === 'enabled' &&
3506
+ localState.networkRequest.useOfficialDomain &&
3507
+ !remoteState.useOfficialDomain) {
3508
+ return [
3509
+ {
3510
+ code: 'OFFICIAL_DOMAIN_DISABLED_ONLINE',
3511
+ severity: 'warning',
3512
+ message: '当前本地允许访问小黑盒官方域名,但线上权限未开放;上线后相关请求会返回 PERMISSION_DENIED。',
3513
+ },
3514
+ ];
3515
+ }
3516
+ return [];
3517
+ }
3518
+ function parseRuntimePermissions(snapshot) {
3519
+ if (!isRecord$2(snapshot) || snapshot.schema_version !== 1 || !Array.isArray(snapshot.entries)) {
3520
+ return { valid: false };
3521
+ }
3522
+ if (snapshot.revision !== undefined &&
3523
+ (typeof snapshot.revision !== 'number' ||
3524
+ !Number.isInteger(snapshot.revision) ||
3525
+ snapshot.revision < 0)) {
3526
+ return { valid: false };
3527
+ }
3528
+ const seenKeys = new Set();
3529
+ let networkRequest;
3530
+ for (const entry of snapshot.entries) {
3531
+ if (!isRecord$2(entry) || typeof entry.key !== 'string' || !entry.key.trim()) {
3532
+ return { valid: false };
3533
+ }
3534
+ const key = entry.key.trim();
3535
+ if (seenKeys.has(key) ||
3536
+ (entry.status !== 'enabled' && entry.status !== 'disabled') ||
3537
+ !isRecord$2(entry.config)) {
3538
+ return { valid: false };
3539
+ }
3540
+ seenKeys.add(key);
3541
+ if (key === 'network.request') {
3542
+ if (typeof entry.config.useOfficialDomain !== 'boolean') {
3543
+ return { valid: false };
3544
+ }
3545
+ networkRequest = {
3546
+ status: entry.status,
3547
+ useOfficialDomain: entry.config.useOfficialDomain,
3548
+ };
3549
+ }
3550
+ }
3551
+ return { valid: true, networkRequest };
3552
+ }
3553
+ function cloneDefaultPermissionState() {
3554
+ return {
3555
+ networkRequest: { ...DEFAULT_PERMISSION_STATE.networkRequest },
3556
+ };
3557
+ }
3558
+ function isRecord$2(value) {
3559
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
3560
+ }
3561
+
3448
3562
  async function getMiniProgramRuntimeUserInfo(platformAdapter) {
3449
3563
  const userId = await resolveCurrentUserId(platformAdapter);
3450
3564
  if (!userId) {
@@ -6306,6 +6420,7 @@ const elements = {
6306
6420
  cspViolations: queryElement('#csp-violations'),
6307
6421
  debugPageCopyStatus: queryElement('#debug-page-copy-status'),
6308
6422
  debugPageUrl: queryElement('#debug-page-url'),
6423
+ devContextStatus: queryElement('#dev-context-status'),
6309
6424
  device: queryElement('#device'),
6310
6425
  logs: queryElement('#logs'),
6311
6426
  macAppButton: queryElement('#mac-app-button'),
@@ -6315,6 +6430,10 @@ const elements = {
6315
6430
  mobileQrImage: queryElement('#mobile-qr-image'),
6316
6431
  mobileQrStatus: queryElement('#mobile-qr-status'),
6317
6432
  nicknameInput: queryElement('#nickname-input'),
6433
+ networkPermissionSelect: queryElement('#network-permission-select'),
6434
+ officialDomainCheckbox: queryElement('#official-domain-checkbox'),
6435
+ releaseDiagnostics: queryElement('#release-diagnostics'),
6436
+ resetPermissionsButton: queryElement('#reset-permissions-button'),
6318
6437
  storageSnapshot: queryElement('#storage-snapshot'),
6319
6438
  userStatus: queryElement('#user-status'),
6320
6439
  };
@@ -6325,13 +6444,15 @@ if (!miniUrl) {
6325
6444
  }
6326
6445
  const miniProgramUrl = miniUrl;
6327
6446
  const bootstrap = await loadMockHostBootstrap();
6328
- const runtimePermissions = bootstrap.runtimePermissions;
6447
+ const devContext = bootstrap.devContext;
6448
+ const initialPermissionState = createMiniProgramMockPermissionState(devContext);
6449
+ let permissionState = clonePermissionState(initialPermissionState);
6329
6450
  const iframe = document.createElement('iframe');
6330
6451
  iframe.src = appendNonce(miniProgramUrl, nonce);
6331
6452
  iframe.allow = 'clipboard-read; clipboard-write';
6332
6453
  elements.device.appendChild(iframe);
6333
6454
  elements.miniUrl.textContent = miniProgramUrl;
6334
- const runtime = new MiniProgramMockRuntime(createBrowserMockRuntimePlatformAdapter({
6455
+ const platformAdapter = createBrowserMockRuntimePlatformAdapter({
6335
6456
  iframe,
6336
6457
  getCurrentHref: () => location.href,
6337
6458
  getCurrentUser: () => currentUser,
@@ -6353,12 +6474,11 @@ const runtime = new MiniProgramMockRuntime(createBrowserMockRuntimePlatformAdapt
6353
6474
  storage.set(key, value);
6354
6475
  updateStorageSnapshot();
6355
6476
  },
6356
- }), {
6357
- onAuthChange: (result) => postEvent('authChange', result),
6358
- runtimePermissions,
6359
6477
  });
6478
+ let runtime = createRuntime();
6360
6479
  updateUserStatus();
6361
6480
  updateStorageSnapshot();
6481
+ updatePermissionControls();
6362
6482
  window.addEventListener('message', handleMessage);
6363
6483
  window.addEventListener('beforeunload', () => {
6364
6484
  postEvent('unload', { timestamp: Date.now() });
@@ -6386,7 +6506,48 @@ elements.copyDebugPageUrlButton.addEventListener('click', () => {
6386
6506
  elements.mobileLanSelect.addEventListener('change', () => {
6387
6507
  void updateMobileQrCode();
6388
6508
  });
6509
+ elements.networkPermissionSelect.addEventListener('change', () => {
6510
+ permissionState.networkRequest.status =
6511
+ elements.networkPermissionSelect.value === 'enabled' ? 'enabled' : 'disabled';
6512
+ rebuildRuntimeWithPermissions();
6513
+ });
6514
+ elements.officialDomainCheckbox.addEventListener('change', () => {
6515
+ permissionState.networkRequest.useOfficialDomain = elements.officialDomainCheckbox.checked;
6516
+ rebuildRuntimeWithPermissions();
6517
+ });
6518
+ elements.resetPermissionsButton.addEventListener('click', () => {
6519
+ permissionState = clonePermissionState(initialPermissionState);
6520
+ rebuildRuntimeWithPermissions();
6521
+ });
6389
6522
  const mobileAppQrReady = setupMobileAppQr();
6523
+ function createRuntime() {
6524
+ return new MiniProgramMockRuntime(platformAdapter, {
6525
+ onAuthChange: (result) => postEvent('authChange', result),
6526
+ runtimePermissions: createMiniProgramMockRuntimePermissions(permissionState),
6527
+ });
6528
+ }
6529
+ function rebuildRuntimeWithPermissions() {
6530
+ runtime = createRuntime();
6531
+ updatePermissionControls();
6532
+ }
6533
+ function updatePermissionControls() {
6534
+ elements.devContextStatus.textContent =
6535
+ devContext.source === 'remote'
6536
+ ? `已连接线上配置${devContext.miniProgramId ? ` · ${devContext.miniProgramId}` : ''}`
6537
+ : '匿名本地沙箱';
6538
+ elements.networkPermissionSelect.value = permissionState.networkRequest.status;
6539
+ elements.officialDomainCheckbox.checked = permissionState.networkRequest.useOfficialDomain;
6540
+ elements.officialDomainCheckbox.disabled = permissionState.networkRequest.status !== 'enabled';
6541
+ const diagnostics = createMiniProgramDevReleaseDiagnostics(devContext, permissionState);
6542
+ elements.releaseDiagnostics.innerHTML = diagnostics
6543
+ .map((diagnostic) => `<li>${escapeHtml(diagnostic.message)}</li>`)
6544
+ .join('');
6545
+ }
6546
+ function clonePermissionState(state) {
6547
+ return {
6548
+ networkRequest: { ...state.networkRequest },
6549
+ };
6550
+ }
6390
6551
  function handleMessage(event) {
6391
6552
  if (event.source !== iframe.contentWindow || !isBridgeMessage(event.data)) {
6392
6553
  return;
@@ -6599,10 +6760,17 @@ async function loadMockHostBootstrap() {
6599
6760
  });
6600
6761
  const payload = await response.json();
6601
6762
  if (!isRecord(payload)) {
6602
- return { lanAddresses: [] };
6763
+ return {
6764
+ devContext: {
6765
+ source: 'anonymous',
6766
+ warning: 'dev context 响应格式无效。',
6767
+ },
6768
+ lanAddresses: [],
6769
+ };
6603
6770
  }
6604
6771
  return {
6605
6772
  defaultLanAddressId: typeof payload.defaultLanAddressId === 'string' ? payload.defaultLanAddressId : undefined,
6773
+ devContext: readDevContext(payload.devContext, payload.runtimePermissions),
6606
6774
  lanAddresses: Array.isArray(payload.lanAddresses) ? payload.lanAddresses.filter(isLanAddress) : [],
6607
6775
  macAppProtocol: typeof payload.macAppProtocol === 'string' ? payload.macAppProtocol : undefined,
6608
6776
  nativeAppLaunchUnavailableReason: typeof payload.nativeAppLaunchUnavailableReason === 'string'
@@ -6613,11 +6781,33 @@ async function loadMockHostBootstrap() {
6613
6781
  }
6614
6782
  catch {
6615
6783
  return {
6784
+ devContext: {
6785
+ source: 'anonymous',
6786
+ warning: '真机调试配置加载失败,请重启 hb-sdk dev 后重试。',
6787
+ },
6616
6788
  lanAddresses: [],
6617
6789
  nativeAppLaunchUnavailableReason: '真机调试配置加载失败,请重启 hb-sdk dev 后重试。',
6618
6790
  };
6619
6791
  }
6620
6792
  }
6793
+ function readDevContext(value, legacyRuntimePermissions) {
6794
+ if (isRecord(value) && value.source === 'remote') {
6795
+ return {
6796
+ source: 'remote',
6797
+ miniProgramId: typeof value.miniProgramId === 'string' ? value.miniProgramId : undefined,
6798
+ runtimePermissions: value.runtimePermissions ?? legacyRuntimePermissions,
6799
+ };
6800
+ }
6801
+ if (isRecord(value) && value.source === 'anonymous') {
6802
+ return {
6803
+ source: 'anonymous',
6804
+ warning: typeof value.warning === 'string' ? value.warning : undefined,
6805
+ };
6806
+ }
6807
+ return legacyRuntimePermissions === undefined
6808
+ ? { source: 'anonymous', warning: '未获取到 dev context。' }
6809
+ : { source: 'remote', runtimePermissions: legacyRuntimePermissions };
6810
+ }
6621
6811
  function setupMobileLanSelect() {
6622
6812
  elements.mobileLanSelect.innerHTML = '';
6623
6813
  lanAddresses.forEach((address) => {
package/dist/index.cjs.js CHANGED
@@ -325,7 +325,7 @@ function createMessageId() {
325
325
  /** 构建时替换为当前发布包的实际版本。 */
326
326
  const HB_SDK_VERSION = typeof undefined === 'string'
327
327
  ? undefined
328
- : '0.6.2';
328
+ : '0.6.4-alpha.0';
329
329
 
330
330
  /**
331
331
  * 判断未知数据是否符合小程序 bridge 消息信封。
package/dist/index.esm.js CHANGED
@@ -321,7 +321,7 @@ function createMessageId() {
321
321
  /** 构建时替换为当前发布包的实际版本。 */
322
322
  const HB_SDK_VERSION = typeof undefined === 'string'
323
323
  ? undefined
324
- : '0.6.2';
324
+ : '0.6.4-alpha.0';
325
325
 
326
326
  /**
327
327
  * 判断未知数据是否符合小程序 bridge 消息信封。
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- const APIUserMiniprogramPublicSdkConfigPath = '/user_miniprogram/public/sdk_config';
4
-
5
3
  var re = {exports: {}};
6
4
 
7
5
  var constants;
@@ -2815,7 +2813,6 @@ const MINIAPP_UPLOAD_SCOPE = 'activity';
2815
2813
  const ACTIVITY_UPLOAD_KEY_MAX_LENGTH = 64;
2816
2814
  const MINIAPP_UPLOAD_BATCH_SIZE = 50;
2817
2815
  const MINIAPP_UPLOAD_TOTAL_SIZE_LIMIT_BYTES = 100 * 1024 * 1024;
2818
- const PUBLIC_USER_MINIPROGRAM_SDK_CONFIG_API_PATH = APIUserMiniprogramPublicSdkConfigPath;
2819
2816
  const USER_MINIPROGRAM_ACCESS_STATUS_API_PATH = '/mall/developer/user_miniprogram/access_status';
2820
2817
  const DEVELOPER_ENTITY_LIST_API_PATH = '/mall/developer/entity/list';
2821
2818
  const DEVELOPER_ENTITY_SWITCH_API_PATH = '/mall/developer/entity/switch';
@@ -2921,7 +2918,6 @@ exports.MINIAPP_UPLOAD_BATCH_SIZE = MINIAPP_UPLOAD_BATCH_SIZE;
2921
2918
  exports.MINIAPP_UPLOAD_SCOPE = MINIAPP_UPLOAD_SCOPE;
2922
2919
  exports.MINIAPP_UPLOAD_TOTAL_SIZE_LIMIT_BYTES = MINIAPP_UPLOAD_TOTAL_SIZE_LIMIT_BYTES;
2923
2920
  exports.PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH = PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH;
2924
- exports.PUBLIC_USER_MINIPROGRAM_SDK_CONFIG_API_PATH = PUBLIC_USER_MINIPROGRAM_SDK_CONFIG_API_PATH;
2925
2921
  exports.RELEASE_USER_MINIPROGRAM_VERSION_API_PATH = RELEASE_USER_MINIPROGRAM_VERSION_API_PATH;
2926
2922
  exports.REOPEN_USER_MINIPROGRAM_API_PATH = REOPEN_USER_MINIPROGRAM_API_PATH;
2927
2923
  exports.SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH = SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH;
@@ -1,5 +1,3 @@
1
- const APIUserMiniprogramPublicSdkConfigPath = '/user_miniprogram/public/sdk_config';
2
-
3
1
  var re = {exports: {}};
4
2
 
5
3
  var constants;
@@ -2813,7 +2811,6 @@ const MINIAPP_UPLOAD_SCOPE = 'activity';
2813
2811
  const ACTIVITY_UPLOAD_KEY_MAX_LENGTH = 64;
2814
2812
  const MINIAPP_UPLOAD_BATCH_SIZE = 50;
2815
2813
  const MINIAPP_UPLOAD_TOTAL_SIZE_LIMIT_BYTES = 100 * 1024 * 1024;
2816
- const PUBLIC_USER_MINIPROGRAM_SDK_CONFIG_API_PATH = APIUserMiniprogramPublicSdkConfigPath;
2817
2814
  const USER_MINIPROGRAM_ACCESS_STATUS_API_PATH = '/mall/developer/user_miniprogram/access_status';
2818
2815
  const DEVELOPER_ENTITY_LIST_API_PATH = '/mall/developer/entity/list';
2819
2816
  const DEVELOPER_ENTITY_SWITCH_API_PATH = '/mall/developer/entity/switch';
@@ -2904,4 +2901,4 @@ function shouldUploadDistFile(relativePath) {
2904
2901
  return true;
2905
2902
  }
2906
2903
 
2907
- export { ACTIVITY_UPLOAD_KEY_MAX_LENGTH, CREATE_USER_MINIPROGRAM_API_PATH, CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DETAIL_USER_MINIPROGRAM_API_PATH, DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DEVELOPER_ENTITY_LIST_API_PATH, DEVELOPER_ENTITY_SWITCH_API_PATH, LIST_USER_MINIPROGRAM_API_PATH, LIST_USER_MINIPROGRAM_LEADERBOARD_API_PATH, LIST_USER_MINIPROGRAM_VERSION_API_PATH, MINIAPP_UPLOAD_BATCH_SIZE, MINIAPP_UPLOAD_SCOPE, MINIAPP_UPLOAD_TOTAL_SIZE_LIMIT_BYTES, PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH, PUBLIC_USER_MINIPROGRAM_SDK_CONFIG_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_SQUARE_DISPLAY_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, validateUploadTotalSize };
2904
+ export { ACTIVITY_UPLOAD_KEY_MAX_LENGTH, CREATE_USER_MINIPROGRAM_API_PATH, CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DETAIL_USER_MINIPROGRAM_API_PATH, DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH, DEVELOPER_ENTITY_LIST_API_PATH, DEVELOPER_ENTITY_SWITCH_API_PATH, LIST_USER_MINIPROGRAM_API_PATH, LIST_USER_MINIPROGRAM_LEADERBOARD_API_PATH, LIST_USER_MINIPROGRAM_VERSION_API_PATH, MINIAPP_UPLOAD_BATCH_SIZE, MINIAPP_UPLOAD_SCOPE, MINIAPP_UPLOAD_TOTAL_SIZE_LIMIT_BYTES, 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_SQUARE_DISPLAY_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, validateUploadTotalSize };