@sogni-ai/sogni-client 0.3.1 → 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.
Files changed (38) hide show
  1. package/README.md +1 -1
  2. package/dist/version.d.ts +1 -1
  3. package/dist/version.js +1 -1
  4. package/package.json +5 -3
  5. package/src/Account/CurrentAccount.ts +101 -0
  6. package/src/Account/index.ts +243 -0
  7. package/src/Account/types.ts +90 -0
  8. package/src/ApiClient/WebSocketClient/ErrorCode.ts +15 -0
  9. package/src/ApiClient/WebSocketClient/events.ts +94 -0
  10. package/src/ApiClient/WebSocketClient/index.ts +203 -0
  11. package/src/ApiClient/WebSocketClient/messages.ts +7 -0
  12. package/src/ApiClient/WebSocketClient/types.ts +1 -0
  13. package/src/ApiClient/events.ts +20 -0
  14. package/src/ApiClient/index.ts +124 -0
  15. package/src/ApiGroup.ts +25 -0
  16. package/src/Projects/Job.ts +124 -0
  17. package/src/Projects/Project.ts +185 -0
  18. package/src/Projects/createJobRequestMessage.ts +99 -0
  19. package/src/Projects/index.ts +340 -0
  20. package/src/Projects/models.json +8906 -0
  21. package/src/Projects/types/EstimationResponse.ts +45 -0
  22. package/src/Projects/types/events.ts +78 -0
  23. package/src/Projects/types/index.ts +146 -0
  24. package/src/Stats/index.ts +15 -0
  25. package/src/Stats/types.ts +34 -0
  26. package/src/events.ts +5 -0
  27. package/src/index.ts +120 -0
  28. package/src/lib/DataEntity.ts +38 -0
  29. package/src/lib/DefaultLogger.ts +47 -0
  30. package/src/lib/EIP712Helper.ts +57 -0
  31. package/src/lib/RestClient.ts +76 -0
  32. package/src/lib/TypedEventEmitter.ts +66 -0
  33. package/src/lib/base64.ts +9 -0
  34. package/src/lib/getUUID.ts +8 -0
  35. package/src/lib/isNodejs.ts +4 -0
  36. package/src/types/ErrorData.ts +6 -0
  37. package/src/types/json.ts +5 -0
  38. 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
+ }
@@ -0,0 +1,8 @@
1
+ import { v4 as uuidV4 } from '@lukeed/uuid';
2
+
3
+ // Mac app is using uppercase UUIDs, we need to keep it consistent so Mac workers can process the data
4
+ function getUUID() {
5
+ return uuidV4().toUpperCase();
6
+ }
7
+
8
+ export default getUUID;
@@ -0,0 +1,4 @@
1
+ const isNodejs =
2
+ typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
3
+
4
+ export default isNodejs;
@@ -0,0 +1,6 @@
1
+ interface ErrorData {
2
+ code: number;
3
+ message: string;
4
+ }
5
+
6
+ export default ErrorData;
@@ -0,0 +1,5 @@
1
+ export type JSONValue = undefined | null | string | number | boolean | JSONObject | JSONArray;
2
+
3
+ export type JSONObject = { [x: string]: JSONValue };
4
+
5
+ export type JSONArray = Array<JSONValue>;
package/src/version.ts ADDED
@@ -0,0 +1 @@
1
+ export const LIB_VERSION = "0.3.3";