This file is indexed.

/usr/lib/nodejs/url-parse/fuzzy.js is in node-url-parse 1.0.5-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
'use strict';

var URL = require('./')
  , url = new URL('');

/**
 * A dictionary with all kind of different options that should generate a valid
 * and parse-able URL.
 *
 * @type {Object}
 * @api private
 */
var combinations = {};

combinations.protocol = [
  'http:',
  'https:',
  'ws:',
  'wss:',
  'blob:'/*,
  ''*/
];
combinations.username = ['foo', 'bar'];
combinations.password = combinations.username;
combinations.hostname = [
  'example.com',
  'www.example.com',
  'travel.travel',
  'sub.sub.sub.domain.nl',
  'xn--n3h.com',
  'localhost',
  '127.0.0.1',
  '255.255.255.255'/*,
  '3ffe:6a88:85a3:08d3:1319:8a2e:0370:7344',
  '2001:2353::1428:57ab',
  '2001:2353:0::0:1428:57ab',
  '2001:2353:0:0:0:0:1428:57ab',
  '2001:2353:0000:0000:0000::1428:57ab',
  '2001:2353:0000:0000:0000:0000:1428:57ab',
  '2001:2353:02de::0e13',
  '2001:2353:2de::e13'*/
];
combinations.port = ['8080', '844', '3340'];
combinations.pathname = [
  '/',
  '/bar',
  '/bar/',
  '/foo/bar',
  '/foo.bar/foo',
  '/fav.ico',
  '/@3rd-Eden',
  '/a/b/c/d/e/f/g/j/1/d/4/'
];
combinations.query = ['foo=bar',
  'foo[]=bar&foo[]=foo',
  'email=foo@bar.travel',
  'q='
];
combinations.hash = [
  'name',
  'moo-with-longer-name',
  '/what/about/slashes?querystring',
  '?querystring',
  '!/google/urls',
  'use:foo@',
  'http://'
];

/**
 * Get a random item from the given array.
 *
 * @param {String} name Name of the array we want to have a random item returned.
 * @returns {Mixed}
 * @api private
 */
function get(name) {
  var data = combinations[name];

  return data[Math.floor(Math.random() * data.length)];
}

/**
 * Return a random boolean.
 *
 * @returns {Boolean}
 * @api private
 */
function yep() {
  return !!Math.round(Math.random() * 1);
}

/**
 * Generate the actual URL.
 *
 * @returns {Object} specification
 * @api public
 */
module.exports = function generate() {
  var spec = {}
    , key;

  spec.protocol = get('protocol');
  spec.hostname = get('hostname');
  spec.pathname = get('pathname');

  if (yep()) spec.port = get('port');
  if (yep()) spec.query = '?'+ get('query');
  if (yep()) spec.hash = '#'+ get('hash');
  if (yep()) {
    spec.username = get('username');
    spec.password = get('password');
  }

  for (key in combinations) {
    url[key] = '';
  }

  for (key in spec) {
    url[key] = spec[key];
  }

  spec.href = url.toString();
  return spec;
};