file: extensions/uri.dart

extension on String?
  Methods:
    - toUri: (Return: Uri?) Converts String? to Uri?. Uses `Uri.tryParse` and `clean` from String extensions.
    - toPhoneUri: (Return: Uri?) Converts String? to phone Uri (tel://).  Adds "tel://" prefix if not present. Uses `clean` from String extensions.

extension on String

  Methods:
    - toUri: (Return: Uri) Converts String to Uri. Uses `Uri.parse` and `clean` from String extensions.
    - toPhoneUri: (Return: Uri) Converts String to phone Uri (tel://). Adds "tel://" prefix if not present. Uses `clean` from string extensions.

extension on Uri
  Methods:
    - domainName: (Return: String) Extracts the domain name (without 'www' or TLD).  Invocation: `Uri.parse("https://www.example.com/path").domainName` // "example"
    - rebuild: (Return: Uri, Parameters: schemeBuilder: (String current) -> String?, userInfoBuilder: (String current) -> String?, hostBuilder: (String current) -> String?, portBuilder: (int current) -> int?, pathBuilder: (String current) -> String?, pathSegmentsBuilder: (Iterable<String> current) -> Iterable<String>?, queryBuilder: (String current) -> String?, queryParametersBuilder: (Map<String, dynamic> current) -> Map<String, dynamic>?, fragmentBuilder: (String current) -> String?) Creates a new Uri by applying builder functions to components.  Each builder is optional; if null, the existing component is used.
