@sogni-ai/sogni-client 3.3.0 → 4.0.0-alpha.1

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 (46) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/Account/CurrentAccount.d.ts +2 -4
  3. package/dist/Account/CurrentAccount.js +4 -9
  4. package/dist/Account/CurrentAccount.js.map +1 -1
  5. package/dist/Account/index.d.ts +2 -30
  6. package/dist/Account/index.js +35 -46
  7. package/dist/Account/index.js.map +1 -1
  8. package/dist/Account/types.d.ts +11 -0
  9. package/dist/ApiClient/WebSocketClient/index.d.ts +1 -1
  10. package/dist/ApiClient/WebSocketClient/index.js +1 -10
  11. package/dist/ApiClient/WebSocketClient/index.js.map +1 -1
  12. package/dist/ApiClient/index.d.ts +12 -5
  13. package/dist/ApiClient/index.js +17 -31
  14. package/dist/ApiClient/index.js.map +1 -1
  15. package/dist/index.d.ts +23 -0
  16. package/dist/index.js +48 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/lib/AuthManager/AuthManagerBase.d.ts +25 -0
  19. package/dist/lib/AuthManager/AuthManagerBase.js +14 -0
  20. package/dist/lib/AuthManager/AuthManagerBase.js.map +1 -0
  21. package/dist/lib/AuthManager/CookieAuthManager.d.ts +15 -0
  22. package/dist/lib/AuthManager/CookieAuthManager.js +53 -0
  23. package/dist/lib/AuthManager/CookieAuthManager.js.map +1 -0
  24. package/dist/lib/AuthManager/TokenAuthManager.d.ts +41 -0
  25. package/dist/lib/{AuthManager.js → AuthManager/TokenAuthManager.js} +96 -60
  26. package/dist/lib/AuthManager/TokenAuthManager.js.map +1 -0
  27. package/dist/lib/AuthManager/index.d.ts +5 -0
  28. package/dist/lib/AuthManager/index.js +11 -0
  29. package/dist/lib/AuthManager/index.js.map +1 -0
  30. package/dist/lib/RestClient.d.ts +1 -1
  31. package/dist/lib/RestClient.js +6 -2
  32. package/dist/lib/RestClient.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/Account/CurrentAccount.ts +5 -12
  35. package/src/Account/index.ts +33 -45
  36. package/src/Account/types.ts +12 -0
  37. package/src/ApiClient/WebSocketClient/index.ts +2 -11
  38. package/src/ApiClient/index.ts +35 -31
  39. package/src/index.ts +63 -9
  40. package/src/lib/AuthManager/AuthManagerBase.ts +37 -0
  41. package/src/lib/AuthManager/CookieAuthManager.ts +40 -0
  42. package/src/lib/{AuthManager.ts → AuthManager/TokenAuthManager.ts} +97 -77
  43. package/src/lib/AuthManager/index.ts +8 -0
  44. package/src/lib/RestClient.ts +7 -9
  45. package/dist/lib/AuthManager.d.ts +0 -51
  46. package/dist/lib/AuthManager.js.map +0 -1
package/dist/index.js CHANGED
@@ -54,6 +54,7 @@ const Project_1 = __importDefault(require("./Projects/Project"));
54
54
  exports.Project = Project_1.default;
55
55
  // Stats API
56
56
  const Stats_1 = __importDefault(require("./Stats"));
57
+ const AuthManager_1 = require("./lib/AuthManager");
57
58
  class SogniClient {
58
59
  constructor(config) {
59
60
  this.account = new Account_1.default(config);
@@ -64,6 +65,44 @@ class SogniClient {
64
65
  get currentAccount() {
65
66
  return this.account.currentAccount;
66
67
  }
68
+ /**
69
+ * When using token authentication, this method can be used to set the tokens.
70
+ * This is useful when the tokens are stored in a secure location and you want to resume the session.
71
+ * @param tokens
72
+ */
73
+ setTokens(tokens) {
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ const auth = this.apiClient.auth;
76
+ if (!(auth instanceof AuthManager_1.TokenAuthManager)) {
77
+ throw new Error('setTokens can only be used with token authentication');
78
+ }
79
+ yield auth.authenticate(tokens);
80
+ yield this.account.me();
81
+ });
82
+ }
83
+ /**
84
+ * When using cookie authentication, client has no way to detect if the user is authenticated or not.
85
+ * This method can be used to check if the user is authenticated and populate the currentAccount.
86
+ * @returns
87
+ */
88
+ checkAuth() {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ const auth = this.apiClient.auth;
91
+ if (!(auth instanceof AuthManager_1.CookieAuthManager)) {
92
+ throw Error('This method should only be called when using cookie auth');
93
+ }
94
+ try {
95
+ yield this.apiClient.rest.get('/v1/account/me');
96
+ yield auth.authenticate();
97
+ yield this.account.me();
98
+ return true;
99
+ }
100
+ catch (e) {
101
+ this.apiClient.logger.info('Client is not authenticated');
102
+ return false;
103
+ }
104
+ });
105
+ }
67
106
  /**
68
107
  * Create client instance, with default configuration
69
108
  * @param config
@@ -75,7 +114,15 @@ class SogniClient {
75
114
  const network = config.network || 'fast';
76
115
  const logger = config.logger || new DefaultLogger_1.DefaultLogger(config.logLevel || 'warn');
77
116
  const isTestnet = config.testnet !== undefined ? config.testnet : false;
78
- const client = new ApiClient_1.default(restEndpoint, socketEndpoint, config.appId, network, logger, config.disableSocket);
117
+ const client = new ApiClient_1.default({
118
+ baseUrl: restEndpoint,
119
+ socketUrl: socketEndpoint,
120
+ appId: config.appId,
121
+ networkType: network,
122
+ logger,
123
+ authType: config.authType || 'token',
124
+ disableSocket: config.disableSocket
125
+ });
79
126
  const eip712 = new EIP712Helper_1.default({
80
127
  name: isTestnet ? 'Sogni-testnet' : 'Sogni AI',
81
128
  version: '1',
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc;AACd,wDAAmC;AACnC,8EAAsD;AAkCnC,yBAlCZ,wBAAc,CAkCY;AAjCjC,YAAY;AACZ,yDAAkD;AAgCzC,yFAhCW,oBAAQ,OAgCX;AA7BjB,QAAQ;AACR,uDAAsE;AACtE,sEAA8C;AAC9C,eAAe;AACf,0DAAqC;AACrC,yDAAgD;AAwBb,cAxB5B,aAAG,CAwB4B;AAvBtC,iEAA4D;AAuBpB,kBAvBjC,iBAAO,CAuBiC;AArB/C,YAAY;AACZ,oDAA+B;AA+D/B,MAAa,WAAW;IAOtB,YAAoB,MAAiB;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAU,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAW,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,eAAQ,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAO,cAAc,CAAC,MAAyB;;YACnD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,sBAAsB,CAAC;YACnE,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,uBAAuB,CAAC;YACxE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;YAC7E,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YAExE,MAAM,MAAM,GAAG,IAAI,mBAAS,CAC1B,YAAY,EACZ,cAAc,EACd,MAAM,CAAC,KAAK,EACZ,OAAO,EACP,MAAM,EACN,MAAM,CAAC,aAAa,CACrB,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,sBAAY,CAAC;gBAC9B,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU;gBAC9C,OAAO,EAAE,GAAG;gBACZ,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;aACtC,CAAC,CAAC;YACH,OAAO,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,CAAC;KAAA;CACF;AA7CD,kCA6CC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Logger } from '../DefaultLogger';
2
+ import TypedEventEmitter from '../TypedEventEmitter';
3
+ import { ClientOptions } from 'ws';
4
+ interface AuthManagerEvents {
5
+ updated: boolean;
6
+ }
7
+ declare abstract class AuthManagerBase<AuthData = never> extends TypedEventEmitter<AuthManagerEvents> {
8
+ protected _logger: Logger;
9
+ constructor(logger: Logger);
10
+ abstract get isAuthenticated(): boolean;
11
+ abstract authenticateRequest(option: RequestInit): Promise<RequestInit>;
12
+ abstract socketOptions(): Promise<ClientOptions | undefined>;
13
+ /**
14
+ * Get the current authentication data to persist it
15
+ * @returns
16
+ */
17
+ abstract backup(): Promise<AuthData>;
18
+ /**
19
+ * Restore authentication from the data that was previously backed up
20
+ * @param data
21
+ */
22
+ abstract authenticate(data: AuthData): Promise<void>;
23
+ abstract clear(): void;
24
+ }
25
+ export default AuthManagerBase;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const TypedEventEmitter_1 = __importDefault(require("../TypedEventEmitter"));
7
+ class AuthManagerBase extends TypedEventEmitter_1.default {
8
+ constructor(logger) {
9
+ super();
10
+ this._logger = logger;
11
+ }
12
+ }
13
+ exports.default = AuthManagerBase;
14
+ //# sourceMappingURL=AuthManagerBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthManagerBase.js","sourceRoot":"","sources":["../../../src/lib/AuthManager/AuthManagerBase.ts"],"names":[],"mappings":";;;;;AACA,6EAAqD;AAOrD,MAAe,eAAkC,SAAQ,2BAAoC;IAE3F,YAAY,MAAc;QACxB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;CAqBF;AAED,kBAAe,eAAe,CAAC"}
@@ -0,0 +1,15 @@
1
+ import AuthManagerBase from './AuthManagerBase';
2
+ declare class CookieAuthManager extends AuthManagerBase<undefined> {
3
+ private _isAuthenticated;
4
+ /**
5
+ * For cookie authentication, there is no way to detect if the user is authenticated or not,
6
+ * except when a call to API was successful. So the REST client will set this property to true.
7
+ */
8
+ authenticate(): Promise<void>;
9
+ clear(): void;
10
+ get isAuthenticated(): boolean;
11
+ backup(): Promise<undefined>;
12
+ authenticateRequest(options: RequestInit): Promise<RequestInit>;
13
+ socketOptions(): Promise<undefined>;
14
+ }
15
+ export default CookieAuthManager;
@@ -0,0 +1,53 @@
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
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const AuthManagerBase_1 = __importDefault(require("./AuthManagerBase"));
16
+ class CookieAuthManager extends AuthManagerBase_1.default {
17
+ constructor() {
18
+ super(...arguments);
19
+ this._isAuthenticated = false;
20
+ }
21
+ /**
22
+ * For cookie authentication, there is no way to detect if the user is authenticated or not,
23
+ * except when a call to API was successful. So the REST client will set this property to true.
24
+ */
25
+ authenticate() {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ this._isAuthenticated = true;
28
+ this.emit('updated', true);
29
+ });
30
+ }
31
+ clear() {
32
+ this._isAuthenticated = false;
33
+ this.emit('updated', false);
34
+ }
35
+ get isAuthenticated() {
36
+ return this._isAuthenticated;
37
+ }
38
+ backup() {
39
+ throw new Error('Not supported with cookie authentication');
40
+ }
41
+ authenticateRequest(options) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ return Object.assign(Object.assign({}, options), { credentials: 'include' });
44
+ });
45
+ }
46
+ socketOptions() {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ return undefined;
49
+ });
50
+ }
51
+ }
52
+ exports.default = CookieAuthManager;
53
+ //# sourceMappingURL=CookieAuthManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieAuthManager.js","sourceRoot":"","sources":["../../../src/lib/AuthManager/CookieAuthManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,wEAAgD;AAEhD,MAAM,iBAAkB,SAAQ,yBAA0B;IAA1D;;QACU,qBAAgB,GAAG,KAAK,CAAC;IAkCnC,CAAC;IAhCC;;;OAGG;IACG,YAAY;;YAChB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;KAAA;IAED,KAAK;QACH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAEK,mBAAmB,CAAC,OAAoB;;YAC5C,uCACK,OAAO,KACV,WAAW,EAAE,SAAS,IACtB;QACJ,CAAC;KAAA;IAEK,aAAa;;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;CACF;AAED,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { Logger } from '../DefaultLogger';
2
+ import AuthManagerBase from './AuthManagerBase';
3
+ import { ClientOptions } from 'ws';
4
+ /**
5
+ * Token object, containing the token and refresh token
6
+ * @property {string} token - The JWT token
7
+ * @property {string} refreshToken - The refresh token
8
+ */
9
+ export interface TokenAuthData {
10
+ token: string;
11
+ refreshToken: string;
12
+ }
13
+ declare class TokenAuthManager extends AuthManagerBase<TokenAuthData | null> {
14
+ private _token?;
15
+ private _tokenExpiresAt;
16
+ private _refreshToken?;
17
+ private _refreshTokenExpiresAt;
18
+ private _baseUrl;
19
+ private _renewTokenPromise?;
20
+ constructor(baseUrl: string, logger: Logger);
21
+ get isAuthenticated(): boolean;
22
+ backup(): Promise<{
23
+ token: string;
24
+ refreshToken: string;
25
+ } | null>;
26
+ authenticate({ refreshToken, token }: TokenAuthData): Promise<void>;
27
+ clear(): void;
28
+ authenticateRequest(option: RequestInit): Promise<RequestInit>;
29
+ socketOptions(): Promise<ClientOptions | undefined>;
30
+ private _getToken;
31
+ private _renewTokenSafe;
32
+ private _updateTokens;
33
+ /**
34
+ * This is a fallback for browsers, where we can't set headers on WebSocket requests.
35
+ * Normally a browser should use CookieAuthManager
36
+ * @private
37
+ */
38
+ private _updateCookies;
39
+ private _renewToken;
40
+ }
41
+ export default TokenAuthManager;
@@ -12,72 +12,104 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- const utils_1 = require("./utils");
16
- const ApiClient_1 = require("../ApiClient");
17
- const isNodejs_1 = __importDefault(require("./isNodejs"));
15
+ const utils_1 = require("../utils");
16
+ const ApiClient_1 = require("../../ApiClient");
17
+ const isNodejs_1 = __importDefault(require("../isNodejs"));
18
18
  const js_cookie_1 = __importDefault(require("js-cookie"));
19
- const TypedEventEmitter_1 = __importDefault(require("./TypedEventEmitter"));
20
- class AuthManager extends TypedEventEmitter_1.default {
19
+ const AuthManagerBase_1 = __importDefault(require("./AuthManagerBase"));
20
+ class TokenAuthManager extends AuthManagerBase_1.default {
21
21
  constructor(baseUrl, logger) {
22
- super();
22
+ super(logger);
23
23
  this._tokenExpiresAt = new Date(0);
24
24
  this._refreshTokenExpiresAt = new Date(0);
25
- this._logger = logger;
26
25
  this._baseUrl = baseUrl;
27
26
  }
28
- get refreshToken() {
29
- return this._refreshToken;
30
- }
31
- get walletAddress() {
32
- return this._walletAddress;
33
- }
34
27
  get isAuthenticated() {
35
28
  return !!this._refreshToken && this._refreshTokenExpiresAt > new Date();
36
29
  }
37
- _updateCookies() {
38
- if (isNodejs_1.default) {
39
- return;
40
- }
41
- const token = this._token;
42
- if (token) {
43
- js_cookie_1.default.set('authorization', token, {
44
- domain: '.sogni.ai',
45
- expires: 1
46
- });
47
- }
48
- else {
49
- js_cookie_1.default.remove('authorization', {
50
- domain: '.sogni.ai'
51
- });
52
- }
30
+ backup() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ if (this._token && this._refreshToken) {
33
+ return { token: this._token, refreshToken: this._refreshToken };
34
+ }
35
+ return null;
36
+ });
53
37
  }
54
- setTokens(_a) {
38
+ authenticate(_a) {
55
39
  return __awaiter(this, arguments, void 0, function* ({ refreshToken, token }) {
40
+ // If there is a token, and it is not expired, authenticate with it
56
41
  if (token) {
57
- this._updateTokens({ token, refreshToken });
58
- return;
42
+ const { expiresAt } = (0, utils_1.decodeToken)(token);
43
+ if (expiresAt > new Date()) {
44
+ this._updateTokens({ token, refreshToken });
45
+ this.emit('updated', true);
46
+ return;
47
+ }
59
48
  }
49
+ // If token is expired, try to renew it with the refresh token
60
50
  this._refreshToken = refreshToken;
61
51
  const { expiresAt: refreshExpiresAt } = (0, utils_1.decodeRefreshToken)(refreshToken);
62
52
  this._refreshTokenExpiresAt = refreshExpiresAt;
63
- yield this.renewToken();
53
+ yield this._renewTokenSafe();
54
+ this.emit('updated', true);
64
55
  });
65
56
  }
66
- getToken() {
57
+ clear() {
58
+ // Prevent duplicate events
59
+ if (!this._token && !this._refreshToken) {
60
+ return;
61
+ }
62
+ this._refreshToken = undefined;
63
+ this._refreshTokenExpiresAt = new Date(0);
64
+ this._token = undefined;
65
+ this._tokenExpiresAt = new Date(0);
66
+ this.emit('updated', false);
67
+ }
68
+ authenticateRequest(option) {
67
69
  return __awaiter(this, void 0, void 0, function* () {
68
70
  //If there is a token, and it is not expired, return it
71
+ if (this._token && this._tokenExpiresAt > new Date()) {
72
+ return Object.assign(Object.assign({}, option), { headers: Object.assign(Object.assign({}, option.headers), { Authorization: this._token }) });
73
+ }
74
+ //If there is no refresh token, return undefined, to make unauthorized requests
75
+ if (!this._refreshToken) {
76
+ return option;
77
+ }
78
+ //If there is a refresh token, try to renew the token
79
+ const token = yield this._renewTokenSafe();
80
+ return Object.assign(Object.assign({}, option), { headers: Object.assign(Object.assign({}, option.headers), { Authorization: token }) });
81
+ });
82
+ }
83
+ socketOptions() {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ if (!isNodejs_1.default) {
86
+ return undefined;
87
+ }
88
+ const token = yield this._getToken();
89
+ if (!token) {
90
+ return undefined;
91
+ }
92
+ return {
93
+ headers: {
94
+ Authorization: token
95
+ }
96
+ };
97
+ });
98
+ }
99
+ _getToken() {
100
+ return __awaiter(this, void 0, void 0, function* () {
69
101
  if (this._token && this._tokenExpiresAt > new Date()) {
70
102
  return this._token;
71
103
  }
72
104
  //If there is no refresh token, return undefined, to make unauthorized requests
73
105
  if (!this._refreshToken) {
74
- return;
106
+ return undefined;
75
107
  }
76
108
  //If there is a refresh token, try to renew the token
77
- return this.renewToken();
109
+ return this._renewTokenSafe();
78
110
  });
79
111
  }
80
- renewToken() {
112
+ _renewTokenSafe() {
81
113
  return __awaiter(this, void 0, void 0, function* () {
82
114
  if (this._renewTokenPromise) {
83
115
  return this._renewTokenPromise;
@@ -89,32 +121,41 @@ class AuthManager extends TypedEventEmitter_1.default {
89
121
  return this._renewTokenPromise;
90
122
  });
91
123
  }
92
- clear() {
93
- // Prevent duplicate events
94
- if (!this._token && !this._refreshToken) {
95
- return;
96
- }
97
- this._refreshToken = undefined;
98
- this._refreshTokenExpiresAt = new Date(0);
99
- this._token = undefined;
100
- this._tokenExpiresAt = new Date(0);
101
- this._walletAddress = undefined;
102
- this.emit('updated', { token: null, refreshToken: null, walletAddress: null });
103
- }
104
124
  _updateTokens({ token, refreshToken }) {
105
125
  // Prevent duplicate events
106
126
  if (this._token === token && this._refreshToken === refreshToken) {
107
127
  return;
108
128
  }
109
129
  this._token = token;
110
- const { expiresAt, walletAddress } = (0, utils_1.decodeToken)(token);
111
- this._walletAddress = walletAddress;
130
+ const { expiresAt } = (0, utils_1.decodeToken)(token);
112
131
  this._tokenExpiresAt = expiresAt;
113
132
  this._refreshToken = refreshToken;
114
133
  const { expiresAt: refreshExpiresAt } = (0, utils_1.decodeRefreshToken)(refreshToken);
115
134
  this._refreshTokenExpiresAt = refreshExpiresAt;
116
135
  this._updateCookies();
117
- this.emit('updated', { token, refreshToken, walletAddress });
136
+ this.emit('updated', true);
137
+ }
138
+ /**
139
+ * This is a fallback for browsers, where we can't set headers on WebSocket requests.
140
+ * Normally a browser should use CookieAuthManager
141
+ * @private
142
+ */
143
+ _updateCookies() {
144
+ if (isNodejs_1.default) {
145
+ return;
146
+ }
147
+ const token = this._token;
148
+ if (token) {
149
+ js_cookie_1.default.set('authorization', token, {
150
+ domain: '.sogni.ai',
151
+ expires: 1
152
+ });
153
+ }
154
+ else {
155
+ js_cookie_1.default.remove('authorization', {
156
+ domain: '.sogni.ai'
157
+ });
158
+ }
118
159
  }
119
160
  _renewToken() {
120
161
  return __awaiter(this, void 0, void 0, function* () {
@@ -134,16 +175,11 @@ class AuthManager extends TypedEventEmitter_1.default {
134
175
  responseData = yield response.json();
135
176
  }
136
177
  catch (e) {
137
- this.emit('refreshFailed', {
138
- status: 'error',
139
- errorCode: 0,
140
- message: 'Failed to parse response'
141
- });
178
+ this.clear();
142
179
  this._logger.error('Failed to parse response:', e);
143
180
  throw new Error('Failed to parse response');
144
181
  }
145
182
  if (!response.ok) {
146
- this.emit('refreshFailed', responseData);
147
183
  this.clear();
148
184
  throw new ApiClient_1.ApiError(response.status, responseData);
149
185
  }
@@ -153,5 +189,5 @@ class AuthManager extends TypedEventEmitter_1.default {
153
189
  });
154
190
  }
155
191
  }
156
- exports.default = AuthManager;
157
- //# sourceMappingURL=AuthManager.js.map
192
+ exports.default = TokenAuthManager;
193
+ //# sourceMappingURL=TokenAuthManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenAuthManager.js","sourceRoot":"","sources":["../../../src/lib/AuthManager/TokenAuthManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import CookieAuthManager from './CookieAuthManager';
2
+ import TokenAuthManager, { TokenAuthData } from './TokenAuthManager';
3
+ export type { TokenAuthData };
4
+ export { CookieAuthManager, TokenAuthManager };
5
+ export type AuthManager = CookieAuthManager | TokenAuthManager;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TokenAuthManager = exports.CookieAuthManager = void 0;
7
+ const CookieAuthManager_1 = __importDefault(require("./CookieAuthManager"));
8
+ exports.CookieAuthManager = CookieAuthManager_1.default;
9
+ const TokenAuthManager_1 = __importDefault(require("./TokenAuthManager"));
10
+ exports.TokenAuthManager = TokenAuthManager_1.default;
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/AuthManager/index.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAoD;AAK3C,4BALF,2BAAiB,CAKE;AAJ1B,0EAAqE;AAIzC,2BAJrB,0BAAgB,CAIqB"}
@@ -1,7 +1,7 @@
1
1
  import TypedEventEmitter, { EventMap } from './TypedEventEmitter';
2
2
  import { JSONValue } from '../types/json';
3
3
  import { Logger } from './DefaultLogger';
4
- import AuthManager from './AuthManager';
4
+ import { AuthManager } from './AuthManager';
5
5
  declare class RestClient<E extends EventMap = never> extends TypedEventEmitter<E> {
6
6
  readonly baseUrl: string;
7
7
  protected _auth: AuthManager;
@@ -33,8 +33,8 @@ class RestClient extends TypedEventEmitter_1.default {
33
33
  }
34
34
  request(url_1) {
35
35
  return __awaiter(this, arguments, void 0, function* (url, options = {}) {
36
- const token = yield this.auth.getToken();
37
- return fetch(url, Object.assign(Object.assign({}, options), { headers: Object.assign(Object.assign({}, (options.headers || {})), (token ? { Authorization: token } : {})) })).then((r) => this.processResponse(r));
36
+ const init = yield this.auth.authenticateRequest(options);
37
+ return fetch(url, init).then((r) => this.processResponse(r));
38
38
  });
39
39
  }
40
40
  processResponse(response) {
@@ -47,6 +47,10 @@ class RestClient extends TypedEventEmitter_1.default {
47
47
  this._logger.error('Failed to parse response:', e);
48
48
  throw new Error('Failed to parse response');
49
49
  }
50
+ // 401 means that the client instance is not authenticated, so we clear the authentication
51
+ if (response.status === 401 && this.auth.isAuthenticated) {
52
+ this.auth.clear();
53
+ }
50
54
  if (!response.ok) {
51
55
  throw new ApiClient_1.ApiError(response.status, responseData);
52
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../src/lib/RestClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4CAA0D;AAC1D,4EAAkE;AAKlE,MAAM,UAAuC,SAAQ,2BAAoB;IAKvE,YAAY,OAAe,EAAE,IAAiB,EAAE,MAAc;QAC5D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEO,SAAS,CAAC,WAAmB,EAAE,QAAgC,EAAE;QACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEa,OAAO;6DAAgB,GAAW,EAAE,UAAuB,EAAE;YACzE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,GAAG,kCACX,OAAO,KACV,OAAO,kCACF,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,GACvB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAE5C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAM,CAAC,CAAC;QAC/C,CAAC;KAAA;IAEa,eAAe,CAAC,QAAkB;;YAC9C,IAAI,YAAY,CAAC;YACjB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,oBAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAgC,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,YAAyB,CAAC;QACnC,CAAC;KAAA;IAED,GAAG,CAAgB,IAAY,EAAE,QAA6B,EAAE;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAgB,IAAY,EAAE,OAAgC,EAAE;QAClE,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;CACF;AAED,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../src/lib/RestClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4CAA0D;AAC1D,4EAAkE;AAKlE,MAAM,UAAuC,SAAQ,2BAAoB;IAKvE,YAAY,OAAe,EAAE,IAAiB,EAAE,MAAc;QAC5D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEO,SAAS,CAAC,WAAmB,EAAE,QAAgC,EAAE;QACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEa,OAAO;6DAAgB,GAAW,EAAE,UAAuB,EAAE;YACzE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAM,CAAC,CAAC;QACpE,CAAC;KAAA;IAEa,eAAe,CAAC,QAAkB;;YAC9C,IAAI,YAAY,CAAC;YACjB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YACD,0FAA0F;YAC1F,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,oBAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAgC,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,YAAyB,CAAC;QACnC,CAAC;KAAA;IAED,GAAG,CAAgB,IAAY,EAAE,QAA6B,EAAE;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAgB,IAAY,EAAE,OAAgC,EAAE;QAClE,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;CACF;AAED,kBAAe,UAAU,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "3.3.0",
6
+ "version": "4.0.0-alpha.1",
7
7
  "description": "Sogni Supernet Client",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
@@ -19,8 +19,7 @@ export interface AccountData {
19
19
  balance: Balances;
20
20
  walletAddress?: string;
21
21
  username?: string;
22
- token?: string;
23
- refreshToken?: string;
22
+ email?: string;
24
23
  }
25
24
 
26
25
  function getDefaults(): AccountData {
@@ -43,9 +42,7 @@ function getDefaults(): AccountData {
43
42
  }
44
43
  },
45
44
  walletAddress: undefined,
46
- username: undefined,
47
- token: undefined,
48
- refreshToken: undefined
45
+ username: undefined
49
46
  };
50
47
  }
51
48
 
@@ -63,7 +60,7 @@ class CurrentAccount extends DataEntity<AccountData> {
63
60
  }
64
61
 
65
62
  get isAuthenicated() {
66
- return !!this.data.refreshToken;
63
+ return !!this.data.walletAddress;
67
64
  }
68
65
 
69
66
  get networkStatus() {
@@ -86,12 +83,8 @@ class CurrentAccount extends DataEntity<AccountData> {
86
83
  return this.data.username;
87
84
  }
88
85
 
89
- get token() {
90
- return this.data.token;
91
- }
92
-
93
- get refreshToken() {
94
- return this.data.refreshToken;
86
+ get email() {
87
+ return this.data.email;
95
88
  }
96
89
  }
97
90