kubo-rpc-client
Version:
A client library for the Kubo RPC API
123 lines • 3.43 kB
TypeScript
import type { HTTPRPCOptions } from '../index.js';
import type { ConfigProfilesAPI } from './profiles/index.js';
import type { HTTPRPCClient } from '../lib/core.js';
export interface Config {
Addresses?: AddressConfig;
API?: APIConfig;
Profiles?: string;
Bootstrap?: string[];
Discovery?: DiscoveryConfig;
Datastore?: DatastoreConfig;
Identity?: IdentityConfig;
Keychain?: KeychainConfig;
Pubsub?: PubsubConfig;
Swarm?: SwarmConfig;
Routing?: RoutingConfig;
}
/**
* Contains information about various listener addresses to be used by this node
*/
export interface AddressConfig {
API?: string;
RPC?: string;
Delegates?: string[];
Gateway?: string;
Swarm?: string[];
Announce?: string[];
NoAnnounce?: string[];
}
export interface APIConfig {
HTTPHeaders?: Record<string, string[]>;
}
export interface DiscoveryConfig {
MDNS?: MDNSDiscovery;
webRTCStar?: WebRTCStarDiscovery;
}
export interface MDNSDiscovery {
Enabled?: boolean;
Interval?: number;
}
export interface WebRTCStarDiscovery {
Enabled?: boolean;
}
export interface DatastoreConfig {
Spec?: DatastoreSpec;
}
export interface DatastoreType {
type: string;
path: string;
sync?: boolean;
shardFunc?: string;
compression?: string;
}
export interface DatastoreMountPoint {
mountpoint: string;
type: string;
prefix: string;
child: DatastoreType;
}
export interface DatastoreSpec {
type?: string;
mounts?: DatastoreMountPoint[];
}
export interface IdentityConfig {
/**
* The unique PKI identity label for this configs peer. Set on init and never
* read, its merely here for convenience. IPFS will always generate the peerID
* from its keypair at runtime.
*/
PeerID: string;
/**
* The base64 encoded protobuf describing (and containing) the nodes private key.
*/
PrivKey: string;
}
export interface KeychainConfig {
DEK?: DEK;
}
export interface DEK {
keyLength?: number;
iterationCount?: number;
salt?: string;
hash?: string;
}
export interface PubsubConfig {
PubSubRouter?: 'gossipsub' | 'floodsub';
Enabled?: boolean;
}
export interface SwarmConfig {
ConnMgr?: ConnMgrConfig;
DisableNatPortMap?: boolean;
}
export interface ConnMgrConfig {
LowWater?: number;
HighWater?: number;
}
export interface RoutingConfig {
Type?: string;
}
export interface ConfigAPI {
/**
* Returns a value from the currently being used config. If the daemon
* is off, it returns the value from the stored config.
*/
get(key: string, options?: HTTPRPCOptions): Promise<string | Record<string, any>>;
/**
* Returns the full config been used. If the daemon is off, it returns the
* stored config
*/
getAll(options?: HTTPRPCOptions): Promise<Config>;
/**
* Adds or replaces a config value. Note that restarting the node will be
* necessary for any change to take effect.
*/
set(key: string, value: any, options?: HTTPRPCOptions): Promise<void>;
/**
* Replaces the full config. Note that restarting the node will be
* necessary for any change to take effect.
*/
replace(config: Config, options?: HTTPRPCOptions): Promise<void>;
profiles: ConfigProfilesAPI;
}
export declare function createConfig(client: HTTPRPCClient): ConfigAPI;
//# sourceMappingURL=index.d.ts.map