@sogni-ai/sogni-client 0.0.1
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/README.md +3 -0
- package/dist/Account/CurrentAccount.d.ts +25 -0
- package/dist/Account/CurrentAccount.js +71 -0
- package/dist/Account/CurrentAccount.js.map +1 -0
- package/dist/Account/index.d.ts +23 -0
- package/dist/Account/index.js +139 -0
- package/dist/Account/index.js.map +1 -0
- package/dist/Account/types.d.ts +16 -0
- package/dist/Account/types.js +3 -0
- package/dist/Account/types.js.map +1 -0
- package/dist/ApiClient/ApiClient.d.ts +42 -0
- package/dist/ApiClient/ApiClient.js +79 -0
- package/dist/ApiClient/ApiClient.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/ErrorCode.d.ts +7 -0
- package/dist/ApiClient/WebSocketClient/ErrorCode.js +18 -0
- package/dist/ApiClient/WebSocketClient/ErrorCode.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/events.d.ts +83 -0
- package/dist/ApiClient/WebSocketClient/events.js +3 -0
- package/dist/ApiClient/WebSocketClient/events.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/index.d.ts +28 -0
- package/dist/ApiClient/WebSocketClient/index.js +161 -0
- package/dist/ApiClient/WebSocketClient/index.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/messages.d.ts +5 -0
- package/dist/ApiClient/WebSocketClient/messages.js +3 -0
- package/dist/ApiClient/WebSocketClient/messages.js.map +1 -0
- package/dist/ApiClient/WebSocketClient/types.d.ts +1 -0
- package/dist/ApiClient/WebSocketClient/types.js +3 -0
- package/dist/ApiClient/WebSocketClient/types.js.map +1 -0
- package/dist/ApiClient/events.d.ts +19 -0
- package/dist/ApiClient/events.js +3 -0
- package/dist/ApiClient/events.js.map +1 -0
- package/dist/ApiGroup.d.ts +15 -0
- package/dist/ApiGroup.js +11 -0
- package/dist/ApiGroup.js.map +1 -0
- package/dist/Projects/AvailableModels.d.ts +17 -0
- package/dist/Projects/AvailableModels.js +19 -0
- package/dist/Projects/AvailableModels.js.map +1 -0
- package/dist/Projects/Job.d.ts +30 -0
- package/dist/Projects/Job.js +40 -0
- package/dist/Projects/Job.js.map +1 -0
- package/dist/Projects/Project.d.ts +42 -0
- package/dist/Projects/Project.js +71 -0
- package/dist/Projects/Project.js.map +1 -0
- package/dist/Projects/createJobRequestMessage.d.ts +63 -0
- package/dist/Projects/createJobRequestMessage.js +68 -0
- package/dist/Projects/createJobRequestMessage.js.map +1 -0
- package/dist/Projects/index.d.ts +38 -0
- package/dist/Projects/index.js +224 -0
- package/dist/Projects/index.js.map +1 -0
- package/dist/Projects/models.json +8906 -0
- package/dist/Projects/types/EstimationResponse.d.ts +40 -0
- package/dist/Projects/types/EstimationResponse.js +3 -0
- package/dist/Projects/types/EstimationResponse.js.map +1 -0
- package/dist/Projects/types/index.d.ts +53 -0
- package/dist/Projects/types/index.js +3 -0
- package/dist/Projects/types/index.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/EIP712Helper.d.ts +13 -0
- package/dist/lib/EIP712Helper.js +39 -0
- package/dist/lib/EIP712Helper.js.map +1 -0
- package/dist/lib/Entity.d.ts +11 -0
- package/dist/lib/Entity.js +22 -0
- package/dist/lib/Entity.js.map +1 -0
- package/dist/lib/RestClient.d.ts +18 -0
- package/dist/lib/RestClient.js +69 -0
- package/dist/lib/RestClient.js.map +1 -0
- package/dist/lib/TypedEventEmitter.d.ts +28 -0
- package/dist/lib/TypedEventEmitter.js +46 -0
- package/dist/lib/TypedEventEmitter.js.map +1 -0
- package/dist/lib/base64.d.ts +2 -0
- package/dist/lib/base64.js +15 -0
- package/dist/lib/base64.js.map +1 -0
- package/dist/lib/isNodejs.d.ts +2 -0
- package/dist/lib/isNodejs.js +5 -0
- package/dist/lib/isNodejs.js.map +1 -0
- package/dist/types/json.d.ts +5 -0
- package/dist/types/json.js +3 -0
- package/dist/types/json.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface EstimationResponse {
|
|
2
|
+
request: Request;
|
|
3
|
+
rate: Rate;
|
|
4
|
+
quote: Quote;
|
|
5
|
+
}
|
|
6
|
+
export interface Quote {
|
|
7
|
+
model: Model;
|
|
8
|
+
job: Job;
|
|
9
|
+
project: Job;
|
|
10
|
+
}
|
|
11
|
+
export interface Job {
|
|
12
|
+
costInRenderSec: string;
|
|
13
|
+
costInUSD: string;
|
|
14
|
+
costInToken: string;
|
|
15
|
+
calculatedStepCount?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface Model {
|
|
18
|
+
weight: string;
|
|
19
|
+
secPerStep: string;
|
|
20
|
+
secPerPreview: string;
|
|
21
|
+
secForCN: string;
|
|
22
|
+
}
|
|
23
|
+
export interface Rate {
|
|
24
|
+
costPerBaseHQRenderInUSD: string;
|
|
25
|
+
tokenMarkePriceUSD: string;
|
|
26
|
+
costPerRenderSecUSD: string;
|
|
27
|
+
costPerRenderSecToken: string;
|
|
28
|
+
network: string;
|
|
29
|
+
networkCostMultiplier: string;
|
|
30
|
+
}
|
|
31
|
+
export interface Request {
|
|
32
|
+
model: string;
|
|
33
|
+
name: string;
|
|
34
|
+
imageCount: number;
|
|
35
|
+
stepCount: number;
|
|
36
|
+
previewCount: number;
|
|
37
|
+
cnEnabled: boolean;
|
|
38
|
+
denoiseStrength: string;
|
|
39
|
+
time: Date;
|
|
40
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EstimationResponse.js","sourceRoot":"","sources":["../../../src/Projects/types/EstimationResponse.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { SupernetType } from '../../ApiClient/WebSocketClient/types';
|
|
2
|
+
export interface AiModel {
|
|
3
|
+
isSD3: boolean;
|
|
4
|
+
modelShortName: string;
|
|
5
|
+
isIOSslowest: boolean;
|
|
6
|
+
hasOriginalVersionOnly: boolean;
|
|
7
|
+
isUserModel: boolean;
|
|
8
|
+
isTurboXL: boolean;
|
|
9
|
+
isRealistic: boolean;
|
|
10
|
+
isArtistic: boolean;
|
|
11
|
+
tier: string;
|
|
12
|
+
splitAttentionSuffix: string;
|
|
13
|
+
isSD3XL: boolean;
|
|
14
|
+
originalAttentionSuffix: string;
|
|
15
|
+
isLCM: boolean;
|
|
16
|
+
zipWeight: number;
|
|
17
|
+
modelId: string;
|
|
18
|
+
modelVersion: string;
|
|
19
|
+
parentId: string;
|
|
20
|
+
quantized: boolean;
|
|
21
|
+
isXL: boolean;
|
|
22
|
+
splitAttentionV2Suffix: string;
|
|
23
|
+
supportsAttentionV2: boolean;
|
|
24
|
+
supportsControlNet: boolean;
|
|
25
|
+
supportsEncoder: boolean;
|
|
26
|
+
onlySplitEinsumV2available: boolean;
|
|
27
|
+
customSize?: number[];
|
|
28
|
+
}
|
|
29
|
+
export interface ProjectParams {
|
|
30
|
+
modelId: string;
|
|
31
|
+
positivePrompt: string;
|
|
32
|
+
negativePrompt: string;
|
|
33
|
+
stylePrompt: string;
|
|
34
|
+
steps: number;
|
|
35
|
+
guidance: number;
|
|
36
|
+
seed: string;
|
|
37
|
+
numberOfImages: number;
|
|
38
|
+
}
|
|
39
|
+
export type ImageUrlParams = {
|
|
40
|
+
imageId: string;
|
|
41
|
+
jobId: string;
|
|
42
|
+
type: 'preview' | 'complete' | 'startingImage' | 'cnImage';
|
|
43
|
+
startContentType?: string;
|
|
44
|
+
};
|
|
45
|
+
export interface EstimateRequest {
|
|
46
|
+
network: SupernetType;
|
|
47
|
+
model: string;
|
|
48
|
+
imageCount: number;
|
|
49
|
+
stepCount: number;
|
|
50
|
+
previewCount: number;
|
|
51
|
+
cnEnabled?: boolean;
|
|
52
|
+
denoiseStrength?: number;
|
|
53
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Projects/types/index.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import Account from './Account';
|
|
2
|
+
import Projects from './Projects';
|
|
3
|
+
interface BaseConfig {
|
|
4
|
+
appId: string;
|
|
5
|
+
restEndpoint: string;
|
|
6
|
+
socketEndpoint: string;
|
|
7
|
+
}
|
|
8
|
+
interface SimpleConfig extends BaseConfig {
|
|
9
|
+
testnet: boolean;
|
|
10
|
+
}
|
|
11
|
+
interface FullConfig extends BaseConfig {
|
|
12
|
+
jsonRpcUrl: string;
|
|
13
|
+
}
|
|
14
|
+
type SogniClientConfig = SimpleConfig | FullConfig;
|
|
15
|
+
declare class SogniClient {
|
|
16
|
+
account: Account;
|
|
17
|
+
projects: Projects;
|
|
18
|
+
private constructor();
|
|
19
|
+
get currentAccount(): import("./Account/CurrentAccount").default;
|
|
20
|
+
/**
|
|
21
|
+
* Instance creation may involve async operations, so we use a static method
|
|
22
|
+
* @param config
|
|
23
|
+
*/
|
|
24
|
+
static createInstance(config: SogniClientConfig): Promise<SogniClient>;
|
|
25
|
+
}
|
|
26
|
+
export default SogniClient;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const ethers_1 = require("ethers");
|
|
16
|
+
const Account_1 = __importDefault(require("./Account"));
|
|
17
|
+
const ApiClient_1 = __importDefault(require("./ApiClient/ApiClient"));
|
|
18
|
+
const EIP712Helper_1 = __importDefault(require("./lib/EIP712Helper"));
|
|
19
|
+
const Projects_1 = __importDefault(require("./Projects"));
|
|
20
|
+
class SogniClient {
|
|
21
|
+
constructor(config) {
|
|
22
|
+
this.account = new Account_1.default(config);
|
|
23
|
+
this.projects = new Projects_1.default(config);
|
|
24
|
+
}
|
|
25
|
+
get currentAccount() {
|
|
26
|
+
return this.account.currentAccount;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Instance creation may involve async operations, so we use a static method
|
|
30
|
+
* @param config
|
|
31
|
+
*/
|
|
32
|
+
static createInstance(config) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
const client = new ApiClient_1.default(config.restEndpoint, config.socketEndpoint, config.appId);
|
|
35
|
+
let provider;
|
|
36
|
+
if ('jsonRpcUrl' in config) {
|
|
37
|
+
provider = new ethers_1.JsonRpcProvider(config.jsonRpcUrl);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
provider = (0, ethers_1.getDefaultProvider)(config.testnet ? 84532 : 8453);
|
|
41
|
+
}
|
|
42
|
+
const chainId = yield provider.getNetwork().then((network) => network.chainId);
|
|
43
|
+
const eip712 = new EIP712Helper_1.default({
|
|
44
|
+
name: 'Sogni-testnet',
|
|
45
|
+
version: '1',
|
|
46
|
+
chainId: chainId.toString()
|
|
47
|
+
});
|
|
48
|
+
return new SogniClient({ client, provider, eip712 });
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.default = SogniClient;
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,mCAA+E;AAC/E,wDAAgC;AAChC,sEAA8C;AAE9C,sEAA8C;AAC9C,0DAAkC;AAkBlC,MAAM,WAAW;IAIf,YAAoB,MAAiB;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAO,cAAc,CAAC,MAAyB;;YACnD,MAAM,MAAM,GAAG,IAAI,mBAAS,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACvF,IAAI,QAA0B,CAAC;YAC/B,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;gBAC3B,QAAQ,GAAG,IAAI,wBAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,IAAA,2BAAkB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,IAAI,sBAAY,CAAC;gBAC9B,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,GAAG;gBACZ,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;aAC5B,CAAC,CAAC;YACH,OAAO,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;KAAA;CACF;AAED,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AbstractSigner } from 'ethers';
|
|
2
|
+
type SupportedTypes = 'authentication' | 'signup';
|
|
3
|
+
interface Options {
|
|
4
|
+
name: string;
|
|
5
|
+
version: string;
|
|
6
|
+
chainId: string;
|
|
7
|
+
}
|
|
8
|
+
declare class EIP712Helper {
|
|
9
|
+
private readonly EIP712Domain;
|
|
10
|
+
constructor(options: Options);
|
|
11
|
+
signTypedData(signer: AbstractSigner, type: SupportedTypes, data: Record<string, string | number>): Promise<string>;
|
|
12
|
+
}
|
|
13
|
+
export default EIP712Helper;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const EIP712_TYPES = {
|
|
4
|
+
authentication: {
|
|
5
|
+
Authentication: [
|
|
6
|
+
{ name: 'walletAddress', type: 'address' },
|
|
7
|
+
{ name: 'nonce', type: 'string' }
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
signup: {
|
|
11
|
+
Signup: [
|
|
12
|
+
{ name: 'appid', type: 'string' },
|
|
13
|
+
{ name: 'username', type: 'string' },
|
|
14
|
+
{ name: 'email', type: 'string' },
|
|
15
|
+
{ name: 'subscribe', type: 'uint256' },
|
|
16
|
+
{ name: 'walletAddress', type: 'address' },
|
|
17
|
+
{ name: 'nonce', type: 'string' }
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
class EIP712Helper {
|
|
22
|
+
constructor(options) {
|
|
23
|
+
this.EIP712Domain = {
|
|
24
|
+
name: options.name,
|
|
25
|
+
version: options.version,
|
|
26
|
+
chainId: options.chainId,
|
|
27
|
+
verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC'
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
signTypedData(signer, type, data) {
|
|
31
|
+
const types = EIP712_TYPES[type];
|
|
32
|
+
if (!types) {
|
|
33
|
+
throw new Error(`Unknown type: ${type}`);
|
|
34
|
+
}
|
|
35
|
+
return signer.signTypedData(this.EIP712Domain, types, data);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = EIP712Helper;
|
|
39
|
+
//# sourceMappingURL=EIP712Helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EIP712Helper.js","sourceRoot":"","sources":["../../src/lib/EIP712Helper.ts"],"names":[],"mappings":";;AAKA,MAAM,YAAY,GAAwC;IACxD,cAAc,EAAE;QACd,cAAc,EAAE;YACd,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;SAClC;KACF;IACD,MAAM,EAAE;QACN,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;SAClC;KACF;CACF,CAAC;AAQF,MAAM,YAAY;IAGhB,YAAY,OAAgB;QAC1B,IAAI,CAAC,YAAY,GAAG;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,iBAAiB,EAAE,4CAA4C;SAChE,CAAC;IACJ,CAAC;IAED,aAAa,CACX,MAAsB,EACtB,IAAoB,EACpB,IAAqC;QAErC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,kBAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import TypedEventEmitter from './TypedEventEmitter';
|
|
2
|
+
type EntityEvents<D> = {
|
|
3
|
+
updated: Partial<D>;
|
|
4
|
+
};
|
|
5
|
+
declare abstract class Entity<D> extends TypedEventEmitter<EntityEvents<D>> {
|
|
6
|
+
protected data: D;
|
|
7
|
+
constructor(data: D);
|
|
8
|
+
_update(delta: Partial<D>): void;
|
|
9
|
+
toJSON(): D;
|
|
10
|
+
}
|
|
11
|
+
export default Entity;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const lodash_1 = require("lodash");
|
|
7
|
+
const TypedEventEmitter_1 = __importDefault(require("./TypedEventEmitter"));
|
|
8
|
+
class Entity extends TypedEventEmitter_1.default {
|
|
9
|
+
constructor(data) {
|
|
10
|
+
super();
|
|
11
|
+
this.data = data;
|
|
12
|
+
}
|
|
13
|
+
_update(delta) {
|
|
14
|
+
this.data = Object.assign(Object.assign({}, this.data), delta);
|
|
15
|
+
this.emit('updated', delta);
|
|
16
|
+
}
|
|
17
|
+
toJSON() {
|
|
18
|
+
return (0, lodash_1.cloneDeep)(this.data);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = Entity;
|
|
22
|
+
//# sourceMappingURL=Entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/lib/Entity.ts"],"names":[],"mappings":";;;;;AAAA,mCAAmC;AACnC,4EAAoD;AAMpD,MAAe,MAAU,SAAQ,2BAAkC;IAGjE,YAAY,IAAO;QACjB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,KAAiB;QACvB,IAAI,CAAC,IAAI,mCAAQ,IAAI,CAAC,IAAI,GAAK,KAAK,CAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,kBAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import TypedEventEmitter, { EventMap } from './TypedEventEmitter';
|
|
2
|
+
import { JSONValue } from '../types/json';
|
|
3
|
+
export interface AuthData {
|
|
4
|
+
token: string;
|
|
5
|
+
}
|
|
6
|
+
declare class RestClient<E extends EventMap = never> extends TypedEventEmitter<E> {
|
|
7
|
+
readonly baseUrl: string;
|
|
8
|
+
_auth: AuthData | null;
|
|
9
|
+
constructor(baseUrl: string);
|
|
10
|
+
get auth(): AuthData | null;
|
|
11
|
+
set auth(auth: AuthData | null);
|
|
12
|
+
private formatUrl;
|
|
13
|
+
private request;
|
|
14
|
+
private processResponse;
|
|
15
|
+
get<T = JSONValue>(path: string, query?: Record<string, string>): Promise<T>;
|
|
16
|
+
post<T = JSONValue>(path: string, body?: Record<string, unknown>): Promise<T>;
|
|
17
|
+
}
|
|
18
|
+
export default RestClient;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const ApiClient_1 = require("../ApiClient/ApiClient");
|
|
16
|
+
const TypedEventEmitter_1 = __importDefault(require("./TypedEventEmitter"));
|
|
17
|
+
class RestClient extends TypedEventEmitter_1.default {
|
|
18
|
+
constructor(baseUrl) {
|
|
19
|
+
super();
|
|
20
|
+
this._auth = null;
|
|
21
|
+
this.baseUrl = baseUrl;
|
|
22
|
+
}
|
|
23
|
+
get auth() {
|
|
24
|
+
return this._auth;
|
|
25
|
+
}
|
|
26
|
+
set auth(auth) {
|
|
27
|
+
this._auth = auth;
|
|
28
|
+
}
|
|
29
|
+
formatUrl(relativeUrl, query = {}) {
|
|
30
|
+
const url = new URL(relativeUrl, this.baseUrl);
|
|
31
|
+
Object.keys(query).forEach((key) => {
|
|
32
|
+
url.searchParams.append(key, query[key]);
|
|
33
|
+
});
|
|
34
|
+
return url.toString();
|
|
35
|
+
}
|
|
36
|
+
request(url, options = {}) {
|
|
37
|
+
return fetch(url, Object.assign(Object.assign({}, options), { headers: Object.assign(Object.assign({}, (options.headers || {})), (this.auth ? { Authorization: this.auth.token } : {})) })).then((r) => this.processResponse(r));
|
|
38
|
+
}
|
|
39
|
+
processResponse(response) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
let responseData;
|
|
42
|
+
try {
|
|
43
|
+
responseData = yield response.json();
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
console.error('Failed to parse response:', e);
|
|
47
|
+
throw new Error('Failed to parse response');
|
|
48
|
+
}
|
|
49
|
+
if (!response.ok) {
|
|
50
|
+
throw new ApiClient_1.ApiError(response.status, responseData);
|
|
51
|
+
}
|
|
52
|
+
return responseData;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
get(path, query = {}) {
|
|
56
|
+
return this.request(this.formatUrl(path, query), query);
|
|
57
|
+
}
|
|
58
|
+
post(path, body = {}) {
|
|
59
|
+
return this.request(this.formatUrl(path), {
|
|
60
|
+
method: 'POST',
|
|
61
|
+
headers: {
|
|
62
|
+
'Content-Type': 'application/json'
|
|
63
|
+
},
|
|
64
|
+
body: JSON.stringify(body)
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.default = RestClient;
|
|
69
|
+
//# sourceMappingURL=RestClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../src/lib/RestClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAAoE;AACpE,4EAAkE;AAOlE,MAAM,UAAuC,SAAQ,2BAAoB;IAIvE,YAAY,OAAe;QACzB,KAAK,EAAE,CAAC;QAHV,UAAK,GAAoB,IAAI,CAAC;QAI5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,IAAqB;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEO,SAAS,CAAC,WAAmB,EAAE,QAAgC,EAAE;QACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEO,OAAO,CAAgB,GAAW,EAAE,UAAuB,EAAE;QACnE,OAAO,KAAK,CAAC,GAAG,kCACX,OAAO,KACV,OAAO,kCACF,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,GACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAE1D,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAM,CAAC,CAAC;IAC/C,CAAC;IAEa,eAAe,CAAC,QAAkB;;YAC9C,IAAI,YAAY,CAAC;YACjB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,oBAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAgC,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,YAAyB,CAAC;QACnC,CAAC;KAAA;IAED,GAAG,CAAgB,IAAY,EAAE,QAAgC,EAAE;QACjE,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAgB,IAAY,EAAE,OAAgC,EAAE;QAClE,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;CACF;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type EventMap = {
|
|
2
|
+
[key: string]: unknown;
|
|
3
|
+
};
|
|
4
|
+
export type EventListener<D> = (data: D) => void;
|
|
5
|
+
declare abstract class TypedEventEmitter<E extends EventMap> {
|
|
6
|
+
protected listeners: {
|
|
7
|
+
[K in keyof E]?: EventListener<E[K]>[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Add an event listener, returns a function that can be called to remove the listener
|
|
11
|
+
* @param event
|
|
12
|
+
* @param listener
|
|
13
|
+
*/
|
|
14
|
+
on<T extends keyof E>(event: T, listener: EventListener<E[T]>): () => void;
|
|
15
|
+
/**
|
|
16
|
+
* Remove an event listener
|
|
17
|
+
* @param event
|
|
18
|
+
* @param listener
|
|
19
|
+
*/
|
|
20
|
+
off<T extends keyof E>(event: T, listener: EventListener<E[T]>): void;
|
|
21
|
+
/**
|
|
22
|
+
* Dispatch an event to all listeners
|
|
23
|
+
* @param event
|
|
24
|
+
* @param data
|
|
25
|
+
*/
|
|
26
|
+
emit<T extends keyof E>(event: T, data: E[T]): void;
|
|
27
|
+
}
|
|
28
|
+
export default TypedEventEmitter;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class TypedEventEmitter {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.listeners = {};
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Add an event listener, returns a function that can be called to remove the listener
|
|
9
|
+
* @param event
|
|
10
|
+
* @param listener
|
|
11
|
+
*/
|
|
12
|
+
on(event, listener) {
|
|
13
|
+
if (!this.listeners[event]) {
|
|
14
|
+
this.listeners[event] = [];
|
|
15
|
+
}
|
|
16
|
+
this.listeners[event].push(listener);
|
|
17
|
+
return () => {
|
|
18
|
+
this.off(event, listener);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Remove an event listener
|
|
23
|
+
* @param event
|
|
24
|
+
* @param listener
|
|
25
|
+
*/
|
|
26
|
+
off(event, listener) {
|
|
27
|
+
if (!this.listeners[event]) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.listeners[event] = this.listeners[event].filter((l) => l !== listener);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Dispatch an event to all listeners
|
|
34
|
+
* @param event
|
|
35
|
+
* @param data
|
|
36
|
+
*/
|
|
37
|
+
emit(event, data) {
|
|
38
|
+
const listeners = this.listeners[event];
|
|
39
|
+
if (!listeners) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
listeners.forEach((listener) => listener(data));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.default = TypedEventEmitter;
|
|
46
|
+
//# sourceMappingURL=TypedEventEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypedEventEmitter.js","sourceRoot":"","sources":["../../src/lib/TypedEventEmitter.ts"],"names":[],"mappings":";;AAMA,MAAe,iBAAiB;IAAhC;QACY,cAAS,GAA+C,EAAE,CAAC;IAyCvE,CAAC;IAvCC;;;;OAIG;IACH,EAAE,CAAoB,KAAQ,EAAE,QAA6B;QAC3D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAoB,KAAQ,EAAE,QAA6B;QAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC/E,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAoB,KAAQ,EAAE,IAAU;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;CACF;AAED,kBAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.base64Encode = base64Encode;
|
|
7
|
+
exports.base64Decode = base64Decode;
|
|
8
|
+
const isNodejs_1 = __importDefault(require("./isNodejs"));
|
|
9
|
+
function base64Encode(str) {
|
|
10
|
+
return isNodejs_1.default ? Buffer.from(str).toString('base64') : btoa(str);
|
|
11
|
+
}
|
|
12
|
+
function base64Decode(str) {
|
|
13
|
+
return isNodejs_1.default ? Buffer.from(str, 'base64').toString() : atob(str);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=base64.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/lib/base64.ts"],"names":[],"mappings":";;;;;AAEA,oCAEC;AAED,oCAEC;AARD,0DAAkC;AAElC,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,kBAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,kBAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isNodejs.js","sourceRoot":"","sources":["../../src/lib/isNodejs.ts"],"names":[],"mappings":";;AAAA,MAAM,QAAQ,GACZ,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC;AAE9F,kBAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/types/json.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sogni-ai/sogni-client",
|
|
3
|
+
"publishConfig": {
|
|
4
|
+
"access": "public"
|
|
5
|
+
},
|
|
6
|
+
"version": "0.0.1",
|
|
7
|
+
"description": "Sogni.ai API wrapper",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"README.md",
|
|
12
|
+
"dist/"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"clean": "rimraf ./dist",
|
|
16
|
+
"prepublish": "npm run build",
|
|
17
|
+
"build": "npm run clean && tsc --project tsconfig.json",
|
|
18
|
+
"watch": "npm run clean && tsc --watch --project tsconfig.json",
|
|
19
|
+
"prettier": "prettier --check ./src",
|
|
20
|
+
"prettier:fix": "prettier --write ./src"
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/Sogni-AI/sogni-client.git"
|
|
25
|
+
},
|
|
26
|
+
"author": "",
|
|
27
|
+
"license": "ISC",
|
|
28
|
+
"bugs": {
|
|
29
|
+
"url": "https://github.com/Sogni-AI/sogni-client/issues"
|
|
30
|
+
},
|
|
31
|
+
"homepage": "https://github.com/Sogni-AI/sogni-client#readme",
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@lukeed/uuid": "^2.0.1",
|
|
34
|
+
"ethers": "^6.13.4",
|
|
35
|
+
"isomorphic-ws": "^5.0.0",
|
|
36
|
+
"js-cookie": "^3.0.5",
|
|
37
|
+
"jwt-decode": "^4.0.0",
|
|
38
|
+
"lodash": "^4.17.21",
|
|
39
|
+
"ws": "^8.18.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/js-cookie": "^3.0.6",
|
|
43
|
+
"@types/lodash": "^4.17.13",
|
|
44
|
+
"@types/ws": "^8.5.13",
|
|
45
|
+
"prettier": "^3.3.3",
|
|
46
|
+
"rimraf": "^6.0.1",
|
|
47
|
+
"typescript": "^5.6.3"
|
|
48
|
+
}
|
|
49
|
+
}
|