@sogni-ai/expo-client 1.0.0-alpha.10
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 +69 -0
- package/README.md +411 -0
- package/dist/cjs/Account/index.d.ts +60 -0
- package/dist/cjs/Account/index.d.ts.map +1 -0
- package/dist/cjs/Account/index.js +188 -0
- package/dist/cjs/Account/index.js.map +1 -0
- package/dist/cjs/Account/types.d.ts +43 -0
- package/dist/cjs/Account/types.d.ts.map +1 -0
- package/dist/cjs/Account/types.js +18 -0
- package/dist/cjs/Account/types.js.map +1 -0
- package/dist/cjs/ApiClient/WebSocketClient/events.d.ts +139 -0
- package/dist/cjs/ApiClient/WebSocketClient/events.d.ts.map +1 -0
- package/dist/cjs/ApiClient/WebSocketClient/events.js +3 -0
- package/dist/cjs/ApiClient/WebSocketClient/events.js.map +1 -0
- package/dist/cjs/ApiClient/WebSocketClient/index.d.ts +45 -0
- package/dist/cjs/ApiClient/WebSocketClient/index.d.ts.map +1 -0
- package/dist/cjs/ApiClient/WebSocketClient/index.js +283 -0
- package/dist/cjs/ApiClient/WebSocketClient/index.js.map +1 -0
- package/dist/cjs/ApiClient/WebSocketClient/normalize.d.ts +45 -0
- package/dist/cjs/ApiClient/WebSocketClient/normalize.d.ts.map +1 -0
- package/dist/cjs/ApiClient/WebSocketClient/normalize.js +245 -0
- package/dist/cjs/ApiClient/WebSocketClient/normalize.js.map +1 -0
- package/dist/cjs/ApiClient/WebSocketClient/types.d.ts +9 -0
- package/dist/cjs/ApiClient/WebSocketClient/types.d.ts.map +1 -0
- package/dist/cjs/ApiClient/WebSocketClient/types.js +3 -0
- package/dist/cjs/ApiClient/WebSocketClient/types.js.map +1 -0
- package/dist/cjs/ApiClient/WebSocketClient/wireTypes.d.ts +161 -0
- package/dist/cjs/ApiClient/WebSocketClient/wireTypes.d.ts.map +1 -0
- package/dist/cjs/ApiClient/WebSocketClient/wireTypes.js +11 -0
- package/dist/cjs/ApiClient/WebSocketClient/wireTypes.js.map +1 -0
- package/dist/cjs/ApiClient/index.d.ts +60 -0
- package/dist/cjs/ApiClient/index.d.ts.map +1 -0
- package/dist/cjs/ApiClient/index.js +87 -0
- package/dist/cjs/ApiClient/index.js.map +1 -0
- package/dist/cjs/Chat/ChatStream.d.ts +42 -0
- package/dist/cjs/Chat/ChatStream.d.ts.map +1 -0
- package/dist/cjs/Chat/ChatStream.js +146 -0
- package/dist/cjs/Chat/ChatStream.js.map +1 -0
- package/dist/cjs/Chat/index.d.ts +61 -0
- package/dist/cjs/Chat/index.d.ts.map +1 -0
- package/dist/cjs/Chat/index.js +179 -0
- package/dist/cjs/Chat/index.js.map +1 -0
- package/dist/cjs/Chat/tools.d.ts +13 -0
- package/dist/cjs/Chat/tools.d.ts.map +1 -0
- package/dist/cjs/Chat/tools.js +22 -0
- package/dist/cjs/Chat/tools.js.map +1 -0
- package/dist/cjs/Chat/types.d.ts +153 -0
- package/dist/cjs/Chat/types.d.ts.map +1 -0
- package/dist/cjs/Chat/types.js +3 -0
- package/dist/cjs/Chat/types.js.map +1 -0
- package/dist/cjs/Projects/ControlNet.d.ts +30 -0
- package/dist/cjs/Projects/ControlNet.d.ts.map +1 -0
- package/dist/cjs/Projects/ControlNet.js +45 -0
- package/dist/cjs/Projects/ControlNet.js.map +1 -0
- package/dist/cjs/Projects/createJobRequestMessage.d.ts +11 -0
- package/dist/cjs/Projects/createJobRequestMessage.d.ts.map +1 -0
- package/dist/cjs/Projects/createJobRequestMessage.js +239 -0
- package/dist/cjs/Projects/createJobRequestMessage.js.map +1 -0
- package/dist/cjs/Projects/index.d.ts +96 -0
- package/dist/cjs/Projects/index.d.ts.map +1 -0
- package/dist/cjs/Projects/index.js +536 -0
- package/dist/cjs/Projects/index.js.map +1 -0
- package/dist/cjs/Projects/restNormalize.d.ts +60 -0
- package/dist/cjs/Projects/restNormalize.d.ts.map +1 -0
- package/dist/cjs/Projects/restNormalize.js +89 -0
- package/dist/cjs/Projects/restNormalize.js.map +1 -0
- package/dist/cjs/Projects/types.d.ts +233 -0
- package/dist/cjs/Projects/types.d.ts.map +1 -0
- package/dist/cjs/Projects/types.js +3 -0
- package/dist/cjs/Projects/types.js.map +1 -0
- package/dist/cjs/Projects/utils.d.ts +23 -0
- package/dist/cjs/Projects/utils.d.ts.map +1 -0
- package/dist/cjs/Projects/utils.js +65 -0
- package/dist/cjs/Projects/utils.js.map +1 -0
- package/dist/cjs/index.d.ts +63 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +116 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/AuthManager/ApiKeyAuthManager.d.ts +15 -0
- package/dist/cjs/lib/AuthManager/ApiKeyAuthManager.d.ts.map +1 -0
- package/dist/cjs/lib/AuthManager/ApiKeyAuthManager.js +47 -0
- package/dist/cjs/lib/AuthManager/ApiKeyAuthManager.js.map +1 -0
- package/dist/cjs/lib/AuthManager/AuthManagerBase.d.ts +23 -0
- package/dist/cjs/lib/AuthManager/AuthManagerBase.d.ts.map +1 -0
- package/dist/cjs/lib/AuthManager/AuthManagerBase.js +14 -0
- package/dist/cjs/lib/AuthManager/AuthManagerBase.js.map +1 -0
- package/dist/cjs/lib/AuthManager/AuthStorage.d.ts +11 -0
- package/dist/cjs/lib/AuthManager/AuthStorage.d.ts.map +1 -0
- package/dist/cjs/lib/AuthManager/AuthStorage.js +50 -0
- package/dist/cjs/lib/AuthManager/AuthStorage.js.map +1 -0
- package/dist/cjs/lib/AuthManager/TokenAuthManager.d.ts +35 -0
- package/dist/cjs/lib/AuthManager/TokenAuthManager.d.ts.map +1 -0
- package/dist/cjs/lib/AuthManager/TokenAuthManager.js +164 -0
- package/dist/cjs/lib/AuthManager/TokenAuthManager.js.map +1 -0
- package/dist/cjs/lib/AuthManager/index.d.ts +7 -0
- package/dist/cjs/lib/AuthManager/index.d.ts.map +1 -0
- package/dist/cjs/lib/AuthManager/index.js +13 -0
- package/dist/cjs/lib/AuthManager/index.js.map +1 -0
- package/dist/cjs/lib/Cache.d.ts +12 -0
- package/dist/cjs/lib/Cache.d.ts.map +1 -0
- package/dist/cjs/lib/Cache.js +36 -0
- package/dist/cjs/lib/Cache.js.map +1 -0
- package/dist/cjs/lib/DefaultLogger.d.ts +17 -0
- package/dist/cjs/lib/DefaultLogger.d.ts.map +1 -0
- package/dist/cjs/lib/DefaultLogger.js +36 -0
- package/dist/cjs/lib/DefaultLogger.js.map +1 -0
- package/dist/cjs/lib/RestClient.d.ts +18 -0
- package/dist/cjs/lib/RestClient.d.ts.map +1 -0
- package/dist/cjs/lib/RestClient.js +67 -0
- package/dist/cjs/lib/RestClient.js.map +1 -0
- package/dist/cjs/lib/TypedEventEmitter.d.ts +16 -0
- package/dist/cjs/lib/TypedEventEmitter.d.ts.map +1 -0
- package/dist/cjs/lib/TypedEventEmitter.js +46 -0
- package/dist/cjs/lib/TypedEventEmitter.js.map +1 -0
- package/dist/cjs/lib/base64.d.ts +3 -0
- package/dist/cjs/lib/base64.d.ts.map +1 -0
- package/dist/cjs/lib/base64.js +21 -0
- package/dist/cjs/lib/base64.js.map +1 -0
- package/dist/cjs/lib/getUUID.d.ts +12 -0
- package/dist/cjs/lib/getUUID.d.ts.map +1 -0
- package/dist/cjs/lib/getUUID.js +29 -0
- package/dist/cjs/lib/getUUID.js.map +1 -0
- package/dist/cjs/lib/mediaInput.d.ts +33 -0
- package/dist/cjs/lib/mediaInput.d.ts.map +1 -0
- package/dist/cjs/lib/mediaInput.js +32 -0
- package/dist/cjs/lib/mediaInput.js.map +1 -0
- package/dist/cjs/lib/utils.d.ts +10 -0
- package/dist/cjs/lib/utils.d.ts.map +1 -0
- package/dist/cjs/lib/utils.js +24 -0
- package/dist/cjs/lib/utils.js.map +1 -0
- package/dist/cjs/types/ErrorData.d.ts +7 -0
- package/dist/cjs/types/ErrorData.d.ts.map +1 -0
- package/dist/cjs/types/ErrorData.js +3 -0
- package/dist/cjs/types/ErrorData.js.map +1 -0
- package/dist/cjs/types/json.d.ts +6 -0
- package/dist/cjs/types/json.d.ts.map +1 -0
- package/dist/cjs/types/json.js +3 -0
- package/dist/cjs/types/json.js.map +1 -0
- package/dist/cjs/types/token.d.ts +2 -0
- package/dist/cjs/types/token.d.ts.map +1 -0
- package/dist/cjs/types/token.js +3 -0
- package/dist/cjs/types/token.js.map +1 -0
- package/dist/cjs/version.d.ts +2 -0
- package/dist/cjs/version.d.ts.map +1 -0
- package/dist/cjs/version.js +5 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/cjs/wallet.d.ts +59 -0
- package/dist/cjs/wallet.d.ts.map +1 -0
- package/dist/cjs/wallet.js +125 -0
- package/dist/cjs/wallet.js.map +1 -0
- package/dist/esm/Account/index.js +183 -0
- package/dist/esm/Account/index.js.map +1 -0
- package/dist/esm/Account/types.js +15 -0
- package/dist/esm/Account/types.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 +278 -0
- package/dist/esm/ApiClient/WebSocketClient/index.js.map +1 -0
- package/dist/esm/ApiClient/WebSocketClient/normalize.js +229 -0
- package/dist/esm/ApiClient/WebSocketClient/normalize.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/WebSocketClient/wireTypes.js +10 -0
- package/dist/esm/ApiClient/WebSocketClient/wireTypes.js.map +1 -0
- package/dist/esm/ApiClient/index.js +80 -0
- package/dist/esm/ApiClient/index.js.map +1 -0
- package/dist/esm/Chat/ChatStream.js +144 -0
- package/dist/esm/Chat/ChatStream.js.map +1 -0
- package/dist/esm/Chat/index.js +174 -0
- package/dist/esm/Chat/index.js.map +1 -0
- package/dist/esm/Chat/tools.js +19 -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/Projects/ControlNet.js +41 -0
- package/dist/esm/Projects/ControlNet.js.map +1 -0
- package/dist/esm/Projects/createJobRequestMessage.js +236 -0
- package/dist/esm/Projects/createJobRequestMessage.js.map +1 -0
- package/dist/esm/Projects/index.js +531 -0
- package/dist/esm/Projects/index.js.map +1 -0
- package/dist/esm/Projects/restNormalize.js +86 -0
- package/dist/esm/Projects/restNormalize.js.map +1 -0
- package/dist/esm/Projects/types.js +2 -0
- package/dist/esm/Projects/types.js.map +1 -0
- package/dist/esm/Projects/utils.js +55 -0
- package/dist/esm/Projects/utils.js.map +1 -0
- package/dist/esm/index.js +72 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/AuthManager/ApiKeyAuthManager.js +42 -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/AuthStorage.js +13 -0
- package/dist/esm/lib/AuthManager/AuthStorage.js.map +1 -0
- package/dist/esm/lib/AuthManager/TokenAuthManager.js +159 -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 +33 -0
- package/dist/esm/lib/Cache.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/RestClient.js +62 -0
- package/dist/esm/lib/RestClient.js.map +1 -0
- package/dist/esm/lib/TypedEventEmitter.js +44 -0
- package/dist/esm/lib/TypedEventEmitter.js.map +1 -0
- package/dist/esm/lib/base64.js +17 -0
- package/dist/esm/lib/base64.js.map +1 -0
- package/dist/esm/lib/getUUID.js +26 -0
- package/dist/esm/lib/getUUID.js.map +1 -0
- package/dist/esm/lib/mediaInput.js +28 -0
- package/dist/esm/lib/mediaInput.js.map +1 -0
- package/dist/esm/lib/utils.js +19 -0
- package/dist/esm/lib/utils.js.map +1 -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 +2 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/esm/wallet.js +117 -0
- package/dist/esm/wallet.js.map +1 -0
- package/package.json +92 -0
- package/src/Account/index.ts +214 -0
- package/src/Account/types.ts +61 -0
- package/src/ApiClient/WebSocketClient/events.ts +168 -0
- package/src/ApiClient/WebSocketClient/index.ts +345 -0
- package/src/ApiClient/WebSocketClient/normalize.ts +287 -0
- package/src/ApiClient/WebSocketClient/types.ts +10 -0
- package/src/ApiClient/WebSocketClient/wireTypes.ts +183 -0
- package/src/ApiClient/index.ts +147 -0
- package/src/Chat/ChatStream.ts +164 -0
- package/src/Chat/index.ts +224 -0
- package/src/Chat/tools.ts +23 -0
- package/src/Chat/types.ts +165 -0
- package/src/Projects/ControlNet.ts +84 -0
- package/src/Projects/createJobRequestMessage.ts +241 -0
- package/src/Projects/index.ts +608 -0
- package/src/Projects/restNormalize.ts +154 -0
- package/src/Projects/types.ts +266 -0
- package/src/Projects/utils.ts +60 -0
- package/src/index.ts +217 -0
- package/src/lib/AuthManager/ApiKeyAuthManager.ts +52 -0
- package/src/lib/AuthManager/AuthManagerBase.ts +35 -0
- package/src/lib/AuthManager/AuthStorage.ts +21 -0
- package/src/lib/AuthManager/TokenAuthManager.ts +179 -0
- package/src/lib/AuthManager/index.ts +8 -0
- package/src/lib/Cache.ts +45 -0
- package/src/lib/DefaultLogger.ts +47 -0
- package/src/lib/RestClient.ts +77 -0
- package/src/lib/TypedEventEmitter.ts +52 -0
- package/src/lib/base64.ts +17 -0
- package/src/lib/getUUID.ts +27 -0
- package/src/lib/mediaInput.ts +54 -0
- package/src/lib/utils.ts +21 -0
- package/src/types/ErrorData.ts +7 -0
- package/src/types/json.ts +5 -0
- package/src/types/token.ts +1 -0
- package/src/version.ts +1 -0
- package/src/wallet.ts +158 -0
|
@@ -0,0 +1,188 @@
|
|
|
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 ApiClient_1 = require("../ApiClient");
|
|
7
|
+
const TypedEventEmitter_1 = __importDefault(require("../lib/TypedEventEmitter"));
|
|
8
|
+
const AuthManager_1 = require("../lib/AuthManager");
|
|
9
|
+
const wallet_1 = require("../wallet");
|
|
10
|
+
const types_1 = require("./types");
|
|
11
|
+
/**
|
|
12
|
+
* Account API: authentication, current-user info, balance.
|
|
13
|
+
*
|
|
14
|
+
* login() and signup() derive a deterministic wallet from username + password
|
|
15
|
+
* via PBKDF2(password, username, 10000 iter, SHA-256, 32 bytes), then sign an
|
|
16
|
+
* EIP-712 authentication or signup message with that wallet. The wallet
|
|
17
|
+
* private key never leaves the device.
|
|
18
|
+
*
|
|
19
|
+
* login()/signup() require token-based auth (the default). For API-key auth,
|
|
20
|
+
* use the apiKey config option in SogniClient.create() instead.
|
|
21
|
+
*/
|
|
22
|
+
class AccountApi extends TypedEventEmitter_1.default {
|
|
23
|
+
constructor(client, options = {}) {
|
|
24
|
+
super();
|
|
25
|
+
this._client = client;
|
|
26
|
+
this._snapshot = (0, types_1.emptyAccountSnapshot)();
|
|
27
|
+
this._walletNetwork = options.testnet ? 'testnet' : 'mainnet';
|
|
28
|
+
client.socket.on('connected', ({ network }) => {
|
|
29
|
+
this._update({ networkStatus: 'connected', network });
|
|
30
|
+
});
|
|
31
|
+
client.socket.on('disconnected', () => {
|
|
32
|
+
this._update({ networkStatus: 'disconnected', network: null });
|
|
33
|
+
});
|
|
34
|
+
client.socket.on('authenticated', (e) => {
|
|
35
|
+
this._update({
|
|
36
|
+
authenticated: true,
|
|
37
|
+
username: e.username,
|
|
38
|
+
walletAddress: e.walletAddress,
|
|
39
|
+
balance: e.balance
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
client.socket.on('balanceUpdate', (e) => {
|
|
43
|
+
this._update({ balance: e.balance });
|
|
44
|
+
});
|
|
45
|
+
client.socket.on('changeNetwork', (e) => {
|
|
46
|
+
this._update({ network: e.network });
|
|
47
|
+
});
|
|
48
|
+
client.on('authUpdated', (authenticated) => {
|
|
49
|
+
if (!authenticated) {
|
|
50
|
+
this._update((0, types_1.emptyAccountSnapshot)());
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/** Read-only snapshot of the current account state. */
|
|
55
|
+
get current() {
|
|
56
|
+
return this._snapshot;
|
|
57
|
+
}
|
|
58
|
+
/** Subscribe to account state changes. Returns an unsubscribe function. */
|
|
59
|
+
onChange(listener) {
|
|
60
|
+
return this.on('change', listener);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Log in with username + password. Derives the user's wallet on-device,
|
|
64
|
+
* signs an EIP-712 authentication message, and exchanges it for JWT tokens
|
|
65
|
+
* which are then persisted to SecureStore.
|
|
66
|
+
*/
|
|
67
|
+
async login(username, password, options = {}) {
|
|
68
|
+
const auth = this._client.auth;
|
|
69
|
+
if (!(auth instanceof AuthManager_1.TokenAuthManager)) {
|
|
70
|
+
throw new Error('login() requires token-based auth (the default)');
|
|
71
|
+
}
|
|
72
|
+
const wallet = await (0, wallet_1.deriveWallet)({ username, password });
|
|
73
|
+
const nonce = await this._getNonce(wallet.address);
|
|
74
|
+
const signature = await (0, wallet_1.signAuthentication)(wallet, { nonce }, this._walletNetwork);
|
|
75
|
+
const appSource = options.appSource?.trim() || this._client.appSource;
|
|
76
|
+
const res = await this._client.rest.post('/v1/account/login', {
|
|
77
|
+
walletAddress: wallet.address,
|
|
78
|
+
signature,
|
|
79
|
+
...(appSource ? { appSource } : {}),
|
|
80
|
+
rememberMe: false
|
|
81
|
+
});
|
|
82
|
+
await auth.authenticate({
|
|
83
|
+
token: res.data.token,
|
|
84
|
+
refreshToken: res.data.refreshToken
|
|
85
|
+
});
|
|
86
|
+
return res.data;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create a new account. Derives the user's wallet on-device, signs the
|
|
90
|
+
* EIP-712 signup payload, and exchanges it for JWT tokens (the user is
|
|
91
|
+
* automatically logged in on success).
|
|
92
|
+
*/
|
|
93
|
+
async signup(params) {
|
|
94
|
+
const auth = this._client.auth;
|
|
95
|
+
if (!(auth instanceof AuthManager_1.TokenAuthManager)) {
|
|
96
|
+
throw new Error('signup() requires token-based auth (the default)');
|
|
97
|
+
}
|
|
98
|
+
const wallet = await (0, wallet_1.deriveWallet)({
|
|
99
|
+
username: params.username,
|
|
100
|
+
password: params.password
|
|
101
|
+
});
|
|
102
|
+
const nonce = await this._getNonce(wallet.address);
|
|
103
|
+
const signature = await (0, wallet_1.signSignup)(wallet, {
|
|
104
|
+
appid: this._client.appId,
|
|
105
|
+
username: params.username,
|
|
106
|
+
email: params.email,
|
|
107
|
+
subscribe: !!params.subscribe,
|
|
108
|
+
nonce
|
|
109
|
+
}, this._walletNetwork);
|
|
110
|
+
const appSource = params.appSource?.trim() || this._client.appSource;
|
|
111
|
+
const res = await this._client.rest.post('/v1/account/create', {
|
|
112
|
+
walletAddress: wallet.address,
|
|
113
|
+
username: params.username,
|
|
114
|
+
email: params.email,
|
|
115
|
+
subscribe: !!params.subscribe,
|
|
116
|
+
turnstileToken: params.turnstileToken,
|
|
117
|
+
...(params.referralCode ? { referralCode: params.referralCode } : {}),
|
|
118
|
+
...(appSource ? { appSource } : {}),
|
|
119
|
+
signature
|
|
120
|
+
});
|
|
121
|
+
await auth.authenticate({
|
|
122
|
+
token: res.data.token,
|
|
123
|
+
refreshToken: res.data.refreshToken
|
|
124
|
+
});
|
|
125
|
+
return res.data;
|
|
126
|
+
}
|
|
127
|
+
/** Fetch the current user's profile data from REST. Updates the snapshot. */
|
|
128
|
+
async me() {
|
|
129
|
+
const res = await this._client.rest.get('/v1/account/me');
|
|
130
|
+
this._update({
|
|
131
|
+
username: res.data.username,
|
|
132
|
+
email: res.data.currentEmail,
|
|
133
|
+
walletAddress: res.data.walletAddress
|
|
134
|
+
});
|
|
135
|
+
return res.data;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Force-refresh the current user's balance from REST. Balance also updates
|
|
139
|
+
* automatically via socket events — call this only when you need a synchronous
|
|
140
|
+
* fetch (e.g., on screen mount before the socket has reconnected).
|
|
141
|
+
*/
|
|
142
|
+
async refreshBalance() {
|
|
143
|
+
const res = await this._client.rest.get('/v4/account/balance');
|
|
144
|
+
this._update({ balance: res.data });
|
|
145
|
+
return res.data;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Log out and clear all auth state. Closes the WebSocket and removes any
|
|
149
|
+
* persisted tokens. Safe to call even if not authenticated.
|
|
150
|
+
*/
|
|
151
|
+
async logout() {
|
|
152
|
+
try {
|
|
153
|
+
await this._client.rest.post('/v1/account/logout');
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
if (e instanceof ApiClient_1.ApiError && e.status === 401) {
|
|
157
|
+
this._client.logger.warn('Logout call rejected — probably already logged out');
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
throw e;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
this._client.auth.clear();
|
|
164
|
+
}
|
|
165
|
+
async _getNonce(walletAddress) {
|
|
166
|
+
const res = await this._client.rest.post('/v1/account/nonce', {
|
|
167
|
+
walletAddress
|
|
168
|
+
});
|
|
169
|
+
return res.data.nonce;
|
|
170
|
+
}
|
|
171
|
+
_update(partial) {
|
|
172
|
+
const next = { ...this._snapshot, ...partial };
|
|
173
|
+
if (shallowEqual(next, this._snapshot))
|
|
174
|
+
return;
|
|
175
|
+
this._snapshot = next;
|
|
176
|
+
this.emit('change', this._snapshot);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
function shallowEqual(a, b) {
|
|
180
|
+
const keys = Object.keys(a);
|
|
181
|
+
for (const k of keys) {
|
|
182
|
+
if (a[k] !== b[k])
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
exports.default = AccountApi;
|
|
188
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Account/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Balances } from '../ApiClient/WebSocketClient/events';
|
|
2
|
+
import { SupernetType } from '../ApiClient/WebSocketClient/types';
|
|
3
|
+
export type { Balances };
|
|
4
|
+
export interface MeData {
|
|
5
|
+
currentEmail: string;
|
|
6
|
+
username: string;
|
|
7
|
+
walletAddress: string;
|
|
8
|
+
emailVerified?: boolean;
|
|
9
|
+
discord2FA?: boolean;
|
|
10
|
+
discordLinked?: boolean;
|
|
11
|
+
discordServerMember?: boolean;
|
|
12
|
+
discordUsername?: string;
|
|
13
|
+
requestedUpdatedEmail?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface LoginData {
|
|
16
|
+
token: string;
|
|
17
|
+
refreshToken: string;
|
|
18
|
+
username: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SignupParams {
|
|
21
|
+
username: string;
|
|
22
|
+
email: string;
|
|
23
|
+
password: string;
|
|
24
|
+
/** Subscribe to product updates / newsletter. */
|
|
25
|
+
subscribe?: boolean;
|
|
26
|
+
/** Optional referral code provided to the user. */
|
|
27
|
+
referralCode?: string;
|
|
28
|
+
/** Optional Cloudflare Turnstile captcha token, required by the server. */
|
|
29
|
+
turnstileToken: string;
|
|
30
|
+
/** Optional app source label for signup attribution. */
|
|
31
|
+
appSource?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface AccountSnapshot {
|
|
34
|
+
authenticated: boolean;
|
|
35
|
+
networkStatus: 'connected' | 'disconnected' | 'connecting';
|
|
36
|
+
network: SupernetType | null;
|
|
37
|
+
balance: Balances;
|
|
38
|
+
walletAddress: string | null;
|
|
39
|
+
username: string | null;
|
|
40
|
+
email: string | null;
|
|
41
|
+
}
|
|
42
|
+
export declare function emptyAccountSnapshot(): AccountSnapshot;
|
|
43
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Account/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,MAAM,WAAW,MAAM;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,WAAW,GAAG,cAAc,GAAG,YAAY,CAAC;IAC3D,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,QAAQ,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,oBAAoB,IAAI,eAAe,CAatD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emptyAccountSnapshot = emptyAccountSnapshot;
|
|
4
|
+
function emptyAccountSnapshot() {
|
|
5
|
+
return {
|
|
6
|
+
authenticated: false,
|
|
7
|
+
networkStatus: 'disconnected',
|
|
8
|
+
network: null,
|
|
9
|
+
balance: {
|
|
10
|
+
sogni: { settled: '0', credit: '0', debit: '0', net: '0' },
|
|
11
|
+
spark: { settled: '0', credit: '0', debit: '0', net: '0', premiumCredit: '0' }
|
|
12
|
+
},
|
|
13
|
+
walletAddress: null,
|
|
14
|
+
username: null,
|
|
15
|
+
email: null
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/Account/types.ts"],"names":[],"mappings":";;AA+CA,oDAaC;AAbD,SAAgB,oBAAoB;IAClC,OAAO;QACL,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,cAAc;QAC7B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YAC1D,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE;SAC/E;QACD,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { SupernetType } from './types';
|
|
2
|
+
import { JobErrorReason } from '../../Projects/types';
|
|
3
|
+
import { LLMModelInfo, ToolCallDelta, TokenUsage } from '../../Chat/types';
|
|
4
|
+
export interface BalanceData {
|
|
5
|
+
settled: string;
|
|
6
|
+
credit: string;
|
|
7
|
+
debit: string;
|
|
8
|
+
net: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SparkBalanceData extends BalanceData {
|
|
11
|
+
premiumCredit: string;
|
|
12
|
+
}
|
|
13
|
+
export interface Balances {
|
|
14
|
+
sogni: BalanceData;
|
|
15
|
+
spark: SparkBalanceData;
|
|
16
|
+
}
|
|
17
|
+
export interface AuthenticatedEvent {
|
|
18
|
+
username: string;
|
|
19
|
+
walletAddress: string;
|
|
20
|
+
balance: Balances;
|
|
21
|
+
isMainnet: boolean;
|
|
22
|
+
accountWasMigrated: boolean;
|
|
23
|
+
hasUnclaimedAirdrop: boolean;
|
|
24
|
+
firstLoginAfterMigration: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface BalanceUpdateEvent {
|
|
27
|
+
balance: Balances;
|
|
28
|
+
}
|
|
29
|
+
export interface ChangeNetworkEvent {
|
|
30
|
+
network: SupernetType;
|
|
31
|
+
}
|
|
32
|
+
export interface ConnectedEvent {
|
|
33
|
+
network: SupernetType;
|
|
34
|
+
}
|
|
35
|
+
export interface DisconnectedEvent {
|
|
36
|
+
code?: number;
|
|
37
|
+
reason?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ToastMessageEvent {
|
|
40
|
+
level: 'info' | 'success' | 'warning' | 'error';
|
|
41
|
+
message: string;
|
|
42
|
+
stickyID?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface JobStartedEvent {
|
|
45
|
+
projectId: string;
|
|
46
|
+
jobId: string | null;
|
|
47
|
+
workerName: string | null;
|
|
48
|
+
}
|
|
49
|
+
export interface JobInitiatingModelEvent {
|
|
50
|
+
projectId: string;
|
|
51
|
+
jobId: string | null;
|
|
52
|
+
}
|
|
53
|
+
export interface JobLifecycleCompletedEvent {
|
|
54
|
+
projectId: string;
|
|
55
|
+
jobId: string | null;
|
|
56
|
+
}
|
|
57
|
+
export interface JobProgressEvent {
|
|
58
|
+
projectId: string;
|
|
59
|
+
jobId: string;
|
|
60
|
+
/** Derived as step/stepCount in [0,1]. */
|
|
61
|
+
progress: number;
|
|
62
|
+
step: number;
|
|
63
|
+
stepCount: number;
|
|
64
|
+
}
|
|
65
|
+
export interface JobResultEvent {
|
|
66
|
+
projectId: string;
|
|
67
|
+
jobId: string;
|
|
68
|
+
seed: number;
|
|
69
|
+
performedStepCount: number;
|
|
70
|
+
/** True if the artist cancelled this job. The SDK turns these into JobFailed. */
|
|
71
|
+
userCanceled: boolean;
|
|
72
|
+
/** True if NSFW filter triggered. The SDK marks the job result as withheld. */
|
|
73
|
+
triggeredNSFWFilter: boolean;
|
|
74
|
+
}
|
|
75
|
+
export interface JobErrorEvent {
|
|
76
|
+
projectId: string;
|
|
77
|
+
jobId: string | null;
|
|
78
|
+
reason: JobErrorReason;
|
|
79
|
+
/** Original server-side error string, preserved for forward compat. */
|
|
80
|
+
rawCode: string;
|
|
81
|
+
message: string;
|
|
82
|
+
source: 'worker' | 'server';
|
|
83
|
+
}
|
|
84
|
+
export interface JobETAEvent {
|
|
85
|
+
projectId: string;
|
|
86
|
+
jobId: string;
|
|
87
|
+
etaSeconds: number;
|
|
88
|
+
}
|
|
89
|
+
export interface ArtistCancelConfirmationEvent {
|
|
90
|
+
projectId: string;
|
|
91
|
+
didCancel: boolean;
|
|
92
|
+
errorMessage?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface ChatTokensEvent {
|
|
95
|
+
jobId: string;
|
|
96
|
+
content: string;
|
|
97
|
+
role?: string;
|
|
98
|
+
finishReason?: string | null;
|
|
99
|
+
usage?: TokenUsage;
|
|
100
|
+
tool_calls?: ToolCallDelta[];
|
|
101
|
+
}
|
|
102
|
+
export interface ChatResultEvent {
|
|
103
|
+
jobId: string;
|
|
104
|
+
usage: TokenUsage;
|
|
105
|
+
timeTaken: number;
|
|
106
|
+
workerName?: string;
|
|
107
|
+
}
|
|
108
|
+
export interface ChatErrorEvent {
|
|
109
|
+
jobId: string;
|
|
110
|
+
rawCode: string;
|
|
111
|
+
message: string;
|
|
112
|
+
workerName?: string;
|
|
113
|
+
}
|
|
114
|
+
export interface SwarmLLMModelsEvent {
|
|
115
|
+
/** Map of model ID -> info. Worker counts are 0 if no workers serve the model. */
|
|
116
|
+
models: Record<string, LLMModelInfo>;
|
|
117
|
+
}
|
|
118
|
+
/** Public event map for WebSocketClient. */
|
|
119
|
+
export interface SocketEventMap {
|
|
120
|
+
connected: ConnectedEvent;
|
|
121
|
+
disconnected: DisconnectedEvent;
|
|
122
|
+
authenticated: AuthenticatedEvent;
|
|
123
|
+
balanceUpdate: BalanceUpdateEvent;
|
|
124
|
+
changeNetwork: ChangeNetworkEvent;
|
|
125
|
+
toastMessage: ToastMessageEvent;
|
|
126
|
+
jobStarted: JobStartedEvent;
|
|
127
|
+
jobInitiatingModel: JobInitiatingModelEvent;
|
|
128
|
+
jobLifecycleCompleted: JobLifecycleCompletedEvent;
|
|
129
|
+
jobProgress: JobProgressEvent;
|
|
130
|
+
jobResult: JobResultEvent;
|
|
131
|
+
jobError: JobErrorEvent;
|
|
132
|
+
jobETA: JobETAEvent;
|
|
133
|
+
artistCancelConfirmation: ArtistCancelConfirmationEvent;
|
|
134
|
+
chatTokens: ChatTokensEvent;
|
|
135
|
+
chatResult: ChatResultEvent;
|
|
136
|
+
chatError: ChatErrorEvent;
|
|
137
|
+
swarmLLMModels: SwarmLLMModelsEvent;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/ApiClient/WebSocketClient/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/ApiClient/WebSocketClient/events.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import TypedEventEmitter from '../../lib/TypedEventEmitter';
|
|
2
|
+
import { Logger } from '../../lib/DefaultLogger';
|
|
3
|
+
import { AuthManager } from '../../lib/AuthManager';
|
|
4
|
+
import { ConnectionStatus, SupernetType } from './types';
|
|
5
|
+
import { SocketEventMap } from './events';
|
|
6
|
+
declare class WebSocketClient extends TypedEventEmitter<SocketEventMap> {
|
|
7
|
+
readonly appId: string;
|
|
8
|
+
readonly appSource?: string;
|
|
9
|
+
readonly baseUrl: string;
|
|
10
|
+
protected _logger: Logger;
|
|
11
|
+
private _auth;
|
|
12
|
+
private _supernetType;
|
|
13
|
+
private socket;
|
|
14
|
+
private _status;
|
|
15
|
+
private _reconnectAttempts;
|
|
16
|
+
private _wantConnected;
|
|
17
|
+
private _appStateSubscription;
|
|
18
|
+
constructor(baseUrl: string, auth: AuthManager, appId: string, supernetType: SupernetType, logger: Logger, appSource?: string);
|
|
19
|
+
/**
|
|
20
|
+
* Subscribe to RN AppState 'change' events. When the app returns to the
|
|
21
|
+
* foreground, if we *want* to be connected but aren't, reconnect (and reset
|
|
22
|
+
* the backoff counter so the user immediately sees a real attempt). When
|
|
23
|
+
* the app backgrounds we do nothing — iOS will probably suspend the socket
|
|
24
|
+
* itself, and we'll reconnect on next foreground transition.
|
|
25
|
+
*/
|
|
26
|
+
private _subscribeAppState;
|
|
27
|
+
get supernetType(): SupernetType;
|
|
28
|
+
get isConnected(): boolean;
|
|
29
|
+
get status(): ConnectionStatus;
|
|
30
|
+
connect(): Promise<void>;
|
|
31
|
+
/** Tear down completely — closes the socket AND unsubscribes from AppState. */
|
|
32
|
+
dispose(): void;
|
|
33
|
+
disconnect(): void;
|
|
34
|
+
switchNetwork(target: SupernetType): Promise<SupernetType>;
|
|
35
|
+
send(messageType: string, data: unknown): Promise<void>;
|
|
36
|
+
private _handleOpen;
|
|
37
|
+
private _handleClose;
|
|
38
|
+
private _handleError;
|
|
39
|
+
private _scheduleReconnect;
|
|
40
|
+
private _cleanupSocket;
|
|
41
|
+
private _handleMessage;
|
|
42
|
+
private _dispatch;
|
|
43
|
+
}
|
|
44
|
+
export default WebSocketClient;
|
|
45
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ApiClient/WebSocketClient/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA+D1C,cAAM,eAAgB,SAAQ,iBAAiB,CAAC,cAAc,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,qBAAqB,CAAmC;gBAG9D,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM;IAYpB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAY1B,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC9B,+EAA+E;IAC/E,OAAO,IAAI,IAAI;IASf,UAAU,IAAI,IAAI;IAcZ,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAU1D,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7D,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,SAAS;CAoElB;AASD,eAAe,eAAe,CAAC"}
|