@sogni-ai/sogni-client 0.0.1

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