{"version":3,"sources":["../src/cli/commands/dataset/create.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport type { DatasetColumnType } from \"@/client-sdk/services/datasets/types\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { createDatasetService } from \"./service-factory\";\nimport { handleDatasetCommandError } from \"./error-handler\";\n\n/**\n * Parses a comma-separated column spec string into DatasetColumnType[].\n *\n * @param columnsStr - Format: \"name:type,name:type\" (e.g. \"input:string,output:string\")\n * @returns Parsed column type definitions\n * @throws Error if the format is invalid\n */\nexport const parseColumns = (columnsStr: string): DatasetColumnType[] => {\n  return columnsStr.split(\",\").map((pair) => {\n    const parts = pair.trim().split(\":\");\n    if (parts.length !== 2 || !parts[0]?.trim() || !parts[1]?.trim()) {\n      throw new Error(\n        `Invalid column format: \"${pair.trim()}\". Expected \"name:type\" (e.g. \"input:string\")`,\n      );\n    }\n    return { name: parts[0].trim(), type: parts[1].trim() };\n  });\n};\n\n/**\n * Creates a new dataset with the given name and optional column types.\n */\nexport const createCommand = async (\n  name: string,\n  options: { columns?: string; format?: string },\n): Promise<void> => {\n  checkApiKey();\n\n  let columnTypes: DatasetColumnType[] = [];\n  if (options.columns) {\n    try {\n      columnTypes = parseColumns(options.columns);\n    } catch (error) {\n      console.error(\n        chalk.red(error instanceof Error ? error.message : \"Invalid columns format\"),\n      );\n      process.exit(1);\n    }\n  }\n\n  const service = createDatasetService();\n  const spinner = ora(`Creating dataset \"${name}\"...`).start();\n\n  try {\n    const dataset = await service.createDataset({ name, columnTypes });\n\n    spinner.succeed(`Dataset created: ${chalk.cyan(dataset.slug)}`);\n\n    if (options.format === \"json\") {\n      console.log(JSON.stringify(dataset, null, 2));\n      return;\n    }\n\n    console.log();\n    console.log(`  ${chalk.bold(\"ID:\")}    ${dataset.id}`);\n    console.log(`  ${chalk.bold(\"Slug:\")}  ${dataset.slug}`);\n    if (dataset.columnTypes.length > 0) {\n      const colStr = dataset.columnTypes\n        .map((c) => `${c.name}:${c.type}`)\n        .join(\", \");\n      console.log(`  ${chalk.bold(\"Columns:\")} ${colStr}`);\n    }\n    const viewUrl = dataset.platformUrl;\n    if (viewUrl) {\n      console.log(`  ${chalk.bold(\"View:\")}  ${chalk.underline(viewUrl)}`);\n    }\n  } catch (error) {\n    handleDatasetCommandError({ spinner, error, context: \"create dataset\" });\n  }\n};\n"],"mappings":";;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAaT,IAAM,eAAe,CAAC,eAA4C;AACvE,SAAO,WAAW,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS;AAf7C;AAgBI,UAAM,QAAQ,KAAK,KAAK,EAAE,MAAM,GAAG;AACnC,QAAI,MAAM,WAAW,KAAK,GAAC,WAAM,CAAC,MAAP,mBAAU,WAAU,GAAC,WAAM,CAAC,MAAP,mBAAU,SAAQ;AAChE,YAAM,IAAI;AAAA,QACR,2BAA2B,KAAK,KAAK,CAAC;AAAA,MACxC;AAAA,IACF;AACA,WAAO,EAAE,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,MAAM,CAAC,EAAE,KAAK,EAAE;AAAA,EACxD,CAAC;AACH;AAKO,IAAM,gBAAgB,OAC3B,MACA,YACkB;AAClB,cAAY;AAEZ,MAAI,cAAmC,CAAC;AACxC,MAAI,QAAQ,SAAS;AACnB,QAAI;AACF,oBAAc,aAAa,QAAQ,OAAO;AAAA,IAC5C,SAAS,OAAO;AACd,cAAQ;AAAA,QACN,MAAM,IAAI,iBAAiB,QAAQ,MAAM,UAAU,wBAAwB;AAAA,MAC7E;AACA,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AAEA,QAAM,UAAU,qBAAqB;AACrC,QAAM,UAAU,IAAI,qBAAqB,IAAI,MAAM,EAAE,MAAM;AAE3D,MAAI;AACF,UAAM,UAAU,MAAM,QAAQ,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,YAAQ,QAAQ,oBAAoB,MAAM,KAAK,QAAQ,IAAI,CAAC,EAAE;AAE9D,QAAI,QAAQ,WAAW,QAAQ;AAC7B,cAAQ,IAAI,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AAC5C;AAAA,IACF;AAEA,YAAQ,IAAI;AACZ,YAAQ,IAAI,KAAK,MAAM,KAAK,KAAK,CAAC,OAAO,QAAQ,EAAE,EAAE;AACrD,YAAQ,IAAI,KAAK,MAAM,KAAK,OAAO,CAAC,KAAK,QAAQ,IAAI,EAAE;AACvD,QAAI,QAAQ,YAAY,SAAS,GAAG;AAClC,YAAM,SAAS,QAAQ,YACpB,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,EAChC,KAAK,IAAI;AACZ,cAAQ,IAAI,KAAK,MAAM,KAAK,UAAU,CAAC,IAAI,MAAM,EAAE;AAAA,IACrD;AACA,UAAM,UAAU,QAAQ;AACxB,QAAI,SAAS;AACX,cAAQ,IAAI,KAAK,MAAM,KAAK,OAAO,CAAC,KAAK,MAAM,UAAU,OAAO,CAAC,EAAE;AAAA,IACrE;AAAA,EACF,SAAS,OAAO;AACd,8BAA0B,EAAE,SAAS,OAAO,SAAS,iBAAiB,CAAC;AAAA,EACzE;AACF;","names":[]}