{"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":"AACA,OAAS,iBAAAA,EAAe,WAAAC,EAAS,UAAAC,EAAQ,YAAAC,MAAgB,eACzD,OAAS,cAAAC,EAAY,kBAAAC,EAAgB,aAAAC,EAAW,gBAAAC,MAAoB,qBACpE,OAAS,cAAAC,EAAY,YAAAC,MAAgB,mBAE9B,MAAMC,EAAQ,CAACC,EAAM,yBAC3BR,EACC,CAAC,CAAE,MAAAS,EAAO,QAAAX,EAAS,KAAAY,CAAK,EAAGC,IAC1BA,EAAK,UAAU,IAAIb,CAAO,oBAAoBW,CAAK,IAAK,mBAAmBD,CAAG,MAAMC,CAAK,KAAKC,CAAI,GAAG,EACtG,CACC,QAAS,CAAE,WAAAL,CAAW,EACtB,OAAQ,KAAO,CAAE,OAAQ,OAAQ,EAClC,CACD,EAEYO,EAAM,CAACJ,EAAM,uBACzBR,EACC,CAAC,CAAE,MAAAS,EAAO,QAAAX,EAAS,KAAAY,CAAK,EAAGC,IAC1BA,EAAK,UAAU,IAAIb,CAAO,kBAAkBW,CAAK,IAAK,mBAAmBD,CAAG,MAAMC,CAAK,KAAKC,CAAI,GAAG,EACpG,CACC,QAAS,CAAE,SAAAJ,CAAS,EACpB,OAAQ,KAAO,CAAE,OAAQ,KAAM,EAChC,CACD,EAEYO,EAAoBC,GAAiC,CACjE,MAAMC,EAAU,YAAYb,EAAe,CAAC,GAC5C,OAAOF,EACN,CAAC,CAAE,MAAAS,EAAO,QAAAX,CAAQ,EAAGa,IAAS,CAC7B,OAAOI,CAAO,MAAMjB,CAAO,cAAcW,CAAK,IAC9C,GAAGZ,EAAc,CAAE,KAAAc,EAAM,KAAMG,EAAQ,MAAOC,CAAQ,CAAC,CACxD,EACA,CACC,QAAS,CAAE,GAAGjB,EAAQgB,CAAM,EAAG,UAAAX,CAAU,EACzC,OAAQ,IAAMJ,EAAOe,CAAM,CAC5B,CACD,CACD,EAEaE,EAAY,IAAMhB,EAAyB,CAAC,CAAE,MAAAS,CAAM,IAAM,CAAC,GAAGA,CAAK,MAAMA,CAAK,SAAS,CAAC,EAExFQ,EAAe,IAAMjB,EAAyB,CAAC,CAAE,MAAAS,CAAM,IAAM,CAAC,GAAGA,CAAK,MAAMA,CAAK,gBAAgB,CAAC,EAElGS,EAAe,IAAMlB,EAAyB,CAAC,CAAE,MAAAS,CAAM,IAAM,CAAC,GAAGA,CAAK,MAAMA,CAAK,gBAAgB,CAAC,EAElGU,EAAgB,IAC5BnB,EAAyB,CAAC,CAAE,MAAAS,EAAO,QAAAX,CAAQ,IAAM,CAAC,GAAGW,CAAK,MAAMX,CAAO,eAAeW,CAAK,GAAG,EAAG,CAChG,QAAS,CAAE,WAAAR,CAAW,CACvB,CAAC,EAEWmB,EAAiB,IAC7BpB,EAAyB,CAAC,CAAE,MAAAS,EAAO,QAAAX,CAAQ,IAAM,CAAC,GAAGW,CAAK,MAAMX,CAAO,cAAcW,CAAK,GAAG,EAAG,CAC/F,QAAS,CAAE,UAAAN,CAAU,CACtB,CAAC,EAEWkB,EAAYC,GACxBtB,EAAyB,CAAC,CAAE,MAAAS,EAAO,QAAAX,CAAQ,IAAM,CAAC,GAAGW,CAAK,MAAMX,CAAO,iBAAiBW,CAAK,KAAKa,CAAM,GAAG,EAAG,CAC7G,QAAS,CAAE,aAAAlB,CAAa,CACzB,CAAC","names":["compileNested","context","schema","standard","capitalize","getRandomValue","stripHTML","trimToLength","emailRegex","urlRegex","email","err","input","path","opts","url","withStrippedHtml","branch","varname","asTrimmed","asLowercased","asUppercased","asCapitalized","asStrippedHtml","asSliced","length"]}