{"version":3,"sources":["/home/mkabumattar/work/withrawi/rawi/dist/chunk-YEL2W4UF.cjs","../src/core/configs/managers/provider-config.manager.ts"],"names":["ProviderConfigManager","defaultBaseURL","chalk","trimmed","input","defaultEndpoint","defaultRegion","defaultProjectId","defaultAccessKey","defaultSecretKey","defaultToken"],"mappings":"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","file":"/home/mkabumattar/work/withrawi/rawi/dist/chunk-YEL2W4UF.cjs","sourcesContent":[null,"import {input} from '@inquirer/prompts';\nimport chalk from 'chalk';\nimport type {IProviderConfigManager} from '../interfaces/config-manager.interface.js';\n\nexport class ProviderConfigManager implements IProviderConfigManager {\n  async getBaseURL(defaultBaseURL?: string): Promise<string | undefined> {\n    console.log(\n      chalk.gray('Note: The Base URL is where your service is running.'),\n    );\n    console.log(chalk.gray('Leave empty to use the default endpoint.'));\n\n    const baseURL = await input({\n      message: 'Base URL:',\n      default: defaultBaseURL || '',\n      validate: (input: string) => {\n        if (!input.trim()) {\n          return true;\n        }\n\n        try {\n          new URL(input.trim());\n          return true;\n        } catch {\n          return 'Please enter a valid URL (e.g., https://api.example.com)';\n        }\n      },\n    });\n\n    const trimmed = baseURL.trim();\n    return trimmed === '' ? undefined : trimmed;\n  }\n\n  async getAPIEndpoint(defaultEndpoint?: string): Promise<string | undefined> {\n    console.log(chalk.gray('Note: API endpoint for custom deployments.'));\n    console.log(chalk.gray('Leave empty to use the default endpoint.'));\n\n    const endpoint = await input({\n      message: 'API Endpoint:',\n      default: defaultEndpoint || '',\n      validate: (input: string) => {\n        if (!input.trim()) {\n          return true;\n        }\n\n        const trimmed = input.trim();\n        if (!trimmed.startsWith('http://') && !trimmed.startsWith('https://')) {\n          return 'Endpoint must start with http:// or https://';\n        }\n\n        return true;\n      },\n    });\n\n    const trimmed = endpoint.trim();\n    return trimmed === '' ? undefined : trimmed;\n  }\n\n  async getRegion(defaultRegion?: string): Promise<string | undefined> {\n    console.log(chalk.gray('Select the region for your cloud provider:'));\n\n    const region = await input({\n      message: 'Region:',\n      default: defaultRegion || 'us-east-1',\n      validate: (input: string) => {\n        if (!input.trim()) {\n          return 'Region is required';\n        }\n        return true;\n      },\n    });\n\n    return region.trim();\n  }\n\n  async getProjectId(defaultProjectId?: string): Promise<string | undefined> {\n    console.log(\n      chalk.gray('Note: Project ID from your cloud provider console.'),\n    );\n\n    const projectId = await input({\n      message: 'Project ID:',\n      default: defaultProjectId || '',\n      validate: (input: string) => {\n        if (!input.trim()) {\n          return 'Project ID is required';\n        }\n\n        const trimmed = input.trim();\n        if (!/^[a-zA-Z0-9-]+$/.test(trimmed)) {\n          return 'Project ID can only contain letters, numbers, and hyphens';\n        }\n\n        return true;\n      },\n    });\n\n    return projectId.trim();\n  }\n\n  async getAccessKey(defaultAccessKey?: string): Promise<string | undefined> {\n    console.log(chalk.gray('Note: AWS Access Key ID from your AWS console.'));\n\n    const accessKey = await input({\n      message: 'Access Key ID:',\n      default: defaultAccessKey || '',\n      validate: (input: string) => {\n        if (!input.trim()) {\n          return 'Access Key ID is required';\n        }\n\n        const trimmed = input.trim();\n        if (trimmed.length < 16 || trimmed.length > 32) {\n          return 'Access Key ID should be 16-32 characters long';\n        }\n\n        return true;\n      },\n    });\n\n    return accessKey.trim();\n  }\n\n  async getSecretAccessKey(\n    defaultSecretKey?: string,\n  ): Promise<string | undefined> {\n    console.log(\n      chalk.gray('Note: AWS Secret Access Key from your AWS console.'),\n    );\n\n    const secretKey = await input({\n      message: 'Secret Access Key:',\n      default: defaultSecretKey || '',\n      validate: (input: string) => {\n        if (!input.trim()) {\n          return 'Secret Access Key is required';\n        }\n\n        const trimmed = input.trim();\n        if (trimmed.length < 16) {\n          return 'Secret Access Key seems too short';\n        }\n\n        return true;\n      },\n    });\n\n    return secretKey.trim();\n  }\n\n  async getSessionToken(defaultToken?: string): Promise<string | undefined> {\n    console.log(\n      chalk.gray('Note: Optional session token for temporary AWS credentials.'),\n    );\n    console.log(chalk.gray('Leave empty if using permanent credentials.'));\n\n    const token = await input({\n      message: 'Session Token (optional):',\n      default: defaultToken || '',\n    });\n\n    const trimmed = token.trim();\n    return trimmed === '' ? undefined : trimmed;\n  }\n}\n"]}