{"version":3,"sources":["../../../src/utils/logger.ts","../../../src/errors/errors.ts"],"names":["winston","chalk"],"mappings":"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","file":"errors.cjs","sourcesContent":["import winston from 'winston';\nimport chalk from 'chalk';\nimport { IssueError, FileNotFoundError, InvalidFilenameError, InvalidTargetError, FileExistsError, handleError } from '../errors/errors.js';\n\n// Define our custom logger interface\nexport interface CustomLogger extends winston.Logger {\n  success(message: any, ...meta: any[]): winston.Logger;\n  debug(message: any, ...meta: any[]): winston.Logger;\n}\n\nconst { format, createLogger, transports } = winston;\nconst { combine, timestamp, printf } = format;\n\n// Custom format for different log levels\nconst customFormat = printf((info: winston.Logform.TransformableInfo) => {\n  const ts = new Date(info.timestamp?.toString() || Date.now()).toLocaleTimeString();\n  \n  switch (info.level) {\n    case 'error':\n      return `${chalk.gray(ts)} ${chalk.red('✖')} ${chalk.red(info.message)}`;\n    case 'warn':\n      return `${chalk.gray(ts)} ${chalk.yellow('⚠')} ${chalk.yellow(info.message)}`;\n    case 'info':\n      return `${chalk.gray(ts)} ${chalk.blue('ℹ')} ${info.message}`;\n    case 'debug':\n      return `${chalk.gray(ts)} ${chalk.gray('🔍')} ${chalk.gray(info.message)}`;\n    case 'success':\n      return `${chalk.gray(ts)} ${chalk.green('✔')} ${chalk.green(info.message)}`;\n    default:\n      return `${chalk.gray(ts)} ${info.message}`;\n  }\n});\n\n// Create custom success level\nconst customLevels = {\n  levels: {\n    error: 0,\n    warn: 1,\n    info: 2,\n    debug: 3,\n    success: 4\n  },\n  colors: {\n    error: 'red',\n    warn: 'yellow',\n    info: 'blue',\n    debug: 'gray',\n    success: 'green'\n  }\n};\n\n// Create a filter to completely silence debug messages unless explicitly enabled\nconst silenceDebug = format((info) => {\n  if (info.level === 'debug' && !process.env.DEBUG_ENABLED) {\n    return false;\n  }\n  return info;\n});\n\n// Create the logger with silent debug by default\nconst baseLogger = createLogger({\n  levels: customLevels.levels,\n  format: combine(\n    silenceDebug(),\n    timestamp(),\n    customFormat\n  ),\n  transports: [\n    new transports.Console({\n      level: 'info'\n    })\n  ]\n});\n\n// Add success method to match our interface\n(baseLogger as any).success = baseLogger.info;\n\nexport const logger = baseLogger as CustomLogger;\n\n// Add colors to winston\nwinston.addColors(customLevels.colors);\n\n// Function to configure logger based on debug flag\nexport function configureLogger(debug: boolean = false) {\n  process.env.DEBUG_ENABLED = debug ? 'true' : '';\n  const level = debug ? 'debug' : 'info';\n  logger.transports.forEach(transport => {\n    if (transport instanceof winston.transports.Console) {\n      transport.level = level;\n    }\n  });\n}\n\n// Re-export error types for convenience\nexport { IssueError, FileNotFoundError, InvalidFilenameError, InvalidTargetError, FileExistsError, handleError }; ","// Third-party imports\nimport chalk from 'chalk';\n\n// Utility imports\nimport { logger } from '../utils/logger.js';\n\n// Base error class for all issue-related errors\nexport class IssueError extends Error {\n  constructor(\n    message: string,\n    public code: string\n  ) {\n    super(message);\n    this.name = 'IssueError';\n  }\n}\n\n// Specific error classes\nexport class FileNotFoundError extends IssueError {\n  constructor(file: string) {\n    super(\n      `Could not find file: ${chalk.cyan(file)}\\n` +\n      `Make sure you're in the correct directory and the file exists.`,\n      'FILE_NOT_FOUND'\n    );\n  }\n}\n\nexport class InvalidFilenameError extends IssueError {\n  constructor(filename: string) {\n    super(\n      `Invalid filename format: ${chalk.cyan(filename)}\\n` +\n      `Expected format for active items: {id}-{type}-{state}[-plan-{planid}].md\\n` +\n      `Expected format for archived items: {reason}-{type}-{id}.md`,\n      'INVALID_FILENAME'\n    );\n  }\n}\n\nexport class InvalidTargetError extends IssueError {\n  constructor(target: string, validTypes: readonly string[], validStates: readonly string[]) {\n    super(\n      `Invalid target: ${chalk.cyan(target)}\\n` +\n      `Must be one of:\\n` +\n      `  Types: ${validTypes.map(t => chalk.cyan(t)).join(', ')}\\n` +\n      `  States: ${validStates.map(s => chalk.cyan(s)).join(', ')}`,\n      'INVALID_TARGET'\n    );\n  }\n}\n\nexport class FileExistsError extends IssueError {\n  constructor(file: string) {\n    super(\n      `File already exists: ${chalk.cyan(file)}\\n` +\n      `Use a different name or remove the existing file first.`,\n      'FILE_EXISTS'\n    );\n  }\n}\n\nexport class TemplateNotFoundError extends IssueError {\n  constructor(type: string, validTypes: readonly string[]) {\n    super(\n      `Template not found: ${chalk.cyan(type)}\\n` +\n      `Available templates: ${validTypes.map(t => chalk.cyan(t)).join(', ')}`,\n      'TEMPLATE_NOT_FOUND'\n    );\n  }\n}\n\nexport class InvalidIssueTypeError extends IssueError {\n  constructor(type: string, validTypes: readonly string[]) {\n    super(\n      `Invalid issue type: ${chalk.red(type)}. Valid types are: ${validTypes.map(t => chalk.green(t)).join(', ')}`,\n      'INVALID_TYPE'\n    );\n  }\n}\n\nexport class IdCollisionError extends IssueError {\n  constructor(id: string) {\n    super(\n      `A file with ID ${chalk.red(id)} already exists in the inbox`,\n      'ID_COLLISION'\n    );\n  }\n}\n\nexport class FrontmatterError extends IssueError {\n  constructor(message: string) {\n    super(\n      `Frontmatter error: ${chalk.red(message)}`,\n      'INVALID_FRONTMATTER'\n    );\n  }\n}\n\nexport class ContentError extends IssueError {\n  constructor(message: string) {\n    super(\n      `Content error: ${chalk.red(message)}`,\n      'CONTENT_ERROR'\n    );\n  }\n}\n\nexport class InvalidStateError extends IssueError {\n  constructor(from: string, to: string) {\n    super(\n      `Invalid state transition from ${chalk.red(from)} to ${chalk.red(to)}`,\n      'INVALID_STATE_TRANSITION'\n    );\n  }\n}\n\nexport class StateTransitionError extends IssueError {\n  constructor(from: string, to: string, reason: string) {\n    super(\n      `Cannot transition from ${chalk.red(from)} to ${chalk.red(to)}: ${reason}`,\n      'STATE_TRANSITION_ERROR'\n    );\n  }\n}\n\n// Error handling utility\nexport function handleError(error: unknown): never {\n  if (error instanceof IssueError) {\n    logger.error(error.message);\n    process.exit(1);\n  }\n  \n  if (error instanceof Error) {\n    logger.error(error.message);\n    process.exit(1);\n  }\n  \n  logger.error('An unknown error occurred');\n  process.exit(1);\n} "]}