{"version":3,"file":"uri.mjs","sourceRoot":"","sources":["../../src/internals/uri.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,MAAM,EACN,IAAI,EACJ,MAAM,IAAI,iBAAiB,EAC3B,WAAW,EACZ,8BAA8B;AAG/B,OAAO,EAAE,eAAe,EAAE,qBAAiB;AAW3C,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,OAAwB,EAAE,EAAE,EAAE,CAChD,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,sBAAsB,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;IACnD,CAAC;AACH,CAAC,CAAC,CAAC","sourcesContent":["import {\n  refine,\n  string,\n  type,\n  assert as assertSuperstruct,\n  StructError,\n} from '@metamask/superstruct';\nimport type { Struct } from '@metamask/superstruct';\n\nimport { getErrorMessage } from './errors';\n\nexport type UriOptions<Type extends string> = {\n  protocol?: Struct<Type>;\n  hash?: Struct<Type>;\n  port?: Struct<Type>;\n  hostname?: Struct<Type>;\n  pathname?: Struct<Type>;\n  search?: Struct<Type>;\n};\n\nexport const uri = (opts: UriOptions<any> = {}) =>\n  refine(string(), 'uri', (value) => {\n    try {\n      const url = new URL(value);\n\n      const UrlStruct = type(opts);\n      assertSuperstruct(url, UrlStruct);\n      return true;\n    } catch (error) {\n      if (error instanceof StructError) {\n        return getErrorMessage(error);\n      }\n      return `Expected URL, got \"${value.toString()}\"`;\n    }\n  });\n"]}