@settlemint/sdk-utils 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/validation.ts","../src/validation/validate.ts","../src/validation/access-token.schema.ts","../src/json.ts","../src/validation/dot-env.schema.ts","../src/validation/unique-name.schema.ts","../src/validation/url.schema.ts","../src/validation/id.schema.ts"],"sourcesContent":["export { validate } from \"./validation/validate.js\";\nexport {\n ApplicationAccessTokenSchema,\n type ApplicationAccessToken,\n PersonalAccessTokenSchema,\n type PersonalAccessToken,\n AccessTokenSchema,\n type AccessToken,\n} from \"./validation/access-token.schema.js\";\nexport { DotEnvSchema, DotEnvSchemaPartial, type DotEnv, type DotEnvPartial } from \"./validation/dot-env.schema.js\";\nexport { IdSchema, type Id } from \"./validation/id.schema.js\";\nexport { UniqueNameSchema } from \"./validation/unique-name.schema.js\";\nexport {\n UrlOrPathSchema,\n UrlPathSchema,\n UrlSchema,\n type Url,\n type UrlOrPath,\n type UrlPath,\n} from \"./validation/url.schema.js\";\n","import { ZodError, type ZodSchema } from \"zod\";\n\n/**\n * Validates a value against a given Zod schema.\n *\n * @param schema - The Zod schema to validate against.\n * @param value - The value to validate.\n * @returns The validated and parsed value.\n * @throws Will throw an error if validation fails, with formatted error messages.\n *\n * @example\n * import { validate } from \"@settlemint/sdk-utils/validation\";\n *\n * const validatedId = validate(IdSchema, \"550e8400-e29b-41d4-a716-446655440000\");\n */\nexport function validate<T extends ZodSchema>(schema: T, value: unknown): T[\"_output\"] {\n try {\n return schema.parse(value);\n } catch (error) {\n if (error instanceof ZodError) {\n const formattedErrors = error.errors.map((err) => `- ${err.path.join(\".\")}: ${err.message}`).join(\"\\n\");\n throw new Error(`Validation error${error.errors.length > 1 ? \"s\" : \"\"}:\\n${formattedErrors}`);\n }\n throw error; // Re-throw if it's not a ZodError\n }\n}\n","import { type ZodString, z } from \"zod\";\n\n/**\n * Schema for validating application access tokens.\n * Application access tokens start with 'sm_aat_' prefix.\n */\nexport const ApplicationAccessTokenSchema: ZodString = z.string().regex(/^sm_aat_.*$/);\nexport type ApplicationAccessToken = z.infer<typeof ApplicationAccessTokenSchema>;\n\n/**\n * Schema for validating personal access tokens.\n * Personal access tokens start with 'sm_pat_' prefix.\n */\nexport const PersonalAccessTokenSchema: ZodString = z.string().regex(/^sm_pat_.*$/);\nexport type PersonalAccessToken = z.infer<typeof PersonalAccessTokenSchema>;\n\n/**\n * Schema for validating both application and personal access tokens.\n * Accepts tokens starting with either 'sm_pat_' or 'sm_aat_' prefix.\n */\nexport const AccessTokenSchema: ZodString = z.string().regex(/^sm_pat_.*|sm_aat_.*$/);\nexport type AccessToken = z.infer<typeof AccessTokenSchema>;\n","/**\n * Attempts to parse a JSON string into a typed value, returning a default value if parsing fails.\n *\n * @param value - The JSON string to parse\n * @param defaultValue - The value to return if parsing fails or results in null/undefined\n * @returns The parsed JSON value as type T, or the default value if parsing fails\n *\n * @example\n * import { tryParseJson } from \"@settlemint/sdk-utils\";\n *\n * const config = tryParseJson<{ port: number }>(\n * '{\"port\": 3000}',\n * { port: 8080 }\n * );\n * // Returns: { port: 3000 }\n *\n * const invalid = tryParseJson<string[]>(\n * 'invalid json',\n * []\n * );\n * // Returns: []\n */\nexport function tryParseJson<T>(value: string, defaultValue: T | null = null): T | null {\n try {\n const parsed = JSON.parse(value) as T;\n if (parsed === undefined || parsed === null) {\n return defaultValue;\n }\n return parsed;\n } catch (err) {\n // Invalid json\n return defaultValue;\n }\n}\n","import { tryParseJson } from \"@/json.js\";\nimport { z } from \"zod\";\nimport { ApplicationAccessTokenSchema, PersonalAccessTokenSchema } from \"./access-token.schema.js\";\nimport { UniqueNameSchema } from \"./unique-name.schema.js\";\nimport { UrlSchema } from \"./url.schema.js\";\n\n/**\n * Schema for validating environment variables used by the SettleMint SDK.\n * Defines validation rules and types for configuration values like URLs,\n * access tokens, workspace names, and service endpoints.\n */\nexport const DotEnvSchema = z.object({\n /** Base URL of the SettleMint platform instance */\n SETTLEMINT_INSTANCE: UrlSchema.default(\"https://console.settlemint.com\"),\n /** Application access token for authenticating with SettleMint services */\n SETTLEMINT_ACCESS_TOKEN: ApplicationAccessTokenSchema.optional(),\n /** @internal */\n SETTLEMINT_PERSONAL_ACCESS_TOKEN: PersonalAccessTokenSchema.optional(),\n /** Unique name of the workspace */\n SETTLEMINT_WORKSPACE: UniqueNameSchema.optional(),\n /** Unique name of the application */\n SETTLEMINT_APPLICATION: UniqueNameSchema.optional(),\n /** Unique name of the blockchain network */\n SETTLEMINT_BLOCKCHAIN_NETWORK: UniqueNameSchema.optional(),\n /** Unique name of the blockchain node */\n SETTLEMINT_BLOCKCHAIN_NODE: UniqueNameSchema.optional(),\n /** Unique name of the load balancer */\n SETTLEMINT_LOAD_BALANCER: UniqueNameSchema.optional(),\n /** Unique name of the Hasura instance */\n SETTLEMINT_HASURA: UniqueNameSchema.optional(),\n /** Endpoint URL for the Hasura GraphQL API */\n SETTLEMINT_HASURA_ENDPOINT: UrlSchema.optional(),\n /** Admin secret for authenticating with Hasura */\n SETTLEMINT_HASURA_ADMIN_SECRET: z.string().optional(),\n /** Database connection URL for Hasura */\n SETTLEMINT_HASURA_DATABASE_URL: z.string().optional(),\n /** Unique name of The Graph instance */\n SETTLEMINT_THEGRAPH: UniqueNameSchema.optional(),\n /** Array of endpoint URLs for The Graph subgraphs */\n SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS: z.preprocess(\n (value) => tryParseJson(value as string, []),\n z.array(UrlSchema).optional(),\n ),\n /** Default The Graph subgraph to use */\n SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH: z.string().optional(),\n /** Unique name of the Smart Contract Portal instance */\n SETTLEMINT_PORTAL: UniqueNameSchema.optional(),\n /** GraphQL endpoint URL for the Portal */\n SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT: UrlSchema.optional(),\n /** REST endpoint URL for the Portal */\n SETTLEMINT_PORTAL_REST_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the HD private key */\n SETTLEMINT_HD_PRIVATE_KEY: UniqueNameSchema.optional(),\n /** Unique name of the accessible private key */\n SETTLEMINT_ACCESSIBLE_PRIVATE_KEY: UniqueNameSchema.optional(),\n /** Unique name of the MinIO instance */\n SETTLEMINT_MINIO: UniqueNameSchema.optional(),\n /** Endpoint URL for MinIO */\n SETTLEMINT_MINIO_ENDPOINT: UrlSchema.optional(),\n /** Access key for MinIO authentication */\n SETTLEMINT_MINIO_ACCESS_KEY: z.string().optional(),\n /** Secret key for MinIO authentication */\n SETTLEMINT_MINIO_SECRET_KEY: z.string().optional(),\n /** Unique name of the IPFS instance */\n SETTLEMINT_IPFS: UniqueNameSchema.optional(),\n /** API endpoint URL for IPFS */\n SETTLEMINT_IPFS_API_ENDPOINT: UrlSchema.optional(),\n /** Pinning service endpoint URL for IPFS */\n SETTLEMINT_IPFS_PINNING_ENDPOINT: UrlSchema.optional(),\n /** Gateway endpoint URL for IPFS */\n SETTLEMINT_IPFS_GATEWAY_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the custom deployment */\n SETTLEMINT_CUSTOM_DEPLOYMENT: UniqueNameSchema.optional(),\n /** Endpoint URL for the custom deployment */\n SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the Blockscout instance */\n SETTLEMINT_BLOCKSCOUT: UniqueNameSchema.optional(),\n /** GraphQL endpoint URL for Blockscout */\n SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT: UrlSchema.optional(),\n /** UI endpoint URL for Blockscout */\n SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: UrlSchema.optional(),\n /** Name of the new project being created */\n SETTLEMINT_NEW_PROJECT_NAME: z.string().optional(),\n});\n\n/**\n * Type definition for the environment variables schema.\n */\nexport type DotEnv = z.infer<typeof DotEnvSchema>;\n\n/**\n * Partial version of the environment variables schema where all fields are optional.\n * Useful for validating incomplete configurations during development or build time.\n */\nexport const DotEnvSchemaPartial = DotEnvSchema.partial();\n\n/**\n * Type definition for the partial environment variables schema.\n */\nexport type DotEnvPartial = z.infer<typeof DotEnvSchemaPartial>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating unique names used across the SettleMint platform.\n * Only accepts lowercase alphanumeric characters and hyphens.\n * Used for workspace names, application names, service names etc.\n *\n * @example\n * import { UniqueNameSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a workspace name\n * const isValidName = UniqueNameSchema.safeParse(\"my-workspace-123\").success;\n * // true\n *\n * // Invalid names will fail validation\n * const isInvalidName = UniqueNameSchema.safeParse(\"My Workspace!\").success;\n * // false\n */\nexport const UniqueNameSchema = z.string().regex(/^[a-z0-9-]+$/);\n\n/**\n * Type definition for unique names, inferred from UniqueNameSchema.\n */\nexport type UniqueName = z.infer<typeof UniqueNameSchema>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating URLs.\n *\n * @example\n * import { UrlSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL\n * const isValidUrl = UrlSchema.safeParse(\"https://console.settlemint.com\").success;\n * // true\n *\n * // Invalid URLs will fail validation\n * const isInvalidUrl = UrlSchema.safeParse(\"not-a-url\").success;\n * // false\n */\nexport const UrlSchema = z.string().url();\nexport type Url = z.infer<typeof UrlSchema>;\n\n/**\n * Schema for validating URL paths.\n *\n * @example\n * import { UrlPathSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL path\n * const isValidPath = UrlPathSchema.safeParse(\"/api/v1/users\").success;\n * // true\n *\n * // Invalid paths will fail validation\n * const isInvalidPath = UrlPathSchema.safeParse(\"not-a-path\").success;\n * // false\n */\nexport const UrlPathSchema = z.string().regex(/^\\/(?:[a-zA-Z0-9-_]+(?:\\/[a-zA-Z0-9-_]+)*\\/?)?$/, {\n message: \"Invalid URL path format. Must start with '/' and can contain letters, numbers, hyphens, and underscores.\",\n});\n\nexport type UrlPath = z.infer<typeof UrlPathSchema>;\n\n/**\n * Schema that accepts either a full URL or a URL path.\n *\n * @example\n * import { UrlOrPathSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL\n * const isValidUrl = UrlOrPathSchema.safeParse(\"https://console.settlemint.com\").success;\n * // true\n *\n * // Validate a path\n * const isValidPath = UrlOrPathSchema.safeParse(\"/api/v1/users\").success;\n * // true\n */\nexport const UrlOrPathSchema = z.union([UrlSchema, UrlPathSchema]);\nexport type UrlOrPath = z.infer<typeof UrlOrPathSchema>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating database IDs. Accepts both PostgreSQL UUIDs and MongoDB ObjectIDs.\n * PostgreSQL UUIDs are 32 hexadecimal characters with hyphens (e.g. 123e4567-e89b-12d3-a456-426614174000).\n * MongoDB ObjectIDs are 24 hexadecimal characters (e.g. 507f1f77bcf86cd799439011).\n *\n * @example\n * import { IdSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate PostgreSQL UUID\n * const isValidUuid = IdSchema.safeParse(\"123e4567-e89b-12d3-a456-426614174000\").success;\n *\n * // Validate MongoDB ObjectID\n * const isValidObjectId = IdSchema.safeParse(\"507f1f77bcf86cd799439011\").success;\n */\nexport const IdSchema = z.union([\n z\n .string()\n .uuid(), // PostgreSQL UUID\n z\n .string()\n .regex(/^[0-9a-fA-F]{24}$/), // MongoDB ObjectID\n]);\n\n/**\n * Type definition for database IDs, inferred from IdSchema.\n * Can be either a PostgreSQL UUID string or MongoDB ObjectID string.\n */\nexport type Id = z.infer<typeof IdSchema>;\n"],"mappings":"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","names":["import_zod","import_zod","import_zod","import_zod","import_zod"]}
1
+ {"version":3,"sources":["../src/validation.ts","../src/validation/validate.ts","../src/validation/access-token.schema.ts","../src/json.ts","../src/validation/dot-env.schema.ts","../src/validation/unique-name.schema.ts","../src/validation/url.schema.ts","../src/validation/id.schema.ts"],"sourcesContent":["export { validate } from \"./validation/validate.js\";\nexport {\n ApplicationAccessTokenSchema,\n type ApplicationAccessToken,\n PersonalAccessTokenSchema,\n type PersonalAccessToken,\n AccessTokenSchema,\n type AccessToken,\n} from \"./validation/access-token.schema.js\";\nexport { DotEnvSchema, DotEnvSchemaPartial, type DotEnv, type DotEnvPartial } from \"./validation/dot-env.schema.js\";\nexport { IdSchema, type Id } from \"./validation/id.schema.js\";\nexport { UniqueNameSchema } from \"./validation/unique-name.schema.js\";\nexport {\n UrlOrPathSchema,\n UrlPathSchema,\n UrlSchema,\n type Url,\n type UrlOrPath,\n type UrlPath,\n} from \"./validation/url.schema.js\";\n","import { ZodError, type ZodSchema } from \"zod\";\n\n/**\n * Validates a value against a given Zod schema.\n *\n * @param schema - The Zod schema to validate against.\n * @param value - The value to validate.\n * @returns The validated and parsed value.\n * @throws Will throw an error if validation fails, with formatted error messages.\n *\n * @example\n * import { validate } from \"@settlemint/sdk-utils/validation\";\n *\n * const validatedId = validate(IdSchema, \"550e8400-e29b-41d4-a716-446655440000\");\n */\nexport function validate<T extends ZodSchema>(schema: T, value: unknown): T[\"_output\"] {\n try {\n return schema.parse(value);\n } catch (error) {\n if (error instanceof ZodError) {\n const formattedErrors = error.errors.map((err) => `- ${err.path.join(\".\")}: ${err.message}`).join(\"\\n\");\n throw new Error(`Validation error${error.errors.length > 1 ? \"s\" : \"\"}:\\n${formattedErrors}`);\n }\n throw error; // Re-throw if it's not a ZodError\n }\n}\n","import { type ZodString, z } from \"zod\";\n\n/**\n * Schema for validating application access tokens.\n * Application access tokens start with 'sm_aat_' prefix.\n */\nexport const ApplicationAccessTokenSchema: ZodString = z.string().regex(/^sm_aat_.*$/);\nexport type ApplicationAccessToken = z.infer<typeof ApplicationAccessTokenSchema>;\n\n/**\n * Schema for validating personal access tokens.\n * Personal access tokens start with 'sm_pat_' prefix.\n */\nexport const PersonalAccessTokenSchema: ZodString = z.string().regex(/^sm_pat_.*$/);\nexport type PersonalAccessToken = z.infer<typeof PersonalAccessTokenSchema>;\n\n/**\n * Schema for validating both application and personal access tokens.\n * Accepts tokens starting with either 'sm_pat_' or 'sm_aat_' prefix.\n */\nexport const AccessTokenSchema: ZodString = z.string().regex(/^sm_pat_.*|sm_aat_.*$/);\nexport type AccessToken = z.infer<typeof AccessTokenSchema>;\n","/**\n * Attempts to parse a JSON string into a typed value, returning a default value if parsing fails.\n *\n * @param value - The JSON string to parse\n * @param defaultValue - The value to return if parsing fails or results in null/undefined\n * @returns The parsed JSON value as type T, or the default value if parsing fails\n *\n * @example\n * import { tryParseJson } from \"@settlemint/sdk-utils\";\n *\n * const config = tryParseJson<{ port: number }>(\n * '{\"port\": 3000}',\n * { port: 8080 }\n * );\n * // Returns: { port: 3000 }\n *\n * const invalid = tryParseJson<string[]>(\n * 'invalid json',\n * []\n * );\n * // Returns: []\n */\nexport function tryParseJson<T>(value: string, defaultValue: T | null = null): T | null {\n try {\n const parsed = JSON.parse(value) as T;\n if (parsed === undefined || parsed === null) {\n return defaultValue;\n }\n return parsed;\n } catch (err) {\n // Invalid json\n return defaultValue;\n }\n}\n","import { tryParseJson } from \"@/json.js\";\nimport { z } from \"zod\";\nimport { ApplicationAccessTokenSchema, PersonalAccessTokenSchema } from \"./access-token.schema.js\";\nimport { UniqueNameSchema } from \"./unique-name.schema.js\";\nimport { UrlSchema } from \"./url.schema.js\";\n\n/**\n * Schema for validating environment variables used by the SettleMint SDK.\n * Defines validation rules and types for configuration values like URLs,\n * access tokens, workspace names, and service endpoints.\n */\nexport const DotEnvSchema = z.object({\n /** Base URL of the SettleMint platform instance */\n SETTLEMINT_INSTANCE: UrlSchema.default(\"https://console.settlemint.com\"),\n /** Application access token for authenticating with SettleMint services */\n SETTLEMINT_ACCESS_TOKEN: ApplicationAccessTokenSchema.optional(),\n /** @internal */\n SETTLEMINT_PERSONAL_ACCESS_TOKEN: PersonalAccessTokenSchema.optional(),\n /** Unique name of the workspace */\n SETTLEMINT_WORKSPACE: UniqueNameSchema.optional(),\n /** Unique name of the application */\n SETTLEMINT_APPLICATION: UniqueNameSchema.optional(),\n /** Unique name of the blockchain network */\n SETTLEMINT_BLOCKCHAIN_NETWORK: UniqueNameSchema.optional(),\n /** Unique name of the blockchain node */\n SETTLEMINT_BLOCKCHAIN_NODE: UniqueNameSchema.optional(),\n /** Unique name of the load balancer */\n SETTLEMINT_LOAD_BALANCER: UniqueNameSchema.optional(),\n /** Unique name of the Hasura instance */\n SETTLEMINT_HASURA: UniqueNameSchema.optional(),\n /** Endpoint URL for the Hasura GraphQL API */\n SETTLEMINT_HASURA_ENDPOINT: UrlSchema.optional(),\n /** Admin secret for authenticating with Hasura */\n SETTLEMINT_HASURA_ADMIN_SECRET: z.string().optional(),\n /** Database connection URL for Hasura */\n SETTLEMINT_HASURA_DATABASE_URL: z.string().optional(),\n /** Unique name of The Graph instance */\n SETTLEMINT_THEGRAPH: UniqueNameSchema.optional(),\n /** Array of endpoint URLs for The Graph subgraphs */\n SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS: z.preprocess(\n (value) => tryParseJson(value as string, []),\n z.array(UrlSchema).optional(),\n ),\n /** Default The Graph subgraph to use */\n SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH: z.string().optional(),\n /** Unique name of the Smart Contract Portal instance */\n SETTLEMINT_PORTAL: UniqueNameSchema.optional(),\n /** GraphQL endpoint URL for the Portal */\n SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT: UrlSchema.optional(),\n /** REST endpoint URL for the Portal */\n SETTLEMINT_PORTAL_REST_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the HD private key */\n SETTLEMINT_HD_PRIVATE_KEY: UniqueNameSchema.optional(),\n /** Unique name of the accessible private key */\n SETTLEMINT_ACCESSIBLE_PRIVATE_KEY: UniqueNameSchema.optional(),\n /** Unique name of the MinIO instance */\n SETTLEMINT_MINIO: UniqueNameSchema.optional(),\n /** Endpoint URL for MinIO */\n SETTLEMINT_MINIO_ENDPOINT: UrlSchema.optional(),\n /** Access key for MinIO authentication */\n SETTLEMINT_MINIO_ACCESS_KEY: z.string().optional(),\n /** Secret key for MinIO authentication */\n SETTLEMINT_MINIO_SECRET_KEY: z.string().optional(),\n /** Unique name of the IPFS instance */\n SETTLEMINT_IPFS: UniqueNameSchema.optional(),\n /** API endpoint URL for IPFS */\n SETTLEMINT_IPFS_API_ENDPOINT: UrlSchema.optional(),\n /** Pinning service endpoint URL for IPFS */\n SETTLEMINT_IPFS_PINNING_ENDPOINT: UrlSchema.optional(),\n /** Gateway endpoint URL for IPFS */\n SETTLEMINT_IPFS_GATEWAY_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the custom deployment */\n SETTLEMINT_CUSTOM_DEPLOYMENT: UniqueNameSchema.optional(),\n /** Endpoint URL for the custom deployment */\n SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the Blockscout instance */\n SETTLEMINT_BLOCKSCOUT: UniqueNameSchema.optional(),\n /** GraphQL endpoint URL for Blockscout */\n SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT: UrlSchema.optional(),\n /** UI endpoint URL for Blockscout */\n SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: UrlSchema.optional(),\n /** Name of the new project being created */\n SETTLEMINT_NEW_PROJECT_NAME: z.string().optional(),\n /** The log level to use */\n SETTLEMINT_LOG_LEVEL: z.enum([\"debug\", \"info\", \"warn\", \"error\", \"none\"]).default(\"warn\"),\n});\n\n/**\n * Type definition for the environment variables schema.\n */\nexport type DotEnv = z.infer<typeof DotEnvSchema>;\n\n/**\n * Partial version of the environment variables schema where all fields are optional.\n * Useful for validating incomplete configurations during development or build time.\n */\nexport const DotEnvSchemaPartial = DotEnvSchema.partial();\n\n/**\n * Type definition for the partial environment variables schema.\n */\nexport type DotEnvPartial = z.infer<typeof DotEnvSchemaPartial>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating unique names used across the SettleMint platform.\n * Only accepts lowercase alphanumeric characters and hyphens.\n * Used for workspace names, application names, service names etc.\n *\n * @example\n * import { UniqueNameSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a workspace name\n * const isValidName = UniqueNameSchema.safeParse(\"my-workspace-123\").success;\n * // true\n *\n * // Invalid names will fail validation\n * const isInvalidName = UniqueNameSchema.safeParse(\"My Workspace!\").success;\n * // false\n */\nexport const UniqueNameSchema = z.string().regex(/^[a-z0-9-]+$/);\n\n/**\n * Type definition for unique names, inferred from UniqueNameSchema.\n */\nexport type UniqueName = z.infer<typeof UniqueNameSchema>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating URLs.\n *\n * @example\n * import { UrlSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL\n * const isValidUrl = UrlSchema.safeParse(\"https://console.settlemint.com\").success;\n * // true\n *\n * // Invalid URLs will fail validation\n * const isInvalidUrl = UrlSchema.safeParse(\"not-a-url\").success;\n * // false\n */\nexport const UrlSchema = z.string().url();\nexport type Url = z.infer<typeof UrlSchema>;\n\n/**\n * Schema for validating URL paths.\n *\n * @example\n * import { UrlPathSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL path\n * const isValidPath = UrlPathSchema.safeParse(\"/api/v1/users\").success;\n * // true\n *\n * // Invalid paths will fail validation\n * const isInvalidPath = UrlPathSchema.safeParse(\"not-a-path\").success;\n * // false\n */\nexport const UrlPathSchema = z.string().regex(/^\\/(?:[a-zA-Z0-9-_]+(?:\\/[a-zA-Z0-9-_]+)*\\/?)?$/, {\n message: \"Invalid URL path format. Must start with '/' and can contain letters, numbers, hyphens, and underscores.\",\n});\n\nexport type UrlPath = z.infer<typeof UrlPathSchema>;\n\n/**\n * Schema that accepts either a full URL or a URL path.\n *\n * @example\n * import { UrlOrPathSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL\n * const isValidUrl = UrlOrPathSchema.safeParse(\"https://console.settlemint.com\").success;\n * // true\n *\n * // Validate a path\n * const isValidPath = UrlOrPathSchema.safeParse(\"/api/v1/users\").success;\n * // true\n */\nexport const UrlOrPathSchema = z.union([UrlSchema, UrlPathSchema]);\nexport type UrlOrPath = z.infer<typeof UrlOrPathSchema>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating database IDs. Accepts both PostgreSQL UUIDs and MongoDB ObjectIDs.\n * PostgreSQL UUIDs are 32 hexadecimal characters with hyphens (e.g. 123e4567-e89b-12d3-a456-426614174000).\n * MongoDB ObjectIDs are 24 hexadecimal characters (e.g. 507f1f77bcf86cd799439011).\n *\n * @example\n * import { IdSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate PostgreSQL UUID\n * const isValidUuid = IdSchema.safeParse(\"123e4567-e89b-12d3-a456-426614174000\").success;\n *\n * // Validate MongoDB ObjectID\n * const isValidObjectId = IdSchema.safeParse(\"507f1f77bcf86cd799439011\").success;\n */\nexport const IdSchema = z.union([\n z\n .string()\n .uuid(), // PostgreSQL UUID\n z\n .string()\n .regex(/^[0-9a-fA-F]{24}$/), // MongoDB ObjectID\n]);\n\n/**\n * Type definition for database IDs, inferred from IdSchema.\n * Can be either a PostgreSQL UUID string or MongoDB ObjectID string.\n */\nexport type Id = z.infer<typeof IdSchema>;\n"],"mappings":"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","names":["import_zod","import_zod","import_zod","import_zod","import_zod"]}
@@ -108,8 +108,11 @@ declare const DotEnvSchema: z.ZodObject<{
108
108
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: z.ZodOptional<z.ZodString>;
109
109
  /** Name of the new project being created */
110
110
  SETTLEMINT_NEW_PROJECT_NAME: z.ZodOptional<z.ZodString>;
111
+ /** The log level to use */
112
+ SETTLEMINT_LOG_LEVEL: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error", "none"]>>;
111
113
  }, "strip", z.ZodTypeAny, {
112
114
  SETTLEMINT_INSTANCE: string;
115
+ SETTLEMINT_LOG_LEVEL: "debug" | "info" | "warn" | "error" | "none";
113
116
  SETTLEMINT_ACCESS_TOKEN?: string | undefined;
114
117
  SETTLEMINT_PERSONAL_ACCESS_TOKEN?: string | undefined;
115
118
  SETTLEMINT_WORKSPACE?: string | undefined;
@@ -178,6 +181,7 @@ declare const DotEnvSchema: z.ZodObject<{
178
181
  SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT?: string | undefined;
179
182
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT?: string | undefined;
180
183
  SETTLEMINT_NEW_PROJECT_NAME?: string | undefined;
184
+ SETTLEMINT_LOG_LEVEL?: "debug" | "info" | "warn" | "error" | "none" | undefined;
181
185
  }>;
182
186
  /**
183
187
  * Type definition for the environment variables schema.
@@ -222,6 +226,7 @@ declare const DotEnvSchemaPartial: z.ZodObject<{
222
226
  SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>;
223
227
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>;
224
228
  SETTLEMINT_NEW_PROJECT_NAME: z.ZodOptional<z.ZodOptional<z.ZodString>>;
229
+ SETTLEMINT_LOG_LEVEL: z.ZodOptional<z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error", "none"]>>>;
225
230
  }, "strip", z.ZodTypeAny, {
226
231
  SETTLEMINT_INSTANCE?: string | undefined;
227
232
  SETTLEMINT_ACCESS_TOKEN?: string | undefined;
@@ -257,6 +262,7 @@ declare const DotEnvSchemaPartial: z.ZodObject<{
257
262
  SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT?: string | undefined;
258
263
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT?: string | undefined;
259
264
  SETTLEMINT_NEW_PROJECT_NAME?: string | undefined;
265
+ SETTLEMINT_LOG_LEVEL?: "debug" | "info" | "warn" | "error" | "none" | undefined;
260
266
  }, {
261
267
  SETTLEMINT_INSTANCE?: string | undefined;
262
268
  SETTLEMINT_ACCESS_TOKEN?: string | undefined;
@@ -292,6 +298,7 @@ declare const DotEnvSchemaPartial: z.ZodObject<{
292
298
  SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT?: string | undefined;
293
299
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT?: string | undefined;
294
300
  SETTLEMINT_NEW_PROJECT_NAME?: string | undefined;
301
+ SETTLEMINT_LOG_LEVEL?: "debug" | "info" | "warn" | "error" | "none" | undefined;
295
302
  }>;
296
303
  /**
297
304
  * Type definition for the partial environment variables schema.
@@ -108,8 +108,11 @@ declare const DotEnvSchema: z.ZodObject<{
108
108
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: z.ZodOptional<z.ZodString>;
109
109
  /** Name of the new project being created */
110
110
  SETTLEMINT_NEW_PROJECT_NAME: z.ZodOptional<z.ZodString>;
111
+ /** The log level to use */
112
+ SETTLEMINT_LOG_LEVEL: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error", "none"]>>;
111
113
  }, "strip", z.ZodTypeAny, {
112
114
  SETTLEMINT_INSTANCE: string;
115
+ SETTLEMINT_LOG_LEVEL: "debug" | "info" | "warn" | "error" | "none";
113
116
  SETTLEMINT_ACCESS_TOKEN?: string | undefined;
114
117
  SETTLEMINT_PERSONAL_ACCESS_TOKEN?: string | undefined;
115
118
  SETTLEMINT_WORKSPACE?: string | undefined;
@@ -178,6 +181,7 @@ declare const DotEnvSchema: z.ZodObject<{
178
181
  SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT?: string | undefined;
179
182
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT?: string | undefined;
180
183
  SETTLEMINT_NEW_PROJECT_NAME?: string | undefined;
184
+ SETTLEMINT_LOG_LEVEL?: "debug" | "info" | "warn" | "error" | "none" | undefined;
181
185
  }>;
182
186
  /**
183
187
  * Type definition for the environment variables schema.
@@ -222,6 +226,7 @@ declare const DotEnvSchemaPartial: z.ZodObject<{
222
226
  SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>;
223
227
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: z.ZodOptional<z.ZodOptional<z.ZodString>>;
224
228
  SETTLEMINT_NEW_PROJECT_NAME: z.ZodOptional<z.ZodOptional<z.ZodString>>;
229
+ SETTLEMINT_LOG_LEVEL: z.ZodOptional<z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error", "none"]>>>;
225
230
  }, "strip", z.ZodTypeAny, {
226
231
  SETTLEMINT_INSTANCE?: string | undefined;
227
232
  SETTLEMINT_ACCESS_TOKEN?: string | undefined;
@@ -257,6 +262,7 @@ declare const DotEnvSchemaPartial: z.ZodObject<{
257
262
  SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT?: string | undefined;
258
263
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT?: string | undefined;
259
264
  SETTLEMINT_NEW_PROJECT_NAME?: string | undefined;
265
+ SETTLEMINT_LOG_LEVEL?: "debug" | "info" | "warn" | "error" | "none" | undefined;
260
266
  }, {
261
267
  SETTLEMINT_INSTANCE?: string | undefined;
262
268
  SETTLEMINT_ACCESS_TOKEN?: string | undefined;
@@ -292,6 +298,7 @@ declare const DotEnvSchemaPartial: z.ZodObject<{
292
298
  SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT?: string | undefined;
293
299
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT?: string | undefined;
294
300
  SETTLEMINT_NEW_PROJECT_NAME?: string | undefined;
301
+ SETTLEMINT_LOG_LEVEL?: "debug" | "info" | "warn" | "error" | "none" | undefined;
295
302
  }>;
296
303
  /**
297
304
  * Type definition for the partial environment variables schema.
@@ -119,7 +119,9 @@ var DotEnvSchema = z4.object({
119
119
  /** UI endpoint URL for Blockscout */
120
120
  SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: UrlSchema.optional(),
121
121
  /** Name of the new project being created */
122
- SETTLEMINT_NEW_PROJECT_NAME: z4.string().optional()
122
+ SETTLEMINT_NEW_PROJECT_NAME: z4.string().optional(),
123
+ /** The log level to use */
124
+ SETTLEMINT_LOG_LEVEL: z4.enum(["debug", "info", "warn", "error", "none"]).default("warn")
123
125
  });
124
126
  var DotEnvSchemaPartial = DotEnvSchema.partial();
125
127
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/validation/validate.ts","../src/validation/access-token.schema.ts","../src/json.ts","../src/validation/dot-env.schema.ts","../src/validation/unique-name.schema.ts","../src/validation/url.schema.ts","../src/validation/id.schema.ts"],"sourcesContent":["import { ZodError, type ZodSchema } from \"zod\";\n\n/**\n * Validates a value against a given Zod schema.\n *\n * @param schema - The Zod schema to validate against.\n * @param value - The value to validate.\n * @returns The validated and parsed value.\n * @throws Will throw an error if validation fails, with formatted error messages.\n *\n * @example\n * import { validate } from \"@settlemint/sdk-utils/validation\";\n *\n * const validatedId = validate(IdSchema, \"550e8400-e29b-41d4-a716-446655440000\");\n */\nexport function validate<T extends ZodSchema>(schema: T, value: unknown): T[\"_output\"] {\n try {\n return schema.parse(value);\n } catch (error) {\n if (error instanceof ZodError) {\n const formattedErrors = error.errors.map((err) => `- ${err.path.join(\".\")}: ${err.message}`).join(\"\\n\");\n throw new Error(`Validation error${error.errors.length > 1 ? \"s\" : \"\"}:\\n${formattedErrors}`);\n }\n throw error; // Re-throw if it's not a ZodError\n }\n}\n","import { type ZodString, z } from \"zod\";\n\n/**\n * Schema for validating application access tokens.\n * Application access tokens start with 'sm_aat_' prefix.\n */\nexport const ApplicationAccessTokenSchema: ZodString = z.string().regex(/^sm_aat_.*$/);\nexport type ApplicationAccessToken = z.infer<typeof ApplicationAccessTokenSchema>;\n\n/**\n * Schema for validating personal access tokens.\n * Personal access tokens start with 'sm_pat_' prefix.\n */\nexport const PersonalAccessTokenSchema: ZodString = z.string().regex(/^sm_pat_.*$/);\nexport type PersonalAccessToken = z.infer<typeof PersonalAccessTokenSchema>;\n\n/**\n * Schema for validating both application and personal access tokens.\n * Accepts tokens starting with either 'sm_pat_' or 'sm_aat_' prefix.\n */\nexport const AccessTokenSchema: ZodString = z.string().regex(/^sm_pat_.*|sm_aat_.*$/);\nexport type AccessToken = z.infer<typeof AccessTokenSchema>;\n","/**\n * Attempts to parse a JSON string into a typed value, returning a default value if parsing fails.\n *\n * @param value - The JSON string to parse\n * @param defaultValue - The value to return if parsing fails or results in null/undefined\n * @returns The parsed JSON value as type T, or the default value if parsing fails\n *\n * @example\n * import { tryParseJson } from \"@settlemint/sdk-utils\";\n *\n * const config = tryParseJson<{ port: number }>(\n * '{\"port\": 3000}',\n * { port: 8080 }\n * );\n * // Returns: { port: 3000 }\n *\n * const invalid = tryParseJson<string[]>(\n * 'invalid json',\n * []\n * );\n * // Returns: []\n */\nexport function tryParseJson<T>(value: string, defaultValue: T | null = null): T | null {\n try {\n const parsed = JSON.parse(value) as T;\n if (parsed === undefined || parsed === null) {\n return defaultValue;\n }\n return parsed;\n } catch (err) {\n // Invalid json\n return defaultValue;\n }\n}\n","import { tryParseJson } from \"@/json.js\";\nimport { z } from \"zod\";\nimport { ApplicationAccessTokenSchema, PersonalAccessTokenSchema } from \"./access-token.schema.js\";\nimport { UniqueNameSchema } from \"./unique-name.schema.js\";\nimport { UrlSchema } from \"./url.schema.js\";\n\n/**\n * Schema for validating environment variables used by the SettleMint SDK.\n * Defines validation rules and types for configuration values like URLs,\n * access tokens, workspace names, and service endpoints.\n */\nexport const DotEnvSchema = z.object({\n /** Base URL of the SettleMint platform instance */\n SETTLEMINT_INSTANCE: UrlSchema.default(\"https://console.settlemint.com\"),\n /** Application access token for authenticating with SettleMint services */\n SETTLEMINT_ACCESS_TOKEN: ApplicationAccessTokenSchema.optional(),\n /** @internal */\n SETTLEMINT_PERSONAL_ACCESS_TOKEN: PersonalAccessTokenSchema.optional(),\n /** Unique name of the workspace */\n SETTLEMINT_WORKSPACE: UniqueNameSchema.optional(),\n /** Unique name of the application */\n SETTLEMINT_APPLICATION: UniqueNameSchema.optional(),\n /** Unique name of the blockchain network */\n SETTLEMINT_BLOCKCHAIN_NETWORK: UniqueNameSchema.optional(),\n /** Unique name of the blockchain node */\n SETTLEMINT_BLOCKCHAIN_NODE: UniqueNameSchema.optional(),\n /** Unique name of the load balancer */\n SETTLEMINT_LOAD_BALANCER: UniqueNameSchema.optional(),\n /** Unique name of the Hasura instance */\n SETTLEMINT_HASURA: UniqueNameSchema.optional(),\n /** Endpoint URL for the Hasura GraphQL API */\n SETTLEMINT_HASURA_ENDPOINT: UrlSchema.optional(),\n /** Admin secret for authenticating with Hasura */\n SETTLEMINT_HASURA_ADMIN_SECRET: z.string().optional(),\n /** Database connection URL for Hasura */\n SETTLEMINT_HASURA_DATABASE_URL: z.string().optional(),\n /** Unique name of The Graph instance */\n SETTLEMINT_THEGRAPH: UniqueNameSchema.optional(),\n /** Array of endpoint URLs for The Graph subgraphs */\n SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS: z.preprocess(\n (value) => tryParseJson(value as string, []),\n z.array(UrlSchema).optional(),\n ),\n /** Default The Graph subgraph to use */\n SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH: z.string().optional(),\n /** Unique name of the Smart Contract Portal instance */\n SETTLEMINT_PORTAL: UniqueNameSchema.optional(),\n /** GraphQL endpoint URL for the Portal */\n SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT: UrlSchema.optional(),\n /** REST endpoint URL for the Portal */\n SETTLEMINT_PORTAL_REST_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the HD private key */\n SETTLEMINT_HD_PRIVATE_KEY: UniqueNameSchema.optional(),\n /** Unique name of the accessible private key */\n SETTLEMINT_ACCESSIBLE_PRIVATE_KEY: UniqueNameSchema.optional(),\n /** Unique name of the MinIO instance */\n SETTLEMINT_MINIO: UniqueNameSchema.optional(),\n /** Endpoint URL for MinIO */\n SETTLEMINT_MINIO_ENDPOINT: UrlSchema.optional(),\n /** Access key for MinIO authentication */\n SETTLEMINT_MINIO_ACCESS_KEY: z.string().optional(),\n /** Secret key for MinIO authentication */\n SETTLEMINT_MINIO_SECRET_KEY: z.string().optional(),\n /** Unique name of the IPFS instance */\n SETTLEMINT_IPFS: UniqueNameSchema.optional(),\n /** API endpoint URL for IPFS */\n SETTLEMINT_IPFS_API_ENDPOINT: UrlSchema.optional(),\n /** Pinning service endpoint URL for IPFS */\n SETTLEMINT_IPFS_PINNING_ENDPOINT: UrlSchema.optional(),\n /** Gateway endpoint URL for IPFS */\n SETTLEMINT_IPFS_GATEWAY_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the custom deployment */\n SETTLEMINT_CUSTOM_DEPLOYMENT: UniqueNameSchema.optional(),\n /** Endpoint URL for the custom deployment */\n SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the Blockscout instance */\n SETTLEMINT_BLOCKSCOUT: UniqueNameSchema.optional(),\n /** GraphQL endpoint URL for Blockscout */\n SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT: UrlSchema.optional(),\n /** UI endpoint URL for Blockscout */\n SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: UrlSchema.optional(),\n /** Name of the new project being created */\n SETTLEMINT_NEW_PROJECT_NAME: z.string().optional(),\n});\n\n/**\n * Type definition for the environment variables schema.\n */\nexport type DotEnv = z.infer<typeof DotEnvSchema>;\n\n/**\n * Partial version of the environment variables schema where all fields are optional.\n * Useful for validating incomplete configurations during development or build time.\n */\nexport const DotEnvSchemaPartial = DotEnvSchema.partial();\n\n/**\n * Type definition for the partial environment variables schema.\n */\nexport type DotEnvPartial = z.infer<typeof DotEnvSchemaPartial>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating unique names used across the SettleMint platform.\n * Only accepts lowercase alphanumeric characters and hyphens.\n * Used for workspace names, application names, service names etc.\n *\n * @example\n * import { UniqueNameSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a workspace name\n * const isValidName = UniqueNameSchema.safeParse(\"my-workspace-123\").success;\n * // true\n *\n * // Invalid names will fail validation\n * const isInvalidName = UniqueNameSchema.safeParse(\"My Workspace!\").success;\n * // false\n */\nexport const UniqueNameSchema = z.string().regex(/^[a-z0-9-]+$/);\n\n/**\n * Type definition for unique names, inferred from UniqueNameSchema.\n */\nexport type UniqueName = z.infer<typeof UniqueNameSchema>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating URLs.\n *\n * @example\n * import { UrlSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL\n * const isValidUrl = UrlSchema.safeParse(\"https://console.settlemint.com\").success;\n * // true\n *\n * // Invalid URLs will fail validation\n * const isInvalidUrl = UrlSchema.safeParse(\"not-a-url\").success;\n * // false\n */\nexport const UrlSchema = z.string().url();\nexport type Url = z.infer<typeof UrlSchema>;\n\n/**\n * Schema for validating URL paths.\n *\n * @example\n * import { UrlPathSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL path\n * const isValidPath = UrlPathSchema.safeParse(\"/api/v1/users\").success;\n * // true\n *\n * // Invalid paths will fail validation\n * const isInvalidPath = UrlPathSchema.safeParse(\"not-a-path\").success;\n * // false\n */\nexport const UrlPathSchema = z.string().regex(/^\\/(?:[a-zA-Z0-9-_]+(?:\\/[a-zA-Z0-9-_]+)*\\/?)?$/, {\n message: \"Invalid URL path format. Must start with '/' and can contain letters, numbers, hyphens, and underscores.\",\n});\n\nexport type UrlPath = z.infer<typeof UrlPathSchema>;\n\n/**\n * Schema that accepts either a full URL or a URL path.\n *\n * @example\n * import { UrlOrPathSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL\n * const isValidUrl = UrlOrPathSchema.safeParse(\"https://console.settlemint.com\").success;\n * // true\n *\n * // Validate a path\n * const isValidPath = UrlOrPathSchema.safeParse(\"/api/v1/users\").success;\n * // true\n */\nexport const UrlOrPathSchema = z.union([UrlSchema, UrlPathSchema]);\nexport type UrlOrPath = z.infer<typeof UrlOrPathSchema>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating database IDs. Accepts both PostgreSQL UUIDs and MongoDB ObjectIDs.\n * PostgreSQL UUIDs are 32 hexadecimal characters with hyphens (e.g. 123e4567-e89b-12d3-a456-426614174000).\n * MongoDB ObjectIDs are 24 hexadecimal characters (e.g. 507f1f77bcf86cd799439011).\n *\n * @example\n * import { IdSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate PostgreSQL UUID\n * const isValidUuid = IdSchema.safeParse(\"123e4567-e89b-12d3-a456-426614174000\").success;\n *\n * // Validate MongoDB ObjectID\n * const isValidObjectId = IdSchema.safeParse(\"507f1f77bcf86cd799439011\").success;\n */\nexport const IdSchema = z.union([\n z\n .string()\n .uuid(), // PostgreSQL UUID\n z\n .string()\n .regex(/^[0-9a-fA-F]{24}$/), // MongoDB ObjectID\n]);\n\n/**\n * Type definition for database IDs, inferred from IdSchema.\n * Can be either a PostgreSQL UUID string or MongoDB ObjectID string.\n */\nexport type Id = z.infer<typeof IdSchema>;\n"],"mappings":"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","names":["z","z","z","z","z"]}
1
+ {"version":3,"sources":["../src/validation/validate.ts","../src/validation/access-token.schema.ts","../src/json.ts","../src/validation/dot-env.schema.ts","../src/validation/unique-name.schema.ts","../src/validation/url.schema.ts","../src/validation/id.schema.ts"],"sourcesContent":["import { ZodError, type ZodSchema } from \"zod\";\n\n/**\n * Validates a value against a given Zod schema.\n *\n * @param schema - The Zod schema to validate against.\n * @param value - The value to validate.\n * @returns The validated and parsed value.\n * @throws Will throw an error if validation fails, with formatted error messages.\n *\n * @example\n * import { validate } from \"@settlemint/sdk-utils/validation\";\n *\n * const validatedId = validate(IdSchema, \"550e8400-e29b-41d4-a716-446655440000\");\n */\nexport function validate<T extends ZodSchema>(schema: T, value: unknown): T[\"_output\"] {\n try {\n return schema.parse(value);\n } catch (error) {\n if (error instanceof ZodError) {\n const formattedErrors = error.errors.map((err) => `- ${err.path.join(\".\")}: ${err.message}`).join(\"\\n\");\n throw new Error(`Validation error${error.errors.length > 1 ? \"s\" : \"\"}:\\n${formattedErrors}`);\n }\n throw error; // Re-throw if it's not a ZodError\n }\n}\n","import { type ZodString, z } from \"zod\";\n\n/**\n * Schema for validating application access tokens.\n * Application access tokens start with 'sm_aat_' prefix.\n */\nexport const ApplicationAccessTokenSchema: ZodString = z.string().regex(/^sm_aat_.*$/);\nexport type ApplicationAccessToken = z.infer<typeof ApplicationAccessTokenSchema>;\n\n/**\n * Schema for validating personal access tokens.\n * Personal access tokens start with 'sm_pat_' prefix.\n */\nexport const PersonalAccessTokenSchema: ZodString = z.string().regex(/^sm_pat_.*$/);\nexport type PersonalAccessToken = z.infer<typeof PersonalAccessTokenSchema>;\n\n/**\n * Schema for validating both application and personal access tokens.\n * Accepts tokens starting with either 'sm_pat_' or 'sm_aat_' prefix.\n */\nexport const AccessTokenSchema: ZodString = z.string().regex(/^sm_pat_.*|sm_aat_.*$/);\nexport type AccessToken = z.infer<typeof AccessTokenSchema>;\n","/**\n * Attempts to parse a JSON string into a typed value, returning a default value if parsing fails.\n *\n * @param value - The JSON string to parse\n * @param defaultValue - The value to return if parsing fails or results in null/undefined\n * @returns The parsed JSON value as type T, or the default value if parsing fails\n *\n * @example\n * import { tryParseJson } from \"@settlemint/sdk-utils\";\n *\n * const config = tryParseJson<{ port: number }>(\n * '{\"port\": 3000}',\n * { port: 8080 }\n * );\n * // Returns: { port: 3000 }\n *\n * const invalid = tryParseJson<string[]>(\n * 'invalid json',\n * []\n * );\n * // Returns: []\n */\nexport function tryParseJson<T>(value: string, defaultValue: T | null = null): T | null {\n try {\n const parsed = JSON.parse(value) as T;\n if (parsed === undefined || parsed === null) {\n return defaultValue;\n }\n return parsed;\n } catch (err) {\n // Invalid json\n return defaultValue;\n }\n}\n","import { tryParseJson } from \"@/json.js\";\nimport { z } from \"zod\";\nimport { ApplicationAccessTokenSchema, PersonalAccessTokenSchema } from \"./access-token.schema.js\";\nimport { UniqueNameSchema } from \"./unique-name.schema.js\";\nimport { UrlSchema } from \"./url.schema.js\";\n\n/**\n * Schema for validating environment variables used by the SettleMint SDK.\n * Defines validation rules and types for configuration values like URLs,\n * access tokens, workspace names, and service endpoints.\n */\nexport const DotEnvSchema = z.object({\n /** Base URL of the SettleMint platform instance */\n SETTLEMINT_INSTANCE: UrlSchema.default(\"https://console.settlemint.com\"),\n /** Application access token for authenticating with SettleMint services */\n SETTLEMINT_ACCESS_TOKEN: ApplicationAccessTokenSchema.optional(),\n /** @internal */\n SETTLEMINT_PERSONAL_ACCESS_TOKEN: PersonalAccessTokenSchema.optional(),\n /** Unique name of the workspace */\n SETTLEMINT_WORKSPACE: UniqueNameSchema.optional(),\n /** Unique name of the application */\n SETTLEMINT_APPLICATION: UniqueNameSchema.optional(),\n /** Unique name of the blockchain network */\n SETTLEMINT_BLOCKCHAIN_NETWORK: UniqueNameSchema.optional(),\n /** Unique name of the blockchain node */\n SETTLEMINT_BLOCKCHAIN_NODE: UniqueNameSchema.optional(),\n /** Unique name of the load balancer */\n SETTLEMINT_LOAD_BALANCER: UniqueNameSchema.optional(),\n /** Unique name of the Hasura instance */\n SETTLEMINT_HASURA: UniqueNameSchema.optional(),\n /** Endpoint URL for the Hasura GraphQL API */\n SETTLEMINT_HASURA_ENDPOINT: UrlSchema.optional(),\n /** Admin secret for authenticating with Hasura */\n SETTLEMINT_HASURA_ADMIN_SECRET: z.string().optional(),\n /** Database connection URL for Hasura */\n SETTLEMINT_HASURA_DATABASE_URL: z.string().optional(),\n /** Unique name of The Graph instance */\n SETTLEMINT_THEGRAPH: UniqueNameSchema.optional(),\n /** Array of endpoint URLs for The Graph subgraphs */\n SETTLEMINT_THEGRAPH_SUBGRAPHS_ENDPOINTS: z.preprocess(\n (value) => tryParseJson(value as string, []),\n z.array(UrlSchema).optional(),\n ),\n /** Default The Graph subgraph to use */\n SETTLEMINT_THEGRAPH_DEFAULT_SUBGRAPH: z.string().optional(),\n /** Unique name of the Smart Contract Portal instance */\n SETTLEMINT_PORTAL: UniqueNameSchema.optional(),\n /** GraphQL endpoint URL for the Portal */\n SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT: UrlSchema.optional(),\n /** REST endpoint URL for the Portal */\n SETTLEMINT_PORTAL_REST_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the HD private key */\n SETTLEMINT_HD_PRIVATE_KEY: UniqueNameSchema.optional(),\n /** Unique name of the accessible private key */\n SETTLEMINT_ACCESSIBLE_PRIVATE_KEY: UniqueNameSchema.optional(),\n /** Unique name of the MinIO instance */\n SETTLEMINT_MINIO: UniqueNameSchema.optional(),\n /** Endpoint URL for MinIO */\n SETTLEMINT_MINIO_ENDPOINT: UrlSchema.optional(),\n /** Access key for MinIO authentication */\n SETTLEMINT_MINIO_ACCESS_KEY: z.string().optional(),\n /** Secret key for MinIO authentication */\n SETTLEMINT_MINIO_SECRET_KEY: z.string().optional(),\n /** Unique name of the IPFS instance */\n SETTLEMINT_IPFS: UniqueNameSchema.optional(),\n /** API endpoint URL for IPFS */\n SETTLEMINT_IPFS_API_ENDPOINT: UrlSchema.optional(),\n /** Pinning service endpoint URL for IPFS */\n SETTLEMINT_IPFS_PINNING_ENDPOINT: UrlSchema.optional(),\n /** Gateway endpoint URL for IPFS */\n SETTLEMINT_IPFS_GATEWAY_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the custom deployment */\n SETTLEMINT_CUSTOM_DEPLOYMENT: UniqueNameSchema.optional(),\n /** Endpoint URL for the custom deployment */\n SETTLEMINT_CUSTOM_DEPLOYMENT_ENDPOINT: UrlSchema.optional(),\n /** Unique name of the Blockscout instance */\n SETTLEMINT_BLOCKSCOUT: UniqueNameSchema.optional(),\n /** GraphQL endpoint URL for Blockscout */\n SETTLEMINT_BLOCKSCOUT_GRAPHQL_ENDPOINT: UrlSchema.optional(),\n /** UI endpoint URL for Blockscout */\n SETTLEMINT_BLOCKSCOUT_UI_ENDPOINT: UrlSchema.optional(),\n /** Name of the new project being created */\n SETTLEMINT_NEW_PROJECT_NAME: z.string().optional(),\n /** The log level to use */\n SETTLEMINT_LOG_LEVEL: z.enum([\"debug\", \"info\", \"warn\", \"error\", \"none\"]).default(\"warn\"),\n});\n\n/**\n * Type definition for the environment variables schema.\n */\nexport type DotEnv = z.infer<typeof DotEnvSchema>;\n\n/**\n * Partial version of the environment variables schema where all fields are optional.\n * Useful for validating incomplete configurations during development or build time.\n */\nexport const DotEnvSchemaPartial = DotEnvSchema.partial();\n\n/**\n * Type definition for the partial environment variables schema.\n */\nexport type DotEnvPartial = z.infer<typeof DotEnvSchemaPartial>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating unique names used across the SettleMint platform.\n * Only accepts lowercase alphanumeric characters and hyphens.\n * Used for workspace names, application names, service names etc.\n *\n * @example\n * import { UniqueNameSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a workspace name\n * const isValidName = UniqueNameSchema.safeParse(\"my-workspace-123\").success;\n * // true\n *\n * // Invalid names will fail validation\n * const isInvalidName = UniqueNameSchema.safeParse(\"My Workspace!\").success;\n * // false\n */\nexport const UniqueNameSchema = z.string().regex(/^[a-z0-9-]+$/);\n\n/**\n * Type definition for unique names, inferred from UniqueNameSchema.\n */\nexport type UniqueName = z.infer<typeof UniqueNameSchema>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating URLs.\n *\n * @example\n * import { UrlSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL\n * const isValidUrl = UrlSchema.safeParse(\"https://console.settlemint.com\").success;\n * // true\n *\n * // Invalid URLs will fail validation\n * const isInvalidUrl = UrlSchema.safeParse(\"not-a-url\").success;\n * // false\n */\nexport const UrlSchema = z.string().url();\nexport type Url = z.infer<typeof UrlSchema>;\n\n/**\n * Schema for validating URL paths.\n *\n * @example\n * import { UrlPathSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL path\n * const isValidPath = UrlPathSchema.safeParse(\"/api/v1/users\").success;\n * // true\n *\n * // Invalid paths will fail validation\n * const isInvalidPath = UrlPathSchema.safeParse(\"not-a-path\").success;\n * // false\n */\nexport const UrlPathSchema = z.string().regex(/^\\/(?:[a-zA-Z0-9-_]+(?:\\/[a-zA-Z0-9-_]+)*\\/?)?$/, {\n message: \"Invalid URL path format. Must start with '/' and can contain letters, numbers, hyphens, and underscores.\",\n});\n\nexport type UrlPath = z.infer<typeof UrlPathSchema>;\n\n/**\n * Schema that accepts either a full URL or a URL path.\n *\n * @example\n * import { UrlOrPathSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate a URL\n * const isValidUrl = UrlOrPathSchema.safeParse(\"https://console.settlemint.com\").success;\n * // true\n *\n * // Validate a path\n * const isValidPath = UrlOrPathSchema.safeParse(\"/api/v1/users\").success;\n * // true\n */\nexport const UrlOrPathSchema = z.union([UrlSchema, UrlPathSchema]);\nexport type UrlOrPath = z.infer<typeof UrlOrPathSchema>;\n","import { z } from \"zod\";\n\n/**\n * Schema for validating database IDs. Accepts both PostgreSQL UUIDs and MongoDB ObjectIDs.\n * PostgreSQL UUIDs are 32 hexadecimal characters with hyphens (e.g. 123e4567-e89b-12d3-a456-426614174000).\n * MongoDB ObjectIDs are 24 hexadecimal characters (e.g. 507f1f77bcf86cd799439011).\n *\n * @example\n * import { IdSchema } from \"@settlemint/sdk-utils/validation\";\n *\n * // Validate PostgreSQL UUID\n * const isValidUuid = IdSchema.safeParse(\"123e4567-e89b-12d3-a456-426614174000\").success;\n *\n * // Validate MongoDB ObjectID\n * const isValidObjectId = IdSchema.safeParse(\"507f1f77bcf86cd799439011\").success;\n */\nexport const IdSchema = z.union([\n z\n .string()\n .uuid(), // PostgreSQL UUID\n z\n .string()\n .regex(/^[0-9a-fA-F]{24}$/), // MongoDB ObjectID\n]);\n\n/**\n * Type definition for database IDs, inferred from IdSchema.\n * Can be either a PostgreSQL UUID string or MongoDB ObjectID string.\n */\nexport type Id = z.infer<typeof IdSchema>;\n"],"mappings":"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","names":["z","z","z","z","z"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@settlemint/sdk-utils",
3
3
  "description": "Shared utilities and helper functions for SettleMint SDK modules",
4
- "version": "2.0.0",
4
+ "version": "2.1.1",
5
5
  "type": "module",
6
6
  "private": false,
7
7
  "license": "FSL-1.1-MIT",
@@ -57,7 +57,7 @@
57
57
  "typecheck": "tsc --noEmit",
58
58
  "publish-npm": "bun publish --tag ${TAG} --access public || exit 0",
59
59
  "prepack": "cp ../../LICENSE .",
60
- "docs": "typedoc --options '../../typedoc.config.mjs' --entryPoints src/index.ts src/environment.ts src/filesystem.ts src/http.ts src/package-manager.ts src/terminal.ts src/runtime.ts src/validation.ts --out ./docs"
60
+ "docs": "typedoc --options '../../typedoc.config.mjs' --entryPoints src/index.ts src/environment.ts src/filesystem.ts src/http.ts src/logging.ts src/package-manager.ts src/runtime.ts src/terminal.ts src/validation.ts --out ./docs"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@types/npmcli__package-json": "^4"