@sogni-ai/sogni-client 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/package.json +1 -1
  2. package/dist/Account/CurrentAccount.d.ts +0 -26
  3. package/dist/Account/CurrentAccount.js +0 -71
  4. package/dist/Account/CurrentAccount.js.map +0 -1
  5. package/dist/Account/index.d.ts +0 -27
  6. package/dist/Account/index.js +0 -159
  7. package/dist/Account/index.js.map +0 -1
  8. package/dist/Account/types.d.ts +0 -57
  9. package/dist/Account/types.js +0 -2
  10. package/dist/Account/types.js.map +0 -1
  11. package/dist/ApiClient/ApiClient.d.ts +0 -42
  12. package/dist/ApiClient/ApiClient.js +0 -72
  13. package/dist/ApiClient/ApiClient.js.map +0 -1
  14. package/dist/ApiClient/WebSocketClient/ErrorCode.d.ts +0 -7
  15. package/dist/ApiClient/WebSocketClient/ErrorCode.js +0 -14
  16. package/dist/ApiClient/WebSocketClient/ErrorCode.js.map +0 -1
  17. package/dist/ApiClient/WebSocketClient/events.d.ts +0 -83
  18. package/dist/ApiClient/WebSocketClient/events.js +0 -2
  19. package/dist/ApiClient/WebSocketClient/events.js.map +0 -1
  20. package/dist/ApiClient/WebSocketClient/index.d.ts +0 -28
  21. package/dist/ApiClient/WebSocketClient/index.js +0 -161
  22. package/dist/ApiClient/WebSocketClient/index.js.map +0 -1
  23. package/dist/ApiClient/WebSocketClient/messages.d.ts +0 -5
  24. package/dist/ApiClient/WebSocketClient/messages.js +0 -2
  25. package/dist/ApiClient/WebSocketClient/messages.js.map +0 -1
  26. package/dist/ApiClient/WebSocketClient/types.d.ts +0 -1
  27. package/dist/ApiClient/WebSocketClient/types.js +0 -2
  28. package/dist/ApiClient/WebSocketClient/types.js.map +0 -1
  29. package/dist/ApiClient/events.d.ts +0 -19
  30. package/dist/ApiClient/events.js +0 -2
  31. package/dist/ApiClient/events.js.map +0 -1
  32. package/dist/ApiGroup.d.ts +0 -16
  33. package/dist/ApiGroup.js +0 -11
  34. package/dist/ApiGroup.js.map +0 -1
  35. package/dist/Projects/Job.d.ts +0 -31
  36. package/dist/Projects/Job.js +0 -47
  37. package/dist/Projects/Job.js.map +0 -1
  38. package/dist/Projects/Project.d.ts +0 -50
  39. package/dist/Projects/Project.js +0 -89
  40. package/dist/Projects/Project.js.map +0 -1
  41. package/dist/Projects/createJobRequestMessage.d.ts +0 -63
  42. package/dist/Projects/createJobRequestMessage.js +0 -66
  43. package/dist/Projects/createJobRequestMessage.js.map +0 -1
  44. package/dist/Projects/index.d.ts +0 -41
  45. package/dist/Projects/index.js +0 -248
  46. package/dist/Projects/index.js.map +0 -1
  47. package/dist/Projects/models.json +0 -8906
  48. package/dist/Projects/types/EstimationResponse.d.ts +0 -40
  49. package/dist/Projects/types/EstimationResponse.js +0 -2
  50. package/dist/Projects/types/EstimationResponse.js.map +0 -1
  51. package/dist/Projects/types/events.d.ts +0 -51
  52. package/dist/Projects/types/events.js +0 -2
  53. package/dist/Projects/types/events.js.map +0 -1
  54. package/dist/Projects/types/index.d.ts +0 -58
  55. package/dist/Projects/types/index.js +0 -2
  56. package/dist/Projects/types/index.js.map +0 -1
  57. package/dist/Stats/index.d.ts +0 -6
  58. package/dist/Stats/index.js +0 -20
  59. package/dist/Stats/index.js.map +0 -1
  60. package/dist/Stats/types.d.ts +0 -19
  61. package/dist/Stats/types.js +0 -2
  62. package/dist/Stats/types.js.map +0 -1
  63. package/dist/index.d.ts +0 -39
  64. package/dist/index.js +0 -51
  65. package/dist/index.js.map +0 -1
  66. package/dist/lib/DataEntity.d.ts +0 -18
  67. package/dist/lib/DataEntity.js +0 -26
  68. package/dist/lib/DataEntity.js.map +0 -1
  69. package/dist/lib/EIP712Helper.d.ts +0 -13
  70. package/dist/lib/EIP712Helper.js +0 -37
  71. package/dist/lib/EIP712Helper.js.map +0 -1
  72. package/dist/lib/RestClient.d.ts +0 -18
  73. package/dist/lib/RestClient.js +0 -64
  74. package/dist/lib/RestClient.js.map +0 -1
  75. package/dist/lib/TypedEventEmitter.d.ts +0 -34
  76. package/dist/lib/TypedEventEmitter.js +0 -56
  77. package/dist/lib/TypedEventEmitter.js.map +0 -1
  78. package/dist/lib/base64.d.ts +0 -2
  79. package/dist/lib/base64.js +0 -8
  80. package/dist/lib/base64.js.map +0 -1
  81. package/dist/lib/isNodejs.d.ts +0 -2
  82. package/dist/lib/isNodejs.js +0 -3
  83. package/dist/lib/isNodejs.js.map +0 -1
  84. package/dist/types/ErrorData.d.ts +0 -5
  85. package/dist/types/ErrorData.js +0 -2
  86. package/dist/types/ErrorData.js.map +0 -1
  87. package/dist/types/json.d.ts +0 -5
  88. package/dist/types/json.js +0 -2
  89. package/dist/types/json.js.map +0 -1
@@ -1,161 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import RestClient from '../../lib/RestClient';
11
- import WebSocket from 'isomorphic-ws';
12
- import { base64Decode, base64Encode } from '../../lib/base64';
13
- import isNodejs from '../../lib/isNodejs';
14
- import Cookie from 'js-cookie';
15
- class WebSocketClient extends RestClient {
16
- constructor(baseUrl, appId, supernetType = 'fast') {
17
- super(baseUrl);
18
- this.socket = null;
19
- this.appId = appId;
20
- this.baseUrl = baseUrl;
21
- this._supernetType = supernetType;
22
- }
23
- set auth(auth) {
24
- //In browser, set the cookie
25
- if (!isNodejs) {
26
- if (auth) {
27
- Cookie.set('authorization', auth.token, {
28
- domain: '.sogni.ai',
29
- expires: 1
30
- });
31
- }
32
- else {
33
- Cookie.remove('authorization', {
34
- domain: '.sogni.ai'
35
- });
36
- }
37
- }
38
- this._auth = auth;
39
- }
40
- get supernetType() {
41
- return this._supernetType;
42
- }
43
- get isConnected() {
44
- return !!this.socket;
45
- }
46
- connect() {
47
- var _a;
48
- const url = new URL(this.baseUrl);
49
- url.searchParams.set('appId', this.appId);
50
- url.searchParams.set('clientName', 'Sogni/3.0.22042');
51
- url.searchParams.set('clientType', 'artist');
52
- url.searchParams.set('forceWorkerId', this._supernetType);
53
- let params;
54
- // In Node.js, ws package is used, so we need to set the auth header
55
- if (isNodejs) {
56
- params = {
57
- headers: {
58
- Authorization: (_a = this._auth) === null || _a === void 0 ? void 0 : _a.token
59
- }
60
- };
61
- }
62
- this.socket = new WebSocket(url.toString(), params);
63
- this.socket.onerror = this.handleError.bind(this);
64
- this.socket.onmessage = this.handleMessage.bind(this);
65
- this.socket.onopen = this.handleOpen.bind(this);
66
- this.socket.onclose = this.handleClose.bind(this);
67
- }
68
- disconnect() {
69
- if (!this.socket) {
70
- return;
71
- }
72
- const socket = this.socket;
73
- this.socket = null;
74
- socket.onerror = null;
75
- socket.onmessage = null;
76
- socket.onopen = null;
77
- socket.close();
78
- }
79
- switchNetwork(supernetType) {
80
- this._supernetType = supernetType;
81
- this.disconnect();
82
- this.connect();
83
- }
84
- /**
85
- * Ensure the WebSocket connection is open, waiting if necessary and throwing an error if it fails
86
- * @private
87
- */
88
- waitForConnection() {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- var _a, _b;
91
- if (!this.socket) {
92
- throw new Error('WebSocket not connected');
93
- }
94
- if (this.socket.readyState === WebSocket.OPEN) {
95
- return;
96
- }
97
- let attempts = 10;
98
- while (((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.CONNECTING) {
99
- console.info('Waiting for WebSocket connection...');
100
- yield new Promise((resolve) => setTimeout(resolve, 1000));
101
- attempts--;
102
- if (attempts === 0) {
103
- this.disconnect();
104
- throw new Error('WebSocket connection timeout');
105
- }
106
- }
107
- //@ts-expect-error State may change between checks
108
- if (((_b = this.socket) === null || _b === void 0 ? void 0 : _b.readyState) !== WebSocket.OPEN) {
109
- this.disconnect();
110
- throw new Error('WebSocket connection failed');
111
- }
112
- });
113
- }
114
- handleOpen() {
115
- this.emit('connected', { network: this._supernetType });
116
- }
117
- handleClose(e) {
118
- if (e.target === this.socket) {
119
- console.info('WebSocket disconnected, cleanup', e);
120
- this.disconnect();
121
- this.emit('disconnected', {
122
- code: e.code,
123
- reason: e.reason
124
- });
125
- }
126
- }
127
- handleError(e) {
128
- console.error('WebSocket error:', e);
129
- }
130
- handleMessage(e) {
131
- let dataPromise;
132
- // In Node.js, e.data is a Buffer, while in browser it's a Blob
133
- if (isNodejs) {
134
- dataPromise = Promise.resolve(e.data.toString());
135
- }
136
- else {
137
- const data = e.data;
138
- dataPromise = data.text();
139
- }
140
- dataPromise
141
- .then((str) => {
142
- const data = JSON.parse(str);
143
- let payload = null;
144
- if (data.data) {
145
- payload = JSON.parse(base64Decode(data.data));
146
- }
147
- this.emit(data.type, payload);
148
- })
149
- .catch((err) => {
150
- console.error('Failed to parse WebSocket message:', err);
151
- });
152
- }
153
- send(messageType, data) {
154
- return __awaiter(this, void 0, void 0, function* () {
155
- yield this.waitForConnection();
156
- this.socket.send(JSON.stringify({ type: messageType, data: base64Encode(JSON.stringify(data)) }));
157
- });
158
- }
159
- }
160
- export default WebSocketClient;
161
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { JobRequestRaw } from '../../Projects/createJobRequestMessage';
2
- export interface SocketMessageMap {
3
- jobRequest: JobRequestRaw;
4
- }
5
- export type MessageType = keyof SocketMessageMap;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=messages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/messages.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- export type SupernetType = 'relaxed' | 'fast';
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ApiClient/WebSocketClient/types.ts"],"names":[],"mappings":""}
@@ -1,19 +0,0 @@
1
- import ErrorCode from './WebSocketClient/ErrorCode';
2
- import { SupernetType } from './WebSocketClient/types';
3
- export type ApiClientEvents = {
4
- /**
5
- * @event ApiClient#connected - The client has been connected to the server.
6
- */
7
- connected: {
8
- network: SupernetType;
9
- };
10
- /**
11
- * @event ApiClient#disconnected - The client has been disconnected by the server,
12
- * either authentication is lost or the server is unreachable.This event is not triggered
13
- * when the client manually disconnects.
14
- */
15
- disconnected: {
16
- code: ErrorCode;
17
- reason: string;
18
- };
19
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/ApiClient/events.ts"],"names":[],"mappings":""}
@@ -1,16 +0,0 @@
1
- import { AbstractProvider } from 'ethers';
2
- import ApiClient from './ApiClient/ApiClient';
3
- import EIP712Helper from './lib/EIP712Helper';
4
- import TypedEventEmitter, { EventMap } from './lib/TypedEventEmitter';
5
- export interface ApiConfig {
6
- client: ApiClient;
7
- provider: AbstractProvider;
8
- eip712: EIP712Helper;
9
- }
10
- declare abstract class ApiGroup<E extends EventMap = {}> extends TypedEventEmitter<E> {
11
- protected client: ApiClient;
12
- protected provider: AbstractProvider;
13
- protected eip712: EIP712Helper;
14
- constructor(config: ApiConfig);
15
- }
16
- export default ApiGroup;
package/dist/ApiGroup.js DELETED
@@ -1,11 +0,0 @@
1
- import TypedEventEmitter from './lib/TypedEventEmitter';
2
- class ApiGroup extends TypedEventEmitter {
3
- constructor(config) {
4
- super();
5
- this.client = config.client;
6
- this.provider = config.provider;
7
- this.eip712 = config.eip712;
8
- }
9
- }
10
- export default ApiGroup;
11
- //# sourceMappingURL=ApiGroup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ApiGroup.js","sourceRoot":"","sources":["../src/ApiGroup.ts"],"names":[],"mappings":"AAGA,OAAO,iBAA+B,MAAM,yBAAyB,CAAC;AAQtE,MAAe,QAAkC,SAAQ,iBAAoB;IAK3E,YAAY,MAAiB;QAC3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;CACF;AAED,eAAe,QAAQ,CAAC"}
@@ -1,31 +0,0 @@
1
- import DataEntity, { EntityEvents } from '../lib/DataEntity';
2
- import ErrorData from '../types/ErrorData';
3
- export type JobStatus = 'pending' | 'initiating' | 'processing' | 'completed' | 'failed';
4
- export interface JobData {
5
- id: string;
6
- status: JobStatus;
7
- step: number;
8
- stepCount: number;
9
- previewUrl?: string;
10
- resultUrl?: string;
11
- error?: ErrorData;
12
- }
13
- interface JobEvents extends EntityEvents {
14
- progress: number;
15
- completed: string;
16
- failed: JobData['error'];
17
- }
18
- declare class Job extends DataEntity<JobData, JobEvents> {
19
- constructor(data: JobData);
20
- get id(): string;
21
- get status(): JobStatus;
22
- get progress(): number;
23
- get step(): number;
24
- get stepCount(): number;
25
- get previewUrl(): string | undefined;
26
- get resultUrl(): string | undefined;
27
- get imageUrl(): string | undefined;
28
- get error(): ErrorData | undefined;
29
- private handleUpdated;
30
- }
31
- export default Job;
@@ -1,47 +0,0 @@
1
- import DataEntity from '../lib/DataEntity';
2
- class Job extends DataEntity {
3
- constructor(data) {
4
- super(data);
5
- this.on('updated', this.handleUpdated.bind(this));
6
- }
7
- get id() {
8
- return this.data.id;
9
- }
10
- get status() {
11
- return this.data.status;
12
- }
13
- get progress() {
14
- return this.data.step / this.data.stepCount;
15
- }
16
- get step() {
17
- return this.data.step;
18
- }
19
- get stepCount() {
20
- return this.data.stepCount;
21
- }
22
- get previewUrl() {
23
- return this.data.previewUrl;
24
- }
25
- get resultUrl() {
26
- return this.data.resultUrl;
27
- }
28
- get imageUrl() {
29
- return this.data.resultUrl || this.data.previewUrl;
30
- }
31
- get error() {
32
- return this.data.error;
33
- }
34
- handleUpdated(keys) {
35
- if (keys.includes('step') || keys.includes('stepCount')) {
36
- this.emit('progress', this.progress);
37
- }
38
- if (keys.includes('status') && this.status === 'completed') {
39
- this.emit('completed', this.resultUrl);
40
- }
41
- if (keys.includes('status') && this.status === 'failed') {
42
- this.emit('failed', this.data.error);
43
- }
44
- }
45
- }
46
- export default Job;
47
- //# sourceMappingURL=Job.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Job.js","sourceRoot":"","sources":["../../src/Projects/Job.ts"],"names":[],"mappings":"AAAA,OAAO,UAA4B,MAAM,mBAAmB,CAAC;AAqB7D,MAAM,GAAI,SAAQ,UAA8B;IAC9C,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,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED,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;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,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF;AAED,eAAe,GAAG,CAAC"}
@@ -1,50 +0,0 @@
1
- import Job, { JobData } from './Job';
2
- import DataEntity, { EntityEvents } from '../lib/DataEntity';
3
- import { ProjectParams } from './types';
4
- import ErrorData from '../types/ErrorData';
5
- export type ProjectStatus = 'pending' | 'queued' | 'processing' | 'completed' | 'failed';
6
- interface ProjectData {
7
- id: string;
8
- startedAt: Date;
9
- params: ProjectParams;
10
- queuePosition: number;
11
- status: ProjectStatus;
12
- error?: ErrorData;
13
- }
14
- interface SerializedProject extends ProjectData {
15
- jobs: JobData[];
16
- }
17
- interface ProjectEvents extends EntityEvents {
18
- progress: number;
19
- completed: string[];
20
- failed: ProjectData['error'];
21
- }
22
- declare class Project extends DataEntity<ProjectData, ProjectEvents> {
23
- private _jobs;
24
- private _lastEmitedProgress;
25
- constructor(data: ProjectParams);
26
- get id(): string;
27
- get params(): ProjectParams;
28
- get status(): ProjectStatus;
29
- get progress(): number;
30
- get queuePosition(): number;
31
- get jobs(): Job[];
32
- get resultUrls(): string[];
33
- /**
34
- * Find a job by id
35
- * @param id
36
- */
37
- job(id: string): Job | undefined;
38
- private handleUpdated;
39
- /**
40
- * This is internal method to add a job to the project. Do not call this directly.
41
- * @internal
42
- * @param data
43
- */
44
- _addJob(data: JobData): Job;
45
- /**
46
- * Get full project data snapshot. Can be used to serialize the project and store it in a database.
47
- */
48
- toJSON(): SerializedProject;
49
- }
50
- export default Project;
@@ -1,89 +0,0 @@
1
- import Job from './Job';
2
- import DataEntity from '../lib/DataEntity';
3
- import cloneDeep from 'lodash/cloneDeep';
4
- import { v4 as uuidV4 } from '@lukeed/uuid';
5
- class Project extends DataEntity {
6
- constructor(data) {
7
- super({
8
- id: uuidV4(),
9
- startedAt: new Date(),
10
- params: data,
11
- queuePosition: -1,
12
- status: 'pending'
13
- });
14
- this._jobs = [];
15
- this._lastEmitedProgress = -1;
16
- this.on('updated', this.handleUpdated.bind(this));
17
- }
18
- get id() {
19
- return this.data.id;
20
- }
21
- get params() {
22
- return this.data.params;
23
- }
24
- get status() {
25
- return this.data.status;
26
- }
27
- get progress() {
28
- const { steps, stepCount } = this._jobs.reduce((acc, job) => {
29
- acc.steps += job.step;
30
- acc.stepCount += job.stepCount;
31
- return acc;
32
- }, { steps: 0, stepCount: 0 });
33
- return Math.round((steps / stepCount) * 100);
34
- }
35
- get queuePosition() {
36
- return this.data.queuePosition;
37
- }
38
- get jobs() {
39
- return this._jobs.slice(0);
40
- }
41
- get resultUrls() {
42
- return this.jobs.map((job) => job.resultUrl).filter((r) => !!r);
43
- }
44
- /**
45
- * Find a job by id
46
- * @param id
47
- */
48
- job(id) {
49
- return this._jobs.find((job) => job.id === id);
50
- }
51
- handleUpdated(keys) {
52
- const progress = this.progress;
53
- if (progress !== this._lastEmitedProgress) {
54
- this.emit('progress', progress);
55
- this._lastEmitedProgress = progress;
56
- }
57
- if (keys.includes('status') || keys.includes('jobs')) {
58
- const allJobsDone = this.jobs.every((job) => job.status === 'completed' || job.status === 'failed');
59
- if (this.data.status === 'completed' && allJobsDone) {
60
- return this.emit('completed', this.resultUrls);
61
- }
62
- if (this.data.status === 'failed') {
63
- this.emit('failed', this.data.error);
64
- }
65
- }
66
- }
67
- /**
68
- * This is internal method to add a job to the project. Do not call this directly.
69
- * @internal
70
- * @param data
71
- */
72
- _addJob(data) {
73
- const job = new Job(data);
74
- this._jobs.push(job);
75
- job.on('updated', () => {
76
- this.emit('updated', ['jobs']);
77
- });
78
- return job;
79
- }
80
- /**
81
- * Get full project data snapshot. Can be used to serialize the project and store it in a database.
82
- */
83
- toJSON() {
84
- const data = cloneDeep(this.data);
85
- return Object.assign(Object.assign({}, data), { jobs: this._jobs.map((job) => job.toJSON()) });
86
- }
87
- }
88
- export default Project;
89
- //# sourceMappingURL=Project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Project.js","sourceRoot":"","sources":["../../src/Projects/Project.ts"],"names":[],"mappings":"AAAA,OAAO,GAAgB,MAAM,OAAO,CAAC;AACrC,OAAO,UAA4B,MAAM,mBAAmB,CAAC;AAE7D,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAwB5C,MAAM,OAAQ,SAAQ,UAAsC;IAI1D,YAAY,IAAmB;QAC7B,KAAK,CAAC;YACJ,EAAE,EAAE,MAAM,EAAE;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QAVG,UAAK,GAAU,EAAE,CAAC;QAClB,wBAAmB,GAAG,CAAC,CAAC,CAAC;QAU/B,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,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ;QACV,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAC5C,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;YACtB,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC;YAC/B,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAC3B,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAa,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAEO,aAAa,CAAC,IAAc;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,QAAQ,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CACjC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAC/D,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;gBACpD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAa;QACnB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,uCACK,IAAI,KACP,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAC3C;IACJ,CAAC;CACF;AAED,eAAe,OAAO,CAAC"}
@@ -1,63 +0,0 @@
1
- import { ProjectParams } from './types';
2
- declare function createJobRequestMessage(id: string, params: ProjectParams): {
3
- selectedUpscalingModel: string;
4
- cnVideoFramesSketch: never[];
5
- cnVideoFramesSegmentedSubject: never[];
6
- cnVideoFramesFace: never[];
7
- doCanvasBlending: boolean;
8
- animationIsOn: boolean;
9
- cnVideoFramesBoth: never[];
10
- cnVideoFramesDepth: never[];
11
- keyFrames: {
12
- stepsIsEnabled: boolean;
13
- siRotation: number;
14
- siDragOffsetIsEnabled: boolean;
15
- strength: number;
16
- siZoomScaleIsEnabled: boolean;
17
- isEnabled: boolean;
18
- processing: string;
19
- useLastImageAsGuideImageInAnimation: boolean;
20
- guidanceScaleIsEnabled: boolean;
21
- siImageBackgroundColor: string;
22
- cnDragOffset: number[];
23
- scheduler: string;
24
- timeStepSpacing: string;
25
- steps: number;
26
- cnRotation: number;
27
- guidanceScale: number;
28
- siZoomScale: number;
29
- modelID: string;
30
- cnRotationIsEnabled: boolean;
31
- negativePrompt: string;
32
- startingImageZoomPanIsOn: boolean;
33
- seed: string;
34
- siRotationIsEnabled: boolean;
35
- cnImageBackgroundColor: string;
36
- strengthIsEnabled: boolean;
37
- siDragOffset: number[];
38
- useLastImageAsCNImageInAnimation: boolean;
39
- positivePrompt: string;
40
- controlNetZoomPanIsOn: boolean;
41
- cnZoomScaleIsEnabled: boolean;
42
- currentControlNets: null;
43
- stylePrompt: string;
44
- cnDragOffsetIsEnabled: boolean;
45
- frameIndex: number;
46
- startingImage: null;
47
- cnZoomScale: number;
48
- }[];
49
- previews: number;
50
- frameRate: number;
51
- generatedVideoSeconds: number;
52
- canvasIsOn: boolean;
53
- cnVideoFrames: never[];
54
- disableSafety: boolean;
55
- cnVideoFramesSegmentedBackground: never[];
56
- cnVideoFramesSegmented: never[];
57
- numberOfImages: number;
58
- cnVideoFramesPose: never[];
59
- jobID: string;
60
- siVideoFrames: never[];
61
- };
62
- export type JobRequestRaw = ReturnType<typeof createJobRequestMessage>;
63
- export default createJobRequestMessage;
@@ -1,66 +0,0 @@
1
- function createJobRequestMessage(id, params) {
2
- return {
3
- selectedUpscalingModel: 'OFF',
4
- cnVideoFramesSketch: [],
5
- cnVideoFramesSegmentedSubject: [],
6
- cnVideoFramesFace: [],
7
- doCanvasBlending: false,
8
- animationIsOn: false,
9
- cnVideoFramesBoth: [],
10
- cnVideoFramesDepth: [],
11
- keyFrames: [
12
- {
13
- stepsIsEnabled: true,
14
- siRotation: 0,
15
- siDragOffsetIsEnabled: true,
16
- strength: 0.5,
17
- siZoomScaleIsEnabled: true,
18
- isEnabled: true,
19
- processing: 'CPU, GPU',
20
- useLastImageAsGuideImageInAnimation: true,
21
- guidanceScaleIsEnabled: true,
22
- siImageBackgroundColor: 'black',
23
- cnDragOffset: [0, 0],
24
- scheduler: 'DPM Solver Multistep (DPM-Solver++)',
25
- timeStepSpacing: 'Linear',
26
- steps: params.steps,
27
- cnRotation: 0,
28
- guidanceScale: params.guidance,
29
- siZoomScale: 1,
30
- modelID: params.modelId,
31
- cnRotationIsEnabled: true,
32
- negativePrompt: params.negativePrompt,
33
- startingImageZoomPanIsOn: false,
34
- seed: params.seed,
35
- siRotationIsEnabled: true,
36
- cnImageBackgroundColor: 'clear',
37
- strengthIsEnabled: true,
38
- siDragOffset: [0, 0],
39
- useLastImageAsCNImageInAnimation: false,
40
- positivePrompt: params.positivePrompt,
41
- controlNetZoomPanIsOn: false,
42
- cnZoomScaleIsEnabled: true,
43
- currentControlNets: null,
44
- stylePrompt: params.stylePrompt,
45
- cnDragOffsetIsEnabled: true,
46
- frameIndex: 0,
47
- startingImage: null,
48
- cnZoomScale: 1
49
- }
50
- ],
51
- previews: 5,
52
- frameRate: 24,
53
- generatedVideoSeconds: 10,
54
- canvasIsOn: false,
55
- cnVideoFrames: [],
56
- disableSafety: false,
57
- cnVideoFramesSegmentedBackground: [],
58
- cnVideoFramesSegmented: [],
59
- numberOfImages: params.numberOfImages,
60
- cnVideoFramesPose: [],
61
- jobID: id,
62
- siVideoFrames: []
63
- };
64
- }
65
- export default createJobRequestMessage;
66
- //# sourceMappingURL=createJobRequestMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createJobRequestMessage.js","sourceRoot":"","sources":["../../src/Projects/createJobRequestMessage.ts"],"names":[],"mappings":"AAEA,SAAS,uBAAuB,CAAC,EAAU,EAAE,MAAqB;IAChE,OAAO;QACL,sBAAsB,EAAE,KAAK;QAC7B,mBAAmB,EAAE,EAAE;QACvB,6BAA6B,EAAE,EAAE;QACjC,iBAAiB,EAAE,EAAE;QACrB,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,EAAE;QACrB,kBAAkB,EAAE,EAAE;QACtB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,CAAC;gBACb,qBAAqB,EAAE,IAAI;gBAC3B,QAAQ,EAAE,GAAG;gBACb,oBAAoB,EAAE,IAAI;gBAC1B,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,UAAU;gBACtB,mCAAmC,EAAE,IAAI;gBACzC,sBAAsB,EAAE,IAAI;gBAC5B,sBAAsB,EAAE,OAAO;gBAC/B,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,SAAS,EAAE,qCAAqC;gBAChD,eAAe,EAAE,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,MAAM,CAAC,QAAQ;gBAC9B,WAAW,EAAE,CAAC;gBACd,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,mBAAmB,EAAE,IAAI;gBACzB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,wBAAwB,EAAE,KAAK;gBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,mBAAmB,EAAE,IAAI;gBACzB,sBAAsB,EAAE,OAAO;gBAC/B,iBAAiB,EAAE,IAAI;gBACvB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,gCAAgC,EAAE,KAAK;gBACvC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,qBAAqB,EAAE,KAAK;gBAC5B,oBAAoB,EAAE,IAAI;gBAC1B,kBAAkB,EAAE,IAAI;gBACxB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,qBAAqB,EAAE,IAAI;gBAC3B,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,CAAC;aACf;SACF;QACD,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,EAAE;QACb,qBAAqB,EAAE,EAAE;QACzB,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,KAAK;QACpB,gCAAgC,EAAE,EAAE;QACpC,sBAAsB,EAAE,EAAE;QAC1B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,EAAE;KAClB,CAAC;AACJ,CAAC;AAID,eAAe,uBAAuB,CAAC"}