@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.
Files changed (262) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +411 -0
  3. package/dist/cjs/Account/index.d.ts +60 -0
  4. package/dist/cjs/Account/index.d.ts.map +1 -0
  5. package/dist/cjs/Account/index.js +188 -0
  6. package/dist/cjs/Account/index.js.map +1 -0
  7. package/dist/cjs/Account/types.d.ts +43 -0
  8. package/dist/cjs/Account/types.d.ts.map +1 -0
  9. package/dist/cjs/Account/types.js +18 -0
  10. package/dist/cjs/Account/types.js.map +1 -0
  11. package/dist/cjs/ApiClient/WebSocketClient/events.d.ts +139 -0
  12. package/dist/cjs/ApiClient/WebSocketClient/events.d.ts.map +1 -0
  13. package/dist/cjs/ApiClient/WebSocketClient/events.js +3 -0
  14. package/dist/cjs/ApiClient/WebSocketClient/events.js.map +1 -0
  15. package/dist/cjs/ApiClient/WebSocketClient/index.d.ts +45 -0
  16. package/dist/cjs/ApiClient/WebSocketClient/index.d.ts.map +1 -0
  17. package/dist/cjs/ApiClient/WebSocketClient/index.js +283 -0
  18. package/dist/cjs/ApiClient/WebSocketClient/index.js.map +1 -0
  19. package/dist/cjs/ApiClient/WebSocketClient/normalize.d.ts +45 -0
  20. package/dist/cjs/ApiClient/WebSocketClient/normalize.d.ts.map +1 -0
  21. package/dist/cjs/ApiClient/WebSocketClient/normalize.js +245 -0
  22. package/dist/cjs/ApiClient/WebSocketClient/normalize.js.map +1 -0
  23. package/dist/cjs/ApiClient/WebSocketClient/types.d.ts +9 -0
  24. package/dist/cjs/ApiClient/WebSocketClient/types.d.ts.map +1 -0
  25. package/dist/cjs/ApiClient/WebSocketClient/types.js +3 -0
  26. package/dist/cjs/ApiClient/WebSocketClient/types.js.map +1 -0
  27. package/dist/cjs/ApiClient/WebSocketClient/wireTypes.d.ts +161 -0
  28. package/dist/cjs/ApiClient/WebSocketClient/wireTypes.d.ts.map +1 -0
  29. package/dist/cjs/ApiClient/WebSocketClient/wireTypes.js +11 -0
  30. package/dist/cjs/ApiClient/WebSocketClient/wireTypes.js.map +1 -0
  31. package/dist/cjs/ApiClient/index.d.ts +60 -0
  32. package/dist/cjs/ApiClient/index.d.ts.map +1 -0
  33. package/dist/cjs/ApiClient/index.js +87 -0
  34. package/dist/cjs/ApiClient/index.js.map +1 -0
  35. package/dist/cjs/Chat/ChatStream.d.ts +42 -0
  36. package/dist/cjs/Chat/ChatStream.d.ts.map +1 -0
  37. package/dist/cjs/Chat/ChatStream.js +146 -0
  38. package/dist/cjs/Chat/ChatStream.js.map +1 -0
  39. package/dist/cjs/Chat/index.d.ts +61 -0
  40. package/dist/cjs/Chat/index.d.ts.map +1 -0
  41. package/dist/cjs/Chat/index.js +179 -0
  42. package/dist/cjs/Chat/index.js.map +1 -0
  43. package/dist/cjs/Chat/tools.d.ts +13 -0
  44. package/dist/cjs/Chat/tools.d.ts.map +1 -0
  45. package/dist/cjs/Chat/tools.js +22 -0
  46. package/dist/cjs/Chat/tools.js.map +1 -0
  47. package/dist/cjs/Chat/types.d.ts +153 -0
  48. package/dist/cjs/Chat/types.d.ts.map +1 -0
  49. package/dist/cjs/Chat/types.js +3 -0
  50. package/dist/cjs/Chat/types.js.map +1 -0
  51. package/dist/cjs/Projects/ControlNet.d.ts +30 -0
  52. package/dist/cjs/Projects/ControlNet.d.ts.map +1 -0
  53. package/dist/cjs/Projects/ControlNet.js +45 -0
  54. package/dist/cjs/Projects/ControlNet.js.map +1 -0
  55. package/dist/cjs/Projects/createJobRequestMessage.d.ts +11 -0
  56. package/dist/cjs/Projects/createJobRequestMessage.d.ts.map +1 -0
  57. package/dist/cjs/Projects/createJobRequestMessage.js +239 -0
  58. package/dist/cjs/Projects/createJobRequestMessage.js.map +1 -0
  59. package/dist/cjs/Projects/index.d.ts +96 -0
  60. package/dist/cjs/Projects/index.d.ts.map +1 -0
  61. package/dist/cjs/Projects/index.js +536 -0
  62. package/dist/cjs/Projects/index.js.map +1 -0
  63. package/dist/cjs/Projects/restNormalize.d.ts +60 -0
  64. package/dist/cjs/Projects/restNormalize.d.ts.map +1 -0
  65. package/dist/cjs/Projects/restNormalize.js +89 -0
  66. package/dist/cjs/Projects/restNormalize.js.map +1 -0
  67. package/dist/cjs/Projects/types.d.ts +233 -0
  68. package/dist/cjs/Projects/types.d.ts.map +1 -0
  69. package/dist/cjs/Projects/types.js +3 -0
  70. package/dist/cjs/Projects/types.js.map +1 -0
  71. package/dist/cjs/Projects/utils.d.ts +23 -0
  72. package/dist/cjs/Projects/utils.d.ts.map +1 -0
  73. package/dist/cjs/Projects/utils.js +65 -0
  74. package/dist/cjs/Projects/utils.js.map +1 -0
  75. package/dist/cjs/index.d.ts +63 -0
  76. package/dist/cjs/index.d.ts.map +1 -0
  77. package/dist/cjs/index.js +116 -0
  78. package/dist/cjs/index.js.map +1 -0
  79. package/dist/cjs/lib/AuthManager/ApiKeyAuthManager.d.ts +15 -0
  80. package/dist/cjs/lib/AuthManager/ApiKeyAuthManager.d.ts.map +1 -0
  81. package/dist/cjs/lib/AuthManager/ApiKeyAuthManager.js +47 -0
  82. package/dist/cjs/lib/AuthManager/ApiKeyAuthManager.js.map +1 -0
  83. package/dist/cjs/lib/AuthManager/AuthManagerBase.d.ts +23 -0
  84. package/dist/cjs/lib/AuthManager/AuthManagerBase.d.ts.map +1 -0
  85. package/dist/cjs/lib/AuthManager/AuthManagerBase.js +14 -0
  86. package/dist/cjs/lib/AuthManager/AuthManagerBase.js.map +1 -0
  87. package/dist/cjs/lib/AuthManager/AuthStorage.d.ts +11 -0
  88. package/dist/cjs/lib/AuthManager/AuthStorage.d.ts.map +1 -0
  89. package/dist/cjs/lib/AuthManager/AuthStorage.js +50 -0
  90. package/dist/cjs/lib/AuthManager/AuthStorage.js.map +1 -0
  91. package/dist/cjs/lib/AuthManager/TokenAuthManager.d.ts +35 -0
  92. package/dist/cjs/lib/AuthManager/TokenAuthManager.d.ts.map +1 -0
  93. package/dist/cjs/lib/AuthManager/TokenAuthManager.js +164 -0
  94. package/dist/cjs/lib/AuthManager/TokenAuthManager.js.map +1 -0
  95. package/dist/cjs/lib/AuthManager/index.d.ts +7 -0
  96. package/dist/cjs/lib/AuthManager/index.d.ts.map +1 -0
  97. package/dist/cjs/lib/AuthManager/index.js +13 -0
  98. package/dist/cjs/lib/AuthManager/index.js.map +1 -0
  99. package/dist/cjs/lib/Cache.d.ts +12 -0
  100. package/dist/cjs/lib/Cache.d.ts.map +1 -0
  101. package/dist/cjs/lib/Cache.js +36 -0
  102. package/dist/cjs/lib/Cache.js.map +1 -0
  103. package/dist/cjs/lib/DefaultLogger.d.ts +17 -0
  104. package/dist/cjs/lib/DefaultLogger.d.ts.map +1 -0
  105. package/dist/cjs/lib/DefaultLogger.js +36 -0
  106. package/dist/cjs/lib/DefaultLogger.js.map +1 -0
  107. package/dist/cjs/lib/RestClient.d.ts +18 -0
  108. package/dist/cjs/lib/RestClient.d.ts.map +1 -0
  109. package/dist/cjs/lib/RestClient.js +67 -0
  110. package/dist/cjs/lib/RestClient.js.map +1 -0
  111. package/dist/cjs/lib/TypedEventEmitter.d.ts +16 -0
  112. package/dist/cjs/lib/TypedEventEmitter.d.ts.map +1 -0
  113. package/dist/cjs/lib/TypedEventEmitter.js +46 -0
  114. package/dist/cjs/lib/TypedEventEmitter.js.map +1 -0
  115. package/dist/cjs/lib/base64.d.ts +3 -0
  116. package/dist/cjs/lib/base64.d.ts.map +1 -0
  117. package/dist/cjs/lib/base64.js +21 -0
  118. package/dist/cjs/lib/base64.js.map +1 -0
  119. package/dist/cjs/lib/getUUID.d.ts +12 -0
  120. package/dist/cjs/lib/getUUID.d.ts.map +1 -0
  121. package/dist/cjs/lib/getUUID.js +29 -0
  122. package/dist/cjs/lib/getUUID.js.map +1 -0
  123. package/dist/cjs/lib/mediaInput.d.ts +33 -0
  124. package/dist/cjs/lib/mediaInput.d.ts.map +1 -0
  125. package/dist/cjs/lib/mediaInput.js +32 -0
  126. package/dist/cjs/lib/mediaInput.js.map +1 -0
  127. package/dist/cjs/lib/utils.d.ts +10 -0
  128. package/dist/cjs/lib/utils.d.ts.map +1 -0
  129. package/dist/cjs/lib/utils.js +24 -0
  130. package/dist/cjs/lib/utils.js.map +1 -0
  131. package/dist/cjs/types/ErrorData.d.ts +7 -0
  132. package/dist/cjs/types/ErrorData.d.ts.map +1 -0
  133. package/dist/cjs/types/ErrorData.js +3 -0
  134. package/dist/cjs/types/ErrorData.js.map +1 -0
  135. package/dist/cjs/types/json.d.ts +6 -0
  136. package/dist/cjs/types/json.d.ts.map +1 -0
  137. package/dist/cjs/types/json.js +3 -0
  138. package/dist/cjs/types/json.js.map +1 -0
  139. package/dist/cjs/types/token.d.ts +2 -0
  140. package/dist/cjs/types/token.d.ts.map +1 -0
  141. package/dist/cjs/types/token.js +3 -0
  142. package/dist/cjs/types/token.js.map +1 -0
  143. package/dist/cjs/version.d.ts +2 -0
  144. package/dist/cjs/version.d.ts.map +1 -0
  145. package/dist/cjs/version.js +5 -0
  146. package/dist/cjs/version.js.map +1 -0
  147. package/dist/cjs/wallet.d.ts +59 -0
  148. package/dist/cjs/wallet.d.ts.map +1 -0
  149. package/dist/cjs/wallet.js +125 -0
  150. package/dist/cjs/wallet.js.map +1 -0
  151. package/dist/esm/Account/index.js +183 -0
  152. package/dist/esm/Account/index.js.map +1 -0
  153. package/dist/esm/Account/types.js +15 -0
  154. package/dist/esm/Account/types.js.map +1 -0
  155. package/dist/esm/ApiClient/WebSocketClient/events.js +2 -0
  156. package/dist/esm/ApiClient/WebSocketClient/events.js.map +1 -0
  157. package/dist/esm/ApiClient/WebSocketClient/index.js +278 -0
  158. package/dist/esm/ApiClient/WebSocketClient/index.js.map +1 -0
  159. package/dist/esm/ApiClient/WebSocketClient/normalize.js +229 -0
  160. package/dist/esm/ApiClient/WebSocketClient/normalize.js.map +1 -0
  161. package/dist/esm/ApiClient/WebSocketClient/types.js +2 -0
  162. package/dist/esm/ApiClient/WebSocketClient/types.js.map +1 -0
  163. package/dist/esm/ApiClient/WebSocketClient/wireTypes.js +10 -0
  164. package/dist/esm/ApiClient/WebSocketClient/wireTypes.js.map +1 -0
  165. package/dist/esm/ApiClient/index.js +80 -0
  166. package/dist/esm/ApiClient/index.js.map +1 -0
  167. package/dist/esm/Chat/ChatStream.js +144 -0
  168. package/dist/esm/Chat/ChatStream.js.map +1 -0
  169. package/dist/esm/Chat/index.js +174 -0
  170. package/dist/esm/Chat/index.js.map +1 -0
  171. package/dist/esm/Chat/tools.js +19 -0
  172. package/dist/esm/Chat/tools.js.map +1 -0
  173. package/dist/esm/Chat/types.js +2 -0
  174. package/dist/esm/Chat/types.js.map +1 -0
  175. package/dist/esm/Projects/ControlNet.js +41 -0
  176. package/dist/esm/Projects/ControlNet.js.map +1 -0
  177. package/dist/esm/Projects/createJobRequestMessage.js +236 -0
  178. package/dist/esm/Projects/createJobRequestMessage.js.map +1 -0
  179. package/dist/esm/Projects/index.js +531 -0
  180. package/dist/esm/Projects/index.js.map +1 -0
  181. package/dist/esm/Projects/restNormalize.js +86 -0
  182. package/dist/esm/Projects/restNormalize.js.map +1 -0
  183. package/dist/esm/Projects/types.js +2 -0
  184. package/dist/esm/Projects/types.js.map +1 -0
  185. package/dist/esm/Projects/utils.js +55 -0
  186. package/dist/esm/Projects/utils.js.map +1 -0
  187. package/dist/esm/index.js +72 -0
  188. package/dist/esm/index.js.map +1 -0
  189. package/dist/esm/lib/AuthManager/ApiKeyAuthManager.js +42 -0
  190. package/dist/esm/lib/AuthManager/ApiKeyAuthManager.js.map +1 -0
  191. package/dist/esm/lib/AuthManager/AuthManagerBase.js +9 -0
  192. package/dist/esm/lib/AuthManager/AuthManagerBase.js.map +1 -0
  193. package/dist/esm/lib/AuthManager/AuthStorage.js +13 -0
  194. package/dist/esm/lib/AuthManager/AuthStorage.js.map +1 -0
  195. package/dist/esm/lib/AuthManager/TokenAuthManager.js +159 -0
  196. package/dist/esm/lib/AuthManager/TokenAuthManager.js.map +1 -0
  197. package/dist/esm/lib/AuthManager/index.js +5 -0
  198. package/dist/esm/lib/AuthManager/index.js.map +1 -0
  199. package/dist/esm/lib/Cache.js +33 -0
  200. package/dist/esm/lib/Cache.js.map +1 -0
  201. package/dist/esm/lib/DefaultLogger.js +32 -0
  202. package/dist/esm/lib/DefaultLogger.js.map +1 -0
  203. package/dist/esm/lib/RestClient.js +62 -0
  204. package/dist/esm/lib/RestClient.js.map +1 -0
  205. package/dist/esm/lib/TypedEventEmitter.js +44 -0
  206. package/dist/esm/lib/TypedEventEmitter.js.map +1 -0
  207. package/dist/esm/lib/base64.js +17 -0
  208. package/dist/esm/lib/base64.js.map +1 -0
  209. package/dist/esm/lib/getUUID.js +26 -0
  210. package/dist/esm/lib/getUUID.js.map +1 -0
  211. package/dist/esm/lib/mediaInput.js +28 -0
  212. package/dist/esm/lib/mediaInput.js.map +1 -0
  213. package/dist/esm/lib/utils.js +19 -0
  214. package/dist/esm/lib/utils.js.map +1 -0
  215. package/dist/esm/types/ErrorData.js +2 -0
  216. package/dist/esm/types/ErrorData.js.map +1 -0
  217. package/dist/esm/types/json.js +2 -0
  218. package/dist/esm/types/json.js.map +1 -0
  219. package/dist/esm/types/token.js +2 -0
  220. package/dist/esm/types/token.js.map +1 -0
  221. package/dist/esm/version.js +2 -0
  222. package/dist/esm/version.js.map +1 -0
  223. package/dist/esm/wallet.js +117 -0
  224. package/dist/esm/wallet.js.map +1 -0
  225. package/package.json +92 -0
  226. package/src/Account/index.ts +214 -0
  227. package/src/Account/types.ts +61 -0
  228. package/src/ApiClient/WebSocketClient/events.ts +168 -0
  229. package/src/ApiClient/WebSocketClient/index.ts +345 -0
  230. package/src/ApiClient/WebSocketClient/normalize.ts +287 -0
  231. package/src/ApiClient/WebSocketClient/types.ts +10 -0
  232. package/src/ApiClient/WebSocketClient/wireTypes.ts +183 -0
  233. package/src/ApiClient/index.ts +147 -0
  234. package/src/Chat/ChatStream.ts +164 -0
  235. package/src/Chat/index.ts +224 -0
  236. package/src/Chat/tools.ts +23 -0
  237. package/src/Chat/types.ts +165 -0
  238. package/src/Projects/ControlNet.ts +84 -0
  239. package/src/Projects/createJobRequestMessage.ts +241 -0
  240. package/src/Projects/index.ts +608 -0
  241. package/src/Projects/restNormalize.ts +154 -0
  242. package/src/Projects/types.ts +266 -0
  243. package/src/Projects/utils.ts +60 -0
  244. package/src/index.ts +217 -0
  245. package/src/lib/AuthManager/ApiKeyAuthManager.ts +52 -0
  246. package/src/lib/AuthManager/AuthManagerBase.ts +35 -0
  247. package/src/lib/AuthManager/AuthStorage.ts +21 -0
  248. package/src/lib/AuthManager/TokenAuthManager.ts +179 -0
  249. package/src/lib/AuthManager/index.ts +8 -0
  250. package/src/lib/Cache.ts +45 -0
  251. package/src/lib/DefaultLogger.ts +47 -0
  252. package/src/lib/RestClient.ts +77 -0
  253. package/src/lib/TypedEventEmitter.ts +52 -0
  254. package/src/lib/base64.ts +17 -0
  255. package/src/lib/getUUID.ts +27 -0
  256. package/src/lib/mediaInput.ts +54 -0
  257. package/src/lib/utils.ts +21 -0
  258. package/src/types/ErrorData.ts +7 -0
  259. package/src/types/json.ts +5 -0
  260. package/src/types/token.ts +1 -0
  261. package/src/version.ts +1 -0
  262. 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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3E,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAC;IACtB,+EAA+E;IAC/E,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACtC;AAED,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,cAAc,CAAC;IAC1B,YAAY,EAAE,iBAAiB,CAAC;IAChC,aAAa,EAAE,kBAAkB,CAAC;IAClC,aAAa,EAAE,kBAAkB,CAAC;IAClC,aAAa,EAAE,kBAAkB,CAAC;IAClC,YAAY,EAAE,iBAAiB,CAAC;IAChC,UAAU,EAAE,eAAe,CAAC;IAC5B,kBAAkB,EAAE,uBAAuB,CAAC;IAC5C,qBAAqB,EAAE,0BAA0B,CAAC;IAClD,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,wBAAwB,EAAE,6BAA6B,CAAC;IACxD,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,cAAc,CAAC;IAC1B,cAAc,EAAE,mBAAmB,CAAC;CACrC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=events.js.map
@@ -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"}