@sogni-ai/sogni-client 0.4.3 → 0.5.0-alpha.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.
- package/dist/Account/CurrentAccount.d.ts +4 -6
- package/dist/Account/CurrentAccount.js +3 -30
- package/dist/Account/CurrentAccount.js.map +1 -1
- package/dist/Account/index.d.ts +5 -3
- package/dist/Account/index.js +20 -9
- package/dist/Account/index.js.map +1 -1
- package/dist/Account/types.d.ts +2 -0
- package/dist/ApiClient/WebSocketClient/index.d.ts +4 -4
- package/dist/ApiClient/WebSocketClient/index.js +32 -49
- package/dist/ApiClient/WebSocketClient/index.js.map +1 -1
- package/dist/ApiClient/index.d.ts +4 -10
- package/dist/ApiClient/index.js +26 -17
- package/dist/ApiClient/index.js.map +1 -1
- package/dist/lib/AuthManager.d.ts +51 -0
- package/dist/lib/AuthManager.js +157 -0
- package/dist/lib/AuthManager.js.map +1 -0
- package/dist/lib/RestClient.d.ts +4 -7
- package/dist/lib/RestClient.js +7 -7
- package/dist/lib/RestClient.js.map +1 -1
- package/dist/lib/utils.d.ts +8 -0
- package/dist/lib/utils.js +20 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/src/Account/CurrentAccount.ts +6 -35
- package/src/Account/index.ts +18 -8
- package/src/Account/types.ts +2 -0
- package/src/ApiClient/WebSocketClient/index.ts +13 -24
- package/src/ApiClient/index.ts +19 -27
- package/src/lib/AuthManager.ts +172 -0
- package/src/lib/RestClient.ts +8 -13
- package/src/lib/utils.ts +17 -0
- package/src/version.ts +1 -1
|
@@ -5,7 +5,6 @@ import { SupernetType } from '../ApiClient/WebSocketClient/types';
|
|
|
5
5
|
* @inline
|
|
6
6
|
*/
|
|
7
7
|
export interface AccountData {
|
|
8
|
-
token: string | null;
|
|
9
8
|
/**
|
|
10
9
|
* Current network status:\
|
|
11
10
|
* - `connected` - connected to the socket
|
|
@@ -20,8 +19,9 @@ export interface AccountData {
|
|
|
20
19
|
network: SupernetType | null;
|
|
21
20
|
balance: BalanceData;
|
|
22
21
|
walletAddress?: string;
|
|
23
|
-
expiresAt?: Date;
|
|
24
22
|
username?: string;
|
|
23
|
+
token?: string;
|
|
24
|
+
refreshToken?: string;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Current account data.
|
|
@@ -29,15 +29,13 @@ export interface AccountData {
|
|
|
29
29
|
*/
|
|
30
30
|
declare class CurrentAccount extends DataEntity<AccountData> {
|
|
31
31
|
constructor(data?: AccountData);
|
|
32
|
-
_update<K extends keyof AccountData>(delta: Partial<AccountData>): void;
|
|
33
32
|
_clear(): void;
|
|
34
|
-
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 |
|
|
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: {
|
|
@@ -18,13 +16,6 @@ function getDefaults() {
|
|
|
18
16
|
}
|
|
19
17
|
};
|
|
20
18
|
}
|
|
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)
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
19
|
/**
|
|
29
20
|
* Current account data.
|
|
30
21
|
* @expand
|
|
@@ -33,27 +24,9 @@ class CurrentAccount extends DataEntity_1.default {
|
|
|
33
24
|
constructor(data) {
|
|
34
25
|
super(data || getDefaults());
|
|
35
26
|
}
|
|
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
27
|
_clear() {
|
|
52
28
|
this._update(getDefaults());
|
|
53
29
|
}
|
|
54
|
-
get isAuthenicated() {
|
|
55
|
-
return !!this.data.token && !!this.data.expiresAt && this.data.expiresAt > new Date();
|
|
56
|
-
}
|
|
57
30
|
get networkStatus() {
|
|
58
31
|
return this.data.networkStatus;
|
|
59
32
|
}
|
|
@@ -66,15 +39,15 @@ class CurrentAccount extends DataEntity_1.default {
|
|
|
66
39
|
get walletAddress() {
|
|
67
40
|
return this.data.walletAddress;
|
|
68
41
|
}
|
|
69
|
-
get expiresAt() {
|
|
70
|
-
return this.data.expiresAt;
|
|
71
|
-
}
|
|
72
42
|
get username() {
|
|
73
43
|
return this.data.username;
|
|
74
44
|
}
|
|
75
45
|
get token() {
|
|
76
46
|
return this.data.token;
|
|
77
47
|
}
|
|
48
|
+
get refreshToken() {
|
|
49
|
+
return this.data.refreshToken;
|
|
50
|
+
}
|
|
78
51
|
}
|
|
79
52
|
exports.default = CurrentAccount;
|
|
80
53
|
//# sourceMappingURL=CurrentAccount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrentAccount.js","sourceRoot":"","sources":["../../src/Account/CurrentAccount.ts"],"names":[],"mappings":";;;;;AAAA,mEAA2C;
|
|
1
|
+
{"version":3,"file":"CurrentAccount.js","sourceRoot":"","sources":["../../src/Account/CurrentAccount.ts"],"names":[],"mappings":";;;;;AAAA,mEAA2C;AA0B3C,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;KACF,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,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"}
|
package/dist/Account/index.d.ts
CHANGED
|
@@ -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,7 +51,7 @@ 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
|
|
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
|
*
|
|
@@ -71,9 +73,9 @@ declare class AccountApi extends ApiGroup {
|
|
|
71
73
|
* ```
|
|
72
74
|
*
|
|
73
75
|
* @param username
|
|
74
|
-
* @param token
|
|
76
|
+
* @param tokens - Refresh token, access token pair { refreshToken: string, token: string }
|
|
75
77
|
*/
|
|
76
|
-
setToken(username: string,
|
|
78
|
+
setToken(username: string, tokens: Tokens): Promise<void>;
|
|
77
79
|
/**
|
|
78
80
|
* Login with username and password. WebSocket connection is established after successful login.
|
|
79
81
|
*
|
package/dist/Account/index.js
CHANGED
|
@@ -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,12 +108,12 @@ 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
|
|
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
|
*
|
|
@@ -126,13 +135,15 @@ class AccountApi extends ApiGroup_1.default {
|
|
|
126
135
|
* ```
|
|
127
136
|
*
|
|
128
137
|
* @param username
|
|
129
|
-
* @param token
|
|
138
|
+
* @param tokens - Refresh token, access token pair { refreshToken: string, token: string }
|
|
130
139
|
*/
|
|
131
|
-
setToken(username,
|
|
132
|
-
this
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
140
|
+
setToken(username, tokens) {
|
|
141
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
142
|
+
yield this.client.authenticate(tokens);
|
|
143
|
+
this.currentAccount._update({
|
|
144
|
+
username,
|
|
145
|
+
walletAddress: this.client.auth.walletAddress
|
|
146
|
+
});
|
|
136
147
|
});
|
|
137
148
|
}
|
|
138
149
|
/**
|
|
@@ -159,7 +170,7 @@ class AccountApi extends ApiGroup_1.default {
|
|
|
159
170
|
walletAddress: wallet.address,
|
|
160
171
|
signature
|
|
161
172
|
});
|
|
162
|
-
this.setToken(username, res.data.token);
|
|
173
|
+
yield this.setToken(username, { refreshToken: res.data.refreshToken, token: res.data.token });
|
|
163
174
|
return res.data;
|
|
164
175
|
});
|
|
165
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Account/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAWA,2DAAkD;AAClD,mCAA4E;AAC5E,4CAAoD;AACpD,sEAA8C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Account/index.ts"],"names":[],"mappings":"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"}
|
package/dist/Account/types.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { MessageType, SocketMessageMap } from './messages';
|
|
2
2
|
import { SocketEventMap } from './events';
|
|
3
|
-
import 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,21 @@ 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");
|
|
21
20
|
const PING_INTERVAL = 15000;
|
|
22
21
|
class WebSocketClient extends RestClient_1.default {
|
|
23
|
-
constructor(baseUrl, appId, supernetType, logger) {
|
|
22
|
+
constructor(baseUrl, auth, appId, supernetType, logger) {
|
|
24
23
|
const _baseUrl = new URL(baseUrl);
|
|
25
24
|
if (_baseUrl.protocol === 'wss:') {
|
|
26
25
|
_baseUrl.protocol = 'https:';
|
|
27
26
|
}
|
|
28
|
-
super(_baseUrl.toString(), logger);
|
|
27
|
+
super(_baseUrl.toString(), auth, logger);
|
|
29
28
|
this.socket = null;
|
|
30
29
|
this._pingInterval = null;
|
|
31
30
|
this.appId = appId;
|
|
32
31
|
this.baseUrl = _baseUrl.toString();
|
|
33
32
|
this._supernetType = supernetType;
|
|
34
33
|
}
|
|
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
34
|
get supernetType() {
|
|
53
35
|
return this._supernetType;
|
|
54
36
|
}
|
|
@@ -56,34 +38,35 @@ class WebSocketClient extends RestClient_1.default {
|
|
|
56
38
|
return !!this.socket;
|
|
57
39
|
}
|
|
58
40
|
connect() {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
if (this.socket) {
|
|
43
|
+
this.disconnect();
|
|
44
|
+
}
|
|
45
|
+
const userAgent = `Sogni/${version_1.LIB_VERSION} (sogni-client)`;
|
|
46
|
+
const url = new URL(this.baseUrl);
|
|
47
|
+
url.protocol = 'wss:';
|
|
48
|
+
url.searchParams.set('appId', this.appId);
|
|
49
|
+
url.searchParams.set('clientName', userAgent);
|
|
50
|
+
url.searchParams.set('clientType', 'artist');
|
|
51
|
+
//At this point 'relaxed' does not work as expected, so we use 'fast' or empty
|
|
52
|
+
url.searchParams.set('forceWorkerId', this._supernetType === 'fast' ? 'fast' : '');
|
|
53
|
+
let params;
|
|
54
|
+
// In Node.js, ws package is used, so we need to set the auth header
|
|
55
|
+
if (isNodejs_1.default) {
|
|
56
|
+
params = {
|
|
57
|
+
headers: {
|
|
58
|
+
Authorization: yield this.auth.getToken(),
|
|
59
|
+
'User-Agent': userAgent
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
this.socket = new isomorphic_ws_1.default(url.toString(), params);
|
|
64
|
+
this.socket.onerror = this.handleError.bind(this);
|
|
65
|
+
this.socket.onmessage = this.handleMessage.bind(this);
|
|
66
|
+
this.socket.onopen = this.handleOpen.bind(this);
|
|
67
|
+
this.socket.onclose = this.handleClose.bind(this);
|
|
68
|
+
this.startPing(this.socket);
|
|
69
|
+
});
|
|
87
70
|
}
|
|
88
71
|
disconnect() {
|
|
89
72
|
if (!this.socket) {
|
|
@@ -112,7 +95,7 @@ class WebSocketClient extends RestClient_1.default {
|
|
|
112
95
|
}
|
|
113
96
|
}
|
|
114
97
|
switchNetwork(supernetType) {
|
|
115
|
-
return new Promise((resolve
|
|
98
|
+
return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
|
116
99
|
this.once('changeNetwork', ({ network }) => {
|
|
117
100
|
this._supernetType = network;
|
|
118
101
|
resolve(network);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { ServerConnectData, ServerDisconnectData } from './WebSocketClient/event
|
|
|
6
6
|
import { JSONValue } from '../types/json';
|
|
7
7
|
import { SupernetType } from './WebSocketClient/types';
|
|
8
8
|
import { Logger } from '../lib/DefaultLogger';
|
|
9
|
+
import AuthManager, { Tokens } from '../lib/AuthManager';
|
|
9
10
|
export interface ApiReponse<D = JSONValue> {
|
|
10
11
|
status: 'success';
|
|
11
12
|
data: D;
|
|
@@ -21,14 +22,6 @@ export declare class ApiError extends Error {
|
|
|
21
22
|
payload: ApiErrorResponse;
|
|
22
23
|
constructor(status: number, payload: ApiErrorResponse);
|
|
23
24
|
}
|
|
24
|
-
/**
|
|
25
|
-
* @inline
|
|
26
|
-
*/
|
|
27
|
-
interface AuthData {
|
|
28
|
-
token: string;
|
|
29
|
-
walletAddress: string;
|
|
30
|
-
expiresAt: Date;
|
|
31
|
-
}
|
|
32
25
|
declare class ApiClient extends TypedEventEmitter<ApiClientEvents> {
|
|
33
26
|
readonly appId: string;
|
|
34
27
|
readonly logger: Logger;
|
|
@@ -38,12 +31,13 @@ declare class ApiClient extends TypedEventEmitter<ApiClientEvents> {
|
|
|
38
31
|
private _reconnectAttempts;
|
|
39
32
|
constructor(baseUrl: string, socketUrl: string, appId: string, networkType: SupernetType, logger: Logger);
|
|
40
33
|
get isAuthenticated(): boolean;
|
|
41
|
-
get auth():
|
|
34
|
+
get auth(): AuthManager;
|
|
42
35
|
get socket(): WebSocketClient;
|
|
43
36
|
get rest(): RestClient;
|
|
44
|
-
authenticate(
|
|
37
|
+
authenticate(tokens: Tokens): Promise<void>;
|
|
45
38
|
removeAuth(): void;
|
|
46
39
|
handleSocketConnect({ network }: ServerConnectData): void;
|
|
47
40
|
handleSocketDisconnect(data: ServerDisconnectData): void;
|
|
41
|
+
handleRefreshFailed(): void;
|
|
48
42
|
}
|
|
49
43
|
export default ApiClient;
|
package/dist/ApiClient/index.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
@@ -6,9 +15,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
15
|
exports.ApiError = void 0;
|
|
7
16
|
const RestClient_1 = __importDefault(require("../lib/RestClient"));
|
|
8
17
|
const WebSocketClient_1 = __importDefault(require("./WebSocketClient"));
|
|
9
|
-
const jwt_decode_1 = require("jwt-decode");
|
|
10
18
|
const TypedEventEmitter_1 = __importDefault(require("../lib/TypedEventEmitter"));
|
|
11
19
|
const ErrorCode_1 = require("./WebSocketClient/ErrorCode");
|
|
20
|
+
const AuthManager_1 = __importDefault(require("../lib/AuthManager"));
|
|
12
21
|
const WS_RECONNECT_ATTEMPTS = 5;
|
|
13
22
|
class ApiError extends Error {
|
|
14
23
|
constructor(status, payload) {
|
|
@@ -21,20 +30,21 @@ exports.ApiError = ApiError;
|
|
|
21
30
|
class ApiClient extends TypedEventEmitter_1.default {
|
|
22
31
|
constructor(baseUrl, socketUrl, appId, networkType, logger) {
|
|
23
32
|
super();
|
|
24
|
-
this._auth = null;
|
|
25
33
|
this._reconnectAttempts = WS_RECONNECT_ATTEMPTS;
|
|
26
34
|
this.appId = appId;
|
|
27
35
|
this.logger = logger;
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
36
|
+
this._auth = new AuthManager_1.default(baseUrl, logger);
|
|
37
|
+
this._rest = new RestClient_1.default(baseUrl, this._auth, logger);
|
|
38
|
+
this._socket = new WebSocketClient_1.default(socketUrl, this._auth, appId, networkType, logger);
|
|
39
|
+
this._auth.on('refreshFailed', this.handleRefreshFailed.bind(this));
|
|
30
40
|
this._socket.on('connected', this.handleSocketConnect.bind(this));
|
|
31
41
|
this._socket.on('disconnected', this.handleSocketDisconnect.bind(this));
|
|
32
42
|
}
|
|
33
43
|
get isAuthenticated() {
|
|
34
|
-
return
|
|
44
|
+
return this.auth.isAuthenticated;
|
|
35
45
|
}
|
|
36
46
|
get auth() {
|
|
37
|
-
return this._auth
|
|
47
|
+
return this._auth;
|
|
38
48
|
}
|
|
39
49
|
get socket() {
|
|
40
50
|
return this._socket;
|
|
@@ -42,19 +52,14 @@ class ApiClient extends TypedEventEmitter_1.default {
|
|
|
42
52
|
get rest() {
|
|
43
53
|
return this._rest;
|
|
44
54
|
}
|
|
45
|
-
authenticate(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
expiresAt: new Date(decoded.exp * 1000)
|
|
51
|
-
};
|
|
52
|
-
this.rest.auth = { token };
|
|
53
|
-
this.socket.auth = { token };
|
|
54
|
-
this.socket.connect();
|
|
55
|
+
authenticate(tokens) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
yield this.auth.setTokens(tokens);
|
|
58
|
+
yield this.socket.connect();
|
|
59
|
+
});
|
|
55
60
|
}
|
|
56
61
|
removeAuth() {
|
|
57
|
-
this.
|
|
62
|
+
this.auth.clear();
|
|
58
63
|
this.socket.disconnect();
|
|
59
64
|
}
|
|
60
65
|
handleSocketConnect({ network }) {
|
|
@@ -69,6 +74,7 @@ class ApiClient extends TypedEventEmitter_1.default {
|
|
|
69
74
|
return;
|
|
70
75
|
}
|
|
71
76
|
if (this._reconnectAttempts <= 0) {
|
|
77
|
+
this.removeAuth();
|
|
72
78
|
this.emit('disconnected', data);
|
|
73
79
|
this._reconnectAttempts = WS_RECONNECT_ATTEMPTS;
|
|
74
80
|
return;
|
|
@@ -76,6 +82,9 @@ class ApiClient extends TypedEventEmitter_1.default {
|
|
|
76
82
|
this._reconnectAttempts--;
|
|
77
83
|
setTimeout(() => this.socket.connect(), 1000);
|
|
78
84
|
}
|
|
85
|
+
handleRefreshFailed() {
|
|
86
|
+
this.removeAuth();
|
|
87
|
+
}
|
|
79
88
|
}
|
|
80
89
|
exports.default = ApiClient;
|
|
81
90
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ApiClient/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ApiClient/index.ts"],"names":[],"mappings":"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"}
|