code: function encodeUriString(s) {
      return encodeURIComponent(s)
          .replace(/%40/g, '@')
          .replace(/%3A/gi, ':')
          .replace(/%24/g, '$')
          .replace(/%2C/gi, ',');
  }
docs: Encodes a URI string with the default encoding. This function will only ever be called from
  `encodeUriQuery` or `encodeUriSegment` as it's the base set of encodings to be used. We need
  a custom encoding because encodeURIComponent is too aggressive and encodes stuff that doesn't
  have to be encoded per https://url.spec.whatwg.org.