@sogni-ai/sogni-client 1.0.2 → 2.0.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 (58) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +126 -0
  3. package/dist/Account/CurrentAccount.d.ts +6 -8
  4. package/dist/Account/CurrentAccount.js +9 -29
  5. package/dist/Account/CurrentAccount.js.map +1 -1
  6. package/dist/Account/index.d.ts +10 -6
  7. package/dist/Account/index.js +25 -12
  8. package/dist/Account/index.js.map +1 -1
  9. package/dist/Account/types.d.ts +2 -0
  10. package/dist/ApiClient/WebSocketClient/index.d.ts +4 -4
  11. package/dist/ApiClient/WebSocketClient/index.js +33 -49
  12. package/dist/ApiClient/WebSocketClient/index.js.map +1 -1
  13. package/dist/ApiClient/WebSocketClient/messages.d.ts +7 -0
  14. package/dist/ApiClient/index.d.ts +4 -10
  15. package/dist/ApiClient/index.js +26 -17
  16. package/dist/ApiClient/index.js.map +1 -1
  17. package/dist/Projects/Project.d.ts +4 -0
  18. package/dist/Projects/Project.js +8 -0
  19. package/dist/Projects/Project.js.map +1 -1
  20. package/dist/Projects/createJobRequestMessage.js +12 -1
  21. package/dist/Projects/createJobRequestMessage.js.map +1 -1
  22. package/dist/Projects/index.d.ts +40 -2
  23. package/dist/Projects/index.js +146 -14
  24. package/dist/Projects/index.js.map +1 -1
  25. package/dist/Projects/types/index.d.ts +40 -0
  26. package/dist/lib/AuthManager.d.ts +51 -0
  27. package/dist/lib/AuthManager.js +157 -0
  28. package/dist/lib/AuthManager.js.map +1 -0
  29. package/dist/lib/Cache.d.ts +9 -0
  30. package/dist/lib/Cache.js +30 -0
  31. package/dist/lib/Cache.js.map +1 -0
  32. package/dist/lib/RestClient.d.ts +4 -7
  33. package/dist/lib/RestClient.js +7 -7
  34. package/dist/lib/RestClient.js.map +1 -1
  35. package/dist/lib/utils.d.ts +8 -0
  36. package/dist/lib/utils.js +20 -0
  37. package/dist/lib/utils.js.map +1 -0
  38. package/dist/version.d.ts +1 -1
  39. package/dist/version.js +1 -1
  40. package/dist/version.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/Account/CurrentAccount.ts +14 -36
  43. package/src/Account/index.ts +23 -11
  44. package/src/Account/types.ts +2 -0
  45. package/src/ApiClient/WebSocketClient/index.ts +16 -25
  46. package/src/ApiClient/WebSocketClient/messages.ts +8 -0
  47. package/src/ApiClient/index.ts +19 -27
  48. package/src/Projects/Project.ts +7 -0
  49. package/src/Projects/createJobRequestMessage.ts +14 -1
  50. package/src/Projects/index.ts +150 -8
  51. package/src/Projects/types/index.ts +42 -0
  52. package/src/lib/AuthManager.ts +172 -0
  53. package/src/lib/Cache.ts +36 -0
  54. package/src/lib/RestClient.ts +8 -13
  55. package/src/lib/utils.ts +17 -0
  56. package/src/version.ts +1 -1
  57. package/dist/Projects/models.json +0 -8906
  58. package/src/Projects/models.json +0 -8906
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ # [2.0.0](https://github.com/Sogni-AI/sogni-client/compare/v1.1.0...v2.0.0) (2025-01-29)
2
+
3
+
4
+ ### Features
5
+
6
+ * Refresh token, output image size, project cancellation ([0a308c7](https://github.com/Sogni-AI/sogni-client/commit/0a308c759293a9a7a7efc3e4075434a316424c00))
7
+
8
+
9
+ ### BREAKING CHANGES
10
+
11
+ * Changed signature for `client.account.setToken`
12
+ Before:
13
+ `client.account.setToken(username, token);`
14
+ Now:
15
+ `client.account.setToken(username, {token, refreshToken});`
16
+
17
+ # [1.1.0](https://github.com/Sogni-AI/sogni-client/compare/v1.0.2...v1.1.0) (2025-01-29)
18
+
19
+
20
+ ### Features
21
+
22
+ * Custom output image size ([fe8957c](https://github.com/Sogni-AI/sogni-client/commit/fe8957cdc8b280b34dcbe5d395ffeed6de91fa56))
23
+ * Project cancellation ([00f704e](https://github.com/Sogni-AI/sogni-client/commit/00f704e2ef43164d024b50f30c8ea0c33c1a96cf))
24
+
1
25
  ## [1.0.2](https://github.com/Sogni-AI/sogni-client/compare/v1.0.1...v1.0.2) (2025-01-29)
2
26
 
3
27
 
package/README.md CHANGED
@@ -161,5 +161,131 @@ project.on('failed', async (errorData) => {
161
161
  });
162
162
  ```
163
163
 
164
+ ### Project parameters
165
+ Here is full list of project parameters that you can use:
166
+ - `modelId` - ID of the model to use for image generation.
167
+ - `positivePrompt` - text prompt that describes what you want to see in the image. Can be empty string.
168
+ - `negativePrompt` - text prompt that describes what you don't want to see in the image. Can be empty string.
169
+ - `stylePrompt` - text prompt that describes the style of the image. Can be empty string.
170
+ - `numberOfImages` - number of images to generate.
171
+ - `sizePreset` - optionally pass the ID of a size preset to use. If not passed, the default output is a square at
172
+ either 512x512, 768x768 or 1024x1024 (SDXL and Flux) based on the default resolution of the selected model.
173
+ See **Detecting available output presets** section below for available presets for your model. The token cost and
174
+ render time of the job is heavily influenced by total pixel count where a 2048x2048 image is 4x the cost and render
175
+ time of a 1024x1024 image as it is 4x the generated pixel count. You may also pass `custom` along with `width` and
176
+ `height` project parameters to request a custom dimension. Note that not all size presets and custom aspect ratios
177
+ produce consistently good results with all models. If your output features skewed anatomy or doubling of features
178
+ you should experiment with a different model or output size.
179
+ - `width` - if 'sizePreset' is set to 'custom' you may pass a custom pixel width between 256 and 2048
180
+ - `height` - if 'sizePreset' is set to 'custom' you may pass a custom pixel height between 256 and 2048
181
+ - `steps` - number of inference steps between random pixels to final image. Higher steps generally lead to higher
182
+ quality images and more details but varies by model, prompt, guidance, and desired look. For most Stable Diffusion
183
+ models 20-40 steps is ideal with 20 being 2x faster to render than 40. For Flux 4 steps is optimal. Lightning,
184
+ Turbo and LCM models are designed for quality output in as little as 1 step. ([More info](https://docs.sogni.ai/learn/basics/inference-steps)).
185
+ - `guidance` - guidance scale. For most Stable Diffusion models, optimal value is 7.5 ([More info](https://docs.sogni.ai/learn/basics/guidance-scale)).
186
+ - `network` - network type to use, 'fast' or 'relaxed'. This parameter allow to override default network type for this project.
187
+ - `disableNSFWFilter` - disable NSFW filter for this project. NSFW filter is enabled by default and workers won't upload resulting images if they are detected as NSFW.
188
+ - `seed` - uint32 number to use as seed. If not provided, random seed will be used. If `numberOfImages` is greater than 1, provided seed will be user only for one of them. ([More info](https://docs.sogni.ai/learn/basics/generation-seed)).
189
+ - `numberOfPreviews` - number of preview images to generate. If not provided, no preview images will be generated.
190
+ - `scheduler` - scheduler to use ([More info](https://docs.sogni.ai/learn/advanced/schedulers)). For available options see type definition.
191
+ - `timeStepSpacing` - time step spacing algorithm ([More info](https://docs.sogni.ai/learn/advanced/schedulers)). For available options see type definition.
192
+ - `startingImage` - guide image in PNG format. Can be [File](https://developer.mozilla.org/en-US/docs/Web/API/File), [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) or [Buffer](https://nodejs.org/api/buffer.html)
193
+ - `startingImageStrength` - strong effect of starting image should be. From 0 to 1, default 0.5.
194
+
195
+ TypeScript type definitions for project parameters can be found in [ProjectParams](https://sdk-docs.sogni.ai/interfaces/ProjectParams.html) docs.
196
+
197
+ ### Detecting available output presets
198
+ You can get list of available output presets for a specific network and model using `client.projects.getOutputPresets` method.
199
+ ```javascript
200
+ const presets = await client.projects.getSizePresets('fast', 'flux1-schnell-fp8');
201
+ console.log('Available output presets:', presets);
202
+ ```
203
+ Sample response:
204
+ ```json
205
+ [
206
+ {
207
+ "label": "Square",
208
+ "id": "square",
209
+ "width": 512,
210
+ "height": 512,
211
+ "ratio": "1:1",
212
+ "aspect": "1"
213
+ },
214
+ {
215
+ "label": "Square HD",
216
+ "id": "square_hd",
217
+ "width": 1024,
218
+ "height": 1024,
219
+ "ratio": "1:1",
220
+ "aspect": "1"
221
+ },
222
+ {
223
+ "label": "Portrait: Standard",
224
+ "id": "portrait_7_9",
225
+ "width": 896,
226
+ "height": 1152,
227
+ "ratio": "7:9",
228
+ "aspect": "0.78"
229
+ },
230
+ {
231
+ "label": "Portrait: 35mm",
232
+ "id": "portrait_13_19",
233
+ "width": 832,
234
+ "height": 1216,
235
+ "ratio": "13:19",
236
+ "aspect": "0.68"
237
+ },
238
+ {
239
+ "label": "Portrait: Mobile",
240
+ "id": "portrait_4_7",
241
+ "width": 768,
242
+ "height": 1344,
243
+ "ratio": "4:7",
244
+ "aspect": "0.57"
245
+ },
246
+ {
247
+ "label": "Portrait: Extended",
248
+ "id": "portrait_5_12",
249
+ "width": 640,
250
+ "height": 1536,
251
+ "ratio": "5:12",
252
+ "aspect": "0.42"
253
+ },
254
+ {
255
+ "label": "Landscape: Standard",
256
+ "id": "landscape_9_7",
257
+ "width": 1152,
258
+ "height": 896,
259
+ "ratio": "9:7",
260
+ "aspect": "1.28"
261
+ },
262
+ {
263
+ "label": "Landscape: 35mm",
264
+ "id": "landscape_19_13",
265
+ "width": 1216,
266
+ "height": 832,
267
+ "ratio": "19:13",
268
+ "aspect": "1.46"
269
+ },
270
+ {
271
+ "label": "Landscape: Widescreen",
272
+ "id": "landscape_7_4",
273
+ "width": 1344,
274
+ "height": 768,
275
+ "ratio": "7:4",
276
+ "aspect": "1.75"
277
+ },
278
+ {
279
+ "label": "Landscape: Ultrawide",
280
+ "id": "landscape_12_5",
281
+ "width": 1536,
282
+ "height": 640,
283
+ "ratio": "12:5",
284
+ "aspect": "2.4"
285
+ }
286
+ ]
287
+ ```
288
+
289
+
164
290
  ## Code examples
165
291
  You can find more code examples in the [examples](https://github.com/Sogni-AI/sogni-client/tree/main/examples) directory.
@@ -5,23 +5,22 @@ import { SupernetType } from '../ApiClient/WebSocketClient/types';
5
5
  * @inline
6
6
  */
7
7
  export interface AccountData {
8
- token: string | null;
9
8
  /**
10
- * Current network status:\
9
+ * Current network status:
11
10
  * - `connected` - connected to the socket
12
11
  * - `disconnected` - disconnected from the socket
13
12
  * - `connecting` - connecting to the socket
14
13
  * - `switching` - switching network type (fast/relaxed)
15
- * @enum
16
- * @values 'connected', 'disconnected', 'connecting', 'switching'
14
+ *
17
15
  * @default 'disconnected'
18
16
  */
19
17
  networkStatus: 'connected' | 'disconnected' | 'connecting' | 'switching';
20
18
  network: SupernetType | null;
21
19
  balance: BalanceData;
22
20
  walletAddress?: string;
23
- expiresAt?: Date;
24
21
  username?: string;
22
+ token?: string;
23
+ refreshToken?: string;
25
24
  }
26
25
  /**
27
26
  * Current account data.
@@ -29,15 +28,14 @@ export interface AccountData {
29
28
  */
30
29
  declare class CurrentAccount extends DataEntity<AccountData> {
31
30
  constructor(data?: AccountData);
32
- _update<K extends keyof AccountData>(delta: Partial<AccountData>): void;
33
31
  _clear(): void;
34
32
  get isAuthenicated(): boolean;
35
33
  get networkStatus(): "connected" | "disconnected" | "connecting" | "switching";
36
34
  get network(): SupernetType | null;
37
35
  get balance(): BalanceData;
38
36
  get walletAddress(): string | undefined;
39
- get expiresAt(): Date | undefined;
40
37
  get username(): string | undefined;
41
- get token(): string | null;
38
+ get token(): string | undefined;
39
+ get refreshToken(): string | undefined;
42
40
  }
43
41
  export default CurrentAccount;
@@ -4,10 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const DataEntity_1 = __importDefault(require("../lib/DataEntity"));
7
- const jwt_decode_1 = require("jwt-decode");
8
7
  function getDefaults() {
9
8
  return {
10
- token: null,
11
9
  networkStatus: 'disconnected',
12
10
  network: null,
13
11
  balance: {
@@ -15,14 +13,11 @@ function getDefaults() {
15
13
  debit: '0',
16
14
  net: '0',
17
15
  settled: '0'
18
- }
19
- };
20
- }
21
- function decodeToken(token) {
22
- const data = (0, jwt_decode_1.jwtDecode)(token);
23
- return {
24
- walletAddress: data.addr,
25
- expiresAt: new Date(data.exp * 1000)
16
+ },
17
+ walletAddress: undefined,
18
+ username: undefined,
19
+ token: undefined,
20
+ refreshToken: undefined
26
21
  };
27
22
  }
28
23
  /**
@@ -33,26 +28,11 @@ class CurrentAccount extends DataEntity_1.default {
33
28
  constructor(data) {
34
29
  super(data || getDefaults());
35
30
  }
36
- _update(delta) {
37
- this.data = Object.assign(Object.assign({}, this.data), delta);
38
- const keys = Object.keys(delta);
39
- if (delta.hasOwnProperty('token')) {
40
- if (delta.token) {
41
- Object.assign(this.data, decodeToken(delta.token));
42
- }
43
- else {
44
- delete this.data.walletAddress;
45
- delete this.data.expiresAt;
46
- }
47
- keys.push('walletAddress', 'expiresAt');
48
- }
49
- this.emit('updated', keys);
50
- }
51
31
  _clear() {
52
32
  this._update(getDefaults());
53
33
  }
54
34
  get isAuthenicated() {
55
- return !!this.data.token && !!this.data.expiresAt && this.data.expiresAt > new Date();
35
+ return !!this.data.refreshToken;
56
36
  }
57
37
  get networkStatus() {
58
38
  return this.data.networkStatus;
@@ -66,15 +46,15 @@ class CurrentAccount extends DataEntity_1.default {
66
46
  get walletAddress() {
67
47
  return this.data.walletAddress;
68
48
  }
69
- get expiresAt() {
70
- return this.data.expiresAt;
71
- }
72
49
  get username() {
73
50
  return this.data.username;
74
51
  }
75
52
  get token() {
76
53
  return this.data.token;
77
54
  }
55
+ get refreshToken() {
56
+ return this.data.refreshToken;
57
+ }
78
58
  }
79
59
  exports.default = CurrentAccount;
80
60
  //# sourceMappingURL=CurrentAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CurrentAccount.js","sourceRoot":"","sources":["../../src/Account/CurrentAccount.ts"],"names":[],"mappings":";;;;;AAAA,mEAA2C;AAE3C,2CAAuC;AAyBvC,SAAS,WAAW;IAClB,OAAO;QACL,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,cAAc;QAC7B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,GAAG;SACb;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,IAAI,GAAG,IAAA,sBAAS,EAA0D,KAAK,CAAC,CAAC;IACvF,OAAO;QACL,aAAa,EAAE,IAAI,CAAC,IAAI;QACxB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,cAAe,SAAQ,oBAAuB;IAClD,YAAY,IAAkB;QAC5B,KAAK,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAA8B,KAA2B;QAC9D,IAAI,CAAC,IAAI,mCAAQ,IAAI,CAAC,IAAI,GAAM,KAA8B,CAAE,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACxF,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;CACF;AAED,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"CurrentAccount.js","sourceRoot":"","sources":["../../src/Account/CurrentAccount.ts"],"names":[],"mappings":";;;;;AAAA,mEAA2C;AAyB3C,SAAS,WAAW;IAClB,OAAO;QACL,aAAa,EAAE,cAAc;QAC7B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,GAAG;SACb;QACD,aAAa,EAAE,SAAS;QACxB,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,SAAS;KACxB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,cAAe,SAAQ,oBAAuB;IAClD,YAAY,IAAkB;QAC5B,KAAK,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAChC,CAAC;CACF;AAED,kBAAe,cAAc,CAAC"}
@@ -4,6 +4,7 @@ import { Wallet } from 'ethers';
4
4
  import { ApiReponse } from '../ApiClient';
5
5
  import CurrentAccount from './CurrentAccount';
6
6
  import { SupernetType } from '../ApiClient/WebSocketClient/types';
7
+ import { Tokens } from '../lib/AuthManager';
7
8
  /**
8
9
  * Account API methods that let you interact with the user's account.
9
10
  * Can be accessed via `client.account`. Look for more samples below.
@@ -21,6 +22,7 @@ declare class AccountApi extends ApiGroup {
21
22
  private handleBalanceUpdate;
22
23
  private handleServerConnected;
23
24
  private handleServerDisconnected;
25
+ private handleAuthUpdated;
24
26
  private getNonce;
25
27
  /**
26
28
  * Create Ethers.js Wallet instance from username and password.
@@ -49,31 +51,33 @@ declare class AccountApi extends ApiGroup {
49
51
  */
50
52
  create(username: string, email: string, password: string, subscribe?: boolean, referralCode?: string): Promise<AccountCreateData>;
51
53
  /**
52
- * Restore session with username and access token.
54
+ * Restore session with username and refresh token.
53
55
  *
54
56
  * You can save access token that you get from the login method and restore the session with this method.
55
57
  *
56
58
  * @example Store access token to local storage
57
59
  * ```typescript
58
- * const { username, token } = await client.account.login('username', 'password');
60
+ * const { username, token, refreshToken } = await client.account.login('username', 'password');
59
61
  * localStorage.setItem('sogni-username', username);
60
62
  * localStorage.setItem('sogni-token', token);
63
+ * localStorage.setItem('sogni-refresh-token', refreshToken);
61
64
  * ```
62
65
  *
63
66
  * @example Restore session from local storage
64
67
  * ```typescript
65
68
  * const username = localStorage.getItem('sogni-username');
66
69
  * const token = localStorage.getItem('sogni-token');
67
- * if (username && token) {
68
- * client.account.setToken(username, token);
70
+ * const refreshToken = localStorage.getItem('sogni-refresh-token');
71
+ * if (username && refreshToken) {
72
+ * client.account.setToken(username, {token, refreshToken});
69
73
  * console.log('Session restored');
70
74
  * }
71
75
  * ```
72
76
  *
73
77
  * @param username
74
- * @param token
78
+ * @param tokens - Refresh token, access token pair { refreshToken: string, token: string }
75
79
  */
76
- setToken(username: string, token: string): void;
80
+ setToken(username: string, tokens: Tokens): Promise<void>;
77
81
  /**
78
82
  * Login with username and password. WebSocket connection is established after successful login.
79
83
  *
@@ -34,6 +34,7 @@ class AccountApi extends ApiGroup_1.default {
34
34
  this.client.socket.on('balanceUpdate', this.handleBalanceUpdate.bind(this));
35
35
  this.client.on('connected', this.handleServerConnected.bind(this));
36
36
  this.client.on('disconnected', this.handleServerDisconnected.bind(this));
37
+ this.client.auth.on('updated', this.handleAuthUpdated.bind(this));
37
38
  }
38
39
  handleBalanceUpdate(data) {
39
40
  this.currentAccount._update({ balance: data });
@@ -47,6 +48,14 @@ class AccountApi extends ApiGroup_1.default {
47
48
  handleServerDisconnected() {
48
49
  this.currentAccount._clear();
49
50
  }
51
+ handleAuthUpdated({ refreshToken, token, walletAddress }) {
52
+ if (!refreshToken) {
53
+ this.currentAccount._clear();
54
+ }
55
+ else {
56
+ this.currentAccount._update({ walletAddress, token, refreshToken });
57
+ }
58
+ }
50
59
  getNonce(walletAddress) {
51
60
  return __awaiter(this, void 0, void 0, function* () {
52
61
  const res = yield this.client.rest.post('/v1/account/nonce', {
@@ -99,40 +108,44 @@ class AccountApi extends ApiGroup_1.default {
99
108
  const signature = yield this.eip712.signTypedData(wallet, 'signup', Object.assign(Object.assign({}, payload), { nonce }));
100
109
  const res = yield this.client.rest.post('/v1/account/create', Object.assign(Object.assign({}, payload), { referralCode,
101
110
  signature }));
102
- this.setToken(username, res.data.token);
111
+ yield this.setToken(username, { refreshToken: res.data.refreshToken, token: res.data.token });
103
112
  return res.data;
104
113
  });
105
114
  }
106
115
  /**
107
- * Restore session with username and access token.
116
+ * Restore session with username and refresh token.
108
117
  *
109
118
  * You can save access token that you get from the login method and restore the session with this method.
110
119
  *
111
120
  * @example Store access token to local storage
112
121
  * ```typescript
113
- * const { username, token } = await client.account.login('username', 'password');
122
+ * const { username, token, refreshToken } = await client.account.login('username', 'password');
114
123
  * localStorage.setItem('sogni-username', username);
115
124
  * localStorage.setItem('sogni-token', token);
125
+ * localStorage.setItem('sogni-refresh-token', refreshToken);
116
126
  * ```
117
127
  *
118
128
  * @example Restore session from local storage
119
129
  * ```typescript
120
130
  * const username = localStorage.getItem('sogni-username');
121
131
  * const token = localStorage.getItem('sogni-token');
122
- * if (username && token) {
123
- * client.account.setToken(username, token);
132
+ * const refreshToken = localStorage.getItem('sogni-refresh-token');
133
+ * if (username && refreshToken) {
134
+ * client.account.setToken(username, {token, refreshToken});
124
135
  * console.log('Session restored');
125
136
  * }
126
137
  * ```
127
138
  *
128
139
  * @param username
129
- * @param token
140
+ * @param tokens - Refresh token, access token pair { refreshToken: string, token: string }
130
141
  */
131
- setToken(username, token) {
132
- this.client.authenticate(token);
133
- this.currentAccount._update({
134
- token,
135
- username
142
+ setToken(username, tokens) {
143
+ return __awaiter(this, void 0, void 0, function* () {
144
+ yield this.client.authenticate(tokens);
145
+ this.currentAccount._update({
146
+ username,
147
+ walletAddress: this.client.auth.walletAddress
148
+ });
136
149
  });
137
150
  }
138
151
  /**
@@ -159,7 +172,7 @@ class AccountApi extends ApiGroup_1.default {
159
172
  walletAddress: wallet.address,
160
173
  signature
161
174
  });
162
- this.setToken(username, res.data.token);
175
+ yield this.setToken(username, { refreshToken: res.data.refreshToken, token: res.data.token });
163
176
  return res.data;
164
177
  });
165
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Account/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Account/index.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,11 @@ export interface Nonce {
3
3
  }
4
4
  export interface AccountCreateData {
5
5
  token: string;
6
+ refreshToken: string;
6
7
  }
7
8
  export interface LoginData {
8
9
  token: string;
10
+ refreshToken: string;
9
11
  username: string;
10
12
  }
11
13
  export interface BalanceData {
@@ -1,19 +1,19 @@
1
1
  import { MessageType, SocketMessageMap } from './messages';
2
2
  import { SocketEventMap } from './events';
3
- import RestClient, { AuthData } from '../../lib/RestClient';
3
+ import RestClient from '../../lib/RestClient';
4
4
  import { SupernetType } from './types';
5
5
  import { Logger } from '../../lib/DefaultLogger';
6
+ import AuthManager from '../../lib/AuthManager';
6
7
  declare class WebSocketClient extends RestClient<SocketEventMap> {
7
8
  appId: string;
8
9
  baseUrl: string;
9
10
  private socket;
10
11
  private _supernetType;
11
12
  private _pingInterval;
12
- constructor(baseUrl: string, appId: string, supernetType: SupernetType, logger: Logger);
13
- set auth(auth: AuthData | null);
13
+ constructor(baseUrl: string, auth: AuthManager, appId: string, supernetType: SupernetType, logger: Logger);
14
14
  get supernetType(): SupernetType;
15
15
  get isConnected(): boolean;
16
- connect(): void;
16
+ connect(): Promise<void>;
17
17
  disconnect(): void;
18
18
  private startPing;
19
19
  private stopPing;
@@ -16,39 +16,22 @@ const RestClient_1 = __importDefault(require("../../lib/RestClient"));
16
16
  const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
17
17
  const base64_1 = require("../../lib/base64");
18
18
  const isNodejs_1 = __importDefault(require("../../lib/isNodejs"));
19
- const js_cookie_1 = __importDefault(require("js-cookie"));
20
19
  const version_1 = require("../../version");
20
+ const PROTOCOL_VERSION = '0.4.3';
21
21
  const PING_INTERVAL = 15000;
22
22
  class WebSocketClient extends RestClient_1.default {
23
- constructor(baseUrl, appId, supernetType, logger) {
23
+ constructor(baseUrl, auth, appId, supernetType, logger) {
24
24
  const _baseUrl = new URL(baseUrl);
25
25
  if (_baseUrl.protocol === 'wss:') {
26
26
  _baseUrl.protocol = 'https:';
27
27
  }
28
- super(_baseUrl.toString(), logger);
28
+ super(_baseUrl.toString(), auth, logger);
29
29
  this.socket = null;
30
30
  this._pingInterval = null;
31
31
  this.appId = appId;
32
32
  this.baseUrl = _baseUrl.toString();
33
33
  this._supernetType = supernetType;
34
34
  }
35
- set auth(auth) {
36
- //In browser, set the cookie
37
- if (!isNodejs_1.default) {
38
- if (auth) {
39
- js_cookie_1.default.set('authorization', auth.token, {
40
- domain: '.sogni.ai',
41
- expires: 1
42
- });
43
- }
44
- else {
45
- js_cookie_1.default.remove('authorization', {
46
- domain: '.sogni.ai'
47
- });
48
- }
49
- }
50
- this._auth = auth;
51
- }
52
35
  get supernetType() {
53
36
  return this._supernetType;
54
37
  }
@@ -56,34 +39,35 @@ class WebSocketClient extends RestClient_1.default {
56
39
  return !!this.socket;
57
40
  }
58
41
  connect() {
59
- var _a;
60
- if (this.socket) {
61
- this.disconnect();
62
- }
63
- const userAgent = `Sogni/${version_1.LIB_VERSION} (sogni-client)`;
64
- const url = new URL(this.baseUrl);
65
- url.protocol = 'wss:';
66
- url.searchParams.set('appId', this.appId);
67
- url.searchParams.set('clientName', userAgent);
68
- url.searchParams.set('clientType', 'artist');
69
- //At this point 'relaxed' does not work as expected, so we use 'fast' or empty
70
- url.searchParams.set('forceWorkerId', this._supernetType === 'fast' ? 'fast' : '');
71
- let params;
72
- // In Node.js, ws package is used, so we need to set the auth header
73
- if (isNodejs_1.default) {
74
- params = {
75
- headers: {
76
- Authorization: (_a = this._auth) === null || _a === void 0 ? void 0 : _a.token,
77
- 'User-Agent': userAgent
78
- }
79
- };
80
- }
81
- this.socket = new isomorphic_ws_1.default(url.toString(), params);
82
- this.socket.onerror = this.handleError.bind(this);
83
- this.socket.onmessage = this.handleMessage.bind(this);
84
- this.socket.onopen = this.handleOpen.bind(this);
85
- this.socket.onclose = this.handleClose.bind(this);
86
- this.startPing(this.socket);
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ if (this.socket) {
44
+ this.disconnect();
45
+ }
46
+ const userAgent = `Sogni/${PROTOCOL_VERSION} (sogni-client) ${version_1.LIB_VERSION}`;
47
+ const url = new URL(this.baseUrl);
48
+ url.protocol = 'wss:';
49
+ url.searchParams.set('appId', this.appId);
50
+ url.searchParams.set('clientName', userAgent);
51
+ url.searchParams.set('clientType', 'artist');
52
+ //At this point 'relaxed' does not work as expected, so we use 'fast' or empty
53
+ url.searchParams.set('forceWorkerId', this._supernetType === 'fast' ? 'fast' : '');
54
+ let params;
55
+ // In Node.js, ws package is used, so we need to set the auth header
56
+ if (isNodejs_1.default) {
57
+ params = {
58
+ headers: {
59
+ Authorization: yield this.auth.getToken(),
60
+ 'User-Agent': userAgent
61
+ }
62
+ };
63
+ }
64
+ this.socket = new isomorphic_ws_1.default(url.toString(), params);
65
+ this.socket.onerror = this.handleError.bind(this);
66
+ this.socket.onmessage = this.handleMessage.bind(this);
67
+ this.socket.onopen = this.handleOpen.bind(this);
68
+ this.socket.onclose = this.handleClose.bind(this);
69
+ this.startPing(this.socket);
70
+ });
87
71
  }
88
72
  disconnect() {
89
73
  if (!this.socket) {
@@ -112,7 +96,7 @@ class WebSocketClient extends RestClient_1.default {
112
96
  }
113
97
  }
114
98
  switchNetwork(supernetType) {
115
- return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
99
+ return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
116
100
  this.once('changeNetwork', ({ network }) => {
117
101
  this._supernetType = network;
118
102
  resolve(network);