TileratorUI: Provide regexes for area-targeted tile bans in Varnish
TileratorUI: Provide regexes for area-targeted tile bans in Varnish

Adds new functionality to TileratorUI in which clicking on a tile while
holding the Shift key will add to the results window one or more regular
expresssions representing ranges of tile URLs to ban in Varnish. These can
then be used in place of the regular expressions representing a global
tile ban in a script such as https://phabricator.wikimedia.org/P7451.

Example:

 ^/osm-intl/6/18/24
 ^/osm-intl/7/36|37/48|49
 ^/osm-intl/8/7[2-5]/9[6-9]
 ^/osm-intl/9/14[4-9]|15[01]/19[2-9]
 [...]

Regular expressions will be provided for the current tile and all children
up to (but not including) the value specified in beforeZ.  If no beforeZ
is specified, regexes will be provided for the current and the next two
zoom levels.

This patch relies on two node modules: to-regex-range[1] and
Kartotherian's own quadtile-index.[2]  These could have been incorporated
in a couple of different ways: an internal route taking a tile index and
beforeZoom value could have been added and queried via an XmlHttpRequest;
or the modules could be converted to frontend scripts, exposed internally
through the server, and loaded directly in the admin interface page. This
implementation does the latter.  For this reason it depends on a related
change to kartotherian/server.

Bug: https://phabricator.wikimedia.org/T159977

[1] https://www.npmjs.com/package/to-regex-range
[2] https://www.npmjs.com/package/quadtile-index

kartotherian/kartotherian,nyurik/kartotherian,kartotherian/kartotherian,nyurik/kartotherian,nyurik/kartotherian,kartotherian/kartotherian,nyurik/kartotherian,kartotherian/kartotherian