mlld
Version:
mlld: llm scripting language
1 lines • 2.42 kB
Source Map (JSON)
{"version":3,"sources":["../interpreter/utils/frontmatter-parser.ts"],"names":[],"mappings":";;;;;AASO,SAAS,iBAAiB,OAAsB,EAAA;AACrD,EAAI,IAAA;AAGF,IAAA,MAAM,YAAe,GAAA,CAAA;AAAA,EAAQ,OAAO;AAAA;AAAA,CAAA;AAIpC,IAAM,MAAA,MAAA,GAAS,OAAO,YAAc,EAAA;AAAA,MAClC,OAAS,EAAA;AAAA,QACP,IAAM,EAAA;AAAA,UACJ,KAAA,0BAAQ,KAAuB,KAAA,IAAA,CAAA,IAAA,CAAK,OAAO,EAAE,MAAA,EAAa,IAAgB,CAAA,eAAA,EAAC,CAApE,EAAA,OAAA,CAAA;AAAA,UACP,SAAA,0BAAY,GAAkB,KAAA,IAAA,CAAA,IAAA,CAAK,KAAK,EAAE,MAAA,EAAa,IAAgB,CAAA,eAAA,EAAC,CAA7D,EAAA,WAAA;AAAA;AACb;AACF,KACD,CAAA;AAGD,IAAO,OAAA,MAAA,CAAO,QAAQ,EAAC;AAAA,WAChB,KAAY,EAAA;AAGnB,IAAA,MAAM,IAAI,cAAA;AAAA,MACR,CAAA,0BAAA,EAA6B,MAAM,OAAO,CAAA,CAAA;AAAA,MAC1C;AAAA,QACE,OAAO,EAAE,IAAA,EAAM,GAAG,MAAQ,EAAA,CAAA,EAAG,QAAQ,CAAE,EAAA;AAAA,QACvC,KAAK,EAAE,IAAA,EAAM,GAAG,MAAQ,EAAA,CAAA,EAAG,QAAQ,CAAE;AAAA;AACvC,KACF;AAAA;AAEJ;AA9BgB,MAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA","file":"chunk-GTH66VCW.mjs","sourcesContent":["import matter from 'gray-matter';\nimport * as yaml from 'js-yaml';\nimport { MlldParseError } from '@core/errors';\n\n/**\n * Parse YAML frontmatter content using gray-matter\n * @param content Raw YAML content from FrontmatterNode (without the --- delimiters)\n * @returns Parsed JavaScript object\n */\nexport function parseFrontmatter(content: string): any {\n try {\n // gray-matter expects the full document with --- delimiters\n // Since we only get the YAML content without delimiters, we need to wrap it\n const fullDocument = `---\\n${content}\\n---\\n`;\n \n // Use gray-matter with custom YAML engine to avoid date parsing\n // FAILSAFE_SCHEMA only supports strings, arrays, and plain objects (no date conversion)\n const parsed = matter(fullDocument, {\n engines: {\n yaml: {\n parse: (input: string) => yaml.load(input, { schema: yaml.FAILSAFE_SCHEMA }),\n stringify: (obj: any) => yaml.dump(obj, { schema: yaml.FAILSAFE_SCHEMA })\n }\n }\n });\n \n // Return the parsed frontmatter data\n return parsed.data || {};\n } catch (error: any) {\n // gray-matter doesn't provide line/column info like js-yaml does\n // but it's much more robust at parsing various frontmatter formats\n throw new MlldParseError(\n `Invalid YAML frontmatter: ${error.message}`,\n { \n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 }\n }\n );\n }\n}"]}