UNPKG

@lit-protocol/e2e

Version:

Lit Protocol E2E testing package for running comprehensive integration tests

133 lines (132 loc) 4.03 kB
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 {};