@sogni-ai/sogni-client 5.23.0 → 5.24.0
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/CHANGELOG.md +7 -0
- package/README.md +49 -0
- package/dist/ApiClient/WebSocketClient/events.d.ts +127 -2
- package/dist/ApiClient/events.d.ts +5 -3
- package/dist/ApiClient/index.d.ts +5 -1
- package/dist/ApiClient/index.js +56 -9
- package/dist/ApiClient/index.js.map +1 -1
- package/dist/Projects/Project.d.ts +23 -1
- package/dist/Projects/Project.js +25 -2
- package/dist/Projects/Project.js.map +1 -1
- package/dist/Projects/index.d.ts +92 -1
- package/dist/Projects/index.js +377 -1
- package/dist/Projects/index.js.map +1 -1
- package/dist/Projects/recovery.d.ts +31 -0
- package/dist/Projects/recovery.js +153 -0
- package/dist/Projects/recovery.js.map +1 -0
- package/dist/Projects/types/RawProject.d.ts +1 -1
- package/dist/Projects/types/events.d.ts +50 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist-esm/ApiClient/index.js +56 -9
- package/dist-esm/ApiClient/index.js.map +1 -1
- package/dist-esm/Projects/Project.js +25 -2
- package/dist-esm/Projects/Project.js.map +1 -1
- package/dist-esm/Projects/index.js +377 -1
- package/dist-esm/Projects/index.js.map +1 -1
- package/dist-esm/Projects/recovery.js +144 -0
- package/dist-esm/Projects/recovery.js.map +1 -0
- package/dist-esm/index.js +2 -1
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/version.js +1 -1
- package/package.json +2 -1
- package/src/ApiClient/WebSocketClient/events.ts +149 -2
- package/src/ApiClient/events.ts +5 -3
- package/src/ApiClient/index.ts +59 -9
- package/src/Projects/Project.ts +39 -2
- package/src/Projects/index.ts +431 -2
- package/src/Projects/recovery.ts +148 -0
- package/src/Projects/types/RawProject.ts +2 -0
- package/src/Projects/types/events.ts +57 -1
- package/src/index.ts +33 -2
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [5.24.0](https://github.com/Sogni-AI/sogni-client/compare/v5.23.0...v5.24.0) (2026-08-29)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **projects:** resume in-flight projects across reconnects and refreshes ([58666ef](https://github.com/Sogni-AI/sogni-client/commit/58666ef2336c9edc269358b59acfcfb1e015aaae))
|
|
7
|
+
|
|
1
8
|
# [5.23.0](https://github.com/Sogni-AI/sogni-client/compare/v5.22.0...v5.23.0) (2026-08-28)
|
|
2
9
|
|
|
3
10
|
|
package/README.md
CHANGED
|
@@ -386,6 +386,55 @@ project.on('failed', async (errorData) => {
|
|
|
386
386
|
|
|
387
387
|
External API-backed jobs may not report diffusion steps. For those jobs, SDK progress uses provider progress or ETA-derived progress and remains a finite 0-100 number. GPT Image 2 and Seedance results can arrive as direct hosted URLs; the SDK preserves those URLs on `job.resultUrl` and `job.getResultUrl()` returns the cached URL without requesting a Sogni signed download URL.
|
|
388
388
|
|
|
389
|
+
### Resuming projects after a refresh or reconnect
|
|
390
|
+
|
|
391
|
+
Generation keeps running on the Supernet while your socket is down. The SDK treats a dropped
|
|
392
|
+
connection as a transport gap, not a failure: tracked projects stay alive, the client reconnects
|
|
393
|
+
with capped exponential backoff for as long as the session is authenticated, and on every
|
|
394
|
+
`authenticated` handshake it reconciles with the server. Whatever the client missed is replayed
|
|
395
|
+
through the normal `project` / `job` events, so listeners attached before the gap simply keep
|
|
396
|
+
receiving updates, and `waitForCompletion()` still resolves.
|
|
397
|
+
|
|
398
|
+
Projects the server knows about but this client does not (a page refresh, a second tab sharing the
|
|
399
|
+
socket, cleared local state) are rebuilt as tracked `Project` instances with `project.recovered ===
|
|
400
|
+
true`. Their `params` are reconstructed from the original request; asset inputs are not recoverable.
|
|
401
|
+
|
|
402
|
+
```typescript
|
|
403
|
+
// Every reconciliation — after reconnect, after a shared-socket tab connects, or after a manual
|
|
404
|
+
// sync() — reports what changed. `snapshot` is the raw server view, for apps that keep their own
|
|
405
|
+
// project store.
|
|
406
|
+
sogni.projects.on('projectsSynced', ({ reason, active, completed, lost, recoveredActive, recoveredCompleted }) => {
|
|
407
|
+
console.log(reason, { active, completed, lost });
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
// In-flight projects this client was not tracking; they are tracked now, so `project` / `job`
|
|
411
|
+
// events follow as usual.
|
|
412
|
+
sogni.projects.on('activeProjectsRecovered', (projects) => {
|
|
413
|
+
for (const recovered of projects) {
|
|
414
|
+
const project = sogni.projects.trackedProjects.find((p) => p.id === recovered.id);
|
|
415
|
+
project?.on('completed', (urls) => console.log('Finished after resume:', urls));
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
|
|
419
|
+
// Projects that finished while this client was away, with result URLs already resolved.
|
|
420
|
+
sogni.projects.on('completedProjectsRecovered', (projects) => {
|
|
421
|
+
for (const project of projects) console.log(project.id, project.resultUrls);
|
|
422
|
+
});
|
|
423
|
+
|
|
424
|
+
// Ask for a fresh reconciliation yourself, e.g. when the page returns to the foreground.
|
|
425
|
+
document.addEventListener('visibilitychange', () => {
|
|
426
|
+
if (document.visibilityState === 'visible') void sogni.projects.sync();
|
|
427
|
+
});
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
A project that the server no longer lists is looked up on the REST API (which only stores finished
|
|
431
|
+
projects) a few times before it is declared lost; it then fails with an error where
|
|
432
|
+
`isProjectLostError(error)` is `true`. Apps that persist project ids themselves can run the same
|
|
433
|
+
lookup with `sogni.projects.resolveMissing(ids)`.
|
|
434
|
+
|
|
435
|
+
Recovery is per app instance: the server hands projects back to the `appId` that created them, so
|
|
436
|
+
persist your `appId` (browsers: `localStorage`) and reuse it across reloads.
|
|
437
|
+
|
|
389
438
|
### Project parameters
|
|
390
439
|
|
|
391
440
|
Here is a full list of project parameters that you can use:
|
|
@@ -109,8 +109,17 @@ export interface AuthenticatedData {
|
|
|
109
109
|
};
|
|
110
110
|
};
|
|
111
111
|
subscriptionEntitlement?: SocketSubscriptionEntitlementData;
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
/**
|
|
113
|
+
* This app-id's projects that are still in flight (pending, queued, or
|
|
114
|
+
* rendering). The server reclaims them for the new socket, so live events
|
|
115
|
+
* follow. See {@link RecoveredProject}.
|
|
116
|
+
*/
|
|
117
|
+
activeProjects: RecoveredProject[];
|
|
118
|
+
/**
|
|
119
|
+
* This app-id's projects that reached a terminal state while it had no
|
|
120
|
+
* socket. Held server-side for one hour; delivered here once.
|
|
121
|
+
*/
|
|
122
|
+
unclaimedCompletedProjects: RecoveredProject[];
|
|
114
123
|
isMainnet: boolean;
|
|
115
124
|
accountWasMigrated: boolean;
|
|
116
125
|
/**
|
|
@@ -374,3 +383,119 @@ export type SocketEventMap = {
|
|
|
374
383
|
artistCancelConfirmation: ArtistCancelConfirmation;
|
|
375
384
|
};
|
|
376
385
|
export type SocketEventName = keyof SocketEventMap;
|
|
386
|
+
/**
|
|
387
|
+
* Server status of a project as sogni-socket reports it in recovery payloads.
|
|
388
|
+
* `authorized` and `queued` are the socket's own names; the REST API reports
|
|
389
|
+
* `active` for the queued window.
|
|
390
|
+
*/
|
|
391
|
+
export type RecoveredProjectStatus = 'pending' | 'authorized' | 'active' | 'queued' | 'assigned' | 'progress' | 'completed' | 'errored' | 'cancelled';
|
|
392
|
+
export type RecoveredWorkerJobStatus = 'created' | 'queued' | 'assigned' | 'initiatingModel' | 'jobStarted' | 'jobProgress' | 'jobCompleted' | 'jobError';
|
|
393
|
+
/**
|
|
394
|
+
* A worker job inside a {@link RecoveredProject}, as serialized by
|
|
395
|
+
* sogni-socket (`serializeWorkerJob`).
|
|
396
|
+
*
|
|
397
|
+
* `imgID` is the stable per-job identity. `id` is rewritten to the project id
|
|
398
|
+
* for legacy native clients and must not be used to distinguish jobs.
|
|
399
|
+
*/
|
|
400
|
+
export interface RecoveredWorkerJob {
|
|
401
|
+
id: string;
|
|
402
|
+
SID?: number | string;
|
|
403
|
+
imgID: string;
|
|
404
|
+
worker?: {
|
|
405
|
+
id?: string;
|
|
406
|
+
clientSID?: number;
|
|
407
|
+
address?: string;
|
|
408
|
+
addressSID?: number;
|
|
409
|
+
SID?: number;
|
|
410
|
+
username?: string;
|
|
411
|
+
image?: string;
|
|
412
|
+
nftTokenId?: string;
|
|
413
|
+
};
|
|
414
|
+
createTime?: number;
|
|
415
|
+
startTime?: number | null;
|
|
416
|
+
updateTime?: number;
|
|
417
|
+
actualStartTime?: number | null;
|
|
418
|
+
endTime?: number | null;
|
|
419
|
+
status: RecoveredWorkerJobStatus;
|
|
420
|
+
reason?: string;
|
|
421
|
+
performedSteps?: number;
|
|
422
|
+
triggeredNSFWFilter?: boolean;
|
|
423
|
+
seedUsed?: number;
|
|
424
|
+
costActual?: Record<string, unknown>;
|
|
425
|
+
network?: string;
|
|
426
|
+
txId?: string | null;
|
|
427
|
+
jobType?: string;
|
|
428
|
+
tokenType?: string;
|
|
429
|
+
isTest?: boolean;
|
|
430
|
+
/** Present for vendor (external API) jobs only; GPU jobs mint a signed URL from `(projectId, imgID)`. */
|
|
431
|
+
resultUrl?: string;
|
|
432
|
+
resultKey?: string;
|
|
433
|
+
provider?: string;
|
|
434
|
+
modelType?: 'video' | 'audio';
|
|
435
|
+
videoFrames?: number;
|
|
436
|
+
videoFps?: number;
|
|
437
|
+
width?: number;
|
|
438
|
+
height?: number;
|
|
439
|
+
audioDuration?: number;
|
|
440
|
+
[key: string]: unknown;
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* A project the server can hand back to its owner after a refresh or
|
|
444
|
+
* reconnect: carried by `authenticated.activeProjects` /
|
|
445
|
+
* `authenticated.unclaimedCompletedProjects` and by
|
|
446
|
+
* `GET /api/v1/artist/projects/sync` on the socket host.
|
|
447
|
+
*
|
|
448
|
+
* `clientRequestData` is the original `jobRequest`, base64-encoded JSON, so a
|
|
449
|
+
* client that lost its local state can rebuild the prompt and parameters.
|
|
450
|
+
*/
|
|
451
|
+
export interface RecoveredProject {
|
|
452
|
+
id: string;
|
|
453
|
+
SID?: number;
|
|
454
|
+
/** App instance (`appId`) that created the project. Newer socket builds only. */
|
|
455
|
+
appId?: string;
|
|
456
|
+
appSource?: string;
|
|
457
|
+
jobType?: string;
|
|
458
|
+
model: {
|
|
459
|
+
id: string;
|
|
460
|
+
SID?: number;
|
|
461
|
+
name?: string;
|
|
462
|
+
type?: string;
|
|
463
|
+
};
|
|
464
|
+
imageCount: number;
|
|
465
|
+
stepCount: number;
|
|
466
|
+
previewCount?: number;
|
|
467
|
+
hasGuideImage?: boolean;
|
|
468
|
+
denoiseStrength?: string;
|
|
469
|
+
controlNetId?: string | null;
|
|
470
|
+
costEstimate?: Record<string, unknown>;
|
|
471
|
+
costActual?: Record<string, unknown>;
|
|
472
|
+
createTime: number;
|
|
473
|
+
updateTime: number;
|
|
474
|
+
endTime?: number | null;
|
|
475
|
+
status: RecoveredProjectStatus;
|
|
476
|
+
reason?: string | null;
|
|
477
|
+
network?: string;
|
|
478
|
+
txId?: string | null;
|
|
479
|
+
sizePreset?: string;
|
|
480
|
+
width?: number;
|
|
481
|
+
height?: number;
|
|
482
|
+
jobCountCompletedByState?: Record<string, number>;
|
|
483
|
+
isTest?: boolean;
|
|
484
|
+
tokenType?: string;
|
|
485
|
+
billingMode?: string;
|
|
486
|
+
clientRequestData?: string;
|
|
487
|
+
workerJobs?: RecoveredWorkerJob[];
|
|
488
|
+
completedWorkerJobs?: RecoveredWorkerJob[];
|
|
489
|
+
premium?: Record<string, unknown>;
|
|
490
|
+
modelType?: 'video' | 'audio';
|
|
491
|
+
videoFrames?: number;
|
|
492
|
+
videoFps?: number;
|
|
493
|
+
provider?: string;
|
|
494
|
+
[key: string]: unknown;
|
|
495
|
+
}
|
|
496
|
+
/** Body of `GET /api/v1/artist/projects/sync`; the same two arrays the `authenticated` frame carries. */
|
|
497
|
+
export interface ProjectRecoverySnapshot {
|
|
498
|
+
activeProjects: RecoveredProject[];
|
|
499
|
+
unclaimedCompletedProjects: RecoveredProject[];
|
|
500
|
+
serverTime?: number;
|
|
501
|
+
}
|
|
@@ -14,9 +14,11 @@ export type ApiClientEvents = {
|
|
|
14
14
|
network: SupernetType;
|
|
15
15
|
};
|
|
16
16
|
/**
|
|
17
|
-
* @event ApiClient#disconnected - The client
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* @event ApiClient#disconnected - The connection ended and the client will not retry on its
|
|
18
|
+
* own: authentication was lost or rejected, the server closed with a non-recoverable code,
|
|
19
|
+
* or the client disconnected deliberately. Recoverable drops (network blips, server
|
|
20
|
+
* restarts) do not emit this; the client keeps reconnecting with backoff and emits
|
|
21
|
+
* `connecting` before each attempt, then `connected`.
|
|
20
22
|
*/
|
|
21
23
|
disconnected: {
|
|
22
24
|
code: ErrorCode;
|
|
@@ -48,7 +48,9 @@ declare class ApiClient extends TypedEventEmitter<ApiClientEvents> {
|
|
|
48
48
|
private _rest;
|
|
49
49
|
private _socket;
|
|
50
50
|
private _auth;
|
|
51
|
-
private
|
|
51
|
+
private _reconnectAttempt;
|
|
52
|
+
private _reconnectTimer;
|
|
53
|
+
private _onlineListener;
|
|
52
54
|
private _disableSocket;
|
|
53
55
|
constructor({ baseUrl, socketUrl, appId, appSource, attribution, socketEventSubscriptions, networkType, authType, logger, disableSocket, multiInstance }: ApiClientOptions);
|
|
54
56
|
get isAuthenticated(): boolean;
|
|
@@ -62,6 +64,8 @@ declare class ApiClient extends TypedEventEmitter<ApiClientEvents> {
|
|
|
62
64
|
handleSocketConnecting(): void;
|
|
63
65
|
handleSocketConnect({ network }: ServerConnectData): void;
|
|
64
66
|
handleSocketDisconnect(data: ServerDisconnectData): void;
|
|
67
|
+
private _scheduleReconnect;
|
|
68
|
+
private _clearReconnect;
|
|
65
69
|
handleAuthUpdated(isAuthenticated: boolean): void;
|
|
66
70
|
/**
|
|
67
71
|
* Dispose of this client, disconnecting the socket and removing all event listeners.
|
package/dist/ApiClient/index.js
CHANGED
|
@@ -14,7 +14,14 @@ const index_js_2 = require("../lib/AuthManager/index.js");
|
|
|
14
14
|
const isNodejs_js_1 = __importDefault(require("../lib/isNodejs.js"));
|
|
15
15
|
const index_js_3 = __importDefault(require("./WebSocketClient/BrowserWebSocketClient/index.js"));
|
|
16
16
|
const attribution_js_1 = require("../lib/attribution.js");
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Reconnect backoff for recoverable socket drops. Attempts continue for as
|
|
19
|
+
* long as the session stays authenticated: an in-flight generation survives a
|
|
20
|
+
* network blip, a sleeping laptop, or a socket deploy, and the server hands it
|
|
21
|
+
* back on reconnect.
|
|
22
|
+
*/
|
|
23
|
+
const WS_RECONNECT_BASE_DELAY_MS = 1000;
|
|
24
|
+
const WS_RECONNECT_MAX_DELAY_MS = 15000;
|
|
18
25
|
class ApiError extends Error {
|
|
19
26
|
constructor(status, payload) {
|
|
20
27
|
super(payload.message);
|
|
@@ -26,7 +33,9 @@ exports.ApiError = ApiError;
|
|
|
26
33
|
class ApiClient extends TypedEventEmitter_js_1.default {
|
|
27
34
|
constructor({ baseUrl, socketUrl, appId, appSource, attribution, socketEventSubscriptions, networkType, authType, logger, disableSocket = false, multiInstance = false }) {
|
|
28
35
|
super();
|
|
29
|
-
this.
|
|
36
|
+
this._reconnectAttempt = 0;
|
|
37
|
+
this._reconnectTimer = null;
|
|
38
|
+
this._onlineListener = null;
|
|
30
39
|
this._disableSocket = false;
|
|
31
40
|
this.appId = appId;
|
|
32
41
|
this.appSource = (appSource === null || appSource === void 0 ? void 0 : appSource.trim()) || undefined;
|
|
@@ -88,12 +97,14 @@ class ApiClient extends TypedEventEmitter_js_1.default {
|
|
|
88
97
|
this.emit('connecting', { network: this.socket.supernetType });
|
|
89
98
|
}
|
|
90
99
|
handleSocketConnect({ network }) {
|
|
91
|
-
this.
|
|
100
|
+
this._reconnectAttempt = 0;
|
|
101
|
+
this._clearReconnect();
|
|
92
102
|
this.emit('connected', { network });
|
|
93
103
|
}
|
|
94
104
|
handleSocketDisconnect(data) {
|
|
95
105
|
// If user is not authenticated, we don't need to reconnect
|
|
96
106
|
if (!this.auth.isAuthenticated || data.code === 1000) {
|
|
107
|
+
this._clearReconnect();
|
|
97
108
|
this.emit('disconnected', data);
|
|
98
109
|
return;
|
|
99
110
|
}
|
|
@@ -131,17 +142,52 @@ class ApiClient extends TypedEventEmitter_js_1.default {
|
|
|
131
142
|
this.logger.error('Not recoverable socket error', data);
|
|
132
143
|
return;
|
|
133
144
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
145
|
+
// Recoverable drop: keep trying with capped exponential backoff while the
|
|
146
|
+
// session is authenticated. Consumers see `connecting` before each attempt;
|
|
147
|
+
// `disconnected` is reserved for terminal outcomes.
|
|
148
|
+
this._scheduleReconnect();
|
|
149
|
+
}
|
|
150
|
+
_scheduleReconnect() {
|
|
151
|
+
this._clearReconnect();
|
|
152
|
+
const attempt = this._reconnectAttempt++;
|
|
153
|
+
const base = Math.min(WS_RECONNECT_BASE_DELAY_MS * Math.pow(2, attempt), WS_RECONNECT_MAX_DELAY_MS);
|
|
154
|
+
const delay = Math.round(base * (0.8 + Math.random() * 0.4));
|
|
155
|
+
this.handleSocketConnecting();
|
|
156
|
+
const connect = () => {
|
|
157
|
+
this._reconnectTimer = null;
|
|
158
|
+
if (!this.auth.isAuthenticated || this._disableSocket)
|
|
159
|
+
return;
|
|
160
|
+
this.socket.connect().catch((error) => {
|
|
161
|
+
this.logger.warn('WebSocket reconnect attempt failed', error);
|
|
162
|
+
this._scheduleReconnect();
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
if (typeof window !== 'undefined' &&
|
|
166
|
+
typeof navigator !== 'undefined' &&
|
|
167
|
+
navigator.onLine === false) {
|
|
168
|
+
// Offline: a timer would only burn attempts. Wake up when the browser is back online.
|
|
169
|
+
this._onlineListener = () => {
|
|
170
|
+
this._onlineListener = null;
|
|
171
|
+
connect();
|
|
172
|
+
};
|
|
173
|
+
window.addEventListener('online', this._onlineListener, { once: true });
|
|
137
174
|
return;
|
|
138
175
|
}
|
|
139
|
-
this.
|
|
140
|
-
|
|
141
|
-
|
|
176
|
+
this._reconnectTimer = setTimeout(connect, delay);
|
|
177
|
+
}
|
|
178
|
+
_clearReconnect() {
|
|
179
|
+
if (this._reconnectTimer) {
|
|
180
|
+
clearTimeout(this._reconnectTimer);
|
|
181
|
+
this._reconnectTimer = null;
|
|
182
|
+
}
|
|
183
|
+
if (this._onlineListener && typeof window !== 'undefined') {
|
|
184
|
+
window.removeEventListener('online', this._onlineListener);
|
|
185
|
+
this._onlineListener = null;
|
|
186
|
+
}
|
|
142
187
|
}
|
|
143
188
|
handleAuthUpdated(isAuthenticated) {
|
|
144
189
|
if (!isAuthenticated) {
|
|
190
|
+
this._clearReconnect();
|
|
145
191
|
if (this.socket.isConnected) {
|
|
146
192
|
this.socket.disconnect();
|
|
147
193
|
}
|
|
@@ -156,6 +202,7 @@ class ApiClient extends TypedEventEmitter_js_1.default {
|
|
|
156
202
|
* After calling this method, the client should not be used.
|
|
157
203
|
*/
|
|
158
204
|
dispose() {
|
|
205
|
+
this._clearReconnect();
|
|
159
206
|
this._socket.disconnect();
|
|
160
207
|
this._socket.removeAllListeners();
|
|
161
208
|
this._auth.removeAllListeners();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ApiClient/index.ts"],"names":[],"mappings":";;;;;;AAAA,yEAA8C;AAC9C,0EAAyD;AACzD,uFAA4D;AAG5D,iEAA6E;AAQ7E,mGAAwE;AACxE,mGAAwE;AACxE,0DAA4E;AAC5E,qEAA0C;AAC1C,iGAAuF;AACvF,0DAK+B;AAO/B,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ApiClient/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,18 +46,40 @@ export interface ProjectEventMap extends EntityEvents {
|
|
|
46
46
|
export interface ProjectOptions {
|
|
47
47
|
api: ProjectsApi;
|
|
48
48
|
logger: Logger;
|
|
49
|
+
/**
|
|
50
|
+
* Reuse a server-known project id instead of minting a new one. Used when a
|
|
51
|
+
* project is rebuilt from a recovery snapshot.
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
id?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Mark the project as rebuilt from a server snapshot rather than created by
|
|
57
|
+
* this client.
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
recovered?: boolean;
|
|
49
61
|
}
|
|
50
62
|
declare class Project extends DataEntity<ProjectData, ProjectEventMap> {
|
|
51
63
|
private _jobs;
|
|
52
64
|
private _lastEmitedProgress;
|
|
53
65
|
private readonly _api;
|
|
54
66
|
private readonly _logger;
|
|
67
|
+
private readonly _recovered;
|
|
55
68
|
private _timeout;
|
|
56
69
|
private _failedSyncAttempts;
|
|
57
70
|
constructor(data: ProjectParams, options: ProjectOptions);
|
|
58
71
|
get id(): string;
|
|
72
|
+
/** When this client started (or, for a recovered project, first learned about) the project. */
|
|
73
|
+
get startedAt(): Date;
|
|
74
|
+
/**
|
|
75
|
+
* `true` when this project was rebuilt from a server snapshot — after a page
|
|
76
|
+
* refresh, a reconnect, or in a second tab — instead of being created by this
|
|
77
|
+
* client. Its {@link params} are reconstructed from the original request and
|
|
78
|
+
* omit asset inputs (starting images, reference media).
|
|
79
|
+
*/
|
|
80
|
+
get recovered(): boolean;
|
|
59
81
|
get params(): ProjectParams;
|
|
60
|
-
get type(): "
|
|
82
|
+
get type(): "video" | "audio" | "image";
|
|
61
83
|
get status(): ProjectStatus;
|
|
62
84
|
/**
|
|
63
85
|
* Estimated time of completion in seconds (for long-running projects like video generation).
|
package/dist/Projects/Project.js
CHANGED
|
@@ -31,7 +31,9 @@ function formatRuntimeLimit(limitMs) {
|
|
|
31
31
|
}
|
|
32
32
|
const PROJECT_STATUS_MAP = {
|
|
33
33
|
pending: 'pending',
|
|
34
|
+
authorized: 'pending',
|
|
34
35
|
active: 'queued',
|
|
36
|
+
queued: 'queued',
|
|
35
37
|
assigned: 'processing',
|
|
36
38
|
progress: 'processing',
|
|
37
39
|
completed: 'completed',
|
|
@@ -41,7 +43,7 @@ const PROJECT_STATUS_MAP = {
|
|
|
41
43
|
class Project extends DataEntity_js_1.default {
|
|
42
44
|
constructor(data, options) {
|
|
43
45
|
super({
|
|
44
|
-
id: (0, getUUID_js_1.default)(),
|
|
46
|
+
id: options.id || (0, getUUID_js_1.default)(),
|
|
45
47
|
startedAt: new Date(),
|
|
46
48
|
params: data,
|
|
47
49
|
queuePosition: -1,
|
|
@@ -53,12 +55,26 @@ class Project extends DataEntity_js_1.default {
|
|
|
53
55
|
this._failedSyncAttempts = 0;
|
|
54
56
|
this._api = options.api;
|
|
55
57
|
this._logger = options.logger;
|
|
58
|
+
this._recovered = Boolean(options.recovered);
|
|
56
59
|
this._timeout = setInterval(this._checkForTimeout.bind(this), PROJECT_TIMEOUT);
|
|
57
60
|
this.on('updated', this.handleUpdated.bind(this));
|
|
58
61
|
}
|
|
59
62
|
get id() {
|
|
60
63
|
return this.data.id;
|
|
61
64
|
}
|
|
65
|
+
/** When this client started (or, for a recovered project, first learned about) the project. */
|
|
66
|
+
get startedAt() {
|
|
67
|
+
return this.data.startedAt;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* `true` when this project was rebuilt from a server snapshot — after a page
|
|
71
|
+
* refresh, a reconnect, or in a second tab — instead of being created by this
|
|
72
|
+
* client. Its {@link params} are reconstructed from the original request and
|
|
73
|
+
* omit asset inputs (starting images, reference media).
|
|
74
|
+
*/
|
|
75
|
+
get recovered() {
|
|
76
|
+
return this._recovered;
|
|
77
|
+
}
|
|
62
78
|
get params() {
|
|
63
79
|
return this.data.params;
|
|
64
80
|
}
|
|
@@ -267,6 +283,13 @@ class Project extends DataEntity_js_1.default {
|
|
|
267
283
|
});
|
|
268
284
|
}
|
|
269
285
|
_checkForTimeout() {
|
|
286
|
+
var _a, _b;
|
|
287
|
+
if ((_b = (_a = this._api)._shouldDeferProjectTimeouts) === null || _b === void 0 ? void 0 : _b.call(_a)) {
|
|
288
|
+
// The socket is down. Silence is expected, not staleness: the server
|
|
289
|
+
// keeps rendering and hands the project back on reconnect.
|
|
290
|
+
this._keepAlive();
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
270
293
|
if (this.lastUpdated.getTime() + PROJECT_TIMEOUT < Date.now()) {
|
|
271
294
|
void this._runStalenessCheck();
|
|
272
295
|
}
|
|
@@ -352,7 +375,7 @@ class Project extends DataEntity_js_1.default {
|
|
|
352
375
|
// This should never happen, but just in case we log a warning
|
|
353
376
|
if (!restJob) {
|
|
354
377
|
this._logger.warn(`Job with id ${job.id} not found in the REST project data`);
|
|
355
|
-
|
|
378
|
+
continue;
|
|
356
379
|
}
|
|
357
380
|
try {
|
|
358
381
|
yield job._syncWithRestData(restJob);
|
|
@@ -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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"}
|