@lit-protocol/e2e
Version:
Lit Protocol E2E testing package for running comprehensive integration tests
133 lines (132 loc) • 4.03 kB
TypeScript
import { z } from 'zod';
/**
* Canonical metadata for Lit e2e network targets.
* - `importName` feeds `@lit-protocol/networks` dynamic imports.
* - `type` lets higher level helpers branch on local vs live behaviour.
*
* @example
* ```ts
* NETWORKS['naga-dev'];
* // { importName: 'nagaDev', type: 'live' }
* ```
*/
export declare const NETWORKS: {
readonly 'naga-dev': {
readonly importName: "nagaDev";
readonly type: "live";
};
readonly 'naga-test': {
readonly importName: "nagaTest";
readonly type: "live";
};
readonly 'naga-local': {
readonly importName: "nagaLocal";
readonly type: "local";
};
readonly 'naga-staging': {
readonly importName: "nagaStaging";
readonly type: "live";
};
readonly 'naga-proto': {
readonly importName: "nagaProto";
readonly type: "live";
};
readonly naga: {
readonly importName: "naga";
readonly type: "live";
};
};
export type NetworkName = keyof typeof NETWORKS;
export type NetworkConfig = (typeof NETWORKS)[NetworkName];
export type NetworkType = NetworkConfig['type'];
export type NetworkImportName = NetworkConfig['importName'];
/**
* Shared schema so callers can parse env/config values consistently.
*
* @example
* ```ts
* NetworkNameSchema.parse('naga-local');
* // 'naga-local'
* ```
*/
export declare const NetworkNameSchema: z.ZodEnum<["naga" | "naga-dev" | "naga-test" | "naga-local" | "naga-staging" | "naga-proto", ...("naga" | "naga-dev" | "naga-test" | "naga-local" | "naga-staging" | "naga-proto")[]]>;
export declare const DEFAULT_NETWORK_NAME: NetworkName;
/**
* Ordered list of network identifiers. Useful when presenting choices to users.
*
* @example
* ```ts
* SUPPORTED_NETWORK_NAMES;
* // ['naga-dev', 'naga-test', 'naga-local', 'naga-staging']
* ```
*/
export declare const SUPPORTED_NETWORK_NAMES: readonly ("naga" | "naga-dev" | "naga-test" | "naga-local" | "naga-staging" | "naga-proto")[];
type NetworksModule = typeof import('@lit-protocol/networks');
export type LitNetworkModule = NetworksModule[NetworkImportName];
/**
* Type guard used when consuming untyped sources such as env variables.
*
* @example
* ```ts
* isNetworkName('naga-test');
* // true
*
* isNetworkName('unknown-network');
* // false
* ```
*/
export declare function isNetworkName(value: unknown): value is NetworkName;
/**
* Normalises any caller-provided identifier to the canonical network tuple used
* by init flows and tests. Always returns a full `NETWORKS` entry alongside the
* resolved name, so callers can keep a single source of truth for network metadata.
*
* @example
* ```ts
* getNetworkConfig('naga-test');
* // { name: 'naga-test', importName: 'nagaTest', type: 'live' }
*
* getNetworkConfig();
* // { name: 'naga-dev', importName: 'nagaDev', type: 'live' }
* ```
*/
export declare function getNetworkConfig(network?: string): {
name: NetworkName;
importName: NetworkImportName;
type: NetworkType;
};
/**
* Convenience wrapper used where only the `importName` string matters.
*
* @example
* ```ts
* resolveNetworkImportName('naga-local');
* // 'nagaLocal'
* ```
*/
export declare function resolveNetworkImportName(network?: string): NetworkImportName;
export type ResolveNetworkOptions = {
network?: string;
rpcUrlOverride?: string;
};
export type ResolvedNetwork = {
name: NetworkName;
importName: NetworkImportName;
type: NetworkType;
networkModule: LitNetworkModule;
};
/**
* Fully resolves a Lit network by combining metadata with the backing module.
*
* @example
* ```ts
* const { name, networkModule } = await resolveNetwork({
* network: 'naga-local',
* rpcUrlOverride: 'http://127.0.0.1:8545',
* });
* // name === 'naga-local'
* // networkModule is the hydrated Lit network module with overrides applied
* ```
*/
export declare function resolveNetwork(options?: ResolveNetworkOptions): Promise<ResolvedNetwork>;
export {};