{"version":3,"sources":["../../src/schema/parse-schema.ts"],"sourcesContent":["import Definitions from '../core/definitions';\r\nimport ASTParser from '../parser/ast-parser';\r\nimport Tokenizer from '../parser/tokenizer';\r\nimport Node from '../parser/nodes/nodes';\r\nimport assertNever from '../errors/asserts/asserts';\r\nimport Schema from './schema';\r\nimport compileObject from './compile-object';\r\n\r\n/**\r\n * Parse an inline schema definition string into a Schema instance.\r\n *\r\n * This is intended for dynamic schema strings (non-template-literal usage).\r\n * For template literals, prefer `io.schema` / `ioSchema`.\r\n *\r\n * @param schemaText - The schema string to parse (e.g., `{ name: string, age: int }`).\r\n * @param parentDefs - Optional parent definitions for resolving references.\r\n * @returns The parsed Schema instance.\r\n * @throws {Error} If the input string is empty or invalid.\r\n *\r\n * @example\r\n * ```typescript\r\n * const schema = parseSchema('{ name: string, age: int }');\r\n * ```\r\n */\r\nexport default function parseSchema(schemaText: string, parentDefs?: Definitions | null): Schema {\r\n  const input = schemaText.trim();\r\n  if (!input) {\r\n    // Keep behavior strict; empty schema is a programmer error.\r\n    throw new Error('parseSchema() requires a non-empty schema string');\r\n  }\r\n\r\n  const tokens = new Tokenizer(input).tokenize();\r\n  const ast = new ASTParser(tokens).parse();\r\n\r\n  // The grammar parses a \"document\" AST; schema is the first node payload.\r\n  const node = ast.children[0]?.child as Node | undefined;\r\n  if (!node) {\r\n    throw new Error('Invalid schema input');\r\n  }\r\n\r\n  const compiled = compileObject('inline', node, parentDefs ?? undefined);\r\n  if (compiled instanceof Schema) {\r\n    return compiled;\r\n  }\r\n\r\n  assertNever('Invalid schema type');\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAAsB;AACtB,uBAAsB;AAEtB,qBAAwB;AACxB,oBAAmB;AACnB,4BAA0B;AAkBX,SAAR,YAA6B,YAAoB,YAAyC;AAC/F,QAAM,QAAQ,WAAW,KAAK;AAC9B,MAAI,CAAC,OAAO;AAEV,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AAEA,QAAM,SAAS,IAAI,iBAAAA,QAAU,KAAK,EAAE,SAAS;AAC7C,QAAM,MAAM,IAAI,kBAAAC,QAAU,MAAM,EAAE,MAAM;AAGxC,QAAM,OAAO,IAAI,SAAS,CAAC,GAAG;AAC9B,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAEA,QAAM,eAAW,sBAAAC,SAAc,UAAU,MAAM,cAAc,MAAS;AACtE,MAAI,oBAAoB,cAAAC,SAAQ;AAC9B,WAAO;AAAA,EACT;AAEA,qBAAAC,SAAY,qBAAqB;AACnC;","names":["Tokenizer","ASTParser","compileObject","Schema","assertNever"]}