@momo-cloud/gami-sdk 0.0.53 → 0.0.65

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 CHANGED
@@ -120,43 +120,31 @@ await GamiSDK.endGame();
120
120
 
121
121
  ---
122
122
 
123
- #### `submit(options)`
123
+ ### Configuration & Data
124
124
 
125
- Submit game results to the backend.
125
+ #### `getConfig()`
126
126
 
127
- ```typescript
128
- const result = await GamiSDK.submit({
129
- steps: [
130
- { action: 'start', timestamp: 1699000000000, data: {...} },
131
- { action: 'move', timestamp: 1699000001000, data: {...} },
132
- { action: 'end', timestamp: 1699000010000, data: {...} }
133
- ],
134
- score: 1500
135
- });
127
+ Fetch game configuration from the backend.
136
128
 
137
- console.log('Reward:', result.gift);
129
+ ```typescript
130
+ const config = await GamiSDK.getConfig();
131
+ console.log('Game config:', config);
138
132
  ```
139
133
 
140
- **Parameters:**
141
- - `steps` (array): Array of gameplay events for validation
142
- - `score` (number): Final score achieved
143
-
144
- **Returns:** `Promise<{ gift?: any, ... }>` - Server response with rewards
134
+ **Returns:** `Promise<any>` - Game configuration object
145
135
 
146
136
  ---
147
137
 
148
- ### Configuration & Data
138
+ #### `spin()`
149
139
 
150
- #### `getConfig()`
151
-
152
- Fetch game configuration from the backend.
140
+ Perform a spinner spin for the current game. Sends `POST` to the twirler service with the active `gameId` (set via `init`).
153
141
 
154
142
  ```typescript
155
- const config = await GamiSDK.getConfig();
156
- console.log('Game config:', config);
143
+ const result = await GamiSDK.spin();
144
+ console.log('Spin result:', result);
157
145
  ```
158
146
 
159
- **Returns:** `Promise<any>` - Game configuration object
147
+ **Returns:** `Promise<any>` - Server response with spin outcome (e.g. prize payload); exact shape follows the backend contract
160
148
 
161
149
  ---
162
150
 
@@ -165,16 +153,15 @@ console.log('Game config:', config);
165
153
  Get user's balance for specified balance IDs.
166
154
 
167
155
  ```typescript
168
- const balance = await GamiSDK.getBalance({
169
- balanceIds: ['coin', 'gem', 'ticket']
156
+ const { result: balance } = await GamiSDK.getBalance({
157
+ balanceId: ['turn', 'coin', 'gem', 'ticket']
170
158
  });
171
159
 
172
- console.log('Coins:', balance.coin);
173
- console.log('Gems:', balance.gem);
160
+ console.log('Coins:', balance.turn);
174
161
  ```
175
162
 
176
163
  **Parameters:**
177
- - `balanceIds` (string[]): Array of balance identifiers
164
+ - `balanceId` (string): Balance Id
178
165
 
179
166
  **Returns:** `Promise<TBalance>` - Balance data object
180
167
 
@@ -193,46 +180,6 @@ console.log('Available balances:', pockets);
193
180
 
194
181
  ---
195
182
 
196
- #### `getTheme(options)`
197
-
198
- Fetch theme assets for the game.
199
-
200
- ```typescript
201
- const theme = await GamiSDK.getTheme({
202
- ext: 'json',
203
- name: 'lunar-new-year'
204
- });
205
-
206
- console.log('Theme data:', theme);
207
- ```
208
-
209
- **Parameters:**
210
- - `ext` (string): extension (rule)
211
- - `name` (string): Theme name/identifier
212
-
213
- **Returns:** `Promise<any>` - Theme data
214
-
215
- ---
216
-
217
- ### Leaderboard & Rankings
218
-
219
- #### `getLeaderboard(options)`
220
-
221
- Fetch leaderboard data.
222
-
223
- ```typescript
224
- const res = await GamiSDK.getLeaderboard({
225
- boardId: 'weekly',
226
- limit: 50
227
- });
228
-
229
- console.log('Leaderboard:', res);
230
- ```
231
-
232
- **Returns:** `Promise<TLeaderboard>` - Leaderboard data
233
-
234
- ---
235
-
236
183
  #### `getHistory(options)`
237
184
 
238
185
  Get user's game history.
@@ -1,4 +1,5 @@
1
- import { eventemitter3 } from 'eventemitter3';
1
+ import { EventEmitter } from 'eventemitter3';
2
+ import { EventSource as EventSource_2 } from 'eventsource';
2
3
 
3
4
  export declare const Calendar: CalendarAPI;
4
5
 
@@ -16,7 +17,7 @@ declare interface CalendarAPI {
16
17
  }): Promise<boolean>;
17
18
  }
18
19
 
19
- export declare const GameEvent: eventemitter3<string | symbol, any>;
20
+ export declare const GameEvent: EventEmitter<string | symbol, any>;
20
21
 
21
22
  declare const GamiSDK: {
22
23
  setServerTime: (value: number) => void;
@@ -24,6 +25,7 @@ declare const GamiSDK: {
24
25
  token: string;
25
26
  gameId: string;
26
27
  userId: string | undefined;
28
+ appProfile: TAppProfile;
27
29
  userInfo: IUserInfo | null;
28
30
  deviceInfo: TDeviceInfo;
29
31
  isBrowser: boolean;
@@ -51,20 +53,11 @@ declare const GamiSDK: {
51
53
  startGame: () => Promise<any>;
52
54
  endGame: () => Promise<void>;
53
55
  getBalance: (params: {
54
- balanceIds: string[];
56
+ balanceId: string;
55
57
  }) => Promise<any>;
56
58
  getBalanceConfig: () => Promise<any>;
57
59
  getConfig: () => Promise<any>;
58
- getTheme: (params: {
59
- ext: string;
60
- name: string;
61
- }) => Promise<any>;
62
- submit: (params: {
63
- steps: any[];
64
- score: number;
65
- }) => Promise<any>;
66
60
  spin: () => Promise<any>;
67
- getMilestone: () => Promise<any>;
68
61
  getLeaderboard: (params: {
69
62
  boardId: string;
70
63
  group?: "friend" | "global";
@@ -78,6 +71,9 @@ declare const GamiSDK: {
78
71
  page: number;
79
72
  limit: number;
80
73
  }) => Promise<any>;
74
+ getMission: (params: {
75
+ viewId?: string;
76
+ }) => Promise<any>;
81
77
  showToast: (params: {
82
78
  title?: string;
83
79
  description: string;
@@ -87,6 +83,9 @@ declare const GamiSDK: {
87
83
  showAlert: (title: string, message: string, buttons?: string[]) => any;
88
84
  setItem: (key: string, obj: any) => void;
89
85
  getItem: (key: string) => Promise<unknown>;
86
+ setProfile: (profile: {
87
+ avatar: string;
88
+ }) => void;
90
89
  openWeb: ({ url, html, title }: {
91
90
  url?: string;
92
91
  html?: string;
@@ -101,16 +100,17 @@ declare const GamiSDK: {
101
100
  subject?: string;
102
101
  }) => Promise<any>;
103
102
  copyToClipBoard: (text: string, message?: string) => Promise<any>;
104
- shareFacebook: (url: string) => Promise<any>;
103
+ shareFacebook: (link: string) => Promise<any>;
104
+ shareFacebookImage: (image: string) => Promise<any>;
105
105
  shareMessenger: (link: string) => Promise<any>;
106
- requestPermission: (permission: string) => Promise<any>;
106
+ requestPermission: (permission: string, showPopupPermission?: boolean) => Promise<any>;
107
107
  checkPermission: (permission: string) => Promise<any>;
108
108
  getContacts: ({ isMoMo, contactType }?: {
109
- isMoMo?: boolean;
109
+ isMoMo?: boolean | undefined;
110
110
  contactType?: "device" | string | undefined;
111
111
  }) => Promise<any[]>;
112
112
  formatUrl: (origin: string, args?: any[]) => string;
113
- request: ({ path, method, subDomain, params, body, formData, extraHeader, useCloudMsg, mockData }: {
113
+ request: ({ path, method, subDomain, params, body, formData, extraHeader, useCloudMsg, useSendMessage, mockData, SignSecure }: {
114
114
  path: string;
115
115
  method: string;
116
116
  subDomain?: string;
@@ -119,9 +119,11 @@ declare const GamiSDK: {
119
119
  formData?: any;
120
120
  extraHeader?: any;
121
121
  useCloudMsg?: boolean;
122
+ useSendMessage?: boolean;
122
123
  mockData?: any;
124
+ SignSecure?: boolean;
123
125
  }) => Promise<any>;
124
- fetch: ({ path, method, subDomain, params, body, formData, extraHeader, mockData }: {
126
+ fetch: ({ path, method, subDomain, params, body, formData, extraHeader, mockData, useCloudMsg, useSendMessage }: {
125
127
  path: string;
126
128
  method: string;
127
129
  params?: any[];
@@ -130,7 +132,17 @@ declare const GamiSDK: {
130
132
  formData?: any;
131
133
  extraHeader?: any;
132
134
  mockData?: any;
135
+ useCloudMsg?: boolean;
136
+ useSendMessage?: boolean;
133
137
  }) => Promise<any>;
138
+ screenTracking: ({ game_id, event_name, action_name, screen_name, extra, error_code }: {
139
+ game_id?: string;
140
+ event_name: string;
141
+ action_name: string;
142
+ screen_name: string;
143
+ extra?: object;
144
+ error_code?: string | number;
145
+ }) => void;
134
146
  fetchBinary: ({ url }: {
135
147
  url: string;
136
148
  }) => Promise<unknown>;
@@ -176,15 +188,8 @@ declare const GamiSDK: {
176
188
  pinKey?: string;
177
189
  }, callback: (data: any) => void) => void;
178
190
  UploadImage: (base64: string) => Promise<string>;
191
+ getScreenShot: () => Promise<unknown>;
179
192
  trackingEvent: (event: string, data: any) => void;
180
- screenTracking: ({ game_id, event_name, action_name, screen_name, extra, error_code }: {
181
- game_id?: string;
182
- event_name: string;
183
- action_name: string;
184
- screen_name: string;
185
- extra?: object;
186
- error_code?: string | number;
187
- }) => void;
188
193
  startRefId: ({ refId, refExtra, useWeb }: {
189
194
  refId: string;
190
195
  refExtra?: string | object;
@@ -210,9 +215,22 @@ export declare interface IUserInfo {
210
215
  avatar?: string;
211
216
  }
212
217
 
218
+ export declare class SSE {
219
+ static create(url: string): EventSource_2;
220
+ }
221
+
213
222
  declare const Storage_2: IStorageAPI;
214
223
  export { Storage_2 as Storage }
215
224
 
225
+ declare type TAppProfile = {
226
+ id: string;
227
+ userId: string;
228
+ name: string;
229
+ displayName: string;
230
+ avatar: string;
231
+ userInputDateOfBirth: string;
232
+ };
233
+
216
234
  export declare type TDeviceInfo = {
217
235
  appVersion: string;
218
236
  buildVersion: string;