{"version":3,"file":"api.cjs","names":["parserFor","tsplus_module_1","tsplus_module_2","tsplus_module_5","tsplus_module_3","tsplus_module_4"],"sources":["../../esm/Parser/api.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/schema/AST\";\nimport * as tsplus_module_2 from \"@fncts/base/data/Either/api\";\nimport * as tsplus_module_3 from \"@fncts/schema/ParseError/TreeFormatter\";\nimport * as tsplus_module_4 from \"@fncts/base/data/function/api\";\nimport * as tsplus_module_5 from \"@fncts/base/data/Either/destructors\";\nexport const encode = encode_1;\nimport { parserFor } from \"./interpreter.js\";\n/**\n * @tsplus getter fncts.schema.Schema decode\n * @tsplus getter fncts.schema.Parser decode\n */\nexport function decode(schema) {\n    return parserFor(schema.ast, true);\n}\n/**\n * @tsplus getter fncts.schema.Schema decodeMaybe\n * @tsplus getter fncts.schema.Parser decodeMaybe\n */\nexport function decodeMaybe(schema) {\n    return parseMaybe(tsplus_module_1.getTo(schema.ast));\n}\n/**\n * @tsplus getter fncts.schema.Schema encode\n * @tsplus getter fncts.schema.Parser encode\n */\nfunction encode_1(schema) {\n    return parserFor(schema.ast, false);\n}\n/**\n * @tsplus getter fncts.schema.Schema encodeMaybe\n * @tsplus getter fncts.schema.Parser encodeMaybe\n */\nexport function encodeMaybe(schema) {\n    return (input, options) => tsplus_module_2.toMaybe(encode_1(schema)(input, options));\n}\nfunction parseMaybe(ast) {\n    const parse = parserFor(ast, true);\n    return (input, options) => {\n        return tsplus_module_2.toMaybe(parse(input, options));\n    };\n}\nfunction parseOrThrow(ast) {\n    const parser = parserFor(ast, true);\n    return (input, options) => {\n        return tsplus_module_5.match((failure) => {\n            throw new Error(tsplus_module_3.format(failure));\n        }, tsplus_module_4.identity)(parser(input, options));\n    };\n}\n/**\n * @tsplus getter fncts.schema.Schema asserts\n * @tsplus getter fncts.schema.Parser asserts\n */\nexport function asserts(schema) {\n    return (input, options) => {\n        parseOrThrow(tsplus_module_1.getTo(schema.ast))(input, options);\n    };\n}\n//# sourceMappingURL=api.js.map"],"mappings":";;;;;;;;;;;;;;AAKA,MAAa,SAAS;;;;;AAMtB,SAAgB,OAAO,QAAQ;AAC3B,QAAOA,2BAAAA,UAAU,OAAO,KAAK,KAAK;;;;;;AAMtC,SAAgB,YAAY,QAAQ;AAChC,QAAO,WAAWC,kBAAgB,MAAM,OAAO,IAAI,CAAC;;;;;;AAMxD,SAAS,SAAS,QAAQ;AACtB,QAAOD,2BAAAA,UAAU,OAAO,KAAK,MAAM;;;;;;AAMvC,SAAgB,YAAY,QAAQ;AAChC,SAAQ,OAAO,YAAYE,4BAAgB,QAAQ,SAAS,OAAO,CAAC,OAAO,QAAQ,CAAC;;AAExF,SAAS,WAAW,KAAK;CACrB,MAAM,QAAQF,2BAAAA,UAAU,KAAK,KAAK;AAClC,SAAQ,OAAO,YAAY;AACvB,SAAOE,4BAAgB,QAAQ,MAAM,OAAO,QAAQ,CAAC;;;AAG7D,SAAS,aAAa,KAAK;CACvB,MAAM,SAASF,2BAAAA,UAAU,KAAK,KAAK;AACnC,SAAQ,OAAO,YAAY;AACvB,SAAOG,oCAAgB,OAAO,YAAY;AACtC,SAAM,IAAI,MAAMC,uCAAgB,OAAO,QAAQ,CAAC;KACjDC,8BAAgB,SAAS,CAAC,OAAO,OAAO,QAAQ,CAAC;;;;;;;AAO5D,SAAgB,QAAQ,QAAQ;AAC5B,SAAQ,OAAO,YAAY;AACvB,eAAaJ,kBAAgB,MAAM,OAAO,IAAI,CAAC,CAAC,OAAO,QAAQ"}