UNPKG

@settlemint/sdk-utils

Version:

Shared utilities and helper functions for SettleMint SDK modules

259 lines (257 loc) • 12.1 kB
import { ZodString, ZodType, z } from "zod"; //#region src/validation/validate.d.ts /** * Validates a value against a given Zod schema. * * @param schema - The Zod schema to validate against. * @param value - The value to validate. * @returns The validated and parsed value. * @throws Will throw an error if validation fails, with formatted error messages. * * @example * import { validate } from "@settlemint/sdk-utils/validation"; * * const validatedId = validate(IdSchema, "550e8400-e29b-41d4-a716-446655440000"); */ declare function validate<T extends ZodType>(schema: T, value: unknown): T["_output"]; //#endregion //#region src/validation/access-token.schema.d.ts /** * Schema for validating application access tokens. * Application access tokens start with 'sm_aat_' prefix. */ declare const ApplicationAccessTokenSchema: ZodString; type ApplicationAccessToken = z.infer<typeof ApplicationAccessTokenSchema>; /** * Schema for validating personal access tokens. * Personal access tokens start with 'sm_pat_' prefix. */ declare const PersonalAccessTokenSchema: ZodString; type PersonalAccessToken = z.infer<typeof PersonalAccessTokenSchema>; /** * Schema for validating both application and personal access tokens. * Accepts tokens starting with either 'sm_pat_' or 'sm_aat_' prefix. */ declare const AccessTokenSchema: ZodString; type AccessToken = z.infer<typeof AccessTokenSchema>; //#endregion //#region src/validation/dot-env.schema.d.ts /** * Use this value to indicate that the resources are not part of the SettleMint platform. */ declare const STANDALONE_INSTANCE = "standalone"; /** * Use this value to indicate that the resources are not part of the SettleMint platform. */ declare const LOCAL_INSTANCE = "local"; /** * Schema for validating environment variables used by the SettleMint SDK. * Defines validation rules and types for configuration values like URLs, * access tokens, workspace names, and service endpoints. */ declare const DotEnvSchema: z.ZodObject<{ SETTLEMINT_INSTANCE: z.ZodDefault<z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"standalone">, z.ZodLiteral<"local">]>>; SETTLEMINT_ACCESS_TOKEN: z.ZodOptional<z.ZodString>; SETTLEMINT_PERSONAL_ACCESS_TOKEN: z.ZodOptional<z.ZodString>; SETTLEMINT_WORKSPACE: z.ZodOptional<z.ZodString>; SETTLEMINT_APPLICATION: z.ZodOptional<z.ZodString>; SETTLEMINT_BLOCKCHAIN_NETWORK: z.ZodOptional<z.ZodString>; SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: z.ZodOptional<z.ZodString>; SETTLEMINT_BLOCKCHAIN_NODE: z.ZodOptional<z.ZodString>; SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: z.ZodOptional<z.ZodString>; SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_HASURA: z.ZodOptional<z.ZodString>; SETTLEMINT_HASURA_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_HASURA_ADMIN_SECRET: z.ZodOptional<z.ZodString>; SETTLEMINT_HASURA_DATABASE_URL: z.ZodOptional<z.ZodString>; SETTLEMINT_THEGRAPH: z.ZodOptional<z.ZodString>; SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS: z.ZodPipe<z.ZodTransform<never[] | null, unknown>, z.ZodOptional<z.ZodArray<z.ZodString>>>; SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH: z.ZodOptional<z.ZodString>; SETTLEMINT_PORTAL: z.ZodOptional<z.ZodString>; SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_PORTAL_REST_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_PORTAL_WS_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_HD_PRIVATE_KEY: z.ZodOptional<z.ZodString>; SETTLEMINT_HD_PRIVATE_KEY_FORWARDER_ADDRESS: z.ZodOptional<z.ZodString>; SETTLEMINT_ACCESSIBLE_PRIVATE_KEY: z.ZodOptional<z.ZodString>; SETTLEMINT_MINIO: z.ZodOptional<z.ZodString>; SETTLEMINT_MINIO_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_MINIO_ACCESS_KEY: z.ZodOptional<z.ZodString>; SETTLEMINT_MINIO_SECRET_KEY: z.ZodOptional<z.ZodString>; SETTLEMINT_IPFS: z.ZodOptional<z.ZodString>; SETTLEMINT_IPFS_API_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_IPFS_PINNING_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_IPFS_GATEWAY_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_CUSTOM_DEPLOYMENT: z.ZodOptional<z.ZodString>; SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_BLOCKSCOUT: z.ZodOptional<z.ZodString>; SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: z.ZodOptional<z.ZodString>; SETTLEMINT_NEW_PROJECT_NAME: z.ZodOptional<z.ZodString>; SETTLEMINT_LOG_LEVEL: z.ZodDefault<z.ZodEnum<{ error: "error"; debug: "debug"; info: "info"; warn: "warn"; none: "none"; }>>; }, z.core.$strip>; /** * Type definition for the environment variables schema. */ type DotEnv = z.infer<typeof DotEnvSchema>; /** * Partial version of the environment variables schema where all fields are optional. * Useful for validating incomplete configurations during development or build time. */ declare const DotEnvSchemaPartial: z.ZodObject<{ SETTLEMINT_INSTANCE: z.ZodOptional<z.ZodDefault<z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"standalone">, z.ZodLiteral<"local">]>>>; SETTLEMINT_ACCESS_TOKEN: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_PERSONAL_ACCESS_TOKEN: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_WORKSPACE: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_APPLICATION: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_BLOCKCHAIN_NETWORK: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_BLOCKCHAIN_NODE: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_HASURA: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_HASURA_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_HASURA_ADMIN_SECRET: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_HASURA_DATABASE_URL: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_THEGRAPH: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS: z.ZodOptional<z.ZodPipe<z.ZodTransform<never[] | null, unknown>, z.ZodOptional<z.ZodArray<z.ZodString>>>>; SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_PORTAL: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_PORTAL_REST_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_PORTAL_WS_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_HD_PRIVATE_KEY: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_HD_PRIVATE_KEY_FORWARDER_ADDRESS: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_ACCESSIBLE_PRIVATE_KEY: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_MINIO: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_MINIO_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_MINIO_ACCESS_KEY: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_MINIO_SECRET_KEY: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_IPFS: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_IPFS_API_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_IPFS_PINNING_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_IPFS_GATEWAY_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_CUSTOM_DEPLOYMENT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_BLOCKSCOUT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_NEW_PROJECT_NAME: z.ZodOptional<z.ZodOptional<z.ZodString>>; SETTLEMINT_LOG_LEVEL: z.ZodOptional<z.ZodDefault<z.ZodEnum<{ error: "error"; debug: "debug"; info: "info"; warn: "warn"; none: "none"; }>>>; }, z.core.$strip>; /** * Type definition for the partial environment variables schema. */ type DotEnvPartial = z.infer<typeof DotEnvSchemaPartial>; //#endregion //#region src/validation/id.schema.d.ts /** * Schema for validating database IDs. Accepts both PostgreSQL UUIDs and MongoDB ObjectIDs. * PostgreSQL UUIDs are 32 hexadecimal characters with hyphens (e.g. 123e4567-e89b-12d3-a456-426614174000). * MongoDB ObjectIDs are 24 hexadecimal characters (e.g. 507f1f77bcf86cd799439011). * * @example * import { IdSchema } from "@settlemint/sdk-utils/validation"; * * // Validate PostgreSQL UUID * const isValidUuid = IdSchema.safeParse("123e4567-e89b-12d3-a456-426614174000").success; * * // Validate MongoDB ObjectID * const isValidObjectId = IdSchema.safeParse("507f1f77bcf86cd799439011").success; */ declare const IdSchema: z.ZodUnion<readonly [z.ZodString, z.ZodString]>; /** * Type definition for database IDs, inferred from IdSchema. * Can be either a PostgreSQL UUID string or MongoDB ObjectID string. */ type Id = z.infer<typeof IdSchema>; //#endregion //#region src/validation/unique-name.schema.d.ts /** * Schema for validating unique names used across the SettleMint platform. * Only accepts lowercase alphanumeric characters and hyphens. * Used for workspace names, application names, service names etc. * * @example * import { UniqueNameSchema } from "@settlemint/sdk-utils/validation"; * * // Validate a workspace name * const isValidName = UniqueNameSchema.safeParse("my-workspace-123").success; * // true * * // Invalid names will fail validation * const isInvalidName = UniqueNameSchema.safeParse("My Workspace!").success; * // false */ declare const UniqueNameSchema: z.ZodString; /** * Type definition for unique names, inferred from UniqueNameSchema. */ type UniqueName = z.infer<typeof UniqueNameSchema>; //#endregion //#region src/validation/url.schema.d.ts /** * Schema for validating URLs. * * @example * import { UrlSchema } from "@settlemint/sdk-utils/validation"; * * // Validate a URL * const isValidUrl = UrlSchema.safeParse("https://console.settlemint.com").success; * // true * * // Invalid URLs will fail validation * const isInvalidUrl = UrlSchema.safeParse("not-a-url").success; * // false */ declare const UrlSchema: z.ZodString; type Url = z.infer<typeof UrlSchema>; /** * Schema for validating URL paths. * * @example * import { UrlPathSchema } from "@settlemint/sdk-utils/validation"; * * // Validate a URL path * const isValidPath = UrlPathSchema.safeParse("/api/v1/users").success; * // true * * // Invalid paths will fail validation * const isInvalidPath = UrlPathSchema.safeParse("not-a-path").success; * // false */ declare const UrlPathSchema: z.ZodString; type UrlPath = z.infer<typeof UrlPathSchema>; /** * Schema that accepts either a full URL or a URL path. * * @example * import { UrlOrPathSchema } from "@settlemint/sdk-utils/validation"; * * // Validate a URL * const isValidUrl = UrlOrPathSchema.safeParse("https://console.settlemint.com").success; * // true * * // Validate a path * const isValidPath = UrlOrPathSchema.safeParse("/api/v1/users").success; * // true */ declare const UrlOrPathSchema: z.ZodUnion<readonly [z.ZodString, z.ZodString]>; type UrlOrPath = z.infer<typeof UrlOrPathSchema>; //#endregion export { type AccessToken, AccessTokenSchema, type ApplicationAccessToken, ApplicationAccessTokenSchema, type DotEnv, type DotEnvPartial, DotEnvSchema, DotEnvSchemaPartial, type Id, IdSchema, LOCAL_INSTANCE, type PersonalAccessToken, PersonalAccessTokenSchema, STANDALONE_INSTANCE, UniqueNameSchema, type Url, type UrlOrPath, UrlOrPathSchema, type UrlPath, UrlPathSchema, UrlSchema, validate }; //# sourceMappingURL=validation.d.cts.map