@heybox/hb-sdk 0.8.1 → 0.8.2-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 (64) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +2 -2
  3. package/dist/cli-chunks/{build-DPe1Ycjd.cjs → build-bVThH3Z5.cjs} +4 -4
  4. package/dist/cli-chunks/{context-BSUhAv3Z.cjs → context-DpKqGnjp.cjs} +2 -2
  5. package/dist/cli-chunks/{create-CaiKrGnb.cjs → create-BWC2343y.cjs} +1 -1
  6. package/dist/cli-chunks/{dev-BG1o8Q-0.cjs → dev-t14YpHHY.cjs} +9 -9
  7. package/dist/cli-chunks/{doctor-DutO2P5H.cjs → doctor-BWkrE0Hj.cjs} +1 -1
  8. package/dist/cli-chunks/{index-CKIyipP9.cjs → index-CDtcZVWv.cjs} +15 -15
  9. package/dist/cli-chunks/{index-Bur0U2z1.cjs → index-D3FMcOZq.cjs} +2 -2
  10. package/dist/cli-chunks/{index.esm-BPlpP-O0.cjs → index.esm-BrJBaJWS.cjs} +7 -7
  11. package/dist/cli-chunks/{login-C1JlLEza.cjs → login-DRMl7nFH.cjs} +2 -2
  12. package/dist/cli-chunks/{project-vite-Bd0WzAqQ.cjs → project-vite-CXgdzIYw.cjs} +1 -1
  13. package/dist/cli-chunks/{remote-DTFEf3Dj.cjs → remote-ibQybNiM.cjs} +6 -6
  14. package/dist/cli-chunks/{runtime-permission-env-C2S34ldj.cjs → runtime-permission-env-DiTeD75Q.cjs} +576 -20
  15. package/dist/cli-chunks/{session-zXVkHuhY.cjs → session-CIoBspg-.cjs} +1 -1
  16. package/dist/cli-chunks/{skill-CCB3DyXk.cjs → skill-5labzuWk.cjs} +2 -2
  17. package/dist/cli-chunks/{version-0qwlEyZC.cjs → version-QiVEs76a.cjs} +1 -1
  18. package/dist/cli.cjs +1 -1
  19. package/dist/devtools/browser-dev-host/assets/browser-dev-host-DxzOkljJ.js +101 -0
  20. package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-DOfl5YvO.js → desktop-app-launch-B4KsgItx.js} +1 -1
  21. package/dist/devtools/browser-dev-host/assets/{index-CFr28-0O.js → index-9Nb3XhtI.js} +3 -3
  22. package/dist/devtools/browser-dev-host/index.html +2 -2
  23. package/dist/index.cjs.js +948 -44
  24. package/dist/index.esm.js +948 -44
  25. package/dist/miniapp-publish.cjs.js +536 -30
  26. package/dist/miniapp-publish.esm.js +536 -30
  27. package/dist/protocol.cjs.js +807 -2
  28. package/dist/protocol.esm.js +807 -2
  29. package/dist/vite.cjs.js +184 -1
  30. package/dist/vite.esm.js +184 -1
  31. package/package.json +7 -7
  32. package/skill/references/api-root.md +192 -8
  33. package/skill/references/recipes.md +45 -7
  34. package/skill/skill.json +5 -5
  35. package/types/core/errors.d.ts +33 -9
  36. package/types/core/handshake-state.d.ts +32 -2
  37. package/types/core/singleton.d.ts +265 -6
  38. package/types/miniapp-manifest/bindings.d.ts +65 -0
  39. package/types/miniapp-manifest/schema.d.ts +136 -19
  40. package/types/miniapp-publish/index.d.ts +425 -29
  41. package/types/modules/auth/index.d.ts +159 -5
  42. package/types/modules/cloud/index.d.ts +514 -40
  43. package/types/modules/companion/index.d.ts +1518 -17
  44. package/types/modules/device/index.d.ts +140 -9
  45. package/types/modules/environment/index.d.ts +172 -4
  46. package/types/modules/files/types.d.ts +1396 -21
  47. package/types/modules/navigation/app-pages/types.d.ts +81 -24
  48. package/types/modules/navigation/index.d.ts +230 -7
  49. package/types/modules/network/index.d.ts +297 -26
  50. package/types/modules/share/copy-link.d.ts +35 -5
  51. package/types/modules/share/index.d.ts +210 -0
  52. package/types/modules/share/screenshot.d.ts +23 -5
  53. package/types/modules/share/show-share-menu.d.ts +18 -5
  54. package/types/modules/share/types.d.ts +148 -23
  55. package/types/modules/storage/index.d.ts +139 -9
  56. package/types/modules/ui/index.d.ts +249 -18
  57. package/types/modules/user/get-info.d.ts +29 -8
  58. package/types/modules/user/index.d.ts +157 -0
  59. package/types/modules/user/revoke-authorization.d.ts +26 -2
  60. package/types/modules/user/steam-game-list.d.ts +96 -15
  61. package/types/modules/viewport/index.d.ts +158 -22
  62. package/types/protocol/types.d.ts +19 -1
  63. package/types/vite/index.d.ts +159 -1
  64. package/dist/devtools/browser-dev-host/assets/browser-dev-host-pUcws1MK.js +0 -101
@@ -1,88 +1,334 @@
1
1
  import type { MiniProgramRequester } from '../../core/client';
2
2
  export { CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_INFO_METHOD, CLOUD_LEADERBOARD_GET_LIST_METHOD, CLOUD_LEADERBOARD_SUBMIT_METHOD, } from '../../protocol/capabilities';
3
- /** 排行榜排序方向。 */
3
+ /**
4
+ * 排行榜排序方向。
5
+ *
6
+ * `desc` 将较大的 `score` 排在前面,`asc` 将较小的 `score` 排在前面。
7
+ * 排序方向由榜单创建时决定,SDK 查询不会临时改变它。
8
+ */
4
9
  export type LeaderboardOrder = 'asc' | 'desc';
5
- /** 排行榜记录。 */
10
+ /**
11
+ * 平台托管的排行榜记录。
12
+ *
13
+ * 一个用户在一个榜单中最多对应一条记录。`rank` 只有在 `ranked` 为 `true`
14
+ * 时才是可展示的名次;否则必须把记录视为“已保存但当前没有精确名次”。
15
+ */
6
16
  export interface LeaderboardEntry {
7
- /** 排名;未进入展示范围或超出当前用户排名计算上限时为 0。 */
17
+ /** 排名;未进入展示范围或超出当前用户排名计算上限时为 `0`。 */
8
18
  rank: number;
9
- /** 是否进入展示范围并位于当前用户排名计算上限内。 */
19
+ /** 是否同时进入榜单展示范围并位于当前用户排名计算上限内。 */
10
20
  ranked: boolean;
11
- /** 当前小程序内稳定的用户标识,由平台注入,前端不能传入。 */
21
+ /** 当前小程序内稳定且隔离的用户标识,由平台注入,前端不能传入或推断。 */
12
22
  appUserId: string;
13
- /** 分数,排行榜唯一排序字段。 */
23
+ /** 分数;排行榜唯一排序字段,`extra` 不参与排序。 */
14
24
  score: number;
15
- /** 展示附加信息,不参与排序和查询。 */
25
+ /** 展示附加信息;会随列表返回给有权读取该榜单的用户,不参与排序和查询。 */
16
26
  extra: Record<string, unknown>;
17
- /** 记录创建时间,秒级时间戳。 */
27
+ /** 服务端返回的记录创建时间戳;当前公开合同不承诺单位或时钟来源。 */
18
28
  createdAt: number;
19
- /** 记录更新时间,秒级时间戳。 */
29
+ /** 服务端返回的记录更新时间戳;当前公开合同不承诺单位或时钟来源。 */
20
30
  updatedAt: number;
21
31
  }
22
- /** 提交当前用户排行榜分数。 */
32
+ /**
33
+ * `cloud.leaderboard.submit` 的提交参数。
34
+ *
35
+ * @remarks
36
+ * 同一个小程序、榜单和当前用户最多保留一条记录。该对象只接受 `key`、`score`、`extra`;
37
+ * 额外字段(包括调用方提供的用户 ID、rank 或 order)会以 `INVALID_PARAMS` 拒绝。当前用户
38
+ * 与小程序 identity 由 Host 和平台注入。
39
+ */
23
40
  export interface SubmitLeaderboardEntryPayload {
24
- /** 排行榜 key;不传时由服务端使用当前小程序已创建的 default 榜单。 */
41
+ /**
42
+ * 排行榜 key;省略时使用当前小程序已创建的 `default` 榜单。
43
+ *
44
+ * @remarks
45
+ * 必须匹配 `/^[A-Za-z0-9_-]{1,64}$/`,即 1 至 64 位 ASCII 字母、数字、下划线或
46
+ * 连字符。空字符串、空格、中文、点号、路径分隔符或超长 key 会在读取 Host 登录态和
47
+ * 发起网络请求前以 `INVALID_PARAMS` 拒绝。`default` 榜单也必须预先创建。
48
+ */
25
49
  key?: string;
26
- /** 本次提交分数,必须是有限安全数字,范围不超过 JavaScript safe number。 */
50
+ /**
51
+ * 本次提交分数;没有默认值。
52
+ *
53
+ * @remarks
54
+ * 必须是有限 `number`,且绝对值不超过 `Number.MAX_SAFE_INTEGER`。负数、`0` 和小数均
55
+ * 可用;数字字符串、`NaN`、正负 `Infinity` 或超出安全精度范围的值会以
56
+ * `INVALID_PARAMS` 拒绝。分数是唯一排名字段,`extra` 不参与比较。
57
+ */
27
58
  score: number;
28
- /** 展示附加信息,不参与排序和查询;已有记录更新为更优分数时不传则保留旧值,序列化后不超过 2048 字节。 */
59
+ /**
60
+ * 随被保留分数一起保存的公开展示附加信息。
61
+ *
62
+ * @remarks
63
+ * 必须是非 `null`、非数组且可 JSON 序列化的对象。完整 JSON(含属性名、引号、转义和
64
+ * 结构字符)按 UTF-8 计算最多 `2048` bytes;超限、循环引用或 `BigInt` 会以
65
+ * `INVALID_PARAMS` 拒绝。函数、Symbol 等不能通过 iframe structured clone 的成员可能在
66
+ * 请求到达 Runtime 前触发 `DataCloneError`。应只传普通 JSON 数据。
67
+ *
68
+ * 首次提交省略 `extra` 时平台保存并返回 `{}`。已有记录收到更优分数时,省略此字段会
69
+ * 保留旧 extra,显式传 `{}` 才会清空;分数同分或更差时,即使传入新 extra 也不会更新。
70
+ * `extra` 会随 `getList()` 返回给其他读取者,不要放入 token、邮箱、外部账号、设备标识
71
+ * 或其他非必要敏感信息。
72
+ */
29
73
  extra?: Record<string, unknown>;
30
74
  }
31
- /** 提交排行榜分数后返回的当前用户最终记录。 */
75
+ /**
76
+ * 提交完成后服务端为当前用户保留的最终 {@link LeaderboardEntry}。
77
+ *
78
+ * @remarks
79
+ * 服务端不会另返 `created` 或 `updated` 标记。同分或更差提交成功时,本类型仍返回提交前
80
+ * 已保存的更优记录,因此 `score`、`extra` 和 `updatedAt` 可能与本次入参不同;调用方应以
81
+ * 返回值更新 UI,而不是假定入参已经落库。
82
+ *
83
+ * 结果固定包含 `rank`、`ranked`、平台注入的 `appUserId`、最终 `score` / `extra`,以及
84
+ * 服务端时间戳 `createdAt` / `updatedAt`。`ranked: true` 时 `rank` 为正整数;超出榜单
85
+ * `rankLimit` 或前 5000 名精确排名范围时记录仍存在,但返回 `ranked: false, rank: 0`。
86
+ */
32
87
  export type SubmitLeaderboardEntryResult = LeaderboardEntry;
33
- /** 读取排行榜列表。 */
88
+ /**
89
+ * `cloud.leaderboard.getList` 的分页参数。
90
+ *
91
+ * @remarks
92
+ * 只接受 `key`、`limit` 与 `cursor`;额外字段会以 `INVALID_PARAMS` 拒绝。排序方向与列表名次
93
+ * 范围由榜单创建配置决定,不能通过此对象传入 `order`、`rankLimit` 或用户身份。
94
+ */
34
95
  export interface GetLeaderboardListPayload {
35
- /** 排行榜 key;不传时由服务端使用当前小程序已创建的 default 榜单。 */
96
+ /**
97
+ * 排行榜 key;省略 `options` 或此字段时使用当前小程序已创建的 `default` 榜单。
98
+ *
99
+ * @remarks
100
+ * 显式 key 必须匹配 `/^[A-Za-z0-9_-]{1,64}$/`,即 1 至 64 位 ASCII 字母、数字、
101
+ * 下划线或连字符。空字符串、空格、中文、点号、路径分隔符或超长 key 会在发起 Host
102
+ * 请求前以 `INVALID_PARAMS` 拒绝。`default` 榜单也必须预先创建。
103
+ */
36
104
  key?: string;
37
- /** 每页数量,默认 20,最大 100。 */
105
+ /**
106
+ * 本页最多请求的记录数,默认 `20`。
107
+ *
108
+ * @remarks
109
+ * 必须是 `1` 至 `100`(含边界)的有限整数;`0`、负数、小数、`NaN`、`Infinity` 和
110
+ * 超过 `100` 的值会以 `INVALID_PARAMS` 拒绝。实际 `entries.length` 可能因到达末页或
111
+ * 榜单 `rankLimit` 展示边界而小于 limit,不能据此推断是否还有下一页。
112
+ */
38
113
  limit?: number;
39
- /** 服务端返回的不透明分页游标;只能原样传回下一页,不能自行构造或解析。 */
114
+ /**
115
+ * 上一页返回的不透明分页游标;首屏省略。
116
+ *
117
+ * @remarks
118
+ * 传入时必须是字符串。只能把同一榜单上一页返回的值原样传回,不能解析、修改、构造、
119
+ * 持久化为页码或跨榜单复用;续页时应保持相同的 key 和 limit。
120
+ */
40
121
  cursor?: string;
41
122
  }
42
- /** 读取排行榜列表的分页结果。 */
123
+ /**
124
+ * 排行榜列表的一页规范化结果。
125
+ *
126
+ * @remarks
127
+ * 记录顺序由榜单 `order` 决定,并受 `rankLimit` 展示范围限制。空 `entries` 是合法页面;
128
+ * 是否继续只能看 `hasMore`,不能用数组长度或是否有 cursor 单独推断。
129
+ */
43
130
  export interface GetLeaderboardListResult {
44
- /** 当前页排行榜记录。 */
131
+ /**
132
+ * 当前页排行榜记录,按服务端名次顺序返回。
133
+ *
134
+ * 每条 {@link LeaderboardEntry} 包含 `rank`、`ranked`、小程序隔离的 `appUserId`、排序字段
135
+ * `score`、公开展示 `extra`,以及服务端时间戳 `createdAt` / `updatedAt`。`extra` 不参与
136
+ * 排序,`appUserId` 不是黑盒用户 ID,也不能用于跨小程序关联用户。
137
+ */
45
138
  entries: LeaderboardEntry[];
46
- /** 下一页不透明分页游标;仅当 hasMore 为 true 时可能返回。 */
139
+ /**
140
+ * 下一页不透明分页游标;仅当服务端返回非空 cursor 时存在。应在 `hasMore: true` 时原样
141
+ * 传给同一 key 和 limit 的下一次 `getList()`,不要解析或自行递增。
142
+ */
47
143
  cursor?: string;
48
- /** 是否还有下一页。 */
144
+ /**
145
+ * 服务端对“是否还有下一页”的权威判断。`false` 表示遍历结束;不要用
146
+ * `entries.length === limit` 或 cursor 是否存在替代该字段。
147
+ */
49
148
  hasMore: boolean;
50
149
  }
51
- /** 读取当前用户在排行榜中的记录。 */
150
+ /**
151
+ * `cloud.leaderboard.getCurrentUserEntry` 的可选参数。
152
+ *
153
+ * @remarks
154
+ * 该对象只能选择榜单,不能携带 `appUserId`、黑盒用户 ID 或其他目标用户字段;额外字段会
155
+ * 以 `INVALID_PARAMS` 拒绝。被读取的用户始终由 Host 当前登录态和受信服务端会话确定。
156
+ */
52
157
  export interface GetCurrentUserLeaderboardEntryPayload {
53
- /** 排行榜 key;不传时由服务端使用当前小程序已创建的 default 榜单。 */
158
+ /**
159
+ * 排行榜 key;省略 `options` 或此字段时使用当前小程序已创建的 `default` 榜单。
160
+ *
161
+ * @remarks
162
+ * 显式 key 必须匹配 `/^[A-Za-z0-9_-]{1,64}$/`,即 1 至 64 位 ASCII 字母、数字、
163
+ * 下划线或连字符。空字符串、空格、中文、点号、路径分隔符或超长 key 会在读取 Host
164
+ * 登录态和发起网络请求前以 `INVALID_PARAMS` 拒绝。`default` 榜单也必须预先创建。
165
+ */
54
166
  key?: string;
55
167
  }
56
- /** 当前用户排行榜记录;不存在时返回 undefined。 */
168
+ /**
169
+ * 当前用户排行榜记录,或表示“没有记录”的 `undefined`。
170
+ *
171
+ * @remarks
172
+ * `undefined` 是成功的正常空结果,不会抛出“记录不存在”错误。它与返回一条
173
+ * `{ ranked: false, rank: 0, ... }` 的记录不同:后者表示分数仍已保存,只是超出榜单展示
174
+ * 范围或当前前 5000 名精确排名范围。
175
+ *
176
+ * 非空 {@link LeaderboardEntry} 固定包含:平台注入且仅在当前小程序内有意义的
177
+ * `appUserId`;用于排序的 `score`;不参与排序的公开展示 `extra`;服务端
178
+ * `createdAt` / `updatedAt`;以及必须成对解释的 `ranked` / `rank`。`ranked: true` 时
179
+ * `rank` 是正整数名次;`ranked: false` 时 `rank` 固定为 `0`,不能展示为“第 0 名”。
180
+ */
57
181
  export type GetCurrentUserLeaderboardEntryResult = LeaderboardEntry | undefined;
58
- /** 删除当前用户在排行榜中的记录。 */
182
+ /**
183
+ * `cloud.leaderboard.deleteCurrentUserEntry` 的可选参数。
184
+ *
185
+ * @remarks
186
+ * 该对象只能选择榜单,不能携带 `appUserId`、黑盒用户 ID 或其他目标用户字段;额外字段会
187
+ * 以 `INVALID_PARAMS` 拒绝。被删除的用户始终由 Host 登录态和受信服务端会话确定。
188
+ */
59
189
  export interface DeleteCurrentUserLeaderboardEntryPayload {
60
- /** 排行榜 key;不传时由服务端使用当前小程序已创建的 default 榜单。 */
190
+ /**
191
+ * 排行榜 key;省略 `options` 或此字段时使用当前小程序已创建的 `default` 榜单。
192
+ *
193
+ * @remarks
194
+ * 显式 key 必须匹配 `/^[A-Za-z0-9_-]{1,64}$/`,即 1 至 64 位 ASCII 字母、数字、
195
+ * 下划线或连字符。空字符串、空格、中文、点号、路径分隔符或超长 key 会在发起 Host
196
+ * 请求前以 `INVALID_PARAMS` 拒绝。`default` 也必须预先创建,不是临时生成的本地榜单。
197
+ */
61
198
  key?: string;
62
199
  }
63
- /** 删除当前用户排行榜记录的结果。 */
200
+ /**
201
+ * 删除当前用户排行榜记录的结果。
202
+ *
203
+ * @remarks
204
+ * 结果只包含是否实际删除记录,不返回被删除的分数、名次、`extra` 或用户身份。删除不存在
205
+ * 的记录以及对同一记录重复删除都会成功返回 `{ deleted: false }`,适合按幂等操作处理。
206
+ */
64
207
  export interface DeleteCurrentUserLeaderboardEntryResult {
65
- /** 是否实际删除了已有记录。 */
208
+ /**
209
+ * `true` 表示本次请求实际删除了一条已有记录;`false` 表示请求成功,但调用时已无记录。
210
+ * `false` 是正常空结果,不应作为异常、权限失败或需要重试的信号。
211
+ */
66
212
  deleted: boolean;
67
213
  }
68
- /** 读取排行榜基础信息。 */
214
+ /**
215
+ * `cloud.leaderboard.getInfo` 的可选参数。
216
+ *
217
+ * @remarks
218
+ * 该对象只用于选择当前小程序所属的榜单;额外字段会以 `INVALID_PARAMS` 拒绝。查询不会
219
+ * 接受用户身份、排序方向、名次上限或分页参数,也不会临时覆盖榜单创建时的配置。
220
+ */
69
221
  export interface GetLeaderboardInfoPayload {
70
- /** 排行榜 key;不传时由服务端使用当前小程序已创建的 default 榜单。 */
222
+ /**
223
+ * 排行榜 key;省略 `options` 或此字段时使用当前小程序已创建的 `default` 榜单。
224
+ *
225
+ * @remarks
226
+ * 显式 key 必须匹配 `/^[A-Za-z0-9_-]{1,64}$/`,即 1 至 64 位 ASCII 字母、数字、
227
+ * 下划线或连字符。空字符串、空格、中文、点号、路径分隔符或超长 key 会在发起 Host
228
+ * 请求前以 `INVALID_PARAMS` 拒绝。`default` 榜单也必须预先创建。
229
+ */
71
230
  key?: string;
72
231
  }
73
- /** 排行榜基础配置。 */
232
+ /**
233
+ * 排行榜创建时确定的基础配置。
234
+ *
235
+ * @remarks
236
+ * 该结果不包含记录、当前用户、记录总数、分页游标或可修改配置。`order` 与 `rankLimit`
237
+ * 只能通过平台管理流程配置,不能在运行时查询参数中覆盖。
238
+ */
74
239
  export interface GetLeaderboardInfoResult {
75
- /** 排行榜 key。 */
240
+ /**
241
+ * 服务端实际解析的榜单 key。省略请求 key 时通常为 `default`;显式请求时必须与请求值
242
+ * 一致,否则 Runtime 以 `INVALID_RESPONSE` 拒绝响应。
243
+ */
76
244
  key: string;
77
- /** 排行榜排序方向。 */
245
+ /**
246
+ * 排行榜排序与“更优分数”的方向:`desc` 表示分数越大名次越靠前,`submit()` 只用更高
247
+ * 分更新记录;`asc` 表示分数越小越靠前,`submit()` 只用更低分更新记录。
248
+ */
78
249
  order: LeaderboardOrder;
79
- /** 列表展示名次上限;0 表示不限制。当前用户记录仍最多精确计算前 5000 名。 */
250
+ /**
251
+ * `getList()` 可展示的名次上限,必须是非负整数;`0` 表示列表不设置名次上限。
252
+ *
253
+ * @remarks
254
+ * 它不是记录数量上限、分页大小或清理策略:超出范围的记录仍保存,`getList({ limit })`
255
+ * 的 `limit` 只控制单页数量,不能突破非零 `rankLimit`。当前用户记录的 `ranked` 还同时
256
+ * 受前 5000 名精确排名上限约束;因此 `rankLimit: 0` 时仍可能得到
257
+ * `ranked: false, rank: 0`。
258
+ */
80
259
  rankLimit: number;
81
260
  }
82
261
  /** 外部小程序可调用的云端排行榜模块。 */
83
262
  export interface MiniProgramCloudLeaderboardModule {
84
263
  /**
85
- * 提交当前用户分数。
264
+ * 为当前登录用户创建记录,或仅在分数更优时更新已有记录。
265
+ *
266
+ * @param options - 必填分数、可选榜单 key 和公开展示 extra;必须符合
267
+ * {@link SubmitLeaderboardEntryPayload} 的字段、数值与序列化约束。
268
+ * @returns 服务端保存的当前用户最终 {@link LeaderboardEntry}。首次提交返回新记录;同分
269
+ * 或更差时调用仍成功,但返回原有记录,不代表本次 score / extra 已更新。
270
+ * @throws {@link HbMiniProgramSDKError} `INVALID_PARAMS`:`options` 不是对象、含未知字段,
271
+ * key 不合法,score 缺失/非有限数字/超出安全范围,或 extra 不是对象、不可 JSON 序列化、
272
+ * 超过 2048 UTF-8 bytes。
273
+ * @throws {@link HbMiniProgramSDKError} `PERMISSION_NOT_DECLARED` / `PERMISSION_DENIED`:当前
274
+ * 版本未声明或未启用 `leaderboard`;`UNAUTHORIZED`:Host 未登录、服务端会话失效,或
275
+ * 请求期间登录账号发生变化。
276
+ * @throws {@link HbMiniProgramSDKError} `LEADERBOARD_DEFAULT_NOT_FOUND`:省略 key 但当前
277
+ * 小程序未创建 `default` 榜单;`LEADERBOARD_SUBMIT_LOCKED`:同一用户记录正在被另一提交
278
+ * 更新,可在稍后重新提交。命名榜单不存在或后端拒绝时保留服务端错误码。
279
+ * @throws {@link HbMiniProgramSDKError} `INVALID_STATE`:canonical 小程序身份未就绪;
280
+ * `METHOD_FORBIDDEN` / `REQUEST_UNSUPPORTED`:当前 Host 缺少所需账号或受信网络能力;
281
+ * `REQUEST_FAILED`:平台请求失败;`INVALID_RESPONSE`:返回记录字段不符合公开合同。
282
+ * 其他 bridge 超时与 SDK 状态错误会保留对应错误码。
283
+ * @throws `DOMException` extra 含函数、Symbol 等不可 structured-clone 的内容时,浏览器可能
284
+ * 在请求发送前抛出 `DataCloneError`。
285
+ *
286
+ * @remarks
287
+ * 当前用户不来自参数。Runtime 先向 Host 读取当前登录状态,再用 Host 持有的受信会话和
288
+ * canonical 小程序 identity 调用平台;页面不能指定 `appUserId` 或提交其他用户的成绩。
289
+ * 不要先调用用户资料 API 探测登录,直接处理 `UNAUTHORIZED`。该 API 需要声明
290
+ * `leaderboard`,但不需要公开 `network` 权限或可信用户手势。
291
+ *
292
+ * “更优”由榜单创建时的 `order` 决定,可通过
293
+ * {@link MiniProgramCloudLeaderboardModule.getInfo | getInfo} 查询:`desc` 只用更高分更新,
294
+ * `asc` 只用更低分更新。首次合法分数创建记录;同分和更差分数不更新 score、extra 或
295
+ * updatedAt。同分记录按更早达到当前分数的 updatedAt 优先,再以 appUserId 稳定排序。
296
+ *
297
+ * extra 跟随最终保留的分数记录:首次省略时为 `{}`;更优更新省略时保留旧值,传 `{}`
298
+ * 才清空;同分或更差时传入的新值被忽略。由于 extra 会出现在
299
+ * {@link MiniProgramCloudLeaderboardModule.getList | getList} 中,只能保存公开展示数据。
300
+ *
301
+ * 每次成功响应(包括同分/更差而未更新)都会失效同一小程序、同一榜单的全部列表页和
302
+ * {@link MiniProgramCloudLeaderboardModule.getCurrentUserEntry | getCurrentUserEntry} 五分钟
303
+ * 读缓存;下一次读取重新请求远端。`getInfo` 配置缓存和其他榜单缓存不受影响;提交前已
304
+ * 在途的旧读取可能仍返回给原调用方,但不会回填已失效的缓存。需要移除记录时使用
305
+ * {@link MiniProgramCloudLeaderboardModule.deleteCurrentUserEntry | deleteCurrentUserEntry}。
306
+ *
307
+ * @example
308
+ * ```ts
309
+ * import hbSDK from '@heybox/hb-sdk'
310
+ *
311
+ * const submittedScore = 1200
312
+ * const entry = await hbSDK.cloud.leaderboard.submit({
313
+ * key: 'weekly',
314
+ * score: submittedScore,
315
+ * extra: { level: 8 },
316
+ * })
317
+ *
318
+ * if (entry.score !== submittedScore) {
319
+ * console.log('已有成绩更优,本次未覆盖', entry.score)
320
+ * } else if (entry.ranked) {
321
+ * console.log(`成绩已保存,当前排名 ${entry.rank}`)
322
+ * } else {
323
+ * console.log('成绩已保存,暂未获得精确名次')
324
+ * }
325
+ * ```
326
+ *
327
+ * @see {@link MiniProgramCloudLeaderboardModule.getInfo | cloud.leaderboard.getInfo}
328
+ * @see {@link MiniProgramCloudLeaderboardModule.getList | cloud.leaderboard.getList}
329
+ * @see {@link MiniProgramCloudLeaderboardModule.getCurrentUserEntry | cloud.leaderboard.getCurrentUserEntry}
330
+ * @see {@link MiniProgramCloudLeaderboardModule.deleteCurrentUserEntry | cloud.leaderboard.deleteCurrentUserEntry}
331
+ * @see {@link https://docs.xiaoheihe.cn/hb_sdk/guide/cloud-leaderboard | 云端排行榜指南}
86
332
  *
87
333
  * @since 0.5.11
88
334
  * @hbPlatform android
@@ -98,7 +344,69 @@ export interface MiniProgramCloudLeaderboardModule {
98
344
  */
99
345
  submit(options: SubmitLeaderboardEntryPayload): Promise<SubmitLeaderboardEntryResult>;
100
346
  /**
101
- * 读取排行榜列表。
347
+ * 按服务端排名顺序读取排行榜的一页记录。
348
+ *
349
+ * @param options - 可选榜单 key、页大小和上一页 cursor;全部省略时读取 `default` 榜单
350
+ * 首屏并使用 `limit: 20`。各字段必须符合 {@link GetLeaderboardListPayload} 的约束。
351
+ * @returns 当前页 {@link LeaderboardEntry} 数组、可选下一页 cursor 和权威 `hasMore` 标记。
352
+ * @throws {@link HbMiniProgramSDKError} `INVALID_PARAMS`:`options` 不是对象、含未知字段,
353
+ * key 不符合 1 至 64 位 `[A-Za-z0-9_-]`,limit 不是 1 至 100 的整数,或 cursor 不是字符串。
354
+ * @throws {@link HbMiniProgramSDKError} `PERMISSION_NOT_DECLARED` / `PERMISSION_DENIED`:当前
355
+ * 版本未声明或未启用 `leaderboard` 权限。
356
+ * @throws {@link HbMiniProgramSDKError} `LEADERBOARD_DEFAULT_NOT_FOUND`:省略 key 但当前
357
+ * 小程序未创建 `default` 榜单。命名榜单不存在、cursor 失效或后端拒绝时保留服务端错误码。
358
+ * @throws {@link HbMiniProgramSDKError} `INVALID_STATE`:canonical 小程序身份未就绪;
359
+ * `METHOD_FORBIDDEN` / `REQUEST_UNSUPPORTED`:当前 Host 缺少所需受信网络能力;
360
+ * `REQUEST_FAILED`:平台请求失败;`INVALID_RESPONSE`:entries、cursor、hasMore 或任一记录
361
+ * 字段不符合公开合同。其他 bridge 超时与 SDK 状态错误会保留对应错误码。
362
+ *
363
+ * @remarks
364
+ * 该查询不要求 Host 登录、用户授权或可信用户手势。它需要声明 `leaderboard`,但不需要
365
+ * 公开 `network` 权限;Runtime 使用 Host 的受信网络端口读取 canonical 小程序所属榜单。
366
+ * 页面不能通过参数查询其他小程序,也不能指定用户过滤列表。
367
+ *
368
+ * 榜单创建时的 `order` 决定返回顺序:`desc` 高分优先,`asc` 低分优先。非零
369
+ * `rankLimit` 限制可展示到的最大名次,`0` 表示不设置列表名次上限;本方法的 `limit`
370
+ * 只控制单页最多返回数量,不能修改 order 或突破 rankLimit。可通过
371
+ * {@link MiniProgramCloudLeaderboardModule.getInfo | getInfo} 读取这两项配置。
372
+ *
373
+ * cursor 是服务端分页状态,不是 offset 或页码。首次请求省略 cursor;当 `hasMore` 为
374
+ * `true` 且返回 cursor 时,下一页必须把它原样传回同一 key,并保持相同 limit。
375
+ * `hasMore: false` 才表示本次遍历结束,不能仅凭页面不足 limit 条记录提前停止。
376
+ *
377
+ * 当前 Runtime 最多为 3 个活跃“小程序 + 榜单 key” bucket 缓存每一页五分钟;超过该上限的
378
+ * 榜单读取不进入缓存。无论是否缓存,同参数的并发读取都会合并为一个远端请求;不同页、
379
+ * 不同 limit 或不同榜单互不命中。其他用户成绩变化在缓存期内可能暂时不可见。成功的
380
+ * {@link MiniProgramCloudLeaderboardModule.submit | submit}
381
+ * 或 {@link MiniProgramCloudLeaderboardModule.deleteCurrentUserEntry | deleteCurrentUserEntry}
382
+ * 会失效同榜单的全部列表页与当前用户缓存,下一次读取重新请求;`getInfo` 配置缓存和其他
383
+ * 榜单缓存不受影响。
384
+ *
385
+ * @example
386
+ * ```ts
387
+ * import hbSDK from '@heybox/hb-sdk'
388
+ *
389
+ * let cursor: string | undefined
390
+ * do {
391
+ * const page = await hbSDK.cloud.leaderboard.getList({
392
+ * key: 'weekly',
393
+ * limit: 20,
394
+ * ...(cursor ? { cursor } : {}),
395
+ * })
396
+ *
397
+ * for (const entry of page.entries) {
398
+ * console.log(entry.rank, entry.score, entry.extra)
399
+ * }
400
+ *
401
+ * if (!page.hasMore || !page.cursor) break
402
+ * cursor = page.cursor
403
+ * } while (true)
404
+ * ```
405
+ *
406
+ * @see {@link MiniProgramCloudLeaderboardModule.getInfo | cloud.leaderboard.getInfo}
407
+ * @see {@link MiniProgramCloudLeaderboardModule.submit | cloud.leaderboard.submit}
408
+ * @see {@link MiniProgramCloudLeaderboardModule.deleteCurrentUserEntry | cloud.leaderboard.deleteCurrentUserEntry}
409
+ * @see {@link https://docs.xiaoheihe.cn/hb_sdk/guide/cloud-leaderboard | 云端排行榜指南}
102
410
  *
103
411
  * @since 0.5.11
104
412
  * @hbPlatform android
@@ -114,7 +422,72 @@ export interface MiniProgramCloudLeaderboardModule {
114
422
  */
115
423
  getList(options?: GetLeaderboardListPayload): Promise<GetLeaderboardListResult>;
116
424
  /**
117
- * 读取当前用户记录。
425
+ * 读取当前登录用户在指定排行榜中的记录。
426
+ *
427
+ * @param options - 可选榜单选择参数;省略时读取 `default` 榜单。显式 `options.key` 必须
428
+ * 符合 {@link GetCurrentUserLeaderboardEntryPayload.key} 的格式约束。
429
+ * @returns 当前用户的完整 {@link LeaderboardEntry};没有记录时 resolve `undefined`,这是
430
+ * 正常空结果。返回记录但 `ranked: false` 时记录仍存在,`rank` 固定为 `0`。
431
+ * @throws {@link HbMiniProgramSDKError} `INVALID_PARAMS`:`options` 不是对象、含 `key` 以外
432
+ * 的字段,或 key 不符合 1 至 64 位 `[A-Za-z0-9_-]` 规则。
433
+ * @throws {@link HbMiniProgramSDKError} `PERMISSION_NOT_DECLARED` / `PERMISSION_DENIED`:当前
434
+ * 版本未声明或未启用 `leaderboard`;`UNAUTHORIZED`:Host 未登录、服务端会话失效,或
435
+ * 请求期间登录账号发生变化。
436
+ * @throws {@link HbMiniProgramSDKError} `LEADERBOARD_DEFAULT_NOT_FOUND`:省略 key 但当前
437
+ * 小程序未创建 `default` 榜单。命名榜单不存在或后端拒绝时保留服务端错误码。
438
+ * @throws {@link HbMiniProgramSDKError} `INVALID_STATE`:canonical 小程序身份未就绪;
439
+ * `METHOD_FORBIDDEN` / `REQUEST_UNSUPPORTED`:当前 Host 缺少所需账号或受信网络能力;
440
+ * 其他网络失败、响应字段不合法和 bridge 超时分别保留对应 `REQUEST_FAILED`、
441
+ * `INVALID_RESPONSE` 或 SDK 错误码。
442
+ *
443
+ * @remarks
444
+ * 当前用户不来自参数。Runtime 每次调用都会先向 Host 校验当前登录账号,再用 Host 持有的
445
+ * 受信会话读取平台为该账号和 canonical 小程序身份关联的记录。页面不能指定或猜测其他
446
+ * 用户,也不应先调用用户资料 API 探测登录;直接处理本方法的 `UNAUTHORIZED` 即可。
447
+ * 该 API 需要声明 `leaderboard`,但不需要公开 `network` 权限或可信用户手势。
448
+ *
449
+ * 返回的 `appUserId` 是当前用户在当前小程序内的隔离标识,不是黑盒用户 ID、登录凭据或
450
+ * 可跨小程序关联的账号字段。`extra` 会随
451
+ * {@link MiniProgramCloudLeaderboardModule.getList | getList} 返回给该榜单的其他读取者,
452
+ * 调用方应把它当作公开展示数据。
453
+ *
454
+ * `ranked` 同时受榜单 `rankLimit` 和当前用户前 5000 名精确排名上限约束:两项均满足时
455
+ * `ranked: true` 且 `rank` 为正整数;任一不满足时记录仍返回,但固定为
456
+ * `ranked: false, rank: 0`。即使 `rankLimit` 为 `0`(列表不限制),前 5000 名计算上限
457
+ * 仍然存在。不要用 `rank === 0` 判断“没有记录”,应先判断整个返回值是否为 `undefined`。
458
+ *
459
+ * 当前 Runtime 最多为 3 个活跃榜单 bucket 缓存结果(包括 `undefined`)五分钟;超过上限的
460
+ * 榜单读取不进入缓存。同一时刻的重复读取仍会合并为一个远端请求。账号变化会清空全部榜单缓存,并使旧账号的
461
+ * 在途响应以 `UNAUTHORIZED` 结束;成功的
462
+ * {@link MiniProgramCloudLeaderboardModule.submit | submit} 或
463
+ * {@link MiniProgramCloudLeaderboardModule.deleteCurrentUserEntry | deleteCurrentUserEntry}
464
+ * 会使同榜单的当前用户与列表缓存立即失效,下一次读取重新请求远端。
465
+ *
466
+ * `getCurrentUserEntry()` 可以返回仍存在但未进入列表展示范围的记录;分页
467
+ * `getList()` 中没有当前用户,不等于当前用户没有记录。需要创建或更新记录时调用
468
+ * `submit()`,需要删除时调用 `deleteCurrentUserEntry()`。
469
+ *
470
+ * @example
471
+ * ```ts
472
+ * import hbSDK from '@heybox/hb-sdk'
473
+ *
474
+ * const entry = await hbSDK.cloud.leaderboard.getCurrentUserEntry({
475
+ * key: 'weekly',
476
+ * })
477
+ *
478
+ * if (!entry) {
479
+ * console.log('还没有成绩')
480
+ * } else if (entry.ranked) {
481
+ * console.log(`当前成绩 ${entry.score},排名 ${entry.rank}`)
482
+ * } else {
483
+ * console.log(`成绩 ${entry.score} 已保存,暂未获得精确名次`)
484
+ * }
485
+ * ```
486
+ *
487
+ * @see {@link MiniProgramCloudLeaderboardModule.submit | cloud.leaderboard.submit}
488
+ * @see {@link MiniProgramCloudLeaderboardModule.deleteCurrentUserEntry | cloud.leaderboard.deleteCurrentUserEntry}
489
+ * @see {@link MiniProgramCloudLeaderboardModule.getList | cloud.leaderboard.getList}
490
+ * @see {@link https://docs.xiaoheihe.cn/hb_sdk/guide/cloud-leaderboard | 云端排行榜指南}
118
491
  *
119
492
  * @since 0.5.11
120
493
  * @hbPlatform android
@@ -130,7 +503,59 @@ export interface MiniProgramCloudLeaderboardModule {
130
503
  */
131
504
  getCurrentUserEntry(options?: GetCurrentUserLeaderboardEntryPayload): Promise<GetCurrentUserLeaderboardEntryResult>;
132
505
  /**
133
- * 删除当前用户记录。
506
+ * 删除当前登录用户在指定排行榜中的记录。
507
+ *
508
+ * @param options - 可选榜单选择参数;省略时删除 `default` 榜单中的当前用户记录。显式
509
+ * `options.key` 必须符合 {@link DeleteCurrentUserLeaderboardEntryPayload.key} 的格式约束。
510
+ * @returns 远端删除完成且同榜单可变读缓存失效后的结果。`deleted: true` 表示实际删除;
511
+ * `deleted: false` 表示调用成功但已无记录,是幂等空结果。
512
+ * @throws {@link HbMiniProgramSDKError} `INVALID_PARAMS`:`options` 不是对象、含 `key` 以外
513
+ * 的字段,或 key 不符合 1 至 64 位 `[A-Za-z0-9_-]` 规则。
514
+ * @throws {@link HbMiniProgramSDKError} `PERMISSION_NOT_DECLARED` / `PERMISSION_DENIED`:当前
515
+ * 版本未声明或未启用 `leaderboard`;`UNAUTHORIZED`:Host 未登录、服务端会话失效,或
516
+ * 请求期间登录账号发生变化。
517
+ * @throws {@link HbMiniProgramSDKError} `LEADERBOARD_DEFAULT_NOT_FOUND`:省略 key 但当前
518
+ * 小程序未创建 `default` 榜单。命名榜单不存在或后端拒绝时保留服务端错误码。
519
+ * @throws {@link HbMiniProgramSDKError} `INVALID_STATE`:canonical 小程序身份未就绪;
520
+ * `METHOD_FORBIDDEN` / `REQUEST_UNSUPPORTED`:当前 Host 缺少所需账号或受信网络能力;
521
+ * 其他网络失败、响应不合法和 bridge 超时分别保留对应 `REQUEST_FAILED`、
522
+ * `INVALID_RESPONSE` 或 SDK 错误码。
523
+ *
524
+ * @remarks
525
+ * 当前用户不来自参数。Runtime 先向 Host 读取当前登录状态,再用 Host 持有的受信会话调用
526
+ * 平台接口;页面不能指定、猜测或删除其他用户的记录。不要先调用用户资料 API 探测登录,
527
+ * 直接处理本方法的 `UNAUTHORIZED` 即可。该 API 需要声明 `leaderboard`,但不需要公开
528
+ * `network` 权限或可信用户手势;产品仍应只在明确的用户操作和二次确认后执行删除。
529
+ *
530
+ * 成功响应(包括 `deleted: false`)会使当前 Runtime 中同一小程序、同一榜单的
531
+ * {@link MiniProgramCloudLeaderboardModule.getList | getList} 与
532
+ * {@link MiniProgramCloudLeaderboardModule.getCurrentUserEntry | getCurrentUserEntry} 五分钟读
533
+ * 缓存失效;下一次读取会重新请求远端,不会由删除调用主动预取。该榜单的 `getInfo`
534
+ * 配置缓存和其他榜单缓存不受影响;删除前已在途的旧读取可能仍向原调用方返回,但不会
535
+ * 回填已失效的缓存。
536
+ *
537
+ * 删除后,`getCurrentUserEntry()` 应返回 `undefined`,`getList()` 不再包含该条记录;之后
538
+ * 调用 {@link MiniProgramCloudLeaderboardModule.submit | submit} 可以重新建立当前用户记录,
539
+ * 并重新参与服务端排序。
540
+ *
541
+ * @example
542
+ * ```ts
543
+ * import hbSDK from '@heybox/hb-sdk'
544
+ *
545
+ * async function deleteMyScore() {
546
+ * if (!window.confirm('确定删除自己的榜单成绩吗?')) return
547
+ *
548
+ * const { deleted } = await hbSDK.cloud.leaderboard.deleteCurrentUserEntry({
549
+ * key: 'weekly',
550
+ * })
551
+ * console.log(deleted ? '已删除成绩' : '当前没有成绩')
552
+ * }
553
+ * ```
554
+ *
555
+ * @see {@link MiniProgramCloudLeaderboardModule.getCurrentUserEntry | cloud.leaderboard.getCurrentUserEntry}
556
+ * @see {@link MiniProgramCloudLeaderboardModule.submit | cloud.leaderboard.submit}
557
+ * @see {@link MiniProgramCloudLeaderboardModule.getList | cloud.leaderboard.getList}
558
+ * @see {@link https://docs.xiaoheihe.cn/hb_sdk/guide/cloud-leaderboard | 云端排行榜指南}
134
559
  *
135
560
  * @since 0.5.11
136
561
  * @hbPlatform android
@@ -146,7 +571,56 @@ export interface MiniProgramCloudLeaderboardModule {
146
571
  */
147
572
  deleteCurrentUserEntry(options?: DeleteCurrentUserLeaderboardEntryPayload): Promise<DeleteCurrentUserLeaderboardEntryResult>;
148
573
  /**
149
- * 读取排行榜基础信息。
574
+ * 读取指定排行榜创建时确定的排序与展示配置。
575
+ *
576
+ * @param options - 可选榜单选择参数;省略时读取 `default` 榜单。显式 `options.key` 必须
577
+ * 符合 {@link GetLeaderboardInfoPayload.key} 的格式约束。
578
+ * @returns 规范化的 {@link GetLeaderboardInfoResult}:实际榜单 `key`、排序方向 `order`
579
+ * 和列表展示上限 `rankLimit`。不返回榜单记录或当前用户数据。
580
+ * @throws {@link HbMiniProgramSDKError} `INVALID_PARAMS`:`options` 不是对象、含 `key` 以外
581
+ * 的字段,或 key 不符合 1 至 64 位 `[A-Za-z0-9_-]` 规则。
582
+ * @throws {@link HbMiniProgramSDKError} `PERMISSION_NOT_DECLARED` / `PERMISSION_DENIED`:当前
583
+ * 版本未声明或未启用 `leaderboard` 权限。
584
+ * @throws {@link HbMiniProgramSDKError} `LEADERBOARD_DEFAULT_NOT_FOUND`:省略 key 但当前
585
+ * 小程序未创建 `default` 榜单。命名榜单不存在或后端拒绝时保留服务端错误码。
586
+ * @throws {@link HbMiniProgramSDKError} `INVALID_STATE`:canonical 小程序身份未就绪;
587
+ * `METHOD_FORBIDDEN` / `REQUEST_UNSUPPORTED`:当前 Host 缺少所需受信网络能力;
588
+ * `REQUEST_FAILED`:平台请求失败;`INVALID_RESPONSE`:返回 key、order 或 rankLimit
589
+ * 不符合公开合同。其他 bridge 超时与 SDK 状态错误会保留对应错误码。
590
+ *
591
+ * @remarks
592
+ * 该查询不读取当前用户,也不要求 Host 登录、用户授权或可信用户手势。它需要声明
593
+ * `leaderboard`,但不需要公开 `network` 权限;Runtime 使用 Host 的受信网络端口读取当前
594
+ * canonical 小程序所属榜单的配置。页面不能通过参数查询其他小程序的榜单。
595
+ *
596
+ * `order` 是创建榜单时固定的服务端规则:`desc` 让高分优先,`asc` 让低分优先。调用
597
+ * {@link MiniProgramCloudLeaderboardModule.submit | submit} 时无需也不能再次传入 order;
598
+ * 服务端按这里返回的方向决定新分数是否优于已有记录。
599
+ *
600
+ * `rankLimit` 控制 {@link MiniProgramCloudLeaderboardModule.getList | getList} 的列表展示
601
+ * 名次范围,`0` 表示不设该范围上限。它与 `getList` 的每页 `limit` 相互独立,也不会删除
602
+ * 范围外记录;当前用户的 `ranked` 还受前 5000 名精确排名上限限制。
603
+ *
604
+ * 当前 Runtime 最多为 3 个活跃榜单 bucket 缓存结果五分钟;超过上限的榜单读取不进入缓存。
605
+ * 同时发起的相同查询仍会合并为一个远端请求。`submit()` 和 `deleteCurrentUserEntry()` 只失效同榜单的列表/当前用户缓存,
606
+ * 不会失效 `getInfo` 配置缓存;其他榜单也使用独立缓存。Host 账号变化或 Runtime 销毁会
607
+ * 清空缓存与在途合并状态。SDK 没有强制刷新参数,缓存过期或新 Runtime 才会重新读取。
608
+ *
609
+ * @example
610
+ * ```ts
611
+ * import hbSDK from '@heybox/hb-sdk'
612
+ *
613
+ * const info = await hbSDK.cloud.leaderboard.getInfo({ key: 'weekly' })
614
+ * const page = await hbSDK.cloud.leaderboard.getList({ key: info.key, limit: 20 })
615
+ *
616
+ * const direction = info.order === 'desc' ? '高分优先' : '低分优先'
617
+ * const range = info.rankLimit === 0 ? '不限制展示名次' : `仅展示前 ${info.rankLimit} 名`
618
+ * console.log(direction, range, page.entries)
619
+ * ```
620
+ *
621
+ * @see {@link MiniProgramCloudLeaderboardModule.getList | cloud.leaderboard.getList}
622
+ * @see {@link MiniProgramCloudLeaderboardModule.submit | cloud.leaderboard.submit}
623
+ * @see {@link https://docs.xiaoheihe.cn/hb_sdk/guide/cloud-leaderboard | 云端排行榜指南}
150
624
  *
151
625
  * @since 0.5.11
152
626
  * @hbPlatform android