{"version":3,"sources":["../../../src/api/strings.ts"],"sourcesContent":["import type { Pipe } from './base'\nimport { compileNested, context, schema, standard } from './base/pipes'\nimport { capitalize, getRandomValue, stripHTML, trimToLength } from '../utils/functions'\nimport { emailRegex, urlRegex } from '../utils/regexes'\n\nexport const email = (err = 'is not a valid email') =>\n\tstandard<string, string>(\n\t\t({ input, context, path }, opts) =>\n\t\t\topts.wrapError(`!${context}.emailRegex.test(${input})`, `PipeError.root('${err}', ${input}, ${path})`),\n\t\t{\n\t\t\tcontext: { emailRegex },\n\t\t\tschema: () => ({ format: 'email' }),\n\t\t},\n\t)\n\nexport const url = (err = 'is not a valid url') =>\n\tstandard<string, string>(\n\t\t({ input, context, path }, opts) =>\n\t\t\topts.wrapError(`!${context}.urlRegex.test(${input})`, `PipeError.root('${err}', ${input}, ${path})`),\n\t\t{\n\t\t\tcontext: { urlRegex },\n\t\t\tschema: () => ({ format: 'uri' }),\n\t\t},\n\t)\n\nexport const withStrippedHtml = (branch: Pipe<string, string>) => {\n\tconst varname = `stripped_${getRandomValue()}`\n\treturn standard<string, string>(\n\t\t({ input, context }, opts) => [\n\t\t\t`let ${varname} = ${context}.stripHTML(${input})`,\n\t\t\t...compileNested({ opts, pipe: branch, input: varname }),\n\t\t],\n\t\t{\n\t\t\tcontext: { ...context(branch), stripHTML },\n\t\t\tschema: () => schema(branch),\n\t\t},\n\t)\n}\n\nexport const asTrimmed = () => standard<string, string>(({ input }) => [`${input} = ${input}.trim()`])\n\nexport const asLowercased = () => standard<string, string>(({ input }) => [`${input} = ${input}.toLowerCase()`])\n\nexport const asUppercased = () => standard<string, string>(({ input }) => [`${input} = ${input}.toUpperCase()`])\n\nexport const asCapitalized = () =>\n\tstandard<string, string>(({ input, context }) => [`${input} = ${context}.capitalize(${input})`], {\n\t\tcontext: { capitalize },\n\t})\n\nexport const asStrippedHtml = () =>\n\tstandard<string, string>(({ input, context }) => [`${input} = ${context}.stripHTML(${input})`], {\n\t\tcontext: { stripHTML },\n\t})\n\nexport const asSliced = (length: number) =>\n\tstandard<string, string>(({ input, context }) => [`${input} = ${context}.trimToLength(${input}, ${length})`], {\n\t\tcontext: { trimToLength },\n\t})\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,iBAAAC,EAAA,aAAAC,EAAA,mBAAAC,EAAA,cAAAC,EAAA,iBAAAC,EAAA,UAAAC,EAAA,QAAAC,EAAA,qBAAAC,IAAA,eAAAC,EAAAX,GACA,IAAAY,EAAyD,wBACzDC,EAAoE,8BACpEC,EAAqC,4BAE9B,MAAMN,EAAQ,CAACO,EAAM,4BAC3B,YACC,CAAC,CAAE,MAAAC,EAAO,QAAAC,EAAS,KAAAC,CAAK,EAAGC,IAC1BA,EAAK,UAAU,IAAIF,CAAO,oBAAoBD,CAAK,IAAK,mBAAmBD,CAAG,MAAMC,CAAK,KAAKE,CAAI,GAAG,EACtG,CACC,QAAS,CAAE,uBAAW,EACtB,OAAQ,KAAO,CAAE,OAAQ,OAAQ,EAClC,CACD,EAEYT,EAAM,CAACM,EAAM,0BACzB,YACC,CAAC,CAAE,MAAAC,EAAO,QAAAC,EAAS,KAAAC,CAAK,EAAGC,IAC1BA,EAAK,UAAU,IAAIF,CAAO,kBAAkBD,CAAK,IAAK,mBAAmBD,CAAG,MAAMC,CAAK,KAAKE,CAAI,GAAG,EACpG,CACC,QAAS,CAAE,mBAAS,EACpB,OAAQ,KAAO,CAAE,OAAQ,KAAM,EAChC,CACD,EAEYR,EAAoBU,GAAiC,CACjE,MAAMC,EAAU,eAAY,kBAAe,CAAC,GAC5C,SAAO,YACN,CAAC,CAAE,MAAAL,EAAO,QAAAC,CAAQ,EAAGE,IAAS,CAC7B,OAAOE,CAAO,MAAMJ,CAAO,cAAcD,CAAK,IAC9C,MAAG,iBAAc,CAAE,KAAAG,EAAM,KAAMC,EAAQ,MAAOC,CAAQ,CAAC,CACxD,EACA,CACC,QAAS,CAAE,MAAG,WAAQD,CAAM,EAAG,qBAAU,EACzC,OAAQ,OAAM,UAAOA,CAAM,CAC5B,CACD,CACD,EAEad,EAAY,OAAM,YAAyB,CAAC,CAAE,MAAAU,CAAM,IAAM,CAAC,GAAGA,CAAK,MAAMA,CAAK,SAAS,CAAC,EAExFb,EAAe,OAAM,YAAyB,CAAC,CAAE,MAAAa,CAAM,IAAM,CAAC,GAAGA,CAAK,MAAMA,CAAK,gBAAgB,CAAC,EAElGT,EAAe,OAAM,YAAyB,CAAC,CAAE,MAAAS,CAAM,IAAM,CAAC,GAAGA,CAAK,MAAMA,CAAK,gBAAgB,CAAC,EAElGd,EAAgB,OAC5B,YAAyB,CAAC,CAAE,MAAAc,EAAO,QAAAC,CAAQ,IAAM,CAAC,GAAGD,CAAK,MAAMC,CAAO,eAAeD,CAAK,GAAG,EAAG,CAChG,QAAS,CAAE,uBAAW,CACvB,CAAC,EAEWX,EAAiB,OAC7B,YAAyB,CAAC,CAAE,MAAAW,EAAO,QAAAC,CAAQ,IAAM,CAAC,GAAGD,CAAK,MAAMC,CAAO,cAAcD,CAAK,GAAG,EAAG,CAC/F,QAAS,CAAE,qBAAU,CACtB,CAAC,EAEWZ,EAAYkB,MACxB,YAAyB,CAAC,CAAE,MAAAN,EAAO,QAAAC,CAAQ,IAAM,CAAC,GAAGD,CAAK,MAAMC,CAAO,iBAAiBD,CAAK,KAAKM,CAAM,GAAG,EAAG,CAC7G,QAAS,CAAE,2BAAa,CACzB,CAAC","names":["strings_exports","__export","asCapitalized","asLowercased","asSliced","asStrippedHtml","asTrimmed","asUppercased","email","url","withStrippedHtml","__toCommonJS","import_pipes","import_functions","import_regexes","err","input","context","path","opts","branch","varname","length"]}