@sogni-ai/sogni-client 0.3.2 → 0.3.3
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/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -3
- package/src/Account/CurrentAccount.ts +101 -0
- package/src/Account/index.ts +243 -0
- package/src/Account/types.ts +90 -0
- package/src/ApiClient/WebSocketClient/ErrorCode.ts +15 -0
- package/src/ApiClient/WebSocketClient/events.ts +94 -0
- package/src/ApiClient/WebSocketClient/index.ts +203 -0
- package/src/ApiClient/WebSocketClient/messages.ts +7 -0
- package/src/ApiClient/WebSocketClient/types.ts +1 -0
- package/src/ApiClient/events.ts +20 -0
- package/src/ApiClient/index.ts +124 -0
- package/src/ApiGroup.ts +25 -0
- package/src/Projects/Job.ts +124 -0
- package/src/Projects/Project.ts +185 -0
- package/src/Projects/createJobRequestMessage.ts +99 -0
- package/src/Projects/index.ts +340 -0
- package/src/Projects/models.json +8906 -0
- package/src/Projects/types/EstimationResponse.ts +45 -0
- package/src/Projects/types/events.ts +78 -0
- package/src/Projects/types/index.ts +146 -0
- package/src/Stats/index.ts +15 -0
- package/src/Stats/types.ts +34 -0
- package/src/events.ts +5 -0
- package/src/index.ts +120 -0
- package/src/lib/DataEntity.ts +38 -0
- package/src/lib/DefaultLogger.ts +47 -0
- package/src/lib/EIP712Helper.ts +57 -0
- package/src/lib/RestClient.ts +76 -0
- package/src/lib/TypedEventEmitter.ts +66 -0
- package/src/lib/base64.ts +9 -0
- package/src/lib/getUUID.ts +8 -0
- package/src/lib/isNodejs.ts +4 -0
- package/src/types/ErrorData.ts +6 -0
- package/src/types/json.ts +5 -0
- package/src/version.ts +1 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export interface EventMap {
|
|
2
|
+
[event: string]: any;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* @inline
|
|
6
|
+
*/
|
|
7
|
+
export type EventListener<D> = (data: D) => void;
|
|
8
|
+
|
|
9
|
+
abstract class TypedEventEmitter<E extends EventMap> {
|
|
10
|
+
protected listeners: { [K in keyof E]?: EventListener<E[K]>[] } = {};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Add an event listener, returns a function that can be called to remove the listener
|
|
14
|
+
* @param event
|
|
15
|
+
* @param listener
|
|
16
|
+
*/
|
|
17
|
+
on<T extends keyof E>(event: T, listener: EventListener<E[T]>) {
|
|
18
|
+
if (!this.listeners[event]) {
|
|
19
|
+
this.listeners[event] = [];
|
|
20
|
+
}
|
|
21
|
+
this.listeners[event]!.push(listener);
|
|
22
|
+
return () => {
|
|
23
|
+
this.off(event, listener);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Add an event listener that will be called only once
|
|
29
|
+
* @param event
|
|
30
|
+
* @param listener
|
|
31
|
+
*/
|
|
32
|
+
once<T extends keyof E>(event: T, listener: EventListener<E[T]>) {
|
|
33
|
+
const remove = this.on(event, (data) => {
|
|
34
|
+
remove();
|
|
35
|
+
listener(data);
|
|
36
|
+
});
|
|
37
|
+
return remove;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Remove an event listener
|
|
42
|
+
* @param event
|
|
43
|
+
* @param listener
|
|
44
|
+
*/
|
|
45
|
+
off<T extends keyof E>(event: T, listener: EventListener<E[T]>) {
|
|
46
|
+
if (!this.listeners[event]) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
this.listeners[event] = this.listeners[event]!.filter((l) => l !== listener);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Dispatch an event to all listeners
|
|
54
|
+
* @param event
|
|
55
|
+
* @param data
|
|
56
|
+
*/
|
|
57
|
+
protected emit<T extends keyof E>(event: T, data: E[T]) {
|
|
58
|
+
const listeners = this.listeners[event];
|
|
59
|
+
if (!listeners) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
listeners.forEach((listener) => listener(data));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export default TypedEventEmitter;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import isNodejs from './isNodejs';
|
|
2
|
+
|
|
3
|
+
export function base64Encode(str: string): string {
|
|
4
|
+
return isNodejs ? Buffer.from(str).toString('base64') : btoa(str);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function base64Decode(str: string): string {
|
|
8
|
+
return isNodejs ? Buffer.from(str, 'base64').toString() : atob(str);
|
|
9
|
+
}
|
package/src/version.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const LIB_VERSION = "0.3.3";
|