{"version":3,"file":"list.mjs","names":[],"sources":["../../../esm/Schema/api/list.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/schema/ASTAnnotation\";\nimport * as tsplus_module_2 from \"@fncts/schema/Show\";\nimport * as tsplus_module_3 from \"@fncts/base/collection/immutable/Vector/api\";\nimport * as tsplus_module_4 from \"@fncts/schema/Schema/api\";\nimport * as tsplus_module_5 from \"@fncts/base/collection/immutable/List/constructors\";\nimport * as tsplus_module_6 from \"@fncts/base/data/function/api\";\nimport * as tsplus_module_7 from \"@fncts/schema/Parser/api\";\nimport * as tsplus_module_8 from \"@fncts/base/collection/immutable/List/definition\";\nimport * as tsplus_module_9 from \"@fncts/schema/ParseError/ParseError\";\nimport * as tsplus_module_10 from \"@fncts/schema/ParseResult\";\nimport * as tsplus_module_11 from \"@fncts/base/collection/mutable/ListBuffer\";\nimport * as tsplus_module_12 from \"@fncts/base/data/Either/api\";\nimport * as tsplus_module_13 from \"@fncts/base/collection/immutable/Vector/internal\";\nimport * as tsplus_module_14 from \"@fncts/schema/Parser/definition\";\nimport * as tsplus_module_15 from \"@fncts/test/control/Gen/api\";\nexport const list = list_1;\nexport const listFromArray = listFromArray_1;\n/**\n * @tsplus static fncts.schema.SchemaOps list\n * @tsplus getter fncts.Schema.Schema list\n */\nfunction list_1(value) {\n    return tsplus_module_4.annotate(tsplus_module_1.GenHook, gen)(tsplus_module_4.annotate(tsplus_module_1.Identifier, `List<${tsplus_module_2.show()(value)}>`)(tsplus_module_4.declaration(tsplus_module_3.vector(value), parser(true), parser(false))));\n}\n/**\n * @tsplus static fncts.schema.SchemaOps listFromArray\n * @tsplus getter fncts.Schema.Schema listFromArray\n */\nfunction listFromArray_1(value) {\n    return tsplus_module_4.transform(list_1(value), (input) => tsplus_module_5.from(input), (input) => Array.from(input))(tsplus_module_4.array(value));\n}\n/**\n * @tsplus derive fncts.schema.Schema[fncts.List]<_> 10\n */\nexport function deriveList(...[value]) {\n    return listFromArray_1(value);\n}\nfunction parser(isDecoding) {\n    return (value) => {\n        const schema = list_1(value);\n        const parseValue = isDecoding ? tsplus_module_7.decode(value) : tsplus_module_7.encode(value);\n        return tsplus_module_14.make((u, options) => {\n            if (!tsplus_module_8.isList(u)) {\n                return tsplus_module_10.fail(tsplus_module_9.typeError(schema.ast, u));\n            }\n            const out = new tsplus_module_11.ListBuffer();\n            const errors = tsplus_module_3.emptyPushable();\n            const allErrors = options?.allErrors;\n            let index = 0;\n            for (const v of u) {\n                const t = parseValue(v, options);\n                void 0;\n                if (tsplus_module_12.isLeft(t)) {\n                    tsplus_module_13.push(tsplus_module_9.indexError(index, t.left))(errors);\n                    index++;\n                    if (allErrors) {\n                        continue;\n                    }\n                    return tsplus_module_10.fail(tsplus_module_9.iterableError(schema.ast, u, errors));\n                }\n                else {\n                    out.append(t.right);\n                }\n                index++;\n            }\n            return tsplus_module_3.isNonEmpty(errors)\n                ? tsplus_module_10.fail(tsplus_module_9.iterableError(schema.ast, u, errors))\n                : tsplus_module_10.succeed(out.toList);\n        });\n    };\n}\nfunction gen(value) {\n    return tsplus_module_15.map((array) => tsplus_module_5.from(array))(tsplus_module_15.array(value));\n}\n//# sourceMappingURL=list.js.map"],"mappings":";;;;;;;;;;;;;;;;AAeA,MAAa,OAAO;AACpB,MAAa,gBAAgB;;;;;AAK7B,SAAS,OAAO,OAAO;AACnB,QAAO,gBAAgB,SAAS,gBAAgB,SAAS,IAAI,CAAC,gBAAgB,SAAS,gBAAgB,YAAY,QAAQ,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,YAAY,gBAAgB,OAAO,MAAM,EAAE,OAAO,KAAK,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC;;;;;;AAM1P,SAAS,gBAAgB,OAAO;AAC5B,QAAO,gBAAgB,UAAU,OAAO,MAAM,GAAG,UAAU,gBAAgB,KAAK,MAAM,GAAG,UAAU,MAAM,KAAK,MAAM,CAAC,CAAC,gBAAgB,MAAM,MAAM,CAAC;;;;;AAKvJ,SAAgB,WAAW,GAAG,CAAC,QAAQ;AACnC,QAAO,gBAAgB,MAAM;;AAEjC,SAAS,OAAO,YAAY;AACxB,SAAQ,UAAU;EACd,MAAM,SAAS,OAAO,MAAM;EAC5B,MAAM,aAAa,aAAa,gBAAgB,OAAO,MAAM,GAAG,gBAAgB,OAAO,MAAM;AAC7F,SAAO,iBAAiB,MAAM,GAAG,YAAY;AACzC,OAAI,CAAC,gBAAgB,OAAO,EAAE,CAC1B,QAAO,iBAAiB,KAAK,gBAAgB,UAAU,OAAO,KAAK,EAAE,CAAC;GAE1E,MAAM,MAAM,IAAI,iBAAiB,YAAY;GAC7C,MAAM,SAAS,gBAAgB,eAAe;GAC9C,MAAM,YAAY,SAAS;GAC3B,IAAI,QAAQ;AACZ,QAAK,MAAM,KAAK,GAAG;IACf,MAAM,IAAI,WAAW,GAAG,QAAQ;AAEhC,QAAI,iBAAiB,OAAO,EAAE,EAAE;AAC5B,sBAAiB,KAAK,gBAAgB,WAAW,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO;AACxE;AACA,SAAI,UACA;AAEJ,YAAO,iBAAiB,KAAK,gBAAgB,cAAc,OAAO,KAAK,GAAG,OAAO,CAAC;UAGlF,KAAI,OAAO,EAAE,MAAM;AAEvB;;AAEJ,UAAO,gBAAgB,WAAW,OAAO,GACnC,iBAAiB,KAAK,gBAAgB,cAAc,OAAO,KAAK,GAAG,OAAO,CAAC,GAC3E,iBAAiB,QAAQ,IAAI,OAAO;IAC5C;;;AAGV,SAAS,IAAI,OAAO;AAChB,QAAO,iBAAiB,KAAK,UAAU,gBAAgB,KAAK,MAAM,CAAC,CAAC,iBAAiB,MAAM,MAAM,CAAC"}