{"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,SAAS,eAAe,SAAS,QAAQ,gBAAgB;AACzD,SAAS,YAAY,gBAAgB,WAAW,oBAAoB;AACpE,SAAS,YAAY,gBAAgB;AAE9B,MAAM,QAAQ,CAAC,MAAM,2BAC3B;AAAA,EACC,CAAC,EAAE,OAAO,SAAAA,UAAS,KAAK,GAAG,SAC1B,KAAK,UAAU,IAAIA,QAAO,oBAAoB,KAAK,KAAK,mBAAmB,GAAG,MAAM,KAAK,KAAK,IAAI,GAAG;AAAA,EACtG;AAAA,IACC,SAAS,EAAE,WAAW;AAAA,IACtB,QAAQ,OAAO,EAAE,QAAQ,QAAQ;AAAA,EAClC;AACD;AAEM,MAAM,MAAM,CAAC,MAAM,yBACzB;AAAA,EACC,CAAC,EAAE,OAAO,SAAAA,UAAS,KAAK,GAAG,SAC1B,KAAK,UAAU,IAAIA,QAAO,kBAAkB,KAAK,KAAK,mBAAmB,GAAG,MAAM,KAAK,KAAK,IAAI,GAAG;AAAA,EACpG;AAAA,IACC,SAAS,EAAE,SAAS;AAAA,IACpB,QAAQ,OAAO,EAAE,QAAQ,MAAM;AAAA,EAChC;AACD;AAEM,MAAM,mBAAmB,CAAC,WAAiC;AACjE,QAAM,UAAU,YAAY,eAAe,CAAC;AAC5C,SAAO;AAAA,IACN,CAAC,EAAE,OAAO,SAAAA,SAAQ,GAAG,SAAS;AAAA,MAC7B,OAAO,OAAO,MAAMA,QAAO,cAAc,KAAK;AAAA,MAC9C,GAAG,cAAc,EAAE,MAAM,MAAM,QAAQ,OAAO,QAAQ,CAAC;AAAA,IACxD;AAAA,IACA;AAAA,MACC,SAAS,EAAE,GAAG,QAAQ,MAAM,GAAG,UAAU;AAAA,MACzC,QAAQ,MAAM,OAAO,MAAM;AAAA,IAC5B;AAAA,EACD;AACD;AAEO,MAAM,YAAY,MAAM,SAAyB,CAAC,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK,MAAM,KAAK,SAAS,CAAC;AAE9F,MAAM,eAAe,MAAM,SAAyB,CAAC,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK,MAAM,KAAK,gBAAgB,CAAC;AAExG,MAAM,eAAe,MAAM,SAAyB,CAAC,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK,MAAM,KAAK,gBAAgB,CAAC;AAExG,MAAM,gBAAgB,MAC5B,SAAyB,CAAC,EAAE,OAAO,SAAAA,SAAQ,MAAM,CAAC,GAAG,KAAK,MAAMA,QAAO,eAAe,KAAK,GAAG,GAAG;AAAA,EAChG,SAAS,EAAE,WAAW;AACvB,CAAC;AAEK,MAAM,iBAAiB,MAC7B,SAAyB,CAAC,EAAE,OAAO,SAAAA,SAAQ,MAAM,CAAC,GAAG,KAAK,MAAMA,QAAO,cAAc,KAAK,GAAG,GAAG;AAAA,EAC/F,SAAS,EAAE,UAAU;AACtB,CAAC;AAEK,MAAM,WAAW,CAAC,WACxB,SAAyB,CAAC,EAAE,OAAO,SAAAA,SAAQ,MAAM,CAAC,GAAG,KAAK,MAAMA,QAAO,iBAAiB,KAAK,KAAK,MAAM,GAAG,GAAG;AAAA,EAC7G,SAAS,EAAE,aAAa;AACzB,CAAC;","names":["context"]}