@ceramicnetwork/core
Version:
Typescript implementation of the Ceramic protocol
135 lines • 5.83 kB
TypeScript
import { Dispatcher } from './dispatcher.js';
import { StreamID, CommitID, StreamRef } from '@ceramicnetwork/streamid';
import { IpfsTopology } from '@ceramicnetwork/ipfs-topology';
import { CreateOpts, Stream, StreamHandler, LoadOpts, CeramicCommit, IpfsApi, MultiQuery, PinningBackendStatic, LoggerProvider, UpdateOpts, SyncOptions, AnchorStatus, StreamState, AdminApi, NodeStatusResponse, AnchorOpts, CeramicSigner, StreamStateLoader, StreamReaderWriter } from '@ceramicnetwork/common';
import { DID } from 'dids';
import { PinStoreFactory } from './store/pin-store-factory.js';
import { Repository } from './state-management/repository.js';
import { HandlersMap } from './handlers-map.js';
import { type IndexingConfig, LocalIndexApi } from '@ceramicnetwork/indexing';
import { ShutdownSignal } from './shutdown-signal.js';
import { ProvidersCache } from './providers-cache.js';
import { type CeramicNetworkOptions } from './initialization/network-options.js';
import type { AnchorService } from './anchor/anchor-service.js';
import { Feed, type PublicFeed } from './feed.js';
import { IReconApi } from './recon.js';
export declare const DEFAULT_STATE_STORE_DIRECTORY: string;
export interface CeramicConfig {
ethereumRpcUrl?: string;
anchorServiceUrl?: string;
anchorServiceAuthMethod?: string;
stateStoreDirectory?: string;
ipfsPinningEndpoints?: string[];
pinningBackends?: PinningBackendStatic[];
loggerProvider?: LoggerProvider;
readOnly?: boolean;
indexing?: IndexingConfig;
metrics?: MetricsConfig;
networkName?: string;
pubsubTopic?: string;
streamCacheLimit?: number;
concurrentRequestsLimit?: number;
useCentralizedPeerDiscovery?: boolean;
syncOverride?: SyncOptions;
disablePeerDataSync?: boolean;
networkId?: number;
[index: string]: any;
}
export interface CeramicModules {
anchorService: AnchorService | null;
dispatcher: Dispatcher;
ipfs: IpfsApi;
ipfsTopology: IpfsTopology;
loggerProvider: LoggerProvider;
pinStoreFactory: PinStoreFactory;
repository: Repository;
shutdownSignal: ShutdownSignal;
providersCache: ProvidersCache;
feed: Feed;
signer: CeramicSigner;
reconApi: IReconApi;
}
export interface VersionInfo {
cliPackageVersion: string;
gitHash: string;
ceramicOneVersion: string;
}
interface MetricsConfig {
prometheusExporterEnabled?: boolean;
prometheusExporterPort?: number;
metricsExporterEnabled?: boolean;
collectorHost?: string;
metricsPublisherEnabled?: boolean;
metricsPublishIntervalMS?: number;
}
export interface CeramicParameters {
readOnly: boolean;
stateStoreDirectory?: string;
indexingConfig: IndexingConfig;
sync?: boolean;
networkOptions: CeramicNetworkOptions;
loadOptsOverride: LoadOpts;
anchorLoopMinDurationMs?: number;
versionInfo?: VersionInfo;
metrics?: MetricsConfig;
}
export declare class Ceramic implements StreamReaderWriter, StreamStateLoader {
private _did?;
private _ipfs?;
private _signer;
readonly dispatcher: Dispatcher;
readonly loggerProvider: LoggerProvider;
readonly recon: IReconApi;
readonly admin: AdminApi;
readonly feed: PublicFeed;
readonly repository: Repository;
readonly anchorService: AnchorService;
private readonly providersCache;
private readonly syncApi;
readonly _streamHandlers: HandlersMap;
private readonly _readOnly;
private readonly _ipfsTopology;
private readonly _logger;
private readonly _metricsConfig;
private readonly _networkOptions;
private _supportedChains;
private readonly _loadOptsOverride;
private readonly _shutdownSignal;
private readonly _kvFactory;
private readonly _runId;
private readonly _startTime;
private readonly _versionInfo;
private _versionMetricInterval;
constructor(modules: CeramicModules, params: CeramicParameters);
get index(): LocalIndexApi;
get pubsubTopic(): string;
get signer(): CeramicSigner;
get ipfs(): IpfsApi;
get did(): DID | undefined;
set did(did: DID);
static _processConfig(ipfs: IpfsApi, config: CeramicConfig, versionInfo: VersionInfo): [CeramicModules, CeramicParameters];
static create(ipfs: IpfsApi, config: CeramicConfig, versionInfo: VersionInfo): Promise<Ceramic>;
_init(doPeerDiscovery: boolean): Promise<void>;
_publishVersionMetrics(): Promise<void>;
_startMetrics(): Promise<void>;
_startPublishingNodeMetrics(metricsModel: StreamID): Promise<void>;
_waitForMetricsModel(model: StreamID): Promise<void>;
_startupChecks(): Promise<void>;
_checkIPFSPersistence(): Promise<void>;
addStreamHandler<T extends Stream>(streamHandler: StreamHandler<T>): void;
nodeStatus(): Promise<NodeStatusResponse>;
applyCommit<T extends Stream>(streamId: string | StreamID, commit: CeramicCommit, opts?: UpdateOpts): Promise<T>;
requestAnchor(streamId: string | StreamID, opts?: LoadOpts & AnchorOpts): Promise<AnchorStatus>;
createStreamFromGenesis<T extends Stream>(type: number, genesis: any, opts?: CreateOpts): Promise<T>;
loadStream<T extends Stream>(streamId: StreamID | CommitID | string, opts?: LoadOpts): Promise<T>;
loadStreamState(streamId: StreamID): Promise<StreamState | undefined>;
_ensureGenesis(genesis: CeramicCommit, streamRef: StreamRef, opts: LoadOpts): Promise<void>;
private _loadLinkedStreams;
multiQuery(queries: Array<MultiQuery>, timeout?: number): Promise<Record<string, Stream>>;
loadStreamCommits(streamId: string | StreamID): Promise<Record<string, any>[]>;
getSupportedChains(): Promise<Array<string>>;
buildStreamFromState<T extends Stream = Stream>(state: StreamState): T;
close(): Promise<void>;
}
export {};
//# sourceMappingURL=ceramic.d.ts.map