{"version":3,"file":"stringifyYaml.cjs","names":[],"sources":["../../../src/utils/stringifyYaml.ts"],"sourcesContent":["// Characters/patterns in a string that require quoting in YAML\nconst NEEDS_QUOTING =\n  /[\\n\\r\\t#:{}[\\],&*?|<>=!%@`'\"\\\\]|^[-?!]|\\s$|^\\s|^[>|]|^[.]{2,}/;\n\n// Values that parseYaml treats as preserved literals (not typed conversions)\nconst PRESERVED_LITERALS = new Set([\n  'true',\n  'false',\n  'null',\n  'undefined',\n  'yes',\n  'no',\n  'on',\n  'off',\n  'NaN',\n  'Infinity',\n  '-Infinity',\n]);\n\nconst serializeString = (value: string, indent: string): string => {\n  if (value.includes('\\n')) {\n    const lines = value.split('\\n');\n    const body = lines.map((l) => `${indent}  ${l}`).join('\\n');\n    return `|\\n${body}`;\n  }\n\n  if (\n    NEEDS_QUOTING.test(value) ||\n    PRESERVED_LITERALS.has(value) ||\n    /^-?\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?$/i.test(value)\n  ) {\n    return JSON.stringify(value);\n  }\n\n  return value;\n};\n\nconst serializeValue = (value: any, indent: string): string => {\n  if (value === null || value === undefined) return 'null';\n\n  if (typeof value === 'boolean' || typeof value === 'number') {\n    return String(value);\n  }\n\n  if (typeof value === 'string') {\n    return serializeString(value, indent);\n  }\n\n  if (Array.isArray(value)) {\n    if (value.length === 0) return '[]';\n    return value\n      .map((item) => {\n        const serialized = serializeValue(item, `${indent}  `);\n        if (\n          typeof item === 'object' &&\n          item !== null &&\n          !Array.isArray(item) &&\n          !serialized.startsWith(\"'\") &&\n          !serialized.startsWith('\"')\n        ) {\n          // Object items: put first key inline with the dash\n          const lines = serialized.split('\\n');\n          return `${indent}- ${lines[0]}\\n${lines\n            .slice(1)\n            .map((l) => `${indent}  ${l}`)\n            .join('\\n')}`.trimEnd();\n        }\n        return `${indent}- ${serialized}`;\n      })\n      .join('\\n');\n  }\n\n  if (typeof value === 'object') {\n    const entries = Object.entries(value).filter(([, v]) => v !== undefined);\n    if (entries.length === 0) return '{}';\n\n    return entries\n      .map(([k, value]) => {\n        const key = /[\\s:{}[\\]]/.test(k) ? JSON.stringify(k) : k;\n        const childIndent = `${indent}  `;\n\n        if (value === null || value === undefined) {\n          return `${indent}${key}: null`;\n        }\n\n        if (typeof value === 'object' && !Array.isArray(value)) {\n          const nested = serializeValue(value, childIndent);\n          return `${indent}${key}:\\n${nested}`;\n        }\n\n        if (Array.isArray(value)) {\n          if (value.length === 0) return `${indent}${key}: []`;\n          const nested = serializeValue(value, childIndent);\n          return `${indent}${key}:\\n${nested}`;\n        }\n\n        return `${indent}${key}: ${serializeValue(value, indent)}`;\n      })\n      .join('\\n');\n  }\n\n  return String(value);\n};\n\nexport const stringifyYaml = (value: any): string =>\n  `${serializeValue(value, '')}\\n`;\n"],"mappings":";;;AACA,MAAM,gBACJ;AAGF,MAAM,qBAAqB,IAAI,IAAI;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAM,mBAAmB,OAAe,WAA2B;AACjE,KAAI,MAAM,SAAS,KAAK,CAGtB,QAAO,MAFO,MAAM,MAAM,KACR,CAAC,KAAK,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,KACrC;AAGnB,KACE,cAAc,KAAK,MAAM,IACzB,mBAAmB,IAAI,MAAM,IAC7B,mCAAmC,KAAK,MAAM,CAE9C,QAAO,KAAK,UAAU,MAAM;AAG9B,QAAO;;AAGT,MAAM,kBAAkB,OAAY,WAA2B;AAC7D,KAAI,UAAU,QAAQ,UAAU,OAAW,QAAO;AAElD,KAAI,OAAO,UAAU,aAAa,OAAO,UAAU,SACjD,QAAO,OAAO,MAAM;AAGtB,KAAI,OAAO,UAAU,SACnB,QAAO,gBAAgB,OAAO,OAAO;AAGvC,KAAI,MAAM,QAAQ,MAAM,EAAE;AACxB,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,MACJ,KAAK,SAAS;GACb,MAAM,aAAa,eAAe,MAAM,GAAG,OAAO,IAAI;AACtD,OACE,OAAO,SAAS,YAChB,SAAS,QACT,CAAC,MAAM,QAAQ,KAAK,IACpB,CAAC,WAAW,WAAW,IAAI,IAC3B,CAAC,WAAW,WAAW,KAAI,EAC3B;IAEA,MAAM,QAAQ,WAAW,MAAM,KAAK;AACpC,WAAO,GAAG,OAAO,IAAI,MAAM,GAAG,IAAI,MAC/B,MAAM,EAAE,CACR,KAAK,MAAM,GAAG,OAAO,IAAI,IAAI,CAC7B,KAAK,KAAK,GAAG,SAAS;;AAE3B,UAAO,GAAG,OAAO,IAAI;IACrB,CACD,KAAK,KAAK;;AAGf,KAAI,OAAO,UAAU,UAAU;EAC7B,MAAM,UAAU,OAAO,QAAQ,MAAM,CAAC,QAAQ,GAAG,OAAO,MAAM,OAAU;AACxE,MAAI,QAAQ,WAAW,EAAG,QAAO;AAEjC,SAAO,QACJ,KAAK,CAAC,GAAG,WAAW;GACnB,MAAM,MAAM,aAAa,KAAK,EAAE,GAAG,KAAK,UAAU,EAAE,GAAG;GACvD,MAAM,cAAc,GAAG,OAAO;AAE9B,OAAI,UAAU,QAAQ,UAAU,OAC9B,QAAO,GAAG,SAAS,IAAI;AAGzB,OAAI,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,CAEpD,QAAO,GAAG,SAAS,IAAI,KADR,eAAe,OAAO,YACH;AAGpC,OAAI,MAAM,QAAQ,MAAM,EAAE;AACxB,QAAI,MAAM,WAAW,EAAG,QAAO,GAAG,SAAS,IAAI;AAE/C,WAAO,GAAG,SAAS,IAAI,KADR,eAAe,OAAO,YACH;;AAGpC,UAAO,GAAG,SAAS,IAAI,IAAI,eAAe,OAAO,OAAO;IACxD,CACD,KAAK,KAAK;;AAGf,QAAO,OAAO,MAAM;;AAGtB,MAAa,iBAAiB,UAC5B,GAAG,eAAe,OAAO,GAAG,CAAC"}