@smartico/public-api 0.0.400 → 0.0.402

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 (67) hide show
  1. package/dist/ActivityLog/ActivityLogEntry.d.ts +2 -0
  2. package/dist/Avatars/AvatarCustomized.d.ts +2 -2
  3. package/dist/Core/index.d.ts +1 -0
  4. package/dist/GamePick/GamePickTypes.d.ts +14 -14
  5. package/dist/Level/Level.d.ts +1 -0
  6. package/dist/SmarticoGlobal.d.ts +190 -0
  7. package/dist/WSAPI/WSAPIAvatars.d.ts +1 -1
  8. package/dist/WSAPI/WSAPIGamePick.d.ts +6 -6
  9. package/dist/WSAPI/WSAPIMiniGames.d.ts +55 -42
  10. package/dist/WSAPI/WSAPITypes.d.ts +9 -6
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.js +73 -57
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.modern.mjs +64 -51
  15. package/dist/index.modern.mjs.map +1 -1
  16. package/docs/api/README.md +20 -0
  17. package/docs/api/classes/WSAPIAvatars.md +2 -9
  18. package/docs/api/classes/WSAPIGamePick.md +48 -48
  19. package/docs/api/classes/WSAPIMiniGames.md +132 -70
  20. package/docs/api/enumerations/GPRoundStatus.md +43 -0
  21. package/docs/api/enumerations/GamePickMarketType.md +19 -0
  22. package/docs/api/enumerations/GamePickResolutionType.md +35 -0
  23. package/docs/api/enumerations/GamePickScoreType.md +19 -0
  24. package/docs/api/enumerations/GamePickSportType.md +375 -0
  25. package/docs/api/enumerations/GameRoundOrderType.md +35 -0
  26. package/docs/api/enumerations/LiquidEntityData.md +6 -0
  27. package/docs/api/interfaces/AvatarCustomized.md +2 -2
  28. package/docs/api/interfaces/GamePickBoardUser.md +75 -0
  29. package/docs/api/interfaces/GamePickEvent.md +123 -0
  30. package/docs/api/interfaces/GamePickEventMeta.md +201 -0
  31. package/docs/api/interfaces/GamePickGameInfo.md +27 -0
  32. package/docs/api/interfaces/GamePickRequestParams.md +39 -0
  33. package/docs/api/interfaces/GamePickRound.md +383 -0
  34. package/docs/api/interfaces/GamePickRoundBase.md +232 -0
  35. package/docs/api/interfaces/GamePickRoundBoard.md +359 -0
  36. package/docs/api/interfaces/GamePickRoundPublicMeta.md +103 -0
  37. package/docs/api/interfaces/GamePickRoundRequestParams.md +63 -0
  38. package/docs/api/interfaces/GamePickUserInfo.md +107 -0
  39. package/docs/api/interfaces/GamesApiResponse.md +33 -0
  40. package/docs/api/interfaces/GemsDiamondsLog.md +2 -0
  41. package/docs/api/interfaces/Level.md +8 -0
  42. package/docs/api/interfaces/PointsLog.md +2 -0
  43. package/docs/api/interfaces/QuizEventMeta.md +61 -0
  44. package/docs/api/interfaces/RafflePrizePublicMeta.md +9 -0
  45. package/docs/api/interfaces/TAvatarCustomized.md +2 -2
  46. package/docs/api/interfaces/TInboxMessage.md +2 -1
  47. package/docs/api/interfaces/TMiniGamePlayResult.md +11 -0
  48. package/docs/api/interfaces/TMissionOrBadge.md +3 -1
  49. package/docs/api/interfaces/TRafflePrize.md +9 -0
  50. package/docs/api/variables/AllRoundsGameBoardID.md +5 -0
  51. package/docs/ui/minigames/UIGuide_playMiniGame.md +6 -5
  52. package/package.json +1 -1
  53. package/src/ActivityLog/ActivityLogEntry.ts +2 -0
  54. package/src/Avatars/AvatarCustomized.ts +2 -2
  55. package/src/Core/index.ts +1 -0
  56. package/src/GamePick/GamePickTypes.ts +14 -14
  57. package/src/Level/Level.ts +1 -0
  58. package/src/Missions/UserAchievement.ts +2 -2
  59. package/src/SmarticoAPI.ts +2 -1
  60. package/src/SmarticoGlobal.ts +209 -0
  61. package/src/Store/StoreItem.ts +1 -1
  62. package/src/WSAPI/WSAPIAvatars.ts +1 -1
  63. package/src/WSAPI/WSAPIGamePick.ts +6 -6
  64. package/src/WSAPI/WSAPIMiniGames.ts +55 -42
  65. package/src/WSAPI/WSAPITypes.ts +9 -6
  66. package/src/index.ts +21 -0
  67. package/tsconfig.json +1 -0
@@ -1055,7 +1055,7 @@ const StoreItemTransform = items => {
1055
1055
  id: r.id,
1056
1056
  name: r.itemPublicMeta.name,
1057
1057
  purchase_type: mapPurchaseType$1(r.itemPublicMeta.purchase_type),
1058
- price: r.itemPublicMeta.price,
1058
+ price: Number(r.itemPublicMeta.price),
1059
1059
  image: r.itemPublicMeta.image_url,
1060
1060
  description: r.itemPublicMeta.description,
1061
1061
  ribbon: r.itemPublicMeta.label_tag === 'custom' ? r.itemPublicMeta.custom_label_tag : r.itemPublicMeta.label_tag,
@@ -7072,63 +7072,76 @@ class WSAPIMiniGames extends WSAPIRaffles {
7072
7072
  return o;
7073
7073
  }
7074
7074
  /**
7075
- * Manually acknowledges a mini-game spin — marks the spin as
7076
- * "delivered" so the prize takes effect server-side. Most consumers
7077
- * do NOT need to call this method directly; {@link playMiniGame}
7078
- * and {@link playMiniGameBatch} auto-acknowledge on success. Use
7079
- * this only for recovery scenarios.
7075
+ * Manually acknowledges a mini-game spin — marks the win delivered
7076
+ * server-side. Most consumers do NOT need this: {@link playMiniGame}
7077
+ * acknowledges by default (`acknowledge: true`) and
7078
+ * {@link playMiniGameBatch} acknowledges automatically. Call this
7079
+ * directly only when you took ownership of the acknowledge step or
7080
+ * need to recover a lost one.
7080
7081
  *
7081
7082
  * @remarks
7082
7083
  * **When to call**
7083
- * - **Lost auto-acknowledge** — when the WebSocket dropped between
7084
- * the spin response and the auto-acknowledge fire-and-forget,
7085
- * the spin shows `is_claimed: false` in
7086
- * {@link getMiniGamesHistory}. Pass that row's
7087
- * `client_request_id` here to deliver the prize.
7088
- * - **Explicit-acknowledge UI** — for templates configured with
7089
- * the `ExplicitAcknowledge` acknowledge type (operator
7090
- * decision), the consumer's UI shows a "Claim" CTA after the
7091
- * prize animation. Click handler calls this method with the
7092
- * spin's `client_request_id` rather than auto-acknowledging.
7093
- *
7094
- * **No-op on already-acknowledged spins**
7095
- * The server's acknowledge SQL matches on `acknowledge_date IS
7096
- * NULL` — a duplicate call returns successfully with no effect.
7084
+ * - **Primary — after `playMiniGame(..., { acknowledge: false })`.**
7085
+ * You opted out of the automatic acknowledge to finalise the win
7086
+ * on your own schedule (e.g. on a user "Claim" tap). Pass the
7087
+ * `request_id` from that call's result here when ready. This is
7088
+ * REQUIRED for operator-configured "explicit claim" prizes — they
7089
+ * are not covered by the server-side fallback, so without this
7090
+ * call their prize is never credited.
7091
+ * - **Recovery — a lost acknowledge.** {@link playMiniGameBatch}
7092
+ * acknowledges on a fire-and-forget basis; if one is lost (network
7093
+ * drop) the spin shows `is_claimed: false` in
7094
+ * {@link getMiniGamesHistory}. Pass that row's `client_request_id`
7095
+ * to deliver it.
7096
+ *
7097
+ * The `request_id` on a {@link playMiniGame} result and the
7098
+ * `client_request_id` on a {@link getMiniGamesHistory} row are the
7099
+ * same correlation id — this method accepts either.
7100
+ *
7101
+ * **Idempotency**: safe. Acknowledging a spin that is already
7102
+ * finalised — by you, by the automatic acknowledge, or by the
7103
+ * fallback — is a no-op with no double credit. Acknowledging a
7104
+ * failed spin's id is likewise a no-op.
7097
7105
  *
7098
7106
  * **Server-side fallback**
7099
- * Even without ever calling this method, a server-side job
7100
- * auto-acknowledges stale spins every ~60 seconds — so prizes are
7101
- * eventually delivered. The `is_claimed` flag flips on the next
7102
- * `getMiniGamesHistory` call after the job runs.
7103
- *
7104
- * **Idempotency**: safe. Repeated calls have no effect after the
7105
- * first.
7106
- *
7107
- * **Side effects** (on first successful call for an unacknowledged
7108
- * spin)
7109
- * - Prize value credited per the prize's type (see
7110
- * {@link playMiniGame} "Prize handling").
7111
- * - The spin's `is_claimed` flag flips to `true` on the next
7112
- * {@link getMiniGamesHistory} call.
7107
+ * Even if you never call this, a server-side job finalises ordinary
7108
+ * un-acknowledged spins automatically after a short delay (about 1–3
7109
+ * minutes), flipping `is_claimed` to `true` on the next
7110
+ * {@link getMiniGamesHistory} fetch. "Explicit claim" prizes are the
7111
+ * exception — excluded from the fallback, they require an explicit
7112
+ * call here.
7113
+ *
7114
+ * **Side effects** (first successful call for an un-acknowledged spin)
7115
+ * - For "explicit claim" prizes, the prize value is credited on this
7116
+ * call. For standard prizes the value was already credited at spin
7117
+ * time (see {@link playMiniGame} "Prize handling"); this call only
7118
+ * marks the win delivered.
7119
+ * - The spin's `is_claimed` flips to `true` on the next
7120
+ * {@link getMiniGamesHistory} fetch.
7113
7121
  *
7114
7122
  * **Visitor mode**: not supported.
7115
7123
  *
7116
- * @param request_id The `client_request_id` from a `TSawHistory`
7117
- * row returned by {@link getMiniGamesHistory}.
7124
+ * @param request_id Correlation id of the spin to finalise: the
7125
+ * `request_id` from a {@link playMiniGame} result
7126
+ * (played with `acknowledge: false`), or the
7127
+ * `client_request_id` of a
7128
+ * {@link getMiniGamesHistory} row.
7118
7129
  *
7119
7130
  * @example
7120
7131
  * ```ts
7121
- * const history = await window._smartico.api.getMiniGamesHistory({ limit: 20 });
7122
- * const unacknowledged = history.filter(h => !h.is_claimed);
7132
+ * // Primary — finalise a win you played with acknowledge: false.
7133
+ * const r = await window._smartico.api.playMiniGame(templateId, { acknowledge: false });
7134
+ * if (r.err_code === 0) {
7135
+ * console.log('[smartico] show the prize / Claim CTA; on Claim, finalise the win');
7136
+ * await window._smartico.api.miniGameWinAcknowledgeRequest(r.request_id);
7137
+ * }
7123
7138
  *
7124
- * for (const row of unacknowledged) {
7139
+ * // Recovery — re-acknowledge any spins a batch acknowledge missed.
7140
+ * const history = await window._smartico.api.getMiniGamesHistory({ limit: 20 });
7141
+ * for (const row of history.filter(h => !h.is_claimed)) {
7125
7142
  * console.log('[smartico] re-acknowledging stale spin', row.client_request_id);
7126
7143
  * await window._smartico.api.miniGameWinAcknowledgeRequest(row.client_request_id);
7127
7144
  * }
7128
- *
7129
- * // Re-fetch history to see the updated is_claimed flags.
7130
- * const fresh = await window._smartico.api.getMiniGamesHistory({ limit: 20 });
7131
- * console.log('[smartico] history after recovery —', fresh.filter(h => !h.is_claimed).length, 'still unacknowledged');
7132
7145
  * ```
7133
7146
  */
7134
7147
  async miniGameWinAcknowledgeRequest(request_id) {
@@ -7395,7 +7408,7 @@ class WSAPIAvatars extends WSAPIMiniGames {
7395
7408
  *
7396
7409
  * // Newest-first within each base.
7397
7410
  * for (const list of byBase.values()) {
7398
- * list.sort((a, b) => b.dt_created.localeCompare(a.dt_created));
7411
+ * list.sort((a, b) => b.dt_created - a.dt_created);
7399
7412
  * }
7400
7413
  *
7401
7414
  * console.log('[smartico] AI variants by base avatar — render as a carousel under each base');
@@ -7994,9 +8007,9 @@ class WSAPIGamePick extends WSAPIAvatars {
7994
8007
  * **Side effects**
7995
8008
  * - First successful submit deducts the buy-in (Points / Gems / Diamonds /
7996
8009
  * one Spin) per `saw_buyin_type_id`.
7997
- * - Reports a `minigame_matchx_prediction` event to the operator's event log.
7998
- * - Updates the round's participant counter (`users_cnt`) and per-event
7999
- * counters (`num_users`).
8010
+ * - Records the user's participation against the round and its events
8011
+ * server-side and reports a prediction event to the operator's activity
8012
+ * stream.
8000
8013
  * - Score is awarded after the operator resolves the round
8001
8014
  * ({@link GPRoundStatus} = `RoundResolved`).
8002
8015
  *
@@ -8095,9 +8108,9 @@ class WSAPIGamePick extends WSAPIAvatars {
8095
8108
  * **Idempotency**: identical to {@link gamePickSubmitSelection} — re-submit
8096
8109
  * returns `errCode: 3` and never double-charges the buy-in.
8097
8110
  *
8098
- * **Side effects**: identical to {@link gamePickSubmitSelection}, with the
8099
- * reported event being `minigame_quiz_prediction` instead of
8100
- * `minigame_matchx_prediction`.
8111
+ * **Side effects**: identical to {@link gamePickSubmitSelection} — buy-in
8112
+ * deduction on first submit, participation recorded, score awarded on round
8113
+ * resolution.
8101
8114
  *
8102
8115
  * **Visitor mode**: not supported.
8103
8116
  *
@@ -10397,7 +10410,7 @@ class SmarticoAPI {
10397
10410
  body: JSON.stringify(params)
10398
10411
  };
10399
10412
  } else if (params) {
10400
- const extraQuery = Object.entries(params).map(([k, v]) => `${k}=${encodeURIComponent(JSON.stringify(v))}`).join('&');
10413
+ const extraQuery = Object.entries(params).filter(([, v]) => v !== null && v !== undefined).map(([k, v]) => `${k}=${encodeURIComponent(typeof v === 'object' ? JSON.stringify(v) : v)}`).join('&');
10401
10414
  url += `&${extraQuery}`;
10402
10415
  }
10403
10416
  try {