@sogni-ai/sogni-client 0.4.0-aplha.1 → 0.4.0-aplha.11

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 (51) hide show
  1. package/dist/Account/CurrentAccount.d.ts +12 -2
  2. package/dist/Account/CurrentAccount.js.map +1 -1
  3. package/dist/Account/index.d.ts +6 -7
  4. package/dist/Account/index.js +12 -8
  5. package/dist/Account/index.js.map +1 -1
  6. package/dist/ApiClient/WebSocketClient/events.d.ts +7 -1
  7. package/dist/ApiClient/WebSocketClient/index.d.ts +1 -1
  8. package/dist/ApiClient/WebSocketClient/index.js +14 -5
  9. package/dist/ApiClient/WebSocketClient/index.js.map +1 -1
  10. package/dist/ApiClient/WebSocketClient/messages.d.ts +2 -0
  11. package/dist/Projects/Job.d.ts +20 -1
  12. package/dist/Projects/Job.js +72 -1
  13. package/dist/Projects/Job.js.map +1 -1
  14. package/dist/Projects/Project.d.ts +21 -3
  15. package/dist/Projects/Project.js +110 -2
  16. package/dist/Projects/Project.js.map +1 -1
  17. package/dist/Projects/createJobRequestMessage.d.ts +1 -61
  18. package/dist/Projects/createJobRequestMessage.js +5 -1
  19. package/dist/Projects/createJobRequestMessage.js.map +1 -1
  20. package/dist/Projects/index.d.ts +22 -3
  21. package/dist/Projects/index.js +70 -12
  22. package/dist/Projects/index.js.map +1 -1
  23. package/dist/Projects/types/RawProject.d.ts +87 -0
  24. package/dist/Projects/types/RawProject.js +3 -0
  25. package/dist/Projects/types/RawProject.js.map +1 -0
  26. package/dist/Projects/types/index.d.ts +4 -0
  27. package/dist/lib/DataEntity.d.ts +1 -0
  28. package/dist/lib/DataEntity.js +2 -0
  29. package/dist/lib/DataEntity.js.map +1 -1
  30. package/dist/lib/base64.js +8 -6
  31. package/dist/lib/base64.js.map +1 -1
  32. package/dist/types/ErrorData.d.ts +1 -0
  33. package/dist/version.d.ts +1 -1
  34. package/dist/version.js +1 -1
  35. package/dist/version.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/Account/CurrentAccount.ts +11 -1
  38. package/src/Account/index.ts +13 -9
  39. package/src/ApiClient/WebSocketClient/events.ts +5 -1
  40. package/src/ApiClient/WebSocketClient/index.ts +15 -6
  41. package/src/ApiClient/WebSocketClient/messages.ts +2 -0
  42. package/src/Projects/Job.ts +82 -1
  43. package/src/Projects/Project.ts +134 -5
  44. package/src/Projects/createJobRequestMessage.ts +5 -1
  45. package/src/Projects/index.ts +75 -14
  46. package/src/Projects/types/RawProject.ts +121 -0
  47. package/src/Projects/types/index.ts +4 -0
  48. package/src/lib/DataEntity.ts +3 -0
  49. package/src/lib/base64.ts +8 -4
  50. package/src/types/ErrorData.ts +1 -0
  51. package/src/version.ts +1 -1
@@ -0,0 +1,121 @@
1
+ import { SupernetType } from '../../ApiClient/WebSocketClient/types';
2
+
3
+ export interface RawProject {
4
+ id: string;
5
+ SID: number;
6
+ artist: Account;
7
+ model: ProjectModel;
8
+ imageCount: number;
9
+ stepCount: number;
10
+ previewCount: number;
11
+ hasGuideImage: boolean;
12
+ denoiseStrength: string;
13
+ costEstimate: CostEstimate;
14
+ costActual: CostActual;
15
+ createTime: number;
16
+ updateTime: number;
17
+ endTime: number;
18
+ status: RawProjectStatus;
19
+ reason: 'allJobsCompleted' | 'artistCanceled';
20
+ network: SupernetType;
21
+ txId: string;
22
+ workerJobs: RawJob[];
23
+ completedWorkerJobs: RawJob[];
24
+ }
25
+
26
+ type RawProjectStatus =
27
+ | 'pending'
28
+ | 'active'
29
+ | 'assigned'
30
+ | 'progress'
31
+ | 'errored'
32
+ | 'completed'
33
+ | 'cancelled';
34
+
35
+ export interface Account {
36
+ id?: string;
37
+ clientSID?: number;
38
+ address?: string;
39
+ addressSID?: number;
40
+ name?: string;
41
+ username?: string;
42
+ }
43
+
44
+ export interface RawJob {
45
+ id: string;
46
+ SID: string;
47
+ imgID?: string;
48
+ worker: Account;
49
+ createTime: number;
50
+ startTime: number | null;
51
+ updateTime: number;
52
+ endTime: number;
53
+ status: WorkerJobStatus;
54
+ reason: WorkerJobReason;
55
+ performedSteps: number;
56
+ triggeredNSFWFilter: boolean;
57
+ seedUsed: number;
58
+ costActual: CostActual;
59
+ network: SupernetType;
60
+ txId?: string;
61
+ }
62
+
63
+ export interface CostActual {
64
+ costInRenderSec: string;
65
+ costInUSD: string;
66
+ costInToken: string;
67
+ calculatedStepCount?: number;
68
+ }
69
+
70
+ export type WorkerJobReason =
71
+ | 'artistCanceled'
72
+ | 'artistDisconnected'
73
+ | 'genfailure'
74
+ | 'imgUploadFailure'
75
+ | 'jobCompleted'
76
+ | 'jobTimedOut'
77
+ | 'workerDisconnected'
78
+ | 'workerReconnected';
79
+
80
+ export type WorkerJobStatus =
81
+ | 'created'
82
+ | 'queued'
83
+ | 'assigned'
84
+ | 'initiatingModel'
85
+ | 'jobStarted'
86
+ | 'jobProgress'
87
+ | 'jobCompleted'
88
+ | 'jobError';
89
+
90
+ export interface CostEstimate {
91
+ rate: Rate;
92
+ quote: Quote;
93
+ }
94
+
95
+ export interface Quote {
96
+ model: QuoteModel;
97
+ job: CostActual;
98
+ project: CostActual;
99
+ }
100
+
101
+ export interface QuoteModel {
102
+ weight: string;
103
+ secPerStep: string;
104
+ secPerPreview: string;
105
+ secForCN: string;
106
+ }
107
+
108
+ export interface Rate {
109
+ costPerBaseHQRenderInUSD: string;
110
+ tokenMarkePriceUSD: string;
111
+ costPerRenderSecUSD: string;
112
+ costPerRenderSecToken: string;
113
+ network: SupernetType;
114
+ networkCostMultiplier: string;
115
+ }
116
+
117
+ export interface ProjectModel {
118
+ id: string;
119
+ SID: number;
120
+ name: string;
121
+ }
@@ -68,6 +68,10 @@ export interface ProjectParams {
68
68
  * Guidance scale. For most Stable Diffusion models, optimal value is 7.5
69
69
  */
70
70
  guidance: number;
71
+ /**
72
+ * Override current network type. Default value can be read from `client.account.currentAccount.network`
73
+ */
74
+ network?: SupernetType;
71
75
  /**
72
76
  * Disable NSFW filter for Project. Default is false, meaning NSFW filter is enabled.
73
77
  * If image triggers NSFW filter, it will not be available for download.
@@ -11,6 +11,8 @@ export interface EntityEvents {
11
11
  abstract class DataEntity<D, E extends EntityEvents = EntityEvents> extends TypedEventEmitter<E> {
12
12
  protected data: D;
13
13
 
14
+ protected lastUpdated: Date = new Date();
15
+
14
16
  constructor(data: D) {
15
17
  super();
16
18
  this.data = data;
@@ -24,6 +26,7 @@ abstract class DataEntity<D, E extends EntityEvents = EntityEvents> extends Type
24
26
  //@ts-ignore
25
27
  const changedKeys = Object.keys(delta).filter((key) => this.data[key] !== delta[key]);
26
28
  this.data = { ...this.data, ...delta };
29
+ this.lastUpdated = new Date();
27
30
  this.emit('updated', changedKeys);
28
31
  }
29
32
 
package/src/lib/base64.ts CHANGED
@@ -1,9 +1,13 @@
1
- import isNodejs from './isNodejs';
2
-
3
1
  export function base64Encode(str: string): string {
4
- return isNodejs ? Buffer.from(str).toString('base64') : btoa(str);
2
+ const encoder = new TextEncoder();
3
+ const uint8Array = encoder.encode(str);
4
+ const binaryString = String.fromCharCode(...uint8Array);
5
+ return btoa(binaryString);
5
6
  }
6
7
 
7
8
  export function base64Decode(str: string): string {
8
- return isNodejs ? Buffer.from(str, 'base64').toString() : atob(str);
9
+ const binaryString = atob(str);
10
+ const binaryArray = Uint8Array.from(binaryString, (char) => char.charCodeAt(0));
11
+ const decoder = new TextDecoder();
12
+ return decoder.decode(binaryArray);
9
13
  }
@@ -1,5 +1,6 @@
1
1
  interface ErrorData {
2
2
  code: number;
3
+ originalCode?: string;
3
4
  message: string;
4
5
  }
5
6
 
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const LIB_VERSION = "0.4.0-aplha.1";
1
+ export const LIB_VERSION = "0.4.0-aplha.11";