UNPKG

mlld

Version:

mlld: a modular prompt scripting language

1 lines 2.73 kB
{"version":3,"sources":["../interpreter/utils/frontmatter-parser.ts"],"names":["parseFrontmatter","content","fullDocument","parsed","matter","engines","yaml","parse","input","load","schema","FAILSAFE_SCHEMA","stringify","obj","dump","data","error","MlldParseError","message","start","line","column","offset","end"],"mappings":";;;;;AASO,SAASA,iBAAiBC,OAAe,EAAA;AAC9C,EAAI,IAAA;AAGF,IAAA,MAAMC,YAAe,GAAA,CAAA;EAAQD,OAAAA;;;AAI7B,IAAME,MAAAA,MAAAA,GAASC,OAAOF,YAAc,EAAA;MAClCG,OAAS,EAAA;QACPC,IAAM,EAAA;UACJC,KAAO,kBAAA,MAAA,CAAA,CAACC,KAAuBC,KAAAA,IAAAA,CAAAA,IAAAA,CAAKD,KAAO,EAAA;YAAEE,MAAaC,EAAAA,IAAAA,CAAAA;AAAgB,WAAA,CAAnE,EAAA,OAAA,CAAA;UACPC,SAAW,kBAAA,MAAA,CAAA,CAACC,GAAkBC,KAAAA,IAAAA,CAAAA,IAAAA,CAAKD,GAAK,EAAA;YAAEH,MAAaC,EAAAA,IAAAA,CAAAA;AAAgB,WAAA,CAA5D,EAAA,WAAA;AACb;AACF;KACF,CAAA;AAGA,IAAOR,OAAAA,MAAAA,CAAOY,QAAQ,EAAC;AACzB,GAAA,CAAA,OAASC,KAAY,EAAA;AAGnB,IAAA,MAAM,IAAIC,cAAAA,CACR,CAA6BD,0BAAAA,EAAAA,KAAAA,CAAME,OAAO,CAC1C,CAAA,EAAA;MACEC,KAAO,EAAA;QAAEC,IAAM,EAAA,CAAA;QAAGC,MAAQ,EAAA,CAAA;QAAGC,MAAQ,EAAA;AAAE,OAAA;MACvCC,GAAK,EAAA;QAAEH,IAAM,EAAA,CAAA;QAAGC,MAAQ,EAAA,CAAA;QAAGC,MAAQ,EAAA;AAAE;KACvC,CAAA;AAEJ;AACF;AA9BgBtB,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA","file":"chunk-UUW3GA6G.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}"]}