@heybox/hb-sdk 0.5.10 → 0.5.12

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 (36) hide show
  1. package/README.md +99 -55
  2. package/dist/cli-chunks/{create-D1W2pkHZ.cjs → create-Ba353lSg.cjs} +1 -1
  3. package/dist/cli-chunks/{dev-DwbE-c1x.cjs → dev-BhPFNef-.cjs} +1 -1
  4. package/dist/cli-chunks/{doctor-Bx71WFjM.cjs → doctor-CP4kwgAn.cjs} +1 -1
  5. package/dist/cli-chunks/{index-D5bZjpH9.cjs → index-BfpHPA6k.cjs} +2 -2
  6. package/dist/cli-chunks/{index-BBatNb1l.cjs → index-DeamIV1-.cjs} +57 -13
  7. package/dist/cli-chunks/{login-BX0YmVyi.cjs → login-DMNap0-y.cjs} +2 -2
  8. package/dist/cli-chunks/{remote-YDmSxyYi.cjs → remote-gXUjRvGB.cjs} +117 -3
  9. package/dist/cli-chunks/{session-BxZBXDZ-.cjs → session-D5Vf-fNZ.cjs} +1 -1
  10. package/dist/cli.cjs +1 -1
  11. package/dist/devtools/mock-host/main.js +590 -0
  12. package/dist/index.cjs.js +84 -4
  13. package/dist/index.esm.js +84 -5
  14. package/dist/miniapp-publish.cjs.js +8 -0
  15. package/dist/miniapp-publish.esm.js +5 -1
  16. package/dist/protocol.cjs.js +50 -0
  17. package/dist/protocol.esm.js +46 -1
  18. package/package.json +2 -4
  19. package/skill/SKILL.md +4 -3
  20. package/skill/references/api-protocol.md +27 -7
  21. package/skill/references/api-root.md +64 -4
  22. package/skill/references/cli.md +3 -3
  23. package/skill/references/examples.md +2 -1
  24. package/skill/references/llms-index.md +16 -37
  25. package/skill/references/recipes.md +9 -9
  26. package/skill/references/safety-boundaries.md +3 -2
  27. package/skill/scripts/sync-references.mjs +35 -25
  28. package/skill/skill.json +4 -4
  29. package/types/core/client.d.ts +5 -1
  30. package/types/core/sdk.d.ts +3 -0
  31. package/types/core/singleton.d.ts +3 -0
  32. package/types/index.d.ts +3 -1
  33. package/types/miniapp-publish/index.d.ts +4 -0
  34. package/types/modules/cloud/index.d.ts +100 -0
  35. package/types/protocol/capabilities.d.ts +55 -2
  36. package/types/protocol.d.ts +3 -2
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var promises = require('node:readline/promises');
4
- var session = require('./session-BxZBXDZ-.cjs');
4
+ var session = require('./session-D5Vf-fNZ.cjs');
5
5
  var childProcess = require('node:child_process');
6
6
  var fs = require('node:fs');
7
7
  var fs$1 = require('node:fs/promises');
8
8
  var path = require('node:path');
9
- var index = require('./index-BBatNb1l.cjs');
9
+ var index = require('./index-DeamIV1-.cjs');
10
10
 
11
11
  var re = {exports: {}};
12
12
 
@@ -2866,6 +2866,10 @@ const CREATE_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/creat
2866
2866
  const DETAIL_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/detail';
2867
2867
  const USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist';
2868
2868
  const UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH = '/mall/developer/user_miniprogram/preview_allowlist/update';
2869
+ const CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH = '/mall/developer/user_miniprogram/leaderboard/create';
2870
+ const DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH = '/mall/developer/user_miniprogram/leaderboard/detail';
2871
+ const LIST_USER_MINIPROGRAM_LEADERBOARD_API_PATH = '/mall/developer/user_miniprogram/leaderboard/list';
2872
+ const DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH = '/mall/developer/user_miniprogram/leaderboard/delete';
2869
2873
  const PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH = '/mall/developer/user_miniprogram/version/precheck';
2870
2874
  const SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH = '/mall/developer/user_miniprogram/version/submit_audit';
2871
2875
  const USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH = '/mall/developer/user_miniprogram/version/preview_info';
@@ -3111,7 +3115,7 @@ async function createDefaultCosClient(uploadToken) {
3111
3115
  };
3112
3116
  }
3113
3117
  async function loadCosConstructor() {
3114
- const cosModule = await Promise.resolve().then(function () { return require('./index-D5bZjpH9.cjs'); }).then(function (n) { return n.index; });
3118
+ const cosModule = await Promise.resolve().then(function () { return require('./index-BfpHPA6k.cjs'); }).then(function (n) { return n.index; });
3115
3119
  return cosModule.default;
3116
3120
  }
3117
3121
  function formatSize(bytes) {
@@ -3627,6 +3631,10 @@ function createRemoteApiClient(options) {
3627
3631
  getUserMiniprogramDetail: (requestOptions) => getUserMiniprogramDetail(requestOptions, options),
3628
3632
  getPreviewAllowlist: (requestOptions) => getPreviewAllowlist(requestOptions, options),
3629
3633
  updatePreviewAllowlist: (requestOptions) => updatePreviewAllowlist(requestOptions, options),
3634
+ createUserMiniprogramLeaderboard: (requestOptions) => createUserMiniprogramLeaderboard(requestOptions, options),
3635
+ getUserMiniprogramLeaderboard: (requestOptions) => getUserMiniprogramLeaderboard(requestOptions, options),
3636
+ listUserMiniprogramLeaderboards: (requestOptions) => listUserMiniprogramLeaderboards(requestOptions, options),
3637
+ deleteUserMiniprogramLeaderboard: (requestOptions) => deleteUserMiniprogramLeaderboard(requestOptions, options),
3630
3638
  precheckUserMiniprogramVersion: (requestOptions) => precheckUserMiniprogramVersion(requestOptions, options),
3631
3639
  submitUserMiniprogramAudit: (requestOptions) => submitUserMiniprogramAudit(requestOptions, options),
3632
3640
  getVersionPreviewInfo: (requestOptions) => getVersionPreviewInfo(requestOptions, options),
@@ -3662,6 +3670,18 @@ async function getPreviewAllowlist(options, runtime) {
3662
3670
  async function updatePreviewAllowlist(options, runtime) {
3663
3671
  return remotePostForm(UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, options, runtime);
3664
3672
  }
3673
+ async function createUserMiniprogramLeaderboard(options, runtime) {
3674
+ return remotePostForm(CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, options, runtime);
3675
+ }
3676
+ async function getUserMiniprogramLeaderboard(options, runtime) {
3677
+ return remoteGet(DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH, options, runtime);
3678
+ }
3679
+ async function listUserMiniprogramLeaderboards(options, runtime) {
3680
+ return remoteGet(LIST_USER_MINIPROGRAM_LEADERBOARD_API_PATH, options, runtime);
3681
+ }
3682
+ async function deleteUserMiniprogramLeaderboard(options, runtime) {
3683
+ return (await remotePostForm(DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, options, runtime, { requireResult: false })) ?? {};
3684
+ }
3665
3685
  async function precheckUserMiniprogramVersion(options, runtime) {
3666
3686
  return remotePostForm(PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH, options, runtime);
3667
3687
  }
@@ -3897,6 +3917,14 @@ async function runRemoteCommand(options, runtime = {}) {
3897
3917
  case 'allowlist:remove':
3898
3918
  case 'allowlist:set':
3899
3919
  return remoteAllowlistWrite(options, context, runtime);
3920
+ case 'cloud:leaderboard:create':
3921
+ return remoteLeaderboardCreate(options, context, runtime);
3922
+ case 'cloud:leaderboard:get':
3923
+ return remoteLeaderboardGet(options, context, runtime);
3924
+ case 'cloud:leaderboard:list':
3925
+ return remoteLeaderboardList(options, context, runtime);
3926
+ case 'cloud:leaderboard:delete':
3927
+ return remoteLeaderboardDelete(options, context, runtime);
3900
3928
  case 'versions':
3901
3929
  return remoteVersions(options, context, runtime);
3902
3930
  case 'preview':
@@ -3980,6 +4008,19 @@ function adaptRemoteApiClient(api) {
3980
4008
  getMiniProgramDetail: (miniProgramId) => api.getUserMiniprogramDetail({ mini_program_id: miniProgramId }),
3981
4009
  getAllowlist: (miniProgramId) => api.getPreviewAllowlist({ mini_program_id: miniProgramId }),
3982
4010
  updateAllowlist: ({ miniProgramId, heyboxIds }) => api.updatePreviewAllowlist({ mini_program_id: miniProgramId, heybox_ids: heyboxIds }),
4011
+ createLeaderboard: ({ miniProgramId, key, order, rankLimit }) => api.createUserMiniprogramLeaderboard({
4012
+ mini_program_id: miniProgramId,
4013
+ key,
4014
+ order,
4015
+ rank_limit: rankLimit,
4016
+ }),
4017
+ getLeaderboard: ({ miniProgramId, key }) => api.getUserMiniprogramLeaderboard({ mini_program_id: miniProgramId, key }),
4018
+ listLeaderboards: ({ miniProgramId, createdAtStart, createdAtEnd }) => api.listUserMiniprogramLeaderboards({
4019
+ mini_program_id: miniProgramId,
4020
+ created_at_start: createdAtStart,
4021
+ created_at_end: createdAtEnd,
4022
+ }),
4023
+ deleteLeaderboard: ({ miniProgramId, key, confirm }) => api.deleteUserMiniprogramLeaderboard({ mini_program_id: miniProgramId, key, confirm }),
3983
4024
  listVersions: (miniProgramId) => api.listUserMiniprogramVersions({ mini_program_id: miniProgramId, offset: 0, limit: 50 }),
3984
4025
  getPreviewInfo: ({ miniProgramId, version }) => api.getVersionPreviewInfo({ mini_program_id: miniProgramId, version }),
3985
4026
  listDeveloperEntities: () => api.listDeveloperEntities(),
@@ -4163,6 +4204,65 @@ async function remoteAllowlistWrite(options, context, runtime) {
4163
4204
  }
4164
4205
  return finishRemoteCommand(options, runtime, output);
4165
4206
  }
4207
+ async function remoteLeaderboardCreate(options, context, runtime) {
4208
+ const miniProgramId = requireBinding(context);
4209
+ const order = requireNonEmpty(options.order, 'remote cloud leaderboard create 必须传 --order asc|desc');
4210
+ if (order !== 'asc' && order !== 'desc') {
4211
+ throw new Error(`排行榜排序方向只支持 asc 或 desc:${order}`);
4212
+ }
4213
+ const key = options.key === undefined ? undefined : requireNonEmpty(options.key, '排行榜 key 不能为空');
4214
+ await assertBoundMiniProgramEntityMatchesCurrent(context, miniProgramId);
4215
+ const result = await context.api.createLeaderboard({
4216
+ miniProgramId,
4217
+ key,
4218
+ order,
4219
+ rankLimit: options.rankLimit,
4220
+ });
4221
+ const output = { changed: true, miniProgramId, leaderboard: toCamelCaseDeep(result) };
4222
+ if (!options.json) {
4223
+ context.logger.success(`排行榜创建成功:${String(result.key || key || 'default')}`);
4224
+ }
4225
+ return finishRemoteCommand(options, runtime, output);
4226
+ }
4227
+ async function remoteLeaderboardGet(options, context, runtime) {
4228
+ const miniProgramId = requireBinding(context);
4229
+ const key = requireNonEmpty(options.key, 'remote cloud leaderboard get 必须传 <key>');
4230
+ const result = await context.api.getLeaderboard({ miniProgramId, key });
4231
+ const output = { changed: false, miniProgramId, leaderboard: toCamelCaseDeep(result) };
4232
+ if (!options.json) {
4233
+ printLeaderboardDetail(context.logger, result);
4234
+ }
4235
+ return finishRemoteCommand(options, runtime, output);
4236
+ }
4237
+ async function remoteLeaderboardList(options, context, runtime) {
4238
+ const miniProgramId = requireBinding(context);
4239
+ const result = await context.api.listLeaderboards({
4240
+ miniProgramId,
4241
+ createdAtStart: options.createdAtStart,
4242
+ createdAtEnd: options.createdAtEnd,
4243
+ });
4244
+ const leaderboards = Array.isArray(result.leaderboards) ? result.leaderboards : [];
4245
+ const output = { changed: false, miniProgramId, leaderboards: toCamelCaseDeep(leaderboards) };
4246
+ if (!options.json) {
4247
+ printLeaderboards(context.logger, leaderboards);
4248
+ }
4249
+ return finishRemoteCommand(options, runtime, output);
4250
+ }
4251
+ async function remoteLeaderboardDelete(options, context, runtime) {
4252
+ const miniProgramId = requireBinding(context);
4253
+ const key = requireNonEmpty(options.key, 'remote cloud leaderboard delete 必须传 <key>');
4254
+ const confirm = requireNonEmpty(options.confirm, 'remote cloud leaderboard delete 必须传 --confirm <key>');
4255
+ if (confirm !== key) {
4256
+ throw new Error('--confirm 必须与要删除的排行榜 key 完全一致');
4257
+ }
4258
+ await assertBoundMiniProgramEntityMatchesCurrent(context, miniProgramId);
4259
+ await context.api.deleteLeaderboard({ miniProgramId, key, confirm });
4260
+ const output = { changed: true, miniProgramId, key };
4261
+ if (!options.json) {
4262
+ context.logger.success(`排行榜已删除:${key}`);
4263
+ }
4264
+ return finishRemoteCommand(options, runtime, output);
4265
+ }
4166
4266
  async function remoteVersions(options, context, runtime) {
4167
4267
  const miniProgramId = requireBinding(context);
4168
4268
  const result = await context.api.listVersions(miniProgramId);
@@ -4590,6 +4690,20 @@ function printAllowlist(logger, result) {
4590
4690
  logger.info(`${item.heybox_id ?? '--'}${item.is_owner ? ' (owner)' : ''}${item.nickname ? ` ${item.nickname}` : ''}`);
4591
4691
  }
4592
4692
  }
4693
+ function printLeaderboards(logger, leaderboards) {
4694
+ if (leaderboards.length === 0) {
4695
+ logger.info('暂无云端排行榜');
4696
+ return;
4697
+ }
4698
+ for (const item of leaderboards) {
4699
+ logger.info(`${item.key ?? '--'} order=${item.order ?? '--'} rankLimit=${readNumber(item.rank_limit, 0)}`);
4700
+ }
4701
+ }
4702
+ function printLeaderboardDetail(logger, detail) {
4703
+ logger.info(`Leaderboard: ${detail.key ?? '--'}`);
4704
+ logger.info(`Order: ${detail.order ?? '--'}`);
4705
+ logger.info(`Rank limit: ${readNumber(detail.rank_limit, 0)}`);
4706
+ }
4593
4707
  function readNumber(value, fallback) {
4594
4708
  return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
4595
4709
  }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BBatNb1l.cjs');
3
+ var index = require('./index-DeamIV1-.cjs');
4
4
  var node_crypto = require('node:crypto');
5
5
  var path = require('node:path');
6
6
  var require$$0$2 = require('fs');
package/dist/cli.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./cli-chunks/index-BBatNb1l.cjs');
3
+ var index = require('./cli-chunks/index-DeamIV1-.cjs');
4
4
  require('node:module');
5
5
  require('node:fs');
6
6
  require('node:fs/promises');