@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.
Files changed (170) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/CLAUDE.md +7 -0
  3. package/README.md +45 -25
  4. package/dist/Chat/ChatTools.js +30 -16
  5. package/dist/Chat/ChatTools.js.map +1 -1
  6. package/dist/Chat/hostedToolValidation.generated.d.ts +46 -0
  7. package/dist/Chat/hostedToolValidation.generated.js +306 -0
  8. package/dist/Chat/hostedToolValidation.generated.js.map +1 -0
  9. package/dist/Chat/index.d.ts +41 -1
  10. package/dist/Chat/index.js +166 -2
  11. package/dist/Chat/index.js.map +1 -1
  12. package/dist/Chat/modelRouting.d.ts +8 -26
  13. package/dist/Chat/modelRouting.js +11 -106
  14. package/dist/Chat/modelRouting.js.map +1 -1
  15. package/dist/Chat/sogniHostedTools.generated.json +1285 -283
  16. package/dist/Chat/tools.d.ts +52 -3
  17. package/dist/Chat/tools.js +80 -27
  18. package/dist/Chat/tools.js.map +1 -1
  19. package/dist/Chat/types.d.ts +119 -3
  20. package/dist/CreativeWorkflows/index.d.ts +1 -7
  21. package/dist/CreativeWorkflows/index.js +23 -21
  22. package/dist/CreativeWorkflows/index.js.map +1 -1
  23. package/dist/CreativeWorkflows/types.d.ts +27 -33
  24. package/dist/index.d.ts +19 -4
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib/Cache.js +6 -1
  28. package/dist/lib/Cache.js.map +1 -1
  29. package/dist-esm/Account/CurrentAccount.js +59 -0
  30. package/dist-esm/Account/CurrentAccount.js.map +1 -0
  31. package/dist-esm/Account/index.js +543 -0
  32. package/dist-esm/Account/index.js.map +1 -0
  33. package/dist-esm/Account/types.js +2 -0
  34. package/dist-esm/Account/types.js.map +1 -0
  35. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.js +327 -0
  36. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.js.map +1 -0
  37. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js +222 -0
  38. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js.map +1 -0
  39. package/dist-esm/ApiClient/WebSocketClient/ErrorCode.js +15 -0
  40. package/dist-esm/ApiClient/WebSocketClient/ErrorCode.js.map +1 -0
  41. package/dist-esm/ApiClient/WebSocketClient/eventSubscriptions.js +35 -0
  42. package/dist-esm/ApiClient/WebSocketClient/eventSubscriptions.js.map +1 -0
  43. package/dist-esm/ApiClient/WebSocketClient/events.js +2 -0
  44. package/dist-esm/ApiClient/WebSocketClient/events.js.map +1 -0
  45. package/dist-esm/ApiClient/WebSocketClient/index.js +221 -0
  46. package/dist-esm/ApiClient/WebSocketClient/index.js.map +1 -0
  47. package/dist-esm/ApiClient/WebSocketClient/messages.js +2 -0
  48. package/dist-esm/ApiClient/WebSocketClient/messages.js.map +1 -0
  49. package/dist-esm/ApiClient/WebSocketClient/types.js +2 -0
  50. package/dist-esm/ApiClient/WebSocketClient/types.js.map +1 -0
  51. package/dist-esm/ApiClient/events.js +2 -0
  52. package/dist-esm/ApiClient/events.js.map +1 -0
  53. package/dist-esm/ApiClient/index.js +120 -0
  54. package/dist-esm/ApiClient/index.js.map +1 -0
  55. package/dist-esm/ApiGroup.js +10 -0
  56. package/dist-esm/ApiGroup.js.map +1 -0
  57. package/dist-esm/Chat/ChatStream.js +181 -0
  58. package/dist-esm/Chat/ChatStream.js.map +1 -0
  59. package/dist-esm/Chat/ChatTools.js +562 -0
  60. package/dist-esm/Chat/ChatTools.js.map +1 -0
  61. package/dist-esm/Chat/hostedToolValidation.generated.js +301 -0
  62. package/dist-esm/Chat/hostedToolValidation.generated.js.map +1 -0
  63. package/dist-esm/Chat/index.js +598 -0
  64. package/dist-esm/Chat/index.js.map +1 -0
  65. package/dist-esm/Chat/modelRouting.js +326 -0
  66. package/dist-esm/Chat/modelRouting.js.map +1 -0
  67. package/dist-esm/Chat/sogniHostedTools.generated.json +1531 -0
  68. package/dist-esm/Chat/tools.js +149 -0
  69. package/dist-esm/Chat/tools.js.map +1 -0
  70. package/dist-esm/Chat/types.js +2 -0
  71. package/dist-esm/Chat/types.js.map +1 -0
  72. package/dist-esm/CreativeWorkflows/index.js +256 -0
  73. package/dist-esm/CreativeWorkflows/index.js.map +1 -0
  74. package/dist-esm/CreativeWorkflows/types.js +2 -0
  75. package/dist-esm/CreativeWorkflows/types.js.map +1 -0
  76. package/dist-esm/Projects/Job.js +391 -0
  77. package/dist-esm/Projects/Job.js.map +1 -0
  78. package/dist-esm/Projects/Project.js +295 -0
  79. package/dist-esm/Projects/Project.js.map +1 -0
  80. package/dist-esm/Projects/createJobRequestMessage.js +528 -0
  81. package/dist-esm/Projects/createJobRequestMessage.js.map +1 -0
  82. package/dist-esm/Projects/index.js +1309 -0
  83. package/dist-esm/Projects/index.js.map +1 -0
  84. package/dist-esm/Projects/types/ComfySamplerParams.js +2 -0
  85. package/dist-esm/Projects/types/ComfySamplerParams.js.map +1 -0
  86. package/dist-esm/Projects/types/ControlNetParams.js +2 -0
  87. package/dist-esm/Projects/types/ControlNetParams.js.map +1 -0
  88. package/dist-esm/Projects/types/EstimationResponse.js +2 -0
  89. package/dist-esm/Projects/types/EstimationResponse.js.map +1 -0
  90. package/dist-esm/Projects/types/ModelOptions.js +89 -0
  91. package/dist-esm/Projects/types/ModelOptions.js.map +1 -0
  92. package/dist-esm/Projects/types/ModelTiersRaw.js +13 -0
  93. package/dist-esm/Projects/types/ModelTiersRaw.js.map +1 -0
  94. package/dist-esm/Projects/types/RawProject.js +2 -0
  95. package/dist-esm/Projects/types/RawProject.js.map +1 -0
  96. package/dist-esm/Projects/types/events.js +2 -0
  97. package/dist-esm/Projects/types/events.js.map +1 -0
  98. package/dist-esm/Projects/types/index.js +10 -0
  99. package/dist-esm/Projects/types/index.js.map +1 -0
  100. package/dist-esm/Projects/utils/index.js +229 -0
  101. package/dist-esm/Projects/utils/index.js.map +1 -0
  102. package/dist-esm/Projects/utils/samplers.js +36 -0
  103. package/dist-esm/Projects/utils/samplers.js.map +1 -0
  104. package/dist-esm/Projects/utils/scheduler.js +27 -0
  105. package/dist-esm/Projects/utils/scheduler.js.map +1 -0
  106. package/dist-esm/Stats/index.js +20 -0
  107. package/dist-esm/Stats/index.js.map +1 -0
  108. package/dist-esm/Stats/types.js +2 -0
  109. package/dist-esm/Stats/types.js.map +1 -0
  110. package/dist-esm/events.js +2 -0
  111. package/dist-esm/events.js.map +1 -0
  112. package/dist-esm/index.js +144 -0
  113. package/dist-esm/index.js.map +1 -0
  114. package/dist-esm/lib/AuthManager/ApiKeyAuthManager.js +58 -0
  115. package/dist-esm/lib/AuthManager/ApiKeyAuthManager.js.map +1 -0
  116. package/dist-esm/lib/AuthManager/AuthManagerBase.js +9 -0
  117. package/dist-esm/lib/AuthManager/AuthManagerBase.js.map +1 -0
  118. package/dist-esm/lib/AuthManager/CookieAuthManager.js +48 -0
  119. package/dist-esm/lib/AuthManager/CookieAuthManager.js.map +1 -0
  120. package/dist-esm/lib/AuthManager/TokenAuthManager.js +186 -0
  121. package/dist-esm/lib/AuthManager/TokenAuthManager.js.map +1 -0
  122. package/dist-esm/lib/AuthManager/index.js +5 -0
  123. package/dist-esm/lib/AuthManager/index.js.map +1 -0
  124. package/dist-esm/lib/Cache.js +32 -0
  125. package/dist-esm/lib/Cache.js.map +1 -0
  126. package/dist-esm/lib/DataEntity.js +30 -0
  127. package/dist-esm/lib/DataEntity.js.map +1 -0
  128. package/dist-esm/lib/DefaultLogger.js +32 -0
  129. package/dist-esm/lib/DefaultLogger.js.map +1 -0
  130. package/dist-esm/lib/EIP712Helper.js +37 -0
  131. package/dist-esm/lib/EIP712Helper.js.map +1 -0
  132. package/dist-esm/lib/RestClient.js +90 -0
  133. package/dist-esm/lib/RestClient.js.map +1 -0
  134. package/dist-esm/lib/TypedEventEmitter.js +68 -0
  135. package/dist-esm/lib/TypedEventEmitter.js.map +1 -0
  136. package/dist-esm/lib/base64.js +18 -0
  137. package/dist-esm/lib/base64.js.map +1 -0
  138. package/dist-esm/lib/getUUID.js +7 -0
  139. package/dist-esm/lib/getUUID.js.map +1 -0
  140. package/dist-esm/lib/isNodejs.js +3 -0
  141. package/dist-esm/lib/isNodejs.js.map +1 -0
  142. package/dist-esm/lib/mediaValidation.js +277 -0
  143. package/dist-esm/lib/mediaValidation.js.map +1 -0
  144. package/dist-esm/lib/utils/index.js +30 -0
  145. package/dist-esm/lib/utils/index.js.map +1 -0
  146. package/dist-esm/lib/validation.js +138 -0
  147. package/dist-esm/lib/validation.js.map +1 -0
  148. package/dist-esm/package.json +3 -0
  149. package/dist-esm/types/ErrorData.js +2 -0
  150. package/dist-esm/types/ErrorData.js.map +1 -0
  151. package/dist-esm/types/json.js +2 -0
  152. package/dist-esm/types/json.js.map +1 -0
  153. package/dist-esm/types/token.js +2 -0
  154. package/dist-esm/types/token.js.map +1 -0
  155. package/dist-esm/version.js +3 -0
  156. package/dist-esm/version.js.map +1 -0
  157. package/llms-full.txt +11 -20
  158. package/llms.txt +9 -18
  159. package/package.json +21 -5
  160. package/src/Chat/ChatTools.ts +36 -16
  161. package/src/Chat/hostedToolValidation.generated.ts +453 -0
  162. package/src/Chat/index.ts +198 -3
  163. package/src/Chat/modelRouting.ts +26 -150
  164. package/src/Chat/sogniHostedTools.generated.json +1285 -283
  165. package/src/Chat/tools.ts +106 -41
  166. package/src/Chat/types.ts +131 -3
  167. package/src/CreativeWorkflows/index.ts +22 -41
  168. package/src/CreativeWorkflows/types.ts +69 -42
  169. package/src/index.ts +33 -12
  170. 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,9 @@
1
+ import TypedEventEmitter from '../TypedEventEmitter';
2
+ class AuthManagerBase extends TypedEventEmitter {
3
+ constructor(logger) {
4
+ super();
5
+ this._logger = logger;
6
+ }
7
+ }
8
+ export default AuthManagerBase;
9
+ //# sourceMappingURL=AuthManagerBase.js.map
@@ -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,5 @@
1
+ import ApiKeyAuthManager from './ApiKeyAuthManager';
2
+ import CookieAuthManager from './CookieAuthManager';
3
+ import TokenAuthManager from './TokenAuthManager';
4
+ export { ApiKeyAuthManager, CookieAuthManager, TokenAuthManager };
5
+ //# sourceMappingURL=index.js.map
@@ -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"}