@sogni-ai/sogni-client 4.2.0-alpha.21 → 4.2.0-alpha.22
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/CHANGELOG.md +7 -0
- package/CLAUDE.md +7 -0
- package/README.md +45 -25
- package/dist/Chat/ChatTools.js +30 -16
- package/dist/Chat/ChatTools.js.map +1 -1
- package/dist/Chat/hostedToolValidation.generated.d.ts +46 -0
- package/dist/Chat/hostedToolValidation.generated.js +306 -0
- package/dist/Chat/hostedToolValidation.generated.js.map +1 -0
- package/dist/Chat/index.d.ts +41 -1
- package/dist/Chat/index.js +166 -2
- package/dist/Chat/index.js.map +1 -1
- package/dist/Chat/modelRouting.d.ts +8 -26
- package/dist/Chat/modelRouting.js +11 -106
- package/dist/Chat/modelRouting.js.map +1 -1
- package/dist/Chat/sogniHostedTools.generated.json +1285 -283
- package/dist/Chat/tools.d.ts +52 -3
- package/dist/Chat/tools.js +80 -27
- package/dist/Chat/tools.js.map +1 -1
- package/dist/Chat/types.d.ts +119 -3
- package/dist/CreativeWorkflows/index.d.ts +1 -7
- package/dist/CreativeWorkflows/index.js +23 -21
- package/dist/CreativeWorkflows/index.js.map +1 -1
- package/dist/CreativeWorkflows/types.d.ts +27 -33
- package/dist/index.d.ts +19 -4
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/Cache.js +6 -1
- package/dist/lib/Cache.js.map +1 -1
- package/dist-esm/Account/CurrentAccount.js +59 -0
- package/dist-esm/Account/CurrentAccount.js.map +1 -0
- package/dist-esm/Account/index.js +543 -0
- package/dist-esm/Account/index.js.map +1 -0
- package/dist-esm/Account/types.js +2 -0
- package/dist-esm/Account/types.js.map +1 -0
- package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.js +327 -0
- package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.js.map +1 -0
- package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js +222 -0
- package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js.map +1 -0
- package/dist-esm/ApiClient/WebSocketClient/ErrorCode.js +15 -0
- package/dist-esm/ApiClient/WebSocketClient/ErrorCode.js.map +1 -0
- package/dist-esm/ApiClient/WebSocketClient/eventSubscriptions.js +35 -0
- package/dist-esm/ApiClient/WebSocketClient/eventSubscriptions.js.map +1 -0
- package/dist-esm/ApiClient/WebSocketClient/events.js +2 -0
- package/dist-esm/ApiClient/WebSocketClient/events.js.map +1 -0
- package/dist-esm/ApiClient/WebSocketClient/index.js +221 -0
- package/dist-esm/ApiClient/WebSocketClient/index.js.map +1 -0
- package/dist-esm/ApiClient/WebSocketClient/messages.js +2 -0
- package/dist-esm/ApiClient/WebSocketClient/messages.js.map +1 -0
- package/dist-esm/ApiClient/WebSocketClient/types.js +2 -0
- package/dist-esm/ApiClient/WebSocketClient/types.js.map +1 -0
- package/dist-esm/ApiClient/events.js +2 -0
- package/dist-esm/ApiClient/events.js.map +1 -0
- package/dist-esm/ApiClient/index.js +120 -0
- package/dist-esm/ApiClient/index.js.map +1 -0
- package/dist-esm/ApiGroup.js +10 -0
- package/dist-esm/ApiGroup.js.map +1 -0
- package/dist-esm/Chat/ChatStream.js +181 -0
- package/dist-esm/Chat/ChatStream.js.map +1 -0
- package/dist-esm/Chat/ChatTools.js +562 -0
- package/dist-esm/Chat/ChatTools.js.map +1 -0
- package/dist-esm/Chat/hostedToolValidation.generated.js +301 -0
- package/dist-esm/Chat/hostedToolValidation.generated.js.map +1 -0
- package/dist-esm/Chat/index.js +598 -0
- package/dist-esm/Chat/index.js.map +1 -0
- package/dist-esm/Chat/modelRouting.js +326 -0
- package/dist-esm/Chat/modelRouting.js.map +1 -0
- package/dist-esm/Chat/sogniHostedTools.generated.json +1531 -0
- package/dist-esm/Chat/tools.js +149 -0
- package/dist-esm/Chat/tools.js.map +1 -0
- package/dist-esm/Chat/types.js +2 -0
- package/dist-esm/Chat/types.js.map +1 -0
- package/dist-esm/CreativeWorkflows/index.js +256 -0
- package/dist-esm/CreativeWorkflows/index.js.map +1 -0
- package/dist-esm/CreativeWorkflows/types.js +2 -0
- package/dist-esm/CreativeWorkflows/types.js.map +1 -0
- package/dist-esm/Projects/Job.js +391 -0
- package/dist-esm/Projects/Job.js.map +1 -0
- package/dist-esm/Projects/Project.js +295 -0
- package/dist-esm/Projects/Project.js.map +1 -0
- package/dist-esm/Projects/createJobRequestMessage.js +528 -0
- package/dist-esm/Projects/createJobRequestMessage.js.map +1 -0
- package/dist-esm/Projects/index.js +1309 -0
- package/dist-esm/Projects/index.js.map +1 -0
- package/dist-esm/Projects/types/ComfySamplerParams.js +2 -0
- package/dist-esm/Projects/types/ComfySamplerParams.js.map +1 -0
- package/dist-esm/Projects/types/ControlNetParams.js +2 -0
- package/dist-esm/Projects/types/ControlNetParams.js.map +1 -0
- package/dist-esm/Projects/types/EstimationResponse.js +2 -0
- package/dist-esm/Projects/types/EstimationResponse.js.map +1 -0
- package/dist-esm/Projects/types/ModelOptions.js +89 -0
- package/dist-esm/Projects/types/ModelOptions.js.map +1 -0
- package/dist-esm/Projects/types/ModelTiersRaw.js +13 -0
- package/dist-esm/Projects/types/ModelTiersRaw.js.map +1 -0
- package/dist-esm/Projects/types/RawProject.js +2 -0
- package/dist-esm/Projects/types/RawProject.js.map +1 -0
- package/dist-esm/Projects/types/events.js +2 -0
- package/dist-esm/Projects/types/events.js.map +1 -0
- package/dist-esm/Projects/types/index.js +10 -0
- package/dist-esm/Projects/types/index.js.map +1 -0
- package/dist-esm/Projects/utils/index.js +229 -0
- package/dist-esm/Projects/utils/index.js.map +1 -0
- package/dist-esm/Projects/utils/samplers.js +36 -0
- package/dist-esm/Projects/utils/samplers.js.map +1 -0
- package/dist-esm/Projects/utils/scheduler.js +27 -0
- package/dist-esm/Projects/utils/scheduler.js.map +1 -0
- package/dist-esm/Stats/index.js +20 -0
- package/dist-esm/Stats/index.js.map +1 -0
- package/dist-esm/Stats/types.js +2 -0
- package/dist-esm/Stats/types.js.map +1 -0
- package/dist-esm/events.js +2 -0
- package/dist-esm/events.js.map +1 -0
- package/dist-esm/index.js +144 -0
- package/dist-esm/index.js.map +1 -0
- package/dist-esm/lib/AuthManager/ApiKeyAuthManager.js +58 -0
- package/dist-esm/lib/AuthManager/ApiKeyAuthManager.js.map +1 -0
- package/dist-esm/lib/AuthManager/AuthManagerBase.js +9 -0
- package/dist-esm/lib/AuthManager/AuthManagerBase.js.map +1 -0
- package/dist-esm/lib/AuthManager/CookieAuthManager.js +48 -0
- package/dist-esm/lib/AuthManager/CookieAuthManager.js.map +1 -0
- package/dist-esm/lib/AuthManager/TokenAuthManager.js +186 -0
- package/dist-esm/lib/AuthManager/TokenAuthManager.js.map +1 -0
- package/dist-esm/lib/AuthManager/index.js +5 -0
- package/dist-esm/lib/AuthManager/index.js.map +1 -0
- package/dist-esm/lib/Cache.js +32 -0
- package/dist-esm/lib/Cache.js.map +1 -0
- package/dist-esm/lib/DataEntity.js +30 -0
- package/dist-esm/lib/DataEntity.js.map +1 -0
- package/dist-esm/lib/DefaultLogger.js +32 -0
- package/dist-esm/lib/DefaultLogger.js.map +1 -0
- package/dist-esm/lib/EIP712Helper.js +37 -0
- package/dist-esm/lib/EIP712Helper.js.map +1 -0
- package/dist-esm/lib/RestClient.js +90 -0
- package/dist-esm/lib/RestClient.js.map +1 -0
- package/dist-esm/lib/TypedEventEmitter.js +68 -0
- package/dist-esm/lib/TypedEventEmitter.js.map +1 -0
- package/dist-esm/lib/base64.js +18 -0
- package/dist-esm/lib/base64.js.map +1 -0
- package/dist-esm/lib/getUUID.js +7 -0
- package/dist-esm/lib/getUUID.js.map +1 -0
- package/dist-esm/lib/isNodejs.js +3 -0
- package/dist-esm/lib/isNodejs.js.map +1 -0
- package/dist-esm/lib/mediaValidation.js +277 -0
- package/dist-esm/lib/mediaValidation.js.map +1 -0
- package/dist-esm/lib/utils/index.js +30 -0
- package/dist-esm/lib/utils/index.js.map +1 -0
- package/dist-esm/lib/validation.js +138 -0
- package/dist-esm/lib/validation.js.map +1 -0
- package/dist-esm/package.json +3 -0
- package/dist-esm/types/ErrorData.js +2 -0
- package/dist-esm/types/ErrorData.js.map +1 -0
- package/dist-esm/types/json.js +2 -0
- package/dist-esm/types/json.js.map +1 -0
- package/dist-esm/types/token.js +2 -0
- package/dist-esm/types/token.js.map +1 -0
- package/dist-esm/version.js +3 -0
- package/dist-esm/version.js.map +1 -0
- package/llms-full.txt +11 -20
- package/llms.txt +9 -18
- package/package.json +21 -5
- package/src/Chat/ChatTools.ts +36 -16
- package/src/Chat/hostedToolValidation.generated.ts +453 -0
- package/src/Chat/index.ts +198 -3
- package/src/Chat/modelRouting.ts +26 -150
- package/src/Chat/sogniHostedTools.generated.json +1285 -283
- package/src/Chat/tools.ts +106 -41
- package/src/Chat/types.ts +131 -3
- package/src/CreativeWorkflows/index.ts +22 -41
- package/src/CreativeWorkflows/types.ts +69 -42
- package/src/index.ts +33 -12
- package/src/lib/Cache.ts +8 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
// Account API
|
|
11
|
+
import AccountApi from './Account';
|
|
12
|
+
import CurrentAccount from './Account/CurrentAccount';
|
|
13
|
+
// ApiClient
|
|
14
|
+
import ApiClient, { ApiError } from './ApiClient';
|
|
15
|
+
// Utils
|
|
16
|
+
import { DefaultLogger } from './lib/DefaultLogger';
|
|
17
|
+
import EIP712Helper from './lib/EIP712Helper';
|
|
18
|
+
// Projects API
|
|
19
|
+
import ProjectsApi from './Projects';
|
|
20
|
+
import Job from './Projects/Job';
|
|
21
|
+
import Project from './Projects/Project';
|
|
22
|
+
// Chat API
|
|
23
|
+
import ChatApi from './Chat';
|
|
24
|
+
import ChatStream from './Chat/ChatStream';
|
|
25
|
+
import ChatToolsApi from './Chat/ChatTools';
|
|
26
|
+
import { SogniTools, buildSogniTools, isSogniToolCall, parseToolCallArguments } from './Chat/tools';
|
|
27
|
+
// Creative Workflows API
|
|
28
|
+
import CreativeWorkflowsApi, { parseCreativeWorkflowSseChunk } from './CreativeWorkflows';
|
|
29
|
+
// Stats API
|
|
30
|
+
import StatsApi from './Stats';
|
|
31
|
+
import { ApiKeyAuthManager, CookieAuthManager, TokenAuthManager } from './lib/AuthManager';
|
|
32
|
+
export { ApiError, ApiKeyAuthManager, ChatStream, ChatToolsApi, CreativeWorkflowsApi, CurrentAccount, Job, Project, SogniTools, buildSogniTools, isSogniToolCall, parseCreativeWorkflowSseChunk, parseToolCallArguments };
|
|
33
|
+
export class SogniClient {
|
|
34
|
+
constructor(config) {
|
|
35
|
+
this.account = new AccountApi(config);
|
|
36
|
+
this.projects = new ProjectsApi(config);
|
|
37
|
+
this.stats = new StatsApi(config);
|
|
38
|
+
this.chat = new ChatApi(config, this.projects);
|
|
39
|
+
this.workflows = new CreativeWorkflowsApi(config);
|
|
40
|
+
this.apiClient = config.client;
|
|
41
|
+
}
|
|
42
|
+
get currentAccount() {
|
|
43
|
+
return this.account.currentAccount;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* When using token authentication, this method can be used to set the tokens.
|
|
47
|
+
* This is useful when the tokens are stored in a secure location and you want to resume the session.
|
|
48
|
+
* @param tokens
|
|
49
|
+
*/
|
|
50
|
+
setTokens(tokens) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
const auth = this.apiClient.auth;
|
|
53
|
+
if (!(auth instanceof TokenAuthManager)) {
|
|
54
|
+
throw new Error('setTokens can only be used with token authentication');
|
|
55
|
+
}
|
|
56
|
+
yield auth.authenticate(tokens);
|
|
57
|
+
yield this.account.me();
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* When using cookie authentication, client has no way to detect if the user is authenticated or not.
|
|
62
|
+
* This method can be used to check if the user is authenticated and populate the currentAccount.
|
|
63
|
+
* @returns
|
|
64
|
+
*/
|
|
65
|
+
checkAuth() {
|
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
const auth = this.apiClient.auth;
|
|
68
|
+
if (!(auth instanceof CookieAuthManager)) {
|
|
69
|
+
throw Error('This method should only be called when using cookie auth');
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const res = yield this.apiClient.rest.get('/v1/account/me');
|
|
73
|
+
yield auth.authenticate();
|
|
74
|
+
this.currentAccount._update({
|
|
75
|
+
username: res.data.username,
|
|
76
|
+
email: res.data.currentEmail,
|
|
77
|
+
walletAddress: res.data.walletAddress
|
|
78
|
+
});
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
this.apiClient.logger.info('Client is not authenticated');
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Dispose of this client instance, disconnecting the socket and cleaning up resources.
|
|
89
|
+
* After calling this method, the instance should not be used.
|
|
90
|
+
*/
|
|
91
|
+
dispose() {
|
|
92
|
+
this.apiClient.dispose();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Update WebSocket event subscriptions for this live client.
|
|
96
|
+
*
|
|
97
|
+
* This is useful when a process needs the initial model availability snapshot for startup, but
|
|
98
|
+
* does not need ongoing worker count updates afterward.
|
|
99
|
+
*/
|
|
100
|
+
setSocketEventSubscriptions(update) {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
yield this.apiClient.setSocketEventSubscriptions(update);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Create client instance, with default configuration
|
|
107
|
+
* @param config
|
|
108
|
+
*/
|
|
109
|
+
static createInstance(config) {
|
|
110
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
const restEndpoint = config.restEndpoint || 'https://api.sogni.ai';
|
|
112
|
+
const socketEndpoint = config.socketEndpoint || 'wss://socket.sogni.ai';
|
|
113
|
+
const network = config.network || 'fast';
|
|
114
|
+
const logger = config.logger || new DefaultLogger(config.logLevel || 'warn');
|
|
115
|
+
const isTestnet = config.testnet !== undefined ? config.testnet : false;
|
|
116
|
+
const authType = config.apiKey ? 'apiKey' : config.authType || 'token';
|
|
117
|
+
const client = new ApiClient({
|
|
118
|
+
baseUrl: restEndpoint,
|
|
119
|
+
socketUrl: socketEndpoint,
|
|
120
|
+
appId: config.appId,
|
|
121
|
+
appSource: config.appSource,
|
|
122
|
+
socketEventSubscriptions: config.socketEventSubscriptions,
|
|
123
|
+
networkType: network,
|
|
124
|
+
logger,
|
|
125
|
+
authType,
|
|
126
|
+
disableSocket: config.disableSocket,
|
|
127
|
+
multiInstance: config.multiInstance
|
|
128
|
+
});
|
|
129
|
+
const eip712 = new EIP712Helper({
|
|
130
|
+
name: isTestnet ? 'Sogni-testnet' : 'Sogni AI',
|
|
131
|
+
version: '1',
|
|
132
|
+
chainId: isTestnet ? '84532' : '8453'
|
|
133
|
+
});
|
|
134
|
+
const sogniClient = new SogniClient({ client, eip712 });
|
|
135
|
+
// Auto-authenticate with API key if provided
|
|
136
|
+
if (config.apiKey) {
|
|
137
|
+
const auth = client.auth;
|
|
138
|
+
yield auth.authenticate(config.apiKey);
|
|
139
|
+
}
|
|
140
|
+
return sogniClient;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import AuthManagerBase from './AuthManagerBase';
|
|
11
|
+
class ApiKeyAuthManager extends AuthManagerBase {
|
|
12
|
+
constructor(logger) {
|
|
13
|
+
super(logger);
|
|
14
|
+
}
|
|
15
|
+
get isAuthenticated() {
|
|
16
|
+
return !!this._apiKey;
|
|
17
|
+
}
|
|
18
|
+
authenticate(apiKey) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
this._apiKey = apiKey;
|
|
21
|
+
this.emit('updated', true);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
clear() {
|
|
25
|
+
if (!this._apiKey) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
this._apiKey = undefined;
|
|
29
|
+
this.emit('updated', false);
|
|
30
|
+
}
|
|
31
|
+
backup() {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
return this._apiKey || null;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
authenticateRequest(options) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
if (!this._apiKey) {
|
|
39
|
+
return options;
|
|
40
|
+
}
|
|
41
|
+
return Object.assign(Object.assign({}, options), { headers: Object.assign(Object.assign({}, options.headers), { 'api-key': this._apiKey }) });
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
socketOptions() {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
if (!this._apiKey) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
headers: {
|
|
51
|
+
'api-key': this._apiKey
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export default ApiKeyAuthManager;
|
|
58
|
+
//# sourceMappingURL=ApiKeyAuthManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiKeyAuthManager.js","sourceRoot":"","sources":["../../../src/lib/AuthManager/ApiKeyAuthManager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAIhD,MAAM,iBAAkB,SAAQ,eAA8B;IAG5D,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEK,YAAY,CAAC,MAAc;;YAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;KAAA;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEK,MAAM;;YACV,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;QAC9B,CAAC;KAAA;IAEK,mBAAmB,CAAC,OAAoB;;YAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,uCACK,OAAO,KACV,OAAO,kCAAO,OAAO,CAAC,OAAO,KAAE,SAAS,EAAE,IAAI,CAAC,OAAO,OACtD;QACJ,CAAC;KAAA;IAEK,aAAa;;YACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO;gBACL,OAAO,EAAE;oBACP,SAAS,EAAE,IAAI,CAAC,OAAO;iBACxB;aACF,CAAC;QACJ,CAAC;KAAA;CACF;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthManagerBase.js","sourceRoot":"","sources":["../../../src/lib/AuthManager/AuthManagerBase.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAOrD,MAAe,eAAkC,SAAQ,iBAAoC;IAE3F,YAAY,MAAc;QACxB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;CAqBF;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import AuthManagerBase from './AuthManagerBase';
|
|
11
|
+
class CookieAuthManager extends AuthManagerBase {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this._isAuthenticated = false;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* For cookie authentication, there is no way to detect if the user is authenticated or not,
|
|
18
|
+
* except when a call to API was successful. So the REST client will set this property to true.
|
|
19
|
+
*/
|
|
20
|
+
authenticate() {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
this._isAuthenticated = true;
|
|
23
|
+
this.emit('updated', true);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
clear() {
|
|
27
|
+
this._isAuthenticated = false;
|
|
28
|
+
this.emit('updated', false);
|
|
29
|
+
}
|
|
30
|
+
get isAuthenticated() {
|
|
31
|
+
return this._isAuthenticated;
|
|
32
|
+
}
|
|
33
|
+
backup() {
|
|
34
|
+
throw new Error('Not supported with cookie authentication');
|
|
35
|
+
}
|
|
36
|
+
authenticateRequest(options) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
return Object.assign(Object.assign({}, options), { credentials: 'include' });
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
socketOptions() {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
return undefined;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export default CookieAuthManager;
|
|
48
|
+
//# sourceMappingURL=CookieAuthManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieAuthManager.js","sourceRoot":"","sources":["../../../src/lib/AuthManager/CookieAuthManager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,iBAAkB,SAAQ,eAA0B;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,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { decodeToken, decodeRefreshToken } from '../utils';
|
|
11
|
+
import { ApiError } from '../../ApiClient';
|
|
12
|
+
import isNodejs from '../isNodejs';
|
|
13
|
+
import Cookie from 'js-cookie';
|
|
14
|
+
import AuthManagerBase from './AuthManagerBase';
|
|
15
|
+
class TokenAuthManager extends AuthManagerBase {
|
|
16
|
+
constructor(baseUrl, logger) {
|
|
17
|
+
super(logger);
|
|
18
|
+
this._tokenExpiresAt = new Date(0);
|
|
19
|
+
this._refreshTokenExpiresAt = new Date(0);
|
|
20
|
+
this._baseUrl = baseUrl;
|
|
21
|
+
}
|
|
22
|
+
get isAuthenticated() {
|
|
23
|
+
return !!this._refreshToken && this._refreshTokenExpiresAt > new Date();
|
|
24
|
+
}
|
|
25
|
+
backup() {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
if (this._token && this._refreshToken) {
|
|
28
|
+
return { token: this._token, refreshToken: this._refreshToken };
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
authenticate(_a) {
|
|
34
|
+
return __awaiter(this, arguments, void 0, function* ({ refreshToken, token }) {
|
|
35
|
+
// If there is a token, and it is not expired, authenticate with it
|
|
36
|
+
if (token) {
|
|
37
|
+
const { expiresAt } = decodeToken(token);
|
|
38
|
+
if (expiresAt > new Date()) {
|
|
39
|
+
this._updateTokens({ token, refreshToken });
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// If token is expired, try to renew it with the refresh token
|
|
44
|
+
this._refreshToken = refreshToken;
|
|
45
|
+
const { expiresAt: refreshExpiresAt } = decodeRefreshToken(refreshToken);
|
|
46
|
+
this._refreshTokenExpiresAt = refreshExpiresAt;
|
|
47
|
+
yield this._renewTokenSafe();
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
clear() {
|
|
51
|
+
// Prevent duplicate events
|
|
52
|
+
if (!this._token && !this._refreshToken) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this._refreshToken = undefined;
|
|
56
|
+
this._refreshTokenExpiresAt = new Date(0);
|
|
57
|
+
this._token = undefined;
|
|
58
|
+
this._tokenExpiresAt = new Date(0);
|
|
59
|
+
this.emit('updated', false);
|
|
60
|
+
}
|
|
61
|
+
authenticateRequest(option) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
//If there is a token, and it is not expired, return it
|
|
64
|
+
if (this._token && this._tokenExpiresAt > new Date()) {
|
|
65
|
+
return Object.assign(Object.assign({}, option), { headers: Object.assign(Object.assign({}, option.headers), { Authorization: this._token }) });
|
|
66
|
+
}
|
|
67
|
+
//If there is no refresh token, return undefined, to make unauthorized requests
|
|
68
|
+
if (!this._refreshToken) {
|
|
69
|
+
return option;
|
|
70
|
+
}
|
|
71
|
+
//If there is a refresh token, try to renew the token
|
|
72
|
+
const token = yield this._renewTokenSafe();
|
|
73
|
+
return Object.assign(Object.assign({}, option), { headers: Object.assign(Object.assign({}, option.headers), { Authorization: token }) });
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
socketOptions() {
|
|
77
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
+
if (!isNodejs) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
const token = yield this._getToken();
|
|
82
|
+
if (!token) {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
headers: {
|
|
87
|
+
Authorization: token
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
_getToken() {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
if (this._token && this._tokenExpiresAt > new Date()) {
|
|
95
|
+
return this._token;
|
|
96
|
+
}
|
|
97
|
+
//If there is no refresh token, return undefined, to make unauthorized requests
|
|
98
|
+
if (!this._refreshToken) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
//If there is a refresh token, try to renew the token
|
|
102
|
+
return this._renewTokenSafe();
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
_renewTokenSafe() {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
if (this._renewTokenPromise) {
|
|
108
|
+
return this._renewTokenPromise;
|
|
109
|
+
}
|
|
110
|
+
this._renewTokenPromise = this._renewToken();
|
|
111
|
+
this._renewTokenPromise.finally(() => {
|
|
112
|
+
this._renewTokenPromise = undefined;
|
|
113
|
+
});
|
|
114
|
+
return this._renewTokenPromise;
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
_updateTokens({ token, refreshToken }) {
|
|
118
|
+
// Prevent duplicate events
|
|
119
|
+
if (this._token === token && this._refreshToken === refreshToken) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this._token = token;
|
|
123
|
+
const { expiresAt } = decodeToken(token);
|
|
124
|
+
this._tokenExpiresAt = expiresAt;
|
|
125
|
+
this._refreshToken = refreshToken;
|
|
126
|
+
const { expiresAt: refreshExpiresAt } = decodeRefreshToken(refreshToken);
|
|
127
|
+
this._refreshTokenExpiresAt = refreshExpiresAt;
|
|
128
|
+
this._updateCookies();
|
|
129
|
+
this.emit('updated', true);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* This is a fallback for browsers, where we can't set headers on WebSocket requests.
|
|
133
|
+
* Normally a browser should use CookieAuthManager
|
|
134
|
+
* @private
|
|
135
|
+
*/
|
|
136
|
+
_updateCookies() {
|
|
137
|
+
if (isNodejs) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const token = this._token;
|
|
141
|
+
if (token) {
|
|
142
|
+
Cookie.set('authorization', token, {
|
|
143
|
+
domain: '.sogni.ai',
|
|
144
|
+
expires: 1
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
Cookie.remove('authorization', {
|
|
149
|
+
domain: '.sogni.ai'
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
_renewToken() {
|
|
154
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
155
|
+
if (this._refreshTokenExpiresAt < new Date()) {
|
|
156
|
+
throw new Error('Refresh token expired');
|
|
157
|
+
}
|
|
158
|
+
const url = new URL('/v1/account/refresh-token', this._baseUrl).toString();
|
|
159
|
+
const response = yield fetch(url, {
|
|
160
|
+
method: 'POST',
|
|
161
|
+
headers: {
|
|
162
|
+
'Content-Type': 'application/json'
|
|
163
|
+
},
|
|
164
|
+
body: JSON.stringify({ refreshToken: this._refreshToken })
|
|
165
|
+
});
|
|
166
|
+
let responseData;
|
|
167
|
+
try {
|
|
168
|
+
responseData = yield response.json();
|
|
169
|
+
}
|
|
170
|
+
catch (e) {
|
|
171
|
+
this.clear();
|
|
172
|
+
this._logger.error('Failed to parse response:', e);
|
|
173
|
+
throw new Error('Failed to parse response');
|
|
174
|
+
}
|
|
175
|
+
if (!response.ok) {
|
|
176
|
+
this.clear();
|
|
177
|
+
throw new ApiError(response.status, responseData);
|
|
178
|
+
}
|
|
179
|
+
const { token, refreshToken } = responseData.data;
|
|
180
|
+
this._updateTokens({ token, refreshToken });
|
|
181
|
+
return this._token;
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
export default TokenAuthManager;
|
|
186
|
+
//# 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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/AuthManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,gBAAmC,MAAM,oBAAoB,CAAC;AAIrE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** A simple memory cache implementation. */
|
|
2
|
+
export default class Cache {
|
|
3
|
+
constructor(defaultTTL) {
|
|
4
|
+
this.data = new Map();
|
|
5
|
+
this.ttl = defaultTTL;
|
|
6
|
+
const timer = setInterval(() => this.cleanup(), 10000);
|
|
7
|
+
// Node timers have unref() so a module-level Cache doesn't keep one-shot
|
|
8
|
+
// scripts alive. Browser timers return numbers and don't expose unref.
|
|
9
|
+
if (typeof timer.unref === 'function') {
|
|
10
|
+
timer.unref();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
write(key, value, ttl) {
|
|
14
|
+
this.data.set(key, {
|
|
15
|
+
exp: Date.now() + (ttl || this.ttl),
|
|
16
|
+
value
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
read(key) {
|
|
20
|
+
const record = this.data.get(key);
|
|
21
|
+
return record && record.exp > Date.now() ? record.value : undefined;
|
|
22
|
+
}
|
|
23
|
+
cleanup() {
|
|
24
|
+
const now = Date.now();
|
|
25
|
+
this.data.forEach((record, key) => {
|
|
26
|
+
if (record.exp < now) {
|
|
27
|
+
this.data.delete(key);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=Cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../src/lib/Cache.ts"],"names":[],"mappings":"AAKA,4CAA4C;AAC5C,MAAM,CAAC,OAAO,OAAO,KAAK;IAIxB,YAAY,UAAkB;QAFtB,SAAI,GAAgC,IAAI,GAAG,EAAE,CAAC;QAGpD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC;QACtB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAEpD,CAAC;QACF,yEAAyE;QACzE,uEAAuE;QACvE,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,KAAQ,EAAE,GAAY;QACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;YACnC,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,GAAW;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;IAEO,OAAO;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAChC,IAAI,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
2
|
+
import TypedEventEmitter from './TypedEventEmitter';
|
|
3
|
+
class DataEntity extends TypedEventEmitter {
|
|
4
|
+
constructor(data) {
|
|
5
|
+
super();
|
|
6
|
+
this.lastUpdated = new Date();
|
|
7
|
+
this.data = data;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
* @param delta
|
|
12
|
+
*/
|
|
13
|
+
_update(delta) {
|
|
14
|
+
//@ts-ignore
|
|
15
|
+
const changedKeys = Object.keys(delta).filter((key) => this.data[key] !== delta[key]);
|
|
16
|
+
this.lastUpdated = new Date();
|
|
17
|
+
if (changedKeys.length > 0) {
|
|
18
|
+
this.data = Object.assign(Object.assign({}, this.data), delta);
|
|
19
|
+
this.emit('updated', changedKeys);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get a copy of the entity's data
|
|
24
|
+
*/
|
|
25
|
+
toJSON() {
|
|
26
|
+
return cloneDeep(this.data);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export default DataEntity;
|
|
30
|
+
//# sourceMappingURL=DataEntity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataEntity.js","sourceRoot":"","sources":["../../src/lib/DataEntity.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AASpD,MAAe,UAAqD,SAAQ,iBAAoB;IAK9F,YAAY,IAAO;QACjB,KAAK,EAAE,CAAC;QAHA,gBAAW,GAAS,IAAI,IAAI,EAAE,CAAC;QAIvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,KAAiB;QACvB,YAAY;QACZ,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,mCAAQ,IAAI,CAAC,IAAI,GAAK,KAAK,CAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const LOG_LEVELS = {
|
|
2
|
+
error: 0,
|
|
3
|
+
warn: 1,
|
|
4
|
+
info: 2,
|
|
5
|
+
debug: 3
|
|
6
|
+
};
|
|
7
|
+
export class DefaultLogger {
|
|
8
|
+
constructor(level = 'warn') {
|
|
9
|
+
this._level = LOG_LEVELS[level];
|
|
10
|
+
}
|
|
11
|
+
error(...args) {
|
|
12
|
+
if (this._level >= LOG_LEVELS.error) {
|
|
13
|
+
console.error(...args);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
warn(...args) {
|
|
17
|
+
if (this._level >= LOG_LEVELS.warn) {
|
|
18
|
+
console.warn(...args);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
info(...args) {
|
|
22
|
+
if (this._level >= LOG_LEVELS.info) {
|
|
23
|
+
console.info(...args);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
debug(...args) {
|
|
27
|
+
if (this._level >= LOG_LEVELS.debug) {
|
|
28
|
+
console.debug(...args);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=DefaultLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultLogger.js","sourceRoot":"","sources":["../../src/lib/DefaultLogger.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AASF,MAAM,OAAO,aAAa;IAGxB,YAAY,QAAkB,MAAM;QAClC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,GAAG,IAAW;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAW;QACjB,IAAI,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAW;QACjB,IAAI,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,IAAW;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const EIP712_TYPES = {
|
|
2
|
+
authentication: {
|
|
3
|
+
Authentication: [
|
|
4
|
+
{ name: 'walletAddress', type: 'address' },
|
|
5
|
+
{ name: 'nonce', type: 'string' }
|
|
6
|
+
]
|
|
7
|
+
},
|
|
8
|
+
signup: {
|
|
9
|
+
Signup: [
|
|
10
|
+
{ name: 'appid', type: 'string' },
|
|
11
|
+
{ name: 'username', type: 'string' },
|
|
12
|
+
{ name: 'email', type: 'string' },
|
|
13
|
+
{ name: 'subscribe', type: 'uint256' },
|
|
14
|
+
{ name: 'walletAddress', type: 'address' },
|
|
15
|
+
{ name: 'nonce', type: 'string' }
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
class EIP712Helper {
|
|
20
|
+
constructor(options) {
|
|
21
|
+
this.EIP712Domain = {
|
|
22
|
+
name: options.name,
|
|
23
|
+
version: options.version,
|
|
24
|
+
chainId: options.chainId,
|
|
25
|
+
verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC'
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
signTypedData(signer, type, data) {
|
|
29
|
+
const types = EIP712_TYPES[type];
|
|
30
|
+
if (!types) {
|
|
31
|
+
throw new Error(`Unknown type: ${type}`);
|
|
32
|
+
}
|
|
33
|
+
return signer.signTypedData(this.EIP712Domain, types, data);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export default EIP712Helper;
|
|
37
|
+
//# sourceMappingURL=EIP712Helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EIP712Helper.js","sourceRoot":"","sources":["../../src/lib/EIP712Helper.ts"],"names":[],"mappings":"AAKA,MAAM,YAAY,GAAwC;IACxD,cAAc,EAAE;QACd,cAAc,EAAE;YACd,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;SAClC;KACF;IACD,MAAM,EAAE;QACN,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;SAClC;KACF;CACF,CAAC;AAQF,MAAM,YAAY;IAGhB,YAAY,OAAgB;QAC1B,IAAI,CAAC,YAAY,GAAG;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,iBAAiB,EAAE,4CAA4C;SAChE,CAAC;IACJ,CAAC;IAED,aAAa,CACX,MAAsB,EACtB,IAAoB,EACpB,IAAqC;QAErC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,eAAe,YAAY,CAAC"}
|