@sogni-ai/sogni-client 0.3.3 → 0.4.0-aplha.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 (54) hide show
  1. package/README.md +3 -2
  2. package/dist/Account/CurrentAccount.d.ts +12 -2
  3. package/dist/Account/CurrentAccount.js.map +1 -1
  4. package/dist/Account/index.d.ts +130 -7
  5. package/dist/Account/index.js +135 -7
  6. package/dist/Account/index.js.map +1 -1
  7. package/dist/ApiClient/WebSocketClient/events.d.ts +7 -1
  8. package/dist/ApiClient/WebSocketClient/index.d.ts +1 -1
  9. package/dist/ApiClient/WebSocketClient/index.js +14 -5
  10. package/dist/ApiClient/WebSocketClient/index.js.map +1 -1
  11. package/dist/ApiClient/WebSocketClient/messages.d.ts +2 -0
  12. package/dist/Projects/Job.d.ts +25 -1
  13. package/dist/Projects/Job.js +78 -1
  14. package/dist/Projects/Job.js.map +1 -1
  15. package/dist/Projects/Project.d.ts +21 -3
  16. package/dist/Projects/Project.js +110 -2
  17. package/dist/Projects/Project.js.map +1 -1
  18. package/dist/Projects/createJobRequestMessage.d.ts +1 -61
  19. package/dist/Projects/createJobRequestMessage.js +5 -1
  20. package/dist/Projects/createJobRequestMessage.js.map +1 -1
  21. package/dist/Projects/index.d.ts +22 -3
  22. package/dist/Projects/index.js +82 -14
  23. package/dist/Projects/index.js.map +1 -1
  24. package/dist/Projects/types/RawProject.d.ts +87 -0
  25. package/dist/Projects/types/RawProject.js +3 -0
  26. package/dist/Projects/types/RawProject.js.map +1 -0
  27. package/dist/Projects/types/events.d.ts +2 -0
  28. package/dist/Projects/types/index.d.ts +4 -0
  29. package/dist/lib/DataEntity.d.ts +1 -0
  30. package/dist/lib/DataEntity.js +2 -0
  31. package/dist/lib/DataEntity.js.map +1 -1
  32. package/dist/lib/base64.js +8 -6
  33. package/dist/lib/base64.js.map +1 -1
  34. package/dist/types/ErrorData.d.ts +1 -0
  35. package/dist/version.d.ts +1 -1
  36. package/dist/version.js +1 -1
  37. package/dist/version.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/Account/CurrentAccount.ts +11 -1
  40. package/src/Account/index.ts +137 -9
  41. package/src/ApiClient/WebSocketClient/events.ts +5 -1
  42. package/src/ApiClient/WebSocketClient/index.ts +15 -6
  43. package/src/ApiClient/WebSocketClient/messages.ts +2 -0
  44. package/src/Projects/Job.ts +90 -1
  45. package/src/Projects/Project.ts +134 -5
  46. package/src/Projects/createJobRequestMessage.ts +5 -1
  47. package/src/Projects/index.ts +87 -16
  48. package/src/Projects/types/RawProject.ts +121 -0
  49. package/src/Projects/types/events.ts +2 -0
  50. package/src/Projects/types/index.ts +4 -0
  51. package/src/lib/DataEntity.ts +3 -0
  52. package/src/lib/base64.ts +8 -4
  53. package/src/types/ErrorData.ts +1 -0
  54. package/src/version.ts +1 -1
@@ -1,14 +1,19 @@
1
1
  import DataEntity, { EntityEvents } from '../lib/DataEntity';
2
2
  import ErrorData from '../types/ErrorData';
3
+ import { RawJob, RawProject } from './types/RawProject';
4
+ import ProjectsApi from './index';
5
+ import { Logger } from '../lib/DefaultLogger';
3
6
  export type JobStatus = 'pending' | 'initiating' | 'processing' | 'completed' | 'failed' | 'canceled';
4
7
  /**
5
8
  * @inline
6
9
  */
7
10
  export interface JobData {
8
11
  id: string;
12
+ projectId: string;
9
13
  status: JobStatus;
10
14
  step: number;
11
15
  stepCount: number;
16
+ workerName?: string;
12
17
  seed?: number;
13
18
  isNSFW?: boolean;
14
19
  userCanceled?: boolean;
@@ -21,13 +26,22 @@ export interface JobEventMap extends EntityEvents {
21
26
  completed: string;
22
27
  failed: ErrorData;
23
28
  }
29
+ export interface JobOptions {
30
+ api: ProjectsApi;
31
+ logger: Logger;
32
+ }
24
33
  declare class Job extends DataEntity<JobData, JobEventMap> {
25
- constructor(data: JobData);
34
+ static fromRaw(rawProject: RawProject, rawJob: RawJob, options: JobOptions): Job;
35
+ private readonly _api;
36
+ private readonly _logger;
37
+ constructor(data: JobData, options: JobOptions);
26
38
  get id(): string;
39
+ get projectId(): string;
27
40
  /**
28
41
  * Current status of the job.
29
42
  */
30
43
  get status(): JobStatus;
44
+ get finished(): boolean;
31
45
  /**
32
46
  * Progress of the job in percentage (0-100).
33
47
  */
@@ -61,6 +75,16 @@ declare class Job extends DataEntity<JobData, JobEventMap> {
61
75
  * If NSFW filter is enabled and the image is NSFW, image will not be available for download.
62
76
  */
63
77
  get isNSFW(): boolean;
78
+ /**
79
+ * Name of the worker that is processing this job.
80
+ */
81
+ get workerName(): string | undefined;
82
+ /**
83
+ * Syncs the job data with the data received from the REST API.
84
+ * @internal
85
+ * @param data
86
+ */
87
+ _syncWithRestData(data: RawJob): Promise<void>;
64
88
  private handleUpdated;
65
89
  }
66
90
  export default Job;
@@ -1,23 +1,63 @@
1
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
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
5
14
  Object.defineProperty(exports, "__esModule", { value: true });
6
15
  const DataEntity_1 = __importDefault(require("../lib/DataEntity"));
16
+ const getUUID_1 = __importDefault(require("../lib/getUUID"));
17
+ const JOB_STATUS_MAP = {
18
+ created: 'pending',
19
+ queued: 'pending',
20
+ assigned: 'initiating',
21
+ initiatingModel: 'initiating',
22
+ jobStarted: 'processing',
23
+ jobProgress: 'processing',
24
+ jobCompleted: 'completed',
25
+ jobError: 'failed'
26
+ };
7
27
  class Job extends DataEntity_1.default {
8
- constructor(data) {
28
+ static fromRaw(rawProject, rawJob, options) {
29
+ return new Job({
30
+ id: rawJob.imgID || (0, getUUID_1.default)(),
31
+ projectId: rawProject.id,
32
+ status: JOB_STATUS_MAP[rawJob.status],
33
+ step: rawJob.performedSteps,
34
+ stepCount: rawProject.stepCount,
35
+ workerName: rawJob.worker.name,
36
+ seed: rawJob.seedUsed,
37
+ isNSFW: rawJob.triggeredNSFWFilter
38
+ }, options);
39
+ }
40
+ constructor(data, options) {
9
41
  super(data);
42
+ this._api = options.api;
43
+ this._logger = options.logger;
10
44
  this.on('updated', this.handleUpdated.bind(this));
11
45
  }
12
46
  get id() {
13
47
  return this.data.id;
14
48
  }
49
+ get projectId() {
50
+ return this.data.projectId;
51
+ }
15
52
  /**
16
53
  * Current status of the job.
17
54
  */
18
55
  get status() {
19
56
  return this.data.status;
20
57
  }
58
+ get finished() {
59
+ return ['completed', 'failed', 'canceled'].includes(this.status);
60
+ }
21
61
  /**
22
62
  * Progress of the job in percentage (0-100).
23
63
  */
@@ -69,6 +109,43 @@ class Job extends DataEntity_1.default {
69
109
  get isNSFW() {
70
110
  return !!this.data.isNSFW;
71
111
  }
112
+ /**
113
+ * Name of the worker that is processing this job.
114
+ */
115
+ get workerName() {
116
+ return this.data.workerName;
117
+ }
118
+ /**
119
+ * Syncs the job data with the data received from the REST API.
120
+ * @internal
121
+ * @param data
122
+ */
123
+ _syncWithRestData(data) {
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ const delta = {
126
+ step: data.performedSteps,
127
+ workerName: data.worker.name,
128
+ seed: data.seedUsed,
129
+ isNSFW: data.triggeredNSFWFilter
130
+ };
131
+ if (JOB_STATUS_MAP[data.status]) {
132
+ delta.status = JOB_STATUS_MAP[data.status];
133
+ }
134
+ if (!this.data.resultUrl && delta.status === 'completed' && !data.triggeredNSFWFilter) {
135
+ try {
136
+ delta.resultUrl = yield this._api.downloadUrl({
137
+ jobId: this.projectId,
138
+ imageId: this.id,
139
+ type: 'complete'
140
+ });
141
+ }
142
+ catch (error) {
143
+ this._logger.error(error);
144
+ }
145
+ }
146
+ this._update(delta);
147
+ });
148
+ }
72
149
  handleUpdated(keys) {
73
150
  if (keys.includes('step') || keys.includes('stepCount')) {
74
151
  this.emit('progress', this.progress);
@@ -1 +1 @@
1
- {"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":";;;;;AAAA,mEAA6D;AAiC7D,MAAM,GAAI,SAAQ,oBAAgC;IAChD,YAAY,IAAa;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACrD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEO,aAAa,CAAC,IAAc;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAU,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF;AAED,kBAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@ import Job, { JobData } from './Job';
2
2
  import DataEntity, { EntityEvents } from '../lib/DataEntity';
3
3
  import { ProjectParams } from './types';
4
4
  import ErrorData from '../types/ErrorData';
5
- export type ProjectStatus = 'pending' | 'queued' | 'processing' | 'completed' | 'failed';
5
+ import ProjectsApi from './index';
6
+ import { Logger } from '../lib/DefaultLogger';
7
+ export type ProjectStatus = 'pending' | 'queued' | 'processing' | 'completed' | 'failed' | 'canceled';
6
8
  /**
7
9
  * @inline
8
10
  */
@@ -25,13 +27,22 @@ export interface ProjectEventMap extends EntityEvents {
25
27
  jobCompleted: Job;
26
28
  jobFailed: Job;
27
29
  }
30
+ export interface ProjectOptions {
31
+ api: ProjectsApi;
32
+ logger: Logger;
33
+ }
28
34
  declare class Project extends DataEntity<ProjectData, ProjectEventMap> {
29
35
  private _jobs;
30
36
  private _lastEmitedProgress;
31
- constructor(data: ProjectParams);
37
+ private readonly _api;
38
+ private readonly _logger;
39
+ private _timeout;
40
+ private _failedSyncAttempts;
41
+ constructor(data: ProjectParams, options: ProjectOptions);
32
42
  get id(): string;
33
43
  get params(): ProjectParams;
34
44
  get status(): ProjectStatus;
45
+ get finished(): boolean;
35
46
  get error(): ErrorData | undefined;
36
47
  /**
37
48
  * Progress of the project in percentage (0-100).
@@ -71,7 +82,14 @@ declare class Project extends DataEntity<ProjectData, ProjectEventMap> {
71
82
  * @internal
72
83
  * @param data
73
84
  */
74
- _addJob(data: JobData): Job;
85
+ _addJob(data: JobData | Job): Job;
86
+ private _handleJobFinished;
87
+ private _checkForTimeout;
88
+ /**
89
+ * Sync project data with the data received from the REST API.
90
+ * @internal
91
+ */
92
+ _syncToServer(): Promise<void>;
75
93
  /**
76
94
  * Get full project data snapshot. Can be used to serialize the project and store it in a database.
77
95
  */
@@ -1,4 +1,13 @@
1
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
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
@@ -7,8 +16,20 @@ const Job_1 = __importDefault(require("./Job"));
7
16
  const DataEntity_1 = __importDefault(require("../lib/DataEntity"));
8
17
  const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
9
18
  const getUUID_1 = __importDefault(require("../lib/getUUID"));
19
+ // If project is not finished and had no updates for 1 minute, force refresh
20
+ const PROJECT_TIMEOUT = 60 * 1000;
21
+ const MAX_FAILED_SYNC_ATTEMPTS = 3;
22
+ const PROJECT_STATUS_MAP = {
23
+ pending: 'pending',
24
+ active: 'queued',
25
+ assigned: 'processing',
26
+ progress: 'processing',
27
+ completed: 'completed',
28
+ errored: 'failed',
29
+ cancelled: 'canceled'
30
+ };
10
31
  class Project extends DataEntity_1.default {
11
- constructor(data) {
32
+ constructor(data, options) {
12
33
  super({
13
34
  id: (0, getUUID_1.default)(),
14
35
  startedAt: new Date(),
@@ -18,6 +39,11 @@ class Project extends DataEntity_1.default {
18
39
  });
19
40
  this._jobs = [];
20
41
  this._lastEmitedProgress = -1;
42
+ this._timeout = null;
43
+ this._failedSyncAttempts = 0;
44
+ this._api = options.api;
45
+ this._logger = options.logger;
46
+ this._timeout = setInterval(this._checkForTimeout.bind(this), PROJECT_TIMEOUT);
21
47
  this.on('updated', this.handleUpdated.bind(this));
22
48
  }
23
49
  get id() {
@@ -29,6 +55,9 @@ class Project extends DataEntity_1.default {
29
55
  get status() {
30
56
  return this.data.status;
31
57
  }
58
+ get finished() {
59
+ return ['completed', 'failed', 'canceled'].includes(this.status);
60
+ }
32
61
  get error() {
33
62
  return this.data.error;
34
63
  }
@@ -99,6 +128,11 @@ class Project extends DataEntity_1.default {
99
128
  this.emit('progress', progress);
100
129
  this._lastEmitedProgress = progress;
101
130
  }
131
+ // If project is finished stop watching for timeout
132
+ if (this._timeout && this.finished) {
133
+ clearInterval(this._timeout);
134
+ this._timeout = null;
135
+ }
102
136
  if (keys.includes('status') || keys.includes('jobs')) {
103
137
  const allJobsDone = this.jobs.every((job) => ['completed', 'failed', 'canceled'].includes(job.status));
104
138
  if (this.data.status === 'completed' && allJobsDone) {
@@ -115,19 +149,93 @@ class Project extends DataEntity_1.default {
115
149
  * @param data
116
150
  */
117
151
  _addJob(data) {
118
- const job = new Job_1.default(data);
152
+ const job = data instanceof Job_1.default ? data : new Job_1.default(data, { api: this._api, logger: this._logger });
119
153
  this._jobs.push(job);
120
154
  job.on('updated', () => {
155
+ this.lastUpdated = new Date();
121
156
  this.emit('updated', ['jobs']);
122
157
  });
123
158
  job.on('completed', () => {
124
159
  this.emit('jobCompleted', job);
160
+ this._handleJobFinished(job);
125
161
  });
126
162
  job.on('failed', () => {
127
163
  this.emit('jobFailed', job);
164
+ this._handleJobFinished(job);
128
165
  });
129
166
  return job;
130
167
  }
168
+ _handleJobFinished(job) {
169
+ const finalStatus = ['completed', 'failed', 'canceled'];
170
+ const allJobsDone = this.jobs.every((job) => finalStatus.includes(job.status));
171
+ // If all jobs are done and project is not already failed or completed, update the project status
172
+ if (allJobsDone && this.status !== 'failed' && this.status !== 'completed') {
173
+ const allJobsFailed = this.jobs.every((job) => job.status === 'failed');
174
+ if (allJobsFailed) {
175
+ this._update({ status: 'failed' });
176
+ }
177
+ else {
178
+ this._update({ status: 'completed' });
179
+ }
180
+ }
181
+ }
182
+ _checkForTimeout() {
183
+ if (this.lastUpdated.getTime() + PROJECT_TIMEOUT < Date.now()) {
184
+ this._syncToServer().catch((error) => {
185
+ this._logger.error(error);
186
+ this._failedSyncAttempts++;
187
+ if (this._failedSyncAttempts > MAX_FAILED_SYNC_ATTEMPTS) {
188
+ this._logger.error(`Failed to sync project data after ${MAX_FAILED_SYNC_ATTEMPTS} attempts. Stopping further attempts.`);
189
+ clearInterval(this._timeout);
190
+ this._timeout = null;
191
+ }
192
+ });
193
+ }
194
+ }
195
+ /**
196
+ * Sync project data with the data received from the REST API.
197
+ * @internal
198
+ */
199
+ _syncToServer() {
200
+ return __awaiter(this, void 0, void 0, function* () {
201
+ const data = yield this._api.get(this.id);
202
+ const jobData = data.completedWorkerJobs.reduce((acc, job) => {
203
+ const jobId = job.imgID || (0, getUUID_1.default)();
204
+ acc[jobId] = job;
205
+ return acc;
206
+ }, {});
207
+ for (const job of this._jobs) {
208
+ const restJob = jobData[job.id];
209
+ // This should never happen, but just in case we log a warning
210
+ if (!restJob) {
211
+ this._logger.warn(`Job with id ${job.id} not found in the REST project data`);
212
+ return;
213
+ }
214
+ try {
215
+ yield job._syncWithRestData(restJob);
216
+ }
217
+ catch (error) {
218
+ this._logger.error(error);
219
+ this._logger.error(`Failed to sync job ${job.id}`);
220
+ }
221
+ delete jobData[job.id];
222
+ }
223
+ // If there are any jobs left in jobData, it means they are new jobs that are not in the project yet
224
+ if (Object.keys(jobData).length) {
225
+ for (const job of Object.values(jobData)) {
226
+ const jobInstance = Job_1.default.fromRaw(data, job, { api: this._api, logger: this._logger });
227
+ this._addJob(jobInstance);
228
+ }
229
+ }
230
+ const delta = {
231
+ params: Object.assign(Object.assign({}, this.data.params), { numberOfImages: data.imageCount, steps: data.stepCount, numberOfPreviews: data.previewCount })
232
+ };
233
+ if (PROJECT_STATUS_MAP[data.status]) {
234
+ delta.status = PROJECT_STATUS_MAP[data.status];
235
+ }
236
+ this._update(delta);
237
+ });
238
+ }
131
239
  /**
132
240
  * Get full project data snapshot. Can be used to serialize the project and store it in a database.
133
241
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Project.js","sourceRoot":"","sources":["../../src/Projects/Project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Project.js","sourceRoot":"","sources":["../../src/Projects/Project.ts"],"names":[],"mappings":"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"}
@@ -1,64 +1,4 @@
1
1
  import { ProjectParams } from './types';
2
- declare function createJobRequestMessage(id: string, params: ProjectParams): {
3
- keyFrames: {
4
- scheduler: import("./types").Scheduler | undefined;
5
- steps: number;
6
- guidanceScale: number;
7
- modelID: string;
8
- negativePrompt: string;
9
- seed: number | undefined;
10
- positivePrompt: string;
11
- stylePrompt: string;
12
- hasStartingImage: boolean;
13
- strengthIsEnabled: boolean;
14
- strength: number | undefined;
15
- stepsIsEnabled: boolean;
16
- siRotation: number;
17
- siDragOffsetIsEnabled: boolean;
18
- siZoomScaleIsEnabled: boolean;
19
- isEnabled: boolean;
20
- processing: string;
21
- useLastImageAsGuideImageInAnimation: boolean;
22
- guidanceScaleIsEnabled: boolean;
23
- siImageBackgroundColor: string;
24
- cnDragOffset: number[];
25
- timeStepSpacing: string;
26
- cnRotation: number;
27
- siZoomScale: number;
28
- cnRotationIsEnabled: boolean;
29
- startingImageZoomPanIsOn: boolean;
30
- siRotationIsEnabled: boolean;
31
- cnImageBackgroundColor: string;
32
- siDragOffset: number[];
33
- useLastImageAsCNImageInAnimation: boolean;
34
- controlNetZoomPanIsOn: boolean;
35
- cnZoomScaleIsEnabled: boolean;
36
- currentControlNets: null;
37
- cnDragOffsetIsEnabled: boolean;
38
- frameIndex: number;
39
- startingImage: null;
40
- cnZoomScale: number;
41
- }[];
42
- previews: number;
43
- numberOfImages: number;
44
- jobID: string;
45
- disableSafety: boolean;
46
- selectedUpscalingModel: string;
47
- cnVideoFramesSketch: never[];
48
- cnVideoFramesSegmentedSubject: never[];
49
- cnVideoFramesFace: never[];
50
- doCanvasBlending: boolean;
51
- animationIsOn: boolean;
52
- cnVideoFramesBoth: never[];
53
- cnVideoFramesDepth: never[];
54
- frameRate: number;
55
- generatedVideoSeconds: number;
56
- canvasIsOn: boolean;
57
- cnVideoFrames: never[];
58
- cnVideoFramesSegmentedBackground: never[];
59
- cnVideoFramesSegmented: never[];
60
- cnVideoFramesPose: never[];
61
- siVideoFrames: never[];
62
- };
2
+ declare function createJobRequestMessage(id: string, params: ProjectParams): Record<string, any>;
63
3
  export type JobRequestRaw = ReturnType<typeof createJobRequestMessage>;
64
4
  export default createJobRequestMessage;
@@ -67,11 +67,15 @@ function getTemplate() {
67
67
  }
68
68
  function createJobRequestMessage(id, params) {
69
69
  const template = getTemplate();
70
- return Object.assign(Object.assign({}, template), { keyFrames: [
70
+ const jobRequest = Object.assign(Object.assign({}, template), { keyFrames: [
71
71
  Object.assign(Object.assign({}, template.keyFrames[0]), { scheduler: params.scheduler, steps: params.steps, guidanceScale: params.guidance, modelID: params.modelId, negativePrompt: params.negativePrompt, seed: params.seed, positivePrompt: params.positivePrompt, stylePrompt: params.stylePrompt, hasStartingImage: !!params.startingImage, strengthIsEnabled: !!params.startingImage, strength: !!params.startingImage
72
72
  ? 1 - (Number(params.startingImageStrength) || 0.5)
73
73
  : undefined })
74
74
  ], previews: params.numberOfPreviews || 0, numberOfImages: params.numberOfImages, jobID: id, disableSafety: !!params.disableNSFWFilter });
75
+ if (params.network) {
76
+ jobRequest.network = params.network;
77
+ }
78
+ return jobRequest;
75
79
  }
76
80
  exports.default = createJobRequestMessage;
77
81
  //# sourceMappingURL=createJobRequestMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createJobRequestMessage.js","sourceRoot":"","sources":["../../src/Projects/createJobRequestMessage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createJobRequestMessage.js","sourceRoot":"","sources":["../../src/Projects/createJobRequestMessage.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,21 @@
1
1
  import ApiGroup, { ApiConfig } from '../ApiGroup';
2
2
  import { AvailableModel, EstimateRequest, ImageUrlParams, ProjectParams } from './types';
3
3
  import Project from './Project';
4
- import { JobEvent, ProjectApiEvents, ProjectEvent } from './types/events';
4
+ import { ProjectApiEvents } from './types/events';
5
+ import { RawProject } from './types/RawProject';
5
6
  declare class ProjectsApi extends ApiGroup<ProjectApiEvents> {
6
7
  private _availableModels;
7
8
  private projects;
8
9
  get availableModels(): AvailableModel[];
9
10
  constructor(config: ApiConfig);
11
+ private handleChangeNetwork;
10
12
  private handleSwarmModels;
11
13
  private handleJobState;
12
14
  private handleJobProgress;
13
15
  private handleJobResult;
14
16
  private handleJobError;
15
- handleProjectEvent(event: ProjectEvent): void;
16
- handleJobEvent(event: JobEvent): void;
17
+ private handleProjectEvent;
18
+ private handleJobEvent;
17
19
  private handleServerDisconnected;
18
20
  /**
19
21
  * Wait for available models to be received from the network. Useful for scripts that need to
@@ -27,6 +29,13 @@ declare class ProjectsApi extends ApiGroup<ProjectApiEvents> {
27
29
  * @param data
28
30
  */
29
31
  create(data: ProjectParams): Promise<Project>;
32
+ /**
33
+ * Get project by id, this API returns project data from the server only if the project is
34
+ * completed or failed. If the project is still processing, it will throw 404 error.
35
+ * @internal
36
+ * @param projectId
37
+ */
38
+ get(projectId: string): Promise<RawProject>;
30
39
  private uploadGuideImage;
31
40
  /**
32
41
  * Estimate project cost
@@ -35,7 +44,17 @@ declare class ProjectsApi extends ApiGroup<ProjectApiEvents> {
35
44
  token: string;
36
45
  usd: string;
37
46
  }>;
47
+ /**
48
+ * Get upload URL for image
49
+ * @internal
50
+ * @param params
51
+ */
38
52
  uploadUrl(params: ImageUrlParams): Promise<string>;
53
+ /**
54
+ * Get download URL for image
55
+ * @internal
56
+ * @param params
57
+ */
39
58
  downloadUrl(params: ImageUrlParams): Promise<string>;
40
59
  }
41
60
  export default ProjectsApi;