@sogni-ai/sogni-client 0.0.8 → 0.0.9

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 (89) hide show
  1. package/dist/Account/CurrentAccount.d.ts +26 -0
  2. package/dist/Account/CurrentAccount.js +76 -0
  3. package/dist/Account/CurrentAccount.js.map +1 -0
  4. package/dist/Account/index.d.ts +31 -0
  5. package/dist/Account/index.js +172 -0
  6. package/dist/Account/index.js.map +1 -0
  7. package/dist/Account/types.d.ts +57 -0
  8. package/dist/Account/types.js +3 -0
  9. package/dist/Account/types.js.map +1 -0
  10. package/dist/ApiClient/ApiClient.d.ts +42 -0
  11. package/dist/ApiClient/ApiClient.js +79 -0
  12. package/dist/ApiClient/ApiClient.js.map +1 -0
  13. package/dist/ApiClient/WebSocketClient/ErrorCode.d.ts +7 -0
  14. package/dist/ApiClient/WebSocketClient/ErrorCode.js +18 -0
  15. package/dist/ApiClient/WebSocketClient/ErrorCode.js.map +1 -0
  16. package/dist/ApiClient/WebSocketClient/events.d.ts +83 -0
  17. package/dist/ApiClient/WebSocketClient/events.js +3 -0
  18. package/dist/ApiClient/WebSocketClient/events.js.map +1 -0
  19. package/dist/ApiClient/WebSocketClient/index.d.ts +28 -0
  20. package/dist/ApiClient/WebSocketClient/index.js +166 -0
  21. package/dist/ApiClient/WebSocketClient/index.js.map +1 -0
  22. package/dist/ApiClient/WebSocketClient/messages.d.ts +5 -0
  23. package/dist/ApiClient/WebSocketClient/messages.js +3 -0
  24. package/dist/ApiClient/WebSocketClient/messages.js.map +1 -0
  25. package/dist/ApiClient/WebSocketClient/types.d.ts +1 -0
  26. package/dist/ApiClient/WebSocketClient/types.js +3 -0
  27. package/dist/ApiClient/WebSocketClient/types.js.map +1 -0
  28. package/dist/ApiClient/events.d.ts +19 -0
  29. package/dist/ApiClient/events.js +3 -0
  30. package/dist/ApiClient/events.js.map +1 -0
  31. package/dist/ApiGroup.d.ts +16 -0
  32. package/dist/ApiGroup.js +16 -0
  33. package/dist/ApiGroup.js.map +1 -0
  34. package/dist/Projects/Job.d.ts +31 -0
  35. package/dist/Projects/Job.js +52 -0
  36. package/dist/Projects/Job.js.map +1 -0
  37. package/dist/Projects/Project.d.ts +50 -0
  38. package/dist/Projects/Project.js +94 -0
  39. package/dist/Projects/Project.js.map +1 -0
  40. package/dist/Projects/createJobRequestMessage.d.ts +63 -0
  41. package/dist/Projects/createJobRequestMessage.js +68 -0
  42. package/dist/Projects/createJobRequestMessage.js.map +1 -0
  43. package/dist/Projects/index.d.ts +41 -0
  44. package/dist/Projects/index.js +253 -0
  45. package/dist/Projects/index.js.map +1 -0
  46. package/dist/Projects/models.json +8906 -0
  47. package/dist/Projects/types/EstimationResponse.d.ts +40 -0
  48. package/dist/Projects/types/EstimationResponse.js +3 -0
  49. package/dist/Projects/types/EstimationResponse.js.map +1 -0
  50. package/dist/Projects/types/events.d.ts +51 -0
  51. package/dist/Projects/types/events.js +3 -0
  52. package/dist/Projects/types/events.js.map +1 -0
  53. package/dist/Projects/types/index.d.ts +58 -0
  54. package/dist/Projects/types/index.js +3 -0
  55. package/dist/Projects/types/index.js.map +1 -0
  56. package/dist/Stats/index.d.ts +6 -0
  57. package/dist/Stats/index.js +25 -0
  58. package/dist/Stats/index.js.map +1 -0
  59. package/dist/Stats/types.d.ts +19 -0
  60. package/dist/Stats/types.js +3 -0
  61. package/dist/Stats/types.js.map +1 -0
  62. package/dist/index.d.ts +39 -0
  63. package/dist/index.js +81 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/lib/DataEntity.d.ts +18 -0
  66. package/dist/lib/DataEntity.js +31 -0
  67. package/dist/lib/DataEntity.js.map +1 -0
  68. package/dist/lib/EIP712Helper.d.ts +13 -0
  69. package/dist/lib/EIP712Helper.js +39 -0
  70. package/dist/lib/EIP712Helper.js.map +1 -0
  71. package/dist/lib/RestClient.d.ts +18 -0
  72. package/dist/lib/RestClient.js +69 -0
  73. package/dist/lib/RestClient.js.map +1 -0
  74. package/dist/lib/TypedEventEmitter.d.ts +34 -0
  75. package/dist/lib/TypedEventEmitter.js +58 -0
  76. package/dist/lib/TypedEventEmitter.js.map +1 -0
  77. package/dist/lib/base64.d.ts +2 -0
  78. package/dist/lib/base64.js +15 -0
  79. package/dist/lib/base64.js.map +1 -0
  80. package/dist/lib/isNodejs.d.ts +2 -0
  81. package/dist/lib/isNodejs.js +5 -0
  82. package/dist/lib/isNodejs.js.map +1 -0
  83. package/dist/types/ErrorData.d.ts +5 -0
  84. package/dist/types/ErrorData.js +3 -0
  85. package/dist/types/ErrorData.js.map +1 -0
  86. package/dist/types/json.d.ts +5 -0
  87. package/dist/types/json.js +3 -0
  88. package/dist/types/json.js.map +1 -0
  89. package/package.json +1 -1
@@ -0,0 +1,41 @@
1
+ import ApiGroup, { ApiConfig } from '../ApiGroup';
2
+ import { AvailableModel, EstimateRequest, ImageUrlParams, ProjectParams } from './types';
3
+ import Project from './Project';
4
+ import { JobEvent, ProjectApiEvents, ProjectEvent } from './types/events';
5
+ declare class ProjectsApi extends ApiGroup<ProjectApiEvents> {
6
+ private _availableModels;
7
+ private projects;
8
+ get availableModels(): AvailableModel[];
9
+ constructor(config: ApiConfig);
10
+ private handleSwarmModels;
11
+ private handleJobState;
12
+ private handleJobProgress;
13
+ private handleJobResult;
14
+ private handleJobError;
15
+ handleProjectEvent(event: ProjectEvent): void;
16
+ handleJobEvent(event: JobEvent): void;
17
+ private handleServerDisconnected;
18
+ /**
19
+ * Send new project request to the network. Returns project instance which can be used to track
20
+ * progress and get resulting images.
21
+ * @param data
22
+ */
23
+ create(data: ProjectParams): Promise<Project>;
24
+ /**
25
+ * Estimate project cost
26
+ * @param network - either 'fast' or 'relaxed' network
27
+ * @param model - model id
28
+ * @param imageCount - number of images to generate
29
+ * @param stepCount - number of steps
30
+ * @param previewCount - number of preview images to request
31
+ * @param cnEnabled - control network enabled
32
+ * @param denoiseStrength - denoise strength
33
+ */
34
+ estimateCost({ network, model, imageCount, stepCount, previewCount, cnEnabled, denoiseStrength }: EstimateRequest): Promise<{
35
+ token: string;
36
+ usd: string;
37
+ }>;
38
+ uploadUrl(params: ImageUrlParams): Promise<string>;
39
+ downloadUrl(params: ImageUrlParams): Promise<string>;
40
+ }
41
+ export default ProjectsApi;
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const ApiGroup_1 = __importDefault(require("../ApiGroup"));
16
+ const models_json_1 = __importDefault(require("./models.json"));
17
+ const Project_1 = __importDefault(require("./Project"));
18
+ const createJobRequestMessage_1 = __importDefault(require("./createJobRequestMessage"));
19
+ class ProjectsApi extends ApiGroup_1.default {
20
+ get availableModels() {
21
+ return this._availableModels;
22
+ }
23
+ constructor(config) {
24
+ super(config);
25
+ this._availableModels = [];
26
+ this.projects = [];
27
+ // Listen to server events and emit them as project and job events
28
+ this.client.socket.on('swarmModels', this.handleSwarmModels.bind(this));
29
+ this.client.socket.on('jobState', this.handleJobState.bind(this));
30
+ this.client.socket.on('jobProgress', this.handleJobProgress.bind(this));
31
+ this.client.socket.on('jobError', this.handleJobError.bind(this));
32
+ this.client.socket.on('jobResult', this.handleJobResult.bind(this));
33
+ // Listen to server disconnect event
34
+ this.client.on('disconnected', this.handleServerDisconnected.bind(this));
35
+ // Listen to project and job events and update project and job instances
36
+ this.on('project', this.handleProjectEvent.bind(this));
37
+ this.on('job', this.handleJobEvent.bind(this));
38
+ }
39
+ handleSwarmModels(data) {
40
+ this._availableModels = models_json_1.default.reduce((acc, model) => {
41
+ if (data[model.modelId]) {
42
+ acc.push({
43
+ id: model.modelId,
44
+ name: model.modelShortName,
45
+ workerCount: data[model.modelId]
46
+ });
47
+ }
48
+ return acc;
49
+ }, []);
50
+ this.emit('availableModels', this._availableModels);
51
+ }
52
+ handleJobState(data) {
53
+ switch (data.type) {
54
+ case 'queued':
55
+ this.emit('project', {
56
+ type: 'queued',
57
+ projectId: data.jobID,
58
+ queuePosition: data.queuePosition
59
+ });
60
+ return;
61
+ case 'jobCompleted':
62
+ this.emit('project', { type: 'completed', projectId: data.jobID });
63
+ return;
64
+ case 'initiatingModel':
65
+ this.emit('job', { type: 'initiating', projectId: data.jobID, jobId: data.imgID });
66
+ return;
67
+ case 'jobStarted': {
68
+ this.emit('job', { type: 'started', projectId: data.jobID, jobId: data.imgID });
69
+ return;
70
+ }
71
+ }
72
+ }
73
+ handleJobProgress(data) {
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ this.emit('job', {
76
+ type: 'progress',
77
+ projectId: data.jobID,
78
+ jobId: data.imgID,
79
+ step: data.step,
80
+ stepCount: data.stepCount
81
+ });
82
+ if (data.hasImage) {
83
+ this.downloadUrl({
84
+ jobId: data.jobID,
85
+ imageId: data.imgID,
86
+ type: 'preview'
87
+ }).then((url) => {
88
+ this.emit('job', {
89
+ type: 'preview',
90
+ projectId: data.jobID,
91
+ jobId: data.imgID,
92
+ url
93
+ });
94
+ });
95
+ }
96
+ });
97
+ }
98
+ handleJobResult(data) {
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ const downloadUrl = yield this.downloadUrl({
101
+ jobId: data.jobID,
102
+ imageId: data.imgID,
103
+ type: 'complete'
104
+ });
105
+ this.emit('job', {
106
+ type: 'completed',
107
+ projectId: data.jobID,
108
+ jobId: data.imgID,
109
+ steps: data.performedStepCount,
110
+ resultUrl: downloadUrl
111
+ });
112
+ });
113
+ }
114
+ handleJobError(data) {
115
+ if (!data.imgID) {
116
+ this.emit('project', {
117
+ type: 'error',
118
+ projectId: data.jobID,
119
+ error: {
120
+ code: data.error,
121
+ message: data.error_message
122
+ }
123
+ });
124
+ return;
125
+ }
126
+ this.emit('job', {
127
+ type: 'error',
128
+ projectId: data.jobID,
129
+ jobId: data.imgID,
130
+ error: {
131
+ code: data.error,
132
+ message: data.error_message
133
+ }
134
+ });
135
+ }
136
+ handleProjectEvent(event) {
137
+ let project = this.projects.find((p) => p.id === event.projectId);
138
+ if (!project) {
139
+ return;
140
+ }
141
+ switch (event.type) {
142
+ case 'queued':
143
+ project._update({
144
+ status: 'queued',
145
+ queuePosition: event.queuePosition
146
+ });
147
+ break;
148
+ case 'completed':
149
+ project._update({
150
+ status: 'completed'
151
+ });
152
+ break;
153
+ case 'error':
154
+ project._update({
155
+ status: 'failed',
156
+ error: event.error
157
+ });
158
+ }
159
+ }
160
+ handleJobEvent(event) {
161
+ let project = this.projects.find((p) => p.id === event.projectId);
162
+ if (!project) {
163
+ return;
164
+ }
165
+ let job = project.job(event.jobId);
166
+ if (!job) {
167
+ job = project._addJob({
168
+ id: event.jobId,
169
+ status: 'pending',
170
+ step: 0,
171
+ stepCount: project.params.steps
172
+ });
173
+ }
174
+ switch (event.type) {
175
+ case 'initiating':
176
+ job._update({ status: 'initiating' });
177
+ break;
178
+ case 'started':
179
+ job._update({ status: 'processing' });
180
+ break;
181
+ case 'progress':
182
+ job._update({
183
+ status: 'processing',
184
+ step: event.step,
185
+ stepCount: event.stepCount
186
+ });
187
+ if (project.status !== 'processing') {
188
+ project._update({ status: 'processing' });
189
+ }
190
+ break;
191
+ case 'preview':
192
+ job._update({ previewUrl: event.url });
193
+ break;
194
+ case 'completed':
195
+ job._update({ status: 'completed', step: event.steps, resultUrl: event.resultUrl });
196
+ break;
197
+ case 'error':
198
+ job._update({ status: 'failed', error: event.error });
199
+ break;
200
+ }
201
+ }
202
+ handleServerDisconnected() {
203
+ this._availableModels = [];
204
+ this.emit('availableModels', this._availableModels);
205
+ }
206
+ /**
207
+ * Send new project request to the network. Returns project instance which can be used to track
208
+ * progress and get resulting images.
209
+ * @param data
210
+ */
211
+ create(data) {
212
+ return __awaiter(this, void 0, void 0, function* () {
213
+ const project = new Project_1.default(Object.assign({}, data));
214
+ const request = (0, createJobRequestMessage_1.default)(project.id, data);
215
+ yield this.client.socket.send('jobRequest', request);
216
+ this.projects.push(project);
217
+ return project;
218
+ });
219
+ }
220
+ /**
221
+ * Estimate project cost
222
+ * @param network - either 'fast' or 'relaxed' network
223
+ * @param model - model id
224
+ * @param imageCount - number of images to generate
225
+ * @param stepCount - number of steps
226
+ * @param previewCount - number of preview images to request
227
+ * @param cnEnabled - control network enabled
228
+ * @param denoiseStrength - denoise strength
229
+ */
230
+ estimateCost(_a) {
231
+ return __awaiter(this, arguments, void 0, function* ({ network, model, imageCount, stepCount, previewCount, cnEnabled, denoiseStrength }) {
232
+ const r = yield this.client.socket.get(`/api/v1/job/estimate/${network}/${model}/${imageCount}/${stepCount}/${previewCount}/${cnEnabled ? 1 : 0}/${denoiseStrength || 0}`);
233
+ return {
234
+ token: r.quote.project.costInToken,
235
+ usd: r.quote.project.costInUSD
236
+ };
237
+ });
238
+ }
239
+ uploadUrl(params) {
240
+ return __awaiter(this, void 0, void 0, function* () {
241
+ const r = yield this.client.rest.get(`/v1/image/uploadUrl`, params);
242
+ return r.data.uploadUrl;
243
+ });
244
+ }
245
+ downloadUrl(params) {
246
+ return __awaiter(this, void 0, void 0, function* () {
247
+ const r = yield this.client.rest.get(`/v1/image/downloadUrl`, params);
248
+ return r.data.downloadUrl;
249
+ });
250
+ }
251
+ }
252
+ exports.default = ProjectsApi;
253
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Projects/index.ts"],"names":[],"mappings":"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"}