@sogni-ai/sogni-client 0.4.0-aplha.1 → 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.
- package/dist/Account/CurrentAccount.d.ts +12 -2
- package/dist/Account/CurrentAccount.js.map +1 -1
- package/dist/Account/index.d.ts +6 -7
- package/dist/Account/index.js +12 -8
- package/dist/Account/index.js.map +1 -1
- package/dist/ApiClient/WebSocketClient/events.d.ts +7 -1
- package/dist/ApiClient/WebSocketClient/index.d.ts +1 -1
- package/dist/ApiClient/WebSocketClient/index.js +14 -5
- package/dist/ApiClient/WebSocketClient/index.js.map +1 -1
- package/dist/ApiClient/WebSocketClient/messages.d.ts +2 -0
- package/dist/Projects/Job.d.ts +20 -1
- package/dist/Projects/Job.js +72 -1
- package/dist/Projects/Job.js.map +1 -1
- package/dist/Projects/Project.d.ts +21 -3
- package/dist/Projects/Project.js +110 -2
- package/dist/Projects/Project.js.map +1 -1
- package/dist/Projects/createJobRequestMessage.d.ts +1 -61
- package/dist/Projects/createJobRequestMessage.js +5 -1
- package/dist/Projects/createJobRequestMessage.js.map +1 -1
- package/dist/Projects/index.d.ts +22 -3
- package/dist/Projects/index.js +70 -12
- package/dist/Projects/index.js.map +1 -1
- package/dist/Projects/types/RawProject.d.ts +87 -0
- package/dist/Projects/types/RawProject.js +3 -0
- package/dist/Projects/types/RawProject.js.map +1 -0
- package/dist/Projects/types/index.d.ts +4 -0
- package/dist/lib/DataEntity.d.ts +1 -0
- package/dist/lib/DataEntity.js +2 -0
- package/dist/lib/DataEntity.js.map +1 -1
- package/dist/lib/base64.js +8 -6
- package/dist/lib/base64.js.map +1 -1
- package/dist/types/ErrorData.d.ts +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/src/Account/CurrentAccount.ts +11 -1
- package/src/Account/index.ts +13 -9
- package/src/ApiClient/WebSocketClient/events.ts +5 -1
- package/src/ApiClient/WebSocketClient/index.ts +15 -6
- package/src/ApiClient/WebSocketClient/messages.ts +2 -0
- package/src/Projects/Job.ts +82 -1
- package/src/Projects/Project.ts +134 -5
- package/src/Projects/createJobRequestMessage.ts +5 -1
- package/src/Projects/index.ts +75 -14
- package/src/Projects/types/RawProject.ts +121 -0
- package/src/Projects/types/index.ts +4 -0
- package/src/lib/DataEntity.ts +3 -0
- package/src/lib/base64.ts +8 -4
- package/src/types/ErrorData.ts +1 -0
- package/src/version.ts +1 -1
|
@@ -6,7 +6,17 @@ import { SupernetType } from '../ApiClient/WebSocketClient/types';
|
|
|
6
6
|
*/
|
|
7
7
|
export interface AccountData {
|
|
8
8
|
token: string | null;
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Current network status:\
|
|
11
|
+
* - `connected` - connected to the socket
|
|
12
|
+
* - `disconnected` - disconnected from the socket
|
|
13
|
+
* - `connecting` - connecting to the socket
|
|
14
|
+
* - `switching` - switching network type (fast/relaxed)
|
|
15
|
+
* @enum
|
|
16
|
+
* @values 'connected', 'disconnected', 'connecting', 'switching'
|
|
17
|
+
* @default 'disconnected'
|
|
18
|
+
*/
|
|
19
|
+
networkStatus: 'connected' | 'disconnected' | 'connecting' | 'switching';
|
|
10
20
|
network: SupernetType | null;
|
|
11
21
|
balance: BalanceData;
|
|
12
22
|
walletAddress?: string;
|
|
@@ -22,7 +32,7 @@ declare class CurrentAccount extends DataEntity<AccountData> {
|
|
|
22
32
|
_update<K extends keyof AccountData>(delta: Partial<AccountData>): void;
|
|
23
33
|
_clear(): void;
|
|
24
34
|
get isAuthenicated(): boolean;
|
|
25
|
-
get networkStatus(): "connected" | "disconnected" | "connecting";
|
|
35
|
+
get networkStatus(): "connected" | "disconnected" | "connecting" | "switching";
|
|
26
36
|
get network(): SupernetType | null;
|
|
27
37
|
get balance(): BalanceData;
|
|
28
38
|
get walletAddress(): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrentAccount.js","sourceRoot":"","sources":["../../src/Account/CurrentAccount.ts"],"names":[],"mappings":";;;;;AAAA,mEAA2C;AAE3C,2CAAuC;
|
|
1
|
+
{"version":3,"file":"CurrentAccount.js","sourceRoot":"","sources":["../../src/Account/CurrentAccount.ts"],"names":[],"mappings":";;;;;AAAA,mEAA2C;AAE3C,2CAAuC;AAyBvC,SAAS,WAAW;IAClB,OAAO;QACL,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,cAAc;QAC7B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,GAAG;SACb;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,IAAI,GAAG,IAAA,sBAAS,EAA0D,KAAK,CAAC,CAAC;IACvF,OAAO;QACL,aAAa,EAAE,IAAI,CAAC,IAAI;QACxB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,cAAe,SAAQ,oBAAuB;IAClD,YAAY,IAAkB;QAC5B,KAAK,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAA8B,KAA2B;QAC9D,IAAI,CAAC,IAAI,mCAAQ,IAAI,CAAC,IAAI,GAAM,KAA8B,CAAE,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACxF,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;CACF;AAED,kBAAe,cAAc,CAAC"}
|
package/dist/Account/index.d.ts
CHANGED
|
@@ -138,19 +138,18 @@ declare class AccountApi extends ApiGroup {
|
|
|
138
138
|
validateUsername(username: string): Promise<import("../ApiClient").ApiErrorResponse | ApiReponse<undefined>>;
|
|
139
139
|
/**
|
|
140
140
|
* Switch between fast and relaxed networks.
|
|
141
|
-
*
|
|
142
|
-
*
|
|
141
|
+
* This will change default network used to process projects. After switching, you will updated
|
|
142
|
+
* list of AI models available for on selected network.
|
|
143
143
|
*
|
|
144
144
|
* @example Switch to the fast network
|
|
145
145
|
* ```typescript
|
|
146
|
-
* client.apiClient.once('connected', ({ network }) => {
|
|
147
|
-
* console.log('Switched to the network:', network);
|
|
148
|
-
* });
|
|
149
146
|
* await client.account.switchNetwork('fast');
|
|
147
|
+
* console.log('Switched to the fast network, now lets wait until we get list of models');
|
|
148
|
+
* await client.projects.waitForModels();
|
|
150
149
|
* ```
|
|
151
|
-
* @param network
|
|
150
|
+
* @param network - Network type to switch to
|
|
152
151
|
*/
|
|
153
|
-
switchNetwork(network: SupernetType): Promise<
|
|
152
|
+
switchNetwork(network: SupernetType): Promise<SupernetType>;
|
|
154
153
|
/**
|
|
155
154
|
* Get the transaction history of the current account.
|
|
156
155
|
*
|
package/dist/Account/index.js
CHANGED
|
@@ -249,25 +249,29 @@ class AccountApi extends ApiGroup_1.default {
|
|
|
249
249
|
}
|
|
250
250
|
/**
|
|
251
251
|
* Switch between fast and relaxed networks.
|
|
252
|
-
*
|
|
253
|
-
*
|
|
252
|
+
* This will change default network used to process projects. After switching, you will updated
|
|
253
|
+
* list of AI models available for on selected network.
|
|
254
254
|
*
|
|
255
255
|
* @example Switch to the fast network
|
|
256
256
|
* ```typescript
|
|
257
|
-
* client.apiClient.once('connected', ({ network }) => {
|
|
258
|
-
* console.log('Switched to the network:', network);
|
|
259
|
-
* });
|
|
260
257
|
* await client.account.switchNetwork('fast');
|
|
258
|
+
* console.log('Switched to the fast network, now lets wait until we get list of models');
|
|
259
|
+
* await client.projects.waitForModels();
|
|
261
260
|
* ```
|
|
262
|
-
* @param network
|
|
261
|
+
* @param network - Network type to switch to
|
|
263
262
|
*/
|
|
264
263
|
switchNetwork(network) {
|
|
265
264
|
return __awaiter(this, void 0, void 0, function* () {
|
|
266
265
|
this.currentAccount._update({
|
|
267
|
-
networkStatus: '
|
|
266
|
+
networkStatus: 'switching',
|
|
268
267
|
network: null
|
|
269
268
|
});
|
|
270
|
-
this.client.socket.switchNetwork(network);
|
|
269
|
+
const newNetwork = yield this.client.socket.switchNetwork(network);
|
|
270
|
+
this.currentAccount._update({
|
|
271
|
+
networkStatus: 'connected',
|
|
272
|
+
network: newNetwork
|
|
273
|
+
});
|
|
274
|
+
return newNetwork;
|
|
271
275
|
});
|
|
272
276
|
}
|
|
273
277
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Account/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Account/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export type JobErrorData = {
|
|
|
10
10
|
imgID?: string;
|
|
11
11
|
isFromWorker: boolean;
|
|
12
12
|
error_message: string;
|
|
13
|
-
error: number;
|
|
13
|
+
error: number | string;
|
|
14
14
|
};
|
|
15
15
|
export type JobProgressData = {
|
|
16
16
|
jobID: string;
|
|
@@ -52,6 +52,12 @@ export type SocketEventMap = {
|
|
|
52
52
|
* @event WebSocketClient#balanceUpdate - Received balance update
|
|
53
53
|
*/
|
|
54
54
|
balanceUpdate: BalanceData;
|
|
55
|
+
/**
|
|
56
|
+
* @event WebSocketClient#changeNetwork - Default network changed
|
|
57
|
+
*/
|
|
58
|
+
changeNetwork: {
|
|
59
|
+
network: SupernetType;
|
|
60
|
+
};
|
|
55
61
|
/**
|
|
56
62
|
* @event WebSocketClient#jobError - Job error occurred
|
|
57
63
|
*/
|
|
@@ -17,7 +17,7 @@ declare class WebSocketClient extends RestClient<SocketEventMap> {
|
|
|
17
17
|
disconnect(): void;
|
|
18
18
|
private startPing;
|
|
19
19
|
private stopPing;
|
|
20
|
-
switchNetwork(supernetType: SupernetType):
|
|
20
|
+
switchNetwork(supernetType: SupernetType): Promise<SupernetType>;
|
|
21
21
|
/**
|
|
22
22
|
* Ensure the WebSocket connection is open, waiting if necessary and throwing an error if it fails
|
|
23
23
|
* @private
|
|
@@ -21,11 +21,15 @@ const version_1 = require("../../version");
|
|
|
21
21
|
const PING_INTERVAL = 15000;
|
|
22
22
|
class WebSocketClient extends RestClient_1.default {
|
|
23
23
|
constructor(baseUrl, appId, supernetType, logger) {
|
|
24
|
-
|
|
24
|
+
const _baseUrl = new URL(baseUrl);
|
|
25
|
+
if (_baseUrl.protocol === 'wss:') {
|
|
26
|
+
_baseUrl.protocol = 'https:';
|
|
27
|
+
}
|
|
28
|
+
super(_baseUrl.toString(), logger);
|
|
25
29
|
this.socket = null;
|
|
26
30
|
this._pingInterval = null;
|
|
27
31
|
this.appId = appId;
|
|
28
|
-
this.baseUrl =
|
|
32
|
+
this.baseUrl = _baseUrl.toString();
|
|
29
33
|
this._supernetType = supernetType;
|
|
30
34
|
}
|
|
31
35
|
set auth(auth) {
|
|
@@ -58,6 +62,7 @@ class WebSocketClient extends RestClient_1.default {
|
|
|
58
62
|
}
|
|
59
63
|
const userAgent = `Sogni/${version_1.LIB_VERSION} (sogni-client)`;
|
|
60
64
|
const url = new URL(this.baseUrl);
|
|
65
|
+
url.protocol = 'wss:';
|
|
61
66
|
url.searchParams.set('appId', this.appId);
|
|
62
67
|
url.searchParams.set('clientName', userAgent);
|
|
63
68
|
url.searchParams.set('clientType', 'artist');
|
|
@@ -107,9 +112,13 @@ class WebSocketClient extends RestClient_1.default {
|
|
|
107
112
|
}
|
|
108
113
|
}
|
|
109
114
|
switchNetwork(supernetType) {
|
|
110
|
-
this
|
|
111
|
-
|
|
112
|
-
|
|
115
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
this.once('changeNetwork', ({ network }) => {
|
|
117
|
+
this._supernetType = network;
|
|
118
|
+
resolve(network);
|
|
119
|
+
});
|
|
120
|
+
yield this.send('changeNetwork', supernetType);
|
|
121
|
+
}));
|
|
113
122
|
}
|
|
114
123
|
/**
|
|
115
124
|
* Ensure the WebSocket connection is open, waiting if necessary and throwing an error if it fails
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,sEAA4D;AAE5D,kEAAgF;AAChF,6CAA8D;AAC9D,kEAA0C;AAC1C,0DAA+B;AAC/B,2CAA4C;AAG5C,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,MAAM,eAAgB,SAAQ,oBAA0B;IAOtD,YAAY,OAAe,EAAE,KAAa,EAAE,YAA0B,EAAE,MAAc;QACpF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/index.ts"],"names":[],"mappings":"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"}
|
package/dist/Projects/Job.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
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;
|
|
@@ -22,13 +26,22 @@ export interface JobEventMap extends EntityEvents {
|
|
|
22
26
|
completed: string;
|
|
23
27
|
failed: ErrorData;
|
|
24
28
|
}
|
|
29
|
+
export interface JobOptions {
|
|
30
|
+
api: ProjectsApi;
|
|
31
|
+
logger: Logger;
|
|
32
|
+
}
|
|
25
33
|
declare class Job extends DataEntity<JobData, JobEventMap> {
|
|
26
|
-
|
|
34
|
+
static fromRaw(rawProject: RawProject, rawJob: RawJob, options: JobOptions): Job;
|
|
35
|
+
private readonly _api;
|
|
36
|
+
private readonly _logger;
|
|
37
|
+
constructor(data: JobData, options: JobOptions);
|
|
27
38
|
get id(): string;
|
|
39
|
+
get projectId(): string;
|
|
28
40
|
/**
|
|
29
41
|
* Current status of the job.
|
|
30
42
|
*/
|
|
31
43
|
get status(): JobStatus;
|
|
44
|
+
get finished(): boolean;
|
|
32
45
|
/**
|
|
33
46
|
* Progress of the job in percentage (0-100).
|
|
34
47
|
*/
|
|
@@ -66,6 +79,12 @@ declare class Job extends DataEntity<JobData, JobEventMap> {
|
|
|
66
79
|
* Name of the worker that is processing this job.
|
|
67
80
|
*/
|
|
68
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>;
|
|
69
88
|
private handleUpdated;
|
|
70
89
|
}
|
|
71
90
|
export default Job;
|
package/dist/Projects/Job.js
CHANGED
|
@@ -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
|
-
|
|
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
|
*/
|
|
@@ -75,6 +115,37 @@ class Job extends DataEntity_1.default {
|
|
|
75
115
|
get workerName() {
|
|
76
116
|
return this.data.workerName;
|
|
77
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
|
+
}
|
|
78
149
|
handleUpdated(keys) {
|
|
79
150
|
if (keys.includes('step') || keys.includes('stepCount')) {
|
|
80
151
|
this.emit('progress', this.progress);
|
package/dist/Projects/Job.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
*/
|
package/dist/Projects/Project.js
CHANGED
|
@@ -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
|
*/
|