{"version":3,"file":"_httpQueryParseURLSearchParams.mjs","names":[],"sources":["../../src/internal/_httpQueryParseURLSearchParams.ts"],"sourcesContent":["import { IReadableURLSearchParams } from \"@typia/interface\";\n\nexport const _httpQueryParseURLSearchParams = (\n  input: string | IReadableURLSearchParams,\n): IReadableURLSearchParams => {\n  if (typeof input === \"string\") {\n    let url: boolean = false;\n    if (input.startsWith(\"?\")) {\n      input = input.substring(1);\n      url = true;\n    } else {\n      const index: number = input.indexOf(\"?\");\n      if (index !== -1 && isUrlPrefix(input.substring(0, index))) {\n        input = input.substring(index + 1);\n        url = true;\n      } else if (index === -1 && isExplicitUrlPrefix(input)) {\n        input = \"\";\n        url = true;\n      }\n    }\n    if (url) {\n      const fragment: number = input.indexOf(\"#\");\n      if (fragment !== -1) input = input.substring(0, fragment);\n    }\n    return new URLSearchParams(input);\n  }\n  return input;\n};\n\nconst isUrlPrefix = (prefix: string): boolean =>\n  isExplicitUrlPrefix(prefix) || (prefix.length !== 0 && !/[=&]/.test(prefix));\n\nconst isExplicitUrlPrefix = (prefix: string): boolean =>\n  /^[a-z][a-z\\d+.-]*:/i.test(prefix) || /^(?:\\/\\/|\\/|\\.{1,2}\\/)/.test(prefix);\n"],"mappings":";AAEA,MAAa,kCACX,UAC6B;CAC7B,IAAI,OAAO,UAAU,UAAU;EAC7B,IAAI,MAAe;EACnB,IAAI,MAAM,WAAW,GAAG,GAAG;GACzB,QAAQ,MAAM,UAAU,CAAC;GACzB,MAAM;EACR,OAAO;GACL,MAAM,QAAgB,MAAM,QAAQ,GAAG;GACvC,IAAI,UAAU,MAAM,YAAY,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG;IAC1D,QAAQ,MAAM,UAAU,QAAQ,CAAC;IACjC,MAAM;GACR,OAAO,IAAI,UAAU,MAAM,oBAAoB,KAAK,GAAG;IACrD,QAAQ;IACR,MAAM;GACR;EACF;EACA,IAAI,KAAK;GACP,MAAM,WAAmB,MAAM,QAAQ,GAAG;GAC1C,IAAI,aAAa,IAAI,QAAQ,MAAM,UAAU,GAAG,QAAQ;EAC1D;EACA,OAAO,IAAI,gBAAgB,KAAK;CAClC;CACA,OAAO;AACT;AAEA,MAAM,eAAe,WACnB,oBAAoB,MAAM,KAAM,OAAO,WAAW,KAAK,CAAC,OAAO,KAAK,MAAM;AAE5E,MAAM,uBAAuB,WAC3B,sBAAsB,KAAK,MAAM,KAAK,yBAAyB,KAAK,MAAM"}